/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Policy for customizing shrink operations. Allows configuration of
* decommissioning timeout and targeted instance shrinking.See
* Also:
AWS
* API Reference
The desired timeout for decommissioning an instance. Overrides the default * YARN decommissioning timeout.
*/ inline int GetDecommissionTimeout() const{ return m_decommissionTimeout; } /** *The desired timeout for decommissioning an instance. Overrides the default * YARN decommissioning timeout.
*/ inline bool DecommissionTimeoutHasBeenSet() const { return m_decommissionTimeoutHasBeenSet; } /** *The desired timeout for decommissioning an instance. Overrides the default * YARN decommissioning timeout.
*/ inline void SetDecommissionTimeout(int value) { m_decommissionTimeoutHasBeenSet = true; m_decommissionTimeout = value; } /** *The desired timeout for decommissioning an instance. Overrides the default * YARN decommissioning timeout.
*/ inline ShrinkPolicy& WithDecommissionTimeout(int value) { SetDecommissionTimeout(value); return *this;} /** *Custom policy for requesting termination protection or termination of * specific instances when shrinking an instance group.
*/ inline const InstanceResizePolicy& GetInstanceResizePolicy() const{ return m_instanceResizePolicy; } /** *Custom policy for requesting termination protection or termination of * specific instances when shrinking an instance group.
*/ inline bool InstanceResizePolicyHasBeenSet() const { return m_instanceResizePolicyHasBeenSet; } /** *Custom policy for requesting termination protection or termination of * specific instances when shrinking an instance group.
*/ inline void SetInstanceResizePolicy(const InstanceResizePolicy& value) { m_instanceResizePolicyHasBeenSet = true; m_instanceResizePolicy = value; } /** *Custom policy for requesting termination protection or termination of * specific instances when shrinking an instance group.
*/ inline void SetInstanceResizePolicy(InstanceResizePolicy&& value) { m_instanceResizePolicyHasBeenSet = true; m_instanceResizePolicy = std::move(value); } /** *Custom policy for requesting termination protection or termination of * specific instances when shrinking an instance group.
*/ inline ShrinkPolicy& WithInstanceResizePolicy(const InstanceResizePolicy& value) { SetInstanceResizePolicy(value); return *this;} /** *Custom policy for requesting termination protection or termination of * specific instances when shrinking an instance group.
*/ inline ShrinkPolicy& WithInstanceResizePolicy(InstanceResizePolicy&& value) { SetInstanceResizePolicy(std::move(value)); return *this;} private: int m_decommissionTimeout; bool m_decommissionTimeoutHasBeenSet = false; InstanceResizePolicy m_instanceResizePolicy; bool m_instanceResizePolicyHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws