/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

Describes the price for a Reserved Instance.

See Also:

AWS * API Reference

*/ class PriceSchedule { public: AWS_EC2_API PriceSchedule(); AWS_EC2_API PriceSchedule(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API PriceSchedule& 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 current price schedule, as determined by the term remaining for the * Reserved Instance in the listing.

A specific price schedule is always in * effect, but only one price schedule can be active at any time. Take, for * example, a Reserved Instance listing that has five months remaining in its term. * When you specify price schedules for five months and two months, this means that * schedule 1, covering the first three months of the remaining term, will be * active during months 5, 4, and 3. Then schedule 2, covering the last two months * of the term, will be active for months 2 and 1.

*/ inline bool GetActive() const{ return m_active; } /** *

The current price schedule, as determined by the term remaining for the * Reserved Instance in the listing.

A specific price schedule is always in * effect, but only one price schedule can be active at any time. Take, for * example, a Reserved Instance listing that has five months remaining in its term. * When you specify price schedules for five months and two months, this means that * schedule 1, covering the first three months of the remaining term, will be * active during months 5, 4, and 3. Then schedule 2, covering the last two months * of the term, will be active for months 2 and 1.

*/ inline bool ActiveHasBeenSet() const { return m_activeHasBeenSet; } /** *

The current price schedule, as determined by the term remaining for the * Reserved Instance in the listing.

A specific price schedule is always in * effect, but only one price schedule can be active at any time. Take, for * example, a Reserved Instance listing that has five months remaining in its term. * When you specify price schedules for five months and two months, this means that * schedule 1, covering the first three months of the remaining term, will be * active during months 5, 4, and 3. Then schedule 2, covering the last two months * of the term, will be active for months 2 and 1.

*/ inline void SetActive(bool value) { m_activeHasBeenSet = true; m_active = value; } /** *

The current price schedule, as determined by the term remaining for the * Reserved Instance in the listing.

A specific price schedule is always in * effect, but only one price schedule can be active at any time. Take, for * example, a Reserved Instance listing that has five months remaining in its term. * When you specify price schedules for five months and two months, this means that * schedule 1, covering the first three months of the remaining term, will be * active during months 5, 4, and 3. Then schedule 2, covering the last two months * of the term, will be active for months 2 and 1.

*/ inline PriceSchedule& WithActive(bool value) { SetActive(value); return *this;} /** *

The currency for transacting the Reserved Instance resale. At this time, the * only supported currency is USD.

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

The currency for transacting the Reserved Instance resale. At this time, the * only supported currency is USD.

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

The currency for transacting the Reserved Instance resale. At this time, the * only supported currency is USD.

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

The currency for transacting the Reserved Instance resale. At this time, the * only supported currency is USD.

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

The currency for transacting the Reserved Instance resale. At this time, the * only supported currency is USD.

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

The currency for transacting the Reserved Instance resale. At this time, the * only supported currency is USD.

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

The fixed price for the term.

*/ inline double GetPrice() const{ return m_price; } /** *

The fixed price for the term.

*/ inline bool PriceHasBeenSet() const { return m_priceHasBeenSet; } /** *

The fixed price for the term.

*/ inline void SetPrice(double value) { m_priceHasBeenSet = true; m_price = value; } /** *

The fixed price for the term.

*/ inline PriceSchedule& WithPrice(double value) { SetPrice(value); return *this;} /** *

The number of months remaining in the reservation. For example, 2 is the * second to the last month before the capacity reservation expires.

*/ inline long long GetTerm() const{ return m_term; } /** *

The number of months remaining in the reservation. For example, 2 is the * second to the last month before the capacity reservation expires.

*/ inline bool TermHasBeenSet() const { return m_termHasBeenSet; } /** *

The number of months remaining in the reservation. For example, 2 is the * second to the last month before the capacity reservation expires.

*/ inline void SetTerm(long long value) { m_termHasBeenSet = true; m_term = value; } /** *

The number of months remaining in the reservation. For example, 2 is the * second to the last month before the capacity reservation expires.

*/ inline PriceSchedule& WithTerm(long long value) { SetTerm(value); return *this;} private: bool m_active; bool m_activeHasBeenSet = false; CurrencyCodeValues m_currencyCode; bool m_currencyCodeHasBeenSet = false; double m_price; bool m_priceHasBeenSet = false; long long m_term; bool m_termHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws