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

Describes a policy used by EFS lifecycle management and EFS * Intelligent-Tiering that specifies when to transition files into and out of the * file system's Infrequent Access (IA) storage class. For more information, see EFS * Intelligent‐Tiering and EFS Lifecycle Management.

When using * the put-lifecycle-configuration CLI command or the * PutLifecycleConfiguration API action, Amazon EFS requires that each * LifecyclePolicy object have only a single transition. This means * that in a request body, LifecyclePolicies must be structured as an * array of LifecyclePolicy objects, one object for each transition, * TransitionToIA, TransitionToPrimaryStorageClass. For * more information, see the request examples in * PutLifecycleConfiguration.

See Also:

AWS * API Reference

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

Describes the period of time that a file is not accessed, after which it * transitions to IA storage. Metadata operations such as listing the contents of a * directory don't count as file access events.

*/ inline const TransitionToIARules& GetTransitionToIA() const{ return m_transitionToIA; } /** *

Describes the period of time that a file is not accessed, after which it * transitions to IA storage. Metadata operations such as listing the contents of a * directory don't count as file access events.

*/ inline bool TransitionToIAHasBeenSet() const { return m_transitionToIAHasBeenSet; } /** *

Describes the period of time that a file is not accessed, after which it * transitions to IA storage. Metadata operations such as listing the contents of a * directory don't count as file access events.

*/ inline void SetTransitionToIA(const TransitionToIARules& value) { m_transitionToIAHasBeenSet = true; m_transitionToIA = value; } /** *

Describes the period of time that a file is not accessed, after which it * transitions to IA storage. Metadata operations such as listing the contents of a * directory don't count as file access events.

*/ inline void SetTransitionToIA(TransitionToIARules&& value) { m_transitionToIAHasBeenSet = true; m_transitionToIA = std::move(value); } /** *

Describes the period of time that a file is not accessed, after which it * transitions to IA storage. Metadata operations such as listing the contents of a * directory don't count as file access events.

*/ inline LifecyclePolicy& WithTransitionToIA(const TransitionToIARules& value) { SetTransitionToIA(value); return *this;} /** *

Describes the period of time that a file is not accessed, after which it * transitions to IA storage. Metadata operations such as listing the contents of a * directory don't count as file access events.

*/ inline LifecyclePolicy& WithTransitionToIA(TransitionToIARules&& value) { SetTransitionToIA(std::move(value)); return *this;} /** *

Describes when to transition a file from IA storage to primary storage. * Metadata operations such as listing the contents of a directory don't count as * file access events.

*/ inline const TransitionToPrimaryStorageClassRules& GetTransitionToPrimaryStorageClass() const{ return m_transitionToPrimaryStorageClass; } /** *

Describes when to transition a file from IA storage to primary storage. * Metadata operations such as listing the contents of a directory don't count as * file access events.

*/ inline bool TransitionToPrimaryStorageClassHasBeenSet() const { return m_transitionToPrimaryStorageClassHasBeenSet; } /** *

Describes when to transition a file from IA storage to primary storage. * Metadata operations such as listing the contents of a directory don't count as * file access events.

*/ inline void SetTransitionToPrimaryStorageClass(const TransitionToPrimaryStorageClassRules& value) { m_transitionToPrimaryStorageClassHasBeenSet = true; m_transitionToPrimaryStorageClass = value; } /** *

Describes when to transition a file from IA storage to primary storage. * Metadata operations such as listing the contents of a directory don't count as * file access events.

*/ inline void SetTransitionToPrimaryStorageClass(TransitionToPrimaryStorageClassRules&& value) { m_transitionToPrimaryStorageClassHasBeenSet = true; m_transitionToPrimaryStorageClass = std::move(value); } /** *

Describes when to transition a file from IA storage to primary storage. * Metadata operations such as listing the contents of a directory don't count as * file access events.

*/ inline LifecyclePolicy& WithTransitionToPrimaryStorageClass(const TransitionToPrimaryStorageClassRules& value) { SetTransitionToPrimaryStorageClass(value); return *this;} /** *

Describes when to transition a file from IA storage to primary storage. * Metadata operations such as listing the contents of a directory don't count as * file access events.

*/ inline LifecyclePolicy& WithTransitionToPrimaryStorageClass(TransitionToPrimaryStorageClassRules&& value) { SetTransitionToPrimaryStorageClass(std::move(value)); return *this;} private: TransitionToIARules m_transitionToIA; bool m_transitionToIAHasBeenSet = false; TransitionToPrimaryStorageClassRules m_transitionToPrimaryStorageClass; bool m_transitionToPrimaryStorageClassHasBeenSet = false; }; } // namespace Model } // namespace EFS } // namespace Aws