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

Information about an instance type to use in a Capacity Reservation * Fleet.

See Also:

AWS * API Reference

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

The instance type for which the Capacity Reservation Fleet reserves * capacity.

*/ inline const InstanceType& GetInstanceType() const{ return m_instanceType; } /** *

The instance type for which the Capacity Reservation Fleet reserves * capacity.

*/ inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } /** *

The instance type for which the Capacity Reservation Fleet reserves * capacity.

*/ inline void SetInstanceType(const InstanceType& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } /** *

The instance type for which the Capacity Reservation Fleet reserves * capacity.

*/ inline void SetInstanceType(InstanceType&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } /** *

The instance type for which the Capacity Reservation Fleet reserves * capacity.

*/ inline ReservationFleetInstanceSpecification& WithInstanceType(const InstanceType& value) { SetInstanceType(value); return *this;} /** *

The instance type for which the Capacity Reservation Fleet reserves * capacity.

*/ inline ReservationFleetInstanceSpecification& WithInstanceType(InstanceType&& value) { SetInstanceType(std::move(value)); return *this;} /** *

The type of operating system for which the Capacity Reservation Fleet * reserves capacity.

*/ inline const CapacityReservationInstancePlatform& GetInstancePlatform() const{ return m_instancePlatform; } /** *

The type of operating system for which the Capacity Reservation Fleet * reserves capacity.

*/ inline bool InstancePlatformHasBeenSet() const { return m_instancePlatformHasBeenSet; } /** *

The type of operating system for which the Capacity Reservation Fleet * reserves capacity.

*/ inline void SetInstancePlatform(const CapacityReservationInstancePlatform& value) { m_instancePlatformHasBeenSet = true; m_instancePlatform = value; } /** *

The type of operating system for which the Capacity Reservation Fleet * reserves capacity.

*/ inline void SetInstancePlatform(CapacityReservationInstancePlatform&& value) { m_instancePlatformHasBeenSet = true; m_instancePlatform = std::move(value); } /** *

The type of operating system for which the Capacity Reservation Fleet * reserves capacity.

*/ inline ReservationFleetInstanceSpecification& WithInstancePlatform(const CapacityReservationInstancePlatform& value) { SetInstancePlatform(value); return *this;} /** *

The type of operating system for which the Capacity Reservation Fleet * reserves capacity.

*/ inline ReservationFleetInstanceSpecification& WithInstancePlatform(CapacityReservationInstancePlatform&& value) { SetInstancePlatform(std::move(value)); return *this;} /** *

The number of capacity units provided by the specified instance type. This * value, together with the total target capacity that you specify for the Fleet * determine the number of instances for which the Fleet reserves capacity. Both * values are based on units that make sense for your workload. For more * information, see Total * target capacity in the Amazon EC2 User Guide.

*/ inline double GetWeight() const{ return m_weight; } /** *

The number of capacity units provided by the specified instance type. This * value, together with the total target capacity that you specify for the Fleet * determine the number of instances for which the Fleet reserves capacity. Both * values are based on units that make sense for your workload. For more * information, see Total * target capacity in the Amazon EC2 User Guide.

*/ inline bool WeightHasBeenSet() const { return m_weightHasBeenSet; } /** *

The number of capacity units provided by the specified instance type. This * value, together with the total target capacity that you specify for the Fleet * determine the number of instances for which the Fleet reserves capacity. Both * values are based on units that make sense for your workload. For more * information, see Total * target capacity in the Amazon EC2 User Guide.

*/ inline void SetWeight(double value) { m_weightHasBeenSet = true; m_weight = value; } /** *

The number of capacity units provided by the specified instance type. This * value, together with the total target capacity that you specify for the Fleet * determine the number of instances for which the Fleet reserves capacity. Both * values are based on units that make sense for your workload. For more * information, see Total * target capacity in the Amazon EC2 User Guide.

*/ inline ReservationFleetInstanceSpecification& WithWeight(double value) { SetWeight(value); return *this;} /** *

The Availability Zone in which the Capacity Reservation Fleet reserves the * capacity. A Capacity Reservation Fleet can't span Availability Zones. All * instance type specifications that you specify for the Fleet must use the same * Availability Zone.

*/ inline const Aws::String& GetAvailabilityZone() const{ return m_availabilityZone; } /** *

The Availability Zone in which the Capacity Reservation Fleet reserves the * capacity. A Capacity Reservation Fleet can't span Availability Zones. All * instance type specifications that you specify for the Fleet must use the same * Availability Zone.

*/ inline bool AvailabilityZoneHasBeenSet() const { return m_availabilityZoneHasBeenSet; } /** *

The Availability Zone in which the Capacity Reservation Fleet reserves the * capacity. A Capacity Reservation Fleet can't span Availability Zones. All * instance type specifications that you specify for the Fleet must use the same * Availability Zone.

*/ inline void SetAvailabilityZone(const Aws::String& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = value; } /** *

The Availability Zone in which the Capacity Reservation Fleet reserves the * capacity. A Capacity Reservation Fleet can't span Availability Zones. All * instance type specifications that you specify for the Fleet must use the same * Availability Zone.

*/ inline void SetAvailabilityZone(Aws::String&& value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone = std::move(value); } /** *

The Availability Zone in which the Capacity Reservation Fleet reserves the * capacity. A Capacity Reservation Fleet can't span Availability Zones. All * instance type specifications that you specify for the Fleet must use the same * Availability Zone.

*/ inline void SetAvailabilityZone(const char* value) { m_availabilityZoneHasBeenSet = true; m_availabilityZone.assign(value); } /** *

The Availability Zone in which the Capacity Reservation Fleet reserves the * capacity. A Capacity Reservation Fleet can't span Availability Zones. All * instance type specifications that you specify for the Fleet must use the same * Availability Zone.

*/ inline ReservationFleetInstanceSpecification& WithAvailabilityZone(const Aws::String& value) { SetAvailabilityZone(value); return *this;} /** *

The Availability Zone in which the Capacity Reservation Fleet reserves the * capacity. A Capacity Reservation Fleet can't span Availability Zones. All * instance type specifications that you specify for the Fleet must use the same * Availability Zone.

*/ inline ReservationFleetInstanceSpecification& WithAvailabilityZone(Aws::String&& value) { SetAvailabilityZone(std::move(value)); return *this;} /** *

The Availability Zone in which the Capacity Reservation Fleet reserves the * capacity. A Capacity Reservation Fleet can't span Availability Zones. All * instance type specifications that you specify for the Fleet must use the same * Availability Zone.

*/ inline ReservationFleetInstanceSpecification& WithAvailabilityZone(const char* value) { SetAvailabilityZone(value); return *this;} /** *

The ID of the Availability Zone in which the Capacity Reservation Fleet * reserves the capacity. A Capacity Reservation Fleet can't span Availability * Zones. All instance type specifications that you specify for the Fleet must use * the same Availability Zone.

*/ inline const Aws::String& GetAvailabilityZoneId() const{ return m_availabilityZoneId; } /** *

The ID of the Availability Zone in which the Capacity Reservation Fleet * reserves the capacity. A Capacity Reservation Fleet can't span Availability * Zones. All instance type specifications that you specify for the Fleet must use * the same Availability Zone.

*/ inline bool AvailabilityZoneIdHasBeenSet() const { return m_availabilityZoneIdHasBeenSet; } /** *

The ID of the Availability Zone in which the Capacity Reservation Fleet * reserves the capacity. A Capacity Reservation Fleet can't span Availability * Zones. All instance type specifications that you specify for the Fleet must use * the same Availability Zone.

*/ inline void SetAvailabilityZoneId(const Aws::String& value) { m_availabilityZoneIdHasBeenSet = true; m_availabilityZoneId = value; } /** *

The ID of the Availability Zone in which the Capacity Reservation Fleet * reserves the capacity. A Capacity Reservation Fleet can't span Availability * Zones. All instance type specifications that you specify for the Fleet must use * the same Availability Zone.

*/ inline void SetAvailabilityZoneId(Aws::String&& value) { m_availabilityZoneIdHasBeenSet = true; m_availabilityZoneId = std::move(value); } /** *

The ID of the Availability Zone in which the Capacity Reservation Fleet * reserves the capacity. A Capacity Reservation Fleet can't span Availability * Zones. All instance type specifications that you specify for the Fleet must use * the same Availability Zone.

*/ inline void SetAvailabilityZoneId(const char* value) { m_availabilityZoneIdHasBeenSet = true; m_availabilityZoneId.assign(value); } /** *

The ID of the Availability Zone in which the Capacity Reservation Fleet * reserves the capacity. A Capacity Reservation Fleet can't span Availability * Zones. All instance type specifications that you specify for the Fleet must use * the same Availability Zone.

*/ inline ReservationFleetInstanceSpecification& WithAvailabilityZoneId(const Aws::String& value) { SetAvailabilityZoneId(value); return *this;} /** *

The ID of the Availability Zone in which the Capacity Reservation Fleet * reserves the capacity. A Capacity Reservation Fleet can't span Availability * Zones. All instance type specifications that you specify for the Fleet must use * the same Availability Zone.

*/ inline ReservationFleetInstanceSpecification& WithAvailabilityZoneId(Aws::String&& value) { SetAvailabilityZoneId(std::move(value)); return *this;} /** *

The ID of the Availability Zone in which the Capacity Reservation Fleet * reserves the capacity. A Capacity Reservation Fleet can't span Availability * Zones. All instance type specifications that you specify for the Fleet must use * the same Availability Zone.

*/ inline ReservationFleetInstanceSpecification& WithAvailabilityZoneId(const char* value) { SetAvailabilityZoneId(value); return *this;} /** *

Indicates whether the Capacity Reservation Fleet supports EBS-optimized * instances types. This optimization provides dedicated throughput to Amazon EBS * and an optimized configuration stack to provide optimal I/O performance. This * optimization isn't available with all instance types. Additional usage charges * apply when using EBS-optimized instance types.

*/ inline bool GetEbsOptimized() const{ return m_ebsOptimized; } /** *

Indicates whether the Capacity Reservation Fleet supports EBS-optimized * instances types. This optimization provides dedicated throughput to Amazon EBS * and an optimized configuration stack to provide optimal I/O performance. This * optimization isn't available with all instance types. Additional usage charges * apply when using EBS-optimized instance types.

*/ inline bool EbsOptimizedHasBeenSet() const { return m_ebsOptimizedHasBeenSet; } /** *

Indicates whether the Capacity Reservation Fleet supports EBS-optimized * instances types. This optimization provides dedicated throughput to Amazon EBS * and an optimized configuration stack to provide optimal I/O performance. This * optimization isn't available with all instance types. Additional usage charges * apply when using EBS-optimized instance types.

*/ inline void SetEbsOptimized(bool value) { m_ebsOptimizedHasBeenSet = true; m_ebsOptimized = value; } /** *

Indicates whether the Capacity Reservation Fleet supports EBS-optimized * instances types. This optimization provides dedicated throughput to Amazon EBS * and an optimized configuration stack to provide optimal I/O performance. This * optimization isn't available with all instance types. Additional usage charges * apply when using EBS-optimized instance types.

*/ inline ReservationFleetInstanceSpecification& WithEbsOptimized(bool value) { SetEbsOptimized(value); return *this;} /** *

The priority to assign to the instance type. This value is used to determine * which of the instance types specified for the Fleet should be prioritized for * use. A lower value indicates a high priority. For more information, see Instance * type priority in the Amazon EC2 User Guide.

*/ inline int GetPriority() const{ return m_priority; } /** *

The priority to assign to the instance type. This value is used to determine * which of the instance types specified for the Fleet should be prioritized for * use. A lower value indicates a high priority. For more information, see Instance * type priority in the Amazon EC2 User Guide.

*/ inline bool PriorityHasBeenSet() const { return m_priorityHasBeenSet; } /** *

The priority to assign to the instance type. This value is used to determine * which of the instance types specified for the Fleet should be prioritized for * use. A lower value indicates a high priority. For more information, see Instance * type priority in the Amazon EC2 User Guide.

*/ inline void SetPriority(int value) { m_priorityHasBeenSet = true; m_priority = value; } /** *

The priority to assign to the instance type. This value is used to determine * which of the instance types specified for the Fleet should be prioritized for * use. A lower value indicates a high priority. For more information, see Instance * type priority in the Amazon EC2 User Guide.

*/ inline ReservationFleetInstanceSpecification& WithPriority(int value) { SetPriority(value); return *this;} private: InstanceType m_instanceType; bool m_instanceTypeHasBeenSet = false; CapacityReservationInstancePlatform m_instancePlatform; bool m_instancePlatformHasBeenSet = false; double m_weight; bool m_weightHasBeenSet = false; Aws::String m_availabilityZone; bool m_availabilityZoneHasBeenSet = false; Aws::String m_availabilityZoneId; bool m_availabilityZoneIdHasBeenSet = false; bool m_ebsOptimized; bool m_ebsOptimizedHasBeenSet = false; int m_priority; bool m_priorityHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws