1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// Specifies the days since the initiation of an incomplete multipart upload that
10// Amazon S3 will wait before permanently removing all parts of the upload. For
11// more information, see  Aborting Incomplete Multipart Uploads Using a Bucket
12// Lifecycle Policy
13// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
14// in the Amazon Simple Storage Service Developer Guide.
15type AbortIncompleteMultipartUpload struct {
16
17	// Specifies the number of days after which Amazon S3 aborts an incomplete
18	// multipart upload.
19	DaysAfterInitiation int32
20}
21
22// Configures the transfer acceleration state for an Amazon S3 bucket. For more
23// information, see Amazon S3 Transfer Acceleration
24// (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in
25// the Amazon Simple Storage Service Developer Guide.
26type AccelerateConfiguration struct {
27
28	// Specifies the transfer acceleration status of the bucket.
29	Status BucketAccelerateStatus
30}
31
32// Contains the elements that set the ACL permissions for an object per grantee.
33type AccessControlPolicy struct {
34
35	// A list of grants.
36	Grants []Grant
37
38	// Container for the bucket owner's display name and ID.
39	Owner *Owner
40}
41
42// A container for information about access control for replicas.
43type AccessControlTranslation struct {
44
45	// Specifies the replica ownership. For default and valid values, see PUT bucket
46	// replication
47	// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html)
48	// in the Amazon Simple Storage Service API Reference.
49	//
50	// This member is required.
51	Owner OwnerOverride
52}
53
54// A conjunction (logical AND) of predicates, which is used in evaluating a metrics
55// filter. The operator must have at least two predicates in any combination, and
56// an object must match all of the predicates for the filter to apply.
57type AnalyticsAndOperator struct {
58
59	// The prefix to use when evaluating an AND predicate: The prefix that an object
60	// must have to be included in the metrics results.
61	Prefix *string
62
63	// The list of tags to use when evaluating an AND predicate.
64	Tags []Tag
65}
66
67// Specifies the configuration and any analyses for the analytics filter of an
68// Amazon S3 bucket.
69type AnalyticsConfiguration struct {
70
71	// The ID that identifies the analytics configuration.
72	//
73	// This member is required.
74	Id *string
75
76	// Contains data related to access patterns to be collected and made available to
77	// analyze the tradeoffs between different storage classes.
78	//
79	// This member is required.
80	StorageClassAnalysis *StorageClassAnalysis
81
82	// The filter used to describe a set of objects for analyses. A filter must have
83	// exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). If no
84	// filter is provided, all objects will be considered in any analysis.
85	Filter AnalyticsFilter
86}
87
88// Where to publish the analytics results.
89type AnalyticsExportDestination struct {
90
91	// A destination signifying output to an S3 bucket.
92	//
93	// This member is required.
94	S3BucketDestination *AnalyticsS3BucketDestination
95}
96
97// The filter used to describe a set of objects for analyses. A filter must have
98// exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). If no
99// filter is provided, all objects will be considered in any analysis.
100//
101// The following types satisfy this interface:
102//  AnalyticsFilterMemberPrefix
103//  AnalyticsFilterMemberTag
104//  AnalyticsFilterMemberAnd
105type AnalyticsFilter interface {
106	isAnalyticsFilter()
107}
108
109// The prefix to use when evaluating an analytics filter.
110type AnalyticsFilterMemberPrefix struct {
111	Value string
112}
113
114func (*AnalyticsFilterMemberPrefix) isAnalyticsFilter() {}
115
116// The tag to use when evaluating an analytics filter.
117type AnalyticsFilterMemberTag struct {
118	Value Tag
119}
120
121func (*AnalyticsFilterMemberTag) isAnalyticsFilter() {}
122
123// A conjunction (logical AND) of predicates, which is used in evaluating an
124// analytics filter. The operator must have at least two predicates.
125type AnalyticsFilterMemberAnd struct {
126	Value AnalyticsAndOperator
127}
128
129func (*AnalyticsFilterMemberAnd) isAnalyticsFilter() {}
130
131// Contains information about where to publish the analytics results.
132type AnalyticsS3BucketDestination struct {
133
134	// The Amazon Resource Name (ARN) of the bucket to which data is exported.
135	//
136	// This member is required.
137	Bucket *string
138
139	// Specifies the file format used when exporting data to Amazon S3.
140	//
141	// This member is required.
142	Format AnalyticsS3ExportFileFormat
143
144	// The account ID that owns the destination S3 bucket. If no account ID is
145	// provided, the owner is not validated before exporting data. Although this value
146	// is optional, we strongly recommend that you set it to help prevent problems if
147	// the destination bucket ownership changes.
148	BucketAccountId *string
149
150	// The prefix to use when exporting data. The prefix is prepended to all results.
151	Prefix *string
152}
153
154// In terms of implementation, a Bucket is a resource. An Amazon S3 bucket name is
155// globally unique, and the namespace is shared by all AWS accounts.
156type Bucket struct {
157
158	// Date the bucket was created. This date can change when making changes to your
159	// bucket, such as editing its bucket policy.
160	CreationDate *time.Time
161
162	// The name of the bucket.
163	Name *string
164}
165
166// Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For
167// more information, see Object Lifecycle Management
168// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in
169// the Amazon Simple Storage Service Developer Guide.
170type BucketLifecycleConfiguration struct {
171
172	// A lifecycle rule for individual objects in an Amazon S3 bucket.
173	//
174	// This member is required.
175	Rules []LifecycleRule
176}
177
178// Container for logging status information.
179type BucketLoggingStatus struct {
180
181	// Describes where logs are stored and the prefix that Amazon S3 assigns to all log
182	// object keys for a bucket. For more information, see PUT Bucket logging
183	// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) in
184	// the Amazon Simple Storage Service API Reference.
185	LoggingEnabled *LoggingEnabled
186}
187
188// Container for all (if there are any) keys between Prefix and the next occurrence
189// of the string specified by a delimiter. CommonPrefixes lists keys that act like
190// subdirectories in the directory specified by Prefix. For example, if the prefix
191// is notes/ and the delimiter is a slash (/) as in notes/summer/july, the common
192// prefix is notes/summer/.
193type CommonPrefix struct {
194
195	// Container for the specified common prefix.
196	Prefix *string
197}
198
199// The container for the completed multipart upload details.
200type CompletedMultipartUpload struct {
201
202	// Array of CompletedPart data types.
203	Parts []CompletedPart
204}
205
206// Details of the parts that were uploaded.
207type CompletedPart struct {
208
209	// Entity tag returned when the part was uploaded.
210	ETag *string
211
212	// Part number that identifies the part. This is a positive integer between 1 and
213	// 10,000.
214	PartNumber int32
215}
216
217// A container for describing a condition that must be met for the specified
218// redirect to apply. For example, 1. If request is for pages in the /docs folder,
219// redirect to the /documents folder. 2. If request results in HTTP error 4xx,
220// redirect request to another host where you might process the error.
221type Condition struct {
222
223	// The HTTP error code when the redirect is applied. In the event of an error, if
224	// the error code equals this value, then the specified redirect is applied.
225	// Required when parent element Condition is specified and sibling KeyPrefixEquals
226	// is not specified. If both are specified, then both must be true for the redirect
227	// to be applied.
228	HttpErrorCodeReturnedEquals *string
229
230	// The object key name prefix when the redirect is applied. For example, to
231	// redirect requests for ExamplePage.html, the key prefix will be ExamplePage.html.
232	// To redirect request for all pages with the prefix docs/, the key prefix will be
233	// /docs, which identifies all objects in the docs/ folder. Required when the
234	// parent element Condition is specified and sibling HttpErrorCodeReturnedEquals is
235	// not specified. If both conditions are specified, both must be true for the
236	// redirect to be applied.
237	KeyPrefixEquals *string
238}
239
240// Container for all response elements.
241type CopyObjectResult struct {
242
243	// Returns the ETag of the new object. The ETag reflects only changes to the
244	// contents of an object, not its metadata. The source and destination ETag is
245	// identical for a successfully copied object.
246	ETag *string
247
248	// Returns the date that the object was last modified.
249	LastModified *time.Time
250}
251
252// Container for all response elements.
253type CopyPartResult struct {
254
255	// Entity tag of the object.
256	ETag *string
257
258	// Date and time at which the object was uploaded.
259	LastModified *time.Time
260}
261
262// Describes the cross-origin access configuration for objects in an Amazon S3
263// bucket. For more information, see Enabling Cross-Origin Resource Sharing
264// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon Simple
265// Storage Service Developer Guide.
266type CORSConfiguration struct {
267
268	// A set of origins and methods (cross-origin access that you want to allow). You
269	// can add up to 100 rules to the configuration.
270	//
271	// This member is required.
272	CORSRules []CORSRule
273}
274
275// Specifies a cross-origin access rule for an Amazon S3 bucket.
276type CORSRule struct {
277
278	// An HTTP method that you allow the origin to execute. Valid values are GET, PUT,
279	// HEAD, POST, and DELETE.
280	//
281	// This member is required.
282	AllowedMethods []string
283
284	// One or more origins you want customers to be able to access the bucket from.
285	//
286	// This member is required.
287	AllowedOrigins []string
288
289	// Headers that are specified in the Access-Control-Request-Headers header. These
290	// headers are allowed in a preflight OPTIONS request. In response to any preflight
291	// OPTIONS request, Amazon S3 returns any requested headers that are allowed.
292	AllowedHeaders []string
293
294	// One or more headers in the response that you want customers to be able to access
295	// from their applications (for example, from a JavaScript XMLHttpRequest object).
296	ExposeHeaders []string
297
298	// The time in seconds that your browser is to cache the preflight response for the
299	// specified resource.
300	MaxAgeSeconds int32
301}
302
303// The configuration information for the bucket.
304type CreateBucketConfiguration struct {
305
306	// Specifies the Region where the bucket will be created. If you don't specify a
307	// Region, the bucket is created in the US East (N. Virginia) Region (us-east-1).
308	LocationConstraint BucketLocationConstraint
309}
310
311// Describes how an uncompressed comma-separated values (CSV)-formatted input
312// object is formatted.
313type CSVInput struct {
314
315	// Specifies that CSV field values may contain quoted record delimiters and such
316	// records should be allowed. Default value is FALSE. Setting this value to TRUE
317	// may lower performance.
318	AllowQuotedRecordDelimiter bool
319
320	// A single character used to indicate that a row should be ignored when the
321	// character is present at the start of that row. You can specify any character to
322	// indicate a comment line.
323	Comments *string
324
325	// A single character used to separate individual fields in a record. You can
326	// specify an arbitrary delimiter.
327	FieldDelimiter *string
328
329	// Describes the first line of input. Valid values are:
330	//
331	// * NONE: First line is not
332	// a header.
333	//
334	// * IGNORE: First line is a header, but you can't use the header values
335	// to indicate the column in an expression. You can use column position (such as
336	// _1, _2, …) to indicate the column (SELECT s._1 FROM OBJECT s).
337	//
338	// * Use: First
339	// line is a header, and you can use the header value to identify a column in an
340	// expression (SELECT "name" FROM OBJECT).
341	FileHeaderInfo FileHeaderInfo
342
343	// A single character used for escaping when the field delimiter is part of the
344	// value. For example, if the value is a, b, Amazon S3 wraps this field value in
345	// quotation marks, as follows: " a , b ". Type: String Default: " Ancestors: CSV
346	QuoteCharacter *string
347
348	// A single character used for escaping the quotation mark character inside an
349	// already escaped value. For example, the value """ a , b """ is parsed as " a , b
350	// ".
351	QuoteEscapeCharacter *string
352
353	// A single character used to separate individual records in the input. Instead of
354	// the default value, you can specify an arbitrary delimiter.
355	RecordDelimiter *string
356}
357
358// Describes how uncompressed comma-separated values (CSV)-formatted results are
359// formatted.
360type CSVOutput struct {
361
362	// The value used to separate individual fields in a record. You can specify an
363	// arbitrary delimiter.
364	FieldDelimiter *string
365
366	// A single character used for escaping when the field delimiter is part of the
367	// value. For example, if the value is a, b, Amazon S3 wraps this field value in
368	// quotation marks, as follows: " a , b ".
369	QuoteCharacter *string
370
371	// The single character used for escaping the quote character inside an already
372	// escaped value.
373	QuoteEscapeCharacter *string
374
375	// Indicates whether to use quotation marks around output fields.
376	//
377	// * ALWAYS: Always
378	// use quotation marks for output fields.
379	//
380	// * ASNEEDED: Use quotation marks for
381	// output fields when needed.
382	QuoteFields QuoteFields
383
384	// A single character used to separate individual records in the output. Instead of
385	// the default value, you can specify an arbitrary delimiter.
386	RecordDelimiter *string
387}
388
389// The container element for specifying the default Object Lock retention settings
390// for new objects placed in the specified bucket.
391type DefaultRetention struct {
392
393	// The number of days that you want to specify for the default retention period.
394	Days int32
395
396	// The default Object Lock retention mode you want to apply to new objects placed
397	// in the specified bucket.
398	Mode ObjectLockRetentionMode
399
400	// The number of years that you want to specify for the default retention period.
401	Years int32
402}
403
404// Container for the objects to delete.
405type Delete struct {
406
407	// The objects to delete.
408	//
409	// This member is required.
410	Objects []ObjectIdentifier
411
412	// Element to enable quiet mode for the request. When you add this element, you
413	// must set its value to true.
414	Quiet bool
415}
416
417// Information about the deleted object.
418type DeletedObject struct {
419
420	// Specifies whether the versioned object that was permanently deleted was (true)
421	// or was not (false) a delete marker. In a simple DELETE, this header indicates
422	// whether (true) or not (false) a delete marker was created.
423	DeleteMarker bool
424
425	// The version ID of the delete marker created as a result of the DELETE operation.
426	// If you delete a specific object version, the value returned by this header is
427	// the version ID of the object version deleted.
428	DeleteMarkerVersionId *string
429
430	// The name of the deleted object.
431	Key *string
432
433	// The version ID of the deleted object.
434	VersionId *string
435}
436
437// Information about the delete marker.
438type DeleteMarkerEntry struct {
439
440	// Specifies whether the object is (true) or is not (false) the latest version of
441	// an object.
442	IsLatest bool
443
444	// The object key.
445	Key *string
446
447	// Date and time the object was last modified.
448	LastModified *time.Time
449
450	// The account that created the delete marker.>
451	Owner *Owner
452
453	// Version ID of an object.
454	VersionId *string
455}
456
457// Specifies whether Amazon S3 replicates delete markers. If you specify a Filter
458// in your replication configuration, you must also include a
459// DeleteMarkerReplication element. If your Filter includes a Tag element, the
460// DeleteMarkerReplicationStatus must be set to Disabled, because Amazon S3 does
461// not support replicating delete markers for tag-based rules. For an example
462// configuration, see Basic Rule Configuration
463// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config).
464// For more information about delete marker replication, see Basic Rule
465// Configuration
466// (https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html).
467// If you are using an earlier version of the replication configuration, Amazon S3
468// handles replication of delete markers differently. For more information, see
469// Backward Compatibility
470// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations).
471type DeleteMarkerReplication struct {
472
473	// Indicates whether to replicate delete markers. Indicates whether to replicate
474	// delete markers.
475	Status DeleteMarkerReplicationStatus
476}
477
478// Specifies information about where to publish analysis or configuration results
479// for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).
480type Destination struct {
481
482	// The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store
483	// the results.
484	//
485	// This member is required.
486	Bucket *string
487
488	// Specify this only in a cross-account scenario (where source and destination
489	// bucket owners are not the same), and you want to change replica ownership to the
490	// AWS account that owns the destination bucket. If this is not specified in the
491	// replication configuration, the replicas are owned by same AWS account that owns
492	// the source object.
493	AccessControlTranslation *AccessControlTranslation
494
495	// Destination bucket owner account ID. In a cross-account scenario, if you direct
496	// Amazon S3 to change replica ownership to the AWS account that owns the
497	// destination bucket by specifying the AccessControlTranslation property, this is
498	// the account ID of the destination bucket owner. For more information, see
499	// Replication Additional Configuration: Changing the Replica Owner
500	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html)
501	// in the Amazon Simple Storage Service Developer Guide.
502	Account *string
503
504	// A container that provides information about encryption. If
505	// SourceSelectionCriteria is specified, you must specify this element.
506	EncryptionConfiguration *EncryptionConfiguration
507
508	// A container specifying replication metrics-related settings enabling replication
509	// metrics and events.
510	Metrics *Metrics
511
512	// A container specifying S3 Replication Time Control (S3 RTC), including whether
513	// S3 RTC is enabled and the time when all objects and operations on objects must
514	// be replicated. Must be specified together with a Metrics block.
515	ReplicationTime *ReplicationTime
516
517	// The storage class to use when replicating objects, such as S3 Standard or
518	// reduced redundancy. By default, Amazon S3 uses the storage class of the source
519	// object to create the object replica. For valid values, see the StorageClass
520	// element of the PUT Bucket replication
521	// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html)
522	// action in the Amazon Simple Storage Service API Reference.
523	StorageClass StorageClass
524}
525
526// Contains the type of server-side encryption used.
527type Encryption struct {
528
529	// The server-side encryption algorithm used when storing job results in Amazon S3
530	// (for example, AES256, aws:kms).
531	//
532	// This member is required.
533	EncryptionType ServerSideEncryption
534
535	// If the encryption type is aws:kms, this optional value can be used to specify
536	// the encryption context for the restore results.
537	KMSContext *string
538
539	// If the encryption type is aws:kms, this optional value specifies the ID of the
540	// symmetric customer managed AWS KMS CMK to use for encryption of job results.
541	// Amazon S3 only supports symmetric CMKs. For more information, see Using
542	// Symmetric and Asymmetric Keys
543	// (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
544	// in the AWS Key Management Service Developer Guide.
545	KMSKeyId *string
546}
547
548// Specifies encryption-related information for an Amazon S3 bucket that is a
549// destination for replicated objects.
550type EncryptionConfiguration struct {
551
552	// Specifies the ID (Key ARN or Alias ARN) of the customer managed customer master
553	// key (CMK) stored in AWS Key Management Service (KMS) for the destination bucket.
554	// Amazon S3 uses this key to encrypt replica objects. Amazon S3 only supports
555	// symmetric customer managed CMKs. For more information, see Using Symmetric and
556	// Asymmetric Keys
557	// (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
558	// in the AWS Key Management Service Developer Guide.
559	ReplicaKmsKeyID *string
560}
561
562// Container for all error elements.
563type Error struct {
564
565	// The error code is a string that uniquely identifies an error condition. It is
566	// meant to be read and understood by programs that detect and handle errors by
567	// type. Amazon S3 error codes
568	//
569	// * Code: AccessDenied
570	//
571	// * Description: Access
572	// Denied
573	//
574	// * HTTP Status Code: 403 Forbidden
575	//
576	// * SOAP Fault Code Prefix: Client
577	//
578	// *
579	// Code: AccountProblem
580	//
581	// * Description: There is a problem with your AWS account
582	// that prevents the operation from completing successfully. Contact AWS Support
583	// for further assistance.
584	//
585	// * HTTP Status Code: 403 Forbidden
586	//
587	// * SOAP Fault Code
588	// Prefix: Client
589	//
590	// * Code: AllAccessDisabled
591	//
592	// * Description: All access to this
593	// Amazon S3 resource has been disabled. Contact AWS Support for further
594	// assistance.
595	//
596	// * HTTP Status Code: 403 Forbidden
597	//
598	// * SOAP Fault Code Prefix:
599	// Client
600	//
601	// * Code: AmbiguousGrantByEmailAddress
602	//
603	// * Description: The email address
604	// you provided is associated with more than one account.
605	//
606	// * HTTP Status Code: 400
607	// Bad Request
608	//
609	// * SOAP Fault Code Prefix: Client
610	//
611	// * Code:
612	// AuthorizationHeaderMalformed
613	//
614	// * Description: The authorization header you
615	// provided is invalid.
616	//
617	// * HTTP Status Code: 400 Bad Request
618	//
619	// * HTTP Status Code:
620	// N/A
621	//
622	// * Code: BadDigest
623	//
624	// * Description: The Content-MD5 you specified did not
625	// match what we received.
626	//
627	// * HTTP Status Code: 400 Bad Request
628	//
629	// * SOAP Fault Code
630	// Prefix: Client
631	//
632	// * Code: BucketAlreadyExists
633	//
634	// * Description: The requested bucket
635	// name is not available. The bucket namespace is shared by all users of the
636	// system. Please select a different name and try again.
637	//
638	// * HTTP Status Code: 409
639	// Conflict
640	//
641	// * SOAP Fault Code Prefix: Client
642	//
643	// * Code: BucketAlreadyOwnedByYou
644	//
645	// *
646	// Description: The bucket you tried to create already exists, and you own it.
647	// Amazon S3 returns this error in all AWS Regions except in the North Virginia
648	// Region. For legacy compatibility, if you re-create an existing bucket that you
649	// already own in the North Virginia Region, Amazon S3 returns 200 OK and resets
650	// the bucket access control lists (ACLs).
651	//
652	// * Code: 409 Conflict (in all Regions
653	// except the North Virginia Region)
654	//
655	// * SOAP Fault Code Prefix: Client
656	//
657	// * Code:
658	// BucketNotEmpty
659	//
660	// * Description: The bucket you tried to delete is not empty.
661	//
662	// *
663	// HTTP Status Code: 409 Conflict
664	//
665	// * SOAP Fault Code Prefix: Client
666	//
667	// * Code:
668	// CredentialsNotSupported
669	//
670	// * Description: This request does not support
671	// credentials.
672	//
673	// * HTTP Status Code: 400 Bad Request
674	//
675	// * SOAP Fault Code Prefix:
676	// Client
677	//
678	// * Code: CrossLocationLoggingProhibited
679	//
680	// * Description: Cross-location
681	// logging not allowed. Buckets in one geographic location cannot log information
682	// to a bucket in another location.
683	//
684	// * HTTP Status Code: 403 Forbidden
685	//
686	// * SOAP
687	// Fault Code Prefix: Client
688	//
689	// * Code: EntityTooSmall
690	//
691	// * Description: Your proposed
692	// upload is smaller than the minimum allowed object size.
693	//
694	// * HTTP Status Code: 400
695	// Bad Request
696	//
697	// * SOAP Fault Code Prefix: Client
698	//
699	// * Code: EntityTooLarge
700	//
701	// *
702	// Description: Your proposed upload exceeds the maximum allowed object size.
703	//
704	// *
705	// HTTP Status Code: 400 Bad Request
706	//
707	// * SOAP Fault Code Prefix: Client
708	//
709	// * Code:
710	// ExpiredToken
711	//
712	// * Description: The provided token has expired.
713	//
714	// * HTTP Status
715	// Code: 400 Bad Request
716	//
717	// * SOAP Fault Code Prefix: Client
718	//
719	// * Code:
720	// IllegalVersioningConfigurationException
721	//
722	// * Description: Indicates that the
723	// versioning configuration specified in the request is invalid.
724	//
725	// * HTTP Status
726	// Code: 400 Bad Request
727	//
728	// * SOAP Fault Code Prefix: Client
729	//
730	// * Code:
731	// IncompleteBody
732	//
733	// * Description: You did not provide the number of bytes specified
734	// by the Content-Length HTTP header
735	//
736	// * HTTP Status Code: 400 Bad Request
737	//
738	// * SOAP
739	// Fault Code Prefix: Client
740	//
741	// * Code: IncorrectNumberOfFilesInPostRequest
742	//
743	// *
744	// Description: POST requires exactly one file upload per request.
745	//
746	// * HTTP Status
747	// Code: 400 Bad Request
748	//
749	// * SOAP Fault Code Prefix: Client
750	//
751	// * Code:
752	// InlineDataTooLarge
753	//
754	// * Description: Inline data exceeds the maximum allowed
755	// size.
756	//
757	// * HTTP Status Code: 400 Bad Request
758	//
759	// * SOAP Fault Code Prefix: Client
760	//
761	// *
762	// Code: InternalError
763	//
764	// * Description: We encountered an internal error. Please try
765	// again.
766	//
767	// * HTTP Status Code: 500 Internal Server Error
768	//
769	// * SOAP Fault Code Prefix:
770	// Server
771	//
772	// * Code: InvalidAccessKeyId
773	//
774	// * Description: The AWS access key ID you
775	// provided does not exist in our records.
776	//
777	// * HTTP Status Code: 403 Forbidden
778	//
779	// *
780	// SOAP Fault Code Prefix: Client
781	//
782	// * Code: InvalidAddressingHeader
783	//
784	// * Description:
785	// You must specify the Anonymous role.
786	//
787	// * HTTP Status Code: N/A
788	//
789	// * SOAP Fault Code
790	// Prefix: Client
791	//
792	// * Code: InvalidArgument
793	//
794	// * Description: Invalid Argument
795	//
796	// * HTTP
797	// Status Code: 400 Bad Request
798	//
799	// * SOAP Fault Code Prefix: Client
800	//
801	// * Code:
802	// InvalidBucketName
803	//
804	// * Description: The specified bucket is not valid.
805	//
806	// * HTTP
807	// Status Code: 400 Bad Request
808	//
809	// * SOAP Fault Code Prefix: Client
810	//
811	// * Code:
812	// InvalidBucketState
813	//
814	// * Description: The request is not valid with the current
815	// state of the bucket.
816	//
817	// * HTTP Status Code: 409 Conflict
818	//
819	// * SOAP Fault Code
820	// Prefix: Client
821	//
822	// * Code: InvalidDigest
823	//
824	// * Description: The Content-MD5 you
825	// specified is not valid.
826	//
827	// * HTTP Status Code: 400 Bad Request
828	//
829	// * SOAP Fault Code
830	// Prefix: Client
831	//
832	// * Code: InvalidEncryptionAlgorithmError
833	//
834	// * Description: The
835	// encryption request you specified is not valid. The valid value is AES256.
836	//
837	// *
838	// HTTP Status Code: 400 Bad Request
839	//
840	// * SOAP Fault Code Prefix: Client
841	//
842	// * Code:
843	// InvalidLocationConstraint
844	//
845	// * Description: The specified location constraint is
846	// not valid. For more information about Regions, see How to Select a Region for
847	// Your Buckets
848	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro).
849	//
850	// *
851	// HTTP Status Code: 400 Bad Request
852	//
853	// * SOAP Fault Code Prefix: Client
854	//
855	// * Code:
856	// InvalidObjectState
857	//
858	// * Description: The operation is not valid for the current
859	// state of the object.
860	//
861	// * HTTP Status Code: 403 Forbidden
862	//
863	// * SOAP Fault Code
864	// Prefix: Client
865	//
866	// * Code: InvalidPart
867	//
868	// * Description: One or more of the specified
869	// parts could not be found. The part might not have been uploaded, or the
870	// specified entity tag might not have matched the part's entity tag.
871	//
872	// * HTTP
873	// Status Code: 400 Bad Request
874	//
875	// * SOAP Fault Code Prefix: Client
876	//
877	// * Code:
878	// InvalidPartOrder
879	//
880	// * Description: The list of parts was not in ascending order.
881	// Parts list must be specified in order by part number.
882	//
883	// * HTTP Status Code: 400
884	// Bad Request
885	//
886	// * SOAP Fault Code Prefix: Client
887	//
888	// * Code: InvalidPayer
889	//
890	// *
891	// Description: All access to this object has been disabled. Please contact AWS
892	// Support for further assistance.
893	//
894	// * HTTP Status Code: 403 Forbidden
895	//
896	// * SOAP Fault
897	// Code Prefix: Client
898	//
899	// * Code: InvalidPolicyDocument
900	//
901	// * Description: The content
902	// of the form does not meet the conditions specified in the policy document.
903	//
904	// *
905	// HTTP Status Code: 400 Bad Request
906	//
907	// * SOAP Fault Code Prefix: Client
908	//
909	// * Code:
910	// InvalidRange
911	//
912	// * Description: The requested range cannot be satisfied.
913	//
914	// * HTTP
915	// Status Code: 416 Requested Range Not Satisfiable
916	//
917	// * SOAP Fault Code Prefix:
918	// Client
919	//
920	// * Code: InvalidRequest
921	//
922	// * Description: Please use AWS4-HMAC-SHA256.
923	//
924	// *
925	// HTTP Status Code: 400 Bad Request
926	//
927	// * Code: N/A
928	//
929	// * Code: InvalidRequest
930	//
931	// *
932	// Description: SOAP requests must be made over an HTTPS connection.
933	//
934	// * HTTP Status
935	// Code: 400 Bad Request
936	//
937	// * SOAP Fault Code Prefix: Client
938	//
939	// * Code:
940	// InvalidRequest
941	//
942	// * Description: Amazon S3 Transfer Acceleration is not supported
943	// for buckets with non-DNS compliant names.
944	//
945	// * HTTP Status Code: 400 Bad
946	// Request
947	//
948	// * Code: N/A
949	//
950	// * Code: InvalidRequest
951	//
952	// * Description: Amazon S3 Transfer
953	// Acceleration is not supported for buckets with periods (.) in their names.
954	//
955	// *
956	// HTTP Status Code: 400 Bad Request
957	//
958	// * Code: N/A
959	//
960	// * Code: InvalidRequest
961	//
962	// *
963	// Description: Amazon S3 Transfer Accelerate endpoint only supports virtual style
964	// requests.
965	//
966	// * HTTP Status Code: 400 Bad Request
967	//
968	// * Code: N/A
969	//
970	// * Code:
971	// InvalidRequest
972	//
973	// * Description: Amazon S3 Transfer Accelerate is not configured
974	// on this bucket.
975	//
976	// * HTTP Status Code: 400 Bad Request
977	//
978	// * Code: N/A
979	//
980	// * Code:
981	// InvalidRequest
982	//
983	// * Description: Amazon S3 Transfer Accelerate is disabled on this
984	// bucket.
985	//
986	// * HTTP Status Code: 400 Bad Request
987	//
988	// * Code: N/A
989	//
990	// * Code:
991	// InvalidRequest
992	//
993	// * Description: Amazon S3 Transfer Acceleration is not supported
994	// on this bucket. Contact AWS Support for more information.
995	//
996	// * HTTP Status Code:
997	// 400 Bad Request
998	//
999	// * Code: N/A
1000	//
1001	// * Code: InvalidRequest
1002	//
1003	// * Description: Amazon S3
1004	// Transfer Acceleration cannot be enabled on this bucket. Contact AWS Support for
1005	// more information.
1006	//
1007	// * HTTP Status Code: 400 Bad Request
1008	//
1009	// * Code: N/A
1010	//
1011	// * Code:
1012	// InvalidSecurity
1013	//
1014	// * Description: The provided security credentials are not
1015	// valid.
1016	//
1017	// * HTTP Status Code: 403 Forbidden
1018	//
1019	// * SOAP Fault Code Prefix: Client
1020	//
1021	// *
1022	// Code: InvalidSOAPRequest
1023	//
1024	// * Description: The SOAP request body is invalid.
1025	//
1026	// *
1027	// HTTP Status Code: 400 Bad Request
1028	//
1029	// * SOAP Fault Code Prefix: Client
1030	//
1031	// * Code:
1032	// InvalidStorageClass
1033	//
1034	// * Description: The storage class you specified is not
1035	// valid.
1036	//
1037	// * HTTP Status Code: 400 Bad Request
1038	//
1039	// * SOAP Fault Code Prefix: Client
1040	//
1041	// *
1042	// Code: InvalidTargetBucketForLogging
1043	//
1044	// * Description: The target bucket for
1045	// logging does not exist, is not owned by you, or does not have the appropriate
1046	// grants for the log-delivery group.
1047	//
1048	// * HTTP Status Code: 400 Bad Request
1049	//
1050	// * SOAP
1051	// Fault Code Prefix: Client
1052	//
1053	// * Code: InvalidToken
1054	//
1055	// * Description: The provided
1056	// token is malformed or otherwise invalid.
1057	//
1058	// * HTTP Status Code: 400 Bad Request
1059	//
1060	// *
1061	// SOAP Fault Code Prefix: Client
1062	//
1063	// * Code: InvalidURI
1064	//
1065	// * Description: Couldn't
1066	// parse the specified URI.
1067	//
1068	// * HTTP Status Code: 400 Bad Request
1069	//
1070	// * SOAP Fault Code
1071	// Prefix: Client
1072	//
1073	// * Code: KeyTooLongError
1074	//
1075	// * Description: Your key is too long.
1076	//
1077	// *
1078	// HTTP Status Code: 400 Bad Request
1079	//
1080	// * SOAP Fault Code Prefix: Client
1081	//
1082	// * Code:
1083	// MalformedACLError
1084	//
1085	// * Description: The XML you provided was not well-formed or
1086	// did not validate against our published schema.
1087	//
1088	// * HTTP Status Code: 400 Bad
1089	// Request
1090	//
1091	// * SOAP Fault Code Prefix: Client
1092	//
1093	// * Code: MalformedPOSTRequest
1094	//
1095	// *
1096	// Description: The body of your POST request is not well-formed
1097	// multipart/form-data.
1098	//
1099	// * HTTP Status Code: 400 Bad Request
1100	//
1101	// * SOAP Fault Code
1102	// Prefix: Client
1103	//
1104	// * Code: MalformedXML
1105	//
1106	// * Description: This happens when the user
1107	// sends malformed XML (XML that doesn't conform to the published XSD) for the
1108	// configuration. The error message is, "The XML you provided was not well-formed
1109	// or did not validate against our published schema."
1110	//
1111	// * HTTP Status Code: 400 Bad
1112	// Request
1113	//
1114	// * SOAP Fault Code Prefix: Client
1115	//
1116	// * Code: MaxMessageLengthExceeded
1117	//
1118	// *
1119	// Description: Your request was too big.
1120	//
1121	// * HTTP Status Code: 400 Bad Request
1122	//
1123	// *
1124	// SOAP Fault Code Prefix: Client
1125	//
1126	// * Code: MaxPostPreDataLengthExceededError
1127	//
1128	// *
1129	// Description: Your POST request fields preceding the upload file were too
1130	// large.
1131	//
1132	// * HTTP Status Code: 400 Bad Request
1133	//
1134	// * SOAP Fault Code Prefix: Client
1135	//
1136	// *
1137	// Code: MetadataTooLarge
1138	//
1139	// * Description: Your metadata headers exceed the maximum
1140	// allowed metadata size.
1141	//
1142	// * HTTP Status Code: 400 Bad Request
1143	//
1144	// * SOAP Fault Code
1145	// Prefix: Client
1146	//
1147	// * Code: MethodNotAllowed
1148	//
1149	// * Description: The specified method is
1150	// not allowed against this resource.
1151	//
1152	// * HTTP Status Code: 405 Method Not
1153	// Allowed
1154	//
1155	// * SOAP Fault Code Prefix: Client
1156	//
1157	// * Code: MissingAttachment
1158	//
1159	// *
1160	// Description: A SOAP attachment was expected, but none were found.
1161	//
1162	// * HTTP Status
1163	// Code: N/A
1164	//
1165	// * SOAP Fault Code Prefix: Client
1166	//
1167	// * Code: MissingContentLength
1168	//
1169	// *
1170	// Description: You must provide the Content-Length HTTP header.
1171	//
1172	// * HTTP Status
1173	// Code: 411 Length Required
1174	//
1175	// * SOAP Fault Code Prefix: Client
1176	//
1177	// * Code:
1178	// MissingRequestBodyError
1179	//
1180	// * Description: This happens when the user sends an
1181	// empty XML document as a request. The error message is, "Request body is
1182	// empty."
1183	//
1184	// * HTTP Status Code: 400 Bad Request
1185	//
1186	// * SOAP Fault Code Prefix:
1187	// Client
1188	//
1189	// * Code: MissingSecurityElement
1190	//
1191	// * Description: The SOAP 1.1 request is
1192	// missing a security element.
1193	//
1194	// * HTTP Status Code: 400 Bad Request
1195	//
1196	// * SOAP Fault
1197	// Code Prefix: Client
1198	//
1199	// * Code: MissingSecurityHeader
1200	//
1201	// * Description: Your request
1202	// is missing a required header.
1203	//
1204	// * HTTP Status Code: 400 Bad Request
1205	//
1206	// * SOAP Fault
1207	// Code Prefix: Client
1208	//
1209	// * Code: NoLoggingStatusForKey
1210	//
1211	// * Description: There is no
1212	// such thing as a logging status subresource for a key.
1213	//
1214	// * HTTP Status Code: 400
1215	// Bad Request
1216	//
1217	// * SOAP Fault Code Prefix: Client
1218	//
1219	// * Code: NoSuchBucket
1220	//
1221	// *
1222	// Description: The specified bucket does not exist.
1223	//
1224	// * HTTP Status Code: 404 Not
1225	// Found
1226	//
1227	// * SOAP Fault Code Prefix: Client
1228	//
1229	// * Code: NoSuchBucketPolicy
1230	//
1231	// *
1232	// Description: The specified bucket does not have a bucket policy.
1233	//
1234	// * HTTP Status
1235	// Code: 404 Not Found
1236	//
1237	// * SOAP Fault Code Prefix: Client
1238	//
1239	// * Code: NoSuchKey
1240	//
1241	// *
1242	// Description: The specified key does not exist.
1243	//
1244	// * HTTP Status Code: 404 Not
1245	// Found
1246	//
1247	// * SOAP Fault Code Prefix: Client
1248	//
1249	// * Code: NoSuchLifecycleConfiguration
1250	//
1251	// *
1252	// Description: The lifecycle configuration does not exist.
1253	//
1254	// * HTTP Status Code:
1255	// 404 Not Found
1256	//
1257	// * SOAP Fault Code Prefix: Client
1258	//
1259	// * Code: NoSuchUpload
1260	//
1261	// *
1262	// Description: The specified multipart upload does not exist. The upload ID might
1263	// be invalid, or the multipart upload might have been aborted or completed.
1264	//
1265	// *
1266	// HTTP Status Code: 404 Not Found
1267	//
1268	// * SOAP Fault Code Prefix: Client
1269	//
1270	// * Code:
1271	// NoSuchVersion
1272	//
1273	// * Description: Indicates that the version ID specified in the
1274	// request does not match an existing version.
1275	//
1276	// * HTTP Status Code: 404 Not
1277	// Found
1278	//
1279	// * SOAP Fault Code Prefix: Client
1280	//
1281	// * Code: NotImplemented
1282	//
1283	// * Description:
1284	// A header you provided implies functionality that is not implemented.
1285	//
1286	// * HTTP
1287	// Status Code: 501 Not Implemented
1288	//
1289	// * SOAP Fault Code Prefix: Server
1290	//
1291	// * Code:
1292	// NotSignedUp
1293	//
1294	// * Description: Your account is not signed up for the Amazon S3
1295	// service. You must sign up before you can use Amazon S3. You can sign up at the
1296	// following URL: https://aws.amazon.com/s3
1297	//
1298	// * HTTP Status Code: 403 Forbidden
1299	//
1300	// *
1301	// SOAP Fault Code Prefix: Client
1302	//
1303	// * Code: OperationAborted
1304	//
1305	// * Description: A
1306	// conflicting conditional operation is currently in progress against this
1307	// resource. Try again.
1308	//
1309	// * HTTP Status Code: 409 Conflict
1310	//
1311	// * SOAP Fault Code
1312	// Prefix: Client
1313	//
1314	// * Code: PermanentRedirect
1315	//
1316	// * Description: The bucket you are
1317	// attempting to access must be addressed using the specified endpoint. Send all
1318	// future requests to this endpoint.
1319	//
1320	// * HTTP Status Code: 301 Moved Permanently
1321	//
1322	// *
1323	// SOAP Fault Code Prefix: Client
1324	//
1325	// * Code: PreconditionFailed
1326	//
1327	// * Description: At
1328	// least one of the preconditions you specified did not hold.
1329	//
1330	// * HTTP Status Code:
1331	// 412 Precondition Failed
1332	//
1333	// * SOAP Fault Code Prefix: Client
1334	//
1335	// * Code: Redirect
1336	//
1337	// *
1338	// Description: Temporary redirect.
1339	//
1340	// * HTTP Status Code: 307 Moved Temporarily
1341	//
1342	// *
1343	// SOAP Fault Code Prefix: Client
1344	//
1345	// * Code: RestoreAlreadyInProgress
1346	//
1347	// * Description:
1348	// Object restore is already in progress.
1349	//
1350	// * HTTP Status Code: 409 Conflict
1351	//
1352	// * SOAP
1353	// Fault Code Prefix: Client
1354	//
1355	// * Code: RequestIsNotMultiPartContent
1356	//
1357	// * Description:
1358	// Bucket POST must be of the enclosure-type multipart/form-data.
1359	//
1360	// * HTTP Status
1361	// Code: 400 Bad Request
1362	//
1363	// * SOAP Fault Code Prefix: Client
1364	//
1365	// * Code:
1366	// RequestTimeout
1367	//
1368	// * Description: Your socket connection to the server was not read
1369	// from or written to within the timeout period.
1370	//
1371	// * HTTP Status Code: 400 Bad
1372	// Request
1373	//
1374	// * SOAP Fault Code Prefix: Client
1375	//
1376	// * Code: RequestTimeTooSkewed
1377	//
1378	// *
1379	// Description: The difference between the request time and the server's time is
1380	// too large.
1381	//
1382	// * HTTP Status Code: 403 Forbidden
1383	//
1384	// * SOAP Fault Code Prefix:
1385	// Client
1386	//
1387	// * Code: RequestTorrentOfBucketError
1388	//
1389	// * Description: Requesting the
1390	// torrent file of a bucket is not permitted.
1391	//
1392	// * HTTP Status Code: 400 Bad
1393	// Request
1394	//
1395	// * SOAP Fault Code Prefix: Client
1396	//
1397	// * Code: SignatureDoesNotMatch
1398	//
1399	// *
1400	// Description: The request signature we calculated does not match the signature
1401	// you provided. Check your AWS secret access key and signing method. For more
1402	// information, see REST Authentication
1403	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) and
1404	// SOAP Authentication
1405	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/SOAPAuthentication.html) for
1406	// details.
1407	//
1408	// * HTTP Status Code: 403 Forbidden
1409	//
1410	// * SOAP Fault Code Prefix: Client
1411	//
1412	// *
1413	// Code: ServiceUnavailable
1414	//
1415	// * Description: Reduce your request rate.
1416	//
1417	// * HTTP
1418	// Status Code: 503 Service Unavailable
1419	//
1420	// * SOAP Fault Code Prefix: Server
1421	//
1422	// * Code:
1423	// SlowDown
1424	//
1425	// * Description: Reduce your request rate.
1426	//
1427	// * HTTP Status Code: 503 Slow
1428	// Down
1429	//
1430	// * SOAP Fault Code Prefix: Server
1431	//
1432	// * Code: TemporaryRedirect
1433	//
1434	// *
1435	// Description: You are being redirected to the bucket while DNS updates.
1436	//
1437	// * HTTP
1438	// Status Code: 307 Moved Temporarily
1439	//
1440	// * SOAP Fault Code Prefix: Client
1441	//
1442	// * Code:
1443	// TokenRefreshRequired
1444	//
1445	// * Description: The provided token must be refreshed.
1446	//
1447	// *
1448	// HTTP Status Code: 400 Bad Request
1449	//
1450	// * SOAP Fault Code Prefix: Client
1451	//
1452	// * Code:
1453	// TooManyBuckets
1454	//
1455	// * Description: You have attempted to create more buckets than
1456	// allowed.
1457	//
1458	// * HTTP Status Code: 400 Bad Request
1459	//
1460	// * SOAP Fault Code Prefix:
1461	// Client
1462	//
1463	// * Code: UnexpectedContent
1464	//
1465	// * Description: This request does not support
1466	// content.
1467	//
1468	// * HTTP Status Code: 400 Bad Request
1469	//
1470	// * SOAP Fault Code Prefix:
1471	// Client
1472	//
1473	// * Code: UnresolvableGrantByEmailAddress
1474	//
1475	// * Description: The email
1476	// address you provided does not match any account on record.
1477	//
1478	// * HTTP Status Code:
1479	// 400 Bad Request
1480	//
1481	// * SOAP Fault Code Prefix: Client
1482	//
1483	// * Code:
1484	// UserKeyMustBeSpecified
1485	//
1486	// * Description: The bucket POST must contain the
1487	// specified field name. If it is specified, check the order of the fields.
1488	//
1489	// * HTTP
1490	// Status Code: 400 Bad Request
1491	//
1492	// * SOAP Fault Code Prefix: Client
1493	Code *string
1494
1495	// The error key.
1496	Key *string
1497
1498	// The error message contains a generic description of the error condition in
1499	// English. It is intended for a human audience. Simple programs display the
1500	// message directly to the end user if they encounter an error condition they don't
1501	// know how or don't care to handle. Sophisticated programs with more exhaustive
1502	// error handling and proper internationalization are more likely to ignore the
1503	// error message.
1504	Message *string
1505
1506	// The version ID of the error.
1507	VersionId *string
1508}
1509
1510// The error information.
1511type ErrorDocument struct {
1512
1513	// The object key name to use when a 4XX class error occurs.
1514	//
1515	// This member is required.
1516	Key *string
1517}
1518
1519// Optional configuration to replicate existing source bucket objects. For more
1520// information, see Replicating Existing Objects
1521// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication)
1522// in the Amazon S3 Developer Guide.
1523type ExistingObjectReplication struct {
1524
1525	//
1526	//
1527	// This member is required.
1528	Status ExistingObjectReplicationStatus
1529}
1530
1531// Specifies the Amazon S3 object key name to filter on and whether to filter on
1532// the suffix or prefix of the key name.
1533type FilterRule struct {
1534
1535	// The object key name prefix or suffix identifying one or more objects to which
1536	// the filtering rule applies. The maximum length is 1,024 characters. Overlapping
1537	// prefixes and suffixes are not supported. For more information, see Configuring
1538	// Event Notifications
1539	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the
1540	// Amazon Simple Storage Service Developer Guide.
1541	Name FilterRuleName
1542
1543	// The value that the filter searches for in object key names.
1544	Value *string
1545}
1546
1547// Container for S3 Glacier job parameters.
1548type GlacierJobParameters struct {
1549
1550	// Retrieval tier at which the restore will be processed.
1551	//
1552	// This member is required.
1553	Tier Tier
1554}
1555
1556// Container for grant information.
1557type Grant struct {
1558
1559	// The person being granted permissions.
1560	Grantee *Grantee
1561
1562	// Specifies the permission given to the grantee.
1563	Permission Permission
1564}
1565
1566// Container for the person being granted permissions.
1567type Grantee struct {
1568
1569	// Type of grantee
1570	//
1571	// This member is required.
1572	Type Type
1573
1574	// Screen name of the grantee.
1575	DisplayName *string
1576
1577	// Email address of the grantee. Using email addresses to specify a grantee is only
1578	// supported in the following AWS Regions:
1579	//
1580	// * US East (N. Virginia)
1581	//
1582	// * US West (N.
1583	// California)
1584	//
1585	// * US West (Oregon)
1586	//
1587	// * Asia Pacific (Singapore)
1588	//
1589	// * Asia Pacific
1590	// (Sydney)
1591	//
1592	// * Asia Pacific (Tokyo)
1593	//
1594	// * Europe (Ireland)
1595	//
1596	// * South America (São
1597	// Paulo)
1598	//
1599	// For a list of all the Amazon S3 supported Regions and endpoints, see
1600	// Regions and Endpoints
1601	// (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) in the AWS
1602	// General Reference.
1603	EmailAddress *string
1604
1605	// The canonical user ID of the grantee.
1606	ID *string
1607
1608	// URI of the grantee group.
1609	URI *string
1610}
1611
1612// Container for the Suffix element.
1613type IndexDocument struct {
1614
1615	// A suffix that is appended to a request that is for a directory on the website
1616	// endpoint (for example,if the suffix is index.html and you make a request to
1617	// samplebucket/images/ the data that is returned will be for the object with the
1618	// key name images/index.html) The suffix must not be empty and must not include a
1619	// slash character.
1620	//
1621	// This member is required.
1622	Suffix *string
1623}
1624
1625// Container element that identifies who initiated the multipart upload.
1626type Initiator struct {
1627
1628	// Name of the Principal.
1629	DisplayName *string
1630
1631	// If the principal is an AWS account, it provides the Canonical User ID. If the
1632	// principal is an IAM User, it provides a user ARN value.
1633	ID *string
1634}
1635
1636// Describes the serialization format of the object.
1637type InputSerialization struct {
1638
1639	// Describes the serialization of a CSV-encoded object.
1640	CSV *CSVInput
1641
1642	// Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default
1643	// Value: NONE.
1644	CompressionType CompressionType
1645
1646	// Specifies JSON as object's input serialization format.
1647	JSON *JSONInput
1648
1649	// Specifies Parquet as object's input serialization format.
1650	Parquet *ParquetInput
1651}
1652
1653// A container for specifying S3 Intelligent-Tiering filters. The filters determine
1654// the subset of objects to which the rule applies.
1655type IntelligentTieringAndOperator struct {
1656
1657	// An object key name prefix that identifies the subset of objects to which the
1658	// configuration applies.
1659	Prefix *string
1660
1661	// All of these tags must exist in the object's tag set in order for the
1662	// configuration to apply.
1663	Tags []Tag
1664}
1665
1666// Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket. For
1667// information about the S3 Intelligent-Tiering storage class, see Storage class
1668// for automatically optimizing frequently and infrequently accessed objects
1669// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access).
1670type IntelligentTieringConfiguration struct {
1671
1672	// The ID used to identify the S3 Intelligent-Tiering configuration.
1673	//
1674	// This member is required.
1675	Id *string
1676
1677	// Specifies the status of the configuration.
1678	//
1679	// This member is required.
1680	Status IntelligentTieringStatus
1681
1682	// Specifies the S3 Intelligent-Tiering storage class tier of the configuration.
1683	//
1684	// This member is required.
1685	Tierings []Tiering
1686
1687	// Specifies a bucket filter. The configuration only includes objects that meet the
1688	// filter's criteria.
1689	Filter *IntelligentTieringFilter
1690}
1691
1692// The Filter is used to identify objects that the S3 Intelligent-Tiering
1693// configuration applies to.
1694type IntelligentTieringFilter struct {
1695
1696	// A conjunction (logical AND) of predicates, which is used in evaluating a metrics
1697	// filter. The operator must have at least two predicates, and an object must match
1698	// all of the predicates in order for the filter to apply.
1699	And *IntelligentTieringAndOperator
1700
1701	// An object key name prefix that identifies the subset of objects to which the
1702	// rule applies.
1703	Prefix *string
1704
1705	// A container of a key value name pair.
1706	Tag *Tag
1707}
1708
1709// Specifies the inventory configuration for an Amazon S3 bucket. For more
1710// information, see GET Bucket inventory
1711// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html)
1712// in the Amazon Simple Storage Service API Reference.
1713type InventoryConfiguration struct {
1714
1715	// Contains information about where to publish the inventory results.
1716	//
1717	// This member is required.
1718	Destination *InventoryDestination
1719
1720	// The ID used to identify the inventory configuration.
1721	//
1722	// This member is required.
1723	Id *string
1724
1725	// Object versions to include in the inventory list. If set to All, the list
1726	// includes all the object versions, which adds the version-related fields
1727	// VersionId, IsLatest, and DeleteMarker to the list. If set to Current, the list
1728	// does not contain these version-related fields.
1729	//
1730	// This member is required.
1731	IncludedObjectVersions InventoryIncludedObjectVersions
1732
1733	// Specifies whether the inventory is enabled or disabled. If set to True, an
1734	// inventory list is generated. If set to False, no inventory list is generated.
1735	//
1736	// This member is required.
1737	IsEnabled bool
1738
1739	// Specifies the schedule for generating inventory results.
1740	//
1741	// This member is required.
1742	Schedule *InventorySchedule
1743
1744	// Specifies an inventory filter. The inventory only includes objects that meet the
1745	// filter's criteria.
1746	Filter *InventoryFilter
1747
1748	// Contains the optional fields that are included in the inventory results.
1749	OptionalFields []InventoryOptionalField
1750}
1751
1752// Specifies the inventory configuration for an Amazon S3 bucket.
1753type InventoryDestination struct {
1754
1755	// Contains the bucket name, file format, bucket owner (optional), and prefix
1756	// (optional) where inventory results are published.
1757	//
1758	// This member is required.
1759	S3BucketDestination *InventoryS3BucketDestination
1760}
1761
1762// Contains the type of server-side encryption used to encrypt the inventory
1763// results.
1764type InventoryEncryption struct {
1765
1766	// Specifies the use of SSE-KMS to encrypt delivered inventory reports.
1767	SSEKMS *SSEKMS
1768
1769	// Specifies the use of SSE-S3 to encrypt delivered inventory reports.
1770	SSES3 *SSES3
1771}
1772
1773// Specifies an inventory filter. The inventory only includes objects that meet the
1774// filter's criteria.
1775type InventoryFilter struct {
1776
1777	// The prefix that an object must have to be included in the inventory results.
1778	//
1779	// This member is required.
1780	Prefix *string
1781}
1782
1783// Contains the bucket name, file format, bucket owner (optional), and prefix
1784// (optional) where inventory results are published.
1785type InventoryS3BucketDestination struct {
1786
1787	// The Amazon Resource Name (ARN) of the bucket where inventory results will be
1788	// published.
1789	//
1790	// This member is required.
1791	Bucket *string
1792
1793	// Specifies the output format of the inventory results.
1794	//
1795	// This member is required.
1796	Format InventoryFormat
1797
1798	// The account ID that owns the destination S3 bucket. If no account ID is
1799	// provided, the owner is not validated before exporting data. Although this value
1800	// is optional, we strongly recommend that you set it to help prevent problems if
1801	// the destination bucket ownership changes.
1802	AccountId *string
1803
1804	// Contains the type of server-side encryption used to encrypt the inventory
1805	// results.
1806	Encryption *InventoryEncryption
1807
1808	// The prefix that is prepended to all inventory results.
1809	Prefix *string
1810}
1811
1812// Specifies the schedule for generating inventory results.
1813type InventorySchedule struct {
1814
1815	// Specifies how frequently inventory results are produced.
1816	//
1817	// This member is required.
1818	Frequency InventoryFrequency
1819}
1820
1821// Specifies JSON as object's input serialization format.
1822type JSONInput struct {
1823
1824	// The type of JSON. Valid values: Document, Lines.
1825	Type JSONType
1826}
1827
1828// Specifies JSON as request's output serialization format.
1829type JSONOutput struct {
1830
1831	// The value used to separate individual records in the output. If no value is
1832	// specified, Amazon S3 uses a newline character ('\n').
1833	RecordDelimiter *string
1834}
1835
1836// A container for specifying the configuration for AWS Lambda notifications.
1837type LambdaFunctionConfiguration struct {
1838
1839	// The Amazon S3 bucket event for which to invoke the AWS Lambda function. For more
1840	// information, see Supported Event Types
1841	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the
1842	// Amazon Simple Storage Service Developer Guide.
1843	//
1844	// This member is required.
1845	Events []Event
1846
1847	// The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes
1848	// when the specified event type occurs.
1849	//
1850	// This member is required.
1851	LambdaFunctionArn *string
1852
1853	// Specifies object key name filtering rules. For information about key name
1854	// filtering, see Configuring Event Notifications
1855	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the
1856	// Amazon Simple Storage Service Developer Guide.
1857	Filter *NotificationConfigurationFilter
1858
1859	// An optional unique identifier for configurations in a notification
1860	// configuration. If you don't provide one, Amazon S3 will assign an ID.
1861	Id *string
1862}
1863
1864// Container for the expiration for the lifecycle of the object.
1865type LifecycleExpiration struct {
1866
1867	// Indicates at what date the object is to be moved or deleted. Should be in GMT
1868	// ISO 8601 Format.
1869	Date *time.Time
1870
1871	// Indicates the lifetime, in days, of the objects that are subject to the rule.
1872	// The value must be a non-zero positive integer.
1873	Days int32
1874
1875	// Indicates whether Amazon S3 will remove a delete marker with no noncurrent
1876	// versions. If set to true, the delete marker will be expired; if set to false the
1877	// policy takes no action. This cannot be specified with Days or Date in a
1878	// Lifecycle Expiration Policy.
1879	ExpiredObjectDeleteMarker bool
1880}
1881
1882// A lifecycle rule for individual objects in an Amazon S3 bucket.
1883type LifecycleRule struct {
1884
1885	// If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is
1886	// not currently being applied.
1887	//
1888	// This member is required.
1889	Status ExpirationStatus
1890
1891	// Specifies the days since the initiation of an incomplete multipart upload that
1892	// Amazon S3 will wait before permanently removing all parts of the upload. For
1893	// more information, see  Aborting Incomplete Multipart Uploads Using a Bucket
1894	// Lifecycle Policy
1895	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
1896	// in the Amazon Simple Storage Service Developer Guide.
1897	AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload
1898
1899	// Specifies the expiration for the lifecycle of the object in the form of date,
1900	// days and, whether the object has a delete marker.
1901	Expiration *LifecycleExpiration
1902
1903	// The Filter is used to identify objects that a Lifecycle Rule applies to. A
1904	// Filter must have exactly one of Prefix, Tag, or And specified.
1905	Filter LifecycleRuleFilter
1906
1907	// Unique identifier for the rule. The value cannot be longer than 255 characters.
1908	ID *string
1909
1910	// Specifies when noncurrent object versions expire. Upon expiration, Amazon S3
1911	// permanently deletes the noncurrent object versions. You set this lifecycle
1912	// configuration action on a bucket that has versioning enabled (or suspended) to
1913	// request that Amazon S3 delete noncurrent object versions at a specific period in
1914	// the object's lifetime.
1915	NoncurrentVersionExpiration *NoncurrentVersionExpiration
1916
1917	// Specifies the transition rule for the lifecycle rule that describes when
1918	// noncurrent objects transition to a specific storage class. If your bucket is
1919	// versioning-enabled (or versioning is suspended), you can set this action to
1920	// request that Amazon S3 transition noncurrent object versions to a specific
1921	// storage class at a set period in the object's lifetime.
1922	NoncurrentVersionTransitions []NoncurrentVersionTransition
1923
1924	// Prefix identifying one or more objects to which the rule applies. This is No
1925	// longer used; use Filter instead.
1926	//
1927	// Deprecated: This member has been deprecated.
1928	Prefix *string
1929
1930	// Specifies when an Amazon S3 object transitions to a specified storage class.
1931	Transitions []Transition
1932}
1933
1934// This is used in a Lifecycle Rule Filter to apply a logical AND to two or more
1935// predicates. The Lifecycle Rule will apply to any object matching all of the
1936// predicates configured inside the And operator.
1937type LifecycleRuleAndOperator struct {
1938
1939	// Prefix identifying one or more objects to which the rule applies.
1940	Prefix *string
1941
1942	// All of these tags must exist in the object's tag set in order for the rule to
1943	// apply.
1944	Tags []Tag
1945}
1946
1947// The Filter is used to identify objects that a Lifecycle Rule applies to. A
1948// Filter must have exactly one of Prefix, Tag, or And specified.
1949//
1950// The following types satisfy this interface:
1951//  LifecycleRuleFilterMemberPrefix
1952//  LifecycleRuleFilterMemberTag
1953//  LifecycleRuleFilterMemberAnd
1954type LifecycleRuleFilter interface {
1955	isLifecycleRuleFilter()
1956}
1957
1958// Prefix identifying one or more objects to which the rule applies.
1959type LifecycleRuleFilterMemberPrefix struct {
1960	Value string
1961}
1962
1963func (*LifecycleRuleFilterMemberPrefix) isLifecycleRuleFilter() {}
1964
1965// This tag must exist in the object's tag set in order for the rule to apply.
1966type LifecycleRuleFilterMemberTag struct {
1967	Value Tag
1968}
1969
1970func (*LifecycleRuleFilterMemberTag) isLifecycleRuleFilter() {}
1971
1972// This is used in a Lifecycle Rule Filter to apply a logical AND to two or more
1973// predicates. The Lifecycle Rule will apply to any object matching all of the
1974// predicates configured inside the And operator.
1975type LifecycleRuleFilterMemberAnd struct {
1976	Value LifecycleRuleAndOperator
1977}
1978
1979func (*LifecycleRuleFilterMemberAnd) isLifecycleRuleFilter() {}
1980
1981// Describes where logs are stored and the prefix that Amazon S3 assigns to all log
1982// object keys for a bucket. For more information, see PUT Bucket logging
1983// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) in
1984// the Amazon Simple Storage Service API Reference.
1985type LoggingEnabled struct {
1986
1987	// Specifies the bucket where you want Amazon S3 to store server access logs. You
1988	// can have your logs delivered to any bucket that you own, including the same
1989	// bucket that is being logged. You can also configure multiple buckets to deliver
1990	// their logs to the same target bucket. In this case, you should choose a
1991	// different TargetPrefix for each source bucket so that the delivered log files
1992	// can be distinguished by key.
1993	//
1994	// This member is required.
1995	TargetBucket *string
1996
1997	// A prefix for all log object keys. If you store log files from multiple Amazon S3
1998	// buckets in a single bucket, you can use a prefix to distinguish which log files
1999	// came from which bucket.
2000	//
2001	// This member is required.
2002	TargetPrefix *string
2003
2004	// Container for granting information.
2005	TargetGrants []TargetGrant
2006}
2007
2008// A metadata key-value pair to store with an object.
2009type MetadataEntry struct {
2010
2011	// Name of the Object.
2012	Name *string
2013
2014	// Value of the Object.
2015	Value *string
2016}
2017
2018// A container specifying replication metrics-related settings enabling replication
2019// metrics and events.
2020type Metrics struct {
2021
2022	// Specifies whether the replication metrics are enabled.
2023	//
2024	// This member is required.
2025	Status MetricsStatus
2026
2027	// A container specifying the time threshold for emitting the
2028	// s3:Replication:OperationMissedThreshold event.
2029	EventThreshold *ReplicationTimeValue
2030}
2031
2032// A conjunction (logical AND) of predicates, which is used in evaluating a metrics
2033// filter. The operator must have at least two predicates, and an object must match
2034// all of the predicates in order for the filter to apply.
2035type MetricsAndOperator struct {
2036
2037	// The prefix used when evaluating an AND predicate.
2038	Prefix *string
2039
2040	// The list of tags used when evaluating an AND predicate.
2041	Tags []Tag
2042}
2043
2044// Specifies a metrics configuration for the CloudWatch request metrics (specified
2045// by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an
2046// existing metrics configuration, note that this is a full replacement of the
2047// existing metrics configuration. If you don't include the elements you want to
2048// keep, they are erased. For more information, see  PUT Bucket metrics
2049// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
2050// in the Amazon Simple Storage Service API Reference.
2051type MetricsConfiguration struct {
2052
2053	// The ID used to identify the metrics configuration.
2054	//
2055	// This member is required.
2056	Id *string
2057
2058	// Specifies a metrics configuration filter. The metrics configuration will only
2059	// include objects that meet the filter's criteria. A filter must be a prefix, a
2060	// tag, or a conjunction (MetricsAndOperator).
2061	Filter MetricsFilter
2062}
2063
2064// Specifies a metrics configuration filter. The metrics configuration only
2065// includes objects that meet the filter's criteria. A filter must be a prefix, a
2066// tag, or a conjunction (MetricsAndOperator).
2067//
2068// The following types satisfy this interface:
2069//  MetricsFilterMemberPrefix
2070//  MetricsFilterMemberTag
2071//  MetricsFilterMemberAnd
2072type MetricsFilter interface {
2073	isMetricsFilter()
2074}
2075
2076// The prefix used when evaluating a metrics filter.
2077type MetricsFilterMemberPrefix struct {
2078	Value string
2079}
2080
2081func (*MetricsFilterMemberPrefix) isMetricsFilter() {}
2082
2083// The tag used when evaluating a metrics filter.
2084type MetricsFilterMemberTag struct {
2085	Value Tag
2086}
2087
2088func (*MetricsFilterMemberTag) isMetricsFilter() {}
2089
2090// A conjunction (logical AND) of predicates, which is used in evaluating a metrics
2091// filter. The operator must have at least two predicates, and an object must match
2092// all of the predicates in order for the filter to apply.
2093type MetricsFilterMemberAnd struct {
2094	Value MetricsAndOperator
2095}
2096
2097func (*MetricsFilterMemberAnd) isMetricsFilter() {}
2098
2099// Container for the MultipartUpload for the Amazon S3 object.
2100type MultipartUpload struct {
2101
2102	// Date and time at which the multipart upload was initiated.
2103	Initiated *time.Time
2104
2105	// Identifies who initiated the multipart upload.
2106	Initiator *Initiator
2107
2108	// Key of the object for which the multipart upload was initiated.
2109	Key *string
2110
2111	// Specifies the owner of the object that is part of the multipart upload.
2112	Owner *Owner
2113
2114	// The class of storage used to store the object.
2115	StorageClass StorageClass
2116
2117	// Upload ID that identifies the multipart upload.
2118	UploadId *string
2119}
2120
2121// Specifies when noncurrent object versions expire. Upon expiration, Amazon S3
2122// permanently deletes the noncurrent object versions. You set this lifecycle
2123// configuration action on a bucket that has versioning enabled (or suspended) to
2124// request that Amazon S3 delete noncurrent object versions at a specific period in
2125// the object's lifetime.
2126type NoncurrentVersionExpiration struct {
2127
2128	// Specifies the number of days an object is noncurrent before Amazon S3 can
2129	// perform the associated action. For information about the noncurrent days
2130	// calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
2131	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
2132	// in the Amazon Simple Storage Service Developer Guide.
2133	NoncurrentDays int32
2134}
2135
2136// Container for the transition rule that describes when noncurrent objects
2137// transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, or
2138// DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning
2139// is suspended), you can set this action to request that Amazon S3 transition
2140// noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING,
2141// GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's
2142// lifetime.
2143type NoncurrentVersionTransition struct {
2144
2145	// Specifies the number of days an object is noncurrent before Amazon S3 can
2146	// perform the associated action. For information about the noncurrent days
2147	// calculations, see How Amazon S3 Calculates How Long an Object Has Been
2148	// Noncurrent
2149	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
2150	// in the Amazon Simple Storage Service Developer Guide.
2151	NoncurrentDays int32
2152
2153	// The class of storage used to store the object.
2154	StorageClass TransitionStorageClass
2155}
2156
2157// A container for specifying the notification configuration of the bucket. If this
2158// element is empty, notifications are turned off for the bucket.
2159type NotificationConfiguration struct {
2160
2161	// Describes the AWS Lambda functions to invoke and the events for which to invoke
2162	// them.
2163	LambdaFunctionConfigurations []LambdaFunctionConfiguration
2164
2165	// The Amazon Simple Queue Service queues to publish messages to and the events for
2166	// which to publish messages.
2167	QueueConfigurations []QueueConfiguration
2168
2169	// The topic to which notifications are sent and the events for which notifications
2170	// are generated.
2171	TopicConfigurations []TopicConfiguration
2172}
2173
2174// Specifies object key name filtering rules. For information about key name
2175// filtering, see Configuring Event Notifications
2176// (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the
2177// Amazon Simple Storage Service Developer Guide.
2178type NotificationConfigurationFilter struct {
2179
2180	// A container for object key name prefix and suffix filtering rules.
2181	Key *S3KeyFilter
2182}
2183
2184// An object consists of data and its descriptive metadata.
2185type Object struct {
2186
2187	// The entity tag is a hash of the object. The ETag reflects changes only to the
2188	// contents of an object, not its metadata. The ETag may or may not be an MD5
2189	// digest of the object data. Whether or not it is depends on how the object was
2190	// created and how it is encrypted as described below:
2191	//
2192	// * Objects created by the
2193	// PUT Object, POST Object, or Copy operation, or through the AWS Management
2194	// Console, and are encrypted by SSE-S3 or plaintext, have ETags that are an MD5
2195	// digest of their object data.
2196	//
2197	// * Objects created by the PUT Object, POST Object,
2198	// or Copy operation, or through the AWS Management Console, and are encrypted by
2199	// SSE-C or SSE-KMS, have ETags that are not an MD5 digest of their object data.
2200	//
2201	// *
2202	// If an object is created by either the Multipart Upload or Part Copy operation,
2203	// the ETag is not an MD5 digest, regardless of the method of encryption.
2204	ETag *string
2205
2206	// The name that you assign to an object. You use the object key to retrieve the
2207	// object.
2208	Key *string
2209
2210	// The date the Object was Last Modified
2211	LastModified *time.Time
2212
2213	// The owner of the object
2214	Owner *Owner
2215
2216	// Size in bytes of the object
2217	Size int64
2218
2219	// The class of storage used to store the object.
2220	StorageClass ObjectStorageClass
2221}
2222
2223// Object Identifier is unique value to identify objects.
2224type ObjectIdentifier struct {
2225
2226	// Key name of the object to delete.
2227	//
2228	// This member is required.
2229	Key *string
2230
2231	// VersionId for the specific version of the object to delete.
2232	VersionId *string
2233}
2234
2235// The container element for Object Lock configuration parameters.
2236type ObjectLockConfiguration struct {
2237
2238	// Indicates whether this bucket has an Object Lock configuration enabled.
2239	ObjectLockEnabled ObjectLockEnabled
2240
2241	// The Object Lock rule in place for the specified object.
2242	Rule *ObjectLockRule
2243}
2244
2245// A Legal Hold configuration for an object.
2246type ObjectLockLegalHold struct {
2247
2248	// Indicates whether the specified object has a Legal Hold in place.
2249	Status ObjectLockLegalHoldStatus
2250}
2251
2252// A Retention configuration for an object.
2253type ObjectLockRetention struct {
2254
2255	// Indicates the Retention mode for the specified object.
2256	Mode ObjectLockRetentionMode
2257
2258	// The date on which this Object Lock Retention will expire.
2259	RetainUntilDate *time.Time
2260}
2261
2262// The container element for an Object Lock rule.
2263type ObjectLockRule struct {
2264
2265	// The default retention period that you want to apply to new objects placed in the
2266	// specified bucket.
2267	DefaultRetention *DefaultRetention
2268}
2269
2270// The version of an object.
2271type ObjectVersion struct {
2272
2273	// The entity tag is an MD5 hash of that version of the object.
2274	ETag *string
2275
2276	// Specifies whether the object is (true) or is not (false) the latest version of
2277	// an object.
2278	IsLatest bool
2279
2280	// The object key.
2281	Key *string
2282
2283	// Date and time the object was last modified.
2284	LastModified *time.Time
2285
2286	// Specifies the owner of the object.
2287	Owner *Owner
2288
2289	// Size in bytes of the object.
2290	Size int64
2291
2292	// The class of storage used to store the object.
2293	StorageClass ObjectVersionStorageClass
2294
2295	// Version ID of an object.
2296	VersionId *string
2297}
2298
2299// Describes the location where the restore job's output is stored.
2300type OutputLocation struct {
2301
2302	// Describes an S3 location that will receive the results of the restore request.
2303	S3 *S3Location
2304}
2305
2306// Describes how results of the Select job are serialized.
2307type OutputSerialization struct {
2308
2309	// Describes the serialization of CSV-encoded Select results.
2310	CSV *CSVOutput
2311
2312	// Specifies JSON as request's output serialization format.
2313	JSON *JSONOutput
2314}
2315
2316// Container for the owner's display name and ID.
2317type Owner struct {
2318
2319	// Container for the display name of the owner.
2320	DisplayName *string
2321
2322	// Container for the ID of the owner.
2323	ID *string
2324}
2325
2326// The container element for a bucket's ownership controls.
2327type OwnershipControls struct {
2328
2329	// The container element for an ownership control rule.
2330	//
2331	// This member is required.
2332	Rules []OwnershipControlsRule
2333}
2334
2335// The container element for an ownership control rule.
2336type OwnershipControlsRule struct {
2337
2338	// The container element for object ownership for a bucket's ownership controls.
2339	// BucketOwnerPreferred - Objects uploaded to the bucket change ownership to the
2340	// bucket owner if the objects are uploaded with the bucket-owner-full-control
2341	// canned ACL. ObjectWriter - The uploading account will own the object if the
2342	// object is uploaded with the bucket-owner-full-control canned ACL.
2343	//
2344	// This member is required.
2345	ObjectOwnership ObjectOwnership
2346}
2347
2348// Container for Parquet.
2349type ParquetInput struct {
2350}
2351
2352// Container for elements related to a part.
2353type Part struct {
2354
2355	// Entity tag returned when the part was uploaded.
2356	ETag *string
2357
2358	// Date and time at which the part was uploaded.
2359	LastModified *time.Time
2360
2361	// Part number identifying the part. This is a positive integer between 1 and
2362	// 10,000.
2363	PartNumber int32
2364
2365	// Size in bytes of the uploaded part data.
2366	Size int64
2367}
2368
2369// The container element for a bucket's policy status.
2370type PolicyStatus struct {
2371
2372	// The policy status for this bucket. TRUE indicates that this bucket is public.
2373	// FALSE indicates that the bucket is not public.
2374	IsPublic bool
2375}
2376
2377// The PublicAccessBlock configuration that you want to apply to this Amazon S3
2378// bucket. You can enable the configuration options in any combination. For more
2379// information about when Amazon S3 considers a bucket or object public, see The
2380// Meaning of "Public"
2381// (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
2382// in the Amazon Simple Storage Service Developer Guide.
2383type PublicAccessBlockConfiguration struct {
2384
2385	// Specifies whether Amazon S3 should block public access control lists (ACLs) for
2386	// this bucket and objects in this bucket. Setting this element to TRUE causes the
2387	// following behavior:
2388	//
2389	// * PUT Bucket acl and PUT Object acl calls fail if the
2390	// specified ACL is public.
2391	//
2392	// * PUT Object calls fail if the request includes a
2393	// public ACL.
2394	//
2395	// * PUT Bucket calls fail if the request includes a public
2396	// ACL.
2397	//
2398	// Enabling this setting doesn't affect existing policies or ACLs.
2399	BlockPublicAcls bool
2400
2401	// Specifies whether Amazon S3 should block public bucket policies for this bucket.
2402	// Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket
2403	// policy if the specified bucket policy allows public access. Enabling this
2404	// setting doesn't affect existing bucket policies.
2405	BlockPublicPolicy bool
2406
2407	// Specifies whether Amazon S3 should ignore public ACLs for this bucket and
2408	// objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore
2409	// all public ACLs on this bucket and objects in this bucket. Enabling this setting
2410	// doesn't affect the persistence of any existing ACLs and doesn't prevent new
2411	// public ACLs from being set.
2412	IgnorePublicAcls bool
2413
2414	// Specifies whether Amazon S3 should restrict public bucket policies for this
2415	// bucket. Setting this element to TRUE restricts access to this bucket to only AWS
2416	// service principals and authorized users within this account if the bucket has a
2417	// public policy. Enabling this setting doesn't affect previously stored bucket
2418	// policies, except that public and cross-account access within any public bucket
2419	// policy, including non-public delegation to specific accounts, is blocked.
2420	RestrictPublicBuckets bool
2421}
2422
2423// Specifies the configuration for publishing messages to an Amazon Simple Queue
2424// Service (Amazon SQS) queue when Amazon S3 detects specified events.
2425type QueueConfiguration struct {
2426
2427	// A collection of bucket events for which to send notifications
2428	//
2429	// This member is required.
2430	Events []Event
2431
2432	// The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3
2433	// publishes a message when it detects events of the specified type.
2434	//
2435	// This member is required.
2436	QueueArn *string
2437
2438	// Specifies object key name filtering rules. For information about key name
2439	// filtering, see Configuring Event Notifications
2440	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the
2441	// Amazon Simple Storage Service Developer Guide.
2442	Filter *NotificationConfigurationFilter
2443
2444	// An optional unique identifier for configurations in a notification
2445	// configuration. If you don't provide one, Amazon S3 will assign an ID.
2446	Id *string
2447}
2448
2449// Specifies how requests are redirected. In the event of an error, you can specify
2450// a different error code to return.
2451type Redirect struct {
2452
2453	// The host name to use in the redirect request.
2454	HostName *string
2455
2456	// The HTTP redirect code to use on the response. Not required if one of the
2457	// siblings is present.
2458	HttpRedirectCode *string
2459
2460	// Protocol to use when redirecting requests. The default is the protocol that is
2461	// used in the original request.
2462	Protocol Protocol
2463
2464	// The object key prefix to use in the redirect request. For example, to redirect
2465	// requests for all pages with prefix docs/ (objects in the docs/ folder) to
2466	// documents/, you can set a condition block with KeyPrefixEquals set to docs/ and
2467	// in the Redirect set ReplaceKeyPrefixWith to /documents. Not required if one of
2468	// the siblings is present. Can be present only if ReplaceKeyWith is not provided.
2469	ReplaceKeyPrefixWith *string
2470
2471	// The specific object key to use in the redirect request. For example, redirect
2472	// request to error.html. Not required if one of the siblings is present. Can be
2473	// present only if ReplaceKeyPrefixWith is not provided.
2474	ReplaceKeyWith *string
2475}
2476
2477// Specifies the redirect behavior of all requests to a website endpoint of an
2478// Amazon S3 bucket.
2479type RedirectAllRequestsTo struct {
2480
2481	// Name of the host where requests are redirected.
2482	//
2483	// This member is required.
2484	HostName *string
2485
2486	// Protocol to use when redirecting requests. The default is the protocol that is
2487	// used in the original request.
2488	Protocol Protocol
2489}
2490
2491// A filter that you can specify for selection for modifications on replicas.
2492// Amazon S3 doesn't replicate replica modifications by default. In the latest
2493// version of replication configuration (when Filter is specified), you can specify
2494// this element and set the status to Enabled to replicate modifications on
2495// replicas. If you don't specify the Filter element, Amazon S3 assumes that the
2496// replication configuration is the earlier version, V1. In the earlier version,
2497// this element is not allowed.
2498type ReplicaModifications struct {
2499
2500	// Specifies whether Amazon S3 replicates modifications on replicas.
2501	//
2502	// This member is required.
2503	Status ReplicaModificationsStatus
2504}
2505
2506// A container for replication rules. You can add up to 1,000 rules. The maximum
2507// size of a replication configuration is 2 MB.
2508type ReplicationConfiguration struct {
2509
2510	// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM)
2511	// role that Amazon S3 assumes when replicating objects. For more information, see
2512	// How to Set Up Replication
2513	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html) in
2514	// the Amazon Simple Storage Service Developer Guide.
2515	//
2516	// This member is required.
2517	Role *string
2518
2519	// A container for one or more replication rules. A replication configuration must
2520	// have at least one rule and can contain a maximum of 1,000 rules.
2521	//
2522	// This member is required.
2523	Rules []ReplicationRule
2524}
2525
2526// Specifies which Amazon S3 objects to replicate and where to store the replicas.
2527type ReplicationRule struct {
2528
2529	// A container for information about the replication destination and its
2530	// configurations including enabling the S3 Replication Time Control (S3 RTC).
2531	//
2532	// This member is required.
2533	Destination *Destination
2534
2535	// Specifies whether the rule is enabled.
2536	//
2537	// This member is required.
2538	Status ReplicationRuleStatus
2539
2540	// Specifies whether Amazon S3 replicates delete markers. If you specify a Filter
2541	// in your replication configuration, you must also include a
2542	// DeleteMarkerReplication element. If your Filter includes a Tag element, the
2543	// DeleteMarkerReplicationStatus must be set to Disabled, because Amazon S3 does
2544	// not support replicating delete markers for tag-based rules. For an example
2545	// configuration, see Basic Rule Configuration
2546	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config).
2547	// For more information about delete marker replication, see Basic Rule
2548	// Configuration
2549	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html).
2550	// If you are using an earlier version of the replication configuration, Amazon S3
2551	// handles replication of delete markers differently. For more information, see
2552	// Backward Compatibility
2553	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations).
2554	DeleteMarkerReplication *DeleteMarkerReplication
2555
2556	//
2557	ExistingObjectReplication *ExistingObjectReplication
2558
2559	// A filter that identifies the subset of objects to which the replication rule
2560	// applies. A Filter must specify exactly one Prefix, Tag, or an And child element.
2561	Filter ReplicationRuleFilter
2562
2563	// A unique identifier for the rule. The maximum value is 255 characters.
2564	ID *string
2565
2566	// An object key name prefix that identifies the object or objects to which the
2567	// rule applies. The maximum prefix length is 1,024 characters. To include all
2568	// objects in a bucket, specify an empty string.
2569	//
2570	// Deprecated: This member has been deprecated.
2571	Prefix *string
2572
2573	// The priority indicates which rule has precedence whenever two or more
2574	// replication rules conflict. Amazon S3 will attempt to replicate objects
2575	// according to all replication rules. However, if there are two or more rules with
2576	// the same destination bucket, then objects will be replicated according to the
2577	// rule with the highest priority. The higher the number, the higher the priority.
2578	// For more information, see Replication
2579	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the Amazon
2580	// Simple Storage Service Developer Guide.
2581	Priority int32
2582
2583	// A container that describes additional filters for identifying the source objects
2584	// that you want to replicate. You can choose to enable or disable the replication
2585	// of these objects. Currently, Amazon S3 supports only the filter that you can
2586	// specify for objects created with server-side encryption using a customer master
2587	// key (CMK) stored in AWS Key Management Service (SSE-KMS).
2588	SourceSelectionCriteria *SourceSelectionCriteria
2589}
2590
2591// A container for specifying rule filters. The filters determine the subset of
2592// objects to which the rule applies. This element is required only if you specify
2593// more than one filter. For example:
2594//
2595// * If you specify both a Prefix and a Tag
2596// filter, wrap these filters in an And tag.
2597//
2598// * If you specify a filter based on
2599// multiple tags, wrap the Tag elements in an And tag
2600type ReplicationRuleAndOperator struct {
2601
2602	// An object key name prefix that identifies the subset of objects to which the
2603	// rule applies.
2604	Prefix *string
2605
2606	// An array of tags containing key and value pairs.
2607	Tags []Tag
2608}
2609
2610// A filter that identifies the subset of objects to which the replication rule
2611// applies. A Filter must specify exactly one Prefix, Tag, or an And child element.
2612//
2613// The following types satisfy this interface:
2614//  ReplicationRuleFilterMemberPrefix
2615//  ReplicationRuleFilterMemberTag
2616//  ReplicationRuleFilterMemberAnd
2617type ReplicationRuleFilter interface {
2618	isReplicationRuleFilter()
2619}
2620
2621// An object key name prefix that identifies the subset of objects to which the
2622// rule applies.
2623type ReplicationRuleFilterMemberPrefix struct {
2624	Value string
2625}
2626
2627func (*ReplicationRuleFilterMemberPrefix) isReplicationRuleFilter() {}
2628
2629// A container for specifying a tag key and value. The rule applies only to objects
2630// that have the tag in their tag set.
2631type ReplicationRuleFilterMemberTag struct {
2632	Value Tag
2633}
2634
2635func (*ReplicationRuleFilterMemberTag) isReplicationRuleFilter() {}
2636
2637// A container for specifying rule filters. The filters determine the subset of
2638// objects to which the rule applies. This element is required only if you specify
2639// more than one filter. For example:
2640//
2641// * If you specify both a Prefix and a Tag
2642// filter, wrap these filters in an And tag.
2643//
2644// * If you specify a filter based on
2645// multiple tags, wrap the Tag elements in an And tag.
2646type ReplicationRuleFilterMemberAnd struct {
2647	Value ReplicationRuleAndOperator
2648}
2649
2650func (*ReplicationRuleFilterMemberAnd) isReplicationRuleFilter() {}
2651
2652// A container specifying S3 Replication Time Control (S3 RTC) related information,
2653// including whether S3 RTC is enabled and the time when all objects and operations
2654// on objects must be replicated. Must be specified together with a Metrics block.
2655type ReplicationTime struct {
2656
2657	// Specifies whether the replication time is enabled.
2658	//
2659	// This member is required.
2660	Status ReplicationTimeStatus
2661
2662	// A container specifying the time by which replication should be complete for all
2663	// objects and operations on objects.
2664	//
2665	// This member is required.
2666	Time *ReplicationTimeValue
2667}
2668
2669// A container specifying the time value for S3 Replication Time Control (S3 RTC)
2670// and replication metrics EventThreshold.
2671type ReplicationTimeValue struct {
2672
2673	// Contains an integer specifying time in minutes. Valid values: 15 minutes.
2674	Minutes int32
2675}
2676
2677// Container for Payer.
2678type RequestPaymentConfiguration struct {
2679
2680	// Specifies who pays for the download and request fees.
2681	//
2682	// This member is required.
2683	Payer Payer
2684}
2685
2686// Container for restore job parameters.
2687type RestoreRequest struct {
2688
2689	// Lifetime of the active copy in days. Do not use with restores that specify
2690	// OutputLocation. The Days element is required for regular restores, and must not
2691	// be provided for select requests.
2692	Days int32
2693
2694	// The optional description for the job.
2695	Description *string
2696
2697	// S3 Glacier related parameters pertaining to this job. Do not use with restores
2698	// that specify OutputLocation.
2699	GlacierJobParameters *GlacierJobParameters
2700
2701	// Describes the location where the restore job's output is stored.
2702	OutputLocation *OutputLocation
2703
2704	// Describes the parameters for Select job types.
2705	SelectParameters *SelectParameters
2706
2707	// Retrieval tier at which the restore will be processed.
2708	Tier Tier
2709
2710	// Type of restore request.
2711	Type RestoreRequestType
2712}
2713
2714// Specifies the redirect behavior and when a redirect is applied. For more
2715// information about routing rules, see Configuring advanced conditional redirects
2716// (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html#advanced-conditional-redirects)
2717// in the Amazon Simple Storage Service Developer Guide.
2718type RoutingRule struct {
2719
2720	// Container for redirect information. You can redirect requests to another host,
2721	// to another page, or with another protocol. In the event of an error, you can
2722	// specify a different error code to return.
2723	//
2724	// This member is required.
2725	Redirect *Redirect
2726
2727	// A container for describing a condition that must be met for the specified
2728	// redirect to apply. For example, 1. If request is for pages in the /docs folder,
2729	// redirect to the /documents folder. 2. If request results in HTTP error 4xx,
2730	// redirect request to another host where you might process the error.
2731	Condition *Condition
2732}
2733
2734// A container for object key name prefix and suffix filtering rules.
2735type S3KeyFilter struct {
2736
2737	// A list of containers for the key-value pair that defines the criteria for the
2738	// filter rule.
2739	FilterRules []FilterRule
2740}
2741
2742// Describes an Amazon S3 location that will receive the results of the restore
2743// request.
2744type S3Location struct {
2745
2746	// The name of the bucket where the restore results will be placed.
2747	//
2748	// This member is required.
2749	BucketName *string
2750
2751	// The prefix that is prepended to the restore results for this request.
2752	//
2753	// This member is required.
2754	Prefix *string
2755
2756	// A list of grants that control access to the staged results.
2757	AccessControlList []Grant
2758
2759	// The canned ACL to apply to the restore results.
2760	CannedACL ObjectCannedACL
2761
2762	// Contains the type of server-side encryption used.
2763	Encryption *Encryption
2764
2765	// The class of storage used to store the restore results.
2766	StorageClass StorageClass
2767
2768	// The tag-set that is applied to the restore results.
2769	Tagging *Tagging
2770
2771	// A list of metadata to store with the restore results in S3.
2772	UserMetadata []MetadataEntry
2773}
2774
2775// Describes the parameters for Select job types.
2776type SelectParameters struct {
2777
2778	// The expression that is used to query the object.
2779	//
2780	// This member is required.
2781	Expression *string
2782
2783	// The type of the provided expression (for example, SQL).
2784	//
2785	// This member is required.
2786	ExpressionType ExpressionType
2787
2788	// Describes the serialization format of the object.
2789	//
2790	// This member is required.
2791	InputSerialization *InputSerialization
2792
2793	// Describes how the results of the Select job are serialized.
2794	//
2795	// This member is required.
2796	OutputSerialization *OutputSerialization
2797}
2798
2799// Describes the default server-side encryption to apply to new objects in the
2800// bucket. If a PUT Object request doesn't specify any server-side encryption, this
2801// default encryption will be applied. For more information, see PUT Bucket
2802// encryption
2803// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html)
2804// in the Amazon Simple Storage Service API Reference.
2805type ServerSideEncryptionByDefault struct {
2806
2807	// Server-side encryption algorithm to use for the default encryption.
2808	//
2809	// This member is required.
2810	SSEAlgorithm ServerSideEncryption
2811
2812	// AWS Key Management Service (KMS) customer master key ID to use for the default
2813	// encryption. This parameter is allowed if and only if SSEAlgorithm is set to
2814	// aws:kms. You can specify the key ID or the Amazon Resource Name (ARN) of the
2815	// CMK. However, if you are using encryption with cross-account operations, you
2816	// must use a fully qualified CMK ARN. For more information, see Using encryption
2817	// for cross-account operations
2818	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy).
2819	// For example:
2820	//
2821	// * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
2822	//
2823	// * Key ARN:
2824	// arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
2825	//
2826	// Amazon
2827	// S3 only supports symmetric CMKs and not asymmetric CMKs. For more information,
2828	// see Using Symmetric and Asymmetric Keys
2829	// (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
2830	// in the AWS Key Management Service Developer Guide.
2831	KMSMasterKeyID *string
2832}
2833
2834// Specifies the default server-side-encryption configuration.
2835type ServerSideEncryptionConfiguration struct {
2836
2837	// Container for information about a particular server-side encryption
2838	// configuration rule.
2839	//
2840	// This member is required.
2841	Rules []ServerSideEncryptionRule
2842}
2843
2844// Specifies the default server-side encryption configuration.
2845type ServerSideEncryptionRule struct {
2846
2847	// Specifies the default server-side encryption to apply to new objects in the
2848	// bucket. If a PUT Object request doesn't specify any server-side encryption, this
2849	// default encryption will be applied.
2850	ApplyServerSideEncryptionByDefault *ServerSideEncryptionByDefault
2851
2852	// Specifies whether Amazon S3 should use an S3 Bucket Key with server-side
2853	// encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects
2854	// are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3
2855	// to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled. For more
2856	// information, see Amazon S3 Bucket Keys
2857	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in the Amazon
2858	// Simple Storage Service Developer Guide.
2859	BucketKeyEnabled bool
2860}
2861
2862// A container that describes additional filters for identifying the source objects
2863// that you want to replicate. You can choose to enable or disable the replication
2864// of these objects. Currently, Amazon S3 supports only the filter that you can
2865// specify for objects created with server-side encryption using a customer master
2866// key (CMK) stored in AWS Key Management Service (SSE-KMS).
2867type SourceSelectionCriteria struct {
2868
2869	// A filter that you can specify for selections for modifications on replicas.
2870	// Amazon S3 doesn't replicate replica modifications by default. In the latest
2871	// version of replication configuration (when Filter is specified), you can specify
2872	// this element and set the status to Enabled to replicate modifications on
2873	// replicas. If you don't specify the Filter element, Amazon S3 assumes that the
2874	// replication configuration is the earlier version, V1. In the earlier version,
2875	// this element is not allowed
2876	ReplicaModifications *ReplicaModifications
2877
2878	// A container for filter information for the selection of Amazon S3 objects
2879	// encrypted with AWS KMS. If you include SourceSelectionCriteria in the
2880	// replication configuration, this element is required.
2881	SseKmsEncryptedObjects *SseKmsEncryptedObjects
2882}
2883
2884// Specifies the use of SSE-KMS to encrypt delivered inventory reports.
2885type SSEKMS struct {
2886
2887	// Specifies the ID of the AWS Key Management Service (AWS KMS) symmetric customer
2888	// managed customer master key (CMK) to use for encrypting inventory reports.
2889	//
2890	// This member is required.
2891	KeyId *string
2892}
2893
2894// A container for filter information for the selection of S3 objects encrypted
2895// with AWS KMS.
2896type SseKmsEncryptedObjects struct {
2897
2898	// Specifies whether Amazon S3 replicates objects created with server-side
2899	// encryption using a customer master key (CMK) stored in AWS Key Management
2900	// Service.
2901	//
2902	// This member is required.
2903	Status SseKmsEncryptedObjectsStatus
2904}
2905
2906// Specifies the use of SSE-S3 to encrypt delivered inventory reports.
2907type SSES3 struct {
2908}
2909
2910// Specifies data related to access patterns to be collected and made available to
2911// analyze the tradeoffs between different storage classes for an Amazon S3 bucket.
2912type StorageClassAnalysis struct {
2913
2914	// Specifies how data related to the storage class analysis for an Amazon S3 bucket
2915	// should be exported.
2916	DataExport *StorageClassAnalysisDataExport
2917}
2918
2919// Container for data related to the storage class analysis for an Amazon S3 bucket
2920// for export.
2921type StorageClassAnalysisDataExport struct {
2922
2923	// The place to store the data for an analysis.
2924	//
2925	// This member is required.
2926	Destination *AnalyticsExportDestination
2927
2928	// The version of the output schema to use when exporting data. Must be V_1.
2929	//
2930	// This member is required.
2931	OutputSchemaVersion StorageClassAnalysisSchemaVersion
2932}
2933
2934// A container of a key value name pair.
2935type Tag struct {
2936
2937	// Name of the object key.
2938	//
2939	// This member is required.
2940	Key *string
2941
2942	// Value of the tag.
2943	//
2944	// This member is required.
2945	Value *string
2946}
2947
2948// Container for TagSet elements.
2949type Tagging struct {
2950
2951	// A collection for a set of tags
2952	//
2953	// This member is required.
2954	TagSet []Tag
2955}
2956
2957// Container for granting information.
2958type TargetGrant struct {
2959
2960	// Container for the person being granted permissions.
2961	Grantee *Grantee
2962
2963	// Logging permissions assigned to the grantee for the bucket.
2964	Permission BucketLogsPermission
2965}
2966
2967// The S3 Intelligent-Tiering storage class is designed to optimize storage costs
2968// by automatically moving data to the most cost-effective storage access tier,
2969// without additional operational overhead.
2970type Tiering struct {
2971
2972	// S3 Intelligent-Tiering access tier. See Storage class for automatically
2973	// optimizing frequently and infrequently accessed objects
2974	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access)
2975	// for a list of access tiers in the S3 Intelligent-Tiering storage class.
2976	//
2977	// This member is required.
2978	AccessTier IntelligentTieringAccessTier
2979
2980	// The number of consecutive days of no access after which an object will be
2981	// eligible to be transitioned to the corresponding tier. The minimum number of
2982	// days specified for Archive Access tier must be at least 90 days and Deep Archive
2983	// Access tier must be at least 180 days. The maximum can be up to 2 years (730
2984	// days).
2985	//
2986	// This member is required.
2987	Days int32
2988}
2989
2990// A container for specifying the configuration for publication of messages to an
2991// Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects
2992// specified events.
2993type TopicConfiguration struct {
2994
2995	// The Amazon S3 bucket event about which to send notifications. For more
2996	// information, see Supported Event Types
2997	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the
2998	// Amazon Simple Storage Service Developer Guide.
2999	//
3000	// This member is required.
3001	Events []Event
3002
3003	// The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3
3004	// publishes a message when it detects events of the specified type.
3005	//
3006	// This member is required.
3007	TopicArn *string
3008
3009	// Specifies object key name filtering rules. For information about key name
3010	// filtering, see Configuring Event Notifications
3011	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the
3012	// Amazon Simple Storage Service Developer Guide.
3013	Filter *NotificationConfigurationFilter
3014
3015	// An optional unique identifier for configurations in a notification
3016	// configuration. If you don't provide one, Amazon S3 will assign an ID.
3017	Id *string
3018}
3019
3020// Specifies when an object transitions to a specified storage class. For more
3021// information about Amazon S3 lifecycle configuration rules, see Transitioning
3022// Objects Using Amazon S3 Lifecycle
3023// (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html)
3024// in the Amazon Simple Storage Service Developer Guide.
3025type Transition struct {
3026
3027	// Indicates when objects are transitioned to the specified storage class. The date
3028	// value must be in ISO 8601 format. The time is always midnight UTC.
3029	Date *time.Time
3030
3031	// Indicates the number of days after creation when objects are transitioned to the
3032	// specified storage class. The value must be a positive integer.
3033	Days int32
3034
3035	// The storage class to which you want the object to transition.
3036	StorageClass TransitionStorageClass
3037}
3038
3039// Describes the versioning state of an Amazon S3 bucket. For more information, see
3040// PUT Bucket versioning
3041// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html)
3042// in the Amazon Simple Storage Service API Reference.
3043type VersioningConfiguration struct {
3044
3045	// Specifies whether MFA delete is enabled in the bucket versioning configuration.
3046	// This element is only returned if the bucket has been configured with MFA delete.
3047	// If the bucket has never been so configured, this element is not returned.
3048	MFADelete MFADelete
3049
3050	// The versioning state of the bucket.
3051	Status BucketVersioningStatus
3052}
3053
3054// Specifies website configuration parameters for an Amazon S3 bucket.
3055type WebsiteConfiguration struct {
3056
3057	// The name of the error document for the website.
3058	ErrorDocument *ErrorDocument
3059
3060	// The name of the index document for the website.
3061	IndexDocument *IndexDocument
3062
3063	// The redirect behavior for every request to this bucket's website endpoint. If
3064	// you specify this property, you can't specify any other property.
3065	RedirectAllRequestsTo *RedirectAllRequestsTo
3066
3067	// Rules that define when a redirect is applied and the redirect behavior.
3068	RoutingRules []RoutingRule
3069}
3070
3071// UnknownUnionMember is returned when a union member is returned over the wire,
3072// but has an unknown tag.
3073type UnknownUnionMember struct {
3074	Tag   string
3075	Value []byte
3076}
3077
3078func (*UnknownUnionMember) isAnalyticsFilter()       {}
3079func (*UnknownUnionMember) isLifecycleRuleFilter()   {}
3080func (*UnknownUnionMember) isMetricsFilter()         {}
3081func (*UnknownUnionMember) isReplicationRuleFilter() {}
3082