1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package s3control
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/internal/s3shared/arn"
13	"github.com/aws/aws-sdk-go/private/checksum"
14	"github.com/aws/aws-sdk-go/private/protocol"
15	"github.com/aws/aws-sdk-go/private/protocol/restxml"
16)
17
18const opCreateAccessPoint = "CreateAccessPoint"
19
20// CreateAccessPointRequest generates a "aws/request.Request" representing the
21// client's request for the CreateAccessPoint operation. The "output" return
22// value will be populated with the request's response once the request completes
23// successfully.
24//
25// Use "Send" method on the returned Request to send the API call to the service.
26// the "output" return value is not valid until after Send returns without error.
27//
28// See CreateAccessPoint for more information on using the CreateAccessPoint
29// API call, and error handling.
30//
31// This method is useful when you want to inject custom logic or configuration
32// into the SDK's request lifecycle. Such as custom headers, or retry logic.
33//
34//
35//    // Example sending a request using the CreateAccessPointRequest method.
36//    req, resp := client.CreateAccessPointRequest(params)
37//
38//    err := req.Send()
39//    if err == nil { // resp is now filled
40//        fmt.Println(resp)
41//    }
42//
43// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPoint
44func (c *S3Control) CreateAccessPointRequest(input *CreateAccessPointInput) (req *request.Request, output *CreateAccessPointOutput) {
45	op := &request.Operation{
46		Name:       opCreateAccessPoint,
47		HTTPMethod: "PUT",
48		HTTPPath:   "/v20180820/accesspoint/{name}",
49	}
50
51	if input == nil {
52		input = &CreateAccessPointInput{}
53	}
54
55	output = &CreateAccessPointOutput{}
56	req = c.newRequest(op, input, output)
57	// update account id or check if provided input for account id member matches
58	// the account id present in ARN
59	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
60	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
61	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
62	return
63}
64
65// CreateAccessPoint API operation for AWS S3 Control.
66//
67// Creates an access point and associates it with the specified bucket. For
68// more information, see Managing Data Access with Amazon S3 Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html)
69// in the Amazon Simple Storage Service Developer Guide.
70//
71// Using this action with Amazon S3 on Outposts
72//
73// This action:
74//
75//    * Requires a virtual private cloud (VPC) configuration as S3 on Outposts
76//    only supports VPC style access points.
77//
78//    * Does not support ACL on S3 on Outposts buckets.
79//
80//    * Does not support Public Access on S3 on Outposts buckets.
81//
82//    * Does not support object lock for S3 on Outposts buckets.
83//
84// For more information, see Using Amazon S3 on Outposts (AmazonS3/latest/dev/S3onOutposts.html)
85// in the Amazon Simple Storage Service Developer Guide .
86//
87// All Amazon S3 on Outposts REST API requests for this action require an additional
88// parameter of x-amz-outpost-id to be passed with the request and an S3 on
89// Outposts endpoint hostname prefix instead of s3-control. For an example of
90// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
91// endpoint hostname prefix and the x-amz-outpost-id derived using the access
92// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html#API_control_CreateAccessPoint_Examples)
93// section.
94//
95// The following actions are related to CreateAccessPoint:
96//
97//    * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)
98//
99//    * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)
100//
101//    * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)
102//
103// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
104// with awserr.Error's Code and Message methods to get detailed information about
105// the error.
106//
107// See the AWS API reference guide for AWS S3 Control's
108// API operation CreateAccessPoint for usage and error information.
109// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPoint
110func (c *S3Control) CreateAccessPoint(input *CreateAccessPointInput) (*CreateAccessPointOutput, error) {
111	req, out := c.CreateAccessPointRequest(input)
112	return out, req.Send()
113}
114
115// CreateAccessPointWithContext is the same as CreateAccessPoint with the addition of
116// the ability to pass a context and additional request options.
117//
118// See CreateAccessPoint for details on how to use this API operation.
119//
120// The context must be non-nil and will be used for request cancellation. If
121// the context is nil a panic will occur. In the future the SDK may create
122// sub-contexts for http.Requests. See https://golang.org/pkg/context/
123// for more information on using Contexts.
124func (c *S3Control) CreateAccessPointWithContext(ctx aws.Context, input *CreateAccessPointInput, opts ...request.Option) (*CreateAccessPointOutput, error) {
125	req, out := c.CreateAccessPointRequest(input)
126	req.SetContext(ctx)
127	req.ApplyOptions(opts...)
128	return out, req.Send()
129}
130
131const opCreateBucket = "CreateBucket"
132
133// CreateBucketRequest generates a "aws/request.Request" representing the
134// client's request for the CreateBucket operation. The "output" return
135// value will be populated with the request's response once the request completes
136// successfully.
137//
138// Use "Send" method on the returned Request to send the API call to the service.
139// the "output" return value is not valid until after Send returns without error.
140//
141// See CreateBucket for more information on using the CreateBucket
142// API call, and error handling.
143//
144// This method is useful when you want to inject custom logic or configuration
145// into the SDK's request lifecycle. Such as custom headers, or retry logic.
146//
147//
148//    // Example sending a request using the CreateBucketRequest method.
149//    req, resp := client.CreateBucketRequest(params)
150//
151//    err := req.Send()
152//    if err == nil { // resp is now filled
153//        fmt.Println(resp)
154//    }
155//
156// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucket
157func (c *S3Control) CreateBucketRequest(input *CreateBucketInput) (req *request.Request, output *CreateBucketOutput) {
158	op := &request.Operation{
159		Name:       opCreateBucket,
160		HTTPMethod: "PUT",
161		HTTPPath:   "/v20180820/bucket/{name}",
162	}
163
164	if input == nil {
165		input = &CreateBucketInput{}
166	}
167
168	output = &CreateBucketOutput{}
169	req = c.newRequest(op, input, output)
170	req.Handlers.Build.PushBackNamed(request.NamedHandler{
171		Name: "contentMd5Handler",
172		Fn:   checksum.AddBodyContentMD5Handler,
173	})
174	return
175}
176
177// CreateBucket API operation for AWS S3 Control.
178//
179//
180// This API operation creates an Amazon S3 on Outposts bucket. To create an
181// S3 bucket, see Create Bucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
182// in the Amazon Simple Storage Service API.
183//
184// Creates a new Outposts bucket. By creating the bucket, you become the bucket
185// owner. To create an Outposts bucket, you must have S3 on Outposts. For more
186// information, see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html)
187// in Amazon Simple Storage Service Developer Guide.
188//
189// Not every string is an acceptable bucket name. For information on bucket
190// naming restrictions, see Working with Amazon S3 Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules).
191//
192// S3 on Outposts buckets do not support
193//
194//    * ACLs. Instead, configure access point policies to manage access to buckets.
195//
196//    * Public access.
197//
198//    * Object Lock
199//
200//    * Bucket Location constraint
201//
202// For an example of the request syntax for Amazon S3 on Outposts that uses
203// the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your
204// API request, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html#API_control_CreateBucket_Examples)
205// section.
206//
207// The following actions are related to CreateBucket for Amazon S3 on Outposts:
208//
209//    * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
210//
211//    * GetBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html)
212//
213//    * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html)
214//
215//    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
216//
217//    * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)
218//
219// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
220// with awserr.Error's Code and Message methods to get detailed information about
221// the error.
222//
223// See the AWS API reference guide for AWS S3 Control's
224// API operation CreateBucket for usage and error information.
225//
226// Returned Error Codes:
227//   * ErrCodeBucketAlreadyExists "BucketAlreadyExists"
228//   The requested Outposts bucket name is not available. The bucket namespace
229//   is shared by all users of the AWS Outposts in this Region. Select a different
230//   name and try again.
231//
232//   * ErrCodeBucketAlreadyOwnedByYou "BucketAlreadyOwnedByYou"
233//   The Outposts bucket you tried to create already exists, and you own it.
234//
235// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucket
236func (c *S3Control) CreateBucket(input *CreateBucketInput) (*CreateBucketOutput, error) {
237	req, out := c.CreateBucketRequest(input)
238	return out, req.Send()
239}
240
241// CreateBucketWithContext is the same as CreateBucket with the addition of
242// the ability to pass a context and additional request options.
243//
244// See CreateBucket for details on how to use this API operation.
245//
246// The context must be non-nil and will be used for request cancellation. If
247// the context is nil a panic will occur. In the future the SDK may create
248// sub-contexts for http.Requests. See https://golang.org/pkg/context/
249// for more information on using Contexts.
250func (c *S3Control) CreateBucketWithContext(ctx aws.Context, input *CreateBucketInput, opts ...request.Option) (*CreateBucketOutput, error) {
251	req, out := c.CreateBucketRequest(input)
252	req.SetContext(ctx)
253	req.ApplyOptions(opts...)
254	return out, req.Send()
255}
256
257const opCreateJob = "CreateJob"
258
259// CreateJobRequest generates a "aws/request.Request" representing the
260// client's request for the CreateJob operation. The "output" return
261// value will be populated with the request's response once the request completes
262// successfully.
263//
264// Use "Send" method on the returned Request to send the API call to the service.
265// the "output" return value is not valid until after Send returns without error.
266//
267// See CreateJob for more information on using the CreateJob
268// API call, and error handling.
269//
270// This method is useful when you want to inject custom logic or configuration
271// into the SDK's request lifecycle. Such as custom headers, or retry logic.
272//
273//
274//    // Example sending a request using the CreateJobRequest method.
275//    req, resp := client.CreateJobRequest(params)
276//
277//    err := req.Send()
278//    if err == nil { // resp is now filled
279//        fmt.Println(resp)
280//    }
281//
282// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateJob
283func (c *S3Control) CreateJobRequest(input *CreateJobInput) (req *request.Request, output *CreateJobOutput) {
284	op := &request.Operation{
285		Name:       opCreateJob,
286		HTTPMethod: "POST",
287		HTTPPath:   "/v20180820/jobs",
288	}
289
290	if input == nil {
291		input = &CreateJobInput{}
292	}
293
294	output = &CreateJobOutput{}
295	req = c.newRequest(op, input, output)
296	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
297	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
298	return
299}
300
301// CreateJob API operation for AWS S3 Control.
302//
303// S3 Batch Operations performs large-scale Batch Operations on Amazon S3 objects.
304// Batch Operations can run a single operation or action on lists of Amazon
305// S3 objects that you specify. For more information, see S3 Batch Operations
306// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html) in
307// the Amazon Simple Storage Service Developer Guide.
308//
309// This operation creates an S3 Batch Operations job.
310//
311// Related actions include:
312//
313//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
314//
315//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
316//
317//    * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html)
318//
319//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
320//
321// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
322// with awserr.Error's Code and Message methods to get detailed information about
323// the error.
324//
325// See the AWS API reference guide for AWS S3 Control's
326// API operation CreateJob for usage and error information.
327//
328// Returned Error Codes:
329//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
330//
331//   * ErrCodeBadRequestException "BadRequestException"
332//
333//   * ErrCodeIdempotencyException "IdempotencyException"
334//
335//   * ErrCodeInternalServiceException "InternalServiceException"
336//
337// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateJob
338func (c *S3Control) CreateJob(input *CreateJobInput) (*CreateJobOutput, error) {
339	req, out := c.CreateJobRequest(input)
340	return out, req.Send()
341}
342
343// CreateJobWithContext is the same as CreateJob with the addition of
344// the ability to pass a context and additional request options.
345//
346// See CreateJob for details on how to use this API operation.
347//
348// The context must be non-nil and will be used for request cancellation. If
349// the context is nil a panic will occur. In the future the SDK may create
350// sub-contexts for http.Requests. See https://golang.org/pkg/context/
351// for more information on using Contexts.
352func (c *S3Control) CreateJobWithContext(ctx aws.Context, input *CreateJobInput, opts ...request.Option) (*CreateJobOutput, error) {
353	req, out := c.CreateJobRequest(input)
354	req.SetContext(ctx)
355	req.ApplyOptions(opts...)
356	return out, req.Send()
357}
358
359const opDeleteAccessPoint = "DeleteAccessPoint"
360
361// DeleteAccessPointRequest generates a "aws/request.Request" representing the
362// client's request for the DeleteAccessPoint operation. The "output" return
363// value will be populated with the request's response once the request completes
364// successfully.
365//
366// Use "Send" method on the returned Request to send the API call to the service.
367// the "output" return value is not valid until after Send returns without error.
368//
369// See DeleteAccessPoint for more information on using the DeleteAccessPoint
370// API call, and error handling.
371//
372// This method is useful when you want to inject custom logic or configuration
373// into the SDK's request lifecycle. Such as custom headers, or retry logic.
374//
375//
376//    // Example sending a request using the DeleteAccessPointRequest method.
377//    req, resp := client.DeleteAccessPointRequest(params)
378//
379//    err := req.Send()
380//    if err == nil { // resp is now filled
381//        fmt.Println(resp)
382//    }
383//
384// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPoint
385func (c *S3Control) DeleteAccessPointRequest(input *DeleteAccessPointInput) (req *request.Request, output *DeleteAccessPointOutput) {
386	op := &request.Operation{
387		Name:       opDeleteAccessPoint,
388		HTTPMethod: "DELETE",
389		HTTPPath:   "/v20180820/accesspoint/{name}",
390	}
391
392	if input == nil {
393		input = &DeleteAccessPointInput{}
394	}
395
396	output = &DeleteAccessPointOutput{}
397	req = c.newRequest(op, input, output)
398	// update account id or check if provided input for account id member matches
399	// the account id present in ARN
400	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
401	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
402	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
403	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
404	return
405}
406
407// DeleteAccessPoint API operation for AWS S3 Control.
408//
409// Deletes the specified access point.
410//
411// All Amazon S3 on Outposts REST API requests for this action require an additional
412// parameter of x-amz-outpost-id to be passed with the request and an S3 on
413// Outposts endpoint hostname prefix instead of s3-control. For an example of
414// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
415// endpoint hostname prefix and the x-amz-outpost-id derived using the access
416// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html#API_control_DeleteAccessPoint_Examples)
417// section.
418//
419// The following actions are related to DeleteAccessPoint:
420//
421//    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
422//
423//    * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)
424//
425//    * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)
426//
427// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
428// with awserr.Error's Code and Message methods to get detailed information about
429// the error.
430//
431// See the AWS API reference guide for AWS S3 Control's
432// API operation DeleteAccessPoint for usage and error information.
433// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPoint
434func (c *S3Control) DeleteAccessPoint(input *DeleteAccessPointInput) (*DeleteAccessPointOutput, error) {
435	req, out := c.DeleteAccessPointRequest(input)
436	return out, req.Send()
437}
438
439// DeleteAccessPointWithContext is the same as DeleteAccessPoint with the addition of
440// the ability to pass a context and additional request options.
441//
442// See DeleteAccessPoint for details on how to use this API operation.
443//
444// The context must be non-nil and will be used for request cancellation. If
445// the context is nil a panic will occur. In the future the SDK may create
446// sub-contexts for http.Requests. See https://golang.org/pkg/context/
447// for more information on using Contexts.
448func (c *S3Control) DeleteAccessPointWithContext(ctx aws.Context, input *DeleteAccessPointInput, opts ...request.Option) (*DeleteAccessPointOutput, error) {
449	req, out := c.DeleteAccessPointRequest(input)
450	req.SetContext(ctx)
451	req.ApplyOptions(opts...)
452	return out, req.Send()
453}
454
455const opDeleteAccessPointPolicy = "DeleteAccessPointPolicy"
456
457// DeleteAccessPointPolicyRequest generates a "aws/request.Request" representing the
458// client's request for the DeleteAccessPointPolicy operation. The "output" return
459// value will be populated with the request's response once the request completes
460// successfully.
461//
462// Use "Send" method on the returned Request to send the API call to the service.
463// the "output" return value is not valid until after Send returns without error.
464//
465// See DeleteAccessPointPolicy for more information on using the DeleteAccessPointPolicy
466// API call, and error handling.
467//
468// This method is useful when you want to inject custom logic or configuration
469// into the SDK's request lifecycle. Such as custom headers, or retry logic.
470//
471//
472//    // Example sending a request using the DeleteAccessPointPolicyRequest method.
473//    req, resp := client.DeleteAccessPointPolicyRequest(params)
474//
475//    err := req.Send()
476//    if err == nil { // resp is now filled
477//        fmt.Println(resp)
478//    }
479//
480// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicy
481func (c *S3Control) DeleteAccessPointPolicyRequest(input *DeleteAccessPointPolicyInput) (req *request.Request, output *DeleteAccessPointPolicyOutput) {
482	op := &request.Operation{
483		Name:       opDeleteAccessPointPolicy,
484		HTTPMethod: "DELETE",
485		HTTPPath:   "/v20180820/accesspoint/{name}/policy",
486	}
487
488	if input == nil {
489		input = &DeleteAccessPointPolicyInput{}
490	}
491
492	output = &DeleteAccessPointPolicyOutput{}
493	req = c.newRequest(op, input, output)
494	// update account id or check if provided input for account id member matches
495	// the account id present in ARN
496	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
497	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
498	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
499	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
500	return
501}
502
503// DeleteAccessPointPolicy API operation for AWS S3 Control.
504//
505// Deletes the access point policy for the specified access point.
506//
507// All Amazon S3 on Outposts REST API requests for this action require an additional
508// parameter of x-amz-outpost-id to be passed with the request and an S3 on
509// Outposts endpoint hostname prefix instead of s3-control. For an example of
510// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
511// endpoint hostname prefix and the x-amz-outpost-id derived using the access
512// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html#API_control_DeleteAccessPointPolicy_Examples)
513// section.
514//
515// The following actions are related to DeleteAccessPointPolicy:
516//
517//    * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)
518//
519//    * GetAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html)
520//
521// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
522// with awserr.Error's Code and Message methods to get detailed information about
523// the error.
524//
525// See the AWS API reference guide for AWS S3 Control's
526// API operation DeleteAccessPointPolicy for usage and error information.
527// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicy
528func (c *S3Control) DeleteAccessPointPolicy(input *DeleteAccessPointPolicyInput) (*DeleteAccessPointPolicyOutput, error) {
529	req, out := c.DeleteAccessPointPolicyRequest(input)
530	return out, req.Send()
531}
532
533// DeleteAccessPointPolicyWithContext is the same as DeleteAccessPointPolicy with the addition of
534// the ability to pass a context and additional request options.
535//
536// See DeleteAccessPointPolicy for details on how to use this API operation.
537//
538// The context must be non-nil and will be used for request cancellation. If
539// the context is nil a panic will occur. In the future the SDK may create
540// sub-contexts for http.Requests. See https://golang.org/pkg/context/
541// for more information on using Contexts.
542func (c *S3Control) DeleteAccessPointPolicyWithContext(ctx aws.Context, input *DeleteAccessPointPolicyInput, opts ...request.Option) (*DeleteAccessPointPolicyOutput, error) {
543	req, out := c.DeleteAccessPointPolicyRequest(input)
544	req.SetContext(ctx)
545	req.ApplyOptions(opts...)
546	return out, req.Send()
547}
548
549const opDeleteBucket = "DeleteBucket"
550
551// DeleteBucketRequest generates a "aws/request.Request" representing the
552// client's request for the DeleteBucket operation. The "output" return
553// value will be populated with the request's response once the request completes
554// successfully.
555//
556// Use "Send" method on the returned Request to send the API call to the service.
557// the "output" return value is not valid until after Send returns without error.
558//
559// See DeleteBucket for more information on using the DeleteBucket
560// API call, and error handling.
561//
562// This method is useful when you want to inject custom logic or configuration
563// into the SDK's request lifecycle. Such as custom headers, or retry logic.
564//
565//
566//    // Example sending a request using the DeleteBucketRequest method.
567//    req, resp := client.DeleteBucketRequest(params)
568//
569//    err := req.Send()
570//    if err == nil { // resp is now filled
571//        fmt.Println(resp)
572//    }
573//
574// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucket
575func (c *S3Control) DeleteBucketRequest(input *DeleteBucketInput) (req *request.Request, output *DeleteBucketOutput) {
576	op := &request.Operation{
577		Name:       opDeleteBucket,
578		HTTPMethod: "DELETE",
579		HTTPPath:   "/v20180820/bucket/{name}",
580	}
581
582	if input == nil {
583		input = &DeleteBucketInput{}
584	}
585
586	output = &DeleteBucketOutput{}
587	req = c.newRequest(op, input, output)
588	// update account id or check if provided input for account id member matches
589	// the account id present in ARN
590	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
591	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
592	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
593	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
594	return
595}
596
597// DeleteBucket API operation for AWS S3 Control.
598//
599//
600// This API operation deletes an Amazon S3 on Outposts bucket. To delete an
601// S3 bucket, see DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
602// in the Amazon Simple Storage Service API.
603//
604// Deletes the Amazon S3 on Outposts bucket. All objects (including all object
605// versions and delete markers) in the bucket must be deleted before the bucket
606// itself can be deleted. For more information, see Using Amazon S3 on Outposts
607// (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) in Amazon
608// Simple Storage Service Developer Guide.
609//
610// All Amazon S3 on Outposts REST API requests for this action require an additional
611// parameter of x-amz-outpost-id to be passed with the request and an S3 on
612// Outposts endpoint hostname prefix instead of s3-control. For an example of
613// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
614// endpoint hostname prefix and the x-amz-outpost-id derived using the access
615// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html#API_control_DeleteBucket_Examples)
616// section.
617//
618// Related Resources
619//
620//    * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html)
621//
622//    * GetBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html)
623//
624//    * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
625//
626// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
627// with awserr.Error's Code and Message methods to get detailed information about
628// the error.
629//
630// See the AWS API reference guide for AWS S3 Control's
631// API operation DeleteBucket for usage and error information.
632// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucket
633func (c *S3Control) DeleteBucket(input *DeleteBucketInput) (*DeleteBucketOutput, error) {
634	req, out := c.DeleteBucketRequest(input)
635	return out, req.Send()
636}
637
638// DeleteBucketWithContext is the same as DeleteBucket with the addition of
639// the ability to pass a context and additional request options.
640//
641// See DeleteBucket for details on how to use this API operation.
642//
643// The context must be non-nil and will be used for request cancellation. If
644// the context is nil a panic will occur. In the future the SDK may create
645// sub-contexts for http.Requests. See https://golang.org/pkg/context/
646// for more information on using Contexts.
647func (c *S3Control) DeleteBucketWithContext(ctx aws.Context, input *DeleteBucketInput, opts ...request.Option) (*DeleteBucketOutput, error) {
648	req, out := c.DeleteBucketRequest(input)
649	req.SetContext(ctx)
650	req.ApplyOptions(opts...)
651	return out, req.Send()
652}
653
654const opDeleteBucketLifecycleConfiguration = "DeleteBucketLifecycleConfiguration"
655
656// DeleteBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
657// client's request for the DeleteBucketLifecycleConfiguration operation. The "output" return
658// value will be populated with the request's response once the request completes
659// successfully.
660//
661// Use "Send" method on the returned Request to send the API call to the service.
662// the "output" return value is not valid until after Send returns without error.
663//
664// See DeleteBucketLifecycleConfiguration for more information on using the DeleteBucketLifecycleConfiguration
665// API call, and error handling.
666//
667// This method is useful when you want to inject custom logic or configuration
668// into the SDK's request lifecycle. Such as custom headers, or retry logic.
669//
670//
671//    // Example sending a request using the DeleteBucketLifecycleConfigurationRequest method.
672//    req, resp := client.DeleteBucketLifecycleConfigurationRequest(params)
673//
674//    err := req.Send()
675//    if err == nil { // resp is now filled
676//        fmt.Println(resp)
677//    }
678//
679// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketLifecycleConfiguration
680func (c *S3Control) DeleteBucketLifecycleConfigurationRequest(input *DeleteBucketLifecycleConfigurationInput) (req *request.Request, output *DeleteBucketLifecycleConfigurationOutput) {
681	op := &request.Operation{
682		Name:       opDeleteBucketLifecycleConfiguration,
683		HTTPMethod: "DELETE",
684		HTTPPath:   "/v20180820/bucket/{name}/lifecycleconfiguration",
685	}
686
687	if input == nil {
688		input = &DeleteBucketLifecycleConfigurationInput{}
689	}
690
691	output = &DeleteBucketLifecycleConfigurationOutput{}
692	req = c.newRequest(op, input, output)
693	// update account id or check if provided input for account id member matches
694	// the account id present in ARN
695	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
696	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
697	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
698	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
699	return
700}
701
702// DeleteBucketLifecycleConfiguration API operation for AWS S3 Control.
703//
704//
705// This API action deletes an Amazon S3 on Outposts bucket's lifecycle configuration.
706// To delete an S3 bucket's lifecycle configuration, see DeleteBucketLifecycle
707// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html)
708// in the Amazon Simple Storage Service API.
709//
710// Deletes the lifecycle configuration from the specified Outposts bucket. Amazon
711// S3 on Outposts removes all the lifecycle configuration rules in the lifecycle
712// subresource associated with the bucket. Your objects never expire, and Amazon
713// S3 on Outposts no longer automatically deletes any objects on the basis of
714// rules contained in the deleted lifecycle configuration. For more information,
715// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html)
716// in Amazon Simple Storage Service Developer Guide.
717//
718// To use this operation, you must have permission to perform the s3-outposts:DeleteLifecycleConfiguration
719// action. By default, the bucket owner has this permission and the Outposts
720// bucket owner can grant this permission to others.
721//
722// All Amazon S3 on Outposts REST API requests for this action require an additional
723// parameter of x-amz-outpost-id to be passed with the request and an S3 on
724// Outposts endpoint hostname prefix instead of s3-control. For an example of
725// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
726// endpoint hostname prefix and the x-amz-outpost-id derived using the access
727// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html#API_control_DeleteBucketLifecycleConfiguration_Examples)
728// section.
729//
730// For more information about object expiration, see Elements to Describe Lifecycle
731// Actions (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions).
732//
733// Related actions include:
734//
735//    * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html)
736//
737//    * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html)
738//
739// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
740// with awserr.Error's Code and Message methods to get detailed information about
741// the error.
742//
743// See the AWS API reference guide for AWS S3 Control's
744// API operation DeleteBucketLifecycleConfiguration for usage and error information.
745// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketLifecycleConfiguration
746func (c *S3Control) DeleteBucketLifecycleConfiguration(input *DeleteBucketLifecycleConfigurationInput) (*DeleteBucketLifecycleConfigurationOutput, error) {
747	req, out := c.DeleteBucketLifecycleConfigurationRequest(input)
748	return out, req.Send()
749}
750
751// DeleteBucketLifecycleConfigurationWithContext is the same as DeleteBucketLifecycleConfiguration with the addition of
752// the ability to pass a context and additional request options.
753//
754// See DeleteBucketLifecycleConfiguration for details on how to use this API operation.
755//
756// The context must be non-nil and will be used for request cancellation. If
757// the context is nil a panic will occur. In the future the SDK may create
758// sub-contexts for http.Requests. See https://golang.org/pkg/context/
759// for more information on using Contexts.
760func (c *S3Control) DeleteBucketLifecycleConfigurationWithContext(ctx aws.Context, input *DeleteBucketLifecycleConfigurationInput, opts ...request.Option) (*DeleteBucketLifecycleConfigurationOutput, error) {
761	req, out := c.DeleteBucketLifecycleConfigurationRequest(input)
762	req.SetContext(ctx)
763	req.ApplyOptions(opts...)
764	return out, req.Send()
765}
766
767const opDeleteBucketPolicy = "DeleteBucketPolicy"
768
769// DeleteBucketPolicyRequest generates a "aws/request.Request" representing the
770// client's request for the DeleteBucketPolicy operation. The "output" return
771// value will be populated with the request's response once the request completes
772// successfully.
773//
774// Use "Send" method on the returned Request to send the API call to the service.
775// the "output" return value is not valid until after Send returns without error.
776//
777// See DeleteBucketPolicy for more information on using the DeleteBucketPolicy
778// API call, and error handling.
779//
780// This method is useful when you want to inject custom logic or configuration
781// into the SDK's request lifecycle. Such as custom headers, or retry logic.
782//
783//
784//    // Example sending a request using the DeleteBucketPolicyRequest method.
785//    req, resp := client.DeleteBucketPolicyRequest(params)
786//
787//    err := req.Send()
788//    if err == nil { // resp is now filled
789//        fmt.Println(resp)
790//    }
791//
792// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketPolicy
793func (c *S3Control) DeleteBucketPolicyRequest(input *DeleteBucketPolicyInput) (req *request.Request, output *DeleteBucketPolicyOutput) {
794	op := &request.Operation{
795		Name:       opDeleteBucketPolicy,
796		HTTPMethod: "DELETE",
797		HTTPPath:   "/v20180820/bucket/{name}/policy",
798	}
799
800	if input == nil {
801		input = &DeleteBucketPolicyInput{}
802	}
803
804	output = &DeleteBucketPolicyOutput{}
805	req = c.newRequest(op, input, output)
806	// update account id or check if provided input for account id member matches
807	// the account id present in ARN
808	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
809	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
810	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
811	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
812	return
813}
814
815// DeleteBucketPolicy API operation for AWS S3 Control.
816//
817//
818// This API operation deletes an Amazon S3 on Outposts bucket policy. To delete
819// an S3 bucket policy, see DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html)
820// in the Amazon Simple Storage Service API.
821//
822// This implementation of the DELETE operation uses the policy subresource to
823// delete the policy of a specified Amazon S3 on Outposts bucket. If you are
824// using an identity other than the root user of the AWS account that owns the
825// bucket, the calling identity must have the s3-outposts:DeleteBucketPolicy
826// permissions on the specified Outposts bucket and belong to the bucket owner's
827// account to use this operation. For more information, see Using Amazon S3
828// on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html)
829// in Amazon Simple Storage Service Developer Guide.
830//
831// If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403
832// Access Denied error. If you have the correct permissions, but you're not
833// using an identity that belongs to the bucket owner's account, Amazon S3 returns
834// a 405 Method Not Allowed error.
835//
836// As a security precaution, the root user of the AWS account that owns a bucket
837// can always use this operation, even if the policy explicitly denies the root
838// user the ability to perform this action.
839//
840// For more information about bucket policies, see Using Bucket Policies and
841// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html).
842//
843// All Amazon S3 on Outposts REST API requests for this action require an additional
844// parameter of x-amz-outpost-id to be passed with the request and an S3 on
845// Outposts endpoint hostname prefix instead of s3-control. For an example of
846// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
847// endpoint hostname prefix and the x-amz-outpost-id derived using the access
848// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html#API_control_DeleteBucketPolicy_Examples)
849// section.
850//
851// The following actions are related to DeleteBucketPolicy:
852//
853//    * GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html)
854//
855//    * PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html)
856//
857// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
858// with awserr.Error's Code and Message methods to get detailed information about
859// the error.
860//
861// See the AWS API reference guide for AWS S3 Control's
862// API operation DeleteBucketPolicy for usage and error information.
863// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketPolicy
864func (c *S3Control) DeleteBucketPolicy(input *DeleteBucketPolicyInput) (*DeleteBucketPolicyOutput, error) {
865	req, out := c.DeleteBucketPolicyRequest(input)
866	return out, req.Send()
867}
868
869// DeleteBucketPolicyWithContext is the same as DeleteBucketPolicy with the addition of
870// the ability to pass a context and additional request options.
871//
872// See DeleteBucketPolicy for details on how to use this API operation.
873//
874// The context must be non-nil and will be used for request cancellation. If
875// the context is nil a panic will occur. In the future the SDK may create
876// sub-contexts for http.Requests. See https://golang.org/pkg/context/
877// for more information on using Contexts.
878func (c *S3Control) DeleteBucketPolicyWithContext(ctx aws.Context, input *DeleteBucketPolicyInput, opts ...request.Option) (*DeleteBucketPolicyOutput, error) {
879	req, out := c.DeleteBucketPolicyRequest(input)
880	req.SetContext(ctx)
881	req.ApplyOptions(opts...)
882	return out, req.Send()
883}
884
885const opDeleteBucketTagging = "DeleteBucketTagging"
886
887// DeleteBucketTaggingRequest generates a "aws/request.Request" representing the
888// client's request for the DeleteBucketTagging operation. The "output" return
889// value will be populated with the request's response once the request completes
890// successfully.
891//
892// Use "Send" method on the returned Request to send the API call to the service.
893// the "output" return value is not valid until after Send returns without error.
894//
895// See DeleteBucketTagging for more information on using the DeleteBucketTagging
896// API call, and error handling.
897//
898// This method is useful when you want to inject custom logic or configuration
899// into the SDK's request lifecycle. Such as custom headers, or retry logic.
900//
901//
902//    // Example sending a request using the DeleteBucketTaggingRequest method.
903//    req, resp := client.DeleteBucketTaggingRequest(params)
904//
905//    err := req.Send()
906//    if err == nil { // resp is now filled
907//        fmt.Println(resp)
908//    }
909//
910// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketTagging
911func (c *S3Control) DeleteBucketTaggingRequest(input *DeleteBucketTaggingInput) (req *request.Request, output *DeleteBucketTaggingOutput) {
912	op := &request.Operation{
913		Name:       opDeleteBucketTagging,
914		HTTPMethod: "DELETE",
915		HTTPPath:   "/v20180820/bucket/{name}/tagging",
916	}
917
918	if input == nil {
919		input = &DeleteBucketTaggingInput{}
920	}
921
922	output = &DeleteBucketTaggingOutput{}
923	req = c.newRequest(op, input, output)
924	// update account id or check if provided input for account id member matches
925	// the account id present in ARN
926	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
927	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
928	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
929	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
930	return
931}
932
933// DeleteBucketTagging API operation for AWS S3 Control.
934//
935//
936// This operation deletes an Amazon S3 on Outposts bucket's tags. To delete
937// an S3 bucket tags, see DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html)
938// in the Amazon Simple Storage Service API.
939//
940// Deletes the tags from the Outposts bucket. For more information, see Using
941// Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html)
942// in Amazon Simple Storage Service Developer Guide.
943//
944// To use this operation, you must have permission to perform the PutBucketTagging
945// action. By default, the bucket owner has this permission and can grant this
946// permission to others.
947//
948// All Amazon S3 on Outposts REST API requests for this action require an additional
949// parameter of x-amz-outpost-id to be passed with the request and an S3 on
950// Outposts endpoint hostname prefix instead of s3-control. For an example of
951// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
952// endpoint hostname prefix and the x-amz-outpost-id derived using the access
953// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html#API_control_DeleteBucketTagging_Examples)
954// section.
955//
956// The following actions are related to DeleteBucketTagging:
957//
958//    * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html)
959//
960//    * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html)
961//
962// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
963// with awserr.Error's Code and Message methods to get detailed information about
964// the error.
965//
966// See the AWS API reference guide for AWS S3 Control's
967// API operation DeleteBucketTagging for usage and error information.
968// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketTagging
969func (c *S3Control) DeleteBucketTagging(input *DeleteBucketTaggingInput) (*DeleteBucketTaggingOutput, error) {
970	req, out := c.DeleteBucketTaggingRequest(input)
971	return out, req.Send()
972}
973
974// DeleteBucketTaggingWithContext is the same as DeleteBucketTagging with the addition of
975// the ability to pass a context and additional request options.
976//
977// See DeleteBucketTagging for details on how to use this API operation.
978//
979// The context must be non-nil and will be used for request cancellation. If
980// the context is nil a panic will occur. In the future the SDK may create
981// sub-contexts for http.Requests. See https://golang.org/pkg/context/
982// for more information on using Contexts.
983func (c *S3Control) DeleteBucketTaggingWithContext(ctx aws.Context, input *DeleteBucketTaggingInput, opts ...request.Option) (*DeleteBucketTaggingOutput, error) {
984	req, out := c.DeleteBucketTaggingRequest(input)
985	req.SetContext(ctx)
986	req.ApplyOptions(opts...)
987	return out, req.Send()
988}
989
990const opDeleteJobTagging = "DeleteJobTagging"
991
992// DeleteJobTaggingRequest generates a "aws/request.Request" representing the
993// client's request for the DeleteJobTagging operation. The "output" return
994// value will be populated with the request's response once the request completes
995// successfully.
996//
997// Use "Send" method on the returned Request to send the API call to the service.
998// the "output" return value is not valid until after Send returns without error.
999//
1000// See DeleteJobTagging for more information on using the DeleteJobTagging
1001// API call, and error handling.
1002//
1003// This method is useful when you want to inject custom logic or configuration
1004// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1005//
1006//
1007//    // Example sending a request using the DeleteJobTaggingRequest method.
1008//    req, resp := client.DeleteJobTaggingRequest(params)
1009//
1010//    err := req.Send()
1011//    if err == nil { // resp is now filled
1012//        fmt.Println(resp)
1013//    }
1014//
1015// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTagging
1016func (c *S3Control) DeleteJobTaggingRequest(input *DeleteJobTaggingInput) (req *request.Request, output *DeleteJobTaggingOutput) {
1017	op := &request.Operation{
1018		Name:       opDeleteJobTagging,
1019		HTTPMethod: "DELETE",
1020		HTTPPath:   "/v20180820/jobs/{id}/tagging",
1021	}
1022
1023	if input == nil {
1024		input = &DeleteJobTaggingInput{}
1025	}
1026
1027	output = &DeleteJobTaggingOutput{}
1028	req = c.newRequest(op, input, output)
1029	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1030	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1031	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1032	return
1033}
1034
1035// DeleteJobTagging API operation for AWS S3 Control.
1036//
1037// Removes the entire tag set from the specified S3 Batch Operations job. To
1038// use this operation, you must have permission to perform the s3:DeleteJobTagging
1039// action. For more information, see Controlling access and labeling jobs using
1040// tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags)
1041// in the Amazon Simple Storage Service Developer Guide.
1042//
1043// Related actions include:
1044//
1045//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
1046//
1047//    * GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html)
1048//
1049//    * PutJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html)
1050//
1051// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1052// with awserr.Error's Code and Message methods to get detailed information about
1053// the error.
1054//
1055// See the AWS API reference guide for AWS S3 Control's
1056// API operation DeleteJobTagging for usage and error information.
1057//
1058// Returned Error Codes:
1059//   * ErrCodeInternalServiceException "InternalServiceException"
1060//
1061//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1062//
1063//   * ErrCodeNotFoundException "NotFoundException"
1064//
1065// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTagging
1066func (c *S3Control) DeleteJobTagging(input *DeleteJobTaggingInput) (*DeleteJobTaggingOutput, error) {
1067	req, out := c.DeleteJobTaggingRequest(input)
1068	return out, req.Send()
1069}
1070
1071// DeleteJobTaggingWithContext is the same as DeleteJobTagging with the addition of
1072// the ability to pass a context and additional request options.
1073//
1074// See DeleteJobTagging for details on how to use this API operation.
1075//
1076// The context must be non-nil and will be used for request cancellation. If
1077// the context is nil a panic will occur. In the future the SDK may create
1078// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1079// for more information on using Contexts.
1080func (c *S3Control) DeleteJobTaggingWithContext(ctx aws.Context, input *DeleteJobTaggingInput, opts ...request.Option) (*DeleteJobTaggingOutput, error) {
1081	req, out := c.DeleteJobTaggingRequest(input)
1082	req.SetContext(ctx)
1083	req.ApplyOptions(opts...)
1084	return out, req.Send()
1085}
1086
1087const opDeletePublicAccessBlock = "DeletePublicAccessBlock"
1088
1089// DeletePublicAccessBlockRequest generates a "aws/request.Request" representing the
1090// client's request for the DeletePublicAccessBlock operation. The "output" return
1091// value will be populated with the request's response once the request completes
1092// successfully.
1093//
1094// Use "Send" method on the returned Request to send the API call to the service.
1095// the "output" return value is not valid until after Send returns without error.
1096//
1097// See DeletePublicAccessBlock for more information on using the DeletePublicAccessBlock
1098// API call, and error handling.
1099//
1100// This method is useful when you want to inject custom logic or configuration
1101// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1102//
1103//
1104//    // Example sending a request using the DeletePublicAccessBlockRequest method.
1105//    req, resp := client.DeletePublicAccessBlockRequest(params)
1106//
1107//    err := req.Send()
1108//    if err == nil { // resp is now filled
1109//        fmt.Println(resp)
1110//    }
1111//
1112// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlock
1113func (c *S3Control) DeletePublicAccessBlockRequest(input *DeletePublicAccessBlockInput) (req *request.Request, output *DeletePublicAccessBlockOutput) {
1114	op := &request.Operation{
1115		Name:       opDeletePublicAccessBlock,
1116		HTTPMethod: "DELETE",
1117		HTTPPath:   "/v20180820/configuration/publicAccessBlock",
1118	}
1119
1120	if input == nil {
1121		input = &DeletePublicAccessBlockInput{}
1122	}
1123
1124	output = &DeletePublicAccessBlockOutput{}
1125	req = c.newRequest(op, input, output)
1126	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1127	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1128	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1129	return
1130}
1131
1132// DeletePublicAccessBlock API operation for AWS S3 Control.
1133//
1134// Removes the PublicAccessBlock configuration for an AWS account. For more
1135// information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).
1136//
1137// Related actions include:
1138//
1139//    * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html)
1140//
1141//    * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html)
1142//
1143// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1144// with awserr.Error's Code and Message methods to get detailed information about
1145// the error.
1146//
1147// See the AWS API reference guide for AWS S3 Control's
1148// API operation DeletePublicAccessBlock for usage and error information.
1149// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlock
1150func (c *S3Control) DeletePublicAccessBlock(input *DeletePublicAccessBlockInput) (*DeletePublicAccessBlockOutput, error) {
1151	req, out := c.DeletePublicAccessBlockRequest(input)
1152	return out, req.Send()
1153}
1154
1155// DeletePublicAccessBlockWithContext is the same as DeletePublicAccessBlock with the addition of
1156// the ability to pass a context and additional request options.
1157//
1158// See DeletePublicAccessBlock for details on how to use this API operation.
1159//
1160// The context must be non-nil and will be used for request cancellation. If
1161// the context is nil a panic will occur. In the future the SDK may create
1162// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1163// for more information on using Contexts.
1164func (c *S3Control) DeletePublicAccessBlockWithContext(ctx aws.Context, input *DeletePublicAccessBlockInput, opts ...request.Option) (*DeletePublicAccessBlockOutput, error) {
1165	req, out := c.DeletePublicAccessBlockRequest(input)
1166	req.SetContext(ctx)
1167	req.ApplyOptions(opts...)
1168	return out, req.Send()
1169}
1170
1171const opDeleteStorageLensConfiguration = "DeleteStorageLensConfiguration"
1172
1173// DeleteStorageLensConfigurationRequest generates a "aws/request.Request" representing the
1174// client's request for the DeleteStorageLensConfiguration operation. The "output" return
1175// value will be populated with the request's response once the request completes
1176// successfully.
1177//
1178// Use "Send" method on the returned Request to send the API call to the service.
1179// the "output" return value is not valid until after Send returns without error.
1180//
1181// See DeleteStorageLensConfiguration for more information on using the DeleteStorageLensConfiguration
1182// API call, and error handling.
1183//
1184// This method is useful when you want to inject custom logic or configuration
1185// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1186//
1187//
1188//    // Example sending a request using the DeleteStorageLensConfigurationRequest method.
1189//    req, resp := client.DeleteStorageLensConfigurationRequest(params)
1190//
1191//    err := req.Send()
1192//    if err == nil { // resp is now filled
1193//        fmt.Println(resp)
1194//    }
1195//
1196// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfiguration
1197func (c *S3Control) DeleteStorageLensConfigurationRequest(input *DeleteStorageLensConfigurationInput) (req *request.Request, output *DeleteStorageLensConfigurationOutput) {
1198	op := &request.Operation{
1199		Name:       opDeleteStorageLensConfiguration,
1200		HTTPMethod: "DELETE",
1201		HTTPPath:   "/v20180820/storagelens/{storagelensid}",
1202	}
1203
1204	if input == nil {
1205		input = &DeleteStorageLensConfigurationInput{}
1206	}
1207
1208	output = &DeleteStorageLensConfigurationOutput{}
1209	req = c.newRequest(op, input, output)
1210	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1211	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1212	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1213	return
1214}
1215
1216// DeleteStorageLensConfiguration API operation for AWS S3 Control.
1217//
1218// Deletes the Amazon S3 Storage Lens configuration. For more information about
1219// S3 Storage Lens, see Working with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
1220// in the Amazon Simple Storage Service Developer Guide.
1221//
1222// To use this action, you must have permission to perform the s3:DeleteStorageLensConfiguration
1223// action. For more information, see Setting permissions to use Amazon S3 Storage
1224// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
1225// in the Amazon Simple Storage Service Developer Guide.
1226//
1227// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1228// with awserr.Error's Code and Message methods to get detailed information about
1229// the error.
1230//
1231// See the AWS API reference guide for AWS S3 Control's
1232// API operation DeleteStorageLensConfiguration for usage and error information.
1233// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfiguration
1234func (c *S3Control) DeleteStorageLensConfiguration(input *DeleteStorageLensConfigurationInput) (*DeleteStorageLensConfigurationOutput, error) {
1235	req, out := c.DeleteStorageLensConfigurationRequest(input)
1236	return out, req.Send()
1237}
1238
1239// DeleteStorageLensConfigurationWithContext is the same as DeleteStorageLensConfiguration with the addition of
1240// the ability to pass a context and additional request options.
1241//
1242// See DeleteStorageLensConfiguration for details on how to use this API operation.
1243//
1244// The context must be non-nil and will be used for request cancellation. If
1245// the context is nil a panic will occur. In the future the SDK may create
1246// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1247// for more information on using Contexts.
1248func (c *S3Control) DeleteStorageLensConfigurationWithContext(ctx aws.Context, input *DeleteStorageLensConfigurationInput, opts ...request.Option) (*DeleteStorageLensConfigurationOutput, error) {
1249	req, out := c.DeleteStorageLensConfigurationRequest(input)
1250	req.SetContext(ctx)
1251	req.ApplyOptions(opts...)
1252	return out, req.Send()
1253}
1254
1255const opDeleteStorageLensConfigurationTagging = "DeleteStorageLensConfigurationTagging"
1256
1257// DeleteStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the
1258// client's request for the DeleteStorageLensConfigurationTagging operation. The "output" return
1259// value will be populated with the request's response once the request completes
1260// successfully.
1261//
1262// Use "Send" method on the returned Request to send the API call to the service.
1263// the "output" return value is not valid until after Send returns without error.
1264//
1265// See DeleteStorageLensConfigurationTagging for more information on using the DeleteStorageLensConfigurationTagging
1266// API call, and error handling.
1267//
1268// This method is useful when you want to inject custom logic or configuration
1269// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1270//
1271//
1272//    // Example sending a request using the DeleteStorageLensConfigurationTaggingRequest method.
1273//    req, resp := client.DeleteStorageLensConfigurationTaggingRequest(params)
1274//
1275//    err := req.Send()
1276//    if err == nil { // resp is now filled
1277//        fmt.Println(resp)
1278//    }
1279//
1280// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationTagging
1281func (c *S3Control) DeleteStorageLensConfigurationTaggingRequest(input *DeleteStorageLensConfigurationTaggingInput) (req *request.Request, output *DeleteStorageLensConfigurationTaggingOutput) {
1282	op := &request.Operation{
1283		Name:       opDeleteStorageLensConfigurationTagging,
1284		HTTPMethod: "DELETE",
1285		HTTPPath:   "/v20180820/storagelens/{storagelensid}/tagging",
1286	}
1287
1288	if input == nil {
1289		input = &DeleteStorageLensConfigurationTaggingInput{}
1290	}
1291
1292	output = &DeleteStorageLensConfigurationTaggingOutput{}
1293	req = c.newRequest(op, input, output)
1294	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1295	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1296	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1297	return
1298}
1299
1300// DeleteStorageLensConfigurationTagging API operation for AWS S3 Control.
1301//
1302// Deletes the Amazon S3 Storage Lens configuration tags. For more information
1303// about S3 Storage Lens, see Working with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
1304// in the Amazon Simple Storage Service Developer Guide.
1305//
1306// To use this action, you must have permission to perform the s3:DeleteStorageLensConfigurationTagging
1307// action. For more information, see Setting permissions to use Amazon S3 Storage
1308// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
1309// in the Amazon Simple Storage Service Developer Guide.
1310//
1311// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1312// with awserr.Error's Code and Message methods to get detailed information about
1313// the error.
1314//
1315// See the AWS API reference guide for AWS S3 Control's
1316// API operation DeleteStorageLensConfigurationTagging for usage and error information.
1317// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationTagging
1318func (c *S3Control) DeleteStorageLensConfigurationTagging(input *DeleteStorageLensConfigurationTaggingInput) (*DeleteStorageLensConfigurationTaggingOutput, error) {
1319	req, out := c.DeleteStorageLensConfigurationTaggingRequest(input)
1320	return out, req.Send()
1321}
1322
1323// DeleteStorageLensConfigurationTaggingWithContext is the same as DeleteStorageLensConfigurationTagging with the addition of
1324// the ability to pass a context and additional request options.
1325//
1326// See DeleteStorageLensConfigurationTagging for details on how to use this API operation.
1327//
1328// The context must be non-nil and will be used for request cancellation. If
1329// the context is nil a panic will occur. In the future the SDK may create
1330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1331// for more information on using Contexts.
1332func (c *S3Control) DeleteStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *DeleteStorageLensConfigurationTaggingInput, opts ...request.Option) (*DeleteStorageLensConfigurationTaggingOutput, error) {
1333	req, out := c.DeleteStorageLensConfigurationTaggingRequest(input)
1334	req.SetContext(ctx)
1335	req.ApplyOptions(opts...)
1336	return out, req.Send()
1337}
1338
1339const opDescribeJob = "DescribeJob"
1340
1341// DescribeJobRequest generates a "aws/request.Request" representing the
1342// client's request for the DescribeJob operation. The "output" return
1343// value will be populated with the request's response once the request completes
1344// successfully.
1345//
1346// Use "Send" method on the returned Request to send the API call to the service.
1347// the "output" return value is not valid until after Send returns without error.
1348//
1349// See DescribeJob for more information on using the DescribeJob
1350// API call, and error handling.
1351//
1352// This method is useful when you want to inject custom logic or configuration
1353// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1354//
1355//
1356//    // Example sending a request using the DescribeJobRequest method.
1357//    req, resp := client.DescribeJobRequest(params)
1358//
1359//    err := req.Send()
1360//    if err == nil { // resp is now filled
1361//        fmt.Println(resp)
1362//    }
1363//
1364// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJob
1365func (c *S3Control) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
1366	op := &request.Operation{
1367		Name:       opDescribeJob,
1368		HTTPMethod: "GET",
1369		HTTPPath:   "/v20180820/jobs/{id}",
1370	}
1371
1372	if input == nil {
1373		input = &DescribeJobInput{}
1374	}
1375
1376	output = &DescribeJobOutput{}
1377	req = c.newRequest(op, input, output)
1378	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1379	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1380	return
1381}
1382
1383// DescribeJob API operation for AWS S3 Control.
1384//
1385// Retrieves the configuration parameters and status for a Batch Operations
1386// job. For more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
1387// in the Amazon Simple Storage Service Developer Guide.
1388//
1389// Related actions include:
1390//
1391//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
1392//
1393//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
1394//
1395//    * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html)
1396//
1397//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
1398//
1399// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1400// with awserr.Error's Code and Message methods to get detailed information about
1401// the error.
1402//
1403// See the AWS API reference guide for AWS S3 Control's
1404// API operation DescribeJob for usage and error information.
1405//
1406// Returned Error Codes:
1407//   * ErrCodeBadRequestException "BadRequestException"
1408//
1409//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1410//
1411//   * ErrCodeNotFoundException "NotFoundException"
1412//
1413//   * ErrCodeInternalServiceException "InternalServiceException"
1414//
1415// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJob
1416func (c *S3Control) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
1417	req, out := c.DescribeJobRequest(input)
1418	return out, req.Send()
1419}
1420
1421// DescribeJobWithContext is the same as DescribeJob with the addition of
1422// the ability to pass a context and additional request options.
1423//
1424// See DescribeJob for details on how to use this API operation.
1425//
1426// The context must be non-nil and will be used for request cancellation. If
1427// the context is nil a panic will occur. In the future the SDK may create
1428// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1429// for more information on using Contexts.
1430func (c *S3Control) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) {
1431	req, out := c.DescribeJobRequest(input)
1432	req.SetContext(ctx)
1433	req.ApplyOptions(opts...)
1434	return out, req.Send()
1435}
1436
1437const opGetAccessPoint = "GetAccessPoint"
1438
1439// GetAccessPointRequest generates a "aws/request.Request" representing the
1440// client's request for the GetAccessPoint operation. The "output" return
1441// value will be populated with the request's response once the request completes
1442// successfully.
1443//
1444// Use "Send" method on the returned Request to send the API call to the service.
1445// the "output" return value is not valid until after Send returns without error.
1446//
1447// See GetAccessPoint for more information on using the GetAccessPoint
1448// API call, and error handling.
1449//
1450// This method is useful when you want to inject custom logic or configuration
1451// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1452//
1453//
1454//    // Example sending a request using the GetAccessPointRequest method.
1455//    req, resp := client.GetAccessPointRequest(params)
1456//
1457//    err := req.Send()
1458//    if err == nil { // resp is now filled
1459//        fmt.Println(resp)
1460//    }
1461//
1462// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint
1463func (c *S3Control) GetAccessPointRequest(input *GetAccessPointInput) (req *request.Request, output *GetAccessPointOutput) {
1464	op := &request.Operation{
1465		Name:       opGetAccessPoint,
1466		HTTPMethod: "GET",
1467		HTTPPath:   "/v20180820/accesspoint/{name}",
1468	}
1469
1470	if input == nil {
1471		input = &GetAccessPointInput{}
1472	}
1473
1474	output = &GetAccessPointOutput{}
1475	req = c.newRequest(op, input, output)
1476	// update account id or check if provided input for account id member matches
1477	// the account id present in ARN
1478	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
1479	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1480	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1481	return
1482}
1483
1484// GetAccessPoint API operation for AWS S3 Control.
1485//
1486// Returns configuration information about the specified access point.
1487//
1488// All Amazon S3 on Outposts REST API requests for this action require an additional
1489// parameter of x-amz-outpost-id to be passed with the request and an S3 on
1490// Outposts endpoint hostname prefix instead of s3-control. For an example of
1491// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
1492// endpoint hostname prefix and the x-amz-outpost-id derived using the access
1493// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples)
1494// section.
1495//
1496// The following actions are related to GetAccessPoint:
1497//
1498//    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
1499//
1500//    * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)
1501//
1502//    * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)
1503//
1504// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1505// with awserr.Error's Code and Message methods to get detailed information about
1506// the error.
1507//
1508// See the AWS API reference guide for AWS S3 Control's
1509// API operation GetAccessPoint for usage and error information.
1510// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint
1511func (c *S3Control) GetAccessPoint(input *GetAccessPointInput) (*GetAccessPointOutput, error) {
1512	req, out := c.GetAccessPointRequest(input)
1513	return out, req.Send()
1514}
1515
1516// GetAccessPointWithContext is the same as GetAccessPoint with the addition of
1517// the ability to pass a context and additional request options.
1518//
1519// See GetAccessPoint for details on how to use this API operation.
1520//
1521// The context must be non-nil and will be used for request cancellation. If
1522// the context is nil a panic will occur. In the future the SDK may create
1523// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1524// for more information on using Contexts.
1525func (c *S3Control) GetAccessPointWithContext(ctx aws.Context, input *GetAccessPointInput, opts ...request.Option) (*GetAccessPointOutput, error) {
1526	req, out := c.GetAccessPointRequest(input)
1527	req.SetContext(ctx)
1528	req.ApplyOptions(opts...)
1529	return out, req.Send()
1530}
1531
1532const opGetAccessPointPolicy = "GetAccessPointPolicy"
1533
1534// GetAccessPointPolicyRequest generates a "aws/request.Request" representing the
1535// client's request for the GetAccessPointPolicy operation. The "output" return
1536// value will be populated with the request's response once the request completes
1537// successfully.
1538//
1539// Use "Send" method on the returned Request to send the API call to the service.
1540// the "output" return value is not valid until after Send returns without error.
1541//
1542// See GetAccessPointPolicy for more information on using the GetAccessPointPolicy
1543// API call, and error handling.
1544//
1545// This method is useful when you want to inject custom logic or configuration
1546// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1547//
1548//
1549//    // Example sending a request using the GetAccessPointPolicyRequest method.
1550//    req, resp := client.GetAccessPointPolicyRequest(params)
1551//
1552//    err := req.Send()
1553//    if err == nil { // resp is now filled
1554//        fmt.Println(resp)
1555//    }
1556//
1557// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy
1558func (c *S3Control) GetAccessPointPolicyRequest(input *GetAccessPointPolicyInput) (req *request.Request, output *GetAccessPointPolicyOutput) {
1559	op := &request.Operation{
1560		Name:       opGetAccessPointPolicy,
1561		HTTPMethod: "GET",
1562		HTTPPath:   "/v20180820/accesspoint/{name}/policy",
1563	}
1564
1565	if input == nil {
1566		input = &GetAccessPointPolicyInput{}
1567	}
1568
1569	output = &GetAccessPointPolicyOutput{}
1570	req = c.newRequest(op, input, output)
1571	// update account id or check if provided input for account id member matches
1572	// the account id present in ARN
1573	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
1574	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1575	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1576	return
1577}
1578
1579// GetAccessPointPolicy API operation for AWS S3 Control.
1580//
1581// Returns the access point policy associated with the specified access point.
1582//
1583// The following actions are related to GetAccessPointPolicy:
1584//
1585//    * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)
1586//
1587//    * DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html)
1588//
1589// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1590// with awserr.Error's Code and Message methods to get detailed information about
1591// the error.
1592//
1593// See the AWS API reference guide for AWS S3 Control's
1594// API operation GetAccessPointPolicy for usage and error information.
1595// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy
1596func (c *S3Control) GetAccessPointPolicy(input *GetAccessPointPolicyInput) (*GetAccessPointPolicyOutput, error) {
1597	req, out := c.GetAccessPointPolicyRequest(input)
1598	return out, req.Send()
1599}
1600
1601// GetAccessPointPolicyWithContext is the same as GetAccessPointPolicy with the addition of
1602// the ability to pass a context and additional request options.
1603//
1604// See GetAccessPointPolicy for details on how to use this API operation.
1605//
1606// The context must be non-nil and will be used for request cancellation. If
1607// the context is nil a panic will occur. In the future the SDK may create
1608// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1609// for more information on using Contexts.
1610func (c *S3Control) GetAccessPointPolicyWithContext(ctx aws.Context, input *GetAccessPointPolicyInput, opts ...request.Option) (*GetAccessPointPolicyOutput, error) {
1611	req, out := c.GetAccessPointPolicyRequest(input)
1612	req.SetContext(ctx)
1613	req.ApplyOptions(opts...)
1614	return out, req.Send()
1615}
1616
1617const opGetAccessPointPolicyStatus = "GetAccessPointPolicyStatus"
1618
1619// GetAccessPointPolicyStatusRequest generates a "aws/request.Request" representing the
1620// client's request for the GetAccessPointPolicyStatus operation. The "output" return
1621// value will be populated with the request's response once the request completes
1622// successfully.
1623//
1624// Use "Send" method on the returned Request to send the API call to the service.
1625// the "output" return value is not valid until after Send returns without error.
1626//
1627// See GetAccessPointPolicyStatus for more information on using the GetAccessPointPolicyStatus
1628// API call, and error handling.
1629//
1630// This method is useful when you want to inject custom logic or configuration
1631// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1632//
1633//
1634//    // Example sending a request using the GetAccessPointPolicyStatusRequest method.
1635//    req, resp := client.GetAccessPointPolicyStatusRequest(params)
1636//
1637//    err := req.Send()
1638//    if err == nil { // resp is now filled
1639//        fmt.Println(resp)
1640//    }
1641//
1642// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus
1643func (c *S3Control) GetAccessPointPolicyStatusRequest(input *GetAccessPointPolicyStatusInput) (req *request.Request, output *GetAccessPointPolicyStatusOutput) {
1644	op := &request.Operation{
1645		Name:       opGetAccessPointPolicyStatus,
1646		HTTPMethod: "GET",
1647		HTTPPath:   "/v20180820/accesspoint/{name}/policyStatus",
1648	}
1649
1650	if input == nil {
1651		input = &GetAccessPointPolicyStatusInput{}
1652	}
1653
1654	output = &GetAccessPointPolicyStatusOutput{}
1655	req = c.newRequest(op, input, output)
1656	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1657	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1658	return
1659}
1660
1661// GetAccessPointPolicyStatus API operation for AWS S3 Control.
1662//
1663// Indicates whether the specified access point currently has a policy that
1664// allows public access. For more information about public access through access
1665// points, see Managing Data Access with Amazon S3 Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html)
1666// in the Amazon Simple Storage Service Developer Guide.
1667//
1668// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1669// with awserr.Error's Code and Message methods to get detailed information about
1670// the error.
1671//
1672// See the AWS API reference guide for AWS S3 Control's
1673// API operation GetAccessPointPolicyStatus for usage and error information.
1674// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus
1675func (c *S3Control) GetAccessPointPolicyStatus(input *GetAccessPointPolicyStatusInput) (*GetAccessPointPolicyStatusOutput, error) {
1676	req, out := c.GetAccessPointPolicyStatusRequest(input)
1677	return out, req.Send()
1678}
1679
1680// GetAccessPointPolicyStatusWithContext is the same as GetAccessPointPolicyStatus with the addition of
1681// the ability to pass a context and additional request options.
1682//
1683// See GetAccessPointPolicyStatus for details on how to use this API operation.
1684//
1685// The context must be non-nil and will be used for request cancellation. If
1686// the context is nil a panic will occur. In the future the SDK may create
1687// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1688// for more information on using Contexts.
1689func (c *S3Control) GetAccessPointPolicyStatusWithContext(ctx aws.Context, input *GetAccessPointPolicyStatusInput, opts ...request.Option) (*GetAccessPointPolicyStatusOutput, error) {
1690	req, out := c.GetAccessPointPolicyStatusRequest(input)
1691	req.SetContext(ctx)
1692	req.ApplyOptions(opts...)
1693	return out, req.Send()
1694}
1695
1696const opGetBucket = "GetBucket"
1697
1698// GetBucketRequest generates a "aws/request.Request" representing the
1699// client's request for the GetBucket operation. The "output" return
1700// value will be populated with the request's response once the request completes
1701// successfully.
1702//
1703// Use "Send" method on the returned Request to send the API call to the service.
1704// the "output" return value is not valid until after Send returns without error.
1705//
1706// See GetBucket for more information on using the GetBucket
1707// API call, and error handling.
1708//
1709// This method is useful when you want to inject custom logic or configuration
1710// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1711//
1712//
1713//    // Example sending a request using the GetBucketRequest method.
1714//    req, resp := client.GetBucketRequest(params)
1715//
1716//    err := req.Send()
1717//    if err == nil { // resp is now filled
1718//        fmt.Println(resp)
1719//    }
1720//
1721// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket
1722func (c *S3Control) GetBucketRequest(input *GetBucketInput) (req *request.Request, output *GetBucketOutput) {
1723	op := &request.Operation{
1724		Name:       opGetBucket,
1725		HTTPMethod: "GET",
1726		HTTPPath:   "/v20180820/bucket/{name}",
1727	}
1728
1729	if input == nil {
1730		input = &GetBucketInput{}
1731	}
1732
1733	output = &GetBucketOutput{}
1734	req = c.newRequest(op, input, output)
1735	// update account id or check if provided input for account id member matches
1736	// the account id present in ARN
1737	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
1738	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1739	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1740	return
1741}
1742
1743// GetBucket API operation for AWS S3 Control.
1744//
1745// Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon
1746// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html)
1747// in the Amazon Simple Storage Service Developer Guide.
1748//
1749// If you are using an identity other than the root user of the AWS account
1750// that owns the bucket, the calling identity must have the s3-outposts:GetBucket
1751// permissions on the specified bucket and belong to the bucket owner's account
1752// in order to use this operation. Only users from Outposts bucket owner account
1753// with the right permissions can perform actions on an Outposts bucket.
1754//
1755// If you don't have s3-outposts:GetBucket permissions or you're not using an
1756// identity that belongs to the bucket owner's account, Amazon S3 returns a
1757// 403 Access Denied error.
1758//
1759// The following actions are related to GetBucket for Amazon S3 on Outposts:
1760//
1761// All Amazon S3 on Outposts REST API requests for this action require an additional
1762// parameter of x-amz-outpost-id to be passed with the request and an S3 on
1763// Outposts endpoint hostname prefix instead of s3-control. For an example of
1764// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
1765// endpoint hostname prefix and the x-amz-outpost-id derived using the access
1766// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html#API_control_GetBucket_Examples)
1767// section.
1768//
1769//    * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
1770//
1771//    * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html)
1772//
1773//    * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html)
1774//
1775// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1776// with awserr.Error's Code and Message methods to get detailed information about
1777// the error.
1778//
1779// See the AWS API reference guide for AWS S3 Control's
1780// API operation GetBucket for usage and error information.
1781// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket
1782func (c *S3Control) GetBucket(input *GetBucketInput) (*GetBucketOutput, error) {
1783	req, out := c.GetBucketRequest(input)
1784	return out, req.Send()
1785}
1786
1787// GetBucketWithContext is the same as GetBucket with the addition of
1788// the ability to pass a context and additional request options.
1789//
1790// See GetBucket for details on how to use this API operation.
1791//
1792// The context must be non-nil and will be used for request cancellation. If
1793// the context is nil a panic will occur. In the future the SDK may create
1794// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1795// for more information on using Contexts.
1796func (c *S3Control) GetBucketWithContext(ctx aws.Context, input *GetBucketInput, opts ...request.Option) (*GetBucketOutput, error) {
1797	req, out := c.GetBucketRequest(input)
1798	req.SetContext(ctx)
1799	req.ApplyOptions(opts...)
1800	return out, req.Send()
1801}
1802
1803const opGetBucketLifecycleConfiguration = "GetBucketLifecycleConfiguration"
1804
1805// GetBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
1806// client's request for the GetBucketLifecycleConfiguration operation. The "output" return
1807// value will be populated with the request's response once the request completes
1808// successfully.
1809//
1810// Use "Send" method on the returned Request to send the API call to the service.
1811// the "output" return value is not valid until after Send returns without error.
1812//
1813// See GetBucketLifecycleConfiguration for more information on using the GetBucketLifecycleConfiguration
1814// API call, and error handling.
1815//
1816// This method is useful when you want to inject custom logic or configuration
1817// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1818//
1819//
1820//    // Example sending a request using the GetBucketLifecycleConfigurationRequest method.
1821//    req, resp := client.GetBucketLifecycleConfigurationRequest(params)
1822//
1823//    err := req.Send()
1824//    if err == nil { // resp is now filled
1825//        fmt.Println(resp)
1826//    }
1827//
1828// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration
1829func (c *S3Control) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleConfigurationInput) (req *request.Request, output *GetBucketLifecycleConfigurationOutput) {
1830	op := &request.Operation{
1831		Name:       opGetBucketLifecycleConfiguration,
1832		HTTPMethod: "GET",
1833		HTTPPath:   "/v20180820/bucket/{name}/lifecycleconfiguration",
1834	}
1835
1836	if input == nil {
1837		input = &GetBucketLifecycleConfigurationInput{}
1838	}
1839
1840	output = &GetBucketLifecycleConfigurationOutput{}
1841	req = c.newRequest(op, input, output)
1842	// update account id or check if provided input for account id member matches
1843	// the account id present in ARN
1844	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
1845	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1846	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1847	return
1848}
1849
1850// GetBucketLifecycleConfiguration API operation for AWS S3 Control.
1851//
1852//
1853// This operation gets an Amazon S3 on Outposts bucket's lifecycle configuration.
1854// To get an S3 bucket's lifecycle configuration, see GetBucketLifecycleConfiguration
1855// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html)
1856// in the Amazon Simple Storage Service API.
1857//
1858// Returns the lifecycle configuration information set on the Outposts bucket.
1859// For more information, see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html)
1860// and for information about lifecycle configuration, see Object Lifecycle Management
1861// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)
1862// in Amazon Simple Storage Service Developer Guide.
1863//
1864// To use this operation, you must have permission to perform the s3-outposts:GetLifecycleConfiguration
1865// action. The Outposts bucket owner has this permission, by default. The bucket
1866// owner can grant this permission to others. For more information about permissions,
1867// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
1868// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html).
1869//
1870// All Amazon S3 on Outposts REST API requests for this action require an additional
1871// parameter of x-amz-outpost-id to be passed with the request and an S3 on
1872// Outposts endpoint hostname prefix instead of s3-control. For an example of
1873// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
1874// endpoint hostname prefix and the x-amz-outpost-id derived using the access
1875// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html#API_control_GetBucketLifecycleConfiguration_Examples)
1876// section.
1877//
1878// GetBucketLifecycleConfiguration has the following special error:
1879//
1880//    * Error code: NoSuchLifecycleConfiguration Description: The lifecycle
1881//    configuration does not exist. HTTP Status Code: 404 Not Found SOAP Fault
1882//    Code Prefix: Client
1883//
1884// The following actions are related to GetBucketLifecycleConfiguration:
1885//
1886//    * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html)
1887//
1888//    * DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html)
1889//
1890// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1891// with awserr.Error's Code and Message methods to get detailed information about
1892// the error.
1893//
1894// See the AWS API reference guide for AWS S3 Control's
1895// API operation GetBucketLifecycleConfiguration for usage and error information.
1896// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration
1897func (c *S3Control) GetBucketLifecycleConfiguration(input *GetBucketLifecycleConfigurationInput) (*GetBucketLifecycleConfigurationOutput, error) {
1898	req, out := c.GetBucketLifecycleConfigurationRequest(input)
1899	return out, req.Send()
1900}
1901
1902// GetBucketLifecycleConfigurationWithContext is the same as GetBucketLifecycleConfiguration with the addition of
1903// the ability to pass a context and additional request options.
1904//
1905// See GetBucketLifecycleConfiguration for details on how to use this API operation.
1906//
1907// The context must be non-nil and will be used for request cancellation. If
1908// the context is nil a panic will occur. In the future the SDK may create
1909// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1910// for more information on using Contexts.
1911func (c *S3Control) GetBucketLifecycleConfigurationWithContext(ctx aws.Context, input *GetBucketLifecycleConfigurationInput, opts ...request.Option) (*GetBucketLifecycleConfigurationOutput, error) {
1912	req, out := c.GetBucketLifecycleConfigurationRequest(input)
1913	req.SetContext(ctx)
1914	req.ApplyOptions(opts...)
1915	return out, req.Send()
1916}
1917
1918const opGetBucketPolicy = "GetBucketPolicy"
1919
1920// GetBucketPolicyRequest generates a "aws/request.Request" representing the
1921// client's request for the GetBucketPolicy operation. The "output" return
1922// value will be populated with the request's response once the request completes
1923// successfully.
1924//
1925// Use "Send" method on the returned Request to send the API call to the service.
1926// the "output" return value is not valid until after Send returns without error.
1927//
1928// See GetBucketPolicy for more information on using the GetBucketPolicy
1929// API call, and error handling.
1930//
1931// This method is useful when you want to inject custom logic or configuration
1932// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1933//
1934//
1935//    // Example sending a request using the GetBucketPolicyRequest method.
1936//    req, resp := client.GetBucketPolicyRequest(params)
1937//
1938//    err := req.Send()
1939//    if err == nil { // resp is now filled
1940//        fmt.Println(resp)
1941//    }
1942//
1943// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy
1944func (c *S3Control) GetBucketPolicyRequest(input *GetBucketPolicyInput) (req *request.Request, output *GetBucketPolicyOutput) {
1945	op := &request.Operation{
1946		Name:       opGetBucketPolicy,
1947		HTTPMethod: "GET",
1948		HTTPPath:   "/v20180820/bucket/{name}/policy",
1949	}
1950
1951	if input == nil {
1952		input = &GetBucketPolicyInput{}
1953	}
1954
1955	output = &GetBucketPolicyOutput{}
1956	req = c.newRequest(op, input, output)
1957	// update account id or check if provided input for account id member matches
1958	// the account id present in ARN
1959	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
1960	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1961	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1962	return
1963}
1964
1965// GetBucketPolicy API operation for AWS S3 Control.
1966//
1967//
1968// This action gets a bucket policy for an Amazon S3 on Outposts bucket. To
1969// get a policy for an S3 bucket, see GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html)
1970// in the Amazon Simple Storage Service API.
1971//
1972// Returns the policy of a specified Outposts bucket. For more information,
1973// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html)
1974// in the Amazon Simple Storage Service Developer Guide.
1975//
1976// If you are using an identity other than the root user of the AWS account
1977// that owns the bucket, the calling identity must have the GetBucketPolicy
1978// permissions on the specified bucket and belong to the bucket owner's account
1979// in order to use this operation.
1980//
1981// Only users from Outposts bucket owner account with the right permissions
1982// can perform actions on an Outposts bucket. If you don't have s3-outposts:GetBucketPolicy
1983// permissions or you're not using an identity that belongs to the bucket owner's
1984// account, Amazon S3 returns a 403 Access Denied error.
1985//
1986// As a security precaution, the root user of the AWS account that owns a bucket
1987// can always use this operation, even if the policy explicitly denies the root
1988// user the ability to perform this action.
1989//
1990// For more information about bucket policies, see Using Bucket Policies and
1991// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html).
1992//
1993// All Amazon S3 on Outposts REST API requests for this action require an additional
1994// parameter of x-amz-outpost-id to be passed with the request and an S3 on
1995// Outposts endpoint hostname prefix instead of s3-control. For an example of
1996// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
1997// endpoint hostname prefix and the x-amz-outpost-id derived using the access
1998// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html#API_control_GetBucketPolicy_Examples)
1999// section.
2000//
2001// The following actions are related to GetBucketPolicy:
2002//
2003//    * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
2004//
2005//    * PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html)
2006//
2007//    * DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html)
2008//
2009// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2010// with awserr.Error's Code and Message methods to get detailed information about
2011// the error.
2012//
2013// See the AWS API reference guide for AWS S3 Control's
2014// API operation GetBucketPolicy for usage and error information.
2015// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy
2016func (c *S3Control) GetBucketPolicy(input *GetBucketPolicyInput) (*GetBucketPolicyOutput, error) {
2017	req, out := c.GetBucketPolicyRequest(input)
2018	return out, req.Send()
2019}
2020
2021// GetBucketPolicyWithContext is the same as GetBucketPolicy with the addition of
2022// the ability to pass a context and additional request options.
2023//
2024// See GetBucketPolicy for details on how to use this API operation.
2025//
2026// The context must be non-nil and will be used for request cancellation. If
2027// the context is nil a panic will occur. In the future the SDK may create
2028// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2029// for more information on using Contexts.
2030func (c *S3Control) GetBucketPolicyWithContext(ctx aws.Context, input *GetBucketPolicyInput, opts ...request.Option) (*GetBucketPolicyOutput, error) {
2031	req, out := c.GetBucketPolicyRequest(input)
2032	req.SetContext(ctx)
2033	req.ApplyOptions(opts...)
2034	return out, req.Send()
2035}
2036
2037const opGetBucketTagging = "GetBucketTagging"
2038
2039// GetBucketTaggingRequest generates a "aws/request.Request" representing the
2040// client's request for the GetBucketTagging operation. The "output" return
2041// value will be populated with the request's response once the request completes
2042// successfully.
2043//
2044// Use "Send" method on the returned Request to send the API call to the service.
2045// the "output" return value is not valid until after Send returns without error.
2046//
2047// See GetBucketTagging for more information on using the GetBucketTagging
2048// API call, and error handling.
2049//
2050// This method is useful when you want to inject custom logic or configuration
2051// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2052//
2053//
2054//    // Example sending a request using the GetBucketTaggingRequest method.
2055//    req, resp := client.GetBucketTaggingRequest(params)
2056//
2057//    err := req.Send()
2058//    if err == nil { // resp is now filled
2059//        fmt.Println(resp)
2060//    }
2061//
2062// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging
2063func (c *S3Control) GetBucketTaggingRequest(input *GetBucketTaggingInput) (req *request.Request, output *GetBucketTaggingOutput) {
2064	op := &request.Operation{
2065		Name:       opGetBucketTagging,
2066		HTTPMethod: "GET",
2067		HTTPPath:   "/v20180820/bucket/{name}/tagging",
2068	}
2069
2070	if input == nil {
2071		input = &GetBucketTaggingInput{}
2072	}
2073
2074	output = &GetBucketTaggingOutput{}
2075	req = c.newRequest(op, input, output)
2076	// update account id or check if provided input for account id member matches
2077	// the account id present in ARN
2078	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
2079	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2080	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2081	return
2082}
2083
2084// GetBucketTagging API operation for AWS S3 Control.
2085//
2086//
2087// This operation gets an Amazon S3 on Outposts bucket's tags. To get an S3
2088// bucket tags, see GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html)
2089// in the Amazon Simple Storage Service API.
2090//
2091// Returns the tag set associated with the Outposts bucket. For more information,
2092// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html)
2093// in the Amazon Simple Storage Service Developer Guide.
2094//
2095// To use this operation, you must have permission to perform the GetBucketTagging
2096// action. By default, the bucket owner has this permission and can grant this
2097// permission to others.
2098//
2099// GetBucketTagging has the following special error:
2100//
2101//    * Error code: NoSuchTagSetError Description: There is no tag set associated
2102//    with the bucket.
2103//
2104// All Amazon S3 on Outposts REST API requests for this action require an additional
2105// parameter of x-amz-outpost-id to be passed with the request and an S3 on
2106// Outposts endpoint hostname prefix instead of s3-control. For an example of
2107// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
2108// endpoint hostname prefix and the x-amz-outpost-id derived using the access
2109// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html#API_control_GetBucketTagging_Examples)
2110// section.
2111//
2112// The following actions are related to GetBucketTagging:
2113//
2114//    * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html)
2115//
2116//    * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html)
2117//
2118// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2119// with awserr.Error's Code and Message methods to get detailed information about
2120// the error.
2121//
2122// See the AWS API reference guide for AWS S3 Control's
2123// API operation GetBucketTagging for usage and error information.
2124// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging
2125func (c *S3Control) GetBucketTagging(input *GetBucketTaggingInput) (*GetBucketTaggingOutput, error) {
2126	req, out := c.GetBucketTaggingRequest(input)
2127	return out, req.Send()
2128}
2129
2130// GetBucketTaggingWithContext is the same as GetBucketTagging with the addition of
2131// the ability to pass a context and additional request options.
2132//
2133// See GetBucketTagging for details on how to use this API operation.
2134//
2135// The context must be non-nil and will be used for request cancellation. If
2136// the context is nil a panic will occur. In the future the SDK may create
2137// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2138// for more information on using Contexts.
2139func (c *S3Control) GetBucketTaggingWithContext(ctx aws.Context, input *GetBucketTaggingInput, opts ...request.Option) (*GetBucketTaggingOutput, error) {
2140	req, out := c.GetBucketTaggingRequest(input)
2141	req.SetContext(ctx)
2142	req.ApplyOptions(opts...)
2143	return out, req.Send()
2144}
2145
2146const opGetJobTagging = "GetJobTagging"
2147
2148// GetJobTaggingRequest generates a "aws/request.Request" representing the
2149// client's request for the GetJobTagging operation. The "output" return
2150// value will be populated with the request's response once the request completes
2151// successfully.
2152//
2153// Use "Send" method on the returned Request to send the API call to the service.
2154// the "output" return value is not valid until after Send returns without error.
2155//
2156// See GetJobTagging for more information on using the GetJobTagging
2157// API call, and error handling.
2158//
2159// This method is useful when you want to inject custom logic or configuration
2160// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2161//
2162//
2163//    // Example sending a request using the GetJobTaggingRequest method.
2164//    req, resp := client.GetJobTaggingRequest(params)
2165//
2166//    err := req.Send()
2167//    if err == nil { // resp is now filled
2168//        fmt.Println(resp)
2169//    }
2170//
2171// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging
2172func (c *S3Control) GetJobTaggingRequest(input *GetJobTaggingInput) (req *request.Request, output *GetJobTaggingOutput) {
2173	op := &request.Operation{
2174		Name:       opGetJobTagging,
2175		HTTPMethod: "GET",
2176		HTTPPath:   "/v20180820/jobs/{id}/tagging",
2177	}
2178
2179	if input == nil {
2180		input = &GetJobTaggingInput{}
2181	}
2182
2183	output = &GetJobTaggingOutput{}
2184	req = c.newRequest(op, input, output)
2185	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2186	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2187	return
2188}
2189
2190// GetJobTagging API operation for AWS S3 Control.
2191//
2192// Returns the tags on an S3 Batch Operations job. To use this operation, you
2193// must have permission to perform the s3:GetJobTagging action. For more information,
2194// see Controlling access and labeling jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags)
2195// in the Amazon Simple Storage Service Developer Guide.
2196//
2197// Related actions include:
2198//
2199//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
2200//
2201//    * PutJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html)
2202//
2203//    * DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
2204//
2205// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2206// with awserr.Error's Code and Message methods to get detailed information about
2207// the error.
2208//
2209// See the AWS API reference guide for AWS S3 Control's
2210// API operation GetJobTagging for usage and error information.
2211//
2212// Returned Error Codes:
2213//   * ErrCodeInternalServiceException "InternalServiceException"
2214//
2215//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2216//
2217//   * ErrCodeNotFoundException "NotFoundException"
2218//
2219// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging
2220func (c *S3Control) GetJobTagging(input *GetJobTaggingInput) (*GetJobTaggingOutput, error) {
2221	req, out := c.GetJobTaggingRequest(input)
2222	return out, req.Send()
2223}
2224
2225// GetJobTaggingWithContext is the same as GetJobTagging with the addition of
2226// the ability to pass a context and additional request options.
2227//
2228// See GetJobTagging for details on how to use this API operation.
2229//
2230// The context must be non-nil and will be used for request cancellation. If
2231// the context is nil a panic will occur. In the future the SDK may create
2232// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2233// for more information on using Contexts.
2234func (c *S3Control) GetJobTaggingWithContext(ctx aws.Context, input *GetJobTaggingInput, opts ...request.Option) (*GetJobTaggingOutput, error) {
2235	req, out := c.GetJobTaggingRequest(input)
2236	req.SetContext(ctx)
2237	req.ApplyOptions(opts...)
2238	return out, req.Send()
2239}
2240
2241const opGetPublicAccessBlock = "GetPublicAccessBlock"
2242
2243// GetPublicAccessBlockRequest generates a "aws/request.Request" representing the
2244// client's request for the GetPublicAccessBlock operation. The "output" return
2245// value will be populated with the request's response once the request completes
2246// successfully.
2247//
2248// Use "Send" method on the returned Request to send the API call to the service.
2249// the "output" return value is not valid until after Send returns without error.
2250//
2251// See GetPublicAccessBlock for more information on using the GetPublicAccessBlock
2252// API call, and error handling.
2253//
2254// This method is useful when you want to inject custom logic or configuration
2255// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2256//
2257//
2258//    // Example sending a request using the GetPublicAccessBlockRequest method.
2259//    req, resp := client.GetPublicAccessBlockRequest(params)
2260//
2261//    err := req.Send()
2262//    if err == nil { // resp is now filled
2263//        fmt.Println(resp)
2264//    }
2265//
2266// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock
2267func (c *S3Control) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput) (req *request.Request, output *GetPublicAccessBlockOutput) {
2268	op := &request.Operation{
2269		Name:       opGetPublicAccessBlock,
2270		HTTPMethod: "GET",
2271		HTTPPath:   "/v20180820/configuration/publicAccessBlock",
2272	}
2273
2274	if input == nil {
2275		input = &GetPublicAccessBlockInput{}
2276	}
2277
2278	output = &GetPublicAccessBlockOutput{}
2279	req = c.newRequest(op, input, output)
2280	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2281	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2282	return
2283}
2284
2285// GetPublicAccessBlock API operation for AWS S3 Control.
2286//
2287// Retrieves the PublicAccessBlock configuration for an AWS account. For more
2288// information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).
2289//
2290// Related actions include:
2291//
2292//    * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html)
2293//
2294//    * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html)
2295//
2296// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2297// with awserr.Error's Code and Message methods to get detailed information about
2298// the error.
2299//
2300// See the AWS API reference guide for AWS S3 Control's
2301// API operation GetPublicAccessBlock for usage and error information.
2302//
2303// Returned Error Codes:
2304//   * ErrCodeNoSuchPublicAccessBlockConfiguration "NoSuchPublicAccessBlockConfiguration"
2305//   Amazon S3 throws this exception if you make a GetPublicAccessBlock request
2306//   against an account that doesn't have a PublicAccessBlockConfiguration set.
2307//
2308// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock
2309func (c *S3Control) GetPublicAccessBlock(input *GetPublicAccessBlockInput) (*GetPublicAccessBlockOutput, error) {
2310	req, out := c.GetPublicAccessBlockRequest(input)
2311	return out, req.Send()
2312}
2313
2314// GetPublicAccessBlockWithContext is the same as GetPublicAccessBlock with the addition of
2315// the ability to pass a context and additional request options.
2316//
2317// See GetPublicAccessBlock for details on how to use this API operation.
2318//
2319// The context must be non-nil and will be used for request cancellation. If
2320// the context is nil a panic will occur. In the future the SDK may create
2321// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2322// for more information on using Contexts.
2323func (c *S3Control) GetPublicAccessBlockWithContext(ctx aws.Context, input *GetPublicAccessBlockInput, opts ...request.Option) (*GetPublicAccessBlockOutput, error) {
2324	req, out := c.GetPublicAccessBlockRequest(input)
2325	req.SetContext(ctx)
2326	req.ApplyOptions(opts...)
2327	return out, req.Send()
2328}
2329
2330const opGetStorageLensConfiguration = "GetStorageLensConfiguration"
2331
2332// GetStorageLensConfigurationRequest generates a "aws/request.Request" representing the
2333// client's request for the GetStorageLensConfiguration operation. The "output" return
2334// value will be populated with the request's response once the request completes
2335// successfully.
2336//
2337// Use "Send" method on the returned Request to send the API call to the service.
2338// the "output" return value is not valid until after Send returns without error.
2339//
2340// See GetStorageLensConfiguration for more information on using the GetStorageLensConfiguration
2341// API call, and error handling.
2342//
2343// This method is useful when you want to inject custom logic or configuration
2344// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2345//
2346//
2347//    // Example sending a request using the GetStorageLensConfigurationRequest method.
2348//    req, resp := client.GetStorageLensConfigurationRequest(params)
2349//
2350//    err := req.Send()
2351//    if err == nil { // resp is now filled
2352//        fmt.Println(resp)
2353//    }
2354//
2355// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfiguration
2356func (c *S3Control) GetStorageLensConfigurationRequest(input *GetStorageLensConfigurationInput) (req *request.Request, output *GetStorageLensConfigurationOutput) {
2357	op := &request.Operation{
2358		Name:       opGetStorageLensConfiguration,
2359		HTTPMethod: "GET",
2360		HTTPPath:   "/v20180820/storagelens/{storagelensid}",
2361	}
2362
2363	if input == nil {
2364		input = &GetStorageLensConfigurationInput{}
2365	}
2366
2367	output = &GetStorageLensConfigurationOutput{}
2368	req = c.newRequest(op, input, output)
2369	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2370	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2371	return
2372}
2373
2374// GetStorageLensConfiguration API operation for AWS S3 Control.
2375//
2376// Gets the Amazon S3 Storage Lens configuration. For more information, see
2377// Working with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
2378// in the Amazon Simple Storage Service Developer Guide.
2379//
2380// To use this action, you must have permission to perform the s3:GetStorageLensConfiguration
2381// action. For more information, see Setting permissions to use Amazon S3 Storage
2382// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
2383// in the Amazon Simple Storage Service Developer Guide.
2384//
2385// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2386// with awserr.Error's Code and Message methods to get detailed information about
2387// the error.
2388//
2389// See the AWS API reference guide for AWS S3 Control's
2390// API operation GetStorageLensConfiguration for usage and error information.
2391// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfiguration
2392func (c *S3Control) GetStorageLensConfiguration(input *GetStorageLensConfigurationInput) (*GetStorageLensConfigurationOutput, error) {
2393	req, out := c.GetStorageLensConfigurationRequest(input)
2394	return out, req.Send()
2395}
2396
2397// GetStorageLensConfigurationWithContext is the same as GetStorageLensConfiguration with the addition of
2398// the ability to pass a context and additional request options.
2399//
2400// See GetStorageLensConfiguration for details on how to use this API operation.
2401//
2402// The context must be non-nil and will be used for request cancellation. If
2403// the context is nil a panic will occur. In the future the SDK may create
2404// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2405// for more information on using Contexts.
2406func (c *S3Control) GetStorageLensConfigurationWithContext(ctx aws.Context, input *GetStorageLensConfigurationInput, opts ...request.Option) (*GetStorageLensConfigurationOutput, error) {
2407	req, out := c.GetStorageLensConfigurationRequest(input)
2408	req.SetContext(ctx)
2409	req.ApplyOptions(opts...)
2410	return out, req.Send()
2411}
2412
2413const opGetStorageLensConfigurationTagging = "GetStorageLensConfigurationTagging"
2414
2415// GetStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the
2416// client's request for the GetStorageLensConfigurationTagging operation. The "output" return
2417// value will be populated with the request's response once the request completes
2418// successfully.
2419//
2420// Use "Send" method on the returned Request to send the API call to the service.
2421// the "output" return value is not valid until after Send returns without error.
2422//
2423// See GetStorageLensConfigurationTagging for more information on using the GetStorageLensConfigurationTagging
2424// API call, and error handling.
2425//
2426// This method is useful when you want to inject custom logic or configuration
2427// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2428//
2429//
2430//    // Example sending a request using the GetStorageLensConfigurationTaggingRequest method.
2431//    req, resp := client.GetStorageLensConfigurationTaggingRequest(params)
2432//
2433//    err := req.Send()
2434//    if err == nil { // resp is now filled
2435//        fmt.Println(resp)
2436//    }
2437//
2438// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTagging
2439func (c *S3Control) GetStorageLensConfigurationTaggingRequest(input *GetStorageLensConfigurationTaggingInput) (req *request.Request, output *GetStorageLensConfigurationTaggingOutput) {
2440	op := &request.Operation{
2441		Name:       opGetStorageLensConfigurationTagging,
2442		HTTPMethod: "GET",
2443		HTTPPath:   "/v20180820/storagelens/{storagelensid}/tagging",
2444	}
2445
2446	if input == nil {
2447		input = &GetStorageLensConfigurationTaggingInput{}
2448	}
2449
2450	output = &GetStorageLensConfigurationTaggingOutput{}
2451	req = c.newRequest(op, input, output)
2452	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2453	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2454	return
2455}
2456
2457// GetStorageLensConfigurationTagging API operation for AWS S3 Control.
2458//
2459// Gets the tags of Amazon S3 Storage Lens configuration. For more information
2460// about S3 Storage Lens, see Working with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
2461// in the Amazon Simple Storage Service Developer Guide.
2462//
2463// To use this action, you must have permission to perform the s3:GetStorageLensConfigurationTagging
2464// action. For more information, see Setting permissions to use Amazon S3 Storage
2465// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
2466// in the Amazon Simple Storage Service Developer Guide.
2467//
2468// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2469// with awserr.Error's Code and Message methods to get detailed information about
2470// the error.
2471//
2472// See the AWS API reference guide for AWS S3 Control's
2473// API operation GetStorageLensConfigurationTagging for usage and error information.
2474// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTagging
2475func (c *S3Control) GetStorageLensConfigurationTagging(input *GetStorageLensConfigurationTaggingInput) (*GetStorageLensConfigurationTaggingOutput, error) {
2476	req, out := c.GetStorageLensConfigurationTaggingRequest(input)
2477	return out, req.Send()
2478}
2479
2480// GetStorageLensConfigurationTaggingWithContext is the same as GetStorageLensConfigurationTagging with the addition of
2481// the ability to pass a context and additional request options.
2482//
2483// See GetStorageLensConfigurationTagging for details on how to use this API operation.
2484//
2485// The context must be non-nil and will be used for request cancellation. If
2486// the context is nil a panic will occur. In the future the SDK may create
2487// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2488// for more information on using Contexts.
2489func (c *S3Control) GetStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *GetStorageLensConfigurationTaggingInput, opts ...request.Option) (*GetStorageLensConfigurationTaggingOutput, error) {
2490	req, out := c.GetStorageLensConfigurationTaggingRequest(input)
2491	req.SetContext(ctx)
2492	req.ApplyOptions(opts...)
2493	return out, req.Send()
2494}
2495
2496const opListAccessPoints = "ListAccessPoints"
2497
2498// ListAccessPointsRequest generates a "aws/request.Request" representing the
2499// client's request for the ListAccessPoints operation. The "output" return
2500// value will be populated with the request's response once the request completes
2501// successfully.
2502//
2503// Use "Send" method on the returned Request to send the API call to the service.
2504// the "output" return value is not valid until after Send returns without error.
2505//
2506// See ListAccessPoints for more information on using the ListAccessPoints
2507// API call, and error handling.
2508//
2509// This method is useful when you want to inject custom logic or configuration
2510// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2511//
2512//
2513//    // Example sending a request using the ListAccessPointsRequest method.
2514//    req, resp := client.ListAccessPointsRequest(params)
2515//
2516//    err := req.Send()
2517//    if err == nil { // resp is now filled
2518//        fmt.Println(resp)
2519//    }
2520//
2521// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints
2522func (c *S3Control) ListAccessPointsRequest(input *ListAccessPointsInput) (req *request.Request, output *ListAccessPointsOutput) {
2523	op := &request.Operation{
2524		Name:       opListAccessPoints,
2525		HTTPMethod: "GET",
2526		HTTPPath:   "/v20180820/accesspoint",
2527		Paginator: &request.Paginator{
2528			InputTokens:     []string{"NextToken"},
2529			OutputTokens:    []string{"NextToken"},
2530			LimitToken:      "MaxResults",
2531			TruncationToken: "",
2532		},
2533	}
2534
2535	if input == nil {
2536		input = &ListAccessPointsInput{}
2537	}
2538
2539	output = &ListAccessPointsOutput{}
2540	req = c.newRequest(op, input, output)
2541	// update account id or check if provided input for account id member matches
2542	// the account id present in ARN
2543	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
2544	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2545	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2546	return
2547}
2548
2549// ListAccessPoints API operation for AWS S3 Control.
2550//
2551// Returns a list of the access points currently associated with the specified
2552// bucket. You can retrieve up to 1000 access points per call. If the specified
2553// bucket has more than 1,000 access points (or the number specified in maxResults,
2554// whichever is less), the response will include a continuation token that you
2555// can use to list the additional access points.
2556//
2557// All Amazon S3 on Outposts REST API requests for this action require an additional
2558// parameter of x-amz-outpost-id to be passed with the request and an S3 on
2559// Outposts endpoint hostname prefix instead of s3-control. For an example of
2560// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
2561// endpoint hostname prefix and the x-amz-outpost-id derived using the access
2562// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples)
2563// section.
2564//
2565// The following actions are related to ListAccessPoints:
2566//
2567//    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
2568//
2569//    * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)
2570//
2571//    * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)
2572//
2573// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2574// with awserr.Error's Code and Message methods to get detailed information about
2575// the error.
2576//
2577// See the AWS API reference guide for AWS S3 Control's
2578// API operation ListAccessPoints for usage and error information.
2579// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints
2580func (c *S3Control) ListAccessPoints(input *ListAccessPointsInput) (*ListAccessPointsOutput, error) {
2581	req, out := c.ListAccessPointsRequest(input)
2582	return out, req.Send()
2583}
2584
2585// ListAccessPointsWithContext is the same as ListAccessPoints with the addition of
2586// the ability to pass a context and additional request options.
2587//
2588// See ListAccessPoints for details on how to use this API operation.
2589//
2590// The context must be non-nil and will be used for request cancellation. If
2591// the context is nil a panic will occur. In the future the SDK may create
2592// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2593// for more information on using Contexts.
2594func (c *S3Control) ListAccessPointsWithContext(ctx aws.Context, input *ListAccessPointsInput, opts ...request.Option) (*ListAccessPointsOutput, error) {
2595	req, out := c.ListAccessPointsRequest(input)
2596	req.SetContext(ctx)
2597	req.ApplyOptions(opts...)
2598	return out, req.Send()
2599}
2600
2601// ListAccessPointsPages iterates over the pages of a ListAccessPoints operation,
2602// calling the "fn" function with the response data for each page. To stop
2603// iterating, return false from the fn function.
2604//
2605// See ListAccessPoints method for more information on how to use this operation.
2606//
2607// Note: This operation can generate multiple requests to a service.
2608//
2609//    // Example iterating over at most 3 pages of a ListAccessPoints operation.
2610//    pageNum := 0
2611//    err := client.ListAccessPointsPages(params,
2612//        func(page *s3control.ListAccessPointsOutput, lastPage bool) bool {
2613//            pageNum++
2614//            fmt.Println(page)
2615//            return pageNum <= 3
2616//        })
2617//
2618func (c *S3Control) ListAccessPointsPages(input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool) error {
2619	return c.ListAccessPointsPagesWithContext(aws.BackgroundContext(), input, fn)
2620}
2621
2622// ListAccessPointsPagesWithContext same as ListAccessPointsPages except
2623// it takes a Context and allows setting request options on the pages.
2624//
2625// The context must be non-nil and will be used for request cancellation. If
2626// the context is nil a panic will occur. In the future the SDK may create
2627// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2628// for more information on using Contexts.
2629func (c *S3Control) ListAccessPointsPagesWithContext(ctx aws.Context, input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool, opts ...request.Option) error {
2630	p := request.Pagination{
2631		NewRequest: func() (*request.Request, error) {
2632			var inCpy *ListAccessPointsInput
2633			if input != nil {
2634				tmp := *input
2635				inCpy = &tmp
2636			}
2637			req, _ := c.ListAccessPointsRequest(inCpy)
2638			req.SetContext(ctx)
2639			req.ApplyOptions(opts...)
2640			return req, nil
2641		},
2642	}
2643
2644	for p.Next() {
2645		if !fn(p.Page().(*ListAccessPointsOutput), !p.HasNextPage()) {
2646			break
2647		}
2648	}
2649
2650	return p.Err()
2651}
2652
2653const opListJobs = "ListJobs"
2654
2655// ListJobsRequest generates a "aws/request.Request" representing the
2656// client's request for the ListJobs operation. The "output" return
2657// value will be populated with the request's response once the request completes
2658// successfully.
2659//
2660// Use "Send" method on the returned Request to send the API call to the service.
2661// the "output" return value is not valid until after Send returns without error.
2662//
2663// See ListJobs for more information on using the ListJobs
2664// API call, and error handling.
2665//
2666// This method is useful when you want to inject custom logic or configuration
2667// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2668//
2669//
2670//    // Example sending a request using the ListJobsRequest method.
2671//    req, resp := client.ListJobsRequest(params)
2672//
2673//    err := req.Send()
2674//    if err == nil { // resp is now filled
2675//        fmt.Println(resp)
2676//    }
2677//
2678// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs
2679func (c *S3Control) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
2680	op := &request.Operation{
2681		Name:       opListJobs,
2682		HTTPMethod: "GET",
2683		HTTPPath:   "/v20180820/jobs",
2684		Paginator: &request.Paginator{
2685			InputTokens:     []string{"NextToken"},
2686			OutputTokens:    []string{"NextToken"},
2687			LimitToken:      "MaxResults",
2688			TruncationToken: "",
2689		},
2690	}
2691
2692	if input == nil {
2693		input = &ListJobsInput{}
2694	}
2695
2696	output = &ListJobsOutput{}
2697	req = c.newRequest(op, input, output)
2698	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2699	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2700	return
2701}
2702
2703// ListJobs API operation for AWS S3 Control.
2704//
2705// Lists current S3 Batch Operations jobs and jobs that have ended within the
2706// last 30 days for the AWS account making the request. For more information,
2707// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
2708// in the Amazon Simple Storage Service Developer Guide.
2709//
2710// Related actions include:
2711//
2712//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
2713//
2714//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
2715//
2716//    * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html)
2717//
2718//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
2719//
2720// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2721// with awserr.Error's Code and Message methods to get detailed information about
2722// the error.
2723//
2724// See the AWS API reference guide for AWS S3 Control's
2725// API operation ListJobs for usage and error information.
2726//
2727// Returned Error Codes:
2728//   * ErrCodeInvalidRequestException "InvalidRequestException"
2729//
2730//   * ErrCodeInternalServiceException "InternalServiceException"
2731//
2732//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
2733//
2734// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs
2735func (c *S3Control) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
2736	req, out := c.ListJobsRequest(input)
2737	return out, req.Send()
2738}
2739
2740// ListJobsWithContext is the same as ListJobs with the addition of
2741// the ability to pass a context and additional request options.
2742//
2743// See ListJobs for details on how to use this API operation.
2744//
2745// The context must be non-nil and will be used for request cancellation. If
2746// the context is nil a panic will occur. In the future the SDK may create
2747// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2748// for more information on using Contexts.
2749func (c *S3Control) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
2750	req, out := c.ListJobsRequest(input)
2751	req.SetContext(ctx)
2752	req.ApplyOptions(opts...)
2753	return out, req.Send()
2754}
2755
2756// ListJobsPages iterates over the pages of a ListJobs operation,
2757// calling the "fn" function with the response data for each page. To stop
2758// iterating, return false from the fn function.
2759//
2760// See ListJobs method for more information on how to use this operation.
2761//
2762// Note: This operation can generate multiple requests to a service.
2763//
2764//    // Example iterating over at most 3 pages of a ListJobs operation.
2765//    pageNum := 0
2766//    err := client.ListJobsPages(params,
2767//        func(page *s3control.ListJobsOutput, lastPage bool) bool {
2768//            pageNum++
2769//            fmt.Println(page)
2770//            return pageNum <= 3
2771//        })
2772//
2773func (c *S3Control) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
2774	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
2775}
2776
2777// ListJobsPagesWithContext same as ListJobsPages except
2778// it takes a Context and allows setting request options on the pages.
2779//
2780// The context must be non-nil and will be used for request cancellation. If
2781// the context is nil a panic will occur. In the future the SDK may create
2782// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2783// for more information on using Contexts.
2784func (c *S3Control) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
2785	p := request.Pagination{
2786		NewRequest: func() (*request.Request, error) {
2787			var inCpy *ListJobsInput
2788			if input != nil {
2789				tmp := *input
2790				inCpy = &tmp
2791			}
2792			req, _ := c.ListJobsRequest(inCpy)
2793			req.SetContext(ctx)
2794			req.ApplyOptions(opts...)
2795			return req, nil
2796		},
2797	}
2798
2799	for p.Next() {
2800		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
2801			break
2802		}
2803	}
2804
2805	return p.Err()
2806}
2807
2808const opListRegionalBuckets = "ListRegionalBuckets"
2809
2810// ListRegionalBucketsRequest generates a "aws/request.Request" representing the
2811// client's request for the ListRegionalBuckets operation. The "output" return
2812// value will be populated with the request's response once the request completes
2813// successfully.
2814//
2815// Use "Send" method on the returned Request to send the API call to the service.
2816// the "output" return value is not valid until after Send returns without error.
2817//
2818// See ListRegionalBuckets for more information on using the ListRegionalBuckets
2819// API call, and error handling.
2820//
2821// This method is useful when you want to inject custom logic or configuration
2822// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2823//
2824//
2825//    // Example sending a request using the ListRegionalBucketsRequest method.
2826//    req, resp := client.ListRegionalBucketsRequest(params)
2827//
2828//    err := req.Send()
2829//    if err == nil { // resp is now filled
2830//        fmt.Println(resp)
2831//    }
2832//
2833// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets
2834func (c *S3Control) ListRegionalBucketsRequest(input *ListRegionalBucketsInput) (req *request.Request, output *ListRegionalBucketsOutput) {
2835	op := &request.Operation{
2836		Name:       opListRegionalBuckets,
2837		HTTPMethod: "GET",
2838		HTTPPath:   "/v20180820/bucket",
2839		Paginator: &request.Paginator{
2840			InputTokens:     []string{"NextToken"},
2841			OutputTokens:    []string{"NextToken"},
2842			LimitToken:      "MaxResults",
2843			TruncationToken: "",
2844		},
2845	}
2846
2847	if input == nil {
2848		input = &ListRegionalBucketsInput{}
2849	}
2850
2851	output = &ListRegionalBucketsOutput{}
2852	req = c.newRequest(op, input, output)
2853	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2854	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2855	return
2856}
2857
2858// ListRegionalBuckets API operation for AWS S3 Control.
2859//
2860// Returns a list of all Outposts buckets in an Outpost that are owned by the
2861// authenticated sender of the request. For more information, see Using Amazon
2862// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html)
2863// in the Amazon Simple Storage Service Developer Guide.
2864//
2865// For an example of the request syntax for Amazon S3 on Outposts that uses
2866// the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your
2867// request, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListRegionalBuckets.html#API_control_ListRegionalBuckets_Examples)
2868// section.
2869//
2870// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2871// with awserr.Error's Code and Message methods to get detailed information about
2872// the error.
2873//
2874// See the AWS API reference guide for AWS S3 Control's
2875// API operation ListRegionalBuckets for usage and error information.
2876// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets
2877func (c *S3Control) ListRegionalBuckets(input *ListRegionalBucketsInput) (*ListRegionalBucketsOutput, error) {
2878	req, out := c.ListRegionalBucketsRequest(input)
2879	return out, req.Send()
2880}
2881
2882// ListRegionalBucketsWithContext is the same as ListRegionalBuckets with the addition of
2883// the ability to pass a context and additional request options.
2884//
2885// See ListRegionalBuckets for details on how to use this API operation.
2886//
2887// The context must be non-nil and will be used for request cancellation. If
2888// the context is nil a panic will occur. In the future the SDK may create
2889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2890// for more information on using Contexts.
2891func (c *S3Control) ListRegionalBucketsWithContext(ctx aws.Context, input *ListRegionalBucketsInput, opts ...request.Option) (*ListRegionalBucketsOutput, error) {
2892	req, out := c.ListRegionalBucketsRequest(input)
2893	req.SetContext(ctx)
2894	req.ApplyOptions(opts...)
2895	return out, req.Send()
2896}
2897
2898// ListRegionalBucketsPages iterates over the pages of a ListRegionalBuckets operation,
2899// calling the "fn" function with the response data for each page. To stop
2900// iterating, return false from the fn function.
2901//
2902// See ListRegionalBuckets method for more information on how to use this operation.
2903//
2904// Note: This operation can generate multiple requests to a service.
2905//
2906//    // Example iterating over at most 3 pages of a ListRegionalBuckets operation.
2907//    pageNum := 0
2908//    err := client.ListRegionalBucketsPages(params,
2909//        func(page *s3control.ListRegionalBucketsOutput, lastPage bool) bool {
2910//            pageNum++
2911//            fmt.Println(page)
2912//            return pageNum <= 3
2913//        })
2914//
2915func (c *S3Control) ListRegionalBucketsPages(input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool) error {
2916	return c.ListRegionalBucketsPagesWithContext(aws.BackgroundContext(), input, fn)
2917}
2918
2919// ListRegionalBucketsPagesWithContext same as ListRegionalBucketsPages except
2920// it takes a Context and allows setting request options on the pages.
2921//
2922// The context must be non-nil and will be used for request cancellation. If
2923// the context is nil a panic will occur. In the future the SDK may create
2924// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2925// for more information on using Contexts.
2926func (c *S3Control) ListRegionalBucketsPagesWithContext(ctx aws.Context, input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool, opts ...request.Option) error {
2927	p := request.Pagination{
2928		NewRequest: func() (*request.Request, error) {
2929			var inCpy *ListRegionalBucketsInput
2930			if input != nil {
2931				tmp := *input
2932				inCpy = &tmp
2933			}
2934			req, _ := c.ListRegionalBucketsRequest(inCpy)
2935			req.SetContext(ctx)
2936			req.ApplyOptions(opts...)
2937			return req, nil
2938		},
2939	}
2940
2941	for p.Next() {
2942		if !fn(p.Page().(*ListRegionalBucketsOutput), !p.HasNextPage()) {
2943			break
2944		}
2945	}
2946
2947	return p.Err()
2948}
2949
2950const opListStorageLensConfigurations = "ListStorageLensConfigurations"
2951
2952// ListStorageLensConfigurationsRequest generates a "aws/request.Request" representing the
2953// client's request for the ListStorageLensConfigurations operation. The "output" return
2954// value will be populated with the request's response once the request completes
2955// successfully.
2956//
2957// Use "Send" method on the returned Request to send the API call to the service.
2958// the "output" return value is not valid until after Send returns without error.
2959//
2960// See ListStorageLensConfigurations for more information on using the ListStorageLensConfigurations
2961// API call, and error handling.
2962//
2963// This method is useful when you want to inject custom logic or configuration
2964// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2965//
2966//
2967//    // Example sending a request using the ListStorageLensConfigurationsRequest method.
2968//    req, resp := client.ListStorageLensConfigurationsRequest(params)
2969//
2970//    err := req.Send()
2971//    if err == nil { // resp is now filled
2972//        fmt.Println(resp)
2973//    }
2974//
2975// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurations
2976func (c *S3Control) ListStorageLensConfigurationsRequest(input *ListStorageLensConfigurationsInput) (req *request.Request, output *ListStorageLensConfigurationsOutput) {
2977	op := &request.Operation{
2978		Name:       opListStorageLensConfigurations,
2979		HTTPMethod: "GET",
2980		HTTPPath:   "/v20180820/storagelens",
2981	}
2982
2983	if input == nil {
2984		input = &ListStorageLensConfigurationsInput{}
2985	}
2986
2987	output = &ListStorageLensConfigurationsOutput{}
2988	req = c.newRequest(op, input, output)
2989	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2990	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2991	return
2992}
2993
2994// ListStorageLensConfigurations API operation for AWS S3 Control.
2995//
2996// Gets a list of Amazon S3 Storage Lens configurations. For more information
2997// about S3 Storage Lens, see Working with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
2998// in the Amazon Simple Storage Service Developer Guide.
2999//
3000// To use this action, you must have permission to perform the s3:ListStorageLensConfigurations
3001// action. For more information, see Setting permissions to use Amazon S3 Storage
3002// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
3003// in the Amazon Simple Storage Service Developer Guide.
3004//
3005// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3006// with awserr.Error's Code and Message methods to get detailed information about
3007// the error.
3008//
3009// See the AWS API reference guide for AWS S3 Control's
3010// API operation ListStorageLensConfigurations for usage and error information.
3011// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurations
3012func (c *S3Control) ListStorageLensConfigurations(input *ListStorageLensConfigurationsInput) (*ListStorageLensConfigurationsOutput, error) {
3013	req, out := c.ListStorageLensConfigurationsRequest(input)
3014	return out, req.Send()
3015}
3016
3017// ListStorageLensConfigurationsWithContext is the same as ListStorageLensConfigurations with the addition of
3018// the ability to pass a context and additional request options.
3019//
3020// See ListStorageLensConfigurations for details on how to use this API operation.
3021//
3022// The context must be non-nil and will be used for request cancellation. If
3023// the context is nil a panic will occur. In the future the SDK may create
3024// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3025// for more information on using Contexts.
3026func (c *S3Control) ListStorageLensConfigurationsWithContext(ctx aws.Context, input *ListStorageLensConfigurationsInput, opts ...request.Option) (*ListStorageLensConfigurationsOutput, error) {
3027	req, out := c.ListStorageLensConfigurationsRequest(input)
3028	req.SetContext(ctx)
3029	req.ApplyOptions(opts...)
3030	return out, req.Send()
3031}
3032
3033const opPutAccessPointPolicy = "PutAccessPointPolicy"
3034
3035// PutAccessPointPolicyRequest generates a "aws/request.Request" representing the
3036// client's request for the PutAccessPointPolicy operation. The "output" return
3037// value will be populated with the request's response once the request completes
3038// successfully.
3039//
3040// Use "Send" method on the returned Request to send the API call to the service.
3041// the "output" return value is not valid until after Send returns without error.
3042//
3043// See PutAccessPointPolicy for more information on using the PutAccessPointPolicy
3044// API call, and error handling.
3045//
3046// This method is useful when you want to inject custom logic or configuration
3047// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3048//
3049//
3050//    // Example sending a request using the PutAccessPointPolicyRequest method.
3051//    req, resp := client.PutAccessPointPolicyRequest(params)
3052//
3053//    err := req.Send()
3054//    if err == nil { // resp is now filled
3055//        fmt.Println(resp)
3056//    }
3057//
3058// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy
3059func (c *S3Control) PutAccessPointPolicyRequest(input *PutAccessPointPolicyInput) (req *request.Request, output *PutAccessPointPolicyOutput) {
3060	op := &request.Operation{
3061		Name:       opPutAccessPointPolicy,
3062		HTTPMethod: "PUT",
3063		HTTPPath:   "/v20180820/accesspoint/{name}/policy",
3064	}
3065
3066	if input == nil {
3067		input = &PutAccessPointPolicyInput{}
3068	}
3069
3070	output = &PutAccessPointPolicyOutput{}
3071	req = c.newRequest(op, input, output)
3072	// update account id or check if provided input for account id member matches
3073	// the account id present in ARN
3074	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
3075	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3076	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3077	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3078	return
3079}
3080
3081// PutAccessPointPolicy API operation for AWS S3 Control.
3082//
3083// Associates an access policy with the specified access point. Each access
3084// point can have only one policy, so a request made to this API replaces any
3085// existing policy associated with the specified access point.
3086//
3087// All Amazon S3 on Outposts REST API requests for this action require an additional
3088// parameter of x-amz-outpost-id to be passed with the request and an S3 on
3089// Outposts endpoint hostname prefix instead of s3-control. For an example of
3090// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
3091// endpoint hostname prefix and the x-amz-outpost-id derived using the access
3092// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html#API_control_PutAccessPointPolicy_Examples)
3093// section.
3094//
3095// The following actions are related to PutAccessPointPolicy:
3096//
3097//    * GetAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html)
3098//
3099//    * DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html)
3100//
3101// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3102// with awserr.Error's Code and Message methods to get detailed information about
3103// the error.
3104//
3105// See the AWS API reference guide for AWS S3 Control's
3106// API operation PutAccessPointPolicy for usage and error information.
3107// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy
3108func (c *S3Control) PutAccessPointPolicy(input *PutAccessPointPolicyInput) (*PutAccessPointPolicyOutput, error) {
3109	req, out := c.PutAccessPointPolicyRequest(input)
3110	return out, req.Send()
3111}
3112
3113// PutAccessPointPolicyWithContext is the same as PutAccessPointPolicy with the addition of
3114// the ability to pass a context and additional request options.
3115//
3116// See PutAccessPointPolicy for details on how to use this API operation.
3117//
3118// The context must be non-nil and will be used for request cancellation. If
3119// the context is nil a panic will occur. In the future the SDK may create
3120// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3121// for more information on using Contexts.
3122func (c *S3Control) PutAccessPointPolicyWithContext(ctx aws.Context, input *PutAccessPointPolicyInput, opts ...request.Option) (*PutAccessPointPolicyOutput, error) {
3123	req, out := c.PutAccessPointPolicyRequest(input)
3124	req.SetContext(ctx)
3125	req.ApplyOptions(opts...)
3126	return out, req.Send()
3127}
3128
3129const opPutBucketLifecycleConfiguration = "PutBucketLifecycleConfiguration"
3130
3131// PutBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
3132// client's request for the PutBucketLifecycleConfiguration operation. The "output" return
3133// value will be populated with the request's response once the request completes
3134// successfully.
3135//
3136// Use "Send" method on the returned Request to send the API call to the service.
3137// the "output" return value is not valid until after Send returns without error.
3138//
3139// See PutBucketLifecycleConfiguration for more information on using the PutBucketLifecycleConfiguration
3140// API call, and error handling.
3141//
3142// This method is useful when you want to inject custom logic or configuration
3143// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3144//
3145//
3146//    // Example sending a request using the PutBucketLifecycleConfigurationRequest method.
3147//    req, resp := client.PutBucketLifecycleConfigurationRequest(params)
3148//
3149//    err := req.Send()
3150//    if err == nil { // resp is now filled
3151//        fmt.Println(resp)
3152//    }
3153//
3154// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration
3155func (c *S3Control) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleConfigurationInput) (req *request.Request, output *PutBucketLifecycleConfigurationOutput) {
3156	op := &request.Operation{
3157		Name:       opPutBucketLifecycleConfiguration,
3158		HTTPMethod: "PUT",
3159		HTTPPath:   "/v20180820/bucket/{name}/lifecycleconfiguration",
3160	}
3161
3162	if input == nil {
3163		input = &PutBucketLifecycleConfigurationInput{}
3164	}
3165
3166	output = &PutBucketLifecycleConfigurationOutput{}
3167	req = c.newRequest(op, input, output)
3168	// update account id or check if provided input for account id member matches
3169	// the account id present in ARN
3170	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
3171	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3172	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3173	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3174	req.Handlers.Build.PushBackNamed(request.NamedHandler{
3175		Name: "contentMd5Handler",
3176		Fn:   checksum.AddBodyContentMD5Handler,
3177	})
3178	return
3179}
3180
3181// PutBucketLifecycleConfiguration API operation for AWS S3 Control.
3182//
3183//
3184// This action puts a lifecycle configuration to an Amazon S3 on Outposts bucket.
3185// To put a lifecycle configuration to an S3 bucket, see PutBucketLifecycleConfiguration
3186// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)
3187// in the Amazon Simple Storage Service API.
3188//
3189// Creates a new lifecycle configuration for the Outposts bucket or replaces
3190// an existing lifecycle configuration. Outposts buckets only support lifecycle
3191// configurations that delete/expire objects after a certain period of time
3192// and abort incomplete multipart uploads. For more information, see Managing
3193// Lifecycle Permissions for Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html).
3194//
3195// All Amazon S3 on Outposts REST API requests for this action require an additional
3196// parameter of x-amz-outpost-id to be passed with the request and an S3 on
3197// Outposts endpoint hostname prefix instead of s3-control. For an example of
3198// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
3199// endpoint hostname prefix and the x-amz-outpost-id derived using the access
3200// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html#API_control_PutBucketLifecycleConfiguration_Examples)
3201// section.
3202//
3203// The following actions are related to PutBucketLifecycleConfiguration:
3204//
3205//    * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html)
3206//
3207//    * DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html)
3208//
3209// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3210// with awserr.Error's Code and Message methods to get detailed information about
3211// the error.
3212//
3213// See the AWS API reference guide for AWS S3 Control's
3214// API operation PutBucketLifecycleConfiguration for usage and error information.
3215// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration
3216func (c *S3Control) PutBucketLifecycleConfiguration(input *PutBucketLifecycleConfigurationInput) (*PutBucketLifecycleConfigurationOutput, error) {
3217	req, out := c.PutBucketLifecycleConfigurationRequest(input)
3218	return out, req.Send()
3219}
3220
3221// PutBucketLifecycleConfigurationWithContext is the same as PutBucketLifecycleConfiguration with the addition of
3222// the ability to pass a context and additional request options.
3223//
3224// See PutBucketLifecycleConfiguration for details on how to use this API operation.
3225//
3226// The context must be non-nil and will be used for request cancellation. If
3227// the context is nil a panic will occur. In the future the SDK may create
3228// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3229// for more information on using Contexts.
3230func (c *S3Control) PutBucketLifecycleConfigurationWithContext(ctx aws.Context, input *PutBucketLifecycleConfigurationInput, opts ...request.Option) (*PutBucketLifecycleConfigurationOutput, error) {
3231	req, out := c.PutBucketLifecycleConfigurationRequest(input)
3232	req.SetContext(ctx)
3233	req.ApplyOptions(opts...)
3234	return out, req.Send()
3235}
3236
3237const opPutBucketPolicy = "PutBucketPolicy"
3238
3239// PutBucketPolicyRequest generates a "aws/request.Request" representing the
3240// client's request for the PutBucketPolicy operation. The "output" return
3241// value will be populated with the request's response once the request completes
3242// successfully.
3243//
3244// Use "Send" method on the returned Request to send the API call to the service.
3245// the "output" return value is not valid until after Send returns without error.
3246//
3247// See PutBucketPolicy for more information on using the PutBucketPolicy
3248// API call, and error handling.
3249//
3250// This method is useful when you want to inject custom logic or configuration
3251// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3252//
3253//
3254//    // Example sending a request using the PutBucketPolicyRequest method.
3255//    req, resp := client.PutBucketPolicyRequest(params)
3256//
3257//    err := req.Send()
3258//    if err == nil { // resp is now filled
3259//        fmt.Println(resp)
3260//    }
3261//
3262// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy
3263func (c *S3Control) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.Request, output *PutBucketPolicyOutput) {
3264	op := &request.Operation{
3265		Name:       opPutBucketPolicy,
3266		HTTPMethod: "PUT",
3267		HTTPPath:   "/v20180820/bucket/{name}/policy",
3268	}
3269
3270	if input == nil {
3271		input = &PutBucketPolicyInput{}
3272	}
3273
3274	output = &PutBucketPolicyOutput{}
3275	req = c.newRequest(op, input, output)
3276	// update account id or check if provided input for account id member matches
3277	// the account id present in ARN
3278	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
3279	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3280	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3281	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3282	req.Handlers.Build.PushBackNamed(request.NamedHandler{
3283		Name: "contentMd5Handler",
3284		Fn:   checksum.AddBodyContentMD5Handler,
3285	})
3286	return
3287}
3288
3289// PutBucketPolicy API operation for AWS S3 Control.
3290//
3291//
3292// This action puts a bucket policy to an Amazon S3 on Outposts bucket. To put
3293// a policy on an S3 bucket, see PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html)
3294// in the Amazon Simple Storage Service API.
3295//
3296// Applies an Amazon S3 bucket policy to an Outposts bucket. For more information,
3297// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html)
3298// in the Amazon Simple Storage Service Developer Guide.
3299//
3300// If you are using an identity other than the root user of the AWS account
3301// that owns the Outposts bucket, the calling identity must have the PutBucketPolicy
3302// permissions on the specified Outposts bucket and belong to the bucket owner's
3303// account in order to use this operation.
3304//
3305// If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access
3306// Denied error. If you have the correct permissions, but you're not using an
3307// identity that belongs to the bucket owner's account, Amazon S3 returns a
3308// 405 Method Not Allowed error.
3309//
3310// As a security precaution, the root user of the AWS account that owns a bucket
3311// can always use this operation, even if the policy explicitly denies the root
3312// user the ability to perform this action.
3313//
3314// For more information about bucket policies, see Using Bucket Policies and
3315// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html).
3316//
3317// All Amazon S3 on Outposts REST API requests for this action require an additional
3318// parameter of x-amz-outpost-id to be passed with the request and an S3 on
3319// Outposts endpoint hostname prefix instead of s3-control. For an example of
3320// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
3321// endpoint hostname prefix and the x-amz-outpost-id derived using the access
3322// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html#API_control_PutBucketPolicy_Examples)
3323// section.
3324//
3325// The following actions are related to PutBucketPolicy:
3326//
3327//    * GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html)
3328//
3329//    * DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html)
3330//
3331// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3332// with awserr.Error's Code and Message methods to get detailed information about
3333// the error.
3334//
3335// See the AWS API reference guide for AWS S3 Control's
3336// API operation PutBucketPolicy for usage and error information.
3337// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy
3338func (c *S3Control) PutBucketPolicy(input *PutBucketPolicyInput) (*PutBucketPolicyOutput, error) {
3339	req, out := c.PutBucketPolicyRequest(input)
3340	return out, req.Send()
3341}
3342
3343// PutBucketPolicyWithContext is the same as PutBucketPolicy with the addition of
3344// the ability to pass a context and additional request options.
3345//
3346// See PutBucketPolicy for details on how to use this API operation.
3347//
3348// The context must be non-nil and will be used for request cancellation. If
3349// the context is nil a panic will occur. In the future the SDK may create
3350// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3351// for more information on using Contexts.
3352func (c *S3Control) PutBucketPolicyWithContext(ctx aws.Context, input *PutBucketPolicyInput, opts ...request.Option) (*PutBucketPolicyOutput, error) {
3353	req, out := c.PutBucketPolicyRequest(input)
3354	req.SetContext(ctx)
3355	req.ApplyOptions(opts...)
3356	return out, req.Send()
3357}
3358
3359const opPutBucketTagging = "PutBucketTagging"
3360
3361// PutBucketTaggingRequest generates a "aws/request.Request" representing the
3362// client's request for the PutBucketTagging operation. The "output" return
3363// value will be populated with the request's response once the request completes
3364// successfully.
3365//
3366// Use "Send" method on the returned Request to send the API call to the service.
3367// the "output" return value is not valid until after Send returns without error.
3368//
3369// See PutBucketTagging for more information on using the PutBucketTagging
3370// API call, and error handling.
3371//
3372// This method is useful when you want to inject custom logic or configuration
3373// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3374//
3375//
3376//    // Example sending a request using the PutBucketTaggingRequest method.
3377//    req, resp := client.PutBucketTaggingRequest(params)
3378//
3379//    err := req.Send()
3380//    if err == nil { // resp is now filled
3381//        fmt.Println(resp)
3382//    }
3383//
3384// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging
3385func (c *S3Control) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request.Request, output *PutBucketTaggingOutput) {
3386	op := &request.Operation{
3387		Name:       opPutBucketTagging,
3388		HTTPMethod: "PUT",
3389		HTTPPath:   "/v20180820/bucket/{name}/tagging",
3390	}
3391
3392	if input == nil {
3393		input = &PutBucketTaggingInput{}
3394	}
3395
3396	output = &PutBucketTaggingOutput{}
3397	req = c.newRequest(op, input, output)
3398	// update account id or check if provided input for account id member matches
3399	// the account id present in ARN
3400	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
3401	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3402	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3403	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3404	req.Handlers.Build.PushBackNamed(request.NamedHandler{
3405		Name: "contentMd5Handler",
3406		Fn:   checksum.AddBodyContentMD5Handler,
3407	})
3408	return
3409}
3410
3411// PutBucketTagging API operation for AWS S3 Control.
3412//
3413//
3414// This action puts tags on an Amazon S3 on Outposts bucket. To put tags on
3415// an S3 bucket, see PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html)
3416// in the Amazon Simple Storage Service API.
3417//
3418// Sets the tags for an Outposts bucket. For more information, see Using Amazon
3419// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html)
3420// in the Amazon Simple Storage Service Developer Guide.
3421//
3422// Use tags to organize your AWS bill to reflect your own cost structure. To
3423// do this, sign up to get your AWS account bill with tag key values included.
3424// Then, to see the cost of combined resources, organize your billing information
3425// according to resources with the same tag key values. For example, you can
3426// tag several resources with a specific application name, and then organize
3427// your billing information to see the total cost of that application across
3428// several services. For more information, see Cost Allocation and Tagging (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html).
3429//
3430// Within a bucket, if you add a tag that has the same key as an existing tag,
3431// the new value overwrites the old value. For more information, see Using Cost
3432// Allocation in Amazon S3 Bucket Tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html).
3433//
3434// To use this operation, you must have permissions to perform the s3-outposts:PutBucketTagging
3435// action. The Outposts bucket owner has this permission by default and can
3436// grant this permission to others. For more information about permissions,
3437// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
3438// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html).
3439//
3440// PutBucketTagging has the following special errors:
3441//
3442//    * Error code: InvalidTagError Description: The tag provided was not a
3443//    valid tag. This error can occur if the tag did not pass input validation.
3444//    For information about tag restrictions, see User-Defined Tag Restrictions
3445//    (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html)
3446//    and AWS-Generated Cost Allocation Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html).
3447//
3448//    * Error code: MalformedXMLError Description: The XML provided does not
3449//    match the schema.
3450//
3451//    * Error code: OperationAbortedError Description: A conflicting conditional
3452//    operation is currently in progress against this resource. Try again.
3453//
3454//    * Error code: InternalError Description: The service was unable to apply
3455//    the provided tag to the bucket.
3456//
3457// All Amazon S3 on Outposts REST API requests for this action require an additional
3458// parameter of x-amz-outpost-id to be passed with the request and an S3 on
3459// Outposts endpoint hostname prefix instead of s3-control. For an example of
3460// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
3461// endpoint hostname prefix and the x-amz-outpost-id derived using the access
3462// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html#API_control_PutBucketTagging_Examples)
3463// section.
3464//
3465// The following actions are related to PutBucketTagging:
3466//
3467//    * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html)
3468//
3469//    * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html)
3470//
3471// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3472// with awserr.Error's Code and Message methods to get detailed information about
3473// the error.
3474//
3475// See the AWS API reference guide for AWS S3 Control's
3476// API operation PutBucketTagging for usage and error information.
3477// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging
3478func (c *S3Control) PutBucketTagging(input *PutBucketTaggingInput) (*PutBucketTaggingOutput, error) {
3479	req, out := c.PutBucketTaggingRequest(input)
3480	return out, req.Send()
3481}
3482
3483// PutBucketTaggingWithContext is the same as PutBucketTagging with the addition of
3484// the ability to pass a context and additional request options.
3485//
3486// See PutBucketTagging for details on how to use this API operation.
3487//
3488// The context must be non-nil and will be used for request cancellation. If
3489// the context is nil a panic will occur. In the future the SDK may create
3490// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3491// for more information on using Contexts.
3492func (c *S3Control) PutBucketTaggingWithContext(ctx aws.Context, input *PutBucketTaggingInput, opts ...request.Option) (*PutBucketTaggingOutput, error) {
3493	req, out := c.PutBucketTaggingRequest(input)
3494	req.SetContext(ctx)
3495	req.ApplyOptions(opts...)
3496	return out, req.Send()
3497}
3498
3499const opPutJobTagging = "PutJobTagging"
3500
3501// PutJobTaggingRequest generates a "aws/request.Request" representing the
3502// client's request for the PutJobTagging operation. The "output" return
3503// value will be populated with the request's response once the request completes
3504// successfully.
3505//
3506// Use "Send" method on the returned Request to send the API call to the service.
3507// the "output" return value is not valid until after Send returns without error.
3508//
3509// See PutJobTagging for more information on using the PutJobTagging
3510// API call, and error handling.
3511//
3512// This method is useful when you want to inject custom logic or configuration
3513// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3514//
3515//
3516//    // Example sending a request using the PutJobTaggingRequest method.
3517//    req, resp := client.PutJobTaggingRequest(params)
3518//
3519//    err := req.Send()
3520//    if err == nil { // resp is now filled
3521//        fmt.Println(resp)
3522//    }
3523//
3524// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging
3525func (c *S3Control) PutJobTaggingRequest(input *PutJobTaggingInput) (req *request.Request, output *PutJobTaggingOutput) {
3526	op := &request.Operation{
3527		Name:       opPutJobTagging,
3528		HTTPMethod: "PUT",
3529		HTTPPath:   "/v20180820/jobs/{id}/tagging",
3530	}
3531
3532	if input == nil {
3533		input = &PutJobTaggingInput{}
3534	}
3535
3536	output = &PutJobTaggingOutput{}
3537	req = c.newRequest(op, input, output)
3538	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3539	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3540	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3541	return
3542}
3543
3544// PutJobTagging API operation for AWS S3 Control.
3545//
3546// Sets the supplied tag-set on an S3 Batch Operations job.
3547//
3548// A tag is a key-value pair. You can associate S3 Batch Operations tags with
3549// any job by sending a PUT request against the tagging subresource that is
3550// associated with the job. To modify the existing tag set, you can either replace
3551// the existing tag set entirely, or make changes within the existing tag set
3552// by retrieving the existing tag set using GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html),
3553// modify that tag set, and use this action to replace the tag set with the
3554// one you modified. For more information, see Controlling access and labeling
3555// jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags)
3556// in the Amazon Simple Storage Service Developer Guide.
3557//
3558//    * If you send this request with an empty tag set, Amazon S3 deletes the
3559//    existing tag set on the Batch Operations job. If you use this method,
3560//    you are charged for a Tier 1 Request (PUT). For more information, see
3561//    Amazon S3 pricing (http://aws.amazon.com/s3/pricing/).
3562//
3563//    * For deleting existing tags for your Batch Operations job, a DeleteJobTagging
3564//    (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
3565//    request is preferred because it achieves the same result without incurring
3566//    charges.
3567//
3568//    * A few things to consider about using tags: Amazon S3 limits the maximum
3569//    number of tags to 50 tags per job. You can associate up to 50 tags with
3570//    a job as long as they have unique tag keys. A tag key can be up to 128
3571//    Unicode characters in length, and tag values can be up to 256 Unicode
3572//    characters in length. The key and values are case sensitive. For tagging-related
3573//    restrictions related to characters and encodings, see User-Defined Tag
3574//    Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html)
3575//    in the AWS Billing and Cost Management User Guide.
3576//
3577// To use this operation, you must have permission to perform the s3:PutJobTagging
3578// action.
3579//
3580// Related actions include:
3581//
3582//    * CreatJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
3583//
3584//    * GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html)
3585//
3586//    * DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
3587//
3588// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3589// with awserr.Error's Code and Message methods to get detailed information about
3590// the error.
3591//
3592// See the AWS API reference guide for AWS S3 Control's
3593// API operation PutJobTagging for usage and error information.
3594//
3595// Returned Error Codes:
3596//   * ErrCodeInternalServiceException "InternalServiceException"
3597//
3598//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3599//
3600//   * ErrCodeNotFoundException "NotFoundException"
3601//
3602//   * ErrCodeTooManyTagsException "TooManyTagsException"
3603//   Amazon S3 throws this exception if you have too many tags in your tag set.
3604//
3605// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging
3606func (c *S3Control) PutJobTagging(input *PutJobTaggingInput) (*PutJobTaggingOutput, error) {
3607	req, out := c.PutJobTaggingRequest(input)
3608	return out, req.Send()
3609}
3610
3611// PutJobTaggingWithContext is the same as PutJobTagging with the addition of
3612// the ability to pass a context and additional request options.
3613//
3614// See PutJobTagging for details on how to use this API operation.
3615//
3616// The context must be non-nil and will be used for request cancellation. If
3617// the context is nil a panic will occur. In the future the SDK may create
3618// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3619// for more information on using Contexts.
3620func (c *S3Control) PutJobTaggingWithContext(ctx aws.Context, input *PutJobTaggingInput, opts ...request.Option) (*PutJobTaggingOutput, error) {
3621	req, out := c.PutJobTaggingRequest(input)
3622	req.SetContext(ctx)
3623	req.ApplyOptions(opts...)
3624	return out, req.Send()
3625}
3626
3627const opPutPublicAccessBlock = "PutPublicAccessBlock"
3628
3629// PutPublicAccessBlockRequest generates a "aws/request.Request" representing the
3630// client's request for the PutPublicAccessBlock operation. The "output" return
3631// value will be populated with the request's response once the request completes
3632// successfully.
3633//
3634// Use "Send" method on the returned Request to send the API call to the service.
3635// the "output" return value is not valid until after Send returns without error.
3636//
3637// See PutPublicAccessBlock for more information on using the PutPublicAccessBlock
3638// API call, and error handling.
3639//
3640// This method is useful when you want to inject custom logic or configuration
3641// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3642//
3643//
3644//    // Example sending a request using the PutPublicAccessBlockRequest method.
3645//    req, resp := client.PutPublicAccessBlockRequest(params)
3646//
3647//    err := req.Send()
3648//    if err == nil { // resp is now filled
3649//        fmt.Println(resp)
3650//    }
3651//
3652// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock
3653func (c *S3Control) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req *request.Request, output *PutPublicAccessBlockOutput) {
3654	op := &request.Operation{
3655		Name:       opPutPublicAccessBlock,
3656		HTTPMethod: "PUT",
3657		HTTPPath:   "/v20180820/configuration/publicAccessBlock",
3658	}
3659
3660	if input == nil {
3661		input = &PutPublicAccessBlockInput{}
3662	}
3663
3664	output = &PutPublicAccessBlockOutput{}
3665	req = c.newRequest(op, input, output)
3666	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3667	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3668	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3669	return
3670}
3671
3672// PutPublicAccessBlock API operation for AWS S3 Control.
3673//
3674// Creates or modifies the PublicAccessBlock configuration for an AWS account.
3675// For more information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).
3676//
3677// Related actions include:
3678//
3679//    * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html)
3680//
3681//    * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html)
3682//
3683// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3684// with awserr.Error's Code and Message methods to get detailed information about
3685// the error.
3686//
3687// See the AWS API reference guide for AWS S3 Control's
3688// API operation PutPublicAccessBlock for usage and error information.
3689// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock
3690func (c *S3Control) PutPublicAccessBlock(input *PutPublicAccessBlockInput) (*PutPublicAccessBlockOutput, error) {
3691	req, out := c.PutPublicAccessBlockRequest(input)
3692	return out, req.Send()
3693}
3694
3695// PutPublicAccessBlockWithContext is the same as PutPublicAccessBlock with the addition of
3696// the ability to pass a context and additional request options.
3697//
3698// See PutPublicAccessBlock for details on how to use this API operation.
3699//
3700// The context must be non-nil and will be used for request cancellation. If
3701// the context is nil a panic will occur. In the future the SDK may create
3702// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3703// for more information on using Contexts.
3704func (c *S3Control) PutPublicAccessBlockWithContext(ctx aws.Context, input *PutPublicAccessBlockInput, opts ...request.Option) (*PutPublicAccessBlockOutput, error) {
3705	req, out := c.PutPublicAccessBlockRequest(input)
3706	req.SetContext(ctx)
3707	req.ApplyOptions(opts...)
3708	return out, req.Send()
3709}
3710
3711const opPutStorageLensConfiguration = "PutStorageLensConfiguration"
3712
3713// PutStorageLensConfigurationRequest generates a "aws/request.Request" representing the
3714// client's request for the PutStorageLensConfiguration operation. The "output" return
3715// value will be populated with the request's response once the request completes
3716// successfully.
3717//
3718// Use "Send" method on the returned Request to send the API call to the service.
3719// the "output" return value is not valid until after Send returns without error.
3720//
3721// See PutStorageLensConfiguration for more information on using the PutStorageLensConfiguration
3722// API call, and error handling.
3723//
3724// This method is useful when you want to inject custom logic or configuration
3725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3726//
3727//
3728//    // Example sending a request using the PutStorageLensConfigurationRequest method.
3729//    req, resp := client.PutStorageLensConfigurationRequest(params)
3730//
3731//    err := req.Send()
3732//    if err == nil { // resp is now filled
3733//        fmt.Println(resp)
3734//    }
3735//
3736// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration
3737func (c *S3Control) PutStorageLensConfigurationRequest(input *PutStorageLensConfigurationInput) (req *request.Request, output *PutStorageLensConfigurationOutput) {
3738	op := &request.Operation{
3739		Name:       opPutStorageLensConfiguration,
3740		HTTPMethod: "PUT",
3741		HTTPPath:   "/v20180820/storagelens/{storagelensid}",
3742	}
3743
3744	if input == nil {
3745		input = &PutStorageLensConfigurationInput{}
3746	}
3747
3748	output = &PutStorageLensConfigurationOutput{}
3749	req = c.newRequest(op, input, output)
3750	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3751	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3752	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3753	return
3754}
3755
3756// PutStorageLensConfiguration API operation for AWS S3 Control.
3757//
3758// Puts an Amazon S3 Storage Lens configuration. For more information about
3759// S3 Storage Lens, see Working with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
3760// in the Amazon Simple Storage Service Developer Guide.
3761//
3762// To use this action, you must have permission to perform the s3:PutStorageLensConfiguration
3763// action. For more information, see Setting permissions to use Amazon S3 Storage
3764// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
3765// in the Amazon Simple Storage Service Developer Guide.
3766//
3767// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3768// with awserr.Error's Code and Message methods to get detailed information about
3769// the error.
3770//
3771// See the AWS API reference guide for AWS S3 Control's
3772// API operation PutStorageLensConfiguration for usage and error information.
3773// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration
3774func (c *S3Control) PutStorageLensConfiguration(input *PutStorageLensConfigurationInput) (*PutStorageLensConfigurationOutput, error) {
3775	req, out := c.PutStorageLensConfigurationRequest(input)
3776	return out, req.Send()
3777}
3778
3779// PutStorageLensConfigurationWithContext is the same as PutStorageLensConfiguration with the addition of
3780// the ability to pass a context and additional request options.
3781//
3782// See PutStorageLensConfiguration for details on how to use this API operation.
3783//
3784// The context must be non-nil and will be used for request cancellation. If
3785// the context is nil a panic will occur. In the future the SDK may create
3786// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3787// for more information on using Contexts.
3788func (c *S3Control) PutStorageLensConfigurationWithContext(ctx aws.Context, input *PutStorageLensConfigurationInput, opts ...request.Option) (*PutStorageLensConfigurationOutput, error) {
3789	req, out := c.PutStorageLensConfigurationRequest(input)
3790	req.SetContext(ctx)
3791	req.ApplyOptions(opts...)
3792	return out, req.Send()
3793}
3794
3795const opPutStorageLensConfigurationTagging = "PutStorageLensConfigurationTagging"
3796
3797// PutStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the
3798// client's request for the PutStorageLensConfigurationTagging operation. The "output" return
3799// value will be populated with the request's response once the request completes
3800// successfully.
3801//
3802// Use "Send" method on the returned Request to send the API call to the service.
3803// the "output" return value is not valid until after Send returns without error.
3804//
3805// See PutStorageLensConfigurationTagging for more information on using the PutStorageLensConfigurationTagging
3806// API call, and error handling.
3807//
3808// This method is useful when you want to inject custom logic or configuration
3809// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3810//
3811//
3812//    // Example sending a request using the PutStorageLensConfigurationTaggingRequest method.
3813//    req, resp := client.PutStorageLensConfigurationTaggingRequest(params)
3814//
3815//    err := req.Send()
3816//    if err == nil { // resp is now filled
3817//        fmt.Println(resp)
3818//    }
3819//
3820// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging
3821func (c *S3Control) PutStorageLensConfigurationTaggingRequest(input *PutStorageLensConfigurationTaggingInput) (req *request.Request, output *PutStorageLensConfigurationTaggingOutput) {
3822	op := &request.Operation{
3823		Name:       opPutStorageLensConfigurationTagging,
3824		HTTPMethod: "PUT",
3825		HTTPPath:   "/v20180820/storagelens/{storagelensid}/tagging",
3826	}
3827
3828	if input == nil {
3829		input = &PutStorageLensConfigurationTaggingInput{}
3830	}
3831
3832	output = &PutStorageLensConfigurationTaggingOutput{}
3833	req = c.newRequest(op, input, output)
3834	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3835	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3836	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3837	return
3838}
3839
3840// PutStorageLensConfigurationTagging API operation for AWS S3 Control.
3841//
3842// Put or replace tags on an existing Amazon S3 Storage Lens configuration.
3843// For more information about S3 Storage Lens, see Working with Amazon S3 Storage
3844// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
3845// in the Amazon Simple Storage Service Developer Guide.
3846//
3847// To use this action, you must have permission to perform the s3:PutStorageLensConfigurationTagging
3848// action. For more information, see Setting permissions to use Amazon S3 Storage
3849// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
3850// in the Amazon Simple Storage Service Developer Guide.
3851//
3852// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3853// with awserr.Error's Code and Message methods to get detailed information about
3854// the error.
3855//
3856// See the AWS API reference guide for AWS S3 Control's
3857// API operation PutStorageLensConfigurationTagging for usage and error information.
3858// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging
3859func (c *S3Control) PutStorageLensConfigurationTagging(input *PutStorageLensConfigurationTaggingInput) (*PutStorageLensConfigurationTaggingOutput, error) {
3860	req, out := c.PutStorageLensConfigurationTaggingRequest(input)
3861	return out, req.Send()
3862}
3863
3864// PutStorageLensConfigurationTaggingWithContext is the same as PutStorageLensConfigurationTagging with the addition of
3865// the ability to pass a context and additional request options.
3866//
3867// See PutStorageLensConfigurationTagging for details on how to use this API operation.
3868//
3869// The context must be non-nil and will be used for request cancellation. If
3870// the context is nil a panic will occur. In the future the SDK may create
3871// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3872// for more information on using Contexts.
3873func (c *S3Control) PutStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *PutStorageLensConfigurationTaggingInput, opts ...request.Option) (*PutStorageLensConfigurationTaggingOutput, error) {
3874	req, out := c.PutStorageLensConfigurationTaggingRequest(input)
3875	req.SetContext(ctx)
3876	req.ApplyOptions(opts...)
3877	return out, req.Send()
3878}
3879
3880const opUpdateJobPriority = "UpdateJobPriority"
3881
3882// UpdateJobPriorityRequest generates a "aws/request.Request" representing the
3883// client's request for the UpdateJobPriority operation. The "output" return
3884// value will be populated with the request's response once the request completes
3885// successfully.
3886//
3887// Use "Send" method on the returned Request to send the API call to the service.
3888// the "output" return value is not valid until after Send returns without error.
3889//
3890// See UpdateJobPriority for more information on using the UpdateJobPriority
3891// API call, and error handling.
3892//
3893// This method is useful when you want to inject custom logic or configuration
3894// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3895//
3896//
3897//    // Example sending a request using the UpdateJobPriorityRequest method.
3898//    req, resp := client.UpdateJobPriorityRequest(params)
3899//
3900//    err := req.Send()
3901//    if err == nil { // resp is now filled
3902//        fmt.Println(resp)
3903//    }
3904//
3905// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority
3906func (c *S3Control) UpdateJobPriorityRequest(input *UpdateJobPriorityInput) (req *request.Request, output *UpdateJobPriorityOutput) {
3907	op := &request.Operation{
3908		Name:       opUpdateJobPriority,
3909		HTTPMethod: "POST",
3910		HTTPPath:   "/v20180820/jobs/{id}/priority",
3911	}
3912
3913	if input == nil {
3914		input = &UpdateJobPriorityInput{}
3915	}
3916
3917	output = &UpdateJobPriorityOutput{}
3918	req = c.newRequest(op, input, output)
3919	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3920	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3921	return
3922}
3923
3924// UpdateJobPriority API operation for AWS S3 Control.
3925//
3926// Updates an existing S3 Batch Operations job's priority. For more information,
3927// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
3928// in the Amazon Simple Storage Service Developer Guide.
3929//
3930// Related actions include:
3931//
3932//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
3933//
3934//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
3935//
3936//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
3937//
3938//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
3939//
3940// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3941// with awserr.Error's Code and Message methods to get detailed information about
3942// the error.
3943//
3944// See the AWS API reference guide for AWS S3 Control's
3945// API operation UpdateJobPriority for usage and error information.
3946//
3947// Returned Error Codes:
3948//   * ErrCodeBadRequestException "BadRequestException"
3949//
3950//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3951//
3952//   * ErrCodeNotFoundException "NotFoundException"
3953//
3954//   * ErrCodeInternalServiceException "InternalServiceException"
3955//
3956// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority
3957func (c *S3Control) UpdateJobPriority(input *UpdateJobPriorityInput) (*UpdateJobPriorityOutput, error) {
3958	req, out := c.UpdateJobPriorityRequest(input)
3959	return out, req.Send()
3960}
3961
3962// UpdateJobPriorityWithContext is the same as UpdateJobPriority with the addition of
3963// the ability to pass a context and additional request options.
3964//
3965// See UpdateJobPriority for details on how to use this API operation.
3966//
3967// The context must be non-nil and will be used for request cancellation. If
3968// the context is nil a panic will occur. In the future the SDK may create
3969// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3970// for more information on using Contexts.
3971func (c *S3Control) UpdateJobPriorityWithContext(ctx aws.Context, input *UpdateJobPriorityInput, opts ...request.Option) (*UpdateJobPriorityOutput, error) {
3972	req, out := c.UpdateJobPriorityRequest(input)
3973	req.SetContext(ctx)
3974	req.ApplyOptions(opts...)
3975	return out, req.Send()
3976}
3977
3978const opUpdateJobStatus = "UpdateJobStatus"
3979
3980// UpdateJobStatusRequest generates a "aws/request.Request" representing the
3981// client's request for the UpdateJobStatus operation. The "output" return
3982// value will be populated with the request's response once the request completes
3983// successfully.
3984//
3985// Use "Send" method on the returned Request to send the API call to the service.
3986// the "output" return value is not valid until after Send returns without error.
3987//
3988// See UpdateJobStatus for more information on using the UpdateJobStatus
3989// API call, and error handling.
3990//
3991// This method is useful when you want to inject custom logic or configuration
3992// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3993//
3994//
3995//    // Example sending a request using the UpdateJobStatusRequest method.
3996//    req, resp := client.UpdateJobStatusRequest(params)
3997//
3998//    err := req.Send()
3999//    if err == nil { // resp is now filled
4000//        fmt.Println(resp)
4001//    }
4002//
4003// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus
4004func (c *S3Control) UpdateJobStatusRequest(input *UpdateJobStatusInput) (req *request.Request, output *UpdateJobStatusOutput) {
4005	op := &request.Operation{
4006		Name:       opUpdateJobStatus,
4007		HTTPMethod: "POST",
4008		HTTPPath:   "/v20180820/jobs/{id}/status",
4009	}
4010
4011	if input == nil {
4012		input = &UpdateJobStatusInput{}
4013	}
4014
4015	output = &UpdateJobStatusOutput{}
4016	req = c.newRequest(op, input, output)
4017	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4018	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4019	return
4020}
4021
4022// UpdateJobStatus API operation for AWS S3 Control.
4023//
4024// Updates the status for the specified job. Use this operation to confirm that
4025// you want to run a job or to cancel an existing job. For more information,
4026// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
4027// in the Amazon Simple Storage Service Developer Guide.
4028//
4029// Related actions include:
4030//
4031//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
4032//
4033//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
4034//
4035//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
4036//
4037//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
4038//
4039// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4040// with awserr.Error's Code and Message methods to get detailed information about
4041// the error.
4042//
4043// See the AWS API reference guide for AWS S3 Control's
4044// API operation UpdateJobStatus for usage and error information.
4045//
4046// Returned Error Codes:
4047//   * ErrCodeBadRequestException "BadRequestException"
4048//
4049//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4050//
4051//   * ErrCodeNotFoundException "NotFoundException"
4052//
4053//   * ErrCodeJobStatusException "JobStatusException"
4054//
4055//   * ErrCodeInternalServiceException "InternalServiceException"
4056//
4057// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus
4058func (c *S3Control) UpdateJobStatus(input *UpdateJobStatusInput) (*UpdateJobStatusOutput, error) {
4059	req, out := c.UpdateJobStatusRequest(input)
4060	return out, req.Send()
4061}
4062
4063// UpdateJobStatusWithContext is the same as UpdateJobStatus with the addition of
4064// the ability to pass a context and additional request options.
4065//
4066// See UpdateJobStatus for details on how to use this API operation.
4067//
4068// The context must be non-nil and will be used for request cancellation. If
4069// the context is nil a panic will occur. In the future the SDK may create
4070// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4071// for more information on using Contexts.
4072func (c *S3Control) UpdateJobStatusWithContext(ctx aws.Context, input *UpdateJobStatusInput, opts ...request.Option) (*UpdateJobStatusOutput, error) {
4073	req, out := c.UpdateJobStatusRequest(input)
4074	req.SetContext(ctx)
4075	req.ApplyOptions(opts...)
4076	return out, req.Send()
4077}
4078
4079// The container for abort incomplete multipart upload
4080type AbortIncompleteMultipartUpload struct {
4081	_ struct{} `type:"structure"`
4082
4083	// Specifies the number of days after which Amazon S3 aborts an incomplete multipart
4084	// upload to the Outposts bucket.
4085	DaysAfterInitiation *int64 `type:"integer"`
4086}
4087
4088// String returns the string representation
4089func (s AbortIncompleteMultipartUpload) String() string {
4090	return awsutil.Prettify(s)
4091}
4092
4093// GoString returns the string representation
4094func (s AbortIncompleteMultipartUpload) GoString() string {
4095	return s.String()
4096}
4097
4098// SetDaysAfterInitiation sets the DaysAfterInitiation field's value.
4099func (s *AbortIncompleteMultipartUpload) SetDaysAfterInitiation(v int64) *AbortIncompleteMultipartUpload {
4100	s.DaysAfterInitiation = &v
4101	return s
4102}
4103
4104// An access point used to access a bucket.
4105type AccessPoint struct {
4106	_ struct{} `type:"structure"`
4107
4108	// The ARN for the access point.
4109	AccessPointArn *string `min:"4" type:"string"`
4110
4111	// The name of the bucket associated with this access point.
4112	//
4113	// Bucket is a required field
4114	Bucket *string `min:"3" type:"string" required:"true"`
4115
4116	// The name of this access point.
4117	//
4118	// Name is a required field
4119	Name *string `min:"3" type:"string" required:"true"`
4120
4121	// Indicates whether this access point allows access from the public internet.
4122	// If VpcConfiguration is specified for this access point, then NetworkOrigin
4123	// is VPC, and the access point doesn't allow access from the public internet.
4124	// Otherwise, NetworkOrigin is Internet, and the access point allows access
4125	// from the public internet, subject to the access point and bucket access policies.
4126	//
4127	// NetworkOrigin is a required field
4128	NetworkOrigin *string `type:"string" required:"true" enum:"NetworkOrigin"`
4129
4130	// The virtual private cloud (VPC) configuration for this access point, if one
4131	// exists.
4132	VpcConfiguration *VpcConfiguration `type:"structure"`
4133}
4134
4135// String returns the string representation
4136func (s AccessPoint) String() string {
4137	return awsutil.Prettify(s)
4138}
4139
4140// GoString returns the string representation
4141func (s AccessPoint) GoString() string {
4142	return s.String()
4143}
4144
4145// SetAccessPointArn sets the AccessPointArn field's value.
4146func (s *AccessPoint) SetAccessPointArn(v string) *AccessPoint {
4147	s.AccessPointArn = &v
4148	return s
4149}
4150
4151// SetBucket sets the Bucket field's value.
4152func (s *AccessPoint) SetBucket(v string) *AccessPoint {
4153	s.Bucket = &v
4154	return s
4155}
4156
4157// SetName sets the Name field's value.
4158func (s *AccessPoint) SetName(v string) *AccessPoint {
4159	s.Name = &v
4160	return s
4161}
4162
4163// SetNetworkOrigin sets the NetworkOrigin field's value.
4164func (s *AccessPoint) SetNetworkOrigin(v string) *AccessPoint {
4165	s.NetworkOrigin = &v
4166	return s
4167}
4168
4169// SetVpcConfiguration sets the VpcConfiguration field's value.
4170func (s *AccessPoint) SetVpcConfiguration(v *VpcConfiguration) *AccessPoint {
4171	s.VpcConfiguration = v
4172	return s
4173}
4174
4175// A container for the account level Amazon S3 Storage Lens configuration.
4176type AccountLevel struct {
4177	_ struct{} `type:"structure"`
4178
4179	// A container for the S3 Storage Lens activity metrics.
4180	ActivityMetrics *ActivityMetrics `type:"structure"`
4181
4182	// A container for the S3 Storage Lens bucket-level configuration.
4183	//
4184	// BucketLevel is a required field
4185	BucketLevel *BucketLevel `type:"structure" required:"true"`
4186}
4187
4188// String returns the string representation
4189func (s AccountLevel) String() string {
4190	return awsutil.Prettify(s)
4191}
4192
4193// GoString returns the string representation
4194func (s AccountLevel) GoString() string {
4195	return s.String()
4196}
4197
4198// Validate inspects the fields of the type to determine if they are valid.
4199func (s *AccountLevel) Validate() error {
4200	invalidParams := request.ErrInvalidParams{Context: "AccountLevel"}
4201	if s.BucketLevel == nil {
4202		invalidParams.Add(request.NewErrParamRequired("BucketLevel"))
4203	}
4204	if s.BucketLevel != nil {
4205		if err := s.BucketLevel.Validate(); err != nil {
4206			invalidParams.AddNested("BucketLevel", err.(request.ErrInvalidParams))
4207		}
4208	}
4209
4210	if invalidParams.Len() > 0 {
4211		return invalidParams
4212	}
4213	return nil
4214}
4215
4216// SetActivityMetrics sets the ActivityMetrics field's value.
4217func (s *AccountLevel) SetActivityMetrics(v *ActivityMetrics) *AccountLevel {
4218	s.ActivityMetrics = v
4219	return s
4220}
4221
4222// SetBucketLevel sets the BucketLevel field's value.
4223func (s *AccountLevel) SetBucketLevel(v *BucketLevel) *AccountLevel {
4224	s.BucketLevel = v
4225	return s
4226}
4227
4228// A container for the activity metrics.
4229type ActivityMetrics struct {
4230	_ struct{} `type:"structure"`
4231
4232	// A container for whether the activity metrics are enabled.
4233	IsEnabled *bool `type:"boolean"`
4234}
4235
4236// String returns the string representation
4237func (s ActivityMetrics) String() string {
4238	return awsutil.Prettify(s)
4239}
4240
4241// GoString returns the string representation
4242func (s ActivityMetrics) GoString() string {
4243	return s.String()
4244}
4245
4246// SetIsEnabled sets the IsEnabled field's value.
4247func (s *ActivityMetrics) SetIsEnabled(v bool) *ActivityMetrics {
4248	s.IsEnabled = &v
4249	return s
4250}
4251
4252// A container for the bucket-level configuration.
4253type BucketLevel struct {
4254	_ struct{} `type:"structure"`
4255
4256	// A container for the bucket-level activity metrics for Amazon S3 Storage Lens
4257	ActivityMetrics *ActivityMetrics `type:"structure"`
4258
4259	// A container for the bucket-level prefix-level metrics for S3 Storage Lens
4260	PrefixLevel *PrefixLevel `type:"structure"`
4261}
4262
4263// String returns the string representation
4264func (s BucketLevel) String() string {
4265	return awsutil.Prettify(s)
4266}
4267
4268// GoString returns the string representation
4269func (s BucketLevel) GoString() string {
4270	return s.String()
4271}
4272
4273// Validate inspects the fields of the type to determine if they are valid.
4274func (s *BucketLevel) Validate() error {
4275	invalidParams := request.ErrInvalidParams{Context: "BucketLevel"}
4276	if s.PrefixLevel != nil {
4277		if err := s.PrefixLevel.Validate(); err != nil {
4278			invalidParams.AddNested("PrefixLevel", err.(request.ErrInvalidParams))
4279		}
4280	}
4281
4282	if invalidParams.Len() > 0 {
4283		return invalidParams
4284	}
4285	return nil
4286}
4287
4288// SetActivityMetrics sets the ActivityMetrics field's value.
4289func (s *BucketLevel) SetActivityMetrics(v *ActivityMetrics) *BucketLevel {
4290	s.ActivityMetrics = v
4291	return s
4292}
4293
4294// SetPrefixLevel sets the PrefixLevel field's value.
4295func (s *BucketLevel) SetPrefixLevel(v *PrefixLevel) *BucketLevel {
4296	s.PrefixLevel = v
4297	return s
4298}
4299
4300type CreateAccessPointInput struct {
4301	_ struct{} `locationName:"CreateAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
4302
4303	// The AWS account ID for the owner of the bucket for which you want to create
4304	// an access point.
4305	//
4306	// AccountId is a required field
4307	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
4308
4309	// The name of the bucket that you want to associate this access point with.
4310	//
4311	// For using this parameter with Amazon S3 on Outposts with the REST API, you
4312	// must specify the name and the x-amz-outpost-id as well.
4313	//
4314	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
4315	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
4316	// For example, to access the bucket reports through outpost my-outpost owned
4317	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
4318	// The value must be URL encoded.
4319	//
4320	// Bucket is a required field
4321	Bucket *string `min:"3" type:"string" required:"true"`
4322
4323	// The name you want to assign to this access point.
4324	//
4325	// Name is a required field
4326	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
4327
4328	// The PublicAccessBlock configuration that you want to apply to this Amazon
4329	// S3 account. You can enable the configuration options in any combination.
4330	// For more information about when Amazon S3 considers a bucket or object public,
4331	// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
4332	// in the Amazon Simple Storage Service Developer Guide.
4333	//
4334	// This is not supported for Amazon S3 on Outposts.
4335	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
4336
4337	// If you include this field, Amazon S3 restricts access to this access point
4338	// to requests from the specified virtual private cloud (VPC).
4339	//
4340	// This is required for creating an access point for Amazon S3 on Outposts buckets.
4341	VpcConfiguration *VpcConfiguration `type:"structure"`
4342}
4343
4344// String returns the string representation
4345func (s CreateAccessPointInput) String() string {
4346	return awsutil.Prettify(s)
4347}
4348
4349// GoString returns the string representation
4350func (s CreateAccessPointInput) GoString() string {
4351	return s.String()
4352}
4353
4354// Validate inspects the fields of the type to determine if they are valid.
4355func (s *CreateAccessPointInput) Validate() error {
4356	invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointInput"}
4357	if s.AccountId == nil {
4358		invalidParams.Add(request.NewErrParamRequired("AccountId"))
4359	}
4360	if s.AccountId != nil && len(*s.AccountId) < 1 {
4361		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
4362	}
4363	if s.Bucket == nil {
4364		invalidParams.Add(request.NewErrParamRequired("Bucket"))
4365	}
4366	if s.Bucket != nil && len(*s.Bucket) < 3 {
4367		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
4368	}
4369	if s.Name == nil {
4370		invalidParams.Add(request.NewErrParamRequired("Name"))
4371	}
4372	if s.Name != nil && len(*s.Name) < 3 {
4373		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
4374	}
4375	if s.VpcConfiguration != nil {
4376		if err := s.VpcConfiguration.Validate(); err != nil {
4377			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
4378		}
4379	}
4380
4381	if invalidParams.Len() > 0 {
4382		return invalidParams
4383	}
4384	return nil
4385}
4386
4387// SetAccountId sets the AccountId field's value.
4388func (s *CreateAccessPointInput) SetAccountId(v string) *CreateAccessPointInput {
4389	s.AccountId = &v
4390	return s
4391}
4392
4393// SetBucket sets the Bucket field's value.
4394func (s *CreateAccessPointInput) SetBucket(v string) *CreateAccessPointInput {
4395	s.Bucket = &v
4396	return s
4397}
4398
4399// SetName sets the Name field's value.
4400func (s *CreateAccessPointInput) SetName(v string) *CreateAccessPointInput {
4401	s.Name = &v
4402	return s
4403}
4404
4405// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
4406func (s *CreateAccessPointInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *CreateAccessPointInput {
4407	s.PublicAccessBlockConfiguration = v
4408	return s
4409}
4410
4411// SetVpcConfiguration sets the VpcConfiguration field's value.
4412func (s *CreateAccessPointInput) SetVpcConfiguration(v *VpcConfiguration) *CreateAccessPointInput {
4413	s.VpcConfiguration = v
4414	return s
4415}
4416
4417func (s *CreateAccessPointInput) hostLabels() map[string]string {
4418	return map[string]string{
4419		"AccountId": aws.StringValue(s.AccountId),
4420	}
4421}
4422
4423func (s *CreateAccessPointInput) getEndpointARN() (arn.Resource, error) {
4424	if s.Bucket == nil {
4425		return nil, fmt.Errorf("member Bucket is nil")
4426	}
4427	return parseEndpointARN(*s.Bucket)
4428}
4429
4430func (s *CreateAccessPointInput) hasEndpointARN() bool {
4431	if s.Bucket == nil {
4432		return false
4433	}
4434	return arn.IsARN(*s.Bucket)
4435}
4436
4437// updateArnableField updates the value of the input field that
4438// takes an ARN as an input. This method is useful to backfill
4439// the parsed resource name from ARN into the input member.
4440// It returns a pointer to a modified copy of input and an error.
4441// Note that original input is not modified.
4442func (s CreateAccessPointInput) updateArnableField(v string) (interface{}, error) {
4443	if s.Bucket == nil {
4444		return nil, fmt.Errorf("member Bucket is nil")
4445	}
4446	s.Bucket = aws.String(v)
4447	return &s, nil
4448}
4449
4450// updateAccountID returns a pointer to a modified copy of input,
4451// if account id is not provided, we update the account id in modified input
4452// if account id is provided, but doesn't match with the one in ARN, we throw an error
4453// if account id is not updated, we return nil. Note that original input is not modified.
4454func (s CreateAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
4455	if s.AccountId == nil {
4456		s.AccountId = aws.String(accountId)
4457		return &s, nil
4458	} else if *s.AccountId != accountId {
4459		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
4460	}
4461	return nil, nil
4462}
4463
4464type CreateAccessPointOutput struct {
4465	_ struct{} `type:"structure"`
4466
4467	// The ARN of the access point.
4468	//
4469	// This is only supported by Amazon S3 on Outposts.
4470	AccessPointArn *string `min:"4" type:"string"`
4471}
4472
4473// String returns the string representation
4474func (s CreateAccessPointOutput) String() string {
4475	return awsutil.Prettify(s)
4476}
4477
4478// GoString returns the string representation
4479func (s CreateAccessPointOutput) GoString() string {
4480	return s.String()
4481}
4482
4483// SetAccessPointArn sets the AccessPointArn field's value.
4484func (s *CreateAccessPointOutput) SetAccessPointArn(v string) *CreateAccessPointOutput {
4485	s.AccessPointArn = &v
4486	return s
4487}
4488
4489// The container for the bucket configuration.
4490//
4491// This is not supported by Amazon S3 on Outposts buckets.
4492type CreateBucketConfiguration struct {
4493	_ struct{} `type:"structure"`
4494
4495	// Specifies the Region where the bucket will be created. If you are creating
4496	// a bucket on the US East (N. Virginia) Region (us-east-1), you do not need
4497	// to specify the location.
4498	//
4499	// This is not supported by Amazon S3 on Outposts buckets.
4500	LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"`
4501}
4502
4503// String returns the string representation
4504func (s CreateBucketConfiguration) String() string {
4505	return awsutil.Prettify(s)
4506}
4507
4508// GoString returns the string representation
4509func (s CreateBucketConfiguration) GoString() string {
4510	return s.String()
4511}
4512
4513// SetLocationConstraint sets the LocationConstraint field's value.
4514func (s *CreateBucketConfiguration) SetLocationConstraint(v string) *CreateBucketConfiguration {
4515	s.LocationConstraint = &v
4516	return s
4517}
4518
4519type CreateBucketInput struct {
4520	_ struct{} `locationName:"CreateBucketRequest" type:"structure" payload:"CreateBucketConfiguration"`
4521
4522	// The canned ACL to apply to the bucket.
4523	//
4524	// This is not supported by Amazon S3 on Outposts buckets.
4525	ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"`
4526
4527	// The name of the bucket.
4528	//
4529	// Bucket is a required field
4530	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
4531
4532	// The configuration information for the bucket.
4533	//
4534	// This is not supported by Amazon S3 on Outposts buckets.
4535	CreateBucketConfiguration *CreateBucketConfiguration `locationName:"CreateBucketConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
4536
4537	// Allows grantee the read, write, read ACP, and write ACP permissions on the
4538	// bucket.
4539	//
4540	// This is not supported by Amazon S3 on Outposts buckets.
4541	GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"`
4542
4543	// Allows grantee to list the objects in the bucket.
4544	//
4545	// This is not supported by Amazon S3 on Outposts buckets.
4546	GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"`
4547
4548	// Allows grantee to read the bucket ACL.
4549	//
4550	// This is not supported by Amazon S3 on Outposts buckets.
4551	GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"`
4552
4553	// Allows grantee to create, overwrite, and delete any object in the bucket.
4554	//
4555	// This is not supported by Amazon S3 on Outposts buckets.
4556	GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"`
4557
4558	// Allows grantee to write the ACL for the applicable bucket.
4559	//
4560	// This is not supported by Amazon S3 on Outposts buckets.
4561	GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"`
4562
4563	// Specifies whether you want S3 Object Lock to be enabled for the new bucket.
4564	//
4565	// This is not supported by Amazon S3 on Outposts buckets.
4566	ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"`
4567
4568	// The ID of the Outposts where the bucket is being created.
4569	//
4570	// This is required by Amazon S3 on Outposts buckets.
4571	OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"`
4572}
4573
4574// String returns the string representation
4575func (s CreateBucketInput) String() string {
4576	return awsutil.Prettify(s)
4577}
4578
4579// GoString returns the string representation
4580func (s CreateBucketInput) GoString() string {
4581	return s.String()
4582}
4583
4584// Validate inspects the fields of the type to determine if they are valid.
4585func (s *CreateBucketInput) Validate() error {
4586	invalidParams := request.ErrInvalidParams{Context: "CreateBucketInput"}
4587	if s.Bucket == nil {
4588		invalidParams.Add(request.NewErrParamRequired("Bucket"))
4589	}
4590	if s.Bucket != nil && len(*s.Bucket) < 3 {
4591		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
4592	}
4593	if s.OutpostId != nil && len(*s.OutpostId) < 1 {
4594		invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1))
4595	}
4596
4597	if invalidParams.Len() > 0 {
4598		return invalidParams
4599	}
4600	return nil
4601}
4602
4603// SetACL sets the ACL field's value.
4604func (s *CreateBucketInput) SetACL(v string) *CreateBucketInput {
4605	s.ACL = &v
4606	return s
4607}
4608
4609// SetBucket sets the Bucket field's value.
4610func (s *CreateBucketInput) SetBucket(v string) *CreateBucketInput {
4611	s.Bucket = &v
4612	return s
4613}
4614
4615// SetCreateBucketConfiguration sets the CreateBucketConfiguration field's value.
4616func (s *CreateBucketInput) SetCreateBucketConfiguration(v *CreateBucketConfiguration) *CreateBucketInput {
4617	s.CreateBucketConfiguration = v
4618	return s
4619}
4620
4621// SetGrantFullControl sets the GrantFullControl field's value.
4622func (s *CreateBucketInput) SetGrantFullControl(v string) *CreateBucketInput {
4623	s.GrantFullControl = &v
4624	return s
4625}
4626
4627// SetGrantRead sets the GrantRead field's value.
4628func (s *CreateBucketInput) SetGrantRead(v string) *CreateBucketInput {
4629	s.GrantRead = &v
4630	return s
4631}
4632
4633// SetGrantReadACP sets the GrantReadACP field's value.
4634func (s *CreateBucketInput) SetGrantReadACP(v string) *CreateBucketInput {
4635	s.GrantReadACP = &v
4636	return s
4637}
4638
4639// SetGrantWrite sets the GrantWrite field's value.
4640func (s *CreateBucketInput) SetGrantWrite(v string) *CreateBucketInput {
4641	s.GrantWrite = &v
4642	return s
4643}
4644
4645// SetGrantWriteACP sets the GrantWriteACP field's value.
4646func (s *CreateBucketInput) SetGrantWriteACP(v string) *CreateBucketInput {
4647	s.GrantWriteACP = &v
4648	return s
4649}
4650
4651// SetObjectLockEnabledForBucket sets the ObjectLockEnabledForBucket field's value.
4652func (s *CreateBucketInput) SetObjectLockEnabledForBucket(v bool) *CreateBucketInput {
4653	s.ObjectLockEnabledForBucket = &v
4654	return s
4655}
4656
4657// SetOutpostId sets the OutpostId field's value.
4658func (s *CreateBucketInput) SetOutpostId(v string) *CreateBucketInput {
4659	s.OutpostId = &v
4660	return s
4661}
4662
4663func (s *CreateBucketInput) getOutpostID() (string, error) {
4664	if s.OutpostId == nil {
4665		return "", fmt.Errorf("member OutpostId is nil")
4666	}
4667	return *s.OutpostId, nil
4668}
4669
4670func (s *CreateBucketInput) hasOutpostID() bool {
4671	if s.OutpostId == nil {
4672		return false
4673	}
4674	return true
4675}
4676
4677type CreateBucketOutput struct {
4678	_ struct{} `type:"structure"`
4679
4680	// The Amazon Resource Name (ARN) of the bucket.
4681	//
4682	// For using this parameter with Amazon S3 on Outposts with the REST API, you
4683	// must specify the name and the x-amz-outpost-id as well.
4684	//
4685	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
4686	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
4687	// For example, to access the bucket reports through outpost my-outpost owned
4688	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
4689	// The value must be URL encoded.
4690	BucketArn *string `min:"4" type:"string"`
4691
4692	// The location of the bucket.
4693	Location *string `location:"header" locationName:"Location" type:"string"`
4694}
4695
4696// String returns the string representation
4697func (s CreateBucketOutput) String() string {
4698	return awsutil.Prettify(s)
4699}
4700
4701// GoString returns the string representation
4702func (s CreateBucketOutput) GoString() string {
4703	return s.String()
4704}
4705
4706// SetBucketArn sets the BucketArn field's value.
4707func (s *CreateBucketOutput) SetBucketArn(v string) *CreateBucketOutput {
4708	s.BucketArn = &v
4709	return s
4710}
4711
4712// SetLocation sets the Location field's value.
4713func (s *CreateBucketOutput) SetLocation(v string) *CreateBucketOutput {
4714	s.Location = &v
4715	return s
4716}
4717
4718type CreateJobInput struct {
4719	_ struct{} `locationName:"CreateJobRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
4720
4721	// The AWS account ID that creates the job.
4722	//
4723	// AccountId is a required field
4724	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
4725
4726	// An idempotency token to ensure that you don't accidentally submit the same
4727	// request twice. You can use any string up to the maximum length.
4728	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
4729
4730	// Indicates whether confirmation is required before Amazon S3 runs the job.
4731	// Confirmation is only required for jobs created through the Amazon S3 console.
4732	ConfirmationRequired *bool `type:"boolean"`
4733
4734	// A description for this job. You can use any string within the permitted length.
4735	// Descriptions don't need to be unique and can be used for multiple jobs.
4736	Description *string `min:"1" type:"string"`
4737
4738	// Configuration parameters for the manifest.
4739	//
4740	// Manifest is a required field
4741	Manifest *JobManifest `type:"structure" required:"true"`
4742
4743	// The operation that you want this job to perform on every object listed in
4744	// the manifest. For more information about the available operations, see Operations
4745	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html)
4746	// in the Amazon Simple Storage Service Developer Guide.
4747	//
4748	// Operation is a required field
4749	Operation *JobOperation `type:"structure" required:"true"`
4750
4751	// The numerical priority for this job. Higher numbers indicate higher priority.
4752	//
4753	// Priority is a required field
4754	Priority *int64 `type:"integer" required:"true"`
4755
4756	// Configuration parameters for the optional job-completion report.
4757	//
4758	// Report is a required field
4759	Report *JobReport `type:"structure" required:"true"`
4760
4761	// The Amazon Resource Name (ARN) for the AWS Identity and Access Management
4762	// (IAM) role that Batch Operations will use to run this job's operation on
4763	// every object in the manifest.
4764	//
4765	// RoleArn is a required field
4766	RoleArn *string `min:"1" type:"string" required:"true"`
4767
4768	// A set of tags to associate with the S3 Batch Operations job. This is an optional
4769	// parameter.
4770	Tags []*S3Tag `type:"list"`
4771}
4772
4773// String returns the string representation
4774func (s CreateJobInput) String() string {
4775	return awsutil.Prettify(s)
4776}
4777
4778// GoString returns the string representation
4779func (s CreateJobInput) GoString() string {
4780	return s.String()
4781}
4782
4783// Validate inspects the fields of the type to determine if they are valid.
4784func (s *CreateJobInput) Validate() error {
4785	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
4786	if s.AccountId == nil {
4787		invalidParams.Add(request.NewErrParamRequired("AccountId"))
4788	}
4789	if s.AccountId != nil && len(*s.AccountId) < 1 {
4790		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
4791	}
4792	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
4793		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
4794	}
4795	if s.Description != nil && len(*s.Description) < 1 {
4796		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
4797	}
4798	if s.Manifest == nil {
4799		invalidParams.Add(request.NewErrParamRequired("Manifest"))
4800	}
4801	if s.Operation == nil {
4802		invalidParams.Add(request.NewErrParamRequired("Operation"))
4803	}
4804	if s.Priority == nil {
4805		invalidParams.Add(request.NewErrParamRequired("Priority"))
4806	}
4807	if s.Report == nil {
4808		invalidParams.Add(request.NewErrParamRequired("Report"))
4809	}
4810	if s.RoleArn == nil {
4811		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
4812	}
4813	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
4814		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
4815	}
4816	if s.Manifest != nil {
4817		if err := s.Manifest.Validate(); err != nil {
4818			invalidParams.AddNested("Manifest", err.(request.ErrInvalidParams))
4819		}
4820	}
4821	if s.Operation != nil {
4822		if err := s.Operation.Validate(); err != nil {
4823			invalidParams.AddNested("Operation", err.(request.ErrInvalidParams))
4824		}
4825	}
4826	if s.Report != nil {
4827		if err := s.Report.Validate(); err != nil {
4828			invalidParams.AddNested("Report", err.(request.ErrInvalidParams))
4829		}
4830	}
4831	if s.Tags != nil {
4832		for i, v := range s.Tags {
4833			if v == nil {
4834				continue
4835			}
4836			if err := v.Validate(); err != nil {
4837				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4838			}
4839		}
4840	}
4841
4842	if invalidParams.Len() > 0 {
4843		return invalidParams
4844	}
4845	return nil
4846}
4847
4848// SetAccountId sets the AccountId field's value.
4849func (s *CreateJobInput) SetAccountId(v string) *CreateJobInput {
4850	s.AccountId = &v
4851	return s
4852}
4853
4854// SetClientRequestToken sets the ClientRequestToken field's value.
4855func (s *CreateJobInput) SetClientRequestToken(v string) *CreateJobInput {
4856	s.ClientRequestToken = &v
4857	return s
4858}
4859
4860// SetConfirmationRequired sets the ConfirmationRequired field's value.
4861func (s *CreateJobInput) SetConfirmationRequired(v bool) *CreateJobInput {
4862	s.ConfirmationRequired = &v
4863	return s
4864}
4865
4866// SetDescription sets the Description field's value.
4867func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
4868	s.Description = &v
4869	return s
4870}
4871
4872// SetManifest sets the Manifest field's value.
4873func (s *CreateJobInput) SetManifest(v *JobManifest) *CreateJobInput {
4874	s.Manifest = v
4875	return s
4876}
4877
4878// SetOperation sets the Operation field's value.
4879func (s *CreateJobInput) SetOperation(v *JobOperation) *CreateJobInput {
4880	s.Operation = v
4881	return s
4882}
4883
4884// SetPriority sets the Priority field's value.
4885func (s *CreateJobInput) SetPriority(v int64) *CreateJobInput {
4886	s.Priority = &v
4887	return s
4888}
4889
4890// SetReport sets the Report field's value.
4891func (s *CreateJobInput) SetReport(v *JobReport) *CreateJobInput {
4892	s.Report = v
4893	return s
4894}
4895
4896// SetRoleArn sets the RoleArn field's value.
4897func (s *CreateJobInput) SetRoleArn(v string) *CreateJobInput {
4898	s.RoleArn = &v
4899	return s
4900}
4901
4902// SetTags sets the Tags field's value.
4903func (s *CreateJobInput) SetTags(v []*S3Tag) *CreateJobInput {
4904	s.Tags = v
4905	return s
4906}
4907
4908func (s *CreateJobInput) hostLabels() map[string]string {
4909	return map[string]string{
4910		"AccountId": aws.StringValue(s.AccountId),
4911	}
4912}
4913
4914type CreateJobOutput struct {
4915	_ struct{} `type:"structure"`
4916
4917	// The ID for this job. Amazon S3 generates this ID automatically and returns
4918	// it after a successful Create Job request.
4919	JobId *string `min:"5" type:"string"`
4920}
4921
4922// String returns the string representation
4923func (s CreateJobOutput) String() string {
4924	return awsutil.Prettify(s)
4925}
4926
4927// GoString returns the string representation
4928func (s CreateJobOutput) GoString() string {
4929	return s.String()
4930}
4931
4932// SetJobId sets the JobId field's value.
4933func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
4934	s.JobId = &v
4935	return s
4936}
4937
4938type DeleteAccessPointInput struct {
4939	_ struct{} `locationName:"DeleteAccessPointRequest" type:"structure"`
4940
4941	// The account ID for the account that owns the specified access point.
4942	//
4943	// AccountId is a required field
4944	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
4945
4946	// The name of the access point you want to delete.
4947	//
4948	// For using this parameter with Amazon S3 on Outposts with the REST API, you
4949	// must specify the name and the x-amz-outpost-id as well.
4950	//
4951	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
4952	// must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
4953	// For example, to access the access point reports-ap through outpost my-outpost
4954	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
4955	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
4956	// The value must be URL encoded.
4957	//
4958	// Name is a required field
4959	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
4960}
4961
4962// String returns the string representation
4963func (s DeleteAccessPointInput) String() string {
4964	return awsutil.Prettify(s)
4965}
4966
4967// GoString returns the string representation
4968func (s DeleteAccessPointInput) GoString() string {
4969	return s.String()
4970}
4971
4972// Validate inspects the fields of the type to determine if they are valid.
4973func (s *DeleteAccessPointInput) Validate() error {
4974	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointInput"}
4975	if s.AccountId == nil {
4976		invalidParams.Add(request.NewErrParamRequired("AccountId"))
4977	}
4978	if s.AccountId != nil && len(*s.AccountId) < 1 {
4979		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
4980	}
4981	if s.Name == nil {
4982		invalidParams.Add(request.NewErrParamRequired("Name"))
4983	}
4984	if s.Name != nil && len(*s.Name) < 3 {
4985		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
4986	}
4987
4988	if invalidParams.Len() > 0 {
4989		return invalidParams
4990	}
4991	return nil
4992}
4993
4994// SetAccountId sets the AccountId field's value.
4995func (s *DeleteAccessPointInput) SetAccountId(v string) *DeleteAccessPointInput {
4996	s.AccountId = &v
4997	return s
4998}
4999
5000// SetName sets the Name field's value.
5001func (s *DeleteAccessPointInput) SetName(v string) *DeleteAccessPointInput {
5002	s.Name = &v
5003	return s
5004}
5005
5006func (s *DeleteAccessPointInput) hostLabels() map[string]string {
5007	return map[string]string{
5008		"AccountId": aws.StringValue(s.AccountId),
5009	}
5010}
5011
5012func (s *DeleteAccessPointInput) getEndpointARN() (arn.Resource, error) {
5013	if s.Name == nil {
5014		return nil, fmt.Errorf("member Name is nil")
5015	}
5016	return parseEndpointARN(*s.Name)
5017}
5018
5019func (s *DeleteAccessPointInput) hasEndpointARN() bool {
5020	if s.Name == nil {
5021		return false
5022	}
5023	return arn.IsARN(*s.Name)
5024}
5025
5026// updateArnableField updates the value of the input field that
5027// takes an ARN as an input. This method is useful to backfill
5028// the parsed resource name from ARN into the input member.
5029// It returns a pointer to a modified copy of input and an error.
5030// Note that original input is not modified.
5031func (s DeleteAccessPointInput) updateArnableField(v string) (interface{}, error) {
5032	if s.Name == nil {
5033		return nil, fmt.Errorf("member Name is nil")
5034	}
5035	s.Name = aws.String(v)
5036	return &s, nil
5037}
5038
5039// updateAccountID returns a pointer to a modified copy of input,
5040// if account id is not provided, we update the account id in modified input
5041// if account id is provided, but doesn't match with the one in ARN, we throw an error
5042// if account id is not updated, we return nil. Note that original input is not modified.
5043func (s DeleteAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
5044	if s.AccountId == nil {
5045		s.AccountId = aws.String(accountId)
5046		return &s, nil
5047	} else if *s.AccountId != accountId {
5048		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
5049	}
5050	return nil, nil
5051}
5052
5053type DeleteAccessPointOutput struct {
5054	_ struct{} `type:"structure"`
5055}
5056
5057// String returns the string representation
5058func (s DeleteAccessPointOutput) String() string {
5059	return awsutil.Prettify(s)
5060}
5061
5062// GoString returns the string representation
5063func (s DeleteAccessPointOutput) GoString() string {
5064	return s.String()
5065}
5066
5067type DeleteAccessPointPolicyInput struct {
5068	_ struct{} `locationName:"DeleteAccessPointPolicyRequest" type:"structure"`
5069
5070	// The account ID for the account that owns the specified access point.
5071	//
5072	// AccountId is a required field
5073	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5074
5075	// The name of the access point whose policy you want to delete.
5076	//
5077	// For using this parameter with Amazon S3 on Outposts with the REST API, you
5078	// must specify the name and the x-amz-outpost-id as well.
5079	//
5080	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
5081	// must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
5082	// For example, to access the access point reports-ap through outpost my-outpost
5083	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
5084	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
5085	// The value must be URL encoded.
5086	//
5087	// Name is a required field
5088	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
5089}
5090
5091// String returns the string representation
5092func (s DeleteAccessPointPolicyInput) String() string {
5093	return awsutil.Prettify(s)
5094}
5095
5096// GoString returns the string representation
5097func (s DeleteAccessPointPolicyInput) GoString() string {
5098	return s.String()
5099}
5100
5101// Validate inspects the fields of the type to determine if they are valid.
5102func (s *DeleteAccessPointPolicyInput) Validate() error {
5103	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyInput"}
5104	if s.AccountId == nil {
5105		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5106	}
5107	if s.AccountId != nil && len(*s.AccountId) < 1 {
5108		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5109	}
5110	if s.Name == nil {
5111		invalidParams.Add(request.NewErrParamRequired("Name"))
5112	}
5113	if s.Name != nil && len(*s.Name) < 3 {
5114		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
5115	}
5116
5117	if invalidParams.Len() > 0 {
5118		return invalidParams
5119	}
5120	return nil
5121}
5122
5123// SetAccountId sets the AccountId field's value.
5124func (s *DeleteAccessPointPolicyInput) SetAccountId(v string) *DeleteAccessPointPolicyInput {
5125	s.AccountId = &v
5126	return s
5127}
5128
5129// SetName sets the Name field's value.
5130func (s *DeleteAccessPointPolicyInput) SetName(v string) *DeleteAccessPointPolicyInput {
5131	s.Name = &v
5132	return s
5133}
5134
5135func (s *DeleteAccessPointPolicyInput) hostLabels() map[string]string {
5136	return map[string]string{
5137		"AccountId": aws.StringValue(s.AccountId),
5138	}
5139}
5140
5141func (s *DeleteAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
5142	if s.Name == nil {
5143		return nil, fmt.Errorf("member Name is nil")
5144	}
5145	return parseEndpointARN(*s.Name)
5146}
5147
5148func (s *DeleteAccessPointPolicyInput) hasEndpointARN() bool {
5149	if s.Name == nil {
5150		return false
5151	}
5152	return arn.IsARN(*s.Name)
5153}
5154
5155// updateArnableField updates the value of the input field that
5156// takes an ARN as an input. This method is useful to backfill
5157// the parsed resource name from ARN into the input member.
5158// It returns a pointer to a modified copy of input and an error.
5159// Note that original input is not modified.
5160func (s DeleteAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
5161	if s.Name == nil {
5162		return nil, fmt.Errorf("member Name is nil")
5163	}
5164	s.Name = aws.String(v)
5165	return &s, nil
5166}
5167
5168// updateAccountID returns a pointer to a modified copy of input,
5169// if account id is not provided, we update the account id in modified input
5170// if account id is provided, but doesn't match with the one in ARN, we throw an error
5171// if account id is not updated, we return nil. Note that original input is not modified.
5172func (s DeleteAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
5173	if s.AccountId == nil {
5174		s.AccountId = aws.String(accountId)
5175		return &s, nil
5176	} else if *s.AccountId != accountId {
5177		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
5178	}
5179	return nil, nil
5180}
5181
5182type DeleteAccessPointPolicyOutput struct {
5183	_ struct{} `type:"structure"`
5184}
5185
5186// String returns the string representation
5187func (s DeleteAccessPointPolicyOutput) String() string {
5188	return awsutil.Prettify(s)
5189}
5190
5191// GoString returns the string representation
5192func (s DeleteAccessPointPolicyOutput) GoString() string {
5193	return s.String()
5194}
5195
5196type DeleteBucketInput struct {
5197	_ struct{} `locationName:"DeleteBucketRequest" type:"structure"`
5198
5199	// The account ID that owns the Outposts bucket.
5200	//
5201	// AccountId is a required field
5202	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5203
5204	// Specifies the bucket being deleted.
5205	//
5206	// For using this parameter with Amazon S3 on Outposts with the REST API, you
5207	// must specify the name and the x-amz-outpost-id as well.
5208	//
5209	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
5210	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
5211	// For example, to access the bucket reports through outpost my-outpost owned
5212	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
5213	// The value must be URL encoded.
5214	//
5215	// Bucket is a required field
5216	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
5217}
5218
5219// String returns the string representation
5220func (s DeleteBucketInput) String() string {
5221	return awsutil.Prettify(s)
5222}
5223
5224// GoString returns the string representation
5225func (s DeleteBucketInput) GoString() string {
5226	return s.String()
5227}
5228
5229// Validate inspects the fields of the type to determine if they are valid.
5230func (s *DeleteBucketInput) Validate() error {
5231	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketInput"}
5232	if s.AccountId == nil {
5233		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5234	}
5235	if s.AccountId != nil && len(*s.AccountId) < 1 {
5236		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5237	}
5238	if s.Bucket == nil {
5239		invalidParams.Add(request.NewErrParamRequired("Bucket"))
5240	}
5241	if s.Bucket != nil && len(*s.Bucket) < 3 {
5242		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
5243	}
5244
5245	if invalidParams.Len() > 0 {
5246		return invalidParams
5247	}
5248	return nil
5249}
5250
5251// SetAccountId sets the AccountId field's value.
5252func (s *DeleteBucketInput) SetAccountId(v string) *DeleteBucketInput {
5253	s.AccountId = &v
5254	return s
5255}
5256
5257// SetBucket sets the Bucket field's value.
5258func (s *DeleteBucketInput) SetBucket(v string) *DeleteBucketInput {
5259	s.Bucket = &v
5260	return s
5261}
5262
5263func (s *DeleteBucketInput) hostLabels() map[string]string {
5264	return map[string]string{
5265		"AccountId": aws.StringValue(s.AccountId),
5266	}
5267}
5268
5269func (s *DeleteBucketInput) getEndpointARN() (arn.Resource, error) {
5270	if s.Bucket == nil {
5271		return nil, fmt.Errorf("member Bucket is nil")
5272	}
5273	return parseEndpointARN(*s.Bucket)
5274}
5275
5276func (s *DeleteBucketInput) hasEndpointARN() bool {
5277	if s.Bucket == nil {
5278		return false
5279	}
5280	return arn.IsARN(*s.Bucket)
5281}
5282
5283// updateArnableField updates the value of the input field that
5284// takes an ARN as an input. This method is useful to backfill
5285// the parsed resource name from ARN into the input member.
5286// It returns a pointer to a modified copy of input and an error.
5287// Note that original input is not modified.
5288func (s DeleteBucketInput) updateArnableField(v string) (interface{}, error) {
5289	if s.Bucket == nil {
5290		return nil, fmt.Errorf("member Bucket is nil")
5291	}
5292	s.Bucket = aws.String(v)
5293	return &s, nil
5294}
5295
5296// updateAccountID returns a pointer to a modified copy of input,
5297// if account id is not provided, we update the account id in modified input
5298// if account id is provided, but doesn't match with the one in ARN, we throw an error
5299// if account id is not updated, we return nil. Note that original input is not modified.
5300func (s DeleteBucketInput) updateAccountID(accountId string) (interface{}, error) {
5301	if s.AccountId == nil {
5302		s.AccountId = aws.String(accountId)
5303		return &s, nil
5304	} else if *s.AccountId != accountId {
5305		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
5306	}
5307	return nil, nil
5308}
5309
5310type DeleteBucketLifecycleConfigurationInput struct {
5311	_ struct{} `locationName:"DeleteBucketLifecycleConfigurationRequest" type:"structure"`
5312
5313	// The account ID of the lifecycle configuration to delete.
5314	//
5315	// AccountId is a required field
5316	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5317
5318	// Specifies the bucket.
5319	//
5320	// For using this parameter with Amazon S3 on Outposts with the REST API, you
5321	// must specify the name and the x-amz-outpost-id as well.
5322	//
5323	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
5324	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
5325	// For example, to access the bucket reports through outpost my-outpost owned
5326	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
5327	// The value must be URL encoded.
5328	//
5329	// Bucket is a required field
5330	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
5331}
5332
5333// String returns the string representation
5334func (s DeleteBucketLifecycleConfigurationInput) String() string {
5335	return awsutil.Prettify(s)
5336}
5337
5338// GoString returns the string representation
5339func (s DeleteBucketLifecycleConfigurationInput) GoString() string {
5340	return s.String()
5341}
5342
5343// Validate inspects the fields of the type to determine if they are valid.
5344func (s *DeleteBucketLifecycleConfigurationInput) Validate() error {
5345	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketLifecycleConfigurationInput"}
5346	if s.AccountId == nil {
5347		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5348	}
5349	if s.AccountId != nil && len(*s.AccountId) < 1 {
5350		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5351	}
5352	if s.Bucket == nil {
5353		invalidParams.Add(request.NewErrParamRequired("Bucket"))
5354	}
5355	if s.Bucket != nil && len(*s.Bucket) < 3 {
5356		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
5357	}
5358
5359	if invalidParams.Len() > 0 {
5360		return invalidParams
5361	}
5362	return nil
5363}
5364
5365// SetAccountId sets the AccountId field's value.
5366func (s *DeleteBucketLifecycleConfigurationInput) SetAccountId(v string) *DeleteBucketLifecycleConfigurationInput {
5367	s.AccountId = &v
5368	return s
5369}
5370
5371// SetBucket sets the Bucket field's value.
5372func (s *DeleteBucketLifecycleConfigurationInput) SetBucket(v string) *DeleteBucketLifecycleConfigurationInput {
5373	s.Bucket = &v
5374	return s
5375}
5376
5377func (s *DeleteBucketLifecycleConfigurationInput) hostLabels() map[string]string {
5378	return map[string]string{
5379		"AccountId": aws.StringValue(s.AccountId),
5380	}
5381}
5382
5383func (s *DeleteBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
5384	if s.Bucket == nil {
5385		return nil, fmt.Errorf("member Bucket is nil")
5386	}
5387	return parseEndpointARN(*s.Bucket)
5388}
5389
5390func (s *DeleteBucketLifecycleConfigurationInput) hasEndpointARN() bool {
5391	if s.Bucket == nil {
5392		return false
5393	}
5394	return arn.IsARN(*s.Bucket)
5395}
5396
5397// updateArnableField updates the value of the input field that
5398// takes an ARN as an input. This method is useful to backfill
5399// the parsed resource name from ARN into the input member.
5400// It returns a pointer to a modified copy of input and an error.
5401// Note that original input is not modified.
5402func (s DeleteBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
5403	if s.Bucket == nil {
5404		return nil, fmt.Errorf("member Bucket is nil")
5405	}
5406	s.Bucket = aws.String(v)
5407	return &s, nil
5408}
5409
5410// updateAccountID returns a pointer to a modified copy of input,
5411// if account id is not provided, we update the account id in modified input
5412// if account id is provided, but doesn't match with the one in ARN, we throw an error
5413// if account id is not updated, we return nil. Note that original input is not modified.
5414func (s DeleteBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
5415	if s.AccountId == nil {
5416		s.AccountId = aws.String(accountId)
5417		return &s, nil
5418	} else if *s.AccountId != accountId {
5419		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
5420	}
5421	return nil, nil
5422}
5423
5424type DeleteBucketLifecycleConfigurationOutput struct {
5425	_ struct{} `type:"structure"`
5426}
5427
5428// String returns the string representation
5429func (s DeleteBucketLifecycleConfigurationOutput) String() string {
5430	return awsutil.Prettify(s)
5431}
5432
5433// GoString returns the string representation
5434func (s DeleteBucketLifecycleConfigurationOutput) GoString() string {
5435	return s.String()
5436}
5437
5438type DeleteBucketOutput struct {
5439	_ struct{} `type:"structure"`
5440}
5441
5442// String returns the string representation
5443func (s DeleteBucketOutput) String() string {
5444	return awsutil.Prettify(s)
5445}
5446
5447// GoString returns the string representation
5448func (s DeleteBucketOutput) GoString() string {
5449	return s.String()
5450}
5451
5452type DeleteBucketPolicyInput struct {
5453	_ struct{} `locationName:"DeleteBucketPolicyRequest" type:"structure"`
5454
5455	// The account ID of the Outposts bucket.
5456	//
5457	// AccountId is a required field
5458	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5459
5460	// Specifies the bucket.
5461	//
5462	// For using this parameter with Amazon S3 on Outposts with the REST API, you
5463	// must specify the name and the x-amz-outpost-id as well.
5464	//
5465	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
5466	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
5467	// For example, to access the bucket reports through outpost my-outpost owned
5468	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
5469	// The value must be URL encoded.
5470	//
5471	// Bucket is a required field
5472	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
5473}
5474
5475// String returns the string representation
5476func (s DeleteBucketPolicyInput) String() string {
5477	return awsutil.Prettify(s)
5478}
5479
5480// GoString returns the string representation
5481func (s DeleteBucketPolicyInput) GoString() string {
5482	return s.String()
5483}
5484
5485// Validate inspects the fields of the type to determine if they are valid.
5486func (s *DeleteBucketPolicyInput) Validate() error {
5487	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketPolicyInput"}
5488	if s.AccountId == nil {
5489		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5490	}
5491	if s.AccountId != nil && len(*s.AccountId) < 1 {
5492		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5493	}
5494	if s.Bucket == nil {
5495		invalidParams.Add(request.NewErrParamRequired("Bucket"))
5496	}
5497	if s.Bucket != nil && len(*s.Bucket) < 3 {
5498		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
5499	}
5500
5501	if invalidParams.Len() > 0 {
5502		return invalidParams
5503	}
5504	return nil
5505}
5506
5507// SetAccountId sets the AccountId field's value.
5508func (s *DeleteBucketPolicyInput) SetAccountId(v string) *DeleteBucketPolicyInput {
5509	s.AccountId = &v
5510	return s
5511}
5512
5513// SetBucket sets the Bucket field's value.
5514func (s *DeleteBucketPolicyInput) SetBucket(v string) *DeleteBucketPolicyInput {
5515	s.Bucket = &v
5516	return s
5517}
5518
5519func (s *DeleteBucketPolicyInput) hostLabels() map[string]string {
5520	return map[string]string{
5521		"AccountId": aws.StringValue(s.AccountId),
5522	}
5523}
5524
5525func (s *DeleteBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
5526	if s.Bucket == nil {
5527		return nil, fmt.Errorf("member Bucket is nil")
5528	}
5529	return parseEndpointARN(*s.Bucket)
5530}
5531
5532func (s *DeleteBucketPolicyInput) hasEndpointARN() bool {
5533	if s.Bucket == nil {
5534		return false
5535	}
5536	return arn.IsARN(*s.Bucket)
5537}
5538
5539// updateArnableField updates the value of the input field that
5540// takes an ARN as an input. This method is useful to backfill
5541// the parsed resource name from ARN into the input member.
5542// It returns a pointer to a modified copy of input and an error.
5543// Note that original input is not modified.
5544func (s DeleteBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
5545	if s.Bucket == nil {
5546		return nil, fmt.Errorf("member Bucket is nil")
5547	}
5548	s.Bucket = aws.String(v)
5549	return &s, nil
5550}
5551
5552// updateAccountID returns a pointer to a modified copy of input,
5553// if account id is not provided, we update the account id in modified input
5554// if account id is provided, but doesn't match with the one in ARN, we throw an error
5555// if account id is not updated, we return nil. Note that original input is not modified.
5556func (s DeleteBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
5557	if s.AccountId == nil {
5558		s.AccountId = aws.String(accountId)
5559		return &s, nil
5560	} else if *s.AccountId != accountId {
5561		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
5562	}
5563	return nil, nil
5564}
5565
5566type DeleteBucketPolicyOutput struct {
5567	_ struct{} `type:"structure"`
5568}
5569
5570// String returns the string representation
5571func (s DeleteBucketPolicyOutput) String() string {
5572	return awsutil.Prettify(s)
5573}
5574
5575// GoString returns the string representation
5576func (s DeleteBucketPolicyOutput) GoString() string {
5577	return s.String()
5578}
5579
5580type DeleteBucketTaggingInput struct {
5581	_ struct{} `locationName:"DeleteBucketTaggingRequest" type:"structure"`
5582
5583	// The AWS account ID of the Outposts bucket tag set to be removed.
5584	//
5585	// AccountId is a required field
5586	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5587
5588	// The bucket ARN that has the tag set to be removed.
5589	//
5590	// For using this parameter with Amazon S3 on Outposts with the REST API, you
5591	// must specify the name and the x-amz-outpost-id as well.
5592	//
5593	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
5594	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
5595	// For example, to access the bucket reports through outpost my-outpost owned
5596	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
5597	// The value must be URL encoded.
5598	//
5599	// Bucket is a required field
5600	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
5601}
5602
5603// String returns the string representation
5604func (s DeleteBucketTaggingInput) String() string {
5605	return awsutil.Prettify(s)
5606}
5607
5608// GoString returns the string representation
5609func (s DeleteBucketTaggingInput) GoString() string {
5610	return s.String()
5611}
5612
5613// Validate inspects the fields of the type to determine if they are valid.
5614func (s *DeleteBucketTaggingInput) Validate() error {
5615	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketTaggingInput"}
5616	if s.AccountId == nil {
5617		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5618	}
5619	if s.AccountId != nil && len(*s.AccountId) < 1 {
5620		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5621	}
5622	if s.Bucket == nil {
5623		invalidParams.Add(request.NewErrParamRequired("Bucket"))
5624	}
5625	if s.Bucket != nil && len(*s.Bucket) < 3 {
5626		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
5627	}
5628
5629	if invalidParams.Len() > 0 {
5630		return invalidParams
5631	}
5632	return nil
5633}
5634
5635// SetAccountId sets the AccountId field's value.
5636func (s *DeleteBucketTaggingInput) SetAccountId(v string) *DeleteBucketTaggingInput {
5637	s.AccountId = &v
5638	return s
5639}
5640
5641// SetBucket sets the Bucket field's value.
5642func (s *DeleteBucketTaggingInput) SetBucket(v string) *DeleteBucketTaggingInput {
5643	s.Bucket = &v
5644	return s
5645}
5646
5647func (s *DeleteBucketTaggingInput) hostLabels() map[string]string {
5648	return map[string]string{
5649		"AccountId": aws.StringValue(s.AccountId),
5650	}
5651}
5652
5653func (s *DeleteBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
5654	if s.Bucket == nil {
5655		return nil, fmt.Errorf("member Bucket is nil")
5656	}
5657	return parseEndpointARN(*s.Bucket)
5658}
5659
5660func (s *DeleteBucketTaggingInput) hasEndpointARN() bool {
5661	if s.Bucket == nil {
5662		return false
5663	}
5664	return arn.IsARN(*s.Bucket)
5665}
5666
5667// updateArnableField updates the value of the input field that
5668// takes an ARN as an input. This method is useful to backfill
5669// the parsed resource name from ARN into the input member.
5670// It returns a pointer to a modified copy of input and an error.
5671// Note that original input is not modified.
5672func (s DeleteBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
5673	if s.Bucket == nil {
5674		return nil, fmt.Errorf("member Bucket is nil")
5675	}
5676	s.Bucket = aws.String(v)
5677	return &s, nil
5678}
5679
5680// updateAccountID returns a pointer to a modified copy of input,
5681// if account id is not provided, we update the account id in modified input
5682// if account id is provided, but doesn't match with the one in ARN, we throw an error
5683// if account id is not updated, we return nil. Note that original input is not modified.
5684func (s DeleteBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
5685	if s.AccountId == nil {
5686		s.AccountId = aws.String(accountId)
5687		return &s, nil
5688	} else if *s.AccountId != accountId {
5689		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
5690	}
5691	return nil, nil
5692}
5693
5694type DeleteBucketTaggingOutput struct {
5695	_ struct{} `type:"structure"`
5696}
5697
5698// String returns the string representation
5699func (s DeleteBucketTaggingOutput) String() string {
5700	return awsutil.Prettify(s)
5701}
5702
5703// GoString returns the string representation
5704func (s DeleteBucketTaggingOutput) GoString() string {
5705	return s.String()
5706}
5707
5708type DeleteJobTaggingInput struct {
5709	_ struct{} `locationName:"DeleteJobTaggingRequest" type:"structure"`
5710
5711	// The AWS account ID associated with the S3 Batch Operations job.
5712	//
5713	// AccountId is a required field
5714	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5715
5716	// The ID for the S3 Batch Operations job whose tags you want to delete.
5717	//
5718	// JobId is a required field
5719	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
5720}
5721
5722// String returns the string representation
5723func (s DeleteJobTaggingInput) String() string {
5724	return awsutil.Prettify(s)
5725}
5726
5727// GoString returns the string representation
5728func (s DeleteJobTaggingInput) GoString() string {
5729	return s.String()
5730}
5731
5732// Validate inspects the fields of the type to determine if they are valid.
5733func (s *DeleteJobTaggingInput) Validate() error {
5734	invalidParams := request.ErrInvalidParams{Context: "DeleteJobTaggingInput"}
5735	if s.AccountId == nil {
5736		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5737	}
5738	if s.AccountId != nil && len(*s.AccountId) < 1 {
5739		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5740	}
5741	if s.JobId == nil {
5742		invalidParams.Add(request.NewErrParamRequired("JobId"))
5743	}
5744	if s.JobId != nil && len(*s.JobId) < 5 {
5745		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
5746	}
5747
5748	if invalidParams.Len() > 0 {
5749		return invalidParams
5750	}
5751	return nil
5752}
5753
5754// SetAccountId sets the AccountId field's value.
5755func (s *DeleteJobTaggingInput) SetAccountId(v string) *DeleteJobTaggingInput {
5756	s.AccountId = &v
5757	return s
5758}
5759
5760// SetJobId sets the JobId field's value.
5761func (s *DeleteJobTaggingInput) SetJobId(v string) *DeleteJobTaggingInput {
5762	s.JobId = &v
5763	return s
5764}
5765
5766func (s *DeleteJobTaggingInput) hostLabels() map[string]string {
5767	return map[string]string{
5768		"AccountId": aws.StringValue(s.AccountId),
5769	}
5770}
5771
5772type DeleteJobTaggingOutput struct {
5773	_ struct{} `type:"structure"`
5774}
5775
5776// String returns the string representation
5777func (s DeleteJobTaggingOutput) String() string {
5778	return awsutil.Prettify(s)
5779}
5780
5781// GoString returns the string representation
5782func (s DeleteJobTaggingOutput) GoString() string {
5783	return s.String()
5784}
5785
5786type DeletePublicAccessBlockInput struct {
5787	_ struct{} `locationName:"DeletePublicAccessBlockRequest" type:"structure"`
5788
5789	// The account ID for the AWS account whose PublicAccessBlock configuration
5790	// you want to remove.
5791	//
5792	// AccountId is a required field
5793	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5794}
5795
5796// String returns the string representation
5797func (s DeletePublicAccessBlockInput) String() string {
5798	return awsutil.Prettify(s)
5799}
5800
5801// GoString returns the string representation
5802func (s DeletePublicAccessBlockInput) GoString() string {
5803	return s.String()
5804}
5805
5806// Validate inspects the fields of the type to determine if they are valid.
5807func (s *DeletePublicAccessBlockInput) Validate() error {
5808	invalidParams := request.ErrInvalidParams{Context: "DeletePublicAccessBlockInput"}
5809	if s.AccountId == nil {
5810		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5811	}
5812	if s.AccountId != nil && len(*s.AccountId) < 1 {
5813		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5814	}
5815
5816	if invalidParams.Len() > 0 {
5817		return invalidParams
5818	}
5819	return nil
5820}
5821
5822// SetAccountId sets the AccountId field's value.
5823func (s *DeletePublicAccessBlockInput) SetAccountId(v string) *DeletePublicAccessBlockInput {
5824	s.AccountId = &v
5825	return s
5826}
5827
5828func (s *DeletePublicAccessBlockInput) hostLabels() map[string]string {
5829	return map[string]string{
5830		"AccountId": aws.StringValue(s.AccountId),
5831	}
5832}
5833
5834type DeletePublicAccessBlockOutput struct {
5835	_ struct{} `type:"structure"`
5836}
5837
5838// String returns the string representation
5839func (s DeletePublicAccessBlockOutput) String() string {
5840	return awsutil.Prettify(s)
5841}
5842
5843// GoString returns the string representation
5844func (s DeletePublicAccessBlockOutput) GoString() string {
5845	return s.String()
5846}
5847
5848type DeleteStorageLensConfigurationInput struct {
5849	_ struct{} `locationName:"DeleteStorageLensConfigurationRequest" type:"structure"`
5850
5851	// The account ID of the requester.
5852	//
5853	// AccountId is a required field
5854	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5855
5856	// The ID of the S3 Storage Lens configuration.
5857	//
5858	// ConfigId is a required field
5859	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
5860}
5861
5862// String returns the string representation
5863func (s DeleteStorageLensConfigurationInput) String() string {
5864	return awsutil.Prettify(s)
5865}
5866
5867// GoString returns the string representation
5868func (s DeleteStorageLensConfigurationInput) GoString() string {
5869	return s.String()
5870}
5871
5872// Validate inspects the fields of the type to determine if they are valid.
5873func (s *DeleteStorageLensConfigurationInput) Validate() error {
5874	invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationInput"}
5875	if s.AccountId == nil {
5876		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5877	}
5878	if s.AccountId != nil && len(*s.AccountId) < 1 {
5879		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5880	}
5881	if s.ConfigId == nil {
5882		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
5883	}
5884	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
5885		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
5886	}
5887
5888	if invalidParams.Len() > 0 {
5889		return invalidParams
5890	}
5891	return nil
5892}
5893
5894// SetAccountId sets the AccountId field's value.
5895func (s *DeleteStorageLensConfigurationInput) SetAccountId(v string) *DeleteStorageLensConfigurationInput {
5896	s.AccountId = &v
5897	return s
5898}
5899
5900// SetConfigId sets the ConfigId field's value.
5901func (s *DeleteStorageLensConfigurationInput) SetConfigId(v string) *DeleteStorageLensConfigurationInput {
5902	s.ConfigId = &v
5903	return s
5904}
5905
5906func (s *DeleteStorageLensConfigurationInput) hostLabels() map[string]string {
5907	return map[string]string{
5908		"AccountId": aws.StringValue(s.AccountId),
5909	}
5910}
5911
5912type DeleteStorageLensConfigurationOutput struct {
5913	_ struct{} `type:"structure"`
5914}
5915
5916// String returns the string representation
5917func (s DeleteStorageLensConfigurationOutput) String() string {
5918	return awsutil.Prettify(s)
5919}
5920
5921// GoString returns the string representation
5922func (s DeleteStorageLensConfigurationOutput) GoString() string {
5923	return s.String()
5924}
5925
5926type DeleteStorageLensConfigurationTaggingInput struct {
5927	_ struct{} `locationName:"DeleteStorageLensConfigurationTaggingRequest" type:"structure"`
5928
5929	// The account ID of the requester.
5930	//
5931	// AccountId is a required field
5932	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5933
5934	// The ID of the S3 Storage Lens configuration.
5935	//
5936	// ConfigId is a required field
5937	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
5938}
5939
5940// String returns the string representation
5941func (s DeleteStorageLensConfigurationTaggingInput) String() string {
5942	return awsutil.Prettify(s)
5943}
5944
5945// GoString returns the string representation
5946func (s DeleteStorageLensConfigurationTaggingInput) GoString() string {
5947	return s.String()
5948}
5949
5950// Validate inspects the fields of the type to determine if they are valid.
5951func (s *DeleteStorageLensConfigurationTaggingInput) Validate() error {
5952	invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationTaggingInput"}
5953	if s.AccountId == nil {
5954		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5955	}
5956	if s.AccountId != nil && len(*s.AccountId) < 1 {
5957		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5958	}
5959	if s.ConfigId == nil {
5960		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
5961	}
5962	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
5963		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
5964	}
5965
5966	if invalidParams.Len() > 0 {
5967		return invalidParams
5968	}
5969	return nil
5970}
5971
5972// SetAccountId sets the AccountId field's value.
5973func (s *DeleteStorageLensConfigurationTaggingInput) SetAccountId(v string) *DeleteStorageLensConfigurationTaggingInput {
5974	s.AccountId = &v
5975	return s
5976}
5977
5978// SetConfigId sets the ConfigId field's value.
5979func (s *DeleteStorageLensConfigurationTaggingInput) SetConfigId(v string) *DeleteStorageLensConfigurationTaggingInput {
5980	s.ConfigId = &v
5981	return s
5982}
5983
5984func (s *DeleteStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
5985	return map[string]string{
5986		"AccountId": aws.StringValue(s.AccountId),
5987	}
5988}
5989
5990type DeleteStorageLensConfigurationTaggingOutput struct {
5991	_ struct{} `type:"structure"`
5992}
5993
5994// String returns the string representation
5995func (s DeleteStorageLensConfigurationTaggingOutput) String() string {
5996	return awsutil.Prettify(s)
5997}
5998
5999// GoString returns the string representation
6000func (s DeleteStorageLensConfigurationTaggingOutput) GoString() string {
6001	return s.String()
6002}
6003
6004type DescribeJobInput struct {
6005	_ struct{} `locationName:"DescribeJobRequest" type:"structure"`
6006
6007	// AccountId is a required field
6008	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6009
6010	// The ID for the job whose information you want to retrieve.
6011	//
6012	// JobId is a required field
6013	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
6014}
6015
6016// String returns the string representation
6017func (s DescribeJobInput) String() string {
6018	return awsutil.Prettify(s)
6019}
6020
6021// GoString returns the string representation
6022func (s DescribeJobInput) GoString() string {
6023	return s.String()
6024}
6025
6026// Validate inspects the fields of the type to determine if they are valid.
6027func (s *DescribeJobInput) Validate() error {
6028	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
6029	if s.AccountId == nil {
6030		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6031	}
6032	if s.AccountId != nil && len(*s.AccountId) < 1 {
6033		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6034	}
6035	if s.JobId == nil {
6036		invalidParams.Add(request.NewErrParamRequired("JobId"))
6037	}
6038	if s.JobId != nil && len(*s.JobId) < 5 {
6039		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
6040	}
6041
6042	if invalidParams.Len() > 0 {
6043		return invalidParams
6044	}
6045	return nil
6046}
6047
6048// SetAccountId sets the AccountId field's value.
6049func (s *DescribeJobInput) SetAccountId(v string) *DescribeJobInput {
6050	s.AccountId = &v
6051	return s
6052}
6053
6054// SetJobId sets the JobId field's value.
6055func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
6056	s.JobId = &v
6057	return s
6058}
6059
6060func (s *DescribeJobInput) hostLabels() map[string]string {
6061	return map[string]string{
6062		"AccountId": aws.StringValue(s.AccountId),
6063	}
6064}
6065
6066type DescribeJobOutput struct {
6067	_ struct{} `type:"structure"`
6068
6069	// Contains the configuration parameters and status for the job specified in
6070	// the Describe Job request.
6071	Job *JobDescriptor `type:"structure"`
6072}
6073
6074// String returns the string representation
6075func (s DescribeJobOutput) String() string {
6076	return awsutil.Prettify(s)
6077}
6078
6079// GoString returns the string representation
6080func (s DescribeJobOutput) GoString() string {
6081	return s.String()
6082}
6083
6084// SetJob sets the Job field's value.
6085func (s *DescribeJobOutput) SetJob(v *JobDescriptor) *DescribeJobOutput {
6086	s.Job = v
6087	return s
6088}
6089
6090// A container for what Amazon S3 Storage Lens will exclude.
6091type Exclude struct {
6092	_ struct{} `type:"structure"`
6093
6094	// A container for the S3 Storage Lens bucket excludes.
6095	Buckets []*string `locationNameList:"Arn" type:"list"`
6096
6097	// A container for the S3 Storage Lens Region excludes.
6098	Regions []*string `locationNameList:"Region" type:"list"`
6099}
6100
6101// String returns the string representation
6102func (s Exclude) String() string {
6103	return awsutil.Prettify(s)
6104}
6105
6106// GoString returns the string representation
6107func (s Exclude) GoString() string {
6108	return s.String()
6109}
6110
6111// SetBuckets sets the Buckets field's value.
6112func (s *Exclude) SetBuckets(v []*string) *Exclude {
6113	s.Buckets = v
6114	return s
6115}
6116
6117// SetRegions sets the Regions field's value.
6118func (s *Exclude) SetRegions(v []*string) *Exclude {
6119	s.Regions = v
6120	return s
6121}
6122
6123type GetAccessPointInput struct {
6124	_ struct{} `locationName:"GetAccessPointRequest" type:"structure"`
6125
6126	// The account ID for the account that owns the specified access point.
6127	//
6128	// AccountId is a required field
6129	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6130
6131	// The name of the access point whose configuration information you want to
6132	// retrieve.
6133	//
6134	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6135	// must specify the name and the x-amz-outpost-id as well.
6136	//
6137	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
6138	// must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
6139	// For example, to access the access point reports-ap through outpost my-outpost
6140	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
6141	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
6142	// The value must be URL encoded.
6143	//
6144	// Name is a required field
6145	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6146}
6147
6148// String returns the string representation
6149func (s GetAccessPointInput) String() string {
6150	return awsutil.Prettify(s)
6151}
6152
6153// GoString returns the string representation
6154func (s GetAccessPointInput) GoString() string {
6155	return s.String()
6156}
6157
6158// Validate inspects the fields of the type to determine if they are valid.
6159func (s *GetAccessPointInput) Validate() error {
6160	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointInput"}
6161	if s.AccountId == nil {
6162		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6163	}
6164	if s.AccountId != nil && len(*s.AccountId) < 1 {
6165		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6166	}
6167	if s.Name == nil {
6168		invalidParams.Add(request.NewErrParamRequired("Name"))
6169	}
6170	if s.Name != nil && len(*s.Name) < 3 {
6171		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
6172	}
6173
6174	if invalidParams.Len() > 0 {
6175		return invalidParams
6176	}
6177	return nil
6178}
6179
6180// SetAccountId sets the AccountId field's value.
6181func (s *GetAccessPointInput) SetAccountId(v string) *GetAccessPointInput {
6182	s.AccountId = &v
6183	return s
6184}
6185
6186// SetName sets the Name field's value.
6187func (s *GetAccessPointInput) SetName(v string) *GetAccessPointInput {
6188	s.Name = &v
6189	return s
6190}
6191
6192func (s *GetAccessPointInput) hostLabels() map[string]string {
6193	return map[string]string{
6194		"AccountId": aws.StringValue(s.AccountId),
6195	}
6196}
6197
6198func (s *GetAccessPointInput) getEndpointARN() (arn.Resource, error) {
6199	if s.Name == nil {
6200		return nil, fmt.Errorf("member Name is nil")
6201	}
6202	return parseEndpointARN(*s.Name)
6203}
6204
6205func (s *GetAccessPointInput) hasEndpointARN() bool {
6206	if s.Name == nil {
6207		return false
6208	}
6209	return arn.IsARN(*s.Name)
6210}
6211
6212// updateArnableField updates the value of the input field that
6213// takes an ARN as an input. This method is useful to backfill
6214// the parsed resource name from ARN into the input member.
6215// It returns a pointer to a modified copy of input and an error.
6216// Note that original input is not modified.
6217func (s GetAccessPointInput) updateArnableField(v string) (interface{}, error) {
6218	if s.Name == nil {
6219		return nil, fmt.Errorf("member Name is nil")
6220	}
6221	s.Name = aws.String(v)
6222	return &s, nil
6223}
6224
6225// updateAccountID returns a pointer to a modified copy of input,
6226// if account id is not provided, we update the account id in modified input
6227// if account id is provided, but doesn't match with the one in ARN, we throw an error
6228// if account id is not updated, we return nil. Note that original input is not modified.
6229func (s GetAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
6230	if s.AccountId == nil {
6231		s.AccountId = aws.String(accountId)
6232		return &s, nil
6233	} else if *s.AccountId != accountId {
6234		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6235	}
6236	return nil, nil
6237}
6238
6239type GetAccessPointOutput struct {
6240	_ struct{} `type:"structure"`
6241
6242	// The name of the bucket associated with the specified access point.
6243	Bucket *string `min:"3" type:"string"`
6244
6245	// The date and time when the specified access point was created.
6246	CreationDate *time.Time `type:"timestamp"`
6247
6248	// The name of the specified access point.
6249	Name *string `min:"3" type:"string"`
6250
6251	// Indicates whether this access point allows access from the public internet.
6252	// If VpcConfiguration is specified for this access point, then NetworkOrigin
6253	// is VPC, and the access point doesn't allow access from the public internet.
6254	// Otherwise, NetworkOrigin is Internet, and the access point allows access
6255	// from the public internet, subject to the access point and bucket access policies.
6256	//
6257	// This will always be true for an Amazon S3 on Outposts access point
6258	NetworkOrigin *string `type:"string" enum:"NetworkOrigin"`
6259
6260	// The PublicAccessBlock configuration that you want to apply to this Amazon
6261	// S3 account. You can enable the configuration options in any combination.
6262	// For more information about when Amazon S3 considers a bucket or object public,
6263	// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
6264	// in the Amazon Simple Storage Service Developer Guide.
6265	//
6266	// This is not supported for Amazon S3 on Outposts.
6267	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
6268
6269	// Contains the virtual private cloud (VPC) configuration for the specified
6270	// access point.
6271	VpcConfiguration *VpcConfiguration `type:"structure"`
6272}
6273
6274// String returns the string representation
6275func (s GetAccessPointOutput) String() string {
6276	return awsutil.Prettify(s)
6277}
6278
6279// GoString returns the string representation
6280func (s GetAccessPointOutput) GoString() string {
6281	return s.String()
6282}
6283
6284// SetBucket sets the Bucket field's value.
6285func (s *GetAccessPointOutput) SetBucket(v string) *GetAccessPointOutput {
6286	s.Bucket = &v
6287	return s
6288}
6289
6290// SetCreationDate sets the CreationDate field's value.
6291func (s *GetAccessPointOutput) SetCreationDate(v time.Time) *GetAccessPointOutput {
6292	s.CreationDate = &v
6293	return s
6294}
6295
6296// SetName sets the Name field's value.
6297func (s *GetAccessPointOutput) SetName(v string) *GetAccessPointOutput {
6298	s.Name = &v
6299	return s
6300}
6301
6302// SetNetworkOrigin sets the NetworkOrigin field's value.
6303func (s *GetAccessPointOutput) SetNetworkOrigin(v string) *GetAccessPointOutput {
6304	s.NetworkOrigin = &v
6305	return s
6306}
6307
6308// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
6309func (s *GetAccessPointOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointOutput {
6310	s.PublicAccessBlockConfiguration = v
6311	return s
6312}
6313
6314// SetVpcConfiguration sets the VpcConfiguration field's value.
6315func (s *GetAccessPointOutput) SetVpcConfiguration(v *VpcConfiguration) *GetAccessPointOutput {
6316	s.VpcConfiguration = v
6317	return s
6318}
6319
6320type GetAccessPointPolicyInput struct {
6321	_ struct{} `locationName:"GetAccessPointPolicyRequest" type:"structure"`
6322
6323	// The account ID for the account that owns the specified access point.
6324	//
6325	// AccountId is a required field
6326	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6327
6328	// The name of the access point whose policy you want to retrieve.
6329	//
6330	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6331	// must specify the name and the x-amz-outpost-id as well.
6332	//
6333	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
6334	// must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
6335	// For example, to access the access point reports-ap through outpost my-outpost
6336	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
6337	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
6338	// The value must be URL encoded.
6339	//
6340	// Name is a required field
6341	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6342}
6343
6344// String returns the string representation
6345func (s GetAccessPointPolicyInput) String() string {
6346	return awsutil.Prettify(s)
6347}
6348
6349// GoString returns the string representation
6350func (s GetAccessPointPolicyInput) GoString() string {
6351	return s.String()
6352}
6353
6354// Validate inspects the fields of the type to determine if they are valid.
6355func (s *GetAccessPointPolicyInput) Validate() error {
6356	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyInput"}
6357	if s.AccountId == nil {
6358		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6359	}
6360	if s.AccountId != nil && len(*s.AccountId) < 1 {
6361		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6362	}
6363	if s.Name == nil {
6364		invalidParams.Add(request.NewErrParamRequired("Name"))
6365	}
6366	if s.Name != nil && len(*s.Name) < 3 {
6367		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
6368	}
6369
6370	if invalidParams.Len() > 0 {
6371		return invalidParams
6372	}
6373	return nil
6374}
6375
6376// SetAccountId sets the AccountId field's value.
6377func (s *GetAccessPointPolicyInput) SetAccountId(v string) *GetAccessPointPolicyInput {
6378	s.AccountId = &v
6379	return s
6380}
6381
6382// SetName sets the Name field's value.
6383func (s *GetAccessPointPolicyInput) SetName(v string) *GetAccessPointPolicyInput {
6384	s.Name = &v
6385	return s
6386}
6387
6388func (s *GetAccessPointPolicyInput) hostLabels() map[string]string {
6389	return map[string]string{
6390		"AccountId": aws.StringValue(s.AccountId),
6391	}
6392}
6393
6394func (s *GetAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
6395	if s.Name == nil {
6396		return nil, fmt.Errorf("member Name is nil")
6397	}
6398	return parseEndpointARN(*s.Name)
6399}
6400
6401func (s *GetAccessPointPolicyInput) hasEndpointARN() bool {
6402	if s.Name == nil {
6403		return false
6404	}
6405	return arn.IsARN(*s.Name)
6406}
6407
6408// updateArnableField updates the value of the input field that
6409// takes an ARN as an input. This method is useful to backfill
6410// the parsed resource name from ARN into the input member.
6411// It returns a pointer to a modified copy of input and an error.
6412// Note that original input is not modified.
6413func (s GetAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
6414	if s.Name == nil {
6415		return nil, fmt.Errorf("member Name is nil")
6416	}
6417	s.Name = aws.String(v)
6418	return &s, nil
6419}
6420
6421// updateAccountID returns a pointer to a modified copy of input,
6422// if account id is not provided, we update the account id in modified input
6423// if account id is provided, but doesn't match with the one in ARN, we throw an error
6424// if account id is not updated, we return nil. Note that original input is not modified.
6425func (s GetAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
6426	if s.AccountId == nil {
6427		s.AccountId = aws.String(accountId)
6428		return &s, nil
6429	} else if *s.AccountId != accountId {
6430		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6431	}
6432	return nil, nil
6433}
6434
6435type GetAccessPointPolicyOutput struct {
6436	_ struct{} `type:"structure"`
6437
6438	// The access point policy associated with the specified access point.
6439	Policy *string `type:"string"`
6440}
6441
6442// String returns the string representation
6443func (s GetAccessPointPolicyOutput) String() string {
6444	return awsutil.Prettify(s)
6445}
6446
6447// GoString returns the string representation
6448func (s GetAccessPointPolicyOutput) GoString() string {
6449	return s.String()
6450}
6451
6452// SetPolicy sets the Policy field's value.
6453func (s *GetAccessPointPolicyOutput) SetPolicy(v string) *GetAccessPointPolicyOutput {
6454	s.Policy = &v
6455	return s
6456}
6457
6458type GetAccessPointPolicyStatusInput struct {
6459	_ struct{} `locationName:"GetAccessPointPolicyStatusRequest" type:"structure"`
6460
6461	// The account ID for the account that owns the specified access point.
6462	//
6463	// AccountId is a required field
6464	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6465
6466	// The name of the access point whose policy status you want to retrieve.
6467	//
6468	// Name is a required field
6469	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6470}
6471
6472// String returns the string representation
6473func (s GetAccessPointPolicyStatusInput) String() string {
6474	return awsutil.Prettify(s)
6475}
6476
6477// GoString returns the string representation
6478func (s GetAccessPointPolicyStatusInput) GoString() string {
6479	return s.String()
6480}
6481
6482// Validate inspects the fields of the type to determine if they are valid.
6483func (s *GetAccessPointPolicyStatusInput) Validate() error {
6484	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusInput"}
6485	if s.AccountId == nil {
6486		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6487	}
6488	if s.AccountId != nil && len(*s.AccountId) < 1 {
6489		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6490	}
6491	if s.Name == nil {
6492		invalidParams.Add(request.NewErrParamRequired("Name"))
6493	}
6494	if s.Name != nil && len(*s.Name) < 3 {
6495		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
6496	}
6497
6498	if invalidParams.Len() > 0 {
6499		return invalidParams
6500	}
6501	return nil
6502}
6503
6504// SetAccountId sets the AccountId field's value.
6505func (s *GetAccessPointPolicyStatusInput) SetAccountId(v string) *GetAccessPointPolicyStatusInput {
6506	s.AccountId = &v
6507	return s
6508}
6509
6510// SetName sets the Name field's value.
6511func (s *GetAccessPointPolicyStatusInput) SetName(v string) *GetAccessPointPolicyStatusInput {
6512	s.Name = &v
6513	return s
6514}
6515
6516func (s *GetAccessPointPolicyStatusInput) hostLabels() map[string]string {
6517	return map[string]string{
6518		"AccountId": aws.StringValue(s.AccountId),
6519	}
6520}
6521
6522type GetAccessPointPolicyStatusOutput struct {
6523	_ struct{} `type:"structure"`
6524
6525	// Indicates the current policy status of the specified access point.
6526	PolicyStatus *PolicyStatus `type:"structure"`
6527}
6528
6529// String returns the string representation
6530func (s GetAccessPointPolicyStatusOutput) String() string {
6531	return awsutil.Prettify(s)
6532}
6533
6534// GoString returns the string representation
6535func (s GetAccessPointPolicyStatusOutput) GoString() string {
6536	return s.String()
6537}
6538
6539// SetPolicyStatus sets the PolicyStatus field's value.
6540func (s *GetAccessPointPolicyStatusOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusOutput {
6541	s.PolicyStatus = v
6542	return s
6543}
6544
6545type GetBucketInput struct {
6546	_ struct{} `locationName:"GetBucketRequest" type:"structure"`
6547
6548	// The AWS account ID of the Outposts bucket.
6549	//
6550	// AccountId is a required field
6551	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6552
6553	// Specifies the bucket.
6554	//
6555	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6556	// must specify the name and the x-amz-outpost-id as well.
6557	//
6558	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
6559	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6560	// For example, to access the bucket reports through outpost my-outpost owned
6561	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
6562	// The value must be URL encoded.
6563	//
6564	// Bucket is a required field
6565	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6566}
6567
6568// String returns the string representation
6569func (s GetBucketInput) String() string {
6570	return awsutil.Prettify(s)
6571}
6572
6573// GoString returns the string representation
6574func (s GetBucketInput) GoString() string {
6575	return s.String()
6576}
6577
6578// Validate inspects the fields of the type to determine if they are valid.
6579func (s *GetBucketInput) Validate() error {
6580	invalidParams := request.ErrInvalidParams{Context: "GetBucketInput"}
6581	if s.AccountId == nil {
6582		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6583	}
6584	if s.AccountId != nil && len(*s.AccountId) < 1 {
6585		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6586	}
6587	if s.Bucket == nil {
6588		invalidParams.Add(request.NewErrParamRequired("Bucket"))
6589	}
6590	if s.Bucket != nil && len(*s.Bucket) < 3 {
6591		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
6592	}
6593
6594	if invalidParams.Len() > 0 {
6595		return invalidParams
6596	}
6597	return nil
6598}
6599
6600// SetAccountId sets the AccountId field's value.
6601func (s *GetBucketInput) SetAccountId(v string) *GetBucketInput {
6602	s.AccountId = &v
6603	return s
6604}
6605
6606// SetBucket sets the Bucket field's value.
6607func (s *GetBucketInput) SetBucket(v string) *GetBucketInput {
6608	s.Bucket = &v
6609	return s
6610}
6611
6612func (s *GetBucketInput) hostLabels() map[string]string {
6613	return map[string]string{
6614		"AccountId": aws.StringValue(s.AccountId),
6615	}
6616}
6617
6618func (s *GetBucketInput) getEndpointARN() (arn.Resource, error) {
6619	if s.Bucket == nil {
6620		return nil, fmt.Errorf("member Bucket is nil")
6621	}
6622	return parseEndpointARN(*s.Bucket)
6623}
6624
6625func (s *GetBucketInput) hasEndpointARN() bool {
6626	if s.Bucket == nil {
6627		return false
6628	}
6629	return arn.IsARN(*s.Bucket)
6630}
6631
6632// updateArnableField updates the value of the input field that
6633// takes an ARN as an input. This method is useful to backfill
6634// the parsed resource name from ARN into the input member.
6635// It returns a pointer to a modified copy of input and an error.
6636// Note that original input is not modified.
6637func (s GetBucketInput) updateArnableField(v string) (interface{}, error) {
6638	if s.Bucket == nil {
6639		return nil, fmt.Errorf("member Bucket is nil")
6640	}
6641	s.Bucket = aws.String(v)
6642	return &s, nil
6643}
6644
6645// updateAccountID returns a pointer to a modified copy of input,
6646// if account id is not provided, we update the account id in modified input
6647// if account id is provided, but doesn't match with the one in ARN, we throw an error
6648// if account id is not updated, we return nil. Note that original input is not modified.
6649func (s GetBucketInput) updateAccountID(accountId string) (interface{}, error) {
6650	if s.AccountId == nil {
6651		s.AccountId = aws.String(accountId)
6652		return &s, nil
6653	} else if *s.AccountId != accountId {
6654		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6655	}
6656	return nil, nil
6657}
6658
6659type GetBucketLifecycleConfigurationInput struct {
6660	_ struct{} `locationName:"GetBucketLifecycleConfigurationRequest" type:"structure"`
6661
6662	// The AWS account ID of the Outposts bucket.
6663	//
6664	// AccountId is a required field
6665	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6666
6667	// The Amazon Resource Name (ARN) of the bucket.
6668	//
6669	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6670	// must specify the name and the x-amz-outpost-id as well.
6671	//
6672	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
6673	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6674	// For example, to access the bucket reports through outpost my-outpost owned
6675	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
6676	// The value must be URL encoded.
6677	//
6678	// Bucket is a required field
6679	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6680}
6681
6682// String returns the string representation
6683func (s GetBucketLifecycleConfigurationInput) String() string {
6684	return awsutil.Prettify(s)
6685}
6686
6687// GoString returns the string representation
6688func (s GetBucketLifecycleConfigurationInput) GoString() string {
6689	return s.String()
6690}
6691
6692// Validate inspects the fields of the type to determine if they are valid.
6693func (s *GetBucketLifecycleConfigurationInput) Validate() error {
6694	invalidParams := request.ErrInvalidParams{Context: "GetBucketLifecycleConfigurationInput"}
6695	if s.AccountId == nil {
6696		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6697	}
6698	if s.AccountId != nil && len(*s.AccountId) < 1 {
6699		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6700	}
6701	if s.Bucket == nil {
6702		invalidParams.Add(request.NewErrParamRequired("Bucket"))
6703	}
6704	if s.Bucket != nil && len(*s.Bucket) < 3 {
6705		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
6706	}
6707
6708	if invalidParams.Len() > 0 {
6709		return invalidParams
6710	}
6711	return nil
6712}
6713
6714// SetAccountId sets the AccountId field's value.
6715func (s *GetBucketLifecycleConfigurationInput) SetAccountId(v string) *GetBucketLifecycleConfigurationInput {
6716	s.AccountId = &v
6717	return s
6718}
6719
6720// SetBucket sets the Bucket field's value.
6721func (s *GetBucketLifecycleConfigurationInput) SetBucket(v string) *GetBucketLifecycleConfigurationInput {
6722	s.Bucket = &v
6723	return s
6724}
6725
6726func (s *GetBucketLifecycleConfigurationInput) hostLabels() map[string]string {
6727	return map[string]string{
6728		"AccountId": aws.StringValue(s.AccountId),
6729	}
6730}
6731
6732func (s *GetBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
6733	if s.Bucket == nil {
6734		return nil, fmt.Errorf("member Bucket is nil")
6735	}
6736	return parseEndpointARN(*s.Bucket)
6737}
6738
6739func (s *GetBucketLifecycleConfigurationInput) hasEndpointARN() bool {
6740	if s.Bucket == nil {
6741		return false
6742	}
6743	return arn.IsARN(*s.Bucket)
6744}
6745
6746// updateArnableField updates the value of the input field that
6747// takes an ARN as an input. This method is useful to backfill
6748// the parsed resource name from ARN into the input member.
6749// It returns a pointer to a modified copy of input and an error.
6750// Note that original input is not modified.
6751func (s GetBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
6752	if s.Bucket == nil {
6753		return nil, fmt.Errorf("member Bucket is nil")
6754	}
6755	s.Bucket = aws.String(v)
6756	return &s, nil
6757}
6758
6759// updateAccountID returns a pointer to a modified copy of input,
6760// if account id is not provided, we update the account id in modified input
6761// if account id is provided, but doesn't match with the one in ARN, we throw an error
6762// if account id is not updated, we return nil. Note that original input is not modified.
6763func (s GetBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
6764	if s.AccountId == nil {
6765		s.AccountId = aws.String(accountId)
6766		return &s, nil
6767	} else if *s.AccountId != accountId {
6768		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6769	}
6770	return nil, nil
6771}
6772
6773type GetBucketLifecycleConfigurationOutput struct {
6774	_ struct{} `type:"structure"`
6775
6776	// Container for the lifecycle rule of the Outposts bucket.
6777	Rules []*LifecycleRule `locationNameList:"Rule" type:"list"`
6778}
6779
6780// String returns the string representation
6781func (s GetBucketLifecycleConfigurationOutput) String() string {
6782	return awsutil.Prettify(s)
6783}
6784
6785// GoString returns the string representation
6786func (s GetBucketLifecycleConfigurationOutput) GoString() string {
6787	return s.String()
6788}
6789
6790// SetRules sets the Rules field's value.
6791func (s *GetBucketLifecycleConfigurationOutput) SetRules(v []*LifecycleRule) *GetBucketLifecycleConfigurationOutput {
6792	s.Rules = v
6793	return s
6794}
6795
6796type GetBucketOutput struct {
6797	_ struct{} `type:"structure"`
6798
6799	// The Outposts bucket requested.
6800	Bucket *string `min:"3" type:"string"`
6801
6802	// The creation date of the Outposts bucket.
6803	CreationDate *time.Time `type:"timestamp"`
6804
6805	PublicAccessBlockEnabled *bool `type:"boolean"`
6806}
6807
6808// String returns the string representation
6809func (s GetBucketOutput) String() string {
6810	return awsutil.Prettify(s)
6811}
6812
6813// GoString returns the string representation
6814func (s GetBucketOutput) GoString() string {
6815	return s.String()
6816}
6817
6818// SetBucket sets the Bucket field's value.
6819func (s *GetBucketOutput) SetBucket(v string) *GetBucketOutput {
6820	s.Bucket = &v
6821	return s
6822}
6823
6824// SetCreationDate sets the CreationDate field's value.
6825func (s *GetBucketOutput) SetCreationDate(v time.Time) *GetBucketOutput {
6826	s.CreationDate = &v
6827	return s
6828}
6829
6830// SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value.
6831func (s *GetBucketOutput) SetPublicAccessBlockEnabled(v bool) *GetBucketOutput {
6832	s.PublicAccessBlockEnabled = &v
6833	return s
6834}
6835
6836type GetBucketPolicyInput struct {
6837	_ struct{} `locationName:"GetBucketPolicyRequest" type:"structure"`
6838
6839	// The AWS account ID of the Outposts bucket.
6840	//
6841	// AccountId is a required field
6842	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6843
6844	// Specifies the bucket.
6845	//
6846	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6847	// must specify the name and the x-amz-outpost-id as well.
6848	//
6849	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
6850	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6851	// For example, to access the bucket reports through outpost my-outpost owned
6852	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
6853	// The value must be URL encoded.
6854	//
6855	// Bucket is a required field
6856	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6857}
6858
6859// String returns the string representation
6860func (s GetBucketPolicyInput) String() string {
6861	return awsutil.Prettify(s)
6862}
6863
6864// GoString returns the string representation
6865func (s GetBucketPolicyInput) GoString() string {
6866	return s.String()
6867}
6868
6869// Validate inspects the fields of the type to determine if they are valid.
6870func (s *GetBucketPolicyInput) Validate() error {
6871	invalidParams := request.ErrInvalidParams{Context: "GetBucketPolicyInput"}
6872	if s.AccountId == nil {
6873		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6874	}
6875	if s.AccountId != nil && len(*s.AccountId) < 1 {
6876		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6877	}
6878	if s.Bucket == nil {
6879		invalidParams.Add(request.NewErrParamRequired("Bucket"))
6880	}
6881	if s.Bucket != nil && len(*s.Bucket) < 3 {
6882		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
6883	}
6884
6885	if invalidParams.Len() > 0 {
6886		return invalidParams
6887	}
6888	return nil
6889}
6890
6891// SetAccountId sets the AccountId field's value.
6892func (s *GetBucketPolicyInput) SetAccountId(v string) *GetBucketPolicyInput {
6893	s.AccountId = &v
6894	return s
6895}
6896
6897// SetBucket sets the Bucket field's value.
6898func (s *GetBucketPolicyInput) SetBucket(v string) *GetBucketPolicyInput {
6899	s.Bucket = &v
6900	return s
6901}
6902
6903func (s *GetBucketPolicyInput) hostLabels() map[string]string {
6904	return map[string]string{
6905		"AccountId": aws.StringValue(s.AccountId),
6906	}
6907}
6908
6909func (s *GetBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
6910	if s.Bucket == nil {
6911		return nil, fmt.Errorf("member Bucket is nil")
6912	}
6913	return parseEndpointARN(*s.Bucket)
6914}
6915
6916func (s *GetBucketPolicyInput) hasEndpointARN() bool {
6917	if s.Bucket == nil {
6918		return false
6919	}
6920	return arn.IsARN(*s.Bucket)
6921}
6922
6923// updateArnableField updates the value of the input field that
6924// takes an ARN as an input. This method is useful to backfill
6925// the parsed resource name from ARN into the input member.
6926// It returns a pointer to a modified copy of input and an error.
6927// Note that original input is not modified.
6928func (s GetBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
6929	if s.Bucket == nil {
6930		return nil, fmt.Errorf("member Bucket is nil")
6931	}
6932	s.Bucket = aws.String(v)
6933	return &s, nil
6934}
6935
6936// updateAccountID returns a pointer to a modified copy of input,
6937// if account id is not provided, we update the account id in modified input
6938// if account id is provided, but doesn't match with the one in ARN, we throw an error
6939// if account id is not updated, we return nil. Note that original input is not modified.
6940func (s GetBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
6941	if s.AccountId == nil {
6942		s.AccountId = aws.String(accountId)
6943		return &s, nil
6944	} else if *s.AccountId != accountId {
6945		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6946	}
6947	return nil, nil
6948}
6949
6950type GetBucketPolicyOutput struct {
6951	_ struct{} `type:"structure"`
6952
6953	// The policy of the Outposts bucket.
6954	Policy *string `type:"string"`
6955}
6956
6957// String returns the string representation
6958func (s GetBucketPolicyOutput) String() string {
6959	return awsutil.Prettify(s)
6960}
6961
6962// GoString returns the string representation
6963func (s GetBucketPolicyOutput) GoString() string {
6964	return s.String()
6965}
6966
6967// SetPolicy sets the Policy field's value.
6968func (s *GetBucketPolicyOutput) SetPolicy(v string) *GetBucketPolicyOutput {
6969	s.Policy = &v
6970	return s
6971}
6972
6973type GetBucketTaggingInput struct {
6974	_ struct{} `locationName:"GetBucketTaggingRequest" type:"structure"`
6975
6976	// The AWS account ID of the Outposts bucket.
6977	//
6978	// AccountId is a required field
6979	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6980
6981	// Specifies the bucket.
6982	//
6983	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6984	// must specify the name and the x-amz-outpost-id as well.
6985	//
6986	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
6987	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6988	// For example, to access the bucket reports through outpost my-outpost owned
6989	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
6990	// The value must be URL encoded.
6991	//
6992	// Bucket is a required field
6993	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6994}
6995
6996// String returns the string representation
6997func (s GetBucketTaggingInput) String() string {
6998	return awsutil.Prettify(s)
6999}
7000
7001// GoString returns the string representation
7002func (s GetBucketTaggingInput) GoString() string {
7003	return s.String()
7004}
7005
7006// Validate inspects the fields of the type to determine if they are valid.
7007func (s *GetBucketTaggingInput) Validate() error {
7008	invalidParams := request.ErrInvalidParams{Context: "GetBucketTaggingInput"}
7009	if s.AccountId == nil {
7010		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7011	}
7012	if s.AccountId != nil && len(*s.AccountId) < 1 {
7013		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7014	}
7015	if s.Bucket == nil {
7016		invalidParams.Add(request.NewErrParamRequired("Bucket"))
7017	}
7018	if s.Bucket != nil && len(*s.Bucket) < 3 {
7019		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
7020	}
7021
7022	if invalidParams.Len() > 0 {
7023		return invalidParams
7024	}
7025	return nil
7026}
7027
7028// SetAccountId sets the AccountId field's value.
7029func (s *GetBucketTaggingInput) SetAccountId(v string) *GetBucketTaggingInput {
7030	s.AccountId = &v
7031	return s
7032}
7033
7034// SetBucket sets the Bucket field's value.
7035func (s *GetBucketTaggingInput) SetBucket(v string) *GetBucketTaggingInput {
7036	s.Bucket = &v
7037	return s
7038}
7039
7040func (s *GetBucketTaggingInput) hostLabels() map[string]string {
7041	return map[string]string{
7042		"AccountId": aws.StringValue(s.AccountId),
7043	}
7044}
7045
7046func (s *GetBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
7047	if s.Bucket == nil {
7048		return nil, fmt.Errorf("member Bucket is nil")
7049	}
7050	return parseEndpointARN(*s.Bucket)
7051}
7052
7053func (s *GetBucketTaggingInput) hasEndpointARN() bool {
7054	if s.Bucket == nil {
7055		return false
7056	}
7057	return arn.IsARN(*s.Bucket)
7058}
7059
7060// updateArnableField updates the value of the input field that
7061// takes an ARN as an input. This method is useful to backfill
7062// the parsed resource name from ARN into the input member.
7063// It returns a pointer to a modified copy of input and an error.
7064// Note that original input is not modified.
7065func (s GetBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
7066	if s.Bucket == nil {
7067		return nil, fmt.Errorf("member Bucket is nil")
7068	}
7069	s.Bucket = aws.String(v)
7070	return &s, nil
7071}
7072
7073// updateAccountID returns a pointer to a modified copy of input,
7074// if account id is not provided, we update the account id in modified input
7075// if account id is provided, but doesn't match with the one in ARN, we throw an error
7076// if account id is not updated, we return nil. Note that original input is not modified.
7077func (s GetBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
7078	if s.AccountId == nil {
7079		s.AccountId = aws.String(accountId)
7080		return &s, nil
7081	} else if *s.AccountId != accountId {
7082		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
7083	}
7084	return nil, nil
7085}
7086
7087type GetBucketTaggingOutput struct {
7088	_ struct{} `type:"structure"`
7089
7090	// The tags set of the Outposts bucket.
7091	//
7092	// TagSet is a required field
7093	TagSet []*S3Tag `type:"list" required:"true"`
7094}
7095
7096// String returns the string representation
7097func (s GetBucketTaggingOutput) String() string {
7098	return awsutil.Prettify(s)
7099}
7100
7101// GoString returns the string representation
7102func (s GetBucketTaggingOutput) GoString() string {
7103	return s.String()
7104}
7105
7106// SetTagSet sets the TagSet field's value.
7107func (s *GetBucketTaggingOutput) SetTagSet(v []*S3Tag) *GetBucketTaggingOutput {
7108	s.TagSet = v
7109	return s
7110}
7111
7112type GetJobTaggingInput struct {
7113	_ struct{} `locationName:"GetJobTaggingRequest" type:"structure"`
7114
7115	// The AWS account ID associated with the S3 Batch Operations job.
7116	//
7117	// AccountId is a required field
7118	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7119
7120	// The ID for the S3 Batch Operations job whose tags you want to retrieve.
7121	//
7122	// JobId is a required field
7123	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
7124}
7125
7126// String returns the string representation
7127func (s GetJobTaggingInput) String() string {
7128	return awsutil.Prettify(s)
7129}
7130
7131// GoString returns the string representation
7132func (s GetJobTaggingInput) GoString() string {
7133	return s.String()
7134}
7135
7136// Validate inspects the fields of the type to determine if they are valid.
7137func (s *GetJobTaggingInput) Validate() error {
7138	invalidParams := request.ErrInvalidParams{Context: "GetJobTaggingInput"}
7139	if s.AccountId == nil {
7140		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7141	}
7142	if s.AccountId != nil && len(*s.AccountId) < 1 {
7143		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7144	}
7145	if s.JobId == nil {
7146		invalidParams.Add(request.NewErrParamRequired("JobId"))
7147	}
7148	if s.JobId != nil && len(*s.JobId) < 5 {
7149		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
7150	}
7151
7152	if invalidParams.Len() > 0 {
7153		return invalidParams
7154	}
7155	return nil
7156}
7157
7158// SetAccountId sets the AccountId field's value.
7159func (s *GetJobTaggingInput) SetAccountId(v string) *GetJobTaggingInput {
7160	s.AccountId = &v
7161	return s
7162}
7163
7164// SetJobId sets the JobId field's value.
7165func (s *GetJobTaggingInput) SetJobId(v string) *GetJobTaggingInput {
7166	s.JobId = &v
7167	return s
7168}
7169
7170func (s *GetJobTaggingInput) hostLabels() map[string]string {
7171	return map[string]string{
7172		"AccountId": aws.StringValue(s.AccountId),
7173	}
7174}
7175
7176type GetJobTaggingOutput struct {
7177	_ struct{} `type:"structure"`
7178
7179	// The set of tags associated with the S3 Batch Operations job.
7180	Tags []*S3Tag `type:"list"`
7181}
7182
7183// String returns the string representation
7184func (s GetJobTaggingOutput) String() string {
7185	return awsutil.Prettify(s)
7186}
7187
7188// GoString returns the string representation
7189func (s GetJobTaggingOutput) GoString() string {
7190	return s.String()
7191}
7192
7193// SetTags sets the Tags field's value.
7194func (s *GetJobTaggingOutput) SetTags(v []*S3Tag) *GetJobTaggingOutput {
7195	s.Tags = v
7196	return s
7197}
7198
7199type GetPublicAccessBlockInput struct {
7200	_ struct{} `locationName:"GetPublicAccessBlockRequest" type:"structure"`
7201
7202	// The account ID for the AWS account whose PublicAccessBlock configuration
7203	// you want to retrieve.
7204	//
7205	// AccountId is a required field
7206	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7207}
7208
7209// String returns the string representation
7210func (s GetPublicAccessBlockInput) String() string {
7211	return awsutil.Prettify(s)
7212}
7213
7214// GoString returns the string representation
7215func (s GetPublicAccessBlockInput) GoString() string {
7216	return s.String()
7217}
7218
7219// Validate inspects the fields of the type to determine if they are valid.
7220func (s *GetPublicAccessBlockInput) Validate() error {
7221	invalidParams := request.ErrInvalidParams{Context: "GetPublicAccessBlockInput"}
7222	if s.AccountId == nil {
7223		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7224	}
7225	if s.AccountId != nil && len(*s.AccountId) < 1 {
7226		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7227	}
7228
7229	if invalidParams.Len() > 0 {
7230		return invalidParams
7231	}
7232	return nil
7233}
7234
7235// SetAccountId sets the AccountId field's value.
7236func (s *GetPublicAccessBlockInput) SetAccountId(v string) *GetPublicAccessBlockInput {
7237	s.AccountId = &v
7238	return s
7239}
7240
7241func (s *GetPublicAccessBlockInput) hostLabels() map[string]string {
7242	return map[string]string{
7243		"AccountId": aws.StringValue(s.AccountId),
7244	}
7245}
7246
7247type GetPublicAccessBlockOutput struct {
7248	_ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"`
7249
7250	// The PublicAccessBlock configuration currently in effect for this AWS account.
7251	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
7252}
7253
7254// String returns the string representation
7255func (s GetPublicAccessBlockOutput) String() string {
7256	return awsutil.Prettify(s)
7257}
7258
7259// GoString returns the string representation
7260func (s GetPublicAccessBlockOutput) GoString() string {
7261	return s.String()
7262}
7263
7264// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
7265func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetPublicAccessBlockOutput {
7266	s.PublicAccessBlockConfiguration = v
7267	return s
7268}
7269
7270type GetStorageLensConfigurationInput struct {
7271	_ struct{} `locationName:"GetStorageLensConfigurationRequest" type:"structure"`
7272
7273	// The account ID of the requester.
7274	//
7275	// AccountId is a required field
7276	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7277
7278	// The ID of the Amazon S3 Storage Lens configuration.
7279	//
7280	// ConfigId is a required field
7281	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
7282}
7283
7284// String returns the string representation
7285func (s GetStorageLensConfigurationInput) String() string {
7286	return awsutil.Prettify(s)
7287}
7288
7289// GoString returns the string representation
7290func (s GetStorageLensConfigurationInput) GoString() string {
7291	return s.String()
7292}
7293
7294// Validate inspects the fields of the type to determine if they are valid.
7295func (s *GetStorageLensConfigurationInput) Validate() error {
7296	invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationInput"}
7297	if s.AccountId == nil {
7298		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7299	}
7300	if s.AccountId != nil && len(*s.AccountId) < 1 {
7301		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7302	}
7303	if s.ConfigId == nil {
7304		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
7305	}
7306	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
7307		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
7308	}
7309
7310	if invalidParams.Len() > 0 {
7311		return invalidParams
7312	}
7313	return nil
7314}
7315
7316// SetAccountId sets the AccountId field's value.
7317func (s *GetStorageLensConfigurationInput) SetAccountId(v string) *GetStorageLensConfigurationInput {
7318	s.AccountId = &v
7319	return s
7320}
7321
7322// SetConfigId sets the ConfigId field's value.
7323func (s *GetStorageLensConfigurationInput) SetConfigId(v string) *GetStorageLensConfigurationInput {
7324	s.ConfigId = &v
7325	return s
7326}
7327
7328func (s *GetStorageLensConfigurationInput) hostLabels() map[string]string {
7329	return map[string]string{
7330		"AccountId": aws.StringValue(s.AccountId),
7331	}
7332}
7333
7334type GetStorageLensConfigurationOutput struct {
7335	_ struct{} `type:"structure" payload:"StorageLensConfiguration"`
7336
7337	// The S3 Storage Lens configuration requested.
7338	StorageLensConfiguration *StorageLensConfiguration `type:"structure"`
7339}
7340
7341// String returns the string representation
7342func (s GetStorageLensConfigurationOutput) String() string {
7343	return awsutil.Prettify(s)
7344}
7345
7346// GoString returns the string representation
7347func (s GetStorageLensConfigurationOutput) GoString() string {
7348	return s.String()
7349}
7350
7351// SetStorageLensConfiguration sets the StorageLensConfiguration field's value.
7352func (s *GetStorageLensConfigurationOutput) SetStorageLensConfiguration(v *StorageLensConfiguration) *GetStorageLensConfigurationOutput {
7353	s.StorageLensConfiguration = v
7354	return s
7355}
7356
7357type GetStorageLensConfigurationTaggingInput struct {
7358	_ struct{} `locationName:"GetStorageLensConfigurationTaggingRequest" type:"structure"`
7359
7360	// The account ID of the requester.
7361	//
7362	// AccountId is a required field
7363	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7364
7365	// The ID of the Amazon S3 Storage Lens configuration.
7366	//
7367	// ConfigId is a required field
7368	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
7369}
7370
7371// String returns the string representation
7372func (s GetStorageLensConfigurationTaggingInput) String() string {
7373	return awsutil.Prettify(s)
7374}
7375
7376// GoString returns the string representation
7377func (s GetStorageLensConfigurationTaggingInput) GoString() string {
7378	return s.String()
7379}
7380
7381// Validate inspects the fields of the type to determine if they are valid.
7382func (s *GetStorageLensConfigurationTaggingInput) Validate() error {
7383	invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationTaggingInput"}
7384	if s.AccountId == nil {
7385		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7386	}
7387	if s.AccountId != nil && len(*s.AccountId) < 1 {
7388		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7389	}
7390	if s.ConfigId == nil {
7391		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
7392	}
7393	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
7394		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
7395	}
7396
7397	if invalidParams.Len() > 0 {
7398		return invalidParams
7399	}
7400	return nil
7401}
7402
7403// SetAccountId sets the AccountId field's value.
7404func (s *GetStorageLensConfigurationTaggingInput) SetAccountId(v string) *GetStorageLensConfigurationTaggingInput {
7405	s.AccountId = &v
7406	return s
7407}
7408
7409// SetConfigId sets the ConfigId field's value.
7410func (s *GetStorageLensConfigurationTaggingInput) SetConfigId(v string) *GetStorageLensConfigurationTaggingInput {
7411	s.ConfigId = &v
7412	return s
7413}
7414
7415func (s *GetStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
7416	return map[string]string{
7417		"AccountId": aws.StringValue(s.AccountId),
7418	}
7419}
7420
7421type GetStorageLensConfigurationTaggingOutput struct {
7422	_ struct{} `type:"structure"`
7423
7424	// The tags of S3 Storage Lens configuration requested.
7425	Tags []*StorageLensTag `locationNameList:"Tag" type:"list"`
7426}
7427
7428// String returns the string representation
7429func (s GetStorageLensConfigurationTaggingOutput) String() string {
7430	return awsutil.Prettify(s)
7431}
7432
7433// GoString returns the string representation
7434func (s GetStorageLensConfigurationTaggingOutput) GoString() string {
7435	return s.String()
7436}
7437
7438// SetTags sets the Tags field's value.
7439func (s *GetStorageLensConfigurationTaggingOutput) SetTags(v []*StorageLensTag) *GetStorageLensConfigurationTaggingOutput {
7440	s.Tags = v
7441	return s
7442}
7443
7444// A container for what Amazon S3 Storage Lens configuration includes.
7445type Include struct {
7446	_ struct{} `type:"structure"`
7447
7448	// A container for the S3 Storage Lens bucket includes.
7449	Buckets []*string `locationNameList:"Arn" type:"list"`
7450
7451	// A container for the S3 Storage Lens Region includes.
7452	Regions []*string `locationNameList:"Region" type:"list"`
7453}
7454
7455// String returns the string representation
7456func (s Include) String() string {
7457	return awsutil.Prettify(s)
7458}
7459
7460// GoString returns the string representation
7461func (s Include) GoString() string {
7462	return s.String()
7463}
7464
7465// SetBuckets sets the Buckets field's value.
7466func (s *Include) SetBuckets(v []*string) *Include {
7467	s.Buckets = v
7468	return s
7469}
7470
7471// SetRegions sets the Regions field's value.
7472func (s *Include) SetRegions(v []*string) *Include {
7473	s.Regions = v
7474	return s
7475}
7476
7477// A container element for the job configuration and status information returned
7478// by a Describe Job request.
7479type JobDescriptor struct {
7480	_ struct{} `type:"structure"`
7481
7482	// Indicates whether confirmation is required before Amazon S3 begins running
7483	// the specified job. Confirmation is required only for jobs created through
7484	// the Amazon S3 console.
7485	ConfirmationRequired *bool `type:"boolean"`
7486
7487	// A timestamp indicating when this job was created.
7488	CreationTime *time.Time `type:"timestamp"`
7489
7490	// The description for this job, if one was provided in this job's Create Job
7491	// request.
7492	Description *string `min:"1" type:"string"`
7493
7494	// If the specified job failed, this field contains information describing the
7495	// failure.
7496	FailureReasons []*JobFailure `type:"list"`
7497
7498	// The Amazon Resource Name (ARN) for this job.
7499	JobArn *string `min:"1" type:"string"`
7500
7501	// The ID for the specified job.
7502	JobId *string `min:"5" type:"string"`
7503
7504	// The configuration information for the specified job's manifest object.
7505	Manifest *JobManifest `type:"structure"`
7506
7507	// The operation that the specified job is configured to run on the objects
7508	// listed in the manifest.
7509	Operation *JobOperation `type:"structure"`
7510
7511	// The priority of the specified job.
7512	Priority *int64 `type:"integer"`
7513
7514	// Describes the total number of tasks that the specified job has run, the number
7515	// of tasks that succeeded, and the number of tasks that failed.
7516	ProgressSummary *JobProgressSummary `type:"structure"`
7517
7518	// Contains the configuration information for the job-completion report if you
7519	// requested one in the Create Job request.
7520	Report *JobReport `type:"structure"`
7521
7522	// The Amazon Resource Name (ARN) for the AWS Identity and Access Management
7523	// (IAM) role assigned to run the tasks for this job.
7524	RoleArn *string `min:"1" type:"string"`
7525
7526	// The current status of the specified job.
7527	Status *string `type:"string" enum:"JobStatus"`
7528
7529	// The reason for updating the job.
7530	StatusUpdateReason *string `min:"1" type:"string"`
7531
7532	// The reason why the specified job was suspended. A job is only suspended if
7533	// you create it through the Amazon S3 console. When you create the job, it
7534	// enters the Suspended state to await confirmation before running. After you
7535	// confirm the job, it automatically exits the Suspended state.
7536	SuspendedCause *string `min:"1" type:"string"`
7537
7538	// The timestamp when this job was suspended, if it has been suspended.
7539	SuspendedDate *time.Time `type:"timestamp"`
7540
7541	// A timestamp indicating when this job terminated. A job's termination date
7542	// is the date and time when it succeeded, failed, or was canceled.
7543	TerminationDate *time.Time `type:"timestamp"`
7544}
7545
7546// String returns the string representation
7547func (s JobDescriptor) String() string {
7548	return awsutil.Prettify(s)
7549}
7550
7551// GoString returns the string representation
7552func (s JobDescriptor) GoString() string {
7553	return s.String()
7554}
7555
7556// SetConfirmationRequired sets the ConfirmationRequired field's value.
7557func (s *JobDescriptor) SetConfirmationRequired(v bool) *JobDescriptor {
7558	s.ConfirmationRequired = &v
7559	return s
7560}
7561
7562// SetCreationTime sets the CreationTime field's value.
7563func (s *JobDescriptor) SetCreationTime(v time.Time) *JobDescriptor {
7564	s.CreationTime = &v
7565	return s
7566}
7567
7568// SetDescription sets the Description field's value.
7569func (s *JobDescriptor) SetDescription(v string) *JobDescriptor {
7570	s.Description = &v
7571	return s
7572}
7573
7574// SetFailureReasons sets the FailureReasons field's value.
7575func (s *JobDescriptor) SetFailureReasons(v []*JobFailure) *JobDescriptor {
7576	s.FailureReasons = v
7577	return s
7578}
7579
7580// SetJobArn sets the JobArn field's value.
7581func (s *JobDescriptor) SetJobArn(v string) *JobDescriptor {
7582	s.JobArn = &v
7583	return s
7584}
7585
7586// SetJobId sets the JobId field's value.
7587func (s *JobDescriptor) SetJobId(v string) *JobDescriptor {
7588	s.JobId = &v
7589	return s
7590}
7591
7592// SetManifest sets the Manifest field's value.
7593func (s *JobDescriptor) SetManifest(v *JobManifest) *JobDescriptor {
7594	s.Manifest = v
7595	return s
7596}
7597
7598// SetOperation sets the Operation field's value.
7599func (s *JobDescriptor) SetOperation(v *JobOperation) *JobDescriptor {
7600	s.Operation = v
7601	return s
7602}
7603
7604// SetPriority sets the Priority field's value.
7605func (s *JobDescriptor) SetPriority(v int64) *JobDescriptor {
7606	s.Priority = &v
7607	return s
7608}
7609
7610// SetProgressSummary sets the ProgressSummary field's value.
7611func (s *JobDescriptor) SetProgressSummary(v *JobProgressSummary) *JobDescriptor {
7612	s.ProgressSummary = v
7613	return s
7614}
7615
7616// SetReport sets the Report field's value.
7617func (s *JobDescriptor) SetReport(v *JobReport) *JobDescriptor {
7618	s.Report = v
7619	return s
7620}
7621
7622// SetRoleArn sets the RoleArn field's value.
7623func (s *JobDescriptor) SetRoleArn(v string) *JobDescriptor {
7624	s.RoleArn = &v
7625	return s
7626}
7627
7628// SetStatus sets the Status field's value.
7629func (s *JobDescriptor) SetStatus(v string) *JobDescriptor {
7630	s.Status = &v
7631	return s
7632}
7633
7634// SetStatusUpdateReason sets the StatusUpdateReason field's value.
7635func (s *JobDescriptor) SetStatusUpdateReason(v string) *JobDescriptor {
7636	s.StatusUpdateReason = &v
7637	return s
7638}
7639
7640// SetSuspendedCause sets the SuspendedCause field's value.
7641func (s *JobDescriptor) SetSuspendedCause(v string) *JobDescriptor {
7642	s.SuspendedCause = &v
7643	return s
7644}
7645
7646// SetSuspendedDate sets the SuspendedDate field's value.
7647func (s *JobDescriptor) SetSuspendedDate(v time.Time) *JobDescriptor {
7648	s.SuspendedDate = &v
7649	return s
7650}
7651
7652// SetTerminationDate sets the TerminationDate field's value.
7653func (s *JobDescriptor) SetTerminationDate(v time.Time) *JobDescriptor {
7654	s.TerminationDate = &v
7655	return s
7656}
7657
7658// If this job failed, this element indicates why the job failed.
7659type JobFailure struct {
7660	_ struct{} `type:"structure"`
7661
7662	// The failure code, if any, for the specified job.
7663	FailureCode *string `min:"1" type:"string"`
7664
7665	// The failure reason, if any, for the specified job.
7666	FailureReason *string `min:"1" type:"string"`
7667}
7668
7669// String returns the string representation
7670func (s JobFailure) String() string {
7671	return awsutil.Prettify(s)
7672}
7673
7674// GoString returns the string representation
7675func (s JobFailure) GoString() string {
7676	return s.String()
7677}
7678
7679// SetFailureCode sets the FailureCode field's value.
7680func (s *JobFailure) SetFailureCode(v string) *JobFailure {
7681	s.FailureCode = &v
7682	return s
7683}
7684
7685// SetFailureReason sets the FailureReason field's value.
7686func (s *JobFailure) SetFailureReason(v string) *JobFailure {
7687	s.FailureReason = &v
7688	return s
7689}
7690
7691// Contains the configuration and status information for a single job retrieved
7692// as part of a job list.
7693type JobListDescriptor struct {
7694	_ struct{} `type:"structure"`
7695
7696	// A timestamp indicating when the specified job was created.
7697	CreationTime *time.Time `type:"timestamp"`
7698
7699	// The user-specified description that was included in the specified job's Create
7700	// Job request.
7701	Description *string `min:"1" type:"string"`
7702
7703	// The ID for the specified job.
7704	JobId *string `min:"5" type:"string"`
7705
7706	// The operation that the specified job is configured to run on every object
7707	// listed in the manifest.
7708	Operation *string `type:"string" enum:"OperationName"`
7709
7710	// The current priority for the specified job.
7711	Priority *int64 `type:"integer"`
7712
7713	// Describes the total number of tasks that the specified job has run, the number
7714	// of tasks that succeeded, and the number of tasks that failed.
7715	ProgressSummary *JobProgressSummary `type:"structure"`
7716
7717	// The specified job's current status.
7718	Status *string `type:"string" enum:"JobStatus"`
7719
7720	// A timestamp indicating when the specified job terminated. A job's termination
7721	// date is the date and time when it succeeded, failed, or was canceled.
7722	TerminationDate *time.Time `type:"timestamp"`
7723}
7724
7725// String returns the string representation
7726func (s JobListDescriptor) String() string {
7727	return awsutil.Prettify(s)
7728}
7729
7730// GoString returns the string representation
7731func (s JobListDescriptor) GoString() string {
7732	return s.String()
7733}
7734
7735// SetCreationTime sets the CreationTime field's value.
7736func (s *JobListDescriptor) SetCreationTime(v time.Time) *JobListDescriptor {
7737	s.CreationTime = &v
7738	return s
7739}
7740
7741// SetDescription sets the Description field's value.
7742func (s *JobListDescriptor) SetDescription(v string) *JobListDescriptor {
7743	s.Description = &v
7744	return s
7745}
7746
7747// SetJobId sets the JobId field's value.
7748func (s *JobListDescriptor) SetJobId(v string) *JobListDescriptor {
7749	s.JobId = &v
7750	return s
7751}
7752
7753// SetOperation sets the Operation field's value.
7754func (s *JobListDescriptor) SetOperation(v string) *JobListDescriptor {
7755	s.Operation = &v
7756	return s
7757}
7758
7759// SetPriority sets the Priority field's value.
7760func (s *JobListDescriptor) SetPriority(v int64) *JobListDescriptor {
7761	s.Priority = &v
7762	return s
7763}
7764
7765// SetProgressSummary sets the ProgressSummary field's value.
7766func (s *JobListDescriptor) SetProgressSummary(v *JobProgressSummary) *JobListDescriptor {
7767	s.ProgressSummary = v
7768	return s
7769}
7770
7771// SetStatus sets the Status field's value.
7772func (s *JobListDescriptor) SetStatus(v string) *JobListDescriptor {
7773	s.Status = &v
7774	return s
7775}
7776
7777// SetTerminationDate sets the TerminationDate field's value.
7778func (s *JobListDescriptor) SetTerminationDate(v time.Time) *JobListDescriptor {
7779	s.TerminationDate = &v
7780	return s
7781}
7782
7783// Contains the configuration information for a job's manifest.
7784type JobManifest struct {
7785	_ struct{} `type:"structure"`
7786
7787	// Contains the information required to locate the specified job's manifest.
7788	//
7789	// Location is a required field
7790	Location *JobManifestLocation `type:"structure" required:"true"`
7791
7792	// Describes the format of the specified job's manifest. If the manifest is
7793	// in CSV format, also describes the columns contained within the manifest.
7794	//
7795	// Spec is a required field
7796	Spec *JobManifestSpec `type:"structure" required:"true"`
7797}
7798
7799// String returns the string representation
7800func (s JobManifest) String() string {
7801	return awsutil.Prettify(s)
7802}
7803
7804// GoString returns the string representation
7805func (s JobManifest) GoString() string {
7806	return s.String()
7807}
7808
7809// Validate inspects the fields of the type to determine if they are valid.
7810func (s *JobManifest) Validate() error {
7811	invalidParams := request.ErrInvalidParams{Context: "JobManifest"}
7812	if s.Location == nil {
7813		invalidParams.Add(request.NewErrParamRequired("Location"))
7814	}
7815	if s.Spec == nil {
7816		invalidParams.Add(request.NewErrParamRequired("Spec"))
7817	}
7818	if s.Location != nil {
7819		if err := s.Location.Validate(); err != nil {
7820			invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
7821		}
7822	}
7823	if s.Spec != nil {
7824		if err := s.Spec.Validate(); err != nil {
7825			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
7826		}
7827	}
7828
7829	if invalidParams.Len() > 0 {
7830		return invalidParams
7831	}
7832	return nil
7833}
7834
7835// SetLocation sets the Location field's value.
7836func (s *JobManifest) SetLocation(v *JobManifestLocation) *JobManifest {
7837	s.Location = v
7838	return s
7839}
7840
7841// SetSpec sets the Spec field's value.
7842func (s *JobManifest) SetSpec(v *JobManifestSpec) *JobManifest {
7843	s.Spec = v
7844	return s
7845}
7846
7847// Contains the information required to locate a manifest object.
7848type JobManifestLocation struct {
7849	_ struct{} `type:"structure"`
7850
7851	// The ETag for the specified manifest object.
7852	//
7853	// ETag is a required field
7854	ETag *string `min:"1" type:"string" required:"true"`
7855
7856	// The Amazon Resource Name (ARN) for a manifest object.
7857	//
7858	// ObjectArn is a required field
7859	ObjectArn *string `min:"1" type:"string" required:"true"`
7860
7861	// The optional version ID to identify a specific version of the manifest object.
7862	ObjectVersionId *string `min:"1" type:"string"`
7863}
7864
7865// String returns the string representation
7866func (s JobManifestLocation) String() string {
7867	return awsutil.Prettify(s)
7868}
7869
7870// GoString returns the string representation
7871func (s JobManifestLocation) GoString() string {
7872	return s.String()
7873}
7874
7875// Validate inspects the fields of the type to determine if they are valid.
7876func (s *JobManifestLocation) Validate() error {
7877	invalidParams := request.ErrInvalidParams{Context: "JobManifestLocation"}
7878	if s.ETag == nil {
7879		invalidParams.Add(request.NewErrParamRequired("ETag"))
7880	}
7881	if s.ETag != nil && len(*s.ETag) < 1 {
7882		invalidParams.Add(request.NewErrParamMinLen("ETag", 1))
7883	}
7884	if s.ObjectArn == nil {
7885		invalidParams.Add(request.NewErrParamRequired("ObjectArn"))
7886	}
7887	if s.ObjectArn != nil && len(*s.ObjectArn) < 1 {
7888		invalidParams.Add(request.NewErrParamMinLen("ObjectArn", 1))
7889	}
7890	if s.ObjectVersionId != nil && len(*s.ObjectVersionId) < 1 {
7891		invalidParams.Add(request.NewErrParamMinLen("ObjectVersionId", 1))
7892	}
7893
7894	if invalidParams.Len() > 0 {
7895		return invalidParams
7896	}
7897	return nil
7898}
7899
7900// SetETag sets the ETag field's value.
7901func (s *JobManifestLocation) SetETag(v string) *JobManifestLocation {
7902	s.ETag = &v
7903	return s
7904}
7905
7906// SetObjectArn sets the ObjectArn field's value.
7907func (s *JobManifestLocation) SetObjectArn(v string) *JobManifestLocation {
7908	s.ObjectArn = &v
7909	return s
7910}
7911
7912// SetObjectVersionId sets the ObjectVersionId field's value.
7913func (s *JobManifestLocation) SetObjectVersionId(v string) *JobManifestLocation {
7914	s.ObjectVersionId = &v
7915	return s
7916}
7917
7918// Describes the format of a manifest. If the manifest is in CSV format, also
7919// describes the columns contained within the manifest.
7920type JobManifestSpec struct {
7921	_ struct{} `type:"structure"`
7922
7923	// If the specified manifest object is in the S3BatchOperations_CSV_20180820
7924	// format, this element describes which columns contain the required data.
7925	Fields []*string `type:"list"`
7926
7927	// Indicates which of the available formats the specified manifest uses.
7928	//
7929	// Format is a required field
7930	Format *string `type:"string" required:"true" enum:"JobManifestFormat"`
7931}
7932
7933// String returns the string representation
7934func (s JobManifestSpec) String() string {
7935	return awsutil.Prettify(s)
7936}
7937
7938// GoString returns the string representation
7939func (s JobManifestSpec) GoString() string {
7940	return s.String()
7941}
7942
7943// Validate inspects the fields of the type to determine if they are valid.
7944func (s *JobManifestSpec) Validate() error {
7945	invalidParams := request.ErrInvalidParams{Context: "JobManifestSpec"}
7946	if s.Format == nil {
7947		invalidParams.Add(request.NewErrParamRequired("Format"))
7948	}
7949
7950	if invalidParams.Len() > 0 {
7951		return invalidParams
7952	}
7953	return nil
7954}
7955
7956// SetFields sets the Fields field's value.
7957func (s *JobManifestSpec) SetFields(v []*string) *JobManifestSpec {
7958	s.Fields = v
7959	return s
7960}
7961
7962// SetFormat sets the Format field's value.
7963func (s *JobManifestSpec) SetFormat(v string) *JobManifestSpec {
7964	s.Format = &v
7965	return s
7966}
7967
7968// The operation that you want this job to perform on every object listed in
7969// the manifest. For more information about the available operations, see Operations
7970// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html)
7971// in the Amazon Simple Storage Service Developer Guide.
7972type JobOperation struct {
7973	_ struct{} `type:"structure"`
7974
7975	// Directs the specified job to invoke an AWS Lambda function on every object
7976	// in the manifest.
7977	LambdaInvoke *LambdaInvokeOperation `type:"structure"`
7978
7979	// Directs the specified job to initiate restore requests for every archived
7980	// object in the manifest.
7981	S3InitiateRestoreObject *S3InitiateRestoreObjectOperation `type:"structure"`
7982
7983	// Directs the specified job to run a PUT Object acl call on every object in
7984	// the manifest.
7985	S3PutObjectAcl *S3SetObjectAclOperation `type:"structure"`
7986
7987	// Directs the specified job to run a PUT Copy object call on every object in
7988	// the manifest.
7989	S3PutObjectCopy *S3CopyObjectOperation `type:"structure"`
7990
7991	// Contains the configuration for an S3 Object Lock legal hold operation that
7992	// an S3 Batch Operations job passes every object to the underlying PutObjectLegalHold
7993	// API. For more information, see Using S3 Object Lock legal hold with S3 Batch
7994	// Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html)
7995	// in the Amazon Simple Storage Service Developer Guide.
7996	S3PutObjectLegalHold *S3SetObjectLegalHoldOperation `type:"structure"`
7997
7998	// Contains the configuration parameters for the Object Lock retention action
7999	// for an S3 Batch Operations job. Batch Operations passes every object to the
8000	// underlying PutObjectRetention API. For more information, see Using S3 Object
8001	// Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
8002	// in the Amazon Simple Storage Service Developer Guide.
8003	S3PutObjectRetention *S3SetObjectRetentionOperation `type:"structure"`
8004
8005	// Directs the specified job to run a PUT Object tagging call on every object
8006	// in the manifest.
8007	S3PutObjectTagging *S3SetObjectTaggingOperation `type:"structure"`
8008}
8009
8010// String returns the string representation
8011func (s JobOperation) String() string {
8012	return awsutil.Prettify(s)
8013}
8014
8015// GoString returns the string representation
8016func (s JobOperation) GoString() string {
8017	return s.String()
8018}
8019
8020// Validate inspects the fields of the type to determine if they are valid.
8021func (s *JobOperation) Validate() error {
8022	invalidParams := request.ErrInvalidParams{Context: "JobOperation"}
8023	if s.LambdaInvoke != nil {
8024		if err := s.LambdaInvoke.Validate(); err != nil {
8025			invalidParams.AddNested("LambdaInvoke", err.(request.ErrInvalidParams))
8026		}
8027	}
8028	if s.S3PutObjectAcl != nil {
8029		if err := s.S3PutObjectAcl.Validate(); err != nil {
8030			invalidParams.AddNested("S3PutObjectAcl", err.(request.ErrInvalidParams))
8031		}
8032	}
8033	if s.S3PutObjectCopy != nil {
8034		if err := s.S3PutObjectCopy.Validate(); err != nil {
8035			invalidParams.AddNested("S3PutObjectCopy", err.(request.ErrInvalidParams))
8036		}
8037	}
8038	if s.S3PutObjectLegalHold != nil {
8039		if err := s.S3PutObjectLegalHold.Validate(); err != nil {
8040			invalidParams.AddNested("S3PutObjectLegalHold", err.(request.ErrInvalidParams))
8041		}
8042	}
8043	if s.S3PutObjectRetention != nil {
8044		if err := s.S3PutObjectRetention.Validate(); err != nil {
8045			invalidParams.AddNested("S3PutObjectRetention", err.(request.ErrInvalidParams))
8046		}
8047	}
8048	if s.S3PutObjectTagging != nil {
8049		if err := s.S3PutObjectTagging.Validate(); err != nil {
8050			invalidParams.AddNested("S3PutObjectTagging", err.(request.ErrInvalidParams))
8051		}
8052	}
8053
8054	if invalidParams.Len() > 0 {
8055		return invalidParams
8056	}
8057	return nil
8058}
8059
8060// SetLambdaInvoke sets the LambdaInvoke field's value.
8061func (s *JobOperation) SetLambdaInvoke(v *LambdaInvokeOperation) *JobOperation {
8062	s.LambdaInvoke = v
8063	return s
8064}
8065
8066// SetS3InitiateRestoreObject sets the S3InitiateRestoreObject field's value.
8067func (s *JobOperation) SetS3InitiateRestoreObject(v *S3InitiateRestoreObjectOperation) *JobOperation {
8068	s.S3InitiateRestoreObject = v
8069	return s
8070}
8071
8072// SetS3PutObjectAcl sets the S3PutObjectAcl field's value.
8073func (s *JobOperation) SetS3PutObjectAcl(v *S3SetObjectAclOperation) *JobOperation {
8074	s.S3PutObjectAcl = v
8075	return s
8076}
8077
8078// SetS3PutObjectCopy sets the S3PutObjectCopy field's value.
8079func (s *JobOperation) SetS3PutObjectCopy(v *S3CopyObjectOperation) *JobOperation {
8080	s.S3PutObjectCopy = v
8081	return s
8082}
8083
8084// SetS3PutObjectLegalHold sets the S3PutObjectLegalHold field's value.
8085func (s *JobOperation) SetS3PutObjectLegalHold(v *S3SetObjectLegalHoldOperation) *JobOperation {
8086	s.S3PutObjectLegalHold = v
8087	return s
8088}
8089
8090// SetS3PutObjectRetention sets the S3PutObjectRetention field's value.
8091func (s *JobOperation) SetS3PutObjectRetention(v *S3SetObjectRetentionOperation) *JobOperation {
8092	s.S3PutObjectRetention = v
8093	return s
8094}
8095
8096// SetS3PutObjectTagging sets the S3PutObjectTagging field's value.
8097func (s *JobOperation) SetS3PutObjectTagging(v *S3SetObjectTaggingOperation) *JobOperation {
8098	s.S3PutObjectTagging = v
8099	return s
8100}
8101
8102// Describes the total number of tasks that the specified job has started, the
8103// number of tasks that succeeded, and the number of tasks that failed.
8104type JobProgressSummary struct {
8105	_ struct{} `type:"structure"`
8106
8107	NumberOfTasksFailed *int64 `type:"long"`
8108
8109	NumberOfTasksSucceeded *int64 `type:"long"`
8110
8111	TotalNumberOfTasks *int64 `type:"long"`
8112}
8113
8114// String returns the string representation
8115func (s JobProgressSummary) String() string {
8116	return awsutil.Prettify(s)
8117}
8118
8119// GoString returns the string representation
8120func (s JobProgressSummary) GoString() string {
8121	return s.String()
8122}
8123
8124// SetNumberOfTasksFailed sets the NumberOfTasksFailed field's value.
8125func (s *JobProgressSummary) SetNumberOfTasksFailed(v int64) *JobProgressSummary {
8126	s.NumberOfTasksFailed = &v
8127	return s
8128}
8129
8130// SetNumberOfTasksSucceeded sets the NumberOfTasksSucceeded field's value.
8131func (s *JobProgressSummary) SetNumberOfTasksSucceeded(v int64) *JobProgressSummary {
8132	s.NumberOfTasksSucceeded = &v
8133	return s
8134}
8135
8136// SetTotalNumberOfTasks sets the TotalNumberOfTasks field's value.
8137func (s *JobProgressSummary) SetTotalNumberOfTasks(v int64) *JobProgressSummary {
8138	s.TotalNumberOfTasks = &v
8139	return s
8140}
8141
8142// Contains the configuration parameters for a job-completion report.
8143type JobReport struct {
8144	_ struct{} `type:"structure"`
8145
8146	// The Amazon Resource Name (ARN) for the bucket where specified job-completion
8147	// report will be stored.
8148	Bucket *string `min:"1" type:"string"`
8149
8150	// Indicates whether the specified job will generate a job-completion report.
8151	//
8152	// Enabled is a required field
8153	Enabled *bool `type:"boolean" required:"true"`
8154
8155	// The format of the specified job-completion report.
8156	Format *string `type:"string" enum:"JobReportFormat"`
8157
8158	// An optional prefix to describe where in the specified bucket the job-completion
8159	// report will be stored. Amazon S3 stores the job-completion report at <prefix>/job-<job-id>/report.json.
8160	Prefix *string `min:"1" type:"string"`
8161
8162	// Indicates whether the job-completion report will include details of all tasks
8163	// or only failed tasks.
8164	ReportScope *string `type:"string" enum:"JobReportScope"`
8165}
8166
8167// String returns the string representation
8168func (s JobReport) String() string {
8169	return awsutil.Prettify(s)
8170}
8171
8172// GoString returns the string representation
8173func (s JobReport) GoString() string {
8174	return s.String()
8175}
8176
8177// Validate inspects the fields of the type to determine if they are valid.
8178func (s *JobReport) Validate() error {
8179	invalidParams := request.ErrInvalidParams{Context: "JobReport"}
8180	if s.Bucket != nil && len(*s.Bucket) < 1 {
8181		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
8182	}
8183	if s.Enabled == nil {
8184		invalidParams.Add(request.NewErrParamRequired("Enabled"))
8185	}
8186	if s.Prefix != nil && len(*s.Prefix) < 1 {
8187		invalidParams.Add(request.NewErrParamMinLen("Prefix", 1))
8188	}
8189
8190	if invalidParams.Len() > 0 {
8191		return invalidParams
8192	}
8193	return nil
8194}
8195
8196// SetBucket sets the Bucket field's value.
8197func (s *JobReport) SetBucket(v string) *JobReport {
8198	s.Bucket = &v
8199	return s
8200}
8201
8202// SetEnabled sets the Enabled field's value.
8203func (s *JobReport) SetEnabled(v bool) *JobReport {
8204	s.Enabled = &v
8205	return s
8206}
8207
8208// SetFormat sets the Format field's value.
8209func (s *JobReport) SetFormat(v string) *JobReport {
8210	s.Format = &v
8211	return s
8212}
8213
8214// SetPrefix sets the Prefix field's value.
8215func (s *JobReport) SetPrefix(v string) *JobReport {
8216	s.Prefix = &v
8217	return s
8218}
8219
8220// SetReportScope sets the ReportScope field's value.
8221func (s *JobReport) SetReportScope(v string) *JobReport {
8222	s.ReportScope = &v
8223	return s
8224}
8225
8226// Contains the configuration parameters for a Lambda Invoke operation.
8227type LambdaInvokeOperation struct {
8228	_ struct{} `type:"structure"`
8229
8230	// The Amazon Resource Name (ARN) for the AWS Lambda function that the specified
8231	// job will invoke on every object in the manifest.
8232	FunctionArn *string `min:"1" type:"string"`
8233}
8234
8235// String returns the string representation
8236func (s LambdaInvokeOperation) String() string {
8237	return awsutil.Prettify(s)
8238}
8239
8240// GoString returns the string representation
8241func (s LambdaInvokeOperation) GoString() string {
8242	return s.String()
8243}
8244
8245// Validate inspects the fields of the type to determine if they are valid.
8246func (s *LambdaInvokeOperation) Validate() error {
8247	invalidParams := request.ErrInvalidParams{Context: "LambdaInvokeOperation"}
8248	if s.FunctionArn != nil && len(*s.FunctionArn) < 1 {
8249		invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1))
8250	}
8251
8252	if invalidParams.Len() > 0 {
8253		return invalidParams
8254	}
8255	return nil
8256}
8257
8258// SetFunctionArn sets the FunctionArn field's value.
8259func (s *LambdaInvokeOperation) SetFunctionArn(v string) *LambdaInvokeOperation {
8260	s.FunctionArn = &v
8261	return s
8262}
8263
8264// The container for the Outposts bucket lifecycle configuration.
8265type LifecycleConfiguration struct {
8266	_ struct{} `type:"structure"`
8267
8268	// A lifecycle rule for individual objects in an Outposts bucket.
8269	Rules []*LifecycleRule `locationNameList:"Rule" type:"list"`
8270}
8271
8272// String returns the string representation
8273func (s LifecycleConfiguration) String() string {
8274	return awsutil.Prettify(s)
8275}
8276
8277// GoString returns the string representation
8278func (s LifecycleConfiguration) GoString() string {
8279	return s.String()
8280}
8281
8282// Validate inspects the fields of the type to determine if they are valid.
8283func (s *LifecycleConfiguration) Validate() error {
8284	invalidParams := request.ErrInvalidParams{Context: "LifecycleConfiguration"}
8285	if s.Rules != nil {
8286		for i, v := range s.Rules {
8287			if v == nil {
8288				continue
8289			}
8290			if err := v.Validate(); err != nil {
8291				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
8292			}
8293		}
8294	}
8295
8296	if invalidParams.Len() > 0 {
8297		return invalidParams
8298	}
8299	return nil
8300}
8301
8302// SetRules sets the Rules field's value.
8303func (s *LifecycleConfiguration) SetRules(v []*LifecycleRule) *LifecycleConfiguration {
8304	s.Rules = v
8305	return s
8306}
8307
8308// The container of the Outposts bucket lifecycle expiration.
8309type LifecycleExpiration struct {
8310	_ struct{} `type:"structure"`
8311
8312	// Indicates at what date the object is to be deleted. Should be in GMT ISO
8313	// 8601 format.
8314	Date *time.Time `type:"timestamp"`
8315
8316	// Indicates the lifetime, in days, of the objects that are subject to the rule.
8317	// The value must be a non-zero positive integer.
8318	Days *int64 `type:"integer"`
8319
8320	// Indicates whether Amazon S3 will remove a delete marker with no noncurrent
8321	// versions. If set to true, the delete marker will be expired. If set to false,
8322	// the policy takes no action. This cannot be specified with Days or Date in
8323	// a Lifecycle Expiration Policy.
8324	ExpiredObjectDeleteMarker *bool `type:"boolean"`
8325}
8326
8327// String returns the string representation
8328func (s LifecycleExpiration) String() string {
8329	return awsutil.Prettify(s)
8330}
8331
8332// GoString returns the string representation
8333func (s LifecycleExpiration) GoString() string {
8334	return s.String()
8335}
8336
8337// SetDate sets the Date field's value.
8338func (s *LifecycleExpiration) SetDate(v time.Time) *LifecycleExpiration {
8339	s.Date = &v
8340	return s
8341}
8342
8343// SetDays sets the Days field's value.
8344func (s *LifecycleExpiration) SetDays(v int64) *LifecycleExpiration {
8345	s.Days = &v
8346	return s
8347}
8348
8349// SetExpiredObjectDeleteMarker sets the ExpiredObjectDeleteMarker field's value.
8350func (s *LifecycleExpiration) SetExpiredObjectDeleteMarker(v bool) *LifecycleExpiration {
8351	s.ExpiredObjectDeleteMarker = &v
8352	return s
8353}
8354
8355// The container for the Outposts bucket lifecycle rule.
8356type LifecycleRule struct {
8357	_ struct{} `type:"structure"`
8358
8359	// Specifies the days since the initiation of an incomplete multipart upload
8360	// that Amazon S3 waits before permanently removing all parts of the upload.
8361	// For more information, see Aborting Incomplete Multipart Uploads Using a Bucket
8362	// Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
8363	// in the Amazon Simple Storage Service Developer Guide.
8364	AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"`
8365
8366	// Specifies the expiration for the lifecycle of the object in the form of date,
8367	// days and, whether the object has a delete marker.
8368	Expiration *LifecycleExpiration `type:"structure"`
8369
8370	// The container for the filter of lifecycle rule.
8371	Filter *LifecycleRuleFilter `type:"structure"`
8372
8373	// Unique identifier for the rule. The value cannot be longer than 255 characters.
8374	ID *string `type:"string"`
8375
8376	// The noncurrent version expiration of the lifecycle rule.
8377	//
8378	// This is not supported by Amazon S3 on Outposts buckets.
8379	NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"`
8380
8381	// Specifies the transition rule for the lifecycle rule that describes when
8382	// noncurrent objects transition to a specific storage class. If your bucket
8383	// is versioning-enabled (or versioning is suspended), you can set this action
8384	// to request that Amazon S3 transition noncurrent object versions to a specific
8385	// storage class at a set period in the object's lifetime.
8386	//
8387	// This is not supported by Amazon S3 on Outposts buckets.
8388	NoncurrentVersionTransitions []*NoncurrentVersionTransition `locationNameList:"NoncurrentVersionTransition" type:"list"`
8389
8390	// If 'Enabled', the rule is currently being applied. If 'Disabled', the rule
8391	// is not currently being applied.
8392	//
8393	// Status is a required field
8394	Status *string `type:"string" required:"true" enum:"ExpirationStatus"`
8395
8396	// Specifies when an Amazon S3 object transitions to a specified storage class.
8397	//
8398	// This is not supported by Amazon S3 on Outposts buckets.
8399	Transitions []*Transition `locationNameList:"Transition" type:"list"`
8400}
8401
8402// String returns the string representation
8403func (s LifecycleRule) String() string {
8404	return awsutil.Prettify(s)
8405}
8406
8407// GoString returns the string representation
8408func (s LifecycleRule) GoString() string {
8409	return s.String()
8410}
8411
8412// Validate inspects the fields of the type to determine if they are valid.
8413func (s *LifecycleRule) Validate() error {
8414	invalidParams := request.ErrInvalidParams{Context: "LifecycleRule"}
8415	if s.Status == nil {
8416		invalidParams.Add(request.NewErrParamRequired("Status"))
8417	}
8418	if s.Filter != nil {
8419		if err := s.Filter.Validate(); err != nil {
8420			invalidParams.AddNested("Filter", err.(request.ErrInvalidParams))
8421		}
8422	}
8423
8424	if invalidParams.Len() > 0 {
8425		return invalidParams
8426	}
8427	return nil
8428}
8429
8430// SetAbortIncompleteMultipartUpload sets the AbortIncompleteMultipartUpload field's value.
8431func (s *LifecycleRule) SetAbortIncompleteMultipartUpload(v *AbortIncompleteMultipartUpload) *LifecycleRule {
8432	s.AbortIncompleteMultipartUpload = v
8433	return s
8434}
8435
8436// SetExpiration sets the Expiration field's value.
8437func (s *LifecycleRule) SetExpiration(v *LifecycleExpiration) *LifecycleRule {
8438	s.Expiration = v
8439	return s
8440}
8441
8442// SetFilter sets the Filter field's value.
8443func (s *LifecycleRule) SetFilter(v *LifecycleRuleFilter) *LifecycleRule {
8444	s.Filter = v
8445	return s
8446}
8447
8448// SetID sets the ID field's value.
8449func (s *LifecycleRule) SetID(v string) *LifecycleRule {
8450	s.ID = &v
8451	return s
8452}
8453
8454// SetNoncurrentVersionExpiration sets the NoncurrentVersionExpiration field's value.
8455func (s *LifecycleRule) SetNoncurrentVersionExpiration(v *NoncurrentVersionExpiration) *LifecycleRule {
8456	s.NoncurrentVersionExpiration = v
8457	return s
8458}
8459
8460// SetNoncurrentVersionTransitions sets the NoncurrentVersionTransitions field's value.
8461func (s *LifecycleRule) SetNoncurrentVersionTransitions(v []*NoncurrentVersionTransition) *LifecycleRule {
8462	s.NoncurrentVersionTransitions = v
8463	return s
8464}
8465
8466// SetStatus sets the Status field's value.
8467func (s *LifecycleRule) SetStatus(v string) *LifecycleRule {
8468	s.Status = &v
8469	return s
8470}
8471
8472// SetTransitions sets the Transitions field's value.
8473func (s *LifecycleRule) SetTransitions(v []*Transition) *LifecycleRule {
8474	s.Transitions = v
8475	return s
8476}
8477
8478// The container for the Outposts bucket lifecycle rule and operator.
8479type LifecycleRuleAndOperator struct {
8480	_ struct{} `type:"structure"`
8481
8482	// Prefix identifying one or more objects to which the rule applies.
8483	Prefix *string `type:"string"`
8484
8485	// All of these tags must exist in the object's tag set in order for the rule
8486	// to apply.
8487	Tags []*S3Tag `type:"list"`
8488}
8489
8490// String returns the string representation
8491func (s LifecycleRuleAndOperator) String() string {
8492	return awsutil.Prettify(s)
8493}
8494
8495// GoString returns the string representation
8496func (s LifecycleRuleAndOperator) GoString() string {
8497	return s.String()
8498}
8499
8500// Validate inspects the fields of the type to determine if they are valid.
8501func (s *LifecycleRuleAndOperator) Validate() error {
8502	invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleAndOperator"}
8503	if s.Tags != nil {
8504		for i, v := range s.Tags {
8505			if v == nil {
8506				continue
8507			}
8508			if err := v.Validate(); err != nil {
8509				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8510			}
8511		}
8512	}
8513
8514	if invalidParams.Len() > 0 {
8515		return invalidParams
8516	}
8517	return nil
8518}
8519
8520// SetPrefix sets the Prefix field's value.
8521func (s *LifecycleRuleAndOperator) SetPrefix(v string) *LifecycleRuleAndOperator {
8522	s.Prefix = &v
8523	return s
8524}
8525
8526// SetTags sets the Tags field's value.
8527func (s *LifecycleRuleAndOperator) SetTags(v []*S3Tag) *LifecycleRuleAndOperator {
8528	s.Tags = v
8529	return s
8530}
8531
8532// The container for the filter of the lifecycle rule.
8533type LifecycleRuleFilter struct {
8534	_ struct{} `type:"structure"`
8535
8536	// The container for the AND condition for the lifecycle rule.
8537	And *LifecycleRuleAndOperator `type:"structure"`
8538
8539	// Prefix identifying one or more objects to which the rule applies.
8540	Prefix *string `type:"string"`
8541
8542	Tag *S3Tag `type:"structure"`
8543}
8544
8545// String returns the string representation
8546func (s LifecycleRuleFilter) String() string {
8547	return awsutil.Prettify(s)
8548}
8549
8550// GoString returns the string representation
8551func (s LifecycleRuleFilter) GoString() string {
8552	return s.String()
8553}
8554
8555// Validate inspects the fields of the type to determine if they are valid.
8556func (s *LifecycleRuleFilter) Validate() error {
8557	invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleFilter"}
8558	if s.And != nil {
8559		if err := s.And.Validate(); err != nil {
8560			invalidParams.AddNested("And", err.(request.ErrInvalidParams))
8561		}
8562	}
8563	if s.Tag != nil {
8564		if err := s.Tag.Validate(); err != nil {
8565			invalidParams.AddNested("Tag", err.(request.ErrInvalidParams))
8566		}
8567	}
8568
8569	if invalidParams.Len() > 0 {
8570		return invalidParams
8571	}
8572	return nil
8573}
8574
8575// SetAnd sets the And field's value.
8576func (s *LifecycleRuleFilter) SetAnd(v *LifecycleRuleAndOperator) *LifecycleRuleFilter {
8577	s.And = v
8578	return s
8579}
8580
8581// SetPrefix sets the Prefix field's value.
8582func (s *LifecycleRuleFilter) SetPrefix(v string) *LifecycleRuleFilter {
8583	s.Prefix = &v
8584	return s
8585}
8586
8587// SetTag sets the Tag field's value.
8588func (s *LifecycleRuleFilter) SetTag(v *S3Tag) *LifecycleRuleFilter {
8589	s.Tag = v
8590	return s
8591}
8592
8593type ListAccessPointsInput struct {
8594	_ struct{} `locationName:"ListAccessPointsRequest" type:"structure"`
8595
8596	// The AWS account ID for owner of the bucket whose access points you want to
8597	// list.
8598	//
8599	// AccountId is a required field
8600	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8601
8602	// The name of the bucket whose associated access points you want to list.
8603	//
8604	// For using this parameter with Amazon S3 on Outposts with the REST API, you
8605	// must specify the name and the x-amz-outpost-id as well.
8606	//
8607	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
8608	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
8609	// For example, to access the bucket reports through outpost my-outpost owned
8610	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
8611	// The value must be URL encoded.
8612	Bucket *string `location:"querystring" locationName:"bucket" min:"3" type:"string"`
8613
8614	// The maximum number of access points that you want to include in the list.
8615	// If the specified bucket has more than this number of access points, then
8616	// the response will include a continuation token in the NextToken field that
8617	// you can use to retrieve the next page of access points.
8618	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
8619
8620	// A continuation token. If a previous call to ListAccessPoints returned a continuation
8621	// token in the NextToken field, then providing that value here causes Amazon
8622	// S3 to retrieve the next page of results.
8623	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
8624}
8625
8626// String returns the string representation
8627func (s ListAccessPointsInput) String() string {
8628	return awsutil.Prettify(s)
8629}
8630
8631// GoString returns the string representation
8632func (s ListAccessPointsInput) GoString() string {
8633	return s.String()
8634}
8635
8636// Validate inspects the fields of the type to determine if they are valid.
8637func (s *ListAccessPointsInput) Validate() error {
8638	invalidParams := request.ErrInvalidParams{Context: "ListAccessPointsInput"}
8639	if s.AccountId == nil {
8640		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8641	}
8642	if s.AccountId != nil && len(*s.AccountId) < 1 {
8643		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8644	}
8645	if s.Bucket != nil && len(*s.Bucket) < 3 {
8646		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
8647	}
8648	if s.NextToken != nil && len(*s.NextToken) < 1 {
8649		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8650	}
8651
8652	if invalidParams.Len() > 0 {
8653		return invalidParams
8654	}
8655	return nil
8656}
8657
8658// SetAccountId sets the AccountId field's value.
8659func (s *ListAccessPointsInput) SetAccountId(v string) *ListAccessPointsInput {
8660	s.AccountId = &v
8661	return s
8662}
8663
8664// SetBucket sets the Bucket field's value.
8665func (s *ListAccessPointsInput) SetBucket(v string) *ListAccessPointsInput {
8666	s.Bucket = &v
8667	return s
8668}
8669
8670// SetMaxResults sets the MaxResults field's value.
8671func (s *ListAccessPointsInput) SetMaxResults(v int64) *ListAccessPointsInput {
8672	s.MaxResults = &v
8673	return s
8674}
8675
8676// SetNextToken sets the NextToken field's value.
8677func (s *ListAccessPointsInput) SetNextToken(v string) *ListAccessPointsInput {
8678	s.NextToken = &v
8679	return s
8680}
8681
8682func (s *ListAccessPointsInput) hostLabels() map[string]string {
8683	return map[string]string{
8684		"AccountId": aws.StringValue(s.AccountId),
8685	}
8686}
8687
8688func (s *ListAccessPointsInput) getEndpointARN() (arn.Resource, error) {
8689	if s.Bucket == nil {
8690		return nil, fmt.Errorf("member Bucket is nil")
8691	}
8692	return parseEndpointARN(*s.Bucket)
8693}
8694
8695func (s *ListAccessPointsInput) hasEndpointARN() bool {
8696	if s.Bucket == nil {
8697		return false
8698	}
8699	return arn.IsARN(*s.Bucket)
8700}
8701
8702// updateArnableField updates the value of the input field that
8703// takes an ARN as an input. This method is useful to backfill
8704// the parsed resource name from ARN into the input member.
8705// It returns a pointer to a modified copy of input and an error.
8706// Note that original input is not modified.
8707func (s ListAccessPointsInput) updateArnableField(v string) (interface{}, error) {
8708	if s.Bucket == nil {
8709		return nil, fmt.Errorf("member Bucket is nil")
8710	}
8711	s.Bucket = aws.String(v)
8712	return &s, nil
8713}
8714
8715// updateAccountID returns a pointer to a modified copy of input,
8716// if account id is not provided, we update the account id in modified input
8717// if account id is provided, but doesn't match with the one in ARN, we throw an error
8718// if account id is not updated, we return nil. Note that original input is not modified.
8719func (s ListAccessPointsInput) updateAccountID(accountId string) (interface{}, error) {
8720	if s.AccountId == nil {
8721		s.AccountId = aws.String(accountId)
8722		return &s, nil
8723	} else if *s.AccountId != accountId {
8724		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8725	}
8726	return nil, nil
8727}
8728
8729type ListAccessPointsOutput struct {
8730	_ struct{} `type:"structure"`
8731
8732	// Contains identification and configuration information for one or more access
8733	// points associated with the specified bucket.
8734	AccessPointList []*AccessPoint `locationNameList:"AccessPoint" type:"list"`
8735
8736	// If the specified bucket has more access points than can be returned in one
8737	// call to this API, this field contains a continuation token that you can provide
8738	// in subsequent calls to this API to retrieve additional access points.
8739	NextToken *string `min:"1" type:"string"`
8740}
8741
8742// String returns the string representation
8743func (s ListAccessPointsOutput) String() string {
8744	return awsutil.Prettify(s)
8745}
8746
8747// GoString returns the string representation
8748func (s ListAccessPointsOutput) GoString() string {
8749	return s.String()
8750}
8751
8752// SetAccessPointList sets the AccessPointList field's value.
8753func (s *ListAccessPointsOutput) SetAccessPointList(v []*AccessPoint) *ListAccessPointsOutput {
8754	s.AccessPointList = v
8755	return s
8756}
8757
8758// SetNextToken sets the NextToken field's value.
8759func (s *ListAccessPointsOutput) SetNextToken(v string) *ListAccessPointsOutput {
8760	s.NextToken = &v
8761	return s
8762}
8763
8764type ListJobsInput struct {
8765	_ struct{} `locationName:"ListJobsRequest" type:"structure"`
8766
8767	// AccountId is a required field
8768	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8769
8770	// The List Jobs request returns jobs that match the statuses listed in this
8771	// element.
8772	JobStatuses []*string `location:"querystring" locationName:"jobStatuses" type:"list"`
8773
8774	// The maximum number of jobs that Amazon S3 will include in the List Jobs response.
8775	// If there are more jobs than this number, the response will include a pagination
8776	// token in the NextToken field to enable you to retrieve the next page of results.
8777	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
8778
8779	// A pagination token to request the next page of results. Use the token that
8780	// Amazon S3 returned in the NextToken element of the ListJobsResult from the
8781	// previous List Jobs request.
8782	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
8783}
8784
8785// String returns the string representation
8786func (s ListJobsInput) String() string {
8787	return awsutil.Prettify(s)
8788}
8789
8790// GoString returns the string representation
8791func (s ListJobsInput) GoString() string {
8792	return s.String()
8793}
8794
8795// Validate inspects the fields of the type to determine if they are valid.
8796func (s *ListJobsInput) Validate() error {
8797	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
8798	if s.AccountId == nil {
8799		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8800	}
8801	if s.AccountId != nil && len(*s.AccountId) < 1 {
8802		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8803	}
8804	if s.NextToken != nil && len(*s.NextToken) < 1 {
8805		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8806	}
8807
8808	if invalidParams.Len() > 0 {
8809		return invalidParams
8810	}
8811	return nil
8812}
8813
8814// SetAccountId sets the AccountId field's value.
8815func (s *ListJobsInput) SetAccountId(v string) *ListJobsInput {
8816	s.AccountId = &v
8817	return s
8818}
8819
8820// SetJobStatuses sets the JobStatuses field's value.
8821func (s *ListJobsInput) SetJobStatuses(v []*string) *ListJobsInput {
8822	s.JobStatuses = v
8823	return s
8824}
8825
8826// SetMaxResults sets the MaxResults field's value.
8827func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
8828	s.MaxResults = &v
8829	return s
8830}
8831
8832// SetNextToken sets the NextToken field's value.
8833func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
8834	s.NextToken = &v
8835	return s
8836}
8837
8838func (s *ListJobsInput) hostLabels() map[string]string {
8839	return map[string]string{
8840		"AccountId": aws.StringValue(s.AccountId),
8841	}
8842}
8843
8844type ListJobsOutput struct {
8845	_ struct{} `type:"structure"`
8846
8847	// The list of current jobs and jobs that have ended within the last 30 days.
8848	Jobs []*JobListDescriptor `type:"list"`
8849
8850	// If the List Jobs request produced more than the maximum number of results,
8851	// you can pass this value into a subsequent List Jobs request in order to retrieve
8852	// the next page of results.
8853	NextToken *string `min:"1" type:"string"`
8854}
8855
8856// String returns the string representation
8857func (s ListJobsOutput) String() string {
8858	return awsutil.Prettify(s)
8859}
8860
8861// GoString returns the string representation
8862func (s ListJobsOutput) GoString() string {
8863	return s.String()
8864}
8865
8866// SetJobs sets the Jobs field's value.
8867func (s *ListJobsOutput) SetJobs(v []*JobListDescriptor) *ListJobsOutput {
8868	s.Jobs = v
8869	return s
8870}
8871
8872// SetNextToken sets the NextToken field's value.
8873func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
8874	s.NextToken = &v
8875	return s
8876}
8877
8878type ListRegionalBucketsInput struct {
8879	_ struct{} `locationName:"ListRegionalBucketsRequest" type:"structure"`
8880
8881	// The AWS account ID of the Outposts bucket.
8882	//
8883	// AccountId is a required field
8884	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8885
8886	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
8887
8888	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
8889
8890	// The ID of the AWS Outposts.
8891	//
8892	// This is required by Amazon S3 on Outposts buckets.
8893	OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"`
8894}
8895
8896// String returns the string representation
8897func (s ListRegionalBucketsInput) String() string {
8898	return awsutil.Prettify(s)
8899}
8900
8901// GoString returns the string representation
8902func (s ListRegionalBucketsInput) GoString() string {
8903	return s.String()
8904}
8905
8906// Validate inspects the fields of the type to determine if they are valid.
8907func (s *ListRegionalBucketsInput) Validate() error {
8908	invalidParams := request.ErrInvalidParams{Context: "ListRegionalBucketsInput"}
8909	if s.AccountId == nil {
8910		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8911	}
8912	if s.AccountId != nil && len(*s.AccountId) < 1 {
8913		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8914	}
8915	if s.NextToken != nil && len(*s.NextToken) < 1 {
8916		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8917	}
8918	if s.OutpostId != nil && len(*s.OutpostId) < 1 {
8919		invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1))
8920	}
8921
8922	if invalidParams.Len() > 0 {
8923		return invalidParams
8924	}
8925	return nil
8926}
8927
8928// SetAccountId sets the AccountId field's value.
8929func (s *ListRegionalBucketsInput) SetAccountId(v string) *ListRegionalBucketsInput {
8930	s.AccountId = &v
8931	return s
8932}
8933
8934// SetMaxResults sets the MaxResults field's value.
8935func (s *ListRegionalBucketsInput) SetMaxResults(v int64) *ListRegionalBucketsInput {
8936	s.MaxResults = &v
8937	return s
8938}
8939
8940// SetNextToken sets the NextToken field's value.
8941func (s *ListRegionalBucketsInput) SetNextToken(v string) *ListRegionalBucketsInput {
8942	s.NextToken = &v
8943	return s
8944}
8945
8946// SetOutpostId sets the OutpostId field's value.
8947func (s *ListRegionalBucketsInput) SetOutpostId(v string) *ListRegionalBucketsInput {
8948	s.OutpostId = &v
8949	return s
8950}
8951
8952func (s *ListRegionalBucketsInput) hostLabels() map[string]string {
8953	return map[string]string{
8954		"AccountId": aws.StringValue(s.AccountId),
8955	}
8956}
8957
8958func (s *ListRegionalBucketsInput) getOutpostID() (string, error) {
8959	if s.OutpostId == nil {
8960		return "", fmt.Errorf("member OutpostId is nil")
8961	}
8962	return *s.OutpostId, nil
8963}
8964
8965func (s *ListRegionalBucketsInput) hasOutpostID() bool {
8966	if s.OutpostId == nil {
8967		return false
8968	}
8969	return true
8970}
8971
8972type ListRegionalBucketsOutput struct {
8973	_ struct{} `type:"structure"`
8974
8975	// NextToken is sent when isTruncated is true, which means there are more buckets
8976	// that can be listed. The next list requests to Amazon S3 can be continued
8977	// with this NextToken. NextToken is obfuscated and is not a real key.
8978	NextToken *string `min:"1" type:"string"`
8979
8980	RegionalBucketList []*RegionalBucket `locationNameList:"RegionalBucket" type:"list"`
8981}
8982
8983// String returns the string representation
8984func (s ListRegionalBucketsOutput) String() string {
8985	return awsutil.Prettify(s)
8986}
8987
8988// GoString returns the string representation
8989func (s ListRegionalBucketsOutput) GoString() string {
8990	return s.String()
8991}
8992
8993// SetNextToken sets the NextToken field's value.
8994func (s *ListRegionalBucketsOutput) SetNextToken(v string) *ListRegionalBucketsOutput {
8995	s.NextToken = &v
8996	return s
8997}
8998
8999// SetRegionalBucketList sets the RegionalBucketList field's value.
9000func (s *ListRegionalBucketsOutput) SetRegionalBucketList(v []*RegionalBucket) *ListRegionalBucketsOutput {
9001	s.RegionalBucketList = v
9002	return s
9003}
9004
9005// Part of ListStorageLensConfigurationResult. Each entry includes the description
9006// of the S3 Storage Lens configuration, its home Region, whether it is enabled,
9007// its Amazon Resource Name (ARN), and config ID.
9008type ListStorageLensConfigurationEntry struct {
9009	_ struct{} `type:"structure"`
9010
9011	// A container for the S3 Storage Lens home Region. Your metrics data is stored
9012	// and retained in your designated S3 Storage Lens home Region.
9013	//
9014	// HomeRegion is a required field
9015	HomeRegion *string `min:"5" type:"string" required:"true"`
9016
9017	// A container for the S3 Storage Lens configuration ID.
9018	//
9019	// Id is a required field
9020	Id *string `min:"1" type:"string" required:"true"`
9021
9022	// A container for whether the S3 Storage Lens configuration is enabled. This
9023	// property is required.
9024	IsEnabled *bool `type:"boolean"`
9025
9026	// The ARN of the S3 Storage Lens configuration. This property is read-only.
9027	//
9028	// StorageLensArn is a required field
9029	StorageLensArn *string `min:"1" type:"string" required:"true"`
9030}
9031
9032// String returns the string representation
9033func (s ListStorageLensConfigurationEntry) String() string {
9034	return awsutil.Prettify(s)
9035}
9036
9037// GoString returns the string representation
9038func (s ListStorageLensConfigurationEntry) GoString() string {
9039	return s.String()
9040}
9041
9042// SetHomeRegion sets the HomeRegion field's value.
9043func (s *ListStorageLensConfigurationEntry) SetHomeRegion(v string) *ListStorageLensConfigurationEntry {
9044	s.HomeRegion = &v
9045	return s
9046}
9047
9048// SetId sets the Id field's value.
9049func (s *ListStorageLensConfigurationEntry) SetId(v string) *ListStorageLensConfigurationEntry {
9050	s.Id = &v
9051	return s
9052}
9053
9054// SetIsEnabled sets the IsEnabled field's value.
9055func (s *ListStorageLensConfigurationEntry) SetIsEnabled(v bool) *ListStorageLensConfigurationEntry {
9056	s.IsEnabled = &v
9057	return s
9058}
9059
9060// SetStorageLensArn sets the StorageLensArn field's value.
9061func (s *ListStorageLensConfigurationEntry) SetStorageLensArn(v string) *ListStorageLensConfigurationEntry {
9062	s.StorageLensArn = &v
9063	return s
9064}
9065
9066type ListStorageLensConfigurationsInput struct {
9067	_ struct{} `locationName:"ListStorageLensConfigurationsRequest" type:"structure"`
9068
9069	// The account ID of the requester.
9070	//
9071	// AccountId is a required field
9072	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
9073
9074	// A pagination token to request the next page of results.
9075	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
9076}
9077
9078// String returns the string representation
9079func (s ListStorageLensConfigurationsInput) String() string {
9080	return awsutil.Prettify(s)
9081}
9082
9083// GoString returns the string representation
9084func (s ListStorageLensConfigurationsInput) GoString() string {
9085	return s.String()
9086}
9087
9088// Validate inspects the fields of the type to determine if they are valid.
9089func (s *ListStorageLensConfigurationsInput) Validate() error {
9090	invalidParams := request.ErrInvalidParams{Context: "ListStorageLensConfigurationsInput"}
9091	if s.AccountId == nil {
9092		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9093	}
9094	if s.AccountId != nil && len(*s.AccountId) < 1 {
9095		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9096	}
9097
9098	if invalidParams.Len() > 0 {
9099		return invalidParams
9100	}
9101	return nil
9102}
9103
9104// SetAccountId sets the AccountId field's value.
9105func (s *ListStorageLensConfigurationsInput) SetAccountId(v string) *ListStorageLensConfigurationsInput {
9106	s.AccountId = &v
9107	return s
9108}
9109
9110// SetNextToken sets the NextToken field's value.
9111func (s *ListStorageLensConfigurationsInput) SetNextToken(v string) *ListStorageLensConfigurationsInput {
9112	s.NextToken = &v
9113	return s
9114}
9115
9116func (s *ListStorageLensConfigurationsInput) hostLabels() map[string]string {
9117	return map[string]string{
9118		"AccountId": aws.StringValue(s.AccountId),
9119	}
9120}
9121
9122type ListStorageLensConfigurationsOutput struct {
9123	_ struct{} `type:"structure"`
9124
9125	// If the request produced more than the maximum number of S3 Storage Lens configuration
9126	// results, you can pass this value into a subsequent request to retrieve the
9127	// next page of results.
9128	NextToken *string `type:"string"`
9129
9130	// A list of S3 Storage Lens configurations.
9131	StorageLensConfigurationList []*ListStorageLensConfigurationEntry `locationNameList:"StorageLensConfiguration" type:"list" flattened:"true"`
9132}
9133
9134// String returns the string representation
9135func (s ListStorageLensConfigurationsOutput) String() string {
9136	return awsutil.Prettify(s)
9137}
9138
9139// GoString returns the string representation
9140func (s ListStorageLensConfigurationsOutput) GoString() string {
9141	return s.String()
9142}
9143
9144// SetNextToken sets the NextToken field's value.
9145func (s *ListStorageLensConfigurationsOutput) SetNextToken(v string) *ListStorageLensConfigurationsOutput {
9146	s.NextToken = &v
9147	return s
9148}
9149
9150// SetStorageLensConfigurationList sets the StorageLensConfigurationList field's value.
9151func (s *ListStorageLensConfigurationsOutput) SetStorageLensConfigurationList(v []*ListStorageLensConfigurationEntry) *ListStorageLensConfigurationsOutput {
9152	s.StorageLensConfigurationList = v
9153	return s
9154}
9155
9156// The container of the noncurrent version expiration.
9157type NoncurrentVersionExpiration struct {
9158	_ struct{} `type:"structure"`
9159
9160	// Specifies the number of days an object is noncurrent before Amazon S3 can
9161	// perform the associated action. For information about the noncurrent days
9162	// calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
9163	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
9164	// in the Amazon Simple Storage Service Developer Guide.
9165	NoncurrentDays *int64 `type:"integer"`
9166}
9167
9168// String returns the string representation
9169func (s NoncurrentVersionExpiration) String() string {
9170	return awsutil.Prettify(s)
9171}
9172
9173// GoString returns the string representation
9174func (s NoncurrentVersionExpiration) GoString() string {
9175	return s.String()
9176}
9177
9178// SetNoncurrentDays sets the NoncurrentDays field's value.
9179func (s *NoncurrentVersionExpiration) SetNoncurrentDays(v int64) *NoncurrentVersionExpiration {
9180	s.NoncurrentDays = &v
9181	return s
9182}
9183
9184// The container for the noncurrent version transition.
9185type NoncurrentVersionTransition struct {
9186	_ struct{} `type:"structure"`
9187
9188	// Specifies the number of days an object is noncurrent before Amazon S3 can
9189	// perform the associated action. For information about the noncurrent days
9190	// calculations, see How Amazon S3 Calculates How Long an Object Has Been Noncurrent
9191	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
9192	// in the Amazon Simple Storage Service Developer Guide.
9193	NoncurrentDays *int64 `type:"integer"`
9194
9195	// The class of storage used to store the object.
9196	StorageClass *string `type:"string" enum:"TransitionStorageClass"`
9197}
9198
9199// String returns the string representation
9200func (s NoncurrentVersionTransition) String() string {
9201	return awsutil.Prettify(s)
9202}
9203
9204// GoString returns the string representation
9205func (s NoncurrentVersionTransition) GoString() string {
9206	return s.String()
9207}
9208
9209// SetNoncurrentDays sets the NoncurrentDays field's value.
9210func (s *NoncurrentVersionTransition) SetNoncurrentDays(v int64) *NoncurrentVersionTransition {
9211	s.NoncurrentDays = &v
9212	return s
9213}
9214
9215// SetStorageClass sets the StorageClass field's value.
9216func (s *NoncurrentVersionTransition) SetStorageClass(v string) *NoncurrentVersionTransition {
9217	s.StorageClass = &v
9218	return s
9219}
9220
9221// Indicates whether this access point policy is public. For more information
9222// about how Amazon S3 evaluates policies to determine whether they are public,
9223// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
9224// in the Amazon Simple Storage Service Developer Guide.
9225type PolicyStatus struct {
9226	_ struct{} `type:"structure"`
9227
9228	IsPublic *bool `locationName:"IsPublic" type:"boolean"`
9229}
9230
9231// String returns the string representation
9232func (s PolicyStatus) String() string {
9233	return awsutil.Prettify(s)
9234}
9235
9236// GoString returns the string representation
9237func (s PolicyStatus) GoString() string {
9238	return s.String()
9239}
9240
9241// SetIsPublic sets the IsPublic field's value.
9242func (s *PolicyStatus) SetIsPublic(v bool) *PolicyStatus {
9243	s.IsPublic = &v
9244	return s
9245}
9246
9247// A container for the prefix-level configuration.
9248type PrefixLevel struct {
9249	_ struct{} `type:"structure"`
9250
9251	// A container for the prefix-level storage metrics for S3 Storage Lens.
9252	//
9253	// StorageMetrics is a required field
9254	StorageMetrics *PrefixLevelStorageMetrics `type:"structure" required:"true"`
9255}
9256
9257// String returns the string representation
9258func (s PrefixLevel) String() string {
9259	return awsutil.Prettify(s)
9260}
9261
9262// GoString returns the string representation
9263func (s PrefixLevel) GoString() string {
9264	return s.String()
9265}
9266
9267// Validate inspects the fields of the type to determine if they are valid.
9268func (s *PrefixLevel) Validate() error {
9269	invalidParams := request.ErrInvalidParams{Context: "PrefixLevel"}
9270	if s.StorageMetrics == nil {
9271		invalidParams.Add(request.NewErrParamRequired("StorageMetrics"))
9272	}
9273	if s.StorageMetrics != nil {
9274		if err := s.StorageMetrics.Validate(); err != nil {
9275			invalidParams.AddNested("StorageMetrics", err.(request.ErrInvalidParams))
9276		}
9277	}
9278
9279	if invalidParams.Len() > 0 {
9280		return invalidParams
9281	}
9282	return nil
9283}
9284
9285// SetStorageMetrics sets the StorageMetrics field's value.
9286func (s *PrefixLevel) SetStorageMetrics(v *PrefixLevelStorageMetrics) *PrefixLevel {
9287	s.StorageMetrics = v
9288	return s
9289}
9290
9291// A container for the prefix-level storage metrics for S3 Storage Lens.
9292type PrefixLevelStorageMetrics struct {
9293	_ struct{} `type:"structure"`
9294
9295	// A container for whether prefix-level storage metrics are enabled.
9296	IsEnabled *bool `type:"boolean"`
9297
9298	SelectionCriteria *SelectionCriteria `type:"structure"`
9299}
9300
9301// String returns the string representation
9302func (s PrefixLevelStorageMetrics) String() string {
9303	return awsutil.Prettify(s)
9304}
9305
9306// GoString returns the string representation
9307func (s PrefixLevelStorageMetrics) GoString() string {
9308	return s.String()
9309}
9310
9311// Validate inspects the fields of the type to determine if they are valid.
9312func (s *PrefixLevelStorageMetrics) Validate() error {
9313	invalidParams := request.ErrInvalidParams{Context: "PrefixLevelStorageMetrics"}
9314	if s.SelectionCriteria != nil {
9315		if err := s.SelectionCriteria.Validate(); err != nil {
9316			invalidParams.AddNested("SelectionCriteria", err.(request.ErrInvalidParams))
9317		}
9318	}
9319
9320	if invalidParams.Len() > 0 {
9321		return invalidParams
9322	}
9323	return nil
9324}
9325
9326// SetIsEnabled sets the IsEnabled field's value.
9327func (s *PrefixLevelStorageMetrics) SetIsEnabled(v bool) *PrefixLevelStorageMetrics {
9328	s.IsEnabled = &v
9329	return s
9330}
9331
9332// SetSelectionCriteria sets the SelectionCriteria field's value.
9333func (s *PrefixLevelStorageMetrics) SetSelectionCriteria(v *SelectionCriteria) *PrefixLevelStorageMetrics {
9334	s.SelectionCriteria = v
9335	return s
9336}
9337
9338// The PublicAccessBlock configuration that you want to apply to this Amazon
9339// S3 account. You can enable the configuration options in any combination.
9340// For more information about when Amazon S3 considers a bucket or object public,
9341// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
9342// in the Amazon Simple Storage Service Developer Guide.
9343//
9344// This is not supported for Amazon S3 on Outposts.
9345type PublicAccessBlockConfiguration struct {
9346	_ struct{} `type:"structure"`
9347
9348	// Specifies whether Amazon S3 should block public access control lists (ACLs)
9349	// for buckets in this account. Setting this element to TRUE causes the following
9350	// behavior:
9351	//
9352	//    * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is
9353	//    public.
9354	//
9355	//    * PUT Object calls fail if the request includes a public ACL.
9356	//
9357	//    * PUT Bucket calls fail if the request includes a public ACL.
9358	//
9359	// Enabling this setting doesn't affect existing policies or ACLs.
9360	//
9361	// This is not supported for Amazon S3 on Outposts.
9362	BlockPublicAcls *bool `locationName:"BlockPublicAcls" type:"boolean"`
9363
9364	// Specifies whether Amazon S3 should block public bucket policies for buckets
9365	// in this account. Setting this element to TRUE causes Amazon S3 to reject
9366	// calls to PUT Bucket policy if the specified bucket policy allows public access.
9367	//
9368	// Enabling this setting doesn't affect existing bucket policies.
9369	//
9370	// This is not supported for Amazon S3 on Outposts.
9371	BlockPublicPolicy *bool `locationName:"BlockPublicPolicy" type:"boolean"`
9372
9373	// Specifies whether Amazon S3 should ignore public ACLs for buckets in this
9374	// account. Setting this element to TRUE causes Amazon S3 to ignore all public
9375	// ACLs on buckets in this account and any objects that they contain.
9376	//
9377	// Enabling this setting doesn't affect the persistence of any existing ACLs
9378	// and doesn't prevent new public ACLs from being set.
9379	//
9380	// This is not supported for Amazon S3 on Outposts.
9381	IgnorePublicAcls *bool `locationName:"IgnorePublicAcls" type:"boolean"`
9382
9383	// Specifies whether Amazon S3 should restrict public bucket policies for buckets
9384	// in this account. Setting this element to TRUE restricts access to buckets
9385	// with public policies to only AWS service principals and authorized users
9386	// within this account.
9387	//
9388	// Enabling this setting doesn't affect previously stored bucket policies, except
9389	// that public and cross-account access within any public bucket policy, including
9390	// non-public delegation to specific accounts, is blocked.
9391	//
9392	// This is not supported for Amazon S3 on Outposts.
9393	RestrictPublicBuckets *bool `locationName:"RestrictPublicBuckets" type:"boolean"`
9394}
9395
9396// String returns the string representation
9397func (s PublicAccessBlockConfiguration) String() string {
9398	return awsutil.Prettify(s)
9399}
9400
9401// GoString returns the string representation
9402func (s PublicAccessBlockConfiguration) GoString() string {
9403	return s.String()
9404}
9405
9406// SetBlockPublicAcls sets the BlockPublicAcls field's value.
9407func (s *PublicAccessBlockConfiguration) SetBlockPublicAcls(v bool) *PublicAccessBlockConfiguration {
9408	s.BlockPublicAcls = &v
9409	return s
9410}
9411
9412// SetBlockPublicPolicy sets the BlockPublicPolicy field's value.
9413func (s *PublicAccessBlockConfiguration) SetBlockPublicPolicy(v bool) *PublicAccessBlockConfiguration {
9414	s.BlockPublicPolicy = &v
9415	return s
9416}
9417
9418// SetIgnorePublicAcls sets the IgnorePublicAcls field's value.
9419func (s *PublicAccessBlockConfiguration) SetIgnorePublicAcls(v bool) *PublicAccessBlockConfiguration {
9420	s.IgnorePublicAcls = &v
9421	return s
9422}
9423
9424// SetRestrictPublicBuckets sets the RestrictPublicBuckets field's value.
9425func (s *PublicAccessBlockConfiguration) SetRestrictPublicBuckets(v bool) *PublicAccessBlockConfiguration {
9426	s.RestrictPublicBuckets = &v
9427	return s
9428}
9429
9430type PutAccessPointPolicyInput struct {
9431	_ struct{} `locationName:"PutAccessPointPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
9432
9433	// The AWS account ID for owner of the bucket associated with the specified
9434	// access point.
9435	//
9436	// AccountId is a required field
9437	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
9438
9439	// The name of the access point that you want to associate with the specified
9440	// policy.
9441	//
9442	// For using this parameter with Amazon S3 on Outposts with the REST API, you
9443	// must specify the name and the x-amz-outpost-id as well.
9444	//
9445	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
9446	// must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
9447	// For example, to access the access point reports-ap through outpost my-outpost
9448	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
9449	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
9450	// The value must be URL encoded.
9451	//
9452	// Name is a required field
9453	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
9454
9455	// The policy that you want to apply to the specified access point. For more
9456	// information about access point policies, see Managing data access with Amazon
9457	// S3 Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html)
9458	// in the Amazon Simple Storage Service Developer Guide.
9459	//
9460	// Policy is a required field
9461	Policy *string `type:"string" required:"true"`
9462}
9463
9464// String returns the string representation
9465func (s PutAccessPointPolicyInput) String() string {
9466	return awsutil.Prettify(s)
9467}
9468
9469// GoString returns the string representation
9470func (s PutAccessPointPolicyInput) GoString() string {
9471	return s.String()
9472}
9473
9474// Validate inspects the fields of the type to determine if they are valid.
9475func (s *PutAccessPointPolicyInput) Validate() error {
9476	invalidParams := request.ErrInvalidParams{Context: "PutAccessPointPolicyInput"}
9477	if s.AccountId == nil {
9478		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9479	}
9480	if s.AccountId != nil && len(*s.AccountId) < 1 {
9481		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9482	}
9483	if s.Name == nil {
9484		invalidParams.Add(request.NewErrParamRequired("Name"))
9485	}
9486	if s.Name != nil && len(*s.Name) < 3 {
9487		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
9488	}
9489	if s.Policy == nil {
9490		invalidParams.Add(request.NewErrParamRequired("Policy"))
9491	}
9492
9493	if invalidParams.Len() > 0 {
9494		return invalidParams
9495	}
9496	return nil
9497}
9498
9499// SetAccountId sets the AccountId field's value.
9500func (s *PutAccessPointPolicyInput) SetAccountId(v string) *PutAccessPointPolicyInput {
9501	s.AccountId = &v
9502	return s
9503}
9504
9505// SetName sets the Name field's value.
9506func (s *PutAccessPointPolicyInput) SetName(v string) *PutAccessPointPolicyInput {
9507	s.Name = &v
9508	return s
9509}
9510
9511// SetPolicy sets the Policy field's value.
9512func (s *PutAccessPointPolicyInput) SetPolicy(v string) *PutAccessPointPolicyInput {
9513	s.Policy = &v
9514	return s
9515}
9516
9517func (s *PutAccessPointPolicyInput) hostLabels() map[string]string {
9518	return map[string]string{
9519		"AccountId": aws.StringValue(s.AccountId),
9520	}
9521}
9522
9523func (s *PutAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
9524	if s.Name == nil {
9525		return nil, fmt.Errorf("member Name is nil")
9526	}
9527	return parseEndpointARN(*s.Name)
9528}
9529
9530func (s *PutAccessPointPolicyInput) hasEndpointARN() bool {
9531	if s.Name == nil {
9532		return false
9533	}
9534	return arn.IsARN(*s.Name)
9535}
9536
9537// updateArnableField updates the value of the input field that
9538// takes an ARN as an input. This method is useful to backfill
9539// the parsed resource name from ARN into the input member.
9540// It returns a pointer to a modified copy of input and an error.
9541// Note that original input is not modified.
9542func (s PutAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
9543	if s.Name == nil {
9544		return nil, fmt.Errorf("member Name is nil")
9545	}
9546	s.Name = aws.String(v)
9547	return &s, nil
9548}
9549
9550// updateAccountID returns a pointer to a modified copy of input,
9551// if account id is not provided, we update the account id in modified input
9552// if account id is provided, but doesn't match with the one in ARN, we throw an error
9553// if account id is not updated, we return nil. Note that original input is not modified.
9554func (s PutAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
9555	if s.AccountId == nil {
9556		s.AccountId = aws.String(accountId)
9557		return &s, nil
9558	} else if *s.AccountId != accountId {
9559		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
9560	}
9561	return nil, nil
9562}
9563
9564type PutAccessPointPolicyOutput struct {
9565	_ struct{} `type:"structure"`
9566}
9567
9568// String returns the string representation
9569func (s PutAccessPointPolicyOutput) String() string {
9570	return awsutil.Prettify(s)
9571}
9572
9573// GoString returns the string representation
9574func (s PutAccessPointPolicyOutput) GoString() string {
9575	return s.String()
9576}
9577
9578type PutBucketLifecycleConfigurationInput struct {
9579	_ struct{} `locationName:"PutBucketLifecycleConfigurationRequest" type:"structure" payload:"LifecycleConfiguration"`
9580
9581	// The AWS account ID of the Outposts bucket.
9582	//
9583	// AccountId is a required field
9584	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
9585
9586	// The name of the bucket for which to set the configuration.
9587	//
9588	// Bucket is a required field
9589	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
9590
9591	// Container for lifecycle rules. You can add as many as 1,000 rules.
9592	LifecycleConfiguration *LifecycleConfiguration `locationName:"LifecycleConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
9593}
9594
9595// String returns the string representation
9596func (s PutBucketLifecycleConfigurationInput) String() string {
9597	return awsutil.Prettify(s)
9598}
9599
9600// GoString returns the string representation
9601func (s PutBucketLifecycleConfigurationInput) GoString() string {
9602	return s.String()
9603}
9604
9605// Validate inspects the fields of the type to determine if they are valid.
9606func (s *PutBucketLifecycleConfigurationInput) Validate() error {
9607	invalidParams := request.ErrInvalidParams{Context: "PutBucketLifecycleConfigurationInput"}
9608	if s.AccountId == nil {
9609		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9610	}
9611	if s.AccountId != nil && len(*s.AccountId) < 1 {
9612		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9613	}
9614	if s.Bucket == nil {
9615		invalidParams.Add(request.NewErrParamRequired("Bucket"))
9616	}
9617	if s.Bucket != nil && len(*s.Bucket) < 3 {
9618		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
9619	}
9620	if s.LifecycleConfiguration != nil {
9621		if err := s.LifecycleConfiguration.Validate(); err != nil {
9622			invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams))
9623		}
9624	}
9625
9626	if invalidParams.Len() > 0 {
9627		return invalidParams
9628	}
9629	return nil
9630}
9631
9632// SetAccountId sets the AccountId field's value.
9633func (s *PutBucketLifecycleConfigurationInput) SetAccountId(v string) *PutBucketLifecycleConfigurationInput {
9634	s.AccountId = &v
9635	return s
9636}
9637
9638// SetBucket sets the Bucket field's value.
9639func (s *PutBucketLifecycleConfigurationInput) SetBucket(v string) *PutBucketLifecycleConfigurationInput {
9640	s.Bucket = &v
9641	return s
9642}
9643
9644// SetLifecycleConfiguration sets the LifecycleConfiguration field's value.
9645func (s *PutBucketLifecycleConfigurationInput) SetLifecycleConfiguration(v *LifecycleConfiguration) *PutBucketLifecycleConfigurationInput {
9646	s.LifecycleConfiguration = v
9647	return s
9648}
9649
9650func (s *PutBucketLifecycleConfigurationInput) hostLabels() map[string]string {
9651	return map[string]string{
9652		"AccountId": aws.StringValue(s.AccountId),
9653	}
9654}
9655
9656func (s *PutBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
9657	if s.Bucket == nil {
9658		return nil, fmt.Errorf("member Bucket is nil")
9659	}
9660	return parseEndpointARN(*s.Bucket)
9661}
9662
9663func (s *PutBucketLifecycleConfigurationInput) hasEndpointARN() bool {
9664	if s.Bucket == nil {
9665		return false
9666	}
9667	return arn.IsARN(*s.Bucket)
9668}
9669
9670// updateArnableField updates the value of the input field that
9671// takes an ARN as an input. This method is useful to backfill
9672// the parsed resource name from ARN into the input member.
9673// It returns a pointer to a modified copy of input and an error.
9674// Note that original input is not modified.
9675func (s PutBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
9676	if s.Bucket == nil {
9677		return nil, fmt.Errorf("member Bucket is nil")
9678	}
9679	s.Bucket = aws.String(v)
9680	return &s, nil
9681}
9682
9683// updateAccountID returns a pointer to a modified copy of input,
9684// if account id is not provided, we update the account id in modified input
9685// if account id is provided, but doesn't match with the one in ARN, we throw an error
9686// if account id is not updated, we return nil. Note that original input is not modified.
9687func (s PutBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
9688	if s.AccountId == nil {
9689		s.AccountId = aws.String(accountId)
9690		return &s, nil
9691	} else if *s.AccountId != accountId {
9692		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
9693	}
9694	return nil, nil
9695}
9696
9697type PutBucketLifecycleConfigurationOutput struct {
9698	_ struct{} `type:"structure"`
9699}
9700
9701// String returns the string representation
9702func (s PutBucketLifecycleConfigurationOutput) String() string {
9703	return awsutil.Prettify(s)
9704}
9705
9706// GoString returns the string representation
9707func (s PutBucketLifecycleConfigurationOutput) GoString() string {
9708	return s.String()
9709}
9710
9711type PutBucketPolicyInput struct {
9712	_ struct{} `locationName:"PutBucketPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
9713
9714	// The AWS account ID of the Outposts bucket.
9715	//
9716	// AccountId is a required field
9717	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
9718
9719	// Specifies the bucket.
9720	//
9721	// For using this parameter with Amazon S3 on Outposts with the REST API, you
9722	// must specify the name and the x-amz-outpost-id as well.
9723	//
9724	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
9725	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
9726	// For example, to access the bucket reports through outpost my-outpost owned
9727	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
9728	// The value must be URL encoded.
9729	//
9730	// Bucket is a required field
9731	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
9732
9733	// Set this parameter to true to confirm that you want to remove your permissions
9734	// to change this bucket policy in the future.
9735	//
9736	// This is not supported by Amazon S3 on Outposts buckets.
9737	ConfirmRemoveSelfBucketAccess *bool `location:"header" locationName:"x-amz-confirm-remove-self-bucket-access" type:"boolean"`
9738
9739	// The bucket policy as a JSON document.
9740	//
9741	// Policy is a required field
9742	Policy *string `type:"string" required:"true"`
9743}
9744
9745// String returns the string representation
9746func (s PutBucketPolicyInput) String() string {
9747	return awsutil.Prettify(s)
9748}
9749
9750// GoString returns the string representation
9751func (s PutBucketPolicyInput) GoString() string {
9752	return s.String()
9753}
9754
9755// Validate inspects the fields of the type to determine if they are valid.
9756func (s *PutBucketPolicyInput) Validate() error {
9757	invalidParams := request.ErrInvalidParams{Context: "PutBucketPolicyInput"}
9758	if s.AccountId == nil {
9759		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9760	}
9761	if s.AccountId != nil && len(*s.AccountId) < 1 {
9762		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9763	}
9764	if s.Bucket == nil {
9765		invalidParams.Add(request.NewErrParamRequired("Bucket"))
9766	}
9767	if s.Bucket != nil && len(*s.Bucket) < 3 {
9768		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
9769	}
9770	if s.Policy == nil {
9771		invalidParams.Add(request.NewErrParamRequired("Policy"))
9772	}
9773
9774	if invalidParams.Len() > 0 {
9775		return invalidParams
9776	}
9777	return nil
9778}
9779
9780// SetAccountId sets the AccountId field's value.
9781func (s *PutBucketPolicyInput) SetAccountId(v string) *PutBucketPolicyInput {
9782	s.AccountId = &v
9783	return s
9784}
9785
9786// SetBucket sets the Bucket field's value.
9787func (s *PutBucketPolicyInput) SetBucket(v string) *PutBucketPolicyInput {
9788	s.Bucket = &v
9789	return s
9790}
9791
9792// SetConfirmRemoveSelfBucketAccess sets the ConfirmRemoveSelfBucketAccess field's value.
9793func (s *PutBucketPolicyInput) SetConfirmRemoveSelfBucketAccess(v bool) *PutBucketPolicyInput {
9794	s.ConfirmRemoveSelfBucketAccess = &v
9795	return s
9796}
9797
9798// SetPolicy sets the Policy field's value.
9799func (s *PutBucketPolicyInput) SetPolicy(v string) *PutBucketPolicyInput {
9800	s.Policy = &v
9801	return s
9802}
9803
9804func (s *PutBucketPolicyInput) hostLabels() map[string]string {
9805	return map[string]string{
9806		"AccountId": aws.StringValue(s.AccountId),
9807	}
9808}
9809
9810func (s *PutBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
9811	if s.Bucket == nil {
9812		return nil, fmt.Errorf("member Bucket is nil")
9813	}
9814	return parseEndpointARN(*s.Bucket)
9815}
9816
9817func (s *PutBucketPolicyInput) hasEndpointARN() bool {
9818	if s.Bucket == nil {
9819		return false
9820	}
9821	return arn.IsARN(*s.Bucket)
9822}
9823
9824// updateArnableField updates the value of the input field that
9825// takes an ARN as an input. This method is useful to backfill
9826// the parsed resource name from ARN into the input member.
9827// It returns a pointer to a modified copy of input and an error.
9828// Note that original input is not modified.
9829func (s PutBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
9830	if s.Bucket == nil {
9831		return nil, fmt.Errorf("member Bucket is nil")
9832	}
9833	s.Bucket = aws.String(v)
9834	return &s, nil
9835}
9836
9837// updateAccountID returns a pointer to a modified copy of input,
9838// if account id is not provided, we update the account id in modified input
9839// if account id is provided, but doesn't match with the one in ARN, we throw an error
9840// if account id is not updated, we return nil. Note that original input is not modified.
9841func (s PutBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
9842	if s.AccountId == nil {
9843		s.AccountId = aws.String(accountId)
9844		return &s, nil
9845	} else if *s.AccountId != accountId {
9846		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
9847	}
9848	return nil, nil
9849}
9850
9851type PutBucketPolicyOutput struct {
9852	_ struct{} `type:"structure"`
9853}
9854
9855// String returns the string representation
9856func (s PutBucketPolicyOutput) String() string {
9857	return awsutil.Prettify(s)
9858}
9859
9860// GoString returns the string representation
9861func (s PutBucketPolicyOutput) GoString() string {
9862	return s.String()
9863}
9864
9865type PutBucketTaggingInput struct {
9866	_ struct{} `locationName:"PutBucketTaggingRequest" type:"structure" payload:"Tagging"`
9867
9868	// The AWS account ID of the Outposts bucket.
9869	//
9870	// AccountId is a required field
9871	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
9872
9873	// The Amazon Resource Name (ARN) of the bucket.
9874	//
9875	// For using this parameter with Amazon S3 on Outposts with the REST API, you
9876	// must specify the name and the x-amz-outpost-id as well.
9877	//
9878	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
9879	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
9880	// For example, to access the bucket reports through outpost my-outpost owned
9881	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
9882	// The value must be URL encoded.
9883	//
9884	// Bucket is a required field
9885	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
9886
9887	// Tagging is a required field
9888	Tagging *Tagging `locationName:"Tagging" type:"structure" required:"true" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
9889}
9890
9891// String returns the string representation
9892func (s PutBucketTaggingInput) String() string {
9893	return awsutil.Prettify(s)
9894}
9895
9896// GoString returns the string representation
9897func (s PutBucketTaggingInput) GoString() string {
9898	return s.String()
9899}
9900
9901// Validate inspects the fields of the type to determine if they are valid.
9902func (s *PutBucketTaggingInput) Validate() error {
9903	invalidParams := request.ErrInvalidParams{Context: "PutBucketTaggingInput"}
9904	if s.AccountId == nil {
9905		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9906	}
9907	if s.AccountId != nil && len(*s.AccountId) < 1 {
9908		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9909	}
9910	if s.Bucket == nil {
9911		invalidParams.Add(request.NewErrParamRequired("Bucket"))
9912	}
9913	if s.Bucket != nil && len(*s.Bucket) < 3 {
9914		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
9915	}
9916	if s.Tagging == nil {
9917		invalidParams.Add(request.NewErrParamRequired("Tagging"))
9918	}
9919	if s.Tagging != nil {
9920		if err := s.Tagging.Validate(); err != nil {
9921			invalidParams.AddNested("Tagging", err.(request.ErrInvalidParams))
9922		}
9923	}
9924
9925	if invalidParams.Len() > 0 {
9926		return invalidParams
9927	}
9928	return nil
9929}
9930
9931// SetAccountId sets the AccountId field's value.
9932func (s *PutBucketTaggingInput) SetAccountId(v string) *PutBucketTaggingInput {
9933	s.AccountId = &v
9934	return s
9935}
9936
9937// SetBucket sets the Bucket field's value.
9938func (s *PutBucketTaggingInput) SetBucket(v string) *PutBucketTaggingInput {
9939	s.Bucket = &v
9940	return s
9941}
9942
9943// SetTagging sets the Tagging field's value.
9944func (s *PutBucketTaggingInput) SetTagging(v *Tagging) *PutBucketTaggingInput {
9945	s.Tagging = v
9946	return s
9947}
9948
9949func (s *PutBucketTaggingInput) hostLabels() map[string]string {
9950	return map[string]string{
9951		"AccountId": aws.StringValue(s.AccountId),
9952	}
9953}
9954
9955func (s *PutBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
9956	if s.Bucket == nil {
9957		return nil, fmt.Errorf("member Bucket is nil")
9958	}
9959	return parseEndpointARN(*s.Bucket)
9960}
9961
9962func (s *PutBucketTaggingInput) hasEndpointARN() bool {
9963	if s.Bucket == nil {
9964		return false
9965	}
9966	return arn.IsARN(*s.Bucket)
9967}
9968
9969// updateArnableField updates the value of the input field that
9970// takes an ARN as an input. This method is useful to backfill
9971// the parsed resource name from ARN into the input member.
9972// It returns a pointer to a modified copy of input and an error.
9973// Note that original input is not modified.
9974func (s PutBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
9975	if s.Bucket == nil {
9976		return nil, fmt.Errorf("member Bucket is nil")
9977	}
9978	s.Bucket = aws.String(v)
9979	return &s, nil
9980}
9981
9982// updateAccountID returns a pointer to a modified copy of input,
9983// if account id is not provided, we update the account id in modified input
9984// if account id is provided, but doesn't match with the one in ARN, we throw an error
9985// if account id is not updated, we return nil. Note that original input is not modified.
9986func (s PutBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
9987	if s.AccountId == nil {
9988		s.AccountId = aws.String(accountId)
9989		return &s, nil
9990	} else if *s.AccountId != accountId {
9991		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
9992	}
9993	return nil, nil
9994}
9995
9996type PutBucketTaggingOutput struct {
9997	_ struct{} `type:"structure"`
9998}
9999
10000// String returns the string representation
10001func (s PutBucketTaggingOutput) String() string {
10002	return awsutil.Prettify(s)
10003}
10004
10005// GoString returns the string representation
10006func (s PutBucketTaggingOutput) GoString() string {
10007	return s.String()
10008}
10009
10010type PutJobTaggingInput struct {
10011	_ struct{} `locationName:"PutJobTaggingRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
10012
10013	// The AWS account ID associated with the S3 Batch Operations job.
10014	//
10015	// AccountId is a required field
10016	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10017
10018	// The ID for the S3 Batch Operations job whose tags you want to replace.
10019	//
10020	// JobId is a required field
10021	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
10022
10023	// The set of tags to associate with the S3 Batch Operations job.
10024	//
10025	// Tags is a required field
10026	Tags []*S3Tag `type:"list" required:"true"`
10027}
10028
10029// String returns the string representation
10030func (s PutJobTaggingInput) String() string {
10031	return awsutil.Prettify(s)
10032}
10033
10034// GoString returns the string representation
10035func (s PutJobTaggingInput) GoString() string {
10036	return s.String()
10037}
10038
10039// Validate inspects the fields of the type to determine if they are valid.
10040func (s *PutJobTaggingInput) Validate() error {
10041	invalidParams := request.ErrInvalidParams{Context: "PutJobTaggingInput"}
10042	if s.AccountId == nil {
10043		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10044	}
10045	if s.AccountId != nil && len(*s.AccountId) < 1 {
10046		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10047	}
10048	if s.JobId == nil {
10049		invalidParams.Add(request.NewErrParamRequired("JobId"))
10050	}
10051	if s.JobId != nil && len(*s.JobId) < 5 {
10052		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
10053	}
10054	if s.Tags == nil {
10055		invalidParams.Add(request.NewErrParamRequired("Tags"))
10056	}
10057	if s.Tags != nil {
10058		for i, v := range s.Tags {
10059			if v == nil {
10060				continue
10061			}
10062			if err := v.Validate(); err != nil {
10063				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10064			}
10065		}
10066	}
10067
10068	if invalidParams.Len() > 0 {
10069		return invalidParams
10070	}
10071	return nil
10072}
10073
10074// SetAccountId sets the AccountId field's value.
10075func (s *PutJobTaggingInput) SetAccountId(v string) *PutJobTaggingInput {
10076	s.AccountId = &v
10077	return s
10078}
10079
10080// SetJobId sets the JobId field's value.
10081func (s *PutJobTaggingInput) SetJobId(v string) *PutJobTaggingInput {
10082	s.JobId = &v
10083	return s
10084}
10085
10086// SetTags sets the Tags field's value.
10087func (s *PutJobTaggingInput) SetTags(v []*S3Tag) *PutJobTaggingInput {
10088	s.Tags = v
10089	return s
10090}
10091
10092func (s *PutJobTaggingInput) hostLabels() map[string]string {
10093	return map[string]string{
10094		"AccountId": aws.StringValue(s.AccountId),
10095	}
10096}
10097
10098type PutJobTaggingOutput struct {
10099	_ struct{} `type:"structure"`
10100}
10101
10102// String returns the string representation
10103func (s PutJobTaggingOutput) String() string {
10104	return awsutil.Prettify(s)
10105}
10106
10107// GoString returns the string representation
10108func (s PutJobTaggingOutput) GoString() string {
10109	return s.String()
10110}
10111
10112type PutPublicAccessBlockInput struct {
10113	_ struct{} `locationName:"PutPublicAccessBlockRequest" type:"structure" payload:"PublicAccessBlockConfiguration"`
10114
10115	// The account ID for the AWS account whose PublicAccessBlock configuration
10116	// you want to set.
10117	//
10118	// AccountId is a required field
10119	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10120
10121	// The PublicAccessBlock configuration that you want to apply to the specified
10122	// AWS account.
10123	//
10124	// PublicAccessBlockConfiguration is a required field
10125	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `locationName:"PublicAccessBlockConfiguration" type:"structure" required:"true" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
10126}
10127
10128// String returns the string representation
10129func (s PutPublicAccessBlockInput) String() string {
10130	return awsutil.Prettify(s)
10131}
10132
10133// GoString returns the string representation
10134func (s PutPublicAccessBlockInput) GoString() string {
10135	return s.String()
10136}
10137
10138// Validate inspects the fields of the type to determine if they are valid.
10139func (s *PutPublicAccessBlockInput) Validate() error {
10140	invalidParams := request.ErrInvalidParams{Context: "PutPublicAccessBlockInput"}
10141	if s.AccountId == nil {
10142		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10143	}
10144	if s.AccountId != nil && len(*s.AccountId) < 1 {
10145		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10146	}
10147	if s.PublicAccessBlockConfiguration == nil {
10148		invalidParams.Add(request.NewErrParamRequired("PublicAccessBlockConfiguration"))
10149	}
10150
10151	if invalidParams.Len() > 0 {
10152		return invalidParams
10153	}
10154	return nil
10155}
10156
10157// SetAccountId sets the AccountId field's value.
10158func (s *PutPublicAccessBlockInput) SetAccountId(v string) *PutPublicAccessBlockInput {
10159	s.AccountId = &v
10160	return s
10161}
10162
10163// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
10164func (s *PutPublicAccessBlockInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *PutPublicAccessBlockInput {
10165	s.PublicAccessBlockConfiguration = v
10166	return s
10167}
10168
10169func (s *PutPublicAccessBlockInput) hostLabels() map[string]string {
10170	return map[string]string{
10171		"AccountId": aws.StringValue(s.AccountId),
10172	}
10173}
10174
10175type PutPublicAccessBlockOutput struct {
10176	_ struct{} `type:"structure"`
10177}
10178
10179// String returns the string representation
10180func (s PutPublicAccessBlockOutput) String() string {
10181	return awsutil.Prettify(s)
10182}
10183
10184// GoString returns the string representation
10185func (s PutPublicAccessBlockOutput) GoString() string {
10186	return s.String()
10187}
10188
10189type PutStorageLensConfigurationInput struct {
10190	_ struct{} `locationName:"PutStorageLensConfigurationRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
10191
10192	// The account ID of the requester.
10193	//
10194	// AccountId is a required field
10195	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10196
10197	// The ID of the S3 Storage Lens configuration.
10198	//
10199	// ConfigId is a required field
10200	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
10201
10202	// The S3 Storage Lens configuration.
10203	//
10204	// StorageLensConfiguration is a required field
10205	StorageLensConfiguration *StorageLensConfiguration `type:"structure" required:"true"`
10206
10207	// The tag set of the S3 Storage Lens configuration.
10208	//
10209	// You can set up to a maximum of 50 tags.
10210	Tags []*StorageLensTag `locationNameList:"Tag" type:"list"`
10211}
10212
10213// String returns the string representation
10214func (s PutStorageLensConfigurationInput) String() string {
10215	return awsutil.Prettify(s)
10216}
10217
10218// GoString returns the string representation
10219func (s PutStorageLensConfigurationInput) GoString() string {
10220	return s.String()
10221}
10222
10223// Validate inspects the fields of the type to determine if they are valid.
10224func (s *PutStorageLensConfigurationInput) Validate() error {
10225	invalidParams := request.ErrInvalidParams{Context: "PutStorageLensConfigurationInput"}
10226	if s.AccountId == nil {
10227		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10228	}
10229	if s.AccountId != nil && len(*s.AccountId) < 1 {
10230		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10231	}
10232	if s.ConfigId == nil {
10233		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
10234	}
10235	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
10236		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
10237	}
10238	if s.StorageLensConfiguration == nil {
10239		invalidParams.Add(request.NewErrParamRequired("StorageLensConfiguration"))
10240	}
10241	if s.StorageLensConfiguration != nil {
10242		if err := s.StorageLensConfiguration.Validate(); err != nil {
10243			invalidParams.AddNested("StorageLensConfiguration", err.(request.ErrInvalidParams))
10244		}
10245	}
10246	if s.Tags != nil {
10247		for i, v := range s.Tags {
10248			if v == nil {
10249				continue
10250			}
10251			if err := v.Validate(); err != nil {
10252				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10253			}
10254		}
10255	}
10256
10257	if invalidParams.Len() > 0 {
10258		return invalidParams
10259	}
10260	return nil
10261}
10262
10263// SetAccountId sets the AccountId field's value.
10264func (s *PutStorageLensConfigurationInput) SetAccountId(v string) *PutStorageLensConfigurationInput {
10265	s.AccountId = &v
10266	return s
10267}
10268
10269// SetConfigId sets the ConfigId field's value.
10270func (s *PutStorageLensConfigurationInput) SetConfigId(v string) *PutStorageLensConfigurationInput {
10271	s.ConfigId = &v
10272	return s
10273}
10274
10275// SetStorageLensConfiguration sets the StorageLensConfiguration field's value.
10276func (s *PutStorageLensConfigurationInput) SetStorageLensConfiguration(v *StorageLensConfiguration) *PutStorageLensConfigurationInput {
10277	s.StorageLensConfiguration = v
10278	return s
10279}
10280
10281// SetTags sets the Tags field's value.
10282func (s *PutStorageLensConfigurationInput) SetTags(v []*StorageLensTag) *PutStorageLensConfigurationInput {
10283	s.Tags = v
10284	return s
10285}
10286
10287func (s *PutStorageLensConfigurationInput) hostLabels() map[string]string {
10288	return map[string]string{
10289		"AccountId": aws.StringValue(s.AccountId),
10290	}
10291}
10292
10293type PutStorageLensConfigurationOutput struct {
10294	_ struct{} `type:"structure"`
10295}
10296
10297// String returns the string representation
10298func (s PutStorageLensConfigurationOutput) String() string {
10299	return awsutil.Prettify(s)
10300}
10301
10302// GoString returns the string representation
10303func (s PutStorageLensConfigurationOutput) GoString() string {
10304	return s.String()
10305}
10306
10307type PutStorageLensConfigurationTaggingInput struct {
10308	_ struct{} `locationName:"PutStorageLensConfigurationTaggingRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
10309
10310	// The account ID of the requester.
10311	//
10312	// AccountId is a required field
10313	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10314
10315	// The ID of the S3 Storage Lens configuration.
10316	//
10317	// ConfigId is a required field
10318	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
10319
10320	// The tag set of the S3 Storage Lens configuration.
10321	//
10322	// You can set up to a maximum of 50 tags.
10323	//
10324	// Tags is a required field
10325	Tags []*StorageLensTag `locationNameList:"Tag" type:"list" required:"true"`
10326}
10327
10328// String returns the string representation
10329func (s PutStorageLensConfigurationTaggingInput) String() string {
10330	return awsutil.Prettify(s)
10331}
10332
10333// GoString returns the string representation
10334func (s PutStorageLensConfigurationTaggingInput) GoString() string {
10335	return s.String()
10336}
10337
10338// Validate inspects the fields of the type to determine if they are valid.
10339func (s *PutStorageLensConfigurationTaggingInput) Validate() error {
10340	invalidParams := request.ErrInvalidParams{Context: "PutStorageLensConfigurationTaggingInput"}
10341	if s.AccountId == nil {
10342		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10343	}
10344	if s.AccountId != nil && len(*s.AccountId) < 1 {
10345		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10346	}
10347	if s.ConfigId == nil {
10348		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
10349	}
10350	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
10351		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
10352	}
10353	if s.Tags == nil {
10354		invalidParams.Add(request.NewErrParamRequired("Tags"))
10355	}
10356	if s.Tags != nil {
10357		for i, v := range s.Tags {
10358			if v == nil {
10359				continue
10360			}
10361			if err := v.Validate(); err != nil {
10362				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10363			}
10364		}
10365	}
10366
10367	if invalidParams.Len() > 0 {
10368		return invalidParams
10369	}
10370	return nil
10371}
10372
10373// SetAccountId sets the AccountId field's value.
10374func (s *PutStorageLensConfigurationTaggingInput) SetAccountId(v string) *PutStorageLensConfigurationTaggingInput {
10375	s.AccountId = &v
10376	return s
10377}
10378
10379// SetConfigId sets the ConfigId field's value.
10380func (s *PutStorageLensConfigurationTaggingInput) SetConfigId(v string) *PutStorageLensConfigurationTaggingInput {
10381	s.ConfigId = &v
10382	return s
10383}
10384
10385// SetTags sets the Tags field's value.
10386func (s *PutStorageLensConfigurationTaggingInput) SetTags(v []*StorageLensTag) *PutStorageLensConfigurationTaggingInput {
10387	s.Tags = v
10388	return s
10389}
10390
10391func (s *PutStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
10392	return map[string]string{
10393		"AccountId": aws.StringValue(s.AccountId),
10394	}
10395}
10396
10397type PutStorageLensConfigurationTaggingOutput struct {
10398	_ struct{} `type:"structure"`
10399}
10400
10401// String returns the string representation
10402func (s PutStorageLensConfigurationTaggingOutput) String() string {
10403	return awsutil.Prettify(s)
10404}
10405
10406// GoString returns the string representation
10407func (s PutStorageLensConfigurationTaggingOutput) GoString() string {
10408	return s.String()
10409}
10410
10411// The container for the regional bucket.
10412type RegionalBucket struct {
10413	_ struct{} `type:"structure"`
10414
10415	// Bucket is a required field
10416	Bucket *string `min:"3" type:"string" required:"true"`
10417
10418	// The Amazon Resource Name (ARN) for the regional bucket.
10419	BucketArn *string `min:"4" type:"string"`
10420
10421	// The creation date of the regional bucket
10422	//
10423	// CreationDate is a required field
10424	CreationDate *time.Time `type:"timestamp" required:"true"`
10425
10426	// The AWS Outposts ID of the regional bucket.
10427	OutpostId *string `min:"1" type:"string"`
10428
10429	// PublicAccessBlockEnabled is a required field
10430	PublicAccessBlockEnabled *bool `type:"boolean" required:"true"`
10431}
10432
10433// String returns the string representation
10434func (s RegionalBucket) String() string {
10435	return awsutil.Prettify(s)
10436}
10437
10438// GoString returns the string representation
10439func (s RegionalBucket) GoString() string {
10440	return s.String()
10441}
10442
10443// SetBucket sets the Bucket field's value.
10444func (s *RegionalBucket) SetBucket(v string) *RegionalBucket {
10445	s.Bucket = &v
10446	return s
10447}
10448
10449// SetBucketArn sets the BucketArn field's value.
10450func (s *RegionalBucket) SetBucketArn(v string) *RegionalBucket {
10451	s.BucketArn = &v
10452	return s
10453}
10454
10455// SetCreationDate sets the CreationDate field's value.
10456func (s *RegionalBucket) SetCreationDate(v time.Time) *RegionalBucket {
10457	s.CreationDate = &v
10458	return s
10459}
10460
10461// SetOutpostId sets the OutpostId field's value.
10462func (s *RegionalBucket) SetOutpostId(v string) *RegionalBucket {
10463	s.OutpostId = &v
10464	return s
10465}
10466
10467// SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value.
10468func (s *RegionalBucket) SetPublicAccessBlockEnabled(v bool) *RegionalBucket {
10469	s.PublicAccessBlockEnabled = &v
10470	return s
10471}
10472
10473type S3AccessControlList struct {
10474	_ struct{} `type:"structure"`
10475
10476	Grants []*S3Grant `type:"list"`
10477
10478	// Owner is a required field
10479	Owner *S3ObjectOwner `type:"structure" required:"true"`
10480}
10481
10482// String returns the string representation
10483func (s S3AccessControlList) String() string {
10484	return awsutil.Prettify(s)
10485}
10486
10487// GoString returns the string representation
10488func (s S3AccessControlList) GoString() string {
10489	return s.String()
10490}
10491
10492// Validate inspects the fields of the type to determine if they are valid.
10493func (s *S3AccessControlList) Validate() error {
10494	invalidParams := request.ErrInvalidParams{Context: "S3AccessControlList"}
10495	if s.Owner == nil {
10496		invalidParams.Add(request.NewErrParamRequired("Owner"))
10497	}
10498	if s.Grants != nil {
10499		for i, v := range s.Grants {
10500			if v == nil {
10501				continue
10502			}
10503			if err := v.Validate(); err != nil {
10504				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Grants", i), err.(request.ErrInvalidParams))
10505			}
10506		}
10507	}
10508	if s.Owner != nil {
10509		if err := s.Owner.Validate(); err != nil {
10510			invalidParams.AddNested("Owner", err.(request.ErrInvalidParams))
10511		}
10512	}
10513
10514	if invalidParams.Len() > 0 {
10515		return invalidParams
10516	}
10517	return nil
10518}
10519
10520// SetGrants sets the Grants field's value.
10521func (s *S3AccessControlList) SetGrants(v []*S3Grant) *S3AccessControlList {
10522	s.Grants = v
10523	return s
10524}
10525
10526// SetOwner sets the Owner field's value.
10527func (s *S3AccessControlList) SetOwner(v *S3ObjectOwner) *S3AccessControlList {
10528	s.Owner = v
10529	return s
10530}
10531
10532type S3AccessControlPolicy struct {
10533	_ struct{} `type:"structure"`
10534
10535	AccessControlList *S3AccessControlList `type:"structure"`
10536
10537	CannedAccessControlList *string `type:"string" enum:"S3CannedAccessControlList"`
10538}
10539
10540// String returns the string representation
10541func (s S3AccessControlPolicy) String() string {
10542	return awsutil.Prettify(s)
10543}
10544
10545// GoString returns the string representation
10546func (s S3AccessControlPolicy) GoString() string {
10547	return s.String()
10548}
10549
10550// Validate inspects the fields of the type to determine if they are valid.
10551func (s *S3AccessControlPolicy) Validate() error {
10552	invalidParams := request.ErrInvalidParams{Context: "S3AccessControlPolicy"}
10553	if s.AccessControlList != nil {
10554		if err := s.AccessControlList.Validate(); err != nil {
10555			invalidParams.AddNested("AccessControlList", err.(request.ErrInvalidParams))
10556		}
10557	}
10558
10559	if invalidParams.Len() > 0 {
10560		return invalidParams
10561	}
10562	return nil
10563}
10564
10565// SetAccessControlList sets the AccessControlList field's value.
10566func (s *S3AccessControlPolicy) SetAccessControlList(v *S3AccessControlList) *S3AccessControlPolicy {
10567	s.AccessControlList = v
10568	return s
10569}
10570
10571// SetCannedAccessControlList sets the CannedAccessControlList field's value.
10572func (s *S3AccessControlPolicy) SetCannedAccessControlList(v string) *S3AccessControlPolicy {
10573	s.CannedAccessControlList = &v
10574	return s
10575}
10576
10577// A container for the bucket where the Amazon S3 Storage Lens metrics export
10578// files are located.
10579type S3BucketDestination struct {
10580	_ struct{} `type:"structure"`
10581
10582	// The account ID of the owner of the S3 Storage Lens metrics export bucket.
10583	//
10584	// AccountId is a required field
10585	AccountId *string `type:"string" required:"true"`
10586
10587	// The Amazon Resource Name (ARN) of the bucket. This property is read-only
10588	// and follows the following format: arn:aws:s3:us-east-1:example-account-id:bucket/your-destination-bucket-name
10589	//
10590	// Arn is a required field
10591	Arn *string `min:"1" type:"string" required:"true"`
10592
10593	// The container for the type encryption of the metrics exports in this bucket.
10594	Encryption *StorageLensDataExportEncryption `type:"structure"`
10595
10596	// Format is a required field
10597	Format *string `type:"string" required:"true" enum:"Format"`
10598
10599	// The schema version of the export file.
10600	//
10601	// OutputSchemaVersion is a required field
10602	OutputSchemaVersion *string `type:"string" required:"true" enum:"OutputSchemaVersion"`
10603
10604	// The prefix of the destination bucket where the metrics export will be delivered.
10605	Prefix *string `type:"string"`
10606}
10607
10608// String returns the string representation
10609func (s S3BucketDestination) String() string {
10610	return awsutil.Prettify(s)
10611}
10612
10613// GoString returns the string representation
10614func (s S3BucketDestination) GoString() string {
10615	return s.String()
10616}
10617
10618// Validate inspects the fields of the type to determine if they are valid.
10619func (s *S3BucketDestination) Validate() error {
10620	invalidParams := request.ErrInvalidParams{Context: "S3BucketDestination"}
10621	if s.AccountId == nil {
10622		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10623	}
10624	if s.Arn == nil {
10625		invalidParams.Add(request.NewErrParamRequired("Arn"))
10626	}
10627	if s.Arn != nil && len(*s.Arn) < 1 {
10628		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
10629	}
10630	if s.Format == nil {
10631		invalidParams.Add(request.NewErrParamRequired("Format"))
10632	}
10633	if s.OutputSchemaVersion == nil {
10634		invalidParams.Add(request.NewErrParamRequired("OutputSchemaVersion"))
10635	}
10636	if s.Encryption != nil {
10637		if err := s.Encryption.Validate(); err != nil {
10638			invalidParams.AddNested("Encryption", err.(request.ErrInvalidParams))
10639		}
10640	}
10641
10642	if invalidParams.Len() > 0 {
10643		return invalidParams
10644	}
10645	return nil
10646}
10647
10648// SetAccountId sets the AccountId field's value.
10649func (s *S3BucketDestination) SetAccountId(v string) *S3BucketDestination {
10650	s.AccountId = &v
10651	return s
10652}
10653
10654// SetArn sets the Arn field's value.
10655func (s *S3BucketDestination) SetArn(v string) *S3BucketDestination {
10656	s.Arn = &v
10657	return s
10658}
10659
10660// SetEncryption sets the Encryption field's value.
10661func (s *S3BucketDestination) SetEncryption(v *StorageLensDataExportEncryption) *S3BucketDestination {
10662	s.Encryption = v
10663	return s
10664}
10665
10666// SetFormat sets the Format field's value.
10667func (s *S3BucketDestination) SetFormat(v string) *S3BucketDestination {
10668	s.Format = &v
10669	return s
10670}
10671
10672// SetOutputSchemaVersion sets the OutputSchemaVersion field's value.
10673func (s *S3BucketDestination) SetOutputSchemaVersion(v string) *S3BucketDestination {
10674	s.OutputSchemaVersion = &v
10675	return s
10676}
10677
10678// SetPrefix sets the Prefix field's value.
10679func (s *S3BucketDestination) SetPrefix(v string) *S3BucketDestination {
10680	s.Prefix = &v
10681	return s
10682}
10683
10684// Contains the configuration parameters for a PUT Copy object operation. S3
10685// Batch Operations passes every object to the underlying PUT Copy object API.
10686// For more information about the parameters for this operation, see PUT Object
10687// - Copy (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html).
10688type S3CopyObjectOperation struct {
10689	_ struct{} `type:"structure"`
10690
10691	AccessControlGrants []*S3Grant `type:"list"`
10692
10693	CannedAccessControlList *string `type:"string" enum:"S3CannedAccessControlList"`
10694
10695	MetadataDirective *string `type:"string" enum:"S3MetadataDirective"`
10696
10697	ModifiedSinceConstraint *time.Time `type:"timestamp"`
10698
10699	NewObjectMetadata *S3ObjectMetadata `type:"structure"`
10700
10701	NewObjectTagging []*S3Tag `type:"list"`
10702
10703	// The legal hold status to be applied to all objects in the Batch Operations
10704	// job.
10705	ObjectLockLegalHoldStatus *string `type:"string" enum:"S3ObjectLockLegalHoldStatus"`
10706
10707	// The retention mode to be applied to all objects in the Batch Operations job.
10708	ObjectLockMode *string `type:"string" enum:"S3ObjectLockMode"`
10709
10710	// The date when the applied object retention configuration expires on all objects
10711	// in the Batch Operations job.
10712	ObjectLockRetainUntilDate *time.Time `type:"timestamp"`
10713
10714	// Specifies an optional metadata property for website redirects, x-amz-website-redirect-location.
10715	// Allows webpage redirects if the object is accessed through a website endpoint.
10716	RedirectLocation *string `min:"1" type:"string"`
10717
10718	RequesterPays *bool `type:"boolean"`
10719
10720	SSEAwsKmsKeyId *string `min:"1" type:"string"`
10721
10722	StorageClass *string `type:"string" enum:"S3StorageClass"`
10723
10724	// Specifies the folder prefix into which you would like the objects to be copied.
10725	// For example, to copy objects into a folder named "Folder1" in the destination
10726	// bucket, set the TargetKeyPrefix to "Folder1/".
10727	TargetKeyPrefix *string `min:"1" type:"string"`
10728
10729	// Specifies the destination bucket ARN for the batch copy operation. For example,
10730	// to copy objects to a bucket named "destinationBucket", set the TargetResource
10731	// to "arn:aws:s3:::destinationBucket".
10732	TargetResource *string `min:"1" type:"string"`
10733
10734	UnModifiedSinceConstraint *time.Time `type:"timestamp"`
10735}
10736
10737// String returns the string representation
10738func (s S3CopyObjectOperation) String() string {
10739	return awsutil.Prettify(s)
10740}
10741
10742// GoString returns the string representation
10743func (s S3CopyObjectOperation) GoString() string {
10744	return s.String()
10745}
10746
10747// Validate inspects the fields of the type to determine if they are valid.
10748func (s *S3CopyObjectOperation) Validate() error {
10749	invalidParams := request.ErrInvalidParams{Context: "S3CopyObjectOperation"}
10750	if s.RedirectLocation != nil && len(*s.RedirectLocation) < 1 {
10751		invalidParams.Add(request.NewErrParamMinLen("RedirectLocation", 1))
10752	}
10753	if s.SSEAwsKmsKeyId != nil && len(*s.SSEAwsKmsKeyId) < 1 {
10754		invalidParams.Add(request.NewErrParamMinLen("SSEAwsKmsKeyId", 1))
10755	}
10756	if s.TargetKeyPrefix != nil && len(*s.TargetKeyPrefix) < 1 {
10757		invalidParams.Add(request.NewErrParamMinLen("TargetKeyPrefix", 1))
10758	}
10759	if s.TargetResource != nil && len(*s.TargetResource) < 1 {
10760		invalidParams.Add(request.NewErrParamMinLen("TargetResource", 1))
10761	}
10762	if s.AccessControlGrants != nil {
10763		for i, v := range s.AccessControlGrants {
10764			if v == nil {
10765				continue
10766			}
10767			if err := v.Validate(); err != nil {
10768				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessControlGrants", i), err.(request.ErrInvalidParams))
10769			}
10770		}
10771	}
10772	if s.NewObjectMetadata != nil {
10773		if err := s.NewObjectMetadata.Validate(); err != nil {
10774			invalidParams.AddNested("NewObjectMetadata", err.(request.ErrInvalidParams))
10775		}
10776	}
10777	if s.NewObjectTagging != nil {
10778		for i, v := range s.NewObjectTagging {
10779			if v == nil {
10780				continue
10781			}
10782			if err := v.Validate(); err != nil {
10783				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NewObjectTagging", i), err.(request.ErrInvalidParams))
10784			}
10785		}
10786	}
10787
10788	if invalidParams.Len() > 0 {
10789		return invalidParams
10790	}
10791	return nil
10792}
10793
10794// SetAccessControlGrants sets the AccessControlGrants field's value.
10795func (s *S3CopyObjectOperation) SetAccessControlGrants(v []*S3Grant) *S3CopyObjectOperation {
10796	s.AccessControlGrants = v
10797	return s
10798}
10799
10800// SetCannedAccessControlList sets the CannedAccessControlList field's value.
10801func (s *S3CopyObjectOperation) SetCannedAccessControlList(v string) *S3CopyObjectOperation {
10802	s.CannedAccessControlList = &v
10803	return s
10804}
10805
10806// SetMetadataDirective sets the MetadataDirective field's value.
10807func (s *S3CopyObjectOperation) SetMetadataDirective(v string) *S3CopyObjectOperation {
10808	s.MetadataDirective = &v
10809	return s
10810}
10811
10812// SetModifiedSinceConstraint sets the ModifiedSinceConstraint field's value.
10813func (s *S3CopyObjectOperation) SetModifiedSinceConstraint(v time.Time) *S3CopyObjectOperation {
10814	s.ModifiedSinceConstraint = &v
10815	return s
10816}
10817
10818// SetNewObjectMetadata sets the NewObjectMetadata field's value.
10819func (s *S3CopyObjectOperation) SetNewObjectMetadata(v *S3ObjectMetadata) *S3CopyObjectOperation {
10820	s.NewObjectMetadata = v
10821	return s
10822}
10823
10824// SetNewObjectTagging sets the NewObjectTagging field's value.
10825func (s *S3CopyObjectOperation) SetNewObjectTagging(v []*S3Tag) *S3CopyObjectOperation {
10826	s.NewObjectTagging = v
10827	return s
10828}
10829
10830// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
10831func (s *S3CopyObjectOperation) SetObjectLockLegalHoldStatus(v string) *S3CopyObjectOperation {
10832	s.ObjectLockLegalHoldStatus = &v
10833	return s
10834}
10835
10836// SetObjectLockMode sets the ObjectLockMode field's value.
10837func (s *S3CopyObjectOperation) SetObjectLockMode(v string) *S3CopyObjectOperation {
10838	s.ObjectLockMode = &v
10839	return s
10840}
10841
10842// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
10843func (s *S3CopyObjectOperation) SetObjectLockRetainUntilDate(v time.Time) *S3CopyObjectOperation {
10844	s.ObjectLockRetainUntilDate = &v
10845	return s
10846}
10847
10848// SetRedirectLocation sets the RedirectLocation field's value.
10849func (s *S3CopyObjectOperation) SetRedirectLocation(v string) *S3CopyObjectOperation {
10850	s.RedirectLocation = &v
10851	return s
10852}
10853
10854// SetRequesterPays sets the RequesterPays field's value.
10855func (s *S3CopyObjectOperation) SetRequesterPays(v bool) *S3CopyObjectOperation {
10856	s.RequesterPays = &v
10857	return s
10858}
10859
10860// SetSSEAwsKmsKeyId sets the SSEAwsKmsKeyId field's value.
10861func (s *S3CopyObjectOperation) SetSSEAwsKmsKeyId(v string) *S3CopyObjectOperation {
10862	s.SSEAwsKmsKeyId = &v
10863	return s
10864}
10865
10866// SetStorageClass sets the StorageClass field's value.
10867func (s *S3CopyObjectOperation) SetStorageClass(v string) *S3CopyObjectOperation {
10868	s.StorageClass = &v
10869	return s
10870}
10871
10872// SetTargetKeyPrefix sets the TargetKeyPrefix field's value.
10873func (s *S3CopyObjectOperation) SetTargetKeyPrefix(v string) *S3CopyObjectOperation {
10874	s.TargetKeyPrefix = &v
10875	return s
10876}
10877
10878// SetTargetResource sets the TargetResource field's value.
10879func (s *S3CopyObjectOperation) SetTargetResource(v string) *S3CopyObjectOperation {
10880	s.TargetResource = &v
10881	return s
10882}
10883
10884// SetUnModifiedSinceConstraint sets the UnModifiedSinceConstraint field's value.
10885func (s *S3CopyObjectOperation) SetUnModifiedSinceConstraint(v time.Time) *S3CopyObjectOperation {
10886	s.UnModifiedSinceConstraint = &v
10887	return s
10888}
10889
10890type S3Grant struct {
10891	_ struct{} `type:"structure"`
10892
10893	Grantee *S3Grantee `type:"structure"`
10894
10895	Permission *string `type:"string" enum:"S3Permission"`
10896}
10897
10898// String returns the string representation
10899func (s S3Grant) String() string {
10900	return awsutil.Prettify(s)
10901}
10902
10903// GoString returns the string representation
10904func (s S3Grant) GoString() string {
10905	return s.String()
10906}
10907
10908// Validate inspects the fields of the type to determine if they are valid.
10909func (s *S3Grant) Validate() error {
10910	invalidParams := request.ErrInvalidParams{Context: "S3Grant"}
10911	if s.Grantee != nil {
10912		if err := s.Grantee.Validate(); err != nil {
10913			invalidParams.AddNested("Grantee", err.(request.ErrInvalidParams))
10914		}
10915	}
10916
10917	if invalidParams.Len() > 0 {
10918		return invalidParams
10919	}
10920	return nil
10921}
10922
10923// SetGrantee sets the Grantee field's value.
10924func (s *S3Grant) SetGrantee(v *S3Grantee) *S3Grant {
10925	s.Grantee = v
10926	return s
10927}
10928
10929// SetPermission sets the Permission field's value.
10930func (s *S3Grant) SetPermission(v string) *S3Grant {
10931	s.Permission = &v
10932	return s
10933}
10934
10935type S3Grantee struct {
10936	_ struct{} `type:"structure"`
10937
10938	DisplayName *string `min:"1" type:"string"`
10939
10940	Identifier *string `min:"1" type:"string"`
10941
10942	TypeIdentifier *string `type:"string" enum:"S3GranteeTypeIdentifier"`
10943}
10944
10945// String returns the string representation
10946func (s S3Grantee) String() string {
10947	return awsutil.Prettify(s)
10948}
10949
10950// GoString returns the string representation
10951func (s S3Grantee) GoString() string {
10952	return s.String()
10953}
10954
10955// Validate inspects the fields of the type to determine if they are valid.
10956func (s *S3Grantee) Validate() error {
10957	invalidParams := request.ErrInvalidParams{Context: "S3Grantee"}
10958	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
10959		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
10960	}
10961	if s.Identifier != nil && len(*s.Identifier) < 1 {
10962		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
10963	}
10964
10965	if invalidParams.Len() > 0 {
10966		return invalidParams
10967	}
10968	return nil
10969}
10970
10971// SetDisplayName sets the DisplayName field's value.
10972func (s *S3Grantee) SetDisplayName(v string) *S3Grantee {
10973	s.DisplayName = &v
10974	return s
10975}
10976
10977// SetIdentifier sets the Identifier field's value.
10978func (s *S3Grantee) SetIdentifier(v string) *S3Grantee {
10979	s.Identifier = &v
10980	return s
10981}
10982
10983// SetTypeIdentifier sets the TypeIdentifier field's value.
10984func (s *S3Grantee) SetTypeIdentifier(v string) *S3Grantee {
10985	s.TypeIdentifier = &v
10986	return s
10987}
10988
10989// Contains the configuration parameters for an S3 Initiate Restore Object job.
10990// S3 Batch Operations passes every object to the underlying POST Object restore
10991// API. For more information about the parameters for this operation, see RestoreObject
10992// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOSTrestore.html#RESTObjectPOSTrestore-restore-request).
10993type S3InitiateRestoreObjectOperation struct {
10994	_ struct{} `type:"structure"`
10995
10996	// This argument specifies how long the S3 Glacier or S3 Glacier Deep Archive
10997	// object remains available in Amazon S3. S3 Initiate Restore Object jobs that
10998	// target S3 Glacier and S3 Glacier Deep Archive objects require ExpirationInDays
10999	// set to 1 or greater.
11000	//
11001	// Conversely, do not set ExpirationInDays when creating S3 Initiate Restore
11002	// Object jobs that target S3 Intelligent-Tiering Archive Access and Deep Archive
11003	// Access tier objects. Objects in S3 Intelligent-Tiering archive access tiers
11004	// are not subject to restore expiry, so specifying ExpirationInDays results
11005	// in restore request failure.
11006	//
11007	// S3 Batch Operations jobs can operate either on S3 Glacier and S3 Glacier
11008	// Deep Archive storage class objects or on S3 Intelligent-Tiering Archive Access
11009	// and Deep Archive Access storage tier objects, but not both types in the same
11010	// job. If you need to restore objects of both types you must create separate
11011	// Batch Operations jobs.
11012	ExpirationInDays *int64 `type:"integer"`
11013
11014	// S3 Batch Operations supports STANDARD and BULK retrieval tiers, but not the
11015	// EXPEDITED retrieval tier.
11016	GlacierJobTier *string `type:"string" enum:"S3GlacierJobTier"`
11017}
11018
11019// String returns the string representation
11020func (s S3InitiateRestoreObjectOperation) String() string {
11021	return awsutil.Prettify(s)
11022}
11023
11024// GoString returns the string representation
11025func (s S3InitiateRestoreObjectOperation) GoString() string {
11026	return s.String()
11027}
11028
11029// SetExpirationInDays sets the ExpirationInDays field's value.
11030func (s *S3InitiateRestoreObjectOperation) SetExpirationInDays(v int64) *S3InitiateRestoreObjectOperation {
11031	s.ExpirationInDays = &v
11032	return s
11033}
11034
11035// SetGlacierJobTier sets the GlacierJobTier field's value.
11036func (s *S3InitiateRestoreObjectOperation) SetGlacierJobTier(v string) *S3InitiateRestoreObjectOperation {
11037	s.GlacierJobTier = &v
11038	return s
11039}
11040
11041// Whether S3 Object Lock legal hold will be applied to objects in an S3 Batch
11042// Operations job.
11043type S3ObjectLockLegalHold struct {
11044	_ struct{} `type:"structure"`
11045
11046	// The Object Lock legal hold status to be applied to all objects in the Batch
11047	// Operations job.
11048	//
11049	// Status is a required field
11050	Status *string `type:"string" required:"true" enum:"S3ObjectLockLegalHoldStatus"`
11051}
11052
11053// String returns the string representation
11054func (s S3ObjectLockLegalHold) String() string {
11055	return awsutil.Prettify(s)
11056}
11057
11058// GoString returns the string representation
11059func (s S3ObjectLockLegalHold) GoString() string {
11060	return s.String()
11061}
11062
11063// Validate inspects the fields of the type to determine if they are valid.
11064func (s *S3ObjectLockLegalHold) Validate() error {
11065	invalidParams := request.ErrInvalidParams{Context: "S3ObjectLockLegalHold"}
11066	if s.Status == nil {
11067		invalidParams.Add(request.NewErrParamRequired("Status"))
11068	}
11069
11070	if invalidParams.Len() > 0 {
11071		return invalidParams
11072	}
11073	return nil
11074}
11075
11076// SetStatus sets the Status field's value.
11077func (s *S3ObjectLockLegalHold) SetStatus(v string) *S3ObjectLockLegalHold {
11078	s.Status = &v
11079	return s
11080}
11081
11082type S3ObjectMetadata struct {
11083	_ struct{} `type:"structure"`
11084
11085	CacheControl *string `min:"1" type:"string"`
11086
11087	ContentDisposition *string `min:"1" type:"string"`
11088
11089	ContentEncoding *string `min:"1" type:"string"`
11090
11091	ContentLanguage *string `min:"1" type:"string"`
11092
11093	ContentLength *int64 `type:"long"`
11094
11095	ContentMD5 *string `min:"1" type:"string"`
11096
11097	ContentType *string `min:"1" type:"string"`
11098
11099	HttpExpiresDate *time.Time `type:"timestamp"`
11100
11101	RequesterCharged *bool `type:"boolean"`
11102
11103	SSEAlgorithm *string `type:"string" enum:"S3SSEAlgorithm"`
11104
11105	UserMetadata map[string]*string `type:"map"`
11106}
11107
11108// String returns the string representation
11109func (s S3ObjectMetadata) String() string {
11110	return awsutil.Prettify(s)
11111}
11112
11113// GoString returns the string representation
11114func (s S3ObjectMetadata) GoString() string {
11115	return s.String()
11116}
11117
11118// Validate inspects the fields of the type to determine if they are valid.
11119func (s *S3ObjectMetadata) Validate() error {
11120	invalidParams := request.ErrInvalidParams{Context: "S3ObjectMetadata"}
11121	if s.CacheControl != nil && len(*s.CacheControl) < 1 {
11122		invalidParams.Add(request.NewErrParamMinLen("CacheControl", 1))
11123	}
11124	if s.ContentDisposition != nil && len(*s.ContentDisposition) < 1 {
11125		invalidParams.Add(request.NewErrParamMinLen("ContentDisposition", 1))
11126	}
11127	if s.ContentEncoding != nil && len(*s.ContentEncoding) < 1 {
11128		invalidParams.Add(request.NewErrParamMinLen("ContentEncoding", 1))
11129	}
11130	if s.ContentLanguage != nil && len(*s.ContentLanguage) < 1 {
11131		invalidParams.Add(request.NewErrParamMinLen("ContentLanguage", 1))
11132	}
11133	if s.ContentMD5 != nil && len(*s.ContentMD5) < 1 {
11134		invalidParams.Add(request.NewErrParamMinLen("ContentMD5", 1))
11135	}
11136	if s.ContentType != nil && len(*s.ContentType) < 1 {
11137		invalidParams.Add(request.NewErrParamMinLen("ContentType", 1))
11138	}
11139
11140	if invalidParams.Len() > 0 {
11141		return invalidParams
11142	}
11143	return nil
11144}
11145
11146// SetCacheControl sets the CacheControl field's value.
11147func (s *S3ObjectMetadata) SetCacheControl(v string) *S3ObjectMetadata {
11148	s.CacheControl = &v
11149	return s
11150}
11151
11152// SetContentDisposition sets the ContentDisposition field's value.
11153func (s *S3ObjectMetadata) SetContentDisposition(v string) *S3ObjectMetadata {
11154	s.ContentDisposition = &v
11155	return s
11156}
11157
11158// SetContentEncoding sets the ContentEncoding field's value.
11159func (s *S3ObjectMetadata) SetContentEncoding(v string) *S3ObjectMetadata {
11160	s.ContentEncoding = &v
11161	return s
11162}
11163
11164// SetContentLanguage sets the ContentLanguage field's value.
11165func (s *S3ObjectMetadata) SetContentLanguage(v string) *S3ObjectMetadata {
11166	s.ContentLanguage = &v
11167	return s
11168}
11169
11170// SetContentLength sets the ContentLength field's value.
11171func (s *S3ObjectMetadata) SetContentLength(v int64) *S3ObjectMetadata {
11172	s.ContentLength = &v
11173	return s
11174}
11175
11176// SetContentMD5 sets the ContentMD5 field's value.
11177func (s *S3ObjectMetadata) SetContentMD5(v string) *S3ObjectMetadata {
11178	s.ContentMD5 = &v
11179	return s
11180}
11181
11182// SetContentType sets the ContentType field's value.
11183func (s *S3ObjectMetadata) SetContentType(v string) *S3ObjectMetadata {
11184	s.ContentType = &v
11185	return s
11186}
11187
11188// SetHttpExpiresDate sets the HttpExpiresDate field's value.
11189func (s *S3ObjectMetadata) SetHttpExpiresDate(v time.Time) *S3ObjectMetadata {
11190	s.HttpExpiresDate = &v
11191	return s
11192}
11193
11194// SetRequesterCharged sets the RequesterCharged field's value.
11195func (s *S3ObjectMetadata) SetRequesterCharged(v bool) *S3ObjectMetadata {
11196	s.RequesterCharged = &v
11197	return s
11198}
11199
11200// SetSSEAlgorithm sets the SSEAlgorithm field's value.
11201func (s *S3ObjectMetadata) SetSSEAlgorithm(v string) *S3ObjectMetadata {
11202	s.SSEAlgorithm = &v
11203	return s
11204}
11205
11206// SetUserMetadata sets the UserMetadata field's value.
11207func (s *S3ObjectMetadata) SetUserMetadata(v map[string]*string) *S3ObjectMetadata {
11208	s.UserMetadata = v
11209	return s
11210}
11211
11212type S3ObjectOwner struct {
11213	_ struct{} `type:"structure"`
11214
11215	DisplayName *string `min:"1" type:"string"`
11216
11217	ID *string `min:"1" type:"string"`
11218}
11219
11220// String returns the string representation
11221func (s S3ObjectOwner) String() string {
11222	return awsutil.Prettify(s)
11223}
11224
11225// GoString returns the string representation
11226func (s S3ObjectOwner) GoString() string {
11227	return s.String()
11228}
11229
11230// Validate inspects the fields of the type to determine if they are valid.
11231func (s *S3ObjectOwner) Validate() error {
11232	invalidParams := request.ErrInvalidParams{Context: "S3ObjectOwner"}
11233	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
11234		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
11235	}
11236	if s.ID != nil && len(*s.ID) < 1 {
11237		invalidParams.Add(request.NewErrParamMinLen("ID", 1))
11238	}
11239
11240	if invalidParams.Len() > 0 {
11241		return invalidParams
11242	}
11243	return nil
11244}
11245
11246// SetDisplayName sets the DisplayName field's value.
11247func (s *S3ObjectOwner) SetDisplayName(v string) *S3ObjectOwner {
11248	s.DisplayName = &v
11249	return s
11250}
11251
11252// SetID sets the ID field's value.
11253func (s *S3ObjectOwner) SetID(v string) *S3ObjectOwner {
11254	s.ID = &v
11255	return s
11256}
11257
11258// Contains the S3 Object Lock retention mode to be applied to all objects in
11259// the S3 Batch Operations job. If you don't provide Mode and RetainUntilDate
11260// data types in your operation, you will remove the retention from your objects.
11261// For more information, see Using S3 Object Lock retention with S3 Batch Operations
11262// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
11263// in the Amazon Simple Storage Service Developer Guide.
11264type S3Retention struct {
11265	_ struct{} `type:"structure"`
11266
11267	// The Object Lock retention mode to be applied to all objects in the Batch
11268	// Operations job.
11269	Mode *string `type:"string" enum:"S3ObjectLockRetentionMode"`
11270
11271	// The date when the applied Object Lock retention will expire on all objects
11272	// set by the Batch Operations job.
11273	RetainUntilDate *time.Time `type:"timestamp"`
11274}
11275
11276// String returns the string representation
11277func (s S3Retention) String() string {
11278	return awsutil.Prettify(s)
11279}
11280
11281// GoString returns the string representation
11282func (s S3Retention) GoString() string {
11283	return s.String()
11284}
11285
11286// SetMode sets the Mode field's value.
11287func (s *S3Retention) SetMode(v string) *S3Retention {
11288	s.Mode = &v
11289	return s
11290}
11291
11292// SetRetainUntilDate sets the RetainUntilDate field's value.
11293func (s *S3Retention) SetRetainUntilDate(v time.Time) *S3Retention {
11294	s.RetainUntilDate = &v
11295	return s
11296}
11297
11298// Contains the configuration parameters for a Set Object ACL operation. S3
11299// Batch Operations passes every object to the underlying PUT Object acl API.
11300// For more information about the parameters for this operation, see PUT Object
11301// acl (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTacl.html).
11302type S3SetObjectAclOperation struct {
11303	_ struct{} `type:"structure"`
11304
11305	AccessControlPolicy *S3AccessControlPolicy `type:"structure"`
11306}
11307
11308// String returns the string representation
11309func (s S3SetObjectAclOperation) String() string {
11310	return awsutil.Prettify(s)
11311}
11312
11313// GoString returns the string representation
11314func (s S3SetObjectAclOperation) GoString() string {
11315	return s.String()
11316}
11317
11318// Validate inspects the fields of the type to determine if they are valid.
11319func (s *S3SetObjectAclOperation) Validate() error {
11320	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectAclOperation"}
11321	if s.AccessControlPolicy != nil {
11322		if err := s.AccessControlPolicy.Validate(); err != nil {
11323			invalidParams.AddNested("AccessControlPolicy", err.(request.ErrInvalidParams))
11324		}
11325	}
11326
11327	if invalidParams.Len() > 0 {
11328		return invalidParams
11329	}
11330	return nil
11331}
11332
11333// SetAccessControlPolicy sets the AccessControlPolicy field's value.
11334func (s *S3SetObjectAclOperation) SetAccessControlPolicy(v *S3AccessControlPolicy) *S3SetObjectAclOperation {
11335	s.AccessControlPolicy = v
11336	return s
11337}
11338
11339// Contains the configuration for an S3 Object Lock legal hold operation that
11340// an S3 Batch Operations job passes every object to the underlying PutObjectLegalHold
11341// API. For more information, see Using S3 Object Lock legal hold with S3 Batch
11342// Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html)
11343// in the Amazon Simple Storage Service Developer Guide.
11344type S3SetObjectLegalHoldOperation struct {
11345	_ struct{} `type:"structure"`
11346
11347	// Contains the Object Lock legal hold status to be applied to all objects in
11348	// the Batch Operations job.
11349	//
11350	// LegalHold is a required field
11351	LegalHold *S3ObjectLockLegalHold `type:"structure" required:"true"`
11352}
11353
11354// String returns the string representation
11355func (s S3SetObjectLegalHoldOperation) String() string {
11356	return awsutil.Prettify(s)
11357}
11358
11359// GoString returns the string representation
11360func (s S3SetObjectLegalHoldOperation) GoString() string {
11361	return s.String()
11362}
11363
11364// Validate inspects the fields of the type to determine if they are valid.
11365func (s *S3SetObjectLegalHoldOperation) Validate() error {
11366	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectLegalHoldOperation"}
11367	if s.LegalHold == nil {
11368		invalidParams.Add(request.NewErrParamRequired("LegalHold"))
11369	}
11370	if s.LegalHold != nil {
11371		if err := s.LegalHold.Validate(); err != nil {
11372			invalidParams.AddNested("LegalHold", err.(request.ErrInvalidParams))
11373		}
11374	}
11375
11376	if invalidParams.Len() > 0 {
11377		return invalidParams
11378	}
11379	return nil
11380}
11381
11382// SetLegalHold sets the LegalHold field's value.
11383func (s *S3SetObjectLegalHoldOperation) SetLegalHold(v *S3ObjectLockLegalHold) *S3SetObjectLegalHoldOperation {
11384	s.LegalHold = v
11385	return s
11386}
11387
11388// Contains the configuration parameters for the Object Lock retention action
11389// for an S3 Batch Operations job. Batch Operations passes every object to the
11390// underlying PutObjectRetention API. For more information, see Using S3 Object
11391// Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
11392// in the Amazon Simple Storage Service Developer Guide.
11393type S3SetObjectRetentionOperation struct {
11394	_ struct{} `type:"structure"`
11395
11396	// Indicates if the action should be applied to objects in the Batch Operations
11397	// job even if they have Object Lock GOVERNANCE type in place.
11398	BypassGovernanceRetention *bool `type:"boolean"`
11399
11400	// Contains the Object Lock retention mode to be applied to all objects in the
11401	// Batch Operations job. For more information, see Using S3 Object Lock retention
11402	// with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
11403	// in the Amazon Simple Storage Service Developer Guide.
11404	//
11405	// Retention is a required field
11406	Retention *S3Retention `type:"structure" required:"true"`
11407}
11408
11409// String returns the string representation
11410func (s S3SetObjectRetentionOperation) String() string {
11411	return awsutil.Prettify(s)
11412}
11413
11414// GoString returns the string representation
11415func (s S3SetObjectRetentionOperation) GoString() string {
11416	return s.String()
11417}
11418
11419// Validate inspects the fields of the type to determine if they are valid.
11420func (s *S3SetObjectRetentionOperation) Validate() error {
11421	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectRetentionOperation"}
11422	if s.Retention == nil {
11423		invalidParams.Add(request.NewErrParamRequired("Retention"))
11424	}
11425
11426	if invalidParams.Len() > 0 {
11427		return invalidParams
11428	}
11429	return nil
11430}
11431
11432// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
11433func (s *S3SetObjectRetentionOperation) SetBypassGovernanceRetention(v bool) *S3SetObjectRetentionOperation {
11434	s.BypassGovernanceRetention = &v
11435	return s
11436}
11437
11438// SetRetention sets the Retention field's value.
11439func (s *S3SetObjectRetentionOperation) SetRetention(v *S3Retention) *S3SetObjectRetentionOperation {
11440	s.Retention = v
11441	return s
11442}
11443
11444// Contains the configuration parameters for a Set Object Tagging operation.
11445// S3 Batch Operations passes every object to the underlying PUT Object tagging
11446// API. For more information about the parameters for this operation, see PUT
11447// Object tagging (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTtagging.html).
11448type S3SetObjectTaggingOperation struct {
11449	_ struct{} `type:"structure"`
11450
11451	TagSet []*S3Tag `type:"list"`
11452}
11453
11454// String returns the string representation
11455func (s S3SetObjectTaggingOperation) String() string {
11456	return awsutil.Prettify(s)
11457}
11458
11459// GoString returns the string representation
11460func (s S3SetObjectTaggingOperation) GoString() string {
11461	return s.String()
11462}
11463
11464// Validate inspects the fields of the type to determine if they are valid.
11465func (s *S3SetObjectTaggingOperation) Validate() error {
11466	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectTaggingOperation"}
11467	if s.TagSet != nil {
11468		for i, v := range s.TagSet {
11469			if v == nil {
11470				continue
11471			}
11472			if err := v.Validate(); err != nil {
11473				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSet", i), err.(request.ErrInvalidParams))
11474			}
11475		}
11476	}
11477
11478	if invalidParams.Len() > 0 {
11479		return invalidParams
11480	}
11481	return nil
11482}
11483
11484// SetTagSet sets the TagSet field's value.
11485func (s *S3SetObjectTaggingOperation) SetTagSet(v []*S3Tag) *S3SetObjectTaggingOperation {
11486	s.TagSet = v
11487	return s
11488}
11489
11490type S3Tag struct {
11491	_ struct{} `type:"structure"`
11492
11493	// Key is a required field
11494	Key *string `min:"1" type:"string" required:"true"`
11495
11496	// Value is a required field
11497	Value *string `type:"string" required:"true"`
11498}
11499
11500// String returns the string representation
11501func (s S3Tag) String() string {
11502	return awsutil.Prettify(s)
11503}
11504
11505// GoString returns the string representation
11506func (s S3Tag) GoString() string {
11507	return s.String()
11508}
11509
11510// Validate inspects the fields of the type to determine if they are valid.
11511func (s *S3Tag) Validate() error {
11512	invalidParams := request.ErrInvalidParams{Context: "S3Tag"}
11513	if s.Key == nil {
11514		invalidParams.Add(request.NewErrParamRequired("Key"))
11515	}
11516	if s.Key != nil && len(*s.Key) < 1 {
11517		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
11518	}
11519	if s.Value == nil {
11520		invalidParams.Add(request.NewErrParamRequired("Value"))
11521	}
11522
11523	if invalidParams.Len() > 0 {
11524		return invalidParams
11525	}
11526	return nil
11527}
11528
11529// SetKey sets the Key field's value.
11530func (s *S3Tag) SetKey(v string) *S3Tag {
11531	s.Key = &v
11532	return s
11533}
11534
11535// SetValue sets the Value field's value.
11536func (s *S3Tag) SetValue(v string) *S3Tag {
11537	s.Value = &v
11538	return s
11539}
11540
11541type SSEKMS struct {
11542	_ struct{} `locationName:"SSE-KMS" type:"structure"`
11543
11544	// A container for the ARN of the SSE-KMS encryption. This property is read-only
11545	// and follows the following format: arn:aws:kms:us-east-1:example-account-id:key/example-9a73-4afc-8d29-8f5900cef44e
11546	//
11547	// KeyId is a required field
11548	KeyId *string `type:"string" required:"true"`
11549}
11550
11551// String returns the string representation
11552func (s SSEKMS) String() string {
11553	return awsutil.Prettify(s)
11554}
11555
11556// GoString returns the string representation
11557func (s SSEKMS) GoString() string {
11558	return s.String()
11559}
11560
11561// Validate inspects the fields of the type to determine if they are valid.
11562func (s *SSEKMS) Validate() error {
11563	invalidParams := request.ErrInvalidParams{Context: "SSEKMS"}
11564	if s.KeyId == nil {
11565		invalidParams.Add(request.NewErrParamRequired("KeyId"))
11566	}
11567
11568	if invalidParams.Len() > 0 {
11569		return invalidParams
11570	}
11571	return nil
11572}
11573
11574// SetKeyId sets the KeyId field's value.
11575func (s *SSEKMS) SetKeyId(v string) *SSEKMS {
11576	s.KeyId = &v
11577	return s
11578}
11579
11580type SSES3 struct {
11581	_ struct{} `locationName:"SSE-S3" type:"structure"`
11582}
11583
11584// String returns the string representation
11585func (s SSES3) String() string {
11586	return awsutil.Prettify(s)
11587}
11588
11589// GoString returns the string representation
11590func (s SSES3) GoString() string {
11591	return s.String()
11592}
11593
11594type SelectionCriteria struct {
11595	_ struct{} `type:"structure"`
11596
11597	// A container for the delimiter of the selection criteria being used.
11598	Delimiter *string `type:"string"`
11599
11600	// The max depth of the selection criteria
11601	MaxDepth *int64 `min:"1" type:"integer"`
11602
11603	// The minimum number of storage bytes percentage whose metrics will be selected.
11604	//
11605	// You must choose a value greater than or equal to 1.0.
11606	MinStorageBytesPercentage *float64 `min:"0.1" type:"double"`
11607}
11608
11609// String returns the string representation
11610func (s SelectionCriteria) String() string {
11611	return awsutil.Prettify(s)
11612}
11613
11614// GoString returns the string representation
11615func (s SelectionCriteria) GoString() string {
11616	return s.String()
11617}
11618
11619// Validate inspects the fields of the type to determine if they are valid.
11620func (s *SelectionCriteria) Validate() error {
11621	invalidParams := request.ErrInvalidParams{Context: "SelectionCriteria"}
11622	if s.MaxDepth != nil && *s.MaxDepth < 1 {
11623		invalidParams.Add(request.NewErrParamMinValue("MaxDepth", 1))
11624	}
11625	if s.MinStorageBytesPercentage != nil && *s.MinStorageBytesPercentage < 0.1 {
11626		invalidParams.Add(request.NewErrParamMinValue("MinStorageBytesPercentage", 0.1))
11627	}
11628
11629	if invalidParams.Len() > 0 {
11630		return invalidParams
11631	}
11632	return nil
11633}
11634
11635// SetDelimiter sets the Delimiter field's value.
11636func (s *SelectionCriteria) SetDelimiter(v string) *SelectionCriteria {
11637	s.Delimiter = &v
11638	return s
11639}
11640
11641// SetMaxDepth sets the MaxDepth field's value.
11642func (s *SelectionCriteria) SetMaxDepth(v int64) *SelectionCriteria {
11643	s.MaxDepth = &v
11644	return s
11645}
11646
11647// SetMinStorageBytesPercentage sets the MinStorageBytesPercentage field's value.
11648func (s *SelectionCriteria) SetMinStorageBytesPercentage(v float64) *SelectionCriteria {
11649	s.MinStorageBytesPercentage = &v
11650	return s
11651}
11652
11653// The AWS organization for your S3 Storage Lens.
11654type StorageLensAwsOrg struct {
11655	_ struct{} `type:"structure"`
11656
11657	// A container for the Amazon Resource Name (ARN) of the AWS organization. This
11658	// property is read-only and follows the following format: arn:aws:organizations:us-east-1:example-account-id:organization/o-ex2l495dck
11659	//
11660	// Arn is a required field
11661	Arn *string `min:"1" type:"string" required:"true"`
11662}
11663
11664// String returns the string representation
11665func (s StorageLensAwsOrg) String() string {
11666	return awsutil.Prettify(s)
11667}
11668
11669// GoString returns the string representation
11670func (s StorageLensAwsOrg) GoString() string {
11671	return s.String()
11672}
11673
11674// Validate inspects the fields of the type to determine if they are valid.
11675func (s *StorageLensAwsOrg) Validate() error {
11676	invalidParams := request.ErrInvalidParams{Context: "StorageLensAwsOrg"}
11677	if s.Arn == nil {
11678		invalidParams.Add(request.NewErrParamRequired("Arn"))
11679	}
11680	if s.Arn != nil && len(*s.Arn) < 1 {
11681		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
11682	}
11683
11684	if invalidParams.Len() > 0 {
11685		return invalidParams
11686	}
11687	return nil
11688}
11689
11690// SetArn sets the Arn field's value.
11691func (s *StorageLensAwsOrg) SetArn(v string) *StorageLensAwsOrg {
11692	s.Arn = &v
11693	return s
11694}
11695
11696// A container for the Amazon S3 Storage Lens configuration.
11697type StorageLensConfiguration struct {
11698	_ struct{} `type:"structure"`
11699
11700	// A container for all the account-level configurations of your S3 Storage Lens
11701	// configuration.
11702	//
11703	// AccountLevel is a required field
11704	AccountLevel *AccountLevel `type:"structure" required:"true"`
11705
11706	// A container for the AWS organization for this S3 Storage Lens configuration.
11707	AwsOrg *StorageLensAwsOrg `type:"structure"`
11708
11709	// A container to specify the properties of your S3 Storage Lens metrics export
11710	// including, the destination, schema and format.
11711	DataExport *StorageLensDataExport `type:"structure"`
11712
11713	// A container for what is excluded in this configuration. This container can
11714	// only be valid if there is no Include container submitted, and it's not empty.
11715	Exclude *Exclude `type:"structure"`
11716
11717	// A container for the Amazon S3 Storage Lens configuration ID.
11718	//
11719	// Id is a required field
11720	Id *string `min:"1" type:"string" required:"true"`
11721
11722	// A container for what is included in this configuration. This container can
11723	// only be valid if there is no Exclude container submitted, and it's not empty.
11724	Include *Include `type:"structure"`
11725
11726	// A container for whether the S3 Storage Lens configuration is enabled.
11727	//
11728	// IsEnabled is a required field
11729	IsEnabled *bool `type:"boolean" required:"true"`
11730
11731	// The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This
11732	// property is read-only and follows the following format: arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name
11733	StorageLensArn *string `min:"1" type:"string"`
11734}
11735
11736// String returns the string representation
11737func (s StorageLensConfiguration) String() string {
11738	return awsutil.Prettify(s)
11739}
11740
11741// GoString returns the string representation
11742func (s StorageLensConfiguration) GoString() string {
11743	return s.String()
11744}
11745
11746// Validate inspects the fields of the type to determine if they are valid.
11747func (s *StorageLensConfiguration) Validate() error {
11748	invalidParams := request.ErrInvalidParams{Context: "StorageLensConfiguration"}
11749	if s.AccountLevel == nil {
11750		invalidParams.Add(request.NewErrParamRequired("AccountLevel"))
11751	}
11752	if s.Id == nil {
11753		invalidParams.Add(request.NewErrParamRequired("Id"))
11754	}
11755	if s.Id != nil && len(*s.Id) < 1 {
11756		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
11757	}
11758	if s.IsEnabled == nil {
11759		invalidParams.Add(request.NewErrParamRequired("IsEnabled"))
11760	}
11761	if s.StorageLensArn != nil && len(*s.StorageLensArn) < 1 {
11762		invalidParams.Add(request.NewErrParamMinLen("StorageLensArn", 1))
11763	}
11764	if s.AccountLevel != nil {
11765		if err := s.AccountLevel.Validate(); err != nil {
11766			invalidParams.AddNested("AccountLevel", err.(request.ErrInvalidParams))
11767		}
11768	}
11769	if s.AwsOrg != nil {
11770		if err := s.AwsOrg.Validate(); err != nil {
11771			invalidParams.AddNested("AwsOrg", err.(request.ErrInvalidParams))
11772		}
11773	}
11774	if s.DataExport != nil {
11775		if err := s.DataExport.Validate(); err != nil {
11776			invalidParams.AddNested("DataExport", err.(request.ErrInvalidParams))
11777		}
11778	}
11779
11780	if invalidParams.Len() > 0 {
11781		return invalidParams
11782	}
11783	return nil
11784}
11785
11786// SetAccountLevel sets the AccountLevel field's value.
11787func (s *StorageLensConfiguration) SetAccountLevel(v *AccountLevel) *StorageLensConfiguration {
11788	s.AccountLevel = v
11789	return s
11790}
11791
11792// SetAwsOrg sets the AwsOrg field's value.
11793func (s *StorageLensConfiguration) SetAwsOrg(v *StorageLensAwsOrg) *StorageLensConfiguration {
11794	s.AwsOrg = v
11795	return s
11796}
11797
11798// SetDataExport sets the DataExport field's value.
11799func (s *StorageLensConfiguration) SetDataExport(v *StorageLensDataExport) *StorageLensConfiguration {
11800	s.DataExport = v
11801	return s
11802}
11803
11804// SetExclude sets the Exclude field's value.
11805func (s *StorageLensConfiguration) SetExclude(v *Exclude) *StorageLensConfiguration {
11806	s.Exclude = v
11807	return s
11808}
11809
11810// SetId sets the Id field's value.
11811func (s *StorageLensConfiguration) SetId(v string) *StorageLensConfiguration {
11812	s.Id = &v
11813	return s
11814}
11815
11816// SetInclude sets the Include field's value.
11817func (s *StorageLensConfiguration) SetInclude(v *Include) *StorageLensConfiguration {
11818	s.Include = v
11819	return s
11820}
11821
11822// SetIsEnabled sets the IsEnabled field's value.
11823func (s *StorageLensConfiguration) SetIsEnabled(v bool) *StorageLensConfiguration {
11824	s.IsEnabled = &v
11825	return s
11826}
11827
11828// SetStorageLensArn sets the StorageLensArn field's value.
11829func (s *StorageLensConfiguration) SetStorageLensArn(v string) *StorageLensConfiguration {
11830	s.StorageLensArn = &v
11831	return s
11832}
11833
11834// A container to specify the properties of your S3 Storage Lens metrics export,
11835// including the destination, schema, and format.
11836type StorageLensDataExport struct {
11837	_ struct{} `type:"structure"`
11838
11839	// A container for the bucket where the S3 Storage Lens metrics export will
11840	// be located.
11841	//
11842	// S3BucketDestination is a required field
11843	S3BucketDestination *S3BucketDestination `type:"structure" required:"true"`
11844}
11845
11846// String returns the string representation
11847func (s StorageLensDataExport) String() string {
11848	return awsutil.Prettify(s)
11849}
11850
11851// GoString returns the string representation
11852func (s StorageLensDataExport) GoString() string {
11853	return s.String()
11854}
11855
11856// Validate inspects the fields of the type to determine if they are valid.
11857func (s *StorageLensDataExport) Validate() error {
11858	invalidParams := request.ErrInvalidParams{Context: "StorageLensDataExport"}
11859	if s.S3BucketDestination == nil {
11860		invalidParams.Add(request.NewErrParamRequired("S3BucketDestination"))
11861	}
11862	if s.S3BucketDestination != nil {
11863		if err := s.S3BucketDestination.Validate(); err != nil {
11864			invalidParams.AddNested("S3BucketDestination", err.(request.ErrInvalidParams))
11865		}
11866	}
11867
11868	if invalidParams.Len() > 0 {
11869		return invalidParams
11870	}
11871	return nil
11872}
11873
11874// SetS3BucketDestination sets the S3BucketDestination field's value.
11875func (s *StorageLensDataExport) SetS3BucketDestination(v *S3BucketDestination) *StorageLensDataExport {
11876	s.S3BucketDestination = v
11877	return s
11878}
11879
11880// A container for the encryption of the S3 Storage Lens metrics exports.
11881type StorageLensDataExportEncryption struct {
11882	_ struct{} `type:"structure"`
11883
11884	SSEKMS *SSEKMS `locationName:"SSE-KMS" type:"structure"`
11885
11886	SSES3 *SSES3 `locationName:"SSE-S3" type:"structure"`
11887}
11888
11889// String returns the string representation
11890func (s StorageLensDataExportEncryption) String() string {
11891	return awsutil.Prettify(s)
11892}
11893
11894// GoString returns the string representation
11895func (s StorageLensDataExportEncryption) GoString() string {
11896	return s.String()
11897}
11898
11899// Validate inspects the fields of the type to determine if they are valid.
11900func (s *StorageLensDataExportEncryption) Validate() error {
11901	invalidParams := request.ErrInvalidParams{Context: "StorageLensDataExportEncryption"}
11902	if s.SSEKMS != nil {
11903		if err := s.SSEKMS.Validate(); err != nil {
11904			invalidParams.AddNested("SSEKMS", err.(request.ErrInvalidParams))
11905		}
11906	}
11907
11908	if invalidParams.Len() > 0 {
11909		return invalidParams
11910	}
11911	return nil
11912}
11913
11914// SetSSEKMS sets the SSEKMS field's value.
11915func (s *StorageLensDataExportEncryption) SetSSEKMS(v *SSEKMS) *StorageLensDataExportEncryption {
11916	s.SSEKMS = v
11917	return s
11918}
11919
11920// SetSSES3 sets the SSES3 field's value.
11921func (s *StorageLensDataExportEncryption) SetSSES3(v *SSES3) *StorageLensDataExportEncryption {
11922	s.SSES3 = v
11923	return s
11924}
11925
11926type StorageLensTag struct {
11927	_ struct{} `type:"structure"`
11928
11929	// Key is a required field
11930	Key *string `min:"1" type:"string" required:"true"`
11931
11932	// Value is a required field
11933	Value *string `type:"string" required:"true"`
11934}
11935
11936// String returns the string representation
11937func (s StorageLensTag) String() string {
11938	return awsutil.Prettify(s)
11939}
11940
11941// GoString returns the string representation
11942func (s StorageLensTag) GoString() string {
11943	return s.String()
11944}
11945
11946// Validate inspects the fields of the type to determine if they are valid.
11947func (s *StorageLensTag) Validate() error {
11948	invalidParams := request.ErrInvalidParams{Context: "StorageLensTag"}
11949	if s.Key == nil {
11950		invalidParams.Add(request.NewErrParamRequired("Key"))
11951	}
11952	if s.Key != nil && len(*s.Key) < 1 {
11953		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
11954	}
11955	if s.Value == nil {
11956		invalidParams.Add(request.NewErrParamRequired("Value"))
11957	}
11958
11959	if invalidParams.Len() > 0 {
11960		return invalidParams
11961	}
11962	return nil
11963}
11964
11965// SetKey sets the Key field's value.
11966func (s *StorageLensTag) SetKey(v string) *StorageLensTag {
11967	s.Key = &v
11968	return s
11969}
11970
11971// SetValue sets the Value field's value.
11972func (s *StorageLensTag) SetValue(v string) *StorageLensTag {
11973	s.Value = &v
11974	return s
11975}
11976
11977type Tagging struct {
11978	_ struct{} `type:"structure"`
11979
11980	// A collection for a set of tags.
11981	//
11982	// TagSet is a required field
11983	TagSet []*S3Tag `type:"list" required:"true"`
11984}
11985
11986// String returns the string representation
11987func (s Tagging) String() string {
11988	return awsutil.Prettify(s)
11989}
11990
11991// GoString returns the string representation
11992func (s Tagging) GoString() string {
11993	return s.String()
11994}
11995
11996// Validate inspects the fields of the type to determine if they are valid.
11997func (s *Tagging) Validate() error {
11998	invalidParams := request.ErrInvalidParams{Context: "Tagging"}
11999	if s.TagSet == nil {
12000		invalidParams.Add(request.NewErrParamRequired("TagSet"))
12001	}
12002	if s.TagSet != nil {
12003		for i, v := range s.TagSet {
12004			if v == nil {
12005				continue
12006			}
12007			if err := v.Validate(); err != nil {
12008				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSet", i), err.(request.ErrInvalidParams))
12009			}
12010		}
12011	}
12012
12013	if invalidParams.Len() > 0 {
12014		return invalidParams
12015	}
12016	return nil
12017}
12018
12019// SetTagSet sets the TagSet field's value.
12020func (s *Tagging) SetTagSet(v []*S3Tag) *Tagging {
12021	s.TagSet = v
12022	return s
12023}
12024
12025// Specifies when an object transitions to a specified storage class. For more
12026// information about Amazon S3 Lifecycle configuration rules, see Transitioning
12027// objects using Amazon S3 Lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html)
12028// in the Amazon Simple Storage Service Developer Guide.
12029type Transition struct {
12030	_ struct{} `type:"structure"`
12031
12032	// Indicates when objects are transitioned to the specified storage class. The
12033	// date value must be in ISO 8601 format. The time is always midnight UTC.
12034	Date *time.Time `type:"timestamp"`
12035
12036	// Indicates the number of days after creation when objects are transitioned
12037	// to the specified storage class. The value must be a positive integer.
12038	Days *int64 `type:"integer"`
12039
12040	// The storage class to which you want the object to transition.
12041	StorageClass *string `type:"string" enum:"TransitionStorageClass"`
12042}
12043
12044// String returns the string representation
12045func (s Transition) String() string {
12046	return awsutil.Prettify(s)
12047}
12048
12049// GoString returns the string representation
12050func (s Transition) GoString() string {
12051	return s.String()
12052}
12053
12054// SetDate sets the Date field's value.
12055func (s *Transition) SetDate(v time.Time) *Transition {
12056	s.Date = &v
12057	return s
12058}
12059
12060// SetDays sets the Days field's value.
12061func (s *Transition) SetDays(v int64) *Transition {
12062	s.Days = &v
12063	return s
12064}
12065
12066// SetStorageClass sets the StorageClass field's value.
12067func (s *Transition) SetStorageClass(v string) *Transition {
12068	s.StorageClass = &v
12069	return s
12070}
12071
12072type UpdateJobPriorityInput struct {
12073	_ struct{} `locationName:"UpdateJobPriorityRequest" type:"structure"`
12074
12075	// AccountId is a required field
12076	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
12077
12078	// The ID for the job whose priority you want to update.
12079	//
12080	// JobId is a required field
12081	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
12082
12083	// The priority you want to assign to this job.
12084	//
12085	// Priority is a required field
12086	Priority *int64 `location:"querystring" locationName:"priority" type:"integer" required:"true"`
12087}
12088
12089// String returns the string representation
12090func (s UpdateJobPriorityInput) String() string {
12091	return awsutil.Prettify(s)
12092}
12093
12094// GoString returns the string representation
12095func (s UpdateJobPriorityInput) GoString() string {
12096	return s.String()
12097}
12098
12099// Validate inspects the fields of the type to determine if they are valid.
12100func (s *UpdateJobPriorityInput) Validate() error {
12101	invalidParams := request.ErrInvalidParams{Context: "UpdateJobPriorityInput"}
12102	if s.AccountId == nil {
12103		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12104	}
12105	if s.AccountId != nil && len(*s.AccountId) < 1 {
12106		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12107	}
12108	if s.JobId == nil {
12109		invalidParams.Add(request.NewErrParamRequired("JobId"))
12110	}
12111	if s.JobId != nil && len(*s.JobId) < 5 {
12112		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
12113	}
12114	if s.Priority == nil {
12115		invalidParams.Add(request.NewErrParamRequired("Priority"))
12116	}
12117
12118	if invalidParams.Len() > 0 {
12119		return invalidParams
12120	}
12121	return nil
12122}
12123
12124// SetAccountId sets the AccountId field's value.
12125func (s *UpdateJobPriorityInput) SetAccountId(v string) *UpdateJobPriorityInput {
12126	s.AccountId = &v
12127	return s
12128}
12129
12130// SetJobId sets the JobId field's value.
12131func (s *UpdateJobPriorityInput) SetJobId(v string) *UpdateJobPriorityInput {
12132	s.JobId = &v
12133	return s
12134}
12135
12136// SetPriority sets the Priority field's value.
12137func (s *UpdateJobPriorityInput) SetPriority(v int64) *UpdateJobPriorityInput {
12138	s.Priority = &v
12139	return s
12140}
12141
12142func (s *UpdateJobPriorityInput) hostLabels() map[string]string {
12143	return map[string]string{
12144		"AccountId": aws.StringValue(s.AccountId),
12145	}
12146}
12147
12148type UpdateJobPriorityOutput struct {
12149	_ struct{} `type:"structure"`
12150
12151	// The ID for the job whose priority Amazon S3 updated.
12152	//
12153	// JobId is a required field
12154	JobId *string `min:"5" type:"string" required:"true"`
12155
12156	// The new priority assigned to the specified job.
12157	//
12158	// Priority is a required field
12159	Priority *int64 `type:"integer" required:"true"`
12160}
12161
12162// String returns the string representation
12163func (s UpdateJobPriorityOutput) String() string {
12164	return awsutil.Prettify(s)
12165}
12166
12167// GoString returns the string representation
12168func (s UpdateJobPriorityOutput) GoString() string {
12169	return s.String()
12170}
12171
12172// SetJobId sets the JobId field's value.
12173func (s *UpdateJobPriorityOutput) SetJobId(v string) *UpdateJobPriorityOutput {
12174	s.JobId = &v
12175	return s
12176}
12177
12178// SetPriority sets the Priority field's value.
12179func (s *UpdateJobPriorityOutput) SetPriority(v int64) *UpdateJobPriorityOutput {
12180	s.Priority = &v
12181	return s
12182}
12183
12184type UpdateJobStatusInput struct {
12185	_ struct{} `locationName:"UpdateJobStatusRequest" type:"structure"`
12186
12187	// AccountId is a required field
12188	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
12189
12190	// The ID of the job whose status you want to update.
12191	//
12192	// JobId is a required field
12193	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
12194
12195	// The status that you want to move the specified job to.
12196	//
12197	// RequestedJobStatus is a required field
12198	RequestedJobStatus *string `location:"querystring" locationName:"requestedJobStatus" type:"string" required:"true" enum:"RequestedJobStatus"`
12199
12200	// A description of the reason why you want to change the specified job's status.
12201	// This field can be any string up to the maximum length.
12202	StatusUpdateReason *string `location:"querystring" locationName:"statusUpdateReason" min:"1" type:"string"`
12203}
12204
12205// String returns the string representation
12206func (s UpdateJobStatusInput) String() string {
12207	return awsutil.Prettify(s)
12208}
12209
12210// GoString returns the string representation
12211func (s UpdateJobStatusInput) GoString() string {
12212	return s.String()
12213}
12214
12215// Validate inspects the fields of the type to determine if they are valid.
12216func (s *UpdateJobStatusInput) Validate() error {
12217	invalidParams := request.ErrInvalidParams{Context: "UpdateJobStatusInput"}
12218	if s.AccountId == nil {
12219		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12220	}
12221	if s.AccountId != nil && len(*s.AccountId) < 1 {
12222		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12223	}
12224	if s.JobId == nil {
12225		invalidParams.Add(request.NewErrParamRequired("JobId"))
12226	}
12227	if s.JobId != nil && len(*s.JobId) < 5 {
12228		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
12229	}
12230	if s.RequestedJobStatus == nil {
12231		invalidParams.Add(request.NewErrParamRequired("RequestedJobStatus"))
12232	}
12233	if s.StatusUpdateReason != nil && len(*s.StatusUpdateReason) < 1 {
12234		invalidParams.Add(request.NewErrParamMinLen("StatusUpdateReason", 1))
12235	}
12236
12237	if invalidParams.Len() > 0 {
12238		return invalidParams
12239	}
12240	return nil
12241}
12242
12243// SetAccountId sets the AccountId field's value.
12244func (s *UpdateJobStatusInput) SetAccountId(v string) *UpdateJobStatusInput {
12245	s.AccountId = &v
12246	return s
12247}
12248
12249// SetJobId sets the JobId field's value.
12250func (s *UpdateJobStatusInput) SetJobId(v string) *UpdateJobStatusInput {
12251	s.JobId = &v
12252	return s
12253}
12254
12255// SetRequestedJobStatus sets the RequestedJobStatus field's value.
12256func (s *UpdateJobStatusInput) SetRequestedJobStatus(v string) *UpdateJobStatusInput {
12257	s.RequestedJobStatus = &v
12258	return s
12259}
12260
12261// SetStatusUpdateReason sets the StatusUpdateReason field's value.
12262func (s *UpdateJobStatusInput) SetStatusUpdateReason(v string) *UpdateJobStatusInput {
12263	s.StatusUpdateReason = &v
12264	return s
12265}
12266
12267func (s *UpdateJobStatusInput) hostLabels() map[string]string {
12268	return map[string]string{
12269		"AccountId": aws.StringValue(s.AccountId),
12270	}
12271}
12272
12273type UpdateJobStatusOutput struct {
12274	_ struct{} `type:"structure"`
12275
12276	// The ID for the job whose status was updated.
12277	JobId *string `min:"5" type:"string"`
12278
12279	// The current status for the specified job.
12280	Status *string `type:"string" enum:"JobStatus"`
12281
12282	// The reason that the specified job's status was updated.
12283	StatusUpdateReason *string `min:"1" type:"string"`
12284}
12285
12286// String returns the string representation
12287func (s UpdateJobStatusOutput) String() string {
12288	return awsutil.Prettify(s)
12289}
12290
12291// GoString returns the string representation
12292func (s UpdateJobStatusOutput) GoString() string {
12293	return s.String()
12294}
12295
12296// SetJobId sets the JobId field's value.
12297func (s *UpdateJobStatusOutput) SetJobId(v string) *UpdateJobStatusOutput {
12298	s.JobId = &v
12299	return s
12300}
12301
12302// SetStatus sets the Status field's value.
12303func (s *UpdateJobStatusOutput) SetStatus(v string) *UpdateJobStatusOutput {
12304	s.Status = &v
12305	return s
12306}
12307
12308// SetStatusUpdateReason sets the StatusUpdateReason field's value.
12309func (s *UpdateJobStatusOutput) SetStatusUpdateReason(v string) *UpdateJobStatusOutput {
12310	s.StatusUpdateReason = &v
12311	return s
12312}
12313
12314// The virtual private cloud (VPC) configuration for an access point.
12315type VpcConfiguration struct {
12316	_ struct{} `type:"structure"`
12317
12318	// If this field is specified, this access point will only allow connections
12319	// from the specified VPC ID.
12320	//
12321	// VpcId is a required field
12322	VpcId *string `min:"1" type:"string" required:"true"`
12323}
12324
12325// String returns the string representation
12326func (s VpcConfiguration) String() string {
12327	return awsutil.Prettify(s)
12328}
12329
12330// GoString returns the string representation
12331func (s VpcConfiguration) GoString() string {
12332	return s.String()
12333}
12334
12335// Validate inspects the fields of the type to determine if they are valid.
12336func (s *VpcConfiguration) Validate() error {
12337	invalidParams := request.ErrInvalidParams{Context: "VpcConfiguration"}
12338	if s.VpcId == nil {
12339		invalidParams.Add(request.NewErrParamRequired("VpcId"))
12340	}
12341	if s.VpcId != nil && len(*s.VpcId) < 1 {
12342		invalidParams.Add(request.NewErrParamMinLen("VpcId", 1))
12343	}
12344
12345	if invalidParams.Len() > 0 {
12346		return invalidParams
12347	}
12348	return nil
12349}
12350
12351// SetVpcId sets the VpcId field's value.
12352func (s *VpcConfiguration) SetVpcId(v string) *VpcConfiguration {
12353	s.VpcId = &v
12354	return s
12355}
12356
12357const (
12358	// BucketCannedACLPrivate is a BucketCannedACL enum value
12359	BucketCannedACLPrivate = "private"
12360
12361	// BucketCannedACLPublicRead is a BucketCannedACL enum value
12362	BucketCannedACLPublicRead = "public-read"
12363
12364	// BucketCannedACLPublicReadWrite is a BucketCannedACL enum value
12365	BucketCannedACLPublicReadWrite = "public-read-write"
12366
12367	// BucketCannedACLAuthenticatedRead is a BucketCannedACL enum value
12368	BucketCannedACLAuthenticatedRead = "authenticated-read"
12369)
12370
12371// BucketCannedACL_Values returns all elements of the BucketCannedACL enum
12372func BucketCannedACL_Values() []string {
12373	return []string{
12374		BucketCannedACLPrivate,
12375		BucketCannedACLPublicRead,
12376		BucketCannedACLPublicReadWrite,
12377		BucketCannedACLAuthenticatedRead,
12378	}
12379}
12380
12381const (
12382	// BucketLocationConstraintEu is a BucketLocationConstraint enum value
12383	BucketLocationConstraintEu = "EU"
12384
12385	// BucketLocationConstraintEuWest1 is a BucketLocationConstraint enum value
12386	BucketLocationConstraintEuWest1 = "eu-west-1"
12387
12388	// BucketLocationConstraintUsWest1 is a BucketLocationConstraint enum value
12389	BucketLocationConstraintUsWest1 = "us-west-1"
12390
12391	// BucketLocationConstraintUsWest2 is a BucketLocationConstraint enum value
12392	BucketLocationConstraintUsWest2 = "us-west-2"
12393
12394	// BucketLocationConstraintApSouth1 is a BucketLocationConstraint enum value
12395	BucketLocationConstraintApSouth1 = "ap-south-1"
12396
12397	// BucketLocationConstraintApSoutheast1 is a BucketLocationConstraint enum value
12398	BucketLocationConstraintApSoutheast1 = "ap-southeast-1"
12399
12400	// BucketLocationConstraintApSoutheast2 is a BucketLocationConstraint enum value
12401	BucketLocationConstraintApSoutheast2 = "ap-southeast-2"
12402
12403	// BucketLocationConstraintApNortheast1 is a BucketLocationConstraint enum value
12404	BucketLocationConstraintApNortheast1 = "ap-northeast-1"
12405
12406	// BucketLocationConstraintSaEast1 is a BucketLocationConstraint enum value
12407	BucketLocationConstraintSaEast1 = "sa-east-1"
12408
12409	// BucketLocationConstraintCnNorth1 is a BucketLocationConstraint enum value
12410	BucketLocationConstraintCnNorth1 = "cn-north-1"
12411
12412	// BucketLocationConstraintEuCentral1 is a BucketLocationConstraint enum value
12413	BucketLocationConstraintEuCentral1 = "eu-central-1"
12414)
12415
12416// BucketLocationConstraint_Values returns all elements of the BucketLocationConstraint enum
12417func BucketLocationConstraint_Values() []string {
12418	return []string{
12419		BucketLocationConstraintEu,
12420		BucketLocationConstraintEuWest1,
12421		BucketLocationConstraintUsWest1,
12422		BucketLocationConstraintUsWest2,
12423		BucketLocationConstraintApSouth1,
12424		BucketLocationConstraintApSoutheast1,
12425		BucketLocationConstraintApSoutheast2,
12426		BucketLocationConstraintApNortheast1,
12427		BucketLocationConstraintSaEast1,
12428		BucketLocationConstraintCnNorth1,
12429		BucketLocationConstraintEuCentral1,
12430	}
12431}
12432
12433const (
12434	// ExpirationStatusEnabled is a ExpirationStatus enum value
12435	ExpirationStatusEnabled = "Enabled"
12436
12437	// ExpirationStatusDisabled is a ExpirationStatus enum value
12438	ExpirationStatusDisabled = "Disabled"
12439)
12440
12441// ExpirationStatus_Values returns all elements of the ExpirationStatus enum
12442func ExpirationStatus_Values() []string {
12443	return []string{
12444		ExpirationStatusEnabled,
12445		ExpirationStatusDisabled,
12446	}
12447}
12448
12449const (
12450	// FormatCsv is a Format enum value
12451	FormatCsv = "CSV"
12452
12453	// FormatParquet is a Format enum value
12454	FormatParquet = "Parquet"
12455)
12456
12457// Format_Values returns all elements of the Format enum
12458func Format_Values() []string {
12459	return []string{
12460		FormatCsv,
12461		FormatParquet,
12462	}
12463}
12464
12465const (
12466	// JobManifestFieldNameIgnore is a JobManifestFieldName enum value
12467	JobManifestFieldNameIgnore = "Ignore"
12468
12469	// JobManifestFieldNameBucket is a JobManifestFieldName enum value
12470	JobManifestFieldNameBucket = "Bucket"
12471
12472	// JobManifestFieldNameKey is a JobManifestFieldName enum value
12473	JobManifestFieldNameKey = "Key"
12474
12475	// JobManifestFieldNameVersionId is a JobManifestFieldName enum value
12476	JobManifestFieldNameVersionId = "VersionId"
12477)
12478
12479// JobManifestFieldName_Values returns all elements of the JobManifestFieldName enum
12480func JobManifestFieldName_Values() []string {
12481	return []string{
12482		JobManifestFieldNameIgnore,
12483		JobManifestFieldNameBucket,
12484		JobManifestFieldNameKey,
12485		JobManifestFieldNameVersionId,
12486	}
12487}
12488
12489const (
12490	// JobManifestFormatS3batchOperationsCsv20180820 is a JobManifestFormat enum value
12491	JobManifestFormatS3batchOperationsCsv20180820 = "S3BatchOperations_CSV_20180820"
12492
12493	// JobManifestFormatS3inventoryReportCsv20161130 is a JobManifestFormat enum value
12494	JobManifestFormatS3inventoryReportCsv20161130 = "S3InventoryReport_CSV_20161130"
12495)
12496
12497// JobManifestFormat_Values returns all elements of the JobManifestFormat enum
12498func JobManifestFormat_Values() []string {
12499	return []string{
12500		JobManifestFormatS3batchOperationsCsv20180820,
12501		JobManifestFormatS3inventoryReportCsv20161130,
12502	}
12503}
12504
12505const (
12506	// JobReportFormatReportCsv20180820 is a JobReportFormat enum value
12507	JobReportFormatReportCsv20180820 = "Report_CSV_20180820"
12508)
12509
12510// JobReportFormat_Values returns all elements of the JobReportFormat enum
12511func JobReportFormat_Values() []string {
12512	return []string{
12513		JobReportFormatReportCsv20180820,
12514	}
12515}
12516
12517const (
12518	// JobReportScopeAllTasks is a JobReportScope enum value
12519	JobReportScopeAllTasks = "AllTasks"
12520
12521	// JobReportScopeFailedTasksOnly is a JobReportScope enum value
12522	JobReportScopeFailedTasksOnly = "FailedTasksOnly"
12523)
12524
12525// JobReportScope_Values returns all elements of the JobReportScope enum
12526func JobReportScope_Values() []string {
12527	return []string{
12528		JobReportScopeAllTasks,
12529		JobReportScopeFailedTasksOnly,
12530	}
12531}
12532
12533const (
12534	// JobStatusActive is a JobStatus enum value
12535	JobStatusActive = "Active"
12536
12537	// JobStatusCancelled is a JobStatus enum value
12538	JobStatusCancelled = "Cancelled"
12539
12540	// JobStatusCancelling is a JobStatus enum value
12541	JobStatusCancelling = "Cancelling"
12542
12543	// JobStatusComplete is a JobStatus enum value
12544	JobStatusComplete = "Complete"
12545
12546	// JobStatusCompleting is a JobStatus enum value
12547	JobStatusCompleting = "Completing"
12548
12549	// JobStatusFailed is a JobStatus enum value
12550	JobStatusFailed = "Failed"
12551
12552	// JobStatusFailing is a JobStatus enum value
12553	JobStatusFailing = "Failing"
12554
12555	// JobStatusNew is a JobStatus enum value
12556	JobStatusNew = "New"
12557
12558	// JobStatusPaused is a JobStatus enum value
12559	JobStatusPaused = "Paused"
12560
12561	// JobStatusPausing is a JobStatus enum value
12562	JobStatusPausing = "Pausing"
12563
12564	// JobStatusPreparing is a JobStatus enum value
12565	JobStatusPreparing = "Preparing"
12566
12567	// JobStatusReady is a JobStatus enum value
12568	JobStatusReady = "Ready"
12569
12570	// JobStatusSuspended is a JobStatus enum value
12571	JobStatusSuspended = "Suspended"
12572)
12573
12574// JobStatus_Values returns all elements of the JobStatus enum
12575func JobStatus_Values() []string {
12576	return []string{
12577		JobStatusActive,
12578		JobStatusCancelled,
12579		JobStatusCancelling,
12580		JobStatusComplete,
12581		JobStatusCompleting,
12582		JobStatusFailed,
12583		JobStatusFailing,
12584		JobStatusNew,
12585		JobStatusPaused,
12586		JobStatusPausing,
12587		JobStatusPreparing,
12588		JobStatusReady,
12589		JobStatusSuspended,
12590	}
12591}
12592
12593const (
12594	// NetworkOriginInternet is a NetworkOrigin enum value
12595	NetworkOriginInternet = "Internet"
12596
12597	// NetworkOriginVpc is a NetworkOrigin enum value
12598	NetworkOriginVpc = "VPC"
12599)
12600
12601// NetworkOrigin_Values returns all elements of the NetworkOrigin enum
12602func NetworkOrigin_Values() []string {
12603	return []string{
12604		NetworkOriginInternet,
12605		NetworkOriginVpc,
12606	}
12607}
12608
12609const (
12610	// OperationNameLambdaInvoke is a OperationName enum value
12611	OperationNameLambdaInvoke = "LambdaInvoke"
12612
12613	// OperationNameS3putObjectCopy is a OperationName enum value
12614	OperationNameS3putObjectCopy = "S3PutObjectCopy"
12615
12616	// OperationNameS3putObjectAcl is a OperationName enum value
12617	OperationNameS3putObjectAcl = "S3PutObjectAcl"
12618
12619	// OperationNameS3putObjectTagging is a OperationName enum value
12620	OperationNameS3putObjectTagging = "S3PutObjectTagging"
12621
12622	// OperationNameS3initiateRestoreObject is a OperationName enum value
12623	OperationNameS3initiateRestoreObject = "S3InitiateRestoreObject"
12624
12625	// OperationNameS3putObjectLegalHold is a OperationName enum value
12626	OperationNameS3putObjectLegalHold = "S3PutObjectLegalHold"
12627
12628	// OperationNameS3putObjectRetention is a OperationName enum value
12629	OperationNameS3putObjectRetention = "S3PutObjectRetention"
12630)
12631
12632// OperationName_Values returns all elements of the OperationName enum
12633func OperationName_Values() []string {
12634	return []string{
12635		OperationNameLambdaInvoke,
12636		OperationNameS3putObjectCopy,
12637		OperationNameS3putObjectAcl,
12638		OperationNameS3putObjectTagging,
12639		OperationNameS3initiateRestoreObject,
12640		OperationNameS3putObjectLegalHold,
12641		OperationNameS3putObjectRetention,
12642	}
12643}
12644
12645const (
12646	// OutputSchemaVersionV1 is a OutputSchemaVersion enum value
12647	OutputSchemaVersionV1 = "V_1"
12648)
12649
12650// OutputSchemaVersion_Values returns all elements of the OutputSchemaVersion enum
12651func OutputSchemaVersion_Values() []string {
12652	return []string{
12653		OutputSchemaVersionV1,
12654	}
12655}
12656
12657const (
12658	// RequestedJobStatusCancelled is a RequestedJobStatus enum value
12659	RequestedJobStatusCancelled = "Cancelled"
12660
12661	// RequestedJobStatusReady is a RequestedJobStatus enum value
12662	RequestedJobStatusReady = "Ready"
12663)
12664
12665// RequestedJobStatus_Values returns all elements of the RequestedJobStatus enum
12666func RequestedJobStatus_Values() []string {
12667	return []string{
12668		RequestedJobStatusCancelled,
12669		RequestedJobStatusReady,
12670	}
12671}
12672
12673const (
12674	// S3CannedAccessControlListPrivate is a S3CannedAccessControlList enum value
12675	S3CannedAccessControlListPrivate = "private"
12676
12677	// S3CannedAccessControlListPublicRead is a S3CannedAccessControlList enum value
12678	S3CannedAccessControlListPublicRead = "public-read"
12679
12680	// S3CannedAccessControlListPublicReadWrite is a S3CannedAccessControlList enum value
12681	S3CannedAccessControlListPublicReadWrite = "public-read-write"
12682
12683	// S3CannedAccessControlListAwsExecRead is a S3CannedAccessControlList enum value
12684	S3CannedAccessControlListAwsExecRead = "aws-exec-read"
12685
12686	// S3CannedAccessControlListAuthenticatedRead is a S3CannedAccessControlList enum value
12687	S3CannedAccessControlListAuthenticatedRead = "authenticated-read"
12688
12689	// S3CannedAccessControlListBucketOwnerRead is a S3CannedAccessControlList enum value
12690	S3CannedAccessControlListBucketOwnerRead = "bucket-owner-read"
12691
12692	// S3CannedAccessControlListBucketOwnerFullControl is a S3CannedAccessControlList enum value
12693	S3CannedAccessControlListBucketOwnerFullControl = "bucket-owner-full-control"
12694)
12695
12696// S3CannedAccessControlList_Values returns all elements of the S3CannedAccessControlList enum
12697func S3CannedAccessControlList_Values() []string {
12698	return []string{
12699		S3CannedAccessControlListPrivate,
12700		S3CannedAccessControlListPublicRead,
12701		S3CannedAccessControlListPublicReadWrite,
12702		S3CannedAccessControlListAwsExecRead,
12703		S3CannedAccessControlListAuthenticatedRead,
12704		S3CannedAccessControlListBucketOwnerRead,
12705		S3CannedAccessControlListBucketOwnerFullControl,
12706	}
12707}
12708
12709const (
12710	// S3GlacierJobTierBulk is a S3GlacierJobTier enum value
12711	S3GlacierJobTierBulk = "BULK"
12712
12713	// S3GlacierJobTierStandard is a S3GlacierJobTier enum value
12714	S3GlacierJobTierStandard = "STANDARD"
12715)
12716
12717// S3GlacierJobTier_Values returns all elements of the S3GlacierJobTier enum
12718func S3GlacierJobTier_Values() []string {
12719	return []string{
12720		S3GlacierJobTierBulk,
12721		S3GlacierJobTierStandard,
12722	}
12723}
12724
12725const (
12726	// S3GranteeTypeIdentifierId is a S3GranteeTypeIdentifier enum value
12727	S3GranteeTypeIdentifierId = "id"
12728
12729	// S3GranteeTypeIdentifierEmailAddress is a S3GranteeTypeIdentifier enum value
12730	S3GranteeTypeIdentifierEmailAddress = "emailAddress"
12731
12732	// S3GranteeTypeIdentifierUri is a S3GranteeTypeIdentifier enum value
12733	S3GranteeTypeIdentifierUri = "uri"
12734)
12735
12736// S3GranteeTypeIdentifier_Values returns all elements of the S3GranteeTypeIdentifier enum
12737func S3GranteeTypeIdentifier_Values() []string {
12738	return []string{
12739		S3GranteeTypeIdentifierId,
12740		S3GranteeTypeIdentifierEmailAddress,
12741		S3GranteeTypeIdentifierUri,
12742	}
12743}
12744
12745const (
12746	// S3MetadataDirectiveCopy is a S3MetadataDirective enum value
12747	S3MetadataDirectiveCopy = "COPY"
12748
12749	// S3MetadataDirectiveReplace is a S3MetadataDirective enum value
12750	S3MetadataDirectiveReplace = "REPLACE"
12751)
12752
12753// S3MetadataDirective_Values returns all elements of the S3MetadataDirective enum
12754func S3MetadataDirective_Values() []string {
12755	return []string{
12756		S3MetadataDirectiveCopy,
12757		S3MetadataDirectiveReplace,
12758	}
12759}
12760
12761const (
12762	// S3ObjectLockLegalHoldStatusOff is a S3ObjectLockLegalHoldStatus enum value
12763	S3ObjectLockLegalHoldStatusOff = "OFF"
12764
12765	// S3ObjectLockLegalHoldStatusOn is a S3ObjectLockLegalHoldStatus enum value
12766	S3ObjectLockLegalHoldStatusOn = "ON"
12767)
12768
12769// S3ObjectLockLegalHoldStatus_Values returns all elements of the S3ObjectLockLegalHoldStatus enum
12770func S3ObjectLockLegalHoldStatus_Values() []string {
12771	return []string{
12772		S3ObjectLockLegalHoldStatusOff,
12773		S3ObjectLockLegalHoldStatusOn,
12774	}
12775}
12776
12777const (
12778	// S3ObjectLockModeCompliance is a S3ObjectLockMode enum value
12779	S3ObjectLockModeCompliance = "COMPLIANCE"
12780
12781	// S3ObjectLockModeGovernance is a S3ObjectLockMode enum value
12782	S3ObjectLockModeGovernance = "GOVERNANCE"
12783)
12784
12785// S3ObjectLockMode_Values returns all elements of the S3ObjectLockMode enum
12786func S3ObjectLockMode_Values() []string {
12787	return []string{
12788		S3ObjectLockModeCompliance,
12789		S3ObjectLockModeGovernance,
12790	}
12791}
12792
12793const (
12794	// S3ObjectLockRetentionModeCompliance is a S3ObjectLockRetentionMode enum value
12795	S3ObjectLockRetentionModeCompliance = "COMPLIANCE"
12796
12797	// S3ObjectLockRetentionModeGovernance is a S3ObjectLockRetentionMode enum value
12798	S3ObjectLockRetentionModeGovernance = "GOVERNANCE"
12799)
12800
12801// S3ObjectLockRetentionMode_Values returns all elements of the S3ObjectLockRetentionMode enum
12802func S3ObjectLockRetentionMode_Values() []string {
12803	return []string{
12804		S3ObjectLockRetentionModeCompliance,
12805		S3ObjectLockRetentionModeGovernance,
12806	}
12807}
12808
12809const (
12810	// S3PermissionFullControl is a S3Permission enum value
12811	S3PermissionFullControl = "FULL_CONTROL"
12812
12813	// S3PermissionRead is a S3Permission enum value
12814	S3PermissionRead = "READ"
12815
12816	// S3PermissionWrite is a S3Permission enum value
12817	S3PermissionWrite = "WRITE"
12818
12819	// S3PermissionReadAcp is a S3Permission enum value
12820	S3PermissionReadAcp = "READ_ACP"
12821
12822	// S3PermissionWriteAcp is a S3Permission enum value
12823	S3PermissionWriteAcp = "WRITE_ACP"
12824)
12825
12826// S3Permission_Values returns all elements of the S3Permission enum
12827func S3Permission_Values() []string {
12828	return []string{
12829		S3PermissionFullControl,
12830		S3PermissionRead,
12831		S3PermissionWrite,
12832		S3PermissionReadAcp,
12833		S3PermissionWriteAcp,
12834	}
12835}
12836
12837const (
12838	// S3SSEAlgorithmAes256 is a S3SSEAlgorithm enum value
12839	S3SSEAlgorithmAes256 = "AES256"
12840
12841	// S3SSEAlgorithmKms is a S3SSEAlgorithm enum value
12842	S3SSEAlgorithmKms = "KMS"
12843)
12844
12845// S3SSEAlgorithm_Values returns all elements of the S3SSEAlgorithm enum
12846func S3SSEAlgorithm_Values() []string {
12847	return []string{
12848		S3SSEAlgorithmAes256,
12849		S3SSEAlgorithmKms,
12850	}
12851}
12852
12853const (
12854	// S3StorageClassStandard is a S3StorageClass enum value
12855	S3StorageClassStandard = "STANDARD"
12856
12857	// S3StorageClassStandardIa is a S3StorageClass enum value
12858	S3StorageClassStandardIa = "STANDARD_IA"
12859
12860	// S3StorageClassOnezoneIa is a S3StorageClass enum value
12861	S3StorageClassOnezoneIa = "ONEZONE_IA"
12862
12863	// S3StorageClassGlacier is a S3StorageClass enum value
12864	S3StorageClassGlacier = "GLACIER"
12865
12866	// S3StorageClassIntelligentTiering is a S3StorageClass enum value
12867	S3StorageClassIntelligentTiering = "INTELLIGENT_TIERING"
12868
12869	// S3StorageClassDeepArchive is a S3StorageClass enum value
12870	S3StorageClassDeepArchive = "DEEP_ARCHIVE"
12871)
12872
12873// S3StorageClass_Values returns all elements of the S3StorageClass enum
12874func S3StorageClass_Values() []string {
12875	return []string{
12876		S3StorageClassStandard,
12877		S3StorageClassStandardIa,
12878		S3StorageClassOnezoneIa,
12879		S3StorageClassGlacier,
12880		S3StorageClassIntelligentTiering,
12881		S3StorageClassDeepArchive,
12882	}
12883}
12884
12885const (
12886	// TransitionStorageClassGlacier is a TransitionStorageClass enum value
12887	TransitionStorageClassGlacier = "GLACIER"
12888
12889	// TransitionStorageClassStandardIa is a TransitionStorageClass enum value
12890	TransitionStorageClassStandardIa = "STANDARD_IA"
12891
12892	// TransitionStorageClassOnezoneIa is a TransitionStorageClass enum value
12893	TransitionStorageClassOnezoneIa = "ONEZONE_IA"
12894
12895	// TransitionStorageClassIntelligentTiering is a TransitionStorageClass enum value
12896	TransitionStorageClassIntelligentTiering = "INTELLIGENT_TIERING"
12897
12898	// TransitionStorageClassDeepArchive is a TransitionStorageClass enum value
12899	TransitionStorageClassDeepArchive = "DEEP_ARCHIVE"
12900)
12901
12902// TransitionStorageClass_Values returns all elements of the TransitionStorageClass enum
12903func TransitionStorageClass_Values() []string {
12904	return []string{
12905		TransitionStorageClassGlacier,
12906		TransitionStorageClassStandardIa,
12907		TransitionStorageClassOnezoneIa,
12908		TransitionStorageClassIntelligentTiering,
12909		TransitionStorageClassDeepArchive,
12910	}
12911}
12912