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

An object that represents the compute environment architecture for Batch jobs * on Fargate.

See Also:

AWS * API Reference

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

The operating system for the compute environment. Valid values are: * LINUX (default), WINDOWS_SERVER_2019_CORE, * WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, * and WINDOWS_SERVER_2022_FULL.

The following * parameters can’t be set for Windows containers: linuxParameters, * privileged, user, ulimits, * readonlyRootFilesystem, and * efsVolumeConfiguration.

The Batch Scheduler * checks before registering a task definition with Fargate. If the job requires a * Windows container and the first compute environment is LINUX, the * compute environment is skipped and the next is checked until a Windows-based * compute environment is found.

Fargate Spot is not * supported for Windows-based containers on Fargate. A job queue will be blocked * if a Fargate Windows job is submitted to a job queue with only Fargate Spot * compute environments. However, you can attach both FARGATE and * FARGATE_SPOT compute environments to the same job queue.

* */ inline const Aws::String& GetOperatingSystemFamily() const{ return m_operatingSystemFamily; } /** *

The operating system for the compute environment. Valid values are: * LINUX (default), WINDOWS_SERVER_2019_CORE, * WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, * and WINDOWS_SERVER_2022_FULL.

The following * parameters can’t be set for Windows containers: linuxParameters, * privileged, user, ulimits, * readonlyRootFilesystem, and * efsVolumeConfiguration.

The Batch Scheduler * checks before registering a task definition with Fargate. If the job requires a * Windows container and the first compute environment is LINUX, the * compute environment is skipped and the next is checked until a Windows-based * compute environment is found.

Fargate Spot is not * supported for Windows-based containers on Fargate. A job queue will be blocked * if a Fargate Windows job is submitted to a job queue with only Fargate Spot * compute environments. However, you can attach both FARGATE and * FARGATE_SPOT compute environments to the same job queue.

* */ inline bool OperatingSystemFamilyHasBeenSet() const { return m_operatingSystemFamilyHasBeenSet; } /** *

The operating system for the compute environment. Valid values are: * LINUX (default), WINDOWS_SERVER_2019_CORE, * WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, * and WINDOWS_SERVER_2022_FULL.

The following * parameters can’t be set for Windows containers: linuxParameters, * privileged, user, ulimits, * readonlyRootFilesystem, and * efsVolumeConfiguration.

The Batch Scheduler * checks before registering a task definition with Fargate. If the job requires a * Windows container and the first compute environment is LINUX, the * compute environment is skipped and the next is checked until a Windows-based * compute environment is found.

Fargate Spot is not * supported for Windows-based containers on Fargate. A job queue will be blocked * if a Fargate Windows job is submitted to a job queue with only Fargate Spot * compute environments. However, you can attach both FARGATE and * FARGATE_SPOT compute environments to the same job queue.

* */ inline void SetOperatingSystemFamily(const Aws::String& value) { m_operatingSystemFamilyHasBeenSet = true; m_operatingSystemFamily = value; } /** *

The operating system for the compute environment. Valid values are: * LINUX (default), WINDOWS_SERVER_2019_CORE, * WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, * and WINDOWS_SERVER_2022_FULL.

The following * parameters can’t be set for Windows containers: linuxParameters, * privileged, user, ulimits, * readonlyRootFilesystem, and * efsVolumeConfiguration.

The Batch Scheduler * checks before registering a task definition with Fargate. If the job requires a * Windows container and the first compute environment is LINUX, the * compute environment is skipped and the next is checked until a Windows-based * compute environment is found.

Fargate Spot is not * supported for Windows-based containers on Fargate. A job queue will be blocked * if a Fargate Windows job is submitted to a job queue with only Fargate Spot * compute environments. However, you can attach both FARGATE and * FARGATE_SPOT compute environments to the same job queue.

* */ inline void SetOperatingSystemFamily(Aws::String&& value) { m_operatingSystemFamilyHasBeenSet = true; m_operatingSystemFamily = std::move(value); } /** *

The operating system for the compute environment. Valid values are: * LINUX (default), WINDOWS_SERVER_2019_CORE, * WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, * and WINDOWS_SERVER_2022_FULL.

The following * parameters can’t be set for Windows containers: linuxParameters, * privileged, user, ulimits, * readonlyRootFilesystem, and * efsVolumeConfiguration.

The Batch Scheduler * checks before registering a task definition with Fargate. If the job requires a * Windows container and the first compute environment is LINUX, the * compute environment is skipped and the next is checked until a Windows-based * compute environment is found.

Fargate Spot is not * supported for Windows-based containers on Fargate. A job queue will be blocked * if a Fargate Windows job is submitted to a job queue with only Fargate Spot * compute environments. However, you can attach both FARGATE and * FARGATE_SPOT compute environments to the same job queue.

* */ inline void SetOperatingSystemFamily(const char* value) { m_operatingSystemFamilyHasBeenSet = true; m_operatingSystemFamily.assign(value); } /** *

The operating system for the compute environment. Valid values are: * LINUX (default), WINDOWS_SERVER_2019_CORE, * WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, * and WINDOWS_SERVER_2022_FULL.

The following * parameters can’t be set for Windows containers: linuxParameters, * privileged, user, ulimits, * readonlyRootFilesystem, and * efsVolumeConfiguration.

The Batch Scheduler * checks before registering a task definition with Fargate. If the job requires a * Windows container and the first compute environment is LINUX, the * compute environment is skipped and the next is checked until a Windows-based * compute environment is found.

Fargate Spot is not * supported for Windows-based containers on Fargate. A job queue will be blocked * if a Fargate Windows job is submitted to a job queue with only Fargate Spot * compute environments. However, you can attach both FARGATE and * FARGATE_SPOT compute environments to the same job queue.

* */ inline RuntimePlatform& WithOperatingSystemFamily(const Aws::String& value) { SetOperatingSystemFamily(value); return *this;} /** *

The operating system for the compute environment. Valid values are: * LINUX (default), WINDOWS_SERVER_2019_CORE, * WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, * and WINDOWS_SERVER_2022_FULL.

The following * parameters can’t be set for Windows containers: linuxParameters, * privileged, user, ulimits, * readonlyRootFilesystem, and * efsVolumeConfiguration.

The Batch Scheduler * checks before registering a task definition with Fargate. If the job requires a * Windows container and the first compute environment is LINUX, the * compute environment is skipped and the next is checked until a Windows-based * compute environment is found.

Fargate Spot is not * supported for Windows-based containers on Fargate. A job queue will be blocked * if a Fargate Windows job is submitted to a job queue with only Fargate Spot * compute environments. However, you can attach both FARGATE and * FARGATE_SPOT compute environments to the same job queue.

* */ inline RuntimePlatform& WithOperatingSystemFamily(Aws::String&& value) { SetOperatingSystemFamily(std::move(value)); return *this;} /** *

The operating system for the compute environment. Valid values are: * LINUX (default), WINDOWS_SERVER_2019_CORE, * WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, * and WINDOWS_SERVER_2022_FULL.

The following * parameters can’t be set for Windows containers: linuxParameters, * privileged, user, ulimits, * readonlyRootFilesystem, and * efsVolumeConfiguration.

The Batch Scheduler * checks before registering a task definition with Fargate. If the job requires a * Windows container and the first compute environment is LINUX, the * compute environment is skipped and the next is checked until a Windows-based * compute environment is found.

Fargate Spot is not * supported for Windows-based containers on Fargate. A job queue will be blocked * if a Fargate Windows job is submitted to a job queue with only Fargate Spot * compute environments. However, you can attach both FARGATE and * FARGATE_SPOT compute environments to the same job queue.

* */ inline RuntimePlatform& WithOperatingSystemFamily(const char* value) { SetOperatingSystemFamily(value); return *this;} /** *

The vCPU architecture. The default value is X86_64. Valid values * are X86_64 and ARM64.

This parameter * must be set to X86_64 for Windows containers.

*/ inline const Aws::String& GetCpuArchitecture() const{ return m_cpuArchitecture; } /** *

The vCPU architecture. The default value is X86_64. Valid values * are X86_64 and ARM64.

This parameter * must be set to X86_64 for Windows containers.

*/ inline bool CpuArchitectureHasBeenSet() const { return m_cpuArchitectureHasBeenSet; } /** *

The vCPU architecture. The default value is X86_64. Valid values * are X86_64 and ARM64.

This parameter * must be set to X86_64 for Windows containers.

*/ inline void SetCpuArchitecture(const Aws::String& value) { m_cpuArchitectureHasBeenSet = true; m_cpuArchitecture = value; } /** *

The vCPU architecture. The default value is X86_64. Valid values * are X86_64 and ARM64.

This parameter * must be set to X86_64 for Windows containers.

*/ inline void SetCpuArchitecture(Aws::String&& value) { m_cpuArchitectureHasBeenSet = true; m_cpuArchitecture = std::move(value); } /** *

The vCPU architecture. The default value is X86_64. Valid values * are X86_64 and ARM64.

This parameter * must be set to X86_64 for Windows containers.

*/ inline void SetCpuArchitecture(const char* value) { m_cpuArchitectureHasBeenSet = true; m_cpuArchitecture.assign(value); } /** *

The vCPU architecture. The default value is X86_64. Valid values * are X86_64 and ARM64.

This parameter * must be set to X86_64 for Windows containers.

*/ inline RuntimePlatform& WithCpuArchitecture(const Aws::String& value) { SetCpuArchitecture(value); return *this;} /** *

The vCPU architecture. The default value is X86_64. Valid values * are X86_64 and ARM64.

This parameter * must be set to X86_64 for Windows containers.

*/ inline RuntimePlatform& WithCpuArchitecture(Aws::String&& value) { SetCpuArchitecture(std::move(value)); return *this;} /** *

The vCPU architecture. The default value is X86_64. Valid values * are X86_64 and ARM64.

This parameter * must be set to X86_64 for Windows containers.

*/ inline RuntimePlatform& WithCpuArchitecture(const char* value) { SetCpuArchitecture(value); return *this;} private: Aws::String m_operatingSystemFamily; bool m_operatingSystemFamilyHasBeenSet = false; Aws::String m_cpuArchitecture; bool m_cpuArchitectureHasBeenSet = false; }; } // namespace Model } // namespace Batch } // namespace Aws