7#include <aws/autoscaling/AutoScaling_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9#include <aws/autoscaling/model/VCpuCountRequest.h>
10#include <aws/autoscaling/model/MemoryMiBRequest.h>
11#include <aws/core/utils/memory/stl/AWSVector.h>
12#include <aws/autoscaling/model/MemoryGiBPerVCpuRequest.h>
13#include <aws/autoscaling/model/BareMetal.h>
14#include <aws/autoscaling/model/BurstablePerformance.h>
15#include <aws/autoscaling/model/NetworkInterfaceCountRequest.h>
16#include <aws/autoscaling/model/LocalStorage.h>
17#include <aws/autoscaling/model/TotalLocalStorageGBRequest.h>
18#include <aws/autoscaling/model/BaselineEbsBandwidthMbpsRequest.h>
19#include <aws/autoscaling/model/AcceleratorCountRequest.h>
20#include <aws/autoscaling/model/AcceleratorTotalMemoryMiBRequest.h>
21#include <aws/autoscaling/model/NetworkBandwidthGbpsRequest.h>
22#include <aws/autoscaling/model/BaselinePerformanceFactorsRequest.h>
23#include <aws/autoscaling/model/CpuManufacturer.h>
24#include <aws/core/utils/memory/stl/AWSString.h>
25#include <aws/autoscaling/model/InstanceGeneration.h>
26#include <aws/autoscaling/model/LocalStorageType.h>
27#include <aws/autoscaling/model/AcceleratorType.h>
28#include <aws/autoscaling/model/AcceleratorManufacturer.h>
29#include <aws/autoscaling/model/AcceleratorName.h>
92 template<
typename VCpuCountT = VCpuCountRequest>
93 void SetVCpuCount(VCpuCountT&& value) { m_vCpuCountHasBeenSet =
true; m_vCpuCount = std::forward<VCpuCountT>(value); }
94 template<
typename VCpuCountT = VCpuCountRequest>
105 template<
typename MemoryMiBT = MemoryMiBRequest>
106 void SetMemoryMiB(MemoryMiBT&& value) { m_memoryMiBHasBeenSet =
true; m_memoryMiB = std::forward<MemoryMiBT>(value); }
107 template<
typename MemoryMiBT = MemoryMiBRequest>
126 template<
typename CpuManufacturersT = Aws::Vector<CpuManufacturer>>
127 void SetCpuManufacturers(CpuManufacturersT&& value) { m_cpuManufacturersHasBeenSet =
true; m_cpuManufacturers = std::forward<CpuManufacturersT>(value); }
128 template<
typename CpuManufacturersT = Aws::Vector<CpuManufacturer>>
140 template<
typename MemoryGiBPerVCpuT = MemoryGiBPerVCpuRequest>
141 void SetMemoryGiBPerVCpu(MemoryGiBPerVCpuT&& value) { m_memoryGiBPerVCpuHasBeenSet =
true; m_memoryGiBPerVCpu = std::forward<MemoryGiBPerVCpuT>(value); }
142 template<
typename MemoryGiBPerVCpuT = MemoryGiBPerVCpuRequest>
162 template<
typename ExcludedInstanceTypesT = Aws::Vector<Aws::String>>
163 void SetExcludedInstanceTypes(ExcludedInstanceTypesT&& value) { m_excludedInstanceTypesHasBeenSet =
true; m_excludedInstanceTypes = std::forward<ExcludedInstanceTypesT>(value); }
164 template<
typename ExcludedInstanceTypesT = Aws::Vector<Aws::String>>
166 template<
typename ExcludedInstanceTypesT = Aws::String>
184 template<
typename InstanceGenerationsT = Aws::Vector<InstanceGeneration>>
185 void SetInstanceGenerations(InstanceGenerationsT&& value) { m_instanceGenerationsHasBeenSet =
true; m_instanceGenerations = std::forward<InstanceGenerationsT>(value); }
186 template<
typename InstanceGenerationsT = Aws::Vector<InstanceGeneration>>
318 template<
typename NetworkInterfaceCountT = NetworkInterfaceCountRequest>
319 void SetNetworkInterfaceCount(NetworkInterfaceCountT&& value) { m_networkInterfaceCountHasBeenSet =
true; m_networkInterfaceCount = std::forward<NetworkInterfaceCountT>(value); }
320 template<
typename NetworkInterfaceCountT = NetworkInterfaceCountRequest>
347 template<
typename LocalStorageTypesT = Aws::Vector<LocalStorageType>>
348 void SetLocalStorageTypes(LocalStorageTypesT&& value) { m_localStorageTypesHasBeenSet =
true; m_localStorageTypes = std::forward<LocalStorageTypesT>(value); }
349 template<
typename LocalStorageTypesT = Aws::Vector<LocalStorageType>>
361 template<
typename TotalLocalStorageGBT = TotalLocalStorageGBRequest>
362 void SetTotalLocalStorageGB(TotalLocalStorageGBT&& value) { m_totalLocalStorageGBHasBeenSet =
true; m_totalLocalStorageGB = std::forward<TotalLocalStorageGBT>(value); }
363 template<
typename TotalLocalStorageGBT = TotalLocalStorageGBRequest>
377 template<
typename BaselineEbsBandw
idthMbpsT = BaselineEbsBandw
idthMbpsRequest>
378 void SetBaselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsT&& value) { m_baselineEbsBandwidthMbpsHasBeenSet =
true; m_baselineEbsBandwidthMbps = std::forward<BaselineEbsBandwidthMbpsT>(value); }
379 template<
typename BaselineEbsBandw
idthMbpsT = BaselineEbsBandw
idthMbpsRequest>
394 template<
typename AcceleratorTypesT = Aws::Vector<AcceleratorType>>
395 void SetAcceleratorTypes(AcceleratorTypesT&& value) { m_acceleratorTypesHasBeenSet =
true; m_acceleratorTypes = std::forward<AcceleratorTypesT>(value); }
396 template<
typename AcceleratorTypesT = Aws::Vector<AcceleratorType>>
410 template<
typename AcceleratorCountT = AcceleratorCountRequest>
411 void SetAcceleratorCount(AcceleratorCountT&& value) { m_acceleratorCountHasBeenSet =
true; m_acceleratorCount = std::forward<AcceleratorCountT>(value); }
412 template<
typename AcceleratorCountT = AcceleratorCountRequest>
428 template<
typename AcceleratorManufacturersT = Aws::Vector<AcceleratorManufacturer>>
429 void SetAcceleratorManufacturers(AcceleratorManufacturersT&& value) { m_acceleratorManufacturersHasBeenSet =
true; m_acceleratorManufacturers = std::forward<AcceleratorManufacturersT>(value); }
430 template<
typename AcceleratorManufacturersT = Aws::Vector<AcceleratorManufacturer>>
450 template<
typename AcceleratorNamesT = Aws::Vector<AcceleratorName>>
451 void SetAcceleratorNames(AcceleratorNamesT&& value) { m_acceleratorNamesHasBeenSet =
true; m_acceleratorNames = std::forward<AcceleratorNamesT>(value); }
452 template<
typename AcceleratorNamesT = Aws::Vector<AcceleratorName>>
464 template<
typename AcceleratorTotalMemoryMiBT = AcceleratorTotalMemoryMiBRequest>
465 void SetAcceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBT&& value) { m_acceleratorTotalMemoryMiBHasBeenSet =
true; m_acceleratorTotalMemoryMiB = std::forward<AcceleratorTotalMemoryMiBT>(value); }
466 template<
typename AcceleratorTotalMemoryMiBT = AcceleratorTotalMemoryMiBRequest>
477 template<
typename NetworkBandw
idthGbpsT = NetworkBandw
idthGbpsRequest>
478 void SetNetworkBandwidthGbps(NetworkBandwidthGbpsT&& value) { m_networkBandwidthGbpsHasBeenSet =
true; m_networkBandwidthGbps = std::forward<NetworkBandwidthGbpsT>(value); }
479 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>
515 template<
typename BaselinePerformanceFactorsT = BaselinePerformanceFactorsRequest>
516 void SetBaselinePerformanceFactors(BaselinePerformanceFactorsT&& value) { m_baselinePerformanceFactorsHasBeenSet =
true; m_baselinePerformanceFactors = std::forward<BaselinePerformanceFactorsT>(value); }
517 template<
typename BaselinePerformanceFactorsT = BaselinePerformanceFactorsRequest>
523 bool m_vCpuCountHasBeenSet =
false;
526 bool m_memoryMiBHasBeenSet =
false;
529 bool m_cpuManufacturersHasBeenSet =
false;
532 bool m_memoryGiBPerVCpuHasBeenSet =
false;
535 bool m_excludedInstanceTypesHasBeenSet =
false;
538 bool m_instanceGenerationsHasBeenSet =
false;
540 int m_spotMaxPricePercentageOverLowestPrice{0};
541 bool m_spotMaxPricePercentageOverLowestPriceHasBeenSet =
false;
543 int m_maxSpotPriceAsPercentageOfOptimalOnDemandPrice{0};
544 bool m_maxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet =
false;
546 int m_onDemandMaxPricePercentageOverLowestPrice{0};
547 bool m_onDemandMaxPricePercentageOverLowestPriceHasBeenSet =
false;
550 bool m_bareMetalHasBeenSet =
false;
553 bool m_burstablePerformanceHasBeenSet =
false;
555 bool m_requireHibernateSupport{
false};
556 bool m_requireHibernateSupportHasBeenSet =
false;
558 NetworkInterfaceCountRequest m_networkInterfaceCount;
559 bool m_networkInterfaceCountHasBeenSet =
false;
562 bool m_localStorageHasBeenSet =
false;
565 bool m_localStorageTypesHasBeenSet =
false;
567 TotalLocalStorageGBRequest m_totalLocalStorageGB;
568 bool m_totalLocalStorageGBHasBeenSet =
false;
570 BaselineEbsBandwidthMbpsRequest m_baselineEbsBandwidthMbps;
571 bool m_baselineEbsBandwidthMbpsHasBeenSet =
false;
574 bool m_acceleratorTypesHasBeenSet =
false;
576 AcceleratorCountRequest m_acceleratorCount;
577 bool m_acceleratorCountHasBeenSet =
false;
580 bool m_acceleratorManufacturersHasBeenSet =
false;
583 bool m_acceleratorNamesHasBeenSet =
false;
585 AcceleratorTotalMemoryMiBRequest m_acceleratorTotalMemoryMiB;
586 bool m_acceleratorTotalMemoryMiBHasBeenSet =
false;
588 NetworkBandwidthGbpsRequest m_networkBandwidthGbps;
589 bool m_networkBandwidthGbpsHasBeenSet =
false;
592 bool m_allowedInstanceTypesHasBeenSet =
false;
594 BaselinePerformanceFactorsRequest m_baselinePerformanceFactors;
595 bool m_baselinePerformanceFactorsHasBeenSet =
false;
InstanceRequirements & AddLocalStorageTypes(LocalStorageType value)
void SetTotalLocalStorageGB(TotalLocalStorageGBT &&value)
InstanceRequirements & AddInstanceGenerations(InstanceGeneration value)
const VCpuCountRequest & GetVCpuCount() const
InstanceRequirements & WithBurstablePerformance(BurstablePerformance value)
const Aws::Vector< LocalStorageType > & GetLocalStorageTypes() const
InstanceRequirements & AddAcceleratorTypes(AcceleratorType value)
void SetLocalStorageTypes(LocalStorageTypesT &&value)
BurstablePerformance GetBurstablePerformance() const
void SetMaxSpotPriceAsPercentageOfOptimalOnDemandPrice(int value)
const TotalLocalStorageGBRequest & GetTotalLocalStorageGB() const
InstanceRequirements & WithMaxSpotPriceAsPercentageOfOptimalOnDemandPrice(int value)
AWS_AUTOSCALING_API InstanceRequirements()=default
InstanceRequirements & AddCpuManufacturers(CpuManufacturer value)
InstanceRequirements & WithExcludedInstanceTypes(ExcludedInstanceTypesT &&value)
bool LocalStorageTypesHasBeenSet() const
InstanceRequirements & WithInstanceGenerations(InstanceGenerationsT &&value)
void SetAcceleratorCount(AcceleratorCountT &&value)
void SetNetworkBandwidthGbps(NetworkBandwidthGbpsT &&value)
InstanceRequirements & WithAllowedInstanceTypes(AllowedInstanceTypesT &&value)
const Aws::Vector< AcceleratorName > & GetAcceleratorNames() const
bool AcceleratorManufacturersHasBeenSet() const
bool InstanceGenerationsHasBeenSet() const
void SetBurstablePerformance(BurstablePerformance value)
bool MemoryGiBPerVCpuHasBeenSet() const
bool BurstablePerformanceHasBeenSet() const
const MemoryGiBPerVCpuRequest & GetMemoryGiBPerVCpu() const
bool OnDemandMaxPricePercentageOverLowestPriceHasBeenSet() const
InstanceRequirements & WithLocalStorageTypes(LocalStorageTypesT &&value)
InstanceRequirements & AddAllowedInstanceTypes(AllowedInstanceTypesT &&value)
bool RequireHibernateSupportHasBeenSet() const
InstanceRequirements & WithMemoryGiBPerVCpu(MemoryGiBPerVCpuT &&value)
bool MaxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet() const
const BaselineEbsBandwidthMbpsRequest & GetBaselineEbsBandwidthMbps() const
InstanceRequirements & WithVCpuCount(VCpuCountT &&value)
bool AcceleratorCountHasBeenSet() const
InstanceRequirements & AddExcludedInstanceTypes(ExcludedInstanceTypesT &&value)
void SetBareMetal(BareMetal value)
void SetAcceleratorManufacturers(AcceleratorManufacturersT &&value)
InstanceRequirements & WithCpuManufacturers(CpuManufacturersT &&value)
InstanceRequirements & WithAcceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBT &&value)
const NetworkInterfaceCountRequest & GetNetworkInterfaceCount() const
AWS_AUTOSCALING_API InstanceRequirements & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
const Aws::Vector< AcceleratorType > & GetAcceleratorTypes() const
bool BaselineEbsBandwidthMbpsHasBeenSet() const
const BaselinePerformanceFactorsRequest & GetBaselinePerformanceFactors() const
InstanceRequirements & WithAcceleratorCount(AcceleratorCountT &&value)
InstanceRequirements & WithBaselinePerformanceFactors(BaselinePerformanceFactorsT &&value)
void SetMemoryMiB(MemoryMiBT &&value)
bool AcceleratorTypesHasBeenSet() const
void SetAcceleratorTypes(AcceleratorTypesT &&value)
BareMetal GetBareMetal() const
void SetBaselinePerformanceFactors(BaselinePerformanceFactorsT &&value)
bool LocalStorageHasBeenSet() const
bool TotalLocalStorageGBHasBeenSet() const
InstanceRequirements & WithTotalLocalStorageGB(TotalLocalStorageGBT &&value)
void SetLocalStorage(LocalStorage value)
const Aws::Vector< AcceleratorManufacturer > & GetAcceleratorManufacturers() const
const AcceleratorTotalMemoryMiBRequest & GetAcceleratorTotalMemoryMiB() const
void SetSpotMaxPricePercentageOverLowestPrice(int value)
void SetNetworkInterfaceCount(NetworkInterfaceCountT &&value)
void SetVCpuCount(VCpuCountT &&value)
int GetSpotMaxPricePercentageOverLowestPrice() const
bool ExcludedInstanceTypesHasBeenSet() const
const Aws::Vector< CpuManufacturer > & GetCpuManufacturers() const
InstanceRequirements & WithAcceleratorNames(AcceleratorNamesT &&value)
InstanceRequirements & WithAcceleratorTypes(AcceleratorTypesT &&value)
const Aws::Vector< Aws::String > & GetExcludedInstanceTypes() const
void SetMemoryGiBPerVCpu(MemoryGiBPerVCpuT &&value)
int GetOnDemandMaxPricePercentageOverLowestPrice() const
InstanceRequirements & WithAcceleratorManufacturers(AcceleratorManufacturersT &&value)
void SetAcceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBT &&value)
void SetAllowedInstanceTypes(AllowedInstanceTypesT &&value)
bool AcceleratorNamesHasBeenSet() const
InstanceRequirements & WithNetworkBandwidthGbps(NetworkBandwidthGbpsT &&value)
AWS_AUTOSCALING_API void OutputToStream(Aws::OStream &oStream, const char *location) const
bool BareMetalHasBeenSet() const
bool MemoryMiBHasBeenSet() const
InstanceRequirements & WithBaselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsT &&value)
void SetBaselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsT &&value)
InstanceRequirements & WithOnDemandMaxPricePercentageOverLowestPrice(int value)
void SetCpuManufacturers(CpuManufacturersT &&value)
void SetInstanceGenerations(InstanceGenerationsT &&value)
const MemoryMiBRequest & GetMemoryMiB() const
bool NetworkInterfaceCountHasBeenSet() const
bool AllowedInstanceTypesHasBeenSet() const
int GetMaxSpotPriceAsPercentageOfOptimalOnDemandPrice() const
InstanceRequirements & WithRequireHibernateSupport(bool value)
InstanceRequirements & WithBareMetal(BareMetal value)
LocalStorage GetLocalStorage() const
bool BaselinePerformanceFactorsHasBeenSet() const
bool GetRequireHibernateSupport() const
const AcceleratorCountRequest & GetAcceleratorCount() const
const Aws::Vector< InstanceGeneration > & GetInstanceGenerations() const
void SetRequireHibernateSupport(bool value)
InstanceRequirements & AddAcceleratorManufacturers(AcceleratorManufacturer value)
InstanceRequirements & WithSpotMaxPricePercentageOverLowestPrice(int value)
InstanceRequirements & WithMemoryMiB(MemoryMiBT &&value)
bool AcceleratorTotalMemoryMiBHasBeenSet() const
bool NetworkBandwidthGbpsHasBeenSet() const
void SetOnDemandMaxPricePercentageOverLowestPrice(int value)
bool CpuManufacturersHasBeenSet() const
InstanceRequirements & AddAcceleratorNames(AcceleratorName value)
const NetworkBandwidthGbpsRequest & GetNetworkBandwidthGbps() const
void SetExcludedInstanceTypes(ExcludedInstanceTypesT &&value)
InstanceRequirements & WithNetworkInterfaceCount(NetworkInterfaceCountT &&value)
void SetAcceleratorNames(AcceleratorNamesT &&value)
AWS_AUTOSCALING_API InstanceRequirements(const Aws::Utils::Xml::XmlNode &xmlNode)
AWS_AUTOSCALING_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
const Aws::Vector< Aws::String > & GetAllowedInstanceTypes() const
bool VCpuCountHasBeenSet() const
InstanceRequirements & WithLocalStorage(LocalStorage value)
bool SpotMaxPricePercentageOverLowestPriceHasBeenSet() const
std::vector< T, Aws::Allocator< T > > Vector
std::basic_ostream< char, std::char_traits< char > > OStream