7#include <aws/core/utils/memory/stl/AWSString.h>
8#include <aws/core/utils/memory/stl/AWSVector.h>
9#include <aws/ecs/ECS_EXPORTS.h>
10#include <aws/ecs/model/AcceleratorCountRequest.h>
11#include <aws/ecs/model/AcceleratorManufacturer.h>
12#include <aws/ecs/model/AcceleratorName.h>
13#include <aws/ecs/model/AcceleratorTotalMemoryMiBRequest.h>
14#include <aws/ecs/model/AcceleratorType.h>
15#include <aws/ecs/model/BareMetal.h>
16#include <aws/ecs/model/BaselineEbsBandwidthMbpsRequest.h>
17#include <aws/ecs/model/BurstablePerformance.h>
18#include <aws/ecs/model/CpuManufacturer.h>
19#include <aws/ecs/model/InstanceGeneration.h>
20#include <aws/ecs/model/LocalStorage.h>
21#include <aws/ecs/model/LocalStorageType.h>
22#include <aws/ecs/model/MemoryGiBPerVCpuRequest.h>
23#include <aws/ecs/model/MemoryMiBRequest.h>
24#include <aws/ecs/model/NetworkBandwidthGbpsRequest.h>
25#include <aws/ecs/model/NetworkInterfaceCountRequest.h>
26#include <aws/ecs/model/TotalLocalStorageGBRequest.h>
27#include <aws/ecs/model/VCpuCountRangeRequest.h>
65 template <
typename VCpuCountT = VCpuCountRangeRequest>
67 m_vCpuCountHasBeenSet =
true;
68 m_vCpuCount = std::forward<VCpuCountT>(value);
70 template <
typename VCpuCountT = VCpuCountRangeRequest>
84 template <
typename MemoryMiBT = MemoryMiBRequest>
86 m_memoryMiBHasBeenSet =
true;
87 m_memoryMiB = std::forward<MemoryMiBT>(value);
89 template <
typename MemoryMiBT = MemoryMiBRequest>
104 template <
typename CpuManufacturersT = Aws::Vector<CpuManufacturer>>
106 m_cpuManufacturersHasBeenSet =
true;
107 m_cpuManufacturers = std::forward<CpuManufacturersT>(value);
109 template <
typename CpuManufacturersT = Aws::Vector<CpuManufacturer>>
115 m_cpuManufacturersHasBeenSet =
true;
116 m_cpuManufacturers.push_back(value);
129 template <
typename MemoryGiBPerVCpuT = MemoryGiBPerVCpuRequest>
131 m_memoryGiBPerVCpuHasBeenSet =
true;
132 m_memoryGiBPerVCpu = std::forward<MemoryGiBPerVCpuT>(value);
134 template <
typename MemoryGiBPerVCpuT = MemoryGiBPerVCpuRequest>
149 template <
typename ExcludedInstanceTypesT = Aws::Vector<Aws::String>>
151 m_excludedInstanceTypesHasBeenSet =
true;
152 m_excludedInstanceTypes = std::forward<ExcludedInstanceTypesT>(value);
154 template <
typename ExcludedInstanceTypesT = Aws::Vector<Aws::String>>
159 template <
typename ExcludedInstanceTypesT = Aws::String>
161 m_excludedInstanceTypesHasBeenSet =
true;
162 m_excludedInstanceTypes.emplace_back(std::forward<ExcludedInstanceTypesT>(value));
175 template <
typename InstanceGenerationsT = Aws::Vector<InstanceGeneration>>
177 m_instanceGenerationsHasBeenSet =
true;
178 m_instanceGenerations = std::forward<InstanceGenerationsT>(value);
180 template <
typename InstanceGenerationsT = Aws::Vector<InstanceGeneration>>
186 m_instanceGenerationsHasBeenSet =
true;
187 m_instanceGenerations.push_back(value);
201 m_spotMaxPricePercentageOverLowestPriceHasBeenSet =
true;
202 m_spotMaxPricePercentageOverLowestPrice = value;
225 m_onDemandMaxPricePercentageOverLowestPriceHasBeenSet =
true;
226 m_onDemandMaxPricePercentageOverLowestPrice = value;
243 m_bareMetalHasBeenSet =
true;
262 m_burstablePerformanceHasBeenSet =
true;
263 m_burstablePerformance = value;
280 m_requireHibernateSupportHasBeenSet =
true;
281 m_requireHibernateSupport = value;
296 template <
typename NetworkInterfaceCountT = NetworkInterfaceCountRequest>
298 m_networkInterfaceCountHasBeenSet =
true;
299 m_networkInterfaceCount = std::forward<NetworkInterfaceCountT>(value);
301 template <
typename NetworkInterfaceCountT = NetworkInterfaceCountRequest>
317 m_localStorageHasBeenSet =
true;
318 m_localStorage = value;
333 template <
typename LocalStorageTypesT = Aws::Vector<LocalStorageType>>
335 m_localStorageTypesHasBeenSet =
true;
336 m_localStorageTypes = std::forward<LocalStorageTypesT>(value);
338 template <
typename LocalStorageTypesT = Aws::Vector<LocalStorageType>>
344 m_localStorageTypesHasBeenSet =
true;
345 m_localStorageTypes.push_back(value);
357 template <
typename TotalLocalStorageGBT = TotalLocalStorageGBRequest>
359 m_totalLocalStorageGBHasBeenSet =
true;
360 m_totalLocalStorageGB = std::forward<TotalLocalStorageGBT>(value);
362 template <
typename TotalLocalStorageGBT = TotalLocalStorageGBRequest>
376 template <
typename BaselineEbsBandw
idthMbpsT = BaselineEbsBandw
idthMbpsRequest>
378 m_baselineEbsBandwidthMbpsHasBeenSet =
true;
379 m_baselineEbsBandwidthMbps = std::forward<BaselineEbsBandwidthMbpsT>(value);
381 template <
typename BaselineEbsBandw
idthMbpsT = BaselineEbsBandw
idthMbpsRequest>
396 template <
typename AcceleratorTypesT = Aws::Vector<AcceleratorType>>
398 m_acceleratorTypesHasBeenSet =
true;
399 m_acceleratorTypes = std::forward<AcceleratorTypesT>(value);
401 template <
typename AcceleratorTypesT = Aws::Vector<AcceleratorType>>
407 m_acceleratorTypesHasBeenSet =
true;
408 m_acceleratorTypes.push_back(value);
421 template <
typename AcceleratorCountT = AcceleratorCountRequest>
423 m_acceleratorCountHasBeenSet =
true;
424 m_acceleratorCount = std::forward<AcceleratorCountT>(value);
426 template <
typename AcceleratorCountT = AcceleratorCountRequest>
441 template <
typename AcceleratorManufacturersT = Aws::Vector<AcceleratorManufacturer>>
443 m_acceleratorManufacturersHasBeenSet =
true;
444 m_acceleratorManufacturers = std::forward<AcceleratorManufacturersT>(value);
446 template <
typename AcceleratorManufacturersT = Aws::Vector<AcceleratorManufacturer>>
452 m_acceleratorManufacturersHasBeenSet =
true;
453 m_acceleratorManufacturers.push_back(value);
466 template <
typename AcceleratorNamesT = Aws::Vector<AcceleratorName>>
468 m_acceleratorNamesHasBeenSet =
true;
469 m_acceleratorNames = std::forward<AcceleratorNamesT>(value);
471 template <
typename AcceleratorNamesT = Aws::Vector<AcceleratorName>>
477 m_acceleratorNamesHasBeenSet =
true;
478 m_acceleratorNames.push_back(value);
490 template <
typename AcceleratorTotalMemoryMiBT = AcceleratorTotalMemoryMiBRequest>
492 m_acceleratorTotalMemoryMiBHasBeenSet =
true;
493 m_acceleratorTotalMemoryMiB = std::forward<AcceleratorTotalMemoryMiBT>(value);
495 template <
typename AcceleratorTotalMemoryMiBT = AcceleratorTotalMemoryMiBRequest>
509 template <
typename NetworkBandw
idthGbpsT = NetworkBandw
idthGbpsRequest>
511 m_networkBandwidthGbpsHasBeenSet =
true;
512 m_networkBandwidthGbps = std::forward<NetworkBandwidthGbpsT>(value);
514 template <
typename NetworkBandw
idthGbpsT = NetworkBandw
idthGbpsRequest>
529 template <
typename AllowedInstanceTypesT = Aws::Vector<Aws::String>>
531 m_allowedInstanceTypesHasBeenSet =
true;
532 m_allowedInstanceTypes = std::forward<AllowedInstanceTypesT>(value);
534 template <
typename AllowedInstanceTypesT = Aws::Vector<Aws::String>>
539 template <
typename AllowedInstanceTypesT = Aws::String>
541 m_allowedInstanceTypesHasBeenSet =
true;
542 m_allowedInstanceTypes.emplace_back(std::forward<AllowedInstanceTypesT>(value));
554 return m_maxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet;
557 m_maxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet =
true;
558 m_maxSpotPriceAsPercentageOfOptimalOnDemandPrice = value;
578 int m_spotMaxPricePercentageOverLowestPrice{0};
580 int m_onDemandMaxPricePercentageOverLowestPrice{0};
586 bool m_requireHibernateSupport{
false};
588 NetworkInterfaceCountRequest m_networkInterfaceCount;
594 TotalLocalStorageGBRequest m_totalLocalStorageGB;
596 BaselineEbsBandwidthMbpsRequest m_baselineEbsBandwidthMbps;
600 AcceleratorCountRequest m_acceleratorCount;
606 AcceleratorTotalMemoryMiBRequest m_acceleratorTotalMemoryMiB;
608 NetworkBandwidthGbpsRequest m_networkBandwidthGbps;
612 int m_maxSpotPriceAsPercentageOfOptimalOnDemandPrice{0};
613 bool m_vCpuCountHasBeenSet =
false;
614 bool m_memoryMiBHasBeenSet =
false;
615 bool m_cpuManufacturersHasBeenSet =
false;
616 bool m_memoryGiBPerVCpuHasBeenSet =
false;
617 bool m_excludedInstanceTypesHasBeenSet =
false;
618 bool m_instanceGenerationsHasBeenSet =
false;
619 bool m_spotMaxPricePercentageOverLowestPriceHasBeenSet =
false;
620 bool m_onDemandMaxPricePercentageOverLowestPriceHasBeenSet =
false;
621 bool m_bareMetalHasBeenSet =
false;
622 bool m_burstablePerformanceHasBeenSet =
false;
623 bool m_requireHibernateSupportHasBeenSet =
false;
624 bool m_networkInterfaceCountHasBeenSet =
false;
625 bool m_localStorageHasBeenSet =
false;
626 bool m_localStorageTypesHasBeenSet =
false;
627 bool m_totalLocalStorageGBHasBeenSet =
false;
628 bool m_baselineEbsBandwidthMbpsHasBeenSet =
false;
629 bool m_acceleratorTypesHasBeenSet =
false;
630 bool m_acceleratorCountHasBeenSet =
false;
631 bool m_acceleratorManufacturersHasBeenSet =
false;
632 bool m_acceleratorNamesHasBeenSet =
false;
633 bool m_acceleratorTotalMemoryMiBHasBeenSet =
false;
634 bool m_networkBandwidthGbpsHasBeenSet =
false;
635 bool m_allowedInstanceTypesHasBeenSet =
false;
636 bool m_maxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet =
false;
const Aws::Vector< InstanceGeneration > & GetInstanceGenerations() const
const Aws::Vector< AcceleratorManufacturer > & GetAcceleratorManufacturers() const
void SetTotalLocalStorageGB(TotalLocalStorageGBT &&value)
void SetAcceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBT &&value)
void SetRequireHibernateSupport(bool value)
bool AcceleratorCountHasBeenSet() const
void SetAcceleratorCount(AcceleratorCountT &&value)
const AcceleratorTotalMemoryMiBRequest & GetAcceleratorTotalMemoryMiB() const
void SetSpotMaxPricePercentageOverLowestPrice(int value)
bool NetworkBandwidthGbpsHasBeenSet() const
InstanceRequirementsRequest & AddLocalStorageTypes(LocalStorageType value)
const Aws::Vector< Aws::String > & GetAllowedInstanceTypes() const
InstanceRequirementsRequest & WithOnDemandMaxPricePercentageOverLowestPrice(int value)
InstanceRequirementsRequest & WithRequireHibernateSupport(bool value)
InstanceRequirementsRequest & WithCpuManufacturers(CpuManufacturersT &&value)
InstanceRequirementsRequest & WithVCpuCount(VCpuCountT &&value)
bool SpotMaxPricePercentageOverLowestPriceHasBeenSet() const
void SetLocalStorageTypes(LocalStorageTypesT &&value)
bool GetRequireHibernateSupport() const
bool MemoryGiBPerVCpuHasBeenSet() const
const TotalLocalStorageGBRequest & GetTotalLocalStorageGB() const
LocalStorage GetLocalStorage() const
bool NetworkInterfaceCountHasBeenSet() const
InstanceRequirementsRequest & WithSpotMaxPricePercentageOverLowestPrice(int value)
int GetOnDemandMaxPricePercentageOverLowestPrice() const
bool RequireHibernateSupportHasBeenSet() const
void SetNetworkInterfaceCount(NetworkInterfaceCountT &&value)
bool BurstablePerformanceHasBeenSet() const
bool MaxSpotPriceAsPercentageOfOptimalOnDemandPriceHasBeenSet() const
bool LocalStorageHasBeenSet() const
bool LocalStorageTypesHasBeenSet() const
int GetMaxSpotPriceAsPercentageOfOptimalOnDemandPrice() const
InstanceRequirementsRequest & WithExcludedInstanceTypes(ExcludedInstanceTypesT &&value)
bool AcceleratorManufacturersHasBeenSet() const
InstanceRequirementsRequest & WithAcceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBT &&value)
void SetInstanceGenerations(InstanceGenerationsT &&value)
bool ExcludedInstanceTypesHasBeenSet() const
InstanceRequirementsRequest & WithMemoryMiB(MemoryMiBT &&value)
const BaselineEbsBandwidthMbpsRequest & GetBaselineEbsBandwidthMbps() const
void SetMemoryMiB(MemoryMiBT &&value)
InstanceRequirementsRequest & AddCpuManufacturers(CpuManufacturer value)
void SetVCpuCount(VCpuCountT &&value)
const Aws::Vector< Aws::String > & GetExcludedInstanceTypes() const
InstanceRequirementsRequest & AddInstanceGenerations(InstanceGeneration value)
InstanceRequirementsRequest & WithAcceleratorTypes(AcceleratorTypesT &&value)
const VCpuCountRangeRequest & GetVCpuCount() const
InstanceRequirementsRequest & AddExcludedInstanceTypes(ExcludedInstanceTypesT &&value)
const Aws::Vector< AcceleratorType > & GetAcceleratorTypes() const
bool CpuManufacturersHasBeenSet() const
bool VCpuCountHasBeenSet() const
InstanceRequirementsRequest & WithBaselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsT &&value)
bool MemoryMiBHasBeenSet() const
bool OnDemandMaxPricePercentageOverLowestPriceHasBeenSet() const
void SetCpuManufacturers(CpuManufacturersT &&value)
AWS_ECS_API InstanceRequirementsRequest()=default
InstanceRequirementsRequest & AddAcceleratorManufacturers(AcceleratorManufacturer value)
bool AcceleratorNamesHasBeenSet() const
void SetAcceleratorManufacturers(AcceleratorManufacturersT &&value)
bool BaselineEbsBandwidthMbpsHasBeenSet() const
InstanceRequirementsRequest & WithAcceleratorCount(AcceleratorCountT &&value)
void SetBurstablePerformance(BurstablePerformance value)
InstanceRequirementsRequest & WithBareMetal(BareMetal value)
InstanceRequirementsRequest & WithNetworkInterfaceCount(NetworkInterfaceCountT &&value)
void SetExcludedInstanceTypes(ExcludedInstanceTypesT &&value)
InstanceRequirementsRequest & AddAllowedInstanceTypes(AllowedInstanceTypesT &&value)
InstanceRequirementsRequest & AddAcceleratorNames(AcceleratorName value)
InstanceRequirementsRequest & WithMaxSpotPriceAsPercentageOfOptimalOnDemandPrice(int value)
InstanceRequirementsRequest & WithAcceleratorNames(AcceleratorNamesT &&value)
const NetworkBandwidthGbpsRequest & GetNetworkBandwidthGbps() const
void SetAcceleratorTypes(AcceleratorTypesT &&value)
InstanceRequirementsRequest & WithMemoryGiBPerVCpu(MemoryGiBPerVCpuT &&value)
const AcceleratorCountRequest & GetAcceleratorCount() const
int GetSpotMaxPricePercentageOverLowestPrice() const
bool BareMetalHasBeenSet() const
void SetNetworkBandwidthGbps(NetworkBandwidthGbpsT &&value)
bool AcceleratorTotalMemoryMiBHasBeenSet() const
const Aws::Vector< CpuManufacturer > & GetCpuManufacturers() const
void SetBaselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsT &&value)
const NetworkInterfaceCountRequest & GetNetworkInterfaceCount() const
const MemoryMiBRequest & GetMemoryMiB() const
BurstablePerformance GetBurstablePerformance() const
void SetMaxSpotPriceAsPercentageOfOptimalOnDemandPrice(int value)
void SetBareMetal(BareMetal value)
void SetMemoryGiBPerVCpu(MemoryGiBPerVCpuT &&value)
InstanceRequirementsRequest & WithTotalLocalStorageGB(TotalLocalStorageGBT &&value)
InstanceRequirementsRequest & WithLocalStorageTypes(LocalStorageTypesT &&value)
bool InstanceGenerationsHasBeenSet() const
InstanceRequirementsRequest & WithLocalStorage(LocalStorage value)
InstanceRequirementsRequest & WithAcceleratorManufacturers(AcceleratorManufacturersT &&value)
InstanceRequirementsRequest & WithInstanceGenerations(InstanceGenerationsT &&value)
bool AllowedInstanceTypesHasBeenSet() const
bool AcceleratorTypesHasBeenSet() const
InstanceRequirementsRequest & WithBurstablePerformance(BurstablePerformance value)
AWS_ECS_API InstanceRequirementsRequest & operator=(Aws::Utils::Json::JsonView jsonValue)
BareMetal GetBareMetal() const
InstanceRequirementsRequest & WithNetworkBandwidthGbps(NetworkBandwidthGbpsT &&value)
const Aws::Vector< AcceleratorName > & GetAcceleratorNames() const
InstanceRequirementsRequest & WithAllowedInstanceTypes(AllowedInstanceTypesT &&value)
void SetAcceleratorNames(AcceleratorNamesT &&value)
void SetOnDemandMaxPricePercentageOverLowestPrice(int value)
AWS_ECS_API Aws::Utils::Json::JsonValue Jsonize() const
void SetAllowedInstanceTypes(AllowedInstanceTypesT &&value)
const Aws::Vector< LocalStorageType > & GetLocalStorageTypes() const
void SetLocalStorage(LocalStorage value)
bool TotalLocalStorageGBHasBeenSet() const
AWS_ECS_API InstanceRequirementsRequest(Aws::Utils::Json::JsonView jsonValue)
const MemoryGiBPerVCpuRequest & GetMemoryGiBPerVCpu() const
InstanceRequirementsRequest & AddAcceleratorTypes(AcceleratorType value)
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue