/* * 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. */ /* * Do not modify this file. This file is generated from the s3control-2018-08-20.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.S3Control.Model { /// /// Container for the parameters to the PutBucketReplication operation. /// /// /// This action creates an Amazon S3 on Outposts bucket's replication configuration. To /// create an S3 bucket's replication configuration, see PutBucketReplication /// in the Amazon S3 API Reference. /// /// /// /// Creates a replication configuration or replaces an existing one. For information about /// S3 replication on Outposts configuration, see Replicating /// objects for S3 on Outposts in the Amazon S3 User Guide. /// /// /// /// It can take a while to propagate PUT or DELETE requests /// for a replication configuration to all S3 on Outposts systems. Therefore, the replication /// configuration that's returned by a GET request soon after a PUT /// or DELETE request might return a more recent result than what's on the /// Outpost. If an Outpost is offline, the delay in updating the replication configuration /// on that Outpost can be significant. /// /// /// /// Specify the replication configuration in the request body. In the replication configuration, /// you provide the following information: /// /// /// /// A replication configuration must include at least one rule and can contain a maximum /// of 100. Each rule identifies a subset of objects to replicate by filtering the objects /// in the source Outposts 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 Outposts 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. /// /// /// /// Using PutBucketReplication on Outposts requires that both the source /// and destination buckets must have versioning enabled. For information about enabling /// versioning on a bucket, see Managing /// S3 Versioning for your S3 on Outposts bucket. /// /// /// /// For information about S3 on Outposts replication failure reasons, see Replication /// failure reasons in the Amazon S3 User Guide. /// /// /// /// Handling Replication of Encrypted Objects /// /// /// /// Outposts buckets are encrypted at all times. All the objects in the source Outposts /// bucket are encrypted and can be replicated. Also, all the replicas in the destination /// Outposts bucket are encrypted with the same encryption key as the objects in the source /// Outposts bucket. /// /// /// /// Permissions /// /// /// /// To create a PutBucketReplication request, you must have s3-outposts:PutReplicationConfiguration /// permissions for the bucket. The Outposts bucket owner has this permission by default /// and can grant it to others. For more information about permissions, see Setting /// up IAM with S3 on Outposts and Managing /// access to S3 on Outposts buckets. /// /// /// /// To perform this operation, the user or role must also have the iam:CreateRole /// and iam:PassRole permissions. For more information, see Granting /// a user permissions to pass a role to an Amazon Web Services service. /// /// /// /// All Amazon S3 on Outposts REST API requests for this action require an additional /// parameter of x-amz-outpost-id to be passed with the request. In addition, /// you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. /// For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on /// Outposts endpoint hostname prefix and the x-amz-outpost-id derived by /// using the access point ARN, see the Examples /// section. /// /// /// /// The following operations are related to PutBucketReplication: /// /// /// public partial class PutBucketReplicationRequest : AmazonS3ControlRequest { private string _accountId; private string _bucket; private ReplicationConfiguration _replicationConfiguration; /// /// Gets and sets the property AccountId. /// /// The Amazon Web Services account ID of the Outposts bucket. /// /// [AWSProperty(Required=true, Max=64)] public string AccountId { get { return this._accountId; } set { this._accountId = value; } } // Check to see if AccountId property is set internal bool IsSetAccountId() { return this._accountId != null; } /// /// Gets and sets the property Bucket. /// /// Specifies the S3 on Outposts bucket to set the configuration for. /// /// /// /// For using this parameter with Amazon S3 on Outposts with the REST API, you must specify /// the name and the x-amz-outpost-id as well. /// /// /// /// For using this parameter with S3 on Outposts with the Amazon Web Services SDK and /// CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. /// For example, to access the bucket reports through Outpost my-outpost /// owned by account 123456789012 in Region us-west-2, use the /// URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. /// The value must be URL encoded. /// /// [AWSProperty(Required=true, Min=3, Max=255)] public string Bucket { get { return this._bucket; } set { this._bucket = value; } } // Check to see if Bucket property is set internal bool IsSetBucket() { return this._bucket != null; } /// /// Gets and sets the property ReplicationConfiguration. /// [AWSProperty(Required=true)] public ReplicationConfiguration ReplicationConfiguration { get { return this._replicationConfiguration; } set { this._replicationConfiguration = value; } } // Check to see if ReplicationConfiguration property is set internal bool IsSetReplicationConfiguration() { return this._replicationConfiguration != null; } } }