/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ECS { namespace Model { /** *

A regional grouping of one or more container instances on which 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:

* AWS API * Reference

*/ class AWS_ECS_API Cluster { public: Cluster(); Cluster(Aws::Utils::Json::JsonView jsonValue); Cluster& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains * the arn:aws:ecs namespace, followed by the Region of the cluster, * the AWS account ID of the cluster owner, the cluster namespace, and * then the cluster name. For example, * arn:aws:ecs:region:012345678910:cluster/test.

*/ inline const Aws::String& GetClusterArn() const{ return m_clusterArn; } /** *

The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains * the arn:aws:ecs namespace, followed by the Region of the cluster, * the AWS account ID of the cluster owner, the cluster namespace, and * then the cluster name. For example, * arn:aws:ecs:region:012345678910:cluster/test.

*/ inline bool ClusterArnHasBeenSet() const { return m_clusterArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains * the arn:aws:ecs namespace, followed by the Region of the cluster, * the AWS account ID of the cluster owner, the cluster namespace, and * then the cluster name. For example, * arn:aws:ecs:region:012345678910:cluster/test.

*/ inline void SetClusterArn(const Aws::String& value) { m_clusterArnHasBeenSet = true; m_clusterArn = value; } /** *

The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains * the arn:aws:ecs namespace, followed by the Region of the cluster, * the AWS account ID of the cluster owner, the cluster namespace, and * then the cluster name. For example, * arn:aws:ecs:region:012345678910:cluster/test.

*/ inline void SetClusterArn(Aws::String&& value) { m_clusterArnHasBeenSet = true; m_clusterArn = std::move(value); } /** *

The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains * the arn:aws:ecs namespace, followed by the Region of the cluster, * the AWS account ID of the cluster owner, the cluster namespace, and * then the cluster name. For example, * arn:aws:ecs:region:012345678910:cluster/test.

*/ inline void SetClusterArn(const char* value) { m_clusterArnHasBeenSet = true; m_clusterArn.assign(value); } /** *

The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains * the arn:aws:ecs namespace, followed by the Region of the cluster, * the AWS account ID of the cluster owner, the cluster namespace, and * then the cluster name. For example, * arn:aws:ecs:region:012345678910:cluster/test.

*/ inline Cluster& WithClusterArn(const Aws::String& value) { SetClusterArn(value); return *this;} /** *

The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains * the arn:aws:ecs namespace, followed by the Region of the cluster, * the AWS account ID of the cluster owner, the cluster namespace, and * then the cluster name. For example, * arn:aws:ecs:region:012345678910:cluster/test.

*/ inline Cluster& WithClusterArn(Aws::String&& value) { SetClusterArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains * the arn:aws:ecs namespace, followed by the Region of the cluster, * the AWS account ID of the cluster owner, the cluster namespace, and * then the cluster name. For example, * arn:aws:ecs:region:012345678910:cluster/test.

*/ inline Cluster& WithClusterArn(const char* value) { SetClusterArn(value); return *this;} /** *

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

*/ inline const Aws::String& GetClusterName() const{ return m_clusterName; } /** *

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

*/ inline bool ClusterNameHasBeenSet() const { return m_clusterNameHasBeenSet; } /** *

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

*/ inline void SetClusterName(const Aws::String& value) { m_clusterNameHasBeenSet = true; m_clusterName = value; } /** *

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

*/ inline void SetClusterName(Aws::String&& value) { m_clusterNameHasBeenSet = true; m_clusterName = std::move(value); } /** *

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

*/ inline void SetClusterName(const char* value) { m_clusterNameHasBeenSet = true; m_clusterName.assign(value); } /** *

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

*/ inline Cluster& WithClusterName(const Aws::String& value) { SetClusterName(value); return *this;} /** *

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

*/ inline Cluster& WithClusterName(Aws::String&& value) { SetClusterName(std::move(value)); return *this;} /** *

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

*/ inline Cluster& WithClusterName(const char* value) { SetClusterName(value); return *this;} /** *

The status of the cluster. The following are the possible states that will be * 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 * associated with it and the resources needed for the capacity provider are being * created.

DEPROVISIONING

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

FAILED

The cluster has capacity * providers 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, so you should not rely on INACTIVE clusters * persisting.

*/ inline const Aws::String& GetStatus() const{ return m_status; } /** *

The status of the cluster. The following are the possible states that will be * 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 * associated with it and the resources needed for the capacity provider are being * created.

DEPROVISIONING

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

FAILED

The cluster has capacity * providers 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, so you should not rely on INACTIVE clusters * persisting.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The status of the cluster. The following are the possible states that will be * 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 * associated with it and the resources needed for the capacity provider are being * created.

DEPROVISIONING

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

FAILED

The cluster has capacity * providers 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, so you should not rely on INACTIVE clusters * persisting.

*/ inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The status of the cluster. The following are the possible states that will be * 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 * associated with it and the resources needed for the capacity provider are being * created.

DEPROVISIONING

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

FAILED

The cluster has capacity * providers 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, so you should not rely on INACTIVE clusters * persisting.

*/ inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The status of the cluster. The following are the possible states that will be * 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 * associated with it and the resources needed for the capacity provider are being * created.

DEPROVISIONING

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

FAILED

The cluster has capacity * providers 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, so you should not rely on INACTIVE clusters * persisting.

*/ inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); } /** *

The status of the cluster. The following are the possible states that will be * 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 * associated with it and the resources needed for the capacity provider are being * created.

DEPROVISIONING

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

FAILED

The cluster has capacity * providers 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, so you should not rely on INACTIVE clusters * persisting.

*/ inline Cluster& WithStatus(const Aws::String& value) { SetStatus(value); return *this;} /** *

The status of the cluster. The following are the possible states that will be * 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 * associated with it and the resources needed for the capacity provider are being * created.

DEPROVISIONING

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

FAILED

The cluster has capacity * providers 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, so you should not rely on INACTIVE clusters * persisting.

*/ inline Cluster& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;} /** *

The status of the cluster. The following are the possible states that will be * 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 * associated with it and the resources needed for the capacity provider are being * created.

DEPROVISIONING

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

FAILED

The cluster has capacity * providers 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, so you should not rely on INACTIVE clusters * persisting.

*/ inline Cluster& WithStatus(const char* value) { SetStatus(value); return *this;} /** *

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

*/ inline int GetRegisteredContainerInstancesCount() const{ return m_registeredContainerInstancesCount; } /** *

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

*/ inline bool RegisteredContainerInstancesCountHasBeenSet() const { return m_registeredContainerInstancesCountHasBeenSet; } /** *

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

*/ inline void SetRegisteredContainerInstancesCount(int value) { m_registeredContainerInstancesCountHasBeenSet = true; m_registeredContainerInstancesCount = value; } /** *

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

*/ inline Cluster& WithRegisteredContainerInstancesCount(int value) { SetRegisteredContainerInstancesCount(value); return *this;} /** *

The number of tasks in the cluster that are in the RUNNING * state.

*/ inline int GetRunningTasksCount() const{ return m_runningTasksCount; } /** *

The number of tasks in the cluster that are in the RUNNING * state.

*/ inline bool RunningTasksCountHasBeenSet() const { return m_runningTasksCountHasBeenSet; } /** *

The number of tasks in the cluster that are in the RUNNING * state.

*/ inline void SetRunningTasksCount(int value) { m_runningTasksCountHasBeenSet = true; m_runningTasksCount = value; } /** *

The number of tasks in the cluster that are in the RUNNING * state.

*/ inline Cluster& WithRunningTasksCount(int value) { SetRunningTasksCount(value); return *this;} /** *

The number of tasks in the cluster that are in the PENDING * state.

*/ inline int GetPendingTasksCount() const{ return m_pendingTasksCount; } /** *

The number of tasks in the cluster that are in the PENDING * state.

*/ inline bool PendingTasksCountHasBeenSet() const { return m_pendingTasksCountHasBeenSet; } /** *

The number of tasks in the cluster that are in the PENDING * state.

*/ inline void SetPendingTasksCount(int value) { m_pendingTasksCountHasBeenSet = true; m_pendingTasksCount = value; } /** *

The number of tasks in the cluster that are in the PENDING * state.

*/ inline Cluster& WithPendingTasksCount(int value) { SetPendingTasksCount(value); return *this;} /** *

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

*/ inline int GetActiveServicesCount() const{ return m_activeServicesCount; } /** *

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

*/ inline bool ActiveServicesCountHasBeenSet() const { return m_activeServicesCountHasBeenSet; } /** *

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

*/ inline void SetActiveServicesCount(int value) { m_activeServicesCountHasBeenSet = true; m_activeServicesCount = value; } /** *

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

*/ inline Cluster& WithActiveServicesCount(int value) { SetActiveServicesCount(value); return *this;} /** *

Additional information about your clusters that are separated by launch type, * including:

  • runningEC2TasksCount

  • *

    RunningFargateTasksCount

  • pendingEC2TasksCount

  • *
  • pendingFargateTasksCount

  • activeEC2ServiceCount

    *
  • activeFargateServiceCount

  • *

    drainingEC2ServiceCount

  • drainingFargateServiceCount

    *
*/ inline const Aws::Vector& GetStatistics() const{ return m_statistics; } /** *

Additional information about your clusters that are separated by launch type, * including:

  • runningEC2TasksCount

  • *

    RunningFargateTasksCount

  • pendingEC2TasksCount

  • *
  • pendingFargateTasksCount

  • activeEC2ServiceCount

    *
  • activeFargateServiceCount

  • *

    drainingEC2ServiceCount

  • drainingFargateServiceCount

    *
*/ inline bool StatisticsHasBeenSet() const { return m_statisticsHasBeenSet; } /** *

Additional information about your clusters that are separated by launch type, * including:

  • runningEC2TasksCount

  • *

    RunningFargateTasksCount

  • pendingEC2TasksCount

  • *
  • pendingFargateTasksCount

  • activeEC2ServiceCount

    *
  • activeFargateServiceCount

  • *

    drainingEC2ServiceCount

  • drainingFargateServiceCount

    *
*/ inline void SetStatistics(const Aws::Vector& value) { m_statisticsHasBeenSet = true; m_statistics = value; } /** *

Additional information about your clusters that are separated by launch type, * including:

  • runningEC2TasksCount

  • *

    RunningFargateTasksCount

  • pendingEC2TasksCount

  • *
  • pendingFargateTasksCount

  • activeEC2ServiceCount

    *
  • activeFargateServiceCount

  • *

    drainingEC2ServiceCount

  • drainingFargateServiceCount

    *
*/ inline void SetStatistics(Aws::Vector&& value) { m_statisticsHasBeenSet = true; m_statistics = std::move(value); } /** *

Additional information about your clusters that are separated by launch type, * including:

  • runningEC2TasksCount

  • *

    RunningFargateTasksCount

  • pendingEC2TasksCount

  • *
  • pendingFargateTasksCount

  • activeEC2ServiceCount

    *
  • activeFargateServiceCount

  • *

    drainingEC2ServiceCount

  • drainingFargateServiceCount

    *
*/ inline Cluster& WithStatistics(const Aws::Vector& value) { SetStatistics(value); return *this;} /** *

Additional information about your clusters that are separated by launch type, * including:

  • runningEC2TasksCount

  • *

    RunningFargateTasksCount

  • pendingEC2TasksCount

  • *
  • pendingFargateTasksCount

  • activeEC2ServiceCount

    *
  • activeFargateServiceCount

  • *

    drainingEC2ServiceCount

  • drainingFargateServiceCount

    *
*/ inline Cluster& WithStatistics(Aws::Vector&& value) { SetStatistics(std::move(value)); return *this;} /** *

Additional information about your clusters that are separated by launch type, * including:

  • runningEC2TasksCount

  • *

    RunningFargateTasksCount

  • pendingEC2TasksCount

  • *
  • pendingFargateTasksCount

  • activeEC2ServiceCount

    *
  • activeFargateServiceCount

  • *

    drainingEC2ServiceCount

  • drainingFargateServiceCount

    *
*/ inline Cluster& AddStatistics(const KeyValuePair& value) { m_statisticsHasBeenSet = true; m_statistics.push_back(value); return *this; } /** *

Additional information about your clusters that are separated by launch type, * including:

  • runningEC2TasksCount

  • *

    RunningFargateTasksCount

  • pendingEC2TasksCount

  • *
  • pendingFargateTasksCount

  • activeEC2ServiceCount

    *
  • activeFargateServiceCount

  • *

    drainingEC2ServiceCount

  • drainingFargateServiceCount

    *
*/ inline Cluster& AddStatistics(KeyValuePair&& value) { m_statisticsHasBeenSet = true; m_statistics.push_back(std::move(value)); return *this; } /** *

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, both of which * you define.

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 AWS 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.

*/ inline const Aws::Vector& GetTags() const{ return m_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, both of which * you define.

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 AWS 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.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

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, both of which * you define.

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 AWS 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.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

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, both of which * you define.

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 AWS 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.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

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, both of which * you define.

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 AWS 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.

*/ inline Cluster& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

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, both of which * you define.

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 AWS 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.

*/ inline Cluster& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

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, both of which * you define.

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 AWS 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.

*/ inline Cluster& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

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, both of which * you define.

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 AWS 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.

*/ inline Cluster& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The settings for the cluster. This parameter indicates whether CloudWatch * Container Insights is enabled or disabled for a cluster.

*/ inline const Aws::Vector& GetSettings() const{ return m_settings; } /** *

The settings for the cluster. This parameter indicates whether CloudWatch * Container Insights is enabled or disabled for a cluster.

*/ inline bool SettingsHasBeenSet() const { return m_settingsHasBeenSet; } /** *

The settings for the cluster. This parameter indicates whether CloudWatch * Container Insights is enabled or disabled for a cluster.

*/ inline void SetSettings(const Aws::Vector& value) { m_settingsHasBeenSet = true; m_settings = value; } /** *

The settings for the cluster. This parameter indicates whether CloudWatch * Container Insights is enabled or disabled for a cluster.

*/ inline void SetSettings(Aws::Vector&& value) { m_settingsHasBeenSet = true; m_settings = std::move(value); } /** *

The settings for the cluster. This parameter indicates whether CloudWatch * Container Insights is enabled or disabled for a cluster.

*/ inline Cluster& WithSettings(const Aws::Vector& value) { SetSettings(value); return *this;} /** *

The settings for the cluster. This parameter indicates whether CloudWatch * Container Insights is enabled or disabled for a cluster.

*/ inline Cluster& WithSettings(Aws::Vector&& value) { SetSettings(std::move(value)); return *this;} /** *

The settings for the cluster. This parameter indicates whether CloudWatch * Container Insights is enabled or disabled for a cluster.

*/ inline Cluster& AddSettings(const ClusterSetting& value) { m_settingsHasBeenSet = true; m_settings.push_back(value); return *this; } /** *

The settings for the cluster. This parameter indicates whether CloudWatch * Container Insights is enabled or disabled for a cluster.

*/ inline Cluster& AddSettings(ClusterSetting&& value) { m_settingsHasBeenSet = true; m_settings.push_back(std::move(value)); return *this; } /** *

The capacity providers associated with the cluster.

*/ inline const Aws::Vector& GetCapacityProviders() const{ return m_capacityProviders; } /** *

The capacity providers associated with the cluster.

*/ inline bool CapacityProvidersHasBeenSet() const { return m_capacityProvidersHasBeenSet; } /** *

The capacity providers associated with the cluster.

*/ inline void SetCapacityProviders(const Aws::Vector& value) { m_capacityProvidersHasBeenSet = true; m_capacityProviders = value; } /** *

The capacity providers associated with the cluster.

*/ inline void SetCapacityProviders(Aws::Vector&& value) { m_capacityProvidersHasBeenSet = true; m_capacityProviders = std::move(value); } /** *

The capacity providers associated with the cluster.

*/ inline Cluster& WithCapacityProviders(const Aws::Vector& value) { SetCapacityProviders(value); return *this;} /** *

The capacity providers associated with the cluster.

*/ inline Cluster& WithCapacityProviders(Aws::Vector&& value) { SetCapacityProviders(std::move(value)); return *this;} /** *

The capacity providers associated with the cluster.

*/ inline Cluster& AddCapacityProviders(const Aws::String& value) { m_capacityProvidersHasBeenSet = true; m_capacityProviders.push_back(value); return *this; } /** *

The capacity providers associated with the cluster.

*/ inline Cluster& AddCapacityProviders(Aws::String&& value) { m_capacityProvidersHasBeenSet = true; m_capacityProviders.push_back(std::move(value)); return *this; } /** *

The capacity providers associated with the cluster.

*/ inline Cluster& AddCapacityProviders(const char* value) { m_capacityProvidersHasBeenSet = true; m_capacityProviders.push_back(value); return *this; } /** *

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.

*/ inline const Aws::Vector& GetDefaultCapacityProviderStrategy() const{ return m_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.

*/ inline bool DefaultCapacityProviderStrategyHasBeenSet() const { return m_defaultCapacityProviderStrategyHasBeenSet; } /** *

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.

*/ inline void SetDefaultCapacityProviderStrategy(const Aws::Vector& value) { m_defaultCapacityProviderStrategyHasBeenSet = true; m_defaultCapacityProviderStrategy = value; } /** *

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.

*/ inline void SetDefaultCapacityProviderStrategy(Aws::Vector&& value) { m_defaultCapacityProviderStrategyHasBeenSet = true; m_defaultCapacityProviderStrategy = std::move(value); } /** *

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.

*/ inline Cluster& WithDefaultCapacityProviderStrategy(const Aws::Vector& value) { SetDefaultCapacityProviderStrategy(value); return *this;} /** *

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.

*/ inline Cluster& WithDefaultCapacityProviderStrategy(Aws::Vector&& value) { SetDefaultCapacityProviderStrategy(std::move(value)); return *this;} /** *

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.

*/ inline Cluster& AddDefaultCapacityProviderStrategy(const CapacityProviderStrategyItem& value) { m_defaultCapacityProviderStrategyHasBeenSet = true; m_defaultCapacityProviderStrategy.push_back(value); return *this; } /** *

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.

*/ inline Cluster& AddDefaultCapacityProviderStrategy(CapacityProviderStrategyItem&& value) { m_defaultCapacityProviderStrategyHasBeenSet = true; m_defaultCapacityProviderStrategy.push_back(std::move(value)); return *this; } /** *

The resources attached to a cluster. When using a capacity provider with a * cluster, the Auto Scaling plan that is created will be returned as a cluster * attachment.

*/ inline const Aws::Vector& GetAttachments() const{ return m_attachments; } /** *

The resources attached to a cluster. When using a capacity provider with a * cluster, the Auto Scaling plan that is created will be returned as a cluster * attachment.

*/ inline bool AttachmentsHasBeenSet() const { return m_attachmentsHasBeenSet; } /** *

The resources attached to a cluster. When using a capacity provider with a * cluster, the Auto Scaling plan that is created will be returned as a cluster * attachment.

*/ inline void SetAttachments(const Aws::Vector& value) { m_attachmentsHasBeenSet = true; m_attachments = value; } /** *

The resources attached to a cluster. When using a capacity provider with a * cluster, the Auto Scaling plan that is created will be returned as a cluster * attachment.

*/ inline void SetAttachments(Aws::Vector&& value) { m_attachmentsHasBeenSet = true; m_attachments = std::move(value); } /** *

The resources attached to a cluster. When using a capacity provider with a * cluster, the Auto Scaling plan that is created will be returned as a cluster * attachment.

*/ inline Cluster& WithAttachments(const Aws::Vector& value) { SetAttachments(value); return *this;} /** *

The resources attached to a cluster. When using a capacity provider with a * cluster, the Auto Scaling plan that is created will be returned as a cluster * attachment.

*/ inline Cluster& WithAttachments(Aws::Vector&& value) { SetAttachments(std::move(value)); return *this;} /** *

The resources attached to a cluster. When using a capacity provider with a * cluster, the Auto Scaling plan that is created will be returned as a cluster * attachment.

*/ inline Cluster& AddAttachments(const Attachment& value) { m_attachmentsHasBeenSet = true; m_attachments.push_back(value); return *this; } /** *

The resources attached to a cluster. When using a capacity provider with a * cluster, the Auto Scaling plan that is created will be returned as a cluster * attachment.

*/ inline Cluster& AddAttachments(Attachment&& value) { m_attachmentsHasBeenSet = true; m_attachments.push_back(std::move(value)); return *this; } /** *

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

*
UPDATE_IN_PROGRESS

The available capacity providers for the * cluster are updating. This occurs when the Auto Scaling plan is provisioning or * deprovisioning.

UPDATE_COMPLETE

The capacity * providers have successfully updated.

UPDATE_FAILED
*

The capacity provider updates failed.

*/ inline const Aws::String& GetAttachmentsStatus() const{ return m_attachmentsStatus; } /** *

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

*
UPDATE_IN_PROGRESS

The available capacity providers for the * cluster are updating. This occurs when the Auto Scaling plan is provisioning or * deprovisioning.

UPDATE_COMPLETE

The capacity * providers have successfully updated.

UPDATE_FAILED
*

The capacity provider updates failed.

*/ inline bool AttachmentsStatusHasBeenSet() const { return m_attachmentsStatusHasBeenSet; } /** *

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

*
UPDATE_IN_PROGRESS

The available capacity providers for the * cluster are updating. This occurs when the Auto Scaling plan is provisioning or * deprovisioning.

UPDATE_COMPLETE

The capacity * providers have successfully updated.

UPDATE_FAILED
*

The capacity provider updates failed.

*/ inline void SetAttachmentsStatus(const Aws::String& value) { m_attachmentsStatusHasBeenSet = true; m_attachmentsStatus = value; } /** *

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

*
UPDATE_IN_PROGRESS

The available capacity providers for the * cluster are updating. This occurs when the Auto Scaling plan is provisioning or * deprovisioning.

UPDATE_COMPLETE

The capacity * providers have successfully updated.

UPDATE_FAILED
*

The capacity provider updates failed.

*/ inline void SetAttachmentsStatus(Aws::String&& value) { m_attachmentsStatusHasBeenSet = true; m_attachmentsStatus = std::move(value); } /** *

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

*
UPDATE_IN_PROGRESS

The available capacity providers for the * cluster are updating. This occurs when the Auto Scaling plan is provisioning or * deprovisioning.

UPDATE_COMPLETE

The capacity * providers have successfully updated.

UPDATE_FAILED
*

The capacity provider updates failed.

*/ inline void SetAttachmentsStatus(const char* value) { m_attachmentsStatusHasBeenSet = true; m_attachmentsStatus.assign(value); } /** *

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

*
UPDATE_IN_PROGRESS

The available capacity providers for the * cluster are updating. This occurs when the Auto Scaling plan is provisioning or * deprovisioning.

UPDATE_COMPLETE

The capacity * providers have successfully updated.

UPDATE_FAILED
*

The capacity provider updates failed.

*/ inline Cluster& WithAttachmentsStatus(const Aws::String& value) { SetAttachmentsStatus(value); return *this;} /** *

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

*
UPDATE_IN_PROGRESS

The available capacity providers for the * cluster are updating. This occurs when the Auto Scaling plan is provisioning or * deprovisioning.

UPDATE_COMPLETE

The capacity * providers have successfully updated.

UPDATE_FAILED
*

The capacity provider updates failed.

*/ inline Cluster& WithAttachmentsStatus(Aws::String&& value) { SetAttachmentsStatus(std::move(value)); return *this;} /** *

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

*
UPDATE_IN_PROGRESS

The available capacity providers for the * cluster are updating. This occurs when the Auto Scaling plan is provisioning or * deprovisioning.

UPDATE_COMPLETE

The capacity * providers have successfully updated.

UPDATE_FAILED
*

The capacity provider updates failed.

*/ inline Cluster& WithAttachmentsStatus(const char* value) { SetAttachmentsStatus(value); return *this;} private: Aws::String m_clusterArn; bool m_clusterArnHasBeenSet; Aws::String m_clusterName; bool m_clusterNameHasBeenSet; Aws::String m_status; bool m_statusHasBeenSet; int m_registeredContainerInstancesCount; bool m_registeredContainerInstancesCountHasBeenSet; int m_runningTasksCount; bool m_runningTasksCountHasBeenSet; int m_pendingTasksCount; bool m_pendingTasksCountHasBeenSet; int m_activeServicesCount; bool m_activeServicesCountHasBeenSet; Aws::Vector m_statistics; bool m_statisticsHasBeenSet; Aws::Vector m_tags; bool m_tagsHasBeenSet; Aws::Vector m_settings; bool m_settingsHasBeenSet; Aws::Vector m_capacityProviders; bool m_capacityProvidersHasBeenSet; Aws::Vector m_defaultCapacityProviderStrategy; bool m_defaultCapacityProviderStrategyHasBeenSet; Aws::Vector m_attachments; bool m_attachmentsHasBeenSet; Aws::String m_attachmentsStatus; bool m_attachmentsStatusHasBeenSet; }; } // namespace Model } // namespace ECS } // namespace Aws