7#include <aws/compute-optimizer/ComputeOptimizer_EXPORTS.h>
8#include <aws/compute-optimizer/model/GpuInfo.h>
9#include <aws/compute-optimizer/model/InstanceSavingsOpportunityAfterDiscounts.h>
10#include <aws/compute-optimizer/model/MigrationEffort.h>
11#include <aws/compute-optimizer/model/PlatformDifference.h>
12#include <aws/compute-optimizer/model/SavingsOpportunity.h>
13#include <aws/compute-optimizer/model/UtilizationMetric.h>
14#include <aws/core/utils/memory/stl/AWSString.h>
15#include <aws/core/utils/memory/stl/AWSVector.h>
26namespace ComputeOptimizer {
48 template <
typename InstanceTypeT = Aws::String>
50 m_instanceTypeHasBeenSet =
true;
51 m_instanceType = std::forward<InstanceTypeT>(value);
53 template <
typename InstanceTypeT = Aws::String>
67 template <
typename InstanceGpuInfoT = GpuInfo>
69 m_instanceGpuInfoHasBeenSet =
true;
70 m_instanceGpuInfo = std::forward<InstanceGpuInfoT>(value);
72 template <
typename InstanceGpuInfoT = GpuInfo>
92 template <
typename ProjectedUtilizationMetricsT = Aws::Vector<UtilizationMetric>>
94 m_projectedUtilizationMetricsHasBeenSet =
true;
95 m_projectedUtilizationMetrics = std::forward<ProjectedUtilizationMetricsT>(value);
97 template <
typename ProjectedUtilizationMetricsT = Aws::Vector<UtilizationMetric>>
102 template <
typename ProjectedUtilizationMetricsT = UtilizationMetric>
104 m_projectedUtilizationMetricsHasBeenSet =
true;
105 m_projectedUtilizationMetrics.emplace_back(std::forward<ProjectedUtilizationMetricsT>(value));
203 template <
typename PlatformDifferencesT = Aws::Vector<PlatformDifference>>
205 m_platformDifferencesHasBeenSet =
true;
206 m_platformDifferences = std::forward<PlatformDifferencesT>(value);
208 template <
typename PlatformDifferencesT = Aws::Vector<PlatformDifference>>
214 m_platformDifferencesHasBeenSet =
true;
215 m_platformDifferences.push_back(value);
239 m_performanceRiskHasBeenSet =
true;
240 m_performanceRisk = value;
256 m_rankHasBeenSet =
true;
273 template <
typename SavingsOpportunityT = SavingsOpportunity>
275 m_savingsOpportunityHasBeenSet =
true;
276 m_savingsOpportunity = std::forward<SavingsOpportunityT>(value);
278 template <
typename SavingsOpportunityT = SavingsOpportunity>
293 return m_savingsOpportunityAfterDiscounts;
296 template <
typename SavingsOpportunityAfterDiscountsT = InstanceSavingsOpportunityAfterDiscounts>
298 m_savingsOpportunityAfterDiscountsHasBeenSet =
true;
299 m_savingsOpportunityAfterDiscounts = std::forward<SavingsOpportunityAfterDiscountsT>(value);
301 template <
typename SavingsOpportunityAfterDiscountsT = InstanceSavingsOpportunityAfterDiscounts>
322 m_migrationEffortHasBeenSet =
true;
323 m_migrationEffort = value;
339 double m_performanceRisk{0.0};
343 SavingsOpportunity m_savingsOpportunity;
345 InstanceSavingsOpportunityAfterDiscounts m_savingsOpportunityAfterDiscounts;
348 bool m_instanceTypeHasBeenSet =
false;
349 bool m_instanceGpuInfoHasBeenSet =
false;
350 bool m_projectedUtilizationMetricsHasBeenSet =
false;
351 bool m_platformDifferencesHasBeenSet =
false;
352 bool m_performanceRiskHasBeenSet =
false;
353 bool m_rankHasBeenSet =
false;
354 bool m_savingsOpportunityHasBeenSet =
false;
355 bool m_savingsOpportunityAfterDiscountsHasBeenSet =
false;
356 bool m_migrationEffortHasBeenSet =
false;
void SetProjectedUtilizationMetrics(ProjectedUtilizationMetricsT &&value)
AWS_COMPUTEOPTIMIZER_API InstanceRecommendationOption(Aws::Utils::Json::JsonView jsonValue)
bool SavingsOpportunityAfterDiscountsHasBeenSet() const
void SetSavingsOpportunityAfterDiscounts(SavingsOpportunityAfterDiscountsT &&value)
bool ProjectedUtilizationMetricsHasBeenSet() const
AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const
bool PerformanceRiskHasBeenSet() const
const InstanceSavingsOpportunityAfterDiscounts & GetSavingsOpportunityAfterDiscounts() const
InstanceRecommendationOption & WithPerformanceRisk(double value)
bool RankHasBeenSet() const
void SetInstanceGpuInfo(InstanceGpuInfoT &&value)
bool MigrationEffortHasBeenSet() const
InstanceRecommendationOption & WithMigrationEffort(MigrationEffort value)
bool PlatformDifferencesHasBeenSet() const
const Aws::Vector< UtilizationMetric > & GetProjectedUtilizationMetrics() const
void SetPerformanceRisk(double value)
void SetPlatformDifferences(PlatformDifferencesT &&value)
InstanceRecommendationOption & WithPlatformDifferences(PlatformDifferencesT &&value)
bool SavingsOpportunityHasBeenSet() const
InstanceRecommendationOption & WithInstanceGpuInfo(InstanceGpuInfoT &&value)
double GetPerformanceRisk() const
void SetInstanceType(InstanceTypeT &&value)
MigrationEffort GetMigrationEffort() const
const SavingsOpportunity & GetSavingsOpportunity() const
InstanceRecommendationOption & WithSavingsOpportunityAfterDiscounts(SavingsOpportunityAfterDiscountsT &&value)
AWS_COMPUTEOPTIMIZER_API InstanceRecommendationOption()=default
bool InstanceTypeHasBeenSet() const
InstanceRecommendationOption & WithSavingsOpportunity(SavingsOpportunityT &&value)
InstanceRecommendationOption & WithInstanceType(InstanceTypeT &&value)
void SetSavingsOpportunity(SavingsOpportunityT &&value)
AWS_COMPUTEOPTIMIZER_API InstanceRecommendationOption & operator=(Aws::Utils::Json::JsonView jsonValue)
InstanceRecommendationOption & AddPlatformDifferences(PlatformDifference value)
const GpuInfo & GetInstanceGpuInfo() const
const Aws::String & GetInstanceType() const
InstanceRecommendationOption & WithRank(int value)
bool InstanceGpuInfoHasBeenSet() const
void SetMigrationEffort(MigrationEffort value)
InstanceRecommendationOption & WithProjectedUtilizationMetrics(ProjectedUtilizationMetricsT &&value)
InstanceRecommendationOption & AddProjectedUtilizationMetrics(ProjectedUtilizationMetricsT &&value)
const Aws::Vector< PlatformDifference > & GetPlatformDifferences() const
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue