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

Information about the instances distribution.

See Also:

AWS * API Reference

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

How to allocate instance types to fulfill On-Demand capacity. The valid value * is prioritized.

*/ inline const Aws::String& GetOnDemandAllocationStrategy() const{ return m_onDemandAllocationStrategy; } /** *

How to allocate instance types to fulfill On-Demand capacity. The valid value * is prioritized.

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

How to allocate instance types to fulfill On-Demand capacity. The valid value * is prioritized.

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

How to allocate instance types to fulfill On-Demand capacity. The valid value * is prioritized.

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

How to allocate instance types to fulfill On-Demand capacity. The valid value * is prioritized.

*/ inline void SetOnDemandAllocationStrategy(const char* value) { m_onDemandAllocationStrategyHasBeenSet = true; m_onDemandAllocationStrategy.assign(value); } /** *

How to allocate instance types to fulfill On-Demand capacity. The valid value * is prioritized.

*/ inline AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails& WithOnDemandAllocationStrategy(const Aws::String& value) { SetOnDemandAllocationStrategy(value); return *this;} /** *

How to allocate instance types to fulfill On-Demand capacity. The valid value * is prioritized.

*/ inline AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails& WithOnDemandAllocationStrategy(Aws::String&& value) { SetOnDemandAllocationStrategy(std::move(value)); return *this;} /** *

How to allocate instance types to fulfill On-Demand capacity. The valid value * is prioritized.

*/ inline AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails& WithOnDemandAllocationStrategy(const char* value) { SetOnDemandAllocationStrategy(value); return *this;} /** *

The minimum amount of the Auto Scaling group's capacity that must be * fulfilled by On-Demand Instances.

*/ inline int GetOnDemandBaseCapacity() const{ return m_onDemandBaseCapacity; } /** *

The minimum amount of the Auto Scaling group's capacity that must be * fulfilled by On-Demand Instances.

*/ inline bool OnDemandBaseCapacityHasBeenSet() const { return m_onDemandBaseCapacityHasBeenSet; } /** *

The minimum amount of the Auto Scaling group's capacity that must be * fulfilled by On-Demand Instances.

*/ inline void SetOnDemandBaseCapacity(int value) { m_onDemandBaseCapacityHasBeenSet = true; m_onDemandBaseCapacity = value; } /** *

The minimum amount of the Auto Scaling group's capacity that must be * fulfilled by On-Demand Instances.

*/ inline AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails& WithOnDemandBaseCapacity(int value) { SetOnDemandBaseCapacity(value); return *this;} /** *

The percentage of On-Demand Instances and Spot Instances for additional * capacity beyond OnDemandBaseCapacity.

*/ inline int GetOnDemandPercentageAboveBaseCapacity() const{ return m_onDemandPercentageAboveBaseCapacity; } /** *

The percentage of On-Demand Instances and Spot Instances for additional * capacity beyond OnDemandBaseCapacity.

*/ inline bool OnDemandPercentageAboveBaseCapacityHasBeenSet() const { return m_onDemandPercentageAboveBaseCapacityHasBeenSet; } /** *

The percentage of On-Demand Instances and Spot Instances for additional * capacity beyond OnDemandBaseCapacity.

*/ inline void SetOnDemandPercentageAboveBaseCapacity(int value) { m_onDemandPercentageAboveBaseCapacityHasBeenSet = true; m_onDemandPercentageAboveBaseCapacity = value; } /** *

The percentage of On-Demand Instances and Spot Instances for additional * capacity beyond OnDemandBaseCapacity.

*/ inline AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails& WithOnDemandPercentageAboveBaseCapacity(int value) { SetOnDemandPercentageAboveBaseCapacity(value); return *this;} /** *

How to allocate instances across Spot Instance pools. Valid values are as * follows:

  • lowest-price

  • * capacity-optimized

  • * capacity-optimized-prioritized

*/ inline const Aws::String& GetSpotAllocationStrategy() const{ return m_spotAllocationStrategy; } /** *

How to allocate instances across Spot Instance pools. Valid values are as * follows:

  • lowest-price

  • * capacity-optimized

  • * capacity-optimized-prioritized

*/ inline bool SpotAllocationStrategyHasBeenSet() const { return m_spotAllocationStrategyHasBeenSet; } /** *

How to allocate instances across Spot Instance pools. Valid values are as * follows:

  • lowest-price

  • * capacity-optimized

  • * capacity-optimized-prioritized

*/ inline void SetSpotAllocationStrategy(const Aws::String& value) { m_spotAllocationStrategyHasBeenSet = true; m_spotAllocationStrategy = value; } /** *

How to allocate instances across Spot Instance pools. Valid values are as * follows:

  • lowest-price

  • * capacity-optimized

  • * capacity-optimized-prioritized

*/ inline void SetSpotAllocationStrategy(Aws::String&& value) { m_spotAllocationStrategyHasBeenSet = true; m_spotAllocationStrategy = std::move(value); } /** *

How to allocate instances across Spot Instance pools. Valid values are as * follows:

  • lowest-price

  • * capacity-optimized

  • * capacity-optimized-prioritized

*/ inline void SetSpotAllocationStrategy(const char* value) { m_spotAllocationStrategyHasBeenSet = true; m_spotAllocationStrategy.assign(value); } /** *

How to allocate instances across Spot Instance pools. Valid values are as * follows:

  • lowest-price

  • * capacity-optimized

  • * capacity-optimized-prioritized

*/ inline AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails& WithSpotAllocationStrategy(const Aws::String& value) { SetSpotAllocationStrategy(value); return *this;} /** *

How to allocate instances across Spot Instance pools. Valid values are as * follows:

  • lowest-price

  • * capacity-optimized

  • * capacity-optimized-prioritized

*/ inline AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails& WithSpotAllocationStrategy(Aws::String&& value) { SetSpotAllocationStrategy(std::move(value)); return *this;} /** *

How to allocate instances across Spot Instance pools. Valid values are as * follows:

  • lowest-price

  • * capacity-optimized

  • * capacity-optimized-prioritized

*/ inline AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails& WithSpotAllocationStrategy(const char* value) { SetSpotAllocationStrategy(value); return *this;} /** *

The number of Spot Instance pools across which to allocate your Spot * Instances.

*/ inline int GetSpotInstancePools() const{ return m_spotInstancePools; } /** *

The number of Spot Instance pools across which to allocate your Spot * Instances.

*/ inline bool SpotInstancePoolsHasBeenSet() const { return m_spotInstancePoolsHasBeenSet; } /** *

The number of Spot Instance pools across which to allocate your Spot * Instances.

*/ inline void SetSpotInstancePools(int value) { m_spotInstancePoolsHasBeenSet = true; m_spotInstancePools = value; } /** *

The number of Spot Instance pools across which to allocate your Spot * Instances.

*/ inline AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails& WithSpotInstancePools(int value) { SetSpotInstancePools(value); return *this;} /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance.

*/ inline const Aws::String& GetSpotMaxPrice() const{ return m_spotMaxPrice; } /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance.

*/ inline bool SpotMaxPriceHasBeenSet() const { return m_spotMaxPriceHasBeenSet; } /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance.

*/ inline void SetSpotMaxPrice(const Aws::String& value) { m_spotMaxPriceHasBeenSet = true; m_spotMaxPrice = value; } /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance.

*/ inline void SetSpotMaxPrice(Aws::String&& value) { m_spotMaxPriceHasBeenSet = true; m_spotMaxPrice = std::move(value); } /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance.

*/ inline void SetSpotMaxPrice(const char* value) { m_spotMaxPriceHasBeenSet = true; m_spotMaxPrice.assign(value); } /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance.

*/ inline AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails& WithSpotMaxPrice(const Aws::String& value) { SetSpotMaxPrice(value); return *this;} /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance.

*/ inline AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails& WithSpotMaxPrice(Aws::String&& value) { SetSpotMaxPrice(std::move(value)); return *this;} /** *

The maximum price per unit hour that you are willing to pay for a Spot * Instance.

*/ inline AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails& WithSpotMaxPrice(const char* value) { SetSpotMaxPrice(value); return *this;} private: Aws::String m_onDemandAllocationStrategy; bool m_onDemandAllocationStrategyHasBeenSet = false; int m_onDemandBaseCapacity; bool m_onDemandBaseCapacityHasBeenSet = false; int m_onDemandPercentageAboveBaseCapacity; bool m_onDemandPercentageAboveBaseCapacityHasBeenSet = false; Aws::String m_spotAllocationStrategy; bool m_spotAllocationStrategyHasBeenSet = false; int m_spotInstancePools; bool m_spotInstancePoolsHasBeenSet = false; Aws::String m_spotMaxPrice; bool m_spotMaxPriceHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws