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

Details of an OpenSearch Reserved Instance offering.

See Also:

* AWS * API Reference

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

The unique identifier of the Reserved Instance offering.

*/ inline const Aws::String& GetReservedInstanceOfferingId() const{ return m_reservedInstanceOfferingId; } /** *

The unique identifier of the Reserved Instance offering.

*/ inline bool ReservedInstanceOfferingIdHasBeenSet() const { return m_reservedInstanceOfferingIdHasBeenSet; } /** *

The unique identifier of the Reserved Instance offering.

*/ inline void SetReservedInstanceOfferingId(const Aws::String& value) { m_reservedInstanceOfferingIdHasBeenSet = true; m_reservedInstanceOfferingId = value; } /** *

The unique identifier of the Reserved Instance offering.

*/ inline void SetReservedInstanceOfferingId(Aws::String&& value) { m_reservedInstanceOfferingIdHasBeenSet = true; m_reservedInstanceOfferingId = std::move(value); } /** *

The unique identifier of the Reserved Instance offering.

*/ inline void SetReservedInstanceOfferingId(const char* value) { m_reservedInstanceOfferingIdHasBeenSet = true; m_reservedInstanceOfferingId.assign(value); } /** *

The unique identifier of the Reserved Instance offering.

*/ inline ReservedInstanceOffering& WithReservedInstanceOfferingId(const Aws::String& value) { SetReservedInstanceOfferingId(value); return *this;} /** *

The unique identifier of the Reserved Instance offering.

*/ inline ReservedInstanceOffering& WithReservedInstanceOfferingId(Aws::String&& value) { SetReservedInstanceOfferingId(std::move(value)); return *this;} /** *

The unique identifier of the Reserved Instance offering.

*/ inline ReservedInstanceOffering& WithReservedInstanceOfferingId(const char* value) { SetReservedInstanceOfferingId(value); return *this;} /** *

The OpenSearch instance type offered by the Reserved Instance offering.

*/ inline const OpenSearchPartitionInstanceType& GetInstanceType() const{ return m_instanceType; } /** *

The OpenSearch instance type offered by the Reserved Instance offering.

*/ inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } /** *

The OpenSearch instance type offered by the Reserved Instance offering.

*/ inline void SetInstanceType(const OpenSearchPartitionInstanceType& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } /** *

The OpenSearch instance type offered by the Reserved Instance offering.

*/ inline void SetInstanceType(OpenSearchPartitionInstanceType&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } /** *

The OpenSearch instance type offered by the Reserved Instance offering.

*/ inline ReservedInstanceOffering& WithInstanceType(const OpenSearchPartitionInstanceType& value) { SetInstanceType(value); return *this;} /** *

The OpenSearch instance type offered by the Reserved Instance offering.

*/ inline ReservedInstanceOffering& WithInstanceType(OpenSearchPartitionInstanceType&& value) { SetInstanceType(std::move(value)); return *this;} /** *

The duration, in seconds, for which the offering will reserve the OpenSearch * instance.

*/ inline int GetDuration() const{ return m_duration; } /** *

The duration, in seconds, for which the offering will reserve the OpenSearch * instance.

*/ inline bool DurationHasBeenSet() const { return m_durationHasBeenSet; } /** *

The duration, in seconds, for which the offering will reserve the OpenSearch * instance.

*/ inline void SetDuration(int value) { m_durationHasBeenSet = true; m_duration = value; } /** *

The duration, in seconds, for which the offering will reserve the OpenSearch * instance.

*/ inline ReservedInstanceOffering& WithDuration(int value) { SetDuration(value); return *this;} /** *

The upfront fixed charge you will pay to purchase the specific Reserved * Instance offering.

*/ inline double GetFixedPrice() const{ return m_fixedPrice; } /** *

The upfront fixed charge you will pay to purchase the specific Reserved * Instance offering.

*/ inline bool FixedPriceHasBeenSet() const { return m_fixedPriceHasBeenSet; } /** *

The upfront fixed charge you will pay to purchase the specific Reserved * Instance offering.

*/ inline void SetFixedPrice(double value) { m_fixedPriceHasBeenSet = true; m_fixedPrice = value; } /** *

The upfront fixed charge you will pay to purchase the specific Reserved * Instance offering.

*/ inline ReservedInstanceOffering& WithFixedPrice(double value) { SetFixedPrice(value); return *this;} /** *

The hourly rate at which you're charged for the domain using this Reserved * Instance.

*/ inline double GetUsagePrice() const{ return m_usagePrice; } /** *

The hourly rate at which you're charged for the domain using this Reserved * Instance.

*/ inline bool UsagePriceHasBeenSet() const { return m_usagePriceHasBeenSet; } /** *

The hourly rate at which you're charged for the domain using this Reserved * Instance.

*/ inline void SetUsagePrice(double value) { m_usagePriceHasBeenSet = true; m_usagePrice = value; } /** *

The hourly rate at which you're charged for the domain using this Reserved * Instance.

*/ inline ReservedInstanceOffering& WithUsagePrice(double value) { SetUsagePrice(value); return *this;} /** *

The currency code for the Reserved Instance offering.

*/ inline const Aws::String& GetCurrencyCode() const{ return m_currencyCode; } /** *

The currency code for the Reserved Instance offering.

*/ inline bool CurrencyCodeHasBeenSet() const { return m_currencyCodeHasBeenSet; } /** *

The currency code for the Reserved Instance offering.

*/ inline void SetCurrencyCode(const Aws::String& value) { m_currencyCodeHasBeenSet = true; m_currencyCode = value; } /** *

The currency code for the Reserved Instance offering.

*/ inline void SetCurrencyCode(Aws::String&& value) { m_currencyCodeHasBeenSet = true; m_currencyCode = std::move(value); } /** *

The currency code for the Reserved Instance offering.

*/ inline void SetCurrencyCode(const char* value) { m_currencyCodeHasBeenSet = true; m_currencyCode.assign(value); } /** *

The currency code for the Reserved Instance offering.

*/ inline ReservedInstanceOffering& WithCurrencyCode(const Aws::String& value) { SetCurrencyCode(value); return *this;} /** *

The currency code for the Reserved Instance offering.

*/ inline ReservedInstanceOffering& WithCurrencyCode(Aws::String&& value) { SetCurrencyCode(std::move(value)); return *this;} /** *

The currency code for the Reserved Instance offering.

*/ inline ReservedInstanceOffering& WithCurrencyCode(const char* value) { SetCurrencyCode(value); return *this;} /** *

Payment option for the Reserved Instance offering

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

Payment option for the Reserved Instance offering

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

Payment option for the Reserved Instance offering

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

Payment option for the Reserved Instance offering

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

Payment option for the Reserved Instance offering

*/ inline ReservedInstanceOffering& WithPaymentOption(const ReservedInstancePaymentOption& value) { SetPaymentOption(value); return *this;} /** *

Payment option for the Reserved Instance offering

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

The recurring charge to your account, regardless of whether you creates any * domains using the offering.

*/ inline const Aws::Vector& GetRecurringCharges() const{ return m_recurringCharges; } /** *

The recurring charge to your account, regardless of whether you creates any * domains using the offering.

*/ inline bool RecurringChargesHasBeenSet() const { return m_recurringChargesHasBeenSet; } /** *

The recurring charge to your account, regardless of whether you creates any * domains using the offering.

*/ inline void SetRecurringCharges(const Aws::Vector& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges = value; } /** *

The recurring charge to your account, regardless of whether you creates any * domains using the offering.

*/ inline void SetRecurringCharges(Aws::Vector&& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges = std::move(value); } /** *

The recurring charge to your account, regardless of whether you creates any * domains using the offering.

*/ inline ReservedInstanceOffering& WithRecurringCharges(const Aws::Vector& value) { SetRecurringCharges(value); return *this;} /** *

The recurring charge to your account, regardless of whether you creates any * domains using the offering.

*/ inline ReservedInstanceOffering& WithRecurringCharges(Aws::Vector&& value) { SetRecurringCharges(std::move(value)); return *this;} /** *

The recurring charge to your account, regardless of whether you creates any * domains using the offering.

*/ inline ReservedInstanceOffering& AddRecurringCharges(const RecurringCharge& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges.push_back(value); return *this; } /** *

The recurring charge to your account, regardless of whether you creates any * domains using the offering.

*/ inline ReservedInstanceOffering& AddRecurringCharges(RecurringCharge&& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges.push_back(std::move(value)); return *this; } private: Aws::String m_reservedInstanceOfferingId; bool m_reservedInstanceOfferingIdHasBeenSet = false; OpenSearchPartitionInstanceType m_instanceType; bool m_instanceTypeHasBeenSet = false; int m_duration; bool m_durationHasBeenSet = false; double m_fixedPrice; bool m_fixedPriceHasBeenSet = false; double m_usagePrice; bool m_usagePriceHasBeenSet = false; Aws::String m_currencyCode; bool m_currencyCodeHasBeenSet = false; ReservedInstancePaymentOption m_paymentOption; bool m_paymentOptionHasBeenSet = false; Aws::Vector m_recurringCharges; bool m_recurringChargesHasBeenSet = false; }; } // namespace Model } // namespace OpenSearchService } // namespace Aws