/** * 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 rate.

See Also:

AWS * API Reference

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

The rate.

*/ inline const Aws::String& GetRate() const{ return m_rate; } /** *

The rate.

*/ inline bool RateHasBeenSet() const { return m_rateHasBeenSet; } /** *

The rate.

*/ inline void SetRate(const Aws::String& value) { m_rateHasBeenSet = true; m_rate = value; } /** *

The rate.

*/ inline void SetRate(Aws::String&& value) { m_rateHasBeenSet = true; m_rate = std::move(value); } /** *

The rate.

*/ inline void SetRate(const char* value) { m_rateHasBeenSet = true; m_rate.assign(value); } /** *

The rate.

*/ inline SavingsPlanRate& WithRate(const Aws::String& value) { SetRate(value); return *this;} /** *

The rate.

*/ inline SavingsPlanRate& WithRate(Aws::String&& value) { SetRate(std::move(value)); return *this;} /** *

The rate.

*/ inline SavingsPlanRate& WithRate(const char* value) { SetRate(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 SavingsPlanRate& WithCurrency(const CurrencyCode& value) { SetCurrency(value); return *this;} /** *

The currency.

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

The unit.

*/ inline const SavingsPlanRateUnit& GetUnit() const{ return m_unit; } /** *

The unit.

*/ inline bool UnitHasBeenSet() const { return m_unitHasBeenSet; } /** *

The unit.

*/ inline void SetUnit(const SavingsPlanRateUnit& value) { m_unitHasBeenSet = true; m_unit = value; } /** *

The unit.

*/ inline void SetUnit(SavingsPlanRateUnit&& value) { m_unitHasBeenSet = true; m_unit = std::move(value); } /** *

The unit.

*/ inline SavingsPlanRate& WithUnit(const SavingsPlanRateUnit& value) { SetUnit(value); return *this;} /** *

The unit.

*/ inline SavingsPlanRate& WithUnit(SavingsPlanRateUnit&& value) { SetUnit(std::move(value)); return *this;} /** *

The product type.

*/ inline const SavingsPlanProductType& GetProductType() const{ return m_productType; } /** *

The product type.

*/ inline bool ProductTypeHasBeenSet() const { return m_productTypeHasBeenSet; } /** *

The product type.

*/ inline void SetProductType(const SavingsPlanProductType& value) { m_productTypeHasBeenSet = true; m_productType = value; } /** *

The product type.

*/ inline void SetProductType(SavingsPlanProductType&& value) { m_productTypeHasBeenSet = true; m_productType = std::move(value); } /** *

The product type.

*/ inline SavingsPlanRate& WithProductType(const SavingsPlanProductType& value) { SetProductType(value); return *this;} /** *

The product type.

*/ inline SavingsPlanRate& WithProductType(SavingsPlanProductType&& value) { SetProductType(std::move(value)); return *this;} /** *

The service.

*/ inline const SavingsPlanRateServiceCode& GetServiceCode() const{ return m_serviceCode; } /** *

The service.

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

The service.

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

The service.

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

The service.

*/ inline SavingsPlanRate& WithServiceCode(const SavingsPlanRateServiceCode& value) { SetServiceCode(value); return *this;} /** *

The service.

*/ inline SavingsPlanRate& WithServiceCode(SavingsPlanRateServiceCode&& value) { SetServiceCode(std::move(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 SavingsPlanRate& WithUsageType(const Aws::String& value) { SetUsageType(value); return *this;} /** *

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

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

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

*/ inline SavingsPlanRate& 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 SavingsPlanRate& WithOperation(const Aws::String& value) { SetOperation(value); return *this;} /** *

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

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

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

*/ inline SavingsPlanRate& 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 SavingsPlanRate& WithProperties(const Aws::Vector& value) { SetProperties(value); return *this;} /** *

The properties.

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

The properties.

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

The properties.

*/ inline SavingsPlanRate& AddProperties(SavingsPlanRateProperty&& value) { m_propertiesHasBeenSet = true; m_properties.push_back(std::move(value)); return *this; } private: Aws::String m_rate; bool m_rateHasBeenSet = false; CurrencyCode m_currency; bool m_currencyHasBeenSet = false; SavingsPlanRateUnit m_unit; bool m_unitHasBeenSet = false; SavingsPlanProductType m_productType; bool m_productTypeHasBeenSet = false; SavingsPlanRateServiceCode 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