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

Container properties are used in job definitions to describe the container * that is launched as part of a job.

See Also:

AWS * API Reference

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

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 * repository-url/image:tag . 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.

    *
  • Images in Amazon ECR repositories use the full registry and repository * URI (for example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).

    *
  • 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 * repository-url/image:tag . 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.

    *
  • Images in Amazon ECR repositories use the full registry and repository * URI (for example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).

    *
  • 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 * repository-url/image:tag . 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.

    *
  • Images in Amazon ECR repositories use the full registry and repository * URI (for example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).

    *
  • 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 * repository-url/image:tag . 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.

    *
  • Images in Amazon ECR repositories use the full registry and repository * URI (for example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).

    *
  • 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 * repository-url/image:tag . 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.

    *
  • Images in Amazon ECR repositories use the full registry and repository * URI (for example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).

    *
  • 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 * repository-url/image:tag . 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.

    *
  • Images in Amazon ECR repositories use the full registry and repository * URI (for example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).

    *
  • 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 ContainerProperties& 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 * repository-url/image:tag . 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.

    *
  • Images in Amazon ECR repositories use the full registry and repository * URI (for example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).

    *
  • 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 ContainerProperties& 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 * repository-url/image:tag . 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.

    *
  • Images in Amazon ECR repositories use the full registry and repository * URI (for example, * 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).

    *
  • 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 ContainerProperties& WithImage(const char* value) { SetImage(value); return *this;} /** *

The number of vCPUs 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. Each vCPU * is equivalent to 1,024 CPU shares. You must specify at least one vCPU.

*/ inline int GetVcpus() const{ return m_vcpus; } /** *

The number of vCPUs 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. Each vCPU * is equivalent to 1,024 CPU shares. You must specify at least one vCPU.

*/ inline bool VcpusHasBeenSet() const { return m_vcpusHasBeenSet; } /** *

The number of vCPUs 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. Each vCPU * is equivalent to 1,024 CPU shares. You must specify at least one vCPU.

*/ inline void SetVcpus(int value) { m_vcpusHasBeenSet = true; m_vcpus = value; } /** *

The number of vCPUs 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. Each vCPU * is equivalent to 1,024 CPU shares. You must specify at least one vCPU.

*/ inline ContainerProperties& WithVcpus(int value) { SetVcpus(value); return *this;} /** *

The hard limit (in MiB) of memory to present to the container. If your * container attempts to exceed the memory specified here, the container is killed. * This parameter maps to Memory in the Create a * container section of the Docker Remote API and the * --memory option to docker run. You must * specify at least 4 MiB of memory for a job.

If you are trying to * maximize your resource utilization by providing your jobs as much memory as * possible for a particular instance type, see Memory * Management in the AWS Batch User Guide.

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

The hard limit (in MiB) of memory to present to the container. If your * container attempts to exceed the memory specified here, the container is killed. * This parameter maps to Memory in the Create a * container section of the Docker Remote API and the * --memory option to docker run. You must * specify at least 4 MiB of memory for a job.

If you are trying to * maximize your resource utilization by providing your jobs as much memory as * possible for a particular instance type, see Memory * Management in the AWS Batch User Guide.

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

The hard limit (in MiB) of memory to present to the container. If your * container attempts to exceed the memory specified here, the container is killed. * This parameter maps to Memory in the Create a * container section of the Docker Remote API and the * --memory option to docker run. You must * specify at least 4 MiB of memory for a job.

If you are trying to * maximize your resource utilization by providing your jobs as much memory as * possible for a particular instance type, see Memory * Management in the AWS Batch User Guide.

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

The hard limit (in MiB) of memory to present to the container. If your * container attempts to exceed the memory specified here, the container is killed. * This parameter maps to Memory in the Create a * container section of the Docker Remote API and the * --memory option to docker run. You must * specify at least 4 MiB of memory for a job.

If you are trying to * maximize your resource utilization by providing your jobs as much memory as * possible for a particular instance type, see Memory * Management in the AWS Batch User Guide.

*/ inline ContainerProperties& WithMemory(int value) { SetMemory(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.

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

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

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

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

*/ inline ContainerProperties& 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.

*/ inline ContainerProperties& 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.

*/ inline ContainerProperties& 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.

*/ inline ContainerProperties& 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.

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

The Amazon Resource Name (ARN) of the IAM role that the container can assume * for AWS permissions.

*/ inline const Aws::String& GetJobRoleArn() const{ return m_jobRoleArn; } /** *

The Amazon Resource Name (ARN) of the IAM role that the container can assume * for AWS permissions.

*/ inline bool JobRoleArnHasBeenSet() const { return m_jobRoleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the IAM role that the container can assume * for AWS permissions.

*/ inline void SetJobRoleArn(const Aws::String& value) { m_jobRoleArnHasBeenSet = true; m_jobRoleArn = value; } /** *

The Amazon Resource Name (ARN) of the IAM role that the container can assume * for AWS permissions.

*/ inline void SetJobRoleArn(Aws::String&& value) { m_jobRoleArnHasBeenSet = true; m_jobRoleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the IAM role that the container can assume * for AWS permissions.

*/ inline void SetJobRoleArn(const char* value) { m_jobRoleArnHasBeenSet = true; m_jobRoleArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the IAM role that the container can assume * for AWS permissions.

*/ inline ContainerProperties& WithJobRoleArn(const Aws::String& value) { SetJobRoleArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role that the container can assume * for AWS permissions.

*/ inline ContainerProperties& WithJobRoleArn(Aws::String&& value) { SetJobRoleArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role that the container can assume * for AWS permissions.

*/ inline ContainerProperties& WithJobRoleArn(const char* value) { SetJobRoleArn(value); return *this;} /** *

A list of data volumes used in a job.

*/ inline const Aws::Vector& GetVolumes() const{ return m_volumes; } /** *

A list of data volumes used in a job.

*/ inline bool VolumesHasBeenSet() const { return m_volumesHasBeenSet; } /** *

A list of data volumes used in a job.

*/ inline void SetVolumes(const Aws::Vector& value) { m_volumesHasBeenSet = true; m_volumes = value; } /** *

A list of data volumes used in a job.

*/ inline void SetVolumes(Aws::Vector&& value) { m_volumesHasBeenSet = true; m_volumes = std::move(value); } /** *

A list of data volumes used in a job.

*/ inline ContainerProperties& WithVolumes(const Aws::Vector& value) { SetVolumes(value); return *this;} /** *

A list of data volumes used in a job.

*/ inline ContainerProperties& WithVolumes(Aws::Vector&& value) { SetVolumes(std::move(value)); return *this;} /** *

A list of data volumes used in a job.

*/ inline ContainerProperties& AddVolumes(const Volume& value) { m_volumesHasBeenSet = true; m_volumes.push_back(value); return *this; } /** *

A list of data volumes used in a job.

*/ inline ContainerProperties& AddVolumes(Volume&& value) { m_volumesHasBeenSet = true; m_volumes.push_back(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.

*

Environment variables must not start with AWS_BATCH; this naming * convention is reserved for variables that are set by the AWS Batch service.

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

*

Environment variables must not start with AWS_BATCH; this naming * convention is reserved for variables that are set by the AWS Batch service.

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

*

Environment variables must not start with AWS_BATCH; this naming * convention is reserved for variables that are set by the AWS Batch service.

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

*

Environment variables must not start with AWS_BATCH; this naming * convention is reserved for variables that are set by the AWS Batch service.

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

*

Environment variables must not start with AWS_BATCH; this naming * convention is reserved for variables that are set by the AWS Batch service.

* */ inline ContainerProperties& 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.

*

Environment variables must not start with AWS_BATCH; this naming * convention is reserved for variables that are set by the AWS Batch service.

* */ inline ContainerProperties& 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.

*

Environment variables must not start with AWS_BATCH; this naming * convention is reserved for variables that are set by the AWS Batch service.

* */ inline ContainerProperties& 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.

*

Environment variables must not start with AWS_BATCH; this naming * convention is reserved for variables that are set by the AWS Batch service.

* */ inline ContainerProperties& AddEnvironment(KeyValuePair&& value) { m_environmentHasBeenSet = true; m_environment.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.

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

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

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

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

*/ inline ContainerProperties& 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.

*/ inline ContainerProperties& 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.

*/ inline ContainerProperties& 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.

*/ inline ContainerProperties& AddMountPoints(MountPoint&& value) { m_mountPointsHasBeenSet = true; m_mountPoints.push_back(std::move(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.

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

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

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

*/ inline ContainerProperties& WithReadonlyRootFilesystem(bool value) { SetReadonlyRootFilesystem(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.

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

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

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

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

A list of ulimits to set in the container. This parameter maps * to Ulimits in the Create a * container section of the Docker Remote API and the * --ulimit option to docker run.

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

A list of ulimits to set in the container. This parameter maps * to Ulimits in the Create a * container section of the Docker Remote API and the * --ulimit option to docker run.

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

A list of ulimits to set in the container. This parameter maps * to Ulimits in the Create a * container section of the Docker Remote API and the * --ulimit option to docker run.

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

A list of ulimits to set in the container. This parameter maps * to Ulimits in the Create a * container section of the Docker Remote API and the * --ulimit option to docker run.

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

A list of ulimits to set in the container. This parameter maps * to Ulimits in the Create a * container section of the Docker Remote API and the * --ulimit option to docker run.

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

A list of ulimits to set in the container. This parameter maps * to Ulimits in the Create a * container section of the Docker Remote API and the * --ulimit option to docker run.

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

A list of ulimits to set in the container. This parameter maps * to Ulimits in the Create a * container section of the Docker Remote API and the * --ulimit option to docker run.

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

A list of ulimits to set in the container. This parameter maps * to Ulimits in the Create a * container section of the Docker Remote API and the * --ulimit option to docker run.

*/ inline ContainerProperties& AddUlimits(Ulimit&& value) { m_ulimitsHasBeenSet = true; m_ulimits.push_back(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.

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

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

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

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

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

*/ inline ContainerProperties& 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.

*/ inline ContainerProperties& 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.

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

The instance type to use for a multi-node parallel job. Currently all node * groups in a multi-node parallel job must use the same instance type. This * parameter is not valid for single-node container jobs.

*/ inline const Aws::String& GetInstanceType() const{ return m_instanceType; } /** *

The instance type to use for a multi-node parallel job. Currently all node * groups in a multi-node parallel job must use the same instance type. This * parameter is not valid for single-node container jobs.

*/ inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } /** *

The instance type to use for a multi-node parallel job. Currently all node * groups in a multi-node parallel job must use the same instance type. This * parameter is not valid for single-node container jobs.

*/ inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } /** *

The instance type to use for a multi-node parallel job. Currently all node * groups in a multi-node parallel job must use the same instance type. This * parameter is not valid for single-node container jobs.

*/ inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } /** *

The instance type to use for a multi-node parallel job. Currently all node * groups in a multi-node parallel job must use the same instance type. This * parameter is not valid for single-node container jobs.

*/ inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); } /** *

The instance type to use for a multi-node parallel job. Currently all node * groups in a multi-node parallel job must use the same instance type. This * parameter is not valid for single-node container jobs.

*/ inline ContainerProperties& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;} /** *

The instance type to use for a multi-node parallel job. Currently all node * groups in a multi-node parallel job must use the same instance type. This * parameter is not valid for single-node container jobs.

*/ inline ContainerProperties& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;} /** *

The instance type to use for a multi-node parallel job. Currently all node * groups in a multi-node parallel job must use the same instance type. This * parameter is not valid for single-node container jobs.

*/ inline ContainerProperties& WithInstanceType(const char* value) { SetInstanceType(value); return *this;} /** *

The type and amount of a resource to assign to a container. Currently, the * only supported resource is GPU.

*/ inline const Aws::Vector& GetResourceRequirements() const{ return m_resourceRequirements; } /** *

The type and amount of a resource to assign to a container. Currently, the * only supported resource is GPU.

*/ inline bool ResourceRequirementsHasBeenSet() const { return m_resourceRequirementsHasBeenSet; } /** *

The type and amount of a resource to assign to a container. Currently, the * only supported resource is 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. Currently, the * only supported resource is 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. Currently, the * only supported resource is GPU.

*/ inline ContainerProperties& WithResourceRequirements(const Aws::Vector& value) { SetResourceRequirements(value); return *this;} /** *

The type and amount of a resource to assign to a container. Currently, the * only supported resource is GPU.

*/ inline ContainerProperties& WithResourceRequirements(Aws::Vector&& value) { SetResourceRequirements(std::move(value)); return *this;} /** *

The type and amount of a resource to assign to a container. Currently, the * only supported resource is GPU.

*/ inline ContainerProperties& 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. Currently, the * only supported resource is GPU.

*/ inline ContainerProperties& AddResourceRequirements(ResourceRequirement&& value) { m_resourceRequirementsHasBeenSet = true; m_resourceRequirements.push_back(std::move(value)); return *this; } /** *

Linux-specific modifications that are applied to the container, such as * details for device mappings.

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

Linux-specific modifications that are applied to the container, such as * details for device mappings.

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

Linux-specific modifications that are applied to the container, such as * details for device mappings.

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

Linux-specific modifications that are applied to the container, such as * details for device mappings.

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

Linux-specific modifications that are applied to the container, such as * details for device mappings.

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

Linux-specific modifications that are applied to the container, such as * details for device mappings.

*/ inline ContainerProperties& WithLinuxParameters(LinuxParameters&& value) { SetLinuxParameters(std::move(value)); return *this;} private: Aws::String m_image; bool m_imageHasBeenSet; int m_vcpus; bool m_vcpusHasBeenSet; int m_memory; bool m_memoryHasBeenSet; Aws::Vector m_command; bool m_commandHasBeenSet; Aws::String m_jobRoleArn; bool m_jobRoleArnHasBeenSet; Aws::Vector m_volumes; bool m_volumesHasBeenSet; Aws::Vector m_environment; bool m_environmentHasBeenSet; Aws::Vector m_mountPoints; bool m_mountPointsHasBeenSet; bool m_readonlyRootFilesystem; bool m_readonlyRootFilesystemHasBeenSet; bool m_privileged; bool m_privilegedHasBeenSet; Aws::Vector m_ulimits; bool m_ulimitsHasBeenSet; Aws::String m_user; bool m_userHasBeenSet; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet; Aws::Vector m_resourceRequirements; bool m_resourceRequirementsHasBeenSet; LinuxParameters m_linuxParameters; bool m_linuxParametersHasBeenSet; }; } // namespace Model } // namespace Batch } // namespace Aws