/** * 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 namespace Aws { namespace ECS { namespace Model { /** */ class CreateClusterRequest : public ECSRequest { public: AWS_ECS_API CreateClusterRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateCluster"; } AWS_ECS_API Aws::String SerializePayload() const override; AWS_ECS_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of your cluster. If you don't specify a name for your cluster, you * create a cluster that's named default. Up to 255 letters (uppercase * and lowercase), numbers, underscores, and hyphens are allowed.

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

The name of your cluster. If you don't specify a name for your cluster, you * create a cluster that's named default. Up to 255 letters (uppercase * and lowercase), numbers, underscores, and hyphens are allowed.

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

The name of your cluster. If you don't specify a name for your cluster, you * create a cluster that's named default. Up to 255 letters (uppercase * and lowercase), numbers, underscores, and hyphens are allowed.

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

The name of your cluster. If you don't specify a name for your cluster, you * create a cluster that's named default. Up to 255 letters (uppercase * and lowercase), numbers, underscores, and hyphens are allowed.

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

The name of your cluster. If you don't specify a name for your cluster, you * create a cluster that's named default. Up to 255 letters (uppercase * and lowercase), numbers, underscores, and hyphens are allowed.

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

The name of your cluster. If you don't specify a name for your cluster, you * create a cluster that's named default. Up to 255 letters (uppercase * and lowercase), numbers, underscores, and hyphens are allowed.

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

The name of your cluster. If you don't specify a name for your cluster, you * create a cluster that's named default. Up to 255 letters (uppercase * and lowercase), numbers, underscores, and hyphens are allowed.

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

The name of your cluster. If you don't specify a name for your cluster, you * create a cluster that's named default. Up to 255 letters (uppercase * and lowercase), numbers, underscores, and hyphens are allowed.

*/ inline CreateClusterRequest& WithClusterName(const char* value) { SetClusterName(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 CreateClusterRequest& 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 CreateClusterRequest& 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 CreateClusterRequest& 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 CreateClusterRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The setting to use when creating a cluster. This parameter is used to turn on * CloudWatch Container Insights for a cluster. If this value is specified, it * overrides the containerInsights value set with * PutAccountSetting or PutAccountSettingDefault.

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

The setting to use when creating a cluster. This parameter is used to turn on * CloudWatch Container Insights for a cluster. If this value is specified, it * overrides the containerInsights value set with * PutAccountSetting or PutAccountSettingDefault.

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

The setting to use when creating a cluster. This parameter is used to turn on * CloudWatch Container Insights for a cluster. If this value is specified, it * overrides the containerInsights value set with * PutAccountSetting or PutAccountSettingDefault.

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

The setting to use when creating a cluster. This parameter is used to turn on * CloudWatch Container Insights for a cluster. If this value is specified, it * overrides the containerInsights value set with * PutAccountSetting or PutAccountSettingDefault.

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

The setting to use when creating a cluster. This parameter is used to turn on * CloudWatch Container Insights for a cluster. If this value is specified, it * overrides the containerInsights value set with * PutAccountSetting or PutAccountSettingDefault.

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

The setting to use when creating a cluster. This parameter is used to turn on * CloudWatch Container Insights for a cluster. If this value is specified, it * overrides the containerInsights value set with * PutAccountSetting or PutAccountSettingDefault.

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

The setting to use when creating a cluster. This parameter is used to turn on * CloudWatch Container Insights for a cluster. If this value is specified, it * overrides the containerInsights value set with * PutAccountSetting or PutAccountSettingDefault.

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

The setting to use when creating a cluster. This parameter is used to turn on * CloudWatch Container Insights for a cluster. If this value is specified, it * overrides the containerInsights value set with * PutAccountSetting or PutAccountSettingDefault.

*/ inline CreateClusterRequest& AddSettings(ClusterSetting&& value) { m_settingsHasBeenSet = true; m_settings.push_back(std::move(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 CreateClusterRequest& WithConfiguration(const ClusterConfiguration& value) { SetConfiguration(value); return *this;} /** *

The execute command configuration for the cluster.

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

The short name of one or more capacity providers to associate with the * cluster. A capacity provider must be associated with a cluster before it can be * included as part of the default capacity provider strategy of the cluster or * used in a capacity provider strategy when calling the CreateService * or RunTask * actions.

If specifying a capacity provider that uses an Auto Scaling * group, the capacity provider must be created but not associated with another * cluster. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider * API operation.

To use a Fargate capacity provider, specify either the * FARGATE or FARGATE_SPOT capacity providers. The * Fargate capacity providers are available to all accounts and only need to be * associated with a cluster to be used.

The PutCapacityProvider * API operation is used to update the list of available capacity providers for a * cluster after the cluster is created.

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

The short name of one or more capacity providers to associate with the * cluster. A capacity provider must be associated with a cluster before it can be * included as part of the default capacity provider strategy of the cluster or * used in a capacity provider strategy when calling the CreateService * or RunTask * actions.

If specifying a capacity provider that uses an Auto Scaling * group, the capacity provider must be created but not associated with another * cluster. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider * API operation.

To use a Fargate capacity provider, specify either the * FARGATE or FARGATE_SPOT capacity providers. The * Fargate capacity providers are available to all accounts and only need to be * associated with a cluster to be used.

The PutCapacityProvider * API operation is used to update the list of available capacity providers for a * cluster after the cluster is created.

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

The short name of one or more capacity providers to associate with the * cluster. A capacity provider must be associated with a cluster before it can be * included as part of the default capacity provider strategy of the cluster or * used in a capacity provider strategy when calling the CreateService * or RunTask * actions.

If specifying a capacity provider that uses an Auto Scaling * group, the capacity provider must be created but not associated with another * cluster. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider * API operation.

To use a Fargate capacity provider, specify either the * FARGATE or FARGATE_SPOT capacity providers. The * Fargate capacity providers are available to all accounts and only need to be * associated with a cluster to be used.

The PutCapacityProvider * API operation is used to update the list of available capacity providers for a * cluster after the cluster is created.

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

The short name of one or more capacity providers to associate with the * cluster. A capacity provider must be associated with a cluster before it can be * included as part of the default capacity provider strategy of the cluster or * used in a capacity provider strategy when calling the CreateService * or RunTask * actions.

If specifying a capacity provider that uses an Auto Scaling * group, the capacity provider must be created but not associated with another * cluster. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider * API operation.

To use a Fargate capacity provider, specify either the * FARGATE or FARGATE_SPOT capacity providers. The * Fargate capacity providers are available to all accounts and only need to be * associated with a cluster to be used.

The PutCapacityProvider * API operation is used to update the list of available capacity providers for a * cluster after the cluster is created.

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

The short name of one or more capacity providers to associate with the * cluster. A capacity provider must be associated with a cluster before it can be * included as part of the default capacity provider strategy of the cluster or * used in a capacity provider strategy when calling the CreateService * or RunTask * actions.

If specifying a capacity provider that uses an Auto Scaling * group, the capacity provider must be created but not associated with another * cluster. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider * API operation.

To use a Fargate capacity provider, specify either the * FARGATE or FARGATE_SPOT capacity providers. The * Fargate capacity providers are available to all accounts and only need to be * associated with a cluster to be used.

The PutCapacityProvider * API operation is used to update the list of available capacity providers for a * cluster after the cluster is created.

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

The short name of one or more capacity providers to associate with the * cluster. A capacity provider must be associated with a cluster before it can be * included as part of the default capacity provider strategy of the cluster or * used in a capacity provider strategy when calling the CreateService * or RunTask * actions.

If specifying a capacity provider that uses an Auto Scaling * group, the capacity provider must be created but not associated with another * cluster. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider * API operation.

To use a Fargate capacity provider, specify either the * FARGATE or FARGATE_SPOT capacity providers. The * Fargate capacity providers are available to all accounts and only need to be * associated with a cluster to be used.

The PutCapacityProvider * API operation is used to update the list of available capacity providers for a * cluster after the cluster is created.

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

The short name of one or more capacity providers to associate with the * cluster. A capacity provider must be associated with a cluster before it can be * included as part of the default capacity provider strategy of the cluster or * used in a capacity provider strategy when calling the CreateService * or RunTask * actions.

If specifying a capacity provider that uses an Auto Scaling * group, the capacity provider must be created but not associated with another * cluster. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider * API operation.

To use a Fargate capacity provider, specify either the * FARGATE or FARGATE_SPOT capacity providers. The * Fargate capacity providers are available to all accounts and only need to be * associated with a cluster to be used.

The PutCapacityProvider * API operation is used to update the list of available capacity providers for a * cluster after the cluster is created.

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

The short name of one or more capacity providers to associate with the * cluster. A capacity provider must be associated with a cluster before it can be * included as part of the default capacity provider strategy of the cluster or * used in a capacity provider strategy when calling the CreateService * or RunTask * actions.

If specifying a capacity provider that uses an Auto Scaling * group, the capacity provider must be created but not associated with another * cluster. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider * API operation.

To use a Fargate capacity provider, specify either the * FARGATE or FARGATE_SPOT capacity providers. The * Fargate capacity providers are available to all accounts and only need to be * associated with a cluster to be used.

The PutCapacityProvider * API operation is used to update the list of available capacity providers for a * cluster after the cluster is created.

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

The short name of one or more capacity providers to associate with the * cluster. A capacity provider must be associated with a cluster before it can be * included as part of the default capacity provider strategy of the cluster or * used in a capacity provider strategy when calling the CreateService * or RunTask * actions.

If specifying a capacity provider that uses an Auto Scaling * group, the capacity provider must be created but not associated with another * cluster. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider * API operation.

To use a Fargate capacity provider, specify either the * FARGATE or FARGATE_SPOT capacity providers. The * Fargate capacity providers are available to all accounts and only need to be * associated with a cluster to be used.

The PutCapacityProvider * API operation is used to update the list of available capacity providers for a * cluster after the cluster is created.

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

The capacity provider strategy to set as the default for the cluster. After a * default capacity provider strategy is set for a cluster, when you call the CreateService * or RunTask * APIs with no capacity provider strategy or launch type specified, the default * capacity provider strategy for the cluster is used.

If a default capacity * provider strategy isn't defined for a cluster when it was created, it can be * defined later with the PutClusterCapacityProviders API operation.

*/ inline const Aws::Vector& GetDefaultCapacityProviderStrategy() const{ return m_defaultCapacityProviderStrategy; } /** *

The capacity provider strategy to set as the default for the cluster. After a * default capacity provider strategy is set for a cluster, when you call the CreateService * or RunTask * APIs with no capacity provider strategy or launch type specified, the default * capacity provider strategy for the cluster is used.

If a default capacity * provider strategy isn't defined for a cluster when it was created, it can be * defined later with the PutClusterCapacityProviders API operation.

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

The capacity provider strategy to set as the default for the cluster. After a * default capacity provider strategy is set for a cluster, when you call the CreateService * or RunTask * APIs with no capacity provider strategy or launch type specified, the default * capacity provider strategy for the cluster is used.

If a default capacity * provider strategy isn't defined for a cluster when it was created, it can be * defined later with the PutClusterCapacityProviders API operation.

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

The capacity provider strategy to set as the default for the cluster. After a * default capacity provider strategy is set for a cluster, when you call the CreateService * or RunTask * APIs with no capacity provider strategy or launch type specified, the default * capacity provider strategy for the cluster is used.

If a default capacity * provider strategy isn't defined for a cluster when it was created, it can be * defined later with the PutClusterCapacityProviders API operation.

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

The capacity provider strategy to set as the default for the cluster. After a * default capacity provider strategy is set for a cluster, when you call the CreateService * or RunTask * APIs with no capacity provider strategy or launch type specified, the default * capacity provider strategy for the cluster is used.

If a default capacity * provider strategy isn't defined for a cluster when it was created, it can be * defined later with the PutClusterCapacityProviders API operation.

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

The capacity provider strategy to set as the default for the cluster. After a * default capacity provider strategy is set for a cluster, when you call the CreateService * or RunTask * APIs with no capacity provider strategy or launch type specified, the default * capacity provider strategy for the cluster is used.

If a default capacity * provider strategy isn't defined for a cluster when it was created, it can be * defined later with the PutClusterCapacityProviders API operation.

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

The capacity provider strategy to set as the default for the cluster. After a * default capacity provider strategy is set for a cluster, when you call the CreateService * or RunTask * APIs with no capacity provider strategy or launch type specified, the default * capacity provider strategy for the cluster is used.

If a default capacity * provider strategy isn't defined for a cluster when it was created, it can be * defined later with the PutClusterCapacityProviders API operation.

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

The capacity provider strategy to set as the default for the cluster. After a * default capacity provider strategy is set for a cluster, when you call the CreateService * or RunTask * APIs with no capacity provider strategy or launch type specified, the default * capacity provider strategy for the cluster is used.

If a default capacity * provider strategy isn't defined for a cluster when it was created, it can be * defined later with the PutClusterCapacityProviders API operation.

*/ inline CreateClusterRequest& AddDefaultCapacityProviderStrategy(CapacityProviderStrategyItem&& value) { m_defaultCapacityProviderStrategyHasBeenSet = true; m_defaultCapacityProviderStrategy.push_back(std::move(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 ClusterServiceConnectDefaultsRequest& 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 ClusterServiceConnectDefaultsRequest& 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(ClusterServiceConnectDefaultsRequest&& 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 CreateClusterRequest& WithServiceConnectDefaults(const ClusterServiceConnectDefaultsRequest& 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 CreateClusterRequest& WithServiceConnectDefaults(ClusterServiceConnectDefaultsRequest&& value) { SetServiceConnectDefaults(std::move(value)); return *this;} private: Aws::String m_clusterName; bool m_clusterNameHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::Vector m_settings; bool m_settingsHasBeenSet = false; ClusterConfiguration m_configuration; bool m_configurationHasBeenSet = false; Aws::Vector m_capacityProviders; bool m_capacityProvidersHasBeenSet = false; Aws::Vector m_defaultCapacityProviderStrategy; bool m_defaultCapacityProviderStrategyHasBeenSet = false; ClusterServiceConnectDefaultsRequest m_serviceConnectDefaults; bool m_serviceConnectDefaultsHasBeenSet = false; }; } // namespace Model } // namespace ECS } // namespace Aws