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

Specifies the Capacity Reservation targeting option of an Amazon EC2 * instance.

See Also:

AWS * API Reference

*/ class AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails { public: AWS_SECURITYHUB_API AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails(); AWS_SECURITYHUB_API AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

Indicates the instance's Capacity Reservation preferences. If equal to * open, the instance can run in any open Capacity Reservation that * has matching attributes (instance type, platform, Availability Zone). If equal * to none, the instance avoids running in a Capacity Reservation even * if one is available. The instance runs in On-Demand capacity.

*/ inline const Aws::String& GetCapacityReservationPreference() const{ return m_capacityReservationPreference; } /** *

Indicates the instance's Capacity Reservation preferences. If equal to * open, the instance can run in any open Capacity Reservation that * has matching attributes (instance type, platform, Availability Zone). If equal * to 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. If equal to * open, the instance can run in any open Capacity Reservation that * has matching attributes (instance type, platform, Availability Zone). If equal * to 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 Aws::String& value) { m_capacityReservationPreferenceHasBeenSet = true; m_capacityReservationPreference = value; } /** *

Indicates the instance's Capacity Reservation preferences. If equal to * open, the instance can run in any open Capacity Reservation that * has matching attributes (instance type, platform, Availability Zone). If equal * to none, the instance avoids running in a Capacity Reservation even * if one is available. The instance runs in On-Demand capacity.

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

Indicates the instance's Capacity Reservation preferences. If equal to * open, the instance can run in any open Capacity Reservation that * has matching attributes (instance type, platform, Availability Zone). If equal * to 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 char* value) { m_capacityReservationPreferenceHasBeenSet = true; m_capacityReservationPreference.assign(value); } /** *

Indicates the instance's Capacity Reservation preferences. If equal to * open, the instance can run in any open Capacity Reservation that * has matching attributes (instance type, platform, Availability Zone). If equal * to none, the instance avoids running in a Capacity Reservation even * if one is available. The instance runs in On-Demand capacity.

*/ inline AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails& WithCapacityReservationPreference(const Aws::String& value) { SetCapacityReservationPreference(value); return *this;} /** *

Indicates the instance's Capacity Reservation preferences. If equal to * open, the instance can run in any open Capacity Reservation that * has matching attributes (instance type, platform, Availability Zone). If equal * to none, the instance avoids running in a Capacity Reservation even * if one is available. The instance runs in On-Demand capacity.

*/ inline AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails& WithCapacityReservationPreference(Aws::String&& value) { SetCapacityReservationPreference(std::move(value)); return *this;} /** *

Indicates the instance's Capacity Reservation preferences. If equal to * open, the instance can run in any open Capacity Reservation that * has matching attributes (instance type, platform, Availability Zone). If equal * to none, the instance avoids running in a Capacity Reservation even * if one is available. The instance runs in On-Demand capacity.

*/ inline AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails& WithCapacityReservationPreference(const char* value) { SetCapacityReservationPreference(value); return *this;} /** *

Specifies a target Capacity Reservation.

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

Specifies a target Capacity Reservation.

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

Specifies a target Capacity Reservation.

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

Specifies a target Capacity Reservation.

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

Specifies a target Capacity Reservation.

*/ inline AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails& WithCapacityReservationTarget(const AwsEc2LaunchTemplateDataCapacityReservationSpecificationCapacityReservationTargetDetails& value) { SetCapacityReservationTarget(value); return *this;} /** *

Specifies a target Capacity Reservation.

*/ inline AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails& WithCapacityReservationTarget(AwsEc2LaunchTemplateDataCapacityReservationSpecificationCapacityReservationTargetDetails&& value) { SetCapacityReservationTarget(std::move(value)); return *this;} private: Aws::String m_capacityReservationPreference; bool m_capacityReservationPreferenceHasBeenSet = false; AwsEc2LaunchTemplateDataCapacityReservationSpecificationCapacityReservationTargetDetails m_capacityReservationTarget; bool m_capacityReservationTargetHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws