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

The short name or full Amazon Resource Name (ARN) of the service to create * the task set in.

*/ inline const Aws::String& GetService() const{ return m_service; } /** *

The short name or full Amazon Resource Name (ARN) of the service to create * the task set in.

*/ inline bool ServiceHasBeenSet() const { return m_serviceHasBeenSet; } /** *

The short name or full Amazon Resource Name (ARN) of the service to create * the task set in.

*/ inline void SetService(const Aws::String& value) { m_serviceHasBeenSet = true; m_service = value; } /** *

The short name or full Amazon Resource Name (ARN) of the service to create * the task set in.

*/ inline void SetService(Aws::String&& value) { m_serviceHasBeenSet = true; m_service = std::move(value); } /** *

The short name or full Amazon Resource Name (ARN) of the service to create * the task set in.

*/ inline void SetService(const char* value) { m_serviceHasBeenSet = true; m_service.assign(value); } /** *

The short name or full Amazon Resource Name (ARN) of the service to create * the task set in.

*/ inline CreateTaskSetRequest& WithService(const Aws::String& value) { SetService(value); return *this;} /** *

The short name or full Amazon Resource Name (ARN) of the service to create * the task set in.

*/ inline CreateTaskSetRequest& WithService(Aws::String&& value) { SetService(std::move(value)); return *this;} /** *

The short name or full Amazon Resource Name (ARN) of the service to create * the task set in.

*/ inline CreateTaskSetRequest& WithService(const char* value) { SetService(value); return *this;} /** *

The short name or full Amazon Resource Name (ARN) of the cluster that hosts * the service to create the task set in.

*/ inline const Aws::String& GetCluster() const{ return m_cluster; } /** *

The short name or full Amazon Resource Name (ARN) of the cluster that hosts * the service to create the task set in.

*/ inline bool ClusterHasBeenSet() const { return m_clusterHasBeenSet; } /** *

The short name or full Amazon Resource Name (ARN) of the cluster that hosts * the service to create the task set in.

*/ inline void SetCluster(const Aws::String& value) { m_clusterHasBeenSet = true; m_cluster = value; } /** *

The short name or full Amazon Resource Name (ARN) of the cluster that hosts * the service to create the task set in.

*/ inline void SetCluster(Aws::String&& value) { m_clusterHasBeenSet = true; m_cluster = std::move(value); } /** *

The short name or full Amazon Resource Name (ARN) of the cluster that hosts * the service to create the task set in.

*/ inline void SetCluster(const char* value) { m_clusterHasBeenSet = true; m_cluster.assign(value); } /** *

The short name or full Amazon Resource Name (ARN) of the cluster that hosts * the service to create the task set in.

*/ inline CreateTaskSetRequest& WithCluster(const Aws::String& value) { SetCluster(value); return *this;} /** *

The short name or full Amazon Resource Name (ARN) of the cluster that hosts * the service to create the task set in.

*/ inline CreateTaskSetRequest& WithCluster(Aws::String&& value) { SetCluster(std::move(value)); return *this;} /** *

The short name or full Amazon Resource Name (ARN) of the cluster that hosts * the service to create the task set in.

*/ inline CreateTaskSetRequest& WithCluster(const char* value) { SetCluster(value); return *this;} /** *

An optional non-unique tag that identifies this task set in external systems. * If the task set is associated with a service discovery registry, the tasks in * this task set will have the ECS_TASK_SET_EXTERNAL_ID Cloud Map * attribute set to the provided value.

*/ inline const Aws::String& GetExternalId() const{ return m_externalId; } /** *

An optional non-unique tag that identifies this task set in external systems. * If the task set is associated with a service discovery registry, the tasks in * this task set will have the ECS_TASK_SET_EXTERNAL_ID Cloud Map * attribute set to the provided value.

*/ inline bool ExternalIdHasBeenSet() const { return m_externalIdHasBeenSet; } /** *

An optional non-unique tag that identifies this task set in external systems. * If the task set is associated with a service discovery registry, the tasks in * this task set will have the ECS_TASK_SET_EXTERNAL_ID Cloud Map * attribute set to the provided value.

*/ inline void SetExternalId(const Aws::String& value) { m_externalIdHasBeenSet = true; m_externalId = value; } /** *

An optional non-unique tag that identifies this task set in external systems. * If the task set is associated with a service discovery registry, the tasks in * this task set will have the ECS_TASK_SET_EXTERNAL_ID Cloud Map * attribute set to the provided value.

*/ inline void SetExternalId(Aws::String&& value) { m_externalIdHasBeenSet = true; m_externalId = std::move(value); } /** *

An optional non-unique tag that identifies this task set in external systems. * If the task set is associated with a service discovery registry, the tasks in * this task set will have the ECS_TASK_SET_EXTERNAL_ID Cloud Map * attribute set to the provided value.

*/ inline void SetExternalId(const char* value) { m_externalIdHasBeenSet = true; m_externalId.assign(value); } /** *

An optional non-unique tag that identifies this task set in external systems. * If the task set is associated with a service discovery registry, the tasks in * this task set will have the ECS_TASK_SET_EXTERNAL_ID Cloud Map * attribute set to the provided value.

*/ inline CreateTaskSetRequest& WithExternalId(const Aws::String& value) { SetExternalId(value); return *this;} /** *

An optional non-unique tag that identifies this task set in external systems. * If the task set is associated with a service discovery registry, the tasks in * this task set will have the ECS_TASK_SET_EXTERNAL_ID Cloud Map * attribute set to the provided value.

*/ inline CreateTaskSetRequest& WithExternalId(Aws::String&& value) { SetExternalId(std::move(value)); return *this;} /** *

An optional non-unique tag that identifies this task set in external systems. * If the task set is associated with a service discovery registry, the tasks in * this task set will have the ECS_TASK_SET_EXTERNAL_ID Cloud Map * attribute set to the provided value.

*/ inline CreateTaskSetRequest& WithExternalId(const char* value) { SetExternalId(value); return *this;} /** *

The task definition for the tasks in the task set to use.

*/ inline const Aws::String& GetTaskDefinition() const{ return m_taskDefinition; } /** *

The task definition for the tasks in the task set to use.

*/ inline bool TaskDefinitionHasBeenSet() const { return m_taskDefinitionHasBeenSet; } /** *

The task definition for the tasks in the task set to use.

*/ inline void SetTaskDefinition(const Aws::String& value) { m_taskDefinitionHasBeenSet = true; m_taskDefinition = value; } /** *

The task definition for the tasks in the task set to use.

*/ inline void SetTaskDefinition(Aws::String&& value) { m_taskDefinitionHasBeenSet = true; m_taskDefinition = std::move(value); } /** *

The task definition for the tasks in the task set to use.

*/ inline void SetTaskDefinition(const char* value) { m_taskDefinitionHasBeenSet = true; m_taskDefinition.assign(value); } /** *

The task definition for the tasks in the task set to use.

*/ inline CreateTaskSetRequest& WithTaskDefinition(const Aws::String& value) { SetTaskDefinition(value); return *this;} /** *

The task definition for the tasks in the task set to use.

*/ inline CreateTaskSetRequest& WithTaskDefinition(Aws::String&& value) { SetTaskDefinition(std::move(value)); return *this;} /** *

The task definition for the tasks in the task set to use.

*/ inline CreateTaskSetRequest& WithTaskDefinition(const char* value) { SetTaskDefinition(value); return *this;} /** *

An object representing the network configuration for a task set.

*/ inline const NetworkConfiguration& GetNetworkConfiguration() const{ return m_networkConfiguration; } /** *

An object representing the network configuration for a task set.

*/ inline bool NetworkConfigurationHasBeenSet() const { return m_networkConfigurationHasBeenSet; } /** *

An object representing the network configuration for a task set.

*/ inline void SetNetworkConfiguration(const NetworkConfiguration& value) { m_networkConfigurationHasBeenSet = true; m_networkConfiguration = value; } /** *

An object representing the network configuration for a task set.

*/ inline void SetNetworkConfiguration(NetworkConfiguration&& value) { m_networkConfigurationHasBeenSet = true; m_networkConfiguration = std::move(value); } /** *

An object representing the network configuration for a task set.

*/ inline CreateTaskSetRequest& WithNetworkConfiguration(const NetworkConfiguration& value) { SetNetworkConfiguration(value); return *this;} /** *

An object representing the network configuration for a task set.

*/ inline CreateTaskSetRequest& WithNetworkConfiguration(NetworkConfiguration&& value) { SetNetworkConfiguration(std::move(value)); return *this;} /** *

A load balancer object representing the load balancer to use with the task * set. The supported load balancer types are either an Application Load Balancer * or a Network Load Balancer.

*/ inline const Aws::Vector& GetLoadBalancers() const{ return m_loadBalancers; } /** *

A load balancer object representing the load balancer to use with the task * set. The supported load balancer types are either an Application Load Balancer * or a Network Load Balancer.

*/ inline bool LoadBalancersHasBeenSet() const { return m_loadBalancersHasBeenSet; } /** *

A load balancer object representing the load balancer to use with the task * set. The supported load balancer types are either an Application Load Balancer * or a Network Load Balancer.

*/ inline void SetLoadBalancers(const Aws::Vector& value) { m_loadBalancersHasBeenSet = true; m_loadBalancers = value; } /** *

A load balancer object representing the load balancer to use with the task * set. The supported load balancer types are either an Application Load Balancer * or a Network Load Balancer.

*/ inline void SetLoadBalancers(Aws::Vector&& value) { m_loadBalancersHasBeenSet = true; m_loadBalancers = std::move(value); } /** *

A load balancer object representing the load balancer to use with the task * set. The supported load balancer types are either an Application Load Balancer * or a Network Load Balancer.

*/ inline CreateTaskSetRequest& WithLoadBalancers(const Aws::Vector& value) { SetLoadBalancers(value); return *this;} /** *

A load balancer object representing the load balancer to use with the task * set. The supported load balancer types are either an Application Load Balancer * or a Network Load Balancer.

*/ inline CreateTaskSetRequest& WithLoadBalancers(Aws::Vector&& value) { SetLoadBalancers(std::move(value)); return *this;} /** *

A load balancer object representing the load balancer to use with the task * set. The supported load balancer types are either an Application Load Balancer * or a Network Load Balancer.

*/ inline CreateTaskSetRequest& AddLoadBalancers(const LoadBalancer& value) { m_loadBalancersHasBeenSet = true; m_loadBalancers.push_back(value); return *this; } /** *

A load balancer object representing the load balancer to use with the task * set. The supported load balancer types are either an Application Load Balancer * or a Network Load Balancer.

*/ inline CreateTaskSetRequest& AddLoadBalancers(LoadBalancer&& value) { m_loadBalancersHasBeenSet = true; m_loadBalancers.push_back(std::move(value)); return *this; } /** *

The details of the service discovery registries to assign to this task set. * For more information, see Service * discovery.

*/ inline const Aws::Vector& GetServiceRegistries() const{ return m_serviceRegistries; } /** *

The details of the service discovery registries to assign to this task set. * For more information, see Service * discovery.

*/ inline bool ServiceRegistriesHasBeenSet() const { return m_serviceRegistriesHasBeenSet; } /** *

The details of the service discovery registries to assign to this task set. * For more information, see Service * discovery.

*/ inline void SetServiceRegistries(const Aws::Vector& value) { m_serviceRegistriesHasBeenSet = true; m_serviceRegistries = value; } /** *

The details of the service discovery registries to assign to this task set. * For more information, see Service * discovery.

*/ inline void SetServiceRegistries(Aws::Vector&& value) { m_serviceRegistriesHasBeenSet = true; m_serviceRegistries = std::move(value); } /** *

The details of the service discovery registries to assign to this task set. * For more information, see Service * discovery.

*/ inline CreateTaskSetRequest& WithServiceRegistries(const Aws::Vector& value) { SetServiceRegistries(value); return *this;} /** *

The details of the service discovery registries to assign to this task set. * For more information, see Service * discovery.

*/ inline CreateTaskSetRequest& WithServiceRegistries(Aws::Vector&& value) { SetServiceRegistries(std::move(value)); return *this;} /** *

The details of the service discovery registries to assign to this task set. * For more information, see Service * discovery.

*/ inline CreateTaskSetRequest& AddServiceRegistries(const ServiceRegistry& value) { m_serviceRegistriesHasBeenSet = true; m_serviceRegistries.push_back(value); return *this; } /** *

The details of the service discovery registries to assign to this task set. * For more information, see Service * discovery.

*/ inline CreateTaskSetRequest& AddServiceRegistries(ServiceRegistry&& value) { m_serviceRegistriesHasBeenSet = true; m_serviceRegistries.push_back(std::move(value)); return *this; } /** *

The launch type that new tasks in the task set uses. For more information, * see Amazon * ECS launch types in the Amazon Elastic Container Service Developer * Guide.

If a launchType is specified, the * capacityProviderStrategy parameter must be omitted.

*/ inline const LaunchType& GetLaunchType() const{ return m_launchType; } /** *

The launch type that new tasks in the task set uses. For more information, * see Amazon * ECS launch types in the Amazon Elastic Container Service Developer * Guide.

If a launchType is specified, the * capacityProviderStrategy parameter must be omitted.

*/ inline bool LaunchTypeHasBeenSet() const { return m_launchTypeHasBeenSet; } /** *

The launch type that new tasks in the task set uses. For more information, * see Amazon * ECS launch types in the Amazon Elastic Container Service Developer * Guide.

If a launchType is specified, the * capacityProviderStrategy parameter must be omitted.

*/ inline void SetLaunchType(const LaunchType& value) { m_launchTypeHasBeenSet = true; m_launchType = value; } /** *

The launch type that new tasks in the task set uses. For more information, * see Amazon * ECS launch types in the Amazon Elastic Container Service Developer * Guide.

If a launchType is specified, the * capacityProviderStrategy parameter must be omitted.

*/ inline void SetLaunchType(LaunchType&& value) { m_launchTypeHasBeenSet = true; m_launchType = std::move(value); } /** *

The launch type that new tasks in the task set uses. For more information, * see Amazon * ECS launch types in the Amazon Elastic Container Service Developer * Guide.

If a launchType is specified, the * capacityProviderStrategy parameter must be omitted.

*/ inline CreateTaskSetRequest& WithLaunchType(const LaunchType& value) { SetLaunchType(value); return *this;} /** *

The launch type that new tasks in the task set uses. For more information, * see Amazon * ECS launch types in the Amazon Elastic Container Service Developer * Guide.

If a launchType is specified, the * capacityProviderStrategy parameter must be omitted.

*/ inline CreateTaskSetRequest& WithLaunchType(LaunchType&& value) { SetLaunchType(std::move(value)); return *this;} /** *

The capacity provider strategy to use for the task set.

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 a * capacityProviderStrategy is specified, the launchType * parameter must be omitted. If no capacityProviderStrategy or * launchType is specified, the * defaultCapacityProviderStrategy for the cluster is 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 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 * 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& GetCapacityProviderStrategy() const{ return m_capacityProviderStrategy; } /** *

The capacity provider strategy to use for the task set.

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 a * capacityProviderStrategy is specified, the launchType * parameter must be omitted. If no capacityProviderStrategy or * launchType is specified, the * defaultCapacityProviderStrategy for the cluster is 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 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 * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*/ inline bool CapacityProviderStrategyHasBeenSet() const { return m_capacityProviderStrategyHasBeenSet; } /** *

The capacity provider strategy to use for the task set.

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 a * capacityProviderStrategy is specified, the launchType * parameter must be omitted. If no capacityProviderStrategy or * launchType is specified, the * defaultCapacityProviderStrategy for the cluster is 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 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 * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*/ inline void SetCapacityProviderStrategy(const Aws::Vector& value) { m_capacityProviderStrategyHasBeenSet = true; m_capacityProviderStrategy = value; } /** *

The capacity provider strategy to use for the task set.

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 a * capacityProviderStrategy is specified, the launchType * parameter must be omitted. If no capacityProviderStrategy or * launchType is specified, the * defaultCapacityProviderStrategy for the cluster is 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 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 * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*/ inline void SetCapacityProviderStrategy(Aws::Vector&& value) { m_capacityProviderStrategyHasBeenSet = true; m_capacityProviderStrategy = std::move(value); } /** *

The capacity provider strategy to use for the task set.

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 a * capacityProviderStrategy is specified, the launchType * parameter must be omitted. If no capacityProviderStrategy or * launchType is specified, the * defaultCapacityProviderStrategy for the cluster is 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 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 * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*/ inline CreateTaskSetRequest& WithCapacityProviderStrategy(const Aws::Vector& value) { SetCapacityProviderStrategy(value); return *this;} /** *

The capacity provider strategy to use for the task set.

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 a * capacityProviderStrategy is specified, the launchType * parameter must be omitted. If no capacityProviderStrategy or * launchType is specified, the * defaultCapacityProviderStrategy for the cluster is 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 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 * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*/ inline CreateTaskSetRequest& WithCapacityProviderStrategy(Aws::Vector&& value) { SetCapacityProviderStrategy(std::move(value)); return *this;} /** *

The capacity provider strategy to use for the task set.

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 a * capacityProviderStrategy is specified, the launchType * parameter must be omitted. If no capacityProviderStrategy or * launchType is specified, the * defaultCapacityProviderStrategy for the cluster is 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 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 * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*/ inline CreateTaskSetRequest& AddCapacityProviderStrategy(const CapacityProviderStrategyItem& value) { m_capacityProviderStrategyHasBeenSet = true; m_capacityProviderStrategy.push_back(value); return *this; } /** *

The capacity provider strategy to use for the task set.

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 a * capacityProviderStrategy is specified, the launchType * parameter must be omitted. If no capacityProviderStrategy or * launchType is specified, the * defaultCapacityProviderStrategy for the cluster is 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 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 * PutClusterCapacityProviders API operation is used to update the list of * available capacity providers for a cluster after the cluster is created.

*/ inline CreateTaskSetRequest& AddCapacityProviderStrategy(CapacityProviderStrategyItem&& value) { m_capacityProviderStrategyHasBeenSet = true; m_capacityProviderStrategy.push_back(std::move(value)); return *this; } /** *

The platform version that the tasks in the task set uses. A platform version * is specified only for tasks using the Fargate launch type. If one isn't * specified, the LATEST platform version is used.

*/ inline const Aws::String& GetPlatformVersion() const{ return m_platformVersion; } /** *

The platform version that the tasks in the task set uses. A platform version * is specified only for tasks using the Fargate launch type. If one isn't * specified, the LATEST platform version is used.

*/ inline bool PlatformVersionHasBeenSet() const { return m_platformVersionHasBeenSet; } /** *

The platform version that the tasks in the task set uses. A platform version * is specified only for tasks using the Fargate launch type. If one isn't * specified, the LATEST platform version is used.

*/ inline void SetPlatformVersion(const Aws::String& value) { m_platformVersionHasBeenSet = true; m_platformVersion = value; } /** *

The platform version that the tasks in the task set uses. A platform version * is specified only for tasks using the Fargate launch type. If one isn't * specified, the LATEST platform version is used.

*/ inline void SetPlatformVersion(Aws::String&& value) { m_platformVersionHasBeenSet = true; m_platformVersion = std::move(value); } /** *

The platform version that the tasks in the task set uses. A platform version * is specified only for tasks using the Fargate launch type. If one isn't * specified, the LATEST platform version is used.

*/ inline void SetPlatformVersion(const char* value) { m_platformVersionHasBeenSet = true; m_platformVersion.assign(value); } /** *

The platform version that the tasks in the task set uses. A platform version * is specified only for tasks using the Fargate launch type. If one isn't * specified, the LATEST platform version is used.

*/ inline CreateTaskSetRequest& WithPlatformVersion(const Aws::String& value) { SetPlatformVersion(value); return *this;} /** *

The platform version that the tasks in the task set uses. A platform version * is specified only for tasks using the Fargate launch type. If one isn't * specified, the LATEST platform version is used.

*/ inline CreateTaskSetRequest& WithPlatformVersion(Aws::String&& value) { SetPlatformVersion(std::move(value)); return *this;} /** *

The platform version that the tasks in the task set uses. A platform version * is specified only for tasks using the Fargate launch type. If one isn't * specified, the LATEST platform version is used.

*/ inline CreateTaskSetRequest& WithPlatformVersion(const char* value) { SetPlatformVersion(value); return *this;} /** *

A floating-point percentage of the desired number of tasks to place and keep * running in the task set.

*/ inline const Scale& GetScale() const{ return m_scale; } /** *

A floating-point percentage of the desired number of tasks to place and keep * running in the task set.

*/ inline bool ScaleHasBeenSet() const { return m_scaleHasBeenSet; } /** *

A floating-point percentage of the desired number of tasks to place and keep * running in the task set.

*/ inline void SetScale(const Scale& value) { m_scaleHasBeenSet = true; m_scale = value; } /** *

A floating-point percentage of the desired number of tasks to place and keep * running in the task set.

*/ inline void SetScale(Scale&& value) { m_scaleHasBeenSet = true; m_scale = std::move(value); } /** *

A floating-point percentage of the desired number of tasks to place and keep * running in the task set.

*/ inline CreateTaskSetRequest& WithScale(const Scale& value) { SetScale(value); return *this;} /** *

A floating-point percentage of the desired number of tasks to place and keep * running in the task set.

*/ inline CreateTaskSetRequest& WithScale(Scale&& value) { SetScale(std::move(value)); return *this;} /** *

The identifier that you provide to ensure the idempotency of the request. * It's case sensitive and must be unique. It can be up to 32 ASCII characters are * allowed.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

The identifier that you provide to ensure the idempotency of the request. * It's case sensitive and must be unique. It can be up to 32 ASCII characters are * allowed.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

The identifier that you provide to ensure the idempotency of the request. * It's case sensitive and must be unique. It can be up to 32 ASCII characters are * allowed.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

The identifier that you provide to ensure the idempotency of the request. * It's case sensitive and must be unique. It can be up to 32 ASCII characters are * allowed.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

The identifier that you provide to ensure the idempotency of the request. * It's case sensitive and must be unique. It can be up to 32 ASCII characters are * allowed.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

The identifier that you provide to ensure the idempotency of the request. * It's case sensitive and must be unique. It can be up to 32 ASCII characters are * allowed.

*/ inline CreateTaskSetRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

The identifier that you provide to ensure the idempotency of the request. * It's case sensitive and must be unique. It can be up to 32 ASCII characters are * allowed.

*/ inline CreateTaskSetRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

The identifier that you provide to ensure the idempotency of the request. * It's case sensitive and must be unique. It can be up to 32 ASCII characters are * allowed.

*/ inline CreateTaskSetRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

The metadata that you apply to the task set to help you categorize and * organize them. Each tag consists of a key and an optional value. You define * both. When a service is deleted, the tags are deleted.

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 task set to help you categorize and * organize them. Each tag consists of a key and an optional value. You define * both. When a service is deleted, the tags are deleted.

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 task set to help you categorize and * organize them. Each tag consists of a key and an optional value. You define * both. When a service is deleted, the tags are deleted.

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 task set to help you categorize and * organize them. Each tag consists of a key and an optional value. You define * both. When a service is deleted, the tags are deleted.

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 task set to help you categorize and * organize them. Each tag consists of a key and an optional value. You define * both. When a service is deleted, the tags are deleted.

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 CreateTaskSetRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The metadata that you apply to the task set to help you categorize and * organize them. Each tag consists of a key and an optional value. You define * both. When a service is deleted, the tags are deleted.

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 CreateTaskSetRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The metadata that you apply to the task set to help you categorize and * organize them. Each tag consists of a key and an optional value. You define * both. When a service is deleted, the tags are deleted.

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 CreateTaskSetRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The metadata that you apply to the task set to help you categorize and * organize them. Each tag consists of a key and an optional value. You define * both. When a service is deleted, the tags are deleted.

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 CreateTaskSetRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_service; bool m_serviceHasBeenSet = false; Aws::String m_cluster; bool m_clusterHasBeenSet = false; Aws::String m_externalId; bool m_externalIdHasBeenSet = false; Aws::String m_taskDefinition; bool m_taskDefinitionHasBeenSet = false; NetworkConfiguration m_networkConfiguration; bool m_networkConfigurationHasBeenSet = false; Aws::Vector m_loadBalancers; bool m_loadBalancersHasBeenSet = false; Aws::Vector m_serviceRegistries; bool m_serviceRegistriesHasBeenSet = false; LaunchType m_launchType; bool m_launchTypeHasBeenSet = false; Aws::Vector m_capacityProviderStrategy; bool m_capacityProviderStrategyHasBeenSet = false; Aws::String m_platformVersion; bool m_platformVersionHasBeenSet = false; Scale m_scale; bool m_scaleHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace ECS } // namespace Aws