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

Specifies when noncurrent object versions expire. Upon expiration, Amazon S3 * permanently deletes the noncurrent object versions. You set this lifecycle * configuration action on a bucket that has versioning enabled (or suspended) to * request that Amazon S3 delete noncurrent object versions at a specific period in * the object's lifetime.

See Also:

AWS * API Reference

*/ class NoncurrentVersionExpiration { public: AWS_S3CRT_API NoncurrentVersionExpiration(); AWS_S3CRT_API NoncurrentVersionExpiration(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_S3CRT_API NoncurrentVersionExpiration& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_S3CRT_API void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const; /** *

Specifies the number of days an object is noncurrent before Amazon S3 can * perform the associated action. The value must be a non-zero positive integer. * For information about the noncurrent days calculations, see How * Amazon S3 Calculates When an Object Became Noncurrent in the Amazon S3 * User Guide.

*/ inline int GetNoncurrentDays() const{ return m_noncurrentDays; } /** *

Specifies the number of days an object is noncurrent before Amazon S3 can * perform the associated action. The value must be a non-zero positive integer. * For information about the noncurrent days calculations, see How * Amazon S3 Calculates When an Object Became Noncurrent in the Amazon S3 * User Guide.

*/ inline bool NoncurrentDaysHasBeenSet() const { return m_noncurrentDaysHasBeenSet; } /** *

Specifies the number of days an object is noncurrent before Amazon S3 can * perform the associated action. The value must be a non-zero positive integer. * For information about the noncurrent days calculations, see How * Amazon S3 Calculates When an Object Became Noncurrent in the Amazon S3 * User Guide.

*/ inline void SetNoncurrentDays(int value) { m_noncurrentDaysHasBeenSet = true; m_noncurrentDays = value; } /** *

Specifies the number of days an object is noncurrent before Amazon S3 can * perform the associated action. The value must be a non-zero positive integer. * For information about the noncurrent days calculations, see How * Amazon S3 Calculates When an Object Became Noncurrent in the Amazon S3 * User Guide.

*/ inline NoncurrentVersionExpiration& WithNoncurrentDays(int value) { SetNoncurrentDays(value); return *this;} /** *

Specifies how many noncurrent versions Amazon S3 will retain. If there are * this many more recent noncurrent versions, Amazon S3 will take the associated * action. For more information about noncurrent versions, see Lifecycle * configuration elements in the Amazon S3 User Guide.

*/ inline int GetNewerNoncurrentVersions() const{ return m_newerNoncurrentVersions; } /** *

Specifies how many noncurrent versions Amazon S3 will retain. If there are * this many more recent noncurrent versions, Amazon S3 will take the associated * action. For more information about noncurrent versions, see Lifecycle * configuration elements in the Amazon S3 User Guide.

*/ inline bool NewerNoncurrentVersionsHasBeenSet() const { return m_newerNoncurrentVersionsHasBeenSet; } /** *

Specifies how many noncurrent versions Amazon S3 will retain. If there are * this many more recent noncurrent versions, Amazon S3 will take the associated * action. For more information about noncurrent versions, see Lifecycle * configuration elements in the Amazon S3 User Guide.

*/ inline void SetNewerNoncurrentVersions(int value) { m_newerNoncurrentVersionsHasBeenSet = true; m_newerNoncurrentVersions = value; } /** *

Specifies how many noncurrent versions Amazon S3 will retain. If there are * this many more recent noncurrent versions, Amazon S3 will take the associated * action. For more information about noncurrent versions, see Lifecycle * configuration elements in the Amazon S3 User Guide.

*/ inline NoncurrentVersionExpiration& WithNewerNoncurrentVersions(int value) { SetNewerNoncurrentVersions(value); return *this;} private: int m_noncurrentDays; bool m_noncurrentDaysHasBeenSet = false; int m_newerNoncurrentVersions; bool m_newerNoncurrentVersionsHasBeenSet = false; }; } // namespace Model } // namespace S3Crt } // namespace Aws