/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Used to provide Reserved Instance preferences for the recommendation.
* See Also:
AWS
* API Reference
The payment plan to use for your Reserved Instance.
*/ inline const PurchasingOption& GetPurchasingOption() const{ return m_purchasingOption; } /** *The payment plan to use for your Reserved Instance.
*/ inline bool PurchasingOptionHasBeenSet() const { return m_purchasingOptionHasBeenSet; } /** *The payment plan to use for your Reserved Instance.
*/ inline void SetPurchasingOption(const PurchasingOption& value) { m_purchasingOptionHasBeenSet = true; m_purchasingOption = value; } /** *The payment plan to use for your Reserved Instance.
*/ inline void SetPurchasingOption(PurchasingOption&& value) { m_purchasingOptionHasBeenSet = true; m_purchasingOption = std::move(value); } /** *The payment plan to use for your Reserved Instance.
*/ inline ReservedInstanceOptions& WithPurchasingOption(const PurchasingOption& value) { SetPurchasingOption(value); return *this;} /** *The payment plan to use for your Reserved Instance.
*/ inline ReservedInstanceOptions& WithPurchasingOption(PurchasingOption&& value) { SetPurchasingOption(std::move(value)); return *this;} /** *The flexibility to change the instance types needed for your Reserved * Instance.
*/ inline const OfferingClass& GetOfferingClass() const{ return m_offeringClass; } /** *The flexibility to change the instance types needed for your Reserved * Instance.
*/ inline bool OfferingClassHasBeenSet() const { return m_offeringClassHasBeenSet; } /** *The flexibility to change the instance types needed for your Reserved * Instance.
*/ inline void SetOfferingClass(const OfferingClass& value) { m_offeringClassHasBeenSet = true; m_offeringClass = value; } /** *The flexibility to change the instance types needed for your Reserved * Instance.
*/ inline void SetOfferingClass(OfferingClass&& value) { m_offeringClassHasBeenSet = true; m_offeringClass = std::move(value); } /** *The flexibility to change the instance types needed for your Reserved * Instance.
*/ inline ReservedInstanceOptions& WithOfferingClass(const OfferingClass& value) { SetOfferingClass(value); return *this;} /** *The flexibility to change the instance types needed for your Reserved * Instance.
*/ inline ReservedInstanceOptions& WithOfferingClass(OfferingClass&& value) { SetOfferingClass(std::move(value)); return *this;} /** *The preferred duration of the Reserved Instance term.
*/ inline const TermLength& GetTermLength() const{ return m_termLength; } /** *The preferred duration of the Reserved Instance term.
*/ inline bool TermLengthHasBeenSet() const { return m_termLengthHasBeenSet; } /** *The preferred duration of the Reserved Instance term.
*/ inline void SetTermLength(const TermLength& value) { m_termLengthHasBeenSet = true; m_termLength = value; } /** *The preferred duration of the Reserved Instance term.
*/ inline void SetTermLength(TermLength&& value) { m_termLengthHasBeenSet = true; m_termLength = std::move(value); } /** *The preferred duration of the Reserved Instance term.
*/ inline ReservedInstanceOptions& WithTermLength(const TermLength& value) { SetTermLength(value); return *this;} /** *The preferred duration of the Reserved Instance term.
*/ inline ReservedInstanceOptions& WithTermLength(TermLength&& value) { SetTermLength(std::move(value)); return *this;} private: PurchasingOption m_purchasingOption; bool m_purchasingOptionHasBeenSet = false; OfferingClass m_offeringClass; bool m_offeringClassHasBeenSet = false; TermLength m_termLength; bool m_termLengthHasBeenSet = false; }; } // namespace Model } // namespace ApplicationDiscoveryService } // namespace Aws