/** * 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 SavingsPlans { namespace Model { /** *

Information about a Savings Plan offering.

See Also:

AWS * API Reference

*/ class SavingsPlanOffering { public: AWS_SAVINGSPLANS_API SavingsPlanOffering(); AWS_SAVINGSPLANS_API SavingsPlanOffering(Aws::Utils::Json::JsonView jsonValue); AWS_SAVINGSPLANS_API SavingsPlanOffering& 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 SavingsPlanOffering& WithOfferingId(const Aws::String& value) { SetOfferingId(value); return *this;} /** *

The ID of the offering.

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

The ID of the offering.

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

The product type.

*/ inline const Aws::Vector& GetProductTypes() const{ return m_productTypes; } /** *

The product type.

*/ inline bool ProductTypesHasBeenSet() const { return m_productTypesHasBeenSet; } /** *

The product type.

*/ inline void SetProductTypes(const Aws::Vector& value) { m_productTypesHasBeenSet = true; m_productTypes = value; } /** *

The product type.

*/ inline void SetProductTypes(Aws::Vector&& value) { m_productTypesHasBeenSet = true; m_productTypes = std::move(value); } /** *

The product type.

*/ inline SavingsPlanOffering& WithProductTypes(const Aws::Vector& value) { SetProductTypes(value); return *this;} /** *

The product type.

*/ inline SavingsPlanOffering& WithProductTypes(Aws::Vector&& value) { SetProductTypes(std::move(value)); return *this;} /** *

The product type.

*/ inline SavingsPlanOffering& AddProductTypes(const SavingsPlanProductType& value) { m_productTypesHasBeenSet = true; m_productTypes.push_back(value); return *this; } /** *

The product type.

*/ inline SavingsPlanOffering& AddProductTypes(SavingsPlanProductType&& value) { m_productTypesHasBeenSet = true; m_productTypes.push_back(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 SavingsPlanOffering& WithPlanType(const SavingsPlanType& value) { SetPlanType(value); return *this;} /** *

The plan type.

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

The description.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The description.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The description.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The description.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The description.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The description.

*/ inline SavingsPlanOffering& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description.

*/ inline SavingsPlanOffering& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The description.

*/ inline SavingsPlanOffering& WithDescription(const char* value) { SetDescription(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 SavingsPlanOffering& WithPaymentOption(const SavingsPlanPaymentOption& value) { SetPaymentOption(value); return *this;} /** *

The payment option.

*/ inline SavingsPlanOffering& WithPaymentOption(SavingsPlanPaymentOption&& value) { SetPaymentOption(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 SavingsPlanOffering& 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 SavingsPlanOffering& WithCurrency(const CurrencyCode& value) { SetCurrency(value); return *this;} /** *

The currency.

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

The service.

*/ inline const Aws::String& GetServiceCode() const{ return m_serviceCode; } /** *

The service.

*/ inline bool ServiceCodeHasBeenSet() const { return m_serviceCodeHasBeenSet; } /** *

The service.

*/ inline void SetServiceCode(const Aws::String& value) { m_serviceCodeHasBeenSet = true; m_serviceCode = value; } /** *

The service.

*/ inline void SetServiceCode(Aws::String&& value) { m_serviceCodeHasBeenSet = true; m_serviceCode = std::move(value); } /** *

The service.

*/ inline void SetServiceCode(const char* value) { m_serviceCodeHasBeenSet = true; m_serviceCode.assign(value); } /** *

The service.

*/ inline SavingsPlanOffering& WithServiceCode(const Aws::String& value) { SetServiceCode(value); return *this;} /** *

The service.

*/ inline SavingsPlanOffering& WithServiceCode(Aws::String&& value) { SetServiceCode(std::move(value)); return *this;} /** *

The service.

*/ inline SavingsPlanOffering& WithServiceCode(const char* value) { SetServiceCode(value); return *this;} /** *

The usage details of the line item in the billing report.

*/ inline const Aws::String& GetUsageType() const{ return m_usageType; } /** *

The usage details of the line item in the billing report.

*/ inline bool UsageTypeHasBeenSet() const { return m_usageTypeHasBeenSet; } /** *

The usage details of the line item in the billing report.

*/ inline void SetUsageType(const Aws::String& value) { m_usageTypeHasBeenSet = true; m_usageType = value; } /** *

The usage details of the line item in the billing report.

*/ inline void SetUsageType(Aws::String&& value) { m_usageTypeHasBeenSet = true; m_usageType = std::move(value); } /** *

The usage details of the line item in the billing report.

*/ inline void SetUsageType(const char* value) { m_usageTypeHasBeenSet = true; m_usageType.assign(value); } /** *

The usage details of the line item in the billing report.

*/ inline SavingsPlanOffering& WithUsageType(const Aws::String& value) { SetUsageType(value); return *this;} /** *

The usage details of the line item in the billing report.

*/ inline SavingsPlanOffering& WithUsageType(Aws::String&& value) { SetUsageType(std::move(value)); return *this;} /** *

The usage details of the line item in the billing report.

*/ inline SavingsPlanOffering& WithUsageType(const char* value) { SetUsageType(value); return *this;} /** *

The specific AWS operation for the line item in the billing report.

*/ inline const Aws::String& GetOperation() const{ return m_operation; } /** *

The specific AWS operation for the line item in the billing report.

*/ inline bool OperationHasBeenSet() const { return m_operationHasBeenSet; } /** *

The specific AWS operation for the line item in the billing report.

*/ inline void SetOperation(const Aws::String& value) { m_operationHasBeenSet = true; m_operation = value; } /** *

The specific AWS operation for the line item in the billing report.

*/ inline void SetOperation(Aws::String&& value) { m_operationHasBeenSet = true; m_operation = std::move(value); } /** *

The specific AWS operation for the line item in the billing report.

*/ inline void SetOperation(const char* value) { m_operationHasBeenSet = true; m_operation.assign(value); } /** *

The specific AWS operation for the line item in the billing report.

*/ inline SavingsPlanOffering& WithOperation(const Aws::String& value) { SetOperation(value); return *this;} /** *

The specific AWS operation for the line item in the billing report.

*/ inline SavingsPlanOffering& WithOperation(Aws::String&& value) { SetOperation(std::move(value)); return *this;} /** *

The specific AWS operation for the line item in the billing report.

*/ inline SavingsPlanOffering& WithOperation(const char* value) { SetOperation(value); return *this;} /** *

The properties.

*/ inline const Aws::Vector& GetProperties() const{ return m_properties; } /** *

The properties.

*/ inline bool PropertiesHasBeenSet() const { return m_propertiesHasBeenSet; } /** *

The properties.

*/ inline void SetProperties(const Aws::Vector& value) { m_propertiesHasBeenSet = true; m_properties = value; } /** *

The properties.

*/ inline void SetProperties(Aws::Vector&& value) { m_propertiesHasBeenSet = true; m_properties = std::move(value); } /** *

The properties.

*/ inline SavingsPlanOffering& WithProperties(const Aws::Vector& value) { SetProperties(value); return *this;} /** *

The properties.

*/ inline SavingsPlanOffering& WithProperties(Aws::Vector&& value) { SetProperties(std::move(value)); return *this;} /** *

The properties.

*/ inline SavingsPlanOffering& AddProperties(const SavingsPlanOfferingProperty& value) { m_propertiesHasBeenSet = true; m_properties.push_back(value); return *this; } /** *

The properties.

*/ inline SavingsPlanOffering& AddProperties(SavingsPlanOfferingProperty&& value) { m_propertiesHasBeenSet = true; m_properties.push_back(std::move(value)); return *this; } private: Aws::String m_offeringId; bool m_offeringIdHasBeenSet = false; Aws::Vector m_productTypes; bool m_productTypesHasBeenSet = false; SavingsPlanType m_planType; bool m_planTypeHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; SavingsPlanPaymentOption m_paymentOption; bool m_paymentOptionHasBeenSet = false; long long m_durationSeconds; bool m_durationSecondsHasBeenSet = false; CurrencyCode m_currency; bool m_currencyHasBeenSet = false; Aws::String m_serviceCode; bool m_serviceCodeHasBeenSet = false; Aws::String m_usageType; bool m_usageTypeHasBeenSet = false; Aws::String m_operation; bool m_operationHasBeenSet = false; Aws::Vector m_properties; bool m_propertiesHasBeenSet = false; }; } // namespace Model } // namespace SavingsPlans } // namespace Aws