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

The capacity provider strategy to use for the task.

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 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& GetCapacityProviderStrategy() const{ return m_capacityProviderStrategy; } /** *

The capacity provider strategy to use for the task.

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 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 CapacityProviderStrategyHasBeenSet() const { return m_capacityProviderStrategyHasBeenSet; } /** *

The capacity provider strategy to use for the task.

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 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 SetCapacityProviderStrategy(const Aws::Vector& value) { m_capacityProviderStrategyHasBeenSet = true; m_capacityProviderStrategy = value; } /** *

The capacity provider strategy to use for the task.

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 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 SetCapacityProviderStrategy(Aws::Vector&& value) { m_capacityProviderStrategyHasBeenSet = true; m_capacityProviderStrategy = std::move(value); } /** *

The capacity provider strategy to use for the task.

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 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 RunTaskRequest& WithCapacityProviderStrategy(const Aws::Vector& value) { SetCapacityProviderStrategy(value); return *this;} /** *

The capacity provider strategy to use for the task.

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

The capacity provider strategy to use for the task.

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 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 RunTaskRequest& AddCapacityProviderStrategy(const CapacityProviderStrategyItem& value) { m_capacityProviderStrategyHasBeenSet = true; m_capacityProviderStrategy.push_back(value); return *this; } /** *

The capacity provider strategy to use for the task.

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 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 RunTaskRequest& AddCapacityProviderStrategy(CapacityProviderStrategyItem&& value) { m_capacityProviderStrategyHasBeenSet = true; m_capacityProviderStrategy.push_back(std::move(value)); return *this; } /** *

The short name or full Amazon Resource Name (ARN) of the cluster on which to * run your task. If you do not specify a cluster, the default cluster is * assumed.

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

The short name or full Amazon Resource Name (ARN) of the cluster on which to * run your task. If you do not specify a cluster, the default cluster is * assumed.

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

The short name or full Amazon Resource Name (ARN) of the cluster on which to * run your task. If you do not specify a cluster, the default cluster is * assumed.

*/ 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 on which to * run your task. If you do not specify a cluster, the default cluster is * assumed.

*/ 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 on which to * run your task. If you do not specify a cluster, the default cluster is * assumed.

*/ 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 on which to * run your task. If you do not specify a cluster, the default cluster is * assumed.

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

The short name or full Amazon Resource Name (ARN) of the cluster on which to * run your task. If you do not specify a cluster, the default cluster is * assumed.

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

The short name or full Amazon Resource Name (ARN) of the cluster on which to * run your task. If you do not specify a cluster, the default cluster is * assumed.

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

The number of instantiations of the specified task to place on your cluster. * You can specify up to 10 tasks per call.

*/ inline int GetCount() const{ return m_count; } /** *

The number of instantiations of the specified task to place on your cluster. * You can specify up to 10 tasks per call.

*/ inline bool CountHasBeenSet() const { return m_countHasBeenSet; } /** *

The number of instantiations of the specified task to place on your cluster. * You can specify up to 10 tasks per call.

*/ inline void SetCount(int value) { m_countHasBeenSet = true; m_count = value; } /** *

The number of instantiations of the specified task to place on your cluster. * You can specify up to 10 tasks per call.

*/ inline RunTaskRequest& WithCount(int value) { SetCount(value); return *this;} /** *

Specifies whether to enable Amazon ECS managed tags for the task. For more * information, see Tagging * Your Amazon ECS Resources in the Amazon Elastic Container Service * Developer Guide.

*/ inline bool GetEnableECSManagedTags() const{ return m_enableECSManagedTags; } /** *

Specifies whether to enable Amazon ECS managed tags for the task. For more * information, see Tagging * Your Amazon ECS Resources in the Amazon Elastic Container Service * Developer Guide.

*/ inline bool EnableECSManagedTagsHasBeenSet() const { return m_enableECSManagedTagsHasBeenSet; } /** *

Specifies whether to enable Amazon ECS managed tags for the task. For more * information, see Tagging * Your Amazon ECS Resources in the Amazon Elastic Container Service * Developer Guide.

*/ inline void SetEnableECSManagedTags(bool value) { m_enableECSManagedTagsHasBeenSet = true; m_enableECSManagedTags = value; } /** *

Specifies whether to enable Amazon ECS managed tags for the task. For more * information, see Tagging * Your Amazon ECS Resources in the Amazon Elastic Container Service * Developer Guide.

*/ inline RunTaskRequest& WithEnableECSManagedTags(bool value) { SetEnableECSManagedTags(value); return *this;} /** *

The name of the task group to associate with the task. The default value is * the family name of the task definition (for example, family:my-family-name).

*/ inline const Aws::String& GetGroup() const{ return m_group; } /** *

The name of the task group to associate with the task. The default value is * the family name of the task definition (for example, family:my-family-name).

*/ inline bool GroupHasBeenSet() const { return m_groupHasBeenSet; } /** *

The name of the task group to associate with the task. The default value is * the family name of the task definition (for example, family:my-family-name).

*/ inline void SetGroup(const Aws::String& value) { m_groupHasBeenSet = true; m_group = value; } /** *

The name of the task group to associate with the task. The default value is * the family name of the task definition (for example, family:my-family-name).

*/ inline void SetGroup(Aws::String&& value) { m_groupHasBeenSet = true; m_group = std::move(value); } /** *

The name of the task group to associate with the task. The default value is * the family name of the task definition (for example, family:my-family-name).

*/ inline void SetGroup(const char* value) { m_groupHasBeenSet = true; m_group.assign(value); } /** *

The name of the task group to associate with the task. The default value is * the family name of the task definition (for example, family:my-family-name).

*/ inline RunTaskRequest& WithGroup(const Aws::String& value) { SetGroup(value); return *this;} /** *

The name of the task group to associate with the task. The default value is * the family name of the task definition (for example, family:my-family-name).

*/ inline RunTaskRequest& WithGroup(Aws::String&& value) { SetGroup(std::move(value)); return *this;} /** *

The name of the task group to associate with the task. The default value is * the family name of the task definition (for example, family:my-family-name).

*/ inline RunTaskRequest& WithGroup(const char* value) { SetGroup(value); return *this;} /** *

The launch type on which to run your task. 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 on which to run your task. 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 on which to run your task. 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 on which to run your task. 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 on which to run your task. 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 RunTaskRequest& WithLaunchType(const LaunchType& value) { SetLaunchType(value); return *this;} /** *

The launch type on which to run your task. 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 RunTaskRequest& WithLaunchType(LaunchType&& value) { SetLaunchType(std::move(value)); return *this;} /** *

The network configuration for the task. This parameter is required for task * definitions that use the awsvpc network mode to receive their own * elastic network interface, and it is not supported for other network modes. For * more information, see Task * Networking in the Amazon Elastic Container Service Developer * Guide.

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

The network configuration for the task. This parameter is required for task * definitions that use the awsvpc network mode to receive their own * elastic network interface, and it is not supported for other network modes. For * more information, see Task * Networking in the Amazon Elastic Container Service Developer * Guide.

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

The network configuration for the task. This parameter is required for task * definitions that use the awsvpc network mode to receive their own * elastic network interface, and it is not supported for other network modes. For * more information, see Task * Networking in the Amazon Elastic Container Service Developer * Guide.

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

The network configuration for the task. This parameter is required for task * definitions that use the awsvpc network mode to receive their own * elastic network interface, and it is not supported for other network modes. For * more information, see Task * Networking in the Amazon Elastic Container Service Developer * Guide.

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

The network configuration for the task. This parameter is required for task * definitions that use the awsvpc network mode to receive their own * elastic network interface, and it is not supported for other network modes. For * more information, see Task * Networking in the Amazon Elastic Container Service Developer * Guide.

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

The network configuration for the task. This parameter is required for task * definitions that use the awsvpc network mode to receive their own * elastic network interface, and it is not supported for other network modes. For * more information, see Task * Networking in the Amazon Elastic Container Service Developer * Guide.

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

A list of container overrides in JSON format that specify the name of a * container in the specified task definition and the overrides it should receive. * You can override the default command for a container (that is specified in the * task definition or Docker image) with a command override. You can * also override existing environment variables (that are specified in the task * definition or Docker image) on a container or add new environment variables to * it with an environment override.

A total of 8192 * characters are allowed for overrides. This limit includes the JSON formatting * characters of the override structure.

*/ inline const TaskOverride& GetOverrides() const{ return m_overrides; } /** *

A list of container overrides in JSON format that specify the name of a * container in the specified task definition and the overrides it should receive. * You can override the default command for a container (that is specified in the * task definition or Docker image) with a command override. You can * also override existing environment variables (that are specified in the task * definition or Docker image) on a container or add new environment variables to * it with an environment override.

A total of 8192 * characters are allowed for overrides. This limit includes the JSON formatting * characters of the override structure.

*/ inline bool OverridesHasBeenSet() const { return m_overridesHasBeenSet; } /** *

A list of container overrides in JSON format that specify the name of a * container in the specified task definition and the overrides it should receive. * You can override the default command for a container (that is specified in the * task definition or Docker image) with a command override. You can * also override existing environment variables (that are specified in the task * definition or Docker image) on a container or add new environment variables to * it with an environment override.

A total of 8192 * characters are allowed for overrides. This limit includes the JSON formatting * characters of the override structure.

*/ inline void SetOverrides(const TaskOverride& value) { m_overridesHasBeenSet = true; m_overrides = value; } /** *

A list of container overrides in JSON format that specify the name of a * container in the specified task definition and the overrides it should receive. * You can override the default command for a container (that is specified in the * task definition or Docker image) with a command override. You can * also override existing environment variables (that are specified in the task * definition or Docker image) on a container or add new environment variables to * it with an environment override.

A total of 8192 * characters are allowed for overrides. This limit includes the JSON formatting * characters of the override structure.

*/ inline void SetOverrides(TaskOverride&& value) { m_overridesHasBeenSet = true; m_overrides = std::move(value); } /** *

A list of container overrides in JSON format that specify the name of a * container in the specified task definition and the overrides it should receive. * You can override the default command for a container (that is specified in the * task definition or Docker image) with a command override. You can * also override existing environment variables (that are specified in the task * definition or Docker image) on a container or add new environment variables to * it with an environment override.

A total of 8192 * characters are allowed for overrides. This limit includes the JSON formatting * characters of the override structure.

*/ inline RunTaskRequest& WithOverrides(const TaskOverride& value) { SetOverrides(value); return *this;} /** *

A list of container overrides in JSON format that specify the name of a * container in the specified task definition and the overrides it should receive. * You can override the default command for a container (that is specified in the * task definition or Docker image) with a command override. You can * also override existing environment variables (that are specified in the task * definition or Docker image) on a container or add new environment variables to * it with an environment override.

A total of 8192 * characters are allowed for overrides. This limit includes the JSON formatting * characters of the override structure.

*/ inline RunTaskRequest& WithOverrides(TaskOverride&& value) { SetOverrides(std::move(value)); return *this;} /** *

An array of placement constraint objects to use for the task. You can specify * up to 10 constraints per task (including constraints in the task definition and * those specified at runtime).

*/ inline const Aws::Vector& GetPlacementConstraints() const{ return m_placementConstraints; } /** *

An array of placement constraint objects to use for the task. You can specify * up to 10 constraints per task (including constraints in the task definition and * those specified at runtime).

*/ inline bool PlacementConstraintsHasBeenSet() const { return m_placementConstraintsHasBeenSet; } /** *

An array of placement constraint objects to use for the task. You can specify * up to 10 constraints per task (including constraints in the task definition and * those specified at runtime).

*/ inline void SetPlacementConstraints(const Aws::Vector& value) { m_placementConstraintsHasBeenSet = true; m_placementConstraints = value; } /** *

An array of placement constraint objects to use for the task. You can specify * up to 10 constraints per task (including constraints in the task definition and * those specified at runtime).

*/ inline void SetPlacementConstraints(Aws::Vector&& value) { m_placementConstraintsHasBeenSet = true; m_placementConstraints = std::move(value); } /** *

An array of placement constraint objects to use for the task. You can specify * up to 10 constraints per task (including constraints in the task definition and * those specified at runtime).

*/ inline RunTaskRequest& WithPlacementConstraints(const Aws::Vector& value) { SetPlacementConstraints(value); return *this;} /** *

An array of placement constraint objects to use for the task. You can specify * up to 10 constraints per task (including constraints in the task definition and * those specified at runtime).

*/ inline RunTaskRequest& WithPlacementConstraints(Aws::Vector&& value) { SetPlacementConstraints(std::move(value)); return *this;} /** *

An array of placement constraint objects to use for the task. You can specify * up to 10 constraints per task (including constraints in the task definition and * those specified at runtime).

*/ inline RunTaskRequest& AddPlacementConstraints(const PlacementConstraint& value) { m_placementConstraintsHasBeenSet = true; m_placementConstraints.push_back(value); return *this; } /** *

An array of placement constraint objects to use for the task. You can specify * up to 10 constraints per task (including constraints in the task definition and * those specified at runtime).

*/ inline RunTaskRequest& AddPlacementConstraints(PlacementConstraint&& value) { m_placementConstraintsHasBeenSet = true; m_placementConstraints.push_back(std::move(value)); return *this; } /** *

The placement strategy objects to use for the task. You can specify a maximum * of five strategy rules per task.

*/ inline const Aws::Vector& GetPlacementStrategy() const{ return m_placementStrategy; } /** *

The placement strategy objects to use for the task. You can specify a maximum * of five strategy rules per task.

*/ inline bool PlacementStrategyHasBeenSet() const { return m_placementStrategyHasBeenSet; } /** *

The placement strategy objects to use for the task. You can specify a maximum * of five strategy rules per task.

*/ inline void SetPlacementStrategy(const Aws::Vector& value) { m_placementStrategyHasBeenSet = true; m_placementStrategy = value; } /** *

The placement strategy objects to use for the task. You can specify a maximum * of five strategy rules per task.

*/ inline void SetPlacementStrategy(Aws::Vector&& value) { m_placementStrategyHasBeenSet = true; m_placementStrategy = std::move(value); } /** *

The placement strategy objects to use for the task. You can specify a maximum * of five strategy rules per task.

*/ inline RunTaskRequest& WithPlacementStrategy(const Aws::Vector& value) { SetPlacementStrategy(value); return *this;} /** *

The placement strategy objects to use for the task. You can specify a maximum * of five strategy rules per task.

*/ inline RunTaskRequest& WithPlacementStrategy(Aws::Vector&& value) { SetPlacementStrategy(std::move(value)); return *this;} /** *

The placement strategy objects to use for the task. You can specify a maximum * of five strategy rules per task.

*/ inline RunTaskRequest& AddPlacementStrategy(const PlacementStrategy& value) { m_placementStrategyHasBeenSet = true; m_placementStrategy.push_back(value); return *this; } /** *

The placement strategy objects to use for the task. You can specify a maximum * of five strategy rules per task.

*/ inline RunTaskRequest& AddPlacementStrategy(PlacementStrategy&& value) { m_placementStrategyHasBeenSet = true; m_placementStrategy.push_back(std::move(value)); return *this; } /** *

The platform version the task should run. A platform version is only * specified for tasks using the Fargate launch type. If one is not specified, the * LATEST platform version is used by default. For more information, * see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

The platform version the task should run. A platform version is only * specified for tasks using the Fargate launch type. If one is not specified, the * LATEST platform version is used by default. For more information, * see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

The platform version the task should run. A platform version is only * specified for tasks using the Fargate launch type. If one is not specified, the * LATEST platform version is used by default. For more information, * see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

The platform version the task should run. A platform version is only * specified for tasks using the Fargate launch type. If one is not specified, the * LATEST platform version is used by default. For more information, * see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

The platform version the task should run. A platform version is only * specified for tasks using the Fargate launch type. If one is not specified, the * LATEST platform version is used by default. For more information, * see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

The platform version the task should run. A platform version is only * specified for tasks using the Fargate launch type. If one is not specified, the * LATEST platform version is used by default. For more information, * see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

The platform version the task should run. A platform version is only * specified for tasks using the Fargate launch type. If one is not specified, the * LATEST platform version is used by default. For more information, * see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

The platform version the task should run. A platform version is only * specified for tasks using the Fargate launch type. If one is not specified, the * LATEST platform version is used by default. For more information, * see AWS * Fargate Platform Versions in the Amazon Elastic Container Service * Developer Guide.

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

Specifies whether to propagate the tags from the task definition to the task. * If no value is specified, the tags are not propagated. Tags can only be * propagated to the task during task creation. To add tags to a task after task * creation, use the TagResource API action.

An error will be * received if you specify the SERVICE option when running a task.

* */ inline const PropagateTags& GetPropagateTags() const{ return m_propagateTags; } /** *

Specifies whether to propagate the tags from the task definition to the task. * If no value is specified, the tags are not propagated. Tags can only be * propagated to the task during task creation. To add tags to a task after task * creation, use the TagResource API action.

An error will be * received if you specify the SERVICE option when running a task.

* */ inline bool PropagateTagsHasBeenSet() const { return m_propagateTagsHasBeenSet; } /** *

Specifies whether to propagate the tags from the task definition to the task. * If no value is specified, the tags are not propagated. Tags can only be * propagated to the task during task creation. To add tags to a task after task * creation, use the TagResource API action.

An error will be * received if you specify the SERVICE option when running a task.

* */ inline void SetPropagateTags(const PropagateTags& value) { m_propagateTagsHasBeenSet = true; m_propagateTags = value; } /** *

Specifies whether to propagate the tags from the task definition to the task. * If no value is specified, the tags are not propagated. Tags can only be * propagated to the task during task creation. To add tags to a task after task * creation, use the TagResource API action.

An error will be * received if you specify the SERVICE option when running a task.

* */ inline void SetPropagateTags(PropagateTags&& value) { m_propagateTagsHasBeenSet = true; m_propagateTags = std::move(value); } /** *

Specifies whether to propagate the tags from the task definition to the task. * If no value is specified, the tags are not propagated. Tags can only be * propagated to the task during task creation. To add tags to a task after task * creation, use the TagResource API action.

An error will be * received if you specify the SERVICE option when running a task.

* */ inline RunTaskRequest& WithPropagateTags(const PropagateTags& value) { SetPropagateTags(value); return *this;} /** *

Specifies whether to propagate the tags from the task definition to the task. * If no value is specified, the tags are not propagated. Tags can only be * propagated to the task during task creation. To add tags to a task after task * creation, use the TagResource API action.

An error will be * received if you specify the SERVICE option when running a task.

* */ inline RunTaskRequest& WithPropagateTags(PropagateTags&& value) { SetPropagateTags(std::move(value)); return *this;} /** *

The reference ID to use for the task.

*/ inline const Aws::String& GetReferenceId() const{ return m_referenceId; } /** *

The reference ID to use for the task.

*/ inline bool ReferenceIdHasBeenSet() const { return m_referenceIdHasBeenSet; } /** *

The reference ID to use for the task.

*/ inline void SetReferenceId(const Aws::String& value) { m_referenceIdHasBeenSet = true; m_referenceId = value; } /** *

The reference ID to use for the task.

*/ inline void SetReferenceId(Aws::String&& value) { m_referenceIdHasBeenSet = true; m_referenceId = std::move(value); } /** *

The reference ID to use for the task.

*/ inline void SetReferenceId(const char* value) { m_referenceIdHasBeenSet = true; m_referenceId.assign(value); } /** *

The reference ID to use for the task.

*/ inline RunTaskRequest& WithReferenceId(const Aws::String& value) { SetReferenceId(value); return *this;} /** *

The reference ID to use for the task.

*/ inline RunTaskRequest& WithReferenceId(Aws::String&& value) { SetReferenceId(std::move(value)); return *this;} /** *

The reference ID to use for the task.

*/ inline RunTaskRequest& WithReferenceId(const char* value) { SetReferenceId(value); return *this;} /** *

An optional tag specified when a task is started. For example, if you * automatically trigger a task to run a batch process job, you could apply a * unique identifier for that job to your task with the startedBy * parameter. You can then identify which tasks belong to that job by filtering the * results of a ListTasks call with the startedBy value. Up to * 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.

If a task is started by an Amazon ECS service, then the * startedBy parameter contains the deployment ID of the service that * starts it.

*/ inline const Aws::String& GetStartedBy() const{ return m_startedBy; } /** *

An optional tag specified when a task is started. For example, if you * automatically trigger a task to run a batch process job, you could apply a * unique identifier for that job to your task with the startedBy * parameter. You can then identify which tasks belong to that job by filtering the * results of a ListTasks call with the startedBy value. Up to * 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.

If a task is started by an Amazon ECS service, then the * startedBy parameter contains the deployment ID of the service that * starts it.

*/ inline bool StartedByHasBeenSet() const { return m_startedByHasBeenSet; } /** *

An optional tag specified when a task is started. For example, if you * automatically trigger a task to run a batch process job, you could apply a * unique identifier for that job to your task with the startedBy * parameter. You can then identify which tasks belong to that job by filtering the * results of a ListTasks call with the startedBy value. Up to * 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.

If a task is started by an Amazon ECS service, then the * startedBy parameter contains the deployment ID of the service that * starts it.

*/ inline void SetStartedBy(const Aws::String& value) { m_startedByHasBeenSet = true; m_startedBy = value; } /** *

An optional tag specified when a task is started. For example, if you * automatically trigger a task to run a batch process job, you could apply a * unique identifier for that job to your task with the startedBy * parameter. You can then identify which tasks belong to that job by filtering the * results of a ListTasks call with the startedBy value. Up to * 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.

If a task is started by an Amazon ECS service, then the * startedBy parameter contains the deployment ID of the service that * starts it.

*/ inline void SetStartedBy(Aws::String&& value) { m_startedByHasBeenSet = true; m_startedBy = std::move(value); } /** *

An optional tag specified when a task is started. For example, if you * automatically trigger a task to run a batch process job, you could apply a * unique identifier for that job to your task with the startedBy * parameter. You can then identify which tasks belong to that job by filtering the * results of a ListTasks call with the startedBy value. Up to * 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.

If a task is started by an Amazon ECS service, then the * startedBy parameter contains the deployment ID of the service that * starts it.

*/ inline void SetStartedBy(const char* value) { m_startedByHasBeenSet = true; m_startedBy.assign(value); } /** *

An optional tag specified when a task is started. For example, if you * automatically trigger a task to run a batch process job, you could apply a * unique identifier for that job to your task with the startedBy * parameter. You can then identify which tasks belong to that job by filtering the * results of a ListTasks call with the startedBy value. Up to * 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.

If a task is started by an Amazon ECS service, then the * startedBy parameter contains the deployment ID of the service that * starts it.

*/ inline RunTaskRequest& WithStartedBy(const Aws::String& value) { SetStartedBy(value); return *this;} /** *

An optional tag specified when a task is started. For example, if you * automatically trigger a task to run a batch process job, you could apply a * unique identifier for that job to your task with the startedBy * parameter. You can then identify which tasks belong to that job by filtering the * results of a ListTasks call with the startedBy value. Up to * 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.

If a task is started by an Amazon ECS service, then the * startedBy parameter contains the deployment ID of the service that * starts it.

*/ inline RunTaskRequest& WithStartedBy(Aws::String&& value) { SetStartedBy(std::move(value)); return *this;} /** *

An optional tag specified when a task is started. For example, if you * automatically trigger a task to run a batch process job, you could apply a * unique identifier for that job to your task with the startedBy * parameter. You can then identify which tasks belong to that job by filtering the * results of a ListTasks call with the startedBy value. Up to * 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.

If a task is started by an Amazon ECS service, then the * startedBy parameter contains the deployment ID of the service that * starts it.

*/ inline RunTaskRequest& WithStartedBy(const char* value) { SetStartedBy(value); return *this;} /** *

The metadata that you apply to the task 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 task 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 task 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 task 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 task 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 RunTaskRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The metadata that you apply to the task 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 RunTaskRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The metadata that you apply to the task 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 RunTaskRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The metadata that you apply to the task 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 RunTaskRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The family and revision * (family:revision) or full ARN of the task definition to run. If a * revision is not specified, the latest ACTIVE revision * is used.

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

The family and revision * (family:revision) or full ARN of the task definition to run. If a * revision is not specified, the latest ACTIVE revision * is used.

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

The family and revision * (family:revision) or full ARN of the task definition to run. If a * revision is not specified, the latest ACTIVE revision * is used.

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

The family and revision * (family:revision) or full ARN of the task definition to run. If a * revision is not specified, the latest ACTIVE revision * is used.

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

The family and revision * (family:revision) or full ARN of the task definition to run. If a * revision is not specified, the latest ACTIVE revision * is used.

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

The family and revision * (family:revision) or full ARN of the task definition to run. If a * revision is not specified, the latest ACTIVE revision * is used.

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

The family and revision * (family:revision) or full ARN of the task definition to run. If a * revision is not specified, the latest ACTIVE revision * is used.

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

The family and revision * (family:revision) or full ARN of the task definition to run. If a * revision is not specified, the latest ACTIVE revision * is used.

*/ inline RunTaskRequest& WithTaskDefinition(const char* value) { SetTaskDefinition(value); return *this;} private: Aws::Vector m_capacityProviderStrategy; bool m_capacityProviderStrategyHasBeenSet; Aws::String m_cluster; bool m_clusterHasBeenSet; int m_count; bool m_countHasBeenSet; bool m_enableECSManagedTags; bool m_enableECSManagedTagsHasBeenSet; Aws::String m_group; bool m_groupHasBeenSet; LaunchType m_launchType; bool m_launchTypeHasBeenSet; NetworkConfiguration m_networkConfiguration; bool m_networkConfigurationHasBeenSet; TaskOverride m_overrides; bool m_overridesHasBeenSet; Aws::Vector m_placementConstraints; bool m_placementConstraintsHasBeenSet; Aws::Vector m_placementStrategy; bool m_placementStrategyHasBeenSet; Aws::String m_platformVersion; bool m_platformVersionHasBeenSet; PropagateTags m_propagateTags; bool m_propagateTagsHasBeenSet; Aws::String m_referenceId; bool m_referenceIdHasBeenSet; Aws::String m_startedBy; bool m_startedByHasBeenSet; Aws::Vector m_tags; bool m_tagsHasBeenSet; Aws::String m_taskDefinition; bool m_taskDefinitionHasBeenSet; }; } // namespace Model } // namespace ECS } // namespace Aws