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

Describes the savings opportunity for recommendations of a given resource * type or for the recommendation option of an individual resource.

Savings * opportunity represents the estimated monthly savings you can achieve by * implementing a given Compute Optimizer recommendation.

*

Savings opportunity data requires that you opt in to Cost Explorer, as well * as activate Receive Amazon EC2 resource recommendations in the Cost * Explorer preferences page. That creates a connection between Cost Explorer and * Compute Optimizer. With this connection, Cost Explorer generates savings * estimates considering the price of existing resources, the price of recommended * resources, and historical usage data. Estimated monthly savings reflects the * projected dollar savings associated with each of the recommendations generated. * For more information, see Enabling * Cost Explorer and Optimizing * your cost with Rightsizing Recommendations in the Cost Management User * Guide.

See Also:

AWS * API Reference

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

The estimated monthly savings possible as a percentage of monthly cost by * adopting Compute Optimizer recommendations for a given resource.

*/ inline double GetSavingsOpportunityPercentage() const{ return m_savingsOpportunityPercentage; } /** *

The estimated monthly savings possible as a percentage of monthly cost by * adopting Compute Optimizer recommendations for a given resource.

*/ inline bool SavingsOpportunityPercentageHasBeenSet() const { return m_savingsOpportunityPercentageHasBeenSet; } /** *

The estimated monthly savings possible as a percentage of monthly cost by * adopting Compute Optimizer recommendations for a given resource.

*/ inline void SetSavingsOpportunityPercentage(double value) { m_savingsOpportunityPercentageHasBeenSet = true; m_savingsOpportunityPercentage = value; } /** *

The estimated monthly savings possible as a percentage of monthly cost by * adopting Compute Optimizer recommendations for a given resource.

*/ inline SavingsOpportunity& WithSavingsOpportunityPercentage(double value) { SetSavingsOpportunityPercentage(value); return *this;} /** *

An object that describes the estimated monthly savings amount possible by * adopting Compute Optimizer recommendations for a given resource. This is based * on the On-Demand instance pricing..

*/ inline const EstimatedMonthlySavings& GetEstimatedMonthlySavings() const{ return m_estimatedMonthlySavings; } /** *

An object that describes the estimated monthly savings amount possible by * adopting Compute Optimizer recommendations for a given resource. This is based * on the On-Demand instance pricing..

*/ inline bool EstimatedMonthlySavingsHasBeenSet() const { return m_estimatedMonthlySavingsHasBeenSet; } /** *

An object that describes the estimated monthly savings amount possible by * adopting Compute Optimizer recommendations for a given resource. This is based * on the On-Demand instance pricing..

*/ inline void SetEstimatedMonthlySavings(const EstimatedMonthlySavings& value) { m_estimatedMonthlySavingsHasBeenSet = true; m_estimatedMonthlySavings = value; } /** *

An object that describes the estimated monthly savings amount possible by * adopting Compute Optimizer recommendations for a given resource. This is based * on the On-Demand instance pricing..

*/ inline void SetEstimatedMonthlySavings(EstimatedMonthlySavings&& value) { m_estimatedMonthlySavingsHasBeenSet = true; m_estimatedMonthlySavings = std::move(value); } /** *

An object that describes the estimated monthly savings amount possible by * adopting Compute Optimizer recommendations for a given resource. This is based * on the On-Demand instance pricing..

*/ inline SavingsOpportunity& WithEstimatedMonthlySavings(const EstimatedMonthlySavings& value) { SetEstimatedMonthlySavings(value); return *this;} /** *

An object that describes the estimated monthly savings amount possible by * adopting Compute Optimizer recommendations for a given resource. This is based * on the On-Demand instance pricing..

*/ inline SavingsOpportunity& WithEstimatedMonthlySavings(EstimatedMonthlySavings&& value) { SetEstimatedMonthlySavings(std::move(value)); return *this;} private: double m_savingsOpportunityPercentage; bool m_savingsOpportunityPercentageHasBeenSet = false; EstimatedMonthlySavings m_estimatedMonthlySavings; bool m_estimatedMonthlySavingsHasBeenSet = false; }; } // namespace Model } // namespace ComputeOptimizer } // namespace Aws