/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The details of a task definition which describes the container and volume
* definitions of an Amazon Elastic Container Service task. You can specify which
* Docker images to use, the required resources, and other configurations related
* to launching the task definition through an Amazon ECS service or
* task.See Also:
AWS
* API Reference
The full Amazon Resource Name (ARN) of the task definition.
*/ inline const Aws::String& GetTaskDefinitionArn() const{ return m_taskDefinitionArn; } /** *The full Amazon Resource Name (ARN) of the task definition.
*/ inline bool TaskDefinitionArnHasBeenSet() const { return m_taskDefinitionArnHasBeenSet; } /** *The full Amazon Resource Name (ARN) of the task definition.
*/ inline void SetTaskDefinitionArn(const Aws::String& value) { m_taskDefinitionArnHasBeenSet = true; m_taskDefinitionArn = value; } /** *The full Amazon Resource Name (ARN) of the task definition.
*/ inline void SetTaskDefinitionArn(Aws::String&& value) { m_taskDefinitionArnHasBeenSet = true; m_taskDefinitionArn = std::move(value); } /** *The full Amazon Resource Name (ARN) of the task definition.
*/ inline void SetTaskDefinitionArn(const char* value) { m_taskDefinitionArnHasBeenSet = true; m_taskDefinitionArn.assign(value); } /** *The full Amazon Resource Name (ARN) of the task definition.
*/ inline TaskDefinition& WithTaskDefinitionArn(const Aws::String& value) { SetTaskDefinitionArn(value); return *this;} /** *The full Amazon Resource Name (ARN) of the task definition.
*/ inline TaskDefinition& WithTaskDefinitionArn(Aws::String&& value) { SetTaskDefinitionArn(std::move(value)); return *this;} /** *The full Amazon Resource Name (ARN) of the task definition.
*/ inline TaskDefinition& WithTaskDefinitionArn(const char* value) { SetTaskDefinitionArn(value); return *this;} /** *A list of container definitions in JSON format that describe the different * containers that make up your task. For more information about container * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline const Aws::VectorA list of container definitions in JSON format that describe the different * containers that make up your task. For more information about container * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline bool ContainerDefinitionsHasBeenSet() const { return m_containerDefinitionsHasBeenSet; } /** *A list of container definitions in JSON format that describe the different * containers that make up your task. For more information about container * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline void SetContainerDefinitions(const Aws::VectorA list of container definitions in JSON format that describe the different * containers that make up your task. For more information about container * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline void SetContainerDefinitions(Aws::VectorA list of container definitions in JSON format that describe the different * containers that make up your task. For more information about container * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline TaskDefinition& WithContainerDefinitions(const Aws::VectorA list of container definitions in JSON format that describe the different * containers that make up your task. For more information about container * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline TaskDefinition& WithContainerDefinitions(Aws::VectorA list of container definitions in JSON format that describe the different * containers that make up your task. For more information about container * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline TaskDefinition& AddContainerDefinitions(const ContainerDefinition& value) { m_containerDefinitionsHasBeenSet = true; m_containerDefinitions.push_back(value); return *this; } /** *A list of container definitions in JSON format that describe the different * containers that make up your task. For more information about container * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline TaskDefinition& AddContainerDefinitions(ContainerDefinition&& value) { m_containerDefinitionsHasBeenSet = true; m_containerDefinitions.push_back(std::move(value)); return *this; } /** *The name of a family that this task definition is registered to. Up to 255 * letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.
A family groups multiple versions of a task definition. Amazon * ECS gives the first task definition that you registered to a family a revision * number of 1. Amazon ECS gives sequential revision numbers to each task * definition that you add.
*/ inline const Aws::String& GetFamily() const{ return m_family; } /** *The name of a family that this task definition is registered to. Up to 255 * letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.
A family groups multiple versions of a task definition. Amazon * ECS gives the first task definition that you registered to a family a revision * number of 1. Amazon ECS gives sequential revision numbers to each task * definition that you add.
*/ inline bool FamilyHasBeenSet() const { return m_familyHasBeenSet; } /** *The name of a family that this task definition is registered to. Up to 255 * letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.
A family groups multiple versions of a task definition. Amazon * ECS gives the first task definition that you registered to a family a revision * number of 1. Amazon ECS gives sequential revision numbers to each task * definition that you add.
*/ inline void SetFamily(const Aws::String& value) { m_familyHasBeenSet = true; m_family = value; } /** *The name of a family that this task definition is registered to. Up to 255 * letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.
A family groups multiple versions of a task definition. Amazon * ECS gives the first task definition that you registered to a family a revision * number of 1. Amazon ECS gives sequential revision numbers to each task * definition that you add.
*/ inline void SetFamily(Aws::String&& value) { m_familyHasBeenSet = true; m_family = std::move(value); } /** *The name of a family that this task definition is registered to. Up to 255 * letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.
A family groups multiple versions of a task definition. Amazon * ECS gives the first task definition that you registered to a family a revision * number of 1. Amazon ECS gives sequential revision numbers to each task * definition that you add.
*/ inline void SetFamily(const char* value) { m_familyHasBeenSet = true; m_family.assign(value); } /** *The name of a family that this task definition is registered to. Up to 255 * letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.
A family groups multiple versions of a task definition. Amazon * ECS gives the first task definition that you registered to a family a revision * number of 1. Amazon ECS gives sequential revision numbers to each task * definition that you add.
*/ inline TaskDefinition& WithFamily(const Aws::String& value) { SetFamily(value); return *this;} /** *The name of a family that this task definition is registered to. Up to 255 * letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.
A family groups multiple versions of a task definition. Amazon * ECS gives the first task definition that you registered to a family a revision * number of 1. Amazon ECS gives sequential revision numbers to each task * definition that you add.
*/ inline TaskDefinition& WithFamily(Aws::String&& value) { SetFamily(std::move(value)); return *this;} /** *The name of a family that this task definition is registered to. Up to 255 * letters (uppercase and lowercase), numbers, hyphens, and underscores are * allowed.
A family groups multiple versions of a task definition. Amazon * ECS gives the first task definition that you registered to a family a revision * number of 1. Amazon ECS gives sequential revision numbers to each task * definition that you add.
*/ inline TaskDefinition& WithFamily(const char* value) { SetFamily(value); return *this;} /** *The short name or full Amazon Resource Name (ARN) of the AWS Identity and * Access Management (IAM) role that grants containers in the task permission to * call AWS APIs on your behalf. For more information, see Amazon * ECS Task Role in the Amazon Elastic Container Service Developer * Guide.
IAM roles for tasks on Windows require that the
* -EnableTaskIAMRole option is set when you launch the Amazon
* ECS-optimized Windows AMI. Your containers must also run some configuration code
* in order to take advantage of the feature. For more information, see Windows
* IAM Roles for Tasks in the Amazon Elastic Container Service Developer
* Guide.
The short name or full Amazon Resource Name (ARN) of the AWS Identity and * Access Management (IAM) role that grants containers in the task permission to * call AWS APIs on your behalf. For more information, see Amazon * ECS Task Role in the Amazon Elastic Container Service Developer * Guide.
IAM roles for tasks on Windows require that the
* -EnableTaskIAMRole option is set when you launch the Amazon
* ECS-optimized Windows AMI. Your containers must also run some configuration code
* in order to take advantage of the feature. For more information, see Windows
* IAM Roles for Tasks in the Amazon Elastic Container Service Developer
* Guide.
The short name or full Amazon Resource Name (ARN) of the AWS Identity and * Access Management (IAM) role that grants containers in the task permission to * call AWS APIs on your behalf. For more information, see Amazon * ECS Task Role in the Amazon Elastic Container Service Developer * Guide.
IAM roles for tasks on Windows require that the
* -EnableTaskIAMRole option is set when you launch the Amazon
* ECS-optimized Windows AMI. Your containers must also run some configuration code
* in order to take advantage of the feature. For more information, see Windows
* IAM Roles for Tasks in the Amazon Elastic Container Service Developer
* Guide.
The short name or full Amazon Resource Name (ARN) of the AWS Identity and * Access Management (IAM) role that grants containers in the task permission to * call AWS APIs on your behalf. For more information, see Amazon * ECS Task Role in the Amazon Elastic Container Service Developer * Guide.
IAM roles for tasks on Windows require that the
* -EnableTaskIAMRole option is set when you launch the Amazon
* ECS-optimized Windows AMI. Your containers must also run some configuration code
* in order to take advantage of the feature. For more information, see Windows
* IAM Roles for Tasks in the Amazon Elastic Container Service Developer
* Guide.
The short name or full Amazon Resource Name (ARN) of the AWS Identity and * Access Management (IAM) role that grants containers in the task permission to * call AWS APIs on your behalf. For more information, see Amazon * ECS Task Role in the Amazon Elastic Container Service Developer * Guide.
IAM roles for tasks on Windows require that the
* -EnableTaskIAMRole option is set when you launch the Amazon
* ECS-optimized Windows AMI. Your containers must also run some configuration code
* in order to take advantage of the feature. For more information, see Windows
* IAM Roles for Tasks in the Amazon Elastic Container Service Developer
* Guide.
The short name or full Amazon Resource Name (ARN) of the AWS Identity and * Access Management (IAM) role that grants containers in the task permission to * call AWS APIs on your behalf. For more information, see Amazon * ECS Task Role in the Amazon Elastic Container Service Developer * Guide.
IAM roles for tasks on Windows require that the
* -EnableTaskIAMRole option is set when you launch the Amazon
* ECS-optimized Windows AMI. Your containers must also run some configuration code
* in order to take advantage of the feature. For more information, see Windows
* IAM Roles for Tasks in the Amazon Elastic Container Service Developer
* Guide.
The short name or full Amazon Resource Name (ARN) of the AWS Identity and * Access Management (IAM) role that grants containers in the task permission to * call AWS APIs on your behalf. For more information, see Amazon * ECS Task Role in the Amazon Elastic Container Service Developer * Guide.
IAM roles for tasks on Windows require that the
* -EnableTaskIAMRole option is set when you launch the Amazon
* ECS-optimized Windows AMI. Your containers must also run some configuration code
* in order to take advantage of the feature. For more information, see Windows
* IAM Roles for Tasks in the Amazon Elastic Container Service Developer
* Guide.
The short name or full Amazon Resource Name (ARN) of the AWS Identity and * Access Management (IAM) role that grants containers in the task permission to * call AWS APIs on your behalf. For more information, see Amazon * ECS Task Role in the Amazon Elastic Container Service Developer * Guide.
IAM roles for tasks on Windows require that the
* -EnableTaskIAMRole option is set when you launch the Amazon
* ECS-optimized Windows AMI. Your containers must also run some configuration code
* in order to take advantage of the feature. For more information, see Windows
* IAM Roles for Tasks in the Amazon Elastic Container Service Developer
* Guide.
The Amazon Resource Name (ARN) of the task execution role that grants the * Amazon ECS container agent permission to make AWS API calls on your behalf. The * task execution IAM role is required depending on the requirements of your task. * For more information, see Amazon * ECS task execution IAM role in the Amazon Elastic Container Service * Developer Guide.
*/ inline const Aws::String& GetExecutionRoleArn() const{ return m_executionRoleArn; } /** *The Amazon Resource Name (ARN) of the task execution role that grants the * Amazon ECS container agent permission to make AWS API calls on your behalf. The * task execution IAM role is required depending on the requirements of your task. * For more information, see Amazon * ECS task execution IAM role in the Amazon Elastic Container Service * Developer Guide.
*/ inline bool ExecutionRoleArnHasBeenSet() const { return m_executionRoleArnHasBeenSet; } /** *The Amazon Resource Name (ARN) of the task execution role that grants the * Amazon ECS container agent permission to make AWS API calls on your behalf. The * task execution IAM role is required depending on the requirements of your task. * For more information, see Amazon * ECS task execution IAM role in the Amazon Elastic Container Service * Developer Guide.
*/ inline void SetExecutionRoleArn(const Aws::String& value) { m_executionRoleArnHasBeenSet = true; m_executionRoleArn = value; } /** *The Amazon Resource Name (ARN) of the task execution role that grants the * Amazon ECS container agent permission to make AWS API calls on your behalf. The * task execution IAM role is required depending on the requirements of your task. * For more information, see Amazon * ECS task execution IAM role in the Amazon Elastic Container Service * Developer Guide.
*/ inline void SetExecutionRoleArn(Aws::String&& value) { m_executionRoleArnHasBeenSet = true; m_executionRoleArn = std::move(value); } /** *The Amazon Resource Name (ARN) of the task execution role that grants the * Amazon ECS container agent permission to make AWS API calls on your behalf. The * task execution IAM role is required depending on the requirements of your task. * For more information, see Amazon * ECS task execution IAM role in the Amazon Elastic Container Service * Developer Guide.
*/ inline void SetExecutionRoleArn(const char* value) { m_executionRoleArnHasBeenSet = true; m_executionRoleArn.assign(value); } /** *The Amazon Resource Name (ARN) of the task execution role that grants the * Amazon ECS container agent permission to make AWS API calls on your behalf. The * task execution IAM role is required depending on the requirements of your task. * For more information, see Amazon * ECS task execution IAM role in the Amazon Elastic Container Service * Developer Guide.
*/ inline TaskDefinition& WithExecutionRoleArn(const Aws::String& value) { SetExecutionRoleArn(value); return *this;} /** *The Amazon Resource Name (ARN) of the task execution role that grants the * Amazon ECS container agent permission to make AWS API calls on your behalf. The * task execution IAM role is required depending on the requirements of your task. * For more information, see Amazon * ECS task execution IAM role in the Amazon Elastic Container Service * Developer Guide.
*/ inline TaskDefinition& WithExecutionRoleArn(Aws::String&& value) { SetExecutionRoleArn(std::move(value)); return *this;} /** *The Amazon Resource Name (ARN) of the task execution role that grants the * Amazon ECS container agent permission to make AWS API calls on your behalf. The * task execution IAM role is required depending on the requirements of your task. * For more information, see Amazon * ECS task execution IAM role in the Amazon Elastic Container Service * Developer Guide.
*/ inline TaskDefinition& WithExecutionRoleArn(const char* value) { SetExecutionRoleArn(value); return *this;} /** *The Docker networking mode to use for the containers in the task. The valid
* values are none, bridge, awsvpc, and
* host. The default Docker network mode is bridge. If
* you are using the Fargate launch type, the awsvpc network mode is
* required. If you are using the EC2 launch type, any network mode can be used. If
* the network mode is set to none, you cannot specify port mappings
* in your container definitions, and the tasks containers do not have external
* connectivity. The host and awsvpc network modes offer
* the highest networking performance for containers because they use the EC2
* network stack instead of the virtualized network stack provided by the
* bridge mode.
With the host and
* awsvpc network modes, exposed container ports are mapped directly
* to the corresponding host port (for the host network mode) or the
* attached elastic network interface port (for the awsvpc network
* mode), so you cannot take advantage of dynamic host port mappings.
If
* the network mode is awsvpc, the task is allocated an elastic
* network interface, and you must specify a NetworkConfiguration value when
* you create a service or run a task with the task definition. For more
* information, see Task
* Networking in the Amazon Elastic Container Service Developer
* Guide.
Currently, only Amazon ECS-optimized AMIs, other Amazon
* Linux variants with the ecs-init package, or AWS Fargate
* infrastructure support the awsvpc network mode.
If
* the network mode is host, you cannot run multiple instantiations of
* the same task on a single container instance when port mappings are used.
Docker for Windows uses different network modes than Docker for Linux. When
* you register a task definition with Windows containers, you must not specify a
* network mode. If you use the console to register a task definition with Windows
* containers, you must choose the <default> network mode
* object.
For more information, see Network * settings in the Docker run reference.
*/ inline const NetworkMode& GetNetworkMode() const{ return m_networkMode; } /** *The Docker networking mode to use for the containers in the task. The valid
* values are none, bridge, awsvpc, and
* host. The default Docker network mode is bridge. If
* you are using the Fargate launch type, the awsvpc network mode is
* required. If you are using the EC2 launch type, any network mode can be used. If
* the network mode is set to none, you cannot specify port mappings
* in your container definitions, and the tasks containers do not have external
* connectivity. The host and awsvpc network modes offer
* the highest networking performance for containers because they use the EC2
* network stack instead of the virtualized network stack provided by the
* bridge mode.
With the host and
* awsvpc network modes, exposed container ports are mapped directly
* to the corresponding host port (for the host network mode) or the
* attached elastic network interface port (for the awsvpc network
* mode), so you cannot take advantage of dynamic host port mappings.
If
* the network mode is awsvpc, the task is allocated an elastic
* network interface, and you must specify a NetworkConfiguration value when
* you create a service or run a task with the task definition. For more
* information, see Task
* Networking in the Amazon Elastic Container Service Developer
* Guide.
Currently, only Amazon ECS-optimized AMIs, other Amazon
* Linux variants with the ecs-init package, or AWS Fargate
* infrastructure support the awsvpc network mode.
If
* the network mode is host, you cannot run multiple instantiations of
* the same task on a single container instance when port mappings are used.
Docker for Windows uses different network modes than Docker for Linux. When
* you register a task definition with Windows containers, you must not specify a
* network mode. If you use the console to register a task definition with Windows
* containers, you must choose the <default> network mode
* object.
For more information, see Network * settings in the Docker run reference.
*/ inline bool NetworkModeHasBeenSet() const { return m_networkModeHasBeenSet; } /** *The Docker networking mode to use for the containers in the task. The valid
* values are none, bridge, awsvpc, and
* host. The default Docker network mode is bridge. If
* you are using the Fargate launch type, the awsvpc network mode is
* required. If you are using the EC2 launch type, any network mode can be used. If
* the network mode is set to none, you cannot specify port mappings
* in your container definitions, and the tasks containers do not have external
* connectivity. The host and awsvpc network modes offer
* the highest networking performance for containers because they use the EC2
* network stack instead of the virtualized network stack provided by the
* bridge mode.
With the host and
* awsvpc network modes, exposed container ports are mapped directly
* to the corresponding host port (for the host network mode) or the
* attached elastic network interface port (for the awsvpc network
* mode), so you cannot take advantage of dynamic host port mappings.
If
* the network mode is awsvpc, the task is allocated an elastic
* network interface, and you must specify a NetworkConfiguration value when
* you create a service or run a task with the task definition. For more
* information, see Task
* Networking in the Amazon Elastic Container Service Developer
* Guide.
Currently, only Amazon ECS-optimized AMIs, other Amazon
* Linux variants with the ecs-init package, or AWS Fargate
* infrastructure support the awsvpc network mode.
If
* the network mode is host, you cannot run multiple instantiations of
* the same task on a single container instance when port mappings are used.
Docker for Windows uses different network modes than Docker for Linux. When
* you register a task definition with Windows containers, you must not specify a
* network mode. If you use the console to register a task definition with Windows
* containers, you must choose the <default> network mode
* object.
For more information, see Network * settings in the Docker run reference.
*/ inline void SetNetworkMode(const NetworkMode& value) { m_networkModeHasBeenSet = true; m_networkMode = value; } /** *The Docker networking mode to use for the containers in the task. The valid
* values are none, bridge, awsvpc, and
* host. The default Docker network mode is bridge. If
* you are using the Fargate launch type, the awsvpc network mode is
* required. If you are using the EC2 launch type, any network mode can be used. If
* the network mode is set to none, you cannot specify port mappings
* in your container definitions, and the tasks containers do not have external
* connectivity. The host and awsvpc network modes offer
* the highest networking performance for containers because they use the EC2
* network stack instead of the virtualized network stack provided by the
* bridge mode.
With the host and
* awsvpc network modes, exposed container ports are mapped directly
* to the corresponding host port (for the host network mode) or the
* attached elastic network interface port (for the awsvpc network
* mode), so you cannot take advantage of dynamic host port mappings.
If
* the network mode is awsvpc, the task is allocated an elastic
* network interface, and you must specify a NetworkConfiguration value when
* you create a service or run a task with the task definition. For more
* information, see Task
* Networking in the Amazon Elastic Container Service Developer
* Guide.
Currently, only Amazon ECS-optimized AMIs, other Amazon
* Linux variants with the ecs-init package, or AWS Fargate
* infrastructure support the awsvpc network mode.
If
* the network mode is host, you cannot run multiple instantiations of
* the same task on a single container instance when port mappings are used.
Docker for Windows uses different network modes than Docker for Linux. When
* you register a task definition with Windows containers, you must not specify a
* network mode. If you use the console to register a task definition with Windows
* containers, you must choose the <default> network mode
* object.
For more information, see Network * settings in the Docker run reference.
*/ inline void SetNetworkMode(NetworkMode&& value) { m_networkModeHasBeenSet = true; m_networkMode = std::move(value); } /** *The Docker networking mode to use for the containers in the task. The valid
* values are none, bridge, awsvpc, and
* host. The default Docker network mode is bridge. If
* you are using the Fargate launch type, the awsvpc network mode is
* required. If you are using the EC2 launch type, any network mode can be used. If
* the network mode is set to none, you cannot specify port mappings
* in your container definitions, and the tasks containers do not have external
* connectivity. The host and awsvpc network modes offer
* the highest networking performance for containers because they use the EC2
* network stack instead of the virtualized network stack provided by the
* bridge mode.
With the host and
* awsvpc network modes, exposed container ports are mapped directly
* to the corresponding host port (for the host network mode) or the
* attached elastic network interface port (for the awsvpc network
* mode), so you cannot take advantage of dynamic host port mappings.
If
* the network mode is awsvpc, the task is allocated an elastic
* network interface, and you must specify a NetworkConfiguration value when
* you create a service or run a task with the task definition. For more
* information, see Task
* Networking in the Amazon Elastic Container Service Developer
* Guide.
Currently, only Amazon ECS-optimized AMIs, other Amazon
* Linux variants with the ecs-init package, or AWS Fargate
* infrastructure support the awsvpc network mode.
If
* the network mode is host, you cannot run multiple instantiations of
* the same task on a single container instance when port mappings are used.
Docker for Windows uses different network modes than Docker for Linux. When
* you register a task definition with Windows containers, you must not specify a
* network mode. If you use the console to register a task definition with Windows
* containers, you must choose the <default> network mode
* object.
For more information, see Network * settings in the Docker run reference.
*/ inline TaskDefinition& WithNetworkMode(const NetworkMode& value) { SetNetworkMode(value); return *this;} /** *The Docker networking mode to use for the containers in the task. The valid
* values are none, bridge, awsvpc, and
* host. The default Docker network mode is bridge. If
* you are using the Fargate launch type, the awsvpc network mode is
* required. If you are using the EC2 launch type, any network mode can be used. If
* the network mode is set to none, you cannot specify port mappings
* in your container definitions, and the tasks containers do not have external
* connectivity. The host and awsvpc network modes offer
* the highest networking performance for containers because they use the EC2
* network stack instead of the virtualized network stack provided by the
* bridge mode.
With the host and
* awsvpc network modes, exposed container ports are mapped directly
* to the corresponding host port (for the host network mode) or the
* attached elastic network interface port (for the awsvpc network
* mode), so you cannot take advantage of dynamic host port mappings.
If
* the network mode is awsvpc, the task is allocated an elastic
* network interface, and you must specify a NetworkConfiguration value when
* you create a service or run a task with the task definition. For more
* information, see Task
* Networking in the Amazon Elastic Container Service Developer
* Guide.
Currently, only Amazon ECS-optimized AMIs, other Amazon
* Linux variants with the ecs-init package, or AWS Fargate
* infrastructure support the awsvpc network mode.
If
* the network mode is host, you cannot run multiple instantiations of
* the same task on a single container instance when port mappings are used.
Docker for Windows uses different network modes than Docker for Linux. When
* you register a task definition with Windows containers, you must not specify a
* network mode. If you use the console to register a task definition with Windows
* containers, you must choose the <default> network mode
* object.
For more information, see Network * settings in the Docker run reference.
*/ inline TaskDefinition& WithNetworkMode(NetworkMode&& value) { SetNetworkMode(std::move(value)); return *this;} /** *The revision of the task in a particular family. The revision is a version
* number of a task definition in a family. When you register a task definition for
* the first time, the revision is 1. Each time that you register a
* new revision of a task definition in the same family, the revision value always
* increases by one, even if you have deregistered previous revisions in this
* family.
The revision of the task in a particular family. The revision is a version
* number of a task definition in a family. When you register a task definition for
* the first time, the revision is 1. Each time that you register a
* new revision of a task definition in the same family, the revision value always
* increases by one, even if you have deregistered previous revisions in this
* family.
The revision of the task in a particular family. The revision is a version
* number of a task definition in a family. When you register a task definition for
* the first time, the revision is 1. Each time that you register a
* new revision of a task definition in the same family, the revision value always
* increases by one, even if you have deregistered previous revisions in this
* family.
The revision of the task in a particular family. The revision is a version
* number of a task definition in a family. When you register a task definition for
* the first time, the revision is 1. Each time that you register a
* new revision of a task definition in the same family, the revision value always
* increases by one, even if you have deregistered previous revisions in this
* family.
The list of volume definitions for the task.
If your tasks are using
* the Fargate launch type, the host and sourcePath
* parameters are not supported.
For more information about volume * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline const Aws::VectorThe list of volume definitions for the task.
If your tasks are using
* the Fargate launch type, the host and sourcePath
* parameters are not supported.
For more information about volume * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline bool VolumesHasBeenSet() const { return m_volumesHasBeenSet; } /** *The list of volume definitions for the task.
If your tasks are using
* the Fargate launch type, the host and sourcePath
* parameters are not supported.
For more information about volume * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline void SetVolumes(const Aws::VectorThe list of volume definitions for the task.
If your tasks are using
* the Fargate launch type, the host and sourcePath
* parameters are not supported.
For more information about volume * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline void SetVolumes(Aws::VectorThe list of volume definitions for the task.
If your tasks are using
* the Fargate launch type, the host and sourcePath
* parameters are not supported.
For more information about volume * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline TaskDefinition& WithVolumes(const Aws::VectorThe list of volume definitions for the task.
If your tasks are using
* the Fargate launch type, the host and sourcePath
* parameters are not supported.
For more information about volume * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline TaskDefinition& WithVolumes(Aws::VectorThe list of volume definitions for the task.
If your tasks are using
* the Fargate launch type, the host and sourcePath
* parameters are not supported.
For more information about volume * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline TaskDefinition& AddVolumes(const Volume& value) { m_volumesHasBeenSet = true; m_volumes.push_back(value); return *this; } /** *The list of volume definitions for the task.
If your tasks are using
* the Fargate launch type, the host and sourcePath
* parameters are not supported.
For more information about volume * definition parameters and defaults, see Amazon * ECS Task Definitions in the Amazon Elastic Container Service Developer * Guide.
*/ inline TaskDefinition& AddVolumes(Volume&& value) { m_volumesHasBeenSet = true; m_volumes.push_back(std::move(value)); return *this; } /** *The status of the task definition.
*/ inline const TaskDefinitionStatus& GetStatus() const{ return m_status; } /** *The status of the task definition.
*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *The status of the task definition.
*/ inline void SetStatus(const TaskDefinitionStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *The status of the task definition.
*/ inline void SetStatus(TaskDefinitionStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *The status of the task definition.
*/ inline TaskDefinition& WithStatus(const TaskDefinitionStatus& value) { SetStatus(value); return *this;} /** *The status of the task definition.
*/ inline TaskDefinition& WithStatus(TaskDefinitionStatus&& value) { SetStatus(std::move(value)); return *this;} /** *The container instance attributes required by your task. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline const Aws::VectorThe container instance attributes required by your task. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline bool RequiresAttributesHasBeenSet() const { return m_requiresAttributesHasBeenSet; } /** *The container instance attributes required by your task. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline void SetRequiresAttributes(const Aws::VectorThe container instance attributes required by your task. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline void SetRequiresAttributes(Aws::VectorThe container instance attributes required by your task. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline TaskDefinition& WithRequiresAttributes(const Aws::VectorThe container instance attributes required by your task. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline TaskDefinition& WithRequiresAttributes(Aws::VectorThe container instance attributes required by your task. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline TaskDefinition& AddRequiresAttributes(const Attribute& value) { m_requiresAttributesHasBeenSet = true; m_requiresAttributes.push_back(value); return *this; } /** *The container instance attributes required by your task. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline TaskDefinition& AddRequiresAttributes(Attribute&& value) { m_requiresAttributesHasBeenSet = true; m_requiresAttributes.push_back(std::move(value)); return *this; } /** *An array of placement constraint objects to use for tasks. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline const Aws::VectorAn array of placement constraint objects to use for tasks. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline bool PlacementConstraintsHasBeenSet() const { return m_placementConstraintsHasBeenSet; } /** *An array of placement constraint objects to use for tasks. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline void SetPlacementConstraints(const Aws::VectorAn array of placement constraint objects to use for tasks. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline void SetPlacementConstraints(Aws::VectorAn array of placement constraint objects to use for tasks. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline TaskDefinition& WithPlacementConstraints(const Aws::VectorAn array of placement constraint objects to use for tasks. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline TaskDefinition& WithPlacementConstraints(Aws::VectorAn array of placement constraint objects to use for tasks. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline TaskDefinition& AddPlacementConstraints(const TaskDefinitionPlacementConstraint& value) { m_placementConstraintsHasBeenSet = true; m_placementConstraints.push_back(value); return *this; } /** *An array of placement constraint objects to use for tasks. This field is not * valid if you are using the Fargate launch type for your task.
*/ inline TaskDefinition& AddPlacementConstraints(TaskDefinitionPlacementConstraint&& value) { m_placementConstraintsHasBeenSet = true; m_placementConstraints.push_back(std::move(value)); return *this; } /** *The launch type to use with your task. For more information, see Amazon * ECS Launch Types in the Amazon Elastic Container Service Developer * Guide.
*/ inline const Aws::VectorThe launch type to use with your task. For more information, see Amazon * ECS Launch Types in the Amazon Elastic Container Service Developer * Guide.
*/ inline bool CompatibilitiesHasBeenSet() const { return m_compatibilitiesHasBeenSet; } /** *The launch type to use with your task. For more information, see Amazon * ECS Launch Types in the Amazon Elastic Container Service Developer * Guide.
*/ inline void SetCompatibilities(const Aws::VectorThe launch type to use with your task. For more information, see Amazon * ECS Launch Types in the Amazon Elastic Container Service Developer * Guide.
*/ inline void SetCompatibilities(Aws::VectorThe launch type to use with your task. For more information, see Amazon * ECS Launch Types in the Amazon Elastic Container Service Developer * Guide.
*/ inline TaskDefinition& WithCompatibilities(const Aws::VectorThe launch type to use with your task. For more information, see Amazon * ECS Launch Types in the Amazon Elastic Container Service Developer * Guide.
*/ inline TaskDefinition& WithCompatibilities(Aws::VectorThe launch type to use with your task. For more information, see Amazon * ECS Launch Types in the Amazon Elastic Container Service Developer * Guide.
*/ inline TaskDefinition& AddCompatibilities(const Compatibility& value) { m_compatibilitiesHasBeenSet = true; m_compatibilities.push_back(value); return *this; } /** *The launch type to use with your task. For more information, see Amazon * ECS Launch Types in the Amazon Elastic Container Service Developer * Guide.
*/ inline TaskDefinition& AddCompatibilities(Compatibility&& value) { m_compatibilitiesHasBeenSet = true; m_compatibilities.push_back(std::move(value)); return *this; } /** *The launch type the task requires. If no value is specified, it will default
* to EC2. Valid values include EC2 and
* FARGATE.
The launch type the task requires. If no value is specified, it will default
* to EC2. Valid values include EC2 and
* FARGATE.
The launch type the task requires. If no value is specified, it will default
* to EC2. Valid values include EC2 and
* FARGATE.
The launch type the task requires. If no value is specified, it will default
* to EC2. Valid values include EC2 and
* FARGATE.
The launch type the task requires. If no value is specified, it will default
* to EC2. Valid values include EC2 and
* FARGATE.
The launch type the task requires. If no value is specified, it will default
* to EC2. Valid values include EC2 and
* FARGATE.
The launch type the task requires. If no value is specified, it will default
* to EC2. Valid values include EC2 and
* FARGATE.
The launch type the task requires. If no value is specified, it will default
* to EC2. Valid values include EC2 and
* FARGATE.
The number of cpu units used by the task. If you are using the
* EC2 launch type, this field is optional and any value can be used. If you are
* using the Fargate launch type, this field is required and you must use one of
* the following values, which determines your range of valid values for the
* memory parameter:
256 (.25 vCPU) - Available
* memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048
* (2 GB), 3072 (3 GB), 4096 (4 GB)
1024 (1 vCPU) - Available
* memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB),
* 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
2048 (2 vCPU) -
* Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB)
4096 (4 vCPU) - Available
* memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments
* of 1024 (1 GB)
The number of cpu units used by the task. If you are using the
* EC2 launch type, this field is optional and any value can be used. If you are
* using the Fargate launch type, this field is required and you must use one of
* the following values, which determines your range of valid values for the
* memory parameter:
256 (.25 vCPU) - Available
* memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048
* (2 GB), 3072 (3 GB), 4096 (4 GB)
1024 (1 vCPU) - Available
* memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB),
* 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
2048 (2 vCPU) -
* Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB)
4096 (4 vCPU) - Available
* memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments
* of 1024 (1 GB)
The number of cpu units used by the task. If you are using the
* EC2 launch type, this field is optional and any value can be used. If you are
* using the Fargate launch type, this field is required and you must use one of
* the following values, which determines your range of valid values for the
* memory parameter:
256 (.25 vCPU) - Available
* memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048
* (2 GB), 3072 (3 GB), 4096 (4 GB)
1024 (1 vCPU) - Available
* memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB),
* 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
2048 (2 vCPU) -
* Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB)
4096 (4 vCPU) - Available
* memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments
* of 1024 (1 GB)
The number of cpu units used by the task. If you are using the
* EC2 launch type, this field is optional and any value can be used. If you are
* using the Fargate launch type, this field is required and you must use one of
* the following values, which determines your range of valid values for the
* memory parameter:
256 (.25 vCPU) - Available
* memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048
* (2 GB), 3072 (3 GB), 4096 (4 GB)
1024 (1 vCPU) - Available
* memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB),
* 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
2048 (2 vCPU) -
* Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB)
4096 (4 vCPU) - Available
* memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments
* of 1024 (1 GB)
The number of cpu units used by the task. If you are using the
* EC2 launch type, this field is optional and any value can be used. If you are
* using the Fargate launch type, this field is required and you must use one of
* the following values, which determines your range of valid values for the
* memory parameter:
256 (.25 vCPU) - Available
* memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048
* (2 GB), 3072 (3 GB), 4096 (4 GB)
1024 (1 vCPU) - Available
* memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB),
* 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
2048 (2 vCPU) -
* Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB)
4096 (4 vCPU) - Available
* memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments
* of 1024 (1 GB)
The number of cpu units used by the task. If you are using the
* EC2 launch type, this field is optional and any value can be used. If you are
* using the Fargate launch type, this field is required and you must use one of
* the following values, which determines your range of valid values for the
* memory parameter:
256 (.25 vCPU) - Available
* memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048
* (2 GB), 3072 (3 GB), 4096 (4 GB)
1024 (1 vCPU) - Available
* memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB),
* 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
2048 (2 vCPU) -
* Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB)
4096 (4 vCPU) - Available
* memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments
* of 1024 (1 GB)
The number of cpu units used by the task. If you are using the
* EC2 launch type, this field is optional and any value can be used. If you are
* using the Fargate launch type, this field is required and you must use one of
* the following values, which determines your range of valid values for the
* memory parameter:
256 (.25 vCPU) - Available
* memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048
* (2 GB), 3072 (3 GB), 4096 (4 GB)
1024 (1 vCPU) - Available
* memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB),
* 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
2048 (2 vCPU) -
* Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB)
4096 (4 vCPU) - Available
* memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments
* of 1024 (1 GB)
The number of cpu units used by the task. If you are using the
* EC2 launch type, this field is optional and any value can be used. If you are
* using the Fargate launch type, this field is required and you must use one of
* the following values, which determines your range of valid values for the
* memory parameter:
256 (.25 vCPU) - Available
* memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)
512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048
* (2 GB), 3072 (3 GB), 4096 (4 GB)
1024 (1 vCPU) - Available
* memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB),
* 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
2048 (2 vCPU) -
* Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB)
4096 (4 vCPU) - Available
* memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments
* of 1024 (1 GB)
The amount (in MiB) of memory used by the task.
If using the EC2 * launch type, this field is optional and any value can be used. If a task-level * memory value is specified then the container-level memory value is optional.
*If using the Fargate launch type, this field is required and you must use one
* of the following values, which determines your range of valid values for the
* cpu parameter:
512 (0.5 GB), 1024 (1 GB), 2048 (2
* GB) - Available cpu values: 256 (.25 vCPU)
1024
* (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu
* values: 512 (.5 vCPU)
2048 (2 GB), 3072 (3 GB), 4096 (4 GB),
* 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu
* values: 1024 (1 vCPU)
Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)
Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
* - Available cpu values: 4096 (4 vCPU)
The amount (in MiB) of memory used by the task.
If using the EC2 * launch type, this field is optional and any value can be used. If a task-level * memory value is specified then the container-level memory value is optional.
*If using the Fargate launch type, this field is required and you must use one
* of the following values, which determines your range of valid values for the
* cpu parameter:
512 (0.5 GB), 1024 (1 GB), 2048 (2
* GB) - Available cpu values: 256 (.25 vCPU)
1024
* (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu
* values: 512 (.5 vCPU)
2048 (2 GB), 3072 (3 GB), 4096 (4 GB),
* 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu
* values: 1024 (1 vCPU)
Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)
Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
* - Available cpu values: 4096 (4 vCPU)
The amount (in MiB) of memory used by the task.
If using the EC2 * launch type, this field is optional and any value can be used. If a task-level * memory value is specified then the container-level memory value is optional.
*If using the Fargate launch type, this field is required and you must use one
* of the following values, which determines your range of valid values for the
* cpu parameter:
512 (0.5 GB), 1024 (1 GB), 2048 (2
* GB) - Available cpu values: 256 (.25 vCPU)
1024
* (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu
* values: 512 (.5 vCPU)
2048 (2 GB), 3072 (3 GB), 4096 (4 GB),
* 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu
* values: 1024 (1 vCPU)
Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)
Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
* - Available cpu values: 4096 (4 vCPU)
The amount (in MiB) of memory used by the task.
If using the EC2 * launch type, this field is optional and any value can be used. If a task-level * memory value is specified then the container-level memory value is optional.
*If using the Fargate launch type, this field is required and you must use one
* of the following values, which determines your range of valid values for the
* cpu parameter:
512 (0.5 GB), 1024 (1 GB), 2048 (2
* GB) - Available cpu values: 256 (.25 vCPU)
1024
* (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu
* values: 512 (.5 vCPU)
2048 (2 GB), 3072 (3 GB), 4096 (4 GB),
* 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu
* values: 1024 (1 vCPU)
Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)
Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
* - Available cpu values: 4096 (4 vCPU)
The amount (in MiB) of memory used by the task.
If using the EC2 * launch type, this field is optional and any value can be used. If a task-level * memory value is specified then the container-level memory value is optional.
*If using the Fargate launch type, this field is required and you must use one
* of the following values, which determines your range of valid values for the
* cpu parameter:
512 (0.5 GB), 1024 (1 GB), 2048 (2
* GB) - Available cpu values: 256 (.25 vCPU)
1024
* (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu
* values: 512 (.5 vCPU)
2048 (2 GB), 3072 (3 GB), 4096 (4 GB),
* 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu
* values: 1024 (1 vCPU)
Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)
Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
* - Available cpu values: 4096 (4 vCPU)
The amount (in MiB) of memory used by the task.
If using the EC2 * launch type, this field is optional and any value can be used. If a task-level * memory value is specified then the container-level memory value is optional.
*If using the Fargate launch type, this field is required and you must use one
* of the following values, which determines your range of valid values for the
* cpu parameter:
512 (0.5 GB), 1024 (1 GB), 2048 (2
* GB) - Available cpu values: 256 (.25 vCPU)
1024
* (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu
* values: 512 (.5 vCPU)
2048 (2 GB), 3072 (3 GB), 4096 (4 GB),
* 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu
* values: 1024 (1 vCPU)
Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)
Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
* - Available cpu values: 4096 (4 vCPU)
The amount (in MiB) of memory used by the task.
If using the EC2 * launch type, this field is optional and any value can be used. If a task-level * memory value is specified then the container-level memory value is optional.
*If using the Fargate launch type, this field is required and you must use one
* of the following values, which determines your range of valid values for the
* cpu parameter:
512 (0.5 GB), 1024 (1 GB), 2048 (2
* GB) - Available cpu values: 256 (.25 vCPU)
1024
* (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu
* values: 512 (.5 vCPU)
2048 (2 GB), 3072 (3 GB), 4096 (4 GB),
* 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu
* values: 1024 (1 vCPU)
Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)
Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
* - Available cpu values: 4096 (4 vCPU)
The amount (in MiB) of memory used by the task.
If using the EC2 * launch type, this field is optional and any value can be used. If a task-level * memory value is specified then the container-level memory value is optional.
*If using the Fargate launch type, this field is required and you must use one
* of the following values, which determines your range of valid values for the
* cpu parameter:
512 (0.5 GB), 1024 (1 GB), 2048 (2
* GB) - Available cpu values: 256 (.25 vCPU)
1024
* (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu
* values: 512 (.5 vCPU)
2048 (2 GB), 3072 (3 GB), 4096 (4 GB),
* 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu
* values: 1024 (1 vCPU)
Between 4096 (4 GB) and 16384 (16 GB) in
* increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)
Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)
* - Available cpu values: 4096 (4 vCPU)
The Elastic Inference accelerator associated with the task.
*/ inline const Aws::VectorThe Elastic Inference accelerator associated with the task.
*/ inline bool InferenceAcceleratorsHasBeenSet() const { return m_inferenceAcceleratorsHasBeenSet; } /** *The Elastic Inference accelerator associated with the task.
*/ inline void SetInferenceAccelerators(const Aws::VectorThe Elastic Inference accelerator associated with the task.
*/ inline void SetInferenceAccelerators(Aws::VectorThe Elastic Inference accelerator associated with the task.
*/ inline TaskDefinition& WithInferenceAccelerators(const Aws::VectorThe Elastic Inference accelerator associated with the task.
*/ inline TaskDefinition& WithInferenceAccelerators(Aws::VectorThe Elastic Inference accelerator associated with the task.
*/ inline TaskDefinition& AddInferenceAccelerators(const InferenceAccelerator& value) { m_inferenceAcceleratorsHasBeenSet = true; m_inferenceAccelerators.push_back(value); return *this; } /** *The Elastic Inference accelerator associated with the task.
*/ inline TaskDefinition& AddInferenceAccelerators(InferenceAccelerator&& value) { m_inferenceAcceleratorsHasBeenSet = true; m_inferenceAccelerators.push_back(std::move(value)); return *this; } /** *The process namespace to use for the containers in the task. The valid values
* are host or task. If host is specified,
* then all containers within the tasks that specified the host PID
* mode on the same container instance share the same process namespace with the
* host Amazon EC2 instance. If task is specified, all containers
* within the specified task share the same process namespace. If no value is
* specified, the default is a private namespace. For more information, see PID
* settings in the Docker run reference.
If the host
* PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker
* security.
This parameter is not supported for Windows * containers or tasks using the Fargate launch type.
*/ inline const PidMode& GetPidMode() const{ return m_pidMode; } /** *The process namespace to use for the containers in the task. The valid values
* are host or task. If host is specified,
* then all containers within the tasks that specified the host PID
* mode on the same container instance share the same process namespace with the
* host Amazon EC2 instance. If task is specified, all containers
* within the specified task share the same process namespace. If no value is
* specified, the default is a private namespace. For more information, see PID
* settings in the Docker run reference.
If the host
* PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker
* security.
This parameter is not supported for Windows * containers or tasks using the Fargate launch type.
*/ inline bool PidModeHasBeenSet() const { return m_pidModeHasBeenSet; } /** *The process namespace to use for the containers in the task. The valid values
* are host or task. If host is specified,
* then all containers within the tasks that specified the host PID
* mode on the same container instance share the same process namespace with the
* host Amazon EC2 instance. If task is specified, all containers
* within the specified task share the same process namespace. If no value is
* specified, the default is a private namespace. For more information, see PID
* settings in the Docker run reference.
If the host
* PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker
* security.
This parameter is not supported for Windows * containers or tasks using the Fargate launch type.
*/ inline void SetPidMode(const PidMode& value) { m_pidModeHasBeenSet = true; m_pidMode = value; } /** *The process namespace to use for the containers in the task. The valid values
* are host or task. If host is specified,
* then all containers within the tasks that specified the host PID
* mode on the same container instance share the same process namespace with the
* host Amazon EC2 instance. If task is specified, all containers
* within the specified task share the same process namespace. If no value is
* specified, the default is a private namespace. For more information, see PID
* settings in the Docker run reference.
If the host
* PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker
* security.
This parameter is not supported for Windows * containers or tasks using the Fargate launch type.
*/ inline void SetPidMode(PidMode&& value) { m_pidModeHasBeenSet = true; m_pidMode = std::move(value); } /** *The process namespace to use for the containers in the task. The valid values
* are host or task. If host is specified,
* then all containers within the tasks that specified the host PID
* mode on the same container instance share the same process namespace with the
* host Amazon EC2 instance. If task is specified, all containers
* within the specified task share the same process namespace. If no value is
* specified, the default is a private namespace. For more information, see PID
* settings in the Docker run reference.
If the host
* PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker
* security.
This parameter is not supported for Windows * containers or tasks using the Fargate launch type.
*/ inline TaskDefinition& WithPidMode(const PidMode& value) { SetPidMode(value); return *this;} /** *The process namespace to use for the containers in the task. The valid values
* are host or task. If host is specified,
* then all containers within the tasks that specified the host PID
* mode on the same container instance share the same process namespace with the
* host Amazon EC2 instance. If task is specified, all containers
* within the specified task share the same process namespace. If no value is
* specified, the default is a private namespace. For more information, see PID
* settings in the Docker run reference.
If the host
* PID mode is used, be aware that there is a heightened risk of undesired process
* namespace expose. For more information, see Docker
* security.
This parameter is not supported for Windows * containers or tasks using the Fargate launch type.
*/ inline TaskDefinition& WithPidMode(PidMode&& value) { SetPidMode(std::move(value)); return *this;} /** *The IPC resource namespace to use for the containers in the task. The valid
* values are host, task, or none. If
* host is specified, then all containers within the tasks that
* specified the host IPC mode on the same container instance share
* the same IPC resources with the host Amazon EC2 instance. If task
* is specified, all containers within the specified task share the same IPC
* resources. If none is specified, then IPC resources within the
* containers of a task are private and not shared with other containers in a task
* or on the container instance. If no value is specified, then the IPC resource
* namespace sharing depends on the Docker daemon setting on the container
* instance. For more information, see IPC
* settings in the Docker run reference.
If the host
* IPC mode is used, be aware that there is a heightened risk of undesired IPC
* namespace expose. For more information, see Docker
* security.
If you are setting namespaced kernel parameters using
* systemControls for the containers in the task, the following will
* apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
For tasks that use the host IPC mode, IPC namespace
* related systemControls are not supported.
For
* tasks that use the task IPC mode, IPC namespace related
* systemControls will apply to all containers within a task.
This parameter is not supported for Windows containers or * tasks using the Fargate launch type.
*/ inline const IpcMode& GetIpcMode() const{ return m_ipcMode; } /** *The IPC resource namespace to use for the containers in the task. The valid
* values are host, task, or none. If
* host is specified, then all containers within the tasks that
* specified the host IPC mode on the same container instance share
* the same IPC resources with the host Amazon EC2 instance. If task
* is specified, all containers within the specified task share the same IPC
* resources. If none is specified, then IPC resources within the
* containers of a task are private and not shared with other containers in a task
* or on the container instance. If no value is specified, then the IPC resource
* namespace sharing depends on the Docker daemon setting on the container
* instance. For more information, see IPC
* settings in the Docker run reference.
If the host
* IPC mode is used, be aware that there is a heightened risk of undesired IPC
* namespace expose. For more information, see Docker
* security.
If you are setting namespaced kernel parameters using
* systemControls for the containers in the task, the following will
* apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
For tasks that use the host IPC mode, IPC namespace
* related systemControls are not supported.
For
* tasks that use the task IPC mode, IPC namespace related
* systemControls will apply to all containers within a task.
This parameter is not supported for Windows containers or * tasks using the Fargate launch type.
*/ inline bool IpcModeHasBeenSet() const { return m_ipcModeHasBeenSet; } /** *The IPC resource namespace to use for the containers in the task. The valid
* values are host, task, or none. If
* host is specified, then all containers within the tasks that
* specified the host IPC mode on the same container instance share
* the same IPC resources with the host Amazon EC2 instance. If task
* is specified, all containers within the specified task share the same IPC
* resources. If none is specified, then IPC resources within the
* containers of a task are private and not shared with other containers in a task
* or on the container instance. If no value is specified, then the IPC resource
* namespace sharing depends on the Docker daemon setting on the container
* instance. For more information, see IPC
* settings in the Docker run reference.
If the host
* IPC mode is used, be aware that there is a heightened risk of undesired IPC
* namespace expose. For more information, see Docker
* security.
If you are setting namespaced kernel parameters using
* systemControls for the containers in the task, the following will
* apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
For tasks that use the host IPC mode, IPC namespace
* related systemControls are not supported.
For
* tasks that use the task IPC mode, IPC namespace related
* systemControls will apply to all containers within a task.
This parameter is not supported for Windows containers or * tasks using the Fargate launch type.
*/ inline void SetIpcMode(const IpcMode& value) { m_ipcModeHasBeenSet = true; m_ipcMode = value; } /** *The IPC resource namespace to use for the containers in the task. The valid
* values are host, task, or none. If
* host is specified, then all containers within the tasks that
* specified the host IPC mode on the same container instance share
* the same IPC resources with the host Amazon EC2 instance. If task
* is specified, all containers within the specified task share the same IPC
* resources. If none is specified, then IPC resources within the
* containers of a task are private and not shared with other containers in a task
* or on the container instance. If no value is specified, then the IPC resource
* namespace sharing depends on the Docker daemon setting on the container
* instance. For more information, see IPC
* settings in the Docker run reference.
If the host
* IPC mode is used, be aware that there is a heightened risk of undesired IPC
* namespace expose. For more information, see Docker
* security.
If you are setting namespaced kernel parameters using
* systemControls for the containers in the task, the following will
* apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
For tasks that use the host IPC mode, IPC namespace
* related systemControls are not supported.
For
* tasks that use the task IPC mode, IPC namespace related
* systemControls will apply to all containers within a task.
This parameter is not supported for Windows containers or * tasks using the Fargate launch type.
*/ inline void SetIpcMode(IpcMode&& value) { m_ipcModeHasBeenSet = true; m_ipcMode = std::move(value); } /** *The IPC resource namespace to use for the containers in the task. The valid
* values are host, task, or none. If
* host is specified, then all containers within the tasks that
* specified the host IPC mode on the same container instance share
* the same IPC resources with the host Amazon EC2 instance. If task
* is specified, all containers within the specified task share the same IPC
* resources. If none is specified, then IPC resources within the
* containers of a task are private and not shared with other containers in a task
* or on the container instance. If no value is specified, then the IPC resource
* namespace sharing depends on the Docker daemon setting on the container
* instance. For more information, see IPC
* settings in the Docker run reference.
If the host
* IPC mode is used, be aware that there is a heightened risk of undesired IPC
* namespace expose. For more information, see Docker
* security.
If you are setting namespaced kernel parameters using
* systemControls for the containers in the task, the following will
* apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
For tasks that use the host IPC mode, IPC namespace
* related systemControls are not supported.
For
* tasks that use the task IPC mode, IPC namespace related
* systemControls will apply to all containers within a task.
This parameter is not supported for Windows containers or * tasks using the Fargate launch type.
*/ inline TaskDefinition& WithIpcMode(const IpcMode& value) { SetIpcMode(value); return *this;} /** *The IPC resource namespace to use for the containers in the task. The valid
* values are host, task, or none. If
* host is specified, then all containers within the tasks that
* specified the host IPC mode on the same container instance share
* the same IPC resources with the host Amazon EC2 instance. If task
* is specified, all containers within the specified task share the same IPC
* resources. If none is specified, then IPC resources within the
* containers of a task are private and not shared with other containers in a task
* or on the container instance. If no value is specified, then the IPC resource
* namespace sharing depends on the Docker daemon setting on the container
* instance. For more information, see IPC
* settings in the Docker run reference.
If the host
* IPC mode is used, be aware that there is a heightened risk of undesired IPC
* namespace expose. For more information, see Docker
* security.
If you are setting namespaced kernel parameters using
* systemControls for the containers in the task, the following will
* apply to your IPC resource namespace. For more information, see System
* Controls in the Amazon Elastic Container Service Developer Guide.
For tasks that use the host IPC mode, IPC namespace
* related systemControls are not supported.
For
* tasks that use the task IPC mode, IPC namespace related
* systemControls will apply to all containers within a task.
This parameter is not supported for Windows containers or * tasks using the Fargate launch type.
*/ inline TaskDefinition& WithIpcMode(IpcMode&& value) { SetIpcMode(std::move(value)); return *this;} /** *The configuration details for the App Mesh proxy.
Your Amazon ECS
* container instances require at least version 1.26.0 of the container agent and
* at least version 1.26.0-1 of the ecs-init package to enable a proxy
* configuration. If your container instances are launched from the Amazon
* ECS-optimized AMI version 20190301 or later, then they contain the
* required versions of the container agent and ecs-init. For more
* information, see Amazon
* ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer
* Guide.
The configuration details for the App Mesh proxy.
Your Amazon ECS
* container instances require at least version 1.26.0 of the container agent and
* at least version 1.26.0-1 of the ecs-init package to enable a proxy
* configuration. If your container instances are launched from the Amazon
* ECS-optimized AMI version 20190301 or later, then they contain the
* required versions of the container agent and ecs-init. For more
* information, see Amazon
* ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer
* Guide.
The configuration details for the App Mesh proxy.
Your Amazon ECS
* container instances require at least version 1.26.0 of the container agent and
* at least version 1.26.0-1 of the ecs-init package to enable a proxy
* configuration. If your container instances are launched from the Amazon
* ECS-optimized AMI version 20190301 or later, then they contain the
* required versions of the container agent and ecs-init. For more
* information, see Amazon
* ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer
* Guide.
The configuration details for the App Mesh proxy.
Your Amazon ECS
* container instances require at least version 1.26.0 of the container agent and
* at least version 1.26.0-1 of the ecs-init package to enable a proxy
* configuration. If your container instances are launched from the Amazon
* ECS-optimized AMI version 20190301 or later, then they contain the
* required versions of the container agent and ecs-init. For more
* information, see Amazon
* ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer
* Guide.
The configuration details for the App Mesh proxy.
Your Amazon ECS
* container instances require at least version 1.26.0 of the container agent and
* at least version 1.26.0-1 of the ecs-init package to enable a proxy
* configuration. If your container instances are launched from the Amazon
* ECS-optimized AMI version 20190301 or later, then they contain the
* required versions of the container agent and ecs-init. For more
* information, see Amazon
* ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer
* Guide.
The configuration details for the App Mesh proxy.
Your Amazon ECS
* container instances require at least version 1.26.0 of the container agent and
* at least version 1.26.0-1 of the ecs-init package to enable a proxy
* configuration. If your container instances are launched from the Amazon
* ECS-optimized AMI version 20190301 or later, then they contain the
* required versions of the container agent and ecs-init. For more
* information, see Amazon
* ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer
* Guide.