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

Contains the configuration parameters for a PUT Copy object operation. S3 * Batch Operations passes every object to the underlying CopyObject * API operation. For more information about the parameters for this operation, see * CopyObject.

See * Also:

AWS * API Reference

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

Specifies the destination bucket Amazon Resource Name (ARN) for the batch * copy operation. For example, to copy objects to a bucket named * destinationBucket, set the TargetResource property to * arn:aws:s3:::destinationBucket.

*/ inline const Aws::String& GetTargetResource() const{ return m_targetResource; } /** *

Specifies the destination bucket Amazon Resource Name (ARN) for the batch * copy operation. For example, to copy objects to a bucket named * destinationBucket, set the TargetResource property to * arn:aws:s3:::destinationBucket.

*/ inline bool TargetResourceHasBeenSet() const { return m_targetResourceHasBeenSet; } /** *

Specifies the destination bucket Amazon Resource Name (ARN) for the batch * copy operation. For example, to copy objects to a bucket named * destinationBucket, set the TargetResource property to * arn:aws:s3:::destinationBucket.

*/ inline void SetTargetResource(const Aws::String& value) { m_targetResourceHasBeenSet = true; m_targetResource = value; } /** *

Specifies the destination bucket Amazon Resource Name (ARN) for the batch * copy operation. For example, to copy objects to a bucket named * destinationBucket, set the TargetResource property to * arn:aws:s3:::destinationBucket.

*/ inline void SetTargetResource(Aws::String&& value) { m_targetResourceHasBeenSet = true; m_targetResource = std::move(value); } /** *

Specifies the destination bucket Amazon Resource Name (ARN) for the batch * copy operation. For example, to copy objects to a bucket named * destinationBucket, set the TargetResource property to * arn:aws:s3:::destinationBucket.

*/ inline void SetTargetResource(const char* value) { m_targetResourceHasBeenSet = true; m_targetResource.assign(value); } /** *

Specifies the destination bucket Amazon Resource Name (ARN) for the batch * copy operation. For example, to copy objects to a bucket named * destinationBucket, set the TargetResource property to * arn:aws:s3:::destinationBucket.

*/ inline S3CopyObjectOperation& WithTargetResource(const Aws::String& value) { SetTargetResource(value); return *this;} /** *

Specifies the destination bucket Amazon Resource Name (ARN) for the batch * copy operation. For example, to copy objects to a bucket named * destinationBucket, set the TargetResource property to * arn:aws:s3:::destinationBucket.

*/ inline S3CopyObjectOperation& WithTargetResource(Aws::String&& value) { SetTargetResource(std::move(value)); return *this;} /** *

Specifies the destination bucket Amazon Resource Name (ARN) for the batch * copy operation. For example, to copy objects to a bucket named * destinationBucket, set the TargetResource property to * arn:aws:s3:::destinationBucket.

*/ inline S3CopyObjectOperation& WithTargetResource(const char* value) { SetTargetResource(value); return *this;} /** *

*/ inline const S3CannedAccessControlList& GetCannedAccessControlList() const{ return m_cannedAccessControlList; } /** *

*/ inline bool CannedAccessControlListHasBeenSet() const { return m_cannedAccessControlListHasBeenSet; } /** *

*/ inline void SetCannedAccessControlList(const S3CannedAccessControlList& value) { m_cannedAccessControlListHasBeenSet = true; m_cannedAccessControlList = value; } /** *

*/ inline void SetCannedAccessControlList(S3CannedAccessControlList&& value) { m_cannedAccessControlListHasBeenSet = true; m_cannedAccessControlList = std::move(value); } /** *

*/ inline S3CopyObjectOperation& WithCannedAccessControlList(const S3CannedAccessControlList& value) { SetCannedAccessControlList(value); return *this;} /** *

*/ inline S3CopyObjectOperation& WithCannedAccessControlList(S3CannedAccessControlList&& value) { SetCannedAccessControlList(std::move(value)); return *this;} /** *

*/ inline const Aws::Vector& GetAccessControlGrants() const{ return m_accessControlGrants; } /** *

*/ inline bool AccessControlGrantsHasBeenSet() const { return m_accessControlGrantsHasBeenSet; } /** *

*/ inline void SetAccessControlGrants(const Aws::Vector& value) { m_accessControlGrantsHasBeenSet = true; m_accessControlGrants = value; } /** *

*/ inline void SetAccessControlGrants(Aws::Vector&& value) { m_accessControlGrantsHasBeenSet = true; m_accessControlGrants = std::move(value); } /** *

*/ inline S3CopyObjectOperation& WithAccessControlGrants(const Aws::Vector& value) { SetAccessControlGrants(value); return *this;} /** *

*/ inline S3CopyObjectOperation& WithAccessControlGrants(Aws::Vector&& value) { SetAccessControlGrants(std::move(value)); return *this;} /** *

*/ inline S3CopyObjectOperation& AddAccessControlGrants(const S3Grant& value) { m_accessControlGrantsHasBeenSet = true; m_accessControlGrants.push_back(value); return *this; } /** *

*/ inline S3CopyObjectOperation& AddAccessControlGrants(S3Grant&& value) { m_accessControlGrantsHasBeenSet = true; m_accessControlGrants.push_back(std::move(value)); return *this; } /** *

*/ inline const S3MetadataDirective& GetMetadataDirective() const{ return m_metadataDirective; } /** *

*/ inline bool MetadataDirectiveHasBeenSet() const { return m_metadataDirectiveHasBeenSet; } /** *

*/ inline void SetMetadataDirective(const S3MetadataDirective& value) { m_metadataDirectiveHasBeenSet = true; m_metadataDirective = value; } /** *

*/ inline void SetMetadataDirective(S3MetadataDirective&& value) { m_metadataDirectiveHasBeenSet = true; m_metadataDirective = std::move(value); } /** *

*/ inline S3CopyObjectOperation& WithMetadataDirective(const S3MetadataDirective& value) { SetMetadataDirective(value); return *this;} /** *

*/ inline S3CopyObjectOperation& WithMetadataDirective(S3MetadataDirective&& value) { SetMetadataDirective(std::move(value)); return *this;} /** *

*/ inline const Aws::Utils::DateTime& GetModifiedSinceConstraint() const{ return m_modifiedSinceConstraint; } /** *

*/ inline bool ModifiedSinceConstraintHasBeenSet() const { return m_modifiedSinceConstraintHasBeenSet; } /** *

*/ inline void SetModifiedSinceConstraint(const Aws::Utils::DateTime& value) { m_modifiedSinceConstraintHasBeenSet = true; m_modifiedSinceConstraint = value; } /** *

*/ inline void SetModifiedSinceConstraint(Aws::Utils::DateTime&& value) { m_modifiedSinceConstraintHasBeenSet = true; m_modifiedSinceConstraint = std::move(value); } /** *

*/ inline S3CopyObjectOperation& WithModifiedSinceConstraint(const Aws::Utils::DateTime& value) { SetModifiedSinceConstraint(value); return *this;} /** *

*/ inline S3CopyObjectOperation& WithModifiedSinceConstraint(Aws::Utils::DateTime&& value) { SetModifiedSinceConstraint(std::move(value)); return *this;} /** *

If you don't provide this parameter, Amazon S3 copies all the metadata from * the original objects. If you specify an empty set, the new objects will have no * tags. Otherwise, Amazon S3 assigns the supplied tags to the new objects.

*/ inline const S3ObjectMetadata& GetNewObjectMetadata() const{ return m_newObjectMetadata; } /** *

If you don't provide this parameter, Amazon S3 copies all the metadata from * the original objects. If you specify an empty set, the new objects will have no * tags. Otherwise, Amazon S3 assigns the supplied tags to the new objects.

*/ inline bool NewObjectMetadataHasBeenSet() const { return m_newObjectMetadataHasBeenSet; } /** *

If you don't provide this parameter, Amazon S3 copies all the metadata from * the original objects. If you specify an empty set, the new objects will have no * tags. Otherwise, Amazon S3 assigns the supplied tags to the new objects.

*/ inline void SetNewObjectMetadata(const S3ObjectMetadata& value) { m_newObjectMetadataHasBeenSet = true; m_newObjectMetadata = value; } /** *

If you don't provide this parameter, Amazon S3 copies all the metadata from * the original objects. If you specify an empty set, the new objects will have no * tags. Otherwise, Amazon S3 assigns the supplied tags to the new objects.

*/ inline void SetNewObjectMetadata(S3ObjectMetadata&& value) { m_newObjectMetadataHasBeenSet = true; m_newObjectMetadata = std::move(value); } /** *

If you don't provide this parameter, Amazon S3 copies all the metadata from * the original objects. If you specify an empty set, the new objects will have no * tags. Otherwise, Amazon S3 assigns the supplied tags to the new objects.

*/ inline S3CopyObjectOperation& WithNewObjectMetadata(const S3ObjectMetadata& value) { SetNewObjectMetadata(value); return *this;} /** *

If you don't provide this parameter, Amazon S3 copies all the metadata from * the original objects. If you specify an empty set, the new objects will have no * tags. Otherwise, Amazon S3 assigns the supplied tags to the new objects.

*/ inline S3CopyObjectOperation& WithNewObjectMetadata(S3ObjectMetadata&& value) { SetNewObjectMetadata(std::move(value)); return *this;} /** *

*/ inline const Aws::Vector& GetNewObjectTagging() const{ return m_newObjectTagging; } /** *

*/ inline bool NewObjectTaggingHasBeenSet() const { return m_newObjectTaggingHasBeenSet; } /** *

*/ inline void SetNewObjectTagging(const Aws::Vector& value) { m_newObjectTaggingHasBeenSet = true; m_newObjectTagging = value; } /** *

*/ inline void SetNewObjectTagging(Aws::Vector&& value) { m_newObjectTaggingHasBeenSet = true; m_newObjectTagging = std::move(value); } /** *

*/ inline S3CopyObjectOperation& WithNewObjectTagging(const Aws::Vector& value) { SetNewObjectTagging(value); return *this;} /** *

*/ inline S3CopyObjectOperation& WithNewObjectTagging(Aws::Vector&& value) { SetNewObjectTagging(std::move(value)); return *this;} /** *

*/ inline S3CopyObjectOperation& AddNewObjectTagging(const S3Tag& value) { m_newObjectTaggingHasBeenSet = true; m_newObjectTagging.push_back(value); return *this; } /** *

*/ inline S3CopyObjectOperation& AddNewObjectTagging(S3Tag&& value) { m_newObjectTaggingHasBeenSet = true; m_newObjectTagging.push_back(std::move(value)); return *this; } /** *

Specifies an optional metadata property for website redirects, * x-amz-website-redirect-location. Allows webpage redirects if the * object is accessed through a website endpoint.

*/ inline const Aws::String& GetRedirectLocation() const{ return m_redirectLocation; } /** *

Specifies an optional metadata property for website redirects, * x-amz-website-redirect-location. Allows webpage redirects if the * object is accessed through a website endpoint.

*/ inline bool RedirectLocationHasBeenSet() const { return m_redirectLocationHasBeenSet; } /** *

Specifies an optional metadata property for website redirects, * x-amz-website-redirect-location. Allows webpage redirects if the * object is accessed through a website endpoint.

*/ inline void SetRedirectLocation(const Aws::String& value) { m_redirectLocationHasBeenSet = true; m_redirectLocation = value; } /** *

Specifies an optional metadata property for website redirects, * x-amz-website-redirect-location. Allows webpage redirects if the * object is accessed through a website endpoint.

*/ inline void SetRedirectLocation(Aws::String&& value) { m_redirectLocationHasBeenSet = true; m_redirectLocation = std::move(value); } /** *

Specifies an optional metadata property for website redirects, * x-amz-website-redirect-location. Allows webpage redirects if the * object is accessed through a website endpoint.

*/ inline void SetRedirectLocation(const char* value) { m_redirectLocationHasBeenSet = true; m_redirectLocation.assign(value); } /** *

Specifies an optional metadata property for website redirects, * x-amz-website-redirect-location. Allows webpage redirects if the * object is accessed through a website endpoint.

*/ inline S3CopyObjectOperation& WithRedirectLocation(const Aws::String& value) { SetRedirectLocation(value); return *this;} /** *

Specifies an optional metadata property for website redirects, * x-amz-website-redirect-location. Allows webpage redirects if the * object is accessed through a website endpoint.

*/ inline S3CopyObjectOperation& WithRedirectLocation(Aws::String&& value) { SetRedirectLocation(std::move(value)); return *this;} /** *

Specifies an optional metadata property for website redirects, * x-amz-website-redirect-location. Allows webpage redirects if the * object is accessed through a website endpoint.

*/ inline S3CopyObjectOperation& WithRedirectLocation(const char* value) { SetRedirectLocation(value); return *this;} /** *

*/ inline bool GetRequesterPays() const{ return m_requesterPays; } /** *

*/ inline bool RequesterPaysHasBeenSet() const { return m_requesterPaysHasBeenSet; } /** *

*/ inline void SetRequesterPays(bool value) { m_requesterPaysHasBeenSet = true; m_requesterPays = value; } /** *

*/ inline S3CopyObjectOperation& WithRequesterPays(bool value) { SetRequesterPays(value); return *this;} /** *

*/ inline const S3StorageClass& GetStorageClass() const{ return m_storageClass; } /** *

*/ inline bool StorageClassHasBeenSet() const { return m_storageClassHasBeenSet; } /** *

*/ inline void SetStorageClass(const S3StorageClass& value) { m_storageClassHasBeenSet = true; m_storageClass = value; } /** *

*/ inline void SetStorageClass(S3StorageClass&& value) { m_storageClassHasBeenSet = true; m_storageClass = std::move(value); } /** *

*/ inline S3CopyObjectOperation& WithStorageClass(const S3StorageClass& value) { SetStorageClass(value); return *this;} /** *

*/ inline S3CopyObjectOperation& WithStorageClass(S3StorageClass&& value) { SetStorageClass(std::move(value)); return *this;} /** *

*/ inline const Aws::Utils::DateTime& GetUnModifiedSinceConstraint() const{ return m_unModifiedSinceConstraint; } /** *

*/ inline bool UnModifiedSinceConstraintHasBeenSet() const { return m_unModifiedSinceConstraintHasBeenSet; } /** *

*/ inline void SetUnModifiedSinceConstraint(const Aws::Utils::DateTime& value) { m_unModifiedSinceConstraintHasBeenSet = true; m_unModifiedSinceConstraint = value; } /** *

*/ inline void SetUnModifiedSinceConstraint(Aws::Utils::DateTime&& value) { m_unModifiedSinceConstraintHasBeenSet = true; m_unModifiedSinceConstraint = std::move(value); } /** *

*/ inline S3CopyObjectOperation& WithUnModifiedSinceConstraint(const Aws::Utils::DateTime& value) { SetUnModifiedSinceConstraint(value); return *this;} /** *

*/ inline S3CopyObjectOperation& WithUnModifiedSinceConstraint(Aws::Utils::DateTime&& value) { SetUnModifiedSinceConstraint(std::move(value)); return *this;} /** *

*/ inline const Aws::String& GetSSEAwsKmsKeyId() const{ return m_sSEAwsKmsKeyId; } /** *

*/ inline bool SSEAwsKmsKeyIdHasBeenSet() const { return m_sSEAwsKmsKeyIdHasBeenSet; } /** *

*/ inline void SetSSEAwsKmsKeyId(const Aws::String& value) { m_sSEAwsKmsKeyIdHasBeenSet = true; m_sSEAwsKmsKeyId = value; } /** *

*/ inline void SetSSEAwsKmsKeyId(Aws::String&& value) { m_sSEAwsKmsKeyIdHasBeenSet = true; m_sSEAwsKmsKeyId = std::move(value); } /** *

*/ inline void SetSSEAwsKmsKeyId(const char* value) { m_sSEAwsKmsKeyIdHasBeenSet = true; m_sSEAwsKmsKeyId.assign(value); } /** *

*/ inline S3CopyObjectOperation& WithSSEAwsKmsKeyId(const Aws::String& value) { SetSSEAwsKmsKeyId(value); return *this;} /** *

*/ inline S3CopyObjectOperation& WithSSEAwsKmsKeyId(Aws::String&& value) { SetSSEAwsKmsKeyId(std::move(value)); return *this;} /** *

*/ inline S3CopyObjectOperation& WithSSEAwsKmsKeyId(const char* value) { SetSSEAwsKmsKeyId(value); return *this;} /** *

Specifies the folder prefix that you want the objects to be copied into. For * example, to copy objects into a folder named Folder1 in the * destination bucket, set the TargetKeyPrefix property to * Folder1.

*/ inline const Aws::String& GetTargetKeyPrefix() const{ return m_targetKeyPrefix; } /** *

Specifies the folder prefix that you want the objects to be copied into. For * example, to copy objects into a folder named Folder1 in the * destination bucket, set the TargetKeyPrefix property to * Folder1.

*/ inline bool TargetKeyPrefixHasBeenSet() const { return m_targetKeyPrefixHasBeenSet; } /** *

Specifies the folder prefix that you want the objects to be copied into. For * example, to copy objects into a folder named Folder1 in the * destination bucket, set the TargetKeyPrefix property to * Folder1.

*/ inline void SetTargetKeyPrefix(const Aws::String& value) { m_targetKeyPrefixHasBeenSet = true; m_targetKeyPrefix = value; } /** *

Specifies the folder prefix that you want the objects to be copied into. For * example, to copy objects into a folder named Folder1 in the * destination bucket, set the TargetKeyPrefix property to * Folder1.

*/ inline void SetTargetKeyPrefix(Aws::String&& value) { m_targetKeyPrefixHasBeenSet = true; m_targetKeyPrefix = std::move(value); } /** *

Specifies the folder prefix that you want the objects to be copied into. For * example, to copy objects into a folder named Folder1 in the * destination bucket, set the TargetKeyPrefix property to * Folder1.

*/ inline void SetTargetKeyPrefix(const char* value) { m_targetKeyPrefixHasBeenSet = true; m_targetKeyPrefix.assign(value); } /** *

Specifies the folder prefix that you want the objects to be copied into. For * example, to copy objects into a folder named Folder1 in the * destination bucket, set the TargetKeyPrefix property to * Folder1.

*/ inline S3CopyObjectOperation& WithTargetKeyPrefix(const Aws::String& value) { SetTargetKeyPrefix(value); return *this;} /** *

Specifies the folder prefix that you want the objects to be copied into. For * example, to copy objects into a folder named Folder1 in the * destination bucket, set the TargetKeyPrefix property to * Folder1.

*/ inline S3CopyObjectOperation& WithTargetKeyPrefix(Aws::String&& value) { SetTargetKeyPrefix(std::move(value)); return *this;} /** *

Specifies the folder prefix that you want the objects to be copied into. For * example, to copy objects into a folder named Folder1 in the * destination bucket, set the TargetKeyPrefix property to * Folder1.

*/ inline S3CopyObjectOperation& WithTargetKeyPrefix(const char* value) { SetTargetKeyPrefix(value); return *this;} /** *

The legal hold status to be applied to all objects in the Batch Operations * job.

*/ inline const S3ObjectLockLegalHoldStatus& GetObjectLockLegalHoldStatus() const{ return m_objectLockLegalHoldStatus; } /** *

The legal hold status to be applied to all objects in the Batch Operations * job.

*/ inline bool ObjectLockLegalHoldStatusHasBeenSet() const { return m_objectLockLegalHoldStatusHasBeenSet; } /** *

The legal hold status to be applied to all objects in the Batch Operations * job.

*/ inline void SetObjectLockLegalHoldStatus(const S3ObjectLockLegalHoldStatus& value) { m_objectLockLegalHoldStatusHasBeenSet = true; m_objectLockLegalHoldStatus = value; } /** *

The legal hold status to be applied to all objects in the Batch Operations * job.

*/ inline void SetObjectLockLegalHoldStatus(S3ObjectLockLegalHoldStatus&& value) { m_objectLockLegalHoldStatusHasBeenSet = true; m_objectLockLegalHoldStatus = std::move(value); } /** *

The legal hold status to be applied to all objects in the Batch Operations * job.

*/ inline S3CopyObjectOperation& WithObjectLockLegalHoldStatus(const S3ObjectLockLegalHoldStatus& value) { SetObjectLockLegalHoldStatus(value); return *this;} /** *

The legal hold status to be applied to all objects in the Batch Operations * job.

*/ inline S3CopyObjectOperation& WithObjectLockLegalHoldStatus(S3ObjectLockLegalHoldStatus&& value) { SetObjectLockLegalHoldStatus(std::move(value)); return *this;} /** *

The retention mode to be applied to all objects in the Batch Operations * job.

*/ inline const S3ObjectLockMode& GetObjectLockMode() const{ return m_objectLockMode; } /** *

The retention mode to be applied to all objects in the Batch Operations * job.

*/ inline bool ObjectLockModeHasBeenSet() const { return m_objectLockModeHasBeenSet; } /** *

The retention mode to be applied to all objects in the Batch Operations * job.

*/ inline void SetObjectLockMode(const S3ObjectLockMode& value) { m_objectLockModeHasBeenSet = true; m_objectLockMode = value; } /** *

The retention mode to be applied to all objects in the Batch Operations * job.

*/ inline void SetObjectLockMode(S3ObjectLockMode&& value) { m_objectLockModeHasBeenSet = true; m_objectLockMode = std::move(value); } /** *

The retention mode to be applied to all objects in the Batch Operations * job.

*/ inline S3CopyObjectOperation& WithObjectLockMode(const S3ObjectLockMode& value) { SetObjectLockMode(value); return *this;} /** *

The retention mode to be applied to all objects in the Batch Operations * job.

*/ inline S3CopyObjectOperation& WithObjectLockMode(S3ObjectLockMode&& value) { SetObjectLockMode(std::move(value)); return *this;} /** *

The date when the applied object retention configuration expires on all * objects in the Batch Operations job.

*/ inline const Aws::Utils::DateTime& GetObjectLockRetainUntilDate() const{ return m_objectLockRetainUntilDate; } /** *

The date when the applied object retention configuration expires on all * objects in the Batch Operations job.

*/ inline bool ObjectLockRetainUntilDateHasBeenSet() const { return m_objectLockRetainUntilDateHasBeenSet; } /** *

The date when the applied object retention configuration expires on all * objects in the Batch Operations job.

*/ inline void SetObjectLockRetainUntilDate(const Aws::Utils::DateTime& value) { m_objectLockRetainUntilDateHasBeenSet = true; m_objectLockRetainUntilDate = value; } /** *

The date when the applied object retention configuration expires on all * objects in the Batch Operations job.

*/ inline void SetObjectLockRetainUntilDate(Aws::Utils::DateTime&& value) { m_objectLockRetainUntilDateHasBeenSet = true; m_objectLockRetainUntilDate = std::move(value); } /** *

The date when the applied object retention configuration expires on all * objects in the Batch Operations job.

*/ inline S3CopyObjectOperation& WithObjectLockRetainUntilDate(const Aws::Utils::DateTime& value) { SetObjectLockRetainUntilDate(value); return *this;} /** *

The date when the applied object retention configuration expires on all * objects in the Batch Operations job.

*/ inline S3CopyObjectOperation& WithObjectLockRetainUntilDate(Aws::Utils::DateTime&& value) { SetObjectLockRetainUntilDate(std::move(value)); return *this;} /** *

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption * with server-side encryption using Amazon Web Services KMS (SSE-KMS). Setting * this header to true causes Amazon S3 to use an S3 Bucket Key for * object encryption with SSE-KMS.

Specifying this header with an * object action doesn’t affect bucket-level settings for S3 Bucket * Key.

*/ inline bool GetBucketKeyEnabled() const{ return m_bucketKeyEnabled; } /** *

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption * with server-side encryption using Amazon Web Services KMS (SSE-KMS). Setting * this header to true causes Amazon S3 to use an S3 Bucket Key for * object encryption with SSE-KMS.

Specifying this header with an * object action doesn’t affect bucket-level settings for S3 Bucket * Key.

*/ inline bool BucketKeyEnabledHasBeenSet() const { return m_bucketKeyEnabledHasBeenSet; } /** *

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption * with server-side encryption using Amazon Web Services KMS (SSE-KMS). Setting * this header to true causes Amazon S3 to use an S3 Bucket Key for * object encryption with SSE-KMS.

Specifying this header with an * object action doesn’t affect bucket-level settings for S3 Bucket * Key.

*/ inline void SetBucketKeyEnabled(bool value) { m_bucketKeyEnabledHasBeenSet = true; m_bucketKeyEnabled = value; } /** *

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption * with server-side encryption using Amazon Web Services KMS (SSE-KMS). Setting * this header to true causes Amazon S3 to use an S3 Bucket Key for * object encryption with SSE-KMS.

Specifying this header with an * object action doesn’t affect bucket-level settings for S3 Bucket * Key.

*/ inline S3CopyObjectOperation& WithBucketKeyEnabled(bool value) { SetBucketKeyEnabled(value); return *this;} /** *

Indicates the algorithm that you want Amazon S3 to use to create the * checksum. For more information, see * Checking object integrity in the Amazon S3 User Guide.

*/ inline const S3ChecksumAlgorithm& GetChecksumAlgorithm() const{ return m_checksumAlgorithm; } /** *

Indicates the algorithm that you want Amazon S3 to use to create the * checksum. For more information, see * Checking object integrity in the Amazon S3 User Guide.

*/ inline bool ChecksumAlgorithmHasBeenSet() const { return m_checksumAlgorithmHasBeenSet; } /** *

Indicates the algorithm that you want Amazon S3 to use to create the * checksum. For more information, see * Checking object integrity in the Amazon S3 User Guide.

*/ inline void SetChecksumAlgorithm(const S3ChecksumAlgorithm& value) { m_checksumAlgorithmHasBeenSet = true; m_checksumAlgorithm = value; } /** *

Indicates the algorithm that you want Amazon S3 to use to create the * checksum. For more information, see * Checking object integrity in the Amazon S3 User Guide.

*/ inline void SetChecksumAlgorithm(S3ChecksumAlgorithm&& value) { m_checksumAlgorithmHasBeenSet = true; m_checksumAlgorithm = std::move(value); } /** *

Indicates the algorithm that you want Amazon S3 to use to create the * checksum. For more information, see * Checking object integrity in the Amazon S3 User Guide.

*/ inline S3CopyObjectOperation& WithChecksumAlgorithm(const S3ChecksumAlgorithm& value) { SetChecksumAlgorithm(value); return *this;} /** *

Indicates the algorithm that you want Amazon S3 to use to create the * checksum. For more information, see * Checking object integrity in the Amazon S3 User Guide.

*/ inline S3CopyObjectOperation& WithChecksumAlgorithm(S3ChecksumAlgorithm&& value) { SetChecksumAlgorithm(std::move(value)); return *this;} private: Aws::String m_targetResource; bool m_targetResourceHasBeenSet = false; S3CannedAccessControlList m_cannedAccessControlList; bool m_cannedAccessControlListHasBeenSet = false; Aws::Vector m_accessControlGrants; bool m_accessControlGrantsHasBeenSet = false; S3MetadataDirective m_metadataDirective; bool m_metadataDirectiveHasBeenSet = false; Aws::Utils::DateTime m_modifiedSinceConstraint; bool m_modifiedSinceConstraintHasBeenSet = false; S3ObjectMetadata m_newObjectMetadata; bool m_newObjectMetadataHasBeenSet = false; Aws::Vector m_newObjectTagging; bool m_newObjectTaggingHasBeenSet = false; Aws::String m_redirectLocation; bool m_redirectLocationHasBeenSet = false; bool m_requesterPays; bool m_requesterPaysHasBeenSet = false; S3StorageClass m_storageClass; bool m_storageClassHasBeenSet = false; Aws::Utils::DateTime m_unModifiedSinceConstraint; bool m_unModifiedSinceConstraintHasBeenSet = false; Aws::String m_sSEAwsKmsKeyId; bool m_sSEAwsKmsKeyIdHasBeenSet = false; Aws::String m_targetKeyPrefix; bool m_targetKeyPrefixHasBeenSet = false; S3ObjectLockLegalHoldStatus m_objectLockLegalHoldStatus; bool m_objectLockLegalHoldStatusHasBeenSet = false; S3ObjectLockMode m_objectLockMode; bool m_objectLockModeHasBeenSet = false; Aws::Utils::DateTime m_objectLockRetainUntilDate; bool m_objectLockRetainUntilDateHasBeenSet = false; bool m_bucketKeyEnabled; bool m_bucketKeyEnabledHasBeenSet = false; S3ChecksumAlgorithm m_checksumAlgorithm; bool m_checksumAlgorithmHasBeenSet = false; }; } // namespace Model } // namespace S3Control } // namespace Aws