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

Information about a Savings Plan offering.

See Also:

AWS * API Reference

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

The ID of the offering.

*/ inline const Aws::String& GetOfferingId() const{ return m_offeringId; } /** *

The ID of the offering.

*/ inline bool OfferingIdHasBeenSet() const { return m_offeringIdHasBeenSet; } /** *

The ID of the offering.

*/ inline void SetOfferingId(const Aws::String& value) { m_offeringIdHasBeenSet = true; m_offeringId = value; } /** *

The ID of the offering.

*/ inline void SetOfferingId(Aws::String&& value) { m_offeringIdHasBeenSet = true; m_offeringId = std::move(value); } /** *

The ID of the offering.

*/ inline void SetOfferingId(const char* value) { m_offeringIdHasBeenSet = true; m_offeringId.assign(value); } /** *

The ID of the offering.

*/ inline ParentSavingsPlanOffering& WithOfferingId(const Aws::String& value) { SetOfferingId(value); return *this;} /** *

The ID of the offering.

*/ inline ParentSavingsPlanOffering& WithOfferingId(Aws::String&& value) { SetOfferingId(std::move(value)); return *this;} /** *

The ID of the offering.

*/ inline ParentSavingsPlanOffering& WithOfferingId(const char* value) { SetOfferingId(value); return *this;} /** *

The payment option.

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

The payment option.

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

The payment option.

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

The payment option.

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

The payment option.

*/ inline ParentSavingsPlanOffering& WithPaymentOption(const SavingsPlanPaymentOption& value) { SetPaymentOption(value); return *this;} /** *

The payment option.

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

The plan type.

*/ inline const SavingsPlanType& GetPlanType() const{ return m_planType; } /** *

The plan type.

*/ inline bool PlanTypeHasBeenSet() const { return m_planTypeHasBeenSet; } /** *

The plan type.

*/ inline void SetPlanType(const SavingsPlanType& value) { m_planTypeHasBeenSet = true; m_planType = value; } /** *

The plan type.

*/ inline void SetPlanType(SavingsPlanType&& value) { m_planTypeHasBeenSet = true; m_planType = std::move(value); } /** *

The plan type.

*/ inline ParentSavingsPlanOffering& WithPlanType(const SavingsPlanType& value) { SetPlanType(value); return *this;} /** *

The plan type.

*/ inline ParentSavingsPlanOffering& WithPlanType(SavingsPlanType&& value) { SetPlanType(std::move(value)); return *this;} /** *

The duration, in seconds.

*/ inline long long GetDurationSeconds() const{ return m_durationSeconds; } /** *

The duration, in seconds.

*/ inline bool DurationSecondsHasBeenSet() const { return m_durationSecondsHasBeenSet; } /** *

The duration, in seconds.

*/ inline void SetDurationSeconds(long long value) { m_durationSecondsHasBeenSet = true; m_durationSeconds = value; } /** *

The duration, in seconds.

*/ inline ParentSavingsPlanOffering& WithDurationSeconds(long long value) { SetDurationSeconds(value); return *this;} /** *

The currency.

*/ inline const CurrencyCode& GetCurrency() const{ return m_currency; } /** *

The currency.

*/ inline bool CurrencyHasBeenSet() const { return m_currencyHasBeenSet; } /** *

The currency.

*/ inline void SetCurrency(const CurrencyCode& value) { m_currencyHasBeenSet = true; m_currency = value; } /** *

The currency.

*/ inline void SetCurrency(CurrencyCode&& value) { m_currencyHasBeenSet = true; m_currency = std::move(value); } /** *

The currency.

*/ inline ParentSavingsPlanOffering& WithCurrency(const CurrencyCode& value) { SetCurrency(value); return *this;} /** *

The currency.

*/ inline ParentSavingsPlanOffering& WithCurrency(CurrencyCode&& value) { SetCurrency(std::move(value)); return *this;} /** *

The description.

*/ inline const Aws::String& GetPlanDescription() const{ return m_planDescription; } /** *

The description.

*/ inline bool PlanDescriptionHasBeenSet() const { return m_planDescriptionHasBeenSet; } /** *

The description.

*/ inline void SetPlanDescription(const Aws::String& value) { m_planDescriptionHasBeenSet = true; m_planDescription = value; } /** *

The description.

*/ inline void SetPlanDescription(Aws::String&& value) { m_planDescriptionHasBeenSet = true; m_planDescription = std::move(value); } /** *

The description.

*/ inline void SetPlanDescription(const char* value) { m_planDescriptionHasBeenSet = true; m_planDescription.assign(value); } /** *

The description.

*/ inline ParentSavingsPlanOffering& WithPlanDescription(const Aws::String& value) { SetPlanDescription(value); return *this;} /** *

The description.

*/ inline ParentSavingsPlanOffering& WithPlanDescription(Aws::String&& value) { SetPlanDescription(std::move(value)); return *this;} /** *

The description.

*/ inline ParentSavingsPlanOffering& WithPlanDescription(const char* value) { SetPlanDescription(value); return *this;} private: Aws::String m_offeringId; bool m_offeringIdHasBeenSet = false; SavingsPlanPaymentOption m_paymentOption; bool m_paymentOptionHasBeenSet = false; SavingsPlanType m_planType; bool m_planTypeHasBeenSet = false; long long m_durationSeconds; bool m_durationSecondsHasBeenSet = false; CurrencyCode m_currency; bool m_currencyHasBeenSet = false; Aws::String m_planDescription; bool m_planDescriptionHasBeenSet = false; }; } // namespace Model } // namespace SavingsPlans } // namespace Aws