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

Describes an instance's Capacity Reservation targeting option. You can * specify only one parameter at a time. If you specify * CapacityReservationPreference and * CapacityReservationTarget, the request fails.

Use the * CapacityReservationPreference parameter to configure the instance * to run as an On-Demand Instance or to run in any open Capacity * Reservation that has matching attributes (instance type, platform, Availability * Zone). Use the CapacityReservationTarget parameter to explicitly * target a specific Capacity Reservation or a Capacity Reservation * group.

See Also:

AWS * API Reference

*/ class CapacityReservationSpecification { public: AWS_EC2_API CapacityReservationSpecification(); AWS_EC2_API CapacityReservationSpecification(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API CapacityReservationSpecification& 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; /** *

Indicates the instance's Capacity Reservation preferences. Possible * preferences include:

  • open - The instance can run * in any open Capacity Reservation that has matching attributes * (instance type, platform, Availability Zone).

  • * none - The instance avoids running in a Capacity Reservation even * if one is available. The instance runs as an On-Demand Instance.

*/ inline const CapacityReservationPreference& GetCapacityReservationPreference() const{ return m_capacityReservationPreference; } /** *

Indicates the instance's Capacity Reservation preferences. Possible * preferences include:

  • open - The instance can run * in any open Capacity Reservation that has matching attributes * (instance type, platform, Availability Zone).

  • * none - The instance avoids running in a Capacity Reservation even * if one is available. The instance runs as an On-Demand Instance.

*/ inline bool CapacityReservationPreferenceHasBeenSet() const { return m_capacityReservationPreferenceHasBeenSet; } /** *

Indicates the instance's Capacity Reservation preferences. Possible * preferences include:

  • open - The instance can run * in any open Capacity Reservation that has matching attributes * (instance type, platform, Availability Zone).

  • * none - The instance avoids running in a Capacity Reservation even * if one is available. The instance runs as an On-Demand Instance.

*/ inline void SetCapacityReservationPreference(const CapacityReservationPreference& value) { m_capacityReservationPreferenceHasBeenSet = true; m_capacityReservationPreference = value; } /** *

Indicates the instance's Capacity Reservation preferences. Possible * preferences include:

  • open - The instance can run * in any open Capacity Reservation that has matching attributes * (instance type, platform, Availability Zone).

  • * none - The instance avoids running in a Capacity Reservation even * if one is available. The instance runs as an On-Demand Instance.

*/ inline void SetCapacityReservationPreference(CapacityReservationPreference&& value) { m_capacityReservationPreferenceHasBeenSet = true; m_capacityReservationPreference = std::move(value); } /** *

Indicates the instance's Capacity Reservation preferences. Possible * preferences include:

  • open - The instance can run * in any open Capacity Reservation that has matching attributes * (instance type, platform, Availability Zone).

  • * none - The instance avoids running in a Capacity Reservation even * if one is available. The instance runs as an On-Demand Instance.

*/ inline CapacityReservationSpecification& WithCapacityReservationPreference(const CapacityReservationPreference& value) { SetCapacityReservationPreference(value); return *this;} /** *

Indicates the instance's Capacity Reservation preferences. Possible * preferences include:

  • open - The instance can run * in any open Capacity Reservation that has matching attributes * (instance type, platform, Availability Zone).

  • * none - The instance avoids running in a Capacity Reservation even * if one is available. The instance runs as an On-Demand Instance.

*/ inline CapacityReservationSpecification& WithCapacityReservationPreference(CapacityReservationPreference&& value) { SetCapacityReservationPreference(std::move(value)); return *this;} /** *

Information about the target Capacity Reservation or Capacity Reservation * group.

*/ inline const CapacityReservationTarget& GetCapacityReservationTarget() const{ return m_capacityReservationTarget; } /** *

Information about the target Capacity Reservation or Capacity Reservation * group.

*/ inline bool CapacityReservationTargetHasBeenSet() const { return m_capacityReservationTargetHasBeenSet; } /** *

Information about the target Capacity Reservation or Capacity Reservation * group.

*/ inline void SetCapacityReservationTarget(const CapacityReservationTarget& value) { m_capacityReservationTargetHasBeenSet = true; m_capacityReservationTarget = value; } /** *

Information about the target Capacity Reservation or Capacity Reservation * group.

*/ inline void SetCapacityReservationTarget(CapacityReservationTarget&& value) { m_capacityReservationTargetHasBeenSet = true; m_capacityReservationTarget = std::move(value); } /** *

Information about the target Capacity Reservation or Capacity Reservation * group.

*/ inline CapacityReservationSpecification& WithCapacityReservationTarget(const CapacityReservationTarget& value) { SetCapacityReservationTarget(value); return *this;} /** *

Information about the target Capacity Reservation or Capacity Reservation * group.

*/ inline CapacityReservationSpecification& WithCapacityReservationTarget(CapacityReservationTarget&& value) { SetCapacityReservationTarget(std::move(value)); return *this;} private: CapacityReservationPreference m_capacityReservationPreference; bool m_capacityReservationPreferenceHasBeenSet = false; CapacityReservationTarget m_capacityReservationTarget; bool m_capacityReservationTargetHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws