AWS SDK for C++

AWS SDK for C++ Version 1.11.612

Loading...
Searching...
No Matches
AutoScalingGroupRecommendation.h
1
6#pragma once
7#include <aws/compute-optimizer/ComputeOptimizer_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSString.h>
9#include <aws/compute-optimizer/model/Finding.h>
10#include <aws/core/utils/memory/stl/AWSVector.h>
11#include <aws/compute-optimizer/model/AutoScalingGroupConfiguration.h>
12#include <aws/compute-optimizer/model/GpuInfo.h>
13#include <aws/core/utils/DateTime.h>
14#include <aws/compute-optimizer/model/CurrentPerformanceRisk.h>
15#include <aws/compute-optimizer/model/EffectiveRecommendationPreferences.h>
16#include <aws/compute-optimizer/model/UtilizationMetric.h>
17#include <aws/compute-optimizer/model/AutoScalingGroupRecommendationOption.h>
18#include <aws/compute-optimizer/model/InferredWorkloadType.h>
19#include <utility>
20
21namespace Aws
22{
23namespace Utils
24{
25namespace Json
26{
27 class JsonValue;
28 class JsonView;
29} // namespace Json
30} // namespace Utils
31namespace ComputeOptimizer
32{
33namespace Model
34{
35
42 {
43 public:
44 AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation() = default;
47 AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const;
48
49
51
54 inline const Aws::String& GetAccountId() const { return m_accountId; }
55 inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; }
56 template<typename AccountIdT = Aws::String>
57 void SetAccountId(AccountIdT&& value) { m_accountIdHasBeenSet = true; m_accountId = std::forward<AccountIdT>(value); }
58 template<typename AccountIdT = Aws::String>
59 AutoScalingGroupRecommendation& WithAccountId(AccountIdT&& value) { SetAccountId(std::forward<AccountIdT>(value)); return *this;}
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) { m_autoScalingGroupArnHasBeenSet = true; m_autoScalingGroupArn = std::forward<AutoScalingGroupArnT>(value); }
70 template<typename AutoScalingGroupArnT = Aws::String>
71 AutoScalingGroupRecommendation& WithAutoScalingGroupArn(AutoScalingGroupArnT&& value) { SetAutoScalingGroupArn(std::forward<AutoScalingGroupArnT>(value)); return *this;}
73
75
78 inline const Aws::String& GetAutoScalingGroupName() const { return m_autoScalingGroupName; }
79 inline bool AutoScalingGroupNameHasBeenSet() const { return m_autoScalingGroupNameHasBeenSet; }
80 template<typename AutoScalingGroupNameT = Aws::String>
81 void SetAutoScalingGroupName(AutoScalingGroupNameT&& value) { m_autoScalingGroupNameHasBeenSet = true; m_autoScalingGroupName = std::forward<AutoScalingGroupNameT>(value); }
82 template<typename AutoScalingGroupNameT = Aws::String>
83 AutoScalingGroupRecommendation& WithAutoScalingGroupName(AutoScalingGroupNameT&& value) { SetAutoScalingGroupName(std::forward<AutoScalingGroupNameT>(value)); return *this;}
85
87
98 inline Finding GetFinding() const { return m_finding; }
99 inline bool FindingHasBeenSet() const { return m_findingHasBeenSet; }
100 inline void SetFinding(Finding value) { m_findingHasBeenSet = true; m_finding = value; }
101 inline AutoScalingGroupRecommendation& WithFinding(Finding value) { SetFinding(value); return *this;}
103
105
109 inline const Aws::Vector<UtilizationMetric>& GetUtilizationMetrics() const { return m_utilizationMetrics; }
110 inline bool UtilizationMetricsHasBeenSet() const { return m_utilizationMetricsHasBeenSet; }
111 template<typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
112 void SetUtilizationMetrics(UtilizationMetricsT&& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics = std::forward<UtilizationMetricsT>(value); }
113 template<typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
114 AutoScalingGroupRecommendation& WithUtilizationMetrics(UtilizationMetricsT&& value) { SetUtilizationMetrics(std::forward<UtilizationMetricsT>(value)); return *this;}
115 template<typename UtilizationMetricsT = UtilizationMetric>
116 AutoScalingGroupRecommendation& AddUtilizationMetrics(UtilizationMetricsT&& value) { m_utilizationMetricsHasBeenSet = true; m_utilizationMetrics.emplace_back(std::forward<UtilizationMetricsT>(value)); return *this; }
118
120
124 inline double GetLookBackPeriodInDays() const { return m_lookBackPeriodInDays; }
125 inline bool LookBackPeriodInDaysHasBeenSet() const { return m_lookBackPeriodInDaysHasBeenSet; }
126 inline void SetLookBackPeriodInDays(double value) { m_lookBackPeriodInDaysHasBeenSet = true; m_lookBackPeriodInDays = value; }
129
131
135 inline const AutoScalingGroupConfiguration& GetCurrentConfiguration() const { return m_currentConfiguration; }
136 inline bool CurrentConfigurationHasBeenSet() const { return m_currentConfigurationHasBeenSet; }
137 template<typename CurrentConfigurationT = AutoScalingGroupConfiguration>
138 void SetCurrentConfiguration(CurrentConfigurationT&& value) { m_currentConfigurationHasBeenSet = true; m_currentConfiguration = std::forward<CurrentConfigurationT>(value); }
139 template<typename CurrentConfigurationT = AutoScalingGroupConfiguration>
140 AutoScalingGroupRecommendation& WithCurrentConfiguration(CurrentConfigurationT&& value) { SetCurrentConfiguration(std::forward<CurrentConfigurationT>(value)); return *this;}
142
144
148 inline const GpuInfo& GetCurrentInstanceGpuInfo() const { return m_currentInstanceGpuInfo; }
149 inline bool CurrentInstanceGpuInfoHasBeenSet() const { return m_currentInstanceGpuInfoHasBeenSet; }
150 template<typename CurrentInstanceGpuInfoT = GpuInfo>
151 void SetCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT&& value) { m_currentInstanceGpuInfoHasBeenSet = true; m_currentInstanceGpuInfo = std::forward<CurrentInstanceGpuInfoT>(value); }
152 template<typename CurrentInstanceGpuInfoT = GpuInfo>
153 AutoScalingGroupRecommendation& WithCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT&& value) { SetCurrentInstanceGpuInfo(std::forward<CurrentInstanceGpuInfoT>(value)); return *this;}
155
157
161 inline const Aws::Vector<AutoScalingGroupRecommendationOption>& GetRecommendationOptions() const { return m_recommendationOptions; }
162 inline bool RecommendationOptionsHasBeenSet() const { return m_recommendationOptionsHasBeenSet; }
163 template<typename RecommendationOptionsT = Aws::Vector<AutoScalingGroupRecommendationOption>>
164 void SetRecommendationOptions(RecommendationOptionsT&& value) { m_recommendationOptionsHasBeenSet = true; m_recommendationOptions = std::forward<RecommendationOptionsT>(value); }
165 template<typename RecommendationOptionsT = Aws::Vector<AutoScalingGroupRecommendationOption>>
166 AutoScalingGroupRecommendation& WithRecommendationOptions(RecommendationOptionsT&& value) { SetRecommendationOptions(std::forward<RecommendationOptionsT>(value)); return *this;}
167 template<typename RecommendationOptionsT = AutoScalingGroupRecommendationOption>
168 AutoScalingGroupRecommendation& AddRecommendationOptions(RecommendationOptionsT&& value) { m_recommendationOptionsHasBeenSet = true; m_recommendationOptions.emplace_back(std::forward<RecommendationOptionsT>(value)); return *this; }
170
172
176 inline const Aws::Utils::DateTime& GetLastRefreshTimestamp() const { return m_lastRefreshTimestamp; }
177 inline bool LastRefreshTimestampHasBeenSet() const { return m_lastRefreshTimestampHasBeenSet; }
178 template<typename LastRefreshTimestampT = Aws::Utils::DateTime>
179 void SetLastRefreshTimestamp(LastRefreshTimestampT&& value) { m_lastRefreshTimestampHasBeenSet = true; m_lastRefreshTimestamp = std::forward<LastRefreshTimestampT>(value); }
180 template<typename LastRefreshTimestampT = Aws::Utils::DateTime>
181 AutoScalingGroupRecommendation& WithLastRefreshTimestamp(LastRefreshTimestampT&& value) { SetLastRefreshTimestamp(std::forward<LastRefreshTimestampT>(value)); return *this;}
183
185
191 inline CurrentPerformanceRisk GetCurrentPerformanceRisk() const { return m_currentPerformanceRisk; }
192 inline bool CurrentPerformanceRiskHasBeenSet() const { return m_currentPerformanceRiskHasBeenSet; }
193 inline void SetCurrentPerformanceRisk(CurrentPerformanceRisk value) { m_currentPerformanceRiskHasBeenSet = true; m_currentPerformanceRisk = value; }
196
198
202 inline const EffectiveRecommendationPreferences& GetEffectiveRecommendationPreferences() const { return m_effectiveRecommendationPreferences; }
203 inline bool EffectiveRecommendationPreferencesHasBeenSet() const { return m_effectiveRecommendationPreferencesHasBeenSet; }
204 template<typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
205 void SetEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT&& value) { m_effectiveRecommendationPreferencesHasBeenSet = true; m_effectiveRecommendationPreferences = std::forward<EffectiveRecommendationPreferencesT>(value); }
206 template<typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
207 AutoScalingGroupRecommendation& WithEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT&& value) { SetEffectiveRecommendationPreferences(std::forward<EffectiveRecommendationPreferencesT>(value)); return *this;}
209
211
229 inline const Aws::Vector<InferredWorkloadType>& GetInferredWorkloadTypes() const { return m_inferredWorkloadTypes; }
230 inline bool InferredWorkloadTypesHasBeenSet() const { return m_inferredWorkloadTypesHasBeenSet; }
231 template<typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
232 void SetInferredWorkloadTypes(InferredWorkloadTypesT&& value) { m_inferredWorkloadTypesHasBeenSet = true; m_inferredWorkloadTypes = std::forward<InferredWorkloadTypesT>(value); }
233 template<typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
234 AutoScalingGroupRecommendation& WithInferredWorkloadTypes(InferredWorkloadTypesT&& value) { SetInferredWorkloadTypes(std::forward<InferredWorkloadTypesT>(value)); return *this;}
235 inline AutoScalingGroupRecommendation& AddInferredWorkloadTypes(InferredWorkloadType value) { m_inferredWorkloadTypesHasBeenSet = true; m_inferredWorkloadTypes.push_back(value); return *this; }
237 private:
238
239 Aws::String m_accountId;
240 bool m_accountIdHasBeenSet = false;
241
242 Aws::String m_autoScalingGroupArn;
243 bool m_autoScalingGroupArnHasBeenSet = false;
244
245 Aws::String m_autoScalingGroupName;
246 bool m_autoScalingGroupNameHasBeenSet = false;
247
248 Finding m_finding{Finding::NOT_SET};
249 bool m_findingHasBeenSet = false;
250
251 Aws::Vector<UtilizationMetric> m_utilizationMetrics;
252 bool m_utilizationMetricsHasBeenSet = false;
253
254 double m_lookBackPeriodInDays{0.0};
255 bool m_lookBackPeriodInDaysHasBeenSet = false;
256
257 AutoScalingGroupConfiguration m_currentConfiguration;
258 bool m_currentConfigurationHasBeenSet = false;
259
260 GpuInfo m_currentInstanceGpuInfo;
261 bool m_currentInstanceGpuInfoHasBeenSet = false;
262
264 bool m_recommendationOptionsHasBeenSet = false;
265
266 Aws::Utils::DateTime m_lastRefreshTimestamp{};
267 bool m_lastRefreshTimestampHasBeenSet = false;
268
270 bool m_currentPerformanceRiskHasBeenSet = false;
271
272 EffectiveRecommendationPreferences m_effectiveRecommendationPreferences;
273 bool m_effectiveRecommendationPreferencesHasBeenSet = false;
274
275 Aws::Vector<InferredWorkloadType> m_inferredWorkloadTypes;
276 bool m_inferredWorkloadTypesHasBeenSet = false;
277 };
278
279} // namespace Model
280} // namespace ComputeOptimizer
281} // 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