AWS SDK for C++

AWS SDK for C++ Version 1.11.811

Loading...
Searching...
No Matches
AutoScalingGroupRecommendation.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/AutoScalingGroupRecommendationOption.h>
10#include <aws/compute-optimizer/model/CurrentPerformanceRisk.h>
11#include <aws/compute-optimizer/model/EffectiveRecommendationPreferences.h>
12#include <aws/compute-optimizer/model/Finding.h>
13#include <aws/compute-optimizer/model/GpuInfo.h>
14#include <aws/compute-optimizer/model/InferredWorkloadType.h>
15#include <aws/compute-optimizer/model/UtilizationMetric.h>
16#include <aws/core/utils/DateTime.h>
17#include <aws/core/utils/memory/stl/AWSString.h>
18#include <aws/core/utils/memory/stl/AWSVector.h>
19#include <aws/crt/cbor/Cbor.h>
20
21#include <utility>
22
23namespace Aws {
24namespace Utils {
25namespace Cbor {
26class CborValue;
27} // namespace Cbor
28} // namespace Utils
29namespace ComputeOptimizer {
30namespace Model {
31
38 public:
39 AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation() = default;
40 AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation(const std::shared_ptr<Aws::Crt::Cbor::CborDecoder>& decoder);
41 AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation& operator=(const std::shared_ptr<Aws::Crt::Cbor::CborDecoder>& decoder);
42 AWS_COMPUTEOPTIMIZER_API void CborEncode(Aws::Crt::Cbor::CborEncoder& encoder) const;
43
45
48 inline const Aws::String& GetAccountId() const { return m_accountId; }
49 inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; }
50 template <typename AccountIdT = Aws::String>
51 void SetAccountId(AccountIdT&& value) {
52 m_accountIdHasBeenSet = true;
53 m_accountId = std::forward<AccountIdT>(value);
54 }
55 template <typename AccountIdT = Aws::String>
57 SetAccountId(std::forward<AccountIdT>(value));
58 return *this;
59 }
61
63
66 inline const Aws::String& GetAutoScalingGroupArn() const { return m_autoScalingGroupArn; }
67 inline bool AutoScalingGroupArnHasBeenSet() const { return m_autoScalingGroupArnHasBeenSet; }
68 template <typename AutoScalingGroupArnT = Aws::String>
69 void SetAutoScalingGroupArn(AutoScalingGroupArnT&& value) {
70 m_autoScalingGroupArnHasBeenSet = true;
71 m_autoScalingGroupArn = std::forward<AutoScalingGroupArnT>(value);
72 }
73 template <typename AutoScalingGroupArnT = Aws::String>
75 SetAutoScalingGroupArn(std::forward<AutoScalingGroupArnT>(value));
76 return *this;
77 }
79
81
84 inline const Aws::String& GetAutoScalingGroupName() const { return m_autoScalingGroupName; }
85 inline bool AutoScalingGroupNameHasBeenSet() const { return m_autoScalingGroupNameHasBeenSet; }
86 template <typename AutoScalingGroupNameT = Aws::String>
87 void SetAutoScalingGroupName(AutoScalingGroupNameT&& value) {
88 m_autoScalingGroupNameHasBeenSet = true;
89 m_autoScalingGroupName = std::forward<AutoScalingGroupNameT>(value);
90 }
91 template <typename AutoScalingGroupNameT = Aws::String>
93 SetAutoScalingGroupName(std::forward<AutoScalingGroupNameT>(value));
94 return *this;
95 }
97
99
110 inline Finding GetFinding() const { return m_finding; }
111 inline bool FindingHasBeenSet() const { return m_findingHasBeenSet; }
112 inline void SetFinding(Finding value) {
113 m_findingHasBeenSet = true;
114 m_finding = value;
115 }
117 SetFinding(value);
118 return *this;
119 }
121
123
127 inline const Aws::Vector<UtilizationMetric>& GetUtilizationMetrics() const { return m_utilizationMetrics; }
128 inline bool UtilizationMetricsHasBeenSet() const { return m_utilizationMetricsHasBeenSet; }
129 template <typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
130 void SetUtilizationMetrics(UtilizationMetricsT&& value) {
131 m_utilizationMetricsHasBeenSet = true;
132 m_utilizationMetrics = std::forward<UtilizationMetricsT>(value);
133 }
134 template <typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
136 SetUtilizationMetrics(std::forward<UtilizationMetricsT>(value));
137 return *this;
138 }
139 template <typename UtilizationMetricsT = UtilizationMetric>
141 m_utilizationMetricsHasBeenSet = true;
142 m_utilizationMetrics.emplace_back(std::forward<UtilizationMetricsT>(value));
143 return *this;
144 }
146
148
152 inline double GetLookBackPeriodInDays() const { return m_lookBackPeriodInDays; }
153 inline bool LookBackPeriodInDaysHasBeenSet() const { return m_lookBackPeriodInDaysHasBeenSet; }
154 inline void SetLookBackPeriodInDays(double value) {
155 m_lookBackPeriodInDaysHasBeenSet = true;
156 m_lookBackPeriodInDays = value;
157 }
160 return *this;
161 }
163
165
169 inline const AutoScalingGroupConfiguration& GetCurrentConfiguration() const { return m_currentConfiguration; }
170 inline bool CurrentConfigurationHasBeenSet() const { return m_currentConfigurationHasBeenSet; }
171 template <typename CurrentConfigurationT = AutoScalingGroupConfiguration>
172 void SetCurrentConfiguration(CurrentConfigurationT&& value) {
173 m_currentConfigurationHasBeenSet = true;
174 m_currentConfiguration = std::forward<CurrentConfigurationT>(value);
175 }
176 template <typename CurrentConfigurationT = AutoScalingGroupConfiguration>
178 SetCurrentConfiguration(std::forward<CurrentConfigurationT>(value));
179 return *this;
180 }
182
184
188 inline const GpuInfo& GetCurrentInstanceGpuInfo() const { return m_currentInstanceGpuInfo; }
189 inline bool CurrentInstanceGpuInfoHasBeenSet() const { return m_currentInstanceGpuInfoHasBeenSet; }
190 template <typename CurrentInstanceGpuInfoT = GpuInfo>
191 void SetCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT&& value) {
192 m_currentInstanceGpuInfoHasBeenSet = true;
193 m_currentInstanceGpuInfo = std::forward<CurrentInstanceGpuInfoT>(value);
194 }
195 template <typename CurrentInstanceGpuInfoT = GpuInfo>
197 SetCurrentInstanceGpuInfo(std::forward<CurrentInstanceGpuInfoT>(value));
198 return *this;
199 }
201
203
207 inline const Aws::Vector<AutoScalingGroupRecommendationOption>& GetRecommendationOptions() const { return m_recommendationOptions; }
208 inline bool RecommendationOptionsHasBeenSet() const { return m_recommendationOptionsHasBeenSet; }
209 template <typename RecommendationOptionsT = Aws::Vector<AutoScalingGroupRecommendationOption>>
210 void SetRecommendationOptions(RecommendationOptionsT&& value) {
211 m_recommendationOptionsHasBeenSet = true;
212 m_recommendationOptions = std::forward<RecommendationOptionsT>(value);
213 }
214 template <typename RecommendationOptionsT = Aws::Vector<AutoScalingGroupRecommendationOption>>
216 SetRecommendationOptions(std::forward<RecommendationOptionsT>(value));
217 return *this;
218 }
219 template <typename RecommendationOptionsT = AutoScalingGroupRecommendationOption>
221 m_recommendationOptionsHasBeenSet = true;
222 m_recommendationOptions.emplace_back(std::forward<RecommendationOptionsT>(value));
223 return *this;
224 }
226
228
232 inline const Aws::Utils::DateTime& GetLastRefreshTimestamp() const { return m_lastRefreshTimestamp; }
233 inline bool LastRefreshTimestampHasBeenSet() const { return m_lastRefreshTimestampHasBeenSet; }
234 template <typename LastRefreshTimestampT = Aws::Utils::DateTime>
235 void SetLastRefreshTimestamp(LastRefreshTimestampT&& value) {
236 m_lastRefreshTimestampHasBeenSet = true;
237 m_lastRefreshTimestamp = std::forward<LastRefreshTimestampT>(value);
238 }
239 template <typename LastRefreshTimestampT = Aws::Utils::DateTime>
241 SetLastRefreshTimestamp(std::forward<LastRefreshTimestampT>(value));
242 return *this;
243 }
245
247
253 inline CurrentPerformanceRisk GetCurrentPerformanceRisk() const { return m_currentPerformanceRisk; }
254 inline bool CurrentPerformanceRiskHasBeenSet() const { return m_currentPerformanceRiskHasBeenSet; }
256 m_currentPerformanceRiskHasBeenSet = true;
257 m_currentPerformanceRisk = value;
258 }
261 return *this;
262 }
264
266
271 return m_effectiveRecommendationPreferences;
272 }
273 inline bool EffectiveRecommendationPreferencesHasBeenSet() const { return m_effectiveRecommendationPreferencesHasBeenSet; }
274 template <typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
275 void SetEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT&& value) {
276 m_effectiveRecommendationPreferencesHasBeenSet = true;
277 m_effectiveRecommendationPreferences = std::forward<EffectiveRecommendationPreferencesT>(value);
278 }
279 template <typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
280 AutoScalingGroupRecommendation& WithEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT&& value) {
281 SetEffectiveRecommendationPreferences(std::forward<EffectiveRecommendationPreferencesT>(value));
282 return *this;
283 }
285
287
305 inline const Aws::Vector<InferredWorkloadType>& GetInferredWorkloadTypes() const { return m_inferredWorkloadTypes; }
306 inline bool InferredWorkloadTypesHasBeenSet() const { return m_inferredWorkloadTypesHasBeenSet; }
307 template <typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
308 void SetInferredWorkloadTypes(InferredWorkloadTypesT&& value) {
309 m_inferredWorkloadTypesHasBeenSet = true;
310 m_inferredWorkloadTypes = std::forward<InferredWorkloadTypesT>(value);
311 }
312 template <typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
314 SetInferredWorkloadTypes(std::forward<InferredWorkloadTypesT>(value));
315 return *this;
316 }
318 m_inferredWorkloadTypesHasBeenSet = true;
319 m_inferredWorkloadTypes.push_back(value);
320 return *this;
321 }
323 private:
324 Aws::String m_accountId;
325
326 Aws::String m_autoScalingGroupArn;
327
328 Aws::String m_autoScalingGroupName;
329
330 Finding m_finding{Finding::NOT_SET};
331
332 Aws::Vector<UtilizationMetric> m_utilizationMetrics;
333
334 double m_lookBackPeriodInDays{0.0};
335
336 AutoScalingGroupConfiguration m_currentConfiguration;
337
338 GpuInfo m_currentInstanceGpuInfo;
339
341
342 Aws::Utils::DateTime m_lastRefreshTimestamp{};
343
345
346 EffectiveRecommendationPreferences m_effectiveRecommendationPreferences;
347
348 Aws::Vector<InferredWorkloadType> m_inferredWorkloadTypes;
349 bool m_accountIdHasBeenSet = false;
350 bool m_autoScalingGroupArnHasBeenSet = false;
351 bool m_autoScalingGroupNameHasBeenSet = false;
352 bool m_findingHasBeenSet = false;
353 bool m_utilizationMetricsHasBeenSet = false;
354 bool m_lookBackPeriodInDaysHasBeenSet = false;
355 bool m_currentConfigurationHasBeenSet = false;
356 bool m_currentInstanceGpuInfoHasBeenSet = false;
357 bool m_recommendationOptionsHasBeenSet = false;
358 bool m_lastRefreshTimestampHasBeenSet = false;
359 bool m_currentPerformanceRiskHasBeenSet = false;
360 bool m_effectiveRecommendationPreferencesHasBeenSet = false;
361 bool m_inferredWorkloadTypesHasBeenSet = false;
362};
363
364} // namespace Model
365} // namespace ComputeOptimizer
366} // namespace Aws
AutoScalingGroupRecommendation & WithInferredWorkloadTypes(InferredWorkloadTypesT &&value)
AutoScalingGroupRecommendation & WithRecommendationOptions(RecommendationOptionsT &&value)
AutoScalingGroupRecommendation & AddRecommendationOptions(RecommendationOptionsT &&value)
const Aws::Vector< InferredWorkloadType > & GetInferredWorkloadTypes() const
AutoScalingGroupRecommendation & WithCurrentConfiguration(CurrentConfigurationT &&value)
AWS_COMPUTEOPTIMIZER_API void CborEncode(Aws::Crt::Cbor::CborEncoder &encoder) const
AutoScalingGroupRecommendation & WithLastRefreshTimestamp(LastRefreshTimestampT &&value)
AutoScalingGroupRecommendation & WithCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT &&value)
AutoScalingGroupRecommendation & AddUtilizationMetrics(UtilizationMetricsT &&value)
AutoScalingGroupRecommendation & WithEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT &&value)
AutoScalingGroupRecommendation & WithCurrentPerformanceRisk(CurrentPerformanceRisk value)
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation & operator=(const std::shared_ptr< Aws::Crt::Cbor::CborDecoder > &decoder)
const EffectiveRecommendationPreferences & GetEffectiveRecommendationPreferences() const
const Aws::Vector< UtilizationMetric > & GetUtilizationMetrics() const
AutoScalingGroupRecommendation & WithUtilizationMetrics(UtilizationMetricsT &&value)
AutoScalingGroupRecommendation & WithAccountId(AccountIdT &&value)
AutoScalingGroupRecommendation & WithAutoScalingGroupArn(AutoScalingGroupArnT &&value)
AutoScalingGroupRecommendation & AddInferredWorkloadTypes(InferredWorkloadType value)
void SetEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT &&value)
AutoScalingGroupRecommendation & WithAutoScalingGroupName(AutoScalingGroupNameT &&value)
const Aws::Vector< AutoScalingGroupRecommendationOption > & GetRecommendationOptions() const
AutoScalingGroupRecommendation & WithLookBackPeriodInDays(double value)
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation()=default
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation(const std::shared_ptr< Aws::Crt::Cbor::CborDecoder > &decoder)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector