/*
* 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
{
///
/// Specifies which S3 on Outposts objects to replicate and where to store the replicas.
///
public partial class ReplicationRule
{
private string _bucket;
private DeleteMarkerReplication _deleteMarkerReplication;
private Destination _destination;
private ExistingObjectReplication _existingObjectReplication;
private ReplicationRuleFilter _filter;
private string _id;
private string _prefix;
private int? _priority;
private SourceSelectionCriteria _sourceSelectionCriteria;
private ReplicationRuleStatus _status;
///
/// Gets and sets the property Bucket.
///
/// The Amazon Resource Name (ARN) of the access point for the source Outposts bucket
/// that you want S3 on Outposts to replicate the objects from.
///
///
[AWSProperty(Required=true)]
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 DeleteMarkerReplication.
///
/// Specifies whether S3 on Outposts replicates delete markers. If you specify a Filter
/// element in your replication configuration, you must also include a DeleteMarkerReplication
/// element. If your Filter
includes a Tag
element, the DeleteMarkerReplication
/// element's Status
child element must be set to Disabled
,
/// because S3 on Outposts doesn't support replicating delete markers for tag-based rules.
///
///
///
/// For more information about delete marker replication, see How
/// delete operations affect replication in the Amazon S3 User Guide.
///
///
public DeleteMarkerReplication DeleteMarkerReplication
{
get { return this._deleteMarkerReplication; }
set { this._deleteMarkerReplication = value; }
}
// Check to see if DeleteMarkerReplication property is set
internal bool IsSetDeleteMarkerReplication()
{
return this._deleteMarkerReplication != null;
}
///
/// Gets and sets the property Destination.
///
/// A container for information about the replication destination and its configurations.
///
///
[AWSProperty(Required=true)]
public Destination Destination
{
get { return this._destination; }
set { this._destination = value; }
}
// Check to see if Destination property is set
internal bool IsSetDestination()
{
return this._destination != null;
}
///
/// Gets and sets the property ExistingObjectReplication.
///
/// An optional configuration to replicate existing source bucket objects.
///
///
///
/// This is not supported by Amazon S3 on Outposts buckets.
///
///
///
public ExistingObjectReplication ExistingObjectReplication
{
get { return this._existingObjectReplication; }
set { this._existingObjectReplication = value; }
}
// Check to see if ExistingObjectReplication property is set
internal bool IsSetExistingObjectReplication()
{
return this._existingObjectReplication != null;
}
///
/// Gets and sets the property Filter.
///
/// A filter that identifies the subset of objects to which the replication rule applies.
/// A Filter
element must specify exactly one Prefix
, Tag
,
/// or And
child element.
///
///
public ReplicationRuleFilter Filter
{
get { return this._filter; }
set { this._filter = value; }
}
// Check to see if Filter property is set
internal bool IsSetFilter()
{
return this._filter != null;
}
///
/// Gets and sets the property ID.
///
/// A unique identifier for the rule. The maximum value is 255 characters.
///
///
public string ID
{
get { return this._id; }
set { this._id = value; }
}
// Check to see if ID property is set
internal bool IsSetID()
{
return this._id != null;
}
///
/// Gets and sets the property Prefix.
///
/// An object key name prefix that identifies the object or objects to which the rule
/// applies. The maximum prefix length is 1,024 characters. To include all objects in
/// an Outposts bucket, specify an empty string.
///
///
///
/// When you're using XML requests, you must replace special characters (such as carriage
/// returns) in object keys with their equivalent XML entity codes. For more information,
/// see
/// XML-related object key constraints in the Amazon S3 User Guide.
///
///
///
[Obsolete("Prefix has been deprecated")]
public string Prefix
{
get { return this._prefix; }
set { this._prefix = value; }
}
// Check to see if Prefix property is set
internal bool IsSetPrefix()
{
return this._prefix != null;
}
///
/// Gets and sets the property Priority.
///
/// The priority indicates which rule has precedence whenever two or more replication
/// rules conflict. S3 on Outposts attempts to replicate objects according to all replication
/// rules. However, if there are two or more rules with the same destination Outposts
/// bucket, then objects will be replicated according to the rule with the highest priority.
/// The higher the number, the higher the priority.
///
///
///
/// For more information, see Creating
/// replication rules on Outposts in the Amazon S3 User Guide.
///
///
public int Priority
{
get { return this._priority.GetValueOrDefault(); }
set { this._priority = value; }
}
// Check to see if Priority property is set
internal bool IsSetPriority()
{
return this._priority.HasValue;
}
///
/// Gets and sets the property SourceSelectionCriteria.
///
/// A container that describes additional filters for identifying the source Outposts
/// objects that you want to replicate. You can choose to enable or disable the replication
/// of these objects.
///
///
public SourceSelectionCriteria SourceSelectionCriteria
{
get { return this._sourceSelectionCriteria; }
set { this._sourceSelectionCriteria = value; }
}
// Check to see if SourceSelectionCriteria property is set
internal bool IsSetSourceSelectionCriteria()
{
return this._sourceSelectionCriteria != null;
}
///
/// Gets and sets the property Status.
///
/// Specifies whether the rule is enabled.
///
///
[AWSProperty(Required=true)]
public ReplicationRuleStatus Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
}
}