/** * 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 AWS_ECS_API ContainerDefinition { public: ContainerDefinition(); ContainerDefinition(Aws::Utils::Json::JsonView jsonValue); ContainerDefinition& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of a container. If you are 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, 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 are 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, 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 are 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, 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 are 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, 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 are 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, 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 are 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, 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 are 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, 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 are 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, 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. Images in the Docker Hub registry are available by default. 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 are not 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. Images in the Docker Hub registry are available by default. 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 are not 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. Images in the Docker Hub registry are available by default. 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 are not 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. Images in the Docker Hub registry are available by default. 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 are not 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. Images in the Docker Hub registry are available by default. 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 are not 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. Images in the Docker Hub registry are available by default. 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 are not 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. Images in the Docker Hub registry are available by default. 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 are not 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. Images in the Docker Hub registry are available by default. 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 are not 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 is 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 would be * guaranteed a minimum of 512 CPU units when needed, and each container could * float to higher CPU usage if the other container was not using it, but 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 is not * 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 is described in * the task definition.

*/ 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 is 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 would be * guaranteed a minimum of 512 CPU units when needed, and each container could * float to higher CPU usage if the other container was not using it, but 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 is not * 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 is described in * the task definition.

*/ 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 is 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 would be * guaranteed a minimum of 512 CPU units when needed, and each container could * float to higher CPU usage if the other container was not using it, but 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 is not * 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 is described in * the task definition.

*/ 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 is 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 would be * guaranteed a minimum of 512 CPU units when needed, and each container could * float to higher CPU usage if the other container was not using it, but 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 is not * 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 is described in * the task definition.

*/ 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 on which the container is * placed. Otherwise, the value of memory is used.

The Docker * daemon reserves a minimum of 4 MiB of memory for a container, so you should not * specify fewer 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 on which the container is * placed. Otherwise, the value of memory is used.

The Docker * daemon reserves a minimum of 4 MiB of memory for a container, so you should not * specify fewer 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 on which the container is * placed. Otherwise, the value of memory is used.

The Docker * daemon reserves a minimum of 4 MiB of memory for a container, so you should not * specify fewer 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 on which the container is * placed. Otherwise, the value of memory is used.

The Docker * daemon reserves a minimum of 4 MiB of memory for a container, so you should not * specify fewer 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 on which 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 daemon reserves a minimum * of 4 MiB of memory for a container, so you should not specify fewer 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 on which 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 daemon reserves a minimum * of 4 MiB of memory for a container, so you should not specify fewer 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 on which 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 daemon reserves a minimum * of 4 MiB of memory for a container, so you should not specify fewer 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 on which 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 daemon reserves a minimum * of 4 MiB of memory for a container, so you should not specify fewer 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, you * should 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 is * no loopback for port mappings on Windows, so you cannot 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, you * should 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 is * no loopback for port mappings on Windows, so you cannot 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, you * should 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 is * no loopback for port mappings on Windows, so you cannot 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, you * should 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 is * no loopback for port mappings on Windows, so you cannot 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, you * should 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 is * no loopback for port mappings on Windows, so you cannot 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, you * should 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 is * no loopback for port mappings on Windows, so you cannot 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, you * should 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 is * no loopback for port mappings on Windows, so you cannot 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, you * should 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 is * no loopback for port mappings on Windows, so you cannot 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, then its failure does * not 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 is composed of multiple * containers, you should 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, then its failure does * not 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 is composed of multiple * containers, you should 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, then its failure does * not 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 is composed of multiple * containers, you should 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, then its failure does * not 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 is composed of multiple * containers, you should 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 do not 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 is 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 do not 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 is 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 do not 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 is 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 do not 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 is 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 do not 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 is 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 do not 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 is 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 do not 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 is 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 do not 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 is 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 do not 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 is 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 is 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 should be a separated string in * the array.

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

The command that is 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 should be a separated string in * the array.

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

The command that is 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 should be a separated string in * the array.

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

The command that is 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 should be a separated string in * the array.

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

The command that is 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 should be a separated string in * the array.

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

The command that is 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 should be a separated string in * the array.

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

The command that is 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 should be 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 is 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 should be 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 is 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 should be 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 do not recommend using 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 do not recommend using 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 do not recommend using 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 do not recommend using 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 do not recommend using 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 do not recommend using 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 do not recommend using 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 do not recommend using 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 should contain an environment * variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information on * 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 are * processed from the top down. It is recommended to use unique variable names. For * more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

This field is not valid for containers in tasks using the * Fargate launch type.

*/ 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 should contain an environment * variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information on * 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 are * processed from the top down. It is recommended to use unique variable names. For * more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

This field is not valid for containers in tasks using the * Fargate launch type.

*/ 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 should contain an environment * variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information on * 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 are * processed from the top down. It is recommended to use unique variable names. For * more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

This field is not valid for containers in tasks using the * Fargate launch type.

*/ 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 should contain an environment * variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information on * 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 are * processed from the top down. It is recommended to use unique variable names. For * more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

This field is not valid for containers in tasks using the * Fargate launch type.

*/ 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 should contain an environment * variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information on * 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 are * processed from the top down. It is recommended to use unique variable names. For * more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

This field is not valid for containers in tasks using the * Fargate launch type.

*/ 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 should contain an environment * variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information on * 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 are * processed from the top down. It is recommended to use unique variable names. For * more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

This field is not valid for containers in tasks using the * Fargate launch type.

*/ 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 should contain an environment * variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information on * 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 are * processed from the top down. It is recommended to use unique variable names. For * more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

This field is not valid for containers in tasks using the * Fargate launch type.

*/ 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 should contain an environment * variable in VARIABLE=VALUE format. Lines beginning with * # are treated as comments and are ignored. For more information on * 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 are * processed from the top down. It is recommended to use unique variable names. For * more information, see Specifying * Environment Variables in the Amazon Elastic Container Service Developer * Guide.

This field is not valid for containers in tasks using the * Fargate launch type.

*/ 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 cannot mount directories on a * different drive, and mount point cannot 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 cannot mount directories on a * different drive, and mount point cannot 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 cannot mount directories on a * different drive, and mount point cannot 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 cannot mount directories on a * different drive, and mount point cannot 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 cannot mount directories on a * different drive, and mount point cannot 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 cannot mount directories on a * different drive, and mount point cannot 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 cannot mount directories on a * different drive, and mount point cannot 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 cannot mount directories on a * different drive, and mount point cannot 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. 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 enable 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 are 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 platform version 1.3.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. 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 enable 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 are 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 platform version 1.3.0 or later.

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

The dependencies defined for container startup and shutdown. A container can * contain multiple dependencies. 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 enable 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 are 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 platform version 1.3.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. 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 enable 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 are 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 platform version 1.3.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. 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 enable 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 are 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 platform version 1.3.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. 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 enable 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 are 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 platform version 1.3.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. 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 enable 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 are 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 platform version 1.3.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. 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 enable 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 are 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 platform version 1.3.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 does not * reach the desired status within that time then containerA will give up and not * start. This results in the task transitioning to a STOPPED * state.

For tasks using the Fargate launch type, this parameter requires * that the task or service uses platform version 1.3.0 or later. If this parameter * is not specified, the default value of 3 minutes is used.

For tasks using * the EC2 launch type, if the startTimeout parameter is not * specified, the value set for the Amazon ECS container agent configuration * variable ECS_CONTAINER_START_TIMEOUT is used by default. If neither * the startTimeout parameter or the * ECS_CONTAINER_START_TIMEOUT agent configuration variable are set, * then the default values of 3 minutes for Linux containers and 8 minutes on * Windows containers are used. Your container instances require at least version * 1.26.0 of the container agent to enable 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 are 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 does not * reach the desired status within that time then containerA will give up and not * start. This results in the task transitioning to a STOPPED * state.

For tasks using the Fargate launch type, this parameter requires * that the task or service uses platform version 1.3.0 or later. If this parameter * is not specified, the default value of 3 minutes is used.

For tasks using * the EC2 launch type, if the startTimeout parameter is not * specified, the value set for the Amazon ECS container agent configuration * variable ECS_CONTAINER_START_TIMEOUT is used by default. If neither * the startTimeout parameter or the * ECS_CONTAINER_START_TIMEOUT agent configuration variable are set, * then the default values of 3 minutes for Linux containers and 8 minutes on * Windows containers are used. Your container instances require at least version * 1.26.0 of the container agent to enable 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 are 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 does not * reach the desired status within that time then containerA will give up and not * start. This results in the task transitioning to a STOPPED * state.

For tasks using the Fargate launch type, this parameter requires * that the task or service uses platform version 1.3.0 or later. If this parameter * is not specified, the default value of 3 minutes is used.

For tasks using * the EC2 launch type, if the startTimeout parameter is not * specified, the value set for the Amazon ECS container agent configuration * variable ECS_CONTAINER_START_TIMEOUT is used by default. If neither * the startTimeout parameter or the * ECS_CONTAINER_START_TIMEOUT agent configuration variable are set, * then the default values of 3 minutes for Linux containers and 8 minutes on * Windows containers are used. Your container instances require at least version * 1.26.0 of the container agent to enable 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 are 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 does not * reach the desired status within that time then containerA will give up and not * start. This results in the task transitioning to a STOPPED * state.

For tasks using the Fargate launch type, this parameter requires * that the task or service uses platform version 1.3.0 or later. If this parameter * is not specified, the default value of 3 minutes is used.

For tasks using * the EC2 launch type, if the startTimeout parameter is not * specified, the value set for the Amazon ECS container agent configuration * variable ECS_CONTAINER_START_TIMEOUT is used by default. If neither * the startTimeout parameter or the * ECS_CONTAINER_START_TIMEOUT agent configuration variable are set, * then the default values of 3 minutes for Linux containers and 8 minutes on * Windows containers are used. Your container instances require at least version * 1.26.0 of the container agent to enable 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 are 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 platform version 1.3.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 using the EC2 launch type, * if the stopTimeout parameter is not specified, the value set for * the Amazon ECS container agent configuration variable * ECS_CONTAINER_STOP_TIMEOUT is used by default. 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 enable 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 are 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 platform version 1.3.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 using the EC2 launch type, * if the stopTimeout parameter is not specified, the value set for * the Amazon ECS container agent configuration variable * ECS_CONTAINER_STOP_TIMEOUT is used by default. 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 enable 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 are 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 platform version 1.3.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 using the EC2 launch type, * if the stopTimeout parameter is not specified, the value set for * the Amazon ECS container agent configuration variable * ECS_CONTAINER_STOP_TIMEOUT is used by default. 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 enable 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 are 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 platform version 1.3.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 using the EC2 launch type, * if the stopTimeout parameter is not specified, the value set for * the Amazon ECS container agent configuration variable * ECS_CONTAINER_STOP_TIMEOUT is used by default. 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 enable 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 are 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 are 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 are 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 are 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 are 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 are 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 are 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 are 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 are using the * awsvpc network mode.

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

The user name 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.

You * can use 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 name 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.

You * can use 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 name 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.

You * can use 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 name 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.

You * can use 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 name 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.

You * can use 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 name 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.

You * can use 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 name 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.

You * can use 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 name 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.

You * can use 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 in which to run commands inside the container. 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 in which to run commands inside the container. 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 in which to run commands inside the container. 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 in which to run commands inside the container. 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 in which to run commands inside the container. 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 in which to run commands inside the container. 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 in which to run commands inside the container. 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 in which to run commands inside the container. 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 disabled 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 disabled 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 disabled 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 disabled 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 using the * Fargate launch type.

*/ 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 using the * Fargate launch type.

*/ 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 using the * Fargate launch type.

*/ 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 using the * Fargate launch type.

*/ 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 is not 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 is not 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 is not 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 is not 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 is not 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 is not 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 is not 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 is not 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 labels for SELinux and AppArmor * multi-level security systems. This field is not valid for containers in tasks * using the Fargate launch type.

With Windows containers, this parameter * can be used to reference a credential spec file when configuring a container for * Active Directory authentication. For more information, see Using * gMSAs for Windows 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.

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

A list of strings to provide custom labels for SELinux and AppArmor * multi-level security systems. This field is not valid for containers in tasks * using the Fargate launch type.

With Windows containers, this parameter * can be used to reference a credential spec file when configuring a container for * Active Directory authentication. For more information, see Using * gMSAs for Windows 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.

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

A list of strings to provide custom labels for SELinux and AppArmor * multi-level security systems. This field is not valid for containers in tasks * using the Fargate launch type.

With Windows containers, this parameter * can be used to reference a credential spec file when configuring a container for * Active Directory authentication. For more information, see Using * gMSAs for Windows 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.

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

A list of strings to provide custom labels for SELinux and AppArmor * multi-level security systems. This field is not valid for containers in tasks * using the Fargate launch type.

With Windows containers, this parameter * can be used to reference a credential spec file when configuring a container for * Active Directory authentication. For more information, see Using * gMSAs for Windows 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.

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

A list of strings to provide custom labels for SELinux and AppArmor * multi-level security systems. This field is not valid for containers in tasks * using the Fargate launch type.

With Windows containers, this parameter * can be used to reference a credential spec file when configuring a container for * Active Directory authentication. For more information, see Using * gMSAs for Windows 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.

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

A list of strings to provide custom labels for SELinux and AppArmor * multi-level security systems. This field is not valid for containers in tasks * using the Fargate launch type.

With Windows containers, this parameter * can be used to reference a credential spec file when configuring a container for * Active Directory authentication. For more information, see Using * gMSAs for Windows 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.

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

A list of strings to provide custom labels for SELinux and AppArmor * multi-level security systems. This field is not valid for containers in tasks * using the Fargate launch type.

With Windows containers, this parameter * can be used to reference a credential spec file when configuring a container for * Active Directory authentication. For more information, see Using * gMSAs for Windows 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.

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

A list of strings to provide custom labels for SELinux and AppArmor * multi-level security systems. This field is not valid for containers in tasks * using the Fargate launch type.

With Windows containers, this parameter * can be used to reference a credential spec file when configuring a container for * Active Directory authentication. For more information, see Using * gMSAs for Windows 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.

*/ 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 labels for SELinux and AppArmor * multi-level security systems. This field is not valid for containers in tasks * using the Fargate launch type.

With Windows containers, this parameter * can be used to reference a credential spec file when configuring a container for * Active Directory authentication. For more information, see Using * gMSAs for Windows 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.

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

When this parameter is true, this allows you to 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, this allows you to 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, this allows you to 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, this allows you to 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 will override 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. 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 will override 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. 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 will override 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. 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 will override 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. 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 will override 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. 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 will override 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. 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 will override 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. 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 will override 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. 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 may 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 on 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 may 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 on 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 may 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 on 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 may 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 on 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 may 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 on 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 may 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 on 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.

*

It is not 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 is 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.

*

It is not 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 is 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.

*

It is not 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 is 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.

*

It is not 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 is 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.

*

It is not 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 is 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.

*

It is not 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 is 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.

*

It is not 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 is 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.

*

It is not 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 is 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;} private: Aws::String m_name; bool m_nameHasBeenSet; Aws::String m_image; bool m_imageHasBeenSet; RepositoryCredentials m_repositoryCredentials; bool m_repositoryCredentialsHasBeenSet; int m_cpu; bool m_cpuHasBeenSet; int m_memory; bool m_memoryHasBeenSet; int m_memoryReservation; bool m_memoryReservationHasBeenSet; Aws::Vector m_links; bool m_linksHasBeenSet; Aws::Vector m_portMappings; bool m_portMappingsHasBeenSet; bool m_essential; bool m_essentialHasBeenSet; Aws::Vector m_entryPoint; bool m_entryPointHasBeenSet; Aws::Vector m_command; bool m_commandHasBeenSet; Aws::Vector m_environment; bool m_environmentHasBeenSet; Aws::Vector m_environmentFiles; bool m_environmentFilesHasBeenSet; Aws::Vector m_mountPoints; bool m_mountPointsHasBeenSet; Aws::Vector m_volumesFrom; bool m_volumesFromHasBeenSet; LinuxParameters m_linuxParameters; bool m_linuxParametersHasBeenSet; Aws::Vector m_secrets; bool m_secretsHasBeenSet; Aws::Vector m_dependsOn; bool m_dependsOnHasBeenSet; int m_startTimeout; bool m_startTimeoutHasBeenSet; int m_stopTimeout; bool m_stopTimeoutHasBeenSet; Aws::String m_hostname; bool m_hostnameHasBeenSet; Aws::String m_user; bool m_userHasBeenSet; Aws::String m_workingDirectory; bool m_workingDirectoryHasBeenSet; bool m_disableNetworking; bool m_disableNetworkingHasBeenSet; bool m_privileged; bool m_privilegedHasBeenSet; bool m_readonlyRootFilesystem; bool m_readonlyRootFilesystemHasBeenSet; Aws::Vector m_dnsServers; bool m_dnsServersHasBeenSet; Aws::Vector m_dnsSearchDomains; bool m_dnsSearchDomainsHasBeenSet; Aws::Vector m_extraHosts; bool m_extraHostsHasBeenSet; Aws::Vector m_dockerSecurityOptions; bool m_dockerSecurityOptionsHasBeenSet; bool m_interactive; bool m_interactiveHasBeenSet; bool m_pseudoTerminal; bool m_pseudoTerminalHasBeenSet; Aws::Map m_dockerLabels; bool m_dockerLabelsHasBeenSet; Aws::Vector m_ulimits; bool m_ulimitsHasBeenSet; LogConfiguration m_logConfiguration; bool m_logConfigurationHasBeenSet; HealthCheck m_healthCheck; bool m_healthCheckHasBeenSet; Aws::Vector m_systemControls; bool m_systemControlsHasBeenSet; Aws::Vector m_resourceRequirements; bool m_resourceRequirementsHasBeenSet; FirelensConfiguration m_firelensConfiguration; bool m_firelensConfigurationHasBeenSet; }; } // namespace Model } // namespace ECS } // namespace Aws