/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include [Snapshot and AMI policies only] Specifies a retention rule for
* snapshots created by snapshot policies, or for AMIs created by AMI policies. For snapshot policies that have an ArchiveRule, this retention
* rule applies to standard tier retention. When the retention threshold is met,
* snapshots are moved from the standard to the archive tier. For snapshot
* policies that do not have an ArchiveRule, snapshots are permanently
* deleted when this retention threshold is met. You can retain
* snapshots based on either a count or a time interval.
* Count-based retention You must specify Count. If you
* specify an ArchiveRule for the schedule, then you can specify a retention
* count of Age-based retention You must specify Interval and IntervalUnit. If you specify an
* ArchiveRule for the schedule, then you can specify a retention interval
* of
0
to archive snapshots immediately after creation. If you
* specify a FastRestoreRule, ShareRule, or a
* CrossRegionCopyRule, then you must specify a retention count of
* 1
or more.0
days to archive snapshots immediately after creation. If you
* specify a FastRestoreRule, ShareRule, or a
* CrossRegionCopyRule, then you must specify a retention interval of
* 1
day or more.See Also:
AWS API
* Reference
The number of snapshots to retain for each volume, up to a maximum of 1000.
* For example if you want to retain a maximum of three snapshots, specify
* 3
. When the fourth snapshot is created, the oldest retained
* snapshot is deleted, or it is moved to the archive tier if you have specified an
* ArchiveRule.
The number of snapshots to retain for each volume, up to a maximum of 1000.
* For example if you want to retain a maximum of three snapshots, specify
* 3
. When the fourth snapshot is created, the oldest retained
* snapshot is deleted, or it is moved to the archive tier if you have specified an
* ArchiveRule.
The number of snapshots to retain for each volume, up to a maximum of 1000.
* For example if you want to retain a maximum of three snapshots, specify
* 3
. When the fourth snapshot is created, the oldest retained
* snapshot is deleted, or it is moved to the archive tier if you have specified an
* ArchiveRule.
The number of snapshots to retain for each volume, up to a maximum of 1000.
* For example if you want to retain a maximum of three snapshots, specify
* 3
. When the fourth snapshot is created, the oldest retained
* snapshot is deleted, or it is moved to the archive tier if you have specified an
* ArchiveRule.
The amount of time to retain each snapshot. The maximum is 100 years. This is * equivalent to 1200 months, 5200 weeks, or 36500 days.
*/ inline int GetInterval() const{ return m_interval; } /** *The amount of time to retain each snapshot. The maximum is 100 years. This is * equivalent to 1200 months, 5200 weeks, or 36500 days.
*/ inline bool IntervalHasBeenSet() const { return m_intervalHasBeenSet; } /** *The amount of time to retain each snapshot. The maximum is 100 years. This is * equivalent to 1200 months, 5200 weeks, or 36500 days.
*/ inline void SetInterval(int value) { m_intervalHasBeenSet = true; m_interval = value; } /** *The amount of time to retain each snapshot. The maximum is 100 years. This is * equivalent to 1200 months, 5200 weeks, or 36500 days.
*/ inline RetainRule& WithInterval(int value) { SetInterval(value); return *this;} /** *The unit of time for time-based retention. For example, to retain snapshots
* for 3 months, specify Interval=3
and
* IntervalUnit=MONTHS
. Once the snapshot has been retained for 3
* months, it is deleted, or it is moved to the archive tier if you have specified
* an ArchiveRule.
The unit of time for time-based retention. For example, to retain snapshots
* for 3 months, specify Interval=3
and
* IntervalUnit=MONTHS
. Once the snapshot has been retained for 3
* months, it is deleted, or it is moved to the archive tier if you have specified
* an ArchiveRule.
The unit of time for time-based retention. For example, to retain snapshots
* for 3 months, specify Interval=3
and
* IntervalUnit=MONTHS
. Once the snapshot has been retained for 3
* months, it is deleted, or it is moved to the archive tier if you have specified
* an ArchiveRule.
The unit of time for time-based retention. For example, to retain snapshots
* for 3 months, specify Interval=3
and
* IntervalUnit=MONTHS
. Once the snapshot has been retained for 3
* months, it is deleted, or it is moved to the archive tier if you have specified
* an ArchiveRule.
The unit of time for time-based retention. For example, to retain snapshots
* for 3 months, specify Interval=3
and
* IntervalUnit=MONTHS
. Once the snapshot has been retained for 3
* months, it is deleted, or it is moved to the archive tier if you have specified
* an ArchiveRule.
The unit of time for time-based retention. For example, to retain snapshots
* for 3 months, specify Interval=3
and
* IntervalUnit=MONTHS
. Once the snapshot has been retained for 3
* months, it is deleted, or it is moved to the archive tier if you have specified
* an ArchiveRule.