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>
29namespace ComputeOptimizer {
42 AWS_COMPUTEOPTIMIZER_API
void CborEncode(Aws::Crt::Cbor::CborEncoder& encoder)
const;
50 template <
typename AccountIdT = Aws::String>
52 m_accountIdHasBeenSet =
true;
53 m_accountId = std::forward<AccountIdT>(value);
55 template <
typename AccountIdT = Aws::String>
68 template <
typename AutoScalingGroupArnT = Aws::String>
70 m_autoScalingGroupArnHasBeenSet =
true;
71 m_autoScalingGroupArn = std::forward<AutoScalingGroupArnT>(value);
73 template <
typename AutoScalingGroupArnT = Aws::String>
86 template <
typename AutoScalingGroupNameT = Aws::String>
88 m_autoScalingGroupNameHasBeenSet =
true;
89 m_autoScalingGroupName = std::forward<AutoScalingGroupNameT>(value);
91 template <
typename AutoScalingGroupNameT = Aws::String>
113 m_findingHasBeenSet =
true;
129 template <
typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
131 m_utilizationMetricsHasBeenSet =
true;
132 m_utilizationMetrics = std::forward<UtilizationMetricsT>(value);
134 template <
typename UtilizationMetricsT = Aws::Vector<UtilizationMetric>>
139 template <
typename UtilizationMetricsT = UtilizationMetric>
141 m_utilizationMetricsHasBeenSet =
true;
142 m_utilizationMetrics.emplace_back(std::forward<UtilizationMetricsT>(value));
155 m_lookBackPeriodInDaysHasBeenSet =
true;
156 m_lookBackPeriodInDays = value;
171 template <
typename CurrentConfigurationT = AutoScalingGroupConfiguration>
173 m_currentConfigurationHasBeenSet =
true;
174 m_currentConfiguration = std::forward<CurrentConfigurationT>(value);
176 template <
typename CurrentConfigurationT = AutoScalingGroupConfiguration>
190 template <
typename CurrentInstanceGpuInfoT = GpuInfo>
192 m_currentInstanceGpuInfoHasBeenSet =
true;
193 m_currentInstanceGpuInfo = std::forward<CurrentInstanceGpuInfoT>(value);
195 template <
typename CurrentInstanceGpuInfoT = GpuInfo>
209 template <
typename RecommendationOptionsT = Aws::Vector<AutoScalingGroupRecommendationOption>>
211 m_recommendationOptionsHasBeenSet =
true;
212 m_recommendationOptions = std::forward<RecommendationOptionsT>(value);
214 template <
typename RecommendationOptionsT = Aws::Vector<AutoScalingGroupRecommendationOption>>
219 template <
typename RecommendationOptionsT = AutoScalingGroupRecommendationOption>
221 m_recommendationOptionsHasBeenSet =
true;
222 m_recommendationOptions.emplace_back(std::forward<RecommendationOptionsT>(value));
234 template <
typename LastRefreshTimestampT = Aws::Utils::DateTime>
236 m_lastRefreshTimestampHasBeenSet =
true;
237 m_lastRefreshTimestamp = std::forward<LastRefreshTimestampT>(value);
239 template <
typename LastRefreshTimestampT = Aws::Utils::DateTime>
256 m_currentPerformanceRiskHasBeenSet =
true;
257 m_currentPerformanceRisk = value;
271 return m_effectiveRecommendationPreferences;
274 template <
typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
276 m_effectiveRecommendationPreferencesHasBeenSet =
true;
277 m_effectiveRecommendationPreferences = std::forward<EffectiveRecommendationPreferencesT>(value);
279 template <
typename EffectiveRecommendationPreferencesT = EffectiveRecommendationPreferences>
307 template <
typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
309 m_inferredWorkloadTypesHasBeenSet =
true;
310 m_inferredWorkloadTypes = std::forward<InferredWorkloadTypesT>(value);
312 template <
typename InferredWorkloadTypesT = Aws::Vector<InferredWorkloadType>>
318 m_inferredWorkloadTypesHasBeenSet =
true;
319 m_inferredWorkloadTypes.push_back(value);
334 double m_lookBackPeriodInDays{0.0};
336 AutoScalingGroupConfiguration m_currentConfiguration;
338 GpuInfo m_currentInstanceGpuInfo;
346 EffectiveRecommendationPreferences m_effectiveRecommendationPreferences;
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;
AutoScalingGroupRecommendation & WithInferredWorkloadTypes(InferredWorkloadTypesT &&value)
void SetUtilizationMetrics(UtilizationMetricsT &&value)
const Aws::String & GetAccountId() const
AutoScalingGroupRecommendation & WithRecommendationOptions(RecommendationOptionsT &&value)
AutoScalingGroupRecommendation & AddRecommendationOptions(RecommendationOptionsT &&value)
bool LastRefreshTimestampHasBeenSet() const
void SetCurrentInstanceGpuInfo(CurrentInstanceGpuInfoT &&value)
Finding GetFinding() const
bool RecommendationOptionsHasBeenSet() const
const Aws::Vector< InferredWorkloadType > & GetInferredWorkloadTypes() const
bool CurrentConfigurationHasBeenSet() const
bool FindingHasBeenSet() 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)
CurrentPerformanceRisk GetCurrentPerformanceRisk() const
AutoScalingGroupRecommendation & WithEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT &&value)
bool EffectiveRecommendationPreferencesHasBeenSet() const
bool CurrentInstanceGpuInfoHasBeenSet() const
AutoScalingGroupRecommendation & WithCurrentPerformanceRisk(CurrentPerformanceRisk value)
AutoScalingGroupRecommendation & WithFinding(Finding value)
void SetLastRefreshTimestamp(LastRefreshTimestampT &&value)
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation & operator=(const std::shared_ptr< Aws::Crt::Cbor::CborDecoder > &decoder)
bool AutoScalingGroupNameHasBeenSet() const
bool CurrentPerformanceRiskHasBeenSet() const
bool AccountIdHasBeenSet() const
bool AutoScalingGroupArnHasBeenSet() const
const EffectiveRecommendationPreferences & GetEffectiveRecommendationPreferences() const
const Aws::Vector< UtilizationMetric > & GetUtilizationMetrics() const
AutoScalingGroupRecommendation & WithUtilizationMetrics(UtilizationMetricsT &&value)
void SetCurrentPerformanceRisk(CurrentPerformanceRisk value)
void SetAccountId(AccountIdT &&value)
void SetCurrentConfiguration(CurrentConfigurationT &&value)
const AutoScalingGroupConfiguration & GetCurrentConfiguration() const
AutoScalingGroupRecommendation & WithAccountId(AccountIdT &&value)
AutoScalingGroupRecommendation & WithAutoScalingGroupArn(AutoScalingGroupArnT &&value)
void SetFinding(Finding value)
void SetLookBackPeriodInDays(double value)
AutoScalingGroupRecommendation & AddInferredWorkloadTypes(InferredWorkloadType value)
const Aws::Utils::DateTime & GetLastRefreshTimestamp() const
void SetAutoScalingGroupName(AutoScalingGroupNameT &&value)
void SetEffectiveRecommendationPreferences(EffectiveRecommendationPreferencesT &&value)
AutoScalingGroupRecommendation & WithAutoScalingGroupName(AutoScalingGroupNameT &&value)
void SetRecommendationOptions(RecommendationOptionsT &&value)
const Aws::Vector< AutoScalingGroupRecommendationOption > & GetRecommendationOptions() const
const Aws::String & GetAutoScalingGroupName() const
AutoScalingGroupRecommendation & WithLookBackPeriodInDays(double value)
bool InferredWorkloadTypesHasBeenSet() const
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation()=default
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendation(const std::shared_ptr< Aws::Crt::Cbor::CborDecoder > &decoder)
void SetAutoScalingGroupArn(AutoScalingGroupArnT &&value)
bool UtilizationMetricsHasBeenSet() const
double GetLookBackPeriodInDays() const
const Aws::String & GetAutoScalingGroupArn() const
bool LookBackPeriodInDaysHasBeenSet() const
void SetInferredWorkloadTypes(InferredWorkloadTypesT &&value)
const GpuInfo & GetCurrentInstanceGpuInfo() const
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector