/** * 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 Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace Redshift { namespace Model { /** *

Describes a reserved node offering.

See Also:

AWS * API Reference

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

The offering identifier.

*/ inline const Aws::String& GetReservedNodeOfferingId() const{ return m_reservedNodeOfferingId; } /** *

The offering identifier.

*/ inline bool ReservedNodeOfferingIdHasBeenSet() const { return m_reservedNodeOfferingIdHasBeenSet; } /** *

The offering identifier.

*/ inline void SetReservedNodeOfferingId(const Aws::String& value) { m_reservedNodeOfferingIdHasBeenSet = true; m_reservedNodeOfferingId = value; } /** *

The offering identifier.

*/ inline void SetReservedNodeOfferingId(Aws::String&& value) { m_reservedNodeOfferingIdHasBeenSet = true; m_reservedNodeOfferingId = std::move(value); } /** *

The offering identifier.

*/ inline void SetReservedNodeOfferingId(const char* value) { m_reservedNodeOfferingIdHasBeenSet = true; m_reservedNodeOfferingId.assign(value); } /** *

The offering identifier.

*/ inline ReservedNodeOffering& WithReservedNodeOfferingId(const Aws::String& value) { SetReservedNodeOfferingId(value); return *this;} /** *

The offering identifier.

*/ inline ReservedNodeOffering& WithReservedNodeOfferingId(Aws::String&& value) { SetReservedNodeOfferingId(std::move(value)); return *this;} /** *

The offering identifier.

*/ inline ReservedNodeOffering& WithReservedNodeOfferingId(const char* value) { SetReservedNodeOfferingId(value); return *this;} /** *

The node type offered by the reserved node offering.

*/ inline const Aws::String& GetNodeType() const{ return m_nodeType; } /** *

The node type offered by the reserved node offering.

*/ inline bool NodeTypeHasBeenSet() const { return m_nodeTypeHasBeenSet; } /** *

The node type offered by the reserved node offering.

*/ inline void SetNodeType(const Aws::String& value) { m_nodeTypeHasBeenSet = true; m_nodeType = value; } /** *

The node type offered by the reserved node offering.

*/ inline void SetNodeType(Aws::String&& value) { m_nodeTypeHasBeenSet = true; m_nodeType = std::move(value); } /** *

The node type offered by the reserved node offering.

*/ inline void SetNodeType(const char* value) { m_nodeTypeHasBeenSet = true; m_nodeType.assign(value); } /** *

The node type offered by the reserved node offering.

*/ inline ReservedNodeOffering& WithNodeType(const Aws::String& value) { SetNodeType(value); return *this;} /** *

The node type offered by the reserved node offering.

*/ inline ReservedNodeOffering& WithNodeType(Aws::String&& value) { SetNodeType(std::move(value)); return *this;} /** *

The node type offered by the reserved node offering.

*/ inline ReservedNodeOffering& WithNodeType(const char* value) { SetNodeType(value); return *this;} /** *

The duration, in seconds, for which the offering will reserve the node.

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

The duration, in seconds, for which the offering will reserve the node.

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

The duration, in seconds, for which the offering will reserve the node.

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

The duration, in seconds, for which the offering will reserve the node.

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

The upfront fixed charge you will pay to purchase the specific reserved node * offering.

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

The upfront fixed charge you will pay to purchase the specific reserved node * offering.

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

The upfront fixed charge you will pay to purchase the specific reserved node * offering.

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

The upfront fixed charge you will pay to purchase the specific reserved node * offering.

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

The rate you are charged for each hour the cluster that is using the offering * is running.

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

The rate you are charged for each hour the cluster that is using the offering * is running.

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

The rate you are charged for each hour the cluster that is using the offering * is running.

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

The rate you are charged for each hour the cluster that is using the offering * is running.

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

The currency code for the compute nodes offering.

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

The currency code for the compute nodes offering.

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

The currency code for the compute nodes offering.

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

The currency code for the compute nodes offering.

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

The currency code for the compute nodes offering.

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

The currency code for the compute nodes offering.

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

The currency code for the compute nodes offering.

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

The currency code for the compute nodes offering.

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

The anticipated utilization of the reserved node, as defined in the reserved * node offering.

*/ inline const Aws::String& GetOfferingType() const{ return m_offeringType; } /** *

The anticipated utilization of the reserved node, as defined in the reserved * node offering.

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

The anticipated utilization of the reserved node, as defined in the reserved * node offering.

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

The anticipated utilization of the reserved node, as defined in the reserved * node offering.

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

The anticipated utilization of the reserved node, as defined in the reserved * node offering.

*/ inline void SetOfferingType(const char* value) { m_offeringTypeHasBeenSet = true; m_offeringType.assign(value); } /** *

The anticipated utilization of the reserved node, as defined in the reserved * node offering.

*/ inline ReservedNodeOffering& WithOfferingType(const Aws::String& value) { SetOfferingType(value); return *this;} /** *

The anticipated utilization of the reserved node, as defined in the reserved * node offering.

*/ inline ReservedNodeOffering& WithOfferingType(Aws::String&& value) { SetOfferingType(std::move(value)); return *this;} /** *

The anticipated utilization of the reserved node, as defined in the reserved * node offering.

*/ inline ReservedNodeOffering& WithOfferingType(const char* value) { SetOfferingType(value); return *this;} /** *

The charge to your account regardless of whether you are creating any * clusters using the node offering. Recurring charges are only in effect for * heavy-utilization reserved nodes.

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

The charge to your account regardless of whether you are creating any * clusters using the node offering. Recurring charges are only in effect for * heavy-utilization reserved nodes.

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

The charge to your account regardless of whether you are creating any * clusters using the node offering. Recurring charges are only in effect for * heavy-utilization reserved nodes.

*/ 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 * clusters using the node offering. Recurring charges are only in effect for * heavy-utilization reserved nodes.

*/ 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 * clusters using the node offering. Recurring charges are only in effect for * heavy-utilization reserved nodes.

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

The charge to your account regardless of whether you are creating any * clusters using the node offering. Recurring charges are only in effect for * heavy-utilization reserved nodes.

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

The charge to your account regardless of whether you are creating any * clusters using the node offering. Recurring charges are only in effect for * heavy-utilization reserved nodes.

*/ inline ReservedNodeOffering& 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 * clusters using the node offering. Recurring charges are only in effect for * heavy-utilization reserved nodes.

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

*/ inline const ReservedNodeOfferingType& GetReservedNodeOfferingType() const{ return m_reservedNodeOfferingType; } /** *

*/ inline bool ReservedNodeOfferingTypeHasBeenSet() const { return m_reservedNodeOfferingTypeHasBeenSet; } /** *

*/ inline void SetReservedNodeOfferingType(const ReservedNodeOfferingType& value) { m_reservedNodeOfferingTypeHasBeenSet = true; m_reservedNodeOfferingType = value; } /** *

*/ inline void SetReservedNodeOfferingType(ReservedNodeOfferingType&& value) { m_reservedNodeOfferingTypeHasBeenSet = true; m_reservedNodeOfferingType = std::move(value); } /** *

*/ inline ReservedNodeOffering& WithReservedNodeOfferingType(const ReservedNodeOfferingType& value) { SetReservedNodeOfferingType(value); return *this;} /** *

*/ inline ReservedNodeOffering& WithReservedNodeOfferingType(ReservedNodeOfferingType&& value) { SetReservedNodeOfferingType(std::move(value)); return *this;} private: Aws::String m_reservedNodeOfferingId; bool m_reservedNodeOfferingIdHasBeenSet = false; Aws::String m_nodeType; bool m_nodeTypeHasBeenSet = 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; Aws::String m_offeringType; bool m_offeringTypeHasBeenSet = false; Aws::Vector m_recurringCharges; bool m_recurringChargesHasBeenSet = false; ReservedNodeOfferingType m_reservedNodeOfferingType; bool m_reservedNodeOfferingTypeHasBeenSet = false; }; } // namespace Model } // namespace Redshift } // namespace Aws