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

Container properties are used for Amazon ECS based job definitions. These * properties to describe the container that's launched as part of a * job.

See Also:

AWS * API Reference

*/ class ContainerProperties { public: AWS_BATCH_API ContainerProperties(); AWS_BATCH_API ContainerProperties(Aws::Utils::Json::JsonView jsonValue); AWS_BATCH_API ContainerProperties& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_BATCH_API 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 . It can be 255 characters * long. It can contain uppercase and lowercase letters, numbers, hyphens (-), * underscores (_), colons (:), periods (.), forward slashes (/), and number signs * (#). This parameter maps to Image in the Create a * container section of the Docker Remote API and the * IMAGE parameter of docker run.

*

Docker image architecture must match the processor architecture of the * compute resources that they're scheduled on. For example, ARM-based Docker * images can only run on ARM-based compute resources.

  • *

    Images in Amazon ECR Public repositories use the full * registry/repository[:tag] or * registry/repository[@digest] naming conventions. For example, * public.ecr.aws/registry_alias/my-web-app:latest * .

  • Images in Amazon ECR repositories use the full * registry and repository URI (for example, * 123456789012.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 . It can be 255 characters * long. It can contain uppercase and lowercase letters, numbers, hyphens (-), * underscores (_), colons (:), periods (.), forward slashes (/), and number signs * (#). This parameter maps to Image in the Create a * container section of the Docker Remote API and the * IMAGE parameter of docker run.

*

Docker image architecture must match the processor architecture of the * compute resources that they're scheduled on. For example, ARM-based Docker * images can only run on ARM-based compute resources.

  • *

    Images in Amazon ECR Public repositories use the full * registry/repository[:tag] or * registry/repository[@digest] naming conventions. For example, * public.ecr.aws/registry_alias/my-web-app:latest * .

  • Images in Amazon ECR repositories use the full * registry and repository URI (for example, * 123456789012.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 . It can be 255 characters * long. It can contain uppercase and lowercase letters, numbers, hyphens (-), * underscores (_), colons (:), periods (.), forward slashes (/), and number signs * (#). This parameter maps to Image in the Create a * container section of the Docker Remote API and the * IMAGE parameter of docker run.

*

Docker image architecture must match the processor architecture of the * compute resources that they're scheduled on. For example, ARM-based Docker * images can only run on ARM-based compute resources.

  • *

    Images in Amazon ECR Public repositories use the full * registry/repository[:tag] or * registry/repository[@digest] naming conventions. For example, * public.ecr.aws/registry_alias/my-web-app:latest * .

  • Images in Amazon ECR repositories use the full * registry and repository URI (for example, * 123456789012.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 . It can be 255 characters * long. It can contain uppercase and lowercase letters, numbers, hyphens (-), * underscores (_), colons (:), periods (.), forward slashes (/), and number signs * (#). This parameter maps to Image in the Create a * container section of the Docker Remote API and the * IMAGE parameter of docker run.

*

Docker image architecture must match the processor architecture of the * compute resources that they're scheduled on. For example, ARM-based Docker * images can only run on ARM-based compute resources.

  • *

    Images in Amazon ECR Public repositories use the full * registry/repository[:tag] or * registry/repository[@digest] naming conventions. For example, * public.ecr.aws/registry_alias/my-web-app:latest * .

  • Images in Amazon ECR repositories use the full * registry and repository URI (for example, * 123456789012.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 . It can be 255 characters * long. It can contain uppercase and lowercase letters, numbers, hyphens (-), * underscores (_), colons (:), periods (.), forward slashes (/), and number signs * (#). This parameter maps to Image in the Create a * container section of the Docker Remote API and the * IMAGE parameter of docker run.

*

Docker image architecture must match the processor architecture of the * compute resources that they're scheduled on. For example, ARM-based Docker * images can only run on ARM-based compute resources.

  • *

    Images in Amazon ECR Public repositories use the full * registry/repository[:tag] or * registry/repository[@digest] naming conventions. For example, * public.ecr.aws/registry_alias/my-web-app:latest * .

  • Images in Amazon ECR repositories use the full * registry and repository URI (for example, * 123456789012.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 . It can be 255 characters * long. It can contain uppercase and lowercase letters, numbers, hyphens (-), * underscores (_), colons (:), periods (.), forward slashes (/), and number signs * (#). This parameter maps to Image in the Create a * container section of the Docker Remote API and the * IMAGE parameter of docker run.

*

Docker image architecture must match the processor architecture of the * compute resources that they're scheduled on. For example, ARM-based Docker * images can only run on ARM-based compute resources.

  • *

    Images in Amazon ECR Public repositories use the full * registry/repository[:tag] or * registry/repository[@digest] naming conventions. For example, * public.ecr.aws/registry_alias/my-web-app:latest * .

  • Images in Amazon ECR repositories use the full * registry and repository URI (for example, * 123456789012.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 . It can be 255 characters * long. It can contain uppercase and lowercase letters, numbers, hyphens (-), * underscores (_), colons (:), periods (.), forward slashes (/), and number signs * (#). This parameter maps to Image in the Create a * container section of the Docker Remote API and the * IMAGE parameter of docker run.

*

Docker image architecture must match the processor architecture of the * compute resources that they're scheduled on. For example, ARM-based Docker * images can only run on ARM-based compute resources.

  • *

    Images in Amazon ECR Public repositories use the full * registry/repository[:tag] or * registry/repository[@digest] naming conventions. For example, * public.ecr.aws/registry_alias/my-web-app:latest * .

  • Images in Amazon ECR repositories use the full * registry and repository URI (for example, * 123456789012.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 . It can be 255 characters * long. It can contain uppercase and lowercase letters, numbers, hyphens (-), * underscores (_), colons (:), periods (.), forward slashes (/), and number signs * (#). This parameter maps to Image in the Create a * container section of the Docker Remote API and the * IMAGE parameter of docker run.

*

Docker image architecture must match the processor architecture of the * compute resources that they're scheduled on. For example, ARM-based Docker * images can only run on ARM-based compute resources.

  • *

    Images in Amazon ECR Public repositories use the full * registry/repository[:tag] or * registry/repository[@digest] naming conventions. For example, * public.ecr.aws/registry_alias/my-web-app:latest * .

  • Images in Amazon ECR repositories use the full * registry and repository URI (for example, * 123456789012.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 command that's passed to the container. This parameter maps to * Cmd in the Create a * container section of the Docker Remote API and the * COMMAND parameter to docker run. For more * information, see https://docs.docker.com/engine/reference/builder/#cmd.

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

The command that's passed to the container. This parameter maps to * Cmd in the Create a * container section of the Docker Remote API and the * COMMAND parameter to docker run. For more * information, see https://docs.docker.com/engine/reference/builder/#cmd.

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

The command that's passed to the container. This parameter maps to * Cmd in the Create a * container section of the Docker Remote API and the * COMMAND parameter to docker run. For more * information, see https://docs.docker.com/engine/reference/builder/#cmd.

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

The command that's passed to the container. This parameter maps to * Cmd in the Create a * container section of the Docker Remote API and the * COMMAND parameter to docker run. For more * information, see https://docs.docker.com/engine/reference/builder/#cmd.

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

The command that's passed to the container. This parameter maps to * Cmd in the Create a * container section of the Docker Remote API and the * COMMAND parameter to docker run. For more * information, see https://docs.docker.com/engine/reference/builder/#cmd.

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

The command that's passed to the container. This parameter maps to * Cmd in the Create a * container section of the Docker Remote API and the * COMMAND parameter to docker run. For more * information, see https://docs.docker.com/engine/reference/builder/#cmd.

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

The command that's passed to the container. This parameter maps to * Cmd in the Create a * container section of the Docker Remote API and the * COMMAND parameter to docker run. For more * information, see https://docs.docker.com/engine/reference/builder/#cmd.

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

The command that's passed to the container. This parameter maps to * Cmd in the Create a * container section of the Docker Remote API and the * COMMAND parameter to docker run. For more * information, see https://docs.docker.com/engine/reference/builder/#cmd.

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

The command that's passed to the container. This parameter maps to * Cmd in the Create a * container section of the Docker Remote API and the * COMMAND parameter to docker run. For more * information, see https://docs.docker.com/engine/reference/builder/#cmd.

*/ 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 Amazon Web Services permissions. For more information, see IAM * roles for tasks in the Amazon Elastic Container Service Developer * Guide.

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

The Amazon Resource Name (ARN) of the IAM role that the container can assume * for Amazon Web Services permissions. For more information, see IAM * roles for tasks in the Amazon Elastic Container Service Developer * Guide.

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

The Amazon Resource Name (ARN) of the IAM role that the container can assume * for Amazon Web Services permissions. For more information, see IAM * roles for tasks in the Amazon Elastic Container Service Developer * Guide.

*/ 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 Amazon Web Services permissions. For more information, see IAM * roles for tasks in the Amazon Elastic Container Service Developer * Guide.

*/ 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 Amazon Web Services permissions. For more information, see IAM * roles for tasks in the Amazon Elastic Container Service Developer * Guide.

*/ 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 Amazon Web Services permissions. For more information, see IAM * roles for tasks in the Amazon Elastic Container Service Developer * Guide.

*/ 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 Amazon Web Services permissions. For more information, see IAM * roles for tasks in the Amazon Elastic Container Service Developer * Guide.

*/ 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 Amazon Web Services permissions. For more information, see IAM * roles for tasks in the Amazon Elastic Container Service Developer * Guide.

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

The Amazon Resource Name (ARN) of the execution role that Batch can assume. * For jobs that run on Fargate resources, you must provide an execution role. For * more information, see Batch * execution IAM role in the Batch User Guide.

*/ inline const Aws::String& GetExecutionRoleArn() const{ return m_executionRoleArn; } /** *

The Amazon Resource Name (ARN) of the execution role that Batch can assume. * For jobs that run on Fargate resources, you must provide an execution role. For * more information, see Batch * execution IAM role in the Batch User Guide.

*/ inline bool ExecutionRoleArnHasBeenSet() const { return m_executionRoleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the execution role that Batch can assume. * For jobs that run on Fargate resources, you must provide an execution role. For * more information, see Batch * execution IAM role in the Batch User Guide.

*/ inline void SetExecutionRoleArn(const Aws::String& value) { m_executionRoleArnHasBeenSet = true; m_executionRoleArn = value; } /** *

The Amazon Resource Name (ARN) of the execution role that Batch can assume. * For jobs that run on Fargate resources, you must provide an execution role. For * more information, see Batch * execution IAM role in the Batch User Guide.

*/ inline void SetExecutionRoleArn(Aws::String&& value) { m_executionRoleArnHasBeenSet = true; m_executionRoleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the execution role that Batch can assume. * For jobs that run on Fargate resources, you must provide an execution role. For * more information, see Batch * execution IAM role in the Batch User Guide.

*/ inline void SetExecutionRoleArn(const char* value) { m_executionRoleArnHasBeenSet = true; m_executionRoleArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the execution role that Batch can assume. * For jobs that run on Fargate resources, you must provide an execution role. For * more information, see Batch * execution IAM role in the Batch User Guide.

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

The Amazon Resource Name (ARN) of the execution role that Batch can assume. * For jobs that run on Fargate resources, you must provide an execution role. For * more information, see Batch * execution IAM role in the Batch User Guide.

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

The Amazon Resource Name (ARN) of the execution role that Batch can assume. * For jobs that run on Fargate resources, you must provide an execution role. For * more information, see Batch * execution IAM role in the Batch User Guide.

*/ inline ContainerProperties& WithExecutionRoleArn(const char* value) { SetExecutionRoleArn(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 don't recommend using plaintext environment variables for * sensitive information, such as credential data.

*

Environment variables cannot start with "AWS_BATCH". This naming * convention is reserved for variables that Batch sets.

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

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

*

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

*

Environment variables cannot start with "AWS_BATCH". This naming * convention is reserved for variables that Batch sets.

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

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

*

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

*

Environment variables cannot start with "AWS_BATCH". This naming * convention is reserved for variables that Batch sets.

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

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

*

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

*

Environment variables cannot start with "AWS_BATCH". This naming * convention is reserved for variables that Batch sets.

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

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

*

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

*

Environment variables cannot start with "AWS_BATCH". This naming * convention is reserved for variables that Batch sets.

*/ 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 don't recommend using plaintext environment variables for * sensitive information, such as credential data.

*

Environment variables cannot start with "AWS_BATCH". This naming * convention is reserved for variables that Batch sets.

*/ 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 don't recommend using plaintext environment variables for * sensitive information, such as credential data.

*

Environment variables cannot start with "AWS_BATCH". This naming * convention is reserved for variables that Batch sets.

*/ 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 don't recommend using plaintext environment variables for * sensitive information, such as credential data.

*

Environment variables cannot start with "AWS_BATCH". This naming * convention is reserved for variables that Batch sets.

*/ 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 permissions 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. The default * value is false.

This parameter isn't applicable to jobs that are * running on Fargate resources and shouldn't be provided, or specified as * false.

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

When this parameter is true, the container is given elevated permissions 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. The default * value is false.

This parameter isn't applicable to jobs that are * running on Fargate resources and shouldn't be provided, or specified as * false.

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

When this parameter is true, the container is given elevated permissions 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. The default * value is false.

This parameter isn't applicable to jobs that are * running on Fargate resources and shouldn't be provided, or specified as * false.

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

When this parameter is true, the container is given elevated permissions 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. The default * value is false.

This parameter isn't applicable to jobs that are * running on Fargate resources and shouldn't be provided, or specified as * false.

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

*

This parameter isn't applicable to jobs that are running on Fargate resources * and shouldn't be provided.

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

*

This parameter isn't applicable to jobs that are running on Fargate resources * and shouldn't be provided.

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

*

This parameter isn't applicable to jobs that are running on Fargate resources * and shouldn't be provided.

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

*

This parameter isn't applicable to jobs that are running on Fargate resources * and shouldn't be provided.

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

*

This parameter isn't applicable to jobs that are running on Fargate resources * and shouldn't be provided.

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

*

This parameter isn't applicable to jobs that are running on Fargate resources * and shouldn't be provided.

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

*

This parameter isn't applicable to jobs that are running on Fargate resources * and shouldn't be provided.

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

*

This parameter isn't applicable to jobs that are running on Fargate resources * and shouldn't be provided.

*/ 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. All node groups in a * multi-node parallel job must use the same instance type.

This * parameter isn't applicable to single-node container jobs or jobs that run on * Fargate resources, and shouldn't be provided.

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

The instance type to use for a multi-node parallel job. All node groups in a * multi-node parallel job must use the same instance type.

This * parameter isn't applicable to single-node container jobs or jobs that run on * Fargate resources, and shouldn't be provided.

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

The instance type to use for a multi-node parallel job. All node groups in a * multi-node parallel job must use the same instance type.

This * parameter isn't applicable to single-node container jobs or jobs that run on * Fargate resources, and shouldn't be provided.

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

The instance type to use for a multi-node parallel job. All node groups in a * multi-node parallel job must use the same instance type.

This * parameter isn't applicable to single-node container jobs or jobs that run on * Fargate resources, and shouldn't be provided.

*/ 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. All node groups in a * multi-node parallel job must use the same instance type.

This * parameter isn't applicable to single-node container jobs or jobs that run on * Fargate resources, and shouldn't be provided.

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

The instance type to use for a multi-node parallel job. All node groups in a * multi-node parallel job must use the same instance type.

This * parameter isn't applicable to single-node container jobs or jobs that run on * Fargate resources, and shouldn't be provided.

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

The instance type to use for a multi-node parallel job. All node groups in a * multi-node parallel job must use the same instance type.

This * parameter isn't applicable to single-node container jobs or jobs that run on * Fargate resources, and shouldn't be provided.

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

The instance type to use for a multi-node parallel job. All node groups in a * multi-node parallel job must use the same instance type.

This * parameter isn't applicable to single-node container jobs or jobs that run on * Fargate resources, and shouldn't be provided.

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

The type and amount of resources to assign to a container. The supported * resources include GPU, MEMORY, and * VCPU.

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

The type and amount of resources to assign to a container. The supported * resources include GPU, MEMORY, and * VCPU.

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

The type and amount of resources to assign to a container. The supported * resources include GPU, MEMORY, and * VCPU.

*/ inline void SetResourceRequirements(const Aws::Vector& value) { m_resourceRequirementsHasBeenSet = true; m_resourceRequirements = value; } /** *

The type and amount of resources to assign to a container. The supported * resources include GPU, MEMORY, and * VCPU.

*/ inline void SetResourceRequirements(Aws::Vector&& value) { m_resourceRequirementsHasBeenSet = true; m_resourceRequirements = std::move(value); } /** *

The type and amount of resources to assign to a container. The supported * resources include GPU, MEMORY, and * VCPU.

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

The type and amount of resources to assign to a container. The supported * resources include GPU, MEMORY, and * VCPU.

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

The type and amount of resources to assign to a container. The supported * resources include GPU, MEMORY, and * VCPU.

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

The type and amount of resources to assign to a container. The supported * resources include GPU, MEMORY, and * VCPU.

*/ 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;} /** *

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 might 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.

Batch currently supports * a subset of the logging drivers available to the Docker daemon (shown in the * LogConfiguration 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 | * grep "Server API version"

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 might 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.

Batch currently supports * a subset of the logging drivers available to the Docker daemon (shown in the * LogConfiguration 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 | * grep "Server API version"

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 might 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.

Batch currently supports * a subset of the logging drivers available to the Docker daemon (shown in the * LogConfiguration 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 | * grep "Server API version"

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 might 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.

Batch currently supports * a subset of the logging drivers available to the Docker daemon (shown in the * LogConfiguration 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 | * grep "Server API version"

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 might 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.

Batch currently supports * a subset of the logging drivers available to the Docker daemon (shown in the * LogConfiguration 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 | * grep "Server API version"

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 ContainerProperties& 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 might 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.

Batch currently supports * a subset of the logging drivers available to the Docker daemon (shown in the * LogConfiguration 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 | * grep "Server API version"

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 ContainerProperties& WithLogConfiguration(LogConfiguration&& value) { SetLogConfiguration(std::move(value)); return *this;} /** *

The secrets for the container. For more information, see Specifying * sensitive data in the Batch User Guide.

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

The secrets for the container. For more information, see Specifying * sensitive data in the Batch User Guide.

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

The secrets for the container. For more information, see Specifying * sensitive data in the Batch User Guide.

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

The secrets for the container. For more information, see Specifying * sensitive data in the Batch User Guide.

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

The secrets for the container. For more information, see Specifying * sensitive data in the Batch User Guide.

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

The secrets for the container. For more information, see Specifying * sensitive data in the Batch User Guide.

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

The secrets for the container. For more information, see Specifying * sensitive data in the Batch User Guide.

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

The secrets for the container. For more information, see Specifying * sensitive data in the Batch User Guide.

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

The network configuration for jobs that are running on Fargate resources. * Jobs that are running on EC2 resources must not specify this parameter.

*/ inline const NetworkConfiguration& GetNetworkConfiguration() const{ return m_networkConfiguration; } /** *

The network configuration for jobs that are running on Fargate resources. * Jobs that are running on EC2 resources must not specify this parameter.

*/ inline bool NetworkConfigurationHasBeenSet() const { return m_networkConfigurationHasBeenSet; } /** *

The network configuration for jobs that are running on Fargate resources. * Jobs that are running on EC2 resources must not specify this parameter.

*/ inline void SetNetworkConfiguration(const NetworkConfiguration& value) { m_networkConfigurationHasBeenSet = true; m_networkConfiguration = value; } /** *

The network configuration for jobs that are running on Fargate resources. * Jobs that are running on EC2 resources must not specify this parameter.

*/ inline void SetNetworkConfiguration(NetworkConfiguration&& value) { m_networkConfigurationHasBeenSet = true; m_networkConfiguration = std::move(value); } /** *

The network configuration for jobs that are running on Fargate resources. * Jobs that are running on EC2 resources must not specify this parameter.

*/ inline ContainerProperties& WithNetworkConfiguration(const NetworkConfiguration& value) { SetNetworkConfiguration(value); return *this;} /** *

The network configuration for jobs that are running on Fargate resources. * Jobs that are running on EC2 resources must not specify this parameter.

*/ inline ContainerProperties& WithNetworkConfiguration(NetworkConfiguration&& value) { SetNetworkConfiguration(std::move(value)); return *this;} /** *

The platform configuration for jobs that are running on Fargate resources. * Jobs that are running on EC2 resources must not specify this parameter.

*/ inline const FargatePlatformConfiguration& GetFargatePlatformConfiguration() const{ return m_fargatePlatformConfiguration; } /** *

The platform configuration for jobs that are running on Fargate resources. * Jobs that are running on EC2 resources must not specify this parameter.

*/ inline bool FargatePlatformConfigurationHasBeenSet() const { return m_fargatePlatformConfigurationHasBeenSet; } /** *

The platform configuration for jobs that are running on Fargate resources. * Jobs that are running on EC2 resources must not specify this parameter.

*/ inline void SetFargatePlatformConfiguration(const FargatePlatformConfiguration& value) { m_fargatePlatformConfigurationHasBeenSet = true; m_fargatePlatformConfiguration = value; } /** *

The platform configuration for jobs that are running on Fargate resources. * Jobs that are running on EC2 resources must not specify this parameter.

*/ inline void SetFargatePlatformConfiguration(FargatePlatformConfiguration&& value) { m_fargatePlatformConfigurationHasBeenSet = true; m_fargatePlatformConfiguration = std::move(value); } /** *

The platform configuration for jobs that are running on Fargate resources. * Jobs that are running on EC2 resources must not specify this parameter.

*/ inline ContainerProperties& WithFargatePlatformConfiguration(const FargatePlatformConfiguration& value) { SetFargatePlatformConfiguration(value); return *this;} /** *

The platform configuration for jobs that are running on Fargate resources. * Jobs that are running on EC2 resources must not specify this parameter.

*/ inline ContainerProperties& WithFargatePlatformConfiguration(FargatePlatformConfiguration&& value) { SetFargatePlatformConfiguration(std::move(value)); return *this;} /** *

The amount of ephemeral storage to allocate for the task. This parameter is * used to expand the total amount of ephemeral storage available, beyond the * default amount, for tasks hosted on Fargate.

*/ inline const EphemeralStorage& GetEphemeralStorage() const{ return m_ephemeralStorage; } /** *

The amount of ephemeral storage to allocate for the task. This parameter is * used to expand the total amount of ephemeral storage available, beyond the * default amount, for tasks hosted on Fargate.

*/ inline bool EphemeralStorageHasBeenSet() const { return m_ephemeralStorageHasBeenSet; } /** *

The amount of ephemeral storage to allocate for the task. This parameter is * used to expand the total amount of ephemeral storage available, beyond the * default amount, for tasks hosted on Fargate.

*/ inline void SetEphemeralStorage(const EphemeralStorage& value) { m_ephemeralStorageHasBeenSet = true; m_ephemeralStorage = value; } /** *

The amount of ephemeral storage to allocate for the task. This parameter is * used to expand the total amount of ephemeral storage available, beyond the * default amount, for tasks hosted on Fargate.

*/ inline void SetEphemeralStorage(EphemeralStorage&& value) { m_ephemeralStorageHasBeenSet = true; m_ephemeralStorage = std::move(value); } /** *

The amount of ephemeral storage to allocate for the task. This parameter is * used to expand the total amount of ephemeral storage available, beyond the * default amount, for tasks hosted on Fargate.

*/ inline ContainerProperties& WithEphemeralStorage(const EphemeralStorage& value) { SetEphemeralStorage(value); return *this;} /** *

The amount of ephemeral storage to allocate for the task. This parameter is * used to expand the total amount of ephemeral storage available, beyond the * default amount, for tasks hosted on Fargate.

*/ inline ContainerProperties& WithEphemeralStorage(EphemeralStorage&& value) { SetEphemeralStorage(std::move(value)); return *this;} inline const RuntimePlatform& GetRuntimePlatform() const{ return m_runtimePlatform; } inline bool RuntimePlatformHasBeenSet() const { return m_runtimePlatformHasBeenSet; } inline void SetRuntimePlatform(const RuntimePlatform& value) { m_runtimePlatformHasBeenSet = true; m_runtimePlatform = value; } inline void SetRuntimePlatform(RuntimePlatform&& value) { m_runtimePlatformHasBeenSet = true; m_runtimePlatform = std::move(value); } inline ContainerProperties& WithRuntimePlatform(const RuntimePlatform& value) { SetRuntimePlatform(value); return *this;} inline ContainerProperties& WithRuntimePlatform(RuntimePlatform&& value) { SetRuntimePlatform(std::move(value)); return *this;} private: Aws::String m_image; bool m_imageHasBeenSet = false; Aws::Vector m_command; bool m_commandHasBeenSet = false; Aws::String m_jobRoleArn; bool m_jobRoleArnHasBeenSet = false; Aws::String m_executionRoleArn; bool m_executionRoleArnHasBeenSet = false; Aws::Vector m_volumes; bool m_volumesHasBeenSet = false; Aws::Vector m_environment; bool m_environmentHasBeenSet = false; Aws::Vector m_mountPoints; bool m_mountPointsHasBeenSet = false; bool m_readonlyRootFilesystem; bool m_readonlyRootFilesystemHasBeenSet = false; bool m_privileged; bool m_privilegedHasBeenSet = false; Aws::Vector m_ulimits; bool m_ulimitsHasBeenSet = false; Aws::String m_user; bool m_userHasBeenSet = false; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet = false; Aws::Vector m_resourceRequirements; bool m_resourceRequirementsHasBeenSet = false; LinuxParameters m_linuxParameters; bool m_linuxParametersHasBeenSet = false; LogConfiguration m_logConfiguration; bool m_logConfigurationHasBeenSet = false; Aws::Vector m_secrets; bool m_secretsHasBeenSet = false; NetworkConfiguration m_networkConfiguration; bool m_networkConfigurationHasBeenSet = false; FargatePlatformConfiguration m_fargatePlatformConfiguration; bool m_fargatePlatformConfigurationHasBeenSet = false; EphemeralStorage m_ephemeralStorage; bool m_ephemeralStorageHasBeenSet = false; RuntimePlatform m_runtimePlatform; bool m_runtimePlatformHasBeenSet = false; }; } // namespace Model } // namespace Batch } // namespace Aws