AWS SDK for C++

AWS SDK for C++ Version 1.11.811

Loading...
Searching...
No Matches
AutoScalingGroupRecommendationOption.h
1
6#pragma once
7#include <aws/compute-optimizer/ComputeOptimizer_EXPORTS.h>
8#include <aws/compute-optimizer/model/AutoScalingGroupConfiguration.h>
9#include <aws/compute-optimizer/model/AutoScalingGroupSavingsOpportunityAfterDiscounts.h>
10#include <aws/compute-optimizer/model/GpuInfo.h>
11#include <aws/compute-optimizer/model/MigrationEffort.h>
12#include <aws/compute-optimizer/model/SavingsOpportunity.h>
13#include <aws/compute-optimizer/model/UtilizationMetric.h>
14#include <aws/core/utils/memory/stl/AWSVector.h>
15#include <aws/crt/cbor/Cbor.h>
16
17#include <utility>
18
19namespace Aws {
20namespace Utils {
21namespace Cbor {
22class CborValue;
23} // namespace Cbor
24} // namespace Utils
25namespace ComputeOptimizer {
26namespace Model {
27
35 public:
36 AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendationOption() = default;
37 AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendationOption(const std::shared_ptr<Aws::Crt::Cbor::CborDecoder>& decoder);
38 AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendationOption& operator=(const std::shared_ptr<Aws::Crt::Cbor::CborDecoder>& decoder);
39 AWS_COMPUTEOPTIMIZER_API void CborEncode(Aws::Crt::Cbor::CborEncoder& encoder) const;
40
42
45 inline const AutoScalingGroupConfiguration& GetConfiguration() const { return m_configuration; }
46 inline bool ConfigurationHasBeenSet() const { return m_configurationHasBeenSet; }
47 template <typename ConfigurationT = AutoScalingGroupConfiguration>
48 void SetConfiguration(ConfigurationT&& value) {
49 m_configurationHasBeenSet = true;
50 m_configuration = std::forward<ConfigurationT>(value);
51 }
52 template <typename ConfigurationT = AutoScalingGroupConfiguration>
54 SetConfiguration(std::forward<ConfigurationT>(value));
55 return *this;
56 }
58
60
64 inline const GpuInfo& GetInstanceGpuInfo() const { return m_instanceGpuInfo; }
65 inline bool InstanceGpuInfoHasBeenSet() const { return m_instanceGpuInfoHasBeenSet; }
66 template <typename InstanceGpuInfoT = GpuInfo>
67 void SetInstanceGpuInfo(InstanceGpuInfoT&& value) {
68 m_instanceGpuInfoHasBeenSet = true;
69 m_instanceGpuInfo = std::forward<InstanceGpuInfoT>(value);
70 }
71 template <typename InstanceGpuInfoT = GpuInfo>
73 SetInstanceGpuInfo(std::forward<InstanceGpuInfoT>(value));
74 return *this;
75 }
77
79
89 inline const Aws::Vector<UtilizationMetric>& GetProjectedUtilizationMetrics() const { return m_projectedUtilizationMetrics; }
90 inline bool ProjectedUtilizationMetricsHasBeenSet() const { return m_projectedUtilizationMetricsHasBeenSet; }
91 template <typename ProjectedUtilizationMetricsT = Aws::Vector<UtilizationMetric>>
92 void SetProjectedUtilizationMetrics(ProjectedUtilizationMetricsT&& value) {
93 m_projectedUtilizationMetricsHasBeenSet = true;
94 m_projectedUtilizationMetrics = std::forward<ProjectedUtilizationMetricsT>(value);
95 }
96 template <typename ProjectedUtilizationMetricsT = Aws::Vector<UtilizationMetric>>
98 SetProjectedUtilizationMetrics(std::forward<ProjectedUtilizationMetricsT>(value));
99 return *this;
100 }
101 template <typename ProjectedUtilizationMetricsT = UtilizationMetric>
103 m_projectedUtilizationMetricsHasBeenSet = true;
104 m_projectedUtilizationMetrics.emplace_back(std::forward<ProjectedUtilizationMetricsT>(value));
105 return *this;
106 }
108
110
125 inline double GetPerformanceRisk() const { return m_performanceRisk; }
126 inline bool PerformanceRiskHasBeenSet() const { return m_performanceRiskHasBeenSet; }
127 inline void SetPerformanceRisk(double value) {
128 m_performanceRiskHasBeenSet = true;
129 m_performanceRisk = value;
130 }
132 SetPerformanceRisk(value);
133 return *this;
134 }
136
138
142 inline int64_t GetRank() const { return m_rank; }
143 inline bool RankHasBeenSet() const { return m_rankHasBeenSet; }
144 inline void SetRank(int64_t value) {
145 m_rankHasBeenSet = true;
146 m_rank = value;
147 }
149 SetRank(value);
150 return *this;
151 }
153
155
160 inline const SavingsOpportunity& GetSavingsOpportunity() const { return m_savingsOpportunity; }
161 inline bool SavingsOpportunityHasBeenSet() const { return m_savingsOpportunityHasBeenSet; }
162 template <typename SavingsOpportunityT = SavingsOpportunity>
163 void SetSavingsOpportunity(SavingsOpportunityT&& value) {
164 m_savingsOpportunityHasBeenSet = true;
165 m_savingsOpportunity = std::forward<SavingsOpportunityT>(value);
166 }
167 template <typename SavingsOpportunityT = SavingsOpportunity>
169 SetSavingsOpportunity(std::forward<SavingsOpportunityT>(value));
170 return *this;
171 }
173
175
182 return m_savingsOpportunityAfterDiscounts;
183 }
184 inline bool SavingsOpportunityAfterDiscountsHasBeenSet() const { return m_savingsOpportunityAfterDiscountsHasBeenSet; }
185 template <typename SavingsOpportunityAfterDiscountsT = AutoScalingGroupSavingsOpportunityAfterDiscounts>
186 void SetSavingsOpportunityAfterDiscounts(SavingsOpportunityAfterDiscountsT&& value) {
187 m_savingsOpportunityAfterDiscountsHasBeenSet = true;
188 m_savingsOpportunityAfterDiscounts = std::forward<SavingsOpportunityAfterDiscountsT>(value);
189 }
190 template <typename SavingsOpportunityAfterDiscountsT = AutoScalingGroupSavingsOpportunityAfterDiscounts>
192 SetSavingsOpportunityAfterDiscounts(std::forward<SavingsOpportunityAfterDiscountsT>(value));
193 return *this;
194 }
196
198
208 inline MigrationEffort GetMigrationEffort() const { return m_migrationEffort; }
209 inline bool MigrationEffortHasBeenSet() const { return m_migrationEffortHasBeenSet; }
211 m_migrationEffortHasBeenSet = true;
212 m_migrationEffort = value;
213 }
215 SetMigrationEffort(value);
216 return *this;
217 }
219 private:
220 AutoScalingGroupConfiguration m_configuration;
221
222 GpuInfo m_instanceGpuInfo;
223
224 Aws::Vector<UtilizationMetric> m_projectedUtilizationMetrics;
225
226 double m_performanceRisk{0.0};
227
228 int64_t m_rank{0};
229
230 SavingsOpportunity m_savingsOpportunity;
231
232 AutoScalingGroupSavingsOpportunityAfterDiscounts m_savingsOpportunityAfterDiscounts;
233
234 MigrationEffort m_migrationEffort{MigrationEffort::NOT_SET};
235 bool m_configurationHasBeenSet = false;
236 bool m_instanceGpuInfoHasBeenSet = false;
237 bool m_projectedUtilizationMetricsHasBeenSet = false;
238 bool m_performanceRiskHasBeenSet = false;
239 bool m_rankHasBeenSet = false;
240 bool m_savingsOpportunityHasBeenSet = false;
241 bool m_savingsOpportunityAfterDiscountsHasBeenSet = false;
242 bool m_migrationEffortHasBeenSet = false;
243};
244
245} // namespace Model
246} // namespace ComputeOptimizer
247} // namespace Aws
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendationOption & operator=(const std::shared_ptr< Aws::Crt::Cbor::CborDecoder > &decoder)
AutoScalingGroupRecommendationOption & WithSavingsOpportunity(SavingsOpportunityT &&value)
AutoScalingGroupRecommendationOption & WithMigrationEffort(MigrationEffort value)
AWS_COMPUTEOPTIMIZER_API void CborEncode(Aws::Crt::Cbor::CborEncoder &encoder) const
AutoScalingGroupRecommendationOption & WithInstanceGpuInfo(InstanceGpuInfoT &&value)
AutoScalingGroupRecommendationOption & WithProjectedUtilizationMetrics(ProjectedUtilizationMetricsT &&value)
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendationOption()=default
AutoScalingGroupRecommendationOption & WithConfiguration(ConfigurationT &&value)
AutoScalingGroupRecommendationOption & WithSavingsOpportunityAfterDiscounts(SavingsOpportunityAfterDiscountsT &&value)
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendationOption(const std::shared_ptr< Aws::Crt::Cbor::CborDecoder > &decoder)
AutoScalingGroupRecommendationOption & AddProjectedUtilizationMetrics(ProjectedUtilizationMetricsT &&value)
const AutoScalingGroupSavingsOpportunityAfterDiscounts & GetSavingsOpportunityAfterDiscounts() const
std::vector< T, Aws::Allocator< T > > Vector