Class Service
- All Implemented Interfaces:
Serializable
,SdkPojo
,ToCopyableBuilder<Service.Builder,
Service>
Details on a service within a cluster.
- See Also:
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic Service.Builder
builder()
final List
<CapacityProviderStrategyItem> The capacity provider strategy the service uses.final String
The Amazon Resource Name (ARN) of the cluster that hosts the service.final Instant
The Unix timestamp for the time when the service was created.final String
The principal that created the service.final DeploymentConfiguration
Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.final DeploymentController
The deployment controller type the service is using.final List
<Deployment> The current state of deployments for the service.final Integer
The desired number of instantiations of the task definition to keep running on the service.final Boolean
Determines whether to use Amazon ECS managed tags for the tasks in the service.final Boolean
Determines whether the execute command functionality is turned on for the service.final boolean
final boolean
equalsBySdkFields
(Object obj) Indicates whether some other object is "equal to" this one by SDK fields.final List
<ServiceEvent> events()
The event stream for your service.final <T> Optional
<T> getValueForField
(String fieldName, Class<T> clazz) final boolean
For responses, this returns true if the service returned a value for the CapacityProviderStrategy property.final boolean
For responses, this returns true if the service returned a value for the Deployments property.final boolean
For responses, this returns true if the service returned a value for the Events property.final int
hashCode()
final boolean
For responses, this returns true if the service returned a value for the LoadBalancers property.final boolean
For responses, this returns true if the service returned a value for the PlacementConstraints property.final boolean
For responses, this returns true if the service returned a value for the PlacementStrategy property.final boolean
For responses, this returns true if the service returned a value for the ServiceRegistries property.final boolean
hasTags()
For responses, this returns true if the service returned a value for the Tags property.final boolean
For responses, this returns true if the service returned a value for the TaskSets property.final Integer
The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started.final LaunchType
The launch type the service is using.final String
The launch type the service is using.final List
<LoadBalancer> A list of Elastic Load Balancing load balancer objects.final NetworkConfiguration
The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using theawsvpc
networking mode.final Integer
The number of tasks in the cluster that are in thePENDING
state.final List
<PlacementConstraint> The placement constraints for the tasks in the service.final List
<PlacementStrategy> The placement strategy that determines how tasks for the service are placed.final String
The operating system that your tasks in the service run on.final String
The platform version to run your service on.final PropagateTags
Determines whether to propagate the tags from the task definition or the service to the task.final String
Determines whether to propagate the tags from the task definition or the service to the task.final String
roleArn()
The ARN of the IAM role that's associated with the service.final Integer
The number of tasks in the cluster that are in theRUNNING
state.final SchedulingStrategy
The scheduling strategy to use for the service.final String
The scheduling strategy to use for the service.static Class
<? extends Service.Builder> final String
The ARN that identifies the service.final String
The name of your service.final List
<ServiceRegistry> The details for the service discovery registries to assign to this service.final String
status()
The status of the service.tags()
The metadata that you apply to the service to help you categorize and organize them.final String
The task definition to use for tasks in the service.taskSets()
Information about a set of Amazon ECS tasks in either an CodeDeploy or anEXTERNAL
deployment.Take this object and create a builder that contains all of the current property values of this object.final String
toString()
Returns a string representation of this object.Methods inherited from interface software.amazon.awssdk.utils.builder.ToCopyableBuilder
copy
-
Method Details
-
serviceArn
The ARN that identifies the service. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.
- Returns:
- The ARN that identifies the service. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.
-
serviceName
The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster. However, you can have similarly named services in multiple clusters within a Region or across multiple Regions.
- Returns:
- The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster. However, you can have similarly named services in multiple clusters within a Region or across multiple Regions.
-
clusterArn
The Amazon Resource Name (ARN) of the cluster that hosts the service.
- Returns:
- The Amazon Resource Name (ARN) of the cluster that hosts the service.
-
hasLoadBalancers
public final boolean hasLoadBalancers()For responses, this returns true if the service returned a value for the LoadBalancers property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
loadBalancers
A list of Elastic Load Balancing load balancer objects. It contains the load balancer name, the container name, and the container port to access from the load balancer. The container name is as it appears in a container definition.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasLoadBalancers()
method.- Returns:
- A list of Elastic Load Balancing load balancer objects. It contains the load balancer name, the container name, and the container port to access from the load balancer. The container name is as it appears in a container definition.
-
hasServiceRegistries
public final boolean hasServiceRegistries()For responses, this returns true if the service returned a value for the ServiceRegistries property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
serviceRegistries
The details for the service discovery registries to assign to this service. For more information, see Service Discovery.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasServiceRegistries()
method.- Returns:
- The details for the service discovery registries to assign to this service. For more information, see Service Discovery.
-
status
The status of the service. The valid values are
ACTIVE
,DRAINING
, orINACTIVE
.- Returns:
- The status of the service. The valid values are
ACTIVE
,DRAINING
, orINACTIVE
.
-
desiredCount
The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with CreateService, and it can be modified with UpdateService.
- Returns:
- The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with CreateService, and it can be modified with UpdateService.
-
runningCount
The number of tasks in the cluster that are in the
RUNNING
state.- Returns:
- The number of tasks in the cluster that are in the
RUNNING
state.
-
pendingCount
The number of tasks in the cluster that are in the
PENDING
state.- Returns:
- The number of tasks in the cluster that are in the
PENDING
state.
-
launchType
The launch type the service is using. When using the DescribeServices API, this field is omitted if the service was created using a capacity provider strategy.
If the service returns an enum value that is not available in the current SDK version,
launchType
will returnLaunchType.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available fromlaunchTypeAsString()
.- Returns:
- The launch type the service is using. When using the DescribeServices API, this field is omitted if the service was created using a capacity provider strategy.
- See Also:
-
launchTypeAsString
The launch type the service is using. When using the DescribeServices API, this field is omitted if the service was created using a capacity provider strategy.
If the service returns an enum value that is not available in the current SDK version,
launchType
will returnLaunchType.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available fromlaunchTypeAsString()
.- Returns:
- The launch type the service is using. When using the DescribeServices API, this field is omitted if the service was created using a capacity provider strategy.
- See Also:
-
hasCapacityProviderStrategy
public final boolean hasCapacityProviderStrategy()For responses, this returns true if the service returned a value for the CapacityProviderStrategy property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
capacityProviderStrategy
The capacity provider strategy the service uses. When using the DescribeServices API, this field is omitted if the service was created using a launch type.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasCapacityProviderStrategy()
method.- Returns:
- The capacity provider strategy the service uses. When using the DescribeServices API, this field is omitted if the service was created using a launch type.
-
platformVersion
The platform version to run your service on. A platform version is only specified for tasks that are hosted on Fargate. If one isn't specified, the
LATEST
platform version is used. For more information, see Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.- Returns:
- The platform version to run your service on. A platform version is only specified for tasks that are
hosted on Fargate. If one isn't specified, the
LATEST
platform version is used. For more information, see Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.
-
platformFamily
The operating system that your tasks in the service run on. A platform family is specified only for tasks using the Fargate launch type.
All tasks that run as part of this service must use the same
platformFamily
value as the service (for example,LINUX
).- Returns:
- The operating system that your tasks in the service run on. A platform family is specified only for tasks
using the Fargate launch type.
All tasks that run as part of this service must use the same
platformFamily
value as the service (for example,LINUX
).
-
taskDefinition
The task definition to use for tasks in the service. This value is specified when the service is created with CreateService, and it can be modified with UpdateService.
- Returns:
- The task definition to use for tasks in the service. This value is specified when the service is created with CreateService, and it can be modified with UpdateService.
-
deploymentConfiguration
Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.
- Returns:
- Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.
-
hasTaskSets
public final boolean hasTaskSets()For responses, this returns true if the service returned a value for the TaskSets property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
taskSets
Information about a set of Amazon ECS tasks in either an CodeDeploy or an
EXTERNAL
deployment. An Amazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic.Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasTaskSets()
method.- Returns:
- Information about a set of Amazon ECS tasks in either an CodeDeploy or an
EXTERNAL
deployment. An Amazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic.
-
hasDeployments
public final boolean hasDeployments()For responses, this returns true if the service returned a value for the Deployments property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
deployments
The current state of deployments for the service.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasDeployments()
method.- Returns:
- The current state of deployments for the service.
-
roleArn
The ARN of the IAM role that's associated with the service. It allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer.
- Returns:
- The ARN of the IAM role that's associated with the service. It allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer.
-
hasEvents
public final boolean hasEvents()For responses, this returns true if the service returned a value for the Events property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
events
The event stream for your service. A maximum of 100 of the latest events are displayed.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasEvents()
method.- Returns:
- The event stream for your service. A maximum of 100 of the latest events are displayed.
-
createdAt
The Unix timestamp for the time when the service was created.
- Returns:
- The Unix timestamp for the time when the service was created.
-
hasPlacementConstraints
public final boolean hasPlacementConstraints()For responses, this returns true if the service returned a value for the PlacementConstraints property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
placementConstraints
The placement constraints for the tasks in the service.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasPlacementConstraints()
method.- Returns:
- The placement constraints for the tasks in the service.
-
hasPlacementStrategy
public final boolean hasPlacementStrategy()For responses, this returns true if the service returned a value for the PlacementStrategy property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
placementStrategy
The placement strategy that determines how tasks for the service are placed.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasPlacementStrategy()
method.- Returns:
- The placement strategy that determines how tasks for the service are placed.
-
networkConfiguration
The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the
awsvpc
networking mode.- Returns:
- The VPC subnet and security group configuration for tasks that receive their own elastic network
interface by using the
awsvpc
networking mode.
-
healthCheckGracePeriodSeconds
The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started.
- Returns:
- The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started.
-
schedulingStrategy
The scheduling strategy to use for the service. For more information, see Services.
There are two service scheduler strategies available.
-
REPLICA
-The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. -
DAEMON
-The daemon scheduling strategy deploys exactly one task on each active container instance. This task meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks. It stop tasks that don't meet the placement constraints.Fargate tasks don't support the
DAEMON
scheduling strategy.
If the service returns an enum value that is not available in the current SDK version,
schedulingStrategy
will returnSchedulingStrategy.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available fromschedulingStrategyAsString()
.- Returns:
- The scheduling strategy to use for the service. For more information, see Services.
There are two service scheduler strategies available.
-
REPLICA
-The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. -
DAEMON
-The daemon scheduling strategy deploys exactly one task on each active container instance. This task meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks. It stop tasks that don't meet the placement constraints.Fargate tasks don't support the
DAEMON
scheduling strategy.
-
- See Also:
-
-
schedulingStrategyAsString
The scheduling strategy to use for the service. For more information, see Services.
There are two service scheduler strategies available.
-
REPLICA
-The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. -
DAEMON
-The daemon scheduling strategy deploys exactly one task on each active container instance. This task meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks. It stop tasks that don't meet the placement constraints.Fargate tasks don't support the
DAEMON
scheduling strategy.
If the service returns an enum value that is not available in the current SDK version,
schedulingStrategy
will returnSchedulingStrategy.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available fromschedulingStrategyAsString()
.- Returns:
- The scheduling strategy to use for the service. For more information, see Services.
There are two service scheduler strategies available.
-
REPLICA
-The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. -
DAEMON
-The daemon scheduling strategy deploys exactly one task on each active container instance. This task meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks. It stop tasks that don't meet the placement constraints.Fargate tasks don't support the
DAEMON
scheduling strategy.
-
- See Also:
-
-
deploymentController
The deployment controller type the service is using.
- Returns:
- The deployment controller type the service is using.
-
hasTags
public final boolean hasTags()For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
tags
The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value. You define bot the key and value.
The following basic restrictions apply to tags:
-
Maximum number of tags per resource - 50
-
For each resource, each tag key must be unique, and each tag key can have only one value.
-
Maximum key length - 128 Unicode characters in UTF-8
-
Maximum value length - 256 Unicode characters in UTF-8
-
If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.
-
Tag keys and values are case-sensitive.
-
Do not use
aws:
,AWS:
, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasTags()
method.- Returns:
- The metadata that you apply to the service to help you categorize and organize them. Each tag consists of
a key and an optional value. You define bot the key and value.
The following basic restrictions apply to tags:
-
Maximum number of tags per resource - 50
-
For each resource, each tag key must be unique, and each tag key can have only one value.
-
Maximum key length - 128 Unicode characters in UTF-8
-
Maximum value length - 256 Unicode characters in UTF-8
-
If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.
-
Tag keys and values are case-sensitive.
-
Do not use
aws:
,AWS:
, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.
-
-
-
createdBy
The principal that created the service.
- Returns:
- The principal that created the service.
-
enableECSManagedTags
Determines whether to use Amazon ECS managed tags for the tasks in the service. For more information, see Tagging Your Amazon ECS Resources in the Amazon Elastic Container Service Developer Guide.
- Returns:
- Determines whether to use Amazon ECS managed tags for the tasks in the service. For more information, see Tagging Your Amazon ECS Resources in the Amazon Elastic Container Service Developer Guide.
-
propagateTags
Determines whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags aren't propagated.
If the service returns an enum value that is not available in the current SDK version,
propagateTags
will returnPropagateTags.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available frompropagateTagsAsString()
.- Returns:
- Determines whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags aren't propagated.
- See Also:
-
propagateTagsAsString
Determines whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags aren't propagated.
If the service returns an enum value that is not available in the current SDK version,
propagateTags
will returnPropagateTags.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available frompropagateTagsAsString()
.- Returns:
- Determines whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags aren't propagated.
- See Also:
-
enableExecuteCommand
Determines whether the execute command functionality is turned on for the service. If
true
, the execute command functionality is turned on for all containers in tasks as part of the service.- Returns:
- Determines whether the execute command functionality is turned on for the service. If
true
, the execute command functionality is turned on for all containers in tasks as part of the service.
-
toBuilder
Description copied from interface:ToCopyableBuilder
Take this object and create a builder that contains all of the current property values of this object.- Specified by:
toBuilder
in interfaceToCopyableBuilder<Service.Builder,
Service> - Returns:
- a builder for type T
-
builder
-
serializableBuilderClass
-
hashCode
public final int hashCode() -
equals
-
equalsBySdkFields
Description copied from interface:SdkPojo
Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in anSdkPojo
class, and is generated based on a service model.If an
SdkPojo
class does not have any inherited fields,equalsBySdkFields
andequals
are essentially the same.- Specified by:
equalsBySdkFields
in interfaceSdkPojo
- Parameters:
obj
- the object to be compared with- Returns:
- true if the other object equals to this object by sdk fields, false otherwise.
-
toString
Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value. -
getValueForField
-
sdkFields
-