/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.S3.Model { /// /// Container for the parameters to the PutBucketReplication operation. /// Creates a replication configuration or replaces an existing one. For more information, /// see Replication /// in the Amazon S3 User Guide. /// /// /// /// Specify the replication configuration in the request body. In the replication configuration, /// you provide the name of the destination bucket or buckets where you want Amazon S3 /// to replicate objects, the IAM role that Amazon S3 can assume to replicate objects /// on your behalf, and other relevant information. /// /// /// /// A replication configuration must include at least one rule, and can contain a maximum /// of 1,000. Each rule identifies a subset of objects to replicate by filtering the objects /// in the source bucket. To choose additional subsets of objects to replicate, add a /// rule for each subset. /// /// /// /// To specify a subset of the objects in the source bucket to apply a replication rule /// to, add the Filter element as a child of the Rule element. You can filter objects /// based on an object key prefix, one or more object tags, or both. When you add the /// Filter element in the configuration, you must also add the following elements: DeleteMarkerReplication, /// Status, and Priority. /// /// /// /// If you are using an earlier version of the replication configuration, Amazon S3 handles /// replication of delete markers differently. For more information, see Backward /// Compatibility. /// /// /// /// For information about enabling versioning on a bucket, see Using /// Versioning. /// ///
Handling Replication of Encrypted Objects
/// /// By default, Amazon S3 doesn't replicate objects that are stored at rest using server-side /// encryption with CMKs stored in Amazon Web Services KMS. To replicate Amazon Web Services /// KMS-encrypted objects, add the following: SourceSelectionCriteria, SseKmsEncryptedObjects, /// Status, EncryptionConfiguration, and ReplicaKmsKeyID. /// For information about replication configuration, see Replicating /// Objects Created with SSE Using CMKs stored in Amazon Web Services KMS. /// /// /// /// For information on PutBucketReplication errors, see List /// of replication-related error codes /// ///
Permissions
/// /// To create a PutBucketReplication request, you must have s3:PutReplicationConfiguration /// permissions for the bucket. /// /// /// /// By default, a resource owner, in this case the Amazon Web Services account that created /// the bucket, can perform this operation. The resource owner can also grant others permissions /// to perform the operation. For more information about permissions, see Specifying /// Permissions in a Policy and Managing /// Access Permissions to Your Amazon S3 Resources. /// /// /// /// To perform this operation, the user or role performing the action must have the iam:PassRole /// permission. /// ///
/// /// The following operations are related to PutBucketReplication: /// /// ///
public partial class PutBucketReplicationRequest : AmazonWebServiceRequest { private string bucketName; private ChecksumAlgorithm _checksumAlgorithm; private string expectedBucketOwner; private ReplicationConfiguration configuration; private string token; /// /// Gets and sets the property BucketName. /// /// The name of the bucket /// /// public string BucketName { get { return this.bucketName; } set { this.bucketName = value; } } // Check to see if BucketName property is set internal bool IsSetBucketName() { return this.bucketName != null; } /// /// Gets and sets the property ChecksumAlgorithm. /// /// Indicates the algorithm used to create the checksum for the object. Amazon S3 will /// fail the request with a 400 error if there is no checksum associated with the object. /// For more information, see /// Checking object integrity in the Amazon S3 User Guide. /// /// public ChecksumAlgorithm ChecksumAlgorithm { get { return this._checksumAlgorithm; } set { this._checksumAlgorithm = value; } } // Check to see if ChecksumAlgorithm property is set internal bool IsSetChecksumAlgorithm() { return this._checksumAlgorithm != null; } /// /// Gets and sets the property ExpectedBucketOwner. /// /// The account ID of the expected bucket owner. If the bucket is owned by a different /// account, the request will fail with an HTTP 403 (Access Denied) error. /// /// public string ExpectedBucketOwner { get { return this.expectedBucketOwner; } set { this.expectedBucketOwner = value; } } /// /// Checks to see if ExpectedBucketOwner is set. /// /// true, if ExpectedBucketOwner property is set. internal bool IsSetExpectedBucketOwner() { return !String.IsNullOrEmpty(this.expectedBucketOwner); } /// /// The replication configuration to be applied. /// public ReplicationConfiguration Configuration { get { return this.configuration; } set { this.configuration = value; } } // Check to see if ReplicationConfiguration property is set internal bool IsSetConfiguration() { return this.configuration != null; } /// /// Gets and sets the property Token. /// /// A token to allow Object Lock to be enabled for an existing bucket. /// /// public string Token { get { return this.token; } set { this.token = value; } } // Check to see if Token property is set internal bool IsSetToken() { return this.token != null; } } }