/** * 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 RunTaskRequest : public ECSRequest { public: AWS_ECS_API 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_ECS_API Aws::String SerializePayload() const override; AWS_ECS_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The capacity provider strategy to use for the task.

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.

*

When you use cluster auto scaling, you must specify * capacityProviderStrategy and not launchType.

A * capacity provider strategy may contain a maximum of 6 capacity providers.

*/ inline const Aws::Vector& GetCapacityProviderStrategy() const{ return m_capacityProviderStrategy; } /** *

The capacity provider strategy to use for the task.

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.

*

When you use cluster auto scaling, you must specify * capacityProviderStrategy and not launchType.

A * capacity provider strategy may contain a maximum of 6 capacity providers.

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

The capacity provider strategy to use for the task.

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.

*

When you use cluster auto scaling, you must specify * capacityProviderStrategy and not launchType.

A * capacity provider strategy may contain a maximum of 6 capacity providers.

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

The capacity provider strategy to use for the task.

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.

*

When you use cluster auto scaling, you must specify * capacityProviderStrategy and not launchType.

A * capacity provider strategy may contain a maximum of 6 capacity providers.

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

The capacity provider strategy to use for the task.

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.

*

When you use cluster auto scaling, you must specify * capacityProviderStrategy and not launchType.

A * capacity provider strategy may contain a maximum of 6 capacity providers.

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

The capacity provider strategy to use for the task.

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.

*

When you use cluster auto scaling, you must specify * capacityProviderStrategy and not launchType.

A * capacity provider strategy may contain a maximum of 6 capacity providers.

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

The capacity provider strategy to use for the task.

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.

*

When you use cluster auto scaling, you must specify * capacityProviderStrategy and not launchType.

A * capacity provider strategy may contain a maximum of 6 capacity providers.

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

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.

*

When you use cluster auto scaling, you must specify * capacityProviderStrategy and not launchType.

A * capacity provider strategy may contain a maximum of 6 capacity providers.

*/ 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 to run your * task on. 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 to run your * task on. 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 to run your * task on. 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 to run your * task on. 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 to run your * task on. 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 to run your * task on. 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 to run your * task on. 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 to run your * task on. 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 for each 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 for each 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 for each 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 for each call.

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

Specifies whether to use 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 use 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 use 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 use 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;} /** *

Determines whether to use the execute command functionality for the * containers in this task. If true, this enables execute command * functionality on all containers in the task.

If true, then * the task definition must have a task role, or you must provide one as an * override.

*/ inline bool GetEnableExecuteCommand() const{ return m_enableExecuteCommand; } /** *

Determines whether to use the execute command functionality for the * containers in this task. If true, this enables execute command * functionality on all containers in the task.

If true, then * the task definition must have a task role, or you must provide one as an * override.

*/ inline bool EnableExecuteCommandHasBeenSet() const { return m_enableExecuteCommandHasBeenSet; } /** *

Determines whether to use the execute command functionality for the * containers in this task. If true, this enables execute command * functionality on all containers in the task.

If true, then * the task definition must have a task role, or you must provide one as an * override.

*/ inline void SetEnableExecuteCommand(bool value) { m_enableExecuteCommandHasBeenSet = true; m_enableExecuteCommand = value; } /** *

Determines whether to use the execute command functionality for the * containers in this task. If true, this enables execute command * functionality on all containers in the task.

If true, then * the task definition must have a task role, or you must provide one as an * override.

*/ inline RunTaskRequest& WithEnableExecuteCommand(bool value) { SetEnableExecuteCommand(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 infrastructure to run your standalone task on. For more information, see * Amazon * ECS launch types in the Amazon Elastic Container Service Developer * Guide.

The FARGATE launch type runs your tasks on * Fargate On-Demand infrastructure.

Fargate Spot infrastructure is * available for use but a capacity provider strategy must be used. For more * information, see Fargate * capacity providers in the Amazon ECS User Guide for Fargate.

*

The EC2 launch type runs your tasks on Amazon EC2 * instances registered to your cluster.

The EXTERNAL launch * type runs your tasks on your on-premises server or virtual machine (VM) capacity * registered to your cluster.

A task can use either a launch type or a * capacity provider strategy. If a launchType is specified, the * capacityProviderStrategy parameter must be omitted.

When you * use cluster auto scaling, you must specify capacityProviderStrategy * and not launchType.

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

The infrastructure to run your standalone task on. For more information, see * Amazon * ECS launch types in the Amazon Elastic Container Service Developer * Guide.

The FARGATE launch type runs your tasks on * Fargate On-Demand infrastructure.

Fargate Spot infrastructure is * available for use but a capacity provider strategy must be used. For more * information, see Fargate * capacity providers in the Amazon ECS User Guide for Fargate.

*

The EC2 launch type runs your tasks on Amazon EC2 * instances registered to your cluster.

The EXTERNAL launch * type runs your tasks on your on-premises server or virtual machine (VM) capacity * registered to your cluster.

A task can use either a launch type or a * capacity provider strategy. If a launchType is specified, the * capacityProviderStrategy parameter must be omitted.

When you * use cluster auto scaling, you must specify capacityProviderStrategy * and not launchType.

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

The infrastructure to run your standalone task on. For more information, see * Amazon * ECS launch types in the Amazon Elastic Container Service Developer * Guide.

The FARGATE launch type runs your tasks on * Fargate On-Demand infrastructure.

Fargate Spot infrastructure is * available for use but a capacity provider strategy must be used. For more * information, see Fargate * capacity providers in the Amazon ECS User Guide for Fargate.

*

The EC2 launch type runs your tasks on Amazon EC2 * instances registered to your cluster.

The EXTERNAL launch * type runs your tasks on your on-premises server or virtual machine (VM) capacity * registered to your cluster.

A task can use either a launch type or a * capacity provider strategy. If a launchType is specified, the * capacityProviderStrategy parameter must be omitted.

When you * use cluster auto scaling, you must specify capacityProviderStrategy * and not launchType.

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

The infrastructure to run your standalone task on. For more information, see * Amazon * ECS launch types in the Amazon Elastic Container Service Developer * Guide.

The FARGATE launch type runs your tasks on * Fargate On-Demand infrastructure.

Fargate Spot infrastructure is * available for use but a capacity provider strategy must be used. For more * information, see Fargate * capacity providers in the Amazon ECS User Guide for Fargate.

*

The EC2 launch type runs your tasks on Amazon EC2 * instances registered to your cluster.

The EXTERNAL launch * type runs your tasks on your on-premises server or virtual machine (VM) capacity * registered to your cluster.

A task can use either a launch type or a * capacity provider strategy. If a launchType is specified, the * capacityProviderStrategy parameter must be omitted.

When you * use cluster auto scaling, you must specify capacityProviderStrategy * and not launchType.

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

The infrastructure to run your standalone task on. For more information, see * Amazon * ECS launch types in the Amazon Elastic Container Service Developer * Guide.

The FARGATE launch type runs your tasks on * Fargate On-Demand infrastructure.

Fargate Spot infrastructure is * available for use but a capacity provider strategy must be used. For more * information, see Fargate * capacity providers in the Amazon ECS User Guide for Fargate.

*

The EC2 launch type runs your tasks on Amazon EC2 * instances registered to your cluster.

The EXTERNAL launch * type runs your tasks on your on-premises server or virtual machine (VM) capacity * registered to your cluster.

A task can use either a launch type or a * capacity provider strategy. If a launchType is specified, the * capacityProviderStrategy parameter must be omitted.

When you * use cluster auto scaling, you must specify capacityProviderStrategy * and not launchType.

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

The infrastructure to run your standalone task on. For more information, see * Amazon * ECS launch types in the Amazon Elastic Container Service Developer * Guide.

The FARGATE launch type runs your tasks on * Fargate On-Demand infrastructure.

Fargate Spot infrastructure is * available for use but a capacity provider strategy must be used. For more * information, see Fargate * capacity providers in the Amazon ECS User Guide for Fargate.

*

The EC2 launch type runs your tasks on Amazon EC2 * instances registered to your cluster.

The EXTERNAL launch * type runs your tasks on your on-premises server or virtual machine (VM) capacity * registered to your cluster.

A task can use either a launch type or a * capacity provider strategy. If a launchType is specified, the * capacityProviderStrategy parameter must be omitted.

When you * use cluster auto scaling, you must specify capacityProviderStrategy * and not launchType.

*/ 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 isn't 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 isn't 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 isn't 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 isn't 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 isn't 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 isn't 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's 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's 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's 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's 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's 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's 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 for each 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 for each 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 for each 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 for each 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 for each 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 for each 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 for each 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 for each 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 5 strategy rules for each 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 5 strategy rules for each task.

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

The placement strategy objects to use for the task. You can specify a maximum * of 5 strategy rules for each 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 5 strategy rules for each 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 5 strategy rules for each 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 5 strategy rules for each 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 5 strategy rules for each 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 5 strategy rules for each task.

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

The platform version the task uses. A platform version is only specified for * tasks hosted on Fargate. If one isn't specified, the LATEST * platform version is used. For more information, see 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 uses. A platform version is only specified for * tasks hosted on Fargate. If one isn't specified, the LATEST * platform version is used. For more information, see Fargate * platform versions in the Amazon Elastic Container Service Developer * Guide.

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

The platform version the task uses. A platform version is only specified for * tasks hosted on Fargate. If one isn't specified, the LATEST * platform version is used. For more information, see 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 uses. A platform version is only specified for * tasks hosted on Fargate. If one isn't specified, the LATEST * platform version is used. For more information, see 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 uses. A platform version is only specified for * tasks hosted on Fargate. If one isn't specified, the LATEST * platform version is used. For more information, see 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 uses. A platform version is only specified for * tasks hosted on Fargate. If one isn't specified, the LATEST * platform version is used. For more information, see 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 uses. A platform version is only specified for * tasks hosted on Fargate. If one isn't specified, the LATEST * platform version is used. For more information, see 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 uses. A platform version is only specified for * tasks hosted on Fargate. If one isn't specified, the LATEST * platform version is used. For more information, see 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 aren't 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 aren't 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 aren't 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 aren't 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 aren't 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 aren't 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. The reference ID can have a maximum * length of 1024 characters.

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

The reference ID to use for the task. The reference ID can have a maximum * length of 1024 characters.

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

The reference ID to use for the task. The reference ID can have a maximum * length of 1024 characters.

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

The reference ID to use for the task. The reference ID can have a maximum * length of 1024 characters.

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

The reference ID to use for the task. The reference ID can have a maximum * length of 1024 characters.

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

The reference ID to use for the task. The reference ID can have a maximum * length of 1024 characters.

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

The reference ID to use for the task. The reference ID can have a maximum * length of 1024 characters.

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

The reference ID to use for the task. The reference ID can have a maximum * length of 1024 characters.

*/ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 isn't specified, the latest ACTIVE revision * is used.

When you create a policy for run-task, you can set the resource * to be the latest task definition revision, or a specific revision.

The * full ARN value must match the value that you specified as the * Resource of the principal's permissions policy.

When you * specify the policy resource as the latest task definition version (by setting * the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName.

*

When you specify the policy resource as a specific task definition version * (by setting the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1 * or * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1.

*

For more information, see Policy * Resources for Amazon ECS in the Amazon Elastic Container Service developer * Guide.

*/ 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 isn't specified, the latest ACTIVE revision * is used.

When you create a policy for run-task, you can set the resource * to be the latest task definition revision, or a specific revision.

The * full ARN value must match the value that you specified as the * Resource of the principal's permissions policy.

When you * specify the policy resource as the latest task definition version (by setting * the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName.

*

When you specify the policy resource as a specific task definition version * (by setting the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1 * or * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1.

*

For more information, see Policy * Resources for Amazon ECS in the Amazon Elastic Container Service developer * Guide.

*/ 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 isn't specified, the latest ACTIVE revision * is used.

When you create a policy for run-task, you can set the resource * to be the latest task definition revision, or a specific revision.

The * full ARN value must match the value that you specified as the * Resource of the principal's permissions policy.

When you * specify the policy resource as the latest task definition version (by setting * the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName.

*

When you specify the policy resource as a specific task definition version * (by setting the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1 * or * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1.

*

For more information, see Policy * Resources for Amazon ECS in the Amazon Elastic Container Service developer * Guide.

*/ 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 isn't specified, the latest ACTIVE revision * is used.

When you create a policy for run-task, you can set the resource * to be the latest task definition revision, or a specific revision.

The * full ARN value must match the value that you specified as the * Resource of the principal's permissions policy.

When you * specify the policy resource as the latest task definition version (by setting * the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName.

*

When you specify the policy resource as a specific task definition version * (by setting the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1 * or * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1.

*

For more information, see Policy * Resources for Amazon ECS in the Amazon Elastic Container Service developer * Guide.

*/ 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 isn't specified, the latest ACTIVE revision * is used.

When you create a policy for run-task, you can set the resource * to be the latest task definition revision, or a specific revision.

The * full ARN value must match the value that you specified as the * Resource of the principal's permissions policy.

When you * specify the policy resource as the latest task definition version (by setting * the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName.

*

When you specify the policy resource as a specific task definition version * (by setting the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1 * or * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1.

*

For more information, see Policy * Resources for Amazon ECS in the Amazon Elastic Container Service developer * Guide.

*/ 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 isn't specified, the latest ACTIVE revision * is used.

When you create a policy for run-task, you can set the resource * to be the latest task definition revision, or a specific revision.

The * full ARN value must match the value that you specified as the * Resource of the principal's permissions policy.

When you * specify the policy resource as the latest task definition version (by setting * the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName.

*

When you specify the policy resource as a specific task definition version * (by setting the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1 * or * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1.

*

For more information, see Policy * Resources for Amazon ECS in the Amazon Elastic Container Service developer * Guide.

*/ 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 isn't specified, the latest ACTIVE revision * is used.

When you create a policy for run-task, you can set the resource * to be the latest task definition revision, or a specific revision.

The * full ARN value must match the value that you specified as the * Resource of the principal's permissions policy.

When you * specify the policy resource as the latest task definition version (by setting * the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName.

*

When you specify the policy resource as a specific task definition version * (by setting the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1 * or * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1.

*

For more information, see Policy * Resources for Amazon ECS in the Amazon Elastic Container Service developer * Guide.

*/ 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 isn't specified, the latest ACTIVE revision * is used.

When you create a policy for run-task, you can set the resource * to be the latest task definition revision, or a specific revision.

The * full ARN value must match the value that you specified as the * Resource of the principal's permissions policy.

When you * specify the policy resource as the latest task definition version (by setting * the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName.

*

When you specify the policy resource as a specific task definition version * (by setting the Resource in the policy to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1 * or * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*), * then set this value to * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:1.

*

For more information, see Policy * Resources for Amazon ECS in the Amazon Elastic Container Service developer * Guide.

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