/* * 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.Linq; using System.Text; namespace Amazon.S3.Model { /// /// Specifies information about where to publish analysis or configuration results for /// an Amazon S3 bucket and S3 Replication Time Control (S3 RTC). /// public class ReplicationDestination { private AccessControlTranslation accessControlTranslation; private string accountId; private string bucketArn; private EncryptionConfiguration encryptionConfiguration; private Metrics metrics; private ReplicationTime replicationTime; private S3StorageClass storageClass; /// /// Gets and sets the property AccessControlTranslation. /// /// Specify this only in a cross-account scenario (where source and destination bucket /// owners are not the same), and you want to change replica ownership to the Amazon Web /// Services account that owns the destination bucket. If this is not specified in the /// replication configuration, the replicas are owned by same Amazon Web Services account /// that owns the source object. /// /// public AccessControlTranslation AccessControlTranslation { get { return this.accessControlTranslation; } set { this.accessControlTranslation = value; } } // Check to see if AccessControlTranslation property is set public bool IsSetAccessControlTranslation() { return this.accessControlTranslation != null; } /// /// Gets and sets the property AccountId. /// /// Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon /// S3 to change replica ownership to the Amazon Web Services account that owns the destination /// bucket by specifying the AccessControlTranslation property, this is the /// account ID of the destination bucket owner. For more information, see Replication /// Additional Configuration: Changing the Replica Owner in the Amazon S3 User /// Guide. /// /// public string AccountId { get { return this.accountId; } set { this.accountId = value; } } // Check to see if AccountId property is set public bool IsSetAccountId() { return !(string.IsNullOrEmpty(this.accountId)); } /// /// Amazon resource name (ARN) of the bucket where you want Amazon /// S3 to store replicas of the object identified by the rule. /// If you have multiple rules in your replication configuration, all /// rules must specify the same bucket as the destination. A replication /// configuration can replicate objects only to one destination bucket. /// public string BucketArn { get { return this.bucketArn; } set { this.bucketArn = value; } } /// /// Checks to see if BucketArn property is set. /// /// true if BucketArn property is set. internal bool IsSetBucketArn() { return !System.String.IsNullOrEmpty(this.bucketArn); } /// /// Gets and sets the property EncryptionConfiguration. /// /// A container that provides information about encryption. If SourceSelectionCriteria /// is specified, you must specify this element. /// /// public EncryptionConfiguration EncryptionConfiguration { get { return this.encryptionConfiguration; } set { this.encryptionConfiguration = value; } } // Check to see if EncryptionConfiguration property is set public bool IsSetEncryptionConfiguration() { return this.encryptionConfiguration != null; } /// /// Gets and sets the property Metrics. /// /// A container specifying replication metrics-related settings enabling replication /// metrics and events. /// /// public Metrics Metrics { get { return this.metrics; } set { this.metrics = value; } } // Check to see if Metrics property is set internal bool IsSetMetrics() { return this.metrics != null; } /// /// Gets and sets the property ReplicationTime. /// /// A container specifying S3 Replication Time Control (S3 RTC), including whether S3 /// RTC is enabled and the time when all objects and operations on objects must be replicated. /// Must be specified together with a Metrics block. /// /// public ReplicationTime ReplicationTime { get { return this.replicationTime; } set { this.replicationTime = value; } } // Check to see if ReplicationTime property is set internal bool IsSetReplicationTime() { return this.replicationTime != null; } /// /// Gets and sets the property StorageClass. /// /// The storage class to use when replicating objects, such as S3 Standard or reduced /// redundancy. By default, Amazon S3 uses the storage class of the source object to create /// the object replica. /// /// /// /// For valid values, see the StorageClass element of the PUT /// Bucket replication action in the Amazon S3 API Reference. /// /// public S3StorageClass StorageClass { get { return this.storageClass; } set { this.storageClass = value; } } // Check to see if StorageClass property is set internal bool IsSetStorageClass() { return this.storageClass != null; } } }