/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The attributes for the Amazon EC2 instance types. See Also:
* AWS
* API Reference
The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web * Services Inferentia chips) on an instance.
*/ inline const AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorCountDetails& GetAcceleratorCount() const{ return m_acceleratorCount; } /** *The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web * Services Inferentia chips) on an instance.
*/ inline bool AcceleratorCountHasBeenSet() const { return m_acceleratorCountHasBeenSet; } /** *The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web * Services Inferentia chips) on an instance.
*/ inline void SetAcceleratorCount(const AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorCountDetails& value) { m_acceleratorCountHasBeenSet = true; m_acceleratorCount = value; } /** *The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web * Services Inferentia chips) on an instance.
*/ inline void SetAcceleratorCount(AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorCountDetails&& value) { m_acceleratorCountHasBeenSet = true; m_acceleratorCount = std::move(value); } /** *The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web * Services Inferentia chips) on an instance.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithAcceleratorCount(const AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorCountDetails& value) { SetAcceleratorCount(value); return *this;} /** *The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web * Services Inferentia chips) on an instance.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithAcceleratorCount(AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorCountDetails&& value) { SetAcceleratorCount(std::move(value)); return *this;} /** *Indicates whether instance types must have accelerators by specific * manufacturers.
*/ inline const Aws::VectorIndicates whether instance types must have accelerators by specific * manufacturers.
*/ inline bool AcceleratorManufacturersHasBeenSet() const { return m_acceleratorManufacturersHasBeenSet; } /** *Indicates whether instance types must have accelerators by specific * manufacturers.
*/ inline void SetAcceleratorManufacturers(const Aws::VectorIndicates whether instance types must have accelerators by specific * manufacturers.
*/ inline void SetAcceleratorManufacturers(Aws::VectorIndicates whether instance types must have accelerators by specific * manufacturers.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithAcceleratorManufacturers(const Aws::VectorIndicates whether instance types must have accelerators by specific * manufacturers.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithAcceleratorManufacturers(Aws::VectorIndicates whether instance types must have accelerators by specific * manufacturers.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddAcceleratorManufacturers(const Aws::String& value) { m_acceleratorManufacturersHasBeenSet = true; m_acceleratorManufacturers.push_back(value); return *this; } /** *Indicates whether instance types must have accelerators by specific * manufacturers.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddAcceleratorManufacturers(Aws::String&& value) { m_acceleratorManufacturersHasBeenSet = true; m_acceleratorManufacturers.push_back(std::move(value)); return *this; } /** *Indicates whether instance types must have accelerators by specific * manufacturers.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddAcceleratorManufacturers(const char* value) { m_acceleratorManufacturersHasBeenSet = true; m_acceleratorManufacturers.push_back(value); return *this; } /** *The accelerators that must be on the instance type.
*/ inline const Aws::VectorThe accelerators that must be on the instance type.
*/ inline bool AcceleratorNamesHasBeenSet() const { return m_acceleratorNamesHasBeenSet; } /** *The accelerators that must be on the instance type.
*/ inline void SetAcceleratorNames(const Aws::VectorThe accelerators that must be on the instance type.
*/ inline void SetAcceleratorNames(Aws::VectorThe accelerators that must be on the instance type.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithAcceleratorNames(const Aws::VectorThe accelerators that must be on the instance type.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithAcceleratorNames(Aws::VectorThe accelerators that must be on the instance type.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddAcceleratorNames(const Aws::String& value) { m_acceleratorNamesHasBeenSet = true; m_acceleratorNames.push_back(value); return *this; } /** *The accelerators that must be on the instance type.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddAcceleratorNames(Aws::String&& value) { m_acceleratorNamesHasBeenSet = true; m_acceleratorNames.push_back(std::move(value)); return *this; } /** *The accelerators that must be on the instance type.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddAcceleratorNames(const char* value) { m_acceleratorNamesHasBeenSet = true; m_acceleratorNames.push_back(value); return *this; } /** *The minimum and maximum amount of total accelerator memory, in MiB.
*/ inline const AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorTotalMemoryMiBDetails& GetAcceleratorTotalMemoryMiB() const{ return m_acceleratorTotalMemoryMiB; } /** *The minimum and maximum amount of total accelerator memory, in MiB.
*/ inline bool AcceleratorTotalMemoryMiBHasBeenSet() const { return m_acceleratorTotalMemoryMiBHasBeenSet; } /** *The minimum and maximum amount of total accelerator memory, in MiB.
*/ inline void SetAcceleratorTotalMemoryMiB(const AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorTotalMemoryMiBDetails& value) { m_acceleratorTotalMemoryMiBHasBeenSet = true; m_acceleratorTotalMemoryMiB = value; } /** *The minimum and maximum amount of total accelerator memory, in MiB.
*/ inline void SetAcceleratorTotalMemoryMiB(AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorTotalMemoryMiBDetails&& value) { m_acceleratorTotalMemoryMiBHasBeenSet = true; m_acceleratorTotalMemoryMiB = std::move(value); } /** *The minimum and maximum amount of total accelerator memory, in MiB.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithAcceleratorTotalMemoryMiB(const AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorTotalMemoryMiBDetails& value) { SetAcceleratorTotalMemoryMiB(value); return *this;} /** *The minimum and maximum amount of total accelerator memory, in MiB.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithAcceleratorTotalMemoryMiB(AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorTotalMemoryMiBDetails&& value) { SetAcceleratorTotalMemoryMiB(std::move(value)); return *this;} /** *The accelerator types that must be on the instance type.
*/ inline const Aws::VectorThe accelerator types that must be on the instance type.
*/ inline bool AcceleratorTypesHasBeenSet() const { return m_acceleratorTypesHasBeenSet; } /** *The accelerator types that must be on the instance type.
*/ inline void SetAcceleratorTypes(const Aws::VectorThe accelerator types that must be on the instance type.
*/ inline void SetAcceleratorTypes(Aws::VectorThe accelerator types that must be on the instance type.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithAcceleratorTypes(const Aws::VectorThe accelerator types that must be on the instance type.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithAcceleratorTypes(Aws::VectorThe accelerator types that must be on the instance type.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddAcceleratorTypes(const Aws::String& value) { m_acceleratorTypesHasBeenSet = true; m_acceleratorTypes.push_back(value); return *this; } /** *The accelerator types that must be on the instance type.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddAcceleratorTypes(Aws::String&& value) { m_acceleratorTypesHasBeenSet = true; m_acceleratorTypes.push_back(std::move(value)); return *this; } /** *The accelerator types that must be on the instance type.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddAcceleratorTypes(const char* value) { m_acceleratorTypesHasBeenSet = true; m_acceleratorTypes.push_back(value); return *this; } /** *Indicates whether bare metal instance types must be included, excluded, or * required.
*/ inline const Aws::String& GetBareMetal() const{ return m_bareMetal; } /** *Indicates whether bare metal instance types must be included, excluded, or * required.
*/ inline bool BareMetalHasBeenSet() const { return m_bareMetalHasBeenSet; } /** *Indicates whether bare metal instance types must be included, excluded, or * required.
*/ inline void SetBareMetal(const Aws::String& value) { m_bareMetalHasBeenSet = true; m_bareMetal = value; } /** *Indicates whether bare metal instance types must be included, excluded, or * required.
*/ inline void SetBareMetal(Aws::String&& value) { m_bareMetalHasBeenSet = true; m_bareMetal = std::move(value); } /** *Indicates whether bare metal instance types must be included, excluded, or * required.
*/ inline void SetBareMetal(const char* value) { m_bareMetalHasBeenSet = true; m_bareMetal.assign(value); } /** *Indicates whether bare metal instance types must be included, excluded, or * required.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithBareMetal(const Aws::String& value) { SetBareMetal(value); return *this;} /** *Indicates whether bare metal instance types must be included, excluded, or * required.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithBareMetal(Aws::String&& value) { SetBareMetal(std::move(value)); return *this;} /** *Indicates whether bare metal instance types must be included, excluded, or * required.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithBareMetal(const char* value) { SetBareMetal(value); return *this;} /** *The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more * information, see Amazon * EBS optimized instances in the Amazon EC2 User Guide.
*/ inline const AwsEc2LaunchTemplateDataInstanceRequirementsBaselineEbsBandwidthMbpsDetails& GetBaselineEbsBandwidthMbps() const{ return m_baselineEbsBandwidthMbps; } /** *The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more * information, see Amazon * EBS optimized instances in the Amazon EC2 User Guide.
*/ inline bool BaselineEbsBandwidthMbpsHasBeenSet() const { return m_baselineEbsBandwidthMbpsHasBeenSet; } /** *The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more * information, see Amazon * EBS optimized instances in the Amazon EC2 User Guide.
*/ inline void SetBaselineEbsBandwidthMbps(const AwsEc2LaunchTemplateDataInstanceRequirementsBaselineEbsBandwidthMbpsDetails& value) { m_baselineEbsBandwidthMbpsHasBeenSet = true; m_baselineEbsBandwidthMbps = value; } /** *The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more * information, see Amazon * EBS optimized instances in the Amazon EC2 User Guide.
*/ inline void SetBaselineEbsBandwidthMbps(AwsEc2LaunchTemplateDataInstanceRequirementsBaselineEbsBandwidthMbpsDetails&& value) { m_baselineEbsBandwidthMbpsHasBeenSet = true; m_baselineEbsBandwidthMbps = std::move(value); } /** *The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more * information, see Amazon * EBS optimized instances in the Amazon EC2 User Guide.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithBaselineEbsBandwidthMbps(const AwsEc2LaunchTemplateDataInstanceRequirementsBaselineEbsBandwidthMbpsDetails& value) { SetBaselineEbsBandwidthMbps(value); return *this;} /** *The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more * information, see Amazon * EBS optimized instances in the Amazon EC2 User Guide.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithBaselineEbsBandwidthMbps(AwsEc2LaunchTemplateDataInstanceRequirementsBaselineEbsBandwidthMbpsDetails&& value) { SetBaselineEbsBandwidthMbps(std::move(value)); return *this;} /** *Indicates whether burstable performance T instance types are included, * excluded, or required. For more information, Burstable * performance instances in the Amazon EC2 User Guide.
*/ inline const Aws::String& GetBurstablePerformance() const{ return m_burstablePerformance; } /** *Indicates whether burstable performance T instance types are included, * excluded, or required. For more information, Burstable * performance instances in the Amazon EC2 User Guide.
*/ inline bool BurstablePerformanceHasBeenSet() const { return m_burstablePerformanceHasBeenSet; } /** *Indicates whether burstable performance T instance types are included, * excluded, or required. For more information, Burstable * performance instances in the Amazon EC2 User Guide.
*/ inline void SetBurstablePerformance(const Aws::String& value) { m_burstablePerformanceHasBeenSet = true; m_burstablePerformance = value; } /** *Indicates whether burstable performance T instance types are included, * excluded, or required. For more information, Burstable * performance instances in the Amazon EC2 User Guide.
*/ inline void SetBurstablePerformance(Aws::String&& value) { m_burstablePerformanceHasBeenSet = true; m_burstablePerformance = std::move(value); } /** *Indicates whether burstable performance T instance types are included, * excluded, or required. For more information, Burstable * performance instances in the Amazon EC2 User Guide.
*/ inline void SetBurstablePerformance(const char* value) { m_burstablePerformanceHasBeenSet = true; m_burstablePerformance.assign(value); } /** *Indicates whether burstable performance T instance types are included, * excluded, or required. For more information, Burstable * performance instances in the Amazon EC2 User Guide.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithBurstablePerformance(const Aws::String& value) { SetBurstablePerformance(value); return *this;} /** *Indicates whether burstable performance T instance types are included, * excluded, or required. For more information, Burstable * performance instances in the Amazon EC2 User Guide.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithBurstablePerformance(Aws::String&& value) { SetBurstablePerformance(std::move(value)); return *this;} /** *Indicates whether burstable performance T instance types are included, * excluded, or required. For more information, Burstable * performance instances in the Amazon EC2 User Guide.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithBurstablePerformance(const char* value) { SetBurstablePerformance(value); return *this;} /** *The CPU manufacturers to include.
*/ inline const Aws::VectorThe CPU manufacturers to include.
*/ inline bool CpuManufacturersHasBeenSet() const { return m_cpuManufacturersHasBeenSet; } /** *The CPU manufacturers to include.
*/ inline void SetCpuManufacturers(const Aws::VectorThe CPU manufacturers to include.
*/ inline void SetCpuManufacturers(Aws::VectorThe CPU manufacturers to include.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithCpuManufacturers(const Aws::VectorThe CPU manufacturers to include.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithCpuManufacturers(Aws::VectorThe CPU manufacturers to include.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddCpuManufacturers(const Aws::String& value) { m_cpuManufacturersHasBeenSet = true; m_cpuManufacturers.push_back(value); return *this; } /** *The CPU manufacturers to include.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddCpuManufacturers(Aws::String&& value) { m_cpuManufacturersHasBeenSet = true; m_cpuManufacturers.push_back(std::move(value)); return *this; } /** *The CPU manufacturers to include.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddCpuManufacturers(const char* value) { m_cpuManufacturersHasBeenSet = true; m_cpuManufacturers.push_back(value); return *this; } /** *The instance types to exclude.
*/ inline const Aws::VectorThe instance types to exclude.
*/ inline bool ExcludedInstanceTypesHasBeenSet() const { return m_excludedInstanceTypesHasBeenSet; } /** *The instance types to exclude.
*/ inline void SetExcludedInstanceTypes(const Aws::VectorThe instance types to exclude.
*/ inline void SetExcludedInstanceTypes(Aws::VectorThe instance types to exclude.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithExcludedInstanceTypes(const Aws::VectorThe instance types to exclude.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithExcludedInstanceTypes(Aws::VectorThe instance types to exclude.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddExcludedInstanceTypes(const Aws::String& value) { m_excludedInstanceTypesHasBeenSet = true; m_excludedInstanceTypes.push_back(value); return *this; } /** *The instance types to exclude.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddExcludedInstanceTypes(Aws::String&& value) { m_excludedInstanceTypesHasBeenSet = true; m_excludedInstanceTypes.push_back(std::move(value)); return *this; } /** *The instance types to exclude.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddExcludedInstanceTypes(const char* value) { m_excludedInstanceTypesHasBeenSet = true; m_excludedInstanceTypes.push_back(value); return *this; } /** *Indicates whether current or previous generation instance types are * included.
*/ inline const Aws::VectorIndicates whether current or previous generation instance types are * included.
*/ inline bool InstanceGenerationsHasBeenSet() const { return m_instanceGenerationsHasBeenSet; } /** *Indicates whether current or previous generation instance types are * included.
*/ inline void SetInstanceGenerations(const Aws::VectorIndicates whether current or previous generation instance types are * included.
*/ inline void SetInstanceGenerations(Aws::VectorIndicates whether current or previous generation instance types are * included.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithInstanceGenerations(const Aws::VectorIndicates whether current or previous generation instance types are * included.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithInstanceGenerations(Aws::VectorIndicates whether current or previous generation instance types are * included.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddInstanceGenerations(const Aws::String& value) { m_instanceGenerationsHasBeenSet = true; m_instanceGenerations.push_back(value); return *this; } /** *Indicates whether current or previous generation instance types are * included.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddInstanceGenerations(Aws::String&& value) { m_instanceGenerationsHasBeenSet = true; m_instanceGenerations.push_back(std::move(value)); return *this; } /** *Indicates whether current or previous generation instance types are * included.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddInstanceGenerations(const char* value) { m_instanceGenerationsHasBeenSet = true; m_instanceGenerations.push_back(value); return *this; } /** *Indicates whether instance types with instance store volumes are included, * excluded, or required. For more information, see Amazon * EC2 instance store in the Amazon EC2 User Guide.
*/ inline const Aws::String& GetLocalStorage() const{ return m_localStorage; } /** *Indicates whether instance types with instance store volumes are included, * excluded, or required. For more information, see Amazon * EC2 instance store in the Amazon EC2 User Guide.
*/ inline bool LocalStorageHasBeenSet() const { return m_localStorageHasBeenSet; } /** *Indicates whether instance types with instance store volumes are included, * excluded, or required. For more information, see Amazon * EC2 instance store in the Amazon EC2 User Guide.
*/ inline void SetLocalStorage(const Aws::String& value) { m_localStorageHasBeenSet = true; m_localStorage = value; } /** *Indicates whether instance types with instance store volumes are included, * excluded, or required. For more information, see Amazon * EC2 instance store in the Amazon EC2 User Guide.
*/ inline void SetLocalStorage(Aws::String&& value) { m_localStorageHasBeenSet = true; m_localStorage = std::move(value); } /** *Indicates whether instance types with instance store volumes are included, * excluded, or required. For more information, see Amazon * EC2 instance store in the Amazon EC2 User Guide.
*/ inline void SetLocalStorage(const char* value) { m_localStorageHasBeenSet = true; m_localStorage.assign(value); } /** *Indicates whether instance types with instance store volumes are included, * excluded, or required. For more information, see Amazon * EC2 instance store in the Amazon EC2 User Guide.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithLocalStorage(const Aws::String& value) { SetLocalStorage(value); return *this;} /** *Indicates whether instance types with instance store volumes are included, * excluded, or required. For more information, see Amazon * EC2 instance store in the Amazon EC2 User Guide.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithLocalStorage(Aws::String&& value) { SetLocalStorage(std::move(value)); return *this;} /** *Indicates whether instance types with instance store volumes are included, * excluded, or required. For more information, see Amazon * EC2 instance store in the Amazon EC2 User Guide.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithLocalStorage(const char* value) { SetLocalStorage(value); return *this;} /** *The type of local storage that is required.
*/ inline const Aws::VectorThe type of local storage that is required.
*/ inline bool LocalStorageTypesHasBeenSet() const { return m_localStorageTypesHasBeenSet; } /** *The type of local storage that is required.
*/ inline void SetLocalStorageTypes(const Aws::VectorThe type of local storage that is required.
*/ inline void SetLocalStorageTypes(Aws::VectorThe type of local storage that is required.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithLocalStorageTypes(const Aws::VectorThe type of local storage that is required.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithLocalStorageTypes(Aws::VectorThe type of local storage that is required.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddLocalStorageTypes(const Aws::String& value) { m_localStorageTypesHasBeenSet = true; m_localStorageTypes.push_back(value); return *this; } /** *The type of local storage that is required.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddLocalStorageTypes(Aws::String&& value) { m_localStorageTypesHasBeenSet = true; m_localStorageTypes.push_back(std::move(value)); return *this; } /** *The type of local storage that is required.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& AddLocalStorageTypes(const char* value) { m_localStorageTypesHasBeenSet = true; m_localStorageTypes.push_back(value); return *this; } /** *The minimum and maximum amount of memory per vCPU, in GiB.
*/ inline const AwsEc2LaunchTemplateDataInstanceRequirementsMemoryGiBPerVCpuDetails& GetMemoryGiBPerVCpu() const{ return m_memoryGiBPerVCpu; } /** *The minimum and maximum amount of memory per vCPU, in GiB.
*/ inline bool MemoryGiBPerVCpuHasBeenSet() const { return m_memoryGiBPerVCpuHasBeenSet; } /** *The minimum and maximum amount of memory per vCPU, in GiB.
*/ inline void SetMemoryGiBPerVCpu(const AwsEc2LaunchTemplateDataInstanceRequirementsMemoryGiBPerVCpuDetails& value) { m_memoryGiBPerVCpuHasBeenSet = true; m_memoryGiBPerVCpu = value; } /** *The minimum and maximum amount of memory per vCPU, in GiB.
*/ inline void SetMemoryGiBPerVCpu(AwsEc2LaunchTemplateDataInstanceRequirementsMemoryGiBPerVCpuDetails&& value) { m_memoryGiBPerVCpuHasBeenSet = true; m_memoryGiBPerVCpu = std::move(value); } /** *The minimum and maximum amount of memory per vCPU, in GiB.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithMemoryGiBPerVCpu(const AwsEc2LaunchTemplateDataInstanceRequirementsMemoryGiBPerVCpuDetails& value) { SetMemoryGiBPerVCpu(value); return *this;} /** *The minimum and maximum amount of memory per vCPU, in GiB.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithMemoryGiBPerVCpu(AwsEc2LaunchTemplateDataInstanceRequirementsMemoryGiBPerVCpuDetails&& value) { SetMemoryGiBPerVCpu(std::move(value)); return *this;} /** *The minimum and maximum amount of memory, in MiB.
*/ inline const AwsEc2LaunchTemplateDataInstanceRequirementsMemoryMiBDetails& GetMemoryMiB() const{ return m_memoryMiB; } /** *The minimum and maximum amount of memory, in MiB.
*/ inline bool MemoryMiBHasBeenSet() const { return m_memoryMiBHasBeenSet; } /** *The minimum and maximum amount of memory, in MiB.
*/ inline void SetMemoryMiB(const AwsEc2LaunchTemplateDataInstanceRequirementsMemoryMiBDetails& value) { m_memoryMiBHasBeenSet = true; m_memoryMiB = value; } /** *The minimum and maximum amount of memory, in MiB.
*/ inline void SetMemoryMiB(AwsEc2LaunchTemplateDataInstanceRequirementsMemoryMiBDetails&& value) { m_memoryMiBHasBeenSet = true; m_memoryMiB = std::move(value); } /** *The minimum and maximum amount of memory, in MiB.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithMemoryMiB(const AwsEc2LaunchTemplateDataInstanceRequirementsMemoryMiBDetails& value) { SetMemoryMiB(value); return *this;} /** *The minimum and maximum amount of memory, in MiB.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithMemoryMiB(AwsEc2LaunchTemplateDataInstanceRequirementsMemoryMiBDetails&& value) { SetMemoryMiB(std::move(value)); return *this;} /** *The minimum and maximum number of network interfaces.
*/ inline const AwsEc2LaunchTemplateDataInstanceRequirementsNetworkInterfaceCountDetails& GetNetworkInterfaceCount() const{ return m_networkInterfaceCount; } /** *The minimum and maximum number of network interfaces.
*/ inline bool NetworkInterfaceCountHasBeenSet() const { return m_networkInterfaceCountHasBeenSet; } /** *The minimum and maximum number of network interfaces.
*/ inline void SetNetworkInterfaceCount(const AwsEc2LaunchTemplateDataInstanceRequirementsNetworkInterfaceCountDetails& value) { m_networkInterfaceCountHasBeenSet = true; m_networkInterfaceCount = value; } /** *The minimum and maximum number of network interfaces.
*/ inline void SetNetworkInterfaceCount(AwsEc2LaunchTemplateDataInstanceRequirementsNetworkInterfaceCountDetails&& value) { m_networkInterfaceCountHasBeenSet = true; m_networkInterfaceCount = std::move(value); } /** *The minimum and maximum number of network interfaces.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithNetworkInterfaceCount(const AwsEc2LaunchTemplateDataInstanceRequirementsNetworkInterfaceCountDetails& value) { SetNetworkInterfaceCount(value); return *this;} /** *The minimum and maximum number of network interfaces.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithNetworkInterfaceCount(AwsEc2LaunchTemplateDataInstanceRequirementsNetworkInterfaceCountDetails&& value) { SetNetworkInterfaceCount(std::move(value)); return *this;} /** *The price protection threshold for On-Demand Instances. This is the maximum * you'll pay for an On-Demand Instance, expressed as a percentage above the least * expensive current generation M, C, or R instance type with your specified * attributes. When Amazon EC2 selects instance types with your attributes, it * excludes instance types priced above your threshold.
The parameter * accepts an integer, which Amazon EC2 interprets as a percentage.
A high
* value, such as 999999
, turns off price protection.
The price protection threshold for On-Demand Instances. This is the maximum * you'll pay for an On-Demand Instance, expressed as a percentage above the least * expensive current generation M, C, or R instance type with your specified * attributes. When Amazon EC2 selects instance types with your attributes, it * excludes instance types priced above your threshold.
The parameter * accepts an integer, which Amazon EC2 interprets as a percentage.
A high
* value, such as 999999
, turns off price protection.
The price protection threshold for On-Demand Instances. This is the maximum * you'll pay for an On-Demand Instance, expressed as a percentage above the least * expensive current generation M, C, or R instance type with your specified * attributes. When Amazon EC2 selects instance types with your attributes, it * excludes instance types priced above your threshold.
The parameter * accepts an integer, which Amazon EC2 interprets as a percentage.
A high
* value, such as 999999
, turns off price protection.
The price protection threshold for On-Demand Instances. This is the maximum * you'll pay for an On-Demand Instance, expressed as a percentage above the least * expensive current generation M, C, or R instance type with your specified * attributes. When Amazon EC2 selects instance types with your attributes, it * excludes instance types priced above your threshold.
The parameter * accepts an integer, which Amazon EC2 interprets as a percentage.
A high
* value, such as 999999
, turns off price protection.
Indicates whether instance types must support hibernation for On-Demand * Instances.
*/ inline bool GetRequireHibernateSupport() const{ return m_requireHibernateSupport; } /** *Indicates whether instance types must support hibernation for On-Demand * Instances.
*/ inline bool RequireHibernateSupportHasBeenSet() const { return m_requireHibernateSupportHasBeenSet; } /** *Indicates whether instance types must support hibernation for On-Demand * Instances.
*/ inline void SetRequireHibernateSupport(bool value) { m_requireHibernateSupportHasBeenSet = true; m_requireHibernateSupport = value; } /** *Indicates whether instance types must support hibernation for On-Demand * Instances.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithRequireHibernateSupport(bool value) { SetRequireHibernateSupport(value); return *this;} /** *The price protection threshold for Spot Instances. This is the maximum * you'll pay for a Spot Instance, expressed as a percentage above the least * expensive current generation M, C, or R instance type with your specified * attributes. When Amazon EC2 selects instance types with your attributes, it * excludes instance types priced above your threshold.
The parameter * accepts an integer, which Amazon EC2 interprets as a percentage.
A high
* value, such as 999999
, turns off price protection.
The price protection threshold for Spot Instances. This is the maximum * you'll pay for a Spot Instance, expressed as a percentage above the least * expensive current generation M, C, or R instance type with your specified * attributes. When Amazon EC2 selects instance types with your attributes, it * excludes instance types priced above your threshold.
The parameter * accepts an integer, which Amazon EC2 interprets as a percentage.
A high
* value, such as 999999
, turns off price protection.
The price protection threshold for Spot Instances. This is the maximum * you'll pay for a Spot Instance, expressed as a percentage above the least * expensive current generation M, C, or R instance type with your specified * attributes. When Amazon EC2 selects instance types with your attributes, it * excludes instance types priced above your threshold.
The parameter * accepts an integer, which Amazon EC2 interprets as a percentage.
A high
* value, such as 999999
, turns off price protection.
The price protection threshold for Spot Instances. This is the maximum * you'll pay for a Spot Instance, expressed as a percentage above the least * expensive current generation M, C, or R instance type with your specified * attributes. When Amazon EC2 selects instance types with your attributes, it * excludes instance types priced above your threshold.
The parameter * accepts an integer, which Amazon EC2 interprets as a percentage.
A high
* value, such as 999999
, turns off price protection.
The minimum and maximum amount of total local storage, in GB.
*/ inline const AwsEc2LaunchTemplateDataInstanceRequirementsTotalLocalStorageGBDetails& GetTotalLocalStorageGB() const{ return m_totalLocalStorageGB; } /** *The minimum and maximum amount of total local storage, in GB.
*/ inline bool TotalLocalStorageGBHasBeenSet() const { return m_totalLocalStorageGBHasBeenSet; } /** *The minimum and maximum amount of total local storage, in GB.
*/ inline void SetTotalLocalStorageGB(const AwsEc2LaunchTemplateDataInstanceRequirementsTotalLocalStorageGBDetails& value) { m_totalLocalStorageGBHasBeenSet = true; m_totalLocalStorageGB = value; } /** *The minimum and maximum amount of total local storage, in GB.
*/ inline void SetTotalLocalStorageGB(AwsEc2LaunchTemplateDataInstanceRequirementsTotalLocalStorageGBDetails&& value) { m_totalLocalStorageGBHasBeenSet = true; m_totalLocalStorageGB = std::move(value); } /** *The minimum and maximum amount of total local storage, in GB.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithTotalLocalStorageGB(const AwsEc2LaunchTemplateDataInstanceRequirementsTotalLocalStorageGBDetails& value) { SetTotalLocalStorageGB(value); return *this;} /** *The minimum and maximum amount of total local storage, in GB.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithTotalLocalStorageGB(AwsEc2LaunchTemplateDataInstanceRequirementsTotalLocalStorageGBDetails&& value) { SetTotalLocalStorageGB(std::move(value)); return *this;} /** *The minimum and maximum number of vCPUs.
*/ inline const AwsEc2LaunchTemplateDataInstanceRequirementsVCpuCountDetails& GetVCpuCount() const{ return m_vCpuCount; } /** *The minimum and maximum number of vCPUs.
*/ inline bool VCpuCountHasBeenSet() const { return m_vCpuCountHasBeenSet; } /** *The minimum and maximum number of vCPUs.
*/ inline void SetVCpuCount(const AwsEc2LaunchTemplateDataInstanceRequirementsVCpuCountDetails& value) { m_vCpuCountHasBeenSet = true; m_vCpuCount = value; } /** *The minimum and maximum number of vCPUs.
*/ inline void SetVCpuCount(AwsEc2LaunchTemplateDataInstanceRequirementsVCpuCountDetails&& value) { m_vCpuCountHasBeenSet = true; m_vCpuCount = std::move(value); } /** *The minimum and maximum number of vCPUs.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithVCpuCount(const AwsEc2LaunchTemplateDataInstanceRequirementsVCpuCountDetails& value) { SetVCpuCount(value); return *this;} /** *The minimum and maximum number of vCPUs.
*/ inline AwsEc2LaunchTemplateDataInstanceRequirementsDetails& WithVCpuCount(AwsEc2LaunchTemplateDataInstanceRequirementsVCpuCountDetails&& value) { SetVCpuCount(std::move(value)); return *this;} private: AwsEc2LaunchTemplateDataInstanceRequirementsAcceleratorCountDetails m_acceleratorCount; bool m_acceleratorCountHasBeenSet = false; Aws::Vector