/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The Amazon EC2 unit limits for a managed scaling policy. The managed scaling
* activity of a cluster can not be above or below these limits. The limit only
* applies to the core and task nodes. The master node cannot be scaled after
* initial configuration. See Also:
AWS
* API Reference
The unit type used for specifying a managed scaling policy.
*/ inline const ComputeLimitsUnitType& GetUnitType() const{ return m_unitType; } /** *The unit type used for specifying a managed scaling policy.
*/ inline bool UnitTypeHasBeenSet() const { return m_unitTypeHasBeenSet; } /** *The unit type used for specifying a managed scaling policy.
*/ inline void SetUnitType(const ComputeLimitsUnitType& value) { m_unitTypeHasBeenSet = true; m_unitType = value; } /** *The unit type used for specifying a managed scaling policy.
*/ inline void SetUnitType(ComputeLimitsUnitType&& value) { m_unitTypeHasBeenSet = true; m_unitType = std::move(value); } /** *The unit type used for specifying a managed scaling policy.
*/ inline ComputeLimits& WithUnitType(const ComputeLimitsUnitType& value) { SetUnitType(value); return *this;} /** *The unit type used for specifying a managed scaling policy.
*/ inline ComputeLimits& WithUnitType(ComputeLimitsUnitType&& value) { SetUnitType(std::move(value)); return *this;} /** *The lower boundary of Amazon EC2 units. It is measured through vCPU cores or * instances for instance groups and measured through units for instance fleets. * Managed scaling activities are not allowed beyond this boundary. The limit only * applies to the core and task nodes. The master node cannot be scaled after * initial configuration.
*/ inline int GetMinimumCapacityUnits() const{ return m_minimumCapacityUnits; } /** *The lower boundary of Amazon EC2 units. It is measured through vCPU cores or * instances for instance groups and measured through units for instance fleets. * Managed scaling activities are not allowed beyond this boundary. The limit only * applies to the core and task nodes. The master node cannot be scaled after * initial configuration.
*/ inline bool MinimumCapacityUnitsHasBeenSet() const { return m_minimumCapacityUnitsHasBeenSet; } /** *The lower boundary of Amazon EC2 units. It is measured through vCPU cores or * instances for instance groups and measured through units for instance fleets. * Managed scaling activities are not allowed beyond this boundary. The limit only * applies to the core and task nodes. The master node cannot be scaled after * initial configuration.
*/ inline void SetMinimumCapacityUnits(int value) { m_minimumCapacityUnitsHasBeenSet = true; m_minimumCapacityUnits = value; } /** *The lower boundary of Amazon EC2 units. It is measured through vCPU cores or * instances for instance groups and measured through units for instance fleets. * Managed scaling activities are not allowed beyond this boundary. The limit only * applies to the core and task nodes. The master node cannot be scaled after * initial configuration.
*/ inline ComputeLimits& WithMinimumCapacityUnits(int value) { SetMinimumCapacityUnits(value); return *this;} /** *The upper boundary of Amazon EC2 units. It is measured through vCPU cores or * instances for instance groups and measured through units for instance fleets. * Managed scaling activities are not allowed beyond this boundary. The limit only * applies to the core and task nodes. The master node cannot be scaled after * initial configuration.
*/ inline int GetMaximumCapacityUnits() const{ return m_maximumCapacityUnits; } /** *The upper boundary of Amazon EC2 units. It is measured through vCPU cores or * instances for instance groups and measured through units for instance fleets. * Managed scaling activities are not allowed beyond this boundary. The limit only * applies to the core and task nodes. The master node cannot be scaled after * initial configuration.
*/ inline bool MaximumCapacityUnitsHasBeenSet() const { return m_maximumCapacityUnitsHasBeenSet; } /** *The upper boundary of Amazon EC2 units. It is measured through vCPU cores or * instances for instance groups and measured through units for instance fleets. * Managed scaling activities are not allowed beyond this boundary. The limit only * applies to the core and task nodes. The master node cannot be scaled after * initial configuration.
*/ inline void SetMaximumCapacityUnits(int value) { m_maximumCapacityUnitsHasBeenSet = true; m_maximumCapacityUnits = value; } /** *The upper boundary of Amazon EC2 units. It is measured through vCPU cores or * instances for instance groups and measured through units for instance fleets. * Managed scaling activities are not allowed beyond this boundary. The limit only * applies to the core and task nodes. The master node cannot be scaled after * initial configuration.
*/ inline ComputeLimits& WithMaximumCapacityUnits(int value) { SetMaximumCapacityUnits(value); return *this;} /** *The upper boundary of On-Demand Amazon EC2 units. It is measured through * vCPU cores or instances for instance groups and measured through units for * instance fleets. The On-Demand units are not allowed to scale beyond this * boundary. The parameter is used to split capacity allocation between On-Demand * and Spot Instances.
*/ inline int GetMaximumOnDemandCapacityUnits() const{ return m_maximumOnDemandCapacityUnits; } /** *The upper boundary of On-Demand Amazon EC2 units. It is measured through * vCPU cores or instances for instance groups and measured through units for * instance fleets. The On-Demand units are not allowed to scale beyond this * boundary. The parameter is used to split capacity allocation between On-Demand * and Spot Instances.
*/ inline bool MaximumOnDemandCapacityUnitsHasBeenSet() const { return m_maximumOnDemandCapacityUnitsHasBeenSet; } /** *The upper boundary of On-Demand Amazon EC2 units. It is measured through * vCPU cores or instances for instance groups and measured through units for * instance fleets. The On-Demand units are not allowed to scale beyond this * boundary. The parameter is used to split capacity allocation between On-Demand * and Spot Instances.
*/ inline void SetMaximumOnDemandCapacityUnits(int value) { m_maximumOnDemandCapacityUnitsHasBeenSet = true; m_maximumOnDemandCapacityUnits = value; } /** *The upper boundary of On-Demand Amazon EC2 units. It is measured through * vCPU cores or instances for instance groups and measured through units for * instance fleets. The On-Demand units are not allowed to scale beyond this * boundary. The parameter is used to split capacity allocation between On-Demand * and Spot Instances.
*/ inline ComputeLimits& WithMaximumOnDemandCapacityUnits(int value) { SetMaximumOnDemandCapacityUnits(value); return *this;} /** *The upper boundary of Amazon EC2 units for core node type in a cluster. It * is measured through vCPU cores or instances for instance groups and measured * through units for instance fleets. The core units are not allowed to scale * beyond this boundary. The parameter is used to split capacity allocation between * core and task nodes.
*/ inline int GetMaximumCoreCapacityUnits() const{ return m_maximumCoreCapacityUnits; } /** *The upper boundary of Amazon EC2 units for core node type in a cluster. It * is measured through vCPU cores or instances for instance groups and measured * through units for instance fleets. The core units are not allowed to scale * beyond this boundary. The parameter is used to split capacity allocation between * core and task nodes.
*/ inline bool MaximumCoreCapacityUnitsHasBeenSet() const { return m_maximumCoreCapacityUnitsHasBeenSet; } /** *The upper boundary of Amazon EC2 units for core node type in a cluster. It * is measured through vCPU cores or instances for instance groups and measured * through units for instance fleets. The core units are not allowed to scale * beyond this boundary. The parameter is used to split capacity allocation between * core and task nodes.
*/ inline void SetMaximumCoreCapacityUnits(int value) { m_maximumCoreCapacityUnitsHasBeenSet = true; m_maximumCoreCapacityUnits = value; } /** *The upper boundary of Amazon EC2 units for core node type in a cluster. It * is measured through vCPU cores or instances for instance groups and measured * through units for instance fleets. The core units are not allowed to scale * beyond this boundary. The parameter is used to split capacity allocation between * core and task nodes.
*/ inline ComputeLimits& WithMaximumCoreCapacityUnits(int value) { SetMaximumCoreCapacityUnits(value); return *this;} private: ComputeLimitsUnitType m_unitType; bool m_unitTypeHasBeenSet = false; int m_minimumCapacityUnits; bool m_minimumCapacityUnitsHasBeenSet = false; int m_maximumCapacityUnits; bool m_maximumCapacityUnitsHasBeenSet = false; int m_maximumOnDemandCapacityUnits; bool m_maximumOnDemandCapacityUnitsHasBeenSet = false; int m_maximumCoreCapacityUnits; bool m_maximumCoreCapacityUnitsHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws