// Deletes an analytics configuration for the bucket (specified by the analytics
// configuration ID).
//
+// To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration
+// action. The bucket owner has this permission by default. The bucket owner
+// can grant this permission to others.
+//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
// DeleteBucketReplication API operation for Amazon Simple Storage Service.
//
// Deletes the replication configuration from the bucket. For information about
-// replication configuration, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
+// replication configuration, see Cross-Region Replication (CRR) (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
// in the Amazon S3 Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// GetObjectLockConfiguration API operation for Amazon Simple Storage Service.
//
-// Gets the Object Lock configuration for a bucket. The rule specified in the
-// Object Lock configuration will be applied by default to every new object
+// Gets the object lock configuration for a bucket. The rule specified in the
+// object lock configuration will be applied by default to every new object
// placed in the specified bucket.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// // Example iterating over at most 3 pages of a ListMultipartUploads operation.
// pageNum := 0
// err := client.ListMultipartUploadsPages(params,
-// func(page *ListMultipartUploadsOutput, lastPage bool) bool {
+// func(page *s3.ListMultipartUploadsOutput, lastPage bool) bool {
// pageNum++
// fmt.Println(page)
// return pageNum <= 3
// // Example iterating over at most 3 pages of a ListObjectVersions operation.
// pageNum := 0
// err := client.ListObjectVersionsPages(params,
-// func(page *ListObjectVersionsOutput, lastPage bool) bool {
+// func(page *s3.ListObjectVersionsOutput, lastPage bool) bool {
// pageNum++
// fmt.Println(page)
// return pageNum <= 3
// // Example iterating over at most 3 pages of a ListObjects operation.
// pageNum := 0
// err := client.ListObjectsPages(params,
-// func(page *ListObjectsOutput, lastPage bool) bool {
+// func(page *s3.ListObjectsOutput, lastPage bool) bool {
// pageNum++
// fmt.Println(page)
// return pageNum <= 3
// // Example iterating over at most 3 pages of a ListObjectsV2 operation.
// pageNum := 0
// err := client.ListObjectsV2Pages(params,
-// func(page *ListObjectsV2Output, lastPage bool) bool {
+// func(page *s3.ListObjectsV2Output, lastPage bool) bool {
// pageNum++
// fmt.Println(page)
// return pageNum <= 3
// // Example iterating over at most 3 pages of a ListParts operation.
// pageNum := 0
// err := client.ListPartsPages(params,
-// func(page *ListPartsOutput, lastPage bool) bool {
+// func(page *s3.ListPartsOutput, lastPage bool) bool {
// pageNum++
// fmt.Println(page)
// return pageNum <= 3
// PutBucketPolicy API operation for Amazon Simple Storage Service.
//
-// Replaces a policy on a bucket. If the bucket already has a policy, the one
-// in this request completely replaces it.
+// Applies an Amazon S3 bucket policy to an Amazon S3 bucket.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// PutBucketReplication API operation for Amazon Simple Storage Service.
//
// Creates a replication configuration or replaces an existing one. For more
-// information, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
+// information, see Cross-Region Replication (CRR) (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
// in the Amazon S3 Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// PutObjectLockConfiguration API operation for Amazon Simple Storage Service.
//
-// Places an Object Lock configuration on the specified bucket. The rule specified
-// in the Object Lock configuration will be applied by default to every new
+// Places an object lock configuration on the specified bucket. The rule specified
+// in the object lock configuration will be applied by default to every new
// object placed in the specified bucket.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
return out, req.Send()
}
-// Specifies the days since the initiation of an Incomplete Multipart Upload
-// that Lifecycle will wait before permanently removing all parts of the upload.
+// Specifies the days since the initiation of an incomplete multipart upload
+// that Amazon S3 will wait before permanently removing all parts of the upload.
+// For more information, see Aborting Incomplete Multipart Uploads Using a Bucket
+// Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
+// in the Amazon Simple Storage Service Developer Guide.
type AbortIncompleteMultipartUpload struct {
_ struct{} `type:"structure"`
- // Indicates the number of days that must pass since initiation for Lifecycle
- // to abort an Incomplete Multipart Upload.
+ // Specifies the number of days after which Amazon S3 aborts an incomplete multipart
+ // upload.
DaysAfterInitiation *int64 `type:"integer"`
}
type AbortMultipartUploadInput struct {
_ struct{} `type:"structure"`
+ // Name of the bucket to which the multipart upload was initiated.
+ //
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+ // Key of the object for which the multipart upload was initiated.
+ //
// Key is a required field
Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
// at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
+ // Upload ID that identifies the multipart upload.
+ //
// UploadId is a required field
UploadId *string `location:"querystring" locationName:"uploadId" type:"string" required:"true"`
}
return s
}
+// Configures the transfer acceleration state for an Amazon S3 bucket. For more
+// information, see Amazon S3 Transfer Acceleration (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html)
+// in the Amazon Simple Storage Service Developer Guide.
type AccelerateConfiguration struct {
_ struct{} `type:"structure"`
- // The accelerate configuration of the bucket.
+ // Specifies the transfer acceleration status of the bucket.
Status *string `type:"string" enum:"BucketAccelerateStatus"`
}
return s
}
+// Contains the elements that set the ACL permissions for an object per grantee.
type AccessControlPolicy struct {
_ struct{} `type:"structure"`
// A list of grants.
Grants []*Grant `locationName:"AccessControlList" locationNameList:"Grant" type:"list"`
+ // Container for the bucket owner's display name and ID.
Owner *Owner `type:"structure"`
}
type AccessControlTranslation struct {
_ struct{} `type:"structure"`
- // The override value for the owner of the replica object.
+ // Specifies the replica ownership. For default and valid values, see PUT bucket
+ // replication (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html)
+ // in the Amazon Simple Storage Service API Reference.
//
// Owner is a required field
Owner *string `type:"string" required:"true" enum:"OwnerOverride"`
return s
}
+// A conjunction (logical AND) of predicates, which is used in evaluating a
+// metrics filter. The operator must have at least two predicates in any combination,
+// and an object must match all of the predicates for the filter to apply.
type AnalyticsAndOperator struct {
_ struct{} `type:"structure"`
- // The prefix to use when evaluating an AND predicate.
+ // The prefix to use when evaluating an AND predicate: The prefix that an object
+ // must have to be included in the metrics results.
Prefix *string `type:"string"`
// The list of tags to use when evaluating an AND predicate.
return s
}
+// Specifies the configuration and any analyses for the analytics filter of
+// an Amazon S3 bucket.
+//
+// For more information, see GET Bucket analytics (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETAnalyticsConfig.html)
+// in the Amazon Simple Storage Service API Reference.
type AnalyticsConfiguration struct {
_ struct{} `type:"structure"`
// If no filter is provided, all objects will be considered in any analysis.
Filter *AnalyticsFilter `type:"structure"`
- // The identifier used to represent an analytics configuration.
+ // The ID that identifies the analytics configuration.
//
// Id is a required field
Id *string `type:"string" required:"true"`
- // If present, it indicates that data related to access patterns will be collected
- // and made available to analyze the tradeoffs between different storage classes.
+ // Contains data related to access patterns to be collected and made available
+ // to analyze the tradeoffs between different storage classes.
//
// StorageClassAnalysis is a required field
StorageClassAnalysis *StorageClassAnalysis `type:"structure" required:"true"`
return s
}
+// Where to publish the analytics results.
type AnalyticsExportDestination struct {
_ struct{} `type:"structure"`
type AnalyticsS3BucketDestination struct {
_ struct{} `type:"structure"`
- // The Amazon resource name (ARN) of the bucket to which data is exported.
+ // The Amazon Resource Name (ARN) of the bucket to which data is exported.
//
// Bucket is a required field
Bucket *string `type:"string" required:"true"`
// the owner will not be validated prior to exporting data.
BucketAccountId *string `type:"string"`
- // The file format used when exporting data to Amazon S3.
+ // Specifies the file format used when exporting data to Amazon S3.
//
// Format is a required field
Format *string `type:"string" required:"true" enum:"AnalyticsS3ExportFileFormat"`
- // The prefix to use when exporting data. The exported data begins with this
- // prefix.
+ // The prefix to use when exporting data. The prefix is prepended to all results.
Prefix *string `type:"string"`
}
return s
}
+// Specifies the lifecycle configuration for objects in an Amazon S3 bucket.
+// For more information, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)
+// in the Amazon Simple Storage Service Developer Guide.
type BucketLifecycleConfiguration struct {
_ struct{} `type:"structure"`
+ // A lifecycle rule for individual objects in an Amazon S3 bucket.
+ //
// Rules is a required field
Rules []*LifecycleRule `locationName:"Rule" type:"list" flattened:"true" required:"true"`
}
type BucketLoggingStatus struct {
_ struct{} `type:"structure"`
- // Container for logging information. Presence of this element indicates that
- // logging is enabled. Parameters TargetBucket and TargetPrefix are required
- // in this case.
+ // Describes where logs are stored and the prefix that Amazon S3 assigns to
+ // all log object keys for a bucket. For more information, see PUT Bucket logging
+ // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html)
+ // in the Amazon Simple Storage Service API Reference.
LoggingEnabled *LoggingEnabled `type:"structure"`
}
return s
}
+// Describes the cross-origin access configuration for objects in an Amazon
+// S3 bucket. For more information, see Enabling Cross-Origin Resource Sharing
+// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon
+// Simple Storage Service Developer Guide.
type CORSConfiguration struct {
_ struct{} `type:"structure"`
+ // A set of allowed origins and methods.
+ //
// CORSRules is a required field
CORSRules []*CORSRule `locationName:"CORSRule" type:"list" flattened:"true" required:"true"`
}
return s
}
+// Specifies a cross-origin access rule for an Amazon S3 bucket.
type CORSRule struct {
_ struct{} `type:"structure"`
- // Specifies which headers are allowed in a pre-flight OPTIONS request.
+ // Headers that are specified in the Access-Control-Request-Headers header.
+ // These headers are allowed in a preflight OPTIONS request. In response to
+ // any preflight OPTIONS request, Amazon S3 returns any requested headers that
+ // are allowed.
AllowedHeaders []*string `locationName:"AllowedHeader" type:"list" flattened:"true"`
- // Identifies HTTP methods that the domain/origin specified in the rule is allowed
- // to execute.
+ // An HTTP method that you allow the origin to execute. Valid values are GET,
+ // PUT, HEAD, POST, and DELETE.
//
// AllowedMethods is a required field
AllowedMethods []*string `locationName:"AllowedMethod" type:"list" flattened:"true" required:"true"`
return s
}
+// Specifies a condition that must be met for a redirect to apply.
type Condition struct {
_ struct{} `type:"structure"`
// Specifies the customer-provided encryption key for Amazon S3 to use to decrypt
// the source object. The encryption key provided in this header must be one
// that was used when the source object was created.
- CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"`
+ CopySourceSSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
// Specifies whether you want to apply a Legal Hold to the copied object.
ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
- // The Object Lock mode that you want to apply to the copied object.
+ // The object lock mode that you want to apply to the copied object.
ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
- // The date and time when you want the copied object's Object Lock to expire.
+ // The date and time when you want the copied object's object lock to expire.
ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
// Confirms that the requester knows that she or he will be charged for the
// does not store the encryption key. The key must be appropriate for use with
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
+ SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
// key was transmitted without error.
SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
+ // Specifies the AWS KMS Encryption Context to use for object encryption. The
+ // value of this header is a base64-encoded UTF-8 string holding JSON with the
+ // encryption context key-value pairs.
+ SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"`
+
// Specifies the AWS KMS key ID to use for object encryption. All GET and PUT
// requests for an object protected by AWS KMS will fail if not made via SSL
// or using SigV4. Documentation on configuring any of the officially supported
return s
}
+// SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value.
+func (s *CopyObjectInput) SetSSEKMSEncryptionContext(v string) *CopyObjectInput {
+ s.SSEKMSEncryptionContext = &v
+ return s
+}
+
// SetSSEKMSKeyId sets the SSEKMSKeyId field's value.
func (s *CopyObjectInput) SetSSEKMSKeyId(v string) *CopyObjectInput {
s.SSEKMSKeyId = &v
// verification of the customer-provided encryption key.
SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
+ // If present, specifies the AWS KMS Encryption Context to use for object encryption.
+ // The value of this header is a base64-encoded UTF-8 string holding JSON with
+ // the encryption context key-value pairs.
+ SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"`
+
// If present, specifies the ID of the AWS Key Management Service (KMS) master
// encryption key that was used for the object.
SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
return s
}
+// SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value.
+func (s *CopyObjectOutput) SetSSEKMSEncryptionContext(v string) *CopyObjectOutput {
+ s.SSEKMSEncryptionContext = &v
+ return s
+}
+
// SetSSEKMSKeyId sets the SSEKMSKeyId field's value.
func (s *CopyObjectOutput) SetSSEKMSKeyId(v string) *CopyObjectOutput {
s.SSEKMSKeyId = &v
// Allows grantee to write the ACL for the applicable bucket.
GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"`
- // Specifies whether you want S3 Object Lock to be enabled for the new bucket.
+ // Specifies whether you want Amazon S3 object lock to be enabled for the new
+ // bucket.
ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"`
}
// Specifies whether you want to apply a Legal Hold to the uploaded object.
ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
- // Specifies the Object Lock mode that you want to apply to the uploaded object.
+ // Specifies the object lock mode that you want to apply to the uploaded object.
ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
- // Specifies the date and time when you want the Object Lock to expire.
+ // Specifies the date and time when you want the object lock to expire.
ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
// Confirms that the requester knows that she or he will be charged for the
// does not store the encryption key. The key must be appropriate for use with
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
+ SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
// key was transmitted without error.
SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
+ // Specifies the AWS KMS Encryption Context to use for object encryption. The
+ // value of this header is a base64-encoded UTF-8 string holding JSON with the
+ // encryption context key-value pairs.
+ SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"`
+
// Specifies the AWS KMS key ID to use for object encryption. All GET and PUT
// requests for an object protected by AWS KMS will fail if not made via SSL
// or using SigV4. Documentation on configuring any of the officially supported
return s
}
+// SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value.
+func (s *CreateMultipartUploadInput) SetSSEKMSEncryptionContext(v string) *CreateMultipartUploadInput {
+ s.SSEKMSEncryptionContext = &v
+ return s
+}
+
// SetSSEKMSKeyId sets the SSEKMSKeyId field's value.
func (s *CreateMultipartUploadInput) SetSSEKMSKeyId(v string) *CreateMultipartUploadInput {
s.SSEKMSKeyId = &v
// verification of the customer-provided encryption key.
SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
+ // If present, specifies the AWS KMS Encryption Context to use for object encryption.
+ // The value of this header is a base64-encoded UTF-8 string holding JSON with
+ // the encryption context key-value pairs.
+ SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"`
+
// If present, specifies the ID of the AWS Key Management Service (KMS) master
// encryption key that was used for the object.
SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
return s
}
+// SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value.
+func (s *CreateMultipartUploadOutput) SetSSEKMSEncryptionContext(v string) *CreateMultipartUploadOutput {
+ s.SSEKMSEncryptionContext = &v
+ return s
+}
+
// SetSSEKMSKeyId sets the SSEKMSKeyId field's value.
func (s *CreateMultipartUploadOutput) SetSSEKMSKeyId(v string) *CreateMultipartUploadOutput {
s.SSEKMSKeyId = &v
return s
}
-// The container element for specifying the default Object Lock retention settings
+// The container element for specifying the default object lock retention settings
// for new objects placed in the specified bucket.
type DefaultRetention struct {
_ struct{} `type:"structure"`
// The number of days that you want to specify for the default retention period.
Days *int64 `type:"integer"`
- // The default Object Lock retention mode you want to apply to new objects placed
+ // The default object lock retention mode you want to apply to new objects placed
// in the specified bucket.
Mode *string `type:"string" enum:"ObjectLockRetentionMode"`
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
- // The identifier used to represent an analytics configuration.
+ // The ID that identifies the analytics configuration.
//
// Id is a required field
Id *string `location:"querystring" locationName:"id" type:"string" required:"true"`
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
- // Indicates whether S3 Object Lock should bypass Governance-mode restrictions
+ // Indicates whether Amazon S3 object lock should bypass governance-mode restrictions
// to process this operation.
BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"`
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
// Specifies whether you want to delete this object even if it has a Governance-type
- // Object Lock in place. You must have sufficient permissions to perform this
+ // object lock in place. You must have sufficient permissions to perform this
// operation.
BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"`
return s
}
-// A container for information about the replication destination.
+// Specifies information about where to publish analysis or configuration results
+// for an Amazon S3 bucket.
type Destination struct {
_ struct{} `type:"structure"`
- // A container for information about access control for replicas.
- //
- // Use this element only in a cross-account scenario where source and destination
- // bucket owners are not the same to change replica ownership to the AWS account
- // that owns the destination bucket. If you don't add this element to the replication
- // configuration, the replicas are owned by same AWS account that owns the source
- // object.
+ // 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 AWS account that owns the destination bucket. If this is not specified
+ // in the replication configuration, the replicas are owned by same AWS account
+ // that owns the source object.
AccessControlTranslation *AccessControlTranslation `type:"structure"`
- // The account ID of the destination bucket. Currently, Amazon S3 verifies this
- // value only if Access Control Translation is enabled.
- //
- // In a cross-account scenario, if you change replica ownership to the AWS account
- // that owns the destination bucket by adding the AccessControlTranslation element,
- // this is the account ID of the owner of the destination bucket.
+ // Destination bucket owner account ID. In a cross-account scenario, if you
+ // direct Amazon S3 to change replica ownership to the AWS 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 Cross-Region Replication Additional Configuration: Change Replica Owner
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-change-owner.html) in
+ // the Amazon Simple Storage Service Developer Guide.
Account *string `type:"string"`
// The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to
// store replicas of the object identified by the rule.
//
- // If there are multiple rules in your replication configuration, all rules
- // must specify the same bucket as the destination. A replication configuration
- // can replicate objects to only one destination bucket.
+ // A replication configuration can replicate objects to only one destination
+ // bucket. If there are multiple rules in your replication configuration, all
+ // rules must specify the same destination bucket.
//
// Bucket is a required field
Bucket *string `type:"string" required:"true"`
// is specified, you must specify this element.
EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
- // The class of storage used to store the object. By default Amazon S3 uses
- // storage class of the source object when creating a replica.
+ // The storage class to use when replicating objects, such as 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
+ // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html)
+ // action in the Amazon Simple Storage Service API Reference.
StorageClass *string `type:"string" enum:"StorageClass"`
}
return s
}
-// A container for information about the encryption-based configuration for
-// replicas.
+// Specifies encryption-related information for an Amazon S3 bucket that is
+// a destination for replicated objects.
type EncryptionConfiguration struct {
_ struct{} `type:"structure"`
- // The ID of the AWS KMS key for the AWS Region where the destination bucket
- // resides. Amazon S3 uses this key to encrypt the replica object.
+ // Specifies the AWS KMS Key ID (Key ARN or Alias ARN) for the destination bucket.
+ // Amazon S3 uses this key to encrypt replica objects.
ReplicaKmsKeyID *string `type:"string"`
}
return s
}
-// A container for a key value pair that defines the criteria for the filter
-// rule.
+// Specifies the Amazon S3 object key name to filter on and whether to filter
+// on the suffix or prefix of the key name.
type FilterRule struct {
_ struct{} `type:"structure"`
// The object key name prefix or suffix identifying one or more objects to which
- // the filtering rule applies. The maximum prefix length is 1,024 characters.
- // Overlapping prefixes and suffixes are not supported. For more information,
- // see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // the filtering rule applies. The maximum length is 1,024 characters. Overlapping
+ // prefixes and suffixes are not supported. For more information, see Configuring
+ // Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
// in the Amazon Simple Storage Service Developer Guide.
Name *string `type:"string" enum:"FilterRuleName"`
+ // The value that the filter searches for in object key names.
Value *string `type:"string"`
}
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
- // The identifier used to represent an analytics configuration.
+ // The ID that identifies the analytics configuration.
//
// Id is a required field
Id *string `location:"querystring" locationName:"id" type:"string" required:"true"`
type GetBucketEncryptionOutput struct {
_ struct{} `type:"structure" payload:"ServerSideEncryptionConfiguration"`
- // Container for server-side encryption configuration rules. Currently S3 supports
- // one rule only.
+ // Specifies the default server-side-encryption configuration.
ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `type:"structure"`
}
type GetBucketLoggingOutput struct {
_ struct{} `type:"structure"`
- // Container for logging information. Presence of this element indicates that
- // logging is enabled. Parameters TargetBucket and TargetPrefix are required
- // in this case.
+ // Describes where logs are stored and the prefix that Amazon S3 assigns to
+ // all log object keys for a bucket. For more information, see PUT Bucket logging
+ // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html)
+ // in the Amazon Simple Storage Service API Reference.
LoggingEnabled *LoggingEnabled `type:"structure"`
}
IndexDocument *IndexDocument `type:"structure"`
+ // Specifies the redirect behavior of all requests to a website endpoint of
+ // an Amazon S3 bucket.
RedirectAllRequestsTo *RedirectAllRequestsTo `type:"structure"`
RoutingRules []*RoutingRule `locationNameList:"RoutingRule" type:"list"`
// does not store the encryption key. The key must be appropriate for use with
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
+ SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
type GetObjectLockConfigurationInput struct {
_ struct{} `type:"structure"`
- // The bucket whose Object Lock configuration you want to retrieve.
+ // The bucket whose object lock configuration you want to retrieve.
//
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
type GetObjectLockConfigurationOutput struct {
_ struct{} `type:"structure" payload:"ObjectLockConfiguration"`
- // The specified bucket's Object Lock configuration.
+ // The specified bucket's object lock configuration.
ObjectLockConfiguration *ObjectLockConfiguration `type:"structure"`
}
// returned if you have permission to view an object's legal hold status.
ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
- // The Object Lock mode currently in place for this object.
+ // The object lock mode currently in place for this object.
ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
- // The date and time when this object's Object Lock will expire.
+ // The date and time when this object's object lock will expire.
ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
// The count of parts this object has.
// does not store the encryption key. The key must be appropriate for use with
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
+ SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
// The Legal Hold status for the specified object.
ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
- // The Object Lock mode currently in place for this object.
+ // The object lock mode currently in place for this object.
ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
- // The date and time when this object's Object Lock will expire.
+ // The date and time when this object's object lock expires.
ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
// The count of parts this object has.
return s
}
+// Specifies the inventory configuration for an Amazon S3 bucket. For more information,
+// see GET Bucket inventory (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html)
+// in the Amazon Simple Storage Service API Reference.
type InventoryConfiguration struct {
_ struct{} `type:"structure"`
// Id is a required field
Id *string `type:"string" required:"true"`
- // Specifies which object version(s) to included in the inventory results.
+ // Object versions to include in the inventory list. If set to All, the list
+ // includes all the object versions, which adds the version-related fields VersionId,
+ // IsLatest, and DeleteMarker to the list. If set to Current, the list does
+ // not contain these version-related fields.
//
// IncludedObjectVersions is a required field
IncludedObjectVersions *string `type:"string" required:"true" enum:"InventoryIncludedObjectVersions"`
- // Specifies whether the inventory is enabled or disabled.
+ // Specifies whether the inventory is enabled or disabled. If set to True, an
+ // inventory list is generated. If set to False, no inventory list is generated.
//
// IsEnabled is a required field
IsEnabled *bool `type:"boolean" required:"true"`
type LambdaFunctionConfiguration struct {
_ struct{} `type:"structure"`
+ // The Amazon S3 bucket event for which to invoke the AWS Lambda function. For
+ // more information, see Supported Event Types (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // in the Amazon Simple Storage Service Developer Guide.
+ //
// Events is a required field
Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"`
- // A container for object key name filtering rules. For information about key
- // name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // Specifies object key name filtering rules. For information about key name
+ // filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
// in the Amazon Simple Storage Service Developer Guide.
Filter *NotificationConfigurationFilter `type:"structure"`
// If you don't provide one, Amazon S3 will assign an ID.
Id *string `type:"string"`
- // The Amazon Resource Name (ARN) of the Lambda cloud function that Amazon S3
- // can invoke when it detects events of the specified type.
+ // The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3
+ // invokes when the specified event type occurs.
//
// LambdaFunctionArn is a required field
LambdaFunctionArn *string `locationName:"CloudFunction" type:"string" required:"true"`
type LifecycleRule struct {
_ struct{} `type:"structure"`
- // Specifies the days since the initiation of an Incomplete Multipart Upload
- // that Lifecycle will wait before permanently removing all parts of the upload.
+ // Specifies the days since the initiation of an incomplete multipart upload
+ // that Amazon S3 will wait before permanently removing all parts of the upload.
+ // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket
+ // Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
+ // in the Amazon Simple Storage Service Developer Guide.
AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"`
Expiration *LifecycleExpiration `type:"structure"`
return s
}
-// Container for logging information. Presence of this element indicates that
-// logging is enabled. Parameters TargetBucket and TargetPrefix are required
-// in this case.
+// Describes where logs are stored and the prefix that Amazon S3 assigns to
+// all log object keys for a bucket. For more information, see PUT Bucket logging
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html)
+// in the Amazon Simple Storage Service API Reference.
type LoggingEnabled struct {
_ struct{} `type:"structure"`
TargetGrants []*TargetGrant `locationNameList:"Grant" type:"list"`
- // This element lets you specify a prefix for the keys that the log files will
- // be stored under.
+ // A prefix for all log object keys. If you store log files from multiple Amazon
+ // S3 buckets in a single bucket, you can use a prefix to distinguish which
+ // log files came from which bucket.
//
// TargetPrefix is a required field
TargetPrefix *string `type:"string" required:"true"`
return s
}
+// Specifies a metrics configuration for the CloudWatch request metrics (specified
+// by the metrics configuration ID) from an Amazon S3 bucket. If you're updating
+// an existing metrics configuration, note that this is a full replacement of
+// the existing metrics configuration. If you don't include the elements you
+// want to keep, they are erased. For more information, see PUT Bucket metrics
+// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
+// in the Amazon Simple Storage Service API Reference.
type MetricsConfiguration struct {
_ struct{} `type:"structure"`
// Specifies the number of days an object is noncurrent before Amazon S3 can
// perform the associated action. For information about the noncurrent days
// calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
- // (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html)
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
// in the Amazon Simple Storage Service Developer Guide.
NoncurrentDays *int64 `type:"integer"`
}
}
// Container for the transition rule that describes when noncurrent objects
-// transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER or
-// DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning
+// transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER,
+// or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning
// is suspended), you can set this action to request that Amazon S3 transition
// noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING,
-// GLACIER or DEEP_ARCHIVE storage class at a specific period in the object's
+// GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's
// lifetime.
type NoncurrentVersionTransition struct {
_ struct{} `type:"structure"`
type NotificationConfiguration struct {
_ struct{} `type:"structure"`
+ // Describes the AWS Lambda functions to invoke and the events for which to
+ // invoke them.
LambdaFunctionConfigurations []*LambdaFunctionConfiguration `locationName:"CloudFunctionConfiguration" type:"list" flattened:"true"`
+ // The Amazon Simple Queue Service queues to publish messages to and the events
+ // for which to publish messages.
QueueConfigurations []*QueueConfiguration `locationName:"QueueConfiguration" type:"list" flattened:"true"`
+ // The topic to which notifications are sent and the events for which notifications
+ // are generated.
TopicConfigurations []*TopicConfiguration `locationName:"TopicConfiguration" type:"list" flattened:"true"`
}
return s
}
-// A container for object key name filtering rules. For information about key
-// name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+// Specifies object key name filtering rules. For information about key name
+// filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
// in the Amazon Simple Storage Service Developer Guide.
type NotificationConfigurationFilter struct {
_ struct{} `type:"structure"`
return s
}
-// The container element for Object Lock configuration parameters.
+// The container element for object lock configuration parameters.
type ObjectLockConfiguration struct {
_ struct{} `type:"structure"`
- // Indicates whether this bucket has an Object Lock configuration enabled.
+ // Indicates whether this bucket has an object lock configuration enabled.
ObjectLockEnabled *string `type:"string" enum:"ObjectLockEnabled"`
- // The Object Lock rule in place for the specified object.
+ // The object lock rule in place for the specified object.
Rule *ObjectLockRule `type:"structure"`
}
// Indicates the Retention mode for the specified object.
Mode *string `type:"string" enum:"ObjectLockRetentionMode"`
- // The date on which this Object Lock Retention will expire.
+ // The date on which this object lock retention expires.
RetainUntilDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
}
return s
}
-// The container element for an Object Lock rule.
+// The container element for an object lock rule.
type ObjectLockRule struct {
_ struct{} `type:"structure"`
return nil
}
+// Specifies the Block Public Access configuration for an Amazon S3 bucket.
type PublicAccessBlockConfiguration struct {
_ struct{} `type:"structure"`
// The canned ACL to apply to the bucket.
ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"`
+ // Contains the elements that set the ACL permissions for an object per grantee.
AccessControlPolicy *AccessControlPolicy `locationName:"AccessControlPolicy" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
// Bucket is a required field
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
- // The identifier used to represent an analytics configuration.
+ // The ID that identifies the analytics configuration.
//
// Id is a required field
Id *string `location:"querystring" locationName:"id" type:"string" required:"true"`
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+ // Describes the cross-origin access configuration for objects in an Amazon
+ // S3 bucket. For more information, see Enabling Cross-Origin Resource Sharing
+ // (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon
+ // Simple Storage Service Developer Guide.
+ //
// CORSConfiguration is a required field
CORSConfiguration *CORSConfiguration `locationName:"CORSConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
}
type PutBucketEncryptionInput struct {
_ struct{} `type:"structure" payload:"ServerSideEncryptionConfiguration"`
- // The name of the bucket for which the server-side encryption configuration
- // is set.
+ // Specifies default encryption for a bucket using server-side encryption with
+ // Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS). For information
+ // about the Amazon S3 default encryption feature, see Amazon S3 Default Bucket
+ // Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html)
+ // in the Amazon Simple Storage Service Developer Guide.
//
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
- // Container for server-side encryption configuration rules. Currently S3 supports
- // one rule only.
+ // Specifies the default server-side-encryption configuration.
//
// ServerSideEncryptionConfiguration is a required field
ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"ServerSideEncryptionConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+ // Specifies the lifecycle configuration for objects in an Amazon S3 bucket.
+ // For more information, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)
+ // in the Amazon Simple Storage Service Developer Guide.
LifecycleConfiguration *BucketLifecycleConfiguration `locationName:"LifecycleConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
}
//
// ReplicationConfiguration is a required field
ReplicationConfiguration *ReplicationConfiguration `locationName:"ReplicationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
+
+ // A token that allows Amazon S3 object lock to be enabled for an existing bucket.
+ Token *string `location:"header" locationName:"x-amz-bucket-object-lock-token" type:"string"`
}
// String returns the string representation
return s
}
+// SetToken sets the Token field's value.
+func (s *PutBucketReplicationInput) SetToken(v string) *PutBucketReplicationInput {
+ s.Token = &v
+ return s
+}
+
type PutBucketReplicationOutput struct {
_ struct{} `type:"structure"`
}
// and the value that is displayed on your authentication device.
MFA *string `location:"header" locationName:"x-amz-mfa" type:"string"`
+ // Describes the versioning state of an Amazon S3 bucket. For more information,
+ // see PUT Bucket versioning (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html)
+ // in the Amazon Simple Storage Service API Reference.
+ //
// VersioningConfiguration is a required field
VersioningConfiguration *VersioningConfiguration `locationName:"VersioningConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
}
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+ // Specifies website configuration parameters for an Amazon S3 bucket.
+ //
// WebsiteConfiguration is a required field
WebsiteConfiguration *WebsiteConfiguration `locationName:"WebsiteConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
}
// The canned ACL to apply to the object.
ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"`
+ // Contains the elements that set the ACL permissions for an object per grantee.
AccessControlPolicy *AccessControlPolicy `locationName:"AccessControlPolicy" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
// Bucket is a required field
ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"`
// The base64-encoded 128-bit MD5 digest of the part data. This parameter is
- // auto-populated when using the command from the CLI
+ // auto-populated when using the command from the CLI. This parameted is required
+ // if object lock parameters are specified.
ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"`
// A standard MIME type describing the format of the object data.
// The Legal Hold status that you want to apply to the specified object.
ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
- // The Object Lock mode that you want to apply to this object.
+ // The object lock mode that you want to apply to this object.
ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
- // The date and time when you want this object's Object Lock to expire.
+ // The date and time when you want this object's object lock to expire.
ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
// Confirms that the requester knows that she or he will be charged for the
// does not store the encryption key. The key must be appropriate for use with
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
+ SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
// key was transmitted without error.
SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
+ // Specifies the AWS KMS Encryption Context to use for object encryption. The
+ // value of this header is a base64-encoded UTF-8 string holding JSON with the
+ // encryption context key-value pairs.
+ SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"`
+
// Specifies the AWS KMS key ID to use for object encryption. All GET and PUT
// requests for an object protected by AWS KMS will fail if not made via SSL
// or using SigV4. Documentation on configuring any of the officially supported
return s
}
+// SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value.
+func (s *PutObjectInput) SetSSEKMSEncryptionContext(v string) *PutObjectInput {
+ s.SSEKMSEncryptionContext = &v
+ return s
+}
+
// SetSSEKMSKeyId sets the SSEKMSKeyId field's value.
func (s *PutObjectInput) SetSSEKMSKeyId(v string) *PutObjectInput {
s.SSEKMSKeyId = &v
type PutObjectLockConfigurationInput struct {
_ struct{} `type:"structure" payload:"ObjectLockConfiguration"`
- // The bucket whose Object Lock configuration you want to create or replace.
+ // The bucket whose object lock configuration you want to create or replace.
//
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
- // The Object Lock configuration that you want to apply to the specified bucket.
+ // The object lock configuration that you want to apply to the specified bucket.
ObjectLockConfiguration *ObjectLockConfiguration `locationName:"ObjectLockConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
// Confirms that the requester knows that she or he will be charged for the
// at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
- // A token to allow Object Lock to be enabled for an existing bucket.
+ // A token to allow Amazon S3 object lock to be enabled for an existing bucket.
Token *string `location:"header" locationName:"x-amz-bucket-object-lock-token" type:"string"`
}
// verification of the customer-provided encryption key.
SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
+ // If present, specifies the AWS KMS Encryption Context to use for object encryption.
+ // The value of this header is a base64-encoded UTF-8 string holding JSON with
+ // the encryption context key-value pairs.
+ SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"`
+
// If present, specifies the ID of the AWS Key Management Service (KMS) master
// encryption key that was used for the object.
SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
return s
}
+// SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value.
+func (s *PutObjectOutput) SetSSEKMSEncryptionContext(v string) *PutObjectOutput {
+ s.SSEKMSEncryptionContext = &v
+ return s
+}
+
// SetSSEKMSKeyId sets the SSEKMSKeyId field's value.
func (s *PutObjectOutput) SetSSEKMSKeyId(v string) *PutObjectOutput {
s.SSEKMSKeyId = &v
return s.String()
}
-// A container for specifying the configuration for publication of messages
-// to an Amazon Simple Queue Service (Amazon SQS) queue.when Amazon S3 detects
-// specified events.
+// Specifies the configuration for publishing messages to an Amazon Simple Queue
+// Service (Amazon SQS) queue when Amazon S3 detects specified events.
type QueueConfiguration struct {
_ struct{} `type:"structure"`
// Events is a required field
Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"`
- // A container for object key name filtering rules. For information about key
- // name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // Specifies object key name filtering rules. For information about key name
+ // filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
// in the Amazon Simple Storage Service Developer Guide.
Filter *NotificationConfigurationFilter `type:"structure"`
Id *string `type:"string"`
// The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3
- // will publish a message when it detects events of the specified type.
+ // publishes a message when it detects events of the specified type.
//
// QueueArn is a required field
QueueArn *string `locationName:"Queue" type:"string" required:"true"`
return nil
}
+// Specifies how requests are redirected. In the event of an error, you can
+// specify a different error code to return.
type Redirect struct {
_ struct{} `type:"structure"`
// siblings is present.
HttpRedirectCode *string `type:"string"`
- // Protocol to use (http, https) when redirecting requests. The default is the
- // protocol that is used in the original request.
+ // Protocol to use when redirecting requests. The default is the protocol that
+ // is used in the original request.
Protocol *string `type:"string" enum:"Protocol"`
// The object key prefix to use in the redirect request. For example, to redirect
ReplaceKeyPrefixWith *string `type:"string"`
// The specific object key to use in the redirect request. For example, redirect
- // request to error.html. Not required if one of the sibling is present. Can
+ // request to error.html. Not required if one of the siblings is present. Can
// be present only if ReplaceKeyPrefixWith is not provided.
ReplaceKeyWith *string `type:"string"`
}
return s
}
+// Specifies the redirect behavior of all requests to a website endpoint of
+// an Amazon S3 bucket.
type RedirectAllRequestsTo struct {
_ struct{} `type:"structure"`
- // Name of the host where requests will be redirected.
+ // Name of the host where requests are redirected.
//
// HostName is a required field
HostName *string `type:"string" required:"true"`
- // Protocol to use (http, https) when redirecting requests. The default is the
- // protocol that is used in the original request.
+ // Protocol to use when redirecting requests. The default is the protocol that
+ // is used in the original request.
Protocol *string `type:"string" enum:"Protocol"`
}
_ struct{} `type:"structure"`
// The Amazon Resource Name (ARN) of the AWS Identity and Access Management
- // (IAM) role that Amazon S3 can assume when replicating the objects.
+ // (IAM) role that Amazon S3 assumes when replicating objects. For more information,
+ // see How to Set Up Cross-Region Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-how-setup.html)
+ // in the Amazon Simple Storage Service Developer Guide.
//
// Role is a required field
Role *string `type:"string" required:"true"`
return s
}
-// A container for information about a specific replication rule.
+// Specifies which Amazon S3 objects to replicate and where to store the replicas.
type ReplicationRule struct {
_ struct{} `type:"structure"`
ID *string `type:"string"`
// An object keyname prefix that identifies the object or objects to which the
- // rule applies. The maximum prefix length is 1,024 characters.
+ // rule applies. The maximum prefix length is 1,024 characters. To include all
+ // objects in a bucket, specify an empty string.
//
// Deprecated: Prefix has been deprecated
Prefix *string `deprecated:"true" type:"string"`
// * Same object qualify tag based filter criteria specified in multiple
// rules
//
- // For more information, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
+ // For more information, see Cross-Region Replication (CRR) (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
// in the Amazon S3 Developer Guide.
Priority *int64 `type:"integer"`
// replication of these objects. Currently, Amazon S3 supports only the filter
// that you can specify for objects created with server-side encryption using
// an AWS KMS-Managed Key (SSE-KMS).
- //
- // If you want Amazon S3 to replicate objects created with server-side encryption
- // using AWS KMS-Managed Keys.
SourceSelectionCriteria *SourceSelectionCriteria `type:"structure"`
- // If status isn't enabled, the rule is ignored.
+ // Specifies whether the rule is enabled.
//
// Status is a required field
Status *string `type:"string" required:"true" enum:"ReplicationRuleStatus"`
return s
}
+// Specifies the redirect behavior and when a redirect is applied.
type RoutingRule struct {
_ struct{} `type:"structure"`
return s
}
+// Specifies lifecycle rules for an Amazon S3 bucket. For more information,
+// see PUT Bucket lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html)
+// in the Amazon Simple Storage Service API Reference.
type Rule struct {
_ struct{} `type:"structure"`
- // Specifies the days since the initiation of an Incomplete Multipart Upload
- // that Lifecycle will wait before permanently removing all parts of the upload.
+ // Specifies the days since the initiation of an incomplete multipart upload
+ // that Amazon S3 will wait before permanently removing all parts of the upload.
+ // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket
+ // Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
+ // in the Amazon Simple Storage Service Developer Guide.
AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"`
Expiration *LifecycleExpiration `type:"structure"`
- // Unique identifier for the rule. The value cannot be longer than 255 characters.
+ // Unique identifier for the rule. The value can't be longer than 255 characters.
ID *string `type:"string"`
// Specifies when noncurrent object versions expire. Upon expiration, Amazon
NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"`
// Container for the transition rule that describes when noncurrent objects
- // transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER or
- // DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning
+ // transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER,
+ // or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning
// is suspended), you can set this action to request that Amazon S3 transition
// noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING,
- // GLACIER or DEEP_ARCHIVE storage class at a specific period in the object's
+ // GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's
// lifetime.
NoncurrentVersionTransition *NoncurrentVersionTransition `type:"structure"`
- // Prefix identifying one or more objects to which the rule applies.
+ // Object key prefix that identifies one or more objects to which this rule
+ // applies.
//
// Prefix is a required field
Prefix *string `type:"string" required:"true"`
- // If 'Enabled', the rule is currently being applied. If 'Disabled', the rule
- // is not currently being applied.
+ // If Enabled, the rule is currently being applied. If Disabled, the rule is
+ // not currently being applied.
//
// Status is a required field
Status *string `type:"string" required:"true" enum:"ExpirationStatus"`
+ // Specifies when an object transitions to a specified storage class.
Transition *Transition `type:"structure"`
}
// Specifies if periodic request progress information should be enabled.
RequestProgress *RequestProgress `type:"structure"`
- // The SSE Algorithm used to encrypt the object. For more information, see
- // Server-Side Encryption (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
+ // The SSE Algorithm used to encrypt the object. For more information, see Server-Side
+ // Encryption (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"`
- // The SSE Customer Key. For more information, see Server-Side Encryption (Using
+ // The SSE Customer Key. For more information, see Server-Side Encryption (Using
// Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
+ SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
- // The SSE Customer Key MD5. For more information, see Server-Side Encryption
+ // The SSE Customer Key MD5. For more information, see Server-Side Encryption
// (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
}
}
// Describes the default server-side encryption to apply to new objects in the
-// bucket. If Put Object request does not specify any server-side encryption,
-// this default encryption will be applied.
+// bucket. If a PUT Object request doesn't specify any server-side encryption,
+// this default encryption will be applied. For more information, see PUT Bucket
+// encryption (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html)
+// in the Amazon Simple Storage Service API Reference.
type ServerSideEncryptionByDefault struct {
_ struct{} `type:"structure"`
// KMS master key ID to use for the default encryption. This parameter is allowed
- // if SSEAlgorithm is aws:kms.
+ // if and only if SSEAlgorithm is set to aws:kms.
KMSMasterKeyID *string `type:"string" sensitive:"true"`
// Server-side encryption algorithm to use for the default encryption.
return s
}
-// Container for server-side encryption configuration rules. Currently S3 supports
-// one rule only.
+// Specifies the default server-side-encryption configuration.
type ServerSideEncryptionConfiguration struct {
_ struct{} `type:"structure"`
return s
}
-// Container for information about a particular server-side encryption configuration
-// rule.
+// Specifies the default server-side encryption configuration.
type ServerSideEncryptionRule struct {
_ struct{} `type:"structure"`
- // Describes the default server-side encryption to apply to new objects in the
- // bucket. If Put Object request does not specify any server-side encryption,
+ // Specifies the default server-side encryption to apply to new objects in the
+ // bucket. If a PUT Object request doesn't specify any server-side encryption,
// this default encryption will be applied.
ApplyServerSideEncryptionByDefault *ServerSideEncryptionByDefault `type:"structure"`
}
return s
}
-// A container for filters that define which source objects should be replicated.
+// 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
+// an AWS KMS-Managed Key (SSE-KMS).
type SourceSelectionCriteria struct {
_ struct{} `type:"structure"`
- // A container for filter information for the selection of S3 objects encrypted
- // with AWS KMS. If you include SourceSelectionCriteria in the replication configuration,
- // this element is required.
+ // A container for filter information for the selection of Amazon S3 objects
+ // encrypted with AWS KMS. If you include SourceSelectionCriteria in the replication
+ // configuration, this element is required.
SseKmsEncryptedObjects *SseKmsEncryptedObjects `type:"structure"`
}
type SseKmsEncryptedObjects struct {
_ struct{} `type:"structure"`
- // If the status is not Enabled, replication for S3 objects encrypted with AWS
- // KMS is disabled.
+ // Specifies whether Amazon S3 replicates objects created with server-side encryption
+ // using an AWS KMS-managed key.
//
// Status is a required field
Status *string `type:"string" required:"true" enum:"SseKmsEncryptedObjectsStatus"`
return nil
}
+// Specifies data related to access patterns to be collected and made available
+// to analyze the tradeoffs between different storage classes for an Amazon
+// S3 bucket.
type StorageClassAnalysis struct {
_ struct{} `type:"structure"`
- // A container used to describe how data related to the storage class analysis
- // should be exported.
+ // Specifies how data related to the storage class analysis for an Amazon S3
+ // bucket should be exported.
DataExport *StorageClassAnalysisDataExport `type:"structure"`
}
}
// A container for specifying the configuration for publication of messages
-// to an Amazon Simple Notification Service (Amazon SNS) topic.when Amazon S3
+// to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3
// detects specified events.
type TopicConfiguration struct {
_ struct{} `type:"structure"`
+ // The Amazon S3 bucket event about which to send notifications. For more information,
+ // see Supported Event Types (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // in the Amazon Simple Storage Service Developer Guide.
+ //
// Events is a required field
Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"`
- // A container for object key name filtering rules. For information about key
- // name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // Specifies object key name filtering rules. For information about key name
+ // filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
// in the Amazon Simple Storage Service Developer Guide.
Filter *NotificationConfigurationFilter `type:"structure"`
Id *string `type:"string"`
// The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3
- // will publish a message when it detects events of the specified type.
+ // publishes a message when it detects events of the specified type.
//
// TopicArn is a required field
TopicArn *string `locationName:"Topic" type:"string" required:"true"`
return s
}
+// Specifies when an object transitions to a specified storage class.
type Transition struct {
_ struct{} `type:"structure"`
- // Indicates at what date the object is to be moved or deleted. Should be in
- // GMT ISO 8601 Format.
+ // Indicates when objects are transitioned to the specified storage class. The
+ // date value must be in ISO 8601 format. The time is always midnight UTC.
Date *time.Time `type:"timestamp" timestampFormat:"iso8601"`
- // Indicates the lifetime, in days, of the objects that are subject to the rule.
- // The value must be a non-zero positive integer.
+ // Indicates the number of days after creation when objects are transitioned
+ // to the specified storage class. The value must be a positive integer.
Days *int64 `type:"integer"`
- // The class of storage used to store the object.
+ // The storage class to which you want the object to transition.
StorageClass *string `type:"string" enum:"TransitionStorageClass"`
}
// Specifies the customer-provided encryption key for Amazon S3 to use to decrypt
// the source object. The encryption key provided in this header must be one
// that was used when the source object was created.
- CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"`
+ CopySourceSSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header. This must be the same encryption key specified in the initiate multipart
// upload request.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
+ SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
// body cannot be determined automatically.
ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"`
- // The base64-encoded 128-bit MD5 digest of the part data.
+ // The base64-encoded 128-bit MD5 digest of the part data. This parameter is
+ // auto-populated when using the command from the CLI. This parameted is required
+ // if object lock parameters are specified.
ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"`
// Object key for which the multipart upload was initiated.
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header. This must be the same encryption key specified in the initiate multipart
// upload request.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
+ SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
return s
}
+// Describes the versioning state of an Amazon S3 bucket. For more information,
+// see PUT Bucket versioning (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html)
+// in the Amazon Simple Storage Service API Reference.
type VersioningConfiguration struct {
_ struct{} `type:"structure"`
return s
}
+// Specifies website configuration parameters for an Amazon S3 bucket.
type WebsiteConfiguration struct {
_ struct{} `type:"structure"`
+ // The name of the error document for the website.
ErrorDocument *ErrorDocument `type:"structure"`
+ // The name of the index document for the website.
IndexDocument *IndexDocument `type:"structure"`
+ // The redirect behavior for every request to this bucket's website endpoint.
+ //
+ // If you specify this property, you can't specify any other property.
RedirectAllRequestsTo *RedirectAllRequestsTo `type:"structure"`
+ // Rules that define when a redirect is applied and the redirect behavior.
RoutingRules []*RoutingRule `locationNameList:"RoutingRule" type:"list"`
}