/** * 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 #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ECS { namespace Model { /** *

Container definitions are used in task definitions to describe the different * containers that are launched as part of a task.

See Also:

AWS * API Reference

*/ class ContainerDefinition { public: AWS_ECS_API ContainerDefinition(); AWS_ECS_API ContainerDefinition(Aws::Utils::Json::JsonView jsonValue); AWS_ECS_API ContainerDefinition& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_ECS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of a container. If you're linking multiple containers together in a * task definition, the name of one container can be entered in the * links of another container to connect the containers. Up to 255 * letters (uppercase and lowercase), numbers, underscores, and hyphens are * allowed. This parameter maps to name in the Create * a container section of the Docker Remote API and the * --name option to docker * run.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of a container. If you're linking multiple containers together in a * task definition, the name of one container can be entered in the * links of another container to connect the containers. Up to 255 * letters (uppercase and lowercase), numbers, underscores, and hyphens are * allowed. This parameter maps to name in the Create * a container section of the Docker Remote API and the * --name option to docker * run.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of a container. If you're linking multiple containers together in a * task definition, the name of one container can be entered in the * links of another container to connect the containers. Up to 255 * letters (uppercase and lowercase), numbers, underscores, and hyphens are * allowed. This parameter maps to name in the Create * a container section of the Docker Remote API and the * --name option to docker * run.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of a container. If you're linking multiple containers together in a * task definition, the name of one container can be entered in the * links of another container to connect the containers. Up to 255 * letters (uppercase and lowercase), numbers, underscores, and hyphens are * allowed. This parameter maps to name in the Create * a container section of the Docker Remote API and the * --name option to docker * run.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of a container. If you're linking multiple containers together in a * task definition, the name of one container can be entered in the * links of another container to connect the containers. Up to 255 * letters (uppercase and lowercase), numbers, underscores, and hyphens are * allowed. This parameter maps to name in the Create * a container section of the Docker Remote API and the * --name option to docker * run.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of a container. If you're linking multiple containers together in a * task definition, the name of one container can be entered in the * links of another container to connect the containers. Up to 255 * letters (uppercase and lowercase), numbers, underscores, and hyphens are * allowed. This parameter maps to name in the Create * a container section of the Docker Remote API and the * --name option to docker * run.

*/ inline ContainerDefinition& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of a container. If you're linking multiple containers together in a * task definition, the name of one container can be entered in the * links of another container to connect the containers. Up to 255 * letters (uppercase and lowercase), numbers, underscores, and hyphens are * allowed. This parameter maps to name in the Create * a container section of the Docker Remote API and the * --name option to docker * run.

*/ inline ContainerDefinition& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of a container. If you're linking multiple containers together in a * task definition, the name of one container can be entered in the * links of another container to connect the containers. Up to 255 * letters (uppercase and lowercase), numbers, underscores, and hyphens are * allowed. This parameter maps to name in the Create * a container section of the Docker Remote API and the * --name option to docker * run.

*/ inline ContainerDefinition& WithName(const char* value) { SetName(value); return *this;} /** *

The image used to start a container. This string is passed directly to the * Docker daemon. By default, images in the Docker Hub registry are available. * Other repositories are specified with either * repository-url/image:tag or * repository-url/image@digest . Up to 255 letters * (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, * forward slashes, and number signs are allowed. This parameter maps to * Image in the Create * a container section of the Docker Remote API and the * IMAGE parameter of docker * run.

  • When a new task starts, the Amazon ECS container agent * pulls the latest version of the specified image and tag for the container to * use. However, subsequent updates to a repository image aren't propagated to * already running tasks.

  • Images in Amazon ECR repositories can * be specified by either using the full registry/repository:tag or * registry/repository@digest. For example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest * or * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE. *

  • Images in official repositories on Docker Hub use a single * name (for example, ubuntu or mongo).

  • *

    Images in other repositories on Docker Hub are qualified with an organization * name (for example, amazon/amazon-ecs-agent).

  • *

    Images in other online repositories are qualified further by a domain name * (for example, quay.io/assemblyline/ubuntu).

*/ inline const Aws::String& GetImage() const{ return m_image; } /** *

The image used to start a container. This string is passed directly to the * Docker daemon. By default, images in the Docker Hub registry are available. * Other repositories are specified with either * repository-url/image:tag or * repository-url/image@digest . Up to 255 letters * (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, * forward slashes, and number signs are allowed. This parameter maps to * Image in the Create * a container section of the Docker Remote API and the * IMAGE parameter of docker * run.

  • When a new task starts, the Amazon ECS container agent * pulls the latest version of the specified image and tag for the container to * use. However, subsequent updates to a repository image aren't propagated to * already running tasks.

  • Images in Amazon ECR repositories can * be specified by either using the full registry/repository:tag or * registry/repository@digest. For example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest * or * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE. *

  • Images in official repositories on Docker Hub use a single * name (for example, ubuntu or mongo).

  • *

    Images in other repositories on Docker Hub are qualified with an organization * name (for example, amazon/amazon-ecs-agent).

  • *

    Images in other online repositories are qualified further by a domain name * (for example, quay.io/assemblyline/ubuntu).

*/ inline bool ImageHasBeenSet() const { return m_imageHasBeenSet; } /** *

The image used to start a container. This string is passed directly to the * Docker daemon. By default, images in the Docker Hub registry are available. * Other repositories are specified with either * repository-url/image:tag or * repository-url/image@digest . Up to 255 letters * (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, * forward slashes, and number signs are allowed. This parameter maps to * Image in the Create * a container section of the Docker Remote API and the * IMAGE parameter of docker * run.

  • When a new task starts, the Amazon ECS container agent * pulls the latest version of the specified image and tag for the container to * use. However, subsequent updates to a repository image aren't propagated to * already running tasks.

  • Images in Amazon ECR repositories can * be specified by either using the full registry/repository:tag or * registry/repository@digest. For example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest * or * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE. *

  • Images in official repositories on Docker Hub use a single * name (for example, ubuntu or mongo).

  • *

    Images in other repositories on Docker Hub are qualified with an organization * name (for example, amazon/amazon-ecs-agent).

  • *

    Images in other online repositories are qualified further by a domain name * (for example, quay.io/assemblyline/ubuntu).

*/ inline void SetImage(const Aws::String& value) { m_imageHasBeenSet = true; m_image = value; } /** *

The image used to start a container. This string is passed directly to the * Docker daemon. By default, images in the Docker Hub registry are available. * Other repositories are specified with either * repository-url/image:tag or * repository-url/image@digest . Up to 255 letters * (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, * forward slashes, and number signs are allowed. This parameter maps to * Image in the Create * a container section of the Docker Remote API and the * IMAGE parameter of docker * run.

  • When a new task starts, the Amazon ECS container agent * pulls the latest version of the specified image and tag for the container to * use. However, subsequent updates to a repository image aren't propagated to * already running tasks.

  • Images in Amazon ECR repositories can * be specified by either using the full registry/repository:tag or * registry/repository@digest. For example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest * or * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE. *

  • Images in official repositories on Docker Hub use a single * name (for example, ubuntu or mongo).

  • *

    Images in other repositories on Docker Hub are qualified with an organization * name (for example, amazon/amazon-ecs-agent).

  • *

    Images in other online repositories are qualified further by a domain name * (for example, quay.io/assemblyline/ubuntu).

*/ inline void SetImage(Aws::String&& value) { m_imageHasBeenSet = true; m_image = std::move(value); } /** *

The image used to start a container. This string is passed directly to the * Docker daemon. By default, images in the Docker Hub registry are available. * Other repositories are specified with either * repository-url/image:tag or * repository-url/image@digest . Up to 255 letters * (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, * forward slashes, and number signs are allowed. This parameter maps to * Image in the Create * a container section of the Docker Remote API and the * IMAGE parameter of docker * run.

  • When a new task starts, the Amazon ECS container agent * pulls the latest version of the specified image and tag for the container to * use. However, subsequent updates to a repository image aren't propagated to * already running tasks.

  • Images in Amazon ECR repositories can * be specified by either using the full registry/repository:tag or * registry/repository@digest. For example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest * or * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE. *

  • Images in official repositories on Docker Hub use a single * name (for example, ubuntu or mongo).

  • *

    Images in other repositories on Docker Hub are qualified with an organization * name (for example, amazon/amazon-ecs-agent).

  • *

    Images in other online repositories are qualified further by a domain name * (for example, quay.io/assemblyline/ubuntu).

*/ inline void SetImage(const char* value) { m_imageHasBeenSet = true; m_image.assign(value); } /** *

The image used to start a container. This string is passed directly to the * Docker daemon. By default, images in the Docker Hub registry are available. * Other repositories are specified with either * repository-url/image:tag or * repository-url/image@digest . Up to 255 letters * (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, * forward slashes, and number signs are allowed. This parameter maps to * Image in the Create * a container section of the Docker Remote API and the * IMAGE parameter of docker * run.

  • When a new task starts, the Amazon ECS container agent * pulls the latest version of the specified image and tag for the container to * use. However, subsequent updates to a repository image aren't propagated to * already running tasks.

  • Images in Amazon ECR repositories can * be specified by either using the full registry/repository:tag or * registry/repository@digest. For example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest * or * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE. *

  • Images in official repositories on Docker Hub use a single * name (for example, ubuntu or mongo).

  • *

    Images in other repositories on Docker Hub are qualified with an organization * name (for example, amazon/amazon-ecs-agent).

  • *

    Images in other online repositories are qualified further by a domain name * (for example, quay.io/assemblyline/ubuntu).

*/ inline ContainerDefinition& WithImage(const Aws::String& value) { SetImage(value); return *this;} /** *

The image used to start a container. This string is passed directly to the * Docker daemon. By default, images in the Docker Hub registry are available. * Other repositories are specified with either * repository-url/image:tag or * repository-url/image@digest . Up to 255 letters * (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, * forward slashes, and number signs are allowed. This parameter maps to * Image in the Create * a container section of the Docker Remote API and the * IMAGE parameter of docker * run.

  • When a new task starts, the Amazon ECS container agent * pulls the latest version of the specified image and tag for the container to * use. However, subsequent updates to a repository image aren't propagated to * already running tasks.

  • Images in Amazon ECR repositories can * be specified by either using the full registry/repository:tag or * registry/repository@digest. For example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest * or * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE. *

  • Images in official repositories on Docker Hub use a single * name (for example, ubuntu or mongo).

  • *

    Images in other repositories on Docker Hub are qualified with an organization * name (for example, amazon/amazon-ecs-agent).

  • *

    Images in other online repositories are qualified further by a domain name * (for example, quay.io/assemblyline/ubuntu).

*/ inline ContainerDefinition& WithImage(Aws::String&& value) { SetImage(std::move(value)); return *this;} /** *

The image used to start a container. This string is passed directly to the * Docker daemon. By default, images in the Docker Hub registry are available. * Other repositories are specified with either * repository-url/image:tag or * repository-url/image@digest . Up to 255 letters * (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, * forward slashes, and number signs are allowed. This parameter maps to * Image in the Create * a container section of the Docker Remote API and the * IMAGE parameter of docker * run.

  • When a new task starts, the Amazon ECS container agent * pulls the latest version of the specified image and tag for the container to * use. However, subsequent updates to a repository image aren't propagated to * already running tasks.

  • Images in Amazon ECR repositories can * be specified by either using the full registry/repository:tag or * registry/repository@digest. For example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest * or * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE. *

  • Images in official repositories on Docker Hub use a single * name (for example, ubuntu or mongo).

  • *

    Images in other repositories on Docker Hub are qualified with an organization * name (for example, amazon/amazon-ecs-agent).

  • *

    Images in other online repositories are qualified further by a domain name * (for example, quay.io/assemblyline/ubuntu).

*/ inline ContainerDefinition& WithImage(const char* value) { SetImage(value); return *this;} /** *

The private repository authentication credentials to use.

*/ inline const RepositoryCredentials& GetRepositoryCredentials() const{ return m_repositoryCredentials; } /** *

The private repository authentication credentials to use.

*/ inline bool RepositoryCredentialsHasBeenSet() const { return m_repositoryCredentialsHasBeenSet; } /** *

The private repository authentication credentials to use.

*/ inline void SetRepositoryCredentials(const RepositoryCredentials& value) { m_repositoryCredentialsHasBeenSet = true; m_repositoryCredentials = value; } /** *

The private repository authentication credentials to use.

*/ inline void SetRepositoryCredentials(RepositoryCredentials&& value) { m_repositoryCredentialsHasBeenSet = true; m_repositoryCredentials = std::move(value); } /** *

The private repository authentication credentials to use.

*/ inline ContainerDefinition& WithRepositoryCredentials(const RepositoryCredentials& value) { SetRepositoryCredentials(value); return *this;} /** *

The private repository authentication credentials to use.

*/ inline ContainerDefinition& WithRepositoryCredentials(RepositoryCredentials&& value) { SetRepositoryCredentials(std::move(value)); return *this;} /** *

The number of cpu units reserved for the container. This * parameter maps to CpuShares in the Create * a container section of the Docker Remote API and the * --cpu-shares option to docker * run.

This field is optional for tasks using the Fargate launch type, * and the only requirement is that the total amount of CPU reserved for all * containers within a task be lower than the task-level cpu * value.

You can determine the number of CPU units that are * available per EC2 instance type by multiplying the vCPUs listed for that * instance type on the Amazon * EC2 Instances detail page by 1,024.

Linux containers share * unallocated CPU units with other containers on the container instance with the * same ratio as their allocated amount. For example, if you run a single-container * task on a single-core instance type with 512 CPU units specified for that * container, and that's the only task running on the container instance, that * container could use the full 1,024 CPU unit share at any given time. However, if * you launched another copy of the same task on that container instance, each task * is guaranteed a minimum of 512 CPU units when needed. Moreover, each container * could float to higher CPU usage if the other container was not using it. If both * tasks were 100% active all of the time, they would be limited to 512 CPU * units.

On Linux container instances, the Docker daemon on the container * instance uses the CPU value to calculate the relative CPU share ratios for * running containers. For more information, see CPU * share constraint in the Docker documentation. The minimum valid CPU share * value that the Linux kernel allows is 2. However, the CPU parameter isn't * required, and you can use CPU values below 2 in your container definitions. For * CPU values below 2 (including null), the behavior varies based on your Amazon * ECS container agent version:

  • Agent versions less than or * equal to 1.1.0: Null and zero CPU values are passed to Docker as 0, which * Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker * as 1, which the Linux kernel converts to two CPU shares.

  • * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values * of 1 are passed to Docker as 2.

On Windows container * instances, the CPU limit is enforced as an absolute limit, or a quota. Windows * containers only have access to the specified amount of CPU that's described in * the task definition. A null or zero CPU value is passed to Docker as * 0, which Windows interprets as 1% of one CPU.

*/ inline int GetCpu() const{ return m_cpu; } /** *

The number of cpu units reserved for the container. This * parameter maps to CpuShares in the Create * a container section of the Docker Remote API and the * --cpu-shares option to docker * run.

This field is optional for tasks using the Fargate launch type, * and the only requirement is that the total amount of CPU reserved for all * containers within a task be lower than the task-level cpu * value.

You can determine the number of CPU units that are * available per EC2 instance type by multiplying the vCPUs listed for that * instance type on the Amazon * EC2 Instances detail page by 1,024.

Linux containers share * unallocated CPU units with other containers on the container instance with the * same ratio as their allocated amount. For example, if you run a single-container * task on a single-core instance type with 512 CPU units specified for that * container, and that's the only task running on the container instance, that * container could use the full 1,024 CPU unit share at any given time. However, if * you launched another copy of the same task on that container instance, each task * is guaranteed a minimum of 512 CPU units when needed. Moreover, each container * could float to higher CPU usage if the other container was not using it. If both * tasks were 100% active all of the time, they would be limited to 512 CPU * units.

On Linux container instances, the Docker daemon on the container * instance uses the CPU value to calculate the relative CPU share ratios for * running containers. For more information, see CPU * share constraint in the Docker documentation. The minimum valid CPU share * value that the Linux kernel allows is 2. However, the CPU parameter isn't * required, and you can use CPU values below 2 in your container definitions. For * CPU values below 2 (including null), the behavior varies based on your Amazon * ECS container agent version:

  • Agent versions less than or * equal to 1.1.0: Null and zero CPU values are passed to Docker as 0, which * Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker * as 1, which the Linux kernel converts to two CPU shares.

  • * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values * of 1 are passed to Docker as 2.

On Windows container * instances, the CPU limit is enforced as an absolute limit, or a quota. Windows * containers only have access to the specified amount of CPU that's described in * the task definition. A null or zero CPU value is passed to Docker as * 0, which Windows interprets as 1% of one CPU.

*/ inline bool CpuHasBeenSet() const { return m_cpuHasBeenSet; } /** *

The number of cpu units reserved for the container. This * parameter maps to CpuShares in the Create * a container section of the Docker Remote API and the * --cpu-shares option to docker * run.

This field is optional for tasks using the Fargate launch type, * and the only requirement is that the total amount of CPU reserved for all * containers within a task be lower than the task-level cpu * value.

You can determine the number of CPU units that are * available per EC2 instance type by multiplying the vCPUs listed for that * instance type on the Amazon * EC2 Instances detail page by 1,024.

Linux containers share * unallocated CPU units with other containers on the container instance with the * same ratio as their allocated amount. For example, if you run a single-container * task on a single-core instance type with 512 CPU units specified for that * container, and that's the only task running on the container instance, that * container could use the full 1,024 CPU unit share at any given time. However, if * you launched another copy of the same task on that container instance, each task * is guaranteed a minimum of 512 CPU units when needed. Moreover, each container * could float to higher CPU usage if the other container was not using it. If both * tasks were 100% active all of the time, they would be limited to 512 CPU * units.

On Linux container instances, the Docker daemon on the container * instance uses the CPU value to calculate the relative CPU share ratios for * running containers. For more information, see CPU * share constraint in the Docker documentation. The minimum valid CPU share * value that the Linux kernel allows is 2. However, the CPU parameter isn't * required, and you can use CPU values below 2 in your container definitions. For * CPU values below 2 (including null), the behavior varies based on your Amazon * ECS container agent version:

  • Agent versions less than or * equal to 1.1.0: Null and zero CPU values are passed to Docker as 0, which * Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker * as 1, which the Linux kernel converts to two CPU shares.

  • * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values * of 1 are passed to Docker as 2.

On Windows container * instances, the CPU limit is enforced as an absolute limit, or a quota. Windows * containers only have access to the specified amount of CPU that's described in * the task definition. A null or zero CPU value is passed to Docker as * 0, which Windows interprets as 1% of one CPU.

*/ inline void SetCpu(int value) { m_cpuHasBeenSet = true; m_cpu = value; } /** *

The number of cpu units reserved for the container. This * parameter maps to CpuShares in the Create * a container section of the Docker Remote API and the * --cpu-shares option to docker * run.

This field is optional for tasks using the Fargate launch type, * and the only requirement is that the total amount of CPU reserved for all * containers within a task be lower than the task-level cpu * value.

You can determine the number of CPU units that are * available per EC2 instance type by multiplying the vCPUs listed for that * instance type on the Amazon * EC2 Instances detail page by 1,024.

Linux containers share * unallocated CPU units with other containers on the container instance with the * same ratio as their allocated amount. For example, if you run a single-container * task on a single-core instance type with 512 CPU units specified for that * container, and that's the only task running on the container instance, that * container could use the full 1,024 CPU unit share at any given time. However, if * you launched another copy of the same task on that container instance, each task * is guaranteed a minimum of 512 CPU units when needed. Moreover, each container * could float to higher CPU usage if the other container was not using it. If both * tasks were 100% active all of the time, they would be limited to 512 CPU * units.

On Linux container instances, the Docker daemon on the container * instance uses the CPU value to calculate the relative CPU share ratios for * running containers. For more information, see CPU * share constraint in the Docker documentation. The minimum valid CPU share * value that the Linux kernel allows is 2. However, the CPU parameter isn't * required, and you can use CPU values below 2 in your container definitions. For * CPU values below 2 (including null), the behavior varies based on your Amazon * ECS container agent version:

  • Agent versions less than or * equal to 1.1.0: Null and zero CPU values are passed to Docker as 0, which * Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker * as 1, which the Linux kernel converts to two CPU shares.

  • * Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values * of 1 are passed to Docker as 2.

On Windows container * instances, the CPU limit is enforced as an absolute limit, or a quota. Windows * containers only have access to the specified amount of CPU that's described in * the task definition. A null or zero CPU value is passed to Docker as * 0, which Windows interprets as 1% of one CPU.

*/ inline ContainerDefinition& WithCpu(int value) { SetCpu(value); return *this;} /** *

The amount (in MiB) of memory to present to the container. If your container * attempts to exceed the memory specified here, the container is killed. The total * amount of memory reserved for all containers within a task must be lower than * the task memory value, if one is specified. This parameter maps to * Memory in the Create * a container section of the Docker Remote API and the * --memory option to docker * run.

If using the Fargate launch type, this parameter is * optional.

If using the EC2 launch type, you must specify either a * task-level memory value or a container-level memory value. If you specify both a * container-level memory and memoryReservation value, * memory must be greater than memoryReservation. If you * specify memoryReservation, then that value is subtracted from the * available memory resources for the container instance where the container is * placed. Otherwise, the value of memory is used.

The Docker * 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. * So, don't specify less than 6 MiB of memory for your containers.

The * Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a * container. So, don't specify less than 4 MiB of memory for your containers.

*/ inline int GetMemory() const{ return m_memory; } /** *

The amount (in MiB) of memory to present to the container. If your container * attempts to exceed the memory specified here, the container is killed. The total * amount of memory reserved for all containers within a task must be lower than * the task memory value, if one is specified. This parameter maps to * Memory in the Create * a container section of the Docker Remote API and the * --memory option to docker * run.

If using the Fargate launch type, this parameter is * optional.

If using the EC2 launch type, you must specify either a * task-level memory value or a container-level memory value. If you specify both a * container-level memory and memoryReservation value, * memory must be greater than memoryReservation. If you * specify memoryReservation, then that value is subtracted from the * available memory resources for the container instance where the container is * placed. Otherwise, the value of memory is used.

The Docker * 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. * So, don't specify less than 6 MiB of memory for your containers.

The * Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a * container. So, don't specify less than 4 MiB of memory for your containers.

*/ inline bool MemoryHasBeenSet() const { return m_memoryHasBeenSet; } /** *

The amount (in MiB) of memory to present to the container. If your container * attempts to exceed the memory specified here, the container is killed. The total * amount of memory reserved for all containers within a task must be lower than * the task memory value, if one is specified. This parameter maps to * Memory in the Create * a container section of the Docker Remote API and the * --memory option to docker * run.

If using the Fargate launch type, this parameter is * optional.

If using the EC2 launch type, you must specify either a * task-level memory value or a container-level memory value. If you specify both a * container-level memory and memoryReservation value, * memory must be greater than memoryReservation. If you * specify memoryReservation, then that value is subtracted from the * available memory resources for the container instance where the container is * placed. Otherwise, the value of memory is used.

The Docker * 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. * So, don't specify less than 6 MiB of memory for your containers.

The * Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a * container. So, don't specify less than 4 MiB of memory for your containers.

*/ inline void SetMemory(int value) { m_memoryHasBeenSet = true; m_memory = value; } /** *

The amount (in MiB) of memory to present to the container. If your container * attempts to exceed the memory specified here, the container is killed. The total * amount of memory reserved for all containers within a task must be lower than * the task memory value, if one is specified. This parameter maps to * Memory in the Create * a container section of the Docker Remote API and the * --memory option to docker * run.

If using the Fargate launch type, this parameter is * optional.

If using the EC2 launch type, you must specify either a * task-level memory value or a container-level memory value. If you specify both a * container-level memory and memoryReservation value, * memory must be greater than memoryReservation. If you * specify memoryReservation, then that value is subtracted from the * available memory resources for the container instance where the container is * placed. Otherwise, the value of memory is used.

The Docker * 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. * So, don't specify less than 6 MiB of memory for your containers.

The * Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a * container. So, don't specify less than 4 MiB of memory for your containers.

*/ inline ContainerDefinition& WithMemory(int value) { SetMemory(value); return *this;} /** *

The soft limit (in MiB) of memory to reserve for the container. When system * memory is under heavy contention, Docker attempts to keep the container memory * to this soft limit. However, your container can consume more memory when it * needs to, up to either the hard limit specified with the memory * parameter (if applicable), or all of the available memory on the container * instance, whichever comes first. This parameter maps to * MemoryReservation in the Create * a container section of the Docker Remote API and the * --memory-reservation option to docker * run.

If a task-level memory value is not specified, you must specify * a non-zero integer for one or both of memory or * memoryReservation in a container definition. If you specify both, * memory must be greater than memoryReservation. If you * specify memoryReservation, then that value is subtracted from the * available memory resources for the container instance where the container is * placed. Otherwise, the value of memory is used.

For example, * if your container normally uses 128 MiB of memory, but occasionally bursts to * 256 MiB of memory for short periods of time, you can set a * memoryReservation of 128 MiB, and a memory hard limit * of 300 MiB. This configuration would allow the container to only reserve 128 MiB * of memory from the remaining resources on the container instance, but also allow * the container to consume more memory resources when needed.

The Docker * 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. * So, don't specify less than 6 MiB of memory for your containers.

The * Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a * container. So, don't specify less than 4 MiB of memory for your containers.

*/ inline int GetMemoryReservation() const{ return m_memoryReservation; } /** *

The soft limit (in MiB) of memory to reserve for the container. When system * memory is under heavy contention, Docker attempts to keep the container memory * to this soft limit. However, your container can consume more memory when it * needs to, up to either the hard limit specified with the memory * parameter (if applicable), or all of the available memory on the container * instance, whichever comes first. This parameter maps to * MemoryReservation in the Create * a container section of the Docker Remote API and the * --memory-reservation option to docker * run.

If a task-level memory value is not specified, you must specify * a non-zero integer for one or both of memory or * memoryReservation in a container definition. If you specify both, * memory must be greater than memoryReservation. If you * specify memoryReservation, then that value is subtracted from the * available memory resources for the container instance where the container is * placed. Otherwise, the value of memory is used.

For example, * if your container normally uses 128 MiB of memory, but occasionally bursts to * 256 MiB of memory for short periods of time, you can set a * memoryReservation of 128 MiB, and a memory hard limit * of 300 MiB. This configuration would allow the container to only reserve 128 MiB * of memory from the remaining resources on the container instance, but also allow * the container to consume more memory resources when needed.

The Docker * 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. * So, don't specify less than 6 MiB of memory for your containers.

The * Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a * container. So, don't specify less than 4 MiB of memory for your containers.

*/ inline bool MemoryReservationHasBeenSet() const { return m_memoryReservationHasBeenSet; } /** *

The soft limit (in MiB) of memory to reserve for the container. When system * memory is under heavy contention, Docker attempts to keep the container memory * to this soft limit. However, your container can consume more memory when it * needs to, up to either the hard limit specified with the memory * parameter (if applicable), or all of the available memory on the container * instance, whichever comes first. This parameter maps to * MemoryReservation in the Create * a container section of the Docker Remote API and the * --memory-reservation option to docker * run.

If a task-level memory value is not specified, you must specify * a non-zero integer for one or both of memory or * memoryReservation in a container definition. If you specify both, * memory must be greater than memoryReservation. If you * specify memoryReservation, then that value is subtracted from the * available memory resources for the container instance where the container is * placed. Otherwise, the value of memory is used.

For example, * if your container normally uses 128 MiB of memory, but occasionally bursts to * 256 MiB of memory for short periods of time, you can set a * memoryReservation of 128 MiB, and a memory hard limit * of 300 MiB. This configuration would allow the container to only reserve 128 MiB * of memory from the remaining resources on the container instance, but also allow * the container to consume more memory resources when needed.

The Docker * 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. * So, don't specify less than 6 MiB of memory for your containers.

The * Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a * container. So, don't specify less than 4 MiB of memory for your containers.

*/ inline void SetMemoryReservation(int value) { m_memoryReservationHasBeenSet = true; m_memoryReservation = value; } /** *

The soft limit (in MiB) of memory to reserve for the container. When system * memory is under heavy contention, Docker attempts to keep the container memory * to this soft limit. However, your container can consume more memory when it * needs to, up to either the hard limit specified with the memory * parameter (if applicable), or all of the available memory on the container * instance, whichever comes first. This parameter maps to * MemoryReservation in the Create * a container section of the Docker Remote API and the * --memory-reservation option to docker * run.

If a task-level memory value is not specified, you must specify * a non-zero integer for one or both of memory or * memoryReservation in a container definition. If you specify both, * memory must be greater than memoryReservation. If you * specify memoryReservation, then that value is subtracted from the * available memory resources for the container instance where the container is * placed. Otherwise, the value of memory is used.

For example, * if your container normally uses 128 MiB of memory, but occasionally bursts to * 256 MiB of memory for short periods of time, you can set a * memoryReservation of 128 MiB, and a memory hard limit * of 300 MiB. This configuration would allow the container to only reserve 128 MiB * of memory from the remaining resources on the container instance, but also allow * the container to consume more memory resources when needed.

The Docker * 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. * So, don't specify less than 6 MiB of memory for your containers.

The * Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a * container. So, don't specify less than 4 MiB of memory for your containers.

*/ inline ContainerDefinition& WithMemoryReservation(int value) { SetMemoryReservation(value); return *this;} /** *

The links parameter allows containers to communicate with each * other without the need for port mappings. This parameter is only supported if * the network mode of a task definition is bridge. The * name:internalName construct is analogous to name:alias * in Docker links. Up to 255 letters (uppercase and lowercase), numbers, * underscores, and hyphens are allowed. For more information about linking Docker * containers, go to Legacy * container links in the Docker documentation. This parameter maps to * Links in the Create * a container section of the Docker Remote API and the * --link option to docker * run.

This parameter is not supported for Windows * containers.

Containers that are collocated on a * single container instance may be able to communicate with each other without * requiring links or host port mappings. Network isolation is achieved on the * container instance using security groups and VPC settings.

*/ inline const Aws::Vector& GetLinks() const{ return m_links; } /** *

The links parameter allows containers to communicate with each * other without the need for port mappings. This parameter is only supported if * the network mode of a task definition is bridge. The * name:internalName construct is analogous to name:alias * in Docker links. Up to 255 letters (uppercase and lowercase), numbers, * underscores, and hyphens are allowed. For more information about linking Docker * containers, go to Legacy * container links in the Docker documentation. This parameter maps to * Links in the Create * a container section of the Docker Remote API and the * --link option to docker * run.

This parameter is not supported for Windows * containers.

Containers that are collocated on a * single container instance may be able to communicate with each other without * requiring links or host port mappings. Network isolation is achieved on the * container instance using security groups and VPC settings.

*/ inline bool LinksHasBeenSet() const { return m_linksHasBeenSet; } /** *

The links parameter allows containers to communicate with each * other without the need for port mappings. This parameter is only supported if * the network mode of a task definition is bridge. The * name:internalName construct is analogous to name:alias * in Docker links. Up to 255 letters (uppercase and lowercase), numbers, * underscores, and hyphens are allowed. For more information about linking Docker * containers, go to Legacy * container links in the Docker documentation. This parameter maps to * Links in the Create * a container section of the Docker Remote API and the * --link option to docker * run.

This parameter is not supported for Windows * containers.

Containers that are collocated on a * single container instance may be able to communicate with each other without * requiring links or host port mappings. Network isolation is achieved on the * container instance using security groups and VPC settings.

*/ inline void SetLinks(const Aws::Vector& value) { m_linksHasBeenSet = true; m_links = value; } /** *

The links parameter allows containers to communicate with each * other without the need for port mappings. This parameter is only supported if * the network mode of a task definition is bridge. The * name:internalName construct is analogous to name:alias * in Docker links. Up to 255 letters (uppercase and lowercase), numbers, * underscores, and hyphens are allowed. For more information about linking Docker * containers, go to Legacy * container links in the Docker documentation. This parameter maps to * Links in the Create * a container section of the Docker Remote API and the * --link option to docker * run.

This parameter is not supported for Windows * containers.

Containers that are collocated on a * single container instance may be able to communicate with each other without * requiring links or host port mappings. Network isolation is achieved on the * container instance using security groups and VPC settings.

*/ inline void SetLinks(Aws::Vector&& value) { m_linksHasBeenSet = true; m_links = std::move(value); } /** *

The links parameter allows containers to communicate with each * other without the need for port mappings. This parameter is only supported if * the network mode of a task definition is bridge. The * name:internalName construct is analogous to name:alias * in Docker links. Up to 255 letters (uppercase and lowercase), numbers, * underscores, and hyphens are allowed. For more information about linking Docker * containers, go to Legacy * container links in the Docker documentation. This parameter maps to * Links in the Create * a container section of the Docker Remote API and the * --link option to docker * run.

This parameter is not supported for Windows * containers.

Containers that are collocated on a * single container instance may be able to communicate with each other without * requiring links or host port mappings. Network isolation is achieved on the * container instance using security groups and VPC settings.

*/ inline ContainerDefinition& WithLinks(const Aws::Vector& value) { SetLinks(value); return *this;} /** *

The links parameter allows containers to communicate with each * other without the need for port mappings. This parameter is only supported if * the network mode of a task definition is bridge. The * name:internalName construct is analogous to name:alias * in Docker links. Up to 255 letters (uppercase and lowercase), numbers, * underscores, and hyphens are allowed. For more information about linking Docker * containers, go to Legacy * container links in the Docker documentation. This parameter maps to * Links in the Create * a container section of the Docker Remote API and the * --link option to docker * run.

This parameter is not supported for Windows * containers.

Containers that are collocated on a * single container instance may be able to communicate with each other without * requiring links or host port mappings. Network isolation is achieved on the * container instance using security groups and VPC settings.

*/ inline ContainerDefinition& WithLinks(Aws::Vector&& value) { SetLinks(std::move(value)); return *this;} /** *

The links parameter allows containers to communicate with each * other without the need for port mappings. This parameter is only supported if * the network mode of a task definition is bridge. The * name:internalName construct is analogous to name:alias * in Docker links. Up to 255 letters (uppercase and lowercase), numbers, * underscores, and hyphens are allowed. For more information about linking Docker * containers, go to Legacy * container links in the Docker documentation. This parameter maps to * Links in the Create * a container section of the Docker Remote API and the * --link option to docker * run.

This parameter is not supported for Windows * containers.

Containers that are collocated on a * single container instance may be able to communicate with each other without * requiring links or host port mappings. Network isolation is achieved on the * container instance using security groups and VPC settings.

*/ inline ContainerDefinition& AddLinks(const Aws::String& value) { m_linksHasBeenSet = true; m_links.push_back(value); return *this; } /** *

The links parameter allows containers to communicate with each * other without the need for port mappings. This parameter is only supported if * the network mode of a task definition is bridge. The * name:internalName construct is analogous to name:alias * in Docker links. Up to 255 letters (uppercase and lowercase), numbers, * underscores, and hyphens are allowed. For more information about linking Docker * containers, go to Legacy * container links in the Docker documentation. This parameter maps to * Links in the Create * a container section of the Docker Remote API and the * --link option to docker * run.

This parameter is not supported for Windows * containers.

Containers that are collocated on a * single container instance may be able to communicate with each other without * requiring links or host port mappings. Network isolation is achieved on the * container instance using security groups and VPC settings.

*/ inline ContainerDefinition& AddLinks(Aws::String&& value) { m_linksHasBeenSet = true; m_links.push_back(std::move(value)); return *this; } /** *

The links parameter allows containers to communicate with each * other without the need for port mappings. This parameter is only supported if * the network mode of a task definition is bridge. The * name:internalName construct is analogous to name:alias * in Docker links. Up to 255 letters (uppercase and lowercase), numbers, * underscores, and hyphens are allowed. For more information about linking Docker * containers, go to Legacy * container links in the Docker documentation. This parameter maps to * Links in the Create * a container section of the Docker Remote API and the * --link option to docker * run.

This parameter is not supported for Windows * containers.

Containers that are collocated on a * single container instance may be able to communicate with each other without * requiring links or host port mappings. Network isolation is achieved on the * container instance using security groups and VPC settings.

*/ inline ContainerDefinition& AddLinks(const char* value) { m_linksHasBeenSet = true; m_links.push_back(value); return *this; } /** *

The list of port mappings for the container. Port mappings allow containers * to access ports on the host container instance to send or receive traffic.

*

For task definitions that use the awsvpc network mode, only * specify the containerPort. The hostPort can be left * blank or it must be the same value as the containerPort.

*

Port mappings on Windows use the NetNAT gateway address rather * than localhost. There's no loopback for port mappings on Windows, * so you can't access a container's mapped port from the host itself.

This * parameter maps to PortBindings in the Create * a container section of the Docker Remote API and the * --publish option to docker * run. If the network mode of a task definition is set to none, * then you can't specify port mappings. If the network mode of a task definition * is set to host, then host ports must either be undefined or they * must match the container port in the port mapping.

After a task * reaches the RUNNING status, manual and automatic host and container * port assignments are visible in the Network Bindings section of a * container description for a selected task in the Amazon ECS console. The * assignments are also visible in the networkBindings section * DescribeTasks responses.

*/ inline const Aws::Vector& GetPortMappings() const{ return m_portMappings; } /** *

The list of port mappings for the container. Port mappings allow containers * to access ports on the host container instance to send or receive traffic.

*

For task definitions that use the awsvpc network mode, only * specify the containerPort. The hostPort can be left * blank or it must be the same value as the containerPort.

*

Port mappings on Windows use the NetNAT gateway address rather * than localhost. There's no loopback for port mappings on Windows, * so you can't access a container's mapped port from the host itself.

This * parameter maps to PortBindings in the Create * a container section of the Docker Remote API and the * --publish option to docker * run. If the network mode of a task definition is set to none, * then you can't specify port mappings. If the network mode of a task definition * is set to host, then host ports must either be undefined or they * must match the container port in the port mapping.

After a task * reaches the RUNNING status, manual and automatic host and container * port assignments are visible in the Network Bindings section of a * container description for a selected task in the Amazon ECS console. The * assignments are also visible in the networkBindings section * DescribeTasks responses.

*/ inline bool PortMappingsHasBeenSet() const { return m_portMappingsHasBeenSet; } /** *

The list of port mappings for the container. Port mappings allow containers * to access ports on the host container instance to send or receive traffic.

*

For task definitions that use the awsvpc network mode, only * specify the containerPort. The hostPort can be left * blank or it must be the same value as the containerPort.

*

Port mappings on Windows use the NetNAT gateway address rather * than localhost. There's no loopback for port mappings on Windows, * so you can't access a container's mapped port from the host itself.

This * parameter maps to PortBindings in the Create * a container section of the Docker Remote API and the * --publish option to docker * run. If the network mode of a task definition is set to none, * then you can't specify port mappings. If the network mode of a task definition * is set to host, then host ports must either be undefined or they * must match the container port in the port mapping.

After a task * reaches the RUNNING status, manual and automatic host and container * port assignments are visible in the Network Bindings section of a * container description for a selected task in the Amazon ECS console. The * assignments are also visible in the networkBindings section * DescribeTasks responses.

*/ inline void SetPortMappings(const Aws::Vector& value) { m_portMappingsHasBeenSet = true; m_portMappings = value; } /** *

The list of port mappings for the container. Port mappings allow containers * to access ports on the host container instance to send or receive traffic.

*

For task definitions that use the awsvpc network mode, only * specify the containerPort. The hostPort can be left * blank or it must be the same value as the containerPort.

*

Port mappings on Windows use the NetNAT gateway address rather * than localhost. There's no loopback for port mappings on Windows, * so you can't access a container's mapped port from the host itself.

This * parameter maps to PortBindings in the Create * a container section of the Docker Remote API and the * --publish option to docker * run. If the network mode of a task definition is set to none, * then you can't specify port mappings. If the network mode of a task definition * is set to host, then host ports must either be undefined or they * must match the container port in the port mapping.

After a task * reaches the RUNNING status, manual and automatic host and container * port assignments are visible in the Network Bindings section of a * container description for a selected task in the Amazon ECS console. The * assignments are also visible in the networkBindings section * DescribeTasks responses.

*/ inline void SetPortMappings(Aws::Vector&& value) { m_portMappingsHasBeenSet = true; m_portMappings = std::move(value); } /** *

The list of port mappings for the container. Port mappings allow containers * to access ports on the host container instance to send or receive traffic.

*

For task definitions that use the awsvpc network mode, only * specify the containerPort. The hostPort can be left * blank or it must be the same value as the containerPort.

*

Port mappings on Windows use the NetNAT gateway address rather * than localhost. There's no loopback for port mappings on Windows, * so you can't access a container's mapped port from the host itself.

This * parameter maps to PortBindings in the Create * a container section of the Docker Remote API and the * --publish option to docker * run. If the network mode of a task definition is set to none, * then you can't specify port mappings. If the network mode of a task definition * is set to host, then host ports must either be undefined or they * must match the container port in the port mapping.

After a task * reaches the RUNNING status, manual and automatic host and container * port assignments are visible in the Network Bindings section of a * container description for a selected task in the Amazon ECS console. The * assignments are also visible in the networkBindings section * DescribeTasks responses.

*/ inline ContainerDefinition& WithPortMappings(const Aws::Vector& value) { SetPortMappings(value); return *this;} /** *

The list of port mappings for the container. Port mappings allow containers * to access ports on the host container instance to send or receive traffic.

*

For task definitions that use the awsvpc network mode, only * specify the containerPort. The hostPort can be left * blank or it must be the same value as the containerPort.

*

Port mappings on Windows use the NetNAT gateway address rather * than localhost. There's no loopback for port mappings on Windows, * so you can't access a container's mapped port from the host itself.

This * parameter maps to PortBindings in the Create * a container section of the Docker Remote API and the * --publish option to docker * run. If the network mode of a task definition is set to none, * then you can't specify port mappings. If the network mode of a task definition * is set to host, then host ports must either be undefined or they * must match the container port in the port mapping.

After a task * reaches the RUNNING status, manual and automatic host and container * port assignments are visible in the Network Bindings section of a * container description for a selected task in the Amazon ECS console. The * assignments are also visible in the networkBindings section * DescribeTasks responses.

*/ inline ContainerDefinition& WithPortMappings(Aws::Vector&& value) { SetPortMappings(std::move(value)); return *this;} /** *

The list of port mappings for the container. Port mappings allow containers * to access ports on the host container instance to send or receive traffic.

*

For task definitions that use the awsvpc network mode, only * specify the containerPort. The hostPort can be left * blank or it must be the same value as the containerPort.

*

Port mappings on Windows use the NetNAT gateway address rather * than localhost. There's no loopback for port mappings on Windows, * so you can't access a container's mapped port from the host itself.

This * parameter maps to PortBindings in the Create * a container section of the Docker Remote API and the * --publish option to docker * run. If the network mode of a task definition is set to none, * then you can't specify port mappings. If the network mode of a task definition * is set to host, then host ports must either be undefined or they * must match the container port in the port mapping.

After a task * reaches the RUNNING status, manual and automatic host and container * port assignments are visible in the Network Bindings section of a * container description for a selected task in the Amazon ECS console. The * assignments are also visible in the networkBindings section * DescribeTasks responses.

*/ inline ContainerDefinition& AddPortMappings(const PortMapping& value) { m_portMappingsHasBeenSet = true; m_portMappings.push_back(value); return *this; } /** *

The list of port mappings for the container. Port mappings allow containers * to access ports on the host container instance to send or receive traffic.

*

For task definitions that use the awsvpc network mode, only * specify the containerPort. The hostPort can be left * blank or it must be the same value as the containerPort.

*

Port mappings on Windows use the NetNAT gateway address rather * than localhost. There's no loopback for port mappings on Windows, * so you can't access a container's mapped port from the host itself.

This * parameter maps to PortBindings in the Create * a container section of the Docker Remote API and the * --publish option to docker * run. If the network mode of a task definition is set to none, * then you can't specify port mappings. If the network mode of a task definition * is set to host, then host ports must either be undefined or they * must match the container port in the port mapping.

After a task * reaches the RUNNING status, manual and automatic host and container * port assignments are visible in the Network Bindings section of a * container description for a selected task in the Amazon ECS console. The * assignments are also visible in the networkBindings section * DescribeTasks responses.

*/ inline ContainerDefinition& AddPortMappings(PortMapping&& value) { m_portMappingsHasBeenSet = true; m_portMappings.push_back(std::move(value)); return *this; } /** *

If the essential parameter of a container is marked as * true, and that container fails or stops for any reason, all other * containers that are part of the task are stopped. If the essential * parameter of a container is marked as false, its failure doesn't * affect the rest of the containers in a task. If this parameter is omitted, a * container is assumed to be essential.

All tasks must have at least one * essential container. If you have an application that's composed of multiple * containers, group containers that are used for a common purpose into components, * and separate the different components into multiple task definitions. For more * information, see Application * Architecture in the Amazon Elastic Container Service Developer * Guide.

*/ inline bool GetEssential() const{ return m_essential; } /** *

If the essential parameter of a container is marked as * true, and that container fails or stops for any reason, all other * containers that are part of the task are stopped. If the essential * parameter of a container is marked as false, its failure doesn't * affect the rest of the containers in a task. If this parameter is omitted, a * container is assumed to be essential.

All tasks must have at least one * essential container. If you have an application that's composed of multiple * containers, group containers that are used for a common purpose into components, * and separate the different components into multiple task definitions. For more * information, see Application * Architecture in the Amazon Elastic Container Service Developer * Guide.

*/ inline bool EssentialHasBeenSet() const { return m_essentialHasBeenSet; } /** *

If the essential parameter of a container is marked as * true, and that container fails or stops for any reason, all other * containers that are part of the task are stopped. If the essential * parameter of a container is marked as false, its failure doesn't * affect the rest of the containers in a task. If this parameter is omitted, a * container is assumed to be essential.

All tasks must have at least one * essential container. If you have an application that's composed of multiple * containers, group containers that are used for a common purpose into components, * and separate the different components into multiple task definitions. For more * information, see Application * Architecture in the Amazon Elastic Container Service Developer * Guide.

*/ inline void SetEssential(bool value) { m_essentialHasBeenSet = true; m_essential = value; } /** *

If the essential parameter of a container is marked as * true, and that container fails or stops for any reason, all other * containers that are part of the task are stopped. If the essential * parameter of a container is marked as false, its failure doesn't * affect the rest of the containers in a task. If this parameter is omitted, a * container is assumed to be essential.

All tasks must have at least one * essential container. If you have an application that's composed of multiple * containers, group containers that are used for a common purpose into components, * and separate the different components into multiple task definitions. For more * information, see Application * Architecture in the Amazon Elastic Container Service Developer * Guide.

*/ inline ContainerDefinition& WithEssential(bool value) { SetEssential(value); return *this;} /** *

Early versions of the Amazon ECS container agent don't properly * handle entryPoint parameters. If you have problems using * entryPoint, update your container agent or enter your commands and * arguments as command array items instead.

The * entry point that's passed to the container. This parameter maps to * Entrypoint in the Create * a container section of the Docker Remote API and the * --entrypoint option to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint.

*/ inline const Aws::Vector& GetEntryPoint() const{ return m_entryPoint; } /** *

Early versions of the Amazon ECS container agent don't properly * handle entryPoint parameters. If you have problems using * entryPoint, update your container agent or enter your commands and * arguments as command array items instead.

The * entry point that's passed to the container. This parameter maps to * Entrypoint in the Create * a container section of the Docker Remote API and the * --entrypoint option to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint.

*/ inline bool EntryPointHasBeenSet() const { return m_entryPointHasBeenSet; } /** *

Early versions of the Amazon ECS container agent don't properly * handle entryPoint parameters. If you have problems using * entryPoint, update your container agent or enter your commands and * arguments as command array items instead.

The * entry point that's passed to the container. This parameter maps to * Entrypoint in the Create * a container section of the Docker Remote API and the * --entrypoint option to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint.

*/ inline void SetEntryPoint(const Aws::Vector& value) { m_entryPointHasBeenSet = true; m_entryPoint = value; } /** *

Early versions of the Amazon ECS container agent don't properly * handle entryPoint parameters. If you have problems using * entryPoint, update your container agent or enter your commands and * arguments as command array items instead.

The * entry point that's passed to the container. This parameter maps to * Entrypoint in the Create * a container section of the Docker Remote API and the * --entrypoint option to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint.

*/ inline void SetEntryPoint(Aws::Vector&& value) { m_entryPointHasBeenSet = true; m_entryPoint = std::move(value); } /** *

Early versions of the Amazon ECS container agent don't properly * handle entryPoint parameters. If you have problems using * entryPoint, update your container agent or enter your commands and * arguments as command array items instead.

The * entry point that's passed to the container. This parameter maps to * Entrypoint in the Create * a container section of the Docker Remote API and the * --entrypoint option to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint.

*/ inline ContainerDefinition& WithEntryPoint(const Aws::Vector& value) { SetEntryPoint(value); return *this;} /** *

Early versions of the Amazon ECS container agent don't properly * handle entryPoint parameters. If you have problems using * entryPoint, update your container agent or enter your commands and * arguments as command array items instead.

The * entry point that's passed to the container. This parameter maps to * Entrypoint in the Create * a container section of the Docker Remote API and the * --entrypoint option to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint.

*/ inline ContainerDefinition& WithEntryPoint(Aws::Vector&& value) { SetEntryPoint(std::move(value)); return *this;} /** *

Early versions of the Amazon ECS container agent don't properly * handle entryPoint parameters. If you have problems using * entryPoint, update your container agent or enter your commands and * arguments as command array items instead.

The * entry point that's passed to the container. This parameter maps to * Entrypoint in the Create * a container section of the Docker Remote API and the * --entrypoint option to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint.

*/ inline ContainerDefinition& AddEntryPoint(const Aws::String& value) { m_entryPointHasBeenSet = true; m_entryPoint.push_back(value); return *this; } /** *

Early versions of the Amazon ECS container agent don't properly * handle entryPoint parameters. If you have problems using * entryPoint, update your container agent or enter your commands and * arguments as command array items instead.

The * entry point that's passed to the container. This parameter maps to * Entrypoint in the Create * a container section of the Docker Remote API and the * --entrypoint option to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint.

*/ inline ContainerDefinition& AddEntryPoint(Aws::String&& value) { m_entryPointHasBeenSet = true; m_entryPoint.push_back(std::move(value)); return *this; } /** *

Early versions of the Amazon ECS container agent don't properly * handle entryPoint parameters. If you have problems using * entryPoint, update your container agent or enter your commands and * arguments as command array items instead.

The * entry point that's passed to the container. This parameter maps to * Entrypoint in the Create * a container section of the Docker Remote API and the * --entrypoint option to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#entrypoint.

*/ inline ContainerDefinition& AddEntryPoint(const char* value) { m_entryPointHasBeenSet = true; m_entryPoint.push_back(value); return *this; } /** *

The command that's passed to the container. This parameter maps to * Cmd in the Create * a container section of the Docker Remote API and the * COMMAND parameter to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. * If there are multiple arguments, each argument is a separated string in the * array.

*/ inline const Aws::Vector& GetCommand() const{ return m_command; } /** *

The command that's passed to the container. This parameter maps to * Cmd in the Create * a container section of the Docker Remote API and the * COMMAND parameter to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. * If there are multiple arguments, each argument is a separated string in the * array.

*/ inline bool CommandHasBeenSet() const { return m_commandHasBeenSet; } /** *

The command that's passed to the container. This parameter maps to * Cmd in the Create * a container section of the Docker Remote API and the * COMMAND parameter to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. * If there are multiple arguments, each argument is a separated string in the * array.

*/ inline void SetCommand(const Aws::Vector& value) { m_commandHasBeenSet = true; m_command = value; } /** *

The command that's passed to the container. This parameter maps to * Cmd in the Create * a container section of the Docker Remote API and the * COMMAND parameter to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. * If there are multiple arguments, each argument is a separated string in the * array.

*/ inline void SetCommand(Aws::Vector&& value) { m_commandHasBeenSet = true; m_command = std::move(value); } /** *

The command that's passed to the container. This parameter maps to * Cmd in the Create * a container section of the Docker Remote API and the * COMMAND parameter to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. * If there are multiple arguments, each argument is a separated string in the * array.

*/ inline ContainerDefinition& WithCommand(const Aws::Vector& value) { SetCommand(value); return *this;} /** *

The command that's passed to the container. This parameter maps to * Cmd in the Create * a container section of the Docker Remote API and the * COMMAND parameter to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. * If there are multiple arguments, each argument is a separated string in the * array.

*/ inline ContainerDefinition& WithCommand(Aws::Vector&& value) { SetCommand(std::move(value)); return *this;} /** *

The command that's passed to the container. This parameter maps to * Cmd in the Create * a container section of the Docker Remote API and the * COMMAND parameter to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. * If there are multiple arguments, each argument is a separated string in the * array.

*/ inline ContainerDefinition& AddCommand(const Aws::String& value) { m_commandHasBeenSet = true; m_command.push_back(value); return *this; } /** *

The command that's passed to the container. This parameter maps to * Cmd in the Create * a container section of the Docker Remote API and the * COMMAND parameter to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. * If there are multiple arguments, each argument is a separated string in the * array.

*/ inline ContainerDefinition& AddCommand(Aws::String&& value) { m_commandHasBeenSet = true; m_command.push_back(std::move(value)); return *this; } /** *

The command that's passed to the container. This parameter maps to * Cmd in the Create * a container section of the Docker Remote API and the * COMMAND parameter to docker * run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. * If there are multiple arguments, each argument is a separated string in the * array.

*/ inline ContainerDefinition& AddCommand(const char* value) { m_commandHasBeenSet = true; m_command.push_back(value); return *this; } /** *

The environment variables to pass to a container. This parameter maps to * Env in the Create * a container section of the Docker Remote API and the * --env option to docker * run.

We don't recommend that you use plaintext * environment variables for sensitive information, such as credential data.

* */ inline const Aws::Vector& GetEnvironment() const{ return m_environment; } /** *

The environment variables to pass to a container. This parameter maps to * Env in the Create * a container section of the Docker Remote API and the * --env option to docker * run.

We don't recommend that you use plaintext * environment variables for sensitive information, such as credential data.

* */ inline bool EnvironmentHasBeenSet() const { return m_environmentHasBeenSet; } /** *

The environment variables to pass to a container. This parameter maps to * Env in the Create * a container section of the Docker Remote API and the * --env option to docker * run.

We don't recommend that you use plaintext * environment variables for sensitive information, such as credential data.

* */ inline void SetEnvironment(const Aws::Vector& value) { m_environmentHasBeenSet = true; m_environment = value; } /** *

The environment variables to pass to a container. This parameter maps to * Env in the Create * a container section of the Docker Remote API and the * --env option to docker * run.

We don't recommend that you use plaintext * environment variables for sensitive information, such as credential data.

* */ inline void SetEnvironment(Aws::Vector&& value) { m_environmentHasBeenSet = true; m_environment = std::move(value); } /** *

The environment variables to pass to a container. This parameter maps to * Env in the Create * a container section of the Docker Remote API and the * --env option to docker * run.

We don't recommend that you use plaintext * environment variables for sensitive information, such as credential data.

* */ inline ContainerDefinition& WithEnvironment(const Aws::Vector& value) { SetEnvironment(value); return *this;} /** *

The environment variables to pass to a container. This parameter maps to * Env in the Create * a container section of the Docker Remote API and the * --env option to docker * run.

We don't recommend that you use plaintext * environment variables for sensitive information, such as credential data.

* */ inline ContainerDefinition& WithEnvironment(Aws::Vector&& value) { SetEnvironment(std::move(value)); return *this;} /** *

The environment variables to pass to a container. This parameter maps to * Env in the Create * a container section of the Docker Remote API and the * --env option to docker * run.

We don't recommend that you use plaintext * environment variables for sensitive information, such as credential data.

* */ inline ContainerDefinition& AddEnvironment(const KeyValuePair& value) { m_environmentHasBeenSet = true; m_environment.push_back(value); return *this; } /** *

The environment variables to pass to a container. This parameter maps to * Env in the Create * a container section of the Docker Remote API and the * --env option to docker * run.

We don't recommend that you use plaintext * environment variables for sensitive information, such as credential data.

* */ inline ContainerDefinition& AddEnvironment(KeyValuePair&& value) { m_environmentHasBeenSet = true; m_environment.push_back(std::move(value)); return *this; } /** *

A list of files containing the environment variables to pass to a container. * This parameter maps to the --env-file option to docker * run.

You can specify up to ten environment files. The file must have * a .env file extension. Each line in an environment file contains an * environment variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information * about the environment variable file syntax, see Declare default environment * variables in file.

If there are environment variables specified using * the environment parameter in a container definition, they take * precedence over the variables contained within an environment file. If multiple * environment files are specified that contain the same variable, they're * processed from the top down. We recommend that you use unique variable names. * For more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

*/ inline const Aws::Vector& GetEnvironmentFiles() const{ return m_environmentFiles; } /** *

A list of files containing the environment variables to pass to a container. * This parameter maps to the --env-file option to docker * run.

You can specify up to ten environment files. The file must have * a .env file extension. Each line in an environment file contains an * environment variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information * about the environment variable file syntax, see Declare default environment * variables in file.

If there are environment variables specified using * the environment parameter in a container definition, they take * precedence over the variables contained within an environment file. If multiple * environment files are specified that contain the same variable, they're * processed from the top down. We recommend that you use unique variable names. * For more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

*/ inline bool EnvironmentFilesHasBeenSet() const { return m_environmentFilesHasBeenSet; } /** *

A list of files containing the environment variables to pass to a container. * This parameter maps to the --env-file option to docker * run.

You can specify up to ten environment files. The file must have * a .env file extension. Each line in an environment file contains an * environment variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information * about the environment variable file syntax, see Declare default environment * variables in file.

If there are environment variables specified using * the environment parameter in a container definition, they take * precedence over the variables contained within an environment file. If multiple * environment files are specified that contain the same variable, they're * processed from the top down. We recommend that you use unique variable names. * For more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

*/ inline void SetEnvironmentFiles(const Aws::Vector& value) { m_environmentFilesHasBeenSet = true; m_environmentFiles = value; } /** *

A list of files containing the environment variables to pass to a container. * This parameter maps to the --env-file option to docker * run.

You can specify up to ten environment files. The file must have * a .env file extension. Each line in an environment file contains an * environment variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information * about the environment variable file syntax, see Declare default environment * variables in file.

If there are environment variables specified using * the environment parameter in a container definition, they take * precedence over the variables contained within an environment file. If multiple * environment files are specified that contain the same variable, they're * processed from the top down. We recommend that you use unique variable names. * For more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

*/ inline void SetEnvironmentFiles(Aws::Vector&& value) { m_environmentFilesHasBeenSet = true; m_environmentFiles = std::move(value); } /** *

A list of files containing the environment variables to pass to a container. * This parameter maps to the --env-file option to docker * run.

You can specify up to ten environment files. The file must have * a .env file extension. Each line in an environment file contains an * environment variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information * about the environment variable file syntax, see Declare default environment * variables in file.

If there are environment variables specified using * the environment parameter in a container definition, they take * precedence over the variables contained within an environment file. If multiple * environment files are specified that contain the same variable, they're * processed from the top down. We recommend that you use unique variable names. * For more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

*/ inline ContainerDefinition& WithEnvironmentFiles(const Aws::Vector& value) { SetEnvironmentFiles(value); return *this;} /** *

A list of files containing the environment variables to pass to a container. * This parameter maps to the --env-file option to docker * run.

You can specify up to ten environment files. The file must have * a .env file extension. Each line in an environment file contains an * environment variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information * about the environment variable file syntax, see Declare default environment * variables in file.

If there are environment variables specified using * the environment parameter in a container definition, they take * precedence over the variables contained within an environment file. If multiple * environment files are specified that contain the same variable, they're * processed from the top down. We recommend that you use unique variable names. * For more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

*/ inline ContainerDefinition& WithEnvironmentFiles(Aws::Vector&& value) { SetEnvironmentFiles(std::move(value)); return *this;} /** *

A list of files containing the environment variables to pass to a container. * This parameter maps to the --env-file option to docker * run.

You can specify up to ten environment files. The file must have * a .env file extension. Each line in an environment file contains an * environment variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information * about the environment variable file syntax, see Declare default environment * variables in file.

If there are environment variables specified using * the environment parameter in a container definition, they take * precedence over the variables contained within an environment file. If multiple * environment files are specified that contain the same variable, they're * processed from the top down. We recommend that you use unique variable names. * For more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

*/ inline ContainerDefinition& AddEnvironmentFiles(const EnvironmentFile& value) { m_environmentFilesHasBeenSet = true; m_environmentFiles.push_back(value); return *this; } /** *

A list of files containing the environment variables to pass to a container. * This parameter maps to the --env-file option to docker * run.

You can specify up to ten environment files. The file must have * a .env file extension. Each line in an environment file contains an * environment variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information * about the environment variable file syntax, see Declare default environment * variables in file.

If there are environment variables specified using * the environment parameter in a container definition, they take * precedence over the variables contained within an environment file. If multiple * environment files are specified that contain the same variable, they're * processed from the top down. We recommend that you use unique variable names. * For more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

*/ inline ContainerDefinition& AddEnvironmentFiles(EnvironmentFile&& value) { m_environmentFilesHasBeenSet = true; m_environmentFiles.push_back(std::move(value)); return *this; } /** *

The mount points for data volumes in your container.

This parameter * maps to Volumes in the Create * a container section of the Docker Remote API and the * --volume option to docker * run.

Windows containers can mount whole directories on the same drive * as $env:ProgramData. Windows containers can't mount directories on * a different drive, and mount point can't be across drives.

*/ inline const Aws::Vector& GetMountPoints() const{ return m_mountPoints; } /** *

The mount points for data volumes in your container.

This parameter * maps to Volumes in the Create * a container section of the Docker Remote API and the * --volume option to docker * run.

Windows containers can mount whole directories on the same drive * as $env:ProgramData. Windows containers can't mount directories on * a different drive, and mount point can't be across drives.

*/ inline bool MountPointsHasBeenSet() const { return m_mountPointsHasBeenSet; } /** *

The mount points for data volumes in your container.

This parameter * maps to Volumes in the Create * a container section of the Docker Remote API and the * --volume option to docker * run.

Windows containers can mount whole directories on the same drive * as $env:ProgramData. Windows containers can't mount directories on * a different drive, and mount point can't be across drives.

*/ inline void SetMountPoints(const Aws::Vector& value) { m_mountPointsHasBeenSet = true; m_mountPoints = value; } /** *

The mount points for data volumes in your container.

This parameter * maps to Volumes in the Create * a container section of the Docker Remote API and the * --volume option to docker * run.

Windows containers can mount whole directories on the same drive * as $env:ProgramData. Windows containers can't mount directories on * a different drive, and mount point can't be across drives.

*/ inline void SetMountPoints(Aws::Vector&& value) { m_mountPointsHasBeenSet = true; m_mountPoints = std::move(value); } /** *

The mount points for data volumes in your container.

This parameter * maps to Volumes in the Create * a container section of the Docker Remote API and the * --volume option to docker * run.

Windows containers can mount whole directories on the same drive * as $env:ProgramData. Windows containers can't mount directories on * a different drive, and mount point can't be across drives.

*/ inline ContainerDefinition& WithMountPoints(const Aws::Vector& value) { SetMountPoints(value); return *this;} /** *

The mount points for data volumes in your container.

This parameter * maps to Volumes in the Create * a container section of the Docker Remote API and the * --volume option to docker * run.

Windows containers can mount whole directories on the same drive * as $env:ProgramData. Windows containers can't mount directories on * a different drive, and mount point can't be across drives.

*/ inline ContainerDefinition& WithMountPoints(Aws::Vector&& value) { SetMountPoints(std::move(value)); return *this;} /** *

The mount points for data volumes in your container.

This parameter * maps to Volumes in the Create * a container section of the Docker Remote API and the * --volume option to docker * run.

Windows containers can mount whole directories on the same drive * as $env:ProgramData. Windows containers can't mount directories on * a different drive, and mount point can't be across drives.

*/ inline ContainerDefinition& AddMountPoints(const MountPoint& value) { m_mountPointsHasBeenSet = true; m_mountPoints.push_back(value); return *this; } /** *

The mount points for data volumes in your container.

This parameter * maps to Volumes in the Create * a container section of the Docker Remote API and the * --volume option to docker * run.

Windows containers can mount whole directories on the same drive * as $env:ProgramData. Windows containers can't mount directories on * a different drive, and mount point can't be across drives.

*/ inline ContainerDefinition& AddMountPoints(MountPoint&& value) { m_mountPointsHasBeenSet = true; m_mountPoints.push_back(std::move(value)); return *this; } /** *

Data volumes to mount from another container. This parameter maps to * VolumesFrom in the Create * a container section of the Docker Remote API and the * --volumes-from option to docker * run.

*/ inline const Aws::Vector& GetVolumesFrom() const{ return m_volumesFrom; } /** *

Data volumes to mount from another container. This parameter maps to * VolumesFrom in the Create * a container section of the Docker Remote API and the * --volumes-from option to docker * run.

*/ inline bool VolumesFromHasBeenSet() const { return m_volumesFromHasBeenSet; } /** *

Data volumes to mount from another container. This parameter maps to * VolumesFrom in the Create * a container section of the Docker Remote API and the * --volumes-from option to docker * run.

*/ inline void SetVolumesFrom(const Aws::Vector& value) { m_volumesFromHasBeenSet = true; m_volumesFrom = value; } /** *

Data volumes to mount from another container. This parameter maps to * VolumesFrom in the Create * a container section of the Docker Remote API and the * --volumes-from option to docker * run.

*/ inline void SetVolumesFrom(Aws::Vector&& value) { m_volumesFromHasBeenSet = true; m_volumesFrom = std::move(value); } /** *

Data volumes to mount from another container. This parameter maps to * VolumesFrom in the Create * a container section of the Docker Remote API and the * --volumes-from option to docker * run.

*/ inline ContainerDefinition& WithVolumesFrom(const Aws::Vector& value) { SetVolumesFrom(value); return *this;} /** *

Data volumes to mount from another container. This parameter maps to * VolumesFrom in the Create * a container section of the Docker Remote API and the * --volumes-from option to docker * run.

*/ inline ContainerDefinition& WithVolumesFrom(Aws::Vector&& value) { SetVolumesFrom(std::move(value)); return *this;} /** *

Data volumes to mount from another container. This parameter maps to * VolumesFrom in the Create * a container section of the Docker Remote API and the * --volumes-from option to docker * run.

*/ inline ContainerDefinition& AddVolumesFrom(const VolumeFrom& value) { m_volumesFromHasBeenSet = true; m_volumesFrom.push_back(value); return *this; } /** *

Data volumes to mount from another container. This parameter maps to * VolumesFrom in the Create * a container section of the Docker Remote API and the * --volumes-from option to docker * run.

*/ inline ContainerDefinition& AddVolumesFrom(VolumeFrom&& value) { m_volumesFromHasBeenSet = true; m_volumesFrom.push_back(std::move(value)); return *this; } /** *

Linux-specific modifications that are applied to the container, such as Linux * kernel capabilities. For more information see KernelCapabilities.

*

This parameter is not supported for Windows containers.

*/ inline const LinuxParameters& GetLinuxParameters() const{ return m_linuxParameters; } /** *

Linux-specific modifications that are applied to the container, such as Linux * kernel capabilities. For more information see KernelCapabilities.

*

This parameter is not supported for Windows containers.

*/ inline bool LinuxParametersHasBeenSet() const { return m_linuxParametersHasBeenSet; } /** *

Linux-specific modifications that are applied to the container, such as Linux * kernel capabilities. For more information see KernelCapabilities.

*

This parameter is not supported for Windows containers.

*/ inline void SetLinuxParameters(const LinuxParameters& value) { m_linuxParametersHasBeenSet = true; m_linuxParameters = value; } /** *

Linux-specific modifications that are applied to the container, such as Linux * kernel capabilities. For more information see KernelCapabilities.

*

This parameter is not supported for Windows containers.

*/ inline void SetLinuxParameters(LinuxParameters&& value) { m_linuxParametersHasBeenSet = true; m_linuxParameters = std::move(value); } /** *

Linux-specific modifications that are applied to the container, such as Linux * kernel capabilities. For more information see KernelCapabilities.

*

This parameter is not supported for Windows containers.

*/ inline ContainerDefinition& WithLinuxParameters(const LinuxParameters& value) { SetLinuxParameters(value); return *this;} /** *

Linux-specific modifications that are applied to the container, such as Linux * kernel capabilities. For more information see KernelCapabilities.

*

This parameter is not supported for Windows containers.

*/ inline ContainerDefinition& WithLinuxParameters(LinuxParameters&& value) { SetLinuxParameters(std::move(value)); return *this;} /** *

The secrets to pass to the container. For more information, see Specifying * Sensitive Data in the Amazon Elastic Container Service Developer * Guide.

*/ inline const Aws::Vector& GetSecrets() const{ return m_secrets; } /** *

The secrets to pass to the container. For more information, see Specifying * Sensitive Data in the Amazon Elastic Container Service Developer * Guide.

*/ inline bool SecretsHasBeenSet() const { return m_secretsHasBeenSet; } /** *

The secrets to pass to the container. For more information, see Specifying * Sensitive Data in the Amazon Elastic Container Service Developer * Guide.

*/ inline void SetSecrets(const Aws::Vector& value) { m_secretsHasBeenSet = true; m_secrets = value; } /** *

The secrets to pass to the container. For more information, see Specifying * Sensitive Data in the Amazon Elastic Container Service Developer * Guide.

*/ inline void SetSecrets(Aws::Vector&& value) { m_secretsHasBeenSet = true; m_secrets = std::move(value); } /** *

The secrets to pass to the container. For more information, see Specifying * Sensitive Data in the Amazon Elastic Container Service Developer * Guide.

*/ inline ContainerDefinition& WithSecrets(const Aws::Vector& value) { SetSecrets(value); return *this;} /** *

The secrets to pass to the container. For more information, see Specifying * Sensitive Data in the Amazon Elastic Container Service Developer * Guide.

*/ inline ContainerDefinition& WithSecrets(Aws::Vector&& value) { SetSecrets(std::move(value)); return *this;} /** *

The secrets to pass to the container. For more information, see Specifying * Sensitive Data in the Amazon Elastic Container Service Developer * Guide.

*/ inline ContainerDefinition& AddSecrets(const Secret& value) { m_secretsHasBeenSet = true; m_secrets.push_back(value); return *this; } /** *

The secrets to pass to the container. For more information, see Specifying * Sensitive Data in the Amazon Elastic Container Service Developer * Guide.

*/ inline ContainerDefinition& AddSecrets(Secret&& value) { m_secretsHasBeenSet = true; m_secrets.push_back(std::move(value)); return *this; } /** *

The dependencies defined for container startup and shutdown. A container can * contain multiple dependencies on other containers in a task definition. When a * dependency is defined for container startup, for container shutdown it is * reversed.

For tasks using the EC2 launch type, the container instances * require at least version 1.26.0 of the container agent to turn on container * dependencies. However, we recommend using the latest container agent version. * For information about checking your agent version and updating to the latest * version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the ecs-init package. * If your container instances are launched from 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.

For tasks using the Fargate launch type, the task or service * requires the following platforms:

  • Linux platform version * 1.3.0 or later.

  • Windows platform version * 1.0.0 or later.

*/ inline const Aws::Vector& GetDependsOn() const{ return m_dependsOn; } /** *

The dependencies defined for container startup and shutdown. A container can * contain multiple dependencies on other containers in a task definition. When a * dependency is defined for container startup, for container shutdown it is * reversed.

For tasks using the EC2 launch type, the container instances * require at least version 1.26.0 of the container agent to turn on container * dependencies. However, we recommend using the latest container agent version. * For information about checking your agent version and updating to the latest * version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the ecs-init package. * If your container instances are launched from 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.

For tasks using the Fargate launch type, the task or service * requires the following platforms:

  • Linux platform version * 1.3.0 or later.

  • Windows platform version * 1.0.0 or later.

*/ inline bool DependsOnHasBeenSet() const { return m_dependsOnHasBeenSet; } /** *

The dependencies defined for container startup and shutdown. A container can * contain multiple dependencies on other containers in a task definition. When a * dependency is defined for container startup, for container shutdown it is * reversed.

For tasks using the EC2 launch type, the container instances * require at least version 1.26.0 of the container agent to turn on container * dependencies. However, we recommend using the latest container agent version. * For information about checking your agent version and updating to the latest * version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the ecs-init package. * If your container instances are launched from 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.

For tasks using the Fargate launch type, the task or service * requires the following platforms:

  • Linux platform version * 1.3.0 or later.

  • Windows platform version * 1.0.0 or later.

*/ inline void SetDependsOn(const Aws::Vector& value) { m_dependsOnHasBeenSet = true; m_dependsOn = value; } /** *

The dependencies defined for container startup and shutdown. A container can * contain multiple dependencies on other containers in a task definition. When a * dependency is defined for container startup, for container shutdown it is * reversed.

For tasks using the EC2 launch type, the container instances * require at least version 1.26.0 of the container agent to turn on container * dependencies. However, we recommend using the latest container agent version. * For information about checking your agent version and updating to the latest * version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the ecs-init package. * If your container instances are launched from 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.

For tasks using the Fargate launch type, the task or service * requires the following platforms:

  • Linux platform version * 1.3.0 or later.

  • Windows platform version * 1.0.0 or later.

*/ inline void SetDependsOn(Aws::Vector&& value) { m_dependsOnHasBeenSet = true; m_dependsOn = std::move(value); } /** *

The dependencies defined for container startup and shutdown. A container can * contain multiple dependencies on other containers in a task definition. When a * dependency is defined for container startup, for container shutdown it is * reversed.

For tasks using the EC2 launch type, the container instances * require at least version 1.26.0 of the container agent to turn on container * dependencies. However, we recommend using the latest container agent version. * For information about checking your agent version and updating to the latest * version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the ecs-init package. * If your container instances are launched from 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.

For tasks using the Fargate launch type, the task or service * requires the following platforms:

  • Linux platform version * 1.3.0 or later.

  • Windows platform version * 1.0.0 or later.

*/ inline ContainerDefinition& WithDependsOn(const Aws::Vector& value) { SetDependsOn(value); return *this;} /** *

The dependencies defined for container startup and shutdown. A container can * contain multiple dependencies on other containers in a task definition. When a * dependency is defined for container startup, for container shutdown it is * reversed.

For tasks using the EC2 launch type, the container instances * require at least version 1.26.0 of the container agent to turn on container * dependencies. However, we recommend using the latest container agent version. * For information about checking your agent version and updating to the latest * version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the ecs-init package. * If your container instances are launched from 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.

For tasks using the Fargate launch type, the task or service * requires the following platforms:

  • Linux platform version * 1.3.0 or later.

  • Windows platform version * 1.0.0 or later.

*/ inline ContainerDefinition& WithDependsOn(Aws::Vector&& value) { SetDependsOn(std::move(value)); return *this;} /** *

The dependencies defined for container startup and shutdown. A container can * contain multiple dependencies on other containers in a task definition. When a * dependency is defined for container startup, for container shutdown it is * reversed.

For tasks using the EC2 launch type, the container instances * require at least version 1.26.0 of the container agent to turn on container * dependencies. However, we recommend using the latest container agent version. * For information about checking your agent version and updating to the latest * version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the ecs-init package. * If your container instances are launched from 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.

For tasks using the Fargate launch type, the task or service * requires the following platforms:

  • Linux platform version * 1.3.0 or later.

  • Windows platform version * 1.0.0 or later.

*/ inline ContainerDefinition& AddDependsOn(const ContainerDependency& value) { m_dependsOnHasBeenSet = true; m_dependsOn.push_back(value); return *this; } /** *

The dependencies defined for container startup and shutdown. A container can * contain multiple dependencies on other containers in a task definition. When a * dependency is defined for container startup, for container shutdown it is * reversed.

For tasks using the EC2 launch type, the container instances * require at least version 1.26.0 of the container agent to turn on container * dependencies. However, we recommend using the latest container agent version. * For information about checking your agent version and updating to the latest * version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the ecs-init package. * If your container instances are launched from 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.

For tasks using the Fargate launch type, the task or service * requires the following platforms:

  • Linux platform version * 1.3.0 or later.

  • Windows platform version * 1.0.0 or later.

*/ inline ContainerDefinition& AddDependsOn(ContainerDependency&& value) { m_dependsOnHasBeenSet = true; m_dependsOn.push_back(std::move(value)); return *this; } /** *

Time duration (in seconds) to wait before giving up on resolving dependencies * for a container. For example, you specify two containers in a task definition * with containerA having a dependency on containerB reaching a * COMPLETE, SUCCESS, or HEALTHY status. If * a startTimeout value is specified for containerB and it doesn't * reach the desired status within that time then containerA gives up and not * start. This results in the task transitioning to a STOPPED * state.

When the ECS_CONTAINER_START_TIMEOUT container * agent configuration variable is used, it's enforced independently from this * start timeout value.

For tasks using the Fargate launch type, the * task or service requires the following platforms:

  • Linux * platform version 1.3.0 or later.

  • Windows platform * version 1.0.0 or later.

For tasks using the EC2 * launch type, your container instances require at least version * 1.26.0 of the container agent to use a container start timeout * value. However, we recommend using the latest container agent version. For * information about checking your agent version and updating to the latest * version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the * ecs-init package. If your container instances are launched from * 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.

*/ inline int GetStartTimeout() const{ return m_startTimeout; } /** *

Time duration (in seconds) to wait before giving up on resolving dependencies * for a container. For example, you specify two containers in a task definition * with containerA having a dependency on containerB reaching a * COMPLETE, SUCCESS, or HEALTHY status. If * a startTimeout value is specified for containerB and it doesn't * reach the desired status within that time then containerA gives up and not * start. This results in the task transitioning to a STOPPED * state.

When the ECS_CONTAINER_START_TIMEOUT container * agent configuration variable is used, it's enforced independently from this * start timeout value.

For tasks using the Fargate launch type, the * task or service requires the following platforms:

  • Linux * platform version 1.3.0 or later.

  • Windows platform * version 1.0.0 or later.

For tasks using the EC2 * launch type, your container instances require at least version * 1.26.0 of the container agent to use a container start timeout * value. However, we recommend using the latest container agent version. For * information about checking your agent version and updating to the latest * version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the * ecs-init package. If your container instances are launched from * 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.

*/ inline bool StartTimeoutHasBeenSet() const { return m_startTimeoutHasBeenSet; } /** *

Time duration (in seconds) to wait before giving up on resolving dependencies * for a container. For example, you specify two containers in a task definition * with containerA having a dependency on containerB reaching a * COMPLETE, SUCCESS, or HEALTHY status. If * a startTimeout value is specified for containerB and it doesn't * reach the desired status within that time then containerA gives up and not * start. This results in the task transitioning to a STOPPED * state.

When the ECS_CONTAINER_START_TIMEOUT container * agent configuration variable is used, it's enforced independently from this * start timeout value.

For tasks using the Fargate launch type, the * task or service requires the following platforms:

  • Linux * platform version 1.3.0 or later.

  • Windows platform * version 1.0.0 or later.

For tasks using the EC2 * launch type, your container instances require at least version * 1.26.0 of the container agent to use a container start timeout * value. However, we recommend using the latest container agent version. For * information about checking your agent version and updating to the latest * version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the * ecs-init package. If your container instances are launched from * 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.

*/ inline void SetStartTimeout(int value) { m_startTimeoutHasBeenSet = true; m_startTimeout = value; } /** *

Time duration (in seconds) to wait before giving up on resolving dependencies * for a container. For example, you specify two containers in a task definition * with containerA having a dependency on containerB reaching a * COMPLETE, SUCCESS, or HEALTHY status. If * a startTimeout value is specified for containerB and it doesn't * reach the desired status within that time then containerA gives up and not * start. This results in the task transitioning to a STOPPED * state.

When the ECS_CONTAINER_START_TIMEOUT container * agent configuration variable is used, it's enforced independently from this * start timeout value.

For tasks using the Fargate launch type, the * task or service requires the following platforms:

  • Linux * platform version 1.3.0 or later.

  • Windows platform * version 1.0.0 or later.

For tasks using the EC2 * launch type, your container instances require at least version * 1.26.0 of the container agent to use a container start timeout * value. However, we recommend using the latest container agent version. For * information about checking your agent version and updating to the latest * version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the * ecs-init package. If your container instances are launched from * 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.

*/ inline ContainerDefinition& WithStartTimeout(int value) { SetStartTimeout(value); return *this;} /** *

Time duration (in seconds) to wait before the container is forcefully killed * if it doesn't exit normally on its own.

For tasks using the Fargate * launch type, the task or service requires the following platforms:

  • *

    Linux platform version 1.3.0 or later.

  • Windows * platform version 1.0.0 or later.

The max stop * timeout value is 120 seconds and if the parameter is not specified, the default * value of 30 seconds is used.

For tasks that use the EC2 launch type, if * the stopTimeout parameter isn't specified, the value set for the * Amazon ECS container agent configuration variable * ECS_CONTAINER_STOP_TIMEOUT is used. If neither the * stopTimeout parameter or the * ECS_CONTAINER_STOP_TIMEOUT agent configuration variable are set, * then the default values of 30 seconds for Linux containers and 30 seconds on * Windows containers are used. Your container instances require at least version * 1.26.0 of the container agent to use a container stop timeout value. However, we * recommend using the latest container agent version. For information about * checking your agent version and updating to the latest version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the ecs-init package. * If your container instances are launched from 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.

*/ inline int GetStopTimeout() const{ return m_stopTimeout; } /** *

Time duration (in seconds) to wait before the container is forcefully killed * if it doesn't exit normally on its own.

For tasks using the Fargate * launch type, the task or service requires the following platforms:

  • *

    Linux platform version 1.3.0 or later.

  • Windows * platform version 1.0.0 or later.

The max stop * timeout value is 120 seconds and if the parameter is not specified, the default * value of 30 seconds is used.

For tasks that use the EC2 launch type, if * the stopTimeout parameter isn't specified, the value set for the * Amazon ECS container agent configuration variable * ECS_CONTAINER_STOP_TIMEOUT is used. If neither the * stopTimeout parameter or the * ECS_CONTAINER_STOP_TIMEOUT agent configuration variable are set, * then the default values of 30 seconds for Linux containers and 30 seconds on * Windows containers are used. Your container instances require at least version * 1.26.0 of the container agent to use a container stop timeout value. However, we * recommend using the latest container agent version. For information about * checking your agent version and updating to the latest version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the ecs-init package. * If your container instances are launched from 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.

*/ inline bool StopTimeoutHasBeenSet() const { return m_stopTimeoutHasBeenSet; } /** *

Time duration (in seconds) to wait before the container is forcefully killed * if it doesn't exit normally on its own.

For tasks using the Fargate * launch type, the task or service requires the following platforms:

  • *

    Linux platform version 1.3.0 or later.

  • Windows * platform version 1.0.0 or later.

The max stop * timeout value is 120 seconds and if the parameter is not specified, the default * value of 30 seconds is used.

For tasks that use the EC2 launch type, if * the stopTimeout parameter isn't specified, the value set for the * Amazon ECS container agent configuration variable * ECS_CONTAINER_STOP_TIMEOUT is used. If neither the * stopTimeout parameter or the * ECS_CONTAINER_STOP_TIMEOUT agent configuration variable are set, * then the default values of 30 seconds for Linux containers and 30 seconds on * Windows containers are used. Your container instances require at least version * 1.26.0 of the container agent to use a container stop timeout value. However, we * recommend using the latest container agent version. For information about * checking your agent version and updating to the latest version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the ecs-init package. * If your container instances are launched from 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.

*/ inline void SetStopTimeout(int value) { m_stopTimeoutHasBeenSet = true; m_stopTimeout = value; } /** *

Time duration (in seconds) to wait before the container is forcefully killed * if it doesn't exit normally on its own.

For tasks using the Fargate * launch type, the task or service requires the following platforms:

  • *

    Linux platform version 1.3.0 or later.

  • Windows * platform version 1.0.0 or later.

The max stop * timeout value is 120 seconds and if the parameter is not specified, the default * value of 30 seconds is used.

For tasks that use the EC2 launch type, if * the stopTimeout parameter isn't specified, the value set for the * Amazon ECS container agent configuration variable * ECS_CONTAINER_STOP_TIMEOUT is used. If neither the * stopTimeout parameter or the * ECS_CONTAINER_STOP_TIMEOUT agent configuration variable are set, * then the default values of 30 seconds for Linux containers and 30 seconds on * Windows containers are used. Your container instances require at least version * 1.26.0 of the container agent to use a container stop timeout value. However, we * recommend using the latest container agent version. For information about * checking your agent version and updating to the latest version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the ecs-init package. * If your container instances are launched from 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.

*/ inline ContainerDefinition& WithStopTimeout(int value) { SetStopTimeout(value); return *this;} /** *

The hostname to use for your container. This parameter maps to * Hostname in the Create * a container section of the Docker Remote API and the * --hostname option to docker * run.

The hostname parameter is not supported if * you're using the awsvpc network mode.

*/ inline const Aws::String& GetHostname() const{ return m_hostname; } /** *

The hostname to use for your container. This parameter maps to * Hostname in the Create * a container section of the Docker Remote API and the * --hostname option to docker * run.

The hostname parameter is not supported if * you're using the awsvpc network mode.

*/ inline bool HostnameHasBeenSet() const { return m_hostnameHasBeenSet; } /** *

The hostname to use for your container. This parameter maps to * Hostname in the Create * a container section of the Docker Remote API and the * --hostname option to docker * run.

The hostname parameter is not supported if * you're using the awsvpc network mode.

*/ inline void SetHostname(const Aws::String& value) { m_hostnameHasBeenSet = true; m_hostname = value; } /** *

The hostname to use for your container. This parameter maps to * Hostname in the Create * a container section of the Docker Remote API and the * --hostname option to docker * run.

The hostname parameter is not supported if * you're using the awsvpc network mode.

*/ inline void SetHostname(Aws::String&& value) { m_hostnameHasBeenSet = true; m_hostname = std::move(value); } /** *

The hostname to use for your container. This parameter maps to * Hostname in the Create * a container section of the Docker Remote API and the * --hostname option to docker * run.

The hostname parameter is not supported if * you're using the awsvpc network mode.

*/ inline void SetHostname(const char* value) { m_hostnameHasBeenSet = true; m_hostname.assign(value); } /** *

The hostname to use for your container. This parameter maps to * Hostname in the Create * a container section of the Docker Remote API and the * --hostname option to docker * run.

The hostname parameter is not supported if * you're using the awsvpc network mode.

*/ inline ContainerDefinition& WithHostname(const Aws::String& value) { SetHostname(value); return *this;} /** *

The hostname to use for your container. This parameter maps to * Hostname in the Create * a container section of the Docker Remote API and the * --hostname option to docker * run.

The hostname parameter is not supported if * you're using the awsvpc network mode.

*/ inline ContainerDefinition& WithHostname(Aws::String&& value) { SetHostname(std::move(value)); return *this;} /** *

The hostname to use for your container. This parameter maps to * Hostname in the Create * a container section of the Docker Remote API and the * --hostname option to docker * run.

The hostname parameter is not supported if * you're using the awsvpc network mode.

*/ inline ContainerDefinition& WithHostname(const char* value) { SetHostname(value); return *this;} /** *

The user to use inside the container. This parameter maps to * User in the Create * a container section of the Docker Remote API and the * --user option to docker * run.

When running tasks using the host * network mode, don't run containers using the root user (UID 0). We recommend * using a non-root user for better security.

You can specify * the user using the following formats. If specifying a UID or GID, * you must specify it as a positive integer.

  • user *

  • user:group

  • uid *

  • uid:gid

  • * user:gid

  • uid:group

  • *

This parameter is not supported for Windows containers.

* */ inline const Aws::String& GetUser() const{ return m_user; } /** *

The user to use inside the container. This parameter maps to * User in the Create * a container section of the Docker Remote API and the * --user option to docker * run.

When running tasks using the host * network mode, don't run containers using the root user (UID 0). We recommend * using a non-root user for better security.

You can specify * the user using the following formats. If specifying a UID or GID, * you must specify it as a positive integer.

  • user *

  • user:group

  • uid *

  • uid:gid

  • * user:gid

  • uid:group

  • *

This parameter is not supported for Windows containers.

* */ inline bool UserHasBeenSet() const { return m_userHasBeenSet; } /** *

The user to use inside the container. This parameter maps to * User in the Create * a container section of the Docker Remote API and the * --user option to docker * run.

When running tasks using the host * network mode, don't run containers using the root user (UID 0). We recommend * using a non-root user for better security.

You can specify * the user using the following formats. If specifying a UID or GID, * you must specify it as a positive integer.

  • user *

  • user:group

  • uid *

  • uid:gid

  • * user:gid

  • uid:group

  • *

This parameter is not supported for Windows containers.

* */ inline void SetUser(const Aws::String& value) { m_userHasBeenSet = true; m_user = value; } /** *

The user to use inside the container. This parameter maps to * User in the Create * a container section of the Docker Remote API and the * --user option to docker * run.

When running tasks using the host * network mode, don't run containers using the root user (UID 0). We recommend * using a non-root user for better security.

You can specify * the user using the following formats. If specifying a UID or GID, * you must specify it as a positive integer.

  • user *

  • user:group

  • uid *

  • uid:gid

  • * user:gid

  • uid:group

  • *

This parameter is not supported for Windows containers.

* */ inline void SetUser(Aws::String&& value) { m_userHasBeenSet = true; m_user = std::move(value); } /** *

The user to use inside the container. This parameter maps to * User in the Create * a container section of the Docker Remote API and the * --user option to docker * run.

When running tasks using the host * network mode, don't run containers using the root user (UID 0). We recommend * using a non-root user for better security.

You can specify * the user using the following formats. If specifying a UID or GID, * you must specify it as a positive integer.

  • user *

  • user:group

  • uid *

  • uid:gid

  • * user:gid

  • uid:group

  • *

This parameter is not supported for Windows containers.

* */ inline void SetUser(const char* value) { m_userHasBeenSet = true; m_user.assign(value); } /** *

The user to use inside the container. This parameter maps to * User in the Create * a container section of the Docker Remote API and the * --user option to docker * run.

When running tasks using the host * network mode, don't run containers using the root user (UID 0). We recommend * using a non-root user for better security.

You can specify * the user using the following formats. If specifying a UID or GID, * you must specify it as a positive integer.

  • user *

  • user:group

  • uid *

  • uid:gid

  • * user:gid

  • uid:group

  • *

This parameter is not supported for Windows containers.

* */ inline ContainerDefinition& WithUser(const Aws::String& value) { SetUser(value); return *this;} /** *

The user to use inside the container. This parameter maps to * User in the Create * a container section of the Docker Remote API and the * --user option to docker * run.

When running tasks using the host * network mode, don't run containers using the root user (UID 0). We recommend * using a non-root user for better security.

You can specify * the user using the following formats. If specifying a UID or GID, * you must specify it as a positive integer.

  • user *

  • user:group

  • uid *

  • uid:gid

  • * user:gid

  • uid:group

  • *

This parameter is not supported for Windows containers.

* */ inline ContainerDefinition& WithUser(Aws::String&& value) { SetUser(std::move(value)); return *this;} /** *

The user to use inside the container. This parameter maps to * User in the Create * a container section of the Docker Remote API and the * --user option to docker * run.

When running tasks using the host * network mode, don't run containers using the root user (UID 0). We recommend * using a non-root user for better security.

You can specify * the user using the following formats. If specifying a UID or GID, * you must specify it as a positive integer.

  • user *

  • user:group

  • uid *

  • uid:gid

  • * user:gid

  • uid:group

  • *

This parameter is not supported for Windows containers.

* */ inline ContainerDefinition& WithUser(const char* value) { SetUser(value); return *this;} /** *

The working directory to run commands inside the container in. This parameter * maps to WorkingDir in the Create * a container section of the Docker Remote API and the * --workdir option to docker * run.

*/ inline const Aws::String& GetWorkingDirectory() const{ return m_workingDirectory; } /** *

The working directory to run commands inside the container in. This parameter * maps to WorkingDir in the Create * a container section of the Docker Remote API and the * --workdir option to docker * run.

*/ inline bool WorkingDirectoryHasBeenSet() const { return m_workingDirectoryHasBeenSet; } /** *

The working directory to run commands inside the container in. This parameter * maps to WorkingDir in the Create * a container section of the Docker Remote API and the * --workdir option to docker * run.

*/ inline void SetWorkingDirectory(const Aws::String& value) { m_workingDirectoryHasBeenSet = true; m_workingDirectory = value; } /** *

The working directory to run commands inside the container in. This parameter * maps to WorkingDir in the Create * a container section of the Docker Remote API and the * --workdir option to docker * run.

*/ inline void SetWorkingDirectory(Aws::String&& value) { m_workingDirectoryHasBeenSet = true; m_workingDirectory = std::move(value); } /** *

The working directory to run commands inside the container in. This parameter * maps to WorkingDir in the Create * a container section of the Docker Remote API and the * --workdir option to docker * run.

*/ inline void SetWorkingDirectory(const char* value) { m_workingDirectoryHasBeenSet = true; m_workingDirectory.assign(value); } /** *

The working directory to run commands inside the container in. This parameter * maps to WorkingDir in the Create * a container section of the Docker Remote API and the * --workdir option to docker * run.

*/ inline ContainerDefinition& WithWorkingDirectory(const Aws::String& value) { SetWorkingDirectory(value); return *this;} /** *

The working directory to run commands inside the container in. This parameter * maps to WorkingDir in the Create * a container section of the Docker Remote API and the * --workdir option to docker * run.

*/ inline ContainerDefinition& WithWorkingDirectory(Aws::String&& value) { SetWorkingDirectory(std::move(value)); return *this;} /** *

The working directory to run commands inside the container in. This parameter * maps to WorkingDir in the Create * a container section of the Docker Remote API and the * --workdir option to docker * run.

*/ inline ContainerDefinition& WithWorkingDirectory(const char* value) { SetWorkingDirectory(value); return *this;} /** *

When this parameter is true, networking is off within the container. This * parameter maps to NetworkDisabled in the Create * a container section of the Docker Remote API.

*

This parameter is not supported for Windows containers.

*/ inline bool GetDisableNetworking() const{ return m_disableNetworking; } /** *

When this parameter is true, networking is off within the container. This * parameter maps to NetworkDisabled in the Create * a container section of the Docker Remote API.

*

This parameter is not supported for Windows containers.

*/ inline bool DisableNetworkingHasBeenSet() const { return m_disableNetworkingHasBeenSet; } /** *

When this parameter is true, networking is off within the container. This * parameter maps to NetworkDisabled in the Create * a container section of the Docker Remote API.

*

This parameter is not supported for Windows containers.

*/ inline void SetDisableNetworking(bool value) { m_disableNetworkingHasBeenSet = true; m_disableNetworking = value; } /** *

When this parameter is true, networking is off within the container. This * parameter maps to NetworkDisabled in the Create * a container section of the Docker Remote API.

*

This parameter is not supported for Windows containers.

*/ inline ContainerDefinition& WithDisableNetworking(bool value) { SetDisableNetworking(value); return *this;} /** *

When this parameter is true, the container is given elevated privileges on * the host container instance (similar to the root user). This * parameter maps to Privileged in the Create * a container section of the Docker Remote API and the * --privileged option to docker * run.

This parameter is not supported for Windows containers or * tasks run on Fargate.

*/ inline bool GetPrivileged() const{ return m_privileged; } /** *

When this parameter is true, the container is given elevated privileges on * the host container instance (similar to the root user). This * parameter maps to Privileged in the Create * a container section of the Docker Remote API and the * --privileged option to docker * run.

This parameter is not supported for Windows containers or * tasks run on Fargate.

*/ inline bool PrivilegedHasBeenSet() const { return m_privilegedHasBeenSet; } /** *

When this parameter is true, the container is given elevated privileges on * the host container instance (similar to the root user). This * parameter maps to Privileged in the Create * a container section of the Docker Remote API and the * --privileged option to docker * run.

This parameter is not supported for Windows containers or * tasks run on Fargate.

*/ inline void SetPrivileged(bool value) { m_privilegedHasBeenSet = true; m_privileged = value; } /** *

When this parameter is true, the container is given elevated privileges on * the host container instance (similar to the root user). This * parameter maps to Privileged in the Create * a container section of the Docker Remote API and the * --privileged option to docker * run.

This parameter is not supported for Windows containers or * tasks run on Fargate.

*/ inline ContainerDefinition& WithPrivileged(bool value) { SetPrivileged(value); return *this;} /** *

When this parameter is true, the container is given read-only access to its * root file system. This parameter maps to ReadonlyRootfs in the Create * a container section of the Docker Remote API and the * --read-only option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline bool GetReadonlyRootFilesystem() const{ return m_readonlyRootFilesystem; } /** *

When this parameter is true, the container is given read-only access to its * root file system. This parameter maps to ReadonlyRootfs in the Create * a container section of the Docker Remote API and the * --read-only option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline bool ReadonlyRootFilesystemHasBeenSet() const { return m_readonlyRootFilesystemHasBeenSet; } /** *

When this parameter is true, the container is given read-only access to its * root file system. This parameter maps to ReadonlyRootfs in the Create * a container section of the Docker Remote API and the * --read-only option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline void SetReadonlyRootFilesystem(bool value) { m_readonlyRootFilesystemHasBeenSet = true; m_readonlyRootFilesystem = value; } /** *

When this parameter is true, the container is given read-only access to its * root file system. This parameter maps to ReadonlyRootfs in the Create * a container section of the Docker Remote API and the * --read-only option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline ContainerDefinition& WithReadonlyRootFilesystem(bool value) { SetReadonlyRootFilesystem(value); return *this;} /** *

A list of DNS servers that are presented to the container. This parameter * maps to Dns in the Create * a container section of the Docker Remote API and the * --dns option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline const Aws::Vector& GetDnsServers() const{ return m_dnsServers; } /** *

A list of DNS servers that are presented to the container. This parameter * maps to Dns in the Create * a container section of the Docker Remote API and the * --dns option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline bool DnsServersHasBeenSet() const { return m_dnsServersHasBeenSet; } /** *

A list of DNS servers that are presented to the container. This parameter * maps to Dns in the Create * a container section of the Docker Remote API and the * --dns option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline void SetDnsServers(const Aws::Vector& value) { m_dnsServersHasBeenSet = true; m_dnsServers = value; } /** *

A list of DNS servers that are presented to the container. This parameter * maps to Dns in the Create * a container section of the Docker Remote API and the * --dns option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline void SetDnsServers(Aws::Vector&& value) { m_dnsServersHasBeenSet = true; m_dnsServers = std::move(value); } /** *

A list of DNS servers that are presented to the container. This parameter * maps to Dns in the Create * a container section of the Docker Remote API and the * --dns option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline ContainerDefinition& WithDnsServers(const Aws::Vector& value) { SetDnsServers(value); return *this;} /** *

A list of DNS servers that are presented to the container. This parameter * maps to Dns in the Create * a container section of the Docker Remote API and the * --dns option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline ContainerDefinition& WithDnsServers(Aws::Vector&& value) { SetDnsServers(std::move(value)); return *this;} /** *

A list of DNS servers that are presented to the container. This parameter * maps to Dns in the Create * a container section of the Docker Remote API and the * --dns option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline ContainerDefinition& AddDnsServers(const Aws::String& value) { m_dnsServersHasBeenSet = true; m_dnsServers.push_back(value); return *this; } /** *

A list of DNS servers that are presented to the container. This parameter * maps to Dns in the Create * a container section of the Docker Remote API and the * --dns option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline ContainerDefinition& AddDnsServers(Aws::String&& value) { m_dnsServersHasBeenSet = true; m_dnsServers.push_back(std::move(value)); return *this; } /** *

A list of DNS servers that are presented to the container. This parameter * maps to Dns in the Create * a container section of the Docker Remote API and the * --dns option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline ContainerDefinition& AddDnsServers(const char* value) { m_dnsServersHasBeenSet = true; m_dnsServers.push_back(value); return *this; } /** *

A list of DNS search domains that are presented to the container. This * parameter maps to DnsSearch in the Create * a container section of the Docker Remote API and the * --dns-search option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline const Aws::Vector& GetDnsSearchDomains() const{ return m_dnsSearchDomains; } /** *

A list of DNS search domains that are presented to the container. This * parameter maps to DnsSearch in the Create * a container section of the Docker Remote API and the * --dns-search option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline bool DnsSearchDomainsHasBeenSet() const { return m_dnsSearchDomainsHasBeenSet; } /** *

A list of DNS search domains that are presented to the container. This * parameter maps to DnsSearch in the Create * a container section of the Docker Remote API and the * --dns-search option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline void SetDnsSearchDomains(const Aws::Vector& value) { m_dnsSearchDomainsHasBeenSet = true; m_dnsSearchDomains = value; } /** *

A list of DNS search domains that are presented to the container. This * parameter maps to DnsSearch in the Create * a container section of the Docker Remote API and the * --dns-search option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline void SetDnsSearchDomains(Aws::Vector&& value) { m_dnsSearchDomainsHasBeenSet = true; m_dnsSearchDomains = std::move(value); } /** *

A list of DNS search domains that are presented to the container. This * parameter maps to DnsSearch in the Create * a container section of the Docker Remote API and the * --dns-search option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline ContainerDefinition& WithDnsSearchDomains(const Aws::Vector& value) { SetDnsSearchDomains(value); return *this;} /** *

A list of DNS search domains that are presented to the container. This * parameter maps to DnsSearch in the Create * a container section of the Docker Remote API and the * --dns-search option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline ContainerDefinition& WithDnsSearchDomains(Aws::Vector&& value) { SetDnsSearchDomains(std::move(value)); return *this;} /** *

A list of DNS search domains that are presented to the container. This * parameter maps to DnsSearch in the Create * a container section of the Docker Remote API and the * --dns-search option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline ContainerDefinition& AddDnsSearchDomains(const Aws::String& value) { m_dnsSearchDomainsHasBeenSet = true; m_dnsSearchDomains.push_back(value); return *this; } /** *

A list of DNS search domains that are presented to the container. This * parameter maps to DnsSearch in the Create * a container section of the Docker Remote API and the * --dns-search option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline ContainerDefinition& AddDnsSearchDomains(Aws::String&& value) { m_dnsSearchDomainsHasBeenSet = true; m_dnsSearchDomains.push_back(std::move(value)); return *this; } /** *

A list of DNS search domains that are presented to the container. This * parameter maps to DnsSearch in the Create * a container section of the Docker Remote API and the * --dns-search option to docker * run.

This parameter is not supported for Windows * containers.

*/ inline ContainerDefinition& AddDnsSearchDomains(const char* value) { m_dnsSearchDomainsHasBeenSet = true; m_dnsSearchDomains.push_back(value); return *this; } /** *

A list of hostnames and IP address mappings to append to the * /etc/hosts file on the container. This parameter maps to * ExtraHosts in the Create * a container section of the Docker Remote API and the * --add-host option to docker * run.

This parameter isn't supported for Windows containers or * tasks that use the awsvpc network mode.

*/ inline const Aws::Vector& GetExtraHosts() const{ return m_extraHosts; } /** *

A list of hostnames and IP address mappings to append to the * /etc/hosts file on the container. This parameter maps to * ExtraHosts in the Create * a container section of the Docker Remote API and the * --add-host option to docker * run.

This parameter isn't supported for Windows containers or * tasks that use the awsvpc network mode.

*/ inline bool ExtraHostsHasBeenSet() const { return m_extraHostsHasBeenSet; } /** *

A list of hostnames and IP address mappings to append to the * /etc/hosts file on the container. This parameter maps to * ExtraHosts in the Create * a container section of the Docker Remote API and the * --add-host option to docker * run.

This parameter isn't supported for Windows containers or * tasks that use the awsvpc network mode.

*/ inline void SetExtraHosts(const Aws::Vector& value) { m_extraHostsHasBeenSet = true; m_extraHosts = value; } /** *

A list of hostnames and IP address mappings to append to the * /etc/hosts file on the container. This parameter maps to * ExtraHosts in the Create * a container section of the Docker Remote API and the * --add-host option to docker * run.

This parameter isn't supported for Windows containers or * tasks that use the awsvpc network mode.

*/ inline void SetExtraHosts(Aws::Vector&& value) { m_extraHostsHasBeenSet = true; m_extraHosts = std::move(value); } /** *

A list of hostnames and IP address mappings to append to the * /etc/hosts file on the container. This parameter maps to * ExtraHosts in the Create * a container section of the Docker Remote API and the * --add-host option to docker * run.

This parameter isn't supported for Windows containers or * tasks that use the awsvpc network mode.

*/ inline ContainerDefinition& WithExtraHosts(const Aws::Vector& value) { SetExtraHosts(value); return *this;} /** *

A list of hostnames and IP address mappings to append to the * /etc/hosts file on the container. This parameter maps to * ExtraHosts in the Create * a container section of the Docker Remote API and the * --add-host option to docker * run.

This parameter isn't supported for Windows containers or * tasks that use the awsvpc network mode.

*/ inline ContainerDefinition& WithExtraHosts(Aws::Vector&& value) { SetExtraHosts(std::move(value)); return *this;} /** *

A list of hostnames and IP address mappings to append to the * /etc/hosts file on the container. This parameter maps to * ExtraHosts in the Create * a container section of the Docker Remote API and the * --add-host option to docker * run.

This parameter isn't supported for Windows containers or * tasks that use the awsvpc network mode.

*/ inline ContainerDefinition& AddExtraHosts(const HostEntry& value) { m_extraHostsHasBeenSet = true; m_extraHosts.push_back(value); return *this; } /** *

A list of hostnames and IP address mappings to append to the * /etc/hosts file on the container. This parameter maps to * ExtraHosts in the Create * a container section of the Docker Remote API and the * --add-host option to docker * run.

This parameter isn't supported for Windows containers or * tasks that use the awsvpc network mode.

*/ inline ContainerDefinition& AddExtraHosts(HostEntry&& value) { m_extraHostsHasBeenSet = true; m_extraHosts.push_back(std::move(value)); return *this; } /** *

A list of strings to provide custom configuration for multiple security * systems. For more information about valid values, see Docker * Run Security Configuration. This field isn't valid for containers in tasks * using the Fargate launch type.

For Linux tasks on EC2, this parameter can * be used to reference custom labels for SELinux and AppArmor multi-level security * systems.

For any tasks on EC2, this parameter can be used to reference a * credential spec file that configures a container for Active Directory * authentication. For more information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers in the Amazon Elastic Container Service * Developer Guide.

This parameter maps to SecurityOpt in * the Create * a container section of the Docker Remote API and the * --security-opt option to docker * run.

The Amazon ECS container agent running on a container * instance must register with the ECS_SELINUX_CAPABLE=true or * ECS_APPARMOR_CAPABLE=true environment variables before containers * placed on that instance can use these security options. For more information, * see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

For more information about valid values, see * Docker * Run Security Configuration.

Valid values: "no-new-privileges" | * "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"

*/ inline const Aws::Vector& GetDockerSecurityOptions() const{ return m_dockerSecurityOptions; } /** *

A list of strings to provide custom configuration for multiple security * systems. For more information about valid values, see Docker * Run Security Configuration. This field isn't valid for containers in tasks * using the Fargate launch type.

For Linux tasks on EC2, this parameter can * be used to reference custom labels for SELinux and AppArmor multi-level security * systems.

For any tasks on EC2, this parameter can be used to reference a * credential spec file that configures a container for Active Directory * authentication. For more information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers in the Amazon Elastic Container Service * Developer Guide.

This parameter maps to SecurityOpt in * the Create * a container section of the Docker Remote API and the * --security-opt option to docker * run.

The Amazon ECS container agent running on a container * instance must register with the ECS_SELINUX_CAPABLE=true or * ECS_APPARMOR_CAPABLE=true environment variables before containers * placed on that instance can use these security options. For more information, * see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

For more information about valid values, see * Docker * Run Security Configuration.

Valid values: "no-new-privileges" | * "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"

*/ inline bool DockerSecurityOptionsHasBeenSet() const { return m_dockerSecurityOptionsHasBeenSet; } /** *

A list of strings to provide custom configuration for multiple security * systems. For more information about valid values, see Docker * Run Security Configuration. This field isn't valid for containers in tasks * using the Fargate launch type.

For Linux tasks on EC2, this parameter can * be used to reference custom labels for SELinux and AppArmor multi-level security * systems.

For any tasks on EC2, this parameter can be used to reference a * credential spec file that configures a container for Active Directory * authentication. For more information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers in the Amazon Elastic Container Service * Developer Guide.

This parameter maps to SecurityOpt in * the Create * a container section of the Docker Remote API and the * --security-opt option to docker * run.

The Amazon ECS container agent running on a container * instance must register with the ECS_SELINUX_CAPABLE=true or * ECS_APPARMOR_CAPABLE=true environment variables before containers * placed on that instance can use these security options. For more information, * see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

For more information about valid values, see * Docker * Run Security Configuration.

Valid values: "no-new-privileges" | * "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"

*/ inline void SetDockerSecurityOptions(const Aws::Vector& value) { m_dockerSecurityOptionsHasBeenSet = true; m_dockerSecurityOptions = value; } /** *

A list of strings to provide custom configuration for multiple security * systems. For more information about valid values, see Docker * Run Security Configuration. This field isn't valid for containers in tasks * using the Fargate launch type.

For Linux tasks on EC2, this parameter can * be used to reference custom labels for SELinux and AppArmor multi-level security * systems.

For any tasks on EC2, this parameter can be used to reference a * credential spec file that configures a container for Active Directory * authentication. For more information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers in the Amazon Elastic Container Service * Developer Guide.

This parameter maps to SecurityOpt in * the Create * a container section of the Docker Remote API and the * --security-opt option to docker * run.

The Amazon ECS container agent running on a container * instance must register with the ECS_SELINUX_CAPABLE=true or * ECS_APPARMOR_CAPABLE=true environment variables before containers * placed on that instance can use these security options. For more information, * see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

For more information about valid values, see * Docker * Run Security Configuration.

Valid values: "no-new-privileges" | * "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"

*/ inline void SetDockerSecurityOptions(Aws::Vector&& value) { m_dockerSecurityOptionsHasBeenSet = true; m_dockerSecurityOptions = std::move(value); } /** *

A list of strings to provide custom configuration for multiple security * systems. For more information about valid values, see Docker * Run Security Configuration. This field isn't valid for containers in tasks * using the Fargate launch type.

For Linux tasks on EC2, this parameter can * be used to reference custom labels for SELinux and AppArmor multi-level security * systems.

For any tasks on EC2, this parameter can be used to reference a * credential spec file that configures a container for Active Directory * authentication. For more information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers in the Amazon Elastic Container Service * Developer Guide.

This parameter maps to SecurityOpt in * the Create * a container section of the Docker Remote API and the * --security-opt option to docker * run.

The Amazon ECS container agent running on a container * instance must register with the ECS_SELINUX_CAPABLE=true or * ECS_APPARMOR_CAPABLE=true environment variables before containers * placed on that instance can use these security options. For more information, * see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

For more information about valid values, see * Docker * Run Security Configuration.

Valid values: "no-new-privileges" | * "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"

*/ inline ContainerDefinition& WithDockerSecurityOptions(const Aws::Vector& value) { SetDockerSecurityOptions(value); return *this;} /** *

A list of strings to provide custom configuration for multiple security * systems. For more information about valid values, see Docker * Run Security Configuration. This field isn't valid for containers in tasks * using the Fargate launch type.

For Linux tasks on EC2, this parameter can * be used to reference custom labels for SELinux and AppArmor multi-level security * systems.

For any tasks on EC2, this parameter can be used to reference a * credential spec file that configures a container for Active Directory * authentication. For more information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers in the Amazon Elastic Container Service * Developer Guide.

This parameter maps to SecurityOpt in * the Create * a container section of the Docker Remote API and the * --security-opt option to docker * run.

The Amazon ECS container agent running on a container * instance must register with the ECS_SELINUX_CAPABLE=true or * ECS_APPARMOR_CAPABLE=true environment variables before containers * placed on that instance can use these security options. For more information, * see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

For more information about valid values, see * Docker * Run Security Configuration.

Valid values: "no-new-privileges" | * "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"

*/ inline ContainerDefinition& WithDockerSecurityOptions(Aws::Vector&& value) { SetDockerSecurityOptions(std::move(value)); return *this;} /** *

A list of strings to provide custom configuration for multiple security * systems. For more information about valid values, see Docker * Run Security Configuration. This field isn't valid for containers in tasks * using the Fargate launch type.

For Linux tasks on EC2, this parameter can * be used to reference custom labels for SELinux and AppArmor multi-level security * systems.

For any tasks on EC2, this parameter can be used to reference a * credential spec file that configures a container for Active Directory * authentication. For more information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers in the Amazon Elastic Container Service * Developer Guide.

This parameter maps to SecurityOpt in * the Create * a container section of the Docker Remote API and the * --security-opt option to docker * run.

The Amazon ECS container agent running on a container * instance must register with the ECS_SELINUX_CAPABLE=true or * ECS_APPARMOR_CAPABLE=true environment variables before containers * placed on that instance can use these security options. For more information, * see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

For more information about valid values, see * Docker * Run Security Configuration.

Valid values: "no-new-privileges" | * "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"

*/ inline ContainerDefinition& AddDockerSecurityOptions(const Aws::String& value) { m_dockerSecurityOptionsHasBeenSet = true; m_dockerSecurityOptions.push_back(value); return *this; } /** *

A list of strings to provide custom configuration for multiple security * systems. For more information about valid values, see Docker * Run Security Configuration. This field isn't valid for containers in tasks * using the Fargate launch type.

For Linux tasks on EC2, this parameter can * be used to reference custom labels for SELinux and AppArmor multi-level security * systems.

For any tasks on EC2, this parameter can be used to reference a * credential spec file that configures a container for Active Directory * authentication. For more information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers in the Amazon Elastic Container Service * Developer Guide.

This parameter maps to SecurityOpt in * the Create * a container section of the Docker Remote API and the * --security-opt option to docker * run.

The Amazon ECS container agent running on a container * instance must register with the ECS_SELINUX_CAPABLE=true or * ECS_APPARMOR_CAPABLE=true environment variables before containers * placed on that instance can use these security options. For more information, * see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

For more information about valid values, see * Docker * Run Security Configuration.

Valid values: "no-new-privileges" | * "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"

*/ inline ContainerDefinition& AddDockerSecurityOptions(Aws::String&& value) { m_dockerSecurityOptionsHasBeenSet = true; m_dockerSecurityOptions.push_back(std::move(value)); return *this; } /** *

A list of strings to provide custom configuration for multiple security * systems. For more information about valid values, see Docker * Run Security Configuration. This field isn't valid for containers in tasks * using the Fargate launch type.

For Linux tasks on EC2, this parameter can * be used to reference custom labels for SELinux and AppArmor multi-level security * systems.

For any tasks on EC2, this parameter can be used to reference a * credential spec file that configures a container for Active Directory * authentication. For more information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers in the Amazon Elastic Container Service * Developer Guide.

This parameter maps to SecurityOpt in * the Create * a container section of the Docker Remote API and the * --security-opt option to docker * run.

The Amazon ECS container agent running on a container * instance must register with the ECS_SELINUX_CAPABLE=true or * ECS_APPARMOR_CAPABLE=true environment variables before containers * placed on that instance can use these security options. For more information, * see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

For more information about valid values, see * Docker * Run Security Configuration.

Valid values: "no-new-privileges" | * "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"

*/ inline ContainerDefinition& AddDockerSecurityOptions(const char* value) { m_dockerSecurityOptionsHasBeenSet = true; m_dockerSecurityOptions.push_back(value); return *this; } /** *

When this parameter is true, you can deploy containerized * applications that require stdin or a tty to be * allocated. This parameter maps to OpenStdin in the Create * a container section of the Docker Remote API and the * --interactive option to docker * run.

*/ inline bool GetInteractive() const{ return m_interactive; } /** *

When this parameter is true, you can deploy containerized * applications that require stdin or a tty to be * allocated. This parameter maps to OpenStdin in the Create * a container section of the Docker Remote API and the * --interactive option to docker * run.

*/ inline bool InteractiveHasBeenSet() const { return m_interactiveHasBeenSet; } /** *

When this parameter is true, you can deploy containerized * applications that require stdin or a tty to be * allocated. This parameter maps to OpenStdin in the Create * a container section of the Docker Remote API and the * --interactive option to docker * run.

*/ inline void SetInteractive(bool value) { m_interactiveHasBeenSet = true; m_interactive = value; } /** *

When this parameter is true, you can deploy containerized * applications that require stdin or a tty to be * allocated. This parameter maps to OpenStdin in the Create * a container section of the Docker Remote API and the * --interactive option to docker * run.

*/ inline ContainerDefinition& WithInteractive(bool value) { SetInteractive(value); return *this;} /** *

When this parameter is true, a TTY is allocated. This parameter * maps to Tty in the Create * a container section of the Docker Remote API and the * --tty option to docker * run.

*/ inline bool GetPseudoTerminal() const{ return m_pseudoTerminal; } /** *

When this parameter is true, a TTY is allocated. This parameter * maps to Tty in the Create * a container section of the Docker Remote API and the * --tty option to docker * run.

*/ inline bool PseudoTerminalHasBeenSet() const { return m_pseudoTerminalHasBeenSet; } /** *

When this parameter is true, a TTY is allocated. This parameter * maps to Tty in the Create * a container section of the Docker Remote API and the * --tty option to docker * run.

*/ inline void SetPseudoTerminal(bool value) { m_pseudoTerminalHasBeenSet = true; m_pseudoTerminal = value; } /** *

When this parameter is true, a TTY is allocated. This parameter * maps to Tty in the Create * a container section of the Docker Remote API and the * --tty option to docker * run.

*/ inline ContainerDefinition& WithPseudoTerminal(bool value) { SetPseudoTerminal(value); return *this;} /** *

A key/value map of labels to add to the container. This parameter maps to * Labels in the Create * a container section of the Docker Remote API and the * --label option to docker * run. This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*/ inline const Aws::Map& GetDockerLabels() const{ return m_dockerLabels; } /** *

A key/value map of labels to add to the container. This parameter maps to * Labels in the Create * a container section of the Docker Remote API and the * --label option to docker * run. This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*/ inline bool DockerLabelsHasBeenSet() const { return m_dockerLabelsHasBeenSet; } /** *

A key/value map of labels to add to the container. This parameter maps to * Labels in the Create * a container section of the Docker Remote API and the * --label option to docker * run. This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*/ inline void SetDockerLabels(const Aws::Map& value) { m_dockerLabelsHasBeenSet = true; m_dockerLabels = value; } /** *

A key/value map of labels to add to the container. This parameter maps to * Labels in the Create * a container section of the Docker Remote API and the * --label option to docker * run. This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*/ inline void SetDockerLabels(Aws::Map&& value) { m_dockerLabelsHasBeenSet = true; m_dockerLabels = std::move(value); } /** *

A key/value map of labels to add to the container. This parameter maps to * Labels in the Create * a container section of the Docker Remote API and the * --label option to docker * run. This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*/ inline ContainerDefinition& WithDockerLabels(const Aws::Map& value) { SetDockerLabels(value); return *this;} /** *

A key/value map of labels to add to the container. This parameter maps to * Labels in the Create * a container section of the Docker Remote API and the * --label option to docker * run. This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*/ inline ContainerDefinition& WithDockerLabels(Aws::Map&& value) { SetDockerLabels(std::move(value)); return *this;} /** *

A key/value map of labels to add to the container. This parameter maps to * Labels in the Create * a container section of the Docker Remote API and the * --label option to docker * run. This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*/ inline ContainerDefinition& AddDockerLabels(const Aws::String& key, const Aws::String& value) { m_dockerLabelsHasBeenSet = true; m_dockerLabels.emplace(key, value); return *this; } /** *

A key/value map of labels to add to the container. This parameter maps to * Labels in the Create * a container section of the Docker Remote API and the * --label option to docker * run. This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*/ inline ContainerDefinition& AddDockerLabels(Aws::String&& key, const Aws::String& value) { m_dockerLabelsHasBeenSet = true; m_dockerLabels.emplace(std::move(key), value); return *this; } /** *

A key/value map of labels to add to the container. This parameter maps to * Labels in the Create * a container section of the Docker Remote API and the * --label option to docker * run. This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*/ inline ContainerDefinition& AddDockerLabels(const Aws::String& key, Aws::String&& value) { m_dockerLabelsHasBeenSet = true; m_dockerLabels.emplace(key, std::move(value)); return *this; } /** *

A key/value map of labels to add to the container. This parameter maps to * Labels in the Create * a container section of the Docker Remote API and the * --label option to docker * run. This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*/ inline ContainerDefinition& AddDockerLabels(Aws::String&& key, Aws::String&& value) { m_dockerLabelsHasBeenSet = true; m_dockerLabels.emplace(std::move(key), std::move(value)); return *this; } /** *

A key/value map of labels to add to the container. This parameter maps to * Labels in the Create * a container section of the Docker Remote API and the * --label option to docker * run. This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*/ inline ContainerDefinition& AddDockerLabels(const char* key, Aws::String&& value) { m_dockerLabelsHasBeenSet = true; m_dockerLabels.emplace(key, std::move(value)); return *this; } /** *

A key/value map of labels to add to the container. This parameter maps to * Labels in the Create * a container section of the Docker Remote API and the * --label option to docker * run. This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*/ inline ContainerDefinition& AddDockerLabels(Aws::String&& key, const char* value) { m_dockerLabelsHasBeenSet = true; m_dockerLabels.emplace(std::move(key), value); return *this; } /** *

A key/value map of labels to add to the container. This parameter maps to * Labels in the Create * a container section of the Docker Remote API and the * --label option to docker * run. This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*/ inline ContainerDefinition& AddDockerLabels(const char* key, const char* value) { m_dockerLabelsHasBeenSet = true; m_dockerLabels.emplace(key, value); return *this; } /** *

A list of ulimits to set in the container. If a * ulimit value is specified in a task definition, it overrides the * default values set by Docker. This parameter maps to Ulimits in the * Create * a container section of the Docker Remote API and the * --ulimit option to docker * run. Valid naming values are displayed in the Ulimit data type.

*

Amazon ECS tasks hosted on Fargate use the default resource limit values set * by the operating system with the exception of the nofile resource * limit parameter which Fargate overrides. The nofile resource limit * sets a restriction on the number of open files that a container can use. The * default nofile soft limit is 1024 and the default hard * limit is 4096.

This parameter requires version 1.18 of the * Docker Remote API or greater on your container instance. To check the Docker * Remote API version on your container instance, log in to your container instance * and run the following command: sudo docker version --format * '{{.Server.APIVersion}}'

This parameter is not supported * for Windows containers.

*/ inline const Aws::Vector& GetUlimits() const{ return m_ulimits; } /** *

A list of ulimits to set in the container. If a * ulimit value is specified in a task definition, it overrides the * default values set by Docker. This parameter maps to Ulimits in the * Create * a container section of the Docker Remote API and the * --ulimit option to docker * run. Valid naming values are displayed in the Ulimit data type.

*

Amazon ECS tasks hosted on Fargate use the default resource limit values set * by the operating system with the exception of the nofile resource * limit parameter which Fargate overrides. The nofile resource limit * sets a restriction on the number of open files that a container can use. The * default nofile soft limit is 1024 and the default hard * limit is 4096.

This parameter requires version 1.18 of the * Docker Remote API or greater on your container instance. To check the Docker * Remote API version on your container instance, log in to your container instance * and run the following command: sudo docker version --format * '{{.Server.APIVersion}}'

This parameter is not supported * for Windows containers.

*/ inline bool UlimitsHasBeenSet() const { return m_ulimitsHasBeenSet; } /** *

A list of ulimits to set in the container. If a * ulimit value is specified in a task definition, it overrides the * default values set by Docker. This parameter maps to Ulimits in the * Create * a container section of the Docker Remote API and the * --ulimit option to docker * run. Valid naming values are displayed in the Ulimit data type.

*

Amazon ECS tasks hosted on Fargate use the default resource limit values set * by the operating system with the exception of the nofile resource * limit parameter which Fargate overrides. The nofile resource limit * sets a restriction on the number of open files that a container can use. The * default nofile soft limit is 1024 and the default hard * limit is 4096.

This parameter requires version 1.18 of the * Docker Remote API or greater on your container instance. To check the Docker * Remote API version on your container instance, log in to your container instance * and run the following command: sudo docker version --format * '{{.Server.APIVersion}}'

This parameter is not supported * for Windows containers.

*/ inline void SetUlimits(const Aws::Vector& value) { m_ulimitsHasBeenSet = true; m_ulimits = value; } /** *

A list of ulimits to set in the container. If a * ulimit value is specified in a task definition, it overrides the * default values set by Docker. This parameter maps to Ulimits in the * Create * a container section of the Docker Remote API and the * --ulimit option to docker * run. Valid naming values are displayed in the Ulimit data type.

*

Amazon ECS tasks hosted on Fargate use the default resource limit values set * by the operating system with the exception of the nofile resource * limit parameter which Fargate overrides. The nofile resource limit * sets a restriction on the number of open files that a container can use. The * default nofile soft limit is 1024 and the default hard * limit is 4096.

This parameter requires version 1.18 of the * Docker Remote API or greater on your container instance. To check the Docker * Remote API version on your container instance, log in to your container instance * and run the following command: sudo docker version --format * '{{.Server.APIVersion}}'

This parameter is not supported * for Windows containers.

*/ inline void SetUlimits(Aws::Vector&& value) { m_ulimitsHasBeenSet = true; m_ulimits = std::move(value); } /** *

A list of ulimits to set in the container. If a * ulimit value is specified in a task definition, it overrides the * default values set by Docker. This parameter maps to Ulimits in the * Create * a container section of the Docker Remote API and the * --ulimit option to docker * run. Valid naming values are displayed in the Ulimit data type.

*

Amazon ECS tasks hosted on Fargate use the default resource limit values set * by the operating system with the exception of the nofile resource * limit parameter which Fargate overrides. The nofile resource limit * sets a restriction on the number of open files that a container can use. The * default nofile soft limit is 1024 and the default hard * limit is 4096.

This parameter requires version 1.18 of the * Docker Remote API or greater on your container instance. To check the Docker * Remote API version on your container instance, log in to your container instance * and run the following command: sudo docker version --format * '{{.Server.APIVersion}}'

This parameter is not supported * for Windows containers.

*/ inline ContainerDefinition& WithUlimits(const Aws::Vector& value) { SetUlimits(value); return *this;} /** *

A list of ulimits to set in the container. If a * ulimit value is specified in a task definition, it overrides the * default values set by Docker. This parameter maps to Ulimits in the * Create * a container section of the Docker Remote API and the * --ulimit option to docker * run. Valid naming values are displayed in the Ulimit data type.

*

Amazon ECS tasks hosted on Fargate use the default resource limit values set * by the operating system with the exception of the nofile resource * limit parameter which Fargate overrides. The nofile resource limit * sets a restriction on the number of open files that a container can use. The * default nofile soft limit is 1024 and the default hard * limit is 4096.

This parameter requires version 1.18 of the * Docker Remote API or greater on your container instance. To check the Docker * Remote API version on your container instance, log in to your container instance * and run the following command: sudo docker version --format * '{{.Server.APIVersion}}'

This parameter is not supported * for Windows containers.

*/ inline ContainerDefinition& WithUlimits(Aws::Vector&& value) { SetUlimits(std::move(value)); return *this;} /** *

A list of ulimits to set in the container. If a * ulimit value is specified in a task definition, it overrides the * default values set by Docker. This parameter maps to Ulimits in the * Create * a container section of the Docker Remote API and the * --ulimit option to docker * run. Valid naming values are displayed in the Ulimit data type.

*

Amazon ECS tasks hosted on Fargate use the default resource limit values set * by the operating system with the exception of the nofile resource * limit parameter which Fargate overrides. The nofile resource limit * sets a restriction on the number of open files that a container can use. The * default nofile soft limit is 1024 and the default hard * limit is 4096.

This parameter requires version 1.18 of the * Docker Remote API or greater on your container instance. To check the Docker * Remote API version on your container instance, log in to your container instance * and run the following command: sudo docker version --format * '{{.Server.APIVersion}}'

This parameter is not supported * for Windows containers.

*/ inline ContainerDefinition& AddUlimits(const Ulimit& value) { m_ulimitsHasBeenSet = true; m_ulimits.push_back(value); return *this; } /** *

A list of ulimits to set in the container. If a * ulimit value is specified in a task definition, it overrides the * default values set by Docker. This parameter maps to Ulimits in the * Create * a container section of the Docker Remote API and the * --ulimit option to docker * run. Valid naming values are displayed in the Ulimit data type.

*

Amazon ECS tasks hosted on Fargate use the default resource limit values set * by the operating system with the exception of the nofile resource * limit parameter which Fargate overrides. The nofile resource limit * sets a restriction on the number of open files that a container can use. The * default nofile soft limit is 1024 and the default hard * limit is 4096.

This parameter requires version 1.18 of the * Docker Remote API or greater on your container instance. To check the Docker * Remote API version on your container instance, log in to your container instance * and run the following command: sudo docker version --format * '{{.Server.APIVersion}}'

This parameter is not supported * for Windows containers.

*/ inline ContainerDefinition& AddUlimits(Ulimit&& value) { m_ulimitsHasBeenSet = true; m_ulimits.push_back(std::move(value)); return *this; } /** *

The log configuration specification for the container.

This parameter * maps to LogConfig in the Create * a container section of the Docker Remote API and the * --log-driver option to docker * run. By default, containers use the same logging driver that the Docker * daemon uses. However the container can use a different logging driver than the * Docker daemon by specifying a log driver with this parameter in the container * definition. To use a different logging driver for a container, the log system * must be configured properly on the container instance (or on a different log * server for remote logging options). For more information about the options for * different supported log drivers, see Configure logging * drivers in the Docker documentation.

Amazon ECS currently * supports a subset of the logging drivers available to the Docker daemon (shown * in the LogConfiguration data type). Additional log drivers may be * available in future releases of the Amazon ECS container agent.

*

This parameter requires version 1.18 of the Docker Remote API or greater on * your container instance. To check the Docker Remote API version on your * container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*

The Amazon ECS container agent running on a container instance must * register the logging drivers available on that instance with the * ECS_AVAILABLE_LOGGING_DRIVERS environment variable before * containers placed on that instance can use these log configuration options. For * more information, see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

*/ inline const LogConfiguration& GetLogConfiguration() const{ return m_logConfiguration; } /** *

The log configuration specification for the container.

This parameter * maps to LogConfig in the Create * a container section of the Docker Remote API and the * --log-driver option to docker * run. By default, containers use the same logging driver that the Docker * daemon uses. However the container can use a different logging driver than the * Docker daemon by specifying a log driver with this parameter in the container * definition. To use a different logging driver for a container, the log system * must be configured properly on the container instance (or on a different log * server for remote logging options). For more information about the options for * different supported log drivers, see Configure logging * drivers in the Docker documentation.

Amazon ECS currently * supports a subset of the logging drivers available to the Docker daemon (shown * in the LogConfiguration data type). Additional log drivers may be * available in future releases of the Amazon ECS container agent.

*

This parameter requires version 1.18 of the Docker Remote API or greater on * your container instance. To check the Docker Remote API version on your * container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*

The Amazon ECS container agent running on a container instance must * register the logging drivers available on that instance with the * ECS_AVAILABLE_LOGGING_DRIVERS environment variable before * containers placed on that instance can use these log configuration options. For * more information, see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

*/ inline bool LogConfigurationHasBeenSet() const { return m_logConfigurationHasBeenSet; } /** *

The log configuration specification for the container.

This parameter * maps to LogConfig in the Create * a container section of the Docker Remote API and the * --log-driver option to docker * run. By default, containers use the same logging driver that the Docker * daemon uses. However the container can use a different logging driver than the * Docker daemon by specifying a log driver with this parameter in the container * definition. To use a different logging driver for a container, the log system * must be configured properly on the container instance (or on a different log * server for remote logging options). For more information about the options for * different supported log drivers, see Configure logging * drivers in the Docker documentation.

Amazon ECS currently * supports a subset of the logging drivers available to the Docker daemon (shown * in the LogConfiguration data type). Additional log drivers may be * available in future releases of the Amazon ECS container agent.

*

This parameter requires version 1.18 of the Docker Remote API or greater on * your container instance. To check the Docker Remote API version on your * container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*

The Amazon ECS container agent running on a container instance must * register the logging drivers available on that instance with the * ECS_AVAILABLE_LOGGING_DRIVERS environment variable before * containers placed on that instance can use these log configuration options. For * more information, see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

*/ inline void SetLogConfiguration(const LogConfiguration& value) { m_logConfigurationHasBeenSet = true; m_logConfiguration = value; } /** *

The log configuration specification for the container.

This parameter * maps to LogConfig in the Create * a container section of the Docker Remote API and the * --log-driver option to docker * run. By default, containers use the same logging driver that the Docker * daemon uses. However the container can use a different logging driver than the * Docker daemon by specifying a log driver with this parameter in the container * definition. To use a different logging driver for a container, the log system * must be configured properly on the container instance (or on a different log * server for remote logging options). For more information about the options for * different supported log drivers, see Configure logging * drivers in the Docker documentation.

Amazon ECS currently * supports a subset of the logging drivers available to the Docker daemon (shown * in the LogConfiguration data type). Additional log drivers may be * available in future releases of the Amazon ECS container agent.

*

This parameter requires version 1.18 of the Docker Remote API or greater on * your container instance. To check the Docker Remote API version on your * container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*

The Amazon ECS container agent running on a container instance must * register the logging drivers available on that instance with the * ECS_AVAILABLE_LOGGING_DRIVERS environment variable before * containers placed on that instance can use these log configuration options. For * more information, see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

*/ inline void SetLogConfiguration(LogConfiguration&& value) { m_logConfigurationHasBeenSet = true; m_logConfiguration = std::move(value); } /** *

The log configuration specification for the container.

This parameter * maps to LogConfig in the Create * a container section of the Docker Remote API and the * --log-driver option to docker * run. By default, containers use the same logging driver that the Docker * daemon uses. However the container can use a different logging driver than the * Docker daemon by specifying a log driver with this parameter in the container * definition. To use a different logging driver for a container, the log system * must be configured properly on the container instance (or on a different log * server for remote logging options). For more information about the options for * different supported log drivers, see Configure logging * drivers in the Docker documentation.

Amazon ECS currently * supports a subset of the logging drivers available to the Docker daemon (shown * in the LogConfiguration data type). Additional log drivers may be * available in future releases of the Amazon ECS container agent.

*

This parameter requires version 1.18 of the Docker Remote API or greater on * your container instance. To check the Docker Remote API version on your * container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*

The Amazon ECS container agent running on a container instance must * register the logging drivers available on that instance with the * ECS_AVAILABLE_LOGGING_DRIVERS environment variable before * containers placed on that instance can use these log configuration options. For * more information, see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

*/ inline ContainerDefinition& WithLogConfiguration(const LogConfiguration& value) { SetLogConfiguration(value); return *this;} /** *

The log configuration specification for the container.

This parameter * maps to LogConfig in the Create * a container section of the Docker Remote API and the * --log-driver option to docker * run. By default, containers use the same logging driver that the Docker * daemon uses. However the container can use a different logging driver than the * Docker daemon by specifying a log driver with this parameter in the container * definition. To use a different logging driver for a container, the log system * must be configured properly on the container instance (or on a different log * server for remote logging options). For more information about the options for * different supported log drivers, see Configure logging * drivers in the Docker documentation.

Amazon ECS currently * supports a subset of the logging drivers available to the Docker daemon (shown * in the LogConfiguration data type). Additional log drivers may be * available in future releases of the Amazon ECS container agent.

*

This parameter requires version 1.18 of the Docker Remote API or greater on * your container instance. To check the Docker Remote API version on your * container instance, log in to your container instance and run the following * command: sudo docker version --format '{{.Server.APIVersion}}'

*

The Amazon ECS container agent running on a container instance must * register the logging drivers available on that instance with the * ECS_AVAILABLE_LOGGING_DRIVERS environment variable before * containers placed on that instance can use these log configuration options. For * more information, see Amazon * ECS Container Agent Configuration in the Amazon Elastic Container Service * Developer Guide.

*/ inline ContainerDefinition& WithLogConfiguration(LogConfiguration&& value) { SetLogConfiguration(std::move(value)); return *this;} /** *

The container health check command and associated configuration parameters * for the container. This parameter maps to HealthCheck in the Create * a container section of the Docker Remote API and the * HEALTHCHECK parameter of docker * run.

*/ inline const HealthCheck& GetHealthCheck() const{ return m_healthCheck; } /** *

The container health check command and associated configuration parameters * for the container. This parameter maps to HealthCheck in the Create * a container section of the Docker Remote API and the * HEALTHCHECK parameter of docker * run.

*/ inline bool HealthCheckHasBeenSet() const { return m_healthCheckHasBeenSet; } /** *

The container health check command and associated configuration parameters * for the container. This parameter maps to HealthCheck in the Create * a container section of the Docker Remote API and the * HEALTHCHECK parameter of docker * run.

*/ inline void SetHealthCheck(const HealthCheck& value) { m_healthCheckHasBeenSet = true; m_healthCheck = value; } /** *

The container health check command and associated configuration parameters * for the container. This parameter maps to HealthCheck in the Create * a container section of the Docker Remote API and the * HEALTHCHECK parameter of docker * run.

*/ inline void SetHealthCheck(HealthCheck&& value) { m_healthCheckHasBeenSet = true; m_healthCheck = std::move(value); } /** *

The container health check command and associated configuration parameters * for the container. This parameter maps to HealthCheck in the Create * a container section of the Docker Remote API and the * HEALTHCHECK parameter of docker * run.

*/ inline ContainerDefinition& WithHealthCheck(const HealthCheck& value) { SetHealthCheck(value); return *this;} /** *

The container health check command and associated configuration parameters * for the container. This parameter maps to HealthCheck in the Create * a container section of the Docker Remote API and the * HEALTHCHECK parameter of docker * run.

*/ inline ContainerDefinition& WithHealthCheck(HealthCheck&& value) { SetHealthCheck(std::move(value)); return *this;} /** *

A list of namespaced kernel parameters to set in the container. This * parameter maps to Sysctls in the Create * a container section of the Docker Remote API and the * --sysctl option to docker * run.

We don't recommended that you specify network-related * systemControls parameters for multiple containers in a single task * that also uses either the awsvpc or host network * modes. For tasks that use the awsvpc network mode, the container * that's started last determines which systemControls parameters take * effect. For tasks that use the host network mode, it changes the * container instance's namespaced kernel parameters as well as the containers.

* */ inline const Aws::Vector& GetSystemControls() const{ return m_systemControls; } /** *

A list of namespaced kernel parameters to set in the container. This * parameter maps to Sysctls in the Create * a container section of the Docker Remote API and the * --sysctl option to docker * run.

We don't recommended that you specify network-related * systemControls parameters for multiple containers in a single task * that also uses either the awsvpc or host network * modes. For tasks that use the awsvpc network mode, the container * that's started last determines which systemControls parameters take * effect. For tasks that use the host network mode, it changes the * container instance's namespaced kernel parameters as well as the containers.

* */ inline bool SystemControlsHasBeenSet() const { return m_systemControlsHasBeenSet; } /** *

A list of namespaced kernel parameters to set in the container. This * parameter maps to Sysctls in the Create * a container section of the Docker Remote API and the * --sysctl option to docker * run.

We don't recommended that you specify network-related * systemControls parameters for multiple containers in a single task * that also uses either the awsvpc or host network * modes. For tasks that use the awsvpc network mode, the container * that's started last determines which systemControls parameters take * effect. For tasks that use the host network mode, it changes the * container instance's namespaced kernel parameters as well as the containers.

* */ inline void SetSystemControls(const Aws::Vector& value) { m_systemControlsHasBeenSet = true; m_systemControls = value; } /** *

A list of namespaced kernel parameters to set in the container. This * parameter maps to Sysctls in the Create * a container section of the Docker Remote API and the * --sysctl option to docker * run.

We don't recommended that you specify network-related * systemControls parameters for multiple containers in a single task * that also uses either the awsvpc or host network * modes. For tasks that use the awsvpc network mode, the container * that's started last determines which systemControls parameters take * effect. For tasks that use the host network mode, it changes the * container instance's namespaced kernel parameters as well as the containers.

* */ inline void SetSystemControls(Aws::Vector&& value) { m_systemControlsHasBeenSet = true; m_systemControls = std::move(value); } /** *

A list of namespaced kernel parameters to set in the container. This * parameter maps to Sysctls in the Create * a container section of the Docker Remote API and the * --sysctl option to docker * run.

We don't recommended that you specify network-related * systemControls parameters for multiple containers in a single task * that also uses either the awsvpc or host network * modes. For tasks that use the awsvpc network mode, the container * that's started last determines which systemControls parameters take * effect. For tasks that use the host network mode, it changes the * container instance's namespaced kernel parameters as well as the containers.

* */ inline ContainerDefinition& WithSystemControls(const Aws::Vector& value) { SetSystemControls(value); return *this;} /** *

A list of namespaced kernel parameters to set in the container. This * parameter maps to Sysctls in the Create * a container section of the Docker Remote API and the * --sysctl option to docker * run.

We don't recommended that you specify network-related * systemControls parameters for multiple containers in a single task * that also uses either the awsvpc or host network * modes. For tasks that use the awsvpc network mode, the container * that's started last determines which systemControls parameters take * effect. For tasks that use the host network mode, it changes the * container instance's namespaced kernel parameters as well as the containers.

* */ inline ContainerDefinition& WithSystemControls(Aws::Vector&& value) { SetSystemControls(std::move(value)); return *this;} /** *

A list of namespaced kernel parameters to set in the container. This * parameter maps to Sysctls in the Create * a container section of the Docker Remote API and the * --sysctl option to docker * run.

We don't recommended that you specify network-related * systemControls parameters for multiple containers in a single task * that also uses either the awsvpc or host network * modes. For tasks that use the awsvpc network mode, the container * that's started last determines which systemControls parameters take * effect. For tasks that use the host network mode, it changes the * container instance's namespaced kernel parameters as well as the containers.

* */ inline ContainerDefinition& AddSystemControls(const SystemControl& value) { m_systemControlsHasBeenSet = true; m_systemControls.push_back(value); return *this; } /** *

A list of namespaced kernel parameters to set in the container. This * parameter maps to Sysctls in the Create * a container section of the Docker Remote API and the * --sysctl option to docker * run.

We don't recommended that you specify network-related * systemControls parameters for multiple containers in a single task * that also uses either the awsvpc or host network * modes. For tasks that use the awsvpc network mode, the container * that's started last determines which systemControls parameters take * effect. For tasks that use the host network mode, it changes the * container instance's namespaced kernel parameters as well as the containers.

* */ inline ContainerDefinition& AddSystemControls(SystemControl&& value) { m_systemControlsHasBeenSet = true; m_systemControls.push_back(std::move(value)); return *this; } /** *

The type and amount of a resource to assign to a container. The only * supported resource is a GPU.

*/ inline const Aws::Vector& GetResourceRequirements() const{ return m_resourceRequirements; } /** *

The type and amount of a resource to assign to a container. The only * supported resource is a GPU.

*/ inline bool ResourceRequirementsHasBeenSet() const { return m_resourceRequirementsHasBeenSet; } /** *

The type and amount of a resource to assign to a container. The only * supported resource is a GPU.

*/ inline void SetResourceRequirements(const Aws::Vector& value) { m_resourceRequirementsHasBeenSet = true; m_resourceRequirements = value; } /** *

The type and amount of a resource to assign to a container. The only * supported resource is a GPU.

*/ inline void SetResourceRequirements(Aws::Vector&& value) { m_resourceRequirementsHasBeenSet = true; m_resourceRequirements = std::move(value); } /** *

The type and amount of a resource to assign to a container. The only * supported resource is a GPU.

*/ inline ContainerDefinition& WithResourceRequirements(const Aws::Vector& value) { SetResourceRequirements(value); return *this;} /** *

The type and amount of a resource to assign to a container. The only * supported resource is a GPU.

*/ inline ContainerDefinition& WithResourceRequirements(Aws::Vector&& value) { SetResourceRequirements(std::move(value)); return *this;} /** *

The type and amount of a resource to assign to a container. The only * supported resource is a GPU.

*/ inline ContainerDefinition& AddResourceRequirements(const ResourceRequirement& value) { m_resourceRequirementsHasBeenSet = true; m_resourceRequirements.push_back(value); return *this; } /** *

The type and amount of a resource to assign to a container. The only * supported resource is a GPU.

*/ inline ContainerDefinition& AddResourceRequirements(ResourceRequirement&& value) { m_resourceRequirementsHasBeenSet = true; m_resourceRequirements.push_back(std::move(value)); return *this; } /** *

The FireLens configuration for the container. This is used to specify and * configure a log router for container logs. For more information, see Custom * Log Routing in the Amazon Elastic Container Service Developer * Guide.

*/ inline const FirelensConfiguration& GetFirelensConfiguration() const{ return m_firelensConfiguration; } /** *

The FireLens configuration for the container. This is used to specify and * configure a log router for container logs. For more information, see Custom * Log Routing in the Amazon Elastic Container Service Developer * Guide.

*/ inline bool FirelensConfigurationHasBeenSet() const { return m_firelensConfigurationHasBeenSet; } /** *

The FireLens configuration for the container. This is used to specify and * configure a log router for container logs. For more information, see Custom * Log Routing in the Amazon Elastic Container Service Developer * Guide.

*/ inline void SetFirelensConfiguration(const FirelensConfiguration& value) { m_firelensConfigurationHasBeenSet = true; m_firelensConfiguration = value; } /** *

The FireLens configuration for the container. This is used to specify and * configure a log router for container logs. For more information, see Custom * Log Routing in the Amazon Elastic Container Service Developer * Guide.

*/ inline void SetFirelensConfiguration(FirelensConfiguration&& value) { m_firelensConfigurationHasBeenSet = true; m_firelensConfiguration = std::move(value); } /** *

The FireLens configuration for the container. This is used to specify and * configure a log router for container logs. For more information, see Custom * Log Routing in the Amazon Elastic Container Service Developer * Guide.

*/ inline ContainerDefinition& WithFirelensConfiguration(const FirelensConfiguration& value) { SetFirelensConfiguration(value); return *this;} /** *

The FireLens configuration for the container. This is used to specify and * configure a log router for container logs. For more information, see Custom * Log Routing in the Amazon Elastic Container Service Developer * Guide.

*/ inline ContainerDefinition& WithFirelensConfiguration(FirelensConfiguration&& value) { SetFirelensConfiguration(std::move(value)); return *this;} /** *

A list of ARNs in SSM or Amazon S3 to a credential spec * (credspeccode>) file that configures a container for Active * Directory authentication. This parameter is only used with domainless * authentication.

The format for each ARN is * credentialspecdomainless:MyARN. Replace MyARN with the * ARN in SSM or Amazon S3.

The credspec must provide a ARN in * Secrets Manager for a secret containing the username, password, and the domain * to connect to. For better security, the instance isn't joined to the domain for * domainless authentication. Other applications on the instance can't use the * domainless credentials. You can use this parameter to run tasks on the same * instance, even it the tasks need to join different domains. For more * information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers.

*/ inline const Aws::Vector& GetCredentialSpecs() const{ return m_credentialSpecs; } /** *

A list of ARNs in SSM or Amazon S3 to a credential spec * (credspeccode>) file that configures a container for Active * Directory authentication. This parameter is only used with domainless * authentication.

The format for each ARN is * credentialspecdomainless:MyARN. Replace MyARN with the * ARN in SSM or Amazon S3.

The credspec must provide a ARN in * Secrets Manager for a secret containing the username, password, and the domain * to connect to. For better security, the instance isn't joined to the domain for * domainless authentication. Other applications on the instance can't use the * domainless credentials. You can use this parameter to run tasks on the same * instance, even it the tasks need to join different domains. For more * information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers.

*/ inline bool CredentialSpecsHasBeenSet() const { return m_credentialSpecsHasBeenSet; } /** *

A list of ARNs in SSM or Amazon S3 to a credential spec * (credspeccode>) file that configures a container for Active * Directory authentication. This parameter is only used with domainless * authentication.

The format for each ARN is * credentialspecdomainless:MyARN. Replace MyARN with the * ARN in SSM or Amazon S3.

The credspec must provide a ARN in * Secrets Manager for a secret containing the username, password, and the domain * to connect to. For better security, the instance isn't joined to the domain for * domainless authentication. Other applications on the instance can't use the * domainless credentials. You can use this parameter to run tasks on the same * instance, even it the tasks need to join different domains. For more * information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers.

*/ inline void SetCredentialSpecs(const Aws::Vector& value) { m_credentialSpecsHasBeenSet = true; m_credentialSpecs = value; } /** *

A list of ARNs in SSM or Amazon S3 to a credential spec * (credspeccode>) file that configures a container for Active * Directory authentication. This parameter is only used with domainless * authentication.

The format for each ARN is * credentialspecdomainless:MyARN. Replace MyARN with the * ARN in SSM or Amazon S3.

The credspec must provide a ARN in * Secrets Manager for a secret containing the username, password, and the domain * to connect to. For better security, the instance isn't joined to the domain for * domainless authentication. Other applications on the instance can't use the * domainless credentials. You can use this parameter to run tasks on the same * instance, even it the tasks need to join different domains. For more * information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers.

*/ inline void SetCredentialSpecs(Aws::Vector&& value) { m_credentialSpecsHasBeenSet = true; m_credentialSpecs = std::move(value); } /** *

A list of ARNs in SSM or Amazon S3 to a credential spec * (credspeccode>) file that configures a container for Active * Directory authentication. This parameter is only used with domainless * authentication.

The format for each ARN is * credentialspecdomainless:MyARN. Replace MyARN with the * ARN in SSM or Amazon S3.

The credspec must provide a ARN in * Secrets Manager for a secret containing the username, password, and the domain * to connect to. For better security, the instance isn't joined to the domain for * domainless authentication. Other applications on the instance can't use the * domainless credentials. You can use this parameter to run tasks on the same * instance, even it the tasks need to join different domains. For more * information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers.

*/ inline ContainerDefinition& WithCredentialSpecs(const Aws::Vector& value) { SetCredentialSpecs(value); return *this;} /** *

A list of ARNs in SSM or Amazon S3 to a credential spec * (credspeccode>) file that configures a container for Active * Directory authentication. This parameter is only used with domainless * authentication.

The format for each ARN is * credentialspecdomainless:MyARN. Replace MyARN with the * ARN in SSM or Amazon S3.

The credspec must provide a ARN in * Secrets Manager for a secret containing the username, password, and the domain * to connect to. For better security, the instance isn't joined to the domain for * domainless authentication. Other applications on the instance can't use the * domainless credentials. You can use this parameter to run tasks on the same * instance, even it the tasks need to join different domains. For more * information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers.

*/ inline ContainerDefinition& WithCredentialSpecs(Aws::Vector&& value) { SetCredentialSpecs(std::move(value)); return *this;} /** *

A list of ARNs in SSM or Amazon S3 to a credential spec * (credspeccode>) file that configures a container for Active * Directory authentication. This parameter is only used with domainless * authentication.

The format for each ARN is * credentialspecdomainless:MyARN. Replace MyARN with the * ARN in SSM or Amazon S3.

The credspec must provide a ARN in * Secrets Manager for a secret containing the username, password, and the domain * to connect to. For better security, the instance isn't joined to the domain for * domainless authentication. Other applications on the instance can't use the * domainless credentials. You can use this parameter to run tasks on the same * instance, even it the tasks need to join different domains. For more * information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers.

*/ inline ContainerDefinition& AddCredentialSpecs(const Aws::String& value) { m_credentialSpecsHasBeenSet = true; m_credentialSpecs.push_back(value); return *this; } /** *

A list of ARNs in SSM or Amazon S3 to a credential spec * (credspeccode>) file that configures a container for Active * Directory authentication. This parameter is only used with domainless * authentication.

The format for each ARN is * credentialspecdomainless:MyARN. Replace MyARN with the * ARN in SSM or Amazon S3.

The credspec must provide a ARN in * Secrets Manager for a secret containing the username, password, and the domain * to connect to. For better security, the instance isn't joined to the domain for * domainless authentication. Other applications on the instance can't use the * domainless credentials. You can use this parameter to run tasks on the same * instance, even it the tasks need to join different domains. For more * information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers.

*/ inline ContainerDefinition& AddCredentialSpecs(Aws::String&& value) { m_credentialSpecsHasBeenSet = true; m_credentialSpecs.push_back(std::move(value)); return *this; } /** *

A list of ARNs in SSM or Amazon S3 to a credential spec * (credspeccode>) file that configures a container for Active * Directory authentication. This parameter is only used with domainless * authentication.

The format for each ARN is * credentialspecdomainless:MyARN. Replace MyARN with the * ARN in SSM or Amazon S3.

The credspec must provide a ARN in * Secrets Manager for a secret containing the username, password, and the domain * to connect to. For better security, the instance isn't joined to the domain for * domainless authentication. Other applications on the instance can't use the * domainless credentials. You can use this parameter to run tasks on the same * instance, even it the tasks need to join different domains. For more * information, see Using * gMSAs for Windows Containers and Using * gMSAs for Linux Containers.

*/ inline ContainerDefinition& AddCredentialSpecs(const char* value) { m_credentialSpecsHasBeenSet = true; m_credentialSpecs.push_back(value); return *this; } private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_image; bool m_imageHasBeenSet = false; RepositoryCredentials m_repositoryCredentials; bool m_repositoryCredentialsHasBeenSet = false; int m_cpu; bool m_cpuHasBeenSet = false; int m_memory; bool m_memoryHasBeenSet = false; int m_memoryReservation; bool m_memoryReservationHasBeenSet = false; Aws::Vector m_links; bool m_linksHasBeenSet = false; Aws::Vector m_portMappings; bool m_portMappingsHasBeenSet = false; bool m_essential; bool m_essentialHasBeenSet = false; Aws::Vector m_entryPoint; bool m_entryPointHasBeenSet = false; Aws::Vector m_command; bool m_commandHasBeenSet = false; Aws::Vector m_environment; bool m_environmentHasBeenSet = false; Aws::Vector m_environmentFiles; bool m_environmentFilesHasBeenSet = false; Aws::Vector m_mountPoints; bool m_mountPointsHasBeenSet = false; Aws::Vector m_volumesFrom; bool m_volumesFromHasBeenSet = false; LinuxParameters m_linuxParameters; bool m_linuxParametersHasBeenSet = false; Aws::Vector m_secrets; bool m_secretsHasBeenSet = false; Aws::Vector m_dependsOn; bool m_dependsOnHasBeenSet = false; int m_startTimeout; bool m_startTimeoutHasBeenSet = false; int m_stopTimeout; bool m_stopTimeoutHasBeenSet = false; Aws::String m_hostname; bool m_hostnameHasBeenSet = false; Aws::String m_user; bool m_userHasBeenSet = false; Aws::String m_workingDirectory; bool m_workingDirectoryHasBeenSet = false; bool m_disableNetworking; bool m_disableNetworkingHasBeenSet = false; bool m_privileged; bool m_privilegedHasBeenSet = false; bool m_readonlyRootFilesystem; bool m_readonlyRootFilesystemHasBeenSet = false; Aws::Vector m_dnsServers; bool m_dnsServersHasBeenSet = false; Aws::Vector m_dnsSearchDomains; bool m_dnsSearchDomainsHasBeenSet = false; Aws::Vector m_extraHosts; bool m_extraHostsHasBeenSet = false; Aws::Vector m_dockerSecurityOptions; bool m_dockerSecurityOptionsHasBeenSet = false; bool m_interactive; bool m_interactiveHasBeenSet = false; bool m_pseudoTerminal; bool m_pseudoTerminalHasBeenSet = false; Aws::Map m_dockerLabels; bool m_dockerLabelsHasBeenSet = false; Aws::Vector m_ulimits; bool m_ulimitsHasBeenSet = false; LogConfiguration m_logConfiguration; bool m_logConfigurationHasBeenSet = false; HealthCheck m_healthCheck; bool m_healthCheckHasBeenSet = false; Aws::Vector m_systemControls; bool m_systemControlsHasBeenSet = false; Aws::Vector m_resourceRequirements; bool m_resourceRequirementsHasBeenSet = false; FirelensConfiguration m_firelensConfiguration; bool m_firelensConfigurationHasBeenSet = false; Aws::Vector m_credentialSpecs; bool m_credentialSpecsHasBeenSet = false; }; } // namespace Model } // namespace ECS } // namespace Aws