/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ComputeOptimizer { namespace Model { /** *

Describes a recommendation option for an Amazon Elastic Block Store (Amazon * EBS) instance.

See Also:

AWS * API Reference

*/ class VolumeRecommendationOption { public: AWS_COMPUTEOPTIMIZER_API VolumeRecommendationOption(); AWS_COMPUTEOPTIMIZER_API VolumeRecommendationOption(Aws::Utils::Json::JsonView jsonValue); AWS_COMPUTEOPTIMIZER_API VolumeRecommendationOption& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_COMPUTEOPTIMIZER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

An array of objects that describe a volume configuration.

*/ inline const VolumeConfiguration& GetConfiguration() const{ return m_configuration; } /** *

An array of objects that describe a volume configuration.

*/ inline bool ConfigurationHasBeenSet() const { return m_configurationHasBeenSet; } /** *

An array of objects that describe a volume configuration.

*/ inline void SetConfiguration(const VolumeConfiguration& value) { m_configurationHasBeenSet = true; m_configuration = value; } /** *

An array of objects that describe a volume configuration.

*/ inline void SetConfiguration(VolumeConfiguration&& value) { m_configurationHasBeenSet = true; m_configuration = std::move(value); } /** *

An array of objects that describe a volume configuration.

*/ inline VolumeRecommendationOption& WithConfiguration(const VolumeConfiguration& value) { SetConfiguration(value); return *this;} /** *

An array of objects that describe a volume configuration.

*/ inline VolumeRecommendationOption& WithConfiguration(VolumeConfiguration&& value) { SetConfiguration(std::move(value)); return *this;} /** *

The performance risk of the volume recommendation option.

Performance * risk is the likelihood of the recommended volume type meeting the performance * requirement of your workload.

The value ranges from 0 - * 4, with 0 meaning that the recommended resource is * predicted to always provide enough hardware capability. The higher the * performance risk is, the more likely you should validate whether the * recommendation will meet the performance requirements of your workload before * migrating your resource.

*/ inline double GetPerformanceRisk() const{ return m_performanceRisk; } /** *

The performance risk of the volume recommendation option.

Performance * risk is the likelihood of the recommended volume type meeting the performance * requirement of your workload.

The value ranges from 0 - * 4, with 0 meaning that the recommended resource is * predicted to always provide enough hardware capability. The higher the * performance risk is, the more likely you should validate whether the * recommendation will meet the performance requirements of your workload before * migrating your resource.

*/ inline bool PerformanceRiskHasBeenSet() const { return m_performanceRiskHasBeenSet; } /** *

The performance risk of the volume recommendation option.

Performance * risk is the likelihood of the recommended volume type meeting the performance * requirement of your workload.

The value ranges from 0 - * 4, with 0 meaning that the recommended resource is * predicted to always provide enough hardware capability. The higher the * performance risk is, the more likely you should validate whether the * recommendation will meet the performance requirements of your workload before * migrating your resource.

*/ inline void SetPerformanceRisk(double value) { m_performanceRiskHasBeenSet = true; m_performanceRisk = value; } /** *

The performance risk of the volume recommendation option.

Performance * risk is the likelihood of the recommended volume type meeting the performance * requirement of your workload.

The value ranges from 0 - * 4, with 0 meaning that the recommended resource is * predicted to always provide enough hardware capability. The higher the * performance risk is, the more likely you should validate whether the * recommendation will meet the performance requirements of your workload before * migrating your resource.

*/ inline VolumeRecommendationOption& WithPerformanceRisk(double value) { SetPerformanceRisk(value); return *this;} /** *

The rank of the volume recommendation option.

The top recommendation * option is ranked as 1.

*/ inline int GetRank() const{ return m_rank; } /** *

The rank of the volume recommendation option.

The top recommendation * option is ranked as 1.

*/ inline bool RankHasBeenSet() const { return m_rankHasBeenSet; } /** *

The rank of the volume recommendation option.

The top recommendation * option is ranked as 1.

*/ inline void SetRank(int value) { m_rankHasBeenSet = true; m_rank = value; } /** *

The rank of the volume recommendation option.

The top recommendation * option is ranked as 1.

*/ inline VolumeRecommendationOption& WithRank(int value) { SetRank(value); return *this;} /** *

An object that describes the savings opportunity for the EBS volume * recommendation option. Savings opportunity includes the estimated monthly * savings amount and percentage.

*/ inline const SavingsOpportunity& GetSavingsOpportunity() const{ return m_savingsOpportunity; } /** *

An object that describes the savings opportunity for the EBS volume * recommendation option. Savings opportunity includes the estimated monthly * savings amount and percentage.

*/ inline bool SavingsOpportunityHasBeenSet() const { return m_savingsOpportunityHasBeenSet; } /** *

An object that describes the savings opportunity for the EBS volume * recommendation option. Savings opportunity includes the estimated monthly * savings amount and percentage.

*/ inline void SetSavingsOpportunity(const SavingsOpportunity& value) { m_savingsOpportunityHasBeenSet = true; m_savingsOpportunity = value; } /** *

An object that describes the savings opportunity for the EBS volume * recommendation option. Savings opportunity includes the estimated monthly * savings amount and percentage.

*/ inline void SetSavingsOpportunity(SavingsOpportunity&& value) { m_savingsOpportunityHasBeenSet = true; m_savingsOpportunity = std::move(value); } /** *

An object that describes the savings opportunity for the EBS volume * recommendation option. Savings opportunity includes the estimated monthly * savings amount and percentage.

*/ inline VolumeRecommendationOption& WithSavingsOpportunity(const SavingsOpportunity& value) { SetSavingsOpportunity(value); return *this;} /** *

An object that describes the savings opportunity for the EBS volume * recommendation option. Savings opportunity includes the estimated monthly * savings amount and percentage.

*/ inline VolumeRecommendationOption& WithSavingsOpportunity(SavingsOpportunity&& value) { SetSavingsOpportunity(std::move(value)); return *this;} private: VolumeConfiguration m_configuration; bool m_configurationHasBeenSet = false; double m_performanceRisk; bool m_performanceRiskHasBeenSet = false; int m_rank; bool m_rankHasBeenSet = false; SavingsOpportunity m_savingsOpportunity; bool m_savingsOpportunityHasBeenSet = false; }; } // namespace Model } // namespace ComputeOptimizer } // namespace Aws