/*
* 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:
///
/// -
///
/// The name of the destination bucket or buckets where you want S3 on Outposts to replicate
/// objects
///
///
-
///
/// The Identity and Access Management (IAM) role that S3 on Outposts can assume to replicate
/// objects on your behalf
///
///
-
///
/// Other relevant information, such as replication rules
///
///
///
/// 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;
}
}
}