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

Contains an array of Transition objects specifying how long in * days before a recovery point transitions to cold storage or is deleted.

*

Backups transitioned to cold storage must be stored in cold storage for a * minimum of 90 days. Therefore, on the console, 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 Lifecycle { public: AWS_BACKUP_API Lifecycle(); AWS_BACKUP_API Lifecycle(Aws::Utils::Json::JsonView jsonValue); AWS_BACKUP_API Lifecycle& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_BACKUP_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

Specifies the number of days after creation that a recovery point is moved to * cold storage.

*/ inline long long GetMoveToColdStorageAfterDays() const{ return m_moveToColdStorageAfterDays; } /** *

Specifies the number of days after creation that a recovery point is moved to * cold storage.

*/ inline bool MoveToColdStorageAfterDaysHasBeenSet() const { return m_moveToColdStorageAfterDaysHasBeenSet; } /** *

Specifies the number of days after creation that a recovery point is moved to * cold storage.

*/ inline void SetMoveToColdStorageAfterDays(long long value) { m_moveToColdStorageAfterDaysHasBeenSet = true; m_moveToColdStorageAfterDays = value; } /** *

Specifies the number of days after creation that a recovery point is moved to * cold storage.

*/ inline Lifecycle& WithMoveToColdStorageAfterDays(long long value) { SetMoveToColdStorageAfterDays(value); return *this;} /** *

Specifies the number of days after creation that a recovery point is deleted. * Must be greater than 90 days plus MoveToColdStorageAfterDays.

*/ inline long long GetDeleteAfterDays() const{ return m_deleteAfterDays; } /** *

Specifies the number of days after creation that a recovery point is deleted. * Must be greater than 90 days plus MoveToColdStorageAfterDays.

*/ inline bool DeleteAfterDaysHasBeenSet() const { return m_deleteAfterDaysHasBeenSet; } /** *

Specifies the number of days after creation that a recovery point is deleted. * Must be greater than 90 days plus MoveToColdStorageAfterDays.

*/ inline void SetDeleteAfterDays(long long value) { m_deleteAfterDaysHasBeenSet = true; m_deleteAfterDays = value; } /** *

Specifies the number of days after creation that a recovery point is deleted. * Must be greater than 90 days plus MoveToColdStorageAfterDays.

*/ inline Lifecycle& WithDeleteAfterDays(long long value) { SetDeleteAfterDays(value); return *this;} private: long long m_moveToColdStorageAfterDays; bool m_moveToColdStorageAfterDaysHasBeenSet = false; long long m_deleteAfterDays; bool m_deleteAfterDaysHasBeenSet = false; }; } // namespace Model } // namespace Backup } // namespace Aws