/** * 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 #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 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:

AWS API * Reference

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

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.

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

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

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.

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

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.

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

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.

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

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.

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

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.

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

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.

*/ 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 execute command configuration for the cluster.

*/ inline const ClusterConfiguration& GetConfiguration() const{ return m_configuration; } /** *

The execute command configuration for the cluster.

*/ inline bool ConfigurationHasBeenSet() const { return m_configurationHasBeenSet; } /** *

The execute command configuration for the cluster.

*/ inline void SetConfiguration(const ClusterConfiguration& value) { m_configurationHasBeenSet = true; m_configuration = value; } /** *

The execute command configuration for the cluster.

*/ inline void SetConfiguration(ClusterConfiguration&& value) { m_configurationHasBeenSet = true; m_configuration = std::move(value); } /** *

The execute command configuration for the cluster.

*/ inline Cluster& WithConfiguration(const ClusterConfiguration& value) { SetConfiguration(value); return *this;} /** *

The execute command configuration for the cluster.

*/ inline Cluster& WithConfiguration(ClusterConfiguration&& value) { SetConfiguration(std::move(value)); return *this;} /** *

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.

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

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

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.

*/ 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 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.

*/ 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 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.

*/ 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 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.

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

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.

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

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.

*/ 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. * They include the following:

  • 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. * They include the following:

  • 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. * They include the following:

  • 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. * They include the following:

  • 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. * They include the following:

  • 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. * They include the following:

  • 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. * They include the following:

  • 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. * They include the following:

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

*/ 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. 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.

*/ 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. 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.

*/ 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. 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.

*/ 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. 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.

*/ 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. 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.

*/ 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. 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.

*/ 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. 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.

*/ 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 on or off 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 on or off for a cluster.

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

The settings for the cluster. This parameter indicates whether CloudWatch * Container Insights is on or off 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 on or off 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 on or off 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 on or off 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 on or off 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 on or off 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 capacity provider and associated resources are returned as cluster * attachments.

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

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

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.

*/ 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 capacity provider and associated resources are returned as cluster * attachments.

*/ 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 capacity provider and associated resources are returned as cluster * attachments.

*/ 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 capacity provider and associated resources are returned as cluster * attachments.

*/ 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 capacity provider and associated resources are returned as cluster * attachments.

*/ 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 capacity provider and associated resources are returned as cluster * attachments.

*/ 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 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.

*/ 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 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.

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

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.

*/ 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 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.

*/ 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 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.

*/ 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 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.

*/ 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 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.

*/ 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 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.

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

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.

*/ inline const ClusterServiceConnectDefaults& GetServiceConnectDefaults() const{ return m_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.

*/ inline bool ServiceConnectDefaultsHasBeenSet() const { return m_serviceConnectDefaultsHasBeenSet; } /** *

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.

*/ inline void SetServiceConnectDefaults(const ClusterServiceConnectDefaults& value) { m_serviceConnectDefaultsHasBeenSet = true; m_serviceConnectDefaults = value; } /** *

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.

*/ inline void SetServiceConnectDefaults(ClusterServiceConnectDefaults&& value) { m_serviceConnectDefaultsHasBeenSet = true; m_serviceConnectDefaults = std::move(value); } /** *

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.

*/ inline Cluster& WithServiceConnectDefaults(const ClusterServiceConnectDefaults& value) { SetServiceConnectDefaults(value); return *this;} /** *

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.

*/ inline Cluster& WithServiceConnectDefaults(ClusterServiceConnectDefaults&& value) { SetServiceConnectDefaults(std::move(value)); return *this;} private: Aws::String m_clusterArn; bool m_clusterArnHasBeenSet = false; Aws::String m_clusterName; bool m_clusterNameHasBeenSet = false; ClusterConfiguration m_configuration; bool m_configurationHasBeenSet = false; Aws::String m_status; bool m_statusHasBeenSet = false; int m_registeredContainerInstancesCount; bool m_registeredContainerInstancesCountHasBeenSet = false; int m_runningTasksCount; bool m_runningTasksCountHasBeenSet = false; int m_pendingTasksCount; bool m_pendingTasksCountHasBeenSet = false; int m_activeServicesCount; bool m_activeServicesCountHasBeenSet = false; Aws::Vector m_statistics; bool m_statisticsHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::Vector m_settings; bool m_settingsHasBeenSet = false; Aws::Vector m_capacityProviders; bool m_capacityProvidersHasBeenSet = false; Aws::Vector m_defaultCapacityProviderStrategy; bool m_defaultCapacityProviderStrategyHasBeenSet = false; Aws::Vector m_attachments; bool m_attachmentsHasBeenSet = false; Aws::String m_attachmentsStatus; bool m_attachmentsStatusHasBeenSet = false; ClusterServiceConnectDefaults m_serviceConnectDefaults; bool m_serviceConnectDefaultsHasBeenSet = false; }; } // namespace Model } // namespace ECS } // namespace Aws