This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
pxz-hos-client-cpp-module/support/aws-sdk-cpp-master/aws-cpp-sdk-ec2/include/aws/ec2/model/SpotFleetRequestConfigData.h

1495 lines
80 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/ec2/EC2_EXPORTS.h>
#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
#include <aws/ec2/model/AllocationStrategy.h>
#include <aws/ec2/model/OnDemandAllocationStrategy.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/ec2/model/ExcessCapacityTerminationPolicy.h>
#include <aws/core/utils/memory/stl/AWSVector.h>
#include <aws/ec2/model/FleetType.h>
#include <aws/core/utils/DateTime.h>
#include <aws/ec2/model/InstanceInterruptionBehavior.h>
#include <aws/ec2/model/LoadBalancersConfig.h>
#include <aws/ec2/model/SpotFleetLaunchSpecification.h>
#include <aws/ec2/model/LaunchTemplateConfig.h>
#include <aws/ec2/model/TagSpecification.h>
#include <utility>
namespace Aws
{
namespace Utils
{
namespace Xml
{
class XmlNode;
} // namespace Xml
} // namespace Utils
namespace EC2
{
namespace Model
{
/**
* <p>Describes the configuration of a Spot Fleet request.</p><p><h3>See Also:</h3>
* <a
* href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotFleetRequestConfigData">AWS
* API Reference</a></p>
*/
class AWS_EC2_API SpotFleetRequestConfigData
{
public:
SpotFleetRequestConfigData();
SpotFleetRequestConfigData(const Aws::Utils::Xml::XmlNode& xmlNode);
SpotFleetRequestConfigData& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
void OutputToStream(Aws::OStream& oStream, const char* location) const;
/**
* <p>Indicates how to allocate the target Spot Instance capacity across the Spot
* Instance pools specified by the Spot Fleet request.</p> <p>If the allocation
* strategy is <code>lowestPrice</code>, Spot Fleet launches instances from the
* Spot Instance pools with the lowest price. This is the default allocation
* strategy.</p> <p>If the allocation strategy is <code>diversified</code>, Spot
* Fleet launches instances from all the Spot Instance pools that you specify.</p>
* <p>If the allocation strategy is <code>capacityOptimized</code>, Spot Fleet
* launches instances from Spot Instance pools with optimal capacity for the number
* of instances that are launching.</p>
*/
inline const AllocationStrategy& GetAllocationStrategy() const{ return m_allocationStrategy; }
/**
* <p>Indicates how to allocate the target Spot Instance capacity across the Spot
* Instance pools specified by the Spot Fleet request.</p> <p>If the allocation
* strategy is <code>lowestPrice</code>, Spot Fleet launches instances from the
* Spot Instance pools with the lowest price. This is the default allocation
* strategy.</p> <p>If the allocation strategy is <code>diversified</code>, Spot
* Fleet launches instances from all the Spot Instance pools that you specify.</p>
* <p>If the allocation strategy is <code>capacityOptimized</code>, Spot Fleet
* launches instances from Spot Instance pools with optimal capacity for the number
* of instances that are launching.</p>
*/
inline bool AllocationStrategyHasBeenSet() const { return m_allocationStrategyHasBeenSet; }
/**
* <p>Indicates how to allocate the target Spot Instance capacity across the Spot
* Instance pools specified by the Spot Fleet request.</p> <p>If the allocation
* strategy is <code>lowestPrice</code>, Spot Fleet launches instances from the
* Spot Instance pools with the lowest price. This is the default allocation
* strategy.</p> <p>If the allocation strategy is <code>diversified</code>, Spot
* Fleet launches instances from all the Spot Instance pools that you specify.</p>
* <p>If the allocation strategy is <code>capacityOptimized</code>, Spot Fleet
* launches instances from Spot Instance pools with optimal capacity for the number
* of instances that are launching.</p>
*/
inline void SetAllocationStrategy(const AllocationStrategy& value) { m_allocationStrategyHasBeenSet = true; m_allocationStrategy = value; }
/**
* <p>Indicates how to allocate the target Spot Instance capacity across the Spot
* Instance pools specified by the Spot Fleet request.</p> <p>If the allocation
* strategy is <code>lowestPrice</code>, Spot Fleet launches instances from the
* Spot Instance pools with the lowest price. This is the default allocation
* strategy.</p> <p>If the allocation strategy is <code>diversified</code>, Spot
* Fleet launches instances from all the Spot Instance pools that you specify.</p>
* <p>If the allocation strategy is <code>capacityOptimized</code>, Spot Fleet
* launches instances from Spot Instance pools with optimal capacity for the number
* of instances that are launching.</p>
*/
inline void SetAllocationStrategy(AllocationStrategy&& value) { m_allocationStrategyHasBeenSet = true; m_allocationStrategy = std::move(value); }
/**
* <p>Indicates how to allocate the target Spot Instance capacity across the Spot
* Instance pools specified by the Spot Fleet request.</p> <p>If the allocation
* strategy is <code>lowestPrice</code>, Spot Fleet launches instances from the
* Spot Instance pools with the lowest price. This is the default allocation
* strategy.</p> <p>If the allocation strategy is <code>diversified</code>, Spot
* Fleet launches instances from all the Spot Instance pools that you specify.</p>
* <p>If the allocation strategy is <code>capacityOptimized</code>, Spot Fleet
* launches instances from Spot Instance pools with optimal capacity for the number
* of instances that are launching.</p>
*/
inline SpotFleetRequestConfigData& WithAllocationStrategy(const AllocationStrategy& value) { SetAllocationStrategy(value); return *this;}
/**
* <p>Indicates how to allocate the target Spot Instance capacity across the Spot
* Instance pools specified by the Spot Fleet request.</p> <p>If the allocation
* strategy is <code>lowestPrice</code>, Spot Fleet launches instances from the
* Spot Instance pools with the lowest price. This is the default allocation
* strategy.</p> <p>If the allocation strategy is <code>diversified</code>, Spot
* Fleet launches instances from all the Spot Instance pools that you specify.</p>
* <p>If the allocation strategy is <code>capacityOptimized</code>, Spot Fleet
* launches instances from Spot Instance pools with optimal capacity for the number
* of instances that are launching.</p>
*/
inline SpotFleetRequestConfigData& WithAllocationStrategy(AllocationStrategy&& value) { SetAllocationStrategy(std::move(value)); return *this;}
/**
* <p>The order of the launch template overrides to use in fulfilling On-Demand
* capacity. If you specify <code>lowestPrice</code>, Spot Fleet uses price to
* determine the order, launching the lowest price first. If you specify
* <code>prioritized</code>, 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 <code>lowestPrice</code>.</p>
*/
inline const OnDemandAllocationStrategy& GetOnDemandAllocationStrategy() const{ return m_onDemandAllocationStrategy; }
/**
* <p>The order of the launch template overrides to use in fulfilling On-Demand
* capacity. If you specify <code>lowestPrice</code>, Spot Fleet uses price to
* determine the order, launching the lowest price first. If you specify
* <code>prioritized</code>, 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 <code>lowestPrice</code>.</p>
*/
inline bool OnDemandAllocationStrategyHasBeenSet() const { return m_onDemandAllocationStrategyHasBeenSet; }
/**
* <p>The order of the launch template overrides to use in fulfilling On-Demand
* capacity. If you specify <code>lowestPrice</code>, Spot Fleet uses price to
* determine the order, launching the lowest price first. If you specify
* <code>prioritized</code>, 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 <code>lowestPrice</code>.</p>
*/
inline void SetOnDemandAllocationStrategy(const OnDemandAllocationStrategy& value) { m_onDemandAllocationStrategyHasBeenSet = true; m_onDemandAllocationStrategy = value; }
/**
* <p>The order of the launch template overrides to use in fulfilling On-Demand
* capacity. If you specify <code>lowestPrice</code>, Spot Fleet uses price to
* determine the order, launching the lowest price first. If you specify
* <code>prioritized</code>, 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 <code>lowestPrice</code>.</p>
*/
inline void SetOnDemandAllocationStrategy(OnDemandAllocationStrategy&& value) { m_onDemandAllocationStrategyHasBeenSet = true; m_onDemandAllocationStrategy = std::move(value); }
/**
* <p>The order of the launch template overrides to use in fulfilling On-Demand
* capacity. If you specify <code>lowestPrice</code>, Spot Fleet uses price to
* determine the order, launching the lowest price first. If you specify
* <code>prioritized</code>, 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 <code>lowestPrice</code>.</p>
*/
inline SpotFleetRequestConfigData& WithOnDemandAllocationStrategy(const OnDemandAllocationStrategy& value) { SetOnDemandAllocationStrategy(value); return *this;}
/**
* <p>The order of the launch template overrides to use in fulfilling On-Demand
* capacity. If you specify <code>lowestPrice</code>, Spot Fleet uses price to
* determine the order, launching the lowest price first. If you specify
* <code>prioritized</code>, 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 <code>lowestPrice</code>.</p>
*/
inline SpotFleetRequestConfigData& WithOnDemandAllocationStrategy(OnDemandAllocationStrategy&& value) { SetOnDemandAllocationStrategy(std::move(value)); return *this;}
/**
* <p>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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
* Idempotency</a>.</p>
*/
inline const Aws::String& GetClientToken() const{ return m_clientToken; }
/**
* <p>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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
* Idempotency</a>.</p>
*/
inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; }
/**
* <p>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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
* Idempotency</a>.</p>
*/
inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; }
/**
* <p>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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
* Idempotency</a>.</p>
*/
inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); }
/**
* <p>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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
* Idempotency</a>.</p>
*/
inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); }
/**
* <p>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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
* Idempotency</a>.</p>
*/
inline SpotFleetRequestConfigData& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;}
/**
* <p>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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
* Idempotency</a>.</p>
*/
inline SpotFleetRequestConfigData& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;}
/**
* <p>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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring
* Idempotency</a>.</p>
*/
inline SpotFleetRequestConfigData& WithClientToken(const char* value) { SetClientToken(value); return *this;}
/**
* <p>Indicates whether running Spot Instances should be terminated if you decrease
* the target capacity of the Spot Fleet request below the current size of the Spot
* Fleet.</p>
*/
inline const ExcessCapacityTerminationPolicy& GetExcessCapacityTerminationPolicy() const{ return m_excessCapacityTerminationPolicy; }
/**
* <p>Indicates whether running Spot Instances should be terminated if you decrease
* the target capacity of the Spot Fleet request below the current size of the Spot
* Fleet.</p>
*/
inline bool ExcessCapacityTerminationPolicyHasBeenSet() const { return m_excessCapacityTerminationPolicyHasBeenSet; }
/**
* <p>Indicates whether running Spot Instances should be terminated if you decrease
* the target capacity of the Spot Fleet request below the current size of the Spot
* Fleet.</p>
*/
inline void SetExcessCapacityTerminationPolicy(const ExcessCapacityTerminationPolicy& value) { m_excessCapacityTerminationPolicyHasBeenSet = true; m_excessCapacityTerminationPolicy = value; }
/**
* <p>Indicates whether running Spot Instances should be terminated if you decrease
* the target capacity of the Spot Fleet request below the current size of the Spot
* Fleet.</p>
*/
inline void SetExcessCapacityTerminationPolicy(ExcessCapacityTerminationPolicy&& value) { m_excessCapacityTerminationPolicyHasBeenSet = true; m_excessCapacityTerminationPolicy = std::move(value); }
/**
* <p>Indicates whether running Spot Instances should be terminated if you decrease
* the target capacity of the Spot Fleet request below the current size of the Spot
* Fleet.</p>
*/
inline SpotFleetRequestConfigData& WithExcessCapacityTerminationPolicy(const ExcessCapacityTerminationPolicy& value) { SetExcessCapacityTerminationPolicy(value); return *this;}
/**
* <p>Indicates whether running Spot Instances should be terminated if you decrease
* the target capacity of the Spot Fleet request below the current size of the Spot
* Fleet.</p>
*/
inline SpotFleetRequestConfigData& WithExcessCapacityTerminationPolicy(ExcessCapacityTerminationPolicy&& value) { SetExcessCapacityTerminationPolicy(std::move(value)); return *this;}
/**
* <p>The number of units fulfilled by this request compared to the set target
* capacity. You cannot set this value.</p>
*/
inline double GetFulfilledCapacity() const{ return m_fulfilledCapacity; }
/**
* <p>The number of units fulfilled by this request compared to the set target
* capacity. You cannot set this value.</p>
*/
inline bool FulfilledCapacityHasBeenSet() const { return m_fulfilledCapacityHasBeenSet; }
/**
* <p>The number of units fulfilled by this request compared to the set target
* capacity. You cannot set this value.</p>
*/
inline void SetFulfilledCapacity(double value) { m_fulfilledCapacityHasBeenSet = true; m_fulfilledCapacity = value; }
/**
* <p>The number of units fulfilled by this request compared to the set target
* capacity. You cannot set this value.</p>
*/
inline SpotFleetRequestConfigData& WithFulfilledCapacity(double value) { SetFulfilledCapacity(value); return *this;}
/**
* <p>The number of On-Demand units fulfilled by this request compared to the set
* target On-Demand capacity.</p>
*/
inline double GetOnDemandFulfilledCapacity() const{ return m_onDemandFulfilledCapacity; }
/**
* <p>The number of On-Demand units fulfilled by this request compared to the set
* target On-Demand capacity.</p>
*/
inline bool OnDemandFulfilledCapacityHasBeenSet() const { return m_onDemandFulfilledCapacityHasBeenSet; }
/**
* <p>The number of On-Demand units fulfilled by this request compared to the set
* target On-Demand capacity.</p>
*/
inline void SetOnDemandFulfilledCapacity(double value) { m_onDemandFulfilledCapacityHasBeenSet = true; m_onDemandFulfilledCapacity = value; }
/**
* <p>The number of On-Demand units fulfilled by this request compared to the set
* target On-Demand capacity.</p>
*/
inline SpotFleetRequestConfigData& WithOnDemandFulfilledCapacity(double value) { SetOnDemandFulfilledCapacity(value); return *this;}
/**
* <p>The Amazon Resource Name (ARN) of an AWS 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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites">Spot
* Fleet prerequisites</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.
* Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot
* Fleet request using <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CancelSpotFleetRequests">CancelSpotFleetRequests</a>
* or when the Spot Fleet request expires, if you set
* <code>TerminateInstancesWithExpiration</code>.</p>
*/
inline const Aws::String& GetIamFleetRole() const{ return m_iamFleetRole; }
/**
* <p>The Amazon Resource Name (ARN) of an AWS 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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites">Spot
* Fleet prerequisites</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.
* Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot
* Fleet request using <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CancelSpotFleetRequests">CancelSpotFleetRequests</a>
* or when the Spot Fleet request expires, if you set
* <code>TerminateInstancesWithExpiration</code>.</p>
*/
inline bool IamFleetRoleHasBeenSet() const { return m_iamFleetRoleHasBeenSet; }
/**
* <p>The Amazon Resource Name (ARN) of an AWS 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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites">Spot
* Fleet prerequisites</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.
* Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot
* Fleet request using <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CancelSpotFleetRequests">CancelSpotFleetRequests</a>
* or when the Spot Fleet request expires, if you set
* <code>TerminateInstancesWithExpiration</code>.</p>
*/
inline void SetIamFleetRole(const Aws::String& value) { m_iamFleetRoleHasBeenSet = true; m_iamFleetRole = value; }
/**
* <p>The Amazon Resource Name (ARN) of an AWS 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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites">Spot
* Fleet prerequisites</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.
* Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot
* Fleet request using <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CancelSpotFleetRequests">CancelSpotFleetRequests</a>
* or when the Spot Fleet request expires, if you set
* <code>TerminateInstancesWithExpiration</code>.</p>
*/
inline void SetIamFleetRole(Aws::String&& value) { m_iamFleetRoleHasBeenSet = true; m_iamFleetRole = std::move(value); }
/**
* <p>The Amazon Resource Name (ARN) of an AWS 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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites">Spot
* Fleet prerequisites</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.
* Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot
* Fleet request using <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CancelSpotFleetRequests">CancelSpotFleetRequests</a>
* or when the Spot Fleet request expires, if you set
* <code>TerminateInstancesWithExpiration</code>.</p>
*/
inline void SetIamFleetRole(const char* value) { m_iamFleetRoleHasBeenSet = true; m_iamFleetRole.assign(value); }
/**
* <p>The Amazon Resource Name (ARN) of an AWS 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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites">Spot
* Fleet prerequisites</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.
* Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot
* Fleet request using <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CancelSpotFleetRequests">CancelSpotFleetRequests</a>
* or when the Spot Fleet request expires, if you set
* <code>TerminateInstancesWithExpiration</code>.</p>
*/
inline SpotFleetRequestConfigData& WithIamFleetRole(const Aws::String& value) { SetIamFleetRole(value); return *this;}
/**
* <p>The Amazon Resource Name (ARN) of an AWS 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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites">Spot
* Fleet prerequisites</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.
* Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot
* Fleet request using <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CancelSpotFleetRequests">CancelSpotFleetRequests</a>
* or when the Spot Fleet request expires, if you set
* <code>TerminateInstancesWithExpiration</code>.</p>
*/
inline SpotFleetRequestConfigData& WithIamFleetRole(Aws::String&& value) { SetIamFleetRole(std::move(value)); return *this;}
/**
* <p>The Amazon Resource Name (ARN) of an AWS 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 <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites">Spot
* Fleet prerequisites</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.
* Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot
* Fleet request using <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CancelSpotFleetRequests">CancelSpotFleetRequests</a>
* or when the Spot Fleet request expires, if you set
* <code>TerminateInstancesWithExpiration</code>.</p>
*/
inline SpotFleetRequestConfigData& WithIamFleetRole(const char* value) { SetIamFleetRole(value); return *this;}
/**
* <p>The launch specifications for the Spot Fleet request. If you specify
* <code>LaunchSpecifications</code>, you can't specify
* <code>LaunchTemplateConfigs</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline const Aws::Vector<SpotFleetLaunchSpecification>& GetLaunchSpecifications() const{ return m_launchSpecifications; }
/**
* <p>The launch specifications for the Spot Fleet request. If you specify
* <code>LaunchSpecifications</code>, you can't specify
* <code>LaunchTemplateConfigs</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline bool LaunchSpecificationsHasBeenSet() const { return m_launchSpecificationsHasBeenSet; }
/**
* <p>The launch specifications for the Spot Fleet request. If you specify
* <code>LaunchSpecifications</code>, you can't specify
* <code>LaunchTemplateConfigs</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline void SetLaunchSpecifications(const Aws::Vector<SpotFleetLaunchSpecification>& value) { m_launchSpecificationsHasBeenSet = true; m_launchSpecifications = value; }
/**
* <p>The launch specifications for the Spot Fleet request. If you specify
* <code>LaunchSpecifications</code>, you can't specify
* <code>LaunchTemplateConfigs</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline void SetLaunchSpecifications(Aws::Vector<SpotFleetLaunchSpecification>&& value) { m_launchSpecificationsHasBeenSet = true; m_launchSpecifications = std::move(value); }
/**
* <p>The launch specifications for the Spot Fleet request. If you specify
* <code>LaunchSpecifications</code>, you can't specify
* <code>LaunchTemplateConfigs</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline SpotFleetRequestConfigData& WithLaunchSpecifications(const Aws::Vector<SpotFleetLaunchSpecification>& value) { SetLaunchSpecifications(value); return *this;}
/**
* <p>The launch specifications for the Spot Fleet request. If you specify
* <code>LaunchSpecifications</code>, you can't specify
* <code>LaunchTemplateConfigs</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline SpotFleetRequestConfigData& WithLaunchSpecifications(Aws::Vector<SpotFleetLaunchSpecification>&& value) { SetLaunchSpecifications(std::move(value)); return *this;}
/**
* <p>The launch specifications for the Spot Fleet request. If you specify
* <code>LaunchSpecifications</code>, you can't specify
* <code>LaunchTemplateConfigs</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline SpotFleetRequestConfigData& AddLaunchSpecifications(const SpotFleetLaunchSpecification& value) { m_launchSpecificationsHasBeenSet = true; m_launchSpecifications.push_back(value); return *this; }
/**
* <p>The launch specifications for the Spot Fleet request. If you specify
* <code>LaunchSpecifications</code>, you can't specify
* <code>LaunchTemplateConfigs</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline SpotFleetRequestConfigData& AddLaunchSpecifications(SpotFleetLaunchSpecification&& value) { m_launchSpecificationsHasBeenSet = true; m_launchSpecifications.push_back(std::move(value)); return *this; }
/**
* <p>The launch template and overrides. If you specify
* <code>LaunchTemplateConfigs</code>, you can't specify
* <code>LaunchSpecifications</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline const Aws::Vector<LaunchTemplateConfig>& GetLaunchTemplateConfigs() const{ return m_launchTemplateConfigs; }
/**
* <p>The launch template and overrides. If you specify
* <code>LaunchTemplateConfigs</code>, you can't specify
* <code>LaunchSpecifications</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline bool LaunchTemplateConfigsHasBeenSet() const { return m_launchTemplateConfigsHasBeenSet; }
/**
* <p>The launch template and overrides. If you specify
* <code>LaunchTemplateConfigs</code>, you can't specify
* <code>LaunchSpecifications</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline void SetLaunchTemplateConfigs(const Aws::Vector<LaunchTemplateConfig>& value) { m_launchTemplateConfigsHasBeenSet = true; m_launchTemplateConfigs = value; }
/**
* <p>The launch template and overrides. If you specify
* <code>LaunchTemplateConfigs</code>, you can't specify
* <code>LaunchSpecifications</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline void SetLaunchTemplateConfigs(Aws::Vector<LaunchTemplateConfig>&& value) { m_launchTemplateConfigsHasBeenSet = true; m_launchTemplateConfigs = std::move(value); }
/**
* <p>The launch template and overrides. If you specify
* <code>LaunchTemplateConfigs</code>, you can't specify
* <code>LaunchSpecifications</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline SpotFleetRequestConfigData& WithLaunchTemplateConfigs(const Aws::Vector<LaunchTemplateConfig>& value) { SetLaunchTemplateConfigs(value); return *this;}
/**
* <p>The launch template and overrides. If you specify
* <code>LaunchTemplateConfigs</code>, you can't specify
* <code>LaunchSpecifications</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline SpotFleetRequestConfigData& WithLaunchTemplateConfigs(Aws::Vector<LaunchTemplateConfig>&& value) { SetLaunchTemplateConfigs(std::move(value)); return *this;}
/**
* <p>The launch template and overrides. If you specify
* <code>LaunchTemplateConfigs</code>, you can't specify
* <code>LaunchSpecifications</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline SpotFleetRequestConfigData& AddLaunchTemplateConfigs(const LaunchTemplateConfig& value) { m_launchTemplateConfigsHasBeenSet = true; m_launchTemplateConfigs.push_back(value); return *this; }
/**
* <p>The launch template and overrides. If you specify
* <code>LaunchTemplateConfigs</code>, you can't specify
* <code>LaunchSpecifications</code>. If you include On-Demand capacity in your
* request, you must use <code>LaunchTemplateConfigs</code>.</p>
*/
inline SpotFleetRequestConfigData& AddLaunchTemplateConfigs(LaunchTemplateConfig&& value) { m_launchTemplateConfigsHasBeenSet = true; m_launchTemplateConfigs.push_back(std::move(value)); return *this; }
/**
* <p>The maximum price per unit hour that you are willing to pay for a Spot
* Instance. The default is the On-Demand price.</p>
*/
inline const Aws::String& GetSpotPrice() const{ return m_spotPrice; }
/**
* <p>The maximum price per unit hour that you are willing to pay for a Spot
* Instance. The default is the On-Demand price.</p>
*/
inline bool SpotPriceHasBeenSet() const { return m_spotPriceHasBeenSet; }
/**
* <p>The maximum price per unit hour that you are willing to pay for a Spot
* Instance. The default is the On-Demand price.</p>
*/
inline void SetSpotPrice(const Aws::String& value) { m_spotPriceHasBeenSet = true; m_spotPrice = value; }
/**
* <p>The maximum price per unit hour that you are willing to pay for a Spot
* Instance. The default is the On-Demand price.</p>
*/
inline void SetSpotPrice(Aws::String&& value) { m_spotPriceHasBeenSet = true; m_spotPrice = std::move(value); }
/**
* <p>The maximum price per unit hour that you are willing to pay for a Spot
* Instance. The default is the On-Demand price.</p>
*/
inline void SetSpotPrice(const char* value) { m_spotPriceHasBeenSet = true; m_spotPrice.assign(value); }
/**
* <p>The maximum price per unit hour that you are willing to pay for a Spot
* Instance. The default is the On-Demand price.</p>
*/
inline SpotFleetRequestConfigData& WithSpotPrice(const Aws::String& value) { SetSpotPrice(value); return *this;}
/**
* <p>The maximum price per unit hour that you are willing to pay for a Spot
* Instance. The default is the On-Demand price.</p>
*/
inline SpotFleetRequestConfigData& WithSpotPrice(Aws::String&& value) { SetSpotPrice(std::move(value)); return *this;}
/**
* <p>The maximum price per unit hour that you are willing to pay for a Spot
* Instance. The default is the On-Demand price.</p>
*/
inline SpotFleetRequestConfigData& WithSpotPrice(const char* value) { SetSpotPrice(value); return *this;}
/**
* <p>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 <code>maintain</code>, you can specify a target capacity of 0
* and add capacity later.</p>
*/
inline int GetTargetCapacity() const{ return m_targetCapacity; }
/**
* <p>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 <code>maintain</code>, you can specify a target capacity of 0
* and add capacity later.</p>
*/
inline bool TargetCapacityHasBeenSet() const { return m_targetCapacityHasBeenSet; }
/**
* <p>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 <code>maintain</code>, you can specify a target capacity of 0
* and add capacity later.</p>
*/
inline void SetTargetCapacity(int value) { m_targetCapacityHasBeenSet = true; m_targetCapacity = value; }
/**
* <p>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 <code>maintain</code>, you can specify a target capacity of 0
* and add capacity later.</p>
*/
inline SpotFleetRequestConfigData& WithTargetCapacity(int value) { SetTargetCapacity(value); return *this;}
/**
* <p>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 <code>maintain</code>, you can specify a target capacity of 0 and add
* capacity later.</p>
*/
inline int GetOnDemandTargetCapacity() const{ return m_onDemandTargetCapacity; }
/**
* <p>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 <code>maintain</code>, you can specify a target capacity of 0 and add
* capacity later.</p>
*/
inline bool OnDemandTargetCapacityHasBeenSet() const { return m_onDemandTargetCapacityHasBeenSet; }
/**
* <p>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 <code>maintain</code>, you can specify a target capacity of 0 and add
* capacity later.</p>
*/
inline void SetOnDemandTargetCapacity(int value) { m_onDemandTargetCapacityHasBeenSet = true; m_onDemandTargetCapacity = value; }
/**
* <p>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 <code>maintain</code>, you can specify a target capacity of 0 and add
* capacity later.</p>
*/
inline SpotFleetRequestConfigData& WithOnDemandTargetCapacity(int value) { SetOnDemandTargetCapacity(value); return *this;}
/**
* <p>The maximum amount per hour for On-Demand Instances that you're willing to
* pay. You can use the <code>onDemandMaxTotalPrice</code> parameter, the
* <code>spotMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline const Aws::String& GetOnDemandMaxTotalPrice() const{ return m_onDemandMaxTotalPrice; }
/**
* <p>The maximum amount per hour for On-Demand Instances that you're willing to
* pay. You can use the <code>onDemandMaxTotalPrice</code> parameter, the
* <code>spotMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline bool OnDemandMaxTotalPriceHasBeenSet() const { return m_onDemandMaxTotalPriceHasBeenSet; }
/**
* <p>The maximum amount per hour for On-Demand Instances that you're willing to
* pay. You can use the <code>onDemandMaxTotalPrice</code> parameter, the
* <code>spotMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline void SetOnDemandMaxTotalPrice(const Aws::String& value) { m_onDemandMaxTotalPriceHasBeenSet = true; m_onDemandMaxTotalPrice = value; }
/**
* <p>The maximum amount per hour for On-Demand Instances that you're willing to
* pay. You can use the <code>onDemandMaxTotalPrice</code> parameter, the
* <code>spotMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline void SetOnDemandMaxTotalPrice(Aws::String&& value) { m_onDemandMaxTotalPriceHasBeenSet = true; m_onDemandMaxTotalPrice = std::move(value); }
/**
* <p>The maximum amount per hour for On-Demand Instances that you're willing to
* pay. You can use the <code>onDemandMaxTotalPrice</code> parameter, the
* <code>spotMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline void SetOnDemandMaxTotalPrice(const char* value) { m_onDemandMaxTotalPriceHasBeenSet = true; m_onDemandMaxTotalPrice.assign(value); }
/**
* <p>The maximum amount per hour for On-Demand Instances that you're willing to
* pay. You can use the <code>onDemandMaxTotalPrice</code> parameter, the
* <code>spotMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline SpotFleetRequestConfigData& WithOnDemandMaxTotalPrice(const Aws::String& value) { SetOnDemandMaxTotalPrice(value); return *this;}
/**
* <p>The maximum amount per hour for On-Demand Instances that you're willing to
* pay. You can use the <code>onDemandMaxTotalPrice</code> parameter, the
* <code>spotMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline SpotFleetRequestConfigData& WithOnDemandMaxTotalPrice(Aws::String&& value) { SetOnDemandMaxTotalPrice(std::move(value)); return *this;}
/**
* <p>The maximum amount per hour for On-Demand Instances that you're willing to
* pay. You can use the <code>onDemandMaxTotalPrice</code> parameter, the
* <code>spotMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline SpotFleetRequestConfigData& WithOnDemandMaxTotalPrice(const char* value) { SetOnDemandMaxTotalPrice(value); return *this;}
/**
* <p>The maximum amount per hour for Spot Instances that you're willing to pay.
* You can use the <code>spotdMaxTotalPrice</code> parameter, the
* <code>onDemandMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline const Aws::String& GetSpotMaxTotalPrice() const{ return m_spotMaxTotalPrice; }
/**
* <p>The maximum amount per hour for Spot Instances that you're willing to pay.
* You can use the <code>spotdMaxTotalPrice</code> parameter, the
* <code>onDemandMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline bool SpotMaxTotalPriceHasBeenSet() const { return m_spotMaxTotalPriceHasBeenSet; }
/**
* <p>The maximum amount per hour for Spot Instances that you're willing to pay.
* You can use the <code>spotdMaxTotalPrice</code> parameter, the
* <code>onDemandMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline void SetSpotMaxTotalPrice(const Aws::String& value) { m_spotMaxTotalPriceHasBeenSet = true; m_spotMaxTotalPrice = value; }
/**
* <p>The maximum amount per hour for Spot Instances that you're willing to pay.
* You can use the <code>spotdMaxTotalPrice</code> parameter, the
* <code>onDemandMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline void SetSpotMaxTotalPrice(Aws::String&& value) { m_spotMaxTotalPriceHasBeenSet = true; m_spotMaxTotalPrice = std::move(value); }
/**
* <p>The maximum amount per hour for Spot Instances that you're willing to pay.
* You can use the <code>spotdMaxTotalPrice</code> parameter, the
* <code>onDemandMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline void SetSpotMaxTotalPrice(const char* value) { m_spotMaxTotalPriceHasBeenSet = true; m_spotMaxTotalPrice.assign(value); }
/**
* <p>The maximum amount per hour for Spot Instances that you're willing to pay.
* You can use the <code>spotdMaxTotalPrice</code> parameter, the
* <code>onDemandMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline SpotFleetRequestConfigData& WithSpotMaxTotalPrice(const Aws::String& value) { SetSpotMaxTotalPrice(value); return *this;}
/**
* <p>The maximum amount per hour for Spot Instances that you're willing to pay.
* You can use the <code>spotdMaxTotalPrice</code> parameter, the
* <code>onDemandMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline SpotFleetRequestConfigData& WithSpotMaxTotalPrice(Aws::String&& value) { SetSpotMaxTotalPrice(std::move(value)); return *this;}
/**
* <p>The maximum amount per hour for Spot Instances that you're willing to pay.
* You can use the <code>spotdMaxTotalPrice</code> parameter, the
* <code>onDemandMaxTotalPrice</code> 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 hasnt met the target capacity.</p>
*/
inline SpotFleetRequestConfigData& WithSpotMaxTotalPrice(const char* value) { SetSpotMaxTotalPrice(value); return *this;}
/**
* <p>Indicates whether running Spot Instances are terminated when the Spot Fleet
* request expires.</p>
*/
inline bool GetTerminateInstancesWithExpiration() const{ return m_terminateInstancesWithExpiration; }
/**
* <p>Indicates whether running Spot Instances are terminated when the Spot Fleet
* request expires.</p>
*/
inline bool TerminateInstancesWithExpirationHasBeenSet() const { return m_terminateInstancesWithExpirationHasBeenSet; }
/**
* <p>Indicates whether running Spot Instances are terminated when the Spot Fleet
* request expires.</p>
*/
inline void SetTerminateInstancesWithExpiration(bool value) { m_terminateInstancesWithExpirationHasBeenSet = true; m_terminateInstancesWithExpiration = value; }
/**
* <p>Indicates whether running Spot Instances are terminated when the Spot Fleet
* request expires.</p>
*/
inline SpotFleetRequestConfigData& WithTerminateInstancesWithExpiration(bool value) { SetTerminateInstancesWithExpiration(value); return *this;}
/**
* <p>The type of request. Indicates whether the Spot Fleet only requests the
* target capacity or also attempts to maintain it. When this value is
* <code>request</code>, 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 <code>maintain</code>, the Spot Fleet maintains the target
* capacity. The Spot Fleet places the required requests to meet capacity and
* automatically replenishes any interrupted instances. Default:
* <code>maintain</code>. <code>instant</code> is listed but is not used by Spot
* Fleet.</p>
*/
inline const FleetType& GetType() const{ return m_type; }
/**
* <p>The type of request. Indicates whether the Spot Fleet only requests the
* target capacity or also attempts to maintain it. When this value is
* <code>request</code>, 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 <code>maintain</code>, the Spot Fleet maintains the target
* capacity. The Spot Fleet places the required requests to meet capacity and
* automatically replenishes any interrupted instances. Default:
* <code>maintain</code>. <code>instant</code> is listed but is not used by Spot
* Fleet.</p>
*/
inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
/**
* <p>The type of request. Indicates whether the Spot Fleet only requests the
* target capacity or also attempts to maintain it. When this value is
* <code>request</code>, 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 <code>maintain</code>, the Spot Fleet maintains the target
* capacity. The Spot Fleet places the required requests to meet capacity and
* automatically replenishes any interrupted instances. Default:
* <code>maintain</code>. <code>instant</code> is listed but is not used by Spot
* Fleet.</p>
*/
inline void SetType(const FleetType& value) { m_typeHasBeenSet = true; m_type = value; }
/**
* <p>The type of request. Indicates whether the Spot Fleet only requests the
* target capacity or also attempts to maintain it. When this value is
* <code>request</code>, 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 <code>maintain</code>, the Spot Fleet maintains the target
* capacity. The Spot Fleet places the required requests to meet capacity and
* automatically replenishes any interrupted instances. Default:
* <code>maintain</code>. <code>instant</code> is listed but is not used by Spot
* Fleet.</p>
*/
inline void SetType(FleetType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); }
/**
* <p>The type of request. Indicates whether the Spot Fleet only requests the
* target capacity or also attempts to maintain it. When this value is
* <code>request</code>, 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 <code>maintain</code>, the Spot Fleet maintains the target
* capacity. The Spot Fleet places the required requests to meet capacity and
* automatically replenishes any interrupted instances. Default:
* <code>maintain</code>. <code>instant</code> is listed but is not used by Spot
* Fleet.</p>
*/
inline SpotFleetRequestConfigData& WithType(const FleetType& value) { SetType(value); return *this;}
/**
* <p>The type of request. Indicates whether the Spot Fleet only requests the
* target capacity or also attempts to maintain it. When this value is
* <code>request</code>, 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 <code>maintain</code>, the Spot Fleet maintains the target
* capacity. The Spot Fleet places the required requests to meet capacity and
* automatically replenishes any interrupted instances. Default:
* <code>maintain</code>. <code>instant</code> is listed but is not used by Spot
* Fleet.</p>
*/
inline SpotFleetRequestConfigData& WithType(FleetType&& value) { SetType(std::move(value)); return *this;}
/**
* <p>The start date and time of the request, in UTC format
* (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). By default,
* Amazon EC2 starts fulfilling the request immediately.</p>
*/
inline const Aws::Utils::DateTime& GetValidFrom() const{ return m_validFrom; }
/**
* <p>The start date and time of the request, in UTC format
* (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). By default,
* Amazon EC2 starts fulfilling the request immediately.</p>
*/
inline bool ValidFromHasBeenSet() const { return m_validFromHasBeenSet; }
/**
* <p>The start date and time of the request, in UTC format
* (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). By default,
* Amazon EC2 starts fulfilling the request immediately.</p>
*/
inline void SetValidFrom(const Aws::Utils::DateTime& value) { m_validFromHasBeenSet = true; m_validFrom = value; }
/**
* <p>The start date and time of the request, in UTC format
* (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). By default,
* Amazon EC2 starts fulfilling the request immediately.</p>
*/
inline void SetValidFrom(Aws::Utils::DateTime&& value) { m_validFromHasBeenSet = true; m_validFrom = std::move(value); }
/**
* <p>The start date and time of the request, in UTC format
* (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). By default,
* Amazon EC2 starts fulfilling the request immediately.</p>
*/
inline SpotFleetRequestConfigData& WithValidFrom(const Aws::Utils::DateTime& value) { SetValidFrom(value); return *this;}
/**
* <p>The start date and time of the request, in UTC format
* (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). By default,
* Amazon EC2 starts fulfilling the request immediately.</p>
*/
inline SpotFleetRequestConfigData& WithValidFrom(Aws::Utils::DateTime&& value) { SetValidFrom(std::move(value)); return *this;}
/**
* <p>The end date and time of the request, in UTC format
* (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). 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.</p>
*/
inline const Aws::Utils::DateTime& GetValidUntil() const{ return m_validUntil; }
/**
* <p>The end date and time of the request, in UTC format
* (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). 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.</p>
*/
inline bool ValidUntilHasBeenSet() const { return m_validUntilHasBeenSet; }
/**
* <p>The end date and time of the request, in UTC format
* (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). 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.</p>
*/
inline void SetValidUntil(const Aws::Utils::DateTime& value) { m_validUntilHasBeenSet = true; m_validUntil = value; }
/**
* <p>The end date and time of the request, in UTC format
* (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). 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.</p>
*/
inline void SetValidUntil(Aws::Utils::DateTime&& value) { m_validUntilHasBeenSet = true; m_validUntil = std::move(value); }
/**
* <p>The end date and time of the request, in UTC format
* (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). 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.</p>
*/
inline SpotFleetRequestConfigData& WithValidUntil(const Aws::Utils::DateTime& value) { SetValidUntil(value); return *this;}
/**
* <p>The end date and time of the request, in UTC format
* (<i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z). 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.</p>
*/
inline SpotFleetRequestConfigData& WithValidUntil(Aws::Utils::DateTime&& value) { SetValidUntil(std::move(value)); return *this;}
/**
* <p>Indicates whether Spot Fleet should replace unhealthy instances.</p>
*/
inline bool GetReplaceUnhealthyInstances() const{ return m_replaceUnhealthyInstances; }
/**
* <p>Indicates whether Spot Fleet should replace unhealthy instances.</p>
*/
inline bool ReplaceUnhealthyInstancesHasBeenSet() const { return m_replaceUnhealthyInstancesHasBeenSet; }
/**
* <p>Indicates whether Spot Fleet should replace unhealthy instances.</p>
*/
inline void SetReplaceUnhealthyInstances(bool value) { m_replaceUnhealthyInstancesHasBeenSet = true; m_replaceUnhealthyInstances = value; }
/**
* <p>Indicates whether Spot Fleet should replace unhealthy instances.</p>
*/
inline SpotFleetRequestConfigData& WithReplaceUnhealthyInstances(bool value) { SetReplaceUnhealthyInstances(value); return *this;}
/**
* <p>The behavior when a Spot Instance is interrupted. The default is
* <code>terminate</code>.</p>
*/
inline const InstanceInterruptionBehavior& GetInstanceInterruptionBehavior() const{ return m_instanceInterruptionBehavior; }
/**
* <p>The behavior when a Spot Instance is interrupted. The default is
* <code>terminate</code>.</p>
*/
inline bool InstanceInterruptionBehaviorHasBeenSet() const { return m_instanceInterruptionBehaviorHasBeenSet; }
/**
* <p>The behavior when a Spot Instance is interrupted. The default is
* <code>terminate</code>.</p>
*/
inline void SetInstanceInterruptionBehavior(const InstanceInterruptionBehavior& value) { m_instanceInterruptionBehaviorHasBeenSet = true; m_instanceInterruptionBehavior = value; }
/**
* <p>The behavior when a Spot Instance is interrupted. The default is
* <code>terminate</code>.</p>
*/
inline void SetInstanceInterruptionBehavior(InstanceInterruptionBehavior&& value) { m_instanceInterruptionBehaviorHasBeenSet = true; m_instanceInterruptionBehavior = std::move(value); }
/**
* <p>The behavior when a Spot Instance is interrupted. The default is
* <code>terminate</code>.</p>
*/
inline SpotFleetRequestConfigData& WithInstanceInterruptionBehavior(const InstanceInterruptionBehavior& value) { SetInstanceInterruptionBehavior(value); return *this;}
/**
* <p>The behavior when a Spot Instance is interrupted. The default is
* <code>terminate</code>.</p>
*/
inline SpotFleetRequestConfigData& WithInstanceInterruptionBehavior(InstanceInterruptionBehavior&& value) { SetInstanceInterruptionBehavior(std::move(value)); return *this;}
/**
* <p>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.</p> <p>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.</p>
*/
inline const LoadBalancersConfig& GetLoadBalancersConfig() const{ return m_loadBalancersConfig; }
/**
* <p>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.</p> <p>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.</p>
*/
inline bool LoadBalancersConfigHasBeenSet() const { return m_loadBalancersConfigHasBeenSet; }
/**
* <p>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.</p> <p>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.</p>
*/
inline void SetLoadBalancersConfig(const LoadBalancersConfig& value) { m_loadBalancersConfigHasBeenSet = true; m_loadBalancersConfig = value; }
/**
* <p>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.</p> <p>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.</p>
*/
inline void SetLoadBalancersConfig(LoadBalancersConfig&& value) { m_loadBalancersConfigHasBeenSet = true; m_loadBalancersConfig = std::move(value); }
/**
* <p>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.</p> <p>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.</p>
*/
inline SpotFleetRequestConfigData& WithLoadBalancersConfig(const LoadBalancersConfig& value) { SetLoadBalancersConfig(value); return *this;}
/**
* <p>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.</p> <p>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.</p>
*/
inline SpotFleetRequestConfigData& WithLoadBalancersConfig(LoadBalancersConfig&& value) { SetLoadBalancersConfig(std::move(value)); return *this;}
/**
* <p>The number of Spot pools across which to allocate your target Spot capacity.
* Valid only when Spot <b>AllocationStrategy</b> is set to
* <code>lowest-price</code>. Spot Fleet selects the cheapest Spot pools and evenly
* allocates your target Spot capacity across the number of Spot pools that you
* specify.</p>
*/
inline int GetInstancePoolsToUseCount() const{ return m_instancePoolsToUseCount; }
/**
* <p>The number of Spot pools across which to allocate your target Spot capacity.
* Valid only when Spot <b>AllocationStrategy</b> is set to
* <code>lowest-price</code>. Spot Fleet selects the cheapest Spot pools and evenly
* allocates your target Spot capacity across the number of Spot pools that you
* specify.</p>
*/
inline bool InstancePoolsToUseCountHasBeenSet() const { return m_instancePoolsToUseCountHasBeenSet; }
/**
* <p>The number of Spot pools across which to allocate your target Spot capacity.
* Valid only when Spot <b>AllocationStrategy</b> is set to
* <code>lowest-price</code>. Spot Fleet selects the cheapest Spot pools and evenly
* allocates your target Spot capacity across the number of Spot pools that you
* specify.</p>
*/
inline void SetInstancePoolsToUseCount(int value) { m_instancePoolsToUseCountHasBeenSet = true; m_instancePoolsToUseCount = value; }
/**
* <p>The number of Spot pools across which to allocate your target Spot capacity.
* Valid only when Spot <b>AllocationStrategy</b> is set to
* <code>lowest-price</code>. Spot Fleet selects the cheapest Spot pools and evenly
* allocates your target Spot capacity across the number of Spot pools that you
* specify.</p>
*/
inline SpotFleetRequestConfigData& WithInstancePoolsToUseCount(int value) { SetInstancePoolsToUseCount(value); return *this;}
/**
* <p>The key-value pair for tagging the Spot Fleet request on creation. The value
* for <code>ResourceType</code> must be <code>spot-fleet-request</code>, otherwise
* the Spot Fleet request fails. To tag instances at launch, specify the tags in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template">launch
* template</a> (valid only if you use <code>LaunchTemplateConfigs</code>) or in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html">
* <code>SpotFleetTagSpecification</code> </a> (valid only if you use
* <code>LaunchSpecifications</code>). For information about tagging after launch,
* see <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources">Tagging
* Your Resources</a>.</p>
*/
inline const Aws::Vector<TagSpecification>& GetTagSpecifications() const{ return m_tagSpecifications; }
/**
* <p>The key-value pair for tagging the Spot Fleet request on creation. The value
* for <code>ResourceType</code> must be <code>spot-fleet-request</code>, otherwise
* the Spot Fleet request fails. To tag instances at launch, specify the tags in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template">launch
* template</a> (valid only if you use <code>LaunchTemplateConfigs</code>) or in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html">
* <code>SpotFleetTagSpecification</code> </a> (valid only if you use
* <code>LaunchSpecifications</code>). For information about tagging after launch,
* see <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources">Tagging
* Your Resources</a>.</p>
*/
inline bool TagSpecificationsHasBeenSet() const { return m_tagSpecificationsHasBeenSet; }
/**
* <p>The key-value pair for tagging the Spot Fleet request on creation. The value
* for <code>ResourceType</code> must be <code>spot-fleet-request</code>, otherwise
* the Spot Fleet request fails. To tag instances at launch, specify the tags in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template">launch
* template</a> (valid only if you use <code>LaunchTemplateConfigs</code>) or in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html">
* <code>SpotFleetTagSpecification</code> </a> (valid only if you use
* <code>LaunchSpecifications</code>). For information about tagging after launch,
* see <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources">Tagging
* Your Resources</a>.</p>
*/
inline void SetTagSpecifications(const Aws::Vector<TagSpecification>& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = value; }
/**
* <p>The key-value pair for tagging the Spot Fleet request on creation. The value
* for <code>ResourceType</code> must be <code>spot-fleet-request</code>, otherwise
* the Spot Fleet request fails. To tag instances at launch, specify the tags in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template">launch
* template</a> (valid only if you use <code>LaunchTemplateConfigs</code>) or in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html">
* <code>SpotFleetTagSpecification</code> </a> (valid only if you use
* <code>LaunchSpecifications</code>). For information about tagging after launch,
* see <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources">Tagging
* Your Resources</a>.</p>
*/
inline void SetTagSpecifications(Aws::Vector<TagSpecification>&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = std::move(value); }
/**
* <p>The key-value pair for tagging the Spot Fleet request on creation. The value
* for <code>ResourceType</code> must be <code>spot-fleet-request</code>, otherwise
* the Spot Fleet request fails. To tag instances at launch, specify the tags in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template">launch
* template</a> (valid only if you use <code>LaunchTemplateConfigs</code>) or in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html">
* <code>SpotFleetTagSpecification</code> </a> (valid only if you use
* <code>LaunchSpecifications</code>). For information about tagging after launch,
* see <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources">Tagging
* Your Resources</a>.</p>
*/
inline SpotFleetRequestConfigData& WithTagSpecifications(const Aws::Vector<TagSpecification>& value) { SetTagSpecifications(value); return *this;}
/**
* <p>The key-value pair for tagging the Spot Fleet request on creation. The value
* for <code>ResourceType</code> must be <code>spot-fleet-request</code>, otherwise
* the Spot Fleet request fails. To tag instances at launch, specify the tags in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template">launch
* template</a> (valid only if you use <code>LaunchTemplateConfigs</code>) or in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html">
* <code>SpotFleetTagSpecification</code> </a> (valid only if you use
* <code>LaunchSpecifications</code>). For information about tagging after launch,
* see <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources">Tagging
* Your Resources</a>.</p>
*/
inline SpotFleetRequestConfigData& WithTagSpecifications(Aws::Vector<TagSpecification>&& value) { SetTagSpecifications(std::move(value)); return *this;}
/**
* <p>The key-value pair for tagging the Spot Fleet request on creation. The value
* for <code>ResourceType</code> must be <code>spot-fleet-request</code>, otherwise
* the Spot Fleet request fails. To tag instances at launch, specify the tags in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template">launch
* template</a> (valid only if you use <code>LaunchTemplateConfigs</code>) or in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html">
* <code>SpotFleetTagSpecification</code> </a> (valid only if you use
* <code>LaunchSpecifications</code>). For information about tagging after launch,
* see <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources">Tagging
* Your Resources</a>.</p>
*/
inline SpotFleetRequestConfigData& AddTagSpecifications(const TagSpecification& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(value); return *this; }
/**
* <p>The key-value pair for tagging the Spot Fleet request on creation. The value
* for <code>ResourceType</code> must be <code>spot-fleet-request</code>, otherwise
* the Spot Fleet request fails. To tag instances at launch, specify the tags in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template">launch
* template</a> (valid only if you use <code>LaunchTemplateConfigs</code>) or in
* the <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html">
* <code>SpotFleetTagSpecification</code> </a> (valid only if you use
* <code>LaunchSpecifications</code>). For information about tagging after launch,
* see <a
* href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources">Tagging
* Your Resources</a>.</p>
*/
inline SpotFleetRequestConfigData& AddTagSpecifications(TagSpecification&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(std::move(value)); return *this; }
private:
AllocationStrategy m_allocationStrategy;
bool m_allocationStrategyHasBeenSet;
OnDemandAllocationStrategy m_onDemandAllocationStrategy;
bool m_onDemandAllocationStrategyHasBeenSet;
Aws::String m_clientToken;
bool m_clientTokenHasBeenSet;
ExcessCapacityTerminationPolicy m_excessCapacityTerminationPolicy;
bool m_excessCapacityTerminationPolicyHasBeenSet;
double m_fulfilledCapacity;
bool m_fulfilledCapacityHasBeenSet;
double m_onDemandFulfilledCapacity;
bool m_onDemandFulfilledCapacityHasBeenSet;
Aws::String m_iamFleetRole;
bool m_iamFleetRoleHasBeenSet;
Aws::Vector<SpotFleetLaunchSpecification> m_launchSpecifications;
bool m_launchSpecificationsHasBeenSet;
Aws::Vector<LaunchTemplateConfig> m_launchTemplateConfigs;
bool m_launchTemplateConfigsHasBeenSet;
Aws::String m_spotPrice;
bool m_spotPriceHasBeenSet;
int m_targetCapacity;
bool m_targetCapacityHasBeenSet;
int m_onDemandTargetCapacity;
bool m_onDemandTargetCapacityHasBeenSet;
Aws::String m_onDemandMaxTotalPrice;
bool m_onDemandMaxTotalPriceHasBeenSet;
Aws::String m_spotMaxTotalPrice;
bool m_spotMaxTotalPriceHasBeenSet;
bool m_terminateInstancesWithExpiration;
bool m_terminateInstancesWithExpirationHasBeenSet;
FleetType m_type;
bool m_typeHasBeenSet;
Aws::Utils::DateTime m_validFrom;
bool m_validFromHasBeenSet;
Aws::Utils::DateTime m_validUntil;
bool m_validUntilHasBeenSet;
bool m_replaceUnhealthyInstances;
bool m_replaceUnhealthyInstancesHasBeenSet;
InstanceInterruptionBehavior m_instanceInterruptionBehavior;
bool m_instanceInterruptionBehaviorHasBeenSet;
LoadBalancersConfig m_loadBalancersConfig;
bool m_loadBalancersConfigHasBeenSet;
int m_instancePoolsToUseCount;
bool m_instancePoolsToUseCountHasBeenSet;
Aws::Vector<TagSpecification> m_tagSpecifications;
bool m_tagSpecificationsHasBeenSet;
};
} // namespace Model
} // namespace EC2
} // namespace Aws