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

A summary of a recommendation.

See Also:

AWS * API Reference

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

An array of objects that describe a recommendation summary.

*/ inline const Aws::Vector& GetSummaries() const{ return m_summaries; } /** *

An array of objects that describe a recommendation summary.

*/ inline bool SummariesHasBeenSet() const { return m_summariesHasBeenSet; } /** *

An array of objects that describe a recommendation summary.

*/ inline void SetSummaries(const Aws::Vector& value) { m_summariesHasBeenSet = true; m_summaries = value; } /** *

An array of objects that describe a recommendation summary.

*/ inline void SetSummaries(Aws::Vector&& value) { m_summariesHasBeenSet = true; m_summaries = std::move(value); } /** *

An array of objects that describe a recommendation summary.

*/ inline RecommendationSummary& WithSummaries(const Aws::Vector& value) { SetSummaries(value); return *this;} /** *

An array of objects that describe a recommendation summary.

*/ inline RecommendationSummary& WithSummaries(Aws::Vector&& value) { SetSummaries(std::move(value)); return *this;} /** *

An array of objects that describe a recommendation summary.

*/ inline RecommendationSummary& AddSummaries(const Summary& value) { m_summariesHasBeenSet = true; m_summaries.push_back(value); return *this; } /** *

An array of objects that describe a recommendation summary.

*/ inline RecommendationSummary& AddSummaries(Summary&& value) { m_summariesHasBeenSet = true; m_summaries.push_back(std::move(value)); return *this; } /** *

The resource type that the recommendation summary applies to.

*/ inline const RecommendationSourceType& GetRecommendationResourceType() const{ return m_recommendationResourceType; } /** *

The resource type that the recommendation summary applies to.

*/ inline bool RecommendationResourceTypeHasBeenSet() const { return m_recommendationResourceTypeHasBeenSet; } /** *

The resource type that the recommendation summary applies to.

*/ inline void SetRecommendationResourceType(const RecommendationSourceType& value) { m_recommendationResourceTypeHasBeenSet = true; m_recommendationResourceType = value; } /** *

The resource type that the recommendation summary applies to.

*/ inline void SetRecommendationResourceType(RecommendationSourceType&& value) { m_recommendationResourceTypeHasBeenSet = true; m_recommendationResourceType = std::move(value); } /** *

The resource type that the recommendation summary applies to.

*/ inline RecommendationSummary& WithRecommendationResourceType(const RecommendationSourceType& value) { SetRecommendationResourceType(value); return *this;} /** *

The resource type that the recommendation summary applies to.

*/ inline RecommendationSummary& WithRecommendationResourceType(RecommendationSourceType&& value) { SetRecommendationResourceType(std::move(value)); return *this;} /** *

The Amazon Web Services account ID of the recommendation summary.

*/ inline const Aws::String& GetAccountId() const{ return m_accountId; } /** *

The Amazon Web Services account ID of the recommendation summary.

*/ inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; } /** *

The Amazon Web Services account ID of the recommendation summary.

*/ inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; } /** *

The Amazon Web Services account ID of the recommendation summary.

*/ inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); } /** *

The Amazon Web Services account ID of the recommendation summary.

*/ inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); } /** *

The Amazon Web Services account ID of the recommendation summary.

*/ inline RecommendationSummary& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;} /** *

The Amazon Web Services account ID of the recommendation summary.

*/ inline RecommendationSummary& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;} /** *

The Amazon Web Services account ID of the recommendation summary.

*/ inline RecommendationSummary& WithAccountId(const char* value) { SetAccountId(value); return *this;} /** *

An object that describes the savings opportunity for a given resource type. * 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 a given resource type. * 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 a given resource type. * 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 a given resource type. * 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 a given resource type. * Savings opportunity includes the estimated monthly savings amount and * percentage.

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

An object that describes the savings opportunity for a given resource type. * Savings opportunity includes the estimated monthly savings amount and * percentage.

*/ inline RecommendationSummary& WithSavingsOpportunity(SavingsOpportunity&& value) { SetSavingsOpportunity(std::move(value)); return *this;} /** *

An object that describes the performance risk ratings for a given resource * type.

*/ inline const CurrentPerformanceRiskRatings& GetCurrentPerformanceRiskRatings() const{ return m_currentPerformanceRiskRatings; } /** *

An object that describes the performance risk ratings for a given resource * type.

*/ inline bool CurrentPerformanceRiskRatingsHasBeenSet() const { return m_currentPerformanceRiskRatingsHasBeenSet; } /** *

An object that describes the performance risk ratings for a given resource * type.

*/ inline void SetCurrentPerformanceRiskRatings(const CurrentPerformanceRiskRatings& value) { m_currentPerformanceRiskRatingsHasBeenSet = true; m_currentPerformanceRiskRatings = value; } /** *

An object that describes the performance risk ratings for a given resource * type.

*/ inline void SetCurrentPerformanceRiskRatings(CurrentPerformanceRiskRatings&& value) { m_currentPerformanceRiskRatingsHasBeenSet = true; m_currentPerformanceRiskRatings = std::move(value); } /** *

An object that describes the performance risk ratings for a given resource * type.

*/ inline RecommendationSummary& WithCurrentPerformanceRiskRatings(const CurrentPerformanceRiskRatings& value) { SetCurrentPerformanceRiskRatings(value); return *this;} /** *

An object that describes the performance risk ratings for a given resource * type.

*/ inline RecommendationSummary& WithCurrentPerformanceRiskRatings(CurrentPerformanceRiskRatings&& value) { SetCurrentPerformanceRiskRatings(std::move(value)); return *this;} /** *

An array of objects that describes the estimated monthly saving amounts for * the instances running on the specified inferredWorkloadTypes. The * array contains the top three savings opportunites for the instances running * inferred workload types.

*/ inline const Aws::Vector& GetInferredWorkloadSavings() const{ return m_inferredWorkloadSavings; } /** *

An array of objects that describes the estimated monthly saving amounts for * the instances running on the specified inferredWorkloadTypes. The * array contains the top three savings opportunites for the instances running * inferred workload types.

*/ inline bool InferredWorkloadSavingsHasBeenSet() const { return m_inferredWorkloadSavingsHasBeenSet; } /** *

An array of objects that describes the estimated monthly saving amounts for * the instances running on the specified inferredWorkloadTypes. The * array contains the top three savings opportunites for the instances running * inferred workload types.

*/ inline void SetInferredWorkloadSavings(const Aws::Vector& value) { m_inferredWorkloadSavingsHasBeenSet = true; m_inferredWorkloadSavings = value; } /** *

An array of objects that describes the estimated monthly saving amounts for * the instances running on the specified inferredWorkloadTypes. The * array contains the top three savings opportunites for the instances running * inferred workload types.

*/ inline void SetInferredWorkloadSavings(Aws::Vector&& value) { m_inferredWorkloadSavingsHasBeenSet = true; m_inferredWorkloadSavings = std::move(value); } /** *

An array of objects that describes the estimated monthly saving amounts for * the instances running on the specified inferredWorkloadTypes. The * array contains the top three savings opportunites for the instances running * inferred workload types.

*/ inline RecommendationSummary& WithInferredWorkloadSavings(const Aws::Vector& value) { SetInferredWorkloadSavings(value); return *this;} /** *

An array of objects that describes the estimated monthly saving amounts for * the instances running on the specified inferredWorkloadTypes. The * array contains the top three savings opportunites for the instances running * inferred workload types.

*/ inline RecommendationSummary& WithInferredWorkloadSavings(Aws::Vector&& value) { SetInferredWorkloadSavings(std::move(value)); return *this;} /** *

An array of objects that describes the estimated monthly saving amounts for * the instances running on the specified inferredWorkloadTypes. The * array contains the top three savings opportunites for the instances running * inferred workload types.

*/ inline RecommendationSummary& AddInferredWorkloadSavings(const InferredWorkloadSaving& value) { m_inferredWorkloadSavingsHasBeenSet = true; m_inferredWorkloadSavings.push_back(value); return *this; } /** *

An array of objects that describes the estimated monthly saving amounts for * the instances running on the specified inferredWorkloadTypes. The * array contains the top three savings opportunites for the instances running * inferred workload types.

*/ inline RecommendationSummary& AddInferredWorkloadSavings(InferredWorkloadSaving&& value) { m_inferredWorkloadSavingsHasBeenSet = true; m_inferredWorkloadSavings.push_back(std::move(value)); return *this; } private: Aws::Vector m_summaries; bool m_summariesHasBeenSet = false; RecommendationSourceType m_recommendationResourceType; bool m_recommendationResourceTypeHasBeenSet = false; Aws::String m_accountId; bool m_accountIdHasBeenSet = false; SavingsOpportunity m_savingsOpportunity; bool m_savingsOpportunityHasBeenSet = false; CurrentPerformanceRiskRatings m_currentPerformanceRiskRatings; bool m_currentPerformanceRiskRatingsHasBeenSet = false; Aws::Vector m_inferredWorkloadSavings; bool m_inferredWorkloadSavingsHasBeenSet = false; }; } // namespace Model } // namespace ComputeOptimizer } // namespace Aws