/** * 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 Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace S3Control { namespace Model { /** *

Contains the configuration parameters for the Object Lock retention action * for an S3 Batch Operations job. Batch Operations passes every object to the * underlying PutObjectRetention API operation. For more information, * see Using * S3 Object Lock retention with S3 Batch Operations in the Amazon S3 User * Guide.

See Also:

AWS * API Reference

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

Indicates if the action should be applied to objects in the Batch Operations * job even if they have Object Lock GOVERNANCE type in place.

*/ inline bool GetBypassGovernanceRetention() const{ return m_bypassGovernanceRetention; } /** *

Indicates if the action should be applied to objects in the Batch Operations * job even if they have Object Lock GOVERNANCE type in place.

*/ inline bool BypassGovernanceRetentionHasBeenSet() const { return m_bypassGovernanceRetentionHasBeenSet; } /** *

Indicates if the action should be applied to objects in the Batch Operations * job even if they have Object Lock GOVERNANCE type in place.

*/ inline void SetBypassGovernanceRetention(bool value) { m_bypassGovernanceRetentionHasBeenSet = true; m_bypassGovernanceRetention = value; } /** *

Indicates if the action should be applied to objects in the Batch Operations * job even if they have Object Lock GOVERNANCE type in place.

*/ inline S3SetObjectRetentionOperation& WithBypassGovernanceRetention(bool value) { SetBypassGovernanceRetention(value); return *this;} /** *

Contains the Object Lock retention mode to be applied to all objects in the * Batch Operations job. For more information, see Using * S3 Object Lock retention with S3 Batch Operations in the Amazon S3 User * Guide.

*/ inline const S3Retention& GetRetention() const{ return m_retention; } /** *

Contains the Object Lock retention mode to be applied to all objects in the * Batch Operations job. For more information, see Using * S3 Object Lock retention with S3 Batch Operations in the Amazon S3 User * Guide.

*/ inline bool RetentionHasBeenSet() const { return m_retentionHasBeenSet; } /** *

Contains the Object Lock retention mode to be applied to all objects in the * Batch Operations job. For more information, see Using * S3 Object Lock retention with S3 Batch Operations in the Amazon S3 User * Guide.

*/ inline void SetRetention(const S3Retention& value) { m_retentionHasBeenSet = true; m_retention = value; } /** *

Contains the Object Lock retention mode to be applied to all objects in the * Batch Operations job. For more information, see Using * S3 Object Lock retention with S3 Batch Operations in the Amazon S3 User * Guide.

*/ inline void SetRetention(S3Retention&& value) { m_retentionHasBeenSet = true; m_retention = std::move(value); } /** *

Contains the Object Lock retention mode to be applied to all objects in the * Batch Operations job. For more information, see Using * S3 Object Lock retention with S3 Batch Operations in the Amazon S3 User * Guide.

*/ inline S3SetObjectRetentionOperation& WithRetention(const S3Retention& value) { SetRetention(value); return *this;} /** *

Contains the Object Lock retention mode to be applied to all objects in the * Batch Operations job. For more information, see Using * S3 Object Lock retention with S3 Batch Operations in the Amazon S3 User * Guide.

*/ inline S3SetObjectRetentionOperation& WithRetention(S3Retention&& value) { SetRetention(std::move(value)); return *this;} private: bool m_bypassGovernanceRetention; bool m_bypassGovernanceRetentionHasBeenSet = false; S3Retention m_retention; bool m_retentionHasBeenSet = false; }; } // namespace Model } // namespace S3Control } // namespace Aws