java.lang.Object
software.amazon.awssdk.services.ecs.model.Service
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<Service.Builder,Service>

@Generated("software.amazon.awssdk:codegen") public final class Service extends Object implements SdkPojo, Serializable, ToCopyableBuilder<Service.Builder,Service>

Details on a service within a cluster.

See Also:
  • Method Details

    • serviceArn

      public final String 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

      public final String 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

      public final String 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 the isEmpty() 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

      public final List<LoadBalancer> 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 the isEmpty() 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

      public final List<ServiceRegistry> 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

      public final String status()

      The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.

      Returns:
      The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.
    • desiredCount

      public final Integer 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

      public final Integer 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

      public final Integer 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

      public final LaunchType 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 return LaunchType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from launchTypeAsString().

      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

      public final String 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 return LaunchType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from launchTypeAsString().

      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 the isEmpty() 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

      public final List<CapacityProviderStrategyItem> 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

      public final String 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

      public final String 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

      public final String 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

      public final DeploymentConfiguration 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 the isEmpty() 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

      public final List<TaskSet> 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 the isEmpty() 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

      public final List<Deployment> 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

      public final String 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 the isEmpty() 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

      public final List<ServiceEvent> 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

      public final Instant 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 the isEmpty() 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

      public final List<PlacementConstraint> 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 the isEmpty() 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

      public final List<PlacementStrategy> 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

      public final NetworkConfiguration 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

      public final Integer 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

      public final SchedulingStrategy 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 return SchedulingStrategy.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from schedulingStrategyAsString().

      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

      public final String 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 return SchedulingStrategy.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from schedulingStrategyAsString().

      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

      public final DeploymentController 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 the isEmpty() 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

      public final List<Tag> 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

      public final String createdBy()

      The principal that created the service.

      Returns:
      The principal that created the service.
    • enableECSManagedTags

      public final Boolean 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

      public final PropagateTags 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 return PropagateTags.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from propagateTagsAsString().

      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

      public final String 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 return PropagateTags.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from propagateTagsAsString().

      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

      public final Boolean 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

      public Service.Builder 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 interface ToCopyableBuilder<Service.Builder,Service>
      Returns:
      a builder for type T
    • builder

      public static Service.Builder builder()
    • serializableBuilderClass

      public static Class<? extends Service.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      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 an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String 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.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.