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

Specifies the S3 Object Lock rule for the specified object. In Amazon S3, * Object Lock can help prevent objects from being deleted or overwritten for a * fixed amount of time or indefinitely.

See Also:

AWS * API Reference

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

The default Object Lock retention mode and period that you want to apply to * new objects placed in the specified bucket.

*/ inline const AwsS3BucketObjectLockConfigurationRuleDefaultRetentionDetails& GetDefaultRetention() const{ return m_defaultRetention; } /** *

The default Object Lock retention mode and period that you want to apply to * new objects placed in the specified bucket.

*/ inline bool DefaultRetentionHasBeenSet() const { return m_defaultRetentionHasBeenSet; } /** *

The default Object Lock retention mode and period that you want to apply to * new objects placed in the specified bucket.

*/ inline void SetDefaultRetention(const AwsS3BucketObjectLockConfigurationRuleDefaultRetentionDetails& value) { m_defaultRetentionHasBeenSet = true; m_defaultRetention = value; } /** *

The default Object Lock retention mode and period that you want to apply to * new objects placed in the specified bucket.

*/ inline void SetDefaultRetention(AwsS3BucketObjectLockConfigurationRuleDefaultRetentionDetails&& value) { m_defaultRetentionHasBeenSet = true; m_defaultRetention = std::move(value); } /** *

The default Object Lock retention mode and period that you want to apply to * new objects placed in the specified bucket.

*/ inline AwsS3BucketObjectLockConfigurationRuleDetails& WithDefaultRetention(const AwsS3BucketObjectLockConfigurationRuleDefaultRetentionDetails& value) { SetDefaultRetention(value); return *this;} /** *

The default Object Lock retention mode and period that you want to apply to * new objects placed in the specified bucket.

*/ inline AwsS3BucketObjectLockConfigurationRuleDetails& WithDefaultRetention(AwsS3BucketObjectLockConfigurationRuleDefaultRetentionDetails&& value) { SetDefaultRetention(std::move(value)); return *this;} private: AwsS3BucketObjectLockConfigurationRuleDefaultRetentionDetails m_defaultRetention; bool m_defaultRetentionHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws