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

The status of an automatic scaling policy.

See Also:

AWS * API Reference

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

Indicates the status of the automatic scaling policy.

*/ inline const AutoScalingPolicyState& GetState() const{ return m_state; } /** *

Indicates the status of the automatic scaling policy.

*/ inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } /** *

Indicates the status of the automatic scaling policy.

*/ inline void SetState(const AutoScalingPolicyState& value) { m_stateHasBeenSet = true; m_state = value; } /** *

Indicates the status of the automatic scaling policy.

*/ inline void SetState(AutoScalingPolicyState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } /** *

Indicates the status of the automatic scaling policy.

*/ inline AutoScalingPolicyStatus& WithState(const AutoScalingPolicyState& value) { SetState(value); return *this;} /** *

Indicates the status of the automatic scaling policy.

*/ inline AutoScalingPolicyStatus& WithState(AutoScalingPolicyState&& value) { SetState(std::move(value)); return *this;} /** *

The reason for a change in status.

*/ inline const AutoScalingPolicyStateChangeReason& GetStateChangeReason() const{ return m_stateChangeReason; } /** *

The reason for a change in status.

*/ inline bool StateChangeReasonHasBeenSet() const { return m_stateChangeReasonHasBeenSet; } /** *

The reason for a change in status.

*/ inline void SetStateChangeReason(const AutoScalingPolicyStateChangeReason& value) { m_stateChangeReasonHasBeenSet = true; m_stateChangeReason = value; } /** *

The reason for a change in status.

*/ inline void SetStateChangeReason(AutoScalingPolicyStateChangeReason&& value) { m_stateChangeReasonHasBeenSet = true; m_stateChangeReason = std::move(value); } /** *

The reason for a change in status.

*/ inline AutoScalingPolicyStatus& WithStateChangeReason(const AutoScalingPolicyStateChangeReason& value) { SetStateChangeReason(value); return *this;} /** *

The reason for a change in status.

*/ inline AutoScalingPolicyStatus& WithStateChangeReason(AutoScalingPolicyStateChangeReason&& value) { SetStateChangeReason(std::move(value)); return *this;} private: AutoScalingPolicyState m_state; bool m_stateHasBeenSet = false; AutoScalingPolicyStateChangeReason m_stateChangeReason; bool m_stateChangeReasonHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws