7#include <aws/ec2/EC2_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9#include <aws/ec2/model/VCpuCountRange.h>
10#include <aws/ec2/model/MemoryMiB.h>
11#include <aws/core/utils/memory/stl/AWSVector.h>
12#include <aws/ec2/model/MemoryGiBPerVCpu.h>
13#include <aws/ec2/model/BareMetal.h>
14#include <aws/ec2/model/BurstablePerformance.h>
15#include <aws/ec2/model/NetworkInterfaceCount.h>
16#include <aws/ec2/model/LocalStorage.h>
17#include <aws/ec2/model/TotalLocalStorageGB.h>
18#include <aws/ec2/model/BaselineEbsBandwidthMbps.h>
19#include <aws/ec2/model/AcceleratorCount.h>
20#include <aws/ec2/model/AcceleratorTotalMemoryMiB.h>
21#include <aws/ec2/model/NetworkBandwidthGbps.h>
22#include <aws/ec2/model/BaselinePerformanceFactors.h>
23#include <aws/ec2/model/CpuManufacturer.h>
24#include <aws/core/utils/memory/stl/AWSString.h>
25#include <aws/ec2/model/InstanceGeneration.h>
26#include <aws/ec2/model/LocalStorageType.h>
27#include <aws/ec2/model/AcceleratorType.h>
28#include <aws/ec2/model/AcceleratorManufacturer.h>
29#include <aws/ec2/model/AcceleratorName.h>
98 template<
typename VCpuCountT = VCpuCountRange>
99 void SetVCpuCount(VCpuCountT&& value) { m_vCpuCountHasBeenSet =
true; m_vCpuCount = std::forward<VCpuCountT>(value); }
100 template<
typename VCpuCountT = VCpuCountRange>
110 template<
typename MemoryMiBT = MemoryMiB>
111 void SetMemoryMiB(MemoryMiBT&& value) { m_memoryMiBHasBeenSet =
true; m_memoryMiB = std::forward<MemoryMiBT>(value); }
112 template<
typename MemoryMiBT = MemoryMiB>
130 template<
typename CpuManufacturersT = Aws::Vector<CpuManufacturer>>
131 void SetCpuManufacturers(CpuManufacturersT&& value) { m_cpuManufacturersHasBeenSet =
true; m_cpuManufacturers = std::forward<CpuManufacturersT>(value); }
132 template<
typename CpuManufacturersT = Aws::Vector<CpuManufacturer>>
144 template<
typename MemoryGiBPerVCpuT = MemoryGiBPerVCpu>
145 void SetMemoryGiBPerVCpu(MemoryGiBPerVCpuT&& value) { m_memoryGiBPerVCpuHasBeenSet =
true; m_memoryGiBPerVCpu = std::forward<MemoryGiBPerVCpuT>(value); }
146 template<
typename MemoryGiBPerVCpuT = MemoryGiBPerVCpu>
166 template<
typename ExcludedInstanceTypesT = Aws::Vector<Aws::String>>
167 void SetExcludedInstanceTypes(ExcludedInstanceTypesT&& value) { m_excludedInstanceTypesHasBeenSet =
true; m_excludedInstanceTypes = std::forward<ExcludedInstanceTypesT>(value); }
168 template<
typename ExcludedInstanceTypesT = Aws::Vector<Aws::String>>
170 template<
typename ExcludedInstanceTypesT = Aws::String>
188 template<
typename InstanceGenerationsT = Aws::Vector<InstanceGeneration>>
189 void SetInstanceGenerations(InstanceGenerationsT&& value) { m_instanceGenerationsHasBeenSet =
true; m_instanceGenerations = std::forward<InstanceGenerationsT>(value); }
190 template<
typename InstanceGenerationsT = Aws::Vector<InstanceGeneration>>
306 template<
typename NetworkInterfaceCountT = NetworkInterfaceCount>
307 void SetNetworkInterfaceCount(NetworkInterfaceCountT&& value) { m_networkInterfaceCountHasBeenSet =
true; m_networkInterfaceCount = std::forward<NetworkInterfaceCountT>(value); }
308 template<
typename NetworkInterfaceCountT = NetworkInterfaceCount>
340 template<
typename LocalStorageTypesT = Aws::Vector<LocalStorageType>>
341 void SetLocalStorageTypes(LocalStorageTypesT&& value) { m_localStorageTypesHasBeenSet =
true; m_localStorageTypes = std::forward<LocalStorageTypesT>(value); }
342 template<
typename LocalStorageTypesT = Aws::Vector<LocalStorageType>>
354 template<
typename TotalLocalStorageGBT = TotalLocalStorageGB>
355 void SetTotalLocalStorageGB(TotalLocalStorageGBT&& value) { m_totalLocalStorageGBHasBeenSet =
true; m_totalLocalStorageGB = std::forward<TotalLocalStorageGBT>(value); }
356 template<
typename TotalLocalStorageGBT = TotalLocalStorageGB>
370 template<
typename BaselineEbsBandw
idthMbpsT = BaselineEbsBandw
idthMbps>
371 void SetBaselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsT&& value) { m_baselineEbsBandwidthMbpsHasBeenSet =
true; m_baselineEbsBandwidthMbps = std::forward<BaselineEbsBandwidthMbpsT>(value); }
372 template<
typename BaselineEbsBandw
idthMbpsT = BaselineEbsBandw
idthMbps>
386 template<
typename AcceleratorTypesT = Aws::Vector<AcceleratorType>>
387 void SetAcceleratorTypes(AcceleratorTypesT&& value) { m_acceleratorTypesHasBeenSet =
true; m_acceleratorTypes = std::forward<AcceleratorTypesT>(value); }
388 template<
typename AcceleratorTypesT = Aws::Vector<AcceleratorType>>
402 template<
typename AcceleratorCountT = AcceleratorCount>
403 void SetAcceleratorCount(AcceleratorCountT&& value) { m_acceleratorCountHasBeenSet =
true; m_acceleratorCount = std::forward<AcceleratorCountT>(value); }
404 template<
typename AcceleratorCountT = AcceleratorCount>
421 template<
typename AcceleratorManufacturersT = Aws::Vector<AcceleratorManufacturer>>
422 void SetAcceleratorManufacturers(AcceleratorManufacturersT&& value) { m_acceleratorManufacturersHasBeenSet =
true; m_acceleratorManufacturers = std::forward<AcceleratorManufacturersT>(value); }
423 template<
typename AcceleratorManufacturersT = Aws::Vector<AcceleratorManufacturer>>
449 template<
typename AcceleratorNamesT = Aws::Vector<AcceleratorName>>
450 void SetAcceleratorNames(AcceleratorNamesT&& value) { m_acceleratorNamesHasBeenSet =
true; m_acceleratorNames = std::forward<AcceleratorNamesT>(value); }
451 template<
typename AcceleratorNamesT = Aws::Vector<AcceleratorName>>
463 template<
typename AcceleratorTotalMemoryMiBT = AcceleratorTotalMemoryMiB>
464 void SetAcceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBT&& value) { m_acceleratorTotalMemoryMiBHasBeenSet =
true; m_acceleratorTotalMemoryMiB = std::forward<AcceleratorTotalMemoryMiBT>(value); }
465 template<
typename AcceleratorTotalMemoryMiBT = AcceleratorTotalMemoryMiB>
476 template<
typename NetworkBandw
idthGbpsT = NetworkBandw
idthGbps>
477 void SetNetworkBandwidthGbps(NetworkBandwidthGbpsT&& value) { m_networkBandwidthGbpsHasBeenSet =
true; m_networkBandwidthGbps = std::forward<NetworkBandwidthGbpsT>(value); }
478 template<
typename NetworkBandw
idthGbpsT = NetworkBandw
idthGbps>
499 template<
typename AllowedInstanceTypesT = Aws::Vector<Aws::String>>
500 void SetAllowedInstanceTypes(AllowedInstanceTypesT&& value) { m_allowedInstanceTypesHasBeenSet =
true; m_allowedInstanceTypes = std::forward<AllowedInstanceTypesT>(value); }
501 template<
typename AllowedInstanceTypesT = Aws::Vector<Aws::String>>
503 template<
typename AllowedInstanceTypesT = Aws::String>
549 template<
typename BaselinePerformanceFactorsT = BaselinePerformanceFactors>
550 void SetBaselinePerformanceFactors(BaselinePerformanceFactorsT&& value) { m_baselinePerformanceFactorsHasBeenSet =
true; m_baselinePerformanceFactors = std::forward<BaselinePerformanceFactorsT>(value); }
551 template<
typename BaselinePerformanceFactorsT = BaselinePerformanceFactors>
557 bool m_vCpuCountHasBeenSet =
false;
560 bool m_memoryMiBHasBeenSet =
false;
563 bool m_cpuManufacturersHasBeenSet =
false;
566 bool m_memoryGiBPerVCpuHasBeenSet =
false;
569 bool m_excludedInstanceTypesHasBeenSet =
false;
572 bool m_instanceGenerationsHasBeenSet =
false;
574 int m_spotMaxPricePercentageOverLowestPrice{0};
575 bool m_spotMaxPricePercentageOverLowestPriceHasBeenSet =
false;
577 int m_onDemandMaxPricePercentageOverLowestPrice{0};
578 bool m_onDemandMaxPricePercentageOverLowestPriceHasBeenSet =
false;
581 bool m_bareMetalHasBeenSet =
false;
584 bool m_burstablePerformanceHasBeenSet =
false;
586 bool m_requireHibernateSupport{
false};
587 bool m_requireHibernateSupportHasBeenSet =
false;
589 NetworkInterfaceCount m_networkInterfaceCount;
590 bool m_networkInterfaceCountHasBeenSet =
false;
593 bool m_localStorageHasBeenSet =
false;
596 bool m_localStorageTypesHasBeenSet =
false;
598 TotalLocalStorageGB m_totalLocalStorageGB;
599 bool m_totalLocalStorageGBHasBeenSet =
false;
601 BaselineEbsBandwidthMbps m_baselineEbsBandwidthMbps;
602 bool m_baselineEbsBandwidthMbpsHasBeenSet =
false;
605 bool m_acceleratorTypesHasBeenSet =
false;
607 AcceleratorCount m_acceleratorCount;
608 bool m_acceleratorCountHasBeenSet =
false;
611 bool m_acceleratorManufacturersHasBeenSet =
false;
614 bool m_acceleratorNamesHasBeenSet =
false;
616 AcceleratorTotalMemoryMiB m_acceleratorTotalMemoryMiB;
617 bool m_acceleratorTotalMemoryMiBHasBeenSet =
false;
619 NetworkBandwidthGbps m_networkBandwidthGbps;
620 bool m_networkBandwidthGbpsHasBeenSet =
false;
623 bool m_allowedInstanceTypesHasBeenSet =
false;
625 int m_maxSpotPriceAsPercentageOfOptimalOnDemandPrice{0};
626 bool m_maxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet =
false;
628 BaselinePerformanceFactors m_baselinePerformanceFactors;
629 bool m_baselinePerformanceFactorsHasBeenSet =
false;
const Aws::Vector< AcceleratorType > & GetAcceleratorTypes() const
bool AcceleratorNamesHasBeenSet() const
InstanceRequirements & WithExcludedInstanceTypes(ExcludedInstanceTypesT &&value)
const Aws::Vector< Aws::String > & GetExcludedInstanceTypes() const
bool ExcludedInstanceTypesHasBeenSet() const
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
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 & 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
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