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

Describes the configuration of a Spot Fleet request.

See Also:

* AWS * API Reference

*/ class SpotFleetRequestConfigData { public: AWS_EC2_API SpotFleetRequestConfigData(); AWS_EC2_API SpotFleetRequestConfigData(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API SpotFleetRequestConfigData& 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 strategy that determines how to allocate the target Spot Instance * capacity across the Spot Instance pools specified by the Spot Fleet launch * configuration. For more information, see Allocation * strategies for Spot Instances in the Amazon EC2 User Guide.

*
priceCapacityOptimized (recommended)

Spot Fleet identifies the * pools with the highest capacity availability for the number of instances that * are launching. This means that we will request Spot Instances from the pools * that we believe have the lowest chance of interruption in the near term. Spot * Fleet then requests Spot Instances from the lowest priced of these pools.

*
capacityOptimized

Spot Fleet identifies the pools with * the highest capacity availability for the number of instances that are * launching. This means that we will request Spot Instances from the pools that we * believe have the lowest chance of interruption in the near term. To give certain * instance types a higher chance of launching first, use * capacityOptimizedPrioritized. Set a priority for each instance type * by using the Priority parameter for * LaunchTemplateOverrides. You can assign the same priority to * different LaunchTemplateOverrides. EC2 implements the priorities on * a best-effort basis, but optimizes for capacity first. * capacityOptimizedPrioritized is supported only if your Spot Fleet * uses a launch template. Note that if the OnDemandAllocationStrategy * is set to prioritized, the same priority is applied when fulfilling * On-Demand capacity.

diversified

Spot Fleet requests * instances from all of the Spot Instance pools that you specify.

*
lowestPrice

Spot Fleet requests instances from the lowest * priced Spot Instance pool that has available capacity. If the lowest priced pool * doesn't have available capacity, the Spot Instances come from the next lowest * priced pool that has available capacity. If a pool runs out of capacity before * fulfilling your desired capacity, Spot Fleet will continue to fulfill your * request by drawing from the next lowest priced pool. To ensure that your desired * capacity is met, you might receive Spot Instances from several pools. Because * this strategy only considers instance price and not capacity availability, it * might lead to high interruption rates.

Default: * lowestPrice

*/ inline const AllocationStrategy& GetAllocationStrategy() const{ return m_allocationStrategy; } /** *

The strategy that determines how to allocate the target Spot Instance * capacity across the Spot Instance pools specified by the Spot Fleet launch * configuration. For more information, see Allocation * strategies for Spot Instances in the Amazon EC2 User Guide.

*
priceCapacityOptimized (recommended)

Spot Fleet identifies the * pools with the highest capacity availability for the number of instances that * are launching. This means that we will request Spot Instances from the pools * that we believe have the lowest chance of interruption in the near term. Spot * Fleet then requests Spot Instances from the lowest priced of these pools.

*
capacityOptimized

Spot Fleet identifies the pools with * the highest capacity availability for the number of instances that are * launching. This means that we will request Spot Instances from the pools that we * believe have the lowest chance of interruption in the near term. To give certain * instance types a higher chance of launching first, use * capacityOptimizedPrioritized. Set a priority for each instance type * by using the Priority parameter for * LaunchTemplateOverrides. You can assign the same priority to * different LaunchTemplateOverrides. EC2 implements the priorities on * a best-effort basis, but optimizes for capacity first. * capacityOptimizedPrioritized is supported only if your Spot Fleet * uses a launch template. Note that if the OnDemandAllocationStrategy * is set to prioritized, the same priority is applied when fulfilling * On-Demand capacity.

diversified

Spot Fleet requests * instances from all of the Spot Instance pools that you specify.

*
lowestPrice

Spot Fleet requests instances from the lowest * priced Spot Instance pool that has available capacity. If the lowest priced pool * doesn't have available capacity, the Spot Instances come from the next lowest * priced pool that has available capacity. If a pool runs out of capacity before * fulfilling your desired capacity, Spot Fleet will continue to fulfill your * request by drawing from the next lowest priced pool. To ensure that your desired * capacity is met, you might receive Spot Instances from several pools. Because * this strategy only considers instance price and not capacity availability, it * might lead to high interruption rates.

Default: * lowestPrice

*/ inline bool AllocationStrategyHasBeenSet() const { return m_allocationStrategyHasBeenSet; } /** *

The strategy that determines how to allocate the target Spot Instance * capacity across the Spot Instance pools specified by the Spot Fleet launch * configuration. For more information, see Allocation * strategies for Spot Instances in the Amazon EC2 User Guide.

*
priceCapacityOptimized (recommended)

Spot Fleet identifies the * pools with the highest capacity availability for the number of instances that * are launching. This means that we will request Spot Instances from the pools * that we believe have the lowest chance of interruption in the near term. Spot * Fleet then requests Spot Instances from the lowest priced of these pools.

*
capacityOptimized

Spot Fleet identifies the pools with * the highest capacity availability for the number of instances that are * launching. This means that we will request Spot Instances from the pools that we * believe have the lowest chance of interruption in the near term. To give certain * instance types a higher chance of launching first, use * capacityOptimizedPrioritized. Set a priority for each instance type * by using the Priority parameter for * LaunchTemplateOverrides. You can assign the same priority to * different LaunchTemplateOverrides. EC2 implements the priorities on * a best-effort basis, but optimizes for capacity first. * capacityOptimizedPrioritized is supported only if your Spot Fleet * uses a launch template. Note that if the OnDemandAllocationStrategy * is set to prioritized, the same priority is applied when fulfilling * On-Demand capacity.

diversified

Spot Fleet requests * instances from all of the Spot Instance pools that you specify.

*
lowestPrice

Spot Fleet requests instances from the lowest * priced Spot Instance pool that has available capacity. If the lowest priced pool * doesn't have available capacity, the Spot Instances come from the next lowest * priced pool that has available capacity. If a pool runs out of capacity before * fulfilling your desired capacity, Spot Fleet will continue to fulfill your * request by drawing from the next lowest priced pool. To ensure that your desired * capacity is met, you might receive Spot Instances from several pools. Because * this strategy only considers instance price and not capacity availability, it * might lead to high interruption rates.

Default: * lowestPrice

*/ inline void SetAllocationStrategy(const AllocationStrategy& value) { m_allocationStrategyHasBeenSet = true; m_allocationStrategy = value; } /** *

The strategy that determines how to allocate the target Spot Instance * capacity across the Spot Instance pools specified by the Spot Fleet launch * configuration. For more information, see Allocation * strategies for Spot Instances in the Amazon EC2 User Guide.

*
priceCapacityOptimized (recommended)

Spot Fleet identifies the * pools with the highest capacity availability for the number of instances that * are launching. This means that we will request Spot Instances from the pools * that we believe have the lowest chance of interruption in the near term. Spot * Fleet then requests Spot Instances from the lowest priced of these pools.

*
capacityOptimized

Spot Fleet identifies the pools with * the highest capacity availability for the number of instances that are * launching. This means that we will request Spot Instances from the pools that we * believe have the lowest chance of interruption in the near term. To give certain * instance types a higher chance of launching first, use * capacityOptimizedPrioritized. Set a priority for each instance type * by using the Priority parameter for * LaunchTemplateOverrides. You can assign the same priority to * different LaunchTemplateOverrides. EC2 implements the priorities on * a best-effort basis, but optimizes for capacity first. * capacityOptimizedPrioritized is supported only if your Spot Fleet * uses a launch template. Note that if the OnDemandAllocationStrategy * is set to prioritized, the same priority is applied when fulfilling * On-Demand capacity.

diversified

Spot Fleet requests * instances from all of the Spot Instance pools that you specify.

*
lowestPrice

Spot Fleet requests instances from the lowest * priced Spot Instance pool that has available capacity. If the lowest priced pool * doesn't have available capacity, the Spot Instances come from the next lowest * priced pool that has available capacity. If a pool runs out of capacity before * fulfilling your desired capacity, Spot Fleet will continue to fulfill your * request by drawing from the next lowest priced pool. To ensure that your desired * capacity is met, you might receive Spot Instances from several pools. Because * this strategy only considers instance price and not capacity availability, it * might lead to high interruption rates.

Default: * lowestPrice

*/ inline void SetAllocationStrategy(AllocationStrategy&& value) { m_allocationStrategyHasBeenSet = true; m_allocationStrategy = std::move(value); } /** *

The strategy that determines how to allocate the target Spot Instance * capacity across the Spot Instance pools specified by the Spot Fleet launch * configuration. For more information, see Allocation * strategies for Spot Instances in the Amazon EC2 User Guide.

*
priceCapacityOptimized (recommended)

Spot Fleet identifies the * pools with the highest capacity availability for the number of instances that * are launching. This means that we will request Spot Instances from the pools * that we believe have the lowest chance of interruption in the near term. Spot * Fleet then requests Spot Instances from the lowest priced of these pools.

*
capacityOptimized

Spot Fleet identifies the pools with * the highest capacity availability for the number of instances that are * launching. This means that we will request Spot Instances from the pools that we * believe have the lowest chance of interruption in the near term. To give certain * instance types a higher chance of launching first, use * capacityOptimizedPrioritized. Set a priority for each instance type * by using the Priority parameter for * LaunchTemplateOverrides. You can assign the same priority to * different LaunchTemplateOverrides. EC2 implements the priorities on * a best-effort basis, but optimizes for capacity first. * capacityOptimizedPrioritized is supported only if your Spot Fleet * uses a launch template. Note that if the OnDemandAllocationStrategy * is set to prioritized, the same priority is applied when fulfilling * On-Demand capacity.

diversified

Spot Fleet requests * instances from all of the Spot Instance pools that you specify.

*
lowestPrice

Spot Fleet requests instances from the lowest * priced Spot Instance pool that has available capacity. If the lowest priced pool * doesn't have available capacity, the Spot Instances come from the next lowest * priced pool that has available capacity. If a pool runs out of capacity before * fulfilling your desired capacity, Spot Fleet will continue to fulfill your * request by drawing from the next lowest priced pool. To ensure that your desired * capacity is met, you might receive Spot Instances from several pools. Because * this strategy only considers instance price and not capacity availability, it * might lead to high interruption rates.

Default: * lowestPrice

*/ inline SpotFleetRequestConfigData& WithAllocationStrategy(const AllocationStrategy& value) { SetAllocationStrategy(value); return *this;} /** *

The strategy that determines how to allocate the target Spot Instance * capacity across the Spot Instance pools specified by the Spot Fleet launch * configuration. For more information, see Allocation * strategies for Spot Instances in the Amazon EC2 User Guide.

*
priceCapacityOptimized (recommended)

Spot Fleet identifies the * pools with the highest capacity availability for the number of instances that * are launching. This means that we will request Spot Instances from the pools * that we believe have the lowest chance of interruption in the near term. Spot * Fleet then requests Spot Instances from the lowest priced of these pools.

*
capacityOptimized

Spot Fleet identifies the pools with * the highest capacity availability for the number of instances that are * launching. This means that we will request Spot Instances from the pools that we * believe have the lowest chance of interruption in the near term. To give certain * instance types a higher chance of launching first, use * capacityOptimizedPrioritized. Set a priority for each instance type * by using the Priority parameter for * LaunchTemplateOverrides. You can assign the same priority to * different LaunchTemplateOverrides. EC2 implements the priorities on * a best-effort basis, but optimizes for capacity first. * capacityOptimizedPrioritized is supported only if your Spot Fleet * uses a launch template. Note that if the OnDemandAllocationStrategy * is set to prioritized, the same priority is applied when fulfilling * On-Demand capacity.

diversified

Spot Fleet requests * instances from all of the Spot Instance pools that you specify.

*
lowestPrice

Spot Fleet requests instances from the lowest * priced Spot Instance pool that has available capacity. If the lowest priced pool * doesn't have available capacity, the Spot Instances come from the next lowest * priced pool that has available capacity. If a pool runs out of capacity before * fulfilling your desired capacity, Spot Fleet will continue to fulfill your * request by drawing from the next lowest priced pool. To ensure that your desired * capacity is met, you might receive Spot Instances from several pools. Because * this strategy only considers instance price and not capacity availability, it * might lead to high interruption rates.

Default: * lowestPrice

*/ inline SpotFleetRequestConfigData& WithAllocationStrategy(AllocationStrategy&& value) { SetAllocationStrategy(std::move(value)); return *this;} /** *

The order of the launch template overrides to use in fulfilling On-Demand * capacity. If you specify lowestPrice, Spot Fleet uses price to * determine the order, launching the lowest price first. If you specify * prioritized, Spot Fleet uses the priority that you assign to each * Spot Fleet launch template override, launching the highest priority first. If * you do not specify a value, Spot Fleet defaults to lowestPrice.

*/ inline const OnDemandAllocationStrategy& GetOnDemandAllocationStrategy() const{ return m_onDemandAllocationStrategy; } /** *

The order of the launch template overrides to use in fulfilling On-Demand * capacity. If you specify lowestPrice, Spot Fleet uses price to * determine the order, launching the lowest price first. If you specify * prioritized, Spot Fleet uses the priority that you assign to each * Spot Fleet launch template override, launching the highest priority first. If * you do not specify a value, Spot Fleet defaults to lowestPrice.

*/ inline bool OnDemandAllocationStrategyHasBeenSet() const { return m_onDemandAllocationStrategyHasBeenSet; } /** *

The order of the launch template overrides to use in fulfilling On-Demand * capacity. If you specify lowestPrice, Spot Fleet uses price to * determine the order, launching the lowest price first. If you specify * prioritized, Spot Fleet uses the priority that you assign to each * Spot Fleet launch template override, launching the highest priority first. If * you do not specify a value, Spot Fleet defaults to lowestPrice.

*/ inline void SetOnDemandAllocationStrategy(const OnDemandAllocationStrategy& value) { m_onDemandAllocationStrategyHasBeenSet = true; m_onDemandAllocationStrategy = value; } /** *

The order of the launch template overrides to use in fulfilling On-Demand * capacity. If you specify lowestPrice, Spot Fleet uses price to * determine the order, launching the lowest price first. If you specify * prioritized, Spot Fleet uses the priority that you assign to each * Spot Fleet launch template override, launching the highest priority first. If * you do not specify a value, Spot Fleet defaults to lowestPrice.

*/ inline void SetOnDemandAllocationStrategy(OnDemandAllocationStrategy&& value) { m_onDemandAllocationStrategyHasBeenSet = true; m_onDemandAllocationStrategy = std::move(value); } /** *

The order of the launch template overrides to use in fulfilling On-Demand * capacity. If you specify lowestPrice, Spot Fleet uses price to * determine the order, launching the lowest price first. If you specify * prioritized, Spot Fleet uses the priority that you assign to each * Spot Fleet launch template override, launching the highest priority first. If * you do not specify a value, Spot Fleet defaults to lowestPrice.

*/ inline SpotFleetRequestConfigData& WithOnDemandAllocationStrategy(const OnDemandAllocationStrategy& value) { SetOnDemandAllocationStrategy(value); return *this;} /** *

The order of the launch template overrides to use in fulfilling On-Demand * capacity. If you specify lowestPrice, Spot Fleet uses price to * determine the order, launching the lowest price first. If you specify * prioritized, Spot Fleet uses the priority that you assign to each * Spot Fleet launch template override, launching the highest priority first. If * you do not specify a value, Spot Fleet defaults to lowestPrice.

*/ inline SpotFleetRequestConfigData& WithOnDemandAllocationStrategy(OnDemandAllocationStrategy&& value) { SetOnDemandAllocationStrategy(std::move(value)); return *this;} /** *

The strategies for managing your Spot Instances that are at an elevated risk * of being interrupted.

*/ inline const SpotMaintenanceStrategies& GetSpotMaintenanceStrategies() const{ return m_spotMaintenanceStrategies; } /** *

The strategies for managing your Spot Instances that are at an elevated risk * of being interrupted.

*/ inline bool SpotMaintenanceStrategiesHasBeenSet() const { return m_spotMaintenanceStrategiesHasBeenSet; } /** *

The strategies for managing your Spot Instances that are at an elevated risk * of being interrupted.

*/ inline void SetSpotMaintenanceStrategies(const SpotMaintenanceStrategies& value) { m_spotMaintenanceStrategiesHasBeenSet = true; m_spotMaintenanceStrategies = value; } /** *

The strategies for managing your Spot Instances that are at an elevated risk * of being interrupted.

*/ inline void SetSpotMaintenanceStrategies(SpotMaintenanceStrategies&& value) { m_spotMaintenanceStrategiesHasBeenSet = true; m_spotMaintenanceStrategies = std::move(value); } /** *

The strategies for managing your Spot Instances that are at an elevated risk * of being interrupted.

*/ inline SpotFleetRequestConfigData& WithSpotMaintenanceStrategies(const SpotMaintenanceStrategies& value) { SetSpotMaintenanceStrategies(value); return *this;} /** *

The strategies for managing your Spot Instances that are at an elevated risk * of being interrupted.

*/ inline SpotFleetRequestConfigData& WithSpotMaintenanceStrategies(SpotMaintenanceStrategies&& value) { SetSpotMaintenanceStrategies(std::move(value)); return *this;} /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of your listings. This helps to avoid duplicate listings. For more * information, see Ensuring * Idempotency.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of your listings. This helps to avoid duplicate listings. For more * information, see Ensuring * Idempotency.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of your listings. This helps to avoid duplicate listings. For more * information, see Ensuring * Idempotency.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of your listings. This helps to avoid duplicate listings. For more * information, see Ensuring * Idempotency.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of your listings. This helps to avoid duplicate listings. For more * information, see Ensuring * Idempotency.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of your listings. This helps to avoid duplicate listings. For more * information, see Ensuring * Idempotency.

*/ inline SpotFleetRequestConfigData& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of your listings. This helps to avoid duplicate listings. For more * information, see Ensuring * Idempotency.

*/ inline SpotFleetRequestConfigData& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of your listings. This helps to avoid duplicate listings. For more * information, see Ensuring * Idempotency.

*/ inline SpotFleetRequestConfigData& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

Indicates whether running instances should be terminated if you decrease the * target capacity of the Spot Fleet request below the current size of the Spot * Fleet.

Supported only for fleets of type maintain.

*/ inline const ExcessCapacityTerminationPolicy& GetExcessCapacityTerminationPolicy() const{ return m_excessCapacityTerminationPolicy; } /** *

Indicates whether running instances should be terminated if you decrease the * target capacity of the Spot Fleet request below the current size of the Spot * Fleet.

Supported only for fleets of type maintain.

*/ inline bool ExcessCapacityTerminationPolicyHasBeenSet() const { return m_excessCapacityTerminationPolicyHasBeenSet; } /** *

Indicates whether running instances should be terminated if you decrease the * target capacity of the Spot Fleet request below the current size of the Spot * Fleet.

Supported only for fleets of type maintain.

*/ inline void SetExcessCapacityTerminationPolicy(const ExcessCapacityTerminationPolicy& value) { m_excessCapacityTerminationPolicyHasBeenSet = true; m_excessCapacityTerminationPolicy = value; } /** *

Indicates whether running instances should be terminated if you decrease the * target capacity of the Spot Fleet request below the current size of the Spot * Fleet.

Supported only for fleets of type maintain.

*/ inline void SetExcessCapacityTerminationPolicy(ExcessCapacityTerminationPolicy&& value) { m_excessCapacityTerminationPolicyHasBeenSet = true; m_excessCapacityTerminationPolicy = std::move(value); } /** *

Indicates whether running instances should be terminated if you decrease the * target capacity of the Spot Fleet request below the current size of the Spot * Fleet.

Supported only for fleets of type maintain.

*/ inline SpotFleetRequestConfigData& WithExcessCapacityTerminationPolicy(const ExcessCapacityTerminationPolicy& value) { SetExcessCapacityTerminationPolicy(value); return *this;} /** *

Indicates whether running instances should be terminated if you decrease the * target capacity of the Spot Fleet request below the current size of the Spot * Fleet.

Supported only for fleets of type maintain.

*/ inline SpotFleetRequestConfigData& WithExcessCapacityTerminationPolicy(ExcessCapacityTerminationPolicy&& value) { SetExcessCapacityTerminationPolicy(std::move(value)); return *this;} /** *

The number of units fulfilled by this request compared to the set target * capacity. You cannot set this value.

*/ inline double GetFulfilledCapacity() const{ return m_fulfilledCapacity; } /** *

The number of units fulfilled by this request compared to the set target * capacity. You cannot set this value.

*/ inline bool FulfilledCapacityHasBeenSet() const { return m_fulfilledCapacityHasBeenSet; } /** *

The number of units fulfilled by this request compared to the set target * capacity. You cannot set this value.

*/ inline void SetFulfilledCapacity(double value) { m_fulfilledCapacityHasBeenSet = true; m_fulfilledCapacity = value; } /** *

The number of units fulfilled by this request compared to the set target * capacity. You cannot set this value.

*/ inline SpotFleetRequestConfigData& WithFulfilledCapacity(double value) { SetFulfilledCapacity(value); return *this;} /** *

The number of On-Demand units fulfilled by this request compared to the set * target On-Demand capacity.

*/ inline double GetOnDemandFulfilledCapacity() const{ return m_onDemandFulfilledCapacity; } /** *

The number of On-Demand units fulfilled by this request compared to the set * target On-Demand capacity.

*/ inline bool OnDemandFulfilledCapacityHasBeenSet() const { return m_onDemandFulfilledCapacityHasBeenSet; } /** *

The number of On-Demand units fulfilled by this request compared to the set * target On-Demand capacity.

*/ inline void SetOnDemandFulfilledCapacity(double value) { m_onDemandFulfilledCapacityHasBeenSet = true; m_onDemandFulfilledCapacity = value; } /** *

The number of On-Demand units fulfilled by this request compared to the set * target On-Demand capacity.

*/ inline SpotFleetRequestConfigData& WithOnDemandFulfilledCapacity(double value) { SetOnDemandFulfilledCapacity(value); return *this;} /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that grants the Spot Fleet the permission to request, launch, terminate, * and tag instances on your behalf. For more information, see Spot * Fleet prerequisites in the Amazon EC2 User Guide. Spot Fleet can * terminate Spot Instances on your behalf when you cancel its Spot Fleet request * using CancelSpotFleetRequests * or when the Spot Fleet request expires, if you set * TerminateInstancesWithExpiration.

*/ inline const Aws::String& GetIamFleetRole() const{ return m_iamFleetRole; } /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that grants the Spot Fleet the permission to request, launch, terminate, * and tag instances on your behalf. For more information, see Spot * Fleet prerequisites in the Amazon EC2 User Guide. Spot Fleet can * terminate Spot Instances on your behalf when you cancel its Spot Fleet request * using CancelSpotFleetRequests * or when the Spot Fleet request expires, if you set * TerminateInstancesWithExpiration.

*/ inline bool IamFleetRoleHasBeenSet() const { return m_iamFleetRoleHasBeenSet; } /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that grants the Spot Fleet the permission to request, launch, terminate, * and tag instances on your behalf. For more information, see Spot * Fleet prerequisites in the Amazon EC2 User Guide. Spot Fleet can * terminate Spot Instances on your behalf when you cancel its Spot Fleet request * using CancelSpotFleetRequests * or when the Spot Fleet request expires, if you set * TerminateInstancesWithExpiration.

*/ inline void SetIamFleetRole(const Aws::String& value) { m_iamFleetRoleHasBeenSet = true; m_iamFleetRole = value; } /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that grants the Spot Fleet the permission to request, launch, terminate, * and tag instances on your behalf. For more information, see Spot * Fleet prerequisites in the Amazon EC2 User Guide. Spot Fleet can * terminate Spot Instances on your behalf when you cancel its Spot Fleet request * using CancelSpotFleetRequests * or when the Spot Fleet request expires, if you set * TerminateInstancesWithExpiration.

*/ inline void SetIamFleetRole(Aws::String&& value) { m_iamFleetRoleHasBeenSet = true; m_iamFleetRole = std::move(value); } /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that grants the Spot Fleet the permission to request, launch, terminate, * and tag instances on your behalf. For more information, see Spot * Fleet prerequisites in the Amazon EC2 User Guide. Spot Fleet can * terminate Spot Instances on your behalf when you cancel its Spot Fleet request * using CancelSpotFleetRequests * or when the Spot Fleet request expires, if you set * TerminateInstancesWithExpiration.

*/ inline void SetIamFleetRole(const char* value) { m_iamFleetRoleHasBeenSet = true; m_iamFleetRole.assign(value); } /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that grants the Spot Fleet the permission to request, launch, terminate, * and tag instances on your behalf. For more information, see Spot * Fleet prerequisites in the Amazon EC2 User Guide. Spot Fleet can * terminate Spot Instances on your behalf when you cancel its Spot Fleet request * using CancelSpotFleetRequests * or when the Spot Fleet request expires, if you set * TerminateInstancesWithExpiration.

*/ inline SpotFleetRequestConfigData& WithIamFleetRole(const Aws::String& value) { SetIamFleetRole(value); return *this;} /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that grants the Spot Fleet the permission to request, launch, terminate, * and tag instances on your behalf. For more information, see Spot * Fleet prerequisites in the Amazon EC2 User Guide. Spot Fleet can * terminate Spot Instances on your behalf when you cancel its Spot Fleet request * using CancelSpotFleetRequests * or when the Spot Fleet request expires, if you set * TerminateInstancesWithExpiration.

*/ inline SpotFleetRequestConfigData& WithIamFleetRole(Aws::String&& value) { SetIamFleetRole(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that grants the Spot Fleet the permission to request, launch, terminate, * and tag instances on your behalf. For more information, see Spot * Fleet prerequisites in the Amazon EC2 User Guide. Spot Fleet can * terminate Spot Instances on your behalf when you cancel its Spot Fleet request * using CancelSpotFleetRequests * or when the Spot Fleet request expires, if you set * TerminateInstancesWithExpiration.

*/ inline SpotFleetRequestConfigData& WithIamFleetRole(const char* value) { SetIamFleetRole(value); return *this;} /** *

The launch specifications for the Spot Fleet request. If you specify * LaunchSpecifications, you can't specify * LaunchTemplateConfigs. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline const Aws::Vector& GetLaunchSpecifications() const{ return m_launchSpecifications; } /** *

The launch specifications for the Spot Fleet request. If you specify * LaunchSpecifications, you can't specify * LaunchTemplateConfigs. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline bool LaunchSpecificationsHasBeenSet() const { return m_launchSpecificationsHasBeenSet; } /** *

The launch specifications for the Spot Fleet request. If you specify * LaunchSpecifications, you can't specify * LaunchTemplateConfigs. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline void SetLaunchSpecifications(const Aws::Vector& value) { m_launchSpecificationsHasBeenSet = true; m_launchSpecifications = value; } /** *

The launch specifications for the Spot Fleet request. If you specify * LaunchSpecifications, you can't specify * LaunchTemplateConfigs. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline void SetLaunchSpecifications(Aws::Vector&& value) { m_launchSpecificationsHasBeenSet = true; m_launchSpecifications = std::move(value); } /** *

The launch specifications for the Spot Fleet request. If you specify * LaunchSpecifications, you can't specify * LaunchTemplateConfigs. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline SpotFleetRequestConfigData& WithLaunchSpecifications(const Aws::Vector& value) { SetLaunchSpecifications(value); return *this;} /** *

The launch specifications for the Spot Fleet request. If you specify * LaunchSpecifications, you can't specify * LaunchTemplateConfigs. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline SpotFleetRequestConfigData& WithLaunchSpecifications(Aws::Vector&& value) { SetLaunchSpecifications(std::move(value)); return *this;} /** *

The launch specifications for the Spot Fleet request. If you specify * LaunchSpecifications, you can't specify * LaunchTemplateConfigs. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline SpotFleetRequestConfigData& AddLaunchSpecifications(const SpotFleetLaunchSpecification& value) { m_launchSpecificationsHasBeenSet = true; m_launchSpecifications.push_back(value); return *this; } /** *

The launch specifications for the Spot Fleet request. If you specify * LaunchSpecifications, you can't specify * LaunchTemplateConfigs. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline SpotFleetRequestConfigData& AddLaunchSpecifications(SpotFleetLaunchSpecification&& value) { m_launchSpecificationsHasBeenSet = true; m_launchSpecifications.push_back(std::move(value)); return *this; } /** *

The launch template and overrides. If you specify * LaunchTemplateConfigs, you can't specify * LaunchSpecifications. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline const Aws::Vector& GetLaunchTemplateConfigs() const{ return m_launchTemplateConfigs; } /** *

The launch template and overrides. If you specify * LaunchTemplateConfigs, you can't specify * LaunchSpecifications. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline bool LaunchTemplateConfigsHasBeenSet() const { return m_launchTemplateConfigsHasBeenSet; } /** *

The launch template and overrides. If you specify * LaunchTemplateConfigs, you can't specify * LaunchSpecifications. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline void SetLaunchTemplateConfigs(const Aws::Vector& value) { m_launchTemplateConfigsHasBeenSet = true; m_launchTemplateConfigs = value; } /** *

The launch template and overrides. If you specify * LaunchTemplateConfigs, you can't specify * LaunchSpecifications. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline void SetLaunchTemplateConfigs(Aws::Vector&& value) { m_launchTemplateConfigsHasBeenSet = true; m_launchTemplateConfigs = std::move(value); } /** *

The launch template and overrides. If you specify * LaunchTemplateConfigs, you can't specify * LaunchSpecifications. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline SpotFleetRequestConfigData& WithLaunchTemplateConfigs(const Aws::Vector& value) { SetLaunchTemplateConfigs(value); return *this;} /** *

The launch template and overrides. If you specify * LaunchTemplateConfigs, you can't specify * LaunchSpecifications. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline SpotFleetRequestConfigData& WithLaunchTemplateConfigs(Aws::Vector&& value) { SetLaunchTemplateConfigs(std::move(value)); return *this;} /** *

The launch template and overrides. If you specify * LaunchTemplateConfigs, you can't specify * LaunchSpecifications. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline SpotFleetRequestConfigData& AddLaunchTemplateConfigs(const LaunchTemplateConfig& value) { m_launchTemplateConfigsHasBeenSet = true; m_launchTemplateConfigs.push_back(value); return *this; } /** *

The launch template and overrides. If you specify * LaunchTemplateConfigs, you can't specify * LaunchSpecifications. If you include On-Demand capacity in your * request, you must use LaunchTemplateConfigs.

*/ inline SpotFleetRequestConfigData& AddLaunchTemplateConfigs(LaunchTemplateConfig&& value) { m_launchTemplateConfigsHasBeenSet = true; m_launchTemplateConfigs.push_back(std::move(value)); return *this; } /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance. We do not recommend using this parameter because it can lead to * increased interruptions. If you do not specify this parameter, you will pay the * current Spot price.

If you specify a maximum price, your * instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline const Aws::String& GetSpotPrice() const{ return m_spotPrice; } /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance. We do not recommend using this parameter because it can lead to * increased interruptions. If you do not specify this parameter, you will pay the * current Spot price.

If you specify a maximum price, your * instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline bool SpotPriceHasBeenSet() const { return m_spotPriceHasBeenSet; } /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance. We do not recommend using this parameter because it can lead to * increased interruptions. If you do not specify this parameter, you will pay the * current Spot price.

If you specify a maximum price, your * instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline void SetSpotPrice(const Aws::String& value) { m_spotPriceHasBeenSet = true; m_spotPrice = value; } /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance. We do not recommend using this parameter because it can lead to * increased interruptions. If you do not specify this parameter, you will pay the * current Spot price.

If you specify a maximum price, your * instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline void SetSpotPrice(Aws::String&& value) { m_spotPriceHasBeenSet = true; m_spotPrice = std::move(value); } /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance. We do not recommend using this parameter because it can lead to * increased interruptions. If you do not specify this parameter, you will pay the * current Spot price.

If you specify a maximum price, your * instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline void SetSpotPrice(const char* value) { m_spotPriceHasBeenSet = true; m_spotPrice.assign(value); } /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance. We do not recommend using this parameter because it can lead to * increased interruptions. If you do not specify this parameter, you will pay the * current Spot price.

If you specify a maximum price, your * instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline SpotFleetRequestConfigData& WithSpotPrice(const Aws::String& value) { SetSpotPrice(value); return *this;} /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance. We do not recommend using this parameter because it can lead to * increased interruptions. If you do not specify this parameter, you will pay the * current Spot price.

If you specify a maximum price, your * instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline SpotFleetRequestConfigData& WithSpotPrice(Aws::String&& value) { SetSpotPrice(std::move(value)); return *this;} /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance. We do not recommend using this parameter because it can lead to * increased interruptions. If you do not specify this parameter, you will pay the * current Spot price.

If you specify a maximum price, your * instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline SpotFleetRequestConfigData& WithSpotPrice(const char* value) { SetSpotPrice(value); return *this;} /** *

The number of units to request for the Spot Fleet. You can choose to set the * target capacity in terms of instances or a performance characteristic that is * important to your application workload, such as vCPUs, memory, or I/O. If the * request type is maintain, you can specify a target capacity of 0 * and add capacity later.

*/ inline int GetTargetCapacity() const{ return m_targetCapacity; } /** *

The number of units to request for the Spot Fleet. You can choose to set the * target capacity in terms of instances or a performance characteristic that is * important to your application workload, such as vCPUs, memory, or I/O. If the * request type is maintain, you can specify a target capacity of 0 * and add capacity later.

*/ inline bool TargetCapacityHasBeenSet() const { return m_targetCapacityHasBeenSet; } /** *

The number of units to request for the Spot Fleet. You can choose to set the * target capacity in terms of instances or a performance characteristic that is * important to your application workload, such as vCPUs, memory, or I/O. If the * request type is maintain, you can specify a target capacity of 0 * and add capacity later.

*/ inline void SetTargetCapacity(int value) { m_targetCapacityHasBeenSet = true; m_targetCapacity = value; } /** *

The number of units to request for the Spot Fleet. You can choose to set the * target capacity in terms of instances or a performance characteristic that is * important to your application workload, such as vCPUs, memory, or I/O. If the * request type is maintain, you can specify a target capacity of 0 * and add capacity later.

*/ inline SpotFleetRequestConfigData& WithTargetCapacity(int value) { SetTargetCapacity(value); return *this;} /** *

The number of On-Demand units to request. You can choose to set the target * capacity in terms of instances or a performance characteristic that is important * to your application workload, such as vCPUs, memory, or I/O. If the request type * is maintain, you can specify a target capacity of 0 and add * capacity later.

*/ inline int GetOnDemandTargetCapacity() const{ return m_onDemandTargetCapacity; } /** *

The number of On-Demand units to request. You can choose to set the target * capacity in terms of instances or a performance characteristic that is important * to your application workload, such as vCPUs, memory, or I/O. If the request type * is maintain, you can specify a target capacity of 0 and add * capacity later.

*/ inline bool OnDemandTargetCapacityHasBeenSet() const { return m_onDemandTargetCapacityHasBeenSet; } /** *

The number of On-Demand units to request. You can choose to set the target * capacity in terms of instances or a performance characteristic that is important * to your application workload, such as vCPUs, memory, or I/O. If the request type * is maintain, you can specify a target capacity of 0 and add * capacity later.

*/ inline void SetOnDemandTargetCapacity(int value) { m_onDemandTargetCapacityHasBeenSet = true; m_onDemandTargetCapacity = value; } /** *

The number of On-Demand units to request. You can choose to set the target * capacity in terms of instances or a performance characteristic that is important * to your application workload, such as vCPUs, memory, or I/O. If the request type * is maintain, you can specify a target capacity of 0 and add * capacity later.

*/ inline SpotFleetRequestConfigData& WithOnDemandTargetCapacity(int value) { SetOnDemandTargetCapacity(value); return *this;} /** *

The maximum amount per hour for On-Demand Instances that you're willing to * pay. You can use the onDemandMaxTotalPrice parameter, the * spotMaxTotalPrice parameter, or both parameters to ensure that your * fleet cost does not exceed your budget. If you set a maximum price per hour for * the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline const Aws::String& GetOnDemandMaxTotalPrice() const{ return m_onDemandMaxTotalPrice; } /** *

The maximum amount per hour for On-Demand Instances that you're willing to * pay. You can use the onDemandMaxTotalPrice parameter, the * spotMaxTotalPrice parameter, or both parameters to ensure that your * fleet cost does not exceed your budget. If you set a maximum price per hour for * the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline bool OnDemandMaxTotalPriceHasBeenSet() const { return m_onDemandMaxTotalPriceHasBeenSet; } /** *

The maximum amount per hour for On-Demand Instances that you're willing to * pay. You can use the onDemandMaxTotalPrice parameter, the * spotMaxTotalPrice parameter, or both parameters to ensure that your * fleet cost does not exceed your budget. If you set a maximum price per hour for * the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline void SetOnDemandMaxTotalPrice(const Aws::String& value) { m_onDemandMaxTotalPriceHasBeenSet = true; m_onDemandMaxTotalPrice = value; } /** *

The maximum amount per hour for On-Demand Instances that you're willing to * pay. You can use the onDemandMaxTotalPrice parameter, the * spotMaxTotalPrice parameter, or both parameters to ensure that your * fleet cost does not exceed your budget. If you set a maximum price per hour for * the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline void SetOnDemandMaxTotalPrice(Aws::String&& value) { m_onDemandMaxTotalPriceHasBeenSet = true; m_onDemandMaxTotalPrice = std::move(value); } /** *

The maximum amount per hour for On-Demand Instances that you're willing to * pay. You can use the onDemandMaxTotalPrice parameter, the * spotMaxTotalPrice parameter, or both parameters to ensure that your * fleet cost does not exceed your budget. If you set a maximum price per hour for * the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline void SetOnDemandMaxTotalPrice(const char* value) { m_onDemandMaxTotalPriceHasBeenSet = true; m_onDemandMaxTotalPrice.assign(value); } /** *

The maximum amount per hour for On-Demand Instances that you're willing to * pay. You can use the onDemandMaxTotalPrice parameter, the * spotMaxTotalPrice parameter, or both parameters to ensure that your * fleet cost does not exceed your budget. If you set a maximum price per hour for * the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline SpotFleetRequestConfigData& WithOnDemandMaxTotalPrice(const Aws::String& value) { SetOnDemandMaxTotalPrice(value); return *this;} /** *

The maximum amount per hour for On-Demand Instances that you're willing to * pay. You can use the onDemandMaxTotalPrice parameter, the * spotMaxTotalPrice parameter, or both parameters to ensure that your * fleet cost does not exceed your budget. If you set a maximum price per hour for * the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline SpotFleetRequestConfigData& WithOnDemandMaxTotalPrice(Aws::String&& value) { SetOnDemandMaxTotalPrice(std::move(value)); return *this;} /** *

The maximum amount per hour for On-Demand Instances that you're willing to * pay. You can use the onDemandMaxTotalPrice parameter, the * spotMaxTotalPrice parameter, or both parameters to ensure that your * fleet cost does not exceed your budget. If you set a maximum price per hour for * the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline SpotFleetRequestConfigData& WithOnDemandMaxTotalPrice(const char* value) { SetOnDemandMaxTotalPrice(value); return *this;} /** *

The maximum amount per hour for Spot Instances that you're willing to pay. * You can use the spotdMaxTotalPrice parameter, the * onDemandMaxTotalPrice parameter, or both parameters to ensure that * your fleet cost does not exceed your budget. If you set a maximum price per hour * for the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline const Aws::String& GetSpotMaxTotalPrice() const{ return m_spotMaxTotalPrice; } /** *

The maximum amount per hour for Spot Instances that you're willing to pay. * You can use the spotdMaxTotalPrice parameter, the * onDemandMaxTotalPrice parameter, or both parameters to ensure that * your fleet cost does not exceed your budget. If you set a maximum price per hour * for the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline bool SpotMaxTotalPriceHasBeenSet() const { return m_spotMaxTotalPriceHasBeenSet; } /** *

The maximum amount per hour for Spot Instances that you're willing to pay. * You can use the spotdMaxTotalPrice parameter, the * onDemandMaxTotalPrice parameter, or both parameters to ensure that * your fleet cost does not exceed your budget. If you set a maximum price per hour * for the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline void SetSpotMaxTotalPrice(const Aws::String& value) { m_spotMaxTotalPriceHasBeenSet = true; m_spotMaxTotalPrice = value; } /** *

The maximum amount per hour for Spot Instances that you're willing to pay. * You can use the spotdMaxTotalPrice parameter, the * onDemandMaxTotalPrice parameter, or both parameters to ensure that * your fleet cost does not exceed your budget. If you set a maximum price per hour * for the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline void SetSpotMaxTotalPrice(Aws::String&& value) { m_spotMaxTotalPriceHasBeenSet = true; m_spotMaxTotalPrice = std::move(value); } /** *

The maximum amount per hour for Spot Instances that you're willing to pay. * You can use the spotdMaxTotalPrice parameter, the * onDemandMaxTotalPrice parameter, or both parameters to ensure that * your fleet cost does not exceed your budget. If you set a maximum price per hour * for the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline void SetSpotMaxTotalPrice(const char* value) { m_spotMaxTotalPriceHasBeenSet = true; m_spotMaxTotalPrice.assign(value); } /** *

The maximum amount per hour for Spot Instances that you're willing to pay. * You can use the spotdMaxTotalPrice parameter, the * onDemandMaxTotalPrice parameter, or both parameters to ensure that * your fleet cost does not exceed your budget. If you set a maximum price per hour * for the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline SpotFleetRequestConfigData& WithSpotMaxTotalPrice(const Aws::String& value) { SetSpotMaxTotalPrice(value); return *this;} /** *

The maximum amount per hour for Spot Instances that you're willing to pay. * You can use the spotdMaxTotalPrice parameter, the * onDemandMaxTotalPrice parameter, or both parameters to ensure that * your fleet cost does not exceed your budget. If you set a maximum price per hour * for the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline SpotFleetRequestConfigData& WithSpotMaxTotalPrice(Aws::String&& value) { SetSpotMaxTotalPrice(std::move(value)); return *this;} /** *

The maximum amount per hour for Spot Instances that you're willing to pay. * You can use the spotdMaxTotalPrice parameter, the * onDemandMaxTotalPrice parameter, or both parameters to ensure that * your fleet cost does not exceed your budget. If you set a maximum price per hour * for the On-Demand Instances and Spot Instances in your request, Spot Fleet will * launch instances until it reaches the maximum amount you're willing to pay. When * the maximum amount you're willing to pay is reached, the fleet stops launching * instances even if it hasn’t met the target capacity.

*/ inline SpotFleetRequestConfigData& WithSpotMaxTotalPrice(const char* value) { SetSpotMaxTotalPrice(value); return *this;} /** *

Indicates whether running Spot Instances are terminated when the Spot Fleet * request expires.

*/ inline bool GetTerminateInstancesWithExpiration() const{ return m_terminateInstancesWithExpiration; } /** *

Indicates whether running Spot Instances are terminated when the Spot Fleet * request expires.

*/ inline bool TerminateInstancesWithExpirationHasBeenSet() const { return m_terminateInstancesWithExpirationHasBeenSet; } /** *

Indicates whether running Spot Instances are terminated when the Spot Fleet * request expires.

*/ inline void SetTerminateInstancesWithExpiration(bool value) { m_terminateInstancesWithExpirationHasBeenSet = true; m_terminateInstancesWithExpiration = value; } /** *

Indicates whether running Spot Instances are terminated when the Spot Fleet * request expires.

*/ inline SpotFleetRequestConfigData& WithTerminateInstancesWithExpiration(bool value) { SetTerminateInstancesWithExpiration(value); return *this;} /** *

The type of request. Indicates whether the Spot Fleet only requests the * target capacity or also attempts to maintain it. When this value is * request, the Spot Fleet only places the required requests. It does * not attempt to replenish Spot Instances if capacity is diminished, nor does it * submit requests in alternative Spot pools if capacity is not available. When * this value is maintain, the Spot Fleet maintains the target * capacity. The Spot Fleet places the required requests to meet capacity and * automatically replenishes any interrupted instances. Default: * maintain. instant is listed but is not used by Spot * Fleet.

*/ inline const FleetType& GetType() const{ return m_type; } /** *

The type of request. Indicates whether the Spot Fleet only requests the * target capacity or also attempts to maintain it. When this value is * request, the Spot Fleet only places the required requests. It does * not attempt to replenish Spot Instances if capacity is diminished, nor does it * submit requests in alternative Spot pools if capacity is not available. When * this value is maintain, the Spot Fleet maintains the target * capacity. The Spot Fleet places the required requests to meet capacity and * automatically replenishes any interrupted instances. Default: * maintain. instant is listed but is not used by Spot * Fleet.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of request. Indicates whether the Spot Fleet only requests the * target capacity or also attempts to maintain it. When this value is * request, the Spot Fleet only places the required requests. It does * not attempt to replenish Spot Instances if capacity is diminished, nor does it * submit requests in alternative Spot pools if capacity is not available. When * this value is maintain, the Spot Fleet maintains the target * capacity. The Spot Fleet places the required requests to meet capacity and * automatically replenishes any interrupted instances. Default: * maintain. instant is listed but is not used by Spot * Fleet.

*/ inline void SetType(const FleetType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of request. Indicates whether the Spot Fleet only requests the * target capacity or also attempts to maintain it. When this value is * request, the Spot Fleet only places the required requests. It does * not attempt to replenish Spot Instances if capacity is diminished, nor does it * submit requests in alternative Spot pools if capacity is not available. When * this value is maintain, the Spot Fleet maintains the target * capacity. The Spot Fleet places the required requests to meet capacity and * automatically replenishes any interrupted instances. Default: * maintain. instant is listed but is not used by Spot * Fleet.

*/ inline void SetType(FleetType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of request. Indicates whether the Spot Fleet only requests the * target capacity or also attempts to maintain it. When this value is * request, the Spot Fleet only places the required requests. It does * not attempt to replenish Spot Instances if capacity is diminished, nor does it * submit requests in alternative Spot pools if capacity is not available. When * this value is maintain, the Spot Fleet maintains the target * capacity. The Spot Fleet places the required requests to meet capacity and * automatically replenishes any interrupted instances. Default: * maintain. instant is listed but is not used by Spot * Fleet.

*/ inline SpotFleetRequestConfigData& WithType(const FleetType& value) { SetType(value); return *this;} /** *

The type of request. Indicates whether the Spot Fleet only requests the * target capacity or also attempts to maintain it. When this value is * request, the Spot Fleet only places the required requests. It does * not attempt to replenish Spot Instances if capacity is diminished, nor does it * submit requests in alternative Spot pools if capacity is not available. When * this value is maintain, the Spot Fleet maintains the target * capacity. The Spot Fleet places the required requests to meet capacity and * automatically replenishes any interrupted instances. Default: * maintain. instant is listed but is not used by Spot * Fleet.

*/ inline SpotFleetRequestConfigData& WithType(FleetType&& value) { SetType(std::move(value)); return *this;} /** *

The start date and time of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). By default, * Amazon EC2 starts fulfilling the request immediately.

*/ inline const Aws::Utils::DateTime& GetValidFrom() const{ return m_validFrom; } /** *

The start date and time of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). By default, * Amazon EC2 starts fulfilling the request immediately.

*/ inline bool ValidFromHasBeenSet() const { return m_validFromHasBeenSet; } /** *

The start date and time of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). By default, * Amazon EC2 starts fulfilling the request immediately.

*/ inline void SetValidFrom(const Aws::Utils::DateTime& value) { m_validFromHasBeenSet = true; m_validFrom = value; } /** *

The start date and time of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). By default, * Amazon EC2 starts fulfilling the request immediately.

*/ inline void SetValidFrom(Aws::Utils::DateTime&& value) { m_validFromHasBeenSet = true; m_validFrom = std::move(value); } /** *

The start date and time of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). By default, * Amazon EC2 starts fulfilling the request immediately.

*/ inline SpotFleetRequestConfigData& WithValidFrom(const Aws::Utils::DateTime& value) { SetValidFrom(value); return *this;} /** *

The start date and time of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). By default, * Amazon EC2 starts fulfilling the request immediately.

*/ inline SpotFleetRequestConfigData& WithValidFrom(Aws::Utils::DateTime&& value) { SetValidFrom(std::move(value)); return *this;} /** *

The end date and time of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). After the end * date and time, no new Spot Instance requests are placed or able to fulfill the * request. If no value is specified, the Spot Fleet request remains until you * cancel it.

*/ inline const Aws::Utils::DateTime& GetValidUntil() const{ return m_validUntil; } /** *

The end date and time of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). After the end * date and time, no new Spot Instance requests are placed or able to fulfill the * request. If no value is specified, the Spot Fleet request remains until you * cancel it.

*/ inline bool ValidUntilHasBeenSet() const { return m_validUntilHasBeenSet; } /** *

The end date and time of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). After the end * date and time, no new Spot Instance requests are placed or able to fulfill the * request. If no value is specified, the Spot Fleet request remains until you * cancel it.

*/ inline void SetValidUntil(const Aws::Utils::DateTime& value) { m_validUntilHasBeenSet = true; m_validUntil = value; } /** *

The end date and time of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). After the end * date and time, no new Spot Instance requests are placed or able to fulfill the * request. If no value is specified, the Spot Fleet request remains until you * cancel it.

*/ inline void SetValidUntil(Aws::Utils::DateTime&& value) { m_validUntilHasBeenSet = true; m_validUntil = std::move(value); } /** *

The end date and time of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). After the end * date and time, no new Spot Instance requests are placed or able to fulfill the * request. If no value is specified, the Spot Fleet request remains until you * cancel it.

*/ inline SpotFleetRequestConfigData& WithValidUntil(const Aws::Utils::DateTime& value) { SetValidUntil(value); return *this;} /** *

The end date and time of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). After the end * date and time, no new Spot Instance requests are placed or able to fulfill the * request. If no value is specified, the Spot Fleet request remains until you * cancel it.

*/ inline SpotFleetRequestConfigData& WithValidUntil(Aws::Utils::DateTime&& value) { SetValidUntil(std::move(value)); return *this;} /** *

Indicates whether Spot Fleet should replace unhealthy instances.

*/ inline bool GetReplaceUnhealthyInstances() const{ return m_replaceUnhealthyInstances; } /** *

Indicates whether Spot Fleet should replace unhealthy instances.

*/ inline bool ReplaceUnhealthyInstancesHasBeenSet() const { return m_replaceUnhealthyInstancesHasBeenSet; } /** *

Indicates whether Spot Fleet should replace unhealthy instances.

*/ inline void SetReplaceUnhealthyInstances(bool value) { m_replaceUnhealthyInstancesHasBeenSet = true; m_replaceUnhealthyInstances = value; } /** *

Indicates whether Spot Fleet should replace unhealthy instances.

*/ inline SpotFleetRequestConfigData& WithReplaceUnhealthyInstances(bool value) { SetReplaceUnhealthyInstances(value); return *this;} /** *

The behavior when a Spot Instance is interrupted. The default is * terminate.

*/ inline const InstanceInterruptionBehavior& GetInstanceInterruptionBehavior() const{ return m_instanceInterruptionBehavior; } /** *

The behavior when a Spot Instance is interrupted. The default is * terminate.

*/ inline bool InstanceInterruptionBehaviorHasBeenSet() const { return m_instanceInterruptionBehaviorHasBeenSet; } /** *

The behavior when a Spot Instance is interrupted. The default is * terminate.

*/ inline void SetInstanceInterruptionBehavior(const InstanceInterruptionBehavior& value) { m_instanceInterruptionBehaviorHasBeenSet = true; m_instanceInterruptionBehavior = value; } /** *

The behavior when a Spot Instance is interrupted. The default is * terminate.

*/ inline void SetInstanceInterruptionBehavior(InstanceInterruptionBehavior&& value) { m_instanceInterruptionBehaviorHasBeenSet = true; m_instanceInterruptionBehavior = std::move(value); } /** *

The behavior when a Spot Instance is interrupted. The default is * terminate.

*/ inline SpotFleetRequestConfigData& WithInstanceInterruptionBehavior(const InstanceInterruptionBehavior& value) { SetInstanceInterruptionBehavior(value); return *this;} /** *

The behavior when a Spot Instance is interrupted. The default is * terminate.

*/ inline SpotFleetRequestConfigData& WithInstanceInterruptionBehavior(InstanceInterruptionBehavior&& value) { SetInstanceInterruptionBehavior(std::move(value)); return *this;} /** *

One or more Classic Load Balancers and target groups to attach to the Spot * Fleet request. Spot Fleet registers the running Spot Instances with the * specified Classic Load Balancers and target groups.

With Network Load * Balancers, Spot Fleet cannot register instances that have the following instance * types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and * T1.

*/ inline const LoadBalancersConfig& GetLoadBalancersConfig() const{ return m_loadBalancersConfig; } /** *

One or more Classic Load Balancers and target groups to attach to the Spot * Fleet request. Spot Fleet registers the running Spot Instances with the * specified Classic Load Balancers and target groups.

With Network Load * Balancers, Spot Fleet cannot register instances that have the following instance * types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and * T1.

*/ inline bool LoadBalancersConfigHasBeenSet() const { return m_loadBalancersConfigHasBeenSet; } /** *

One or more Classic Load Balancers and target groups to attach to the Spot * Fleet request. Spot Fleet registers the running Spot Instances with the * specified Classic Load Balancers and target groups.

With Network Load * Balancers, Spot Fleet cannot register instances that have the following instance * types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and * T1.

*/ inline void SetLoadBalancersConfig(const LoadBalancersConfig& value) { m_loadBalancersConfigHasBeenSet = true; m_loadBalancersConfig = value; } /** *

One or more Classic Load Balancers and target groups to attach to the Spot * Fleet request. Spot Fleet registers the running Spot Instances with the * specified Classic Load Balancers and target groups.

With Network Load * Balancers, Spot Fleet cannot register instances that have the following instance * types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and * T1.

*/ inline void SetLoadBalancersConfig(LoadBalancersConfig&& value) { m_loadBalancersConfigHasBeenSet = true; m_loadBalancersConfig = std::move(value); } /** *

One or more Classic Load Balancers and target groups to attach to the Spot * Fleet request. Spot Fleet registers the running Spot Instances with the * specified Classic Load Balancers and target groups.

With Network Load * Balancers, Spot Fleet cannot register instances that have the following instance * types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and * T1.

*/ inline SpotFleetRequestConfigData& WithLoadBalancersConfig(const LoadBalancersConfig& value) { SetLoadBalancersConfig(value); return *this;} /** *

One or more Classic Load Balancers and target groups to attach to the Spot * Fleet request. Spot Fleet registers the running Spot Instances with the * specified Classic Load Balancers and target groups.

With Network Load * Balancers, Spot Fleet cannot register instances that have the following instance * types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and * T1.

*/ inline SpotFleetRequestConfigData& WithLoadBalancersConfig(LoadBalancersConfig&& value) { SetLoadBalancersConfig(std::move(value)); return *this;} /** *

The number of Spot pools across which to allocate your target Spot capacity. * Valid only when Spot AllocationStrategy is set to * lowest-price. Spot Fleet selects the cheapest Spot pools and evenly * allocates your target Spot capacity across the number of Spot pools that you * specify.

Note that Spot Fleet attempts to draw Spot Instances from the * number of pools that you specify on a best effort basis. If a pool runs out of * Spot capacity before fulfilling your target capacity, Spot Fleet will continue * to fulfill your request by drawing from the next cheapest pool. To ensure that * your target capacity is met, you might receive Spot Instances from more than the * number of pools that you specified. Similarly, if most of the pools have no Spot * capacity, you might receive your full target capacity from fewer than the number * of pools that you specified.

*/ inline int GetInstancePoolsToUseCount() const{ return m_instancePoolsToUseCount; } /** *

The number of Spot pools across which to allocate your target Spot capacity. * Valid only when Spot AllocationStrategy is set to * lowest-price. Spot Fleet selects the cheapest Spot pools and evenly * allocates your target Spot capacity across the number of Spot pools that you * specify.

Note that Spot Fleet attempts to draw Spot Instances from the * number of pools that you specify on a best effort basis. If a pool runs out of * Spot capacity before fulfilling your target capacity, Spot Fleet will continue * to fulfill your request by drawing from the next cheapest pool. To ensure that * your target capacity is met, you might receive Spot Instances from more than the * number of pools that you specified. Similarly, if most of the pools have no Spot * capacity, you might receive your full target capacity from fewer than the number * of pools that you specified.

*/ inline bool InstancePoolsToUseCountHasBeenSet() const { return m_instancePoolsToUseCountHasBeenSet; } /** *

The number of Spot pools across which to allocate your target Spot capacity. * Valid only when Spot AllocationStrategy is set to * lowest-price. Spot Fleet selects the cheapest Spot pools and evenly * allocates your target Spot capacity across the number of Spot pools that you * specify.

Note that Spot Fleet attempts to draw Spot Instances from the * number of pools that you specify on a best effort basis. If a pool runs out of * Spot capacity before fulfilling your target capacity, Spot Fleet will continue * to fulfill your request by drawing from the next cheapest pool. To ensure that * your target capacity is met, you might receive Spot Instances from more than the * number of pools that you specified. Similarly, if most of the pools have no Spot * capacity, you might receive your full target capacity from fewer than the number * of pools that you specified.

*/ inline void SetInstancePoolsToUseCount(int value) { m_instancePoolsToUseCountHasBeenSet = true; m_instancePoolsToUseCount = value; } /** *

The number of Spot pools across which to allocate your target Spot capacity. * Valid only when Spot AllocationStrategy is set to * lowest-price. Spot Fleet selects the cheapest Spot pools and evenly * allocates your target Spot capacity across the number of Spot pools that you * specify.

Note that Spot Fleet attempts to draw Spot Instances from the * number of pools that you specify on a best effort basis. If a pool runs out of * Spot capacity before fulfilling your target capacity, Spot Fleet will continue * to fulfill your request by drawing from the next cheapest pool. To ensure that * your target capacity is met, you might receive Spot Instances from more than the * number of pools that you specified. Similarly, if most of the pools have no Spot * capacity, you might receive your full target capacity from fewer than the number * of pools that you specified.

*/ inline SpotFleetRequestConfigData& WithInstancePoolsToUseCount(int value) { SetInstancePoolsToUseCount(value); return *this;} /** *

Reserved.

*/ inline const Aws::String& GetContext() const{ return m_context; } /** *

Reserved.

*/ inline bool ContextHasBeenSet() const { return m_contextHasBeenSet; } /** *

Reserved.

*/ inline void SetContext(const Aws::String& value) { m_contextHasBeenSet = true; m_context = value; } /** *

Reserved.

*/ inline void SetContext(Aws::String&& value) { m_contextHasBeenSet = true; m_context = std::move(value); } /** *

Reserved.

*/ inline void SetContext(const char* value) { m_contextHasBeenSet = true; m_context.assign(value); } /** *

Reserved.

*/ inline SpotFleetRequestConfigData& WithContext(const Aws::String& value) { SetContext(value); return *this;} /** *

Reserved.

*/ inline SpotFleetRequestConfigData& WithContext(Aws::String&& value) { SetContext(std::move(value)); return *this;} /** *

Reserved.

*/ inline SpotFleetRequestConfigData& WithContext(const char* value) { SetContext(value); return *this;} /** *

The unit for the target capacity. TargetCapacityUnitType can * only be specified when InstanceRequirements is specified.

*

Default: units (translates to number of instances)

*/ inline const TargetCapacityUnitType& GetTargetCapacityUnitType() const{ return m_targetCapacityUnitType; } /** *

The unit for the target capacity. TargetCapacityUnitType can * only be specified when InstanceRequirements is specified.

*

Default: units (translates to number of instances)

*/ inline bool TargetCapacityUnitTypeHasBeenSet() const { return m_targetCapacityUnitTypeHasBeenSet; } /** *

The unit for the target capacity. TargetCapacityUnitType can * only be specified when InstanceRequirements is specified.

*

Default: units (translates to number of instances)

*/ inline void SetTargetCapacityUnitType(const TargetCapacityUnitType& value) { m_targetCapacityUnitTypeHasBeenSet = true; m_targetCapacityUnitType = value; } /** *

The unit for the target capacity. TargetCapacityUnitType can * only be specified when InstanceRequirements is specified.

*

Default: units (translates to number of instances)

*/ inline void SetTargetCapacityUnitType(TargetCapacityUnitType&& value) { m_targetCapacityUnitTypeHasBeenSet = true; m_targetCapacityUnitType = std::move(value); } /** *

The unit for the target capacity. TargetCapacityUnitType can * only be specified when InstanceRequirements is specified.

*

Default: units (translates to number of instances)

*/ inline SpotFleetRequestConfigData& WithTargetCapacityUnitType(const TargetCapacityUnitType& value) { SetTargetCapacityUnitType(value); return *this;} /** *

The unit for the target capacity. TargetCapacityUnitType can * only be specified when InstanceRequirements is specified.

*

Default: units (translates to number of instances)

*/ inline SpotFleetRequestConfigData& WithTargetCapacityUnitType(TargetCapacityUnitType&& value) { SetTargetCapacityUnitType(std::move(value)); return *this;} /** *

The key-value pair for tagging the Spot Fleet request on creation. The value * for ResourceType must be spot-fleet-request, otherwise * the Spot Fleet request fails. To tag instances at launch, specify the tags in * the launch * template (valid only if you use LaunchTemplateConfigs) or in * the SpotFleetTagSpecification * (valid only if you use LaunchSpecifications). For * information about tagging after launch, see Tagging * Your Resources.

*/ inline const Aws::Vector& GetTagSpecifications() const{ return m_tagSpecifications; } /** *

The key-value pair for tagging the Spot Fleet request on creation. The value * for ResourceType must be spot-fleet-request, otherwise * the Spot Fleet request fails. To tag instances at launch, specify the tags in * the launch * template (valid only if you use LaunchTemplateConfigs) or in * the SpotFleetTagSpecification * (valid only if you use LaunchSpecifications). For * information about tagging after launch, see Tagging * Your Resources.

*/ inline bool TagSpecificationsHasBeenSet() const { return m_tagSpecificationsHasBeenSet; } /** *

The key-value pair for tagging the Spot Fleet request on creation. The value * for ResourceType must be spot-fleet-request, otherwise * the Spot Fleet request fails. To tag instances at launch, specify the tags in * the launch * template (valid only if you use LaunchTemplateConfigs) or in * the SpotFleetTagSpecification * (valid only if you use LaunchSpecifications). For * information about tagging after launch, see Tagging * Your Resources.

*/ inline void SetTagSpecifications(const Aws::Vector& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = value; } /** *

The key-value pair for tagging the Spot Fleet request on creation. The value * for ResourceType must be spot-fleet-request, otherwise * the Spot Fleet request fails. To tag instances at launch, specify the tags in * the launch * template (valid only if you use LaunchTemplateConfigs) or in * the SpotFleetTagSpecification * (valid only if you use LaunchSpecifications). For * information about tagging after launch, see Tagging * Your Resources.

*/ inline void SetTagSpecifications(Aws::Vector&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = std::move(value); } /** *

The key-value pair for tagging the Spot Fleet request on creation. The value * for ResourceType must be spot-fleet-request, otherwise * the Spot Fleet request fails. To tag instances at launch, specify the tags in * the launch * template (valid only if you use LaunchTemplateConfigs) or in * the SpotFleetTagSpecification * (valid only if you use LaunchSpecifications). For * information about tagging after launch, see Tagging * Your Resources.

*/ inline SpotFleetRequestConfigData& WithTagSpecifications(const Aws::Vector& value) { SetTagSpecifications(value); return *this;} /** *

The key-value pair for tagging the Spot Fleet request on creation. The value * for ResourceType must be spot-fleet-request, otherwise * the Spot Fleet request fails. To tag instances at launch, specify the tags in * the launch * template (valid only if you use LaunchTemplateConfigs) or in * the SpotFleetTagSpecification * (valid only if you use LaunchSpecifications). For * information about tagging after launch, see Tagging * Your Resources.

*/ inline SpotFleetRequestConfigData& WithTagSpecifications(Aws::Vector&& value) { SetTagSpecifications(std::move(value)); return *this;} /** *

The key-value pair for tagging the Spot Fleet request on creation. The value * for ResourceType must be spot-fleet-request, otherwise * the Spot Fleet request fails. To tag instances at launch, specify the tags in * the launch * template (valid only if you use LaunchTemplateConfigs) or in * the SpotFleetTagSpecification * (valid only if you use LaunchSpecifications). For * information about tagging after launch, see Tagging * Your Resources.

*/ inline SpotFleetRequestConfigData& AddTagSpecifications(const TagSpecification& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(value); return *this; } /** *

The key-value pair for tagging the Spot Fleet request on creation. The value * for ResourceType must be spot-fleet-request, otherwise * the Spot Fleet request fails. To tag instances at launch, specify the tags in * the launch * template (valid only if you use LaunchTemplateConfigs) or in * the SpotFleetTagSpecification * (valid only if you use LaunchSpecifications). For * information about tagging after launch, see Tagging * Your Resources.

*/ inline SpotFleetRequestConfigData& AddTagSpecifications(TagSpecification&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(std::move(value)); return *this; } private: AllocationStrategy m_allocationStrategy; bool m_allocationStrategyHasBeenSet = false; OnDemandAllocationStrategy m_onDemandAllocationStrategy; bool m_onDemandAllocationStrategyHasBeenSet = false; SpotMaintenanceStrategies m_spotMaintenanceStrategies; bool m_spotMaintenanceStrategiesHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; ExcessCapacityTerminationPolicy m_excessCapacityTerminationPolicy; bool m_excessCapacityTerminationPolicyHasBeenSet = false; double m_fulfilledCapacity; bool m_fulfilledCapacityHasBeenSet = false; double m_onDemandFulfilledCapacity; bool m_onDemandFulfilledCapacityHasBeenSet = false; Aws::String m_iamFleetRole; bool m_iamFleetRoleHasBeenSet = false; Aws::Vector m_launchSpecifications; bool m_launchSpecificationsHasBeenSet = false; Aws::Vector m_launchTemplateConfigs; bool m_launchTemplateConfigsHasBeenSet = false; Aws::String m_spotPrice; bool m_spotPriceHasBeenSet = false; int m_targetCapacity; bool m_targetCapacityHasBeenSet = false; int m_onDemandTargetCapacity; bool m_onDemandTargetCapacityHasBeenSet = false; Aws::String m_onDemandMaxTotalPrice; bool m_onDemandMaxTotalPriceHasBeenSet = false; Aws::String m_spotMaxTotalPrice; bool m_spotMaxTotalPriceHasBeenSet = false; bool m_terminateInstancesWithExpiration; bool m_terminateInstancesWithExpirationHasBeenSet = false; FleetType m_type; bool m_typeHasBeenSet = false; Aws::Utils::DateTime m_validFrom; bool m_validFromHasBeenSet = false; Aws::Utils::DateTime m_validUntil; bool m_validUntilHasBeenSet = false; bool m_replaceUnhealthyInstances; bool m_replaceUnhealthyInstancesHasBeenSet = false; InstanceInterruptionBehavior m_instanceInterruptionBehavior; bool m_instanceInterruptionBehaviorHasBeenSet = false; LoadBalancersConfig m_loadBalancersConfig; bool m_loadBalancersConfigHasBeenSet = false; int m_instancePoolsToUseCount; bool m_instancePoolsToUseCountHasBeenSet = false; Aws::String m_context; bool m_contextHasBeenSet = false; TargetCapacityUnitType m_targetCapacityUnitType; bool m_targetCapacityUnitTypeHasBeenSet = false; Aws::Vector m_tagSpecifications; bool m_tagSpecificationsHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws