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

Contains DeleteAt and MoveToColdStorageAt * timestamps, which are used to specify a lifecycle for a recovery point.

*

The lifecycle defines when a protected resource is transitioned to cold * storage and when it expires. Backup transitions and expires backups * automatically according to the lifecycle that you define.

Backups * transitioned to cold storage must be stored in cold storage for a minimum of 90 * days. Therefore, the “retention” setting must be 90 days greater than the * “transition to cold after days” setting. The “transition to cold after days” * setting cannot be changed after a backup has been transitioned to cold.

*

Resource types that are able to be transitioned to cold storage are listed in * the "Lifecycle to cold storage" section of the * Feature availability by resource table. Backup ignores this expression for * other resource types.

See Also:

AWS * API Reference

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

A timestamp that specifies when to transition a recovery point to cold * storage.

*/ inline const Aws::Utils::DateTime& GetMoveToColdStorageAt() const{ return m_moveToColdStorageAt; } /** *

A timestamp that specifies when to transition a recovery point to cold * storage.

*/ inline bool MoveToColdStorageAtHasBeenSet() const { return m_moveToColdStorageAtHasBeenSet; } /** *

A timestamp that specifies when to transition a recovery point to cold * storage.

*/ inline void SetMoveToColdStorageAt(const Aws::Utils::DateTime& value) { m_moveToColdStorageAtHasBeenSet = true; m_moveToColdStorageAt = value; } /** *

A timestamp that specifies when to transition a recovery point to cold * storage.

*/ inline void SetMoveToColdStorageAt(Aws::Utils::DateTime&& value) { m_moveToColdStorageAtHasBeenSet = true; m_moveToColdStorageAt = std::move(value); } /** *

A timestamp that specifies when to transition a recovery point to cold * storage.

*/ inline CalculatedLifecycle& WithMoveToColdStorageAt(const Aws::Utils::DateTime& value) { SetMoveToColdStorageAt(value); return *this;} /** *

A timestamp that specifies when to transition a recovery point to cold * storage.

*/ inline CalculatedLifecycle& WithMoveToColdStorageAt(Aws::Utils::DateTime&& value) { SetMoveToColdStorageAt(std::move(value)); return *this;} /** *

A timestamp that specifies when to delete a recovery point.

*/ inline const Aws::Utils::DateTime& GetDeleteAt() const{ return m_deleteAt; } /** *

A timestamp that specifies when to delete a recovery point.

*/ inline bool DeleteAtHasBeenSet() const { return m_deleteAtHasBeenSet; } /** *

A timestamp that specifies when to delete a recovery point.

*/ inline void SetDeleteAt(const Aws::Utils::DateTime& value) { m_deleteAtHasBeenSet = true; m_deleteAt = value; } /** *

A timestamp that specifies when to delete a recovery point.

*/ inline void SetDeleteAt(Aws::Utils::DateTime&& value) { m_deleteAtHasBeenSet = true; m_deleteAt = std::move(value); } /** *

A timestamp that specifies when to delete a recovery point.

*/ inline CalculatedLifecycle& WithDeleteAt(const Aws::Utils::DateTime& value) { SetDeleteAt(value); return *this;} /** *

A timestamp that specifies when to delete a recovery point.

*/ inline CalculatedLifecycle& WithDeleteAt(Aws::Utils::DateTime&& value) { SetDeleteAt(std::move(value)); return *this;} private: Aws::Utils::DateTime m_moveToColdStorageAt; bool m_moveToColdStorageAtHasBeenSet = false; Aws::Utils::DateTime m_deleteAt; bool m_deleteAtHasBeenSet = false; }; } // namespace Model } // namespace Backup } // namespace Aws