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

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

A regional grouping of one or more container instances where you can run task requests. Each account receives a default cluster the first time you use the Amazon ECS service, but you may also create other clusters. Clusters may contain more than one instance type simultaneously.

See Also:
  • Method Details

    • clusterArn

      public final String clusterArn()

      The Amazon Resource Name (ARN) that identifies the cluster. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

      Returns:
      The Amazon Resource Name (ARN) that identifies the cluster. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.
    • clusterName

      public final String clusterName()

      A user-generated string that you use to identify your cluster.

      Returns:
      A user-generated string that you use to identify your cluster.
    • configuration

      public final ClusterConfiguration configuration()

      The execute command configuration for the cluster.

      Returns:
      The execute command configuration for the cluster.
    • status

      public final String status()

      The status of the cluster. The following are the possible states that are returned.

      ACTIVE

      The cluster is ready to accept tasks and if applicable you can register container instances with the cluster.

      PROVISIONING

      The cluster has capacity providers that are associated with it and the resources needed for the capacity provider are being created.

      DEPROVISIONING

      The cluster has capacity providers that are associated with it and the resources needed for the capacity provider are being deleted.

      FAILED

      The cluster has capacity providers that are associated with it and the resources needed for the capacity provider have failed to create.

      INACTIVE

      The cluster has been deleted. Clusters with an INACTIVE status may remain discoverable in your account for a period of time. However, this behavior is subject to change in the future. We don't recommend that you rely on INACTIVE clusters persisting.

      Returns:
      The status of the cluster. The following are the possible states that are returned.

      ACTIVE

      The cluster is ready to accept tasks and if applicable you can register container instances with the cluster.

      PROVISIONING

      The cluster has capacity providers that are associated with it and the resources needed for the capacity provider are being created.

      DEPROVISIONING

      The cluster has capacity providers that are associated with it and the resources needed for the capacity provider are being deleted.

      FAILED

      The cluster has capacity providers that are associated with it and the resources needed for the capacity provider have failed to create.

      INACTIVE

      The cluster has been deleted. Clusters with an INACTIVE status may remain discoverable in your account for a period of time. However, this behavior is subject to change in the future. We don't recommend that you rely on INACTIVE clusters persisting.

    • registeredContainerInstancesCount

      public final Integer registeredContainerInstancesCount()

      The number of container instances registered into the cluster. This includes container instances in both ACTIVE and DRAINING status.

      Returns:
      The number of container instances registered into the cluster. This includes container instances in both ACTIVE and DRAINING status.
    • runningTasksCount

      public final Integer runningTasksCount()

      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.
    • pendingTasksCount

      public final Integer pendingTasksCount()

      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.
    • activeServicesCount

      public final Integer activeServicesCount()

      The number of services that are running on the cluster in an ACTIVE state. You can view these services with ListServices.

      Returns:
      The number of services that are running on the cluster in an ACTIVE state. You can view these services with ListServices.
    • hasStatistics

      public final boolean hasStatistics()
      For responses, this returns true if the service returned a value for the Statistics 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.
    • statistics

      public final List<KeyValuePair> statistics()

      Additional information about your clusters that are separated by launch type. They include the following:

      • runningEC2TasksCount

      • RunningFargateTasksCount

      • pendingEC2TasksCount

      • pendingFargateTasksCount

      • activeEC2ServiceCount

      • activeFargateServiceCount

      • drainingEC2ServiceCount

      • drainingFargateServiceCount

      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 hasStatistics() method.

      Returns:
      Additional information about your clusters that are separated by launch type. They include the following:

      • runningEC2TasksCount

      • RunningFargateTasksCount

      • pendingEC2TasksCount

      • pendingFargateTasksCount

      • activeEC2ServiceCount

      • activeFargateServiceCount

      • drainingEC2ServiceCount

      • drainingFargateServiceCount

    • 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 cluster to help you categorize and organize them. Each tag consists of a key and an optional value. You define both.

      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 cluster to help you categorize and organize them. Each tag consists of a key and an optional value. You define both.

      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.

    • hasSettings

      public final boolean hasSettings()
      For responses, this returns true if the service returned a value for the Settings 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.
    • settings

      public final List<ClusterSetting> settings()

      The settings for the cluster. This parameter indicates whether CloudWatch Container Insights is on or off for a cluster.

      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 hasSettings() method.

      Returns:
      The settings for the cluster. This parameter indicates whether CloudWatch Container Insights is on or off for a cluster.
    • hasCapacityProviders

      public final boolean hasCapacityProviders()
      For responses, this returns true if the service returned a value for the CapacityProviders 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.
    • capacityProviders

      public final List<String> capacityProviders()

      The capacity providers associated with the cluster.

      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 hasCapacityProviders() method.

      Returns:
      The capacity providers associated with the cluster.
    • hasDefaultCapacityProviderStrategy

      public final boolean hasDefaultCapacityProviderStrategy()
      For responses, this returns true if the service returned a value for the DefaultCapacityProviderStrategy 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.
    • defaultCapacityProviderStrategy

      public final List<CapacityProviderStrategyItem> defaultCapacityProviderStrategy()

      The default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used.

      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 hasDefaultCapacityProviderStrategy() method.

      Returns:
      The default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used.
    • hasAttachments

      public final boolean hasAttachments()
      For responses, this returns true if the service returned a value for the Attachments 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.
    • attachments

      public final List<Attachment> attachments()

      The resources attached to a cluster. When using a capacity provider with a cluster, the capacity provider and associated resources are returned as cluster attachments.

      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 hasAttachments() method.

      Returns:
      The resources attached to a cluster. When using a capacity provider with a cluster, the capacity provider and associated resources are returned as cluster attachments.
    • attachmentsStatus

      public final String attachmentsStatus()

      The status of the capacity providers associated with the cluster. The following are the states that are returned.

      UPDATE_IN_PROGRESS

      The available capacity providers for the cluster are updating.

      UPDATE_COMPLETE

      The capacity providers have successfully updated.

      UPDATE_FAILED

      The capacity provider updates failed.

      Returns:
      The status of the capacity providers associated with the cluster. The following are the states that are returned.

      UPDATE_IN_PROGRESS

      The available capacity providers for the cluster are updating.

      UPDATE_COMPLETE

      The capacity providers have successfully updated.

      UPDATE_FAILED

      The capacity provider updates failed.

    • serviceConnectDefaults

      public final ClusterServiceConnectDefaults serviceConnectDefaults()

      Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the enabled parameter to true in the ServiceConnectConfiguration. You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default parameter.

      Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

      Returns:
      Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the enabled parameter to true in the ServiceConnectConfiguration. You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default parameter.

      Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

    • toBuilder

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

      public static Cluster.Builder builder()
    • serializableBuilderClass

      public static Class<? extends Cluster.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.