/** * 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 namespace Aws { namespace ECS { namespace Model { /** */ class AWS_ECS_API CreateClusterRequest : public ECSRequest { public: 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::String SerializePayload() const override; Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of your cluster. If you do not specify a name for your cluster, you * create a cluster named default. Up to 255 letters (uppercase and * lowercase), numbers, and hyphens are allowed.

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

The name of your cluster. If you do not specify a name for your cluster, you * create a cluster named default. Up to 255 letters (uppercase and * lowercase), numbers, and hyphens are allowed.

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

The name of your cluster. If you do not specify a name for your cluster, you * create a cluster named default. Up to 255 letters (uppercase and * lowercase), numbers, and hyphens are allowed.

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

The name of your cluster. If you do not specify a name for your cluster, you * create a cluster named default. Up to 255 letters (uppercase and * lowercase), numbers, 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 do not specify a name for your cluster, you * create a cluster named default. Up to 255 letters (uppercase and * lowercase), numbers, and hyphens are allowed.

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

The name of your cluster. If you do not specify a name for your cluster, you * create a cluster named default. Up to 255 letters (uppercase and * lowercase), numbers, and hyphens are allowed.

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

The name of your cluster. If you do not specify a name for your cluster, you * create a cluster named default. Up to 255 letters (uppercase and * lowercase), numbers, and hyphens are allowed.

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

The name of your cluster. If you do not specify a name for your cluster, you * create a cluster named default. Up to 255 letters (uppercase and * lowercase), numbers, 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, 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 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, 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 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, 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 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, 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 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 enable * CloudWatch Container Insights for a cluster. If this value is specified, it will * override 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 enable * CloudWatch Container Insights for a cluster. If this value is specified, it will * override 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 enable * CloudWatch Container Insights for a cluster. If this value is specified, it will * override 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 enable * CloudWatch Container Insights for a cluster. If this value is specified, it will * override 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 enable * CloudWatch Container Insights for a cluster. If this value is specified, it will * override 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 enable * CloudWatch Container Insights for a cluster. If this value is specified, it will * override 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 enable * CloudWatch Container Insights for a cluster. If this value is specified, it will * override 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 enable * CloudWatch Container Insights for a cluster. If this value is specified, it will * override 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 short name of one or more capacity providers to associate with the * cluster.

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

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

The PutClusterCapacityProviders 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.

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

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

The PutClusterCapacityProviders 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.

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

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

The PutClusterCapacityProviders 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.

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

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

The PutClusterCapacityProviders 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.

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

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

The PutClusterCapacityProviders 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.

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

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

The PutClusterCapacityProviders 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.

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

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

The PutClusterCapacityProviders 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.

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

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

The PutClusterCapacityProviders 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.

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

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

The PutClusterCapacityProviders 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 use by default for the cluster.

When * creating a service or running a task on a cluster, if no capacity provider or * launch type is specified then the default capacity provider strategy for the * cluster is used.

A capacity provider strategy consists of one or more * capacity providers along with the base and weight to * assign to them. A capacity provider must be associated with the cluster to be * used in a capacity provider strategy. The PutClusterCapacityProviders API * is used to associate a capacity provider with a cluster. Only capacity providers * with an ACTIVE or UPDATING status can be used.

*

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

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

If a default capacity provider strategy is not defined for a * cluster during creation, it can be defined later with the * PutClusterCapacityProviders API operation.

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

The capacity provider strategy to use by default for the cluster.

When * creating a service or running a task on a cluster, if no capacity provider or * launch type is specified then the default capacity provider strategy for the * cluster is used.

A capacity provider strategy consists of one or more * capacity providers along with the base and weight to * assign to them. A capacity provider must be associated with the cluster to be * used in a capacity provider strategy. The PutClusterCapacityProviders API * is used to associate a capacity provider with a cluster. Only capacity providers * with an ACTIVE or UPDATING status can be used.

*

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

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

If a default capacity provider strategy is not defined for a * cluster during creation, it can be defined later with the * PutClusterCapacityProviders API operation.

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

The capacity provider strategy to use by default for the cluster.

When * creating a service or running a task on a cluster, if no capacity provider or * launch type is specified then the default capacity provider strategy for the * cluster is used.

A capacity provider strategy consists of one or more * capacity providers along with the base and weight to * assign to them. A capacity provider must be associated with the cluster to be * used in a capacity provider strategy. The PutClusterCapacityProviders API * is used to associate a capacity provider with a cluster. Only capacity providers * with an ACTIVE or UPDATING status can be used.

*

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

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

If a default capacity provider strategy is not defined for a * cluster during creation, 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 use by default for the cluster.

When * creating a service or running a task on a cluster, if no capacity provider or * launch type is specified then the default capacity provider strategy for the * cluster is used.

A capacity provider strategy consists of one or more * capacity providers along with the base and weight to * assign to them. A capacity provider must be associated with the cluster to be * used in a capacity provider strategy. The PutClusterCapacityProviders API * is used to associate a capacity provider with a cluster. Only capacity providers * with an ACTIVE or UPDATING status can be used.

*

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

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

If a default capacity provider strategy is not defined for a * cluster during creation, 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 use by default for the cluster.

When * creating a service or running a task on a cluster, if no capacity provider or * launch type is specified then the default capacity provider strategy for the * cluster is used.

A capacity provider strategy consists of one or more * capacity providers along with the base and weight to * assign to them. A capacity provider must be associated with the cluster to be * used in a capacity provider strategy. The PutClusterCapacityProviders API * is used to associate a capacity provider with a cluster. Only capacity providers * with an ACTIVE or UPDATING status can be used.

*

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

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

If a default capacity provider strategy is not defined for a * cluster during creation, 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 use by default for the cluster.

When * creating a service or running a task on a cluster, if no capacity provider or * launch type is specified then the default capacity provider strategy for the * cluster is used.

A capacity provider strategy consists of one or more * capacity providers along with the base and weight to * assign to them. A capacity provider must be associated with the cluster to be * used in a capacity provider strategy. The PutClusterCapacityProviders API * is used to associate a capacity provider with a cluster. Only capacity providers * with an ACTIVE or UPDATING status can be used.

*

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

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

If a default capacity provider strategy is not defined for a * cluster during creation, 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 use by default for the cluster.

When * creating a service or running a task on a cluster, if no capacity provider or * launch type is specified then the default capacity provider strategy for the * cluster is used.

A capacity provider strategy consists of one or more * capacity providers along with the base and weight to * assign to them. A capacity provider must be associated with the cluster to be * used in a capacity provider strategy. The PutClusterCapacityProviders API * is used to associate a capacity provider with a cluster. Only capacity providers * with an ACTIVE or UPDATING status can be used.

*

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

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

If a default capacity provider strategy is not defined for a * cluster during creation, 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 use by default for the cluster.

When * creating a service or running a task on a cluster, if no capacity provider or * launch type is specified then the default capacity provider strategy for the * cluster is used.

A capacity provider strategy consists of one or more * capacity providers along with the base and weight to * assign to them. A capacity provider must be associated with the cluster to be * used in a capacity provider strategy. The PutClusterCapacityProviders API * is used to associate a capacity provider with a cluster. Only capacity providers * with an ACTIVE or UPDATING status can be used.

*

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

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

If a default capacity provider strategy is not defined for a * cluster during creation, 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; } private: Aws::String m_clusterName; bool m_clusterNameHasBeenSet; 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; }; } // namespace Model } // namespace ECS } // namespace Aws