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>
25namespace ComputeOptimizer {
39 AWS_COMPUTEOPTIMIZER_API
void CborEncode(Aws::Crt::Cbor::CborEncoder& encoder)
const;
47 template <
typename ConfigurationT = AutoScalingGroupConfiguration>
49 m_configurationHasBeenSet =
true;
50 m_configuration = std::forward<ConfigurationT>(value);
52 template <
typename ConfigurationT = AutoScalingGroupConfiguration>
66 template <
typename InstanceGpuInfoT = GpuInfo>
68 m_instanceGpuInfoHasBeenSet =
true;
69 m_instanceGpuInfo = std::forward<InstanceGpuInfoT>(value);
71 template <
typename InstanceGpuInfoT = GpuInfo>
91 template <
typename ProjectedUtilizationMetricsT = Aws::Vector<UtilizationMetric>>
93 m_projectedUtilizationMetricsHasBeenSet =
true;
94 m_projectedUtilizationMetrics = std::forward<ProjectedUtilizationMetricsT>(value);
96 template <
typename ProjectedUtilizationMetricsT = Aws::Vector<UtilizationMetric>>
101 template <
typename ProjectedUtilizationMetricsT = UtilizationMetric>
103 m_projectedUtilizationMetricsHasBeenSet =
true;
104 m_projectedUtilizationMetrics.emplace_back(std::forward<ProjectedUtilizationMetricsT>(value));
128 m_performanceRiskHasBeenSet =
true;
129 m_performanceRisk = value;
142 inline int64_t
GetRank()
const {
return m_rank; }
145 m_rankHasBeenSet =
true;
162 template <
typename SavingsOpportunityT = SavingsOpportunity>
164 m_savingsOpportunityHasBeenSet =
true;
165 m_savingsOpportunity = std::forward<SavingsOpportunityT>(value);
167 template <
typename SavingsOpportunityT = SavingsOpportunity>
182 return m_savingsOpportunityAfterDiscounts;
185 template <
typename SavingsOpportunityAfterDiscountsT = AutoScalingGroupSavingsOpportunityAfterDiscounts>
187 m_savingsOpportunityAfterDiscountsHasBeenSet =
true;
188 m_savingsOpportunityAfterDiscounts = std::forward<SavingsOpportunityAfterDiscountsT>(value);
190 template <
typename SavingsOpportunityAfterDiscountsT = AutoScalingGroupSavingsOpportunityAfterDiscounts>
211 m_migrationEffortHasBeenSet =
true;
212 m_migrationEffort = value;
226 double m_performanceRisk{0.0};
230 SavingsOpportunity m_savingsOpportunity;
232 AutoScalingGroupSavingsOpportunityAfterDiscounts m_savingsOpportunityAfterDiscounts;
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;
double GetPerformanceRisk() const
AutoScalingGroupRecommendationOption & WithRank(int64_t value)
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendationOption & operator=(const std::shared_ptr< Aws::Crt::Cbor::CborDecoder > &decoder)
bool ProjectedUtilizationMetricsHasBeenSet() const
void SetRank(int64_t value)
void SetPerformanceRisk(double value)
AutoScalingGroupRecommendationOption & WithSavingsOpportunity(SavingsOpportunityT &&value)
const SavingsOpportunity & GetSavingsOpportunity() const
AutoScalingGroupRecommendationOption & WithMigrationEffort(MigrationEffort value)
bool MigrationEffortHasBeenSet() const
void SetProjectedUtilizationMetrics(ProjectedUtilizationMetricsT &&value)
MigrationEffort GetMigrationEffort() const
void SetSavingsOpportunityAfterDiscounts(SavingsOpportunityAfterDiscountsT &&value)
bool ConfigurationHasBeenSet() const
AWS_COMPUTEOPTIMIZER_API void CborEncode(Aws::Crt::Cbor::CborEncoder &encoder) const
bool InstanceGpuInfoHasBeenSet() const
AutoScalingGroupRecommendationOption & WithInstanceGpuInfo(InstanceGpuInfoT &&value)
const GpuInfo & GetInstanceGpuInfo() const
bool SavingsOpportunityHasBeenSet() const
AutoScalingGroupRecommendationOption & WithProjectedUtilizationMetrics(ProjectedUtilizationMetricsT &&value)
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendationOption()=default
bool RankHasBeenSet() const
void SetSavingsOpportunity(SavingsOpportunityT &&value)
AutoScalingGroupRecommendationOption & WithConfiguration(ConfigurationT &&value)
AutoScalingGroupRecommendationOption & WithPerformanceRisk(double value)
void SetConfiguration(ConfigurationT &&value)
const AutoScalingGroupConfiguration & GetConfiguration() const
AutoScalingGroupRecommendationOption & WithSavingsOpportunityAfterDiscounts(SavingsOpportunityAfterDiscountsT &&value)
void SetMigrationEffort(MigrationEffort value)
const Aws::Vector< UtilizationMetric > & GetProjectedUtilizationMetrics() const
void SetInstanceGpuInfo(InstanceGpuInfoT &&value)
AWS_COMPUTEOPTIMIZER_API AutoScalingGroupRecommendationOption(const std::shared_ptr< Aws::Crt::Cbor::CborDecoder > &decoder)
AutoScalingGroupRecommendationOption & AddProjectedUtilizationMetrics(ProjectedUtilizationMetricsT &&value)
bool SavingsOpportunityAfterDiscountsHasBeenSet() const
const AutoScalingGroupSavingsOpportunityAfterDiscounts & GetSavingsOpportunityAfterDiscounts() const
bool PerformanceRiskHasBeenSet() const
std::vector< T, Aws::Allocator< T > > Vector