/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Information about a Savings Plan rate.See Also:
AWS
* API Reference
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::VectorThe properties.
*/ inline bool PropertiesHasBeenSet() const { return m_propertiesHasBeenSet; } /** *The properties.
*/ inline void SetProperties(const Aws::VectorThe properties.
*/ inline void SetProperties(Aws::VectorThe properties.
*/ inline SavingsPlanRate& WithProperties(const Aws::VectorThe properties.
*/ inline SavingsPlanRate& WithProperties(Aws::VectorThe 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