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/AcceleratorCountRequest.h>
12#include <aws/ec2/model/AcceleratorManufacturer.h>
13#include <aws/ec2/model/AcceleratorName.h>
14#include <aws/ec2/model/AcceleratorTotalMemoryMiBRequest.h>
15#include <aws/ec2/model/AcceleratorType.h>
16#include <aws/ec2/model/BareMetal.h>
17#include <aws/ec2/model/BaselineEbsBandwidthMbpsRequest.h>
18#include <aws/ec2/model/BaselinePerformanceFactorsRequest.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/MemoryGiBPerVCpuRequest.h>
25#include <aws/ec2/model/MemoryMiBRequest.h>
26#include <aws/ec2/model/NetworkBandwidthGbpsRequest.h>
27#include <aws/ec2/model/NetworkInterfaceCountRequest.h>
28#include <aws/ec2/model/TotalLocalStorageGBRequest.h>
29#include <aws/ec2/model/VCpuCountRangeRequest.h>
91 template <
typename VCpuCountT = VCpuCountRangeRequest>
93 m_vCpuCountHasBeenSet =
true;
94 m_vCpuCount = std::forward<VCpuCountT>(value);
96 template <
typename VCpuCountT = VCpuCountRangeRequest>
109 template <
typename MemoryMiBT = MemoryMiBRequest>
111 m_memoryMiBHasBeenSet =
true;
112 m_memoryMiB = std::forward<MemoryMiBT>(value);
114 template <
typename MemoryMiBT = MemoryMiBRequest>
135 template <
typename CpuManufacturersT = Aws::Vector<CpuManufacturer>>
137 m_cpuManufacturersHasBeenSet =
true;
138 m_cpuManufacturers = std::forward<CpuManufacturersT>(value);
140 template <
typename CpuManufacturersT = Aws::Vector<CpuManufacturer>>
146 m_cpuManufacturersHasBeenSet =
true;
147 m_cpuManufacturers.push_back(value);
159 template <
typename MemoryGiBPerVCpuT = MemoryGiBPerVCpuRequest>
161 m_memoryGiBPerVCpuHasBeenSet =
true;
162 m_memoryGiBPerVCpu = std::forward<MemoryGiBPerVCpuT>(value);
164 template <
typename MemoryGiBPerVCpuT = MemoryGiBPerVCpuRequest>
187 template <
typename ExcludedInstanceTypesT = Aws::Vector<Aws::String>>
189 m_excludedInstanceTypesHasBeenSet =
true;
190 m_excludedInstanceTypes = std::forward<ExcludedInstanceTypesT>(value);
192 template <
typename ExcludedInstanceTypesT = Aws::Vector<Aws::String>>
197 template <
typename ExcludedInstanceTypesT = Aws::String>
199 m_excludedInstanceTypesHasBeenSet =
true;
200 m_excludedInstanceTypes.emplace_back(std::forward<ExcludedInstanceTypesT>(value));
219 template <
typename InstanceGenerationsT = Aws::Vector<InstanceGeneration>>
221 m_instanceGenerationsHasBeenSet =
true;
222 m_instanceGenerations = std::forward<InstanceGenerationsT>(value);
224 template <
typename InstanceGenerationsT = Aws::Vector<InstanceGeneration>>
230 m_instanceGenerationsHasBeenSet =
true;
231 m_instanceGenerations.push_back(value);
267 m_spotMaxPricePercentageOverLowestPriceHasBeenSet =
true;
268 m_spotMaxPricePercentageOverLowestPrice = value;
298 m_onDemandMaxPricePercentageOverLowestPriceHasBeenSet =
true;
299 m_onDemandMaxPricePercentageOverLowestPrice = value;
319 m_bareMetalHasBeenSet =
true;
342 m_burstablePerformanceHasBeenSet =
true;
343 m_burstablePerformance = value;
361 m_requireHibernateSupportHasBeenSet =
true;
362 m_requireHibernateSupport = value;
377 template <
typename NetworkInterfaceCountT = NetworkInterfaceCountRequest>
379 m_networkInterfaceCountHasBeenSet =
true;
380 m_networkInterfaceCount = std::forward<NetworkInterfaceCountT>(value);
382 template <
typename NetworkInterfaceCountT = NetworkInterfaceCountRequest>
404 m_localStorageHasBeenSet =
true;
405 m_localStorage = value;
423 template <
typename LocalStorageTypesT = Aws::Vector<LocalStorageType>>
425 m_localStorageTypesHasBeenSet =
true;
426 m_localStorageTypes = std::forward<LocalStorageTypesT>(value);
428 template <
typename LocalStorageTypesT = Aws::Vector<LocalStorageType>>
434 m_localStorageTypesHasBeenSet =
true;
435 m_localStorageTypes.push_back(value);
447 template <
typename TotalLocalStorageGBT = TotalLocalStorageGBRequest>
449 m_totalLocalStorageGBHasBeenSet =
true;
450 m_totalLocalStorageGB = std::forward<TotalLocalStorageGBT>(value);
452 template <
typename TotalLocalStorageGBT = TotalLocalStorageGBRequest>
469 template <
typename BaselineEbsBandw
idthMbpsT = BaselineEbsBandw
idthMbpsRequest>
471 m_baselineEbsBandwidthMbpsHasBeenSet =
true;
472 m_baselineEbsBandwidthMbps = std::forward<BaselineEbsBandwidthMbpsT>(value);
474 template <
typename BaselineEbsBandw
idthMbpsT = BaselineEbsBandw
idthMbpsRequest>
493 template <
typename AcceleratorTypesT = Aws::Vector<AcceleratorType>>
495 m_acceleratorTypesHasBeenSet =
true;
496 m_acceleratorTypes = std::forward<AcceleratorTypesT>(value);
498 template <
typename AcceleratorTypesT = Aws::Vector<AcceleratorType>>
504 m_acceleratorTypesHasBeenSet =
true;
505 m_acceleratorTypes.push_back(value);
519 template <
typename AcceleratorCountT = AcceleratorCountRequest>
521 m_acceleratorCountHasBeenSet =
true;
522 m_acceleratorCount = std::forward<AcceleratorCountT>(value);
524 template <
typename AcceleratorCountT = AcceleratorCountRequest>
544 template <
typename AcceleratorManufacturersT = Aws::Vector<AcceleratorManufacturer>>
546 m_acceleratorManufacturersHasBeenSet =
true;
547 m_acceleratorManufacturers = std::forward<AcceleratorManufacturersT>(value);
549 template <
typename AcceleratorManufacturersT = Aws::Vector<AcceleratorManufacturer>>
555 m_acceleratorManufacturersHasBeenSet =
true;
556 m_acceleratorManufacturers.push_back(value);
591 template <
typename AcceleratorNamesT = Aws::Vector<AcceleratorName>>
593 m_acceleratorNamesHasBeenSet =
true;
594 m_acceleratorNames = std::forward<AcceleratorNamesT>(value);
596 template <
typename AcceleratorNamesT = Aws::Vector<AcceleratorName>>
602 m_acceleratorNamesHasBeenSet =
true;
603 m_acceleratorNames.push_back(value);
615 template <
typename AcceleratorTotalMemoryMiBT = AcceleratorTotalMemoryMiBRequest>
617 m_acceleratorTotalMemoryMiBHasBeenSet =
true;
618 m_acceleratorTotalMemoryMiB = std::forward<AcceleratorTotalMemoryMiBT>(value);
620 template <
typename AcceleratorTotalMemoryMiBT = AcceleratorTotalMemoryMiBRequest>
637 template <
typename NetworkBandw
idthGbpsT = NetworkBandw
idthGbpsRequest>
639 m_networkBandwidthGbpsHasBeenSet =
true;
640 m_networkBandwidthGbps = std::forward<NetworkBandwidthGbpsT>(value);
642 template <
typename NetworkBandw
idthGbpsT = NetworkBandw
idthGbpsRequest>
666 template <
typename AllowedInstanceTypesT = Aws::Vector<Aws::String>>
668 m_allowedInstanceTypesHasBeenSet =
true;
669 m_allowedInstanceTypes = std::forward<AllowedInstanceTypesT>(value);
671 template <
typename AllowedInstanceTypesT = Aws::Vector<Aws::String>>
676 template <
typename AllowedInstanceTypesT = Aws::String>
678 m_allowedInstanceTypesHasBeenSet =
true;
679 m_allowedInstanceTypes.emplace_back(std::forward<AllowedInstanceTypesT>(value));
709 return m_maxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet;
712 m_maxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet =
true;
713 m_maxSpotPriceAsPercentageOfOptimalOnDemandPrice = value;
734 template <
typename BaselinePerformanceFactorsT = BaselinePerformanceFactorsRequest>
736 m_baselinePerformanceFactorsHasBeenSet =
true;
737 m_baselinePerformanceFactors = std::forward<BaselinePerformanceFactorsT>(value);
739 template <
typename BaselinePerformanceFactorsT = BaselinePerformanceFactorsRequest>
758 m_requireEncryptionInTransitHasBeenSet =
true;
759 m_requireEncryptionInTransit = value;
779 int m_spotMaxPricePercentageOverLowestPrice{0};
781 int m_onDemandMaxPricePercentageOverLowestPrice{0};
787 bool m_requireHibernateSupport{
false};
789 NetworkInterfaceCountRequest m_networkInterfaceCount;
795 TotalLocalStorageGBRequest m_totalLocalStorageGB;
797 BaselineEbsBandwidthMbpsRequest m_baselineEbsBandwidthMbps;
801 AcceleratorCountRequest m_acceleratorCount;
807 AcceleratorTotalMemoryMiBRequest m_acceleratorTotalMemoryMiB;
809 NetworkBandwidthGbpsRequest m_networkBandwidthGbps;
813 int m_maxSpotPriceAsPercentageOfOptimalOnDemandPrice{0};
815 BaselinePerformanceFactorsRequest m_baselinePerformanceFactors;
817 bool m_requireEncryptionInTransit{
false};
818 bool m_vCpuCountHasBeenSet =
false;
819 bool m_memoryMiBHasBeenSet =
false;
820 bool m_cpuManufacturersHasBeenSet =
false;
821 bool m_memoryGiBPerVCpuHasBeenSet =
false;
822 bool m_excludedInstanceTypesHasBeenSet =
false;
823 bool m_instanceGenerationsHasBeenSet =
false;
824 bool m_spotMaxPricePercentageOverLowestPriceHasBeenSet =
false;
825 bool m_onDemandMaxPricePercentageOverLowestPriceHasBeenSet =
false;
826 bool m_bareMetalHasBeenSet =
false;
827 bool m_burstablePerformanceHasBeenSet =
false;
828 bool m_requireHibernateSupportHasBeenSet =
false;
829 bool m_networkInterfaceCountHasBeenSet =
false;
830 bool m_localStorageHasBeenSet =
false;
831 bool m_localStorageTypesHasBeenSet =
false;
832 bool m_totalLocalStorageGBHasBeenSet =
false;
833 bool m_baselineEbsBandwidthMbpsHasBeenSet =
false;
834 bool m_acceleratorTypesHasBeenSet =
false;
835 bool m_acceleratorCountHasBeenSet =
false;
836 bool m_acceleratorManufacturersHasBeenSet =
false;
837 bool m_acceleratorNamesHasBeenSet =
false;
838 bool m_acceleratorTotalMemoryMiBHasBeenSet =
false;
839 bool m_networkBandwidthGbpsHasBeenSet =
false;
840 bool m_allowedInstanceTypesHasBeenSet =
false;
841 bool m_maxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet =
false;
842 bool m_baselinePerformanceFactorsHasBeenSet =
false;
843 bool m_requireEncryptionInTransitHasBeenSet =
false;
void SetMemoryMiB(MemoryMiBT &&value)
const AcceleratorTotalMemoryMiBRequest & GetAcceleratorTotalMemoryMiB() const
void SetNetworkBandwidthGbps(NetworkBandwidthGbpsT &&value)
const Aws::Vector< AcceleratorType > & GetAcceleratorTypes() const
bool RequireEncryptionInTransitHasBeenSet() 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 GetRequireEncryptionInTransit() 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
InstanceRequirementsRequest & WithRequireEncryptionInTransit(bool value)
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
void SetRequireEncryptionInTransit(bool value)
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