1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// The container for abort incomplete multipart upload
10type AbortIncompleteMultipartUpload struct {
11
12	// Specifies the number of days after which Amazon S3 aborts an incomplete
13	// multipart upload to the Outposts bucket.
14	DaysAfterInitiation int32
15}
16
17// An access point used to access a bucket.
18type AccessPoint struct {
19
20	// The name of the bucket associated with this access point.
21	//
22	// This member is required.
23	Bucket *string
24
25	// The name of this access point.
26	//
27	// This member is required.
28	Name *string
29
30	// Indicates whether this access point allows access from the public internet. If
31	// VpcConfiguration is specified for this access point, then NetworkOrigin is VPC,
32	// and the access point doesn't allow access from the public internet. Otherwise,
33	// NetworkOrigin is Internet, and the access point allows access from the public
34	// internet, subject to the access point and bucket access policies.
35	//
36	// This member is required.
37	NetworkOrigin NetworkOrigin
38
39	// The ARN for the access point.
40	AccessPointArn *string
41
42	// The virtual private cloud (VPC) configuration for this access point, if one
43	// exists.
44	VpcConfiguration *VpcConfiguration
45}
46
47// A container for the account level Amazon S3 Storage Lens configuration.
48type AccountLevel struct {
49
50	// A container for the S3 Storage Lens bucket-level configuration.
51	//
52	// This member is required.
53	BucketLevel *BucketLevel
54
55	// A container for the S3 Storage Lens activity metrics.
56	ActivityMetrics *ActivityMetrics
57}
58
59// A container for the activity metrics.
60type ActivityMetrics struct {
61
62	// A container for whether the activity metrics are enabled.
63	IsEnabled bool
64}
65
66// AWS Lambda function used to transform objects through an Object Lambda Access
67// Point.
68type AwsLambdaTransformation struct {
69
70	// The Amazon Resource Name (ARN) of the AWS Lambda function.
71	//
72	// This member is required.
73	FunctionArn *string
74
75	// Additional JSON that provides supplemental data to the Lambda function used to
76	// transform objects.
77	FunctionPayload *string
78}
79
80// A container for the bucket-level configuration.
81type BucketLevel struct {
82
83	// A container for the bucket-level activity metrics for Amazon S3 Storage Lens
84	ActivityMetrics *ActivityMetrics
85
86	// A container for the bucket-level prefix-level metrics for S3 Storage Lens
87	PrefixLevel *PrefixLevel
88}
89
90// The container for the bucket configuration. This is not supported by Amazon S3
91// on Outposts buckets.
92type CreateBucketConfiguration struct {
93
94	// Specifies the Region where the bucket will be created. If you are creating a
95	// bucket on the US East (N. Virginia) Region (us-east-1), you do not need to
96	// specify the location. This is not supported by Amazon S3 on Outposts buckets.
97	LocationConstraint BucketLocationConstraint
98}
99
100// A container for what Amazon S3 Storage Lens will exclude.
101type Exclude struct {
102
103	// A container for the S3 Storage Lens bucket excludes.
104	Buckets []string
105
106	// A container for the S3 Storage Lens Region excludes.
107	Regions []string
108}
109
110// A container for what Amazon S3 Storage Lens configuration includes.
111type Include struct {
112
113	// A container for the S3 Storage Lens bucket includes.
114	Buckets []string
115
116	// A container for the S3 Storage Lens Region includes.
117	Regions []string
118}
119
120// A container element for the job configuration and status information returned by
121// a Describe Job request.
122type JobDescriptor struct {
123
124	// Indicates whether confirmation is required before Amazon S3 begins running the
125	// specified job. Confirmation is required only for jobs created through the Amazon
126	// S3 console.
127	ConfirmationRequired bool
128
129	// A timestamp indicating when this job was created.
130	CreationTime *time.Time
131
132	// The description for this job, if one was provided in this job's Create Job
133	// request.
134	Description *string
135
136	// If the specified job failed, this field contains information describing the
137	// failure.
138	FailureReasons []JobFailure
139
140	// The Amazon Resource Name (ARN) for this job.
141	JobArn *string
142
143	// The ID for the specified job.
144	JobId *string
145
146	// The configuration information for the specified job's manifest object.
147	Manifest *JobManifest
148
149	// The operation that the specified job is configured to run on the objects listed
150	// in the manifest.
151	Operation *JobOperation
152
153	// The priority of the specified job.
154	Priority int32
155
156	// Describes the total number of tasks that the specified job has run, the number
157	// of tasks that succeeded, and the number of tasks that failed.
158	ProgressSummary *JobProgressSummary
159
160	// Contains the configuration information for the job-completion report if you
161	// requested one in the Create Job request.
162	Report *JobReport
163
164	// The Amazon Resource Name (ARN) for the AWS Identity and Access Management (IAM)
165	// role assigned to run the tasks for this job.
166	RoleArn *string
167
168	// The current status of the specified job.
169	Status JobStatus
170
171	// The reason for updating the job.
172	StatusUpdateReason *string
173
174	// The reason why the specified job was suspended. A job is only suspended if you
175	// create it through the Amazon S3 console. When you create the job, it enters the
176	// Suspended state to await confirmation before running. After you confirm the job,
177	// it automatically exits the Suspended state.
178	SuspendedCause *string
179
180	// The timestamp when this job was suspended, if it has been suspended.
181	SuspendedDate *time.Time
182
183	// A timestamp indicating when this job terminated. A job's termination date is the
184	// date and time when it succeeded, failed, or was canceled.
185	TerminationDate *time.Time
186}
187
188// If this job failed, this element indicates why the job failed.
189type JobFailure struct {
190
191	// The failure code, if any, for the specified job.
192	FailureCode *string
193
194	// The failure reason, if any, for the specified job.
195	FailureReason *string
196}
197
198// Contains the configuration and status information for a single job retrieved as
199// part of a job list.
200type JobListDescriptor struct {
201
202	// A timestamp indicating when the specified job was created.
203	CreationTime *time.Time
204
205	// The user-specified description that was included in the specified job's Create
206	// Job request.
207	Description *string
208
209	// The ID for the specified job.
210	JobId *string
211
212	// The operation that the specified job is configured to run on every object listed
213	// in the manifest.
214	Operation OperationName
215
216	// The current priority for the specified job.
217	Priority int32
218
219	// Describes the total number of tasks that the specified job has run, the number
220	// of tasks that succeeded, and the number of tasks that failed.
221	ProgressSummary *JobProgressSummary
222
223	// The specified job's current status.
224	Status JobStatus
225
226	// A timestamp indicating when the specified job terminated. A job's termination
227	// date is the date and time when it succeeded, failed, or was canceled.
228	TerminationDate *time.Time
229}
230
231// Contains the configuration information for a job's manifest.
232type JobManifest struct {
233
234	// Contains the information required to locate the specified job's manifest.
235	//
236	// This member is required.
237	Location *JobManifestLocation
238
239	// Describes the format of the specified job's manifest. If the manifest is in CSV
240	// format, also describes the columns contained within the manifest.
241	//
242	// This member is required.
243	Spec *JobManifestSpec
244}
245
246// Contains the information required to locate a manifest object.
247type JobManifestLocation struct {
248
249	// The ETag for the specified manifest object.
250	//
251	// This member is required.
252	ETag *string
253
254	// The Amazon Resource Name (ARN) for a manifest object. Replacement must be made
255	// for object keys containing special characters (such as carriage returns) when
256	// using XML requests. For more information, see  XML related object key
257	// constraints
258	// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
259	//
260	// This member is required.
261	ObjectArn *string
262
263	// The optional version ID to identify a specific version of the manifest object.
264	ObjectVersionId *string
265}
266
267// Describes the format of a manifest. If the manifest is in CSV format, also
268// describes the columns contained within the manifest.
269type JobManifestSpec struct {
270
271	// Indicates which of the available formats the specified manifest uses.
272	//
273	// This member is required.
274	Format JobManifestFormat
275
276	// If the specified manifest object is in the S3BatchOperations_CSV_20180820
277	// format, this element describes which columns contain the required data.
278	Fields []JobManifestFieldName
279}
280
281// The operation that you want this job to perform on every object listed in the
282// manifest. For more information about the available operations, see Operations
283// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html) in
284// the Amazon Simple Storage Service User Guide.
285type JobOperation struct {
286
287	// Directs the specified job to invoke an AWS Lambda function on every object in
288	// the manifest.
289	LambdaInvoke *LambdaInvokeOperation
290
291	// Directs the specified job to execute a DELETE Object tagging call on every
292	// object in the manifest.
293	S3DeleteObjectTagging *S3DeleteObjectTaggingOperation
294
295	// Directs the specified job to initiate restore requests for every archived object
296	// in the manifest.
297	S3InitiateRestoreObject *S3InitiateRestoreObjectOperation
298
299	// Directs the specified job to run a PUT Object acl call on every object in the
300	// manifest.
301	S3PutObjectAcl *S3SetObjectAclOperation
302
303	// Directs the specified job to run a PUT Copy object call on every object in the
304	// manifest.
305	S3PutObjectCopy *S3CopyObjectOperation
306
307	// Contains the configuration for an S3 Object Lock legal hold operation that an S3
308	// Batch Operations job passes every object to the underlying PutObjectLegalHold
309	// API. For more information, see Using S3 Object Lock legal hold with S3 Batch
310	// Operations
311	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html) in
312	// the Amazon Simple Storage Service User Guide.
313	S3PutObjectLegalHold *S3SetObjectLegalHoldOperation
314
315	// Contains the configuration parameters for the Object Lock retention action for
316	// an S3 Batch Operations job. Batch Operations passes every object to the
317	// underlying PutObjectRetention API. For more information, see Using S3 Object
318	// Lock retention with S3 Batch Operations
319	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
320	// in the Amazon Simple Storage Service User Guide.
321	S3PutObjectRetention *S3SetObjectRetentionOperation
322
323	// Directs the specified job to run a PUT Object tagging call on every object in
324	// the manifest.
325	S3PutObjectTagging *S3SetObjectTaggingOperation
326}
327
328// Describes the total number of tasks that the specified job has started, the
329// number of tasks that succeeded, and the number of tasks that failed.
330type JobProgressSummary struct {
331
332	//
333	NumberOfTasksFailed int64
334
335	//
336	NumberOfTasksSucceeded int64
337
338	//
339	TotalNumberOfTasks int64
340}
341
342// Contains the configuration parameters for a job-completion report.
343type JobReport struct {
344
345	// Indicates whether the specified job will generate a job-completion report.
346	//
347	// This member is required.
348	Enabled bool
349
350	// The Amazon Resource Name (ARN) for the bucket where specified job-completion
351	// report will be stored.
352	Bucket *string
353
354	// The format of the specified job-completion report.
355	Format JobReportFormat
356
357	// An optional prefix to describe where in the specified bucket the job-completion
358	// report will be stored. Amazon S3 stores the job-completion report at
359	// /job-/report.json.
360	Prefix *string
361
362	// Indicates whether the job-completion report will include details of all tasks or
363	// only failed tasks.
364	ReportScope JobReportScope
365}
366
367// Contains the configuration parameters for a Lambda Invoke operation.
368type LambdaInvokeOperation struct {
369
370	// The Amazon Resource Name (ARN) for the AWS Lambda function that the specified
371	// job will invoke on every object in the manifest.
372	FunctionArn *string
373}
374
375// The container for the Outposts bucket lifecycle configuration.
376type LifecycleConfiguration struct {
377
378	// A lifecycle rule for individual objects in an Outposts bucket.
379	Rules []LifecycleRule
380}
381
382// The container of the Outposts bucket lifecycle expiration.
383type LifecycleExpiration struct {
384
385	// Indicates at what date the object is to be deleted. Should be in GMT ISO 8601
386	// format.
387	Date *time.Time
388
389	// Indicates the lifetime, in days, of the objects that are subject to the rule.
390	// The value must be a non-zero positive integer.
391	Days int32
392
393	// Indicates whether Amazon S3 will remove a delete marker with no noncurrent
394	// versions. If set to true, the delete marker will be expired. If set to false,
395	// the policy takes no action. This cannot be specified with Days or Date in a
396	// Lifecycle Expiration Policy.
397	ExpiredObjectDeleteMarker bool
398}
399
400// The container for the Outposts bucket lifecycle rule.
401type LifecycleRule struct {
402
403	// If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is
404	// not currently being applied.
405	//
406	// This member is required.
407	Status ExpirationStatus
408
409	// Specifies the days since the initiation of an incomplete multipart upload that
410	// Amazon S3 waits before permanently removing all parts of the upload. For more
411	// information, see  Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle
412	// Policy
413	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
414	// in the Amazon Simple Storage Service Developer Guide.
415	AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload
416
417	// Specifies the expiration for the lifecycle of the object in the form of date,
418	// days and, whether the object has a delete marker.
419	Expiration *LifecycleExpiration
420
421	// The container for the filter of lifecycle rule.
422	Filter *LifecycleRuleFilter
423
424	// Unique identifier for the rule. The value cannot be longer than 255 characters.
425	ID *string
426
427	// The noncurrent version expiration of the lifecycle rule. This is not supported
428	// by Amazon S3 on Outposts buckets.
429	NoncurrentVersionExpiration *NoncurrentVersionExpiration
430
431	// Specifies the transition rule for the lifecycle rule that describes when
432	// noncurrent objects transition to a specific storage class. If your bucket is
433	// versioning-enabled (or versioning is suspended), you can set this action to
434	// request that Amazon S3 transition noncurrent object versions to a specific
435	// storage class at a set period in the object's lifetime. This is not supported by
436	// Amazon S3 on Outposts buckets.
437	NoncurrentVersionTransitions []NoncurrentVersionTransition
438
439	// Specifies when an Amazon S3 object transitions to a specified storage class.
440	// This is not supported by Amazon S3 on Outposts buckets.
441	Transitions []Transition
442}
443
444// The container for the Outposts bucket lifecycle rule and operator.
445type LifecycleRuleAndOperator struct {
446
447	// Prefix identifying one or more objects to which the rule applies.
448	Prefix *string
449
450	// All of these tags must exist in the object's tag set in order for the rule to
451	// apply.
452	Tags []S3Tag
453}
454
455// The container for the filter of the lifecycle rule.
456type LifecycleRuleFilter struct {
457
458	// The container for the AND condition for the lifecycle rule.
459	And *LifecycleRuleAndOperator
460
461	// Prefix identifying one or more objects to which the rule applies. Replacement
462	// must be made for object keys containing special characters (such as carriage
463	// returns) when using XML requests. For more information, see  XML related object
464	// key constraints
465	// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
466	Prefix *string
467
468	//
469	Tag *S3Tag
470}
471
472// Part of ListStorageLensConfigurationResult. Each entry includes the description
473// of the S3 Storage Lens configuration, its home Region, whether it is enabled,
474// its Amazon Resource Name (ARN), and config ID.
475type ListStorageLensConfigurationEntry struct {
476
477	// A container for the S3 Storage Lens home Region. Your metrics data is stored and
478	// retained in your designated S3 Storage Lens home Region.
479	//
480	// This member is required.
481	HomeRegion *string
482
483	// A container for the S3 Storage Lens configuration ID.
484	//
485	// This member is required.
486	Id *string
487
488	// The ARN of the S3 Storage Lens configuration. This property is read-only.
489	//
490	// This member is required.
491	StorageLensArn *string
492
493	// A container for whether the S3 Storage Lens configuration is enabled. This
494	// property is required.
495	IsEnabled bool
496}
497
498// The container of the noncurrent version expiration.
499type NoncurrentVersionExpiration struct {
500
501	// Specifies the number of days an object is noncurrent before Amazon S3 can
502	// perform the associated action. For information about the noncurrent days
503	// calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
504	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
505	// in the Amazon Simple Storage Service Developer Guide.
506	NoncurrentDays int32
507}
508
509// The container for the noncurrent version transition.
510type NoncurrentVersionTransition struct {
511
512	// Specifies the number of days an object is noncurrent before Amazon S3 can
513	// perform the associated action. For information about the noncurrent days
514	// calculations, see  How Amazon S3 Calculates How Long an Object Has Been
515	// Noncurrent
516	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
517	// in the Amazon Simple Storage Service Developer Guide.
518	NoncurrentDays int32
519
520	// The class of storage used to store the object.
521	StorageClass TransitionStorageClass
522}
523
524// An access point with an attached AWS Lambda function used to access transformed
525// data from an Amazon S3 bucket.
526type ObjectLambdaAccessPoint struct {
527
528	// The name of the Object Lambda Access Point.
529	//
530	// This member is required.
531	Name *string
532
533	// Specifies the ARN for the Object Lambda Access Point.
534	ObjectLambdaAccessPointArn *string
535}
536
537// A configuration used when creating an Object Lambda Access Point.
538type ObjectLambdaConfiguration struct {
539
540	// Standard access point associated with the Object Lambda Access Point.
541	//
542	// This member is required.
543	SupportingAccessPoint *string
544
545	// A container for transformation configurations for an Object Lambda Access Point.
546	//
547	// This member is required.
548	TransformationConfigurations []ObjectLambdaTransformationConfiguration
549
550	// A container for allowed features. Valid inputs are GetObject-Range and
551	// GetObject-PartNumber.
552	AllowedFeatures []ObjectLambdaAllowedFeature
553
554	// A container for whether the CloudWatch metrics configuration is enabled.
555	CloudWatchMetricsEnabled bool
556}
557
558// A container for AwsLambdaTransformation.
559//
560// The following types satisfy this interface:
561//  ObjectLambdaContentTransformationMemberAwsLambda
562type ObjectLambdaContentTransformation interface {
563	isObjectLambdaContentTransformation()
564}
565
566// A container for an AWS Lambda function.
567type ObjectLambdaContentTransformationMemberAwsLambda struct {
568	Value AwsLambdaTransformation
569}
570
571func (*ObjectLambdaContentTransformationMemberAwsLambda) isObjectLambdaContentTransformation() {}
572
573// A configuration used when creating an Object Lambda Access Point transformation.
574type ObjectLambdaTransformationConfiguration struct {
575
576	// A container for the action of an Object Lambda Access Point configuration. Valid
577	// input is GetObject.
578	//
579	// This member is required.
580	Actions []ObjectLambdaTransformationConfigurationAction
581
582	// A container for the content transformation of an Object Lambda Access Point
583	// configuration.
584	//
585	// This member is required.
586	ContentTransformation ObjectLambdaContentTransformation
587}
588
589// Indicates whether this access point policy is public. For more information about
590// how Amazon S3 evaluates policies to determine whether they are public, see The
591// Meaning of "Public"
592// (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
593// in the Amazon Simple Storage Service User Guide.
594type PolicyStatus struct {
595
596	//
597	IsPublic bool
598}
599
600// A container for the prefix-level configuration.
601type PrefixLevel struct {
602
603	// A container for the prefix-level storage metrics for S3 Storage Lens.
604	//
605	// This member is required.
606	StorageMetrics *PrefixLevelStorageMetrics
607}
608
609// A container for the prefix-level storage metrics for S3 Storage Lens.
610type PrefixLevelStorageMetrics struct {
611
612	// A container for whether prefix-level storage metrics are enabled.
613	IsEnabled bool
614
615	//
616	SelectionCriteria *SelectionCriteria
617}
618
619// The PublicAccessBlock configuration that you want to apply to this Amazon S3
620// account. You can enable the configuration options in any combination. For more
621// information about when Amazon S3 considers a bucket or object public, see The
622// Meaning of "Public"
623// (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
624// in the Amazon Simple Storage Service Developer Guide. This is not supported for
625// Amazon S3 on Outposts.
626type PublicAccessBlockConfiguration struct {
627
628	// Specifies whether Amazon S3 should block public access control lists (ACLs) for
629	// buckets in this account. Setting this element to TRUE causes the following
630	// behavior:
631	//
632	// * PUT Bucket acl and PUT Object acl calls fail if the specified ACL
633	// is public.
634	//
635	// * PUT Object calls fail if the request includes a public ACL.
636	//
637	// * PUT
638	// Bucket calls fail if the request includes a public ACL.
639	//
640	// Enabling this setting
641	// doesn't affect existing policies or ACLs. This is not supported for Amazon S3 on
642	// Outposts.
643	BlockPublicAcls bool
644
645	// Specifies whether Amazon S3 should block public bucket policies for buckets in
646	// this account. Setting this element to TRUE causes Amazon S3 to reject calls to
647	// PUT Bucket policy if the specified bucket policy allows public access. Enabling
648	// this setting doesn't affect existing bucket policies. This is not supported for
649	// Amazon S3 on Outposts.
650	BlockPublicPolicy bool
651
652	// Specifies whether Amazon S3 should ignore public ACLs for buckets in this
653	// account. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs
654	// on buckets in this account and any objects that they contain. Enabling this
655	// setting doesn't affect the persistence of any existing ACLs and doesn't prevent
656	// new public ACLs from being set. This is not supported for Amazon S3 on Outposts.
657	IgnorePublicAcls bool
658
659	// Specifies whether Amazon S3 should restrict public bucket policies for buckets
660	// in this account. Setting this element to TRUE restricts access to buckets with
661	// public policies to only AWS service principals and authorized users within this
662	// account. Enabling this setting doesn't affect previously stored bucket policies,
663	// except that public and cross-account access within any public bucket policy,
664	// including non-public delegation to specific accounts, is blocked. This is not
665	// supported for Amazon S3 on Outposts.
666	RestrictPublicBuckets bool
667}
668
669// The container for the regional bucket.
670type RegionalBucket struct {
671
672	//
673	//
674	// This member is required.
675	Bucket *string
676
677	// The creation date of the regional bucket
678	//
679	// This member is required.
680	CreationDate *time.Time
681
682	//
683	//
684	// This member is required.
685	PublicAccessBlockEnabled bool
686
687	// The Amazon Resource Name (ARN) for the regional bucket.
688	BucketArn *string
689
690	// The AWS Outposts ID of the regional bucket.
691	OutpostId *string
692}
693
694//
695type S3AccessControlList struct {
696
697	//
698	//
699	// This member is required.
700	Owner *S3ObjectOwner
701
702	//
703	Grants []S3Grant
704}
705
706//
707type S3AccessControlPolicy struct {
708
709	//
710	AccessControlList *S3AccessControlList
711
712	//
713	CannedAccessControlList S3CannedAccessControlList
714}
715
716// A container for the bucket where the Amazon S3 Storage Lens metrics export files
717// are located.
718type S3BucketDestination struct {
719
720	// The account ID of the owner of the S3 Storage Lens metrics export bucket.
721	//
722	// This member is required.
723	AccountId *string
724
725	// The Amazon Resource Name (ARN) of the bucket. This property is read-only and
726	// follows the following format:
727	// arn:aws:s3:us-east-1:example-account-id:bucket/your-destination-bucket-name
728	//
729	// This member is required.
730	Arn *string
731
732	//
733	//
734	// This member is required.
735	Format Format
736
737	// The schema version of the export file.
738	//
739	// This member is required.
740	OutputSchemaVersion OutputSchemaVersion
741
742	// The container for the type encryption of the metrics exports in this bucket.
743	Encryption *StorageLensDataExportEncryption
744
745	// The prefix of the destination bucket where the metrics export will be delivered.
746	Prefix *string
747}
748
749// Contains the configuration parameters for a PUT Copy object operation. S3 Batch
750// Operations passes every object to the underlying PUT Copy object API. For more
751// information about the parameters for this operation, see PUT Object - Copy
752// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html).
753type S3CopyObjectOperation struct {
754
755	//
756	AccessControlGrants []S3Grant
757
758	//
759	CannedAccessControlList S3CannedAccessControlList
760
761	//
762	MetadataDirective S3MetadataDirective
763
764	//
765	ModifiedSinceConstraint *time.Time
766
767	//
768	NewObjectMetadata *S3ObjectMetadata
769
770	//
771	NewObjectTagging []S3Tag
772
773	// The legal hold status to be applied to all objects in the Batch Operations job.
774	ObjectLockLegalHoldStatus S3ObjectLockLegalHoldStatus
775
776	// The retention mode to be applied to all objects in the Batch Operations job.
777	ObjectLockMode S3ObjectLockMode
778
779	// The date when the applied object retention configuration expires on all objects
780	// in the Batch Operations job.
781	ObjectLockRetainUntilDate *time.Time
782
783	// Specifies an optional metadata property for website redirects,
784	// x-amz-website-redirect-location. Allows webpage redirects if the object is
785	// accessed through a website endpoint.
786	RedirectLocation *string
787
788	//
789	RequesterPays bool
790
791	//
792	SSEAwsKmsKeyId *string
793
794	//
795	StorageClass S3StorageClass
796
797	// Specifies the folder prefix into which you would like the objects to be copied.
798	// For example, to copy objects into a folder named "Folder1" in the destination
799	// bucket, set the TargetKeyPrefix to "Folder1/".
800	TargetKeyPrefix *string
801
802	// Specifies the destination bucket ARN for the batch copy operation. For example,
803	// to copy objects to a bucket named "destinationBucket", set the TargetResource to
804	// "arn:aws:s3:::destinationBucket".
805	TargetResource *string
806
807	//
808	UnModifiedSinceConstraint *time.Time
809}
810
811// Contains no configuration parameters because the DELETE Object tagging API only
812// accepts the bucket name and key name as parameters, which are defined in the
813// job's manifest.
814type S3DeleteObjectTaggingOperation struct {
815}
816
817//
818type S3Grant struct {
819
820	//
821	Grantee *S3Grantee
822
823	//
824	Permission S3Permission
825}
826
827//
828type S3Grantee struct {
829
830	//
831	DisplayName *string
832
833	//
834	Identifier *string
835
836	//
837	TypeIdentifier S3GranteeTypeIdentifier
838}
839
840// Contains the configuration parameters for an S3 Initiate Restore Object job. S3
841// Batch Operations passes every object to the underlying POST Object restore API.
842// For more information about the parameters for this operation, see RestoreObject
843// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOSTrestore.html#RESTObjectPOSTrestore-restore-request).
844type S3InitiateRestoreObjectOperation struct {
845
846	// This argument specifies how long the S3 Glacier or S3 Glacier Deep Archive
847	// object remains available in Amazon S3. S3 Initiate Restore Object jobs that
848	// target S3 Glacier and S3 Glacier Deep Archive objects require ExpirationInDays
849	// set to 1 or greater. Conversely, do not set ExpirationInDays when creating S3
850	// Initiate Restore Object jobs that target S3 Intelligent-Tiering Archive Access
851	// and Deep Archive Access tier objects. Objects in S3 Intelligent-Tiering archive
852	// access tiers are not subject to restore expiry, so specifying ExpirationInDays
853	// results in restore request failure. S3 Batch Operations jobs can operate either
854	// on S3 Glacier and S3 Glacier Deep Archive storage class objects or on S3
855	// Intelligent-Tiering Archive Access and Deep Archive Access storage tier objects,
856	// but not both types in the same job. If you need to restore objects of both types
857	// you must create separate Batch Operations jobs.
858	ExpirationInDays *int32
859
860	// S3 Batch Operations supports STANDARD and BULK retrieval tiers, but not the
861	// EXPEDITED retrieval tier.
862	GlacierJobTier S3GlacierJobTier
863}
864
865// Whether S3 Object Lock legal hold will be applied to objects in an S3 Batch
866// Operations job.
867type S3ObjectLockLegalHold struct {
868
869	// The Object Lock legal hold status to be applied to all objects in the Batch
870	// Operations job.
871	//
872	// This member is required.
873	Status S3ObjectLockLegalHoldStatus
874}
875
876//
877type S3ObjectMetadata struct {
878
879	//
880	CacheControl *string
881
882	//
883	ContentDisposition *string
884
885	//
886	ContentEncoding *string
887
888	//
889	ContentLanguage *string
890
891	//
892	ContentLength int64
893
894	//
895	ContentMD5 *string
896
897	//
898	ContentType *string
899
900	//
901	HttpExpiresDate *time.Time
902
903	//
904	RequesterCharged bool
905
906	//
907	SSEAlgorithm S3SSEAlgorithm
908
909	//
910	UserMetadata map[string]string
911}
912
913//
914type S3ObjectOwner struct {
915
916	//
917	DisplayName *string
918
919	//
920	ID *string
921}
922
923// Contains the S3 Object Lock retention mode to be applied to all objects in the
924// S3 Batch Operations job. If you don't provide Mode and RetainUntilDate data
925// types in your operation, you will remove the retention from your objects. For
926// more information, see Using S3 Object Lock retention with S3 Batch Operations
927// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
928// in the Amazon Simple Storage Service User Guide.
929type S3Retention struct {
930
931	// The Object Lock retention mode to be applied to all objects in the Batch
932	// Operations job.
933	Mode S3ObjectLockRetentionMode
934
935	// The date when the applied Object Lock retention will expire on all objects set
936	// by the Batch Operations job.
937	RetainUntilDate *time.Time
938}
939
940// Contains the configuration parameters for a Set Object ACL operation. S3 Batch
941// Operations passes every object to the underlying PUT Object acl API. For more
942// information about the parameters for this operation, see PUT Object acl
943// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTacl.html).
944type S3SetObjectAclOperation struct {
945
946	//
947	AccessControlPolicy *S3AccessControlPolicy
948}
949
950// Contains the configuration for an S3 Object Lock legal hold operation that an S3
951// Batch Operations job passes every object to the underlying PutObjectLegalHold
952// API. For more information, see Using S3 Object Lock legal hold with S3 Batch
953// Operations
954// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html) in
955// the Amazon Simple Storage Service User Guide.
956type S3SetObjectLegalHoldOperation struct {
957
958	// Contains the Object Lock legal hold status to be applied to all objects in the
959	// Batch Operations job.
960	//
961	// This member is required.
962	LegalHold *S3ObjectLockLegalHold
963}
964
965// Contains the configuration parameters for the Object Lock retention action for
966// an S3 Batch Operations job. Batch Operations passes every object to the
967// underlying PutObjectRetention API. For more information, see Using S3 Object
968// Lock retention with S3 Batch Operations
969// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
970// in the Amazon Simple Storage Service User Guide.
971type S3SetObjectRetentionOperation struct {
972
973	// Contains the Object Lock retention mode to be applied to all objects in the
974	// Batch Operations job. For more information, see Using S3 Object Lock retention
975	// with S3 Batch Operations
976	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
977	// in the Amazon Simple Storage Service User Guide.
978	//
979	// This member is required.
980	Retention *S3Retention
981
982	// Indicates if the action should be applied to objects in the Batch Operations job
983	// even if they have Object Lock  GOVERNANCE type in place.
984	BypassGovernanceRetention bool
985}
986
987// Contains the configuration parameters for a Set Object Tagging operation. S3
988// Batch Operations passes every object to the underlying PUT Object tagging API.
989// For more information about the parameters for this operation, see PUT Object
990// tagging
991// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTtagging.html).
992type S3SetObjectTaggingOperation struct {
993
994	//
995	TagSet []S3Tag
996}
997
998//
999type S3Tag struct {
1000
1001	//
1002	//
1003	// This member is required.
1004	Key *string
1005
1006	//
1007	//
1008	// This member is required.
1009	Value *string
1010}
1011
1012//
1013type SelectionCriteria struct {
1014
1015	// A container for the delimiter of the selection criteria being used.
1016	Delimiter *string
1017
1018	// The max depth of the selection criteria
1019	MaxDepth int32
1020
1021	// The minimum number of storage bytes percentage whose metrics will be selected.
1022	// You must choose a value greater than or equal to 1.0.
1023	MinStorageBytesPercentage float64
1024}
1025
1026//
1027type SSEKMS struct {
1028
1029	// A container for the ARN of the SSE-KMS encryption. This property is read-only
1030	// and follows the following format:
1031	// arn:aws:kms:us-east-1:example-account-id:key/example-9a73-4afc-8d29-8f5900cef44e
1032	//
1033	// This member is required.
1034	KeyId *string
1035}
1036
1037//
1038type SSES3 struct {
1039}
1040
1041// The AWS organization for your S3 Storage Lens.
1042type StorageLensAwsOrg struct {
1043
1044	// A container for the Amazon Resource Name (ARN) of the AWS organization. This
1045	// property is read-only and follows the following format:
1046	// arn:aws:organizations:us-east-1:example-account-id:organization/o-ex2l495dck
1047	//
1048	// This member is required.
1049	Arn *string
1050}
1051
1052// A container for the Amazon S3 Storage Lens configuration.
1053type StorageLensConfiguration struct {
1054
1055	// A container for all the account-level configurations of your S3 Storage Lens
1056	// configuration.
1057	//
1058	// This member is required.
1059	AccountLevel *AccountLevel
1060
1061	// A container for the Amazon S3 Storage Lens configuration ID.
1062	//
1063	// This member is required.
1064	Id *string
1065
1066	// A container for whether the S3 Storage Lens configuration is enabled.
1067	//
1068	// This member is required.
1069	IsEnabled bool
1070
1071	// A container for the AWS organization for this S3 Storage Lens configuration.
1072	AwsOrg *StorageLensAwsOrg
1073
1074	// A container to specify the properties of your S3 Storage Lens metrics export
1075	// including, the destination, schema and format.
1076	DataExport *StorageLensDataExport
1077
1078	// A container for what is excluded in this configuration. This container can only
1079	// be valid if there is no Include container submitted, and it's not empty.
1080	Exclude *Exclude
1081
1082	// A container for what is included in this configuration. This container can only
1083	// be valid if there is no Exclude container submitted, and it's not empty.
1084	Include *Include
1085
1086	// The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This
1087	// property is read-only and follows the following format:
1088	// arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name
1089	StorageLensArn *string
1090}
1091
1092// A container to specify the properties of your S3 Storage Lens metrics export,
1093// including the destination, schema, and format.
1094type StorageLensDataExport struct {
1095
1096	// A container for the bucket where the S3 Storage Lens metrics export will be
1097	// located. This bucket must be located in the same Region as the storage lens
1098	// configuration.
1099	//
1100	// This member is required.
1101	S3BucketDestination *S3BucketDestination
1102}
1103
1104// A container for the encryption of the S3 Storage Lens metrics exports.
1105type StorageLensDataExportEncryption struct {
1106
1107	//
1108	SSEKMS *SSEKMS
1109
1110	//
1111	SSES3 *SSES3
1112}
1113
1114//
1115type StorageLensTag struct {
1116
1117	//
1118	//
1119	// This member is required.
1120	Key *string
1121
1122	//
1123	//
1124	// This member is required.
1125	Value *string
1126}
1127
1128//
1129type Tagging struct {
1130
1131	// A collection for a set of tags.
1132	//
1133	// This member is required.
1134	TagSet []S3Tag
1135}
1136
1137// Specifies when an object transitions to a specified storage class. For more
1138// information about Amazon S3 Lifecycle configuration rules, see  Transitioning
1139// objects using Amazon S3 Lifecycle
1140// (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html)
1141// in the Amazon Simple Storage Service User Guide.
1142type Transition struct {
1143
1144	// Indicates when objects are transitioned to the specified storage class. The date
1145	// value must be in ISO 8601 format. The time is always midnight UTC.
1146	Date *time.Time
1147
1148	// Indicates the number of days after creation when objects are transitioned to the
1149	// specified storage class. The value must be a positive integer.
1150	Days int32
1151
1152	// The storage class to which you want the object to transition.
1153	StorageClass TransitionStorageClass
1154}
1155
1156// The virtual private cloud (VPC) configuration for an access point.
1157type VpcConfiguration struct {
1158
1159	// If this field is specified, this access point will only allow connections from
1160	// the specified VPC ID.
1161	//
1162	// This member is required.
1163	VpcId *string
1164}
1165
1166// UnknownUnionMember is returned when a union member is returned over the wire,
1167// but has an unknown tag.
1168type UnknownUnionMember struct {
1169	Tag   string
1170	Value []byte
1171}
1172
1173func (*UnknownUnionMember) isObjectLambdaContentTransformation() {}
1174