/** * 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 namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

The options for Spot Instances.

See Also:

AWS * API Reference

*/ class LaunchTemplateSpotMarketOptions { public: AWS_EC2_API LaunchTemplateSpotMarketOptions(); AWS_EC2_API LaunchTemplateSpotMarketOptions(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API LaunchTemplateSpotMarketOptions& 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 maximum hourly price you're willing to pay for the Spot Instances. 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 Spot * Instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline const Aws::String& GetMaxPrice() const{ return m_maxPrice; } /** *

The maximum hourly price you're willing to pay for the Spot Instances. 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 Spot * Instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline bool MaxPriceHasBeenSet() const { return m_maxPriceHasBeenSet; } /** *

The maximum hourly price you're willing to pay for the Spot Instances. 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 Spot * Instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline void SetMaxPrice(const Aws::String& value) { m_maxPriceHasBeenSet = true; m_maxPrice = value; } /** *

The maximum hourly price you're willing to pay for the Spot Instances. 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 Spot * Instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline void SetMaxPrice(Aws::String&& value) { m_maxPriceHasBeenSet = true; m_maxPrice = std::move(value); } /** *

The maximum hourly price you're willing to pay for the Spot Instances. 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 Spot * Instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline void SetMaxPrice(const char* value) { m_maxPriceHasBeenSet = true; m_maxPrice.assign(value); } /** *

The maximum hourly price you're willing to pay for the Spot Instances. 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 Spot * Instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline LaunchTemplateSpotMarketOptions& WithMaxPrice(const Aws::String& value) { SetMaxPrice(value); return *this;} /** *

The maximum hourly price you're willing to pay for the Spot Instances. 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 Spot * Instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline LaunchTemplateSpotMarketOptions& WithMaxPrice(Aws::String&& value) { SetMaxPrice(std::move(value)); return *this;} /** *

The maximum hourly price you're willing to pay for the Spot Instances. 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 Spot * Instances will be interrupted more frequently than if you do not specify this * parameter.

*/ inline LaunchTemplateSpotMarketOptions& WithMaxPrice(const char* value) { SetMaxPrice(value); return *this;} /** *

The Spot Instance request type.

*/ inline const SpotInstanceType& GetSpotInstanceType() const{ return m_spotInstanceType; } /** *

The Spot Instance request type.

*/ inline bool SpotInstanceTypeHasBeenSet() const { return m_spotInstanceTypeHasBeenSet; } /** *

The Spot Instance request type.

*/ inline void SetSpotInstanceType(const SpotInstanceType& value) { m_spotInstanceTypeHasBeenSet = true; m_spotInstanceType = value; } /** *

The Spot Instance request type.

*/ inline void SetSpotInstanceType(SpotInstanceType&& value) { m_spotInstanceTypeHasBeenSet = true; m_spotInstanceType = std::move(value); } /** *

The Spot Instance request type.

*/ inline LaunchTemplateSpotMarketOptions& WithSpotInstanceType(const SpotInstanceType& value) { SetSpotInstanceType(value); return *this;} /** *

The Spot Instance request type.

*/ inline LaunchTemplateSpotMarketOptions& WithSpotInstanceType(SpotInstanceType&& value) { SetSpotInstanceType(std::move(value)); return *this;} /** *

The required duration for the Spot Instances (also known as Spot blocks), in * minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or * 360).

*/ inline int GetBlockDurationMinutes() const{ return m_blockDurationMinutes; } /** *

The required duration for the Spot Instances (also known as Spot blocks), in * minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or * 360).

*/ inline bool BlockDurationMinutesHasBeenSet() const { return m_blockDurationMinutesHasBeenSet; } /** *

The required duration for the Spot Instances (also known as Spot blocks), in * minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or * 360).

*/ inline void SetBlockDurationMinutes(int value) { m_blockDurationMinutesHasBeenSet = true; m_blockDurationMinutes = value; } /** *

The required duration for the Spot Instances (also known as Spot blocks), in * minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or * 360).

*/ inline LaunchTemplateSpotMarketOptions& WithBlockDurationMinutes(int value) { SetBlockDurationMinutes(value); return *this;} /** *

The end date of the request. For a one-time request, the request remains * active until all instances launch, the request is canceled, or this date is * reached. If the request is persistent, it remains active until it is canceled or * this date and time is reached.

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

The end date of the request. For a one-time request, the request remains * active until all instances launch, the request is canceled, or this date is * reached. If the request is persistent, it remains active until it is canceled or * this date and time is reached.

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

The end date of the request. For a one-time request, the request remains * active until all instances launch, the request is canceled, or this date is * reached. If the request is persistent, it remains active until it is canceled or * this date and time is reached.

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

The end date of the request. For a one-time request, the request remains * active until all instances launch, the request is canceled, or this date is * reached. If the request is persistent, it remains active until it is canceled or * this date and time is reached.

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

The end date of the request. For a one-time request, the request remains * active until all instances launch, the request is canceled, or this date is * reached. If the request is persistent, it remains active until it is canceled or * this date and time is reached.

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

The end date of the request. For a one-time request, the request remains * active until all instances launch, the request is canceled, or this date is * reached. If the request is persistent, it remains active until it is canceled or * this date and time is reached.

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

The behavior when a Spot Instance is interrupted.

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

The behavior when a Spot Instance is interrupted.

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

The behavior when a Spot Instance is interrupted.

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

The behavior when a Spot Instance is interrupted.

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

The behavior when a Spot Instance is interrupted.

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

The behavior when a Spot Instance is interrupted.

*/ inline LaunchTemplateSpotMarketOptions& WithInstanceInterruptionBehavior(InstanceInterruptionBehavior&& value) { SetInstanceInterruptionBehavior(std::move(value)); return *this;} private: Aws::String m_maxPrice; bool m_maxPriceHasBeenSet = false; SpotInstanceType m_spotInstanceType; bool m_spotInstanceTypeHasBeenSet = false; int m_blockDurationMinutes; bool m_blockDurationMinutesHasBeenSet = false; Aws::Utils::DateTime m_validUntil; bool m_validUntilHasBeenSet = false; InstanceInterruptionBehavior m_instanceInterruptionBehavior; bool m_instanceInterruptionBehaviorHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws