/** * 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 option at a time. Use the * CapacityReservationPreference parameter to configure the instance * to run in On-Demand capacity 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 LaunchTemplateCapacityReservationSpecificationRequest { public: AWS_EC2_API LaunchTemplateCapacityReservationSpecificationRequest(); AWS_EC2_API LaunchTemplateCapacityReservationSpecificationRequest(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API LaunchTemplateCapacityReservationSpecificationRequest& 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 in On-Demand capacity.

*/ 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 in On-Demand capacity.

*/ 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 in On-Demand capacity.

*/ 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 in On-Demand capacity.

*/ 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 in On-Demand capacity.

*/ inline LaunchTemplateCapacityReservationSpecificationRequest& 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 in On-Demand capacity.

*/ inline LaunchTemplateCapacityReservationSpecificationRequest& 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 LaunchTemplateCapacityReservationSpecificationRequest& WithCapacityReservationTarget(const CapacityReservationTarget& value) { SetCapacityReservationTarget(value); return *this;} /** *

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

*/ inline LaunchTemplateCapacityReservationSpecificationRequest& 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