/** * 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 #include #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

Describes a Reserved Instance offering.

See Also:

AWS * API Reference

*/ class ReservedInstancesOffering { public: AWS_EC2_API ReservedInstancesOffering(); AWS_EC2_API ReservedInstancesOffering(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API ReservedInstancesOffering& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The Availability Zone in which the Reserved Instance can be used.

*/ inline const Aws::String& GetAvailabilityZone() const{ return m_availabilityZone; } /** *

The Availability Zone in which the Reserved Instance can be used.

*/ inline bool AvailabilityZoneHasBeenSet() const { return m_availabilityZoneHasBeenSet; } /** *

The Availability Zone in which the Reserved Instance can be used.

*/ inline void SetAvailabilityZone(const Aws::String& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = value; } /** *

The Availability Zone in which the Reserved Instance can be used.

*/ inline void SetAvailabilityZone(Aws::String&& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = std::move(value); } /** *

The Availability Zone in which the Reserved Instance can be used.

*/ inline void SetAvailabilityZone(const char* value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone.assign(value); } /** *

The Availability Zone in which the Reserved Instance can be used.

*/ inline ReservedInstancesOffering& WithAvailabilityZone(const Aws::String& value) { SetAvailabilityZone(value); return *this;} /** *

The Availability Zone in which the Reserved Instance can be used.

*/ inline ReservedInstancesOffering& WithAvailabilityZone(Aws::String&& value) { SetAvailabilityZone(std::move(value)); return *this;} /** *

The Availability Zone in which the Reserved Instance can be used.

*/ inline ReservedInstancesOffering& WithAvailabilityZone(const char* value) { SetAvailabilityZone(value); return *this;} /** *

The duration of the Reserved Instance, in seconds.

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

The duration of the Reserved Instance, in seconds.

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

The duration of the Reserved Instance, in seconds.

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

The duration of the Reserved Instance, in seconds.

*/ inline ReservedInstancesOffering& WithDuration(long long value) { SetDuration(value); return *this;} /** *

The purchase price of the Reserved Instance.

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

The purchase price of the Reserved Instance.

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

The purchase price of the Reserved Instance.

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

The purchase price of the Reserved Instance.

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

The instance type on which the Reserved Instance can be used.

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

The instance type on which the Reserved Instance can be used.

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

The instance type on which the Reserved Instance can be used.

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

The instance type on which the Reserved Instance can be used.

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

The instance type on which the Reserved Instance can be used.

*/ inline ReservedInstancesOffering& WithInstanceType(const InstanceType& value) { SetInstanceType(value); return *this;} /** *

The instance type on which the Reserved Instance can be used.

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

The Reserved Instance product platform description.

*/ inline const RIProductDescription& GetProductDescription() const{ return m_productDescription; } /** *

The Reserved Instance product platform description.

*/ inline bool ProductDescriptionHasBeenSet() const { return m_productDescriptionHasBeenSet; } /** *

The Reserved Instance product platform description.

*/ inline void SetProductDescription(const RIProductDescription& value) { m_productDescriptionHasBeenSet = true; m_productDescription = value; } /** *

The Reserved Instance product platform description.

*/ inline void SetProductDescription(RIProductDescription&& value) { m_productDescriptionHasBeenSet = true; m_productDescription = std::move(value); } /** *

The Reserved Instance product platform description.

*/ inline ReservedInstancesOffering& WithProductDescription(const RIProductDescription& value) { SetProductDescription(value); return *this;} /** *

The Reserved Instance product platform description.

*/ inline ReservedInstancesOffering& WithProductDescription(RIProductDescription&& value) { SetProductDescription(std::move(value)); return *this;} /** *

The ID of the Reserved Instance offering. This is the offering ID used in * GetReservedInstancesExchangeQuote to confirm that an exchange can be * made.

*/ inline const Aws::String& GetReservedInstancesOfferingId() const{ return m_reservedInstancesOfferingId; } /** *

The ID of the Reserved Instance offering. This is the offering ID used in * GetReservedInstancesExchangeQuote to confirm that an exchange can be * made.

*/ inline bool ReservedInstancesOfferingIdHasBeenSet() const { return m_reservedInstancesOfferingIdHasBeenSet; } /** *

The ID of the Reserved Instance offering. This is the offering ID used in * GetReservedInstancesExchangeQuote to confirm that an exchange can be * made.

*/ inline void SetReservedInstancesOfferingId(const Aws::String& value) { m_reservedInstancesOfferingIdHasBeenSet = true; m_reservedInstancesOfferingId = value; } /** *

The ID of the Reserved Instance offering. This is the offering ID used in * GetReservedInstancesExchangeQuote to confirm that an exchange can be * made.

*/ inline void SetReservedInstancesOfferingId(Aws::String&& value) { m_reservedInstancesOfferingIdHasBeenSet = true; m_reservedInstancesOfferingId = std::move(value); } /** *

The ID of the Reserved Instance offering. This is the offering ID used in * GetReservedInstancesExchangeQuote to confirm that an exchange can be * made.

*/ inline void SetReservedInstancesOfferingId(const char* value) { m_reservedInstancesOfferingIdHasBeenSet = true; m_reservedInstancesOfferingId.assign(value); } /** *

The ID of the Reserved Instance offering. This is the offering ID used in * GetReservedInstancesExchangeQuote to confirm that an exchange can be * made.

*/ inline ReservedInstancesOffering& WithReservedInstancesOfferingId(const Aws::String& value) { SetReservedInstancesOfferingId(value); return *this;} /** *

The ID of the Reserved Instance offering. This is the offering ID used in * GetReservedInstancesExchangeQuote to confirm that an exchange can be * made.

*/ inline ReservedInstancesOffering& WithReservedInstancesOfferingId(Aws::String&& value) { SetReservedInstancesOfferingId(std::move(value)); return *this;} /** *

The ID of the Reserved Instance offering. This is the offering ID used in * GetReservedInstancesExchangeQuote to confirm that an exchange can be * made.

*/ inline ReservedInstancesOffering& WithReservedInstancesOfferingId(const char* value) { SetReservedInstancesOfferingId(value); return *this;} /** *

The usage price of the Reserved Instance, per hour.

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

The usage price of the Reserved Instance, per hour.

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

The usage price of the Reserved Instance, per hour.

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

The usage price of the Reserved Instance, per hour.

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

The currency of the Reserved Instance offering you are purchasing. It's * specified using ISO 4217 standard currency codes. At this time, the only * supported currency is USD.

*/ inline const CurrencyCodeValues& GetCurrencyCode() const{ return m_currencyCode; } /** *

The currency of the Reserved Instance offering you are purchasing. It's * specified using ISO 4217 standard currency codes. At this time, the only * supported currency is USD.

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

The currency of the Reserved Instance offering you are purchasing. It's * specified using ISO 4217 standard currency codes. At this time, the only * supported currency is USD.

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

The currency of the Reserved Instance offering you are purchasing. It's * specified using ISO 4217 standard currency codes. At this time, the only * supported currency is USD.

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

The currency of the Reserved Instance offering you are purchasing. It's * specified using ISO 4217 standard currency codes. At this time, the only * supported currency is USD.

*/ inline ReservedInstancesOffering& WithCurrencyCode(const CurrencyCodeValues& value) { SetCurrencyCode(value); return *this;} /** *

The currency of the Reserved Instance offering you are purchasing. It's * specified using ISO 4217 standard currency codes. At this time, the only * supported currency is USD.

*/ inline ReservedInstancesOffering& WithCurrencyCode(CurrencyCodeValues&& value) { SetCurrencyCode(std::move(value)); return *this;} /** *

The tenancy of the instance.

*/ inline const Tenancy& GetInstanceTenancy() const{ return m_instanceTenancy; } /** *

The tenancy of the instance.

*/ inline bool InstanceTenancyHasBeenSet() const { return m_instanceTenancyHasBeenSet; } /** *

The tenancy of the instance.

*/ inline void SetInstanceTenancy(const Tenancy& value) { m_instanceTenancyHasBeenSet = true; m_instanceTenancy = value; } /** *

The tenancy of the instance.

*/ inline void SetInstanceTenancy(Tenancy&& value) { m_instanceTenancyHasBeenSet = true; m_instanceTenancy = std::move(value); } /** *

The tenancy of the instance.

*/ inline ReservedInstancesOffering& WithInstanceTenancy(const Tenancy& value) { SetInstanceTenancy(value); return *this;} /** *

The tenancy of the instance.

*/ inline ReservedInstancesOffering& WithInstanceTenancy(Tenancy&& value) { SetInstanceTenancy(std::move(value)); return *this;} /** *

Indicates whether the offering is available through the Reserved Instance * Marketplace (resale) or Amazon Web Services. If it's a Reserved Instance * Marketplace offering, this is true.

*/ inline bool GetMarketplace() const{ return m_marketplace; } /** *

Indicates whether the offering is available through the Reserved Instance * Marketplace (resale) or Amazon Web Services. If it's a Reserved Instance * Marketplace offering, this is true.

*/ inline bool MarketplaceHasBeenSet() const { return m_marketplaceHasBeenSet; } /** *

Indicates whether the offering is available through the Reserved Instance * Marketplace (resale) or Amazon Web Services. If it's a Reserved Instance * Marketplace offering, this is true.

*/ inline void SetMarketplace(bool value) { m_marketplaceHasBeenSet = true; m_marketplace = value; } /** *

Indicates whether the offering is available through the Reserved Instance * Marketplace (resale) or Amazon Web Services. If it's a Reserved Instance * Marketplace offering, this is true.

*/ inline ReservedInstancesOffering& WithMarketplace(bool value) { SetMarketplace(value); return *this;} /** *

If convertible it can be exchanged for Reserved Instances of the * same or higher monetary value, with different configurations. If * standard, it is not possible to perform an exchange.

*/ inline const OfferingClassType& GetOfferingClass() const{ return m_offeringClass; } /** *

If convertible it can be exchanged for Reserved Instances of the * same or higher monetary value, with different configurations. If * standard, it is not possible to perform an exchange.

*/ inline bool OfferingClassHasBeenSet() const { return m_offeringClassHasBeenSet; } /** *

If convertible it can be exchanged for Reserved Instances of the * same or higher monetary value, with different configurations. If * standard, it is not possible to perform an exchange.

*/ inline void SetOfferingClass(const OfferingClassType& value) { m_offeringClassHasBeenSet = true; m_offeringClass = value; } /** *

If convertible it can be exchanged for Reserved Instances of the * same or higher monetary value, with different configurations. If * standard, it is not possible to perform an exchange.

*/ inline void SetOfferingClass(OfferingClassType&& value) { m_offeringClassHasBeenSet = true; m_offeringClass = std::move(value); } /** *

If convertible it can be exchanged for Reserved Instances of the * same or higher monetary value, with different configurations. If * standard, it is not possible to perform an exchange.

*/ inline ReservedInstancesOffering& WithOfferingClass(const OfferingClassType& value) { SetOfferingClass(value); return *this;} /** *

If convertible it can be exchanged for Reserved Instances of the * same or higher monetary value, with different configurations. If * standard, it is not possible to perform an exchange.

*/ inline ReservedInstancesOffering& WithOfferingClass(OfferingClassType&& value) { SetOfferingClass(std::move(value)); return *this;} /** *

The Reserved Instance offering type.

*/ inline const OfferingTypeValues& GetOfferingType() const{ return m_offeringType; } /** *

The Reserved Instance offering type.

*/ inline bool OfferingTypeHasBeenSet() const { return m_offeringTypeHasBeenSet; } /** *

The Reserved Instance offering type.

*/ inline void SetOfferingType(const OfferingTypeValues& value) { m_offeringTypeHasBeenSet = true; m_offeringType = value; } /** *

The Reserved Instance offering type.

*/ inline void SetOfferingType(OfferingTypeValues&& value) { m_offeringTypeHasBeenSet = true; m_offeringType = std::move(value); } /** *

The Reserved Instance offering type.

*/ inline ReservedInstancesOffering& WithOfferingType(const OfferingTypeValues& value) { SetOfferingType(value); return *this;} /** *

The Reserved Instance offering type.

*/ inline ReservedInstancesOffering& WithOfferingType(OfferingTypeValues&& value) { SetOfferingType(std::move(value)); return *this;} /** *

The pricing details of the Reserved Instance offering.

*/ inline const Aws::Vector& GetPricingDetails() const{ return m_pricingDetails; } /** *

The pricing details of the Reserved Instance offering.

*/ inline bool PricingDetailsHasBeenSet() const { return m_pricingDetailsHasBeenSet; } /** *

The pricing details of the Reserved Instance offering.

*/ inline void SetPricingDetails(const Aws::Vector& value) { m_pricingDetailsHasBeenSet = true; m_pricingDetails = value; } /** *

The pricing details of the Reserved Instance offering.

*/ inline void SetPricingDetails(Aws::Vector&& value) { m_pricingDetailsHasBeenSet = true; m_pricingDetails = std::move(value); } /** *

The pricing details of the Reserved Instance offering.

*/ inline ReservedInstancesOffering& WithPricingDetails(const Aws::Vector& value) { SetPricingDetails(value); return *this;} /** *

The pricing details of the Reserved Instance offering.

*/ inline ReservedInstancesOffering& WithPricingDetails(Aws::Vector&& value) { SetPricingDetails(std::move(value)); return *this;} /** *

The pricing details of the Reserved Instance offering.

*/ inline ReservedInstancesOffering& AddPricingDetails(const PricingDetail& value) { m_pricingDetailsHasBeenSet = true; m_pricingDetails.push_back(value); return *this; } /** *

The pricing details of the Reserved Instance offering.

*/ inline ReservedInstancesOffering& AddPricingDetails(PricingDetail&& value) { m_pricingDetailsHasBeenSet = true; m_pricingDetails.push_back(std::move(value)); return *this; } /** *

The recurring charge tag assigned to the resource.

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

The recurring charge tag assigned to the resource.

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

The recurring charge tag assigned to the resource.

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

The recurring charge tag assigned to the resource.

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

The recurring charge tag assigned to the resource.

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

The recurring charge tag assigned to the resource.

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

The recurring charge tag assigned to the resource.

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

The recurring charge tag assigned to the resource.

*/ inline ReservedInstancesOffering& AddRecurringCharges(RecurringCharge&& value) { m_recurringChargesHasBeenSet = true; m_recurringCharges.push_back(std::move(value)); return *this; } /** *

Whether the Reserved Instance is applied to instances in a Region or an * Availability Zone.

*/ inline const Scope& GetScope() const{ return m_scope; } /** *

Whether the Reserved Instance is applied to instances in a Region or an * Availability Zone.

*/ inline bool ScopeHasBeenSet() const { return m_scopeHasBeenSet; } /** *

Whether the Reserved Instance is applied to instances in a Region or an * Availability Zone.

*/ inline void SetScope(const Scope& value) { m_scopeHasBeenSet = true; m_scope = value; } /** *

Whether the Reserved Instance is applied to instances in a Region or an * Availability Zone.

*/ inline void SetScope(Scope&& value) { m_scopeHasBeenSet = true; m_scope = std::move(value); } /** *

Whether the Reserved Instance is applied to instances in a Region or an * Availability Zone.

*/ inline ReservedInstancesOffering& WithScope(const Scope& value) { SetScope(value); return *this;} /** *

Whether the Reserved Instance is applied to instances in a Region or an * Availability Zone.

*/ inline ReservedInstancesOffering& WithScope(Scope&& value) { SetScope(std::move(value)); return *this;} private: Aws::String m_availabilityZone; bool m_availabilityZoneHasBeenSet = false; long long m_duration; bool m_durationHasBeenSet = false; double m_fixedPrice; bool m_fixedPriceHasBeenSet = false; InstanceType m_instanceType; bool m_instanceTypeHasBeenSet = false; RIProductDescription m_productDescription; bool m_productDescriptionHasBeenSet = false; Aws::String m_reservedInstancesOfferingId; bool m_reservedInstancesOfferingIdHasBeenSet = false; double m_usagePrice; bool m_usagePriceHasBeenSet = false; CurrencyCodeValues m_currencyCode; bool m_currencyCodeHasBeenSet = false; Tenancy m_instanceTenancy; bool m_instanceTenancyHasBeenSet = false; bool m_marketplace; bool m_marketplaceHasBeenSet = false; OfferingClassType m_offeringClass; bool m_offeringClassHasBeenSet = false; OfferingTypeValues m_offeringType; bool m_offeringTypeHasBeenSet = false; Aws::Vector m_pricingDetails; bool m_pricingDetailsHasBeenSet = false; Aws::Vector m_recurringCharges; bool m_recurringChargesHasBeenSet = false; Scope m_scope; bool m_scopeHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws