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

The Shutdown event configuration.

See Also:

AWS * API Reference

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

The time, in seconds, that AWS OpsWorks Stacks will wait after triggering a * Shutdown event before shutting down an instance.

*/ inline int GetExecutionTimeout() const{ return m_executionTimeout; } /** *

The time, in seconds, that AWS OpsWorks Stacks will wait after triggering a * Shutdown event before shutting down an instance.

*/ inline bool ExecutionTimeoutHasBeenSet() const { return m_executionTimeoutHasBeenSet; } /** *

The time, in seconds, that AWS OpsWorks Stacks will wait after triggering a * Shutdown event before shutting down an instance.

*/ inline void SetExecutionTimeout(int value) { m_executionTimeoutHasBeenSet = true; m_executionTimeout = value; } /** *

The time, in seconds, that AWS OpsWorks Stacks will wait after triggering a * Shutdown event before shutting down an instance.

*/ inline ShutdownEventConfiguration& WithExecutionTimeout(int value) { SetExecutionTimeout(value); return *this;} /** *

Whether to enable Elastic Load Balancing connection draining. For more * information, see Connection * Draining

*/ inline bool GetDelayUntilElbConnectionsDrained() const{ return m_delayUntilElbConnectionsDrained; } /** *

Whether to enable Elastic Load Balancing connection draining. For more * information, see Connection * Draining

*/ inline bool DelayUntilElbConnectionsDrainedHasBeenSet() const { return m_delayUntilElbConnectionsDrainedHasBeenSet; } /** *

Whether to enable Elastic Load Balancing connection draining. For more * information, see Connection * Draining

*/ inline void SetDelayUntilElbConnectionsDrained(bool value) { m_delayUntilElbConnectionsDrainedHasBeenSet = true; m_delayUntilElbConnectionsDrained = value; } /** *

Whether to enable Elastic Load Balancing connection draining. For more * information, see Connection * Draining

*/ inline ShutdownEventConfiguration& WithDelayUntilElbConnectionsDrained(bool value) { SetDelayUntilElbConnectionsDrained(value); return *this;} private: int m_executionTimeout; bool m_executionTimeoutHasBeenSet = false; bool m_delayUntilElbConnectionsDrained; bool m_delayUntilElbConnectionsDrainedHasBeenSet = false; }; } // namespace Model } // namespace OpsWorks } // namespace Aws