/** * 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 EMR { namespace Model { /** *

Managed scaling policy for an Amazon EMR cluster. The policy specifies the * limits for resources that can be added or terminated from a cluster. The policy * only applies to the core and task nodes. The master node cannot be scaled after * initial configuration.

See Also:

AWS * API Reference

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

The Amazon EC2 unit limits for a managed scaling policy. The managed scaling * activity of a cluster is not allowed to go above or below these limits. The * limit only applies to the core and task nodes. The master node cannot be scaled * after initial configuration.

*/ inline const ComputeLimits& GetComputeLimits() const{ return m_computeLimits; } /** *

The Amazon EC2 unit limits for a managed scaling policy. The managed scaling * activity of a cluster is not allowed to go above or below these limits. The * limit only applies to the core and task nodes. The master node cannot be scaled * after initial configuration.

*/ inline bool ComputeLimitsHasBeenSet() const { return m_computeLimitsHasBeenSet; } /** *

The Amazon EC2 unit limits for a managed scaling policy. The managed scaling * activity of a cluster is not allowed to go above or below these limits. The * limit only applies to the core and task nodes. The master node cannot be scaled * after initial configuration.

*/ inline void SetComputeLimits(const ComputeLimits& value) { m_computeLimitsHasBeenSet = true; m_computeLimits = value; } /** *

The Amazon EC2 unit limits for a managed scaling policy. The managed scaling * activity of a cluster is not allowed to go above or below these limits. The * limit only applies to the core and task nodes. The master node cannot be scaled * after initial configuration.

*/ inline void SetComputeLimits(ComputeLimits&& value) { m_computeLimitsHasBeenSet = true; m_computeLimits = std::move(value); } /** *

The Amazon EC2 unit limits for a managed scaling policy. The managed scaling * activity of a cluster is not allowed to go above or below these limits. The * limit only applies to the core and task nodes. The master node cannot be scaled * after initial configuration.

*/ inline ManagedScalingPolicy& WithComputeLimits(const ComputeLimits& value) { SetComputeLimits(value); return *this;} /** *

The Amazon EC2 unit limits for a managed scaling policy. The managed scaling * activity of a cluster is not allowed to go above or below these limits. The * limit only applies to the core and task nodes. The master node cannot be scaled * after initial configuration.

*/ inline ManagedScalingPolicy& WithComputeLimits(ComputeLimits&& value) { SetComputeLimits(std::move(value)); return *this;} private: ComputeLimits m_computeLimits; bool m_computeLimitsHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws