/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Information about an instance type to use in a Capacity Reservation
* Fleet.See Also:
AWS
* API Reference
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