/** * 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 #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace CostExplorer { namespace Model { /** *

Contains your request parameters, Savings Plan Recommendations Summary, and * Details.

See Also:

AWS * API Reference

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

The account scope that you want your recommendations for. Amazon Web Services * calculates recommendations that include the management account and member * accounts if the value is set to PAYER. If the value is * LINKED, recommendations are calculated for individual member * accounts only.

*/ inline const AccountScope& GetAccountScope() const{ return m_accountScope; } /** *

The account scope that you want your recommendations for. Amazon Web Services * calculates recommendations that include the management account and member * accounts if the value is set to PAYER. If the value is * LINKED, recommendations are calculated for individual member * accounts only.

*/ inline bool AccountScopeHasBeenSet() const { return m_accountScopeHasBeenSet; } /** *

The account scope that you want your recommendations for. Amazon Web Services * calculates recommendations that include the management account and member * accounts if the value is set to PAYER. If the value is * LINKED, recommendations are calculated for individual member * accounts only.

*/ inline void SetAccountScope(const AccountScope& value) { m_accountScopeHasBeenSet = true; m_accountScope = value; } /** *

The account scope that you want your recommendations for. Amazon Web Services * calculates recommendations that include the management account and member * accounts if the value is set to PAYER. If the value is * LINKED, recommendations are calculated for individual member * accounts only.

*/ inline void SetAccountScope(AccountScope&& value) { m_accountScopeHasBeenSet = true; m_accountScope = std::move(value); } /** *

The account scope that you want your recommendations for. Amazon Web Services * calculates recommendations that include the management account and member * accounts if the value is set to PAYER. If the value is * LINKED, recommendations are calculated for individual member * accounts only.

*/ inline SavingsPlansPurchaseRecommendation& WithAccountScope(const AccountScope& value) { SetAccountScope(value); return *this;} /** *

The account scope that you want your recommendations for. Amazon Web Services * calculates recommendations that include the management account and member * accounts if the value is set to PAYER. If the value is * LINKED, recommendations are calculated for individual member * accounts only.

*/ inline SavingsPlansPurchaseRecommendation& WithAccountScope(AccountScope&& value) { SetAccountScope(std::move(value)); return *this;} /** *

The requested Savings Plans recommendation type.

*/ inline const SupportedSavingsPlansType& GetSavingsPlansType() const{ return m_savingsPlansType; } /** *

The requested Savings Plans recommendation type.

*/ inline bool SavingsPlansTypeHasBeenSet() const { return m_savingsPlansTypeHasBeenSet; } /** *

The requested Savings Plans recommendation type.

*/ inline void SetSavingsPlansType(const SupportedSavingsPlansType& value) { m_savingsPlansTypeHasBeenSet = true; m_savingsPlansType = value; } /** *

The requested Savings Plans recommendation type.

*/ inline void SetSavingsPlansType(SupportedSavingsPlansType&& value) { m_savingsPlansTypeHasBeenSet = true; m_savingsPlansType = std::move(value); } /** *

The requested Savings Plans recommendation type.

*/ inline SavingsPlansPurchaseRecommendation& WithSavingsPlansType(const SupportedSavingsPlansType& value) { SetSavingsPlansType(value); return *this;} /** *

The requested Savings Plans recommendation type.

*/ inline SavingsPlansPurchaseRecommendation& WithSavingsPlansType(SupportedSavingsPlansType&& value) { SetSavingsPlansType(std::move(value)); return *this;} /** *

The Savings Plans recommendation term in years. It's used to generate the * recommendation.

*/ inline const TermInYears& GetTermInYears() const{ return m_termInYears; } /** *

The Savings Plans recommendation term in years. It's used to generate the * recommendation.

*/ inline bool TermInYearsHasBeenSet() const { return m_termInYearsHasBeenSet; } /** *

The Savings Plans recommendation term in years. It's used to generate the * recommendation.

*/ inline void SetTermInYears(const TermInYears& value) { m_termInYearsHasBeenSet = true; m_termInYears = value; } /** *

The Savings Plans recommendation term in years. It's used to generate the * recommendation.

*/ inline void SetTermInYears(TermInYears&& value) { m_termInYearsHasBeenSet = true; m_termInYears = std::move(value); } /** *

The Savings Plans recommendation term in years. It's used to generate the * recommendation.

*/ inline SavingsPlansPurchaseRecommendation& WithTermInYears(const TermInYears& value) { SetTermInYears(value); return *this;} /** *

The Savings Plans recommendation term in years. It's used to generate the * recommendation.

*/ inline SavingsPlansPurchaseRecommendation& WithTermInYears(TermInYears&& value) { SetTermInYears(std::move(value)); return *this;} /** *

The payment option that's used to generate the recommendation.

*/ inline const PaymentOption& GetPaymentOption() const{ return m_paymentOption; } /** *

The payment option that's used to generate the recommendation.

*/ inline bool PaymentOptionHasBeenSet() const { return m_paymentOptionHasBeenSet; } /** *

The payment option that's used to generate the recommendation.

*/ inline void SetPaymentOption(const PaymentOption& value) { m_paymentOptionHasBeenSet = true; m_paymentOption = value; } /** *

The payment option that's used to generate the recommendation.

*/ inline void SetPaymentOption(PaymentOption&& value) { m_paymentOptionHasBeenSet = true; m_paymentOption = std::move(value); } /** *

The payment option that's used to generate the recommendation.

*/ inline SavingsPlansPurchaseRecommendation& WithPaymentOption(const PaymentOption& value) { SetPaymentOption(value); return *this;} /** *

The payment option that's used to generate the recommendation.

*/ inline SavingsPlansPurchaseRecommendation& WithPaymentOption(PaymentOption&& value) { SetPaymentOption(std::move(value)); return *this;} /** *

The lookback period in days that's used to generate the recommendation.

*/ inline const LookbackPeriodInDays& GetLookbackPeriodInDays() const{ return m_lookbackPeriodInDays; } /** *

The lookback period in days that's used to generate the recommendation.

*/ inline bool LookbackPeriodInDaysHasBeenSet() const { return m_lookbackPeriodInDaysHasBeenSet; } /** *

The lookback period in days that's used to generate the recommendation.

*/ inline void SetLookbackPeriodInDays(const LookbackPeriodInDays& value) { m_lookbackPeriodInDaysHasBeenSet = true; m_lookbackPeriodInDays = value; } /** *

The lookback period in days that's used to generate the recommendation.

*/ inline void SetLookbackPeriodInDays(LookbackPeriodInDays&& value) { m_lookbackPeriodInDaysHasBeenSet = true; m_lookbackPeriodInDays = std::move(value); } /** *

The lookback period in days that's used to generate the recommendation.

*/ inline SavingsPlansPurchaseRecommendation& WithLookbackPeriodInDays(const LookbackPeriodInDays& value) { SetLookbackPeriodInDays(value); return *this;} /** *

The lookback period in days that's used to generate the recommendation.

*/ inline SavingsPlansPurchaseRecommendation& WithLookbackPeriodInDays(LookbackPeriodInDays&& value) { SetLookbackPeriodInDays(std::move(value)); return *this;} /** *

Details for the Savings Plans that we recommend that you purchase to cover * existing Savings Plans eligible workloads.

*/ inline const Aws::Vector& GetSavingsPlansPurchaseRecommendationDetails() const{ return m_savingsPlansPurchaseRecommendationDetails; } /** *

Details for the Savings Plans that we recommend that you purchase to cover * existing Savings Plans eligible workloads.

*/ inline bool SavingsPlansPurchaseRecommendationDetailsHasBeenSet() const { return m_savingsPlansPurchaseRecommendationDetailsHasBeenSet; } /** *

Details for the Savings Plans that we recommend that you purchase to cover * existing Savings Plans eligible workloads.

*/ inline void SetSavingsPlansPurchaseRecommendationDetails(const Aws::Vector& value) { m_savingsPlansPurchaseRecommendationDetailsHasBeenSet = true; m_savingsPlansPurchaseRecommendationDetails = value; } /** *

Details for the Savings Plans that we recommend that you purchase to cover * existing Savings Plans eligible workloads.

*/ inline void SetSavingsPlansPurchaseRecommendationDetails(Aws::Vector&& value) { m_savingsPlansPurchaseRecommendationDetailsHasBeenSet = true; m_savingsPlansPurchaseRecommendationDetails = std::move(value); } /** *

Details for the Savings Plans that we recommend that you purchase to cover * existing Savings Plans eligible workloads.

*/ inline SavingsPlansPurchaseRecommendation& WithSavingsPlansPurchaseRecommendationDetails(const Aws::Vector& value) { SetSavingsPlansPurchaseRecommendationDetails(value); return *this;} /** *

Details for the Savings Plans that we recommend that you purchase to cover * existing Savings Plans eligible workloads.

*/ inline SavingsPlansPurchaseRecommendation& WithSavingsPlansPurchaseRecommendationDetails(Aws::Vector&& value) { SetSavingsPlansPurchaseRecommendationDetails(std::move(value)); return *this;} /** *

Details for the Savings Plans that we recommend that you purchase to cover * existing Savings Plans eligible workloads.

*/ inline SavingsPlansPurchaseRecommendation& AddSavingsPlansPurchaseRecommendationDetails(const SavingsPlansPurchaseRecommendationDetail& value) { m_savingsPlansPurchaseRecommendationDetailsHasBeenSet = true; m_savingsPlansPurchaseRecommendationDetails.push_back(value); return *this; } /** *

Details for the Savings Plans that we recommend that you purchase to cover * existing Savings Plans eligible workloads.

*/ inline SavingsPlansPurchaseRecommendation& AddSavingsPlansPurchaseRecommendationDetails(SavingsPlansPurchaseRecommendationDetail&& value) { m_savingsPlansPurchaseRecommendationDetailsHasBeenSet = true; m_savingsPlansPurchaseRecommendationDetails.push_back(std::move(value)); return *this; } /** *

Summary metrics for your Savings Plans Recommendations.

*/ inline const SavingsPlansPurchaseRecommendationSummary& GetSavingsPlansPurchaseRecommendationSummary() const{ return m_savingsPlansPurchaseRecommendationSummary; } /** *

Summary metrics for your Savings Plans Recommendations.

*/ inline bool SavingsPlansPurchaseRecommendationSummaryHasBeenSet() const { return m_savingsPlansPurchaseRecommendationSummaryHasBeenSet; } /** *

Summary metrics for your Savings Plans Recommendations.

*/ inline void SetSavingsPlansPurchaseRecommendationSummary(const SavingsPlansPurchaseRecommendationSummary& value) { m_savingsPlansPurchaseRecommendationSummaryHasBeenSet = true; m_savingsPlansPurchaseRecommendationSummary = value; } /** *

Summary metrics for your Savings Plans Recommendations.

*/ inline void SetSavingsPlansPurchaseRecommendationSummary(SavingsPlansPurchaseRecommendationSummary&& value) { m_savingsPlansPurchaseRecommendationSummaryHasBeenSet = true; m_savingsPlansPurchaseRecommendationSummary = std::move(value); } /** *

Summary metrics for your Savings Plans Recommendations.

*/ inline SavingsPlansPurchaseRecommendation& WithSavingsPlansPurchaseRecommendationSummary(const SavingsPlansPurchaseRecommendationSummary& value) { SetSavingsPlansPurchaseRecommendationSummary(value); return *this;} /** *

Summary metrics for your Savings Plans Recommendations.

*/ inline SavingsPlansPurchaseRecommendation& WithSavingsPlansPurchaseRecommendationSummary(SavingsPlansPurchaseRecommendationSummary&& value) { SetSavingsPlansPurchaseRecommendationSummary(std::move(value)); return *this;} private: AccountScope m_accountScope; bool m_accountScopeHasBeenSet = false; SupportedSavingsPlansType m_savingsPlansType; bool m_savingsPlansTypeHasBeenSet = false; TermInYears m_termInYears; bool m_termInYearsHasBeenSet = false; PaymentOption m_paymentOption; bool m_paymentOptionHasBeenSet = false; LookbackPeriodInDays m_lookbackPeriodInDays; bool m_lookbackPeriodInDaysHasBeenSet = false; Aws::Vector m_savingsPlansPurchaseRecommendationDetails; bool m_savingsPlansPurchaseRecommendationDetailsHasBeenSet = false; SavingsPlansPurchaseRecommendationSummary m_savingsPlansPurchaseRecommendationSummary; bool m_savingsPlansPurchaseRecommendationSummaryHasBeenSet = false; }; } // namespace Model } // namespace CostExplorer } // namespace Aws