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

Provides lifecycle details of Amazon Security Lake object.

See * Also:

AWS * API Reference

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

Provides data expiration details of Amazon Security Lake object.

*/ inline const DataLakeLifecycleExpiration& GetExpiration() const{ return m_expiration; } /** *

Provides data expiration details of Amazon Security Lake object.

*/ inline bool ExpirationHasBeenSet() const { return m_expirationHasBeenSet; } /** *

Provides data expiration details of Amazon Security Lake object.

*/ inline void SetExpiration(const DataLakeLifecycleExpiration& value) { m_expirationHasBeenSet = true; m_expiration = value; } /** *

Provides data expiration details of Amazon Security Lake object.

*/ inline void SetExpiration(DataLakeLifecycleExpiration&& value) { m_expirationHasBeenSet = true; m_expiration = std::move(value); } /** *

Provides data expiration details of Amazon Security Lake object.

*/ inline DataLakeLifecycleConfiguration& WithExpiration(const DataLakeLifecycleExpiration& value) { SetExpiration(value); return *this;} /** *

Provides data expiration details of Amazon Security Lake object.

*/ inline DataLakeLifecycleConfiguration& WithExpiration(DataLakeLifecycleExpiration&& value) { SetExpiration(std::move(value)); return *this;} /** *

Provides data storage transition details of Amazon Security Lake object.

*/ inline const Aws::Vector& GetTransitions() const{ return m_transitions; } /** *

Provides data storage transition details of Amazon Security Lake object.

*/ inline bool TransitionsHasBeenSet() const { return m_transitionsHasBeenSet; } /** *

Provides data storage transition details of Amazon Security Lake object.

*/ inline void SetTransitions(const Aws::Vector& value) { m_transitionsHasBeenSet = true; m_transitions = value; } /** *

Provides data storage transition details of Amazon Security Lake object.

*/ inline void SetTransitions(Aws::Vector&& value) { m_transitionsHasBeenSet = true; m_transitions = std::move(value); } /** *

Provides data storage transition details of Amazon Security Lake object.

*/ inline DataLakeLifecycleConfiguration& WithTransitions(const Aws::Vector& value) { SetTransitions(value); return *this;} /** *

Provides data storage transition details of Amazon Security Lake object.

*/ inline DataLakeLifecycleConfiguration& WithTransitions(Aws::Vector&& value) { SetTransitions(std::move(value)); return *this;} /** *

Provides data storage transition details of Amazon Security Lake object.

*/ inline DataLakeLifecycleConfiguration& AddTransitions(const DataLakeLifecycleTransition& value) { m_transitionsHasBeenSet = true; m_transitions.push_back(value); return *this; } /** *

Provides data storage transition details of Amazon Security Lake object.

*/ inline DataLakeLifecycleConfiguration& AddTransitions(DataLakeLifecycleTransition&& value) { m_transitionsHasBeenSet = true; m_transitions.push_back(std::move(value)); return *this; } private: DataLakeLifecycleExpiration m_expiration; bool m_expirationHasBeenSet = false; Aws::Vector m_transitions; bool m_transitionsHasBeenSet = false; }; } // namespace Model } // namespace SecurityLake } // namespace Aws