/** * 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 { /** *

Information about the Capacity Reservation targeting option.

See * Also:

AWS * API Reference

*/ class LaunchTemplateCapacityReservationSpecificationResponse { public: AWS_EC2_API LaunchTemplateCapacityReservationSpecificationResponse(); AWS_EC2_API LaunchTemplateCapacityReservationSpecificationResponse(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API LaunchTemplateCapacityReservationSpecificationResponse& 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 LaunchTemplateCapacityReservationSpecificationResponse& 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 LaunchTemplateCapacityReservationSpecificationResponse& WithCapacityReservationPreference(CapacityReservationPreference&& value) { SetCapacityReservationPreference(std::move(value)); return *this;} /** *

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

*/ inline const CapacityReservationTargetResponse& 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 CapacityReservationTargetResponse& value) { m_capacityReservationTargetHasBeenSet = true; m_capacityReservationTarget = value; } /** *

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

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

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

*/ inline LaunchTemplateCapacityReservationSpecificationResponse& WithCapacityReservationTarget(const CapacityReservationTargetResponse& value) { SetCapacityReservationTarget(value); return *this;} /** *

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

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