class Aws::S3::Types::ReplicationRule

Specifies which Amazon S3 objects to replicate and where to store the replicas.

@note When making an API call, you may pass ReplicationRule

data as a hash:

    {
      id: "ID",
      priority: 1,
      prefix: "Prefix",
      filter: {
        prefix: "Prefix",
        tag: {
          key: "ObjectKey", # required
          value: "Value", # required
        },
        and: {
          prefix: "Prefix",
          tags: [
            {
              key: "ObjectKey", # required
              value: "Value", # required
            },
          ],
        },
      },
      status: "Enabled", # required, accepts Enabled, Disabled
      source_selection_criteria: {
        sse_kms_encrypted_objects: {
          status: "Enabled", # required, accepts Enabled, Disabled
        },
        replica_modifications: {
          status: "Enabled", # required, accepts Enabled, Disabled
        },
      },
      existing_object_replication: {
        status: "Enabled", # required, accepts Enabled, Disabled
      },
      destination: { # required
        bucket: "BucketName", # required
        account: "AccountId",
        storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
        access_control_translation: {
          owner: "Destination", # required, accepts Destination
        },
        encryption_configuration: {
          replica_kms_key_id: "ReplicaKmsKeyID",
        },
        replication_time: {
          status: "Enabled", # required, accepts Enabled, Disabled
          time: { # required
            minutes: 1,
          },
        },
        metrics: {
          status: "Enabled", # required, accepts Enabled, Disabled
          event_threshold: {
            minutes: 1,
          },
        },
      },
      delete_marker_replication: {
        status: "Enabled", # accepts Enabled, Disabled
      },
    }

@!attribute [rw] id

A unique identifier for the rule. The maximum value is 255
characters.
@return [String]

@!attribute [rw] priority

The priority indicates which rule has precedence whenever two or
more replication rules conflict. Amazon S3 will attempt to replicate
objects according to all replication rules. However, if there are
two or more rules with the same destination 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 [Replication][1] in the *Amazon S3 User
Guide*.

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html
@return [Integer]

@!attribute [rw] 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 a bucket, specify an empty
string.

Replacement must be made for object keys containing special
characters (such as carriage returns) when using XML requests. For
more information, see [ XML related object key constraints][1].

[1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints
@return [String]

@!attribute [rw] filter

A filter that identifies the subset of objects to which the
replication rule applies. A `Filter` must specify exactly one
`Prefix`, `Tag`, or an `And` child element.
@return [Types::ReplicationRuleFilter]

@!attribute [rw] status

Specifies whether the rule is enabled.
@return [String]

@!attribute [rw] source_selection_criteria

A container that describes additional filters for identifying the
source objects that you want to replicate. You can choose to enable
or disable the replication of these objects. Currently, Amazon S3
supports only the filter that you can specify for objects created
with server-side encryption using a customer master key (CMK) stored
in Amazon Web Services Key Management Service (SSE-KMS).
@return [Types::SourceSelectionCriteria]

@!attribute [rw] existing_object_replication

@return [Types::ExistingObjectReplication]

@!attribute [rw] destination

A container for information about the replication destination and
its configurations including enabling the S3 Replication Time
Control (S3 RTC).
@return [Types::Destination]

@!attribute [rw] delete_marker_replication

Specifies whether Amazon S3 replicates delete markers. If you
specify a `Filter` in your replication configuration, you must also
include a `DeleteMarkerReplication` element. If your `Filter`
includes a `Tag` element, the `DeleteMarkerReplication` `Status`
must be set to Disabled, because Amazon S3 does not support
replicating delete markers for tag-based rules. For an example
configuration, see [Basic Rule Configuration][1].

For more information about delete marker replication, see [Basic
Rule Configuration][2].

<note markdown="1"> 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][3].

 </note>

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config
[2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html
[3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations
@return [Types::DeleteMarkerReplication]

@see docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationRule AWS API Documentation

Constants

SENSITIVE