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

Details of a reserved Elasticsearch instance.

See Also:

AWS * API Reference

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

The customer-specified identifier to track this reservation.

*/ inline const Aws::String& GetReservationName() const{ return m_reservationName; } /** *

The customer-specified identifier to track this reservation.

*/ inline bool ReservationNameHasBeenSet() const { return m_reservationNameHasBeenSet; } /** *

The customer-specified identifier to track this reservation.

*/ inline void SetReservationName(const Aws::String& value) { m_reservationNameHasBeenSet = true; m_reservationName = value; } /** *

The customer-specified identifier to track this reservation.

*/ inline void SetReservationName(Aws::String&& value) { m_reservationNameHasBeenSet = true; m_reservationName = std::move(value); } /** *

The customer-specified identifier to track this reservation.

*/ inline void SetReservationName(const char* value) { m_reservationNameHasBeenSet = true; m_reservationName.assign(value); } /** *

The customer-specified identifier to track this reservation.

*/ inline ReservedElasticsearchInstance& WithReservationName(const Aws::String& value) { SetReservationName(value); return *this;} /** *

The customer-specified identifier to track this reservation.

*/ inline ReservedElasticsearchInstance& WithReservationName(Aws::String&& value) { SetReservationName(std::move(value)); return *this;} /** *

The customer-specified identifier to track this reservation.

*/ inline ReservedElasticsearchInstance& WithReservationName(const char* value) { SetReservationName(value); return *this;} /** *

The unique identifier for the reservation.

*/ inline const Aws::String& GetReservedElasticsearchInstanceId() const{ return m_reservedElasticsearchInstanceId; } /** *

The unique identifier for the reservation.

*/ inline bool ReservedElasticsearchInstanceIdHasBeenSet() const { return m_reservedElasticsearchInstanceIdHasBeenSet; } /** *

The unique identifier for the reservation.

*/ inline void SetReservedElasticsearchInstanceId(const Aws::String& value) { m_reservedElasticsearchInstanceIdHasBeenSet = true; m_reservedElasticsearchInstanceId = value; } /** *

The unique identifier for the reservation.

*/ inline void SetReservedElasticsearchInstanceId(Aws::String&& value) { m_reservedElasticsearchInstanceIdHasBeenSet = true; m_reservedElasticsearchInstanceId = std::move(value); } /** *

The unique identifier for the reservation.

*/ inline void SetReservedElasticsearchInstanceId(const char* value) { m_reservedElasticsearchInstanceIdHasBeenSet = true; m_reservedElasticsearchInstanceId.assign(value); } /** *

The unique identifier for the reservation.

*/ inline ReservedElasticsearchInstance& WithReservedElasticsearchInstanceId(const Aws::String& value) { SetReservedElasticsearchInstanceId(value); return *this;} /** *

The unique identifier for the reservation.

*/ inline ReservedElasticsearchInstance& WithReservedElasticsearchInstanceId(Aws::String&& value) { SetReservedElasticsearchInstanceId(std::move(value)); return *this;} /** *

The unique identifier for the reservation.

*/ inline ReservedElasticsearchInstance& WithReservedElasticsearchInstanceId(const char* value) { SetReservedElasticsearchInstanceId(value); return *this;} /** *

The offering identifier.

*/ inline const Aws::String& GetReservedElasticsearchInstanceOfferingId() const{ return m_reservedElasticsearchInstanceOfferingId; } /** *

The offering identifier.

*/ inline bool ReservedElasticsearchInstanceOfferingIdHasBeenSet() const { return m_reservedElasticsearchInstanceOfferingIdHasBeenSet; } /** *

The offering identifier.

*/ inline void SetReservedElasticsearchInstanceOfferingId(const Aws::String& value) { m_reservedElasticsearchInstanceOfferingIdHasBeenSet = true; m_reservedElasticsearchInstanceOfferingId = value; } /** *

The offering identifier.

*/ inline void SetReservedElasticsearchInstanceOfferingId(Aws::String&& value) { m_reservedElasticsearchInstanceOfferingIdHasBeenSet = true; m_reservedElasticsearchInstanceOfferingId = std::move(value); } /** *

The offering identifier.

*/ inline void SetReservedElasticsearchInstanceOfferingId(const char* value) { m_reservedElasticsearchInstanceOfferingIdHasBeenSet = true; m_reservedElasticsearchInstanceOfferingId.assign(value); } /** *

The offering identifier.

*/ inline ReservedElasticsearchInstance& WithReservedElasticsearchInstanceOfferingId(const Aws::String& value) { SetReservedElasticsearchInstanceOfferingId(value); return *this;} /** *

The offering identifier.

*/ inline ReservedElasticsearchInstance& WithReservedElasticsearchInstanceOfferingId(Aws::String&& value) { SetReservedElasticsearchInstanceOfferingId(std::move(value)); return *this;} /** *

The offering identifier.

*/ inline ReservedElasticsearchInstance& WithReservedElasticsearchInstanceOfferingId(const char* value) { SetReservedElasticsearchInstanceOfferingId(value); return *this;} /** *

The Elasticsearch instance type offered by the reserved instance * offering.

*/ inline const ESPartitionInstanceType& GetElasticsearchInstanceType() const{ return m_elasticsearchInstanceType; } /** *

The Elasticsearch instance type offered by the reserved instance * offering.

*/ inline bool ElasticsearchInstanceTypeHasBeenSet() const { return m_elasticsearchInstanceTypeHasBeenSet; } /** *

The Elasticsearch instance type offered by the reserved instance * offering.

*/ inline void SetElasticsearchInstanceType(const ESPartitionInstanceType& value) { m_elasticsearchInstanceTypeHasBeenSet = true; m_elasticsearchInstanceType = value; } /** *

The Elasticsearch instance type offered by the reserved instance * offering.

*/ inline void SetElasticsearchInstanceType(ESPartitionInstanceType&& value) { m_elasticsearchInstanceTypeHasBeenSet = true; m_elasticsearchInstanceType = std::move(value); } /** *

The Elasticsearch instance type offered by the reserved instance * offering.

*/ inline ReservedElasticsearchInstance& WithElasticsearchInstanceType(const ESPartitionInstanceType& value) { SetElasticsearchInstanceType(value); return *this;} /** *

The Elasticsearch instance type offered by the reserved instance * offering.

*/ inline ReservedElasticsearchInstance& WithElasticsearchInstanceType(ESPartitionInstanceType&& value) { SetElasticsearchInstanceType(std::move(value)); return *this;} /** *

The time the reservation started.

*/ inline const Aws::Utils::DateTime& GetStartTime() const{ return m_startTime; } /** *

The time the reservation started.

*/ inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; } /** *

The time the reservation started.

*/ inline void SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; } /** *

The time the reservation started.

*/ inline void SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); } /** *

The time the reservation started.

*/ inline ReservedElasticsearchInstance& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;} /** *

The time the reservation started.

*/ inline ReservedElasticsearchInstance& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;} /** *

The duration, in seconds, for which the Elasticsearch instance is * reserved.

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

The duration, in seconds, for which the Elasticsearch instance is * reserved.

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

The duration, in seconds, for which the Elasticsearch instance is * reserved.

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

The duration, in seconds, for which the Elasticsearch instance is * reserved.

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

The upfront fixed charge you will paid to purchase the specific reserved * Elasticsearch instance offering.

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

The upfront fixed charge you will paid to purchase the specific reserved * Elasticsearch instance offering.

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

The upfront fixed charge you will paid to purchase the specific reserved * Elasticsearch instance offering.

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

The upfront fixed charge you will paid to purchase the specific reserved * Elasticsearch instance offering.

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

The rate you are charged for each hour for the domain that is using this * reserved instance.

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

The rate you are charged for each hour for the domain that is using this * reserved instance.

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

The rate you are charged for each hour for the domain that is using this * reserved instance.

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

The rate you are charged for each hour for the domain that is using this * reserved instance.

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

The currency code for the reserved Elasticsearch instance offering.

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

The currency code for the reserved Elasticsearch instance offering.

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

The currency code for the reserved Elasticsearch instance offering.

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

The currency code for the reserved Elasticsearch instance offering.

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

The currency code for the reserved Elasticsearch instance offering.

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

The currency code for the reserved Elasticsearch instance offering.

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

The currency code for the reserved Elasticsearch instance offering.

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

The currency code for the reserved Elasticsearch instance offering.

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

The number of Elasticsearch instances that have been reserved.

*/ inline int GetElasticsearchInstanceCount() const{ return m_elasticsearchInstanceCount; } /** *

The number of Elasticsearch instances that have been reserved.

*/ inline bool ElasticsearchInstanceCountHasBeenSet() const { return m_elasticsearchInstanceCountHasBeenSet; } /** *

The number of Elasticsearch instances that have been reserved.

*/ inline void SetElasticsearchInstanceCount(int value) { m_elasticsearchInstanceCountHasBeenSet = true; m_elasticsearchInstanceCount = value; } /** *

The number of Elasticsearch instances that have been reserved.

*/ inline ReservedElasticsearchInstance& WithElasticsearchInstanceCount(int value) { SetElasticsearchInstanceCount(value); return *this;} /** *

The state of the reserved Elasticsearch instance.

*/ inline const Aws::String& GetState() const{ return m_state; } /** *

The state of the reserved Elasticsearch instance.

*/ inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } /** *

The state of the reserved Elasticsearch instance.

*/ inline void SetState(const Aws::String& value) { m_stateHasBeenSet = true; m_state = value; } /** *

The state of the reserved Elasticsearch instance.

*/ inline void SetState(Aws::String&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } /** *

The state of the reserved Elasticsearch instance.

*/ inline void SetState(const char* value) { m_stateHasBeenSet = true; m_state.assign(value); } /** *

The state of the reserved Elasticsearch instance.

*/ inline ReservedElasticsearchInstance& WithState(const Aws::String& value) { SetState(value); return *this;} /** *

The state of the reserved Elasticsearch instance.

*/ inline ReservedElasticsearchInstance& WithState(Aws::String&& value) { SetState(std::move(value)); return *this;} /** *

The state of the reserved Elasticsearch instance.

*/ inline ReservedElasticsearchInstance& WithState(const char* value) { SetState(value); return *this;} /** *

The payment option as defined in the reserved Elasticsearch instance * offering.

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

The payment option as defined in the reserved Elasticsearch instance * offering.

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

The payment option as defined in the reserved Elasticsearch instance * offering.

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

The payment option as defined in the reserved Elasticsearch instance * offering.

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

The payment option as defined in the reserved Elasticsearch instance * offering.

*/ inline ReservedElasticsearchInstance& WithPaymentOption(const ReservedElasticsearchInstancePaymentOption& value) { SetPaymentOption(value); return *this;} /** *

The payment option as defined in the reserved Elasticsearch instance * offering.

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

The charge to your account regardless of whether you are creating any domains * using the instance offering.

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

The charge to your account regardless of whether you are creating any domains * using the instance offering.

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

The charge to your account regardless of whether you are creating any domains * using the instance offering.

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

The charge to your account regardless of whether you are creating any domains * using the instance offering.

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

The charge to your account regardless of whether you are creating any domains * using the instance offering.

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

The charge to your account regardless of whether you are creating any domains * using the instance offering.

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

The charge to your account regardless of whether you are creating any domains * using the instance offering.

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

The charge to your account regardless of whether you are creating any domains * using the instance offering.

*/ inline ReservedElasticsearchInstance& AddRecurringCharges(RecurringCharge&& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges.push_back(std::move(value)); return *this; } private: Aws::String m_reservationName; bool m_reservationNameHasBeenSet = false; Aws::String m_reservedElasticsearchInstanceId; bool m_reservedElasticsearchInstanceIdHasBeenSet = false; Aws::String m_reservedElasticsearchInstanceOfferingId; bool m_reservedElasticsearchInstanceOfferingIdHasBeenSet = false; ESPartitionInstanceType m_elasticsearchInstanceType; bool m_elasticsearchInstanceTypeHasBeenSet = false; Aws::Utils::DateTime m_startTime; bool m_startTimeHasBeenSet = 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; int m_elasticsearchInstanceCount; bool m_elasticsearchInstanceCountHasBeenSet = false; Aws::String m_state; bool m_stateHasBeenSet = false; ReservedElasticsearchInstancePaymentOption m_paymentOption; bool m_paymentOptionHasBeenSet = false; Aws::Vector m_recurringCharges; bool m_recurringChargesHasBeenSet = false; }; } // namespace Model } // namespace ElasticsearchService } // namespace Aws