7#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
8#include <aws/core/utils/memory/stl/AWSString.h>
9#include <aws/core/utils/memory/stl/AWSVector.h>
10#include <aws/ec2/EC2_EXPORTS.h>
11#include <aws/ec2/model/AcceleratorCount.h>
12#include <aws/ec2/model/AcceleratorManufacturer.h>
13#include <aws/ec2/model/AcceleratorName.h>
14#include <aws/ec2/model/AcceleratorTotalMemoryMiB.h>
15#include <aws/ec2/model/AcceleratorType.h>
16#include <aws/ec2/model/BareMetal.h>
17#include <aws/ec2/model/BaselineEbsBandwidthMbps.h>
18#include <aws/ec2/model/BaselinePerformanceFactors.h>
19#include <aws/ec2/model/BurstablePerformance.h>
20#include <aws/ec2/model/CpuManufacturer.h>
21#include <aws/ec2/model/InstanceGeneration.h>
22#include <aws/ec2/model/LocalStorage.h>
23#include <aws/ec2/model/LocalStorageType.h>
24#include <aws/ec2/model/MemoryGiBPerVCpu.h>
25#include <aws/ec2/model/MemoryMiB.h>
26#include <aws/ec2/model/NetworkBandwidthGbps.h>
27#include <aws/ec2/model/NetworkInterfaceCount.h>
28#include <aws/ec2/model/TotalLocalStorageGB.h>
29#include <aws/ec2/model/VCpuCountRange.h>
92 template <
typename VCpuCountT = VCpuCountRange>
94 m_vCpuCountHasBeenSet =
true;
95 m_vCpuCount = std::forward<VCpuCountT>(value);
97 template <
typename VCpuCountT = VCpuCountRange>
110 template <
typename MemoryMiBT = MemoryMiB>
112 m_memoryMiBHasBeenSet =
true;
113 m_memoryMiB = std::forward<MemoryMiBT>(value);
115 template <
typename MemoryMiBT = MemoryMiB>
136 template <
typename CpuManufacturersT = Aws::Vector<CpuManufacturer>>
138 m_cpuManufacturersHasBeenSet =
true;
139 m_cpuManufacturers = std::forward<CpuManufacturersT>(value);
141 template <
typename CpuManufacturersT = Aws::Vector<CpuManufacturer>>
147 m_cpuManufacturersHasBeenSet =
true;
148 m_cpuManufacturers.push_back(value);
160 template <
typename MemoryGiBPerVCpuT = MemoryGiBPerVCpu>
162 m_memoryGiBPerVCpuHasBeenSet =
true;
163 m_memoryGiBPerVCpu = std::forward<MemoryGiBPerVCpuT>(value);
165 template <
typename MemoryGiBPerVCpuT = MemoryGiBPerVCpu>
188 template <
typename ExcludedInstanceTypesT = Aws::Vector<Aws::String>>
190 m_excludedInstanceTypesHasBeenSet =
true;
191 m_excludedInstanceTypes = std::forward<ExcludedInstanceTypesT>(value);
193 template <
typename ExcludedInstanceTypesT = Aws::Vector<Aws::String>>
198 template <
typename ExcludedInstanceTypesT = Aws::String>
200 m_excludedInstanceTypesHasBeenSet =
true;
201 m_excludedInstanceTypes.emplace_back(std::forward<ExcludedInstanceTypesT>(value));
220 template <
typename InstanceGenerationsT = Aws::Vector<InstanceGeneration>>
222 m_instanceGenerationsHasBeenSet =
true;
223 m_instanceGenerations = std::forward<InstanceGenerationsT>(value);
225 template <
typename InstanceGenerationsT = Aws::Vector<InstanceGeneration>>
231 m_instanceGenerationsHasBeenSet =
true;
232 m_instanceGenerations.push_back(value);
268 m_spotMaxPricePercentageOverLowestPriceHasBeenSet =
true;
269 m_spotMaxPricePercentageOverLowestPrice = value;
299 m_onDemandMaxPricePercentageOverLowestPriceHasBeenSet =
true;
300 m_onDemandMaxPricePercentageOverLowestPrice = value;
320 m_bareMetalHasBeenSet =
true;
343 m_burstablePerformanceHasBeenSet =
true;
344 m_burstablePerformance = value;
362 m_requireHibernateSupportHasBeenSet =
true;
363 m_requireHibernateSupport = value;
378 template <
typename NetworkInterfaceCountT = NetworkInterfaceCount>
380 m_networkInterfaceCountHasBeenSet =
true;
381 m_networkInterfaceCount = std::forward<NetworkInterfaceCountT>(value);
383 template <
typename NetworkInterfaceCountT = NetworkInterfaceCount>
405 m_localStorageHasBeenSet =
true;
406 m_localStorage = value;
424 template <
typename LocalStorageTypesT = Aws::Vector<LocalStorageType>>
426 m_localStorageTypesHasBeenSet =
true;
427 m_localStorageTypes = std::forward<LocalStorageTypesT>(value);
429 template <
typename LocalStorageTypesT = Aws::Vector<LocalStorageType>>
435 m_localStorageTypesHasBeenSet =
true;
436 m_localStorageTypes.push_back(value);
448 template <
typename TotalLocalStorageGBT = TotalLocalStorageGB>
450 m_totalLocalStorageGBHasBeenSet =
true;
451 m_totalLocalStorageGB = std::forward<TotalLocalStorageGBT>(value);
453 template <
typename TotalLocalStorageGBT = TotalLocalStorageGB>
470 template <
typename BaselineEbsBandw
idthMbpsT = BaselineEbsBandw
idthMbps>
472 m_baselineEbsBandwidthMbpsHasBeenSet =
true;
473 m_baselineEbsBandwidthMbps = std::forward<BaselineEbsBandwidthMbpsT>(value);
475 template <
typename BaselineEbsBandw
idthMbpsT = BaselineEbsBandw
idthMbps>
494 template <
typename AcceleratorTypesT = Aws::Vector<AcceleratorType>>
496 m_acceleratorTypesHasBeenSet =
true;
497 m_acceleratorTypes = std::forward<AcceleratorTypesT>(value);
499 template <
typename AcceleratorTypesT = Aws::Vector<AcceleratorType>>
505 m_acceleratorTypesHasBeenSet =
true;
506 m_acceleratorTypes.push_back(value);
520 template <
typename AcceleratorCountT = AcceleratorCount>
522 m_acceleratorCountHasBeenSet =
true;
523 m_acceleratorCount = std::forward<AcceleratorCountT>(value);
525 template <
typename AcceleratorCountT = AcceleratorCount>
545 template <
typename AcceleratorManufacturersT = Aws::Vector<AcceleratorManufacturer>>
547 m_acceleratorManufacturersHasBeenSet =
true;
548 m_acceleratorManufacturers = std::forward<AcceleratorManufacturersT>(value);
550 template <
typename AcceleratorManufacturersT = Aws::Vector<AcceleratorManufacturer>>
556 m_acceleratorManufacturersHasBeenSet =
true;
557 m_acceleratorManufacturers.push_back(value);
592 template <
typename AcceleratorNamesT = Aws::Vector<AcceleratorName>>
594 m_acceleratorNamesHasBeenSet =
true;
595 m_acceleratorNames = std::forward<AcceleratorNamesT>(value);
597 template <
typename AcceleratorNamesT = Aws::Vector<AcceleratorName>>
603 m_acceleratorNamesHasBeenSet =
true;
604 m_acceleratorNames.push_back(value);
616 template <
typename AcceleratorTotalMemoryMiBT = AcceleratorTotalMemoryMiB>
618 m_acceleratorTotalMemoryMiBHasBeenSet =
true;
619 m_acceleratorTotalMemoryMiB = std::forward<AcceleratorTotalMemoryMiBT>(value);
621 template <
typename AcceleratorTotalMemoryMiBT = AcceleratorTotalMemoryMiB>
635 template <
typename NetworkBandw
idthGbpsT = NetworkBandw
idthGbps>
637 m_networkBandwidthGbpsHasBeenSet =
true;
638 m_networkBandwidthGbps = std::forward<NetworkBandwidthGbpsT>(value);
640 template <
typename NetworkBandw
idthGbpsT = NetworkBandw
idthGbps>
664 template <
typename AllowedInstanceTypesT = Aws::Vector<Aws::String>>
666 m_allowedInstanceTypesHasBeenSet =
true;
667 m_allowedInstanceTypes = std::forward<AllowedInstanceTypesT>(value);
669 template <
typename AllowedInstanceTypesT = Aws::Vector<Aws::String>>
674 template <
typename AllowedInstanceTypesT = Aws::String>
676 m_allowedInstanceTypesHasBeenSet =
true;
677 m_allowedInstanceTypes.emplace_back(std::forward<AllowedInstanceTypesT>(value));
707 return m_maxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet;
710 m_maxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet =
true;
711 m_maxSpotPriceAsPercentageOfOptimalOnDemandPrice = value;
732 template <
typename BaselinePerformanceFactorsT = BaselinePerformanceFactors>
734 m_baselinePerformanceFactorsHasBeenSet =
true;
735 m_baselinePerformanceFactors = std::forward<BaselinePerformanceFactorsT>(value);
737 template <
typename BaselinePerformanceFactorsT = BaselinePerformanceFactors>
756 m_requireEncryptionInTransitHasBeenSet =
true;
757 m_requireEncryptionInTransit = value;
777 int m_spotMaxPricePercentageOverLowestPrice{0};
779 int m_onDemandMaxPricePercentageOverLowestPrice{0};
785 bool m_requireHibernateSupport{
false};
787 NetworkInterfaceCount m_networkInterfaceCount;
793 TotalLocalStorageGB m_totalLocalStorageGB;
795 BaselineEbsBandwidthMbps m_baselineEbsBandwidthMbps;
799 AcceleratorCount m_acceleratorCount;
805 AcceleratorTotalMemoryMiB m_acceleratorTotalMemoryMiB;
807 NetworkBandwidthGbps m_networkBandwidthGbps;
811 int m_maxSpotPriceAsPercentageOfOptimalOnDemandPrice{0};
813 BaselinePerformanceFactors m_baselinePerformanceFactors;
815 bool m_requireEncryptionInTransit{
false};
816 bool m_vCpuCountHasBeenSet =
false;
817 bool m_memoryMiBHasBeenSet =
false;
818 bool m_cpuManufacturersHasBeenSet =
false;
819 bool m_memoryGiBPerVCpuHasBeenSet =
false;
820 bool m_excludedInstanceTypesHasBeenSet =
false;
821 bool m_instanceGenerationsHasBeenSet =
false;
822 bool m_spotMaxPricePercentageOverLowestPriceHasBeenSet =
false;
823 bool m_onDemandMaxPricePercentageOverLowestPriceHasBeenSet =
false;
824 bool m_bareMetalHasBeenSet =
false;
825 bool m_burstablePerformanceHasBeenSet =
false;
826 bool m_requireHibernateSupportHasBeenSet =
false;
827 bool m_networkInterfaceCountHasBeenSet =
false;
828 bool m_localStorageHasBeenSet =
false;
829 bool m_localStorageTypesHasBeenSet =
false;
830 bool m_totalLocalStorageGBHasBeenSet =
false;
831 bool m_baselineEbsBandwidthMbpsHasBeenSet =
false;
832 bool m_acceleratorTypesHasBeenSet =
false;
833 bool m_acceleratorCountHasBeenSet =
false;
834 bool m_acceleratorManufacturersHasBeenSet =
false;
835 bool m_acceleratorNamesHasBeenSet =
false;
836 bool m_acceleratorTotalMemoryMiBHasBeenSet =
false;
837 bool m_networkBandwidthGbpsHasBeenSet =
false;
838 bool m_allowedInstanceTypesHasBeenSet =
false;
839 bool m_maxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet =
false;
840 bool m_baselinePerformanceFactorsHasBeenSet =
false;
841 bool m_requireEncryptionInTransitHasBeenSet =
false;
const Aws::Vector< AcceleratorType > & GetAcceleratorTypes() const
bool AcceleratorNamesHasBeenSet() const
InstanceRequirements & WithExcludedInstanceTypes(ExcludedInstanceTypesT &&value)
const Aws::Vector< Aws::String > & GetExcludedInstanceTypes() const
bool ExcludedInstanceTypesHasBeenSet() const
void SetRequireEncryptionInTransit(bool value)
bool LocalStorageTypesHasBeenSet() const
void SetMaxSpotPriceAsPercentageOfOptimalOnDemandPrice(int value)
int GetMaxSpotPriceAsPercentageOfOptimalOnDemandPrice() const
bool AcceleratorCountHasBeenSet() const
InstanceRequirements & WithBareMetal(BareMetal value)
void SetExcludedInstanceTypes(ExcludedInstanceTypesT &&value)
InstanceRequirements & AddAcceleratorManufacturers(AcceleratorManufacturer value)
void SetInstanceGenerations(InstanceGenerationsT &&value)
bool AcceleratorManufacturersHasBeenSet() const
bool RequireEncryptionInTransitHasBeenSet() const
InstanceRequirements & WithTotalLocalStorageGB(TotalLocalStorageGBT &&value)
const Aws::Vector< Aws::String > & GetAllowedInstanceTypes() const
InstanceRequirements & WithBaselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsT &&value)
const NetworkInterfaceCount & GetNetworkInterfaceCount() const
InstanceRequirements & AddAcceleratorNames(AcceleratorName value)
InstanceRequirements & WithVCpuCount(VCpuCountT &&value)
AWS_EC2_API InstanceRequirements(const Aws::Utils::Xml::XmlNode &xmlNode)
bool AcceleratorTotalMemoryMiBHasBeenSet() const
InstanceRequirements & WithNetworkInterfaceCount(NetworkInterfaceCountT &&value)
InstanceRequirements & WithLocalStorage(LocalStorage value)
InstanceRequirements & WithRequireEncryptionInTransit(bool value)
InstanceRequirements & WithAllowedInstanceTypes(AllowedInstanceTypesT &&value)
void SetOnDemandMaxPricePercentageOverLowestPrice(int value)
InstanceRequirements & WithBaselinePerformanceFactors(BaselinePerformanceFactorsT &&value)
void SetAcceleratorNames(AcceleratorNamesT &&value)
void SetCpuManufacturers(CpuManufacturersT &&value)
InstanceRequirements & WithAcceleratorTypes(AcceleratorTypesT &&value)
bool NetworkInterfaceCountHasBeenSet() const
void SetAllowedInstanceTypes(AllowedInstanceTypesT &&value)
InstanceRequirements & WithLocalStorageTypes(LocalStorageTypesT &&value)
const NetworkBandwidthGbps & GetNetworkBandwidthGbps() const
void SetLocalStorage(LocalStorage value)
void SetBaselinePerformanceFactors(BaselinePerformanceFactorsT &&value)
const BaselinePerformanceFactors & GetBaselinePerformanceFactors() const
InstanceRequirements & WithBurstablePerformance(BurstablePerformance value)
void SetMemoryMiB(MemoryMiBT &&value)
void SetBurstablePerformance(BurstablePerformance value)
InstanceRequirements & AddAllowedInstanceTypes(AllowedInstanceTypesT &&value)
bool SpotMaxPricePercentageOverLowestPriceHasBeenSet() const
void SetAcceleratorTypes(AcceleratorTypesT &&value)
const Aws::Vector< LocalStorageType > & GetLocalStorageTypes() const
BurstablePerformance GetBurstablePerformance() const
void SetRequireHibernateSupport(bool value)
bool NetworkBandwidthGbpsHasBeenSet() const
bool LocalStorageHasBeenSet() const
InstanceRequirements & WithMaxSpotPriceAsPercentageOfOptimalOnDemandPrice(int value)
bool AllowedInstanceTypesHasBeenSet() const
bool BaselinePerformanceFactorsHasBeenSet() const
AWS_EC2_API void OutputToStream(Aws::OStream &oStream, const char *location) const
void SetAcceleratorManufacturers(AcceleratorManufacturersT &&value)
const Aws::Vector< AcceleratorName > & GetAcceleratorNames() const
bool BareMetalHasBeenSet() const
InstanceRequirements & WithOnDemandMaxPricePercentageOverLowestPrice(int value)
bool MemoryMiBHasBeenSet() const
void SetLocalStorageTypes(LocalStorageTypesT &&value)
AWS_EC2_API InstanceRequirements()=default
AWS_EC2_API InstanceRequirements & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
InstanceRequirements & WithAcceleratorManufacturers(AcceleratorManufacturersT &&value)
bool AcceleratorTypesHasBeenSet() const
bool InstanceGenerationsHasBeenSet() const
const BaselineEbsBandwidthMbps & GetBaselineEbsBandwidthMbps() const
InstanceRequirements & WithMemoryGiBPerVCpu(MemoryGiBPerVCpuT &&value)
bool BaselineEbsBandwidthMbpsHasBeenSet() const
bool GetRequireHibernateSupport() const
void SetSpotMaxPricePercentageOverLowestPrice(int value)
const TotalLocalStorageGB & GetTotalLocalStorageGB() const
bool BurstablePerformanceHasBeenSet() const
void SetBareMetal(BareMetal value)
void SetBaselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsT &&value)
InstanceRequirements & WithInstanceGenerations(InstanceGenerationsT &&value)
InstanceRequirements & AddExcludedInstanceTypes(ExcludedInstanceTypesT &&value)
const VCpuCountRange & GetVCpuCount() const
int GetOnDemandMaxPricePercentageOverLowestPrice() const
const AcceleratorTotalMemoryMiB & GetAcceleratorTotalMemoryMiB() const
bool MaxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet() const
bool GetRequireEncryptionInTransit() const
void SetMemoryGiBPerVCpu(MemoryGiBPerVCpuT &&value)
InstanceRequirements & WithMemoryMiB(MemoryMiBT &&value)
InstanceRequirements & WithRequireHibernateSupport(bool value)
const MemoryMiB & GetMemoryMiB() const
int GetSpotMaxPricePercentageOverLowestPrice() const
BareMetal GetBareMetal() const
InstanceRequirements & AddInstanceGenerations(InstanceGeneration value)
bool MemoryGiBPerVCpuHasBeenSet() const
AWS_EC2_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
bool RequireHibernateSupportHasBeenSet() const
InstanceRequirements & WithNetworkBandwidthGbps(NetworkBandwidthGbpsT &&value)
void SetAcceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBT &&value)
InstanceRequirements & WithCpuManufacturers(CpuManufacturersT &&value)
const Aws::Vector< AcceleratorManufacturer > & GetAcceleratorManufacturers() const
const Aws::Vector< CpuManufacturer > & GetCpuManufacturers() const
void SetNetworkBandwidthGbps(NetworkBandwidthGbpsT &&value)
InstanceRequirements & WithSpotMaxPricePercentageOverLowestPrice(int value)
const Aws::Vector< InstanceGeneration > & GetInstanceGenerations() const
InstanceRequirements & AddCpuManufacturers(CpuManufacturer value)
InstanceRequirements & WithAcceleratorNames(AcceleratorNamesT &&value)
InstanceRequirements & WithAcceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBT &&value)
bool TotalLocalStorageGBHasBeenSet() const
void SetNetworkInterfaceCount(NetworkInterfaceCountT &&value)
InstanceRequirements & WithAcceleratorCount(AcceleratorCountT &&value)
bool VCpuCountHasBeenSet() const
InstanceRequirements & AddLocalStorageTypes(LocalStorageType value)
const AcceleratorCount & GetAcceleratorCount() const
void SetVCpuCount(VCpuCountT &&value)
bool OnDemandMaxPricePercentageOverLowestPriceHasBeenSet() const
LocalStorage GetLocalStorage() const
bool CpuManufacturersHasBeenSet() const
const MemoryGiBPerVCpu & GetMemoryGiBPerVCpu() const
void SetAcceleratorCount(AcceleratorCountT &&value)
InstanceRequirements & AddAcceleratorTypes(AcceleratorType value)
void SetTotalLocalStorageGB(TotalLocalStorageGBT &&value)
std::vector< T, Aws::Allocator< T > > Vector
std::basic_ostream< char, std::char_traits< char > > OStream