/** * 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 namespace Aws { template class AmazonWebServiceResult; namespace Utils { namespace Json { class JsonValue; } // namespace Json } // namespace Utils namespace CostExplorer { namespace Model { class GetRightsizingRecommendationResult { public: AWS_COSTEXPLORER_API GetRightsizingRecommendationResult(); AWS_COSTEXPLORER_API GetRightsizingRecommendationResult(const Aws::AmazonWebServiceResult& result); AWS_COSTEXPLORER_API GetRightsizingRecommendationResult& operator=(const Aws::AmazonWebServiceResult& result); /** *

Information regarding this specific recommendation set.

*/ inline const RightsizingRecommendationMetadata& GetMetadata() const{ return m_metadata; } /** *

Information regarding this specific recommendation set.

*/ inline void SetMetadata(const RightsizingRecommendationMetadata& value) { m_metadata = value; } /** *

Information regarding this specific recommendation set.

*/ inline void SetMetadata(RightsizingRecommendationMetadata&& value) { m_metadata = std::move(value); } /** *

Information regarding this specific recommendation set.

*/ inline GetRightsizingRecommendationResult& WithMetadata(const RightsizingRecommendationMetadata& value) { SetMetadata(value); return *this;} /** *

Information regarding this specific recommendation set.

*/ inline GetRightsizingRecommendationResult& WithMetadata(RightsizingRecommendationMetadata&& value) { SetMetadata(std::move(value)); return *this;} /** *

Summary of this recommendation set.

*/ inline const RightsizingRecommendationSummary& GetSummary() const{ return m_summary; } /** *

Summary of this recommendation set.

*/ inline void SetSummary(const RightsizingRecommendationSummary& value) { m_summary = value; } /** *

Summary of this recommendation set.

*/ inline void SetSummary(RightsizingRecommendationSummary&& value) { m_summary = std::move(value); } /** *

Summary of this recommendation set.

*/ inline GetRightsizingRecommendationResult& WithSummary(const RightsizingRecommendationSummary& value) { SetSummary(value); return *this;} /** *

Summary of this recommendation set.

*/ inline GetRightsizingRecommendationResult& WithSummary(RightsizingRecommendationSummary&& value) { SetSummary(std::move(value)); return *this;} /** *

Recommendations to rightsize resources.

*/ inline const Aws::Vector& GetRightsizingRecommendations() const{ return m_rightsizingRecommendations; } /** *

Recommendations to rightsize resources.

*/ inline void SetRightsizingRecommendations(const Aws::Vector& value) { m_rightsizingRecommendations = value; } /** *

Recommendations to rightsize resources.

*/ inline void SetRightsizingRecommendations(Aws::Vector&& value) { m_rightsizingRecommendations = std::move(value); } /** *

Recommendations to rightsize resources.

*/ inline GetRightsizingRecommendationResult& WithRightsizingRecommendations(const Aws::Vector& value) { SetRightsizingRecommendations(value); return *this;} /** *

Recommendations to rightsize resources.

*/ inline GetRightsizingRecommendationResult& WithRightsizingRecommendations(Aws::Vector&& value) { SetRightsizingRecommendations(std::move(value)); return *this;} /** *

Recommendations to rightsize resources.

*/ inline GetRightsizingRecommendationResult& AddRightsizingRecommendations(const RightsizingRecommendation& value) { m_rightsizingRecommendations.push_back(value); return *this; } /** *

Recommendations to rightsize resources.

*/ inline GetRightsizingRecommendationResult& AddRightsizingRecommendations(RightsizingRecommendation&& value) { m_rightsizingRecommendations.push_back(std::move(value)); return *this; } /** *

The token to retrieve the next set of results.

*/ inline const Aws::String& GetNextPageToken() const{ return m_nextPageToken; } /** *

The token to retrieve the next set of results.

*/ inline void SetNextPageToken(const Aws::String& value) { m_nextPageToken = value; } /** *

The token to retrieve the next set of results.

*/ inline void SetNextPageToken(Aws::String&& value) { m_nextPageToken = std::move(value); } /** *

The token to retrieve the next set of results.

*/ inline void SetNextPageToken(const char* value) { m_nextPageToken.assign(value); } /** *

The token to retrieve the next set of results.

*/ inline GetRightsizingRecommendationResult& WithNextPageToken(const Aws::String& value) { SetNextPageToken(value); return *this;} /** *

The token to retrieve the next set of results.

*/ inline GetRightsizingRecommendationResult& WithNextPageToken(Aws::String&& value) { SetNextPageToken(std::move(value)); return *this;} /** *

The token to retrieve the next set of results.

*/ inline GetRightsizingRecommendationResult& WithNextPageToken(const char* value) { SetNextPageToken(value); return *this;} /** *

You can use Configuration to customize recommendations across two attributes. * You can choose to view recommendations for instances within the same instance * families or across different instance families. You can also choose to view your * estimated savings that are associated with recommendations with consideration of * existing Savings Plans or RI benefits, or neither.

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

You can use Configuration to customize recommendations across two attributes. * You can choose to view recommendations for instances within the same instance * families or across different instance families. You can also choose to view your * estimated savings that are associated with recommendations with consideration of * existing Savings Plans or RI benefits, or neither.

*/ inline void SetConfiguration(const RightsizingRecommendationConfiguration& value) { m_configuration = value; } /** *

You can use Configuration to customize recommendations across two attributes. * You can choose to view recommendations for instances within the same instance * families or across different instance families. You can also choose to view your * estimated savings that are associated with recommendations with consideration of * existing Savings Plans or RI benefits, or neither.

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

You can use Configuration to customize recommendations across two attributes. * You can choose to view recommendations for instances within the same instance * families or across different instance families. You can also choose to view your * estimated savings that are associated with recommendations with consideration of * existing Savings Plans or RI benefits, or neither.

*/ inline GetRightsizingRecommendationResult& WithConfiguration(const RightsizingRecommendationConfiguration& value) { SetConfiguration(value); return *this;} /** *

You can use Configuration to customize recommendations across two attributes. * You can choose to view recommendations for instances within the same instance * families or across different instance families. You can also choose to view your * estimated savings that are associated with recommendations with consideration of * existing Savings Plans or RI benefits, or neither.

*/ inline GetRightsizingRecommendationResult& WithConfiguration(RightsizingRecommendationConfiguration&& value) { SetConfiguration(std::move(value)); return *this;} inline const Aws::String& GetRequestId() const{ return m_requestId; } inline void SetRequestId(const Aws::String& value) { m_requestId = value; } inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } inline void SetRequestId(const char* value) { m_requestId.assign(value); } inline GetRightsizingRecommendationResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} inline GetRightsizingRecommendationResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} inline GetRightsizingRecommendationResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} private: RightsizingRecommendationMetadata m_metadata; RightsizingRecommendationSummary m_summary; Aws::Vector m_rightsizingRecommendations; Aws::String m_nextPageToken; RightsizingRecommendationConfiguration m_configuration; Aws::String m_requestId; }; } // namespace Model } // namespace CostExplorer } // namespace Aws