/** * 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 SpotMarketOptions { public: AWS_EC2_API SpotMarketOptions(); AWS_EC2_API SpotMarketOptions(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API SpotMarketOptions& 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 that you're 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 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 that you're 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 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 that you're 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 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 that you're 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 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 that you're 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 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 that you're 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 Spot * Instances will be interrupted more frequently than if you do not specify this * parameter.

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

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

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

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

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

The Spot Instance request type. For RunInstances, * persistent Spot Instance requests are only supported when the instance * interruption behavior is either hibernate or stop.

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

The Spot Instance request type. For RunInstances, * persistent Spot Instance requests are only supported when the instance * interruption behavior is either hibernate or stop.

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

The Spot Instance request type. For RunInstances, * persistent Spot Instance requests are only supported when the instance * interruption behavior is either hibernate or stop.

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

The Spot Instance request type. For RunInstances, * persistent Spot Instance requests are only supported when the instance * interruption behavior is either hibernate or stop.

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

The Spot Instance request type. For RunInstances, * persistent Spot Instance requests are only supported when the instance * interruption behavior is either hibernate or stop.

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

The Spot Instance request type. For RunInstances, * persistent Spot Instance requests are only supported when the instance * interruption behavior is either hibernate or stop.

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

Deprecated.

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

Deprecated.

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

Deprecated.

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

Deprecated.

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

The end date of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). Supported only * for persistent requests.

  • For a persistent request, the request * remains active until the ValidUntil date and time is reached. * Otherwise, the request remains active until you cancel it.

  • For * a one-time request, ValidUntil is not supported. The request * remains active until all instances launch or you cancel the request.

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

The end date of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). Supported only * for persistent requests.

  • For a persistent request, the request * remains active until the ValidUntil date and time is reached. * Otherwise, the request remains active until you cancel it.

  • For * a one-time request, ValidUntil is not supported. The request * remains active until all instances launch or you cancel the request.

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

The end date of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). Supported only * for persistent requests.

  • For a persistent request, the request * remains active until the ValidUntil date and time is reached. * Otherwise, the request remains active until you cancel it.

  • For * a one-time request, ValidUntil is not supported. The request * remains active until all instances launch or you cancel the request.

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

The end date of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). Supported only * for persistent requests.

  • For a persistent request, the request * remains active until the ValidUntil date and time is reached. * Otherwise, the request remains active until you cancel it.

  • For * a one-time request, ValidUntil is not supported. The request * remains active until all instances launch or you cancel the request.

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

The end date of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). Supported only * for persistent requests.

  • For a persistent request, the request * remains active until the ValidUntil date and time is reached. * Otherwise, the request remains active until you cancel it.

  • For * a one-time request, ValidUntil is not supported. The request * remains active until all instances launch or you cancel the request.

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

The end date of the request, in UTC format * (YYYY-MM-DDTHH:MM:SSZ). Supported only * for persistent requests.

  • For a persistent request, the request * remains active until the ValidUntil date and time is reached. * Otherwise, the request remains active until you cancel it.

  • For * a one-time request, ValidUntil is not supported. The request * remains active until all instances launch or you cancel the request.

  • *
*/ inline SpotMarketOptions& WithValidUntil(Aws::Utils::DateTime&& value) { SetValidUntil(std::move(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 SpotMarketOptions& WithInstanceInterruptionBehavior(const InstanceInterruptionBehavior& value) { SetInstanceInterruptionBehavior(value); return *this;} /** *

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

*/ inline SpotMarketOptions& 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