AWS SDK for C++

AWS SDK for C++ Version 1.11.754

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
20#include <utility>
21
22namespace Aws {
23namespace Utils {
24namespace Json {
25class JsonValue;
26class JsonView;
27} // namespace Json
28} // namespace Utils
29namespace ComputeOptimizer {
30namespace Model {
31
39 public:
40 AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation() = default;
43 AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const;
44
46
49 inline const Aws::String& GetAccountId() const { return m_accountId; }
50 inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; }
51 template <typename AccountIdT = Aws::String>
52 void SetAccountId(AccountIdT&& value) {
53 m_accountIdHasBeenSet = true;
54 m_accountId = std::forward<AccountIdT>(value);
55 }
56 template <typename AccountIdT = Aws::String>
58 SetAccountId(std::forward<AccountIdT>(value));
59 return *this;
60 }
62
64
67 inline const Aws::String& GetAutoScalingGroupArn() const { return m_autoScalingGroupArn; }
68 inline bool AutoScalingGroupArnHasBeenSet() const { return m_autoScalingGroupArnHasBeenSet; }
69 template <typename AutoScalingGroupArnT = Aws::String>
70 void SetAutoScalingGroupArn(AutoScalingGroupArnT&& value) {
71 m_autoScalingGroupArnHasBeenSet = true;
72 m_autoScalingGroupArn = std::forward<AutoScalingGroupArnT>(value);
73 }
74 template <typename AutoScalingGroupArnT = Aws::String>
76 SetAutoScalingGroupArn(std::forward<AutoScalingGroupArnT>(value));
77 return *this;
78 }
80
82
85 inline const Aws::String& GetAutoScalingGroupName() const { return m_autoScalingGroupName; }
86 inline bool AutoScalingGroupNameHasBeenSet() const { return m_autoScalingGroupNameHasBeenSet; }
87 template <typename AutoScalingGroupNameT = Aws::String>
88 void SetAutoScalingGroupName(AutoScalingGroupNameT&& value) {
89 m_autoScalingGroupNameHasBeenSet = true;
90 m_autoScalingGroupName = std::forward<AutoScalingGroupNameT>(value);
91 }
92 template <typename AutoScalingGroupNameT = Aws::String>
94 SetAutoScalingGroupName(std::forward<AutoScalingGroupNameT>(value));
95 return *this;
96 }
98
100
112 inline Finding GetFinding() const { return m_finding; }
113 inline bool FindingHasBeenSet() const { return m_findingHasBeenSet; }
114 inline void SetFinding(Finding value) {
115 m_findingHasBeenSet = true;
116 m_finding = value;
117 }
119 SetFinding(value);
120 return *this;
121 }
123
125
129 inline const Aws::Vector<UtilizationMetric>& GetUtilizationMetrics() const { return m_utilizationMetrics; }
130 inline bool UtilizationMetricsHasBeenSet() const { return m_utilizationMetricsHasBeenSet; }
131 template <typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
132 void SetUtilizationMetrics(UtilizationMetricsT&& value) {
133 m_utilizationMetricsHasBeenSet = true;
134 m_utilizationMetrics = std::forward<UtilizationMetricsT>(value);
135 }
136 template <typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
138 SetUtilizationMetrics(std::forward<UtilizationMetricsT>(value));
139 return *this;
140 }
141 template <typename UtilizationMetricsT = UtilizationMetric>
143 m_utilizationMetricsHasBeenSet = true;
144 m_utilizationMetrics.emplace_back(std::forward<UtilizationMetricsT>(value));
145 return *this;
146 }
148
150
154 inline double GetLookBackPeriodInDays() const { return m_lookBackPeriodInDays; }
155 inline bool LookBackPeriodInDaysHasBeenSet() const { return m_lookBackPeriodInDaysHasBeenSet; }
156 inline void SetLookBackPeriodInDays(double value) {
157 m_lookBackPeriodInDaysHasBeenSet = true;
158 m_lookBackPeriodInDays = value;
159 }
162 return *this;
163 }
165
167
171 inline const AutoScalingGroupConfiguration& GetCurrentConfiguration() const { return m_currentConfiguration; }
172 inline bool CurrentConfigurationHasBeenSet() const { return m_currentConfigurationHasBeenSet; }
173 template <typename CurrentConfigurationT = AutoScalingGroupConfiguration>
174 void SetCurrentConfiguration(CurrentConfigurationT&& value) {
175 m_currentConfigurationHasBeenSet = true;
176 m_currentConfiguration = std::forward<CurrentConfigurationT>(value);
177 }
178 template <typename CurrentConfigurationT = AutoScalingGroupConfiguration>
180 SetCurrentConfiguration(std::forward<CurrentConfigurationT>(value));
181 return *this;
182 }
184
186
190 inline const GpuInfo& GetCurrentInstanceGpuInfo() const { return m_currentInstanceGpuInfo; }
191 inline bool CurrentInstanceGpuInfoHasBeenSet() const { return m_currentInstanceGpuInfoHasBeenSet; }
192 template <typename CurrentInstanceGpuInfoT = GpuInfo>
193 void SetCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT&& value) {
194 m_currentInstanceGpuInfoHasBeenSet = true;
195 m_currentInstanceGpuInfo = std::forward<CurrentInstanceGpuInfoT>(value);
196 }
197 template <typename CurrentInstanceGpuInfoT = GpuInfo>
199 SetCurrentInstanceGpuInfo(std::forward<CurrentInstanceGpuInfoT>(value));
200 return *this;
201 }
203
205
209 inline const Aws::Vector<AutoScalingGroupRecommendationOption>& GetRecommendationOptions() const { return m_recommendationOptions; }
210 inline bool RecommendationOptionsHasBeenSet() const { return m_recommendationOptionsHasBeenSet; }
211 template <typename RecommendationOptionsT = Aws::Vector<AutoScalingGroupRecommendationOption>>
212 void SetRecommendationOptions(RecommendationOptionsT&& value) {
213 m_recommendationOptionsHasBeenSet = true;
214 m_recommendationOptions = std::forward<RecommendationOptionsT>(value);
215 }
216 template <typename RecommendationOptionsT = Aws::Vector<AutoScalingGroupRecommendationOption>>
218 SetRecommendationOptions(std::forward<RecommendationOptionsT>(value));
219 return *this;
220 }
221 template <typename RecommendationOptionsT = AutoScalingGroupRecommendationOption>
223 m_recommendationOptionsHasBeenSet = true;
224 m_recommendationOptions.emplace_back(std::forward<RecommendationOptionsT>(value));
225 return *this;
226 }
228
230
234 inline const Aws::Utils::DateTime& GetLastRefreshTimestamp() const { return m_lastRefreshTimestamp; }
235 inline bool LastRefreshTimestampHasBeenSet() const { return m_lastRefreshTimestampHasBeenSet; }
236 template <typename LastRefreshTimestampT = Aws::Utils::DateTime>
237 void SetLastRefreshTimestamp(LastRefreshTimestampT&& value) {
238 m_lastRefreshTimestampHasBeenSet = true;
239 m_lastRefreshTimestamp = std::forward<LastRefreshTimestampT>(value);
240 }
241 template <typename LastRefreshTimestampT = Aws::Utils::DateTime>
243 SetLastRefreshTimestamp(std::forward<LastRefreshTimestampT>(value));
244 return *this;
245 }
247
249
255 inline CurrentPerformanceRisk GetCurrentPerformanceRisk() const { return m_currentPerformanceRisk; }
256 inline bool CurrentPerformanceRiskHasBeenSet() const { return m_currentPerformanceRiskHasBeenSet; }
258 m_currentPerformanceRiskHasBeenSet = true;
259 m_currentPerformanceRisk = value;
260 }
263 return *this;
264 }
266
268
273 return m_effectiveRecommendationPreferences;
274 }
275 inline bool EffectiveRecommendationPreferencesHasBeenSet() const { return m_effectiveRecommendationPreferencesHasBeenSet; }
276 template <typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
277 void SetEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT&& value) {
278 m_effectiveRecommendationPreferencesHasBeenSet = true;
279 m_effectiveRecommendationPreferences = std::forward<EffectiveRecommendationPreferencesT>(value);
280 }
281 template <typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
282 AutoScalingGroupRecommendation& WithEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT&& value) {
283 SetEffectiveRecommendationPreferences(std::forward<EffectiveRecommendationPreferencesT>(value));
284 return *this;
285 }
287
289
307 inline const Aws::Vector<InferredWorkloadType>& GetInferredWorkloadTypes() const { return m_inferredWorkloadTypes; }
308 inline bool InferredWorkloadTypesHasBeenSet() const { return m_inferredWorkloadTypesHasBeenSet; }
309 template <typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
310 void SetInferredWorkloadTypes(InferredWorkloadTypesT&& value) {
311 m_inferredWorkloadTypesHasBeenSet = true;
312 m_inferredWorkloadTypes = std::forward<InferredWorkloadTypesT>(value);
313 }
314 template <typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
316 SetInferredWorkloadTypes(std::forward<InferredWorkloadTypesT>(value));
317 return *this;
318 }
320 m_inferredWorkloadTypesHasBeenSet = true;
321 m_inferredWorkloadTypes.push_back(value);
322 return *this;
323 }
325 private:
326 Aws::String m_accountId;
327
328 Aws::String m_autoScalingGroupArn;
329
330 Aws::String m_autoScalingGroupName;
331
332 Finding m_finding{Finding::NOT_SET};
333
334 Aws::Vector<UtilizationMetric> m_utilizationMetrics;
335
336 double m_lookBackPeriodInDays{0.0};
337
338 AutoScalingGroupConfiguration m_currentConfiguration;
339
340 GpuInfo m_currentInstanceGpuInfo;
341
343
344 Aws::Utils::DateTime m_lastRefreshTimestamp{};
345
347
348 EffectiveRecommendationPreferences m_effectiveRecommendationPreferences;
349
350 Aws::Vector<InferredWorkloadType> m_inferredWorkloadTypes;
351 bool m_accountIdHasBeenSet = false;
352 bool m_autoScalingGroupArnHasBeenSet = false;
353 bool m_autoScalingGroupNameHasBeenSet = false;
354 bool m_findingHasBeenSet = false;
355 bool m_utilizationMetricsHasBeenSet = false;
356 bool m_lookBackPeriodInDaysHasBeenSet = false;
357 bool m_currentConfigurationHasBeenSet = false;
358 bool m_currentInstanceGpuInfoHasBeenSet = false;
359 bool m_recommendationOptionsHasBeenSet = false;
360 bool m_lastRefreshTimestampHasBeenSet = false;
361 bool m_currentPerformanceRiskHasBeenSet = false;
362 bool m_effectiveRecommendationPreferencesHasBeenSet = false;
363 bool m_inferredWorkloadTypesHasBeenSet = false;
364};
365
366} // namespace Model
367} // namespace ComputeOptimizer
368} // namespace Aws
AutoScalingGroupRecommendation & WithInferredWorkloadTypes(InferredWorkloadTypesT &&value)
AutoScalingGroupRecommendation & WithRecommendationOptions(RecommendationOptionsT &&value)
AutoScalingGroupRecommendation & AddRecommendationOptions(RecommendationOptionsT &&value)
const Aws::Vector< InferredWorkloadType > & GetInferredWorkloadTypes() const
AutoScalingGroupRecommendation & WithCurrentConfiguration(CurrentConfigurationT &&value)
AutoScalingGroupRecommendation & WithLastRefreshTimestamp(LastRefreshTimestampT &&value)
AutoScalingGroupRecommendation & WithCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT &&value)
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation(Aws::Utils::Json::JsonView jsonValue)
AutoScalingGroupRecommendation & AddUtilizationMetrics(UtilizationMetricsT &&value)
AutoScalingGroupRecommendation & WithEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT &&value)
AutoScalingGroupRecommendation & WithCurrentPerformanceRisk(CurrentPerformanceRisk value)
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)
AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const
const Aws::Vector< AutoScalingGroupRecommendationOption > & GetRecommendationOptions() const
AutoScalingGroupRecommendation & WithLookBackPeriodInDays(double value)
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation()=default
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation & operator=(Aws::Utils::Json::JsonView jsonValue)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue