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

Describes a Reserved Instance.

See Also:

AWS * API Reference

*/ class ReservedInstances { public: AWS_EC2_API ReservedInstances(); AWS_EC2_API ReservedInstances(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API ReservedInstances& 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 ReservedInstances& WithAvailabilityZone(const Aws::String& value) { SetAvailabilityZone(value); return *this;} /** *

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

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

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

*/ inline ReservedInstances& 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 ReservedInstances& WithDuration(long long value) { SetDuration(value); return *this;} /** *

The time when the Reserved Instance expires.

*/ inline const Aws::Utils::DateTime& GetEnd() const{ return m_end; } /** *

The time when the Reserved Instance expires.

*/ inline bool EndHasBeenSet() const { return m_endHasBeenSet; } /** *

The time when the Reserved Instance expires.

*/ inline void SetEnd(const Aws::Utils::DateTime& value) { m_endHasBeenSet = true; m_end = value; } /** *

The time when the Reserved Instance expires.

*/ inline void SetEnd(Aws::Utils::DateTime&& value) { m_endHasBeenSet = true; m_end = std::move(value); } /** *

The time when the Reserved Instance expires.

*/ inline ReservedInstances& WithEnd(const Aws::Utils::DateTime& value) { SetEnd(value); return *this;} /** *

The time when the Reserved Instance expires.

*/ inline ReservedInstances& WithEnd(Aws::Utils::DateTime&& value) { SetEnd(std::move(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 ReservedInstances& WithFixedPrice(double value) { SetFixedPrice(value); return *this;} /** *

The number of reservations purchased.

*/ inline int GetInstanceCount() const{ return m_instanceCount; } /** *

The number of reservations purchased.

*/ inline bool InstanceCountHasBeenSet() const { return m_instanceCountHasBeenSet; } /** *

The number of reservations purchased.

*/ inline void SetInstanceCount(int value) { m_instanceCountHasBeenSet = true; m_instanceCount = value; } /** *

The number of reservations purchased.

*/ inline ReservedInstances& WithInstanceCount(int value) { SetInstanceCount(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 ReservedInstances& WithInstanceType(const InstanceType& value) { SetInstanceType(value); return *this;} /** *

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

*/ inline ReservedInstances& 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 ReservedInstances& WithProductDescription(const RIProductDescription& value) { SetProductDescription(value); return *this;} /** *

The Reserved Instance product platform description.

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

The ID of the Reserved Instance.

*/ inline const Aws::String& GetReservedInstancesId() const{ return m_reservedInstancesId; } /** *

The ID of the Reserved Instance.

*/ inline bool ReservedInstancesIdHasBeenSet() const { return m_reservedInstancesIdHasBeenSet; } /** *

The ID of the Reserved Instance.

*/ inline void SetReservedInstancesId(const Aws::String& value) { m_reservedInstancesIdHasBeenSet = true; m_reservedInstancesId = value; } /** *

The ID of the Reserved Instance.

*/ inline void SetReservedInstancesId(Aws::String&& value) { m_reservedInstancesIdHasBeenSet = true; m_reservedInstancesId = std::move(value); } /** *

The ID of the Reserved Instance.

*/ inline void SetReservedInstancesId(const char* value) { m_reservedInstancesIdHasBeenSet = true; m_reservedInstancesId.assign(value); } /** *

The ID of the Reserved Instance.

*/ inline ReservedInstances& WithReservedInstancesId(const Aws::String& value) { SetReservedInstancesId(value); return *this;} /** *

The ID of the Reserved Instance.

*/ inline ReservedInstances& WithReservedInstancesId(Aws::String&& value) { SetReservedInstancesId(std::move(value)); return *this;} /** *

The ID of the Reserved Instance.

*/ inline ReservedInstances& WithReservedInstancesId(const char* value) { SetReservedInstancesId(value); return *this;} /** *

The date and time the Reserved Instance started.

*/ inline const Aws::Utils::DateTime& GetStart() const{ return m_start; } /** *

The date and time the Reserved Instance started.

*/ inline bool StartHasBeenSet() const { return m_startHasBeenSet; } /** *

The date and time the Reserved Instance started.

*/ inline void SetStart(const Aws::Utils::DateTime& value) { m_startHasBeenSet = true; m_start = value; } /** *

The date and time the Reserved Instance started.

*/ inline void SetStart(Aws::Utils::DateTime&& value) { m_startHasBeenSet = true; m_start = std::move(value); } /** *

The date and time the Reserved Instance started.

*/ inline ReservedInstances& WithStart(const Aws::Utils::DateTime& value) { SetStart(value); return *this;} /** *

The date and time the Reserved Instance started.

*/ inline ReservedInstances& WithStart(Aws::Utils::DateTime&& value) { SetStart(std::move(value)); return *this;} /** *

The state of the Reserved Instance purchase.

*/ inline const ReservedInstanceState& GetState() const{ return m_state; } /** *

The state of the Reserved Instance purchase.

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

The state of the Reserved Instance purchase.

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

The state of the Reserved Instance purchase.

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

The state of the Reserved Instance purchase.

*/ inline ReservedInstances& WithState(const ReservedInstanceState& value) { SetState(value); return *this;} /** *

The state of the Reserved Instance purchase.

*/ inline ReservedInstances& WithState(ReservedInstanceState&& value) { SetState(std::move(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 ReservedInstances& WithUsagePrice(double value) { SetUsagePrice(value); return *this;} /** *

The currency of the Reserved Instance. 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. 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. 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. 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. It's specified using ISO 4217 standard * currency codes. At this time, the only supported currency is * USD.

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

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

*/ inline ReservedInstances& 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 ReservedInstances& WithInstanceTenancy(const Tenancy& value) { SetInstanceTenancy(value); return *this;} /** *

The tenancy of the instance.

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

The offering class of the Reserved Instance.

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

The offering class of the Reserved Instance.

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

The offering class of the Reserved Instance.

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

The offering class of the Reserved Instance.

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

The offering class of the Reserved Instance.

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

The offering class of the Reserved Instance.

*/ inline ReservedInstances& 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 ReservedInstances& WithOfferingType(const OfferingTypeValues& value) { SetOfferingType(value); return *this;} /** *

The Reserved Instance offering type.

*/ inline ReservedInstances& WithOfferingType(OfferingTypeValues&& value) { SetOfferingType(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 ReservedInstances& WithRecurringCharges(const Aws::Vector& value) { SetRecurringCharges(value); return *this;} /** *

The recurring charge tag assigned to the resource.

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

The recurring charge tag assigned to the resource.

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

The recurring charge tag assigned to the resource.

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

The scope of the Reserved Instance.

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

The scope of the Reserved Instance.

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

The scope of the Reserved Instance.

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

The scope of the Reserved Instance.

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

The scope of the Reserved Instance.

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

The scope of the Reserved Instance.

*/ inline ReservedInstances& WithScope(Scope&& value) { SetScope(std::move(value)); return *this;} /** *

Any tags assigned to the resource.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

Any tags assigned to the resource.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Any tags assigned to the resource.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Any tags assigned to the resource.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Any tags assigned to the resource.

*/ inline ReservedInstances& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

Any tags assigned to the resource.

*/ inline ReservedInstances& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

Any tags assigned to the resource.

*/ inline ReservedInstances& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

Any tags assigned to the resource.

*/ inline ReservedInstances& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_availabilityZone; bool m_availabilityZoneHasBeenSet = false; long long m_duration; bool m_durationHasBeenSet = false; Aws::Utils::DateTime m_end; bool m_endHasBeenSet = false; double m_fixedPrice; bool m_fixedPriceHasBeenSet = false; int m_instanceCount; bool m_instanceCountHasBeenSet = false; InstanceType m_instanceType; bool m_instanceTypeHasBeenSet = false; RIProductDescription m_productDescription; bool m_productDescriptionHasBeenSet = false; Aws::String m_reservedInstancesId; bool m_reservedInstancesIdHasBeenSet = false; Aws::Utils::DateTime m_start; bool m_startHasBeenSet = false; ReservedInstanceState m_state; bool m_stateHasBeenSet = false; double m_usagePrice; bool m_usagePriceHasBeenSet = false; CurrencyCodeValues m_currencyCode; bool m_currencyCodeHasBeenSet = false; Tenancy m_instanceTenancy; bool m_instanceTenancyHasBeenSet = false; OfferingClassType m_offeringClass; bool m_offeringClassHasBeenSet = false; OfferingTypeValues m_offeringType; bool m_offeringTypeHasBeenSet = false; Aws::Vector m_recurringCharges; bool m_recurringChargesHasBeenSet = false; Scope m_scope; bool m_scopeHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws