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