/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Pipes { namespace Model { /** *

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

See Also:

AWS * API Reference

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

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

*/ inline const BatchResourceRequirementType& GetType() const{ return m_type; } /** *

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

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

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

*/ inline void SetType(const BatchResourceRequirementType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

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

*/ inline void SetType(BatchResourceRequirementType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

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

*/ inline BatchResourceRequirement& WithType(const BatchResourceRequirementType& value) { SetType(value); return *this;} /** *

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

*/ inline BatchResourceRequirement& WithType(BatchResourceRequirementType&& value) { SetType(std::move(value)); return *this;} /** *

The quantity of the specified resource to reserve for the container. The * values vary based on the type specified.

*
type="GPU"

The number of physical GPUs to reserve for the * container. Make sure that the number of GPUs reserved for all containers in a * job doesn't exceed the number of available GPUs on the compute resource that the * job is launched on.

GPUs aren't available for jobs that are * running on Fargate resources.

type="MEMORY"
*

The memory hard limit (in MiB) present to the container. This parameter is * supported for jobs that are running on EC2 resources. If your container attempts * to exceed the memory specified, the container is terminated. 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. This is required but can be * specified in several places for multi-node parallel (MNP) jobs. It must be * specified for each node at least once. This parameter maps to * Memory in the Create a * container section of the Docker Remote API and the * --memory option to docker run.

*

If you're 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 Batch User Guide.

For jobs that are * running on Fargate resources, then value is the hard limit (in * MiB), and must match one of the supported values and the VCPU * values must be one of the values supported for that memory value.

*
value = 512

VCPU = 0.25

value = * 1024

VCPU = 0.25 or 0.5

value = * 2048

VCPU = 0.25, 0.5, or 1

value = * 3072

VCPU = 0.5, or 1

value = 4096
*

VCPU = 0.5, 1, or 2

value = 5120, 6144, or * 7168

VCPU = 1 or 2

value = 8192
*

VCPU = 1, 2, 4, or 8

value = 9216, 10240, * 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or * 4

value = 16384

VCPU = 2, 4, or 8

*
value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, * 29696, or 30720

VCPU = 4

value = 20480, * 24576, or 28672

VCPU = 4 or 8

value = * 36864, 45056, 53248, or 61440

VCPU = 8

*
value = 32768, 40960, 49152, or 57344

VCPU = 8 or * 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or * 122880

VCPU = 16

*
type="VCPU"

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. For EC2 resources, you must specify at least * one vCPU. This is required but can be specified in several places; it must be * specified for each node at least once.

The default for the Fargate * On-Demand vCPU resource count quota is 6 vCPUs. For more information about * Fargate quotas, see Fargate * quotas in the Amazon Web Services General Reference.

For jobs * that are running on Fargate resources, then value must match one of * the supported values and the MEMORY values must be one of the * values supported for that VCPU value. The supported values are * 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

* MEMORY = 512, 1024, or 2048

value = 0.5

* MEMORY = 1024, 2048, 3072, or 4096

value = 1
*

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

*
value = 2

MEMORY = 4096, 5120, 6144, 7168, * 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

*
value = 4

MEMORY = 8192, 9216, 10240, 11264, * 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, * 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = * 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, * 40960, 45056, 49152, 53248, 57344, or 61440

value = 16
*

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, * 90112, 98304, 106496, 114688, or 122880

*/ inline const Aws::String& GetValue() const{ return m_value; } /** *

The quantity of the specified resource to reserve for the container. The * values vary based on the type specified.

*
type="GPU"

The number of physical GPUs to reserve for the * container. Make sure that the number of GPUs reserved for all containers in a * job doesn't exceed the number of available GPUs on the compute resource that the * job is launched on.

GPUs aren't available for jobs that are * running on Fargate resources.

type="MEMORY"
*

The memory hard limit (in MiB) present to the container. This parameter is * supported for jobs that are running on EC2 resources. If your container attempts * to exceed the memory specified, the container is terminated. 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. This is required but can be * specified in several places for multi-node parallel (MNP) jobs. It must be * specified for each node at least once. This parameter maps to * Memory in the Create a * container section of the Docker Remote API and the * --memory option to docker run.

*

If you're 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 Batch User Guide.

For jobs that are * running on Fargate resources, then value is the hard limit (in * MiB), and must match one of the supported values and the VCPU * values must be one of the values supported for that memory value.

*
value = 512

VCPU = 0.25

value = * 1024

VCPU = 0.25 or 0.5

value = * 2048

VCPU = 0.25, 0.5, or 1

value = * 3072

VCPU = 0.5, or 1

value = 4096
*

VCPU = 0.5, 1, or 2

value = 5120, 6144, or * 7168

VCPU = 1 or 2

value = 8192
*

VCPU = 1, 2, 4, or 8

value = 9216, 10240, * 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or * 4

value = 16384

VCPU = 2, 4, or 8

*
value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, * 29696, or 30720

VCPU = 4

value = 20480, * 24576, or 28672

VCPU = 4 or 8

value = * 36864, 45056, 53248, or 61440

VCPU = 8

*
value = 32768, 40960, 49152, or 57344

VCPU = 8 or * 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or * 122880

VCPU = 16

*
type="VCPU"

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. For EC2 resources, you must specify at least * one vCPU. This is required but can be specified in several places; it must be * specified for each node at least once.

The default for the Fargate * On-Demand vCPU resource count quota is 6 vCPUs. For more information about * Fargate quotas, see Fargate * quotas in the Amazon Web Services General Reference.

For jobs * that are running on Fargate resources, then value must match one of * the supported values and the MEMORY values must be one of the * values supported for that VCPU value. The supported values are * 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

* MEMORY = 512, 1024, or 2048

value = 0.5

* MEMORY = 1024, 2048, 3072, or 4096

value = 1
*

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

*
value = 2

MEMORY = 4096, 5120, 6144, 7168, * 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

*
value = 4

MEMORY = 8192, 9216, 10240, 11264, * 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, * 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = * 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, * 40960, 45056, 49152, 53248, 57344, or 61440

value = 16
*

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, * 90112, 98304, 106496, 114688, or 122880

*/ inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; } /** *

The quantity of the specified resource to reserve for the container. The * values vary based on the type specified.

*
type="GPU"

The number of physical GPUs to reserve for the * container. Make sure that the number of GPUs reserved for all containers in a * job doesn't exceed the number of available GPUs on the compute resource that the * job is launched on.

GPUs aren't available for jobs that are * running on Fargate resources.

type="MEMORY"
*

The memory hard limit (in MiB) present to the container. This parameter is * supported for jobs that are running on EC2 resources. If your container attempts * to exceed the memory specified, the container is terminated. 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. This is required but can be * specified in several places for multi-node parallel (MNP) jobs. It must be * specified for each node at least once. This parameter maps to * Memory in the Create a * container section of the Docker Remote API and the * --memory option to docker run.

*

If you're 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 Batch User Guide.

For jobs that are * running on Fargate resources, then value is the hard limit (in * MiB), and must match one of the supported values and the VCPU * values must be one of the values supported for that memory value.

*
value = 512

VCPU = 0.25

value = * 1024

VCPU = 0.25 or 0.5

value = * 2048

VCPU = 0.25, 0.5, or 1

value = * 3072

VCPU = 0.5, or 1

value = 4096
*

VCPU = 0.5, 1, or 2

value = 5120, 6144, or * 7168

VCPU = 1 or 2

value = 8192
*

VCPU = 1, 2, 4, or 8

value = 9216, 10240, * 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or * 4

value = 16384

VCPU = 2, 4, or 8

*
value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, * 29696, or 30720

VCPU = 4

value = 20480, * 24576, or 28672

VCPU = 4 or 8

value = * 36864, 45056, 53248, or 61440

VCPU = 8

*
value = 32768, 40960, 49152, or 57344

VCPU = 8 or * 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or * 122880

VCPU = 16

*
type="VCPU"

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. For EC2 resources, you must specify at least * one vCPU. This is required but can be specified in several places; it must be * specified for each node at least once.

The default for the Fargate * On-Demand vCPU resource count quota is 6 vCPUs. For more information about * Fargate quotas, see Fargate * quotas in the Amazon Web Services General Reference.

For jobs * that are running on Fargate resources, then value must match one of * the supported values and the MEMORY values must be one of the * values supported for that VCPU value. The supported values are * 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

* MEMORY = 512, 1024, or 2048

value = 0.5

* MEMORY = 1024, 2048, 3072, or 4096

value = 1
*

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

*
value = 2

MEMORY = 4096, 5120, 6144, 7168, * 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

*
value = 4

MEMORY = 8192, 9216, 10240, 11264, * 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, * 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = * 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, * 40960, 45056, 49152, 53248, 57344, or 61440

value = 16
*

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, * 90112, 98304, 106496, 114688, or 122880

*/ inline void SetValue(const Aws::String& value) { m_valueHasBeenSet = true; m_value = value; } /** *

The quantity of the specified resource to reserve for the container. The * values vary based on the type specified.

*
type="GPU"

The number of physical GPUs to reserve for the * container. Make sure that the number of GPUs reserved for all containers in a * job doesn't exceed the number of available GPUs on the compute resource that the * job is launched on.

GPUs aren't available for jobs that are * running on Fargate resources.

type="MEMORY"
*

The memory hard limit (in MiB) present to the container. This parameter is * supported for jobs that are running on EC2 resources. If your container attempts * to exceed the memory specified, the container is terminated. 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. This is required but can be * specified in several places for multi-node parallel (MNP) jobs. It must be * specified for each node at least once. This parameter maps to * Memory in the Create a * container section of the Docker Remote API and the * --memory option to docker run.

*

If you're 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 Batch User Guide.

For jobs that are * running on Fargate resources, then value is the hard limit (in * MiB), and must match one of the supported values and the VCPU * values must be one of the values supported for that memory value.

*
value = 512

VCPU = 0.25

value = * 1024

VCPU = 0.25 or 0.5

value = * 2048

VCPU = 0.25, 0.5, or 1

value = * 3072

VCPU = 0.5, or 1

value = 4096
*

VCPU = 0.5, 1, or 2

value = 5120, 6144, or * 7168

VCPU = 1 or 2

value = 8192
*

VCPU = 1, 2, 4, or 8

value = 9216, 10240, * 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or * 4

value = 16384

VCPU = 2, 4, or 8

*
value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, * 29696, or 30720

VCPU = 4

value = 20480, * 24576, or 28672

VCPU = 4 or 8

value = * 36864, 45056, 53248, or 61440

VCPU = 8

*
value = 32768, 40960, 49152, or 57344

VCPU = 8 or * 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or * 122880

VCPU = 16

*
type="VCPU"

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. For EC2 resources, you must specify at least * one vCPU. This is required but can be specified in several places; it must be * specified for each node at least once.

The default for the Fargate * On-Demand vCPU resource count quota is 6 vCPUs. For more information about * Fargate quotas, see Fargate * quotas in the Amazon Web Services General Reference.

For jobs * that are running on Fargate resources, then value must match one of * the supported values and the MEMORY values must be one of the * values supported for that VCPU value. The supported values are * 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

* MEMORY = 512, 1024, or 2048

value = 0.5

* MEMORY = 1024, 2048, 3072, or 4096

value = 1
*

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

*
value = 2

MEMORY = 4096, 5120, 6144, 7168, * 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

*
value = 4

MEMORY = 8192, 9216, 10240, 11264, * 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, * 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = * 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, * 40960, 45056, 49152, 53248, 57344, or 61440

value = 16
*

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, * 90112, 98304, 106496, 114688, or 122880

*/ inline void SetValue(Aws::String&& value) { m_valueHasBeenSet = true; m_value = std::move(value); } /** *

The quantity of the specified resource to reserve for the container. The * values vary based on the type specified.

*
type="GPU"

The number of physical GPUs to reserve for the * container. Make sure that the number of GPUs reserved for all containers in a * job doesn't exceed the number of available GPUs on the compute resource that the * job is launched on.

GPUs aren't available for jobs that are * running on Fargate resources.

type="MEMORY"
*

The memory hard limit (in MiB) present to the container. This parameter is * supported for jobs that are running on EC2 resources. If your container attempts * to exceed the memory specified, the container is terminated. 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. This is required but can be * specified in several places for multi-node parallel (MNP) jobs. It must be * specified for each node at least once. This parameter maps to * Memory in the Create a * container section of the Docker Remote API and the * --memory option to docker run.

*

If you're 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 Batch User Guide.

For jobs that are * running on Fargate resources, then value is the hard limit (in * MiB), and must match one of the supported values and the VCPU * values must be one of the values supported for that memory value.

*
value = 512

VCPU = 0.25

value = * 1024

VCPU = 0.25 or 0.5

value = * 2048

VCPU = 0.25, 0.5, or 1

value = * 3072

VCPU = 0.5, or 1

value = 4096
*

VCPU = 0.5, 1, or 2

value = 5120, 6144, or * 7168

VCPU = 1 or 2

value = 8192
*

VCPU = 1, 2, 4, or 8

value = 9216, 10240, * 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or * 4

value = 16384

VCPU = 2, 4, or 8

*
value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, * 29696, or 30720

VCPU = 4

value = 20480, * 24576, or 28672

VCPU = 4 or 8

value = * 36864, 45056, 53248, or 61440

VCPU = 8

*
value = 32768, 40960, 49152, or 57344

VCPU = 8 or * 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or * 122880

VCPU = 16

*
type="VCPU"

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. For EC2 resources, you must specify at least * one vCPU. This is required but can be specified in several places; it must be * specified for each node at least once.

The default for the Fargate * On-Demand vCPU resource count quota is 6 vCPUs. For more information about * Fargate quotas, see Fargate * quotas in the Amazon Web Services General Reference.

For jobs * that are running on Fargate resources, then value must match one of * the supported values and the MEMORY values must be one of the * values supported for that VCPU value. The supported values are * 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

* MEMORY = 512, 1024, or 2048

value = 0.5

* MEMORY = 1024, 2048, 3072, or 4096

value = 1
*

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

*
value = 2

MEMORY = 4096, 5120, 6144, 7168, * 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

*
value = 4

MEMORY = 8192, 9216, 10240, 11264, * 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, * 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = * 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, * 40960, 45056, 49152, 53248, 57344, or 61440

value = 16
*

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, * 90112, 98304, 106496, 114688, or 122880

*/ inline void SetValue(const char* value) { m_valueHasBeenSet = true; m_value.assign(value); } /** *

The quantity of the specified resource to reserve for the container. The * values vary based on the type specified.

*
type="GPU"

The number of physical GPUs to reserve for the * container. Make sure that the number of GPUs reserved for all containers in a * job doesn't exceed the number of available GPUs on the compute resource that the * job is launched on.

GPUs aren't available for jobs that are * running on Fargate resources.

type="MEMORY"
*

The memory hard limit (in MiB) present to the container. This parameter is * supported for jobs that are running on EC2 resources. If your container attempts * to exceed the memory specified, the container is terminated. 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. This is required but can be * specified in several places for multi-node parallel (MNP) jobs. It must be * specified for each node at least once. This parameter maps to * Memory in the Create a * container section of the Docker Remote API and the * --memory option to docker run.

*

If you're 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 Batch User Guide.

For jobs that are * running on Fargate resources, then value is the hard limit (in * MiB), and must match one of the supported values and the VCPU * values must be one of the values supported for that memory value.

*
value = 512

VCPU = 0.25

value = * 1024

VCPU = 0.25 or 0.5

value = * 2048

VCPU = 0.25, 0.5, or 1

value = * 3072

VCPU = 0.5, or 1

value = 4096
*

VCPU = 0.5, 1, or 2

value = 5120, 6144, or * 7168

VCPU = 1 or 2

value = 8192
*

VCPU = 1, 2, 4, or 8

value = 9216, 10240, * 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or * 4

value = 16384

VCPU = 2, 4, or 8

*
value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, * 29696, or 30720

VCPU = 4

value = 20480, * 24576, or 28672

VCPU = 4 or 8

value = * 36864, 45056, 53248, or 61440

VCPU = 8

*
value = 32768, 40960, 49152, or 57344

VCPU = 8 or * 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or * 122880

VCPU = 16

*
type="VCPU"

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. For EC2 resources, you must specify at least * one vCPU. This is required but can be specified in several places; it must be * specified for each node at least once.

The default for the Fargate * On-Demand vCPU resource count quota is 6 vCPUs. For more information about * Fargate quotas, see Fargate * quotas in the Amazon Web Services General Reference.

For jobs * that are running on Fargate resources, then value must match one of * the supported values and the MEMORY values must be one of the * values supported for that VCPU value. The supported values are * 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

* MEMORY = 512, 1024, or 2048

value = 0.5

* MEMORY = 1024, 2048, 3072, or 4096

value = 1
*

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

*
value = 2

MEMORY = 4096, 5120, 6144, 7168, * 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

*
value = 4

MEMORY = 8192, 9216, 10240, 11264, * 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, * 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = * 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, * 40960, 45056, 49152, 53248, 57344, or 61440

value = 16
*

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, * 90112, 98304, 106496, 114688, or 122880

*/ inline BatchResourceRequirement& WithValue(const Aws::String& value) { SetValue(value); return *this;} /** *

The quantity of the specified resource to reserve for the container. The * values vary based on the type specified.

*
type="GPU"

The number of physical GPUs to reserve for the * container. Make sure that the number of GPUs reserved for all containers in a * job doesn't exceed the number of available GPUs on the compute resource that the * job is launched on.

GPUs aren't available for jobs that are * running on Fargate resources.

type="MEMORY"
*

The memory hard limit (in MiB) present to the container. This parameter is * supported for jobs that are running on EC2 resources. If your container attempts * to exceed the memory specified, the container is terminated. 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. This is required but can be * specified in several places for multi-node parallel (MNP) jobs. It must be * specified for each node at least once. This parameter maps to * Memory in the Create a * container section of the Docker Remote API and the * --memory option to docker run.

*

If you're 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 Batch User Guide.

For jobs that are * running on Fargate resources, then value is the hard limit (in * MiB), and must match one of the supported values and the VCPU * values must be one of the values supported for that memory value.

*
value = 512

VCPU = 0.25

value = * 1024

VCPU = 0.25 or 0.5

value = * 2048

VCPU = 0.25, 0.5, or 1

value = * 3072

VCPU = 0.5, or 1

value = 4096
*

VCPU = 0.5, 1, or 2

value = 5120, 6144, or * 7168

VCPU = 1 or 2

value = 8192
*

VCPU = 1, 2, 4, or 8

value = 9216, 10240, * 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or * 4

value = 16384

VCPU = 2, 4, or 8

*
value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, * 29696, or 30720

VCPU = 4

value = 20480, * 24576, or 28672

VCPU = 4 or 8

value = * 36864, 45056, 53248, or 61440

VCPU = 8

*
value = 32768, 40960, 49152, or 57344

VCPU = 8 or * 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or * 122880

VCPU = 16

*
type="VCPU"

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. For EC2 resources, you must specify at least * one vCPU. This is required but can be specified in several places; it must be * specified for each node at least once.

The default for the Fargate * On-Demand vCPU resource count quota is 6 vCPUs. For more information about * Fargate quotas, see Fargate * quotas in the Amazon Web Services General Reference.

For jobs * that are running on Fargate resources, then value must match one of * the supported values and the MEMORY values must be one of the * values supported for that VCPU value. The supported values are * 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

* MEMORY = 512, 1024, or 2048

value = 0.5

* MEMORY = 1024, 2048, 3072, or 4096

value = 1
*

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

*
value = 2

MEMORY = 4096, 5120, 6144, 7168, * 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

*
value = 4

MEMORY = 8192, 9216, 10240, 11264, * 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, * 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = * 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, * 40960, 45056, 49152, 53248, 57344, or 61440

value = 16
*

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, * 90112, 98304, 106496, 114688, or 122880

*/ inline BatchResourceRequirement& WithValue(Aws::String&& value) { SetValue(std::move(value)); return *this;} /** *

The quantity of the specified resource to reserve for the container. The * values vary based on the type specified.

*
type="GPU"

The number of physical GPUs to reserve for the * container. Make sure that the number of GPUs reserved for all containers in a * job doesn't exceed the number of available GPUs on the compute resource that the * job is launched on.

GPUs aren't available for jobs that are * running on Fargate resources.

type="MEMORY"
*

The memory hard limit (in MiB) present to the container. This parameter is * supported for jobs that are running on EC2 resources. If your container attempts * to exceed the memory specified, the container is terminated. 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. This is required but can be * specified in several places for multi-node parallel (MNP) jobs. It must be * specified for each node at least once. This parameter maps to * Memory in the Create a * container section of the Docker Remote API and the * --memory option to docker run.

*

If you're 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 Batch User Guide.

For jobs that are * running on Fargate resources, then value is the hard limit (in * MiB), and must match one of the supported values and the VCPU * values must be one of the values supported for that memory value.

*
value = 512

VCPU = 0.25

value = * 1024

VCPU = 0.25 or 0.5

value = * 2048

VCPU = 0.25, 0.5, or 1

value = * 3072

VCPU = 0.5, or 1

value = 4096
*

VCPU = 0.5, 1, or 2

value = 5120, 6144, or * 7168

VCPU = 1 or 2

value = 8192
*

VCPU = 1, 2, 4, or 8

value = 9216, 10240, * 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or * 4

value = 16384

VCPU = 2, 4, or 8

*
value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, * 29696, or 30720

VCPU = 4

value = 20480, * 24576, or 28672

VCPU = 4 or 8

value = * 36864, 45056, 53248, or 61440

VCPU = 8

*
value = 32768, 40960, 49152, or 57344

VCPU = 8 or * 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or * 122880

VCPU = 16

*
type="VCPU"

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. For EC2 resources, you must specify at least * one vCPU. This is required but can be specified in several places; it must be * specified for each node at least once.

The default for the Fargate * On-Demand vCPU resource count quota is 6 vCPUs. For more information about * Fargate quotas, see Fargate * quotas in the Amazon Web Services General Reference.

For jobs * that are running on Fargate resources, then value must match one of * the supported values and the MEMORY values must be one of the * values supported for that VCPU value. The supported values are * 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

* MEMORY = 512, 1024, or 2048

value = 0.5

* MEMORY = 1024, 2048, 3072, or 4096

value = 1
*

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

*
value = 2

MEMORY = 4096, 5120, 6144, 7168, * 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

*
value = 4

MEMORY = 8192, 9216, 10240, 11264, * 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, * 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = * 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, * 40960, 45056, 49152, 53248, 57344, or 61440

value = 16
*

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, * 90112, 98304, 106496, 114688, or 122880

*/ inline BatchResourceRequirement& WithValue(const char* value) { SetValue(value); return *this;} private: BatchResourceRequirementType m_type; bool m_typeHasBeenSet = false; Aws::String m_value; bool m_valueHasBeenSet = false; }; } // namespace Model } // namespace Pipes } // namespace Aws