Struct: s3.ReplicationRule

import "../ibm-cos-sdk-go/service/s3"

Overview

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

Implemented Interfaces

s3crypto.Cipher, s3manager.ReadSeekerWriteTo, request.Validator, s3manager.WriterReadFrom

Structure Field Summary collapse

Service Operations collapse

Structure Field Details

DeleteMarkerReplication *DeleteMarkerReplication `type:"structure" required:"true"`

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 (docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config).

For more information about delete marker replication, see Basic Rule Configuration (docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html).

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 (docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations).

DeleteMarkerReplication is a required field

Destination *Destination `type:"structure" required:"true"`

A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control (S3 RTC).

Destination is a required field

Filter *ReplicationRuleFilter `type:"structure" required:"true"`

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.

Filter is a required field

ID *string `type:"string"`

A unique identifier for the rule. The maximum value is 255 characters.

Prefix *string `deprecated:"true" type:"string"`

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 (docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).

Deprecated: Prefix has been deprecated

Priority *int64 `type:"integer" required:"true"`

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 (docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the Amazon S3 User Guide.

Priority is a required field

Status *string `type:"string" required:"true" enum:"ReplicationRuleStatus"`

Specifies whether the rule is enabled.

Status is a required field

_ struct{} `type:"structure"`

Method Details

func (s ReplicationRule) GoString() string

GoString returns the string representation.

API parameter values that are decorated as “sensitive” in the API will not be included in the string output. The member name will be present, but the value will be replaced with “sensitive”.



22042
22043
22044
// File 'service/s3/api.go', line 22042

func (s ReplicationRule) GoString() string { return s.String() }

func (s *ReplicationRule) SetDeleteMarkerReplication(v *DeleteMarkerReplication) *ReplicationRule

SetDeleteMarkerReplication sets the DeleteMarkerReplication field’s value.



22087
22088
22089
22090
// File 'service/s3/api.go', line 22087

func (s *ReplicationRule) SetDeleteMarkerReplication(v *DeleteMarkerReplication) *ReplicationRule { s.DeleteMarkerReplication = v return s }

func (s *ReplicationRule) SetDestination(v *Destination) *ReplicationRule

SetDestination sets the Destination field’s value.



22093
22094
22095
22096
// File 'service/s3/api.go', line 22093

func (s *ReplicationRule) SetDestination(v *Destination) *ReplicationRule { s.Destination = v return s }

func (s *ReplicationRule) SetFilter(v *ReplicationRuleFilter) *ReplicationRule

SetFilter sets the Filter field’s value.



22099
22100
22101
22102
// File 'service/s3/api.go', line 22099

func (s *ReplicationRule) SetFilter(v *ReplicationRuleFilter) *ReplicationRule { s.Filter = v return s }

func (s *ReplicationRule) SetID(v string) *ReplicationRule

SetID sets the ID field’s value.



22105
22106
22107
22108
// File 'service/s3/api.go', line 22105

func (s *ReplicationRule) SetID(v string) *ReplicationRule { s.ID = &v return s }

func (s *ReplicationRule) SetPrefix(v string) *ReplicationRule

SetPrefix sets the Prefix field’s value.



22111
22112
22113
22114
// File 'service/s3/api.go', line 22111

func (s *ReplicationRule) SetPrefix(v string) *ReplicationRule { s.Prefix = &v return s }

func (s *ReplicationRule) SetPriority(v int64) *ReplicationRule

SetPriority sets the Priority field’s value.



22117
22118
22119
22120
// File 'service/s3/api.go', line 22117

func (s *ReplicationRule) SetPriority(v int64) *ReplicationRule { s.Priority = &v return s }

func (s *ReplicationRule) SetStatus(v string) *ReplicationRule

SetStatus sets the Status field’s value.



22123
22124
22125
22126
// File 'service/s3/api.go', line 22123

func (s *ReplicationRule) SetStatus(v string) *ReplicationRule { s.Status = &v return s }

func (s ReplicationRule) String() string

String returns the string representation.

API parameter values that are decorated as “sensitive” in the API will not be included in the string output. The member name will be present, but the value will be replaced with “sensitive”.



22033
22034
22035
// File 'service/s3/api.go', line 22033

func (s ReplicationRule) String() string { return awsutil.Prettify(s) }

func (s *ReplicationRule) Validate() error

Validate inspects the fields of the type to determine if they are valid.



22047
22048
22049
22050
22051
22052
22053
22054
22055
22056
22057
22058
22059
22060
22061
22062
22063
22064
22065
22066
22067
22068
22069
22070
22071
22072
22073
22074
22075
22076
22077
22078
22079
22080
22081
22082
22083
22084
// File 'service/s3/api.go', line 22047

func (s *ReplicationRule) Validate() error { invalidParams := request.ErrInvalidParams{Context: "ReplicationRule"} if s.DeleteMarkerReplication == nil { invalidParams.Add(request.NewErrParamRequired("DeleteMarkerReplication")) } if s.Destination == nil { invalidParams.Add(request.NewErrParamRequired("Destination")) } if s.Filter == nil { invalidParams.Add(request.NewErrParamRequired("Filter")) } if s.Priority == nil { invalidParams.Add(request.NewErrParamRequired("Priority")) } if s.Status == nil { invalidParams.Add(request.NewErrParamRequired("Status")) } if s.DeleteMarkerReplication != nil { if err := s.DeleteMarkerReplication.Validate(); err != nil { invalidParams.AddNested("DeleteMarkerReplication", err.(request.ErrInvalidParams)) } } if s.Destination != nil { if err := s.Destination.Validate(); err != nil { invalidParams.AddNested("Destination", err.(request.ErrInvalidParams)) } } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil }