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

Provides information used to select Amazon Machine Images (AMIs) for * instances in the compute environment. If Ec2Configuration isn't * specified, the default is ECS_AL2 (Amazon * Linux 2).

This object isn't applicable to jobs that are * running on Fargate resources.

See Also:

AWS * API Reference

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

The image type to match with the instance type to select an AMI. The * supported values are different for ECS and EKS * resources.

ECS

If the imageIdOverride * parameter isn't specified, then a recent Amazon * ECS-optimized Amazon Linux 2 AMI (ECS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon ECS * optimized AMI for that image type that's supported by Batch is used.

*
ECS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
ECS_AL2_NVIDIA

Amazon * Linux 2 (GPU): Default for all GPU instance families (for example * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

ECS_AL1

Amazon * Linux. Amazon Linux has reached the end-of-life of standard support. For * more information, see Amazon * Linux AMI.

EKS

If the * imageIdOverride parameter isn't specified, then a recent Amazon * EKS-optimized Amazon Linux AMI (EKS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon EKS * optimized AMI for that image type that Batch supports is used.

*
EKS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
EKS_AL2_NVIDIA

Amazon * Linux 2 (accelerated): Default for all GPU instance families (for example, * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

*/ inline const Aws::String& GetImageType() const{ return m_imageType; } /** *

The image type to match with the instance type to select an AMI. The * supported values are different for ECS and EKS * resources.

ECS

If the imageIdOverride * parameter isn't specified, then a recent Amazon * ECS-optimized Amazon Linux 2 AMI (ECS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon ECS * optimized AMI for that image type that's supported by Batch is used.

*
ECS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
ECS_AL2_NVIDIA

Amazon * Linux 2 (GPU): Default for all GPU instance families (for example * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

ECS_AL1

Amazon * Linux. Amazon Linux has reached the end-of-life of standard support. For * more information, see Amazon * Linux AMI.

EKS

If the * imageIdOverride parameter isn't specified, then a recent Amazon * EKS-optimized Amazon Linux AMI (EKS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon EKS * optimized AMI for that image type that Batch supports is used.

*
EKS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
EKS_AL2_NVIDIA

Amazon * Linux 2 (accelerated): Default for all GPU instance families (for example, * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

*/ inline bool ImageTypeHasBeenSet() const { return m_imageTypeHasBeenSet; } /** *

The image type to match with the instance type to select an AMI. The * supported values are different for ECS and EKS * resources.

ECS

If the imageIdOverride * parameter isn't specified, then a recent Amazon * ECS-optimized Amazon Linux 2 AMI (ECS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon ECS * optimized AMI for that image type that's supported by Batch is used.

*
ECS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
ECS_AL2_NVIDIA

Amazon * Linux 2 (GPU): Default for all GPU instance families (for example * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

ECS_AL1

Amazon * Linux. Amazon Linux has reached the end-of-life of standard support. For * more information, see Amazon * Linux AMI.

EKS

If the * imageIdOverride parameter isn't specified, then a recent Amazon * EKS-optimized Amazon Linux AMI (EKS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon EKS * optimized AMI for that image type that Batch supports is used.

*
EKS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
EKS_AL2_NVIDIA

Amazon * Linux 2 (accelerated): Default for all GPU instance families (for example, * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

*/ inline void SetImageType(const Aws::String& value) { m_imageTypeHasBeenSet = true; m_imageType = value; } /** *

The image type to match with the instance type to select an AMI. The * supported values are different for ECS and EKS * resources.

ECS

If the imageIdOverride * parameter isn't specified, then a recent Amazon * ECS-optimized Amazon Linux 2 AMI (ECS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon ECS * optimized AMI for that image type that's supported by Batch is used.

*
ECS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
ECS_AL2_NVIDIA

Amazon * Linux 2 (GPU): Default for all GPU instance families (for example * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

ECS_AL1

Amazon * Linux. Amazon Linux has reached the end-of-life of standard support. For * more information, see Amazon * Linux AMI.

EKS

If the * imageIdOverride parameter isn't specified, then a recent Amazon * EKS-optimized Amazon Linux AMI (EKS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon EKS * optimized AMI for that image type that Batch supports is used.

*
EKS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
EKS_AL2_NVIDIA

Amazon * Linux 2 (accelerated): Default for all GPU instance families (for example, * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

*/ inline void SetImageType(Aws::String&& value) { m_imageTypeHasBeenSet = true; m_imageType = std::move(value); } /** *

The image type to match with the instance type to select an AMI. The * supported values are different for ECS and EKS * resources.

ECS

If the imageIdOverride * parameter isn't specified, then a recent Amazon * ECS-optimized Amazon Linux 2 AMI (ECS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon ECS * optimized AMI for that image type that's supported by Batch is used.

*
ECS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
ECS_AL2_NVIDIA

Amazon * Linux 2 (GPU): Default for all GPU instance families (for example * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

ECS_AL1

Amazon * Linux. Amazon Linux has reached the end-of-life of standard support. For * more information, see Amazon * Linux AMI.

EKS

If the * imageIdOverride parameter isn't specified, then a recent Amazon * EKS-optimized Amazon Linux AMI (EKS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon EKS * optimized AMI for that image type that Batch supports is used.

*
EKS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
EKS_AL2_NVIDIA

Amazon * Linux 2 (accelerated): Default for all GPU instance families (for example, * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

*/ inline void SetImageType(const char* value) { m_imageTypeHasBeenSet = true; m_imageType.assign(value); } /** *

The image type to match with the instance type to select an AMI. The * supported values are different for ECS and EKS * resources.

ECS

If the imageIdOverride * parameter isn't specified, then a recent Amazon * ECS-optimized Amazon Linux 2 AMI (ECS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon ECS * optimized AMI for that image type that's supported by Batch is used.

*
ECS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
ECS_AL2_NVIDIA

Amazon * Linux 2 (GPU): Default for all GPU instance families (for example * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

ECS_AL1

Amazon * Linux. Amazon Linux has reached the end-of-life of standard support. For * more information, see Amazon * Linux AMI.

EKS

If the * imageIdOverride parameter isn't specified, then a recent Amazon * EKS-optimized Amazon Linux AMI (EKS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon EKS * optimized AMI for that image type that Batch supports is used.

*
EKS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
EKS_AL2_NVIDIA

Amazon * Linux 2 (accelerated): Default for all GPU instance families (for example, * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

*/ inline Ec2Configuration& WithImageType(const Aws::String& value) { SetImageType(value); return *this;} /** *

The image type to match with the instance type to select an AMI. The * supported values are different for ECS and EKS * resources.

ECS

If the imageIdOverride * parameter isn't specified, then a recent Amazon * ECS-optimized Amazon Linux 2 AMI (ECS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon ECS * optimized AMI for that image type that's supported by Batch is used.

*
ECS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
ECS_AL2_NVIDIA

Amazon * Linux 2 (GPU): Default for all GPU instance families (for example * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

ECS_AL1

Amazon * Linux. Amazon Linux has reached the end-of-life of standard support. For * more information, see Amazon * Linux AMI.

EKS

If the * imageIdOverride parameter isn't specified, then a recent Amazon * EKS-optimized Amazon Linux AMI (EKS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon EKS * optimized AMI for that image type that Batch supports is used.

*
EKS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
EKS_AL2_NVIDIA

Amazon * Linux 2 (accelerated): Default for all GPU instance families (for example, * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

*/ inline Ec2Configuration& WithImageType(Aws::String&& value) { SetImageType(std::move(value)); return *this;} /** *

The image type to match with the instance type to select an AMI. The * supported values are different for ECS and EKS * resources.

ECS

If the imageIdOverride * parameter isn't specified, then a recent Amazon * ECS-optimized Amazon Linux 2 AMI (ECS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon ECS * optimized AMI for that image type that's supported by Batch is used.

*
ECS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
ECS_AL2_NVIDIA

Amazon * Linux 2 (GPU): Default for all GPU instance families (for example * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

ECS_AL1

Amazon * Linux. Amazon Linux has reached the end-of-life of standard support. For * more information, see Amazon * Linux AMI.

EKS

If the * imageIdOverride parameter isn't specified, then a recent Amazon * EKS-optimized Amazon Linux AMI (EKS_AL2) is used. If a new * image type is specified in an update, but neither an imageId nor a * imageIdOverride parameter is specified, then the latest Amazon EKS * optimized AMI for that image type that Batch supports is used.

*
EKS_AL2

Amazon * Linux 2: Default for all non-GPU instance families.

*
EKS_AL2_NVIDIA

Amazon * Linux 2 (accelerated): Default for all GPU instance families (for example, * P4 and G4) and can be used for all non Amazon Web * Services Graviton-based instance types.

*/ inline Ec2Configuration& WithImageType(const char* value) { SetImageType(value); return *this;} /** *

The AMI ID used for instances launched in the compute environment that match * the image type. This setting overrides the imageId set in the * computeResource object.

The AMI that you choose for a * compute environment must match the architecture of the instance types that you * intend to use for that compute environment. For example, if your compute * environment uses A1 instance types, the compute resource AMI that you choose * must support ARM instances. Amazon ECS vends both x86 and ARM versions of the * Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon * ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service * Developer Guide.

*/ inline const Aws::String& GetImageIdOverride() const{ return m_imageIdOverride; } /** *

The AMI ID used for instances launched in the compute environment that match * the image type. This setting overrides the imageId set in the * computeResource object.

The AMI that you choose for a * compute environment must match the architecture of the instance types that you * intend to use for that compute environment. For example, if your compute * environment uses A1 instance types, the compute resource AMI that you choose * must support ARM instances. Amazon ECS vends both x86 and ARM versions of the * Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon * ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service * Developer Guide.

*/ inline bool ImageIdOverrideHasBeenSet() const { return m_imageIdOverrideHasBeenSet; } /** *

The AMI ID used for instances launched in the compute environment that match * the image type. This setting overrides the imageId set in the * computeResource object.

The AMI that you choose for a * compute environment must match the architecture of the instance types that you * intend to use for that compute environment. For example, if your compute * environment uses A1 instance types, the compute resource AMI that you choose * must support ARM instances. Amazon ECS vends both x86 and ARM versions of the * Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon * ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service * Developer Guide.

*/ inline void SetImageIdOverride(const Aws::String& value) { m_imageIdOverrideHasBeenSet = true; m_imageIdOverride = value; } /** *

The AMI ID used for instances launched in the compute environment that match * the image type. This setting overrides the imageId set in the * computeResource object.

The AMI that you choose for a * compute environment must match the architecture of the instance types that you * intend to use for that compute environment. For example, if your compute * environment uses A1 instance types, the compute resource AMI that you choose * must support ARM instances. Amazon ECS vends both x86 and ARM versions of the * Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon * ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service * Developer Guide.

*/ inline void SetImageIdOverride(Aws::String&& value) { m_imageIdOverrideHasBeenSet = true; m_imageIdOverride = std::move(value); } /** *

The AMI ID used for instances launched in the compute environment that match * the image type. This setting overrides the imageId set in the * computeResource object.

The AMI that you choose for a * compute environment must match the architecture of the instance types that you * intend to use for that compute environment. For example, if your compute * environment uses A1 instance types, the compute resource AMI that you choose * must support ARM instances. Amazon ECS vends both x86 and ARM versions of the * Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon * ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service * Developer Guide.

*/ inline void SetImageIdOverride(const char* value) { m_imageIdOverrideHasBeenSet = true; m_imageIdOverride.assign(value); } /** *

The AMI ID used for instances launched in the compute environment that match * the image type. This setting overrides the imageId set in the * computeResource object.

The AMI that you choose for a * compute environment must match the architecture of the instance types that you * intend to use for that compute environment. For example, if your compute * environment uses A1 instance types, the compute resource AMI that you choose * must support ARM instances. Amazon ECS vends both x86 and ARM versions of the * Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon * ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service * Developer Guide.

*/ inline Ec2Configuration& WithImageIdOverride(const Aws::String& value) { SetImageIdOverride(value); return *this;} /** *

The AMI ID used for instances launched in the compute environment that match * the image type. This setting overrides the imageId set in the * computeResource object.

The AMI that you choose for a * compute environment must match the architecture of the instance types that you * intend to use for that compute environment. For example, if your compute * environment uses A1 instance types, the compute resource AMI that you choose * must support ARM instances. Amazon ECS vends both x86 and ARM versions of the * Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon * ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service * Developer Guide.

*/ inline Ec2Configuration& WithImageIdOverride(Aws::String&& value) { SetImageIdOverride(std::move(value)); return *this;} /** *

The AMI ID used for instances launched in the compute environment that match * the image type. This setting overrides the imageId set in the * computeResource object.

The AMI that you choose for a * compute environment must match the architecture of the instance types that you * intend to use for that compute environment. For example, if your compute * environment uses A1 instance types, the compute resource AMI that you choose * must support ARM instances. Amazon ECS vends both x86 and ARM versions of the * Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon * ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service * Developer Guide.

*/ inline Ec2Configuration& WithImageIdOverride(const char* value) { SetImageIdOverride(value); return *this;} /** *

The Kubernetes version for the compute environment. If you don't specify a * value, the latest version that Batch supports is used.

*/ inline const Aws::String& GetImageKubernetesVersion() const{ return m_imageKubernetesVersion; } /** *

The Kubernetes version for the compute environment. If you don't specify a * value, the latest version that Batch supports is used.

*/ inline bool ImageKubernetesVersionHasBeenSet() const { return m_imageKubernetesVersionHasBeenSet; } /** *

The Kubernetes version for the compute environment. If you don't specify a * value, the latest version that Batch supports is used.

*/ inline void SetImageKubernetesVersion(const Aws::String& value) { m_imageKubernetesVersionHasBeenSet = true; m_imageKubernetesVersion = value; } /** *

The Kubernetes version for the compute environment. If you don't specify a * value, the latest version that Batch supports is used.

*/ inline void SetImageKubernetesVersion(Aws::String&& value) { m_imageKubernetesVersionHasBeenSet = true; m_imageKubernetesVersion = std::move(value); } /** *

The Kubernetes version for the compute environment. If you don't specify a * value, the latest version that Batch supports is used.

*/ inline void SetImageKubernetesVersion(const char* value) { m_imageKubernetesVersionHasBeenSet = true; m_imageKubernetesVersion.assign(value); } /** *

The Kubernetes version for the compute environment. If you don't specify a * value, the latest version that Batch supports is used.

*/ inline Ec2Configuration& WithImageKubernetesVersion(const Aws::String& value) { SetImageKubernetesVersion(value); return *this;} /** *

The Kubernetes version for the compute environment. If you don't specify a * value, the latest version that Batch supports is used.

*/ inline Ec2Configuration& WithImageKubernetesVersion(Aws::String&& value) { SetImageKubernetesVersion(std::move(value)); return *this;} /** *

The Kubernetes version for the compute environment. If you don't specify a * value, the latest version that Batch supports is used.

*/ inline Ec2Configuration& WithImageKubernetesVersion(const char* value) { SetImageKubernetesVersion(value); return *this;} private: Aws::String m_imageType; bool m_imageTypeHasBeenSet = false; Aws::String m_imageIdOverride; bool m_imageIdOverrideHasBeenSet = false; Aws::String m_imageKubernetesVersion; bool m_imageKubernetesVersionHasBeenSet = false; }; } // namespace Model } // namespace Batch } // namespace Aws