/*
* 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;
}
}
}