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

Provides details about the market (purchasing) options for Spot Instances. *

See Also:

AWS * API Reference

*/ class AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails { public: AWS_SECURITYHUB_API AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails(); AWS_SECURITYHUB_API AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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 AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails& WithBlockDurationMinutes(int value) { SetBlockDurationMinutes(value); return *this;} /** *

The behavior when a Spot Instance is interrupted.

*/ inline const Aws::String& 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 Aws::String& value) { m_instanceInterruptionBehaviorHasBeenSet = true; m_instanceInterruptionBehavior = value; } /** *

The behavior when a Spot Instance is interrupted.

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

The behavior when a Spot Instance is interrupted.

*/ inline void SetInstanceInterruptionBehavior(const char* value) { m_instanceInterruptionBehaviorHasBeenSet = true; m_instanceInterruptionBehavior.assign(value); } /** *

The behavior when a Spot Instance is interrupted.

*/ inline AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails& WithInstanceInterruptionBehavior(const Aws::String& value) { SetInstanceInterruptionBehavior(value); return *this;} /** *

The behavior when a Spot Instance is interrupted.

*/ inline AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails& WithInstanceInterruptionBehavior(Aws::String&& value) { SetInstanceInterruptionBehavior(std::move(value)); return *this;} /** *

The behavior when a Spot Instance is interrupted.

*/ inline AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails& WithInstanceInterruptionBehavior(const char* value) { SetInstanceInterruptionBehavior(value); return *this;} /** *

The maximum hourly price you're willing to pay for the Spot Instances.

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

The maximum hourly price you're willing to pay for the Spot Instances.

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

The maximum hourly price you're willing to pay for the Spot Instances.

*/ 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.

*/ 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.

*/ 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.

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

The maximum hourly price you're willing to pay for the Spot Instances.

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

The maximum hourly price you're willing to pay for the Spot Instances.

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

The Spot Instance request type.

*/ inline const Aws::String& 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 Aws::String& value) { m_spotInstanceTypeHasBeenSet = true; m_spotInstanceType = value; } /** *

The Spot Instance request type.

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

The Spot Instance request type.

*/ inline void SetSpotInstanceType(const char* value) { m_spotInstanceTypeHasBeenSet = true; m_spotInstanceType.assign(value); } /** *

The Spot Instance request type.

*/ inline AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails& WithSpotInstanceType(const Aws::String& value) { SetSpotInstanceType(value); return *this;} /** *

The Spot Instance request type.

*/ inline AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails& WithSpotInstanceType(Aws::String&& value) { SetSpotInstanceType(std::move(value)); return *this;} /** *

The Spot Instance request type.

*/ inline AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails& WithSpotInstanceType(const char* value) { SetSpotInstanceType(value); return *this;} /** *

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

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

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

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

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

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

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

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

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

*/ inline void SetValidUntil(const char* value) { m_validUntilHasBeenSet = true; m_validUntil.assign(value); } /** *

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

*/ inline AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails& WithValidUntil(const Aws::String& value) { SetValidUntil(value); return *this;} /** *

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

*/ inline AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails& WithValidUntil(Aws::String&& value) { SetValidUntil(std::move(value)); return *this;} /** *

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

*/ inline AwsEc2LaunchTemplateDataInstanceMarketOptionsSpotOptionsDetails& WithValidUntil(const char* value) { SetValidUntil(value); return *this;} private: int m_blockDurationMinutes; bool m_blockDurationMinutesHasBeenSet = false; Aws::String m_instanceInterruptionBehavior; bool m_instanceInterruptionBehaviorHasBeenSet = false; Aws::String m_maxPrice; bool m_maxPriceHasBeenSet = false; Aws::String m_spotInstanceType; bool m_spotInstanceTypeHasBeenSet = false; Aws::String m_validUntil; bool m_validUntilHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws