7#include <aws/ec2/EC2_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9#include <aws/ec2/model/VCpuCountRangeRequest.h>
10#include <aws/ec2/model/MemoryMiBRequest.h>
11#include <aws/core/utils/memory/stl/AWSVector.h>
12#include <aws/ec2/model/MemoryGiBPerVCpuRequest.h>
13#include <aws/ec2/model/BareMetal.h>
14#include <aws/ec2/model/BurstablePerformance.h>
15#include <aws/ec2/model/NetworkInterfaceCountRequest.h>
16#include <aws/ec2/model/LocalStorage.h>
17#include <aws/ec2/model/TotalLocalStorageGBRequest.h>
18#include <aws/ec2/model/BaselineEbsBandwidthMbpsRequest.h>
19#include <aws/ec2/model/AcceleratorCountRequest.h>
20#include <aws/ec2/model/AcceleratorTotalMemoryMiBRequest.h>
21#include <aws/ec2/model/NetworkBandwidthGbpsRequest.h>
22#include <aws/ec2/model/BaselinePerformanceFactorsRequest.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>
97 template<
typename VCpuCountT = VCpuCountRangeRequest>
98 void SetVCpuCount(VCpuCountT&& value) { m_vCpuCountHasBeenSet =
true; m_vCpuCount = std::forward<VCpuCountT>(value); }
99 template<
typename VCpuCountT = VCpuCountRangeRequest>
109 template<
typename MemoryMiBT = MemoryMiBRequest>
110 void SetMemoryMiB(MemoryMiBT&& value) { m_memoryMiBHasBeenSet =
true; m_memoryMiB = std::forward<MemoryMiBT>(value); }
111 template<
typename MemoryMiBT = MemoryMiBRequest>
129 template<
typename CpuManufacturersT = Aws::Vector<CpuManufacturer>>
130 void SetCpuManufacturers(CpuManufacturersT&& value) { m_cpuManufacturersHasBeenSet =
true; m_cpuManufacturers = std::forward<CpuManufacturersT>(value); }
131 template<
typename CpuManufacturersT = Aws::Vector<CpuManufacturer>>
143 template<
typename MemoryGiBPerVCpuT = MemoryGiBPerVCpuRequest>
144 void SetMemoryGiBPerVCpu(MemoryGiBPerVCpuT&& value) { m_memoryGiBPerVCpuHasBeenSet =
true; m_memoryGiBPerVCpu = std::forward<MemoryGiBPerVCpuT>(value); }
145 template<
typename MemoryGiBPerVCpuT = MemoryGiBPerVCpuRequest>
165 template<
typename ExcludedInstanceTypesT = Aws::Vector<Aws::String>>
166 void SetExcludedInstanceTypes(ExcludedInstanceTypesT&& value) { m_excludedInstanceTypesHasBeenSet =
true; m_excludedInstanceTypes = std::forward<ExcludedInstanceTypesT>(value); }
167 template<
typename ExcludedInstanceTypesT = Aws::Vector<Aws::String>>
169 template<
typename ExcludedInstanceTypesT = Aws::String>
187 template<
typename InstanceGenerationsT = Aws::Vector<InstanceGeneration>>
188 void SetInstanceGenerations(InstanceGenerationsT&& value) { m_instanceGenerationsHasBeenSet =
true; m_instanceGenerations = std::forward<InstanceGenerationsT>(value); }
189 template<
typename InstanceGenerationsT = Aws::Vector<InstanceGeneration>>
305 template<
typename NetworkInterfaceCountT = NetworkInterfaceCountRequest>
306 void SetNetworkInterfaceCount(NetworkInterfaceCountT&& value) { m_networkInterfaceCountHasBeenSet =
true; m_networkInterfaceCount = std::forward<NetworkInterfaceCountT>(value); }
307 template<
typename NetworkInterfaceCountT = NetworkInterfaceCountRequest>
339 template<
typename LocalStorageTypesT = Aws::Vector<LocalStorageType>>
340 void SetLocalStorageTypes(LocalStorageTypesT&& value) { m_localStorageTypesHasBeenSet =
true; m_localStorageTypes = std::forward<LocalStorageTypesT>(value); }
341 template<
typename LocalStorageTypesT = Aws::Vector<LocalStorageType>>
353 template<
typename TotalLocalStorageGBT = TotalLocalStorageGBRequest>
354 void SetTotalLocalStorageGB(TotalLocalStorageGBT&& value) { m_totalLocalStorageGBHasBeenSet =
true; m_totalLocalStorageGB = std::forward<TotalLocalStorageGBT>(value); }
355 template<
typename TotalLocalStorageGBT = TotalLocalStorageGBRequest>
369 template<
typename BaselineEbsBandw
idthMbpsT = BaselineEbsBandw
idthMbpsRequest>
370 void SetBaselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsT&& value) { m_baselineEbsBandwidthMbpsHasBeenSet =
true; m_baselineEbsBandwidthMbps = std::forward<BaselineEbsBandwidthMbpsT>(value); }
371 template<
typename BaselineEbsBandw
idthMbpsT = BaselineEbsBandw
idthMbpsRequest>
385 template<
typename AcceleratorTypesT = Aws::Vector<AcceleratorType>>
386 void SetAcceleratorTypes(AcceleratorTypesT&& value) { m_acceleratorTypesHasBeenSet =
true; m_acceleratorTypes = std::forward<AcceleratorTypesT>(value); }
387 template<
typename AcceleratorTypesT = Aws::Vector<AcceleratorType>>
401 template<
typename AcceleratorCountT = AcceleratorCountRequest>
402 void SetAcceleratorCount(AcceleratorCountT&& value) { m_acceleratorCountHasBeenSet =
true; m_acceleratorCount = std::forward<AcceleratorCountT>(value); }
403 template<
typename AcceleratorCountT = AcceleratorCountRequest>
420 template<
typename AcceleratorManufacturersT = Aws::Vector<AcceleratorManufacturer>>
421 void SetAcceleratorManufacturers(AcceleratorManufacturersT&& value) { m_acceleratorManufacturersHasBeenSet =
true; m_acceleratorManufacturers = std::forward<AcceleratorManufacturersT>(value); }
422 template<
typename AcceleratorManufacturersT = Aws::Vector<AcceleratorManufacturer>>
448 template<
typename AcceleratorNamesT = Aws::Vector<AcceleratorName>>
449 void SetAcceleratorNames(AcceleratorNamesT&& value) { m_acceleratorNamesHasBeenSet =
true; m_acceleratorNames = std::forward<AcceleratorNamesT>(value); }
450 template<
typename AcceleratorNamesT = Aws::Vector<AcceleratorName>>
462 template<
typename AcceleratorTotalMemoryMiBT = AcceleratorTotalMemoryMiBRequest>
463 void SetAcceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBT&& value) { m_acceleratorTotalMemoryMiBHasBeenSet =
true; m_acceleratorTotalMemoryMiB = std::forward<AcceleratorTotalMemoryMiBT>(value); }
464 template<
typename AcceleratorTotalMemoryMiBT = AcceleratorTotalMemoryMiBRequest>
478 template<
typename NetworkBandw
idthGbpsT = NetworkBandw
idthGbpsRequest>
479 void SetNetworkBandwidthGbps(NetworkBandwidthGbpsT&& value) { m_networkBandwidthGbpsHasBeenSet =
true; m_networkBandwidthGbps = std::forward<NetworkBandwidthGbpsT>(value); }
480 template<
typename NetworkBandw
idthGbpsT = NetworkBandw
idthGbpsRequest>
501 template<
typename AllowedInstanceTypesT = Aws::Vector<Aws::String>>
502 void SetAllowedInstanceTypes(AllowedInstanceTypesT&& value) { m_allowedInstanceTypesHasBeenSet =
true; m_allowedInstanceTypes = std::forward<AllowedInstanceTypesT>(value); }
503 template<
typename AllowedInstanceTypesT = Aws::Vector<Aws::String>>
505 template<
typename AllowedInstanceTypesT = Aws::String>
551 template<
typename BaselinePerformanceFactorsT = BaselinePerformanceFactorsRequest>
552 void SetBaselinePerformanceFactors(BaselinePerformanceFactorsT&& value) { m_baselinePerformanceFactorsHasBeenSet =
true; m_baselinePerformanceFactors = std::forward<BaselinePerformanceFactorsT>(value); }
553 template<
typename BaselinePerformanceFactorsT = BaselinePerformanceFactorsRequest>
559 bool m_vCpuCountHasBeenSet =
false;
562 bool m_memoryMiBHasBeenSet =
false;
565 bool m_cpuManufacturersHasBeenSet =
false;
568 bool m_memoryGiBPerVCpuHasBeenSet =
false;
571 bool m_excludedInstanceTypesHasBeenSet =
false;
574 bool m_instanceGenerationsHasBeenSet =
false;
576 int m_spotMaxPricePercentageOverLowestPrice{0};
577 bool m_spotMaxPricePercentageOverLowestPriceHasBeenSet =
false;
579 int m_onDemandMaxPricePercentageOverLowestPrice{0};
580 bool m_onDemandMaxPricePercentageOverLowestPriceHasBeenSet =
false;
583 bool m_bareMetalHasBeenSet =
false;
586 bool m_burstablePerformanceHasBeenSet =
false;
588 bool m_requireHibernateSupport{
false};
589 bool m_requireHibernateSupportHasBeenSet =
false;
591 NetworkInterfaceCountRequest m_networkInterfaceCount;
592 bool m_networkInterfaceCountHasBeenSet =
false;
595 bool m_localStorageHasBeenSet =
false;
598 bool m_localStorageTypesHasBeenSet =
false;
600 TotalLocalStorageGBRequest m_totalLocalStorageGB;
601 bool m_totalLocalStorageGBHasBeenSet =
false;
603 BaselineEbsBandwidthMbpsRequest m_baselineEbsBandwidthMbps;
604 bool m_baselineEbsBandwidthMbpsHasBeenSet =
false;
607 bool m_acceleratorTypesHasBeenSet =
false;
609 AcceleratorCountRequest m_acceleratorCount;
610 bool m_acceleratorCountHasBeenSet =
false;
613 bool m_acceleratorManufacturersHasBeenSet =
false;
616 bool m_acceleratorNamesHasBeenSet =
false;
618 AcceleratorTotalMemoryMiBRequest m_acceleratorTotalMemoryMiB;
619 bool m_acceleratorTotalMemoryMiBHasBeenSet =
false;
621 NetworkBandwidthGbpsRequest m_networkBandwidthGbps;
622 bool m_networkBandwidthGbpsHasBeenSet =
false;
625 bool m_allowedInstanceTypesHasBeenSet =
false;
627 int m_maxSpotPriceAsPercentageOfOptimalOnDemandPrice{0};
628 bool m_maxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet =
false;
630 BaselinePerformanceFactorsRequest m_baselinePerformanceFactors;
631 bool m_baselinePerformanceFactorsHasBeenSet =
false;
void SetMemoryMiB(MemoryMiBT &&value)
const AcceleratorTotalMemoryMiBRequest & GetAcceleratorTotalMemoryMiB() const
void SetNetworkBandwidthGbps(NetworkBandwidthGbpsT &&value)
const Aws::Vector< AcceleratorType > & GetAcceleratorTypes() const
InstanceRequirementsRequest & WithNetworkBandwidthGbps(NetworkBandwidthGbpsT &&value)
void SetMaxSpotPriceAsPercentageOfOptimalOnDemandPrice(int value)
void SetOnDemandMaxPricePercentageOverLowestPrice(int value)
bool MemoryMiBHasBeenSet() const
InstanceRequirementsRequest & WithOnDemandMaxPricePercentageOverLowestPrice(int value)
InstanceRequirementsRequest & WithInstanceGenerations(InstanceGenerationsT &&value)
bool BaselineEbsBandwidthMbpsHasBeenSet() const
AWS_EC2_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
LocalStorage GetLocalStorage() const
bool CpuManufacturersHasBeenSet() const
bool LocalStorageHasBeenSet() const
const VCpuCountRangeRequest & GetVCpuCount() const
bool MemoryGiBPerVCpuHasBeenSet() const
bool NetworkInterfaceCountHasBeenSet() const
void SetBurstablePerformance(BurstablePerformance value)
const Aws::Vector< AcceleratorName > & GetAcceleratorNames() const
InstanceRequirementsRequest & WithBareMetal(BareMetal value)
InstanceRequirementsRequest & AddAcceleratorTypes(AcceleratorType value)
bool AcceleratorTotalMemoryMiBHasBeenSet() const
bool BurstablePerformanceHasBeenSet() const
void SetAcceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBT &&value)
void SetLocalStorageTypes(LocalStorageTypesT &&value)
bool MaxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet() const
void SetBaselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsT &&value)
InstanceRequirementsRequest & WithBaselinePerformanceFactors(BaselinePerformanceFactorsT &&value)
void SetLocalStorage(LocalStorage value)
bool GetRequireHibernateSupport() const
bool SpotMaxPricePercentageOverLowestPriceHasBeenSet() const
bool AcceleratorManufacturersHasBeenSet() const
InstanceRequirementsRequest & WithAcceleratorNames(AcceleratorNamesT &&value)
void SetAcceleratorManufacturers(AcceleratorManufacturersT &&value)
InstanceRequirementsRequest & AddLocalStorageTypes(LocalStorageType value)
InstanceRequirementsRequest & WithBaselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsT &&value)
void SetAcceleratorCount(AcceleratorCountT &&value)
BareMetal GetBareMetal() const
AWS_EC2_API void OutputToStream(Aws::OStream &oStream, const char *location) const
void SetMemoryGiBPerVCpu(MemoryGiBPerVCpuT &&value)
InstanceRequirementsRequest & AddInstanceGenerations(InstanceGeneration value)
InstanceRequirementsRequest & AddAcceleratorNames(AcceleratorName value)
void SetAllowedInstanceTypes(AllowedInstanceTypesT &&value)
const BaselineEbsBandwidthMbpsRequest & GetBaselineEbsBandwidthMbps() const
const Aws::Vector< AcceleratorManufacturer > & GetAcceleratorManufacturers() const
InstanceRequirementsRequest & WithCpuManufacturers(CpuManufacturersT &&value)
InstanceRequirementsRequest & WithAcceleratorCount(AcceleratorCountT &&value)
void SetTotalLocalStorageGB(TotalLocalStorageGBT &&value)
void SetCpuManufacturers(CpuManufacturersT &&value)
InstanceRequirementsRequest & WithAcceleratorTypes(AcceleratorTypesT &&value)
bool AcceleratorCountHasBeenSet() const
InstanceRequirementsRequest & WithSpotMaxPricePercentageOverLowestPrice(int value)
AWS_EC2_API InstanceRequirementsRequest(const Aws::Utils::Xml::XmlNode &xmlNode)
InstanceRequirementsRequest & AddExcludedInstanceTypes(ExcludedInstanceTypesT &&value)
int GetSpotMaxPricePercentageOverLowestPrice() const
void SetAcceleratorTypes(AcceleratorTypesT &&value)
BurstablePerformance GetBurstablePerformance() const
AWS_EC2_API InstanceRequirementsRequest()=default
InstanceRequirementsRequest & WithNetworkInterfaceCount(NetworkInterfaceCountT &&value)
InstanceRequirementsRequest & WithLocalStorage(LocalStorage value)
const TotalLocalStorageGBRequest & GetTotalLocalStorageGB() const
bool BareMetalHasBeenSet() const
bool AllowedInstanceTypesHasBeenSet() const
void SetRequireHibernateSupport(bool value)
const BaselinePerformanceFactorsRequest & GetBaselinePerformanceFactors() const
InstanceRequirementsRequest & AddAcceleratorManufacturers(AcceleratorManufacturer value)
const Aws::Vector< Aws::String > & GetAllowedInstanceTypes() const
const MemoryGiBPerVCpuRequest & GetMemoryGiBPerVCpu() const
bool LocalStorageTypesHasBeenSet() const
bool ExcludedInstanceTypesHasBeenSet() const
InstanceRequirementsRequest & WithBurstablePerformance(BurstablePerformance value)
bool BaselinePerformanceFactorsHasBeenSet() const
const Aws::Vector< Aws::String > & GetExcludedInstanceTypes() const
bool AcceleratorNamesHasBeenSet() const
bool RequireHibernateSupportHasBeenSet() const
InstanceRequirementsRequest & AddAllowedInstanceTypes(AllowedInstanceTypesT &&value)
void SetBareMetal(BareMetal value)
InstanceRequirementsRequest & WithAcceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBT &&value)
InstanceRequirementsRequest & WithMaxSpotPriceAsPercentageOfOptimalOnDemandPrice(int value)
bool TotalLocalStorageGBHasBeenSet() const
InstanceRequirementsRequest & AddCpuManufacturers(CpuManufacturer value)
bool VCpuCountHasBeenSet() const
const MemoryMiBRequest & GetMemoryMiB() const
void SetAcceleratorNames(AcceleratorNamesT &&value)
InstanceRequirementsRequest & WithTotalLocalStorageGB(TotalLocalStorageGBT &&value)
const Aws::Vector< LocalStorageType > & GetLocalStorageTypes() const
InstanceRequirementsRequest & WithMemoryMiB(MemoryMiBT &&value)
void SetExcludedInstanceTypes(ExcludedInstanceTypesT &&value)
void SetVCpuCount(VCpuCountT &&value)
const NetworkBandwidthGbpsRequest & GetNetworkBandwidthGbps() const
int GetOnDemandMaxPricePercentageOverLowestPrice() const
InstanceRequirementsRequest & WithAllowedInstanceTypes(AllowedInstanceTypesT &&value)
const Aws::Vector< CpuManufacturer > & GetCpuManufacturers() const
bool OnDemandMaxPricePercentageOverLowestPriceHasBeenSet() const
bool AcceleratorTypesHasBeenSet() const
AWS_EC2_API InstanceRequirementsRequest & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
InstanceRequirementsRequest & WithMemoryGiBPerVCpu(MemoryGiBPerVCpuT &&value)
InstanceRequirementsRequest & WithVCpuCount(VCpuCountT &&value)
bool InstanceGenerationsHasBeenSet() const
int GetMaxSpotPriceAsPercentageOfOptimalOnDemandPrice() const
void SetInstanceGenerations(InstanceGenerationsT &&value)
bool NetworkBandwidthGbpsHasBeenSet() const
const AcceleratorCountRequest & GetAcceleratorCount() const
const NetworkInterfaceCountRequest & GetNetworkInterfaceCount() const
InstanceRequirementsRequest & WithLocalStorageTypes(LocalStorageTypesT &&value)
void SetNetworkInterfaceCount(NetworkInterfaceCountT &&value)
InstanceRequirementsRequest & WithRequireHibernateSupport(bool value)
void SetSpotMaxPricePercentageOverLowestPrice(int value)
InstanceRequirementsRequest & WithAcceleratorManufacturers(AcceleratorManufacturersT &&value)
void SetBaselinePerformanceFactors(BaselinePerformanceFactorsT &&value)
InstanceRequirementsRequest & WithExcludedInstanceTypes(ExcludedInstanceTypesT &&value)
const Aws::Vector< InstanceGeneration > & GetInstanceGenerations() const
std::vector< T, Aws::Allocator< T > > Vector
std::basic_ostream< char, std::char_traits< char > > OStream