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/userguide/access-points.html)
69// in the Amazon S3 User Guide.
70//
71// S3 on Outposts only supports VPC-style access points.
72//
73// For more information, see Accessing Amazon S3 on Outposts using virtual private
74// cloud (VPC) only access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
75// in the Amazon S3 User Guide.
76//
77// All Amazon S3 on Outposts REST API requests for this action require an additional
78// parameter of x-amz-outpost-id to be passed with the request and an S3 on
79// Outposts endpoint hostname prefix instead of s3-control. For an example of
80// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
81// endpoint hostname prefix and the x-amz-outpost-id derived using the access
82// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html#API_control_CreateAccessPoint_Examples)
83// section.
84//
85// The following actions are related to CreateAccessPoint:
86//
87//    * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)
88//
89//    * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)
90//
91//    * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)
92//
93// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
94// with awserr.Error's Code and Message methods to get detailed information about
95// the error.
96//
97// See the AWS API reference guide for AWS S3 Control's
98// API operation CreateAccessPoint for usage and error information.
99// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPoint
100func (c *S3Control) CreateAccessPoint(input *CreateAccessPointInput) (*CreateAccessPointOutput, error) {
101	req, out := c.CreateAccessPointRequest(input)
102	return out, req.Send()
103}
104
105// CreateAccessPointWithContext is the same as CreateAccessPoint with the addition of
106// the ability to pass a context and additional request options.
107//
108// See CreateAccessPoint for details on how to use this API operation.
109//
110// The context must be non-nil and will be used for request cancellation. If
111// the context is nil a panic will occur. In the future the SDK may create
112// sub-contexts for http.Requests. See https://golang.org/pkg/context/
113// for more information on using Contexts.
114func (c *S3Control) CreateAccessPointWithContext(ctx aws.Context, input *CreateAccessPointInput, opts ...request.Option) (*CreateAccessPointOutput, error) {
115	req, out := c.CreateAccessPointRequest(input)
116	req.SetContext(ctx)
117	req.ApplyOptions(opts...)
118	return out, req.Send()
119}
120
121const opCreateAccessPointForObjectLambda = "CreateAccessPointForObjectLambda"
122
123// CreateAccessPointForObjectLambdaRequest generates a "aws/request.Request" representing the
124// client's request for the CreateAccessPointForObjectLambda operation. The "output" return
125// value will be populated with the request's response once the request completes
126// successfully.
127//
128// Use "Send" method on the returned Request to send the API call to the service.
129// the "output" return value is not valid until after Send returns without error.
130//
131// See CreateAccessPointForObjectLambda for more information on using the CreateAccessPointForObjectLambda
132// API call, and error handling.
133//
134// This method is useful when you want to inject custom logic or configuration
135// into the SDK's request lifecycle. Such as custom headers, or retry logic.
136//
137//
138//    // Example sending a request using the CreateAccessPointForObjectLambdaRequest method.
139//    req, resp := client.CreateAccessPointForObjectLambdaRequest(params)
140//
141//    err := req.Send()
142//    if err == nil { // resp is now filled
143//        fmt.Println(resp)
144//    }
145//
146// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPointForObjectLambda
147func (c *S3Control) CreateAccessPointForObjectLambdaRequest(input *CreateAccessPointForObjectLambdaInput) (req *request.Request, output *CreateAccessPointForObjectLambdaOutput) {
148	op := &request.Operation{
149		Name:       opCreateAccessPointForObjectLambda,
150		HTTPMethod: "PUT",
151		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}",
152	}
153
154	if input == nil {
155		input = &CreateAccessPointForObjectLambdaInput{}
156	}
157
158	output = &CreateAccessPointForObjectLambdaOutput{}
159	req = c.newRequest(op, input, output)
160	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
161	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
162	return
163}
164
165// CreateAccessPointForObjectLambda API operation for AWS S3 Control.
166//
167// Creates an Object Lambda Access Point. For more information, see Transforming
168// objects with Object Lambda Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html)
169// in the Amazon S3 User Guide.
170//
171// The following actions are related to CreateAccessPointForObjectLambda:
172//
173//    * DeleteAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html)
174//
175//    * GetAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointForObjectLambda.html)
176//
177//    * ListAccessPointsForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html)
178//
179// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
180// with awserr.Error's Code and Message methods to get detailed information about
181// the error.
182//
183// See the AWS API reference guide for AWS S3 Control's
184// API operation CreateAccessPointForObjectLambda for usage and error information.
185// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPointForObjectLambda
186func (c *S3Control) CreateAccessPointForObjectLambda(input *CreateAccessPointForObjectLambdaInput) (*CreateAccessPointForObjectLambdaOutput, error) {
187	req, out := c.CreateAccessPointForObjectLambdaRequest(input)
188	return out, req.Send()
189}
190
191// CreateAccessPointForObjectLambdaWithContext is the same as CreateAccessPointForObjectLambda with the addition of
192// the ability to pass a context and additional request options.
193//
194// See CreateAccessPointForObjectLambda for details on how to use this API operation.
195//
196// The context must be non-nil and will be used for request cancellation. If
197// the context is nil a panic will occur. In the future the SDK may create
198// sub-contexts for http.Requests. See https://golang.org/pkg/context/
199// for more information on using Contexts.
200func (c *S3Control) CreateAccessPointForObjectLambdaWithContext(ctx aws.Context, input *CreateAccessPointForObjectLambdaInput, opts ...request.Option) (*CreateAccessPointForObjectLambdaOutput, error) {
201	req, out := c.CreateAccessPointForObjectLambdaRequest(input)
202	req.SetContext(ctx)
203	req.ApplyOptions(opts...)
204	return out, req.Send()
205}
206
207const opCreateBucket = "CreateBucket"
208
209// CreateBucketRequest generates a "aws/request.Request" representing the
210// client's request for the CreateBucket operation. The "output" return
211// value will be populated with the request's response once the request completes
212// successfully.
213//
214// Use "Send" method on the returned Request to send the API call to the service.
215// the "output" return value is not valid until after Send returns without error.
216//
217// See CreateBucket for more information on using the CreateBucket
218// API call, and error handling.
219//
220// This method is useful when you want to inject custom logic or configuration
221// into the SDK's request lifecycle. Such as custom headers, or retry logic.
222//
223//
224//    // Example sending a request using the CreateBucketRequest method.
225//    req, resp := client.CreateBucketRequest(params)
226//
227//    err := req.Send()
228//    if err == nil { // resp is now filled
229//        fmt.Println(resp)
230//    }
231//
232// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucket
233func (c *S3Control) CreateBucketRequest(input *CreateBucketInput) (req *request.Request, output *CreateBucketOutput) {
234	op := &request.Operation{
235		Name:       opCreateBucket,
236		HTTPMethod: "PUT",
237		HTTPPath:   "/v20180820/bucket/{name}",
238	}
239
240	if input == nil {
241		input = &CreateBucketInput{}
242	}
243
244	output = &CreateBucketOutput{}
245	req = c.newRequest(op, input, output)
246	req.Handlers.Build.PushBackNamed(request.NamedHandler{
247		Name: "contentMd5Handler",
248		Fn:   checksum.AddBodyContentMD5Handler,
249	})
250	return
251}
252
253// CreateBucket API operation for AWS S3 Control.
254//
255//
256// This action creates an Amazon S3 on Outposts bucket. To create an S3 bucket,
257// see Create Bucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
258// in the Amazon S3 API Reference.
259//
260// Creates a new Outposts bucket. By creating the bucket, you become the bucket
261// owner. To create an Outposts bucket, you must have S3 on Outposts. For more
262// information, see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
263// in Amazon S3 User Guide.
264//
265// Not every string is an acceptable bucket name. For information on bucket
266// naming restrictions, see Working with Amazon S3 Buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules).
267//
268// S3 on Outposts buckets support:
269//
270//    * Tags
271//
272//    * LifecycleConfigurations for deleting expired objects
273//
274// For a complete list of restrictions and Amazon S3 feature limitations on
275// S3 on Outposts, see Amazon S3 on Outposts Restrictions and Limitations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OnOutpostsRestrictionsLimitations.html).
276//
277// For an example of the request syntax for Amazon S3 on Outposts that uses
278// the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your
279// API request, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html#API_control_CreateBucket_Examples)
280// section.
281//
282// The following actions are related to CreateBucket for Amazon S3 on Outposts:
283//
284//    * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
285//
286//    * GetBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html)
287//
288//    * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html)
289//
290//    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
291//
292//    * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)
293//
294// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
295// with awserr.Error's Code and Message methods to get detailed information about
296// the error.
297//
298// See the AWS API reference guide for AWS S3 Control's
299// API operation CreateBucket for usage and error information.
300//
301// Returned Error Codes:
302//   * ErrCodeBucketAlreadyExists "BucketAlreadyExists"
303//   The requested Outposts bucket name is not available. The bucket namespace
304//   is shared by all users of the Outposts in this Region. Select a different
305//   name and try again.
306//
307//   * ErrCodeBucketAlreadyOwnedByYou "BucketAlreadyOwnedByYou"
308//   The Outposts bucket you tried to create already exists, and you own it.
309//
310// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucket
311func (c *S3Control) CreateBucket(input *CreateBucketInput) (*CreateBucketOutput, error) {
312	req, out := c.CreateBucketRequest(input)
313	return out, req.Send()
314}
315
316// CreateBucketWithContext is the same as CreateBucket with the addition of
317// the ability to pass a context and additional request options.
318//
319// See CreateBucket for details on how to use this API operation.
320//
321// The context must be non-nil and will be used for request cancellation. If
322// the context is nil a panic will occur. In the future the SDK may create
323// sub-contexts for http.Requests. See https://golang.org/pkg/context/
324// for more information on using Contexts.
325func (c *S3Control) CreateBucketWithContext(ctx aws.Context, input *CreateBucketInput, opts ...request.Option) (*CreateBucketOutput, error) {
326	req, out := c.CreateBucketRequest(input)
327	req.SetContext(ctx)
328	req.ApplyOptions(opts...)
329	return out, req.Send()
330}
331
332const opCreateJob = "CreateJob"
333
334// CreateJobRequest generates a "aws/request.Request" representing the
335// client's request for the CreateJob operation. The "output" return
336// value will be populated with the request's response once the request completes
337// successfully.
338//
339// Use "Send" method on the returned Request to send the API call to the service.
340// the "output" return value is not valid until after Send returns without error.
341//
342// See CreateJob for more information on using the CreateJob
343// API call, and error handling.
344//
345// This method is useful when you want to inject custom logic or configuration
346// into the SDK's request lifecycle. Such as custom headers, or retry logic.
347//
348//
349//    // Example sending a request using the CreateJobRequest method.
350//    req, resp := client.CreateJobRequest(params)
351//
352//    err := req.Send()
353//    if err == nil { // resp is now filled
354//        fmt.Println(resp)
355//    }
356//
357// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateJob
358func (c *S3Control) CreateJobRequest(input *CreateJobInput) (req *request.Request, output *CreateJobOutput) {
359	op := &request.Operation{
360		Name:       opCreateJob,
361		HTTPMethod: "POST",
362		HTTPPath:   "/v20180820/jobs",
363	}
364
365	if input == nil {
366		input = &CreateJobInput{}
367	}
368
369	output = &CreateJobOutput{}
370	req = c.newRequest(op, input, output)
371	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
372	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
373	return
374}
375
376// CreateJob API operation for AWS S3 Control.
377//
378// You can use S3 Batch Operations to perform large-scale batch actions on Amazon
379// S3 objects. Batch Operations can run a single action on lists of Amazon S3
380// objects that you specify. For more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
381// in the Amazon S3 User Guide.
382//
383// This action creates a S3 Batch Operations job.
384//
385// Related actions include:
386//
387//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
388//
389//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
390//
391//    * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html)
392//
393//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
394//
395//    * JobOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobOperation.html)
396//
397// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
398// with awserr.Error's Code and Message methods to get detailed information about
399// the error.
400//
401// See the AWS API reference guide for AWS S3 Control's
402// API operation CreateJob for usage and error information.
403//
404// Returned Error Codes:
405//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
406//
407//   * ErrCodeBadRequestException "BadRequestException"
408//
409//   * ErrCodeIdempotencyException "IdempotencyException"
410//
411//   * ErrCodeInternalServiceException "InternalServiceException"
412//
413// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateJob
414func (c *S3Control) CreateJob(input *CreateJobInput) (*CreateJobOutput, error) {
415	req, out := c.CreateJobRequest(input)
416	return out, req.Send()
417}
418
419// CreateJobWithContext is the same as CreateJob with the addition of
420// the ability to pass a context and additional request options.
421//
422// See CreateJob for details on how to use this API operation.
423//
424// The context must be non-nil and will be used for request cancellation. If
425// the context is nil a panic will occur. In the future the SDK may create
426// sub-contexts for http.Requests. See https://golang.org/pkg/context/
427// for more information on using Contexts.
428func (c *S3Control) CreateJobWithContext(ctx aws.Context, input *CreateJobInput, opts ...request.Option) (*CreateJobOutput, error) {
429	req, out := c.CreateJobRequest(input)
430	req.SetContext(ctx)
431	req.ApplyOptions(opts...)
432	return out, req.Send()
433}
434
435const opCreateMultiRegionAccessPoint = "CreateMultiRegionAccessPoint"
436
437// CreateMultiRegionAccessPointRequest generates a "aws/request.Request" representing the
438// client's request for the CreateMultiRegionAccessPoint operation. The "output" return
439// value will be populated with the request's response once the request completes
440// successfully.
441//
442// Use "Send" method on the returned Request to send the API call to the service.
443// the "output" return value is not valid until after Send returns without error.
444//
445// See CreateMultiRegionAccessPoint for more information on using the CreateMultiRegionAccessPoint
446// API call, and error handling.
447//
448// This method is useful when you want to inject custom logic or configuration
449// into the SDK's request lifecycle. Such as custom headers, or retry logic.
450//
451//
452//    // Example sending a request using the CreateMultiRegionAccessPointRequest method.
453//    req, resp := client.CreateMultiRegionAccessPointRequest(params)
454//
455//    err := req.Send()
456//    if err == nil { // resp is now filled
457//        fmt.Println(resp)
458//    }
459//
460// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateMultiRegionAccessPoint
461func (c *S3Control) CreateMultiRegionAccessPointRequest(input *CreateMultiRegionAccessPointInput) (req *request.Request, output *CreateMultiRegionAccessPointOutput) {
462	op := &request.Operation{
463		Name:       opCreateMultiRegionAccessPoint,
464		HTTPMethod: "POST",
465		HTTPPath:   "/v20180820/async-requests/mrap/create",
466	}
467
468	if input == nil {
469		input = &CreateMultiRegionAccessPointInput{}
470	}
471
472	output = &CreateMultiRegionAccessPointOutput{}
473	req = c.newRequest(op, input, output)
474	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
475	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
476	req.Handlers.Build.PushBackNamed(request.NamedHandler{
477		Name: "contentMd5Handler",
478		Fn:   checksum.AddBodyContentMD5Handler,
479	})
480	return
481}
482
483// CreateMultiRegionAccessPoint API operation for AWS S3 Control.
484//
485// Creates a Multi-Region Access Point and associates it with the specified
486// buckets. For more information about creating Multi-Region Access Points,
487// see Creating Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html)
488// in the Amazon S3 User Guide.
489//
490// This action will always be routed to the US West (Oregon) Region. For more
491// information about the restrictions around managing Multi-Region Access Points,
492// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
493// in the Amazon S3 User Guide.
494//
495// This request is asynchronous, meaning that you might receive a response before
496// the command has completed. When this request provides a response, it provides
497// a token that you can use to monitor the status of the request with DescribeMultiRegionAccessPointOperation.
498//
499// The following actions are related to CreateMultiRegionAccessPoint:
500//
501//    * DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)
502//
503//    * DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
504//
505//    * GetMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html)
506//
507//    * ListMultiRegionAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html)
508//
509// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
510// with awserr.Error's Code and Message methods to get detailed information about
511// the error.
512//
513// See the AWS API reference guide for AWS S3 Control's
514// API operation CreateMultiRegionAccessPoint for usage and error information.
515// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateMultiRegionAccessPoint
516func (c *S3Control) CreateMultiRegionAccessPoint(input *CreateMultiRegionAccessPointInput) (*CreateMultiRegionAccessPointOutput, error) {
517	req, out := c.CreateMultiRegionAccessPointRequest(input)
518	return out, req.Send()
519}
520
521// CreateMultiRegionAccessPointWithContext is the same as CreateMultiRegionAccessPoint with the addition of
522// the ability to pass a context and additional request options.
523//
524// See CreateMultiRegionAccessPoint for details on how to use this API operation.
525//
526// The context must be non-nil and will be used for request cancellation. If
527// the context is nil a panic will occur. In the future the SDK may create
528// sub-contexts for http.Requests. See https://golang.org/pkg/context/
529// for more information on using Contexts.
530func (c *S3Control) CreateMultiRegionAccessPointWithContext(ctx aws.Context, input *CreateMultiRegionAccessPointInput, opts ...request.Option) (*CreateMultiRegionAccessPointOutput, error) {
531	req, out := c.CreateMultiRegionAccessPointRequest(input)
532	req.SetContext(ctx)
533	req.ApplyOptions(opts...)
534	return out, req.Send()
535}
536
537const opDeleteAccessPoint = "DeleteAccessPoint"
538
539// DeleteAccessPointRequest generates a "aws/request.Request" representing the
540// client's request for the DeleteAccessPoint operation. The "output" return
541// value will be populated with the request's response once the request completes
542// successfully.
543//
544// Use "Send" method on the returned Request to send the API call to the service.
545// the "output" return value is not valid until after Send returns without error.
546//
547// See DeleteAccessPoint for more information on using the DeleteAccessPoint
548// API call, and error handling.
549//
550// This method is useful when you want to inject custom logic or configuration
551// into the SDK's request lifecycle. Such as custom headers, or retry logic.
552//
553//
554//    // Example sending a request using the DeleteAccessPointRequest method.
555//    req, resp := client.DeleteAccessPointRequest(params)
556//
557//    err := req.Send()
558//    if err == nil { // resp is now filled
559//        fmt.Println(resp)
560//    }
561//
562// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPoint
563func (c *S3Control) DeleteAccessPointRequest(input *DeleteAccessPointInput) (req *request.Request, output *DeleteAccessPointOutput) {
564	op := &request.Operation{
565		Name:       opDeleteAccessPoint,
566		HTTPMethod: "DELETE",
567		HTTPPath:   "/v20180820/accesspoint/{name}",
568	}
569
570	if input == nil {
571		input = &DeleteAccessPointInput{}
572	}
573
574	output = &DeleteAccessPointOutput{}
575	req = c.newRequest(op, input, output)
576	// update account id or check if provided input for account id member matches
577	// the account id present in ARN
578	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
579	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
580	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
581	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
582	return
583}
584
585// DeleteAccessPoint API operation for AWS S3 Control.
586//
587// Deletes the specified access point.
588//
589// All Amazon S3 on Outposts REST API requests for this action require an additional
590// parameter of x-amz-outpost-id to be passed with the request and an S3 on
591// Outposts endpoint hostname prefix instead of s3-control. For an example of
592// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
593// endpoint hostname prefix and the x-amz-outpost-id derived using the access
594// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html#API_control_DeleteAccessPoint_Examples)
595// section.
596//
597// The following actions are related to DeleteAccessPoint:
598//
599//    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
600//
601//    * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)
602//
603//    * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)
604//
605// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
606// with awserr.Error's Code and Message methods to get detailed information about
607// the error.
608//
609// See the AWS API reference guide for AWS S3 Control's
610// API operation DeleteAccessPoint for usage and error information.
611// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPoint
612func (c *S3Control) DeleteAccessPoint(input *DeleteAccessPointInput) (*DeleteAccessPointOutput, error) {
613	req, out := c.DeleteAccessPointRequest(input)
614	return out, req.Send()
615}
616
617// DeleteAccessPointWithContext is the same as DeleteAccessPoint with the addition of
618// the ability to pass a context and additional request options.
619//
620// See DeleteAccessPoint for details on how to use this API operation.
621//
622// The context must be non-nil and will be used for request cancellation. If
623// the context is nil a panic will occur. In the future the SDK may create
624// sub-contexts for http.Requests. See https://golang.org/pkg/context/
625// for more information on using Contexts.
626func (c *S3Control) DeleteAccessPointWithContext(ctx aws.Context, input *DeleteAccessPointInput, opts ...request.Option) (*DeleteAccessPointOutput, error) {
627	req, out := c.DeleteAccessPointRequest(input)
628	req.SetContext(ctx)
629	req.ApplyOptions(opts...)
630	return out, req.Send()
631}
632
633const opDeleteAccessPointForObjectLambda = "DeleteAccessPointForObjectLambda"
634
635// DeleteAccessPointForObjectLambdaRequest generates a "aws/request.Request" representing the
636// client's request for the DeleteAccessPointForObjectLambda operation. The "output" return
637// value will be populated with the request's response once the request completes
638// successfully.
639//
640// Use "Send" method on the returned Request to send the API call to the service.
641// the "output" return value is not valid until after Send returns without error.
642//
643// See DeleteAccessPointForObjectLambda for more information on using the DeleteAccessPointForObjectLambda
644// API call, and error handling.
645//
646// This method is useful when you want to inject custom logic or configuration
647// into the SDK's request lifecycle. Such as custom headers, or retry logic.
648//
649//
650//    // Example sending a request using the DeleteAccessPointForObjectLambdaRequest method.
651//    req, resp := client.DeleteAccessPointForObjectLambdaRequest(params)
652//
653//    err := req.Send()
654//    if err == nil { // resp is now filled
655//        fmt.Println(resp)
656//    }
657//
658// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointForObjectLambda
659func (c *S3Control) DeleteAccessPointForObjectLambdaRequest(input *DeleteAccessPointForObjectLambdaInput) (req *request.Request, output *DeleteAccessPointForObjectLambdaOutput) {
660	op := &request.Operation{
661		Name:       opDeleteAccessPointForObjectLambda,
662		HTTPMethod: "DELETE",
663		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}",
664	}
665
666	if input == nil {
667		input = &DeleteAccessPointForObjectLambdaInput{}
668	}
669
670	output = &DeleteAccessPointForObjectLambdaOutput{}
671	req = c.newRequest(op, input, output)
672	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
673	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
674	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
675	return
676}
677
678// DeleteAccessPointForObjectLambda API operation for AWS S3 Control.
679//
680// Deletes the specified Object Lambda Access Point.
681//
682// The following actions are related to DeleteAccessPointForObjectLambda:
683//
684//    * CreateAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html)
685//
686//    * GetAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointForObjectLambda.html)
687//
688//    * ListAccessPointsForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html)
689//
690// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
691// with awserr.Error's Code and Message methods to get detailed information about
692// the error.
693//
694// See the AWS API reference guide for AWS S3 Control's
695// API operation DeleteAccessPointForObjectLambda for usage and error information.
696// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointForObjectLambda
697func (c *S3Control) DeleteAccessPointForObjectLambda(input *DeleteAccessPointForObjectLambdaInput) (*DeleteAccessPointForObjectLambdaOutput, error) {
698	req, out := c.DeleteAccessPointForObjectLambdaRequest(input)
699	return out, req.Send()
700}
701
702// DeleteAccessPointForObjectLambdaWithContext is the same as DeleteAccessPointForObjectLambda with the addition of
703// the ability to pass a context and additional request options.
704//
705// See DeleteAccessPointForObjectLambda for details on how to use this API operation.
706//
707// The context must be non-nil and will be used for request cancellation. If
708// the context is nil a panic will occur. In the future the SDK may create
709// sub-contexts for http.Requests. See https://golang.org/pkg/context/
710// for more information on using Contexts.
711func (c *S3Control) DeleteAccessPointForObjectLambdaWithContext(ctx aws.Context, input *DeleteAccessPointForObjectLambdaInput, opts ...request.Option) (*DeleteAccessPointForObjectLambdaOutput, error) {
712	req, out := c.DeleteAccessPointForObjectLambdaRequest(input)
713	req.SetContext(ctx)
714	req.ApplyOptions(opts...)
715	return out, req.Send()
716}
717
718const opDeleteAccessPointPolicy = "DeleteAccessPointPolicy"
719
720// DeleteAccessPointPolicyRequest generates a "aws/request.Request" representing the
721// client's request for the DeleteAccessPointPolicy operation. The "output" return
722// value will be populated with the request's response once the request completes
723// successfully.
724//
725// Use "Send" method on the returned Request to send the API call to the service.
726// the "output" return value is not valid until after Send returns without error.
727//
728// See DeleteAccessPointPolicy for more information on using the DeleteAccessPointPolicy
729// API call, and error handling.
730//
731// This method is useful when you want to inject custom logic or configuration
732// into the SDK's request lifecycle. Such as custom headers, or retry logic.
733//
734//
735//    // Example sending a request using the DeleteAccessPointPolicyRequest method.
736//    req, resp := client.DeleteAccessPointPolicyRequest(params)
737//
738//    err := req.Send()
739//    if err == nil { // resp is now filled
740//        fmt.Println(resp)
741//    }
742//
743// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicy
744func (c *S3Control) DeleteAccessPointPolicyRequest(input *DeleteAccessPointPolicyInput) (req *request.Request, output *DeleteAccessPointPolicyOutput) {
745	op := &request.Operation{
746		Name:       opDeleteAccessPointPolicy,
747		HTTPMethod: "DELETE",
748		HTTPPath:   "/v20180820/accesspoint/{name}/policy",
749	}
750
751	if input == nil {
752		input = &DeleteAccessPointPolicyInput{}
753	}
754
755	output = &DeleteAccessPointPolicyOutput{}
756	req = c.newRequest(op, input, output)
757	// update account id or check if provided input for account id member matches
758	// the account id present in ARN
759	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
760	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
761	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
762	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
763	return
764}
765
766// DeleteAccessPointPolicy API operation for AWS S3 Control.
767//
768// Deletes the access point policy for the specified access point.
769//
770// All Amazon S3 on Outposts REST API requests for this action require an additional
771// parameter of x-amz-outpost-id to be passed with the request and an S3 on
772// Outposts endpoint hostname prefix instead of s3-control. For an example of
773// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
774// endpoint hostname prefix and the x-amz-outpost-id derived using the access
775// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html#API_control_DeleteAccessPointPolicy_Examples)
776// section.
777//
778// The following actions are related to DeleteAccessPointPolicy:
779//
780//    * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)
781//
782//    * GetAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html)
783//
784// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
785// with awserr.Error's Code and Message methods to get detailed information about
786// the error.
787//
788// See the AWS API reference guide for AWS S3 Control's
789// API operation DeleteAccessPointPolicy for usage and error information.
790// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicy
791func (c *S3Control) DeleteAccessPointPolicy(input *DeleteAccessPointPolicyInput) (*DeleteAccessPointPolicyOutput, error) {
792	req, out := c.DeleteAccessPointPolicyRequest(input)
793	return out, req.Send()
794}
795
796// DeleteAccessPointPolicyWithContext is the same as DeleteAccessPointPolicy with the addition of
797// the ability to pass a context and additional request options.
798//
799// See DeleteAccessPointPolicy for details on how to use this API operation.
800//
801// The context must be non-nil and will be used for request cancellation. If
802// the context is nil a panic will occur. In the future the SDK may create
803// sub-contexts for http.Requests. See https://golang.org/pkg/context/
804// for more information on using Contexts.
805func (c *S3Control) DeleteAccessPointPolicyWithContext(ctx aws.Context, input *DeleteAccessPointPolicyInput, opts ...request.Option) (*DeleteAccessPointPolicyOutput, error) {
806	req, out := c.DeleteAccessPointPolicyRequest(input)
807	req.SetContext(ctx)
808	req.ApplyOptions(opts...)
809	return out, req.Send()
810}
811
812const opDeleteAccessPointPolicyForObjectLambda = "DeleteAccessPointPolicyForObjectLambda"
813
814// DeleteAccessPointPolicyForObjectLambdaRequest generates a "aws/request.Request" representing the
815// client's request for the DeleteAccessPointPolicyForObjectLambda operation. The "output" return
816// value will be populated with the request's response once the request completes
817// successfully.
818//
819// Use "Send" method on the returned Request to send the API call to the service.
820// the "output" return value is not valid until after Send returns without error.
821//
822// See DeleteAccessPointPolicyForObjectLambda for more information on using the DeleteAccessPointPolicyForObjectLambda
823// API call, and error handling.
824//
825// This method is useful when you want to inject custom logic or configuration
826// into the SDK's request lifecycle. Such as custom headers, or retry logic.
827//
828//
829//    // Example sending a request using the DeleteAccessPointPolicyForObjectLambdaRequest method.
830//    req, resp := client.DeleteAccessPointPolicyForObjectLambdaRequest(params)
831//
832//    err := req.Send()
833//    if err == nil { // resp is now filled
834//        fmt.Println(resp)
835//    }
836//
837// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicyForObjectLambda
838func (c *S3Control) DeleteAccessPointPolicyForObjectLambdaRequest(input *DeleteAccessPointPolicyForObjectLambdaInput) (req *request.Request, output *DeleteAccessPointPolicyForObjectLambdaOutput) {
839	op := &request.Operation{
840		Name:       opDeleteAccessPointPolicyForObjectLambda,
841		HTTPMethod: "DELETE",
842		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/policy",
843	}
844
845	if input == nil {
846		input = &DeleteAccessPointPolicyForObjectLambdaInput{}
847	}
848
849	output = &DeleteAccessPointPolicyForObjectLambdaOutput{}
850	req = c.newRequest(op, input, output)
851	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
852	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
853	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
854	return
855}
856
857// DeleteAccessPointPolicyForObjectLambda API operation for AWS S3 Control.
858//
859// Removes the resource policy for an Object Lambda Access Point.
860//
861// The following actions are related to DeleteAccessPointPolicyForObjectLambda:
862//
863//    * GetAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyForObjectLambda.html)
864//
865//    * PutAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicyForObjectLambda.html)
866//
867// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
868// with awserr.Error's Code and Message methods to get detailed information about
869// the error.
870//
871// See the AWS API reference guide for AWS S3 Control's
872// API operation DeleteAccessPointPolicyForObjectLambda for usage and error information.
873// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicyForObjectLambda
874func (c *S3Control) DeleteAccessPointPolicyForObjectLambda(input *DeleteAccessPointPolicyForObjectLambdaInput) (*DeleteAccessPointPolicyForObjectLambdaOutput, error) {
875	req, out := c.DeleteAccessPointPolicyForObjectLambdaRequest(input)
876	return out, req.Send()
877}
878
879// DeleteAccessPointPolicyForObjectLambdaWithContext is the same as DeleteAccessPointPolicyForObjectLambda with the addition of
880// the ability to pass a context and additional request options.
881//
882// See DeleteAccessPointPolicyForObjectLambda for details on how to use this API operation.
883//
884// The context must be non-nil and will be used for request cancellation. If
885// the context is nil a panic will occur. In the future the SDK may create
886// sub-contexts for http.Requests. See https://golang.org/pkg/context/
887// for more information on using Contexts.
888func (c *S3Control) DeleteAccessPointPolicyForObjectLambdaWithContext(ctx aws.Context, input *DeleteAccessPointPolicyForObjectLambdaInput, opts ...request.Option) (*DeleteAccessPointPolicyForObjectLambdaOutput, error) {
889	req, out := c.DeleteAccessPointPolicyForObjectLambdaRequest(input)
890	req.SetContext(ctx)
891	req.ApplyOptions(opts...)
892	return out, req.Send()
893}
894
895const opDeleteBucket = "DeleteBucket"
896
897// DeleteBucketRequest generates a "aws/request.Request" representing the
898// client's request for the DeleteBucket operation. The "output" return
899// value will be populated with the request's response once the request completes
900// successfully.
901//
902// Use "Send" method on the returned Request to send the API call to the service.
903// the "output" return value is not valid until after Send returns without error.
904//
905// See DeleteBucket for more information on using the DeleteBucket
906// API call, and error handling.
907//
908// This method is useful when you want to inject custom logic or configuration
909// into the SDK's request lifecycle. Such as custom headers, or retry logic.
910//
911//
912//    // Example sending a request using the DeleteBucketRequest method.
913//    req, resp := client.DeleteBucketRequest(params)
914//
915//    err := req.Send()
916//    if err == nil { // resp is now filled
917//        fmt.Println(resp)
918//    }
919//
920// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucket
921func (c *S3Control) DeleteBucketRequest(input *DeleteBucketInput) (req *request.Request, output *DeleteBucketOutput) {
922	op := &request.Operation{
923		Name:       opDeleteBucket,
924		HTTPMethod: "DELETE",
925		HTTPPath:   "/v20180820/bucket/{name}",
926	}
927
928	if input == nil {
929		input = &DeleteBucketInput{}
930	}
931
932	output = &DeleteBucketOutput{}
933	req = c.newRequest(op, input, output)
934	// update account id or check if provided input for account id member matches
935	// the account id present in ARN
936	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
937	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
938	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
939	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
940	return
941}
942
943// DeleteBucket API operation for AWS S3 Control.
944//
945//
946// This action deletes an Amazon S3 on Outposts bucket. To delete an S3 bucket,
947// see DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
948// in the Amazon S3 API Reference.
949//
950// Deletes the Amazon S3 on Outposts bucket. All objects (including all object
951// versions and delete markers) in the bucket must be deleted before the bucket
952// itself can be deleted. For more information, see Using Amazon S3 on Outposts
953// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
954// in Amazon S3 User Guide.
955//
956// All Amazon S3 on Outposts REST API requests for this action require an additional
957// parameter of x-amz-outpost-id to be passed with the request and an S3 on
958// Outposts endpoint hostname prefix instead of s3-control. For an example of
959// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
960// endpoint hostname prefix and the x-amz-outpost-id derived using the access
961// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html#API_control_DeleteBucket_Examples)
962// section.
963//
964// Related Resources
965//
966//    * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html)
967//
968//    * GetBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html)
969//
970//    * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
971//
972// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
973// with awserr.Error's Code and Message methods to get detailed information about
974// the error.
975//
976// See the AWS API reference guide for AWS S3 Control's
977// API operation DeleteBucket for usage and error information.
978// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucket
979func (c *S3Control) DeleteBucket(input *DeleteBucketInput) (*DeleteBucketOutput, error) {
980	req, out := c.DeleteBucketRequest(input)
981	return out, req.Send()
982}
983
984// DeleteBucketWithContext is the same as DeleteBucket with the addition of
985// the ability to pass a context and additional request options.
986//
987// See DeleteBucket for details on how to use this API operation.
988//
989// The context must be non-nil and will be used for request cancellation. If
990// the context is nil a panic will occur. In the future the SDK may create
991// sub-contexts for http.Requests. See https://golang.org/pkg/context/
992// for more information on using Contexts.
993func (c *S3Control) DeleteBucketWithContext(ctx aws.Context, input *DeleteBucketInput, opts ...request.Option) (*DeleteBucketOutput, error) {
994	req, out := c.DeleteBucketRequest(input)
995	req.SetContext(ctx)
996	req.ApplyOptions(opts...)
997	return out, req.Send()
998}
999
1000const opDeleteBucketLifecycleConfiguration = "DeleteBucketLifecycleConfiguration"
1001
1002// DeleteBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
1003// client's request for the DeleteBucketLifecycleConfiguration operation. The "output" return
1004// value will be populated with the request's response once the request completes
1005// successfully.
1006//
1007// Use "Send" method on the returned Request to send the API call to the service.
1008// the "output" return value is not valid until after Send returns without error.
1009//
1010// See DeleteBucketLifecycleConfiguration for more information on using the DeleteBucketLifecycleConfiguration
1011// API call, and error handling.
1012//
1013// This method is useful when you want to inject custom logic or configuration
1014// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1015//
1016//
1017//    // Example sending a request using the DeleteBucketLifecycleConfigurationRequest method.
1018//    req, resp := client.DeleteBucketLifecycleConfigurationRequest(params)
1019//
1020//    err := req.Send()
1021//    if err == nil { // resp is now filled
1022//        fmt.Println(resp)
1023//    }
1024//
1025// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketLifecycleConfiguration
1026func (c *S3Control) DeleteBucketLifecycleConfigurationRequest(input *DeleteBucketLifecycleConfigurationInput) (req *request.Request, output *DeleteBucketLifecycleConfigurationOutput) {
1027	op := &request.Operation{
1028		Name:       opDeleteBucketLifecycleConfiguration,
1029		HTTPMethod: "DELETE",
1030		HTTPPath:   "/v20180820/bucket/{name}/lifecycleconfiguration",
1031	}
1032
1033	if input == nil {
1034		input = &DeleteBucketLifecycleConfigurationInput{}
1035	}
1036
1037	output = &DeleteBucketLifecycleConfigurationOutput{}
1038	req = c.newRequest(op, input, output)
1039	// update account id or check if provided input for account id member matches
1040	// the account id present in ARN
1041	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
1042	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1043	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1044	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1045	return
1046}
1047
1048// DeleteBucketLifecycleConfiguration API operation for AWS S3 Control.
1049//
1050//
1051// This action deletes an Amazon S3 on Outposts bucket's lifecycle configuration.
1052// To delete an S3 bucket's lifecycle configuration, see DeleteBucketLifecycle
1053// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html)
1054// in the Amazon S3 API Reference.
1055//
1056// Deletes the lifecycle configuration from the specified Outposts bucket. Amazon
1057// S3 on Outposts removes all the lifecycle configuration rules in the lifecycle
1058// subresource associated with the bucket. Your objects never expire, and Amazon
1059// S3 on Outposts no longer automatically deletes any objects on the basis of
1060// rules contained in the deleted lifecycle configuration. For more information,
1061// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
1062// in Amazon S3 User Guide.
1063//
1064// To use this action, you must have permission to perform the s3-outposts:DeleteLifecycleConfiguration
1065// action. By default, the bucket owner has this permission and the Outposts
1066// bucket owner can grant this permission to others.
1067//
1068// All Amazon S3 on Outposts REST API requests for this action require an additional
1069// parameter of x-amz-outpost-id to be passed with the request and an S3 on
1070// Outposts endpoint hostname prefix instead of s3-control. For an example of
1071// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
1072// endpoint hostname prefix and the x-amz-outpost-id derived using the access
1073// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html#API_control_DeleteBucketLifecycleConfiguration_Examples)
1074// section.
1075//
1076// For more information about object expiration, see Elements to Describe Lifecycle
1077// Actions (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions).
1078//
1079// Related actions include:
1080//
1081//    * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html)
1082//
1083//    * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html)
1084//
1085// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1086// with awserr.Error's Code and Message methods to get detailed information about
1087// the error.
1088//
1089// See the AWS API reference guide for AWS S3 Control's
1090// API operation DeleteBucketLifecycleConfiguration for usage and error information.
1091// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketLifecycleConfiguration
1092func (c *S3Control) DeleteBucketLifecycleConfiguration(input *DeleteBucketLifecycleConfigurationInput) (*DeleteBucketLifecycleConfigurationOutput, error) {
1093	req, out := c.DeleteBucketLifecycleConfigurationRequest(input)
1094	return out, req.Send()
1095}
1096
1097// DeleteBucketLifecycleConfigurationWithContext is the same as DeleteBucketLifecycleConfiguration with the addition of
1098// the ability to pass a context and additional request options.
1099//
1100// See DeleteBucketLifecycleConfiguration for details on how to use this API operation.
1101//
1102// The context must be non-nil and will be used for request cancellation. If
1103// the context is nil a panic will occur. In the future the SDK may create
1104// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1105// for more information on using Contexts.
1106func (c *S3Control) DeleteBucketLifecycleConfigurationWithContext(ctx aws.Context, input *DeleteBucketLifecycleConfigurationInput, opts ...request.Option) (*DeleteBucketLifecycleConfigurationOutput, error) {
1107	req, out := c.DeleteBucketLifecycleConfigurationRequest(input)
1108	req.SetContext(ctx)
1109	req.ApplyOptions(opts...)
1110	return out, req.Send()
1111}
1112
1113const opDeleteBucketPolicy = "DeleteBucketPolicy"
1114
1115// DeleteBucketPolicyRequest generates a "aws/request.Request" representing the
1116// client's request for the DeleteBucketPolicy operation. The "output" return
1117// value will be populated with the request's response once the request completes
1118// successfully.
1119//
1120// Use "Send" method on the returned Request to send the API call to the service.
1121// the "output" return value is not valid until after Send returns without error.
1122//
1123// See DeleteBucketPolicy for more information on using the DeleteBucketPolicy
1124// API call, and error handling.
1125//
1126// This method is useful when you want to inject custom logic or configuration
1127// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1128//
1129//
1130//    // Example sending a request using the DeleteBucketPolicyRequest method.
1131//    req, resp := client.DeleteBucketPolicyRequest(params)
1132//
1133//    err := req.Send()
1134//    if err == nil { // resp is now filled
1135//        fmt.Println(resp)
1136//    }
1137//
1138// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketPolicy
1139func (c *S3Control) DeleteBucketPolicyRequest(input *DeleteBucketPolicyInput) (req *request.Request, output *DeleteBucketPolicyOutput) {
1140	op := &request.Operation{
1141		Name:       opDeleteBucketPolicy,
1142		HTTPMethod: "DELETE",
1143		HTTPPath:   "/v20180820/bucket/{name}/policy",
1144	}
1145
1146	if input == nil {
1147		input = &DeleteBucketPolicyInput{}
1148	}
1149
1150	output = &DeleteBucketPolicyOutput{}
1151	req = c.newRequest(op, input, output)
1152	// update account id or check if provided input for account id member matches
1153	// the account id present in ARN
1154	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
1155	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1156	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1157	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1158	return
1159}
1160
1161// DeleteBucketPolicy API operation for AWS S3 Control.
1162//
1163//
1164// This action deletes an Amazon S3 on Outposts bucket policy. To delete an
1165// S3 bucket policy, see DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html)
1166// in the Amazon S3 API Reference.
1167//
1168// This implementation of the DELETE action uses the policy subresource to delete
1169// the policy of a specified Amazon S3 on Outposts bucket. If you are using
1170// an identity other than the root user of the Amazon Web Services account that
1171// owns the bucket, the calling identity must have the s3-outposts:DeleteBucketPolicy
1172// permissions on the specified Outposts bucket and belong to the bucket owner's
1173// account to use this action. For more information, see Using Amazon S3 on
1174// Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
1175// in Amazon S3 User Guide.
1176//
1177// If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403
1178// Access Denied error. If you have the correct permissions, but you're not
1179// using an identity that belongs to the bucket owner's account, Amazon S3 returns
1180// a 405 Method Not Allowed error.
1181//
1182// As a security precaution, the root user of the Amazon Web Services account
1183// that owns a bucket can always use this action, even if the policy explicitly
1184// denies the root user the ability to perform this action.
1185//
1186// For more information about bucket policies, see Using Bucket Policies and
1187// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html).
1188//
1189// All Amazon S3 on Outposts REST API requests for this action require an additional
1190// parameter of x-amz-outpost-id to be passed with the request and an S3 on
1191// Outposts endpoint hostname prefix instead of s3-control. For an example of
1192// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
1193// endpoint hostname prefix and the x-amz-outpost-id derived using the access
1194// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html#API_control_DeleteBucketPolicy_Examples)
1195// section.
1196//
1197// The following actions are related to DeleteBucketPolicy:
1198//
1199//    * GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html)
1200//
1201//    * PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html)
1202//
1203// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1204// with awserr.Error's Code and Message methods to get detailed information about
1205// the error.
1206//
1207// See the AWS API reference guide for AWS S3 Control's
1208// API operation DeleteBucketPolicy for usage and error information.
1209// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketPolicy
1210func (c *S3Control) DeleteBucketPolicy(input *DeleteBucketPolicyInput) (*DeleteBucketPolicyOutput, error) {
1211	req, out := c.DeleteBucketPolicyRequest(input)
1212	return out, req.Send()
1213}
1214
1215// DeleteBucketPolicyWithContext is the same as DeleteBucketPolicy with the addition of
1216// the ability to pass a context and additional request options.
1217//
1218// See DeleteBucketPolicy for details on how to use this API operation.
1219//
1220// The context must be non-nil and will be used for request cancellation. If
1221// the context is nil a panic will occur. In the future the SDK may create
1222// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1223// for more information on using Contexts.
1224func (c *S3Control) DeleteBucketPolicyWithContext(ctx aws.Context, input *DeleteBucketPolicyInput, opts ...request.Option) (*DeleteBucketPolicyOutput, error) {
1225	req, out := c.DeleteBucketPolicyRequest(input)
1226	req.SetContext(ctx)
1227	req.ApplyOptions(opts...)
1228	return out, req.Send()
1229}
1230
1231const opDeleteBucketTagging = "DeleteBucketTagging"
1232
1233// DeleteBucketTaggingRequest generates a "aws/request.Request" representing the
1234// client's request for the DeleteBucketTagging operation. The "output" return
1235// value will be populated with the request's response once the request completes
1236// successfully.
1237//
1238// Use "Send" method on the returned Request to send the API call to the service.
1239// the "output" return value is not valid until after Send returns without error.
1240//
1241// See DeleteBucketTagging for more information on using the DeleteBucketTagging
1242// API call, and error handling.
1243//
1244// This method is useful when you want to inject custom logic or configuration
1245// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1246//
1247//
1248//    // Example sending a request using the DeleteBucketTaggingRequest method.
1249//    req, resp := client.DeleteBucketTaggingRequest(params)
1250//
1251//    err := req.Send()
1252//    if err == nil { // resp is now filled
1253//        fmt.Println(resp)
1254//    }
1255//
1256// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketTagging
1257func (c *S3Control) DeleteBucketTaggingRequest(input *DeleteBucketTaggingInput) (req *request.Request, output *DeleteBucketTaggingOutput) {
1258	op := &request.Operation{
1259		Name:       opDeleteBucketTagging,
1260		HTTPMethod: "DELETE",
1261		HTTPPath:   "/v20180820/bucket/{name}/tagging",
1262	}
1263
1264	if input == nil {
1265		input = &DeleteBucketTaggingInput{}
1266	}
1267
1268	output = &DeleteBucketTaggingOutput{}
1269	req = c.newRequest(op, input, output)
1270	// update account id or check if provided input for account id member matches
1271	// the account id present in ARN
1272	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
1273	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1274	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1275	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1276	return
1277}
1278
1279// DeleteBucketTagging API operation for AWS S3 Control.
1280//
1281//
1282// This action deletes an Amazon S3 on Outposts bucket's tags. To delete an
1283// S3 bucket tags, see DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html)
1284// in the Amazon S3 API Reference.
1285//
1286// Deletes the tags from the Outposts bucket. For more information, see Using
1287// Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
1288// in Amazon S3 User Guide.
1289//
1290// To use this action, you must have permission to perform the PutBucketTagging
1291// action. By default, the bucket owner has this permission and can grant this
1292// permission to others.
1293//
1294// All Amazon S3 on Outposts REST API requests for this action require an additional
1295// parameter of x-amz-outpost-id to be passed with the request and an S3 on
1296// Outposts endpoint hostname prefix instead of s3-control. For an example of
1297// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
1298// endpoint hostname prefix and the x-amz-outpost-id derived using the access
1299// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html#API_control_DeleteBucketTagging_Examples)
1300// section.
1301//
1302// The following actions are related to DeleteBucketTagging:
1303//
1304//    * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html)
1305//
1306//    * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html)
1307//
1308// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1309// with awserr.Error's Code and Message methods to get detailed information about
1310// the error.
1311//
1312// See the AWS API reference guide for AWS S3 Control's
1313// API operation DeleteBucketTagging for usage and error information.
1314// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketTagging
1315func (c *S3Control) DeleteBucketTagging(input *DeleteBucketTaggingInput) (*DeleteBucketTaggingOutput, error) {
1316	req, out := c.DeleteBucketTaggingRequest(input)
1317	return out, req.Send()
1318}
1319
1320// DeleteBucketTaggingWithContext is the same as DeleteBucketTagging with the addition of
1321// the ability to pass a context and additional request options.
1322//
1323// See DeleteBucketTagging for details on how to use this API operation.
1324//
1325// The context must be non-nil and will be used for request cancellation. If
1326// the context is nil a panic will occur. In the future the SDK may create
1327// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1328// for more information on using Contexts.
1329func (c *S3Control) DeleteBucketTaggingWithContext(ctx aws.Context, input *DeleteBucketTaggingInput, opts ...request.Option) (*DeleteBucketTaggingOutput, error) {
1330	req, out := c.DeleteBucketTaggingRequest(input)
1331	req.SetContext(ctx)
1332	req.ApplyOptions(opts...)
1333	return out, req.Send()
1334}
1335
1336const opDeleteJobTagging = "DeleteJobTagging"
1337
1338// DeleteJobTaggingRequest generates a "aws/request.Request" representing the
1339// client's request for the DeleteJobTagging operation. The "output" return
1340// value will be populated with the request's response once the request completes
1341// successfully.
1342//
1343// Use "Send" method on the returned Request to send the API call to the service.
1344// the "output" return value is not valid until after Send returns without error.
1345//
1346// See DeleteJobTagging for more information on using the DeleteJobTagging
1347// API call, and error handling.
1348//
1349// This method is useful when you want to inject custom logic or configuration
1350// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1351//
1352//
1353//    // Example sending a request using the DeleteJobTaggingRequest method.
1354//    req, resp := client.DeleteJobTaggingRequest(params)
1355//
1356//    err := req.Send()
1357//    if err == nil { // resp is now filled
1358//        fmt.Println(resp)
1359//    }
1360//
1361// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTagging
1362func (c *S3Control) DeleteJobTaggingRequest(input *DeleteJobTaggingInput) (req *request.Request, output *DeleteJobTaggingOutput) {
1363	op := &request.Operation{
1364		Name:       opDeleteJobTagging,
1365		HTTPMethod: "DELETE",
1366		HTTPPath:   "/v20180820/jobs/{id}/tagging",
1367	}
1368
1369	if input == nil {
1370		input = &DeleteJobTaggingInput{}
1371	}
1372
1373	output = &DeleteJobTaggingOutput{}
1374	req = c.newRequest(op, input, output)
1375	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1376	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1377	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1378	return
1379}
1380
1381// DeleteJobTagging API operation for AWS S3 Control.
1382//
1383// Removes the entire tag set from the specified S3 Batch Operations job. To
1384// use this operation, you must have permission to perform the s3:DeleteJobTagging
1385// action. For more information, see Controlling access and labeling jobs using
1386// tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags)
1387// in the Amazon S3 User Guide.
1388//
1389// Related actions include:
1390//
1391//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
1392//
1393//    * GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html)
1394//
1395//    * PutJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html)
1396//
1397// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1398// with awserr.Error's Code and Message methods to get detailed information about
1399// the error.
1400//
1401// See the AWS API reference guide for AWS S3 Control's
1402// API operation DeleteJobTagging for usage and error information.
1403//
1404// Returned Error Codes:
1405//   * ErrCodeInternalServiceException "InternalServiceException"
1406//
1407//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1408//
1409//   * ErrCodeNotFoundException "NotFoundException"
1410//
1411// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTagging
1412func (c *S3Control) DeleteJobTagging(input *DeleteJobTaggingInput) (*DeleteJobTaggingOutput, error) {
1413	req, out := c.DeleteJobTaggingRequest(input)
1414	return out, req.Send()
1415}
1416
1417// DeleteJobTaggingWithContext is the same as DeleteJobTagging with the addition of
1418// the ability to pass a context and additional request options.
1419//
1420// See DeleteJobTagging for details on how to use this API operation.
1421//
1422// The context must be non-nil and will be used for request cancellation. If
1423// the context is nil a panic will occur. In the future the SDK may create
1424// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1425// for more information on using Contexts.
1426func (c *S3Control) DeleteJobTaggingWithContext(ctx aws.Context, input *DeleteJobTaggingInput, opts ...request.Option) (*DeleteJobTaggingOutput, error) {
1427	req, out := c.DeleteJobTaggingRequest(input)
1428	req.SetContext(ctx)
1429	req.ApplyOptions(opts...)
1430	return out, req.Send()
1431}
1432
1433const opDeleteMultiRegionAccessPoint = "DeleteMultiRegionAccessPoint"
1434
1435// DeleteMultiRegionAccessPointRequest generates a "aws/request.Request" representing the
1436// client's request for the DeleteMultiRegionAccessPoint operation. The "output" return
1437// value will be populated with the request's response once the request completes
1438// successfully.
1439//
1440// Use "Send" method on the returned Request to send the API call to the service.
1441// the "output" return value is not valid until after Send returns without error.
1442//
1443// See DeleteMultiRegionAccessPoint for more information on using the DeleteMultiRegionAccessPoint
1444// API call, and error handling.
1445//
1446// This method is useful when you want to inject custom logic or configuration
1447// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1448//
1449//
1450//    // Example sending a request using the DeleteMultiRegionAccessPointRequest method.
1451//    req, resp := client.DeleteMultiRegionAccessPointRequest(params)
1452//
1453//    err := req.Send()
1454//    if err == nil { // resp is now filled
1455//        fmt.Println(resp)
1456//    }
1457//
1458// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteMultiRegionAccessPoint
1459func (c *S3Control) DeleteMultiRegionAccessPointRequest(input *DeleteMultiRegionAccessPointInput) (req *request.Request, output *DeleteMultiRegionAccessPointOutput) {
1460	op := &request.Operation{
1461		Name:       opDeleteMultiRegionAccessPoint,
1462		HTTPMethod: "POST",
1463		HTTPPath:   "/v20180820/async-requests/mrap/delete",
1464	}
1465
1466	if input == nil {
1467		input = &DeleteMultiRegionAccessPointInput{}
1468	}
1469
1470	output = &DeleteMultiRegionAccessPointOutput{}
1471	req = c.newRequest(op, input, output)
1472	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1473	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1474	req.Handlers.Build.PushBackNamed(request.NamedHandler{
1475		Name: "contentMd5Handler",
1476		Fn:   checksum.AddBodyContentMD5Handler,
1477	})
1478	return
1479}
1480
1481// DeleteMultiRegionAccessPoint API operation for AWS S3 Control.
1482//
1483// Deletes a Multi-Region Access Point. This action does not delete the buckets
1484// associated with the Multi-Region Access Point, only the Multi-Region Access
1485// Point itself.
1486//
1487// This action will always be routed to the US West (Oregon) Region. For more
1488// information about the restrictions around managing Multi-Region Access Points,
1489// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
1490// in the Amazon S3 User Guide.
1491//
1492// This request is asynchronous, meaning that you might receive a response before
1493// the command has completed. When this request provides a response, it provides
1494// a token that you can use to monitor the status of the request with DescribeMultiRegionAccessPointOperation.
1495//
1496// The following actions are related to DeleteMultiRegionAccessPoint:
1497//
1498//    * CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)
1499//
1500//    * DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
1501//
1502//    * GetMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html)
1503//
1504//    * ListMultiRegionAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html)
1505//
1506// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1507// with awserr.Error's Code and Message methods to get detailed information about
1508// the error.
1509//
1510// See the AWS API reference guide for AWS S3 Control's
1511// API operation DeleteMultiRegionAccessPoint for usage and error information.
1512// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteMultiRegionAccessPoint
1513func (c *S3Control) DeleteMultiRegionAccessPoint(input *DeleteMultiRegionAccessPointInput) (*DeleteMultiRegionAccessPointOutput, error) {
1514	req, out := c.DeleteMultiRegionAccessPointRequest(input)
1515	return out, req.Send()
1516}
1517
1518// DeleteMultiRegionAccessPointWithContext is the same as DeleteMultiRegionAccessPoint with the addition of
1519// the ability to pass a context and additional request options.
1520//
1521// See DeleteMultiRegionAccessPoint for details on how to use this API operation.
1522//
1523// The context must be non-nil and will be used for request cancellation. If
1524// the context is nil a panic will occur. In the future the SDK may create
1525// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1526// for more information on using Contexts.
1527func (c *S3Control) DeleteMultiRegionAccessPointWithContext(ctx aws.Context, input *DeleteMultiRegionAccessPointInput, opts ...request.Option) (*DeleteMultiRegionAccessPointOutput, error) {
1528	req, out := c.DeleteMultiRegionAccessPointRequest(input)
1529	req.SetContext(ctx)
1530	req.ApplyOptions(opts...)
1531	return out, req.Send()
1532}
1533
1534const opDeletePublicAccessBlock = "DeletePublicAccessBlock"
1535
1536// DeletePublicAccessBlockRequest generates a "aws/request.Request" representing the
1537// client's request for the DeletePublicAccessBlock operation. The "output" return
1538// value will be populated with the request's response once the request completes
1539// successfully.
1540//
1541// Use "Send" method on the returned Request to send the API call to the service.
1542// the "output" return value is not valid until after Send returns without error.
1543//
1544// See DeletePublicAccessBlock for more information on using the DeletePublicAccessBlock
1545// API call, and error handling.
1546//
1547// This method is useful when you want to inject custom logic or configuration
1548// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1549//
1550//
1551//    // Example sending a request using the DeletePublicAccessBlockRequest method.
1552//    req, resp := client.DeletePublicAccessBlockRequest(params)
1553//
1554//    err := req.Send()
1555//    if err == nil { // resp is now filled
1556//        fmt.Println(resp)
1557//    }
1558//
1559// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlock
1560func (c *S3Control) DeletePublicAccessBlockRequest(input *DeletePublicAccessBlockInput) (req *request.Request, output *DeletePublicAccessBlockOutput) {
1561	op := &request.Operation{
1562		Name:       opDeletePublicAccessBlock,
1563		HTTPMethod: "DELETE",
1564		HTTPPath:   "/v20180820/configuration/publicAccessBlock",
1565	}
1566
1567	if input == nil {
1568		input = &DeletePublicAccessBlockInput{}
1569	}
1570
1571	output = &DeletePublicAccessBlockOutput{}
1572	req = c.newRequest(op, input, output)
1573	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1574	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1575	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1576	return
1577}
1578
1579// DeletePublicAccessBlock API operation for AWS S3 Control.
1580//
1581// Removes the PublicAccessBlock configuration for an Amazon Web Services account.
1582// For more information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).
1583//
1584// Related actions include:
1585//
1586//    * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html)
1587//
1588//    * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html)
1589//
1590// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1591// with awserr.Error's Code and Message methods to get detailed information about
1592// the error.
1593//
1594// See the AWS API reference guide for AWS S3 Control's
1595// API operation DeletePublicAccessBlock for usage and error information.
1596// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlock
1597func (c *S3Control) DeletePublicAccessBlock(input *DeletePublicAccessBlockInput) (*DeletePublicAccessBlockOutput, error) {
1598	req, out := c.DeletePublicAccessBlockRequest(input)
1599	return out, req.Send()
1600}
1601
1602// DeletePublicAccessBlockWithContext is the same as DeletePublicAccessBlock with the addition of
1603// the ability to pass a context and additional request options.
1604//
1605// See DeletePublicAccessBlock for details on how to use this API operation.
1606//
1607// The context must be non-nil and will be used for request cancellation. If
1608// the context is nil a panic will occur. In the future the SDK may create
1609// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1610// for more information on using Contexts.
1611func (c *S3Control) DeletePublicAccessBlockWithContext(ctx aws.Context, input *DeletePublicAccessBlockInput, opts ...request.Option) (*DeletePublicAccessBlockOutput, error) {
1612	req, out := c.DeletePublicAccessBlockRequest(input)
1613	req.SetContext(ctx)
1614	req.ApplyOptions(opts...)
1615	return out, req.Send()
1616}
1617
1618const opDeleteStorageLensConfiguration = "DeleteStorageLensConfiguration"
1619
1620// DeleteStorageLensConfigurationRequest generates a "aws/request.Request" representing the
1621// client's request for the DeleteStorageLensConfiguration operation. The "output" return
1622// value will be populated with the request's response once the request completes
1623// successfully.
1624//
1625// Use "Send" method on the returned Request to send the API call to the service.
1626// the "output" return value is not valid until after Send returns without error.
1627//
1628// See DeleteStorageLensConfiguration for more information on using the DeleteStorageLensConfiguration
1629// API call, and error handling.
1630//
1631// This method is useful when you want to inject custom logic or configuration
1632// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1633//
1634//
1635//    // Example sending a request using the DeleteStorageLensConfigurationRequest method.
1636//    req, resp := client.DeleteStorageLensConfigurationRequest(params)
1637//
1638//    err := req.Send()
1639//    if err == nil { // resp is now filled
1640//        fmt.Println(resp)
1641//    }
1642//
1643// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfiguration
1644func (c *S3Control) DeleteStorageLensConfigurationRequest(input *DeleteStorageLensConfigurationInput) (req *request.Request, output *DeleteStorageLensConfigurationOutput) {
1645	op := &request.Operation{
1646		Name:       opDeleteStorageLensConfiguration,
1647		HTTPMethod: "DELETE",
1648		HTTPPath:   "/v20180820/storagelens/{storagelensid}",
1649	}
1650
1651	if input == nil {
1652		input = &DeleteStorageLensConfigurationInput{}
1653	}
1654
1655	output = &DeleteStorageLensConfigurationOutput{}
1656	req = c.newRequest(op, input, output)
1657	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1658	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1659	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1660	return
1661}
1662
1663// DeleteStorageLensConfiguration API operation for AWS S3 Control.
1664//
1665// Deletes the Amazon S3 Storage Lens configuration. For more information about
1666// S3 Storage Lens, see Assessing your storage activity and usage with Amazon
1667// S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
1668// in the Amazon S3 User Guide.
1669//
1670// To use this action, you must have permission to perform the s3:DeleteStorageLensConfiguration
1671// action. For more information, see Setting permissions to use Amazon S3 Storage
1672// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
1673// in the Amazon S3 User Guide.
1674//
1675// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1676// with awserr.Error's Code and Message methods to get detailed information about
1677// the error.
1678//
1679// See the AWS API reference guide for AWS S3 Control's
1680// API operation DeleteStorageLensConfiguration for usage and error information.
1681// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfiguration
1682func (c *S3Control) DeleteStorageLensConfiguration(input *DeleteStorageLensConfigurationInput) (*DeleteStorageLensConfigurationOutput, error) {
1683	req, out := c.DeleteStorageLensConfigurationRequest(input)
1684	return out, req.Send()
1685}
1686
1687// DeleteStorageLensConfigurationWithContext is the same as DeleteStorageLensConfiguration with the addition of
1688// the ability to pass a context and additional request options.
1689//
1690// See DeleteStorageLensConfiguration for details on how to use this API operation.
1691//
1692// The context must be non-nil and will be used for request cancellation. If
1693// the context is nil a panic will occur. In the future the SDK may create
1694// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1695// for more information on using Contexts.
1696func (c *S3Control) DeleteStorageLensConfigurationWithContext(ctx aws.Context, input *DeleteStorageLensConfigurationInput, opts ...request.Option) (*DeleteStorageLensConfigurationOutput, error) {
1697	req, out := c.DeleteStorageLensConfigurationRequest(input)
1698	req.SetContext(ctx)
1699	req.ApplyOptions(opts...)
1700	return out, req.Send()
1701}
1702
1703const opDeleteStorageLensConfigurationTagging = "DeleteStorageLensConfigurationTagging"
1704
1705// DeleteStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the
1706// client's request for the DeleteStorageLensConfigurationTagging operation. The "output" return
1707// value will be populated with the request's response once the request completes
1708// successfully.
1709//
1710// Use "Send" method on the returned Request to send the API call to the service.
1711// the "output" return value is not valid until after Send returns without error.
1712//
1713// See DeleteStorageLensConfigurationTagging for more information on using the DeleteStorageLensConfigurationTagging
1714// API call, and error handling.
1715//
1716// This method is useful when you want to inject custom logic or configuration
1717// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1718//
1719//
1720//    // Example sending a request using the DeleteStorageLensConfigurationTaggingRequest method.
1721//    req, resp := client.DeleteStorageLensConfigurationTaggingRequest(params)
1722//
1723//    err := req.Send()
1724//    if err == nil { // resp is now filled
1725//        fmt.Println(resp)
1726//    }
1727//
1728// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationTagging
1729func (c *S3Control) DeleteStorageLensConfigurationTaggingRequest(input *DeleteStorageLensConfigurationTaggingInput) (req *request.Request, output *DeleteStorageLensConfigurationTaggingOutput) {
1730	op := &request.Operation{
1731		Name:       opDeleteStorageLensConfigurationTagging,
1732		HTTPMethod: "DELETE",
1733		HTTPPath:   "/v20180820/storagelens/{storagelensid}/tagging",
1734	}
1735
1736	if input == nil {
1737		input = &DeleteStorageLensConfigurationTaggingInput{}
1738	}
1739
1740	output = &DeleteStorageLensConfigurationTaggingOutput{}
1741	req = c.newRequest(op, input, output)
1742	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1743	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1744	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1745	return
1746}
1747
1748// DeleteStorageLensConfigurationTagging API operation for AWS S3 Control.
1749//
1750// Deletes the Amazon S3 Storage Lens configuration tags. For more information
1751// about S3 Storage Lens, see Assessing your storage activity and usage with
1752// Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
1753// in the Amazon S3 User Guide.
1754//
1755// To use this action, you must have permission to perform the s3:DeleteStorageLensConfigurationTagging
1756// action. For more information, see Setting permissions to use Amazon S3 Storage
1757// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
1758// in the Amazon S3 User Guide.
1759//
1760// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1761// with awserr.Error's Code and Message methods to get detailed information about
1762// the error.
1763//
1764// See the AWS API reference guide for AWS S3 Control's
1765// API operation DeleteStorageLensConfigurationTagging for usage and error information.
1766// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationTagging
1767func (c *S3Control) DeleteStorageLensConfigurationTagging(input *DeleteStorageLensConfigurationTaggingInput) (*DeleteStorageLensConfigurationTaggingOutput, error) {
1768	req, out := c.DeleteStorageLensConfigurationTaggingRequest(input)
1769	return out, req.Send()
1770}
1771
1772// DeleteStorageLensConfigurationTaggingWithContext is the same as DeleteStorageLensConfigurationTagging with the addition of
1773// the ability to pass a context and additional request options.
1774//
1775// See DeleteStorageLensConfigurationTagging for details on how to use this API operation.
1776//
1777// The context must be non-nil and will be used for request cancellation. If
1778// the context is nil a panic will occur. In the future the SDK may create
1779// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1780// for more information on using Contexts.
1781func (c *S3Control) DeleteStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *DeleteStorageLensConfigurationTaggingInput, opts ...request.Option) (*DeleteStorageLensConfigurationTaggingOutput, error) {
1782	req, out := c.DeleteStorageLensConfigurationTaggingRequest(input)
1783	req.SetContext(ctx)
1784	req.ApplyOptions(opts...)
1785	return out, req.Send()
1786}
1787
1788const opDescribeJob = "DescribeJob"
1789
1790// DescribeJobRequest generates a "aws/request.Request" representing the
1791// client's request for the DescribeJob operation. The "output" return
1792// value will be populated with the request's response once the request completes
1793// successfully.
1794//
1795// Use "Send" method on the returned Request to send the API call to the service.
1796// the "output" return value is not valid until after Send returns without error.
1797//
1798// See DescribeJob for more information on using the DescribeJob
1799// API call, and error handling.
1800//
1801// This method is useful when you want to inject custom logic or configuration
1802// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1803//
1804//
1805//    // Example sending a request using the DescribeJobRequest method.
1806//    req, resp := client.DescribeJobRequest(params)
1807//
1808//    err := req.Send()
1809//    if err == nil { // resp is now filled
1810//        fmt.Println(resp)
1811//    }
1812//
1813// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJob
1814func (c *S3Control) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
1815	op := &request.Operation{
1816		Name:       opDescribeJob,
1817		HTTPMethod: "GET",
1818		HTTPPath:   "/v20180820/jobs/{id}",
1819	}
1820
1821	if input == nil {
1822		input = &DescribeJobInput{}
1823	}
1824
1825	output = &DescribeJobOutput{}
1826	req = c.newRequest(op, input, output)
1827	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1828	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1829	return
1830}
1831
1832// DescribeJob API operation for AWS S3 Control.
1833//
1834// Retrieves the configuration parameters and status for a Batch Operations
1835// job. For more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
1836// in the Amazon S3 User Guide.
1837//
1838// Related actions include:
1839//
1840//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
1841//
1842//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
1843//
1844//    * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html)
1845//
1846//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
1847//
1848// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1849// with awserr.Error's Code and Message methods to get detailed information about
1850// the error.
1851//
1852// See the AWS API reference guide for AWS S3 Control's
1853// API operation DescribeJob for usage and error information.
1854//
1855// Returned Error Codes:
1856//   * ErrCodeBadRequestException "BadRequestException"
1857//
1858//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1859//
1860//   * ErrCodeNotFoundException "NotFoundException"
1861//
1862//   * ErrCodeInternalServiceException "InternalServiceException"
1863//
1864// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJob
1865func (c *S3Control) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
1866	req, out := c.DescribeJobRequest(input)
1867	return out, req.Send()
1868}
1869
1870// DescribeJobWithContext is the same as DescribeJob with the addition of
1871// the ability to pass a context and additional request options.
1872//
1873// See DescribeJob for details on how to use this API operation.
1874//
1875// The context must be non-nil and will be used for request cancellation. If
1876// the context is nil a panic will occur. In the future the SDK may create
1877// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1878// for more information on using Contexts.
1879func (c *S3Control) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) {
1880	req, out := c.DescribeJobRequest(input)
1881	req.SetContext(ctx)
1882	req.ApplyOptions(opts...)
1883	return out, req.Send()
1884}
1885
1886const opDescribeMultiRegionAccessPointOperation = "DescribeMultiRegionAccessPointOperation"
1887
1888// DescribeMultiRegionAccessPointOperationRequest generates a "aws/request.Request" representing the
1889// client's request for the DescribeMultiRegionAccessPointOperation operation. The "output" return
1890// value will be populated with the request's response once the request completes
1891// successfully.
1892//
1893// Use "Send" method on the returned Request to send the API call to the service.
1894// the "output" return value is not valid until after Send returns without error.
1895//
1896// See DescribeMultiRegionAccessPointOperation for more information on using the DescribeMultiRegionAccessPointOperation
1897// API call, and error handling.
1898//
1899// This method is useful when you want to inject custom logic or configuration
1900// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1901//
1902//
1903//    // Example sending a request using the DescribeMultiRegionAccessPointOperationRequest method.
1904//    req, resp := client.DescribeMultiRegionAccessPointOperationRequest(params)
1905//
1906//    err := req.Send()
1907//    if err == nil { // resp is now filled
1908//        fmt.Println(resp)
1909//    }
1910//
1911// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeMultiRegionAccessPointOperation
1912func (c *S3Control) DescribeMultiRegionAccessPointOperationRequest(input *DescribeMultiRegionAccessPointOperationInput) (req *request.Request, output *DescribeMultiRegionAccessPointOperationOutput) {
1913	op := &request.Operation{
1914		Name:       opDescribeMultiRegionAccessPointOperation,
1915		HTTPMethod: "GET",
1916		HTTPPath:   "/v20180820/async-requests/mrap/{request_token+}",
1917	}
1918
1919	if input == nil {
1920		input = &DescribeMultiRegionAccessPointOperationInput{}
1921	}
1922
1923	output = &DescribeMultiRegionAccessPointOperationOutput{}
1924	req = c.newRequest(op, input, output)
1925	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1926	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1927	req.Handlers.Build.PushBackNamed(request.NamedHandler{
1928		Name: "contentMd5Handler",
1929		Fn:   checksum.AddBodyContentMD5Handler,
1930	})
1931	return
1932}
1933
1934// DescribeMultiRegionAccessPointOperation API operation for AWS S3 Control.
1935//
1936// Retrieves the status of an asynchronous request to manage a Multi-Region
1937// Access Point. For more information about managing Multi-Region Access Points
1938// and how asynchronous requests work, see Managing Multi-Region Access Points
1939// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
1940// in the Amazon S3 User Guide.
1941//
1942// The following actions are related to GetMultiRegionAccessPoint:
1943//
1944//    * CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)
1945//
1946//    * DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)
1947//
1948//    * GetMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html)
1949//
1950//    * ListMultiRegionAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html)
1951//
1952// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1953// with awserr.Error's Code and Message methods to get detailed information about
1954// the error.
1955//
1956// See the AWS API reference guide for AWS S3 Control's
1957// API operation DescribeMultiRegionAccessPointOperation for usage and error information.
1958// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeMultiRegionAccessPointOperation
1959func (c *S3Control) DescribeMultiRegionAccessPointOperation(input *DescribeMultiRegionAccessPointOperationInput) (*DescribeMultiRegionAccessPointOperationOutput, error) {
1960	req, out := c.DescribeMultiRegionAccessPointOperationRequest(input)
1961	return out, req.Send()
1962}
1963
1964// DescribeMultiRegionAccessPointOperationWithContext is the same as DescribeMultiRegionAccessPointOperation with the addition of
1965// the ability to pass a context and additional request options.
1966//
1967// See DescribeMultiRegionAccessPointOperation for details on how to use this API operation.
1968//
1969// The context must be non-nil and will be used for request cancellation. If
1970// the context is nil a panic will occur. In the future the SDK may create
1971// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1972// for more information on using Contexts.
1973func (c *S3Control) DescribeMultiRegionAccessPointOperationWithContext(ctx aws.Context, input *DescribeMultiRegionAccessPointOperationInput, opts ...request.Option) (*DescribeMultiRegionAccessPointOperationOutput, error) {
1974	req, out := c.DescribeMultiRegionAccessPointOperationRequest(input)
1975	req.SetContext(ctx)
1976	req.ApplyOptions(opts...)
1977	return out, req.Send()
1978}
1979
1980const opGetAccessPoint = "GetAccessPoint"
1981
1982// GetAccessPointRequest generates a "aws/request.Request" representing the
1983// client's request for the GetAccessPoint operation. The "output" return
1984// value will be populated with the request's response once the request completes
1985// successfully.
1986//
1987// Use "Send" method on the returned Request to send the API call to the service.
1988// the "output" return value is not valid until after Send returns without error.
1989//
1990// See GetAccessPoint for more information on using the GetAccessPoint
1991// API call, and error handling.
1992//
1993// This method is useful when you want to inject custom logic or configuration
1994// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1995//
1996//
1997//    // Example sending a request using the GetAccessPointRequest method.
1998//    req, resp := client.GetAccessPointRequest(params)
1999//
2000//    err := req.Send()
2001//    if err == nil { // resp is now filled
2002//        fmt.Println(resp)
2003//    }
2004//
2005// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint
2006func (c *S3Control) GetAccessPointRequest(input *GetAccessPointInput) (req *request.Request, output *GetAccessPointOutput) {
2007	op := &request.Operation{
2008		Name:       opGetAccessPoint,
2009		HTTPMethod: "GET",
2010		HTTPPath:   "/v20180820/accesspoint/{name}",
2011	}
2012
2013	if input == nil {
2014		input = &GetAccessPointInput{}
2015	}
2016
2017	output = &GetAccessPointOutput{}
2018	req = c.newRequest(op, input, output)
2019	// update account id or check if provided input for account id member matches
2020	// the account id present in ARN
2021	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
2022	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2023	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2024	return
2025}
2026
2027// GetAccessPoint API operation for AWS S3 Control.
2028//
2029// Returns configuration information about the specified access point.
2030//
2031// All Amazon S3 on Outposts REST API requests for this action require an additional
2032// parameter of x-amz-outpost-id to be passed with the request and an S3 on
2033// Outposts endpoint hostname prefix instead of s3-control. For an example of
2034// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
2035// endpoint hostname prefix and the x-amz-outpost-id derived using the access
2036// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples)
2037// section.
2038//
2039// The following actions are related to GetAccessPoint:
2040//
2041//    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
2042//
2043//    * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)
2044//
2045//    * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)
2046//
2047// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2048// with awserr.Error's Code and Message methods to get detailed information about
2049// the error.
2050//
2051// See the AWS API reference guide for AWS S3 Control's
2052// API operation GetAccessPoint for usage and error information.
2053// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint
2054func (c *S3Control) GetAccessPoint(input *GetAccessPointInput) (*GetAccessPointOutput, error) {
2055	req, out := c.GetAccessPointRequest(input)
2056	return out, req.Send()
2057}
2058
2059// GetAccessPointWithContext is the same as GetAccessPoint with the addition of
2060// the ability to pass a context and additional request options.
2061//
2062// See GetAccessPoint for details on how to use this API operation.
2063//
2064// The context must be non-nil and will be used for request cancellation. If
2065// the context is nil a panic will occur. In the future the SDK may create
2066// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2067// for more information on using Contexts.
2068func (c *S3Control) GetAccessPointWithContext(ctx aws.Context, input *GetAccessPointInput, opts ...request.Option) (*GetAccessPointOutput, error) {
2069	req, out := c.GetAccessPointRequest(input)
2070	req.SetContext(ctx)
2071	req.ApplyOptions(opts...)
2072	return out, req.Send()
2073}
2074
2075const opGetAccessPointConfigurationForObjectLambda = "GetAccessPointConfigurationForObjectLambda"
2076
2077// GetAccessPointConfigurationForObjectLambdaRequest generates a "aws/request.Request" representing the
2078// client's request for the GetAccessPointConfigurationForObjectLambda operation. The "output" return
2079// value will be populated with the request's response once the request completes
2080// successfully.
2081//
2082// Use "Send" method on the returned Request to send the API call to the service.
2083// the "output" return value is not valid until after Send returns without error.
2084//
2085// See GetAccessPointConfigurationForObjectLambda for more information on using the GetAccessPointConfigurationForObjectLambda
2086// API call, and error handling.
2087//
2088// This method is useful when you want to inject custom logic or configuration
2089// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2090//
2091//
2092//    // Example sending a request using the GetAccessPointConfigurationForObjectLambdaRequest method.
2093//    req, resp := client.GetAccessPointConfigurationForObjectLambdaRequest(params)
2094//
2095//    err := req.Send()
2096//    if err == nil { // resp is now filled
2097//        fmt.Println(resp)
2098//    }
2099//
2100// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointConfigurationForObjectLambda
2101func (c *S3Control) GetAccessPointConfigurationForObjectLambdaRequest(input *GetAccessPointConfigurationForObjectLambdaInput) (req *request.Request, output *GetAccessPointConfigurationForObjectLambdaOutput) {
2102	op := &request.Operation{
2103		Name:       opGetAccessPointConfigurationForObjectLambda,
2104		HTTPMethod: "GET",
2105		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/configuration",
2106	}
2107
2108	if input == nil {
2109		input = &GetAccessPointConfigurationForObjectLambdaInput{}
2110	}
2111
2112	output = &GetAccessPointConfigurationForObjectLambdaOutput{}
2113	req = c.newRequest(op, input, output)
2114	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2115	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2116	return
2117}
2118
2119// GetAccessPointConfigurationForObjectLambda API operation for AWS S3 Control.
2120//
2121// Returns configuration for an Object Lambda Access Point.
2122//
2123// The following actions are related to GetAccessPointConfigurationForObjectLambda:
2124//
2125//    * PutAccessPointConfigurationForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointConfigurationForObjectLambda.html)
2126//
2127// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2128// with awserr.Error's Code and Message methods to get detailed information about
2129// the error.
2130//
2131// See the AWS API reference guide for AWS S3 Control's
2132// API operation GetAccessPointConfigurationForObjectLambda for usage and error information.
2133// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointConfigurationForObjectLambda
2134func (c *S3Control) GetAccessPointConfigurationForObjectLambda(input *GetAccessPointConfigurationForObjectLambdaInput) (*GetAccessPointConfigurationForObjectLambdaOutput, error) {
2135	req, out := c.GetAccessPointConfigurationForObjectLambdaRequest(input)
2136	return out, req.Send()
2137}
2138
2139// GetAccessPointConfigurationForObjectLambdaWithContext is the same as GetAccessPointConfigurationForObjectLambda with the addition of
2140// the ability to pass a context and additional request options.
2141//
2142// See GetAccessPointConfigurationForObjectLambda for details on how to use this API operation.
2143//
2144// The context must be non-nil and will be used for request cancellation. If
2145// the context is nil a panic will occur. In the future the SDK may create
2146// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2147// for more information on using Contexts.
2148func (c *S3Control) GetAccessPointConfigurationForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointConfigurationForObjectLambdaInput, opts ...request.Option) (*GetAccessPointConfigurationForObjectLambdaOutput, error) {
2149	req, out := c.GetAccessPointConfigurationForObjectLambdaRequest(input)
2150	req.SetContext(ctx)
2151	req.ApplyOptions(opts...)
2152	return out, req.Send()
2153}
2154
2155const opGetAccessPointForObjectLambda = "GetAccessPointForObjectLambda"
2156
2157// GetAccessPointForObjectLambdaRequest generates a "aws/request.Request" representing the
2158// client's request for the GetAccessPointForObjectLambda operation. The "output" return
2159// value will be populated with the request's response once the request completes
2160// successfully.
2161//
2162// Use "Send" method on the returned Request to send the API call to the service.
2163// the "output" return value is not valid until after Send returns without error.
2164//
2165// See GetAccessPointForObjectLambda for more information on using the GetAccessPointForObjectLambda
2166// API call, and error handling.
2167//
2168// This method is useful when you want to inject custom logic or configuration
2169// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2170//
2171//
2172//    // Example sending a request using the GetAccessPointForObjectLambdaRequest method.
2173//    req, resp := client.GetAccessPointForObjectLambdaRequest(params)
2174//
2175//    err := req.Send()
2176//    if err == nil { // resp is now filled
2177//        fmt.Println(resp)
2178//    }
2179//
2180// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointForObjectLambda
2181func (c *S3Control) GetAccessPointForObjectLambdaRequest(input *GetAccessPointForObjectLambdaInput) (req *request.Request, output *GetAccessPointForObjectLambdaOutput) {
2182	op := &request.Operation{
2183		Name:       opGetAccessPointForObjectLambda,
2184		HTTPMethod: "GET",
2185		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}",
2186	}
2187
2188	if input == nil {
2189		input = &GetAccessPointForObjectLambdaInput{}
2190	}
2191
2192	output = &GetAccessPointForObjectLambdaOutput{}
2193	req = c.newRequest(op, input, output)
2194	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2195	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2196	return
2197}
2198
2199// GetAccessPointForObjectLambda API operation for AWS S3 Control.
2200//
2201// Returns configuration information about the specified Object Lambda Access
2202// Point
2203//
2204// The following actions are related to GetAccessPointForObjectLambda:
2205//
2206//    * CreateAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html)
2207//
2208//    * DeleteAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html)
2209//
2210//    * ListAccessPointsForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html)
2211//
2212// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2213// with awserr.Error's Code and Message methods to get detailed information about
2214// the error.
2215//
2216// See the AWS API reference guide for AWS S3 Control's
2217// API operation GetAccessPointForObjectLambda for usage and error information.
2218// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointForObjectLambda
2219func (c *S3Control) GetAccessPointForObjectLambda(input *GetAccessPointForObjectLambdaInput) (*GetAccessPointForObjectLambdaOutput, error) {
2220	req, out := c.GetAccessPointForObjectLambdaRequest(input)
2221	return out, req.Send()
2222}
2223
2224// GetAccessPointForObjectLambdaWithContext is the same as GetAccessPointForObjectLambda with the addition of
2225// the ability to pass a context and additional request options.
2226//
2227// See GetAccessPointForObjectLambda for details on how to use this API operation.
2228//
2229// The context must be non-nil and will be used for request cancellation. If
2230// the context is nil a panic will occur. In the future the SDK may create
2231// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2232// for more information on using Contexts.
2233func (c *S3Control) GetAccessPointForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointForObjectLambdaInput, opts ...request.Option) (*GetAccessPointForObjectLambdaOutput, error) {
2234	req, out := c.GetAccessPointForObjectLambdaRequest(input)
2235	req.SetContext(ctx)
2236	req.ApplyOptions(opts...)
2237	return out, req.Send()
2238}
2239
2240const opGetAccessPointPolicy = "GetAccessPointPolicy"
2241
2242// GetAccessPointPolicyRequest generates a "aws/request.Request" representing the
2243// client's request for the GetAccessPointPolicy operation. The "output" return
2244// value will be populated with the request's response once the request completes
2245// successfully.
2246//
2247// Use "Send" method on the returned Request to send the API call to the service.
2248// the "output" return value is not valid until after Send returns without error.
2249//
2250// See GetAccessPointPolicy for more information on using the GetAccessPointPolicy
2251// API call, and error handling.
2252//
2253// This method is useful when you want to inject custom logic or configuration
2254// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2255//
2256//
2257//    // Example sending a request using the GetAccessPointPolicyRequest method.
2258//    req, resp := client.GetAccessPointPolicyRequest(params)
2259//
2260//    err := req.Send()
2261//    if err == nil { // resp is now filled
2262//        fmt.Println(resp)
2263//    }
2264//
2265// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy
2266func (c *S3Control) GetAccessPointPolicyRequest(input *GetAccessPointPolicyInput) (req *request.Request, output *GetAccessPointPolicyOutput) {
2267	op := &request.Operation{
2268		Name:       opGetAccessPointPolicy,
2269		HTTPMethod: "GET",
2270		HTTPPath:   "/v20180820/accesspoint/{name}/policy",
2271	}
2272
2273	if input == nil {
2274		input = &GetAccessPointPolicyInput{}
2275	}
2276
2277	output = &GetAccessPointPolicyOutput{}
2278	req = c.newRequest(op, input, output)
2279	// update account id or check if provided input for account id member matches
2280	// the account id present in ARN
2281	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
2282	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2283	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2284	return
2285}
2286
2287// GetAccessPointPolicy API operation for AWS S3 Control.
2288//
2289// Returns the access point policy associated with the specified access point.
2290//
2291// The following actions are related to GetAccessPointPolicy:
2292//
2293//    * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)
2294//
2295//    * DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html)
2296//
2297// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2298// with awserr.Error's Code and Message methods to get detailed information about
2299// the error.
2300//
2301// See the AWS API reference guide for AWS S3 Control's
2302// API operation GetAccessPointPolicy for usage and error information.
2303// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy
2304func (c *S3Control) GetAccessPointPolicy(input *GetAccessPointPolicyInput) (*GetAccessPointPolicyOutput, error) {
2305	req, out := c.GetAccessPointPolicyRequest(input)
2306	return out, req.Send()
2307}
2308
2309// GetAccessPointPolicyWithContext is the same as GetAccessPointPolicy with the addition of
2310// the ability to pass a context and additional request options.
2311//
2312// See GetAccessPointPolicy for details on how to use this API operation.
2313//
2314// The context must be non-nil and will be used for request cancellation. If
2315// the context is nil a panic will occur. In the future the SDK may create
2316// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2317// for more information on using Contexts.
2318func (c *S3Control) GetAccessPointPolicyWithContext(ctx aws.Context, input *GetAccessPointPolicyInput, opts ...request.Option) (*GetAccessPointPolicyOutput, error) {
2319	req, out := c.GetAccessPointPolicyRequest(input)
2320	req.SetContext(ctx)
2321	req.ApplyOptions(opts...)
2322	return out, req.Send()
2323}
2324
2325const opGetAccessPointPolicyForObjectLambda = "GetAccessPointPolicyForObjectLambda"
2326
2327// GetAccessPointPolicyForObjectLambdaRequest generates a "aws/request.Request" representing the
2328// client's request for the GetAccessPointPolicyForObjectLambda operation. The "output" return
2329// value will be populated with the request's response once the request completes
2330// successfully.
2331//
2332// Use "Send" method on the returned Request to send the API call to the service.
2333// the "output" return value is not valid until after Send returns without error.
2334//
2335// See GetAccessPointPolicyForObjectLambda for more information on using the GetAccessPointPolicyForObjectLambda
2336// API call, and error handling.
2337//
2338// This method is useful when you want to inject custom logic or configuration
2339// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2340//
2341//
2342//    // Example sending a request using the GetAccessPointPolicyForObjectLambdaRequest method.
2343//    req, resp := client.GetAccessPointPolicyForObjectLambdaRequest(params)
2344//
2345//    err := req.Send()
2346//    if err == nil { // resp is now filled
2347//        fmt.Println(resp)
2348//    }
2349//
2350// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyForObjectLambda
2351func (c *S3Control) GetAccessPointPolicyForObjectLambdaRequest(input *GetAccessPointPolicyForObjectLambdaInput) (req *request.Request, output *GetAccessPointPolicyForObjectLambdaOutput) {
2352	op := &request.Operation{
2353		Name:       opGetAccessPointPolicyForObjectLambda,
2354		HTTPMethod: "GET",
2355		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/policy",
2356	}
2357
2358	if input == nil {
2359		input = &GetAccessPointPolicyForObjectLambdaInput{}
2360	}
2361
2362	output = &GetAccessPointPolicyForObjectLambdaOutput{}
2363	req = c.newRequest(op, input, output)
2364	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2365	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2366	return
2367}
2368
2369// GetAccessPointPolicyForObjectLambda API operation for AWS S3 Control.
2370//
2371// Returns the resource policy for an Object Lambda Access Point.
2372//
2373// The following actions are related to GetAccessPointPolicyForObjectLambda:
2374//
2375//    * DeleteAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html)
2376//
2377//    * PutAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicyForObjectLambda.html)
2378//
2379// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2380// with awserr.Error's Code and Message methods to get detailed information about
2381// the error.
2382//
2383// See the AWS API reference guide for AWS S3 Control's
2384// API operation GetAccessPointPolicyForObjectLambda for usage and error information.
2385// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyForObjectLambda
2386func (c *S3Control) GetAccessPointPolicyForObjectLambda(input *GetAccessPointPolicyForObjectLambdaInput) (*GetAccessPointPolicyForObjectLambdaOutput, error) {
2387	req, out := c.GetAccessPointPolicyForObjectLambdaRequest(input)
2388	return out, req.Send()
2389}
2390
2391// GetAccessPointPolicyForObjectLambdaWithContext is the same as GetAccessPointPolicyForObjectLambda with the addition of
2392// the ability to pass a context and additional request options.
2393//
2394// See GetAccessPointPolicyForObjectLambda for details on how to use this API operation.
2395//
2396// The context must be non-nil and will be used for request cancellation. If
2397// the context is nil a panic will occur. In the future the SDK may create
2398// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2399// for more information on using Contexts.
2400func (c *S3Control) GetAccessPointPolicyForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointPolicyForObjectLambdaInput, opts ...request.Option) (*GetAccessPointPolicyForObjectLambdaOutput, error) {
2401	req, out := c.GetAccessPointPolicyForObjectLambdaRequest(input)
2402	req.SetContext(ctx)
2403	req.ApplyOptions(opts...)
2404	return out, req.Send()
2405}
2406
2407const opGetAccessPointPolicyStatus = "GetAccessPointPolicyStatus"
2408
2409// GetAccessPointPolicyStatusRequest generates a "aws/request.Request" representing the
2410// client's request for the GetAccessPointPolicyStatus operation. The "output" return
2411// value will be populated with the request's response once the request completes
2412// successfully.
2413//
2414// Use "Send" method on the returned Request to send the API call to the service.
2415// the "output" return value is not valid until after Send returns without error.
2416//
2417// See GetAccessPointPolicyStatus for more information on using the GetAccessPointPolicyStatus
2418// API call, and error handling.
2419//
2420// This method is useful when you want to inject custom logic or configuration
2421// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2422//
2423//
2424//    // Example sending a request using the GetAccessPointPolicyStatusRequest method.
2425//    req, resp := client.GetAccessPointPolicyStatusRequest(params)
2426//
2427//    err := req.Send()
2428//    if err == nil { // resp is now filled
2429//        fmt.Println(resp)
2430//    }
2431//
2432// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus
2433func (c *S3Control) GetAccessPointPolicyStatusRequest(input *GetAccessPointPolicyStatusInput) (req *request.Request, output *GetAccessPointPolicyStatusOutput) {
2434	op := &request.Operation{
2435		Name:       opGetAccessPointPolicyStatus,
2436		HTTPMethod: "GET",
2437		HTTPPath:   "/v20180820/accesspoint/{name}/policyStatus",
2438	}
2439
2440	if input == nil {
2441		input = &GetAccessPointPolicyStatusInput{}
2442	}
2443
2444	output = &GetAccessPointPolicyStatusOutput{}
2445	req = c.newRequest(op, input, output)
2446	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2447	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2448	return
2449}
2450
2451// GetAccessPointPolicyStatus API operation for AWS S3 Control.
2452//
2453// Indicates whether the specified access point currently has a policy that
2454// allows public access. For more information about public access through access
2455// points, see Managing Data Access with Amazon S3 access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)
2456// in the Amazon S3 User Guide.
2457//
2458// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2459// with awserr.Error's Code and Message methods to get detailed information about
2460// the error.
2461//
2462// See the AWS API reference guide for AWS S3 Control's
2463// API operation GetAccessPointPolicyStatus for usage and error information.
2464// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus
2465func (c *S3Control) GetAccessPointPolicyStatus(input *GetAccessPointPolicyStatusInput) (*GetAccessPointPolicyStatusOutput, error) {
2466	req, out := c.GetAccessPointPolicyStatusRequest(input)
2467	return out, req.Send()
2468}
2469
2470// GetAccessPointPolicyStatusWithContext is the same as GetAccessPointPolicyStatus with the addition of
2471// the ability to pass a context and additional request options.
2472//
2473// See GetAccessPointPolicyStatus for details on how to use this API operation.
2474//
2475// The context must be non-nil and will be used for request cancellation. If
2476// the context is nil a panic will occur. In the future the SDK may create
2477// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2478// for more information on using Contexts.
2479func (c *S3Control) GetAccessPointPolicyStatusWithContext(ctx aws.Context, input *GetAccessPointPolicyStatusInput, opts ...request.Option) (*GetAccessPointPolicyStatusOutput, error) {
2480	req, out := c.GetAccessPointPolicyStatusRequest(input)
2481	req.SetContext(ctx)
2482	req.ApplyOptions(opts...)
2483	return out, req.Send()
2484}
2485
2486const opGetAccessPointPolicyStatusForObjectLambda = "GetAccessPointPolicyStatusForObjectLambda"
2487
2488// GetAccessPointPolicyStatusForObjectLambdaRequest generates a "aws/request.Request" representing the
2489// client's request for the GetAccessPointPolicyStatusForObjectLambda operation. The "output" return
2490// value will be populated with the request's response once the request completes
2491// successfully.
2492//
2493// Use "Send" method on the returned Request to send the API call to the service.
2494// the "output" return value is not valid until after Send returns without error.
2495//
2496// See GetAccessPointPolicyStatusForObjectLambda for more information on using the GetAccessPointPolicyStatusForObjectLambda
2497// API call, and error handling.
2498//
2499// This method is useful when you want to inject custom logic or configuration
2500// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2501//
2502//
2503//    // Example sending a request using the GetAccessPointPolicyStatusForObjectLambdaRequest method.
2504//    req, resp := client.GetAccessPointPolicyStatusForObjectLambdaRequest(params)
2505//
2506//    err := req.Send()
2507//    if err == nil { // resp is now filled
2508//        fmt.Println(resp)
2509//    }
2510//
2511// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusForObjectLambda
2512func (c *S3Control) GetAccessPointPolicyStatusForObjectLambdaRequest(input *GetAccessPointPolicyStatusForObjectLambdaInput) (req *request.Request, output *GetAccessPointPolicyStatusForObjectLambdaOutput) {
2513	op := &request.Operation{
2514		Name:       opGetAccessPointPolicyStatusForObjectLambda,
2515		HTTPMethod: "GET",
2516		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/policyStatus",
2517	}
2518
2519	if input == nil {
2520		input = &GetAccessPointPolicyStatusForObjectLambdaInput{}
2521	}
2522
2523	output = &GetAccessPointPolicyStatusForObjectLambdaOutput{}
2524	req = c.newRequest(op, input, output)
2525	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2526	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2527	return
2528}
2529
2530// GetAccessPointPolicyStatusForObjectLambda API operation for AWS S3 Control.
2531//
2532// Returns the status of the resource policy associated with an Object Lambda
2533// Access Point.
2534//
2535// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2536// with awserr.Error's Code and Message methods to get detailed information about
2537// the error.
2538//
2539// See the AWS API reference guide for AWS S3 Control's
2540// API operation GetAccessPointPolicyStatusForObjectLambda for usage and error information.
2541// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusForObjectLambda
2542func (c *S3Control) GetAccessPointPolicyStatusForObjectLambda(input *GetAccessPointPolicyStatusForObjectLambdaInput) (*GetAccessPointPolicyStatusForObjectLambdaOutput, error) {
2543	req, out := c.GetAccessPointPolicyStatusForObjectLambdaRequest(input)
2544	return out, req.Send()
2545}
2546
2547// GetAccessPointPolicyStatusForObjectLambdaWithContext is the same as GetAccessPointPolicyStatusForObjectLambda with the addition of
2548// the ability to pass a context and additional request options.
2549//
2550// See GetAccessPointPolicyStatusForObjectLambda for details on how to use this API operation.
2551//
2552// The context must be non-nil and will be used for request cancellation. If
2553// the context is nil a panic will occur. In the future the SDK may create
2554// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2555// for more information on using Contexts.
2556func (c *S3Control) GetAccessPointPolicyStatusForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointPolicyStatusForObjectLambdaInput, opts ...request.Option) (*GetAccessPointPolicyStatusForObjectLambdaOutput, error) {
2557	req, out := c.GetAccessPointPolicyStatusForObjectLambdaRequest(input)
2558	req.SetContext(ctx)
2559	req.ApplyOptions(opts...)
2560	return out, req.Send()
2561}
2562
2563const opGetBucket = "GetBucket"
2564
2565// GetBucketRequest generates a "aws/request.Request" representing the
2566// client's request for the GetBucket operation. The "output" return
2567// value will be populated with the request's response once the request completes
2568// successfully.
2569//
2570// Use "Send" method on the returned Request to send the API call to the service.
2571// the "output" return value is not valid until after Send returns without error.
2572//
2573// See GetBucket for more information on using the GetBucket
2574// API call, and error handling.
2575//
2576// This method is useful when you want to inject custom logic or configuration
2577// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2578//
2579//
2580//    // Example sending a request using the GetBucketRequest method.
2581//    req, resp := client.GetBucketRequest(params)
2582//
2583//    err := req.Send()
2584//    if err == nil { // resp is now filled
2585//        fmt.Println(resp)
2586//    }
2587//
2588// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket
2589func (c *S3Control) GetBucketRequest(input *GetBucketInput) (req *request.Request, output *GetBucketOutput) {
2590	op := &request.Operation{
2591		Name:       opGetBucket,
2592		HTTPMethod: "GET",
2593		HTTPPath:   "/v20180820/bucket/{name}",
2594	}
2595
2596	if input == nil {
2597		input = &GetBucketInput{}
2598	}
2599
2600	output = &GetBucketOutput{}
2601	req = c.newRequest(op, input, output)
2602	// update account id or check if provided input for account id member matches
2603	// the account id present in ARN
2604	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
2605	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2606	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2607	return
2608}
2609
2610// GetBucket API operation for AWS S3 Control.
2611//
2612// Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon
2613// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
2614// in the Amazon S3 User Guide.
2615//
2616// If you are using an identity other than the root user of the Amazon Web Services
2617// account that owns the Outposts bucket, the calling identity must have the
2618// s3-outposts:GetBucket permissions on the specified Outposts bucket and belong
2619// to the Outposts bucket owner's account in order to use this action. Only
2620// users from Outposts bucket owner account with the right permissions can perform
2621// actions on an Outposts bucket.
2622//
2623// If you don't have s3-outposts:GetBucket permissions or you're not using an
2624// identity that belongs to the bucket owner's account, Amazon S3 returns a
2625// 403 Access Denied error.
2626//
2627// The following actions are related to GetBucket for Amazon S3 on Outposts:
2628//
2629// All Amazon S3 on Outposts REST API requests for this action require an additional
2630// parameter of x-amz-outpost-id to be passed with the request and an S3 on
2631// Outposts endpoint hostname prefix instead of s3-control. For an example of
2632// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
2633// endpoint hostname prefix and the x-amz-outpost-id derived using the access
2634// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html#API_control_GetBucket_Examples)
2635// section.
2636//
2637//    * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
2638//
2639//    * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html)
2640//
2641//    * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html)
2642//
2643// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2644// with awserr.Error's Code and Message methods to get detailed information about
2645// the error.
2646//
2647// See the AWS API reference guide for AWS S3 Control's
2648// API operation GetBucket for usage and error information.
2649// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket
2650func (c *S3Control) GetBucket(input *GetBucketInput) (*GetBucketOutput, error) {
2651	req, out := c.GetBucketRequest(input)
2652	return out, req.Send()
2653}
2654
2655// GetBucketWithContext is the same as GetBucket with the addition of
2656// the ability to pass a context and additional request options.
2657//
2658// See GetBucket for details on how to use this API operation.
2659//
2660// The context must be non-nil and will be used for request cancellation. If
2661// the context is nil a panic will occur. In the future the SDK may create
2662// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2663// for more information on using Contexts.
2664func (c *S3Control) GetBucketWithContext(ctx aws.Context, input *GetBucketInput, opts ...request.Option) (*GetBucketOutput, error) {
2665	req, out := c.GetBucketRequest(input)
2666	req.SetContext(ctx)
2667	req.ApplyOptions(opts...)
2668	return out, req.Send()
2669}
2670
2671const opGetBucketLifecycleConfiguration = "GetBucketLifecycleConfiguration"
2672
2673// GetBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
2674// client's request for the GetBucketLifecycleConfiguration operation. The "output" return
2675// value will be populated with the request's response once the request completes
2676// successfully.
2677//
2678// Use "Send" method on the returned Request to send the API call to the service.
2679// the "output" return value is not valid until after Send returns without error.
2680//
2681// See GetBucketLifecycleConfiguration for more information on using the GetBucketLifecycleConfiguration
2682// API call, and error handling.
2683//
2684// This method is useful when you want to inject custom logic or configuration
2685// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2686//
2687//
2688//    // Example sending a request using the GetBucketLifecycleConfigurationRequest method.
2689//    req, resp := client.GetBucketLifecycleConfigurationRequest(params)
2690//
2691//    err := req.Send()
2692//    if err == nil { // resp is now filled
2693//        fmt.Println(resp)
2694//    }
2695//
2696// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration
2697func (c *S3Control) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleConfigurationInput) (req *request.Request, output *GetBucketLifecycleConfigurationOutput) {
2698	op := &request.Operation{
2699		Name:       opGetBucketLifecycleConfiguration,
2700		HTTPMethod: "GET",
2701		HTTPPath:   "/v20180820/bucket/{name}/lifecycleconfiguration",
2702	}
2703
2704	if input == nil {
2705		input = &GetBucketLifecycleConfigurationInput{}
2706	}
2707
2708	output = &GetBucketLifecycleConfigurationOutput{}
2709	req = c.newRequest(op, input, output)
2710	// update account id or check if provided input for account id member matches
2711	// the account id present in ARN
2712	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
2713	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2714	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2715	return
2716}
2717
2718// GetBucketLifecycleConfiguration API operation for AWS S3 Control.
2719//
2720//
2721// This action gets an Amazon S3 on Outposts bucket's lifecycle configuration.
2722// To get an S3 bucket's lifecycle configuration, see GetBucketLifecycleConfiguration
2723// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html)
2724// in the Amazon S3 API Reference.
2725//
2726// Returns the lifecycle configuration information set on the Outposts bucket.
2727// For more information, see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
2728// and for information about lifecycle configuration, see Object Lifecycle Management
2729// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)
2730// in Amazon S3 User Guide.
2731//
2732// To use this action, you must have permission to perform the s3-outposts:GetLifecycleConfiguration
2733// action. The Outposts bucket owner has this permission, by default. The bucket
2734// owner can grant this permission to others. For more information about permissions,
2735// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
2736// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html).
2737//
2738// All Amazon S3 on Outposts REST API requests for this action require an additional
2739// parameter of x-amz-outpost-id to be passed with the request and an S3 on
2740// Outposts endpoint hostname prefix instead of s3-control. For an example of
2741// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
2742// endpoint hostname prefix and the x-amz-outpost-id derived using the access
2743// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html#API_control_GetBucketLifecycleConfiguration_Examples)
2744// section.
2745//
2746// GetBucketLifecycleConfiguration has the following special error:
2747//
2748//    * Error code: NoSuchLifecycleConfiguration Description: The lifecycle
2749//    configuration does not exist. HTTP Status Code: 404 Not Found SOAP Fault
2750//    Code Prefix: Client
2751//
2752// The following actions are related to GetBucketLifecycleConfiguration:
2753//
2754//    * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html)
2755//
2756//    * DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html)
2757//
2758// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2759// with awserr.Error's Code and Message methods to get detailed information about
2760// the error.
2761//
2762// See the AWS API reference guide for AWS S3 Control's
2763// API operation GetBucketLifecycleConfiguration for usage and error information.
2764// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration
2765func (c *S3Control) GetBucketLifecycleConfiguration(input *GetBucketLifecycleConfigurationInput) (*GetBucketLifecycleConfigurationOutput, error) {
2766	req, out := c.GetBucketLifecycleConfigurationRequest(input)
2767	return out, req.Send()
2768}
2769
2770// GetBucketLifecycleConfigurationWithContext is the same as GetBucketLifecycleConfiguration with the addition of
2771// the ability to pass a context and additional request options.
2772//
2773// See GetBucketLifecycleConfiguration for details on how to use this API operation.
2774//
2775// The context must be non-nil and will be used for request cancellation. If
2776// the context is nil a panic will occur. In the future the SDK may create
2777// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2778// for more information on using Contexts.
2779func (c *S3Control) GetBucketLifecycleConfigurationWithContext(ctx aws.Context, input *GetBucketLifecycleConfigurationInput, opts ...request.Option) (*GetBucketLifecycleConfigurationOutput, error) {
2780	req, out := c.GetBucketLifecycleConfigurationRequest(input)
2781	req.SetContext(ctx)
2782	req.ApplyOptions(opts...)
2783	return out, req.Send()
2784}
2785
2786const opGetBucketPolicy = "GetBucketPolicy"
2787
2788// GetBucketPolicyRequest generates a "aws/request.Request" representing the
2789// client's request for the GetBucketPolicy operation. The "output" return
2790// value will be populated with the request's response once the request completes
2791// successfully.
2792//
2793// Use "Send" method on the returned Request to send the API call to the service.
2794// the "output" return value is not valid until after Send returns without error.
2795//
2796// See GetBucketPolicy for more information on using the GetBucketPolicy
2797// API call, and error handling.
2798//
2799// This method is useful when you want to inject custom logic or configuration
2800// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2801//
2802//
2803//    // Example sending a request using the GetBucketPolicyRequest method.
2804//    req, resp := client.GetBucketPolicyRequest(params)
2805//
2806//    err := req.Send()
2807//    if err == nil { // resp is now filled
2808//        fmt.Println(resp)
2809//    }
2810//
2811// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy
2812func (c *S3Control) GetBucketPolicyRequest(input *GetBucketPolicyInput) (req *request.Request, output *GetBucketPolicyOutput) {
2813	op := &request.Operation{
2814		Name:       opGetBucketPolicy,
2815		HTTPMethod: "GET",
2816		HTTPPath:   "/v20180820/bucket/{name}/policy",
2817	}
2818
2819	if input == nil {
2820		input = &GetBucketPolicyInput{}
2821	}
2822
2823	output = &GetBucketPolicyOutput{}
2824	req = c.newRequest(op, input, output)
2825	// update account id or check if provided input for account id member matches
2826	// the account id present in ARN
2827	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
2828	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2829	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2830	return
2831}
2832
2833// GetBucketPolicy API operation for AWS S3 Control.
2834//
2835//
2836// This action gets a bucket policy for an Amazon S3 on Outposts bucket. To
2837// get a policy for an S3 bucket, see GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html)
2838// in the Amazon S3 API Reference.
2839//
2840// Returns the policy of a specified Outposts bucket. For more information,
2841// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
2842// in the Amazon S3 User Guide.
2843//
2844// If you are using an identity other than the root user of the Amazon Web Services
2845// account that owns the bucket, the calling identity must have the GetBucketPolicy
2846// permissions on the specified bucket and belong to the bucket owner's account
2847// in order to use this action.
2848//
2849// Only users from Outposts bucket owner account with the right permissions
2850// can perform actions on an Outposts bucket. If you don't have s3-outposts:GetBucketPolicy
2851// permissions or you're not using an identity that belongs to the bucket owner's
2852// account, Amazon S3 returns a 403 Access Denied error.
2853//
2854// As a security precaution, the root user of the Amazon Web Services account
2855// that owns a bucket can always use this action, even if the policy explicitly
2856// denies the root user the ability to perform this action.
2857//
2858// For more information about bucket policies, see Using Bucket Policies and
2859// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html).
2860//
2861// All Amazon S3 on Outposts REST API requests for this action require an additional
2862// parameter of x-amz-outpost-id to be passed with the request and an S3 on
2863// Outposts endpoint hostname prefix instead of s3-control. For an example of
2864// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
2865// endpoint hostname prefix and the x-amz-outpost-id derived using the access
2866// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html#API_control_GetBucketPolicy_Examples)
2867// section.
2868//
2869// The following actions are related to GetBucketPolicy:
2870//
2871//    * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
2872//
2873//    * PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html)
2874//
2875//    * DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html)
2876//
2877// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2878// with awserr.Error's Code and Message methods to get detailed information about
2879// the error.
2880//
2881// See the AWS API reference guide for AWS S3 Control's
2882// API operation GetBucketPolicy for usage and error information.
2883// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy
2884func (c *S3Control) GetBucketPolicy(input *GetBucketPolicyInput) (*GetBucketPolicyOutput, error) {
2885	req, out := c.GetBucketPolicyRequest(input)
2886	return out, req.Send()
2887}
2888
2889// GetBucketPolicyWithContext is the same as GetBucketPolicy with the addition of
2890// the ability to pass a context and additional request options.
2891//
2892// See GetBucketPolicy for details on how to use this API operation.
2893//
2894// The context must be non-nil and will be used for request cancellation. If
2895// the context is nil a panic will occur. In the future the SDK may create
2896// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2897// for more information on using Contexts.
2898func (c *S3Control) GetBucketPolicyWithContext(ctx aws.Context, input *GetBucketPolicyInput, opts ...request.Option) (*GetBucketPolicyOutput, error) {
2899	req, out := c.GetBucketPolicyRequest(input)
2900	req.SetContext(ctx)
2901	req.ApplyOptions(opts...)
2902	return out, req.Send()
2903}
2904
2905const opGetBucketTagging = "GetBucketTagging"
2906
2907// GetBucketTaggingRequest generates a "aws/request.Request" representing the
2908// client's request for the GetBucketTagging operation. The "output" return
2909// value will be populated with the request's response once the request completes
2910// successfully.
2911//
2912// Use "Send" method on the returned Request to send the API call to the service.
2913// the "output" return value is not valid until after Send returns without error.
2914//
2915// See GetBucketTagging for more information on using the GetBucketTagging
2916// API call, and error handling.
2917//
2918// This method is useful when you want to inject custom logic or configuration
2919// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2920//
2921//
2922//    // Example sending a request using the GetBucketTaggingRequest method.
2923//    req, resp := client.GetBucketTaggingRequest(params)
2924//
2925//    err := req.Send()
2926//    if err == nil { // resp is now filled
2927//        fmt.Println(resp)
2928//    }
2929//
2930// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging
2931func (c *S3Control) GetBucketTaggingRequest(input *GetBucketTaggingInput) (req *request.Request, output *GetBucketTaggingOutput) {
2932	op := &request.Operation{
2933		Name:       opGetBucketTagging,
2934		HTTPMethod: "GET",
2935		HTTPPath:   "/v20180820/bucket/{name}/tagging",
2936	}
2937
2938	if input == nil {
2939		input = &GetBucketTaggingInput{}
2940	}
2941
2942	output = &GetBucketTaggingOutput{}
2943	req = c.newRequest(op, input, output)
2944	// update account id or check if provided input for account id member matches
2945	// the account id present in ARN
2946	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
2947	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2948	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2949	return
2950}
2951
2952// GetBucketTagging API operation for AWS S3 Control.
2953//
2954//
2955// This action gets an Amazon S3 on Outposts bucket's tags. To get an S3 bucket
2956// tags, see GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html)
2957// in the Amazon S3 API Reference.
2958//
2959// Returns the tag set associated with the Outposts bucket. For more information,
2960// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
2961// in the Amazon S3 User Guide.
2962//
2963// To use this action, you must have permission to perform the GetBucketTagging
2964// action. By default, the bucket owner has this permission and can grant this
2965// permission to others.
2966//
2967// GetBucketTagging has the following special error:
2968//
2969//    * Error code: NoSuchTagSetError Description: There is no tag set associated
2970//    with the bucket.
2971//
2972// All Amazon S3 on Outposts REST API requests for this action require an additional
2973// parameter of x-amz-outpost-id to be passed with the request and an S3 on
2974// Outposts endpoint hostname prefix instead of s3-control. For an example of
2975// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
2976// endpoint hostname prefix and the x-amz-outpost-id derived using the access
2977// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html#API_control_GetBucketTagging_Examples)
2978// section.
2979//
2980// The following actions are related to GetBucketTagging:
2981//
2982//    * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html)
2983//
2984//    * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html)
2985//
2986// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2987// with awserr.Error's Code and Message methods to get detailed information about
2988// the error.
2989//
2990// See the AWS API reference guide for AWS S3 Control's
2991// API operation GetBucketTagging for usage and error information.
2992// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging
2993func (c *S3Control) GetBucketTagging(input *GetBucketTaggingInput) (*GetBucketTaggingOutput, error) {
2994	req, out := c.GetBucketTaggingRequest(input)
2995	return out, req.Send()
2996}
2997
2998// GetBucketTaggingWithContext is the same as GetBucketTagging with the addition of
2999// the ability to pass a context and additional request options.
3000//
3001// See GetBucketTagging for details on how to use this API operation.
3002//
3003// The context must be non-nil and will be used for request cancellation. If
3004// the context is nil a panic will occur. In the future the SDK may create
3005// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3006// for more information on using Contexts.
3007func (c *S3Control) GetBucketTaggingWithContext(ctx aws.Context, input *GetBucketTaggingInput, opts ...request.Option) (*GetBucketTaggingOutput, error) {
3008	req, out := c.GetBucketTaggingRequest(input)
3009	req.SetContext(ctx)
3010	req.ApplyOptions(opts...)
3011	return out, req.Send()
3012}
3013
3014const opGetJobTagging = "GetJobTagging"
3015
3016// GetJobTaggingRequest generates a "aws/request.Request" representing the
3017// client's request for the GetJobTagging operation. The "output" return
3018// value will be populated with the request's response once the request completes
3019// successfully.
3020//
3021// Use "Send" method on the returned Request to send the API call to the service.
3022// the "output" return value is not valid until after Send returns without error.
3023//
3024// See GetJobTagging for more information on using the GetJobTagging
3025// API call, and error handling.
3026//
3027// This method is useful when you want to inject custom logic or configuration
3028// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3029//
3030//
3031//    // Example sending a request using the GetJobTaggingRequest method.
3032//    req, resp := client.GetJobTaggingRequest(params)
3033//
3034//    err := req.Send()
3035//    if err == nil { // resp is now filled
3036//        fmt.Println(resp)
3037//    }
3038//
3039// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging
3040func (c *S3Control) GetJobTaggingRequest(input *GetJobTaggingInput) (req *request.Request, output *GetJobTaggingOutput) {
3041	op := &request.Operation{
3042		Name:       opGetJobTagging,
3043		HTTPMethod: "GET",
3044		HTTPPath:   "/v20180820/jobs/{id}/tagging",
3045	}
3046
3047	if input == nil {
3048		input = &GetJobTaggingInput{}
3049	}
3050
3051	output = &GetJobTaggingOutput{}
3052	req = c.newRequest(op, input, output)
3053	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3054	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3055	return
3056}
3057
3058// GetJobTagging API operation for AWS S3 Control.
3059//
3060// Returns the tags on an S3 Batch Operations job. To use this operation, you
3061// must have permission to perform the s3:GetJobTagging action. For more information,
3062// 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)
3063// in the Amazon S3 User Guide.
3064//
3065// Related actions include:
3066//
3067//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
3068//
3069//    * PutJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html)
3070//
3071//    * DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
3072//
3073// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3074// with awserr.Error's Code and Message methods to get detailed information about
3075// the error.
3076//
3077// See the AWS API reference guide for AWS S3 Control's
3078// API operation GetJobTagging for usage and error information.
3079//
3080// Returned Error Codes:
3081//   * ErrCodeInternalServiceException "InternalServiceException"
3082//
3083//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
3084//
3085//   * ErrCodeNotFoundException "NotFoundException"
3086//
3087// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging
3088func (c *S3Control) GetJobTagging(input *GetJobTaggingInput) (*GetJobTaggingOutput, error) {
3089	req, out := c.GetJobTaggingRequest(input)
3090	return out, req.Send()
3091}
3092
3093// GetJobTaggingWithContext is the same as GetJobTagging with the addition of
3094// the ability to pass a context and additional request options.
3095//
3096// See GetJobTagging for details on how to use this API operation.
3097//
3098// The context must be non-nil and will be used for request cancellation. If
3099// the context is nil a panic will occur. In the future the SDK may create
3100// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3101// for more information on using Contexts.
3102func (c *S3Control) GetJobTaggingWithContext(ctx aws.Context, input *GetJobTaggingInput, opts ...request.Option) (*GetJobTaggingOutput, error) {
3103	req, out := c.GetJobTaggingRequest(input)
3104	req.SetContext(ctx)
3105	req.ApplyOptions(opts...)
3106	return out, req.Send()
3107}
3108
3109const opGetMultiRegionAccessPoint = "GetMultiRegionAccessPoint"
3110
3111// GetMultiRegionAccessPointRequest generates a "aws/request.Request" representing the
3112// client's request for the GetMultiRegionAccessPoint operation. The "output" return
3113// value will be populated with the request's response once the request completes
3114// successfully.
3115//
3116// Use "Send" method on the returned Request to send the API call to the service.
3117// the "output" return value is not valid until after Send returns without error.
3118//
3119// See GetMultiRegionAccessPoint for more information on using the GetMultiRegionAccessPoint
3120// API call, and error handling.
3121//
3122// This method is useful when you want to inject custom logic or configuration
3123// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3124//
3125//
3126//    // Example sending a request using the GetMultiRegionAccessPointRequest method.
3127//    req, resp := client.GetMultiRegionAccessPointRequest(params)
3128//
3129//    err := req.Send()
3130//    if err == nil { // resp is now filled
3131//        fmt.Println(resp)
3132//    }
3133//
3134// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPoint
3135func (c *S3Control) GetMultiRegionAccessPointRequest(input *GetMultiRegionAccessPointInput) (req *request.Request, output *GetMultiRegionAccessPointOutput) {
3136	op := &request.Operation{
3137		Name:       opGetMultiRegionAccessPoint,
3138		HTTPMethod: "GET",
3139		HTTPPath:   "/v20180820/mrap/instances/{name}",
3140	}
3141
3142	if input == nil {
3143		input = &GetMultiRegionAccessPointInput{}
3144	}
3145
3146	output = &GetMultiRegionAccessPointOutput{}
3147	req = c.newRequest(op, input, output)
3148	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3149	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3150	req.Handlers.Build.PushBackNamed(request.NamedHandler{
3151		Name: "contentMd5Handler",
3152		Fn:   checksum.AddBodyContentMD5Handler,
3153	})
3154	return
3155}
3156
3157// GetMultiRegionAccessPoint API operation for AWS S3 Control.
3158//
3159// Returns configuration information about the specified Multi-Region Access
3160// Point.
3161//
3162// This action will always be routed to the US West (Oregon) Region. For more
3163// information about the restrictions around managing Multi-Region Access Points,
3164// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
3165// in the Amazon S3 User Guide.
3166//
3167// The following actions are related to GetMultiRegionAccessPoint:
3168//
3169//    * CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)
3170//
3171//    * DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)
3172//
3173//    * DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
3174//
3175//    * ListMultiRegionAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html)
3176//
3177// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3178// with awserr.Error's Code and Message methods to get detailed information about
3179// the error.
3180//
3181// See the AWS API reference guide for AWS S3 Control's
3182// API operation GetMultiRegionAccessPoint for usage and error information.
3183// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPoint
3184func (c *S3Control) GetMultiRegionAccessPoint(input *GetMultiRegionAccessPointInput) (*GetMultiRegionAccessPointOutput, error) {
3185	req, out := c.GetMultiRegionAccessPointRequest(input)
3186	return out, req.Send()
3187}
3188
3189// GetMultiRegionAccessPointWithContext is the same as GetMultiRegionAccessPoint with the addition of
3190// the ability to pass a context and additional request options.
3191//
3192// See GetMultiRegionAccessPoint for details on how to use this API operation.
3193//
3194// The context must be non-nil and will be used for request cancellation. If
3195// the context is nil a panic will occur. In the future the SDK may create
3196// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3197// for more information on using Contexts.
3198func (c *S3Control) GetMultiRegionAccessPointWithContext(ctx aws.Context, input *GetMultiRegionAccessPointInput, opts ...request.Option) (*GetMultiRegionAccessPointOutput, error) {
3199	req, out := c.GetMultiRegionAccessPointRequest(input)
3200	req.SetContext(ctx)
3201	req.ApplyOptions(opts...)
3202	return out, req.Send()
3203}
3204
3205const opGetMultiRegionAccessPointPolicy = "GetMultiRegionAccessPointPolicy"
3206
3207// GetMultiRegionAccessPointPolicyRequest generates a "aws/request.Request" representing the
3208// client's request for the GetMultiRegionAccessPointPolicy operation. The "output" return
3209// value will be populated with the request's response once the request completes
3210// successfully.
3211//
3212// Use "Send" method on the returned Request to send the API call to the service.
3213// the "output" return value is not valid until after Send returns without error.
3214//
3215// See GetMultiRegionAccessPointPolicy for more information on using the GetMultiRegionAccessPointPolicy
3216// API call, and error handling.
3217//
3218// This method is useful when you want to inject custom logic or configuration
3219// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3220//
3221//
3222//    // Example sending a request using the GetMultiRegionAccessPointPolicyRequest method.
3223//    req, resp := client.GetMultiRegionAccessPointPolicyRequest(params)
3224//
3225//    err := req.Send()
3226//    if err == nil { // resp is now filled
3227//        fmt.Println(resp)
3228//    }
3229//
3230// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicy
3231func (c *S3Control) GetMultiRegionAccessPointPolicyRequest(input *GetMultiRegionAccessPointPolicyInput) (req *request.Request, output *GetMultiRegionAccessPointPolicyOutput) {
3232	op := &request.Operation{
3233		Name:       opGetMultiRegionAccessPointPolicy,
3234		HTTPMethod: "GET",
3235		HTTPPath:   "/v20180820/mrap/instances/{name}/policy",
3236	}
3237
3238	if input == nil {
3239		input = &GetMultiRegionAccessPointPolicyInput{}
3240	}
3241
3242	output = &GetMultiRegionAccessPointPolicyOutput{}
3243	req = c.newRequest(op, input, output)
3244	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3245	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3246	req.Handlers.Build.PushBackNamed(request.NamedHandler{
3247		Name: "contentMd5Handler",
3248		Fn:   checksum.AddBodyContentMD5Handler,
3249	})
3250	return
3251}
3252
3253// GetMultiRegionAccessPointPolicy API operation for AWS S3 Control.
3254//
3255// Returns the access control policy of the specified Multi-Region Access Point.
3256//
3257// This action will always be routed to the US West (Oregon) Region. For more
3258// information about the restrictions around managing Multi-Region Access Points,
3259// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
3260// in the Amazon S3 User Guide.
3261//
3262// The following actions are related to GetMultiRegionAccessPointPolicy:
3263//
3264//    * GetMultiRegionAccessPointPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html)
3265//
3266//    * PutMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html)
3267//
3268// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3269// with awserr.Error's Code and Message methods to get detailed information about
3270// the error.
3271//
3272// See the AWS API reference guide for AWS S3 Control's
3273// API operation GetMultiRegionAccessPointPolicy for usage and error information.
3274// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicy
3275func (c *S3Control) GetMultiRegionAccessPointPolicy(input *GetMultiRegionAccessPointPolicyInput) (*GetMultiRegionAccessPointPolicyOutput, error) {
3276	req, out := c.GetMultiRegionAccessPointPolicyRequest(input)
3277	return out, req.Send()
3278}
3279
3280// GetMultiRegionAccessPointPolicyWithContext is the same as GetMultiRegionAccessPointPolicy with the addition of
3281// the ability to pass a context and additional request options.
3282//
3283// See GetMultiRegionAccessPointPolicy for details on how to use this API operation.
3284//
3285// The context must be non-nil and will be used for request cancellation. If
3286// the context is nil a panic will occur. In the future the SDK may create
3287// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3288// for more information on using Contexts.
3289func (c *S3Control) GetMultiRegionAccessPointPolicyWithContext(ctx aws.Context, input *GetMultiRegionAccessPointPolicyInput, opts ...request.Option) (*GetMultiRegionAccessPointPolicyOutput, error) {
3290	req, out := c.GetMultiRegionAccessPointPolicyRequest(input)
3291	req.SetContext(ctx)
3292	req.ApplyOptions(opts...)
3293	return out, req.Send()
3294}
3295
3296const opGetMultiRegionAccessPointPolicyStatus = "GetMultiRegionAccessPointPolicyStatus"
3297
3298// GetMultiRegionAccessPointPolicyStatusRequest generates a "aws/request.Request" representing the
3299// client's request for the GetMultiRegionAccessPointPolicyStatus operation. The "output" return
3300// value will be populated with the request's response once the request completes
3301// successfully.
3302//
3303// Use "Send" method on the returned Request to send the API call to the service.
3304// the "output" return value is not valid until after Send returns without error.
3305//
3306// See GetMultiRegionAccessPointPolicyStatus for more information on using the GetMultiRegionAccessPointPolicyStatus
3307// API call, and error handling.
3308//
3309// This method is useful when you want to inject custom logic or configuration
3310// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3311//
3312//
3313//    // Example sending a request using the GetMultiRegionAccessPointPolicyStatusRequest method.
3314//    req, resp := client.GetMultiRegionAccessPointPolicyStatusRequest(params)
3315//
3316//    err := req.Send()
3317//    if err == nil { // resp is now filled
3318//        fmt.Println(resp)
3319//    }
3320//
3321// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicyStatus
3322func (c *S3Control) GetMultiRegionAccessPointPolicyStatusRequest(input *GetMultiRegionAccessPointPolicyStatusInput) (req *request.Request, output *GetMultiRegionAccessPointPolicyStatusOutput) {
3323	op := &request.Operation{
3324		Name:       opGetMultiRegionAccessPointPolicyStatus,
3325		HTTPMethod: "GET",
3326		HTTPPath:   "/v20180820/mrap/instances/{name}/policystatus",
3327	}
3328
3329	if input == nil {
3330		input = &GetMultiRegionAccessPointPolicyStatusInput{}
3331	}
3332
3333	output = &GetMultiRegionAccessPointPolicyStatusOutput{}
3334	req = c.newRequest(op, input, output)
3335	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3336	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3337	req.Handlers.Build.PushBackNamed(request.NamedHandler{
3338		Name: "contentMd5Handler",
3339		Fn:   checksum.AddBodyContentMD5Handler,
3340	})
3341	return
3342}
3343
3344// GetMultiRegionAccessPointPolicyStatus API operation for AWS S3 Control.
3345//
3346// Indicates whether the specified Multi-Region Access Point has an access control
3347// policy that allows public access.
3348//
3349// This action will always be routed to the US West (Oregon) Region. For more
3350// information about the restrictions around managing Multi-Region Access Points,
3351// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
3352// in the Amazon S3 User Guide.
3353//
3354// The following actions are related to GetMultiRegionAccessPointPolicyStatus:
3355//
3356//    * GetMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html)
3357//
3358//    * PutMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html)
3359//
3360// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3361// with awserr.Error's Code and Message methods to get detailed information about
3362// the error.
3363//
3364// See the AWS API reference guide for AWS S3 Control's
3365// API operation GetMultiRegionAccessPointPolicyStatus for usage and error information.
3366// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicyStatus
3367func (c *S3Control) GetMultiRegionAccessPointPolicyStatus(input *GetMultiRegionAccessPointPolicyStatusInput) (*GetMultiRegionAccessPointPolicyStatusOutput, error) {
3368	req, out := c.GetMultiRegionAccessPointPolicyStatusRequest(input)
3369	return out, req.Send()
3370}
3371
3372// GetMultiRegionAccessPointPolicyStatusWithContext is the same as GetMultiRegionAccessPointPolicyStatus with the addition of
3373// the ability to pass a context and additional request options.
3374//
3375// See GetMultiRegionAccessPointPolicyStatus for details on how to use this API operation.
3376//
3377// The context must be non-nil and will be used for request cancellation. If
3378// the context is nil a panic will occur. In the future the SDK may create
3379// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3380// for more information on using Contexts.
3381func (c *S3Control) GetMultiRegionAccessPointPolicyStatusWithContext(ctx aws.Context, input *GetMultiRegionAccessPointPolicyStatusInput, opts ...request.Option) (*GetMultiRegionAccessPointPolicyStatusOutput, error) {
3382	req, out := c.GetMultiRegionAccessPointPolicyStatusRequest(input)
3383	req.SetContext(ctx)
3384	req.ApplyOptions(opts...)
3385	return out, req.Send()
3386}
3387
3388const opGetPublicAccessBlock = "GetPublicAccessBlock"
3389
3390// GetPublicAccessBlockRequest generates a "aws/request.Request" representing the
3391// client's request for the GetPublicAccessBlock operation. The "output" return
3392// value will be populated with the request's response once the request completes
3393// successfully.
3394//
3395// Use "Send" method on the returned Request to send the API call to the service.
3396// the "output" return value is not valid until after Send returns without error.
3397//
3398// See GetPublicAccessBlock for more information on using the GetPublicAccessBlock
3399// API call, and error handling.
3400//
3401// This method is useful when you want to inject custom logic or configuration
3402// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3403//
3404//
3405//    // Example sending a request using the GetPublicAccessBlockRequest method.
3406//    req, resp := client.GetPublicAccessBlockRequest(params)
3407//
3408//    err := req.Send()
3409//    if err == nil { // resp is now filled
3410//        fmt.Println(resp)
3411//    }
3412//
3413// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock
3414func (c *S3Control) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput) (req *request.Request, output *GetPublicAccessBlockOutput) {
3415	op := &request.Operation{
3416		Name:       opGetPublicAccessBlock,
3417		HTTPMethod: "GET",
3418		HTTPPath:   "/v20180820/configuration/publicAccessBlock",
3419	}
3420
3421	if input == nil {
3422		input = &GetPublicAccessBlockInput{}
3423	}
3424
3425	output = &GetPublicAccessBlockOutput{}
3426	req = c.newRequest(op, input, output)
3427	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3428	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3429	return
3430}
3431
3432// GetPublicAccessBlock API operation for AWS S3 Control.
3433//
3434// Retrieves the PublicAccessBlock configuration for an Amazon Web Services
3435// account. For more information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).
3436//
3437// Related actions include:
3438//
3439//    * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html)
3440//
3441//    * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html)
3442//
3443// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3444// with awserr.Error's Code and Message methods to get detailed information about
3445// the error.
3446//
3447// See the AWS API reference guide for AWS S3 Control's
3448// API operation GetPublicAccessBlock for usage and error information.
3449//
3450// Returned Error Codes:
3451//   * ErrCodeNoSuchPublicAccessBlockConfiguration "NoSuchPublicAccessBlockConfiguration"
3452//   Amazon S3 throws this exception if you make a GetPublicAccessBlock request
3453//   against an account that doesn't have a PublicAccessBlockConfiguration set.
3454//
3455// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock
3456func (c *S3Control) GetPublicAccessBlock(input *GetPublicAccessBlockInput) (*GetPublicAccessBlockOutput, error) {
3457	req, out := c.GetPublicAccessBlockRequest(input)
3458	return out, req.Send()
3459}
3460
3461// GetPublicAccessBlockWithContext is the same as GetPublicAccessBlock with the addition of
3462// the ability to pass a context and additional request options.
3463//
3464// See GetPublicAccessBlock for details on how to use this API operation.
3465//
3466// The context must be non-nil and will be used for request cancellation. If
3467// the context is nil a panic will occur. In the future the SDK may create
3468// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3469// for more information on using Contexts.
3470func (c *S3Control) GetPublicAccessBlockWithContext(ctx aws.Context, input *GetPublicAccessBlockInput, opts ...request.Option) (*GetPublicAccessBlockOutput, error) {
3471	req, out := c.GetPublicAccessBlockRequest(input)
3472	req.SetContext(ctx)
3473	req.ApplyOptions(opts...)
3474	return out, req.Send()
3475}
3476
3477const opGetStorageLensConfiguration = "GetStorageLensConfiguration"
3478
3479// GetStorageLensConfigurationRequest generates a "aws/request.Request" representing the
3480// client's request for the GetStorageLensConfiguration operation. The "output" return
3481// value will be populated with the request's response once the request completes
3482// successfully.
3483//
3484// Use "Send" method on the returned Request to send the API call to the service.
3485// the "output" return value is not valid until after Send returns without error.
3486//
3487// See GetStorageLensConfiguration for more information on using the GetStorageLensConfiguration
3488// API call, and error handling.
3489//
3490// This method is useful when you want to inject custom logic or configuration
3491// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3492//
3493//
3494//    // Example sending a request using the GetStorageLensConfigurationRequest method.
3495//    req, resp := client.GetStorageLensConfigurationRequest(params)
3496//
3497//    err := req.Send()
3498//    if err == nil { // resp is now filled
3499//        fmt.Println(resp)
3500//    }
3501//
3502// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfiguration
3503func (c *S3Control) GetStorageLensConfigurationRequest(input *GetStorageLensConfigurationInput) (req *request.Request, output *GetStorageLensConfigurationOutput) {
3504	op := &request.Operation{
3505		Name:       opGetStorageLensConfiguration,
3506		HTTPMethod: "GET",
3507		HTTPPath:   "/v20180820/storagelens/{storagelensid}",
3508	}
3509
3510	if input == nil {
3511		input = &GetStorageLensConfigurationInput{}
3512	}
3513
3514	output = &GetStorageLensConfigurationOutput{}
3515	req = c.newRequest(op, input, output)
3516	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3517	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3518	return
3519}
3520
3521// GetStorageLensConfiguration API operation for AWS S3 Control.
3522//
3523// Gets the Amazon S3 Storage Lens configuration. For more information, see
3524// Assessing your storage activity and usage with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
3525// in the Amazon S3 User Guide.
3526//
3527// To use this action, you must have permission to perform the s3:GetStorageLensConfiguration
3528// action. For more information, see Setting permissions to use Amazon S3 Storage
3529// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
3530// in the Amazon S3 User Guide.
3531//
3532// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3533// with awserr.Error's Code and Message methods to get detailed information about
3534// the error.
3535//
3536// See the AWS API reference guide for AWS S3 Control's
3537// API operation GetStorageLensConfiguration for usage and error information.
3538// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfiguration
3539func (c *S3Control) GetStorageLensConfiguration(input *GetStorageLensConfigurationInput) (*GetStorageLensConfigurationOutput, error) {
3540	req, out := c.GetStorageLensConfigurationRequest(input)
3541	return out, req.Send()
3542}
3543
3544// GetStorageLensConfigurationWithContext is the same as GetStorageLensConfiguration with the addition of
3545// the ability to pass a context and additional request options.
3546//
3547// See GetStorageLensConfiguration for details on how to use this API operation.
3548//
3549// The context must be non-nil and will be used for request cancellation. If
3550// the context is nil a panic will occur. In the future the SDK may create
3551// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3552// for more information on using Contexts.
3553func (c *S3Control) GetStorageLensConfigurationWithContext(ctx aws.Context, input *GetStorageLensConfigurationInput, opts ...request.Option) (*GetStorageLensConfigurationOutput, error) {
3554	req, out := c.GetStorageLensConfigurationRequest(input)
3555	req.SetContext(ctx)
3556	req.ApplyOptions(opts...)
3557	return out, req.Send()
3558}
3559
3560const opGetStorageLensConfigurationTagging = "GetStorageLensConfigurationTagging"
3561
3562// GetStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the
3563// client's request for the GetStorageLensConfigurationTagging operation. The "output" return
3564// value will be populated with the request's response once the request completes
3565// successfully.
3566//
3567// Use "Send" method on the returned Request to send the API call to the service.
3568// the "output" return value is not valid until after Send returns without error.
3569//
3570// See GetStorageLensConfigurationTagging for more information on using the GetStorageLensConfigurationTagging
3571// API call, and error handling.
3572//
3573// This method is useful when you want to inject custom logic or configuration
3574// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3575//
3576//
3577//    // Example sending a request using the GetStorageLensConfigurationTaggingRequest method.
3578//    req, resp := client.GetStorageLensConfigurationTaggingRequest(params)
3579//
3580//    err := req.Send()
3581//    if err == nil { // resp is now filled
3582//        fmt.Println(resp)
3583//    }
3584//
3585// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTagging
3586func (c *S3Control) GetStorageLensConfigurationTaggingRequest(input *GetStorageLensConfigurationTaggingInput) (req *request.Request, output *GetStorageLensConfigurationTaggingOutput) {
3587	op := &request.Operation{
3588		Name:       opGetStorageLensConfigurationTagging,
3589		HTTPMethod: "GET",
3590		HTTPPath:   "/v20180820/storagelens/{storagelensid}/tagging",
3591	}
3592
3593	if input == nil {
3594		input = &GetStorageLensConfigurationTaggingInput{}
3595	}
3596
3597	output = &GetStorageLensConfigurationTaggingOutput{}
3598	req = c.newRequest(op, input, output)
3599	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3600	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3601	return
3602}
3603
3604// GetStorageLensConfigurationTagging API operation for AWS S3 Control.
3605//
3606// Gets the tags of Amazon S3 Storage Lens configuration. For more information
3607// about S3 Storage Lens, see Assessing your storage activity and usage with
3608// Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
3609// in the Amazon S3 User Guide.
3610//
3611// To use this action, you must have permission to perform the s3:GetStorageLensConfigurationTagging
3612// action. For more information, see Setting permissions to use Amazon S3 Storage
3613// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
3614// in the Amazon S3 User Guide.
3615//
3616// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3617// with awserr.Error's Code and Message methods to get detailed information about
3618// the error.
3619//
3620// See the AWS API reference guide for AWS S3 Control's
3621// API operation GetStorageLensConfigurationTagging for usage and error information.
3622// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTagging
3623func (c *S3Control) GetStorageLensConfigurationTagging(input *GetStorageLensConfigurationTaggingInput) (*GetStorageLensConfigurationTaggingOutput, error) {
3624	req, out := c.GetStorageLensConfigurationTaggingRequest(input)
3625	return out, req.Send()
3626}
3627
3628// GetStorageLensConfigurationTaggingWithContext is the same as GetStorageLensConfigurationTagging with the addition of
3629// the ability to pass a context and additional request options.
3630//
3631// See GetStorageLensConfigurationTagging for details on how to use this API operation.
3632//
3633// The context must be non-nil and will be used for request cancellation. If
3634// the context is nil a panic will occur. In the future the SDK may create
3635// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3636// for more information on using Contexts.
3637func (c *S3Control) GetStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *GetStorageLensConfigurationTaggingInput, opts ...request.Option) (*GetStorageLensConfigurationTaggingOutput, error) {
3638	req, out := c.GetStorageLensConfigurationTaggingRequest(input)
3639	req.SetContext(ctx)
3640	req.ApplyOptions(opts...)
3641	return out, req.Send()
3642}
3643
3644const opListAccessPoints = "ListAccessPoints"
3645
3646// ListAccessPointsRequest generates a "aws/request.Request" representing the
3647// client's request for the ListAccessPoints operation. The "output" return
3648// value will be populated with the request's response once the request completes
3649// successfully.
3650//
3651// Use "Send" method on the returned Request to send the API call to the service.
3652// the "output" return value is not valid until after Send returns without error.
3653//
3654// See ListAccessPoints for more information on using the ListAccessPoints
3655// API call, and error handling.
3656//
3657// This method is useful when you want to inject custom logic or configuration
3658// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3659//
3660//
3661//    // Example sending a request using the ListAccessPointsRequest method.
3662//    req, resp := client.ListAccessPointsRequest(params)
3663//
3664//    err := req.Send()
3665//    if err == nil { // resp is now filled
3666//        fmt.Println(resp)
3667//    }
3668//
3669// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints
3670func (c *S3Control) ListAccessPointsRequest(input *ListAccessPointsInput) (req *request.Request, output *ListAccessPointsOutput) {
3671	op := &request.Operation{
3672		Name:       opListAccessPoints,
3673		HTTPMethod: "GET",
3674		HTTPPath:   "/v20180820/accesspoint",
3675		Paginator: &request.Paginator{
3676			InputTokens:     []string{"NextToken"},
3677			OutputTokens:    []string{"NextToken"},
3678			LimitToken:      "MaxResults",
3679			TruncationToken: "",
3680		},
3681	}
3682
3683	if input == nil {
3684		input = &ListAccessPointsInput{}
3685	}
3686
3687	output = &ListAccessPointsOutput{}
3688	req = c.newRequest(op, input, output)
3689	// update account id or check if provided input for account id member matches
3690	// the account id present in ARN
3691	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
3692	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3693	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3694	return
3695}
3696
3697// ListAccessPoints API operation for AWS S3 Control.
3698//
3699// Returns a list of the access points currently associated with the specified
3700// bucket. You can retrieve up to 1000 access points per call. If the specified
3701// bucket has more than 1,000 access points (or the number specified in maxResults,
3702// whichever is less), the response will include a continuation token that you
3703// can use to list the additional access points.
3704//
3705// All Amazon S3 on Outposts REST API requests for this action require an additional
3706// parameter of x-amz-outpost-id to be passed with the request and an S3 on
3707// Outposts endpoint hostname prefix instead of s3-control. For an example of
3708// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
3709// endpoint hostname prefix and the x-amz-outpost-id derived using the access
3710// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples)
3711// section.
3712//
3713// The following actions are related to ListAccessPoints:
3714//
3715//    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
3716//
3717//    * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)
3718//
3719//    * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)
3720//
3721// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3722// with awserr.Error's Code and Message methods to get detailed information about
3723// the error.
3724//
3725// See the AWS API reference guide for AWS S3 Control's
3726// API operation ListAccessPoints for usage and error information.
3727// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints
3728func (c *S3Control) ListAccessPoints(input *ListAccessPointsInput) (*ListAccessPointsOutput, error) {
3729	req, out := c.ListAccessPointsRequest(input)
3730	return out, req.Send()
3731}
3732
3733// ListAccessPointsWithContext is the same as ListAccessPoints with the addition of
3734// the ability to pass a context and additional request options.
3735//
3736// See ListAccessPoints for details on how to use this API operation.
3737//
3738// The context must be non-nil and will be used for request cancellation. If
3739// the context is nil a panic will occur. In the future the SDK may create
3740// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3741// for more information on using Contexts.
3742func (c *S3Control) ListAccessPointsWithContext(ctx aws.Context, input *ListAccessPointsInput, opts ...request.Option) (*ListAccessPointsOutput, error) {
3743	req, out := c.ListAccessPointsRequest(input)
3744	req.SetContext(ctx)
3745	req.ApplyOptions(opts...)
3746	return out, req.Send()
3747}
3748
3749// ListAccessPointsPages iterates over the pages of a ListAccessPoints operation,
3750// calling the "fn" function with the response data for each page. To stop
3751// iterating, return false from the fn function.
3752//
3753// See ListAccessPoints method for more information on how to use this operation.
3754//
3755// Note: This operation can generate multiple requests to a service.
3756//
3757//    // Example iterating over at most 3 pages of a ListAccessPoints operation.
3758//    pageNum := 0
3759//    err := client.ListAccessPointsPages(params,
3760//        func(page *s3control.ListAccessPointsOutput, lastPage bool) bool {
3761//            pageNum++
3762//            fmt.Println(page)
3763//            return pageNum <= 3
3764//        })
3765//
3766func (c *S3Control) ListAccessPointsPages(input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool) error {
3767	return c.ListAccessPointsPagesWithContext(aws.BackgroundContext(), input, fn)
3768}
3769
3770// ListAccessPointsPagesWithContext same as ListAccessPointsPages except
3771// it takes a Context and allows setting request options on the pages.
3772//
3773// The context must be non-nil and will be used for request cancellation. If
3774// the context is nil a panic will occur. In the future the SDK may create
3775// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3776// for more information on using Contexts.
3777func (c *S3Control) ListAccessPointsPagesWithContext(ctx aws.Context, input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool, opts ...request.Option) error {
3778	p := request.Pagination{
3779		NewRequest: func() (*request.Request, error) {
3780			var inCpy *ListAccessPointsInput
3781			if input != nil {
3782				tmp := *input
3783				inCpy = &tmp
3784			}
3785			req, _ := c.ListAccessPointsRequest(inCpy)
3786			req.SetContext(ctx)
3787			req.ApplyOptions(opts...)
3788			return req, nil
3789		},
3790	}
3791
3792	for p.Next() {
3793		if !fn(p.Page().(*ListAccessPointsOutput), !p.HasNextPage()) {
3794			break
3795		}
3796	}
3797
3798	return p.Err()
3799}
3800
3801const opListAccessPointsForObjectLambda = "ListAccessPointsForObjectLambda"
3802
3803// ListAccessPointsForObjectLambdaRequest generates a "aws/request.Request" representing the
3804// client's request for the ListAccessPointsForObjectLambda operation. The "output" return
3805// value will be populated with the request's response once the request completes
3806// successfully.
3807//
3808// Use "Send" method on the returned Request to send the API call to the service.
3809// the "output" return value is not valid until after Send returns without error.
3810//
3811// See ListAccessPointsForObjectLambda for more information on using the ListAccessPointsForObjectLambda
3812// API call, and error handling.
3813//
3814// This method is useful when you want to inject custom logic or configuration
3815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3816//
3817//
3818//    // Example sending a request using the ListAccessPointsForObjectLambdaRequest method.
3819//    req, resp := client.ListAccessPointsForObjectLambdaRequest(params)
3820//
3821//    err := req.Send()
3822//    if err == nil { // resp is now filled
3823//        fmt.Println(resp)
3824//    }
3825//
3826// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsForObjectLambda
3827func (c *S3Control) ListAccessPointsForObjectLambdaRequest(input *ListAccessPointsForObjectLambdaInput) (req *request.Request, output *ListAccessPointsForObjectLambdaOutput) {
3828	op := &request.Operation{
3829		Name:       opListAccessPointsForObjectLambda,
3830		HTTPMethod: "GET",
3831		HTTPPath:   "/v20180820/accesspointforobjectlambda",
3832		Paginator: &request.Paginator{
3833			InputTokens:     []string{"NextToken"},
3834			OutputTokens:    []string{"NextToken"},
3835			LimitToken:      "MaxResults",
3836			TruncationToken: "",
3837		},
3838	}
3839
3840	if input == nil {
3841		input = &ListAccessPointsForObjectLambdaInput{}
3842	}
3843
3844	output = &ListAccessPointsForObjectLambdaOutput{}
3845	req = c.newRequest(op, input, output)
3846	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3847	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3848	return
3849}
3850
3851// ListAccessPointsForObjectLambda API operation for AWS S3 Control.
3852//
3853// Returns a list of the access points associated with the Object Lambda Access
3854// Point. You can retrieve up to 1000 access points per call. If there are more
3855// than 1,000 access points (or the number specified in maxResults, whichever
3856// is less), the response will include a continuation token that you can use
3857// to list the additional access points.
3858//
3859// The following actions are related to ListAccessPointsForObjectLambda:
3860//
3861//    * CreateAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html)
3862//
3863//    * DeleteAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html)
3864//
3865//    * GetAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointForObjectLambda.html)
3866//
3867// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3868// with awserr.Error's Code and Message methods to get detailed information about
3869// the error.
3870//
3871// See the AWS API reference guide for AWS S3 Control's
3872// API operation ListAccessPointsForObjectLambda for usage and error information.
3873// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsForObjectLambda
3874func (c *S3Control) ListAccessPointsForObjectLambda(input *ListAccessPointsForObjectLambdaInput) (*ListAccessPointsForObjectLambdaOutput, error) {
3875	req, out := c.ListAccessPointsForObjectLambdaRequest(input)
3876	return out, req.Send()
3877}
3878
3879// ListAccessPointsForObjectLambdaWithContext is the same as ListAccessPointsForObjectLambda with the addition of
3880// the ability to pass a context and additional request options.
3881//
3882// See ListAccessPointsForObjectLambda for details on how to use this API operation.
3883//
3884// The context must be non-nil and will be used for request cancellation. If
3885// the context is nil a panic will occur. In the future the SDK may create
3886// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3887// for more information on using Contexts.
3888func (c *S3Control) ListAccessPointsForObjectLambdaWithContext(ctx aws.Context, input *ListAccessPointsForObjectLambdaInput, opts ...request.Option) (*ListAccessPointsForObjectLambdaOutput, error) {
3889	req, out := c.ListAccessPointsForObjectLambdaRequest(input)
3890	req.SetContext(ctx)
3891	req.ApplyOptions(opts...)
3892	return out, req.Send()
3893}
3894
3895// ListAccessPointsForObjectLambdaPages iterates over the pages of a ListAccessPointsForObjectLambda operation,
3896// calling the "fn" function with the response data for each page. To stop
3897// iterating, return false from the fn function.
3898//
3899// See ListAccessPointsForObjectLambda method for more information on how to use this operation.
3900//
3901// Note: This operation can generate multiple requests to a service.
3902//
3903//    // Example iterating over at most 3 pages of a ListAccessPointsForObjectLambda operation.
3904//    pageNum := 0
3905//    err := client.ListAccessPointsForObjectLambdaPages(params,
3906//        func(page *s3control.ListAccessPointsForObjectLambdaOutput, lastPage bool) bool {
3907//            pageNum++
3908//            fmt.Println(page)
3909//            return pageNum <= 3
3910//        })
3911//
3912func (c *S3Control) ListAccessPointsForObjectLambdaPages(input *ListAccessPointsForObjectLambdaInput, fn func(*ListAccessPointsForObjectLambdaOutput, bool) bool) error {
3913	return c.ListAccessPointsForObjectLambdaPagesWithContext(aws.BackgroundContext(), input, fn)
3914}
3915
3916// ListAccessPointsForObjectLambdaPagesWithContext same as ListAccessPointsForObjectLambdaPages except
3917// it takes a Context and allows setting request options on the pages.
3918//
3919// The context must be non-nil and will be used for request cancellation. If
3920// the context is nil a panic will occur. In the future the SDK may create
3921// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3922// for more information on using Contexts.
3923func (c *S3Control) ListAccessPointsForObjectLambdaPagesWithContext(ctx aws.Context, input *ListAccessPointsForObjectLambdaInput, fn func(*ListAccessPointsForObjectLambdaOutput, bool) bool, opts ...request.Option) error {
3924	p := request.Pagination{
3925		NewRequest: func() (*request.Request, error) {
3926			var inCpy *ListAccessPointsForObjectLambdaInput
3927			if input != nil {
3928				tmp := *input
3929				inCpy = &tmp
3930			}
3931			req, _ := c.ListAccessPointsForObjectLambdaRequest(inCpy)
3932			req.SetContext(ctx)
3933			req.ApplyOptions(opts...)
3934			return req, nil
3935		},
3936	}
3937
3938	for p.Next() {
3939		if !fn(p.Page().(*ListAccessPointsForObjectLambdaOutput), !p.HasNextPage()) {
3940			break
3941		}
3942	}
3943
3944	return p.Err()
3945}
3946
3947const opListJobs = "ListJobs"
3948
3949// ListJobsRequest generates a "aws/request.Request" representing the
3950// client's request for the ListJobs operation. The "output" return
3951// value will be populated with the request's response once the request completes
3952// successfully.
3953//
3954// Use "Send" method on the returned Request to send the API call to the service.
3955// the "output" return value is not valid until after Send returns without error.
3956//
3957// See ListJobs for more information on using the ListJobs
3958// API call, and error handling.
3959//
3960// This method is useful when you want to inject custom logic or configuration
3961// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3962//
3963//
3964//    // Example sending a request using the ListJobsRequest method.
3965//    req, resp := client.ListJobsRequest(params)
3966//
3967//    err := req.Send()
3968//    if err == nil { // resp is now filled
3969//        fmt.Println(resp)
3970//    }
3971//
3972// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs
3973func (c *S3Control) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
3974	op := &request.Operation{
3975		Name:       opListJobs,
3976		HTTPMethod: "GET",
3977		HTTPPath:   "/v20180820/jobs",
3978		Paginator: &request.Paginator{
3979			InputTokens:     []string{"NextToken"},
3980			OutputTokens:    []string{"NextToken"},
3981			LimitToken:      "MaxResults",
3982			TruncationToken: "",
3983		},
3984	}
3985
3986	if input == nil {
3987		input = &ListJobsInput{}
3988	}
3989
3990	output = &ListJobsOutput{}
3991	req = c.newRequest(op, input, output)
3992	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3993	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3994	return
3995}
3996
3997// ListJobs API operation for AWS S3 Control.
3998//
3999// Lists current S3 Batch Operations jobs and jobs that have ended within the
4000// last 30 days for the Amazon Web Services account making the request. For
4001// more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
4002// in the Amazon S3 User Guide.
4003//
4004// Related actions include:
4005//
4006//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
4007//
4008//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
4009//
4010//    * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html)
4011//
4012//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
4013//
4014// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4015// with awserr.Error's Code and Message methods to get detailed information about
4016// the error.
4017//
4018// See the AWS API reference guide for AWS S3 Control's
4019// API operation ListJobs for usage and error information.
4020//
4021// Returned Error Codes:
4022//   * ErrCodeInvalidRequestException "InvalidRequestException"
4023//
4024//   * ErrCodeInternalServiceException "InternalServiceException"
4025//
4026//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
4027//
4028// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs
4029func (c *S3Control) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
4030	req, out := c.ListJobsRequest(input)
4031	return out, req.Send()
4032}
4033
4034// ListJobsWithContext is the same as ListJobs with the addition of
4035// the ability to pass a context and additional request options.
4036//
4037// See ListJobs for details on how to use this API operation.
4038//
4039// The context must be non-nil and will be used for request cancellation. If
4040// the context is nil a panic will occur. In the future the SDK may create
4041// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4042// for more information on using Contexts.
4043func (c *S3Control) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
4044	req, out := c.ListJobsRequest(input)
4045	req.SetContext(ctx)
4046	req.ApplyOptions(opts...)
4047	return out, req.Send()
4048}
4049
4050// ListJobsPages iterates over the pages of a ListJobs operation,
4051// calling the "fn" function with the response data for each page. To stop
4052// iterating, return false from the fn function.
4053//
4054// See ListJobs method for more information on how to use this operation.
4055//
4056// Note: This operation can generate multiple requests to a service.
4057//
4058//    // Example iterating over at most 3 pages of a ListJobs operation.
4059//    pageNum := 0
4060//    err := client.ListJobsPages(params,
4061//        func(page *s3control.ListJobsOutput, lastPage bool) bool {
4062//            pageNum++
4063//            fmt.Println(page)
4064//            return pageNum <= 3
4065//        })
4066//
4067func (c *S3Control) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
4068	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
4069}
4070
4071// ListJobsPagesWithContext same as ListJobsPages except
4072// it takes a Context and allows setting request options on the pages.
4073//
4074// The context must be non-nil and will be used for request cancellation. If
4075// the context is nil a panic will occur. In the future the SDK may create
4076// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4077// for more information on using Contexts.
4078func (c *S3Control) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
4079	p := request.Pagination{
4080		NewRequest: func() (*request.Request, error) {
4081			var inCpy *ListJobsInput
4082			if input != nil {
4083				tmp := *input
4084				inCpy = &tmp
4085			}
4086			req, _ := c.ListJobsRequest(inCpy)
4087			req.SetContext(ctx)
4088			req.ApplyOptions(opts...)
4089			return req, nil
4090		},
4091	}
4092
4093	for p.Next() {
4094		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
4095			break
4096		}
4097	}
4098
4099	return p.Err()
4100}
4101
4102const opListMultiRegionAccessPoints = "ListMultiRegionAccessPoints"
4103
4104// ListMultiRegionAccessPointsRequest generates a "aws/request.Request" representing the
4105// client's request for the ListMultiRegionAccessPoints operation. The "output" return
4106// value will be populated with the request's response once the request completes
4107// successfully.
4108//
4109// Use "Send" method on the returned Request to send the API call to the service.
4110// the "output" return value is not valid until after Send returns without error.
4111//
4112// See ListMultiRegionAccessPoints for more information on using the ListMultiRegionAccessPoints
4113// API call, and error handling.
4114//
4115// This method is useful when you want to inject custom logic or configuration
4116// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4117//
4118//
4119//    // Example sending a request using the ListMultiRegionAccessPointsRequest method.
4120//    req, resp := client.ListMultiRegionAccessPointsRequest(params)
4121//
4122//    err := req.Send()
4123//    if err == nil { // resp is now filled
4124//        fmt.Println(resp)
4125//    }
4126//
4127// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListMultiRegionAccessPoints
4128func (c *S3Control) ListMultiRegionAccessPointsRequest(input *ListMultiRegionAccessPointsInput) (req *request.Request, output *ListMultiRegionAccessPointsOutput) {
4129	op := &request.Operation{
4130		Name:       opListMultiRegionAccessPoints,
4131		HTTPMethod: "GET",
4132		HTTPPath:   "/v20180820/mrap/instances",
4133		Paginator: &request.Paginator{
4134			InputTokens:     []string{"NextToken"},
4135			OutputTokens:    []string{"NextToken"},
4136			LimitToken:      "MaxResults",
4137			TruncationToken: "",
4138		},
4139	}
4140
4141	if input == nil {
4142		input = &ListMultiRegionAccessPointsInput{}
4143	}
4144
4145	output = &ListMultiRegionAccessPointsOutput{}
4146	req = c.newRequest(op, input, output)
4147	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4148	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4149	req.Handlers.Build.PushBackNamed(request.NamedHandler{
4150		Name: "contentMd5Handler",
4151		Fn:   checksum.AddBodyContentMD5Handler,
4152	})
4153	return
4154}
4155
4156// ListMultiRegionAccessPoints API operation for AWS S3 Control.
4157//
4158// Returns a list of the Multi-Region Access Points currently associated with
4159// the specified Amazon Web Services account. Each call can return up to 100
4160// Multi-Region Access Points, the maximum number of Multi-Region Access Points
4161// that can be associated with a single account.
4162//
4163// This action will always be routed to the US West (Oregon) Region. For more
4164// information about the restrictions around managing Multi-Region Access Points,
4165// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
4166// in the Amazon S3 User Guide.
4167//
4168// The following actions are related to ListMultiRegionAccessPoint:
4169//
4170//    * CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)
4171//
4172//    * DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)
4173//
4174//    * DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
4175//
4176//    * GetMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html)
4177//
4178// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4179// with awserr.Error's Code and Message methods to get detailed information about
4180// the error.
4181//
4182// See the AWS API reference guide for AWS S3 Control's
4183// API operation ListMultiRegionAccessPoints for usage and error information.
4184// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListMultiRegionAccessPoints
4185func (c *S3Control) ListMultiRegionAccessPoints(input *ListMultiRegionAccessPointsInput) (*ListMultiRegionAccessPointsOutput, error) {
4186	req, out := c.ListMultiRegionAccessPointsRequest(input)
4187	return out, req.Send()
4188}
4189
4190// ListMultiRegionAccessPointsWithContext is the same as ListMultiRegionAccessPoints with the addition of
4191// the ability to pass a context and additional request options.
4192//
4193// See ListMultiRegionAccessPoints for details on how to use this API operation.
4194//
4195// The context must be non-nil and will be used for request cancellation. If
4196// the context is nil a panic will occur. In the future the SDK may create
4197// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4198// for more information on using Contexts.
4199func (c *S3Control) ListMultiRegionAccessPointsWithContext(ctx aws.Context, input *ListMultiRegionAccessPointsInput, opts ...request.Option) (*ListMultiRegionAccessPointsOutput, error) {
4200	req, out := c.ListMultiRegionAccessPointsRequest(input)
4201	req.SetContext(ctx)
4202	req.ApplyOptions(opts...)
4203	return out, req.Send()
4204}
4205
4206// ListMultiRegionAccessPointsPages iterates over the pages of a ListMultiRegionAccessPoints operation,
4207// calling the "fn" function with the response data for each page. To stop
4208// iterating, return false from the fn function.
4209//
4210// See ListMultiRegionAccessPoints method for more information on how to use this operation.
4211//
4212// Note: This operation can generate multiple requests to a service.
4213//
4214//    // Example iterating over at most 3 pages of a ListMultiRegionAccessPoints operation.
4215//    pageNum := 0
4216//    err := client.ListMultiRegionAccessPointsPages(params,
4217//        func(page *s3control.ListMultiRegionAccessPointsOutput, lastPage bool) bool {
4218//            pageNum++
4219//            fmt.Println(page)
4220//            return pageNum <= 3
4221//        })
4222//
4223func (c *S3Control) ListMultiRegionAccessPointsPages(input *ListMultiRegionAccessPointsInput, fn func(*ListMultiRegionAccessPointsOutput, bool) bool) error {
4224	return c.ListMultiRegionAccessPointsPagesWithContext(aws.BackgroundContext(), input, fn)
4225}
4226
4227// ListMultiRegionAccessPointsPagesWithContext same as ListMultiRegionAccessPointsPages except
4228// it takes a Context and allows setting request options on the pages.
4229//
4230// The context must be non-nil and will be used for request cancellation. If
4231// the context is nil a panic will occur. In the future the SDK may create
4232// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4233// for more information on using Contexts.
4234func (c *S3Control) ListMultiRegionAccessPointsPagesWithContext(ctx aws.Context, input *ListMultiRegionAccessPointsInput, fn func(*ListMultiRegionAccessPointsOutput, bool) bool, opts ...request.Option) error {
4235	p := request.Pagination{
4236		NewRequest: func() (*request.Request, error) {
4237			var inCpy *ListMultiRegionAccessPointsInput
4238			if input != nil {
4239				tmp := *input
4240				inCpy = &tmp
4241			}
4242			req, _ := c.ListMultiRegionAccessPointsRequest(inCpy)
4243			req.SetContext(ctx)
4244			req.ApplyOptions(opts...)
4245			return req, nil
4246		},
4247	}
4248
4249	for p.Next() {
4250		if !fn(p.Page().(*ListMultiRegionAccessPointsOutput), !p.HasNextPage()) {
4251			break
4252		}
4253	}
4254
4255	return p.Err()
4256}
4257
4258const opListRegionalBuckets = "ListRegionalBuckets"
4259
4260// ListRegionalBucketsRequest generates a "aws/request.Request" representing the
4261// client's request for the ListRegionalBuckets operation. The "output" return
4262// value will be populated with the request's response once the request completes
4263// successfully.
4264//
4265// Use "Send" method on the returned Request to send the API call to the service.
4266// the "output" return value is not valid until after Send returns without error.
4267//
4268// See ListRegionalBuckets for more information on using the ListRegionalBuckets
4269// API call, and error handling.
4270//
4271// This method is useful when you want to inject custom logic or configuration
4272// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4273//
4274//
4275//    // Example sending a request using the ListRegionalBucketsRequest method.
4276//    req, resp := client.ListRegionalBucketsRequest(params)
4277//
4278//    err := req.Send()
4279//    if err == nil { // resp is now filled
4280//        fmt.Println(resp)
4281//    }
4282//
4283// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets
4284func (c *S3Control) ListRegionalBucketsRequest(input *ListRegionalBucketsInput) (req *request.Request, output *ListRegionalBucketsOutput) {
4285	op := &request.Operation{
4286		Name:       opListRegionalBuckets,
4287		HTTPMethod: "GET",
4288		HTTPPath:   "/v20180820/bucket",
4289		Paginator: &request.Paginator{
4290			InputTokens:     []string{"NextToken"},
4291			OutputTokens:    []string{"NextToken"},
4292			LimitToken:      "MaxResults",
4293			TruncationToken: "",
4294		},
4295	}
4296
4297	if input == nil {
4298		input = &ListRegionalBucketsInput{}
4299	}
4300
4301	output = &ListRegionalBucketsOutput{}
4302	req = c.newRequest(op, input, output)
4303	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4304	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4305	return
4306}
4307
4308// ListRegionalBuckets API operation for AWS S3 Control.
4309//
4310// Returns a list of all Outposts buckets in an Outpost that are owned by the
4311// authenticated sender of the request. For more information, see Using Amazon
4312// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
4313// in the Amazon S3 User Guide.
4314//
4315// For an example of the request syntax for Amazon S3 on Outposts that uses
4316// the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your
4317// request, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListRegionalBuckets.html#API_control_ListRegionalBuckets_Examples)
4318// section.
4319//
4320// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4321// with awserr.Error's Code and Message methods to get detailed information about
4322// the error.
4323//
4324// See the AWS API reference guide for AWS S3 Control's
4325// API operation ListRegionalBuckets for usage and error information.
4326// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets
4327func (c *S3Control) ListRegionalBuckets(input *ListRegionalBucketsInput) (*ListRegionalBucketsOutput, error) {
4328	req, out := c.ListRegionalBucketsRequest(input)
4329	return out, req.Send()
4330}
4331
4332// ListRegionalBucketsWithContext is the same as ListRegionalBuckets with the addition of
4333// the ability to pass a context and additional request options.
4334//
4335// See ListRegionalBuckets for details on how to use this API operation.
4336//
4337// The context must be non-nil and will be used for request cancellation. If
4338// the context is nil a panic will occur. In the future the SDK may create
4339// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4340// for more information on using Contexts.
4341func (c *S3Control) ListRegionalBucketsWithContext(ctx aws.Context, input *ListRegionalBucketsInput, opts ...request.Option) (*ListRegionalBucketsOutput, error) {
4342	req, out := c.ListRegionalBucketsRequest(input)
4343	req.SetContext(ctx)
4344	req.ApplyOptions(opts...)
4345	return out, req.Send()
4346}
4347
4348// ListRegionalBucketsPages iterates over the pages of a ListRegionalBuckets operation,
4349// calling the "fn" function with the response data for each page. To stop
4350// iterating, return false from the fn function.
4351//
4352// See ListRegionalBuckets method for more information on how to use this operation.
4353//
4354// Note: This operation can generate multiple requests to a service.
4355//
4356//    // Example iterating over at most 3 pages of a ListRegionalBuckets operation.
4357//    pageNum := 0
4358//    err := client.ListRegionalBucketsPages(params,
4359//        func(page *s3control.ListRegionalBucketsOutput, lastPage bool) bool {
4360//            pageNum++
4361//            fmt.Println(page)
4362//            return pageNum <= 3
4363//        })
4364//
4365func (c *S3Control) ListRegionalBucketsPages(input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool) error {
4366	return c.ListRegionalBucketsPagesWithContext(aws.BackgroundContext(), input, fn)
4367}
4368
4369// ListRegionalBucketsPagesWithContext same as ListRegionalBucketsPages except
4370// it takes a Context and allows setting request options on the pages.
4371//
4372// The context must be non-nil and will be used for request cancellation. If
4373// the context is nil a panic will occur. In the future the SDK may create
4374// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4375// for more information on using Contexts.
4376func (c *S3Control) ListRegionalBucketsPagesWithContext(ctx aws.Context, input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool, opts ...request.Option) error {
4377	p := request.Pagination{
4378		NewRequest: func() (*request.Request, error) {
4379			var inCpy *ListRegionalBucketsInput
4380			if input != nil {
4381				tmp := *input
4382				inCpy = &tmp
4383			}
4384			req, _ := c.ListRegionalBucketsRequest(inCpy)
4385			req.SetContext(ctx)
4386			req.ApplyOptions(opts...)
4387			return req, nil
4388		},
4389	}
4390
4391	for p.Next() {
4392		if !fn(p.Page().(*ListRegionalBucketsOutput), !p.HasNextPage()) {
4393			break
4394		}
4395	}
4396
4397	return p.Err()
4398}
4399
4400const opListStorageLensConfigurations = "ListStorageLensConfigurations"
4401
4402// ListStorageLensConfigurationsRequest generates a "aws/request.Request" representing the
4403// client's request for the ListStorageLensConfigurations operation. The "output" return
4404// value will be populated with the request's response once the request completes
4405// successfully.
4406//
4407// Use "Send" method on the returned Request to send the API call to the service.
4408// the "output" return value is not valid until after Send returns without error.
4409//
4410// See ListStorageLensConfigurations for more information on using the ListStorageLensConfigurations
4411// API call, and error handling.
4412//
4413// This method is useful when you want to inject custom logic or configuration
4414// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4415//
4416//
4417//    // Example sending a request using the ListStorageLensConfigurationsRequest method.
4418//    req, resp := client.ListStorageLensConfigurationsRequest(params)
4419//
4420//    err := req.Send()
4421//    if err == nil { // resp is now filled
4422//        fmt.Println(resp)
4423//    }
4424//
4425// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurations
4426func (c *S3Control) ListStorageLensConfigurationsRequest(input *ListStorageLensConfigurationsInput) (req *request.Request, output *ListStorageLensConfigurationsOutput) {
4427	op := &request.Operation{
4428		Name:       opListStorageLensConfigurations,
4429		HTTPMethod: "GET",
4430		HTTPPath:   "/v20180820/storagelens",
4431		Paginator: &request.Paginator{
4432			InputTokens:     []string{"NextToken"},
4433			OutputTokens:    []string{"NextToken"},
4434			LimitToken:      "",
4435			TruncationToken: "",
4436		},
4437	}
4438
4439	if input == nil {
4440		input = &ListStorageLensConfigurationsInput{}
4441	}
4442
4443	output = &ListStorageLensConfigurationsOutput{}
4444	req = c.newRequest(op, input, output)
4445	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4446	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4447	return
4448}
4449
4450// ListStorageLensConfigurations API operation for AWS S3 Control.
4451//
4452// Gets a list of Amazon S3 Storage Lens configurations. For more information
4453// about S3 Storage Lens, see Assessing your storage activity and usage with
4454// Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
4455// in the Amazon S3 User Guide.
4456//
4457// To use this action, you must have permission to perform the s3:ListStorageLensConfigurations
4458// action. For more information, see Setting permissions to use Amazon S3 Storage
4459// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
4460// in the Amazon S3 User Guide.
4461//
4462// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4463// with awserr.Error's Code and Message methods to get detailed information about
4464// the error.
4465//
4466// See the AWS API reference guide for AWS S3 Control's
4467// API operation ListStorageLensConfigurations for usage and error information.
4468// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurations
4469func (c *S3Control) ListStorageLensConfigurations(input *ListStorageLensConfigurationsInput) (*ListStorageLensConfigurationsOutput, error) {
4470	req, out := c.ListStorageLensConfigurationsRequest(input)
4471	return out, req.Send()
4472}
4473
4474// ListStorageLensConfigurationsWithContext is the same as ListStorageLensConfigurations with the addition of
4475// the ability to pass a context and additional request options.
4476//
4477// See ListStorageLensConfigurations for details on how to use this API operation.
4478//
4479// The context must be non-nil and will be used for request cancellation. If
4480// the context is nil a panic will occur. In the future the SDK may create
4481// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4482// for more information on using Contexts.
4483func (c *S3Control) ListStorageLensConfigurationsWithContext(ctx aws.Context, input *ListStorageLensConfigurationsInput, opts ...request.Option) (*ListStorageLensConfigurationsOutput, error) {
4484	req, out := c.ListStorageLensConfigurationsRequest(input)
4485	req.SetContext(ctx)
4486	req.ApplyOptions(opts...)
4487	return out, req.Send()
4488}
4489
4490// ListStorageLensConfigurationsPages iterates over the pages of a ListStorageLensConfigurations operation,
4491// calling the "fn" function with the response data for each page. To stop
4492// iterating, return false from the fn function.
4493//
4494// See ListStorageLensConfigurations method for more information on how to use this operation.
4495//
4496// Note: This operation can generate multiple requests to a service.
4497//
4498//    // Example iterating over at most 3 pages of a ListStorageLensConfigurations operation.
4499//    pageNum := 0
4500//    err := client.ListStorageLensConfigurationsPages(params,
4501//        func(page *s3control.ListStorageLensConfigurationsOutput, lastPage bool) bool {
4502//            pageNum++
4503//            fmt.Println(page)
4504//            return pageNum <= 3
4505//        })
4506//
4507func (c *S3Control) ListStorageLensConfigurationsPages(input *ListStorageLensConfigurationsInput, fn func(*ListStorageLensConfigurationsOutput, bool) bool) error {
4508	return c.ListStorageLensConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
4509}
4510
4511// ListStorageLensConfigurationsPagesWithContext same as ListStorageLensConfigurationsPages except
4512// it takes a Context and allows setting request options on the pages.
4513//
4514// The context must be non-nil and will be used for request cancellation. If
4515// the context is nil a panic will occur. In the future the SDK may create
4516// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4517// for more information on using Contexts.
4518func (c *S3Control) ListStorageLensConfigurationsPagesWithContext(ctx aws.Context, input *ListStorageLensConfigurationsInput, fn func(*ListStorageLensConfigurationsOutput, bool) bool, opts ...request.Option) error {
4519	p := request.Pagination{
4520		NewRequest: func() (*request.Request, error) {
4521			var inCpy *ListStorageLensConfigurationsInput
4522			if input != nil {
4523				tmp := *input
4524				inCpy = &tmp
4525			}
4526			req, _ := c.ListStorageLensConfigurationsRequest(inCpy)
4527			req.SetContext(ctx)
4528			req.ApplyOptions(opts...)
4529			return req, nil
4530		},
4531	}
4532
4533	for p.Next() {
4534		if !fn(p.Page().(*ListStorageLensConfigurationsOutput), !p.HasNextPage()) {
4535			break
4536		}
4537	}
4538
4539	return p.Err()
4540}
4541
4542const opPutAccessPointConfigurationForObjectLambda = "PutAccessPointConfigurationForObjectLambda"
4543
4544// PutAccessPointConfigurationForObjectLambdaRequest generates a "aws/request.Request" representing the
4545// client's request for the PutAccessPointConfigurationForObjectLambda operation. The "output" return
4546// value will be populated with the request's response once the request completes
4547// successfully.
4548//
4549// Use "Send" method on the returned Request to send the API call to the service.
4550// the "output" return value is not valid until after Send returns without error.
4551//
4552// See PutAccessPointConfigurationForObjectLambda for more information on using the PutAccessPointConfigurationForObjectLambda
4553// API call, and error handling.
4554//
4555// This method is useful when you want to inject custom logic or configuration
4556// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4557//
4558//
4559//    // Example sending a request using the PutAccessPointConfigurationForObjectLambdaRequest method.
4560//    req, resp := client.PutAccessPointConfigurationForObjectLambdaRequest(params)
4561//
4562//    err := req.Send()
4563//    if err == nil { // resp is now filled
4564//        fmt.Println(resp)
4565//    }
4566//
4567// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointConfigurationForObjectLambda
4568func (c *S3Control) PutAccessPointConfigurationForObjectLambdaRequest(input *PutAccessPointConfigurationForObjectLambdaInput) (req *request.Request, output *PutAccessPointConfigurationForObjectLambdaOutput) {
4569	op := &request.Operation{
4570		Name:       opPutAccessPointConfigurationForObjectLambda,
4571		HTTPMethod: "PUT",
4572		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/configuration",
4573	}
4574
4575	if input == nil {
4576		input = &PutAccessPointConfigurationForObjectLambdaInput{}
4577	}
4578
4579	output = &PutAccessPointConfigurationForObjectLambdaOutput{}
4580	req = c.newRequest(op, input, output)
4581	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4582	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4583	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4584	return
4585}
4586
4587// PutAccessPointConfigurationForObjectLambda API operation for AWS S3 Control.
4588//
4589// Replaces configuration for an Object Lambda Access Point.
4590//
4591// The following actions are related to PutAccessPointConfigurationForObjectLambda:
4592//
4593//    * GetAccessPointConfigurationForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointConfigurationForObjectLambda.html)
4594//
4595// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4596// with awserr.Error's Code and Message methods to get detailed information about
4597// the error.
4598//
4599// See the AWS API reference guide for AWS S3 Control's
4600// API operation PutAccessPointConfigurationForObjectLambda for usage and error information.
4601// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointConfigurationForObjectLambda
4602func (c *S3Control) PutAccessPointConfigurationForObjectLambda(input *PutAccessPointConfigurationForObjectLambdaInput) (*PutAccessPointConfigurationForObjectLambdaOutput, error) {
4603	req, out := c.PutAccessPointConfigurationForObjectLambdaRequest(input)
4604	return out, req.Send()
4605}
4606
4607// PutAccessPointConfigurationForObjectLambdaWithContext is the same as PutAccessPointConfigurationForObjectLambda with the addition of
4608// the ability to pass a context and additional request options.
4609//
4610// See PutAccessPointConfigurationForObjectLambda for details on how to use this API operation.
4611//
4612// The context must be non-nil and will be used for request cancellation. If
4613// the context is nil a panic will occur. In the future the SDK may create
4614// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4615// for more information on using Contexts.
4616func (c *S3Control) PutAccessPointConfigurationForObjectLambdaWithContext(ctx aws.Context, input *PutAccessPointConfigurationForObjectLambdaInput, opts ...request.Option) (*PutAccessPointConfigurationForObjectLambdaOutput, error) {
4617	req, out := c.PutAccessPointConfigurationForObjectLambdaRequest(input)
4618	req.SetContext(ctx)
4619	req.ApplyOptions(opts...)
4620	return out, req.Send()
4621}
4622
4623const opPutAccessPointPolicy = "PutAccessPointPolicy"
4624
4625// PutAccessPointPolicyRequest generates a "aws/request.Request" representing the
4626// client's request for the PutAccessPointPolicy operation. The "output" return
4627// value will be populated with the request's response once the request completes
4628// successfully.
4629//
4630// Use "Send" method on the returned Request to send the API call to the service.
4631// the "output" return value is not valid until after Send returns without error.
4632//
4633// See PutAccessPointPolicy for more information on using the PutAccessPointPolicy
4634// API call, and error handling.
4635//
4636// This method is useful when you want to inject custom logic or configuration
4637// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4638//
4639//
4640//    // Example sending a request using the PutAccessPointPolicyRequest method.
4641//    req, resp := client.PutAccessPointPolicyRequest(params)
4642//
4643//    err := req.Send()
4644//    if err == nil { // resp is now filled
4645//        fmt.Println(resp)
4646//    }
4647//
4648// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy
4649func (c *S3Control) PutAccessPointPolicyRequest(input *PutAccessPointPolicyInput) (req *request.Request, output *PutAccessPointPolicyOutput) {
4650	op := &request.Operation{
4651		Name:       opPutAccessPointPolicy,
4652		HTTPMethod: "PUT",
4653		HTTPPath:   "/v20180820/accesspoint/{name}/policy",
4654	}
4655
4656	if input == nil {
4657		input = &PutAccessPointPolicyInput{}
4658	}
4659
4660	output = &PutAccessPointPolicyOutput{}
4661	req = c.newRequest(op, input, output)
4662	// update account id or check if provided input for account id member matches
4663	// the account id present in ARN
4664	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
4665	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4666	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4667	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4668	return
4669}
4670
4671// PutAccessPointPolicy API operation for AWS S3 Control.
4672//
4673// Associates an access policy with the specified access point. Each access
4674// point can have only one policy, so a request made to this API replaces any
4675// existing policy associated with the specified access point.
4676//
4677// All Amazon S3 on Outposts REST API requests for this action require an additional
4678// parameter of x-amz-outpost-id to be passed with the request and an S3 on
4679// Outposts endpoint hostname prefix instead of s3-control. For an example of
4680// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
4681// endpoint hostname prefix and the x-amz-outpost-id derived using the access
4682// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html#API_control_PutAccessPointPolicy_Examples)
4683// section.
4684//
4685// The following actions are related to PutAccessPointPolicy:
4686//
4687//    * GetAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html)
4688//
4689//    * DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html)
4690//
4691// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4692// with awserr.Error's Code and Message methods to get detailed information about
4693// the error.
4694//
4695// See the AWS API reference guide for AWS S3 Control's
4696// API operation PutAccessPointPolicy for usage and error information.
4697// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy
4698func (c *S3Control) PutAccessPointPolicy(input *PutAccessPointPolicyInput) (*PutAccessPointPolicyOutput, error) {
4699	req, out := c.PutAccessPointPolicyRequest(input)
4700	return out, req.Send()
4701}
4702
4703// PutAccessPointPolicyWithContext is the same as PutAccessPointPolicy with the addition of
4704// the ability to pass a context and additional request options.
4705//
4706// See PutAccessPointPolicy for details on how to use this API operation.
4707//
4708// The context must be non-nil and will be used for request cancellation. If
4709// the context is nil a panic will occur. In the future the SDK may create
4710// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4711// for more information on using Contexts.
4712func (c *S3Control) PutAccessPointPolicyWithContext(ctx aws.Context, input *PutAccessPointPolicyInput, opts ...request.Option) (*PutAccessPointPolicyOutput, error) {
4713	req, out := c.PutAccessPointPolicyRequest(input)
4714	req.SetContext(ctx)
4715	req.ApplyOptions(opts...)
4716	return out, req.Send()
4717}
4718
4719const opPutAccessPointPolicyForObjectLambda = "PutAccessPointPolicyForObjectLambda"
4720
4721// PutAccessPointPolicyForObjectLambdaRequest generates a "aws/request.Request" representing the
4722// client's request for the PutAccessPointPolicyForObjectLambda operation. The "output" return
4723// value will be populated with the request's response once the request completes
4724// successfully.
4725//
4726// Use "Send" method on the returned Request to send the API call to the service.
4727// the "output" return value is not valid until after Send returns without error.
4728//
4729// See PutAccessPointPolicyForObjectLambda for more information on using the PutAccessPointPolicyForObjectLambda
4730// API call, and error handling.
4731//
4732// This method is useful when you want to inject custom logic or configuration
4733// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4734//
4735//
4736//    // Example sending a request using the PutAccessPointPolicyForObjectLambdaRequest method.
4737//    req, resp := client.PutAccessPointPolicyForObjectLambdaRequest(params)
4738//
4739//    err := req.Send()
4740//    if err == nil { // resp is now filled
4741//        fmt.Println(resp)
4742//    }
4743//
4744// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicyForObjectLambda
4745func (c *S3Control) PutAccessPointPolicyForObjectLambdaRequest(input *PutAccessPointPolicyForObjectLambdaInput) (req *request.Request, output *PutAccessPointPolicyForObjectLambdaOutput) {
4746	op := &request.Operation{
4747		Name:       opPutAccessPointPolicyForObjectLambda,
4748		HTTPMethod: "PUT",
4749		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/policy",
4750	}
4751
4752	if input == nil {
4753		input = &PutAccessPointPolicyForObjectLambdaInput{}
4754	}
4755
4756	output = &PutAccessPointPolicyForObjectLambdaOutput{}
4757	req = c.newRequest(op, input, output)
4758	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4759	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4760	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4761	return
4762}
4763
4764// PutAccessPointPolicyForObjectLambda API operation for AWS S3 Control.
4765//
4766// Creates or replaces resource policy for an Object Lambda Access Point. For
4767// an example policy, see Creating Object Lambda Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-create.html#olap-create-cli)
4768// in the Amazon S3 User Guide.
4769//
4770// The following actions are related to PutAccessPointPolicyForObjectLambda:
4771//
4772//    * DeleteAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html)
4773//
4774//    * GetAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyForObjectLambda.html)
4775//
4776// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4777// with awserr.Error's Code and Message methods to get detailed information about
4778// the error.
4779//
4780// See the AWS API reference guide for AWS S3 Control's
4781// API operation PutAccessPointPolicyForObjectLambda for usage and error information.
4782// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicyForObjectLambda
4783func (c *S3Control) PutAccessPointPolicyForObjectLambda(input *PutAccessPointPolicyForObjectLambdaInput) (*PutAccessPointPolicyForObjectLambdaOutput, error) {
4784	req, out := c.PutAccessPointPolicyForObjectLambdaRequest(input)
4785	return out, req.Send()
4786}
4787
4788// PutAccessPointPolicyForObjectLambdaWithContext is the same as PutAccessPointPolicyForObjectLambda with the addition of
4789// the ability to pass a context and additional request options.
4790//
4791// See PutAccessPointPolicyForObjectLambda for details on how to use this API operation.
4792//
4793// The context must be non-nil and will be used for request cancellation. If
4794// the context is nil a panic will occur. In the future the SDK may create
4795// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4796// for more information on using Contexts.
4797func (c *S3Control) PutAccessPointPolicyForObjectLambdaWithContext(ctx aws.Context, input *PutAccessPointPolicyForObjectLambdaInput, opts ...request.Option) (*PutAccessPointPolicyForObjectLambdaOutput, error) {
4798	req, out := c.PutAccessPointPolicyForObjectLambdaRequest(input)
4799	req.SetContext(ctx)
4800	req.ApplyOptions(opts...)
4801	return out, req.Send()
4802}
4803
4804const opPutBucketLifecycleConfiguration = "PutBucketLifecycleConfiguration"
4805
4806// PutBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
4807// client's request for the PutBucketLifecycleConfiguration operation. The "output" return
4808// value will be populated with the request's response once the request completes
4809// successfully.
4810//
4811// Use "Send" method on the returned Request to send the API call to the service.
4812// the "output" return value is not valid until after Send returns without error.
4813//
4814// See PutBucketLifecycleConfiguration for more information on using the PutBucketLifecycleConfiguration
4815// API call, and error handling.
4816//
4817// This method is useful when you want to inject custom logic or configuration
4818// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4819//
4820//
4821//    // Example sending a request using the PutBucketLifecycleConfigurationRequest method.
4822//    req, resp := client.PutBucketLifecycleConfigurationRequest(params)
4823//
4824//    err := req.Send()
4825//    if err == nil { // resp is now filled
4826//        fmt.Println(resp)
4827//    }
4828//
4829// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration
4830func (c *S3Control) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleConfigurationInput) (req *request.Request, output *PutBucketLifecycleConfigurationOutput) {
4831	op := &request.Operation{
4832		Name:       opPutBucketLifecycleConfiguration,
4833		HTTPMethod: "PUT",
4834		HTTPPath:   "/v20180820/bucket/{name}/lifecycleconfiguration",
4835	}
4836
4837	if input == nil {
4838		input = &PutBucketLifecycleConfigurationInput{}
4839	}
4840
4841	output = &PutBucketLifecycleConfigurationOutput{}
4842	req = c.newRequest(op, input, output)
4843	// update account id or check if provided input for account id member matches
4844	// the account id present in ARN
4845	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
4846	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4847	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4848	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4849	req.Handlers.Build.PushBackNamed(request.NamedHandler{
4850		Name: "contentMd5Handler",
4851		Fn:   checksum.AddBodyContentMD5Handler,
4852	})
4853	return
4854}
4855
4856// PutBucketLifecycleConfiguration API operation for AWS S3 Control.
4857//
4858//
4859// This action puts a lifecycle configuration to an Amazon S3 on Outposts bucket.
4860// To put a lifecycle configuration to an S3 bucket, see PutBucketLifecycleConfiguration
4861// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)
4862// in the Amazon S3 API Reference.
4863//
4864// Creates a new lifecycle configuration for the S3 on Outposts bucket or replaces
4865// an existing lifecycle configuration. Outposts buckets only support lifecycle
4866// configurations that delete/expire objects after a certain period of time
4867// and abort incomplete multipart uploads.
4868//
4869// All Amazon S3 on Outposts REST API requests for this action require an additional
4870// parameter of x-amz-outpost-id to be passed with the request and an S3 on
4871// Outposts endpoint hostname prefix instead of s3-control. For an example of
4872// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
4873// endpoint hostname prefix and the x-amz-outpost-id derived using the access
4874// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html#API_control_PutBucketLifecycleConfiguration_Examples)
4875// section.
4876//
4877// The following actions are related to PutBucketLifecycleConfiguration:
4878//
4879//    * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html)
4880//
4881//    * DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html)
4882//
4883// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4884// with awserr.Error's Code and Message methods to get detailed information about
4885// the error.
4886//
4887// See the AWS API reference guide for AWS S3 Control's
4888// API operation PutBucketLifecycleConfiguration for usage and error information.
4889// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration
4890func (c *S3Control) PutBucketLifecycleConfiguration(input *PutBucketLifecycleConfigurationInput) (*PutBucketLifecycleConfigurationOutput, error) {
4891	req, out := c.PutBucketLifecycleConfigurationRequest(input)
4892	return out, req.Send()
4893}
4894
4895// PutBucketLifecycleConfigurationWithContext is the same as PutBucketLifecycleConfiguration with the addition of
4896// the ability to pass a context and additional request options.
4897//
4898// See PutBucketLifecycleConfiguration for details on how to use this API operation.
4899//
4900// The context must be non-nil and will be used for request cancellation. If
4901// the context is nil a panic will occur. In the future the SDK may create
4902// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4903// for more information on using Contexts.
4904func (c *S3Control) PutBucketLifecycleConfigurationWithContext(ctx aws.Context, input *PutBucketLifecycleConfigurationInput, opts ...request.Option) (*PutBucketLifecycleConfigurationOutput, error) {
4905	req, out := c.PutBucketLifecycleConfigurationRequest(input)
4906	req.SetContext(ctx)
4907	req.ApplyOptions(opts...)
4908	return out, req.Send()
4909}
4910
4911const opPutBucketPolicy = "PutBucketPolicy"
4912
4913// PutBucketPolicyRequest generates a "aws/request.Request" representing the
4914// client's request for the PutBucketPolicy operation. The "output" return
4915// value will be populated with the request's response once the request completes
4916// successfully.
4917//
4918// Use "Send" method on the returned Request to send the API call to the service.
4919// the "output" return value is not valid until after Send returns without error.
4920//
4921// See PutBucketPolicy for more information on using the PutBucketPolicy
4922// API call, and error handling.
4923//
4924// This method is useful when you want to inject custom logic or configuration
4925// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4926//
4927//
4928//    // Example sending a request using the PutBucketPolicyRequest method.
4929//    req, resp := client.PutBucketPolicyRequest(params)
4930//
4931//    err := req.Send()
4932//    if err == nil { // resp is now filled
4933//        fmt.Println(resp)
4934//    }
4935//
4936// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy
4937func (c *S3Control) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.Request, output *PutBucketPolicyOutput) {
4938	op := &request.Operation{
4939		Name:       opPutBucketPolicy,
4940		HTTPMethod: "PUT",
4941		HTTPPath:   "/v20180820/bucket/{name}/policy",
4942	}
4943
4944	if input == nil {
4945		input = &PutBucketPolicyInput{}
4946	}
4947
4948	output = &PutBucketPolicyOutput{}
4949	req = c.newRequest(op, input, output)
4950	// update account id or check if provided input for account id member matches
4951	// the account id present in ARN
4952	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
4953	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4954	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4955	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4956	req.Handlers.Build.PushBackNamed(request.NamedHandler{
4957		Name: "contentMd5Handler",
4958		Fn:   checksum.AddBodyContentMD5Handler,
4959	})
4960	return
4961}
4962
4963// PutBucketPolicy API operation for AWS S3 Control.
4964//
4965//
4966// This action puts a bucket policy to an Amazon S3 on Outposts bucket. To put
4967// a policy on an S3 bucket, see PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html)
4968// in the Amazon S3 API Reference.
4969//
4970// Applies an Amazon S3 bucket policy to an Outposts bucket. For more information,
4971// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
4972// in the Amazon S3 User Guide.
4973//
4974// If you are using an identity other than the root user of the Amazon Web Services
4975// account that owns the Outposts bucket, the calling identity must have the
4976// PutBucketPolicy permissions on the specified Outposts bucket and belong to
4977// the bucket owner's account in order to use this action.
4978//
4979// If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access
4980// Denied error. If you have the correct permissions, but you're not using an
4981// identity that belongs to the bucket owner's account, Amazon S3 returns a
4982// 405 Method Not Allowed error.
4983//
4984// As a security precaution, the root user of the Amazon Web Services account
4985// that owns a bucket can always use this action, even if the policy explicitly
4986// denies the root user the ability to perform this action.
4987//
4988// For more information about bucket policies, see Using Bucket Policies and
4989// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html).
4990//
4991// All Amazon S3 on Outposts REST API requests for this action require an additional
4992// parameter of x-amz-outpost-id to be passed with the request and an S3 on
4993// Outposts endpoint hostname prefix instead of s3-control. For an example of
4994// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
4995// endpoint hostname prefix and the x-amz-outpost-id derived using the access
4996// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html#API_control_PutBucketPolicy_Examples)
4997// section.
4998//
4999// The following actions are related to PutBucketPolicy:
5000//
5001//    * GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html)
5002//
5003//    * DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html)
5004//
5005// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5006// with awserr.Error's Code and Message methods to get detailed information about
5007// the error.
5008//
5009// See the AWS API reference guide for AWS S3 Control's
5010// API operation PutBucketPolicy for usage and error information.
5011// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy
5012func (c *S3Control) PutBucketPolicy(input *PutBucketPolicyInput) (*PutBucketPolicyOutput, error) {
5013	req, out := c.PutBucketPolicyRequest(input)
5014	return out, req.Send()
5015}
5016
5017// PutBucketPolicyWithContext is the same as PutBucketPolicy with the addition of
5018// the ability to pass a context and additional request options.
5019//
5020// See PutBucketPolicy for details on how to use this API operation.
5021//
5022// The context must be non-nil and will be used for request cancellation. If
5023// the context is nil a panic will occur. In the future the SDK may create
5024// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5025// for more information on using Contexts.
5026func (c *S3Control) PutBucketPolicyWithContext(ctx aws.Context, input *PutBucketPolicyInput, opts ...request.Option) (*PutBucketPolicyOutput, error) {
5027	req, out := c.PutBucketPolicyRequest(input)
5028	req.SetContext(ctx)
5029	req.ApplyOptions(opts...)
5030	return out, req.Send()
5031}
5032
5033const opPutBucketTagging = "PutBucketTagging"
5034
5035// PutBucketTaggingRequest generates a "aws/request.Request" representing the
5036// client's request for the PutBucketTagging operation. The "output" return
5037// value will be populated with the request's response once the request completes
5038// successfully.
5039//
5040// Use "Send" method on the returned Request to send the API call to the service.
5041// the "output" return value is not valid until after Send returns without error.
5042//
5043// See PutBucketTagging for more information on using the PutBucketTagging
5044// API call, and error handling.
5045//
5046// This method is useful when you want to inject custom logic or configuration
5047// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5048//
5049//
5050//    // Example sending a request using the PutBucketTaggingRequest method.
5051//    req, resp := client.PutBucketTaggingRequest(params)
5052//
5053//    err := req.Send()
5054//    if err == nil { // resp is now filled
5055//        fmt.Println(resp)
5056//    }
5057//
5058// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging
5059func (c *S3Control) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request.Request, output *PutBucketTaggingOutput) {
5060	op := &request.Operation{
5061		Name:       opPutBucketTagging,
5062		HTTPMethod: "PUT",
5063		HTTPPath:   "/v20180820/bucket/{name}/tagging",
5064	}
5065
5066	if input == nil {
5067		input = &PutBucketTaggingInput{}
5068	}
5069
5070	output = &PutBucketTaggingOutput{}
5071	req = c.newRequest(op, input, output)
5072	// update account id or check if provided input for account id member matches
5073	// the account id present in ARN
5074	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
5075	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5076	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
5077	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
5078	req.Handlers.Build.PushBackNamed(request.NamedHandler{
5079		Name: "contentMd5Handler",
5080		Fn:   checksum.AddBodyContentMD5Handler,
5081	})
5082	return
5083}
5084
5085// PutBucketTagging API operation for AWS S3 Control.
5086//
5087//
5088// This action puts tags on an Amazon S3 on Outposts bucket. To put tags on
5089// an S3 bucket, see PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html)
5090// in the Amazon S3 API Reference.
5091//
5092// Sets the tags for an S3 on Outposts bucket. For more information, see Using
5093// Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
5094// in the Amazon S3 User Guide.
5095//
5096// Use tags to organize your Amazon Web Services bill to reflect your own cost
5097// structure. To do this, sign up to get your Amazon Web Services account bill
5098// with tag key values included. Then, to see the cost of combined resources,
5099// organize your billing information according to resources with the same tag
5100// key values. For example, you can tag several resources with a specific application
5101// name, and then organize your billing information to see the total cost of
5102// that application across several services. For more information, see Cost
5103// allocation and tagging (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html).
5104//
5105// Within a bucket, if you add a tag that has the same key as an existing tag,
5106// the new value overwrites the old value. For more information, see Using cost
5107// allocation in Amazon S3 bucket tags (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html).
5108//
5109// To use this action, you must have permissions to perform the s3-outposts:PutBucketTagging
5110// action. The Outposts bucket owner has this permission by default and can
5111// grant this permission to others. For more information about permissions,
5112// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
5113// and Managing access permissions to your Amazon S3 resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html).
5114//
5115// PutBucketTagging has the following special errors:
5116//
5117//    * Error code: InvalidTagError Description: The tag provided was not a
5118//    valid tag. This error can occur if the tag did not pass input validation.
5119//    For information about tag restrictions, see User-Defined Tag Restrictions
5120//    (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html)
5121//    and Amazon Web Services-Generated Cost Allocation Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html).
5122//
5123//    * Error code: MalformedXMLError Description: The XML provided does not
5124//    match the schema.
5125//
5126//    * Error code: OperationAbortedError Description: A conflicting conditional
5127//    action is currently in progress against this resource. Try again.
5128//
5129//    * Error code: InternalError Description: The service was unable to apply
5130//    the provided tag to the bucket.
5131//
5132// All Amazon S3 on Outposts REST API requests for this action require an additional
5133// parameter of x-amz-outpost-id to be passed with the request and an S3 on
5134// Outposts endpoint hostname prefix instead of s3-control. For an example of
5135// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
5136// endpoint hostname prefix and the x-amz-outpost-id derived using the access
5137// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html#API_control_PutBucketTagging_Examples)
5138// section.
5139//
5140// The following actions are related to PutBucketTagging:
5141//
5142//    * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html)
5143//
5144//    * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html)
5145//
5146// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5147// with awserr.Error's Code and Message methods to get detailed information about
5148// the error.
5149//
5150// See the AWS API reference guide for AWS S3 Control's
5151// API operation PutBucketTagging for usage and error information.
5152// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging
5153func (c *S3Control) PutBucketTagging(input *PutBucketTaggingInput) (*PutBucketTaggingOutput, error) {
5154	req, out := c.PutBucketTaggingRequest(input)
5155	return out, req.Send()
5156}
5157
5158// PutBucketTaggingWithContext is the same as PutBucketTagging with the addition of
5159// the ability to pass a context and additional request options.
5160//
5161// See PutBucketTagging for details on how to use this API operation.
5162//
5163// The context must be non-nil and will be used for request cancellation. If
5164// the context is nil a panic will occur. In the future the SDK may create
5165// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5166// for more information on using Contexts.
5167func (c *S3Control) PutBucketTaggingWithContext(ctx aws.Context, input *PutBucketTaggingInput, opts ...request.Option) (*PutBucketTaggingOutput, error) {
5168	req, out := c.PutBucketTaggingRequest(input)
5169	req.SetContext(ctx)
5170	req.ApplyOptions(opts...)
5171	return out, req.Send()
5172}
5173
5174const opPutJobTagging = "PutJobTagging"
5175
5176// PutJobTaggingRequest generates a "aws/request.Request" representing the
5177// client's request for the PutJobTagging operation. The "output" return
5178// value will be populated with the request's response once the request completes
5179// successfully.
5180//
5181// Use "Send" method on the returned Request to send the API call to the service.
5182// the "output" return value is not valid until after Send returns without error.
5183//
5184// See PutJobTagging for more information on using the PutJobTagging
5185// API call, and error handling.
5186//
5187// This method is useful when you want to inject custom logic or configuration
5188// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5189//
5190//
5191//    // Example sending a request using the PutJobTaggingRequest method.
5192//    req, resp := client.PutJobTaggingRequest(params)
5193//
5194//    err := req.Send()
5195//    if err == nil { // resp is now filled
5196//        fmt.Println(resp)
5197//    }
5198//
5199// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging
5200func (c *S3Control) PutJobTaggingRequest(input *PutJobTaggingInput) (req *request.Request, output *PutJobTaggingOutput) {
5201	op := &request.Operation{
5202		Name:       opPutJobTagging,
5203		HTTPMethod: "PUT",
5204		HTTPPath:   "/v20180820/jobs/{id}/tagging",
5205	}
5206
5207	if input == nil {
5208		input = &PutJobTaggingInput{}
5209	}
5210
5211	output = &PutJobTaggingOutput{}
5212	req = c.newRequest(op, input, output)
5213	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5214	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
5215	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
5216	return
5217}
5218
5219// PutJobTagging API operation for AWS S3 Control.
5220//
5221// Sets the supplied tag-set on an S3 Batch Operations job.
5222//
5223// A tag is a key-value pair. You can associate S3 Batch Operations tags with
5224// any job by sending a PUT request against the tagging subresource that is
5225// associated with the job. To modify the existing tag set, you can either replace
5226// the existing tag set entirely, or make changes within the existing tag set
5227// by retrieving the existing tag set using GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html),
5228// modify that tag set, and use this action to replace the tag set with the
5229// one you modified. For more information, see Controlling access and labeling
5230// jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags)
5231// in the Amazon S3 User Guide.
5232//
5233//    * If you send this request with an empty tag set, Amazon S3 deletes the
5234//    existing tag set on the Batch Operations job. If you use this method,
5235//    you are charged for a Tier 1 Request (PUT). For more information, see
5236//    Amazon S3 pricing (http://aws.amazon.com/s3/pricing/).
5237//
5238//    * For deleting existing tags for your Batch Operations job, a DeleteJobTagging
5239//    (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
5240//    request is preferred because it achieves the same result without incurring
5241//    charges.
5242//
5243//    * A few things to consider about using tags: Amazon S3 limits the maximum
5244//    number of tags to 50 tags per job. You can associate up to 50 tags with
5245//    a job as long as they have unique tag keys. A tag key can be up to 128
5246//    Unicode characters in length, and tag values can be up to 256 Unicode
5247//    characters in length. The key and values are case sensitive. For tagging-related
5248//    restrictions related to characters and encodings, see User-Defined Tag
5249//    Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html)
5250//    in the Billing and Cost Management User Guide.
5251//
5252// To use this action, you must have permission to perform the s3:PutJobTagging
5253// action.
5254//
5255// Related actions include:
5256//
5257//    * CreatJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
5258//
5259//    * GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html)
5260//
5261//    * DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
5262//
5263// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5264// with awserr.Error's Code and Message methods to get detailed information about
5265// the error.
5266//
5267// See the AWS API reference guide for AWS S3 Control's
5268// API operation PutJobTagging for usage and error information.
5269//
5270// Returned Error Codes:
5271//   * ErrCodeInternalServiceException "InternalServiceException"
5272//
5273//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5274//
5275//   * ErrCodeNotFoundException "NotFoundException"
5276//
5277//   * ErrCodeTooManyTagsException "TooManyTagsException"
5278//   Amazon S3 throws this exception if you have too many tags in your tag set.
5279//
5280// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging
5281func (c *S3Control) PutJobTagging(input *PutJobTaggingInput) (*PutJobTaggingOutput, error) {
5282	req, out := c.PutJobTaggingRequest(input)
5283	return out, req.Send()
5284}
5285
5286// PutJobTaggingWithContext is the same as PutJobTagging with the addition of
5287// the ability to pass a context and additional request options.
5288//
5289// See PutJobTagging for details on how to use this API operation.
5290//
5291// The context must be non-nil and will be used for request cancellation. If
5292// the context is nil a panic will occur. In the future the SDK may create
5293// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5294// for more information on using Contexts.
5295func (c *S3Control) PutJobTaggingWithContext(ctx aws.Context, input *PutJobTaggingInput, opts ...request.Option) (*PutJobTaggingOutput, error) {
5296	req, out := c.PutJobTaggingRequest(input)
5297	req.SetContext(ctx)
5298	req.ApplyOptions(opts...)
5299	return out, req.Send()
5300}
5301
5302const opPutMultiRegionAccessPointPolicy = "PutMultiRegionAccessPointPolicy"
5303
5304// PutMultiRegionAccessPointPolicyRequest generates a "aws/request.Request" representing the
5305// client's request for the PutMultiRegionAccessPointPolicy operation. The "output" return
5306// value will be populated with the request's response once the request completes
5307// successfully.
5308//
5309// Use "Send" method on the returned Request to send the API call to the service.
5310// the "output" return value is not valid until after Send returns without error.
5311//
5312// See PutMultiRegionAccessPointPolicy for more information on using the PutMultiRegionAccessPointPolicy
5313// API call, and error handling.
5314//
5315// This method is useful when you want to inject custom logic or configuration
5316// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5317//
5318//
5319//    // Example sending a request using the PutMultiRegionAccessPointPolicyRequest method.
5320//    req, resp := client.PutMultiRegionAccessPointPolicyRequest(params)
5321//
5322//    err := req.Send()
5323//    if err == nil { // resp is now filled
5324//        fmt.Println(resp)
5325//    }
5326//
5327// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutMultiRegionAccessPointPolicy
5328func (c *S3Control) PutMultiRegionAccessPointPolicyRequest(input *PutMultiRegionAccessPointPolicyInput) (req *request.Request, output *PutMultiRegionAccessPointPolicyOutput) {
5329	op := &request.Operation{
5330		Name:       opPutMultiRegionAccessPointPolicy,
5331		HTTPMethod: "POST",
5332		HTTPPath:   "/v20180820/async-requests/mrap/put-policy",
5333	}
5334
5335	if input == nil {
5336		input = &PutMultiRegionAccessPointPolicyInput{}
5337	}
5338
5339	output = &PutMultiRegionAccessPointPolicyOutput{}
5340	req = c.newRequest(op, input, output)
5341	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
5342	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
5343	req.Handlers.Build.PushBackNamed(request.NamedHandler{
5344		Name: "contentMd5Handler",
5345		Fn:   checksum.AddBodyContentMD5Handler,
5346	})
5347	return
5348}
5349
5350// PutMultiRegionAccessPointPolicy API operation for AWS S3 Control.
5351//
5352// Associates an access control policy with the specified Multi-Region Access
5353// Point. Each Multi-Region Access Point can have only one policy, so a request
5354// made to this action replaces any existing policy that is associated with
5355// the specified Multi-Region Access Point.
5356//
5357// This action will always be routed to the US West (Oregon) Region. For more
5358// information about the restrictions around managing Multi-Region Access Points,
5359// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
5360// in the Amazon S3 User Guide.
5361//
5362// The following actions are related to PutMultiRegionAccessPointPolicy:
5363//
5364//    * GetMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html)
5365//
5366//    * GetMultiRegionAccessPointPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html)
5367//
5368// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5369// with awserr.Error's Code and Message methods to get detailed information about
5370// the error.
5371//
5372// See the AWS API reference guide for AWS S3 Control's
5373// API operation PutMultiRegionAccessPointPolicy for usage and error information.
5374// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutMultiRegionAccessPointPolicy
5375func (c *S3Control) PutMultiRegionAccessPointPolicy(input *PutMultiRegionAccessPointPolicyInput) (*PutMultiRegionAccessPointPolicyOutput, error) {
5376	req, out := c.PutMultiRegionAccessPointPolicyRequest(input)
5377	return out, req.Send()
5378}
5379
5380// PutMultiRegionAccessPointPolicyWithContext is the same as PutMultiRegionAccessPointPolicy with the addition of
5381// the ability to pass a context and additional request options.
5382//
5383// See PutMultiRegionAccessPointPolicy for details on how to use this API operation.
5384//
5385// The context must be non-nil and will be used for request cancellation. If
5386// the context is nil a panic will occur. In the future the SDK may create
5387// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5388// for more information on using Contexts.
5389func (c *S3Control) PutMultiRegionAccessPointPolicyWithContext(ctx aws.Context, input *PutMultiRegionAccessPointPolicyInput, opts ...request.Option) (*PutMultiRegionAccessPointPolicyOutput, error) {
5390	req, out := c.PutMultiRegionAccessPointPolicyRequest(input)
5391	req.SetContext(ctx)
5392	req.ApplyOptions(opts...)
5393	return out, req.Send()
5394}
5395
5396const opPutPublicAccessBlock = "PutPublicAccessBlock"
5397
5398// PutPublicAccessBlockRequest generates a "aws/request.Request" representing the
5399// client's request for the PutPublicAccessBlock operation. The "output" return
5400// value will be populated with the request's response once the request completes
5401// successfully.
5402//
5403// Use "Send" method on the returned Request to send the API call to the service.
5404// the "output" return value is not valid until after Send returns without error.
5405//
5406// See PutPublicAccessBlock for more information on using the PutPublicAccessBlock
5407// API call, and error handling.
5408//
5409// This method is useful when you want to inject custom logic or configuration
5410// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5411//
5412//
5413//    // Example sending a request using the PutPublicAccessBlockRequest method.
5414//    req, resp := client.PutPublicAccessBlockRequest(params)
5415//
5416//    err := req.Send()
5417//    if err == nil { // resp is now filled
5418//        fmt.Println(resp)
5419//    }
5420//
5421// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock
5422func (c *S3Control) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req *request.Request, output *PutPublicAccessBlockOutput) {
5423	op := &request.Operation{
5424		Name:       opPutPublicAccessBlock,
5425		HTTPMethod: "PUT",
5426		HTTPPath:   "/v20180820/configuration/publicAccessBlock",
5427	}
5428
5429	if input == nil {
5430		input = &PutPublicAccessBlockInput{}
5431	}
5432
5433	output = &PutPublicAccessBlockOutput{}
5434	req = c.newRequest(op, input, output)
5435	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5436	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
5437	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
5438	return
5439}
5440
5441// PutPublicAccessBlock API operation for AWS S3 Control.
5442//
5443// Creates or modifies the PublicAccessBlock configuration for an Amazon Web
5444// Services account. For more information, see Using Amazon S3 block public
5445// access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).
5446//
5447// Related actions include:
5448//
5449//    * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html)
5450//
5451//    * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html)
5452//
5453// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5454// with awserr.Error's Code and Message methods to get detailed information about
5455// the error.
5456//
5457// See the AWS API reference guide for AWS S3 Control's
5458// API operation PutPublicAccessBlock for usage and error information.
5459// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock
5460func (c *S3Control) PutPublicAccessBlock(input *PutPublicAccessBlockInput) (*PutPublicAccessBlockOutput, error) {
5461	req, out := c.PutPublicAccessBlockRequest(input)
5462	return out, req.Send()
5463}
5464
5465// PutPublicAccessBlockWithContext is the same as PutPublicAccessBlock with the addition of
5466// the ability to pass a context and additional request options.
5467//
5468// See PutPublicAccessBlock for details on how to use this API operation.
5469//
5470// The context must be non-nil and will be used for request cancellation. If
5471// the context is nil a panic will occur. In the future the SDK may create
5472// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5473// for more information on using Contexts.
5474func (c *S3Control) PutPublicAccessBlockWithContext(ctx aws.Context, input *PutPublicAccessBlockInput, opts ...request.Option) (*PutPublicAccessBlockOutput, error) {
5475	req, out := c.PutPublicAccessBlockRequest(input)
5476	req.SetContext(ctx)
5477	req.ApplyOptions(opts...)
5478	return out, req.Send()
5479}
5480
5481const opPutStorageLensConfiguration = "PutStorageLensConfiguration"
5482
5483// PutStorageLensConfigurationRequest generates a "aws/request.Request" representing the
5484// client's request for the PutStorageLensConfiguration operation. The "output" return
5485// value will be populated with the request's response once the request completes
5486// successfully.
5487//
5488// Use "Send" method on the returned Request to send the API call to the service.
5489// the "output" return value is not valid until after Send returns without error.
5490//
5491// See PutStorageLensConfiguration for more information on using the PutStorageLensConfiguration
5492// API call, and error handling.
5493//
5494// This method is useful when you want to inject custom logic or configuration
5495// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5496//
5497//
5498//    // Example sending a request using the PutStorageLensConfigurationRequest method.
5499//    req, resp := client.PutStorageLensConfigurationRequest(params)
5500//
5501//    err := req.Send()
5502//    if err == nil { // resp is now filled
5503//        fmt.Println(resp)
5504//    }
5505//
5506// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration
5507func (c *S3Control) PutStorageLensConfigurationRequest(input *PutStorageLensConfigurationInput) (req *request.Request, output *PutStorageLensConfigurationOutput) {
5508	op := &request.Operation{
5509		Name:       opPutStorageLensConfiguration,
5510		HTTPMethod: "PUT",
5511		HTTPPath:   "/v20180820/storagelens/{storagelensid}",
5512	}
5513
5514	if input == nil {
5515		input = &PutStorageLensConfigurationInput{}
5516	}
5517
5518	output = &PutStorageLensConfigurationOutput{}
5519	req = c.newRequest(op, input, output)
5520	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5521	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
5522	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
5523	return
5524}
5525
5526// PutStorageLensConfiguration API operation for AWS S3 Control.
5527//
5528// Puts an Amazon S3 Storage Lens configuration. For more information about
5529// S3 Storage Lens, see Working with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
5530// in the Amazon S3 User Guide.
5531//
5532// To use this action, you must have permission to perform the s3:PutStorageLensConfiguration
5533// action. For more information, see Setting permissions to use Amazon S3 Storage
5534// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
5535// in the Amazon S3 User Guide.
5536//
5537// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5538// with awserr.Error's Code and Message methods to get detailed information about
5539// the error.
5540//
5541// See the AWS API reference guide for AWS S3 Control's
5542// API operation PutStorageLensConfiguration for usage and error information.
5543// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration
5544func (c *S3Control) PutStorageLensConfiguration(input *PutStorageLensConfigurationInput) (*PutStorageLensConfigurationOutput, error) {
5545	req, out := c.PutStorageLensConfigurationRequest(input)
5546	return out, req.Send()
5547}
5548
5549// PutStorageLensConfigurationWithContext is the same as PutStorageLensConfiguration with the addition of
5550// the ability to pass a context and additional request options.
5551//
5552// See PutStorageLensConfiguration for details on how to use this API operation.
5553//
5554// The context must be non-nil and will be used for request cancellation. If
5555// the context is nil a panic will occur. In the future the SDK may create
5556// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5557// for more information on using Contexts.
5558func (c *S3Control) PutStorageLensConfigurationWithContext(ctx aws.Context, input *PutStorageLensConfigurationInput, opts ...request.Option) (*PutStorageLensConfigurationOutput, error) {
5559	req, out := c.PutStorageLensConfigurationRequest(input)
5560	req.SetContext(ctx)
5561	req.ApplyOptions(opts...)
5562	return out, req.Send()
5563}
5564
5565const opPutStorageLensConfigurationTagging = "PutStorageLensConfigurationTagging"
5566
5567// PutStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the
5568// client's request for the PutStorageLensConfigurationTagging operation. The "output" return
5569// value will be populated with the request's response once the request completes
5570// successfully.
5571//
5572// Use "Send" method on the returned Request to send the API call to the service.
5573// the "output" return value is not valid until after Send returns without error.
5574//
5575// See PutStorageLensConfigurationTagging for more information on using the PutStorageLensConfigurationTagging
5576// API call, and error handling.
5577//
5578// This method is useful when you want to inject custom logic or configuration
5579// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5580//
5581//
5582//    // Example sending a request using the PutStorageLensConfigurationTaggingRequest method.
5583//    req, resp := client.PutStorageLensConfigurationTaggingRequest(params)
5584//
5585//    err := req.Send()
5586//    if err == nil { // resp is now filled
5587//        fmt.Println(resp)
5588//    }
5589//
5590// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging
5591func (c *S3Control) PutStorageLensConfigurationTaggingRequest(input *PutStorageLensConfigurationTaggingInput) (req *request.Request, output *PutStorageLensConfigurationTaggingOutput) {
5592	op := &request.Operation{
5593		Name:       opPutStorageLensConfigurationTagging,
5594		HTTPMethod: "PUT",
5595		HTTPPath:   "/v20180820/storagelens/{storagelensid}/tagging",
5596	}
5597
5598	if input == nil {
5599		input = &PutStorageLensConfigurationTaggingInput{}
5600	}
5601
5602	output = &PutStorageLensConfigurationTaggingOutput{}
5603	req = c.newRequest(op, input, output)
5604	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5605	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
5606	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
5607	return
5608}
5609
5610// PutStorageLensConfigurationTagging API operation for AWS S3 Control.
5611//
5612// Put or replace tags on an existing Amazon S3 Storage Lens configuration.
5613// For more information about S3 Storage Lens, see Assessing your storage activity
5614// and usage with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
5615// in the Amazon S3 User Guide.
5616//
5617// To use this action, you must have permission to perform the s3:PutStorageLensConfigurationTagging
5618// action. For more information, see Setting permissions to use Amazon S3 Storage
5619// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
5620// in the Amazon S3 User Guide.
5621//
5622// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5623// with awserr.Error's Code and Message methods to get detailed information about
5624// the error.
5625//
5626// See the AWS API reference guide for AWS S3 Control's
5627// API operation PutStorageLensConfigurationTagging for usage and error information.
5628// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging
5629func (c *S3Control) PutStorageLensConfigurationTagging(input *PutStorageLensConfigurationTaggingInput) (*PutStorageLensConfigurationTaggingOutput, error) {
5630	req, out := c.PutStorageLensConfigurationTaggingRequest(input)
5631	return out, req.Send()
5632}
5633
5634// PutStorageLensConfigurationTaggingWithContext is the same as PutStorageLensConfigurationTagging with the addition of
5635// the ability to pass a context and additional request options.
5636//
5637// See PutStorageLensConfigurationTagging for details on how to use this API operation.
5638//
5639// The context must be non-nil and will be used for request cancellation. If
5640// the context is nil a panic will occur. In the future the SDK may create
5641// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5642// for more information on using Contexts.
5643func (c *S3Control) PutStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *PutStorageLensConfigurationTaggingInput, opts ...request.Option) (*PutStorageLensConfigurationTaggingOutput, error) {
5644	req, out := c.PutStorageLensConfigurationTaggingRequest(input)
5645	req.SetContext(ctx)
5646	req.ApplyOptions(opts...)
5647	return out, req.Send()
5648}
5649
5650const opUpdateJobPriority = "UpdateJobPriority"
5651
5652// UpdateJobPriorityRequest generates a "aws/request.Request" representing the
5653// client's request for the UpdateJobPriority operation. The "output" return
5654// value will be populated with the request's response once the request completes
5655// successfully.
5656//
5657// Use "Send" method on the returned Request to send the API call to the service.
5658// the "output" return value is not valid until after Send returns without error.
5659//
5660// See UpdateJobPriority for more information on using the UpdateJobPriority
5661// API call, and error handling.
5662//
5663// This method is useful when you want to inject custom logic or configuration
5664// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5665//
5666//
5667//    // Example sending a request using the UpdateJobPriorityRequest method.
5668//    req, resp := client.UpdateJobPriorityRequest(params)
5669//
5670//    err := req.Send()
5671//    if err == nil { // resp is now filled
5672//        fmt.Println(resp)
5673//    }
5674//
5675// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority
5676func (c *S3Control) UpdateJobPriorityRequest(input *UpdateJobPriorityInput) (req *request.Request, output *UpdateJobPriorityOutput) {
5677	op := &request.Operation{
5678		Name:       opUpdateJobPriority,
5679		HTTPMethod: "POST",
5680		HTTPPath:   "/v20180820/jobs/{id}/priority",
5681	}
5682
5683	if input == nil {
5684		input = &UpdateJobPriorityInput{}
5685	}
5686
5687	output = &UpdateJobPriorityOutput{}
5688	req = c.newRequest(op, input, output)
5689	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
5690	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
5691	return
5692}
5693
5694// UpdateJobPriority API operation for AWS S3 Control.
5695//
5696// Updates an existing S3 Batch Operations job's priority. For more information,
5697// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
5698// in the Amazon S3 User Guide.
5699//
5700// Related actions include:
5701//
5702//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
5703//
5704//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
5705//
5706//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
5707//
5708//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
5709//
5710// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5711// with awserr.Error's Code and Message methods to get detailed information about
5712// the error.
5713//
5714// See the AWS API reference guide for AWS S3 Control's
5715// API operation UpdateJobPriority for usage and error information.
5716//
5717// Returned Error Codes:
5718//   * ErrCodeBadRequestException "BadRequestException"
5719//
5720//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5721//
5722//   * ErrCodeNotFoundException "NotFoundException"
5723//
5724//   * ErrCodeInternalServiceException "InternalServiceException"
5725//
5726// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority
5727func (c *S3Control) UpdateJobPriority(input *UpdateJobPriorityInput) (*UpdateJobPriorityOutput, error) {
5728	req, out := c.UpdateJobPriorityRequest(input)
5729	return out, req.Send()
5730}
5731
5732// UpdateJobPriorityWithContext is the same as UpdateJobPriority with the addition of
5733// the ability to pass a context and additional request options.
5734//
5735// See UpdateJobPriority for details on how to use this API operation.
5736//
5737// The context must be non-nil and will be used for request cancellation. If
5738// the context is nil a panic will occur. In the future the SDK may create
5739// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5740// for more information on using Contexts.
5741func (c *S3Control) UpdateJobPriorityWithContext(ctx aws.Context, input *UpdateJobPriorityInput, opts ...request.Option) (*UpdateJobPriorityOutput, error) {
5742	req, out := c.UpdateJobPriorityRequest(input)
5743	req.SetContext(ctx)
5744	req.ApplyOptions(opts...)
5745	return out, req.Send()
5746}
5747
5748const opUpdateJobStatus = "UpdateJobStatus"
5749
5750// UpdateJobStatusRequest generates a "aws/request.Request" representing the
5751// client's request for the UpdateJobStatus operation. The "output" return
5752// value will be populated with the request's response once the request completes
5753// successfully.
5754//
5755// Use "Send" method on the returned Request to send the API call to the service.
5756// the "output" return value is not valid until after Send returns without error.
5757//
5758// See UpdateJobStatus for more information on using the UpdateJobStatus
5759// API call, and error handling.
5760//
5761// This method is useful when you want to inject custom logic or configuration
5762// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5763//
5764//
5765//    // Example sending a request using the UpdateJobStatusRequest method.
5766//    req, resp := client.UpdateJobStatusRequest(params)
5767//
5768//    err := req.Send()
5769//    if err == nil { // resp is now filled
5770//        fmt.Println(resp)
5771//    }
5772//
5773// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus
5774func (c *S3Control) UpdateJobStatusRequest(input *UpdateJobStatusInput) (req *request.Request, output *UpdateJobStatusOutput) {
5775	op := &request.Operation{
5776		Name:       opUpdateJobStatus,
5777		HTTPMethod: "POST",
5778		HTTPPath:   "/v20180820/jobs/{id}/status",
5779	}
5780
5781	if input == nil {
5782		input = &UpdateJobStatusInput{}
5783	}
5784
5785	output = &UpdateJobStatusOutput{}
5786	req = c.newRequest(op, input, output)
5787	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
5788	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
5789	return
5790}
5791
5792// UpdateJobStatus API operation for AWS S3 Control.
5793//
5794// Updates the status for the specified job. Use this action to confirm that
5795// you want to run a job or to cancel an existing job. For more information,
5796// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
5797// in the Amazon S3 User Guide.
5798//
5799// Related actions include:
5800//
5801//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
5802//
5803//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
5804//
5805//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
5806//
5807//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
5808//
5809// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5810// with awserr.Error's Code and Message methods to get detailed information about
5811// the error.
5812//
5813// See the AWS API reference guide for AWS S3 Control's
5814// API operation UpdateJobStatus for usage and error information.
5815//
5816// Returned Error Codes:
5817//   * ErrCodeBadRequestException "BadRequestException"
5818//
5819//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
5820//
5821//   * ErrCodeNotFoundException "NotFoundException"
5822//
5823//   * ErrCodeJobStatusException "JobStatusException"
5824//
5825//   * ErrCodeInternalServiceException "InternalServiceException"
5826//
5827// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus
5828func (c *S3Control) UpdateJobStatus(input *UpdateJobStatusInput) (*UpdateJobStatusOutput, error) {
5829	req, out := c.UpdateJobStatusRequest(input)
5830	return out, req.Send()
5831}
5832
5833// UpdateJobStatusWithContext is the same as UpdateJobStatus with the addition of
5834// the ability to pass a context and additional request options.
5835//
5836// See UpdateJobStatus for details on how to use this API operation.
5837//
5838// The context must be non-nil and will be used for request cancellation. If
5839// the context is nil a panic will occur. In the future the SDK may create
5840// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5841// for more information on using Contexts.
5842func (c *S3Control) UpdateJobStatusWithContext(ctx aws.Context, input *UpdateJobStatusInput, opts ...request.Option) (*UpdateJobStatusOutput, error) {
5843	req, out := c.UpdateJobStatusRequest(input)
5844	req.SetContext(ctx)
5845	req.ApplyOptions(opts...)
5846	return out, req.Send()
5847}
5848
5849// The container for abort incomplete multipart upload
5850type AbortIncompleteMultipartUpload struct {
5851	_ struct{} `type:"structure"`
5852
5853	// Specifies the number of days after which Amazon S3 aborts an incomplete multipart
5854	// upload to the Outposts bucket.
5855	DaysAfterInitiation *int64 `type:"integer"`
5856}
5857
5858// String returns the string representation.
5859//
5860// API parameter values that are decorated as "sensitive" in the API will not
5861// be included in the string output. The member name will be present, but the
5862// value will be replaced with "sensitive".
5863func (s AbortIncompleteMultipartUpload) String() string {
5864	return awsutil.Prettify(s)
5865}
5866
5867// GoString returns the string representation.
5868//
5869// API parameter values that are decorated as "sensitive" in the API will not
5870// be included in the string output. The member name will be present, but the
5871// value will be replaced with "sensitive".
5872func (s AbortIncompleteMultipartUpload) GoString() string {
5873	return s.String()
5874}
5875
5876// SetDaysAfterInitiation sets the DaysAfterInitiation field's value.
5877func (s *AbortIncompleteMultipartUpload) SetDaysAfterInitiation(v int64) *AbortIncompleteMultipartUpload {
5878	s.DaysAfterInitiation = &v
5879	return s
5880}
5881
5882// An access point used to access a bucket.
5883type AccessPoint struct {
5884	_ struct{} `type:"structure"`
5885
5886	// The ARN for the access point.
5887	AccessPointArn *string `min:"4" type:"string"`
5888
5889	// The name or alias of the access point.
5890	Alias *string `type:"string"`
5891
5892	// The name of the bucket associated with this access point.
5893	//
5894	// Bucket is a required field
5895	Bucket *string `min:"3" type:"string" required:"true"`
5896
5897	// The name of this access point.
5898	//
5899	// Name is a required field
5900	Name *string `min:"3" type:"string" required:"true"`
5901
5902	// Indicates whether this access point allows access from the public internet.
5903	// If VpcConfiguration is specified for this access point, then NetworkOrigin
5904	// is VPC, and the access point doesn't allow access from the public internet.
5905	// Otherwise, NetworkOrigin is Internet, and the access point allows access
5906	// from the public internet, subject to the access point and bucket access policies.
5907	//
5908	// NetworkOrigin is a required field
5909	NetworkOrigin *string `type:"string" required:"true" enum:"NetworkOrigin"`
5910
5911	// The virtual private cloud (VPC) configuration for this access point, if one
5912	// exists.
5913	//
5914	// This element is empty if this access point is an Amazon S3 on Outposts access
5915	// point that is used by other Amazon Web Services.
5916	VpcConfiguration *VpcConfiguration `type:"structure"`
5917}
5918
5919// String returns the string representation.
5920//
5921// API parameter values that are decorated as "sensitive" in the API will not
5922// be included in the string output. The member name will be present, but the
5923// value will be replaced with "sensitive".
5924func (s AccessPoint) String() string {
5925	return awsutil.Prettify(s)
5926}
5927
5928// GoString returns the string representation.
5929//
5930// API parameter values that are decorated as "sensitive" in the API will not
5931// be included in the string output. The member name will be present, but the
5932// value will be replaced with "sensitive".
5933func (s AccessPoint) GoString() string {
5934	return s.String()
5935}
5936
5937// SetAccessPointArn sets the AccessPointArn field's value.
5938func (s *AccessPoint) SetAccessPointArn(v string) *AccessPoint {
5939	s.AccessPointArn = &v
5940	return s
5941}
5942
5943// SetAlias sets the Alias field's value.
5944func (s *AccessPoint) SetAlias(v string) *AccessPoint {
5945	s.Alias = &v
5946	return s
5947}
5948
5949// SetBucket sets the Bucket field's value.
5950func (s *AccessPoint) SetBucket(v string) *AccessPoint {
5951	s.Bucket = &v
5952	return s
5953}
5954
5955// SetName sets the Name field's value.
5956func (s *AccessPoint) SetName(v string) *AccessPoint {
5957	s.Name = &v
5958	return s
5959}
5960
5961// SetNetworkOrigin sets the NetworkOrigin field's value.
5962func (s *AccessPoint) SetNetworkOrigin(v string) *AccessPoint {
5963	s.NetworkOrigin = &v
5964	return s
5965}
5966
5967// SetVpcConfiguration sets the VpcConfiguration field's value.
5968func (s *AccessPoint) SetVpcConfiguration(v *VpcConfiguration) *AccessPoint {
5969	s.VpcConfiguration = v
5970	return s
5971}
5972
5973// A container for the account level Amazon S3 Storage Lens configuration.
5974type AccountLevel struct {
5975	_ struct{} `type:"structure"`
5976
5977	// A container for the S3 Storage Lens activity metrics.
5978	ActivityMetrics *ActivityMetrics `type:"structure"`
5979
5980	// A container for the S3 Storage Lens bucket-level configuration.
5981	//
5982	// BucketLevel is a required field
5983	BucketLevel *BucketLevel `type:"structure" required:"true"`
5984}
5985
5986// String returns the string representation.
5987//
5988// API parameter values that are decorated as "sensitive" in the API will not
5989// be included in the string output. The member name will be present, but the
5990// value will be replaced with "sensitive".
5991func (s AccountLevel) String() string {
5992	return awsutil.Prettify(s)
5993}
5994
5995// GoString returns the string representation.
5996//
5997// API parameter values that are decorated as "sensitive" in the API will not
5998// be included in the string output. The member name will be present, but the
5999// value will be replaced with "sensitive".
6000func (s AccountLevel) GoString() string {
6001	return s.String()
6002}
6003
6004// Validate inspects the fields of the type to determine if they are valid.
6005func (s *AccountLevel) Validate() error {
6006	invalidParams := request.ErrInvalidParams{Context: "AccountLevel"}
6007	if s.BucketLevel == nil {
6008		invalidParams.Add(request.NewErrParamRequired("BucketLevel"))
6009	}
6010	if s.BucketLevel != nil {
6011		if err := s.BucketLevel.Validate(); err != nil {
6012			invalidParams.AddNested("BucketLevel", err.(request.ErrInvalidParams))
6013		}
6014	}
6015
6016	if invalidParams.Len() > 0 {
6017		return invalidParams
6018	}
6019	return nil
6020}
6021
6022// SetActivityMetrics sets the ActivityMetrics field's value.
6023func (s *AccountLevel) SetActivityMetrics(v *ActivityMetrics) *AccountLevel {
6024	s.ActivityMetrics = v
6025	return s
6026}
6027
6028// SetBucketLevel sets the BucketLevel field's value.
6029func (s *AccountLevel) SetBucketLevel(v *BucketLevel) *AccountLevel {
6030	s.BucketLevel = v
6031	return s
6032}
6033
6034// A container for the activity metrics.
6035type ActivityMetrics struct {
6036	_ struct{} `type:"structure"`
6037
6038	// A container for whether the activity metrics are enabled.
6039	IsEnabled *bool `type:"boolean"`
6040}
6041
6042// String returns the string representation.
6043//
6044// API parameter values that are decorated as "sensitive" in the API will not
6045// be included in the string output. The member name will be present, but the
6046// value will be replaced with "sensitive".
6047func (s ActivityMetrics) String() string {
6048	return awsutil.Prettify(s)
6049}
6050
6051// GoString returns the string representation.
6052//
6053// API parameter values that are decorated as "sensitive" in the API will not
6054// be included in the string output. The member name will be present, but the
6055// value will be replaced with "sensitive".
6056func (s ActivityMetrics) GoString() string {
6057	return s.String()
6058}
6059
6060// SetIsEnabled sets the IsEnabled field's value.
6061func (s *ActivityMetrics) SetIsEnabled(v bool) *ActivityMetrics {
6062	s.IsEnabled = &v
6063	return s
6064}
6065
6066// Error details for the failed asynchronous operation.
6067type AsyncErrorDetails struct {
6068	_ struct{} `type:"structure"`
6069
6070	// A string that uniquely identifies the error condition.
6071	Code *string `type:"string"`
6072
6073	// A generic descritpion of the error condition in English.
6074	Message *string `type:"string"`
6075
6076	// The ID of the request associated with the error.
6077	RequestId *string `type:"string"`
6078
6079	// The identifier of the resource associated with the error.
6080	Resource *string `type:"string"`
6081}
6082
6083// String returns the string representation.
6084//
6085// API parameter values that are decorated as "sensitive" in the API will not
6086// be included in the string output. The member name will be present, but the
6087// value will be replaced with "sensitive".
6088func (s AsyncErrorDetails) String() string {
6089	return awsutil.Prettify(s)
6090}
6091
6092// GoString returns the string representation.
6093//
6094// API parameter values that are decorated as "sensitive" in the API will not
6095// be included in the string output. The member name will be present, but the
6096// value will be replaced with "sensitive".
6097func (s AsyncErrorDetails) GoString() string {
6098	return s.String()
6099}
6100
6101// SetCode sets the Code field's value.
6102func (s *AsyncErrorDetails) SetCode(v string) *AsyncErrorDetails {
6103	s.Code = &v
6104	return s
6105}
6106
6107// SetMessage sets the Message field's value.
6108func (s *AsyncErrorDetails) SetMessage(v string) *AsyncErrorDetails {
6109	s.Message = &v
6110	return s
6111}
6112
6113// SetRequestId sets the RequestId field's value.
6114func (s *AsyncErrorDetails) SetRequestId(v string) *AsyncErrorDetails {
6115	s.RequestId = &v
6116	return s
6117}
6118
6119// SetResource sets the Resource field's value.
6120func (s *AsyncErrorDetails) SetResource(v string) *AsyncErrorDetails {
6121	s.Resource = &v
6122	return s
6123}
6124
6125// A container for the information about an asynchronous operation.
6126type AsyncOperation struct {
6127	_ struct{} `type:"structure"`
6128
6129	// The time that the request was sent to the service.
6130	CreationTime *time.Time `type:"timestamp"`
6131
6132	// The specific operation for the asynchronous request.
6133	Operation *string `type:"string" enum:"AsyncOperationName"`
6134
6135	// The parameters associated with the request.
6136	RequestParameters *AsyncRequestParameters `type:"structure"`
6137
6138	// The current status of the request.
6139	RequestStatus *string `type:"string"`
6140
6141	// The request token associated with the request.
6142	RequestTokenARN *string `min:"1" type:"string"`
6143
6144	// The details of the response.
6145	ResponseDetails *AsyncResponseDetails `type:"structure"`
6146}
6147
6148// String returns the string representation.
6149//
6150// API parameter values that are decorated as "sensitive" in the API will not
6151// be included in the string output. The member name will be present, but the
6152// value will be replaced with "sensitive".
6153func (s AsyncOperation) String() string {
6154	return awsutil.Prettify(s)
6155}
6156
6157// GoString returns the string representation.
6158//
6159// API parameter values that are decorated as "sensitive" in the API will not
6160// be included in the string output. The member name will be present, but the
6161// value will be replaced with "sensitive".
6162func (s AsyncOperation) GoString() string {
6163	return s.String()
6164}
6165
6166// SetCreationTime sets the CreationTime field's value.
6167func (s *AsyncOperation) SetCreationTime(v time.Time) *AsyncOperation {
6168	s.CreationTime = &v
6169	return s
6170}
6171
6172// SetOperation sets the Operation field's value.
6173func (s *AsyncOperation) SetOperation(v string) *AsyncOperation {
6174	s.Operation = &v
6175	return s
6176}
6177
6178// SetRequestParameters sets the RequestParameters field's value.
6179func (s *AsyncOperation) SetRequestParameters(v *AsyncRequestParameters) *AsyncOperation {
6180	s.RequestParameters = v
6181	return s
6182}
6183
6184// SetRequestStatus sets the RequestStatus field's value.
6185func (s *AsyncOperation) SetRequestStatus(v string) *AsyncOperation {
6186	s.RequestStatus = &v
6187	return s
6188}
6189
6190// SetRequestTokenARN sets the RequestTokenARN field's value.
6191func (s *AsyncOperation) SetRequestTokenARN(v string) *AsyncOperation {
6192	s.RequestTokenARN = &v
6193	return s
6194}
6195
6196// SetResponseDetails sets the ResponseDetails field's value.
6197func (s *AsyncOperation) SetResponseDetails(v *AsyncResponseDetails) *AsyncOperation {
6198	s.ResponseDetails = v
6199	return s
6200}
6201
6202// A container for the request parameters associated with an asynchronous request.
6203type AsyncRequestParameters struct {
6204	_ struct{} `type:"structure"`
6205
6206	// A container of the parameters for a CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)
6207	// request.
6208	CreateMultiRegionAccessPointRequest *CreateMultiRegionAccessPointInput_ `type:"structure"`
6209
6210	// A container of the parameters for a DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)
6211	// request.
6212	DeleteMultiRegionAccessPointRequest *DeleteMultiRegionAccessPointInput_ `type:"structure"`
6213
6214	// A container of the parameters for a PutMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPoint.html)
6215	// request.
6216	PutMultiRegionAccessPointPolicyRequest *PutMultiRegionAccessPointPolicyInput_ `type:"structure"`
6217}
6218
6219// String returns the string representation.
6220//
6221// API parameter values that are decorated as "sensitive" in the API will not
6222// be included in the string output. The member name will be present, but the
6223// value will be replaced with "sensitive".
6224func (s AsyncRequestParameters) String() string {
6225	return awsutil.Prettify(s)
6226}
6227
6228// GoString returns the string representation.
6229//
6230// API parameter values that are decorated as "sensitive" in the API will not
6231// be included in the string output. The member name will be present, but the
6232// value will be replaced with "sensitive".
6233func (s AsyncRequestParameters) GoString() string {
6234	return s.String()
6235}
6236
6237// SetCreateMultiRegionAccessPointRequest sets the CreateMultiRegionAccessPointRequest field's value.
6238func (s *AsyncRequestParameters) SetCreateMultiRegionAccessPointRequest(v *CreateMultiRegionAccessPointInput_) *AsyncRequestParameters {
6239	s.CreateMultiRegionAccessPointRequest = v
6240	return s
6241}
6242
6243// SetDeleteMultiRegionAccessPointRequest sets the DeleteMultiRegionAccessPointRequest field's value.
6244func (s *AsyncRequestParameters) SetDeleteMultiRegionAccessPointRequest(v *DeleteMultiRegionAccessPointInput_) *AsyncRequestParameters {
6245	s.DeleteMultiRegionAccessPointRequest = v
6246	return s
6247}
6248
6249// SetPutMultiRegionAccessPointPolicyRequest sets the PutMultiRegionAccessPointPolicyRequest field's value.
6250func (s *AsyncRequestParameters) SetPutMultiRegionAccessPointPolicyRequest(v *PutMultiRegionAccessPointPolicyInput_) *AsyncRequestParameters {
6251	s.PutMultiRegionAccessPointPolicyRequest = v
6252	return s
6253}
6254
6255// A container for the response details that are returned when querying about
6256// an asynchronous request.
6257type AsyncResponseDetails struct {
6258	_ struct{} `type:"structure"`
6259
6260	// Error details for an asynchronous request.
6261	ErrorDetails *AsyncErrorDetails `type:"structure"`
6262
6263	// The details for the Multi-Region Access Point.
6264	MultiRegionAccessPointDetails *MultiRegionAccessPointsAsyncResponse `type:"structure"`
6265}
6266
6267// String returns the string representation.
6268//
6269// API parameter values that are decorated as "sensitive" in the API will not
6270// be included in the string output. The member name will be present, but the
6271// value will be replaced with "sensitive".
6272func (s AsyncResponseDetails) String() string {
6273	return awsutil.Prettify(s)
6274}
6275
6276// GoString returns the string representation.
6277//
6278// API parameter values that are decorated as "sensitive" in the API will not
6279// be included in the string output. The member name will be present, but the
6280// value will be replaced with "sensitive".
6281func (s AsyncResponseDetails) GoString() string {
6282	return s.String()
6283}
6284
6285// SetErrorDetails sets the ErrorDetails field's value.
6286func (s *AsyncResponseDetails) SetErrorDetails(v *AsyncErrorDetails) *AsyncResponseDetails {
6287	s.ErrorDetails = v
6288	return s
6289}
6290
6291// SetMultiRegionAccessPointDetails sets the MultiRegionAccessPointDetails field's value.
6292func (s *AsyncResponseDetails) SetMultiRegionAccessPointDetails(v *MultiRegionAccessPointsAsyncResponse) *AsyncResponseDetails {
6293	s.MultiRegionAccessPointDetails = v
6294	return s
6295}
6296
6297// Lambda function used to transform objects through an Object Lambda Access
6298// Point.
6299type AwsLambdaTransformation struct {
6300	_ struct{} `type:"structure"`
6301
6302	// The Amazon Resource Name (ARN) of the Lambda function.
6303	//
6304	// FunctionArn is a required field
6305	FunctionArn *string `min:"1" type:"string" required:"true"`
6306
6307	// Additional JSON that provides supplemental data to the Lambda function used
6308	// to transform objects.
6309	FunctionPayload *string `type:"string"`
6310}
6311
6312// String returns the string representation.
6313//
6314// API parameter values that are decorated as "sensitive" in the API will not
6315// be included in the string output. The member name will be present, but the
6316// value will be replaced with "sensitive".
6317func (s AwsLambdaTransformation) String() string {
6318	return awsutil.Prettify(s)
6319}
6320
6321// GoString returns the string representation.
6322//
6323// API parameter values that are decorated as "sensitive" in the API will not
6324// be included in the string output. The member name will be present, but the
6325// value will be replaced with "sensitive".
6326func (s AwsLambdaTransformation) GoString() string {
6327	return s.String()
6328}
6329
6330// Validate inspects the fields of the type to determine if they are valid.
6331func (s *AwsLambdaTransformation) Validate() error {
6332	invalidParams := request.ErrInvalidParams{Context: "AwsLambdaTransformation"}
6333	if s.FunctionArn == nil {
6334		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
6335	}
6336	if s.FunctionArn != nil && len(*s.FunctionArn) < 1 {
6337		invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1))
6338	}
6339
6340	if invalidParams.Len() > 0 {
6341		return invalidParams
6342	}
6343	return nil
6344}
6345
6346// SetFunctionArn sets the FunctionArn field's value.
6347func (s *AwsLambdaTransformation) SetFunctionArn(v string) *AwsLambdaTransformation {
6348	s.FunctionArn = &v
6349	return s
6350}
6351
6352// SetFunctionPayload sets the FunctionPayload field's value.
6353func (s *AwsLambdaTransformation) SetFunctionPayload(v string) *AwsLambdaTransformation {
6354	s.FunctionPayload = &v
6355	return s
6356}
6357
6358// A container for the bucket-level configuration.
6359type BucketLevel struct {
6360	_ struct{} `type:"structure"`
6361
6362	// A container for the bucket-level activity metrics for Amazon S3 Storage Lens
6363	ActivityMetrics *ActivityMetrics `type:"structure"`
6364
6365	// A container for the bucket-level prefix-level metrics for S3 Storage Lens
6366	PrefixLevel *PrefixLevel `type:"structure"`
6367}
6368
6369// String returns the string representation.
6370//
6371// API parameter values that are decorated as "sensitive" in the API will not
6372// be included in the string output. The member name will be present, but the
6373// value will be replaced with "sensitive".
6374func (s BucketLevel) String() string {
6375	return awsutil.Prettify(s)
6376}
6377
6378// GoString returns the string representation.
6379//
6380// API parameter values that are decorated as "sensitive" in the API will not
6381// be included in the string output. The member name will be present, but the
6382// value will be replaced with "sensitive".
6383func (s BucketLevel) GoString() string {
6384	return s.String()
6385}
6386
6387// Validate inspects the fields of the type to determine if they are valid.
6388func (s *BucketLevel) Validate() error {
6389	invalidParams := request.ErrInvalidParams{Context: "BucketLevel"}
6390	if s.PrefixLevel != nil {
6391		if err := s.PrefixLevel.Validate(); err != nil {
6392			invalidParams.AddNested("PrefixLevel", err.(request.ErrInvalidParams))
6393		}
6394	}
6395
6396	if invalidParams.Len() > 0 {
6397		return invalidParams
6398	}
6399	return nil
6400}
6401
6402// SetActivityMetrics sets the ActivityMetrics field's value.
6403func (s *BucketLevel) SetActivityMetrics(v *ActivityMetrics) *BucketLevel {
6404	s.ActivityMetrics = v
6405	return s
6406}
6407
6408// SetPrefixLevel sets the PrefixLevel field's value.
6409func (s *BucketLevel) SetPrefixLevel(v *PrefixLevel) *BucketLevel {
6410	s.PrefixLevel = v
6411	return s
6412}
6413
6414type CreateAccessPointForObjectLambdaInput struct {
6415	_ struct{} `locationName:"CreateAccessPointForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
6416
6417	// The Amazon Web Services account ID for owner of the specified Object Lambda
6418	// Access Point.
6419	//
6420	// AccountId is a required field
6421	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6422
6423	// Object Lambda Access Point configuration as a JSON document.
6424	//
6425	// Configuration is a required field
6426	Configuration *ObjectLambdaConfiguration `type:"structure" required:"true"`
6427
6428	// The name you want to assign to this Object Lambda Access Point.
6429	//
6430	// Name is a required field
6431	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6432}
6433
6434// String returns the string representation.
6435//
6436// API parameter values that are decorated as "sensitive" in the API will not
6437// be included in the string output. The member name will be present, but the
6438// value will be replaced with "sensitive".
6439func (s CreateAccessPointForObjectLambdaInput) String() string {
6440	return awsutil.Prettify(s)
6441}
6442
6443// GoString returns the string representation.
6444//
6445// API parameter values that are decorated as "sensitive" in the API will not
6446// be included in the string output. The member name will be present, but the
6447// value will be replaced with "sensitive".
6448func (s CreateAccessPointForObjectLambdaInput) GoString() string {
6449	return s.String()
6450}
6451
6452// Validate inspects the fields of the type to determine if they are valid.
6453func (s *CreateAccessPointForObjectLambdaInput) Validate() error {
6454	invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointForObjectLambdaInput"}
6455	if s.AccountId == nil {
6456		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6457	}
6458	if s.AccountId != nil && len(*s.AccountId) < 1 {
6459		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6460	}
6461	if s.Configuration == nil {
6462		invalidParams.Add(request.NewErrParamRequired("Configuration"))
6463	}
6464	if s.Name == nil {
6465		invalidParams.Add(request.NewErrParamRequired("Name"))
6466	}
6467	if s.Name != nil && len(*s.Name) < 3 {
6468		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
6469	}
6470	if s.Configuration != nil {
6471		if err := s.Configuration.Validate(); err != nil {
6472			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
6473		}
6474	}
6475
6476	if invalidParams.Len() > 0 {
6477		return invalidParams
6478	}
6479	return nil
6480}
6481
6482// SetAccountId sets the AccountId field's value.
6483func (s *CreateAccessPointForObjectLambdaInput) SetAccountId(v string) *CreateAccessPointForObjectLambdaInput {
6484	s.AccountId = &v
6485	return s
6486}
6487
6488// SetConfiguration sets the Configuration field's value.
6489func (s *CreateAccessPointForObjectLambdaInput) SetConfiguration(v *ObjectLambdaConfiguration) *CreateAccessPointForObjectLambdaInput {
6490	s.Configuration = v
6491	return s
6492}
6493
6494// SetName sets the Name field's value.
6495func (s *CreateAccessPointForObjectLambdaInput) SetName(v string) *CreateAccessPointForObjectLambdaInput {
6496	s.Name = &v
6497	return s
6498}
6499
6500func (s *CreateAccessPointForObjectLambdaInput) hostLabels() map[string]string {
6501	return map[string]string{
6502		"AccountId": aws.StringValue(s.AccountId),
6503	}
6504}
6505
6506type CreateAccessPointForObjectLambdaOutput struct {
6507	_ struct{} `type:"structure"`
6508
6509	// Specifies the ARN for the Object Lambda Access Point.
6510	ObjectLambdaAccessPointArn *string `min:"1" type:"string"`
6511}
6512
6513// String returns the string representation.
6514//
6515// API parameter values that are decorated as "sensitive" in the API will not
6516// be included in the string output. The member name will be present, but the
6517// value will be replaced with "sensitive".
6518func (s CreateAccessPointForObjectLambdaOutput) String() string {
6519	return awsutil.Prettify(s)
6520}
6521
6522// GoString returns the string representation.
6523//
6524// API parameter values that are decorated as "sensitive" in the API will not
6525// be included in the string output. The member name will be present, but the
6526// value will be replaced with "sensitive".
6527func (s CreateAccessPointForObjectLambdaOutput) GoString() string {
6528	return s.String()
6529}
6530
6531// SetObjectLambdaAccessPointArn sets the ObjectLambdaAccessPointArn field's value.
6532func (s *CreateAccessPointForObjectLambdaOutput) SetObjectLambdaAccessPointArn(v string) *CreateAccessPointForObjectLambdaOutput {
6533	s.ObjectLambdaAccessPointArn = &v
6534	return s
6535}
6536
6537type CreateAccessPointInput struct {
6538	_ struct{} `locationName:"CreateAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
6539
6540	// The Amazon Web Services account ID for the owner of the bucket for which
6541	// you want to create an access point.
6542	//
6543	// AccountId is a required field
6544	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6545
6546	// The name of the bucket that you want to associate this access point with.
6547	//
6548	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6549	// must specify the name and the x-amz-outpost-id as well.
6550	//
6551	// For using this parameter with S3 on Outposts with the Amazon Web Services
6552	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
6553	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6554	// For example, to access the bucket reports through outpost my-outpost owned
6555	// 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.
6556	// The value must be URL encoded.
6557	//
6558	// Bucket is a required field
6559	Bucket *string `min:"3" type:"string" required:"true"`
6560
6561	// The name you want to assign to this access point.
6562	//
6563	// Name is a required field
6564	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6565
6566	// The PublicAccessBlock configuration that you want to apply to the access
6567	// point.
6568	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
6569
6570	// If you include this field, Amazon S3 restricts access to this access point
6571	// to requests from the specified virtual private cloud (VPC).
6572	//
6573	// This is required for creating an access point for Amazon S3 on Outposts buckets.
6574	VpcConfiguration *VpcConfiguration `type:"structure"`
6575}
6576
6577// String returns the string representation.
6578//
6579// API parameter values that are decorated as "sensitive" in the API will not
6580// be included in the string output. The member name will be present, but the
6581// value will be replaced with "sensitive".
6582func (s CreateAccessPointInput) String() string {
6583	return awsutil.Prettify(s)
6584}
6585
6586// GoString returns the string representation.
6587//
6588// API parameter values that are decorated as "sensitive" in the API will not
6589// be included in the string output. The member name will be present, but the
6590// value will be replaced with "sensitive".
6591func (s CreateAccessPointInput) GoString() string {
6592	return s.String()
6593}
6594
6595// Validate inspects the fields of the type to determine if they are valid.
6596func (s *CreateAccessPointInput) Validate() error {
6597	invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointInput"}
6598	if s.AccountId == nil {
6599		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6600	}
6601	if s.AccountId != nil && len(*s.AccountId) < 1 {
6602		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6603	}
6604	if s.Bucket == nil {
6605		invalidParams.Add(request.NewErrParamRequired("Bucket"))
6606	}
6607	if s.Bucket != nil && len(*s.Bucket) < 3 {
6608		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
6609	}
6610	if s.Name == nil {
6611		invalidParams.Add(request.NewErrParamRequired("Name"))
6612	}
6613	if s.Name != nil && len(*s.Name) < 3 {
6614		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
6615	}
6616	if s.VpcConfiguration != nil {
6617		if err := s.VpcConfiguration.Validate(); err != nil {
6618			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
6619		}
6620	}
6621
6622	if invalidParams.Len() > 0 {
6623		return invalidParams
6624	}
6625	return nil
6626}
6627
6628// SetAccountId sets the AccountId field's value.
6629func (s *CreateAccessPointInput) SetAccountId(v string) *CreateAccessPointInput {
6630	s.AccountId = &v
6631	return s
6632}
6633
6634// SetBucket sets the Bucket field's value.
6635func (s *CreateAccessPointInput) SetBucket(v string) *CreateAccessPointInput {
6636	s.Bucket = &v
6637	return s
6638}
6639
6640// SetName sets the Name field's value.
6641func (s *CreateAccessPointInput) SetName(v string) *CreateAccessPointInput {
6642	s.Name = &v
6643	return s
6644}
6645
6646// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
6647func (s *CreateAccessPointInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *CreateAccessPointInput {
6648	s.PublicAccessBlockConfiguration = v
6649	return s
6650}
6651
6652// SetVpcConfiguration sets the VpcConfiguration field's value.
6653func (s *CreateAccessPointInput) SetVpcConfiguration(v *VpcConfiguration) *CreateAccessPointInput {
6654	s.VpcConfiguration = v
6655	return s
6656}
6657
6658func (s *CreateAccessPointInput) hostLabels() map[string]string {
6659	return map[string]string{
6660		"AccountId": aws.StringValue(s.AccountId),
6661	}
6662}
6663
6664func (s *CreateAccessPointInput) getEndpointARN() (arn.Resource, error) {
6665	if s.Bucket == nil {
6666		return nil, fmt.Errorf("member Bucket is nil")
6667	}
6668	return parseEndpointARN(*s.Bucket)
6669}
6670
6671func (s *CreateAccessPointInput) hasEndpointARN() bool {
6672	if s.Bucket == nil {
6673		return false
6674	}
6675	return arn.IsARN(*s.Bucket)
6676}
6677
6678// updateArnableField updates the value of the input field that
6679// takes an ARN as an input. This method is useful to backfill
6680// the parsed resource name from ARN into the input member.
6681// It returns a pointer to a modified copy of input and an error.
6682// Note that original input is not modified.
6683func (s CreateAccessPointInput) updateArnableField(v string) (interface{}, error) {
6684	if s.Bucket == nil {
6685		return nil, fmt.Errorf("member Bucket is nil")
6686	}
6687	s.Bucket = aws.String(v)
6688	return &s, nil
6689}
6690
6691// updateAccountID returns a pointer to a modified copy of input,
6692// if account id is not provided, we update the account id in modified input
6693// if account id is provided, but doesn't match with the one in ARN, we throw an error
6694// if account id is not updated, we return nil. Note that original input is not modified.
6695func (s CreateAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
6696	if s.AccountId == nil {
6697		s.AccountId = aws.String(accountId)
6698		return &s, nil
6699	} else if *s.AccountId != accountId {
6700		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6701	}
6702	return nil, nil
6703}
6704
6705type CreateAccessPointOutput struct {
6706	_ struct{} `type:"structure"`
6707
6708	// The ARN of the access point.
6709	//
6710	// This is only supported by Amazon S3 on Outposts.
6711	AccessPointArn *string `min:"4" type:"string"`
6712
6713	// The name or alias of the access point.
6714	Alias *string `type:"string"`
6715}
6716
6717// String returns the string representation.
6718//
6719// API parameter values that are decorated as "sensitive" in the API will not
6720// be included in the string output. The member name will be present, but the
6721// value will be replaced with "sensitive".
6722func (s CreateAccessPointOutput) String() string {
6723	return awsutil.Prettify(s)
6724}
6725
6726// GoString returns the string representation.
6727//
6728// API parameter values that are decorated as "sensitive" in the API will not
6729// be included in the string output. The member name will be present, but the
6730// value will be replaced with "sensitive".
6731func (s CreateAccessPointOutput) GoString() string {
6732	return s.String()
6733}
6734
6735// SetAccessPointArn sets the AccessPointArn field's value.
6736func (s *CreateAccessPointOutput) SetAccessPointArn(v string) *CreateAccessPointOutput {
6737	s.AccessPointArn = &v
6738	return s
6739}
6740
6741// SetAlias sets the Alias field's value.
6742func (s *CreateAccessPointOutput) SetAlias(v string) *CreateAccessPointOutput {
6743	s.Alias = &v
6744	return s
6745}
6746
6747// The container for the bucket configuration.
6748//
6749// This is not supported by Amazon S3 on Outposts buckets.
6750type CreateBucketConfiguration struct {
6751	_ struct{} `type:"structure"`
6752
6753	// Specifies the Region where the bucket will be created. If you are creating
6754	// a bucket on the US East (N. Virginia) Region (us-east-1), you do not need
6755	// to specify the location.
6756	//
6757	// This is not supported by Amazon S3 on Outposts buckets.
6758	LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"`
6759}
6760
6761// String returns the string representation.
6762//
6763// API parameter values that are decorated as "sensitive" in the API will not
6764// be included in the string output. The member name will be present, but the
6765// value will be replaced with "sensitive".
6766func (s CreateBucketConfiguration) String() string {
6767	return awsutil.Prettify(s)
6768}
6769
6770// GoString returns the string representation.
6771//
6772// API parameter values that are decorated as "sensitive" in the API will not
6773// be included in the string output. The member name will be present, but the
6774// value will be replaced with "sensitive".
6775func (s CreateBucketConfiguration) GoString() string {
6776	return s.String()
6777}
6778
6779// SetLocationConstraint sets the LocationConstraint field's value.
6780func (s *CreateBucketConfiguration) SetLocationConstraint(v string) *CreateBucketConfiguration {
6781	s.LocationConstraint = &v
6782	return s
6783}
6784
6785type CreateBucketInput struct {
6786	_ struct{} `locationName:"CreateBucketRequest" type:"structure" payload:"CreateBucketConfiguration"`
6787
6788	// The canned ACL to apply to the bucket.
6789	//
6790	// This is not supported by Amazon S3 on Outposts buckets.
6791	ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"`
6792
6793	// The name of the bucket.
6794	//
6795	// Bucket is a required field
6796	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6797
6798	// The configuration information for the bucket.
6799	//
6800	// This is not supported by Amazon S3 on Outposts buckets.
6801	CreateBucketConfiguration *CreateBucketConfiguration `locationName:"CreateBucketConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
6802
6803	// Allows grantee the read, write, read ACP, and write ACP permissions on the
6804	// bucket.
6805	//
6806	// This is not supported by Amazon S3 on Outposts buckets.
6807	GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"`
6808
6809	// Allows grantee to list the objects in the bucket.
6810	//
6811	// This is not supported by Amazon S3 on Outposts buckets.
6812	GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"`
6813
6814	// Allows grantee to read the bucket ACL.
6815	//
6816	// This is not supported by Amazon S3 on Outposts buckets.
6817	GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"`
6818
6819	// Allows grantee to create, overwrite, and delete any object in the bucket.
6820	//
6821	// This is not supported by Amazon S3 on Outposts buckets.
6822	GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"`
6823
6824	// Allows grantee to write the ACL for the applicable bucket.
6825	//
6826	// This is not supported by Amazon S3 on Outposts buckets.
6827	GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"`
6828
6829	// Specifies whether you want S3 Object Lock to be enabled for the new bucket.
6830	//
6831	// This is not supported by Amazon S3 on Outposts buckets.
6832	ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"`
6833
6834	// The ID of the Outposts where the bucket is being created.
6835	//
6836	// This is required by Amazon S3 on Outposts buckets.
6837	OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"`
6838}
6839
6840// String returns the string representation.
6841//
6842// API parameter values that are decorated as "sensitive" in the API will not
6843// be included in the string output. The member name will be present, but the
6844// value will be replaced with "sensitive".
6845func (s CreateBucketInput) String() string {
6846	return awsutil.Prettify(s)
6847}
6848
6849// GoString returns the string representation.
6850//
6851// API parameter values that are decorated as "sensitive" in the API will not
6852// be included in the string output. The member name will be present, but the
6853// value will be replaced with "sensitive".
6854func (s CreateBucketInput) GoString() string {
6855	return s.String()
6856}
6857
6858// Validate inspects the fields of the type to determine if they are valid.
6859func (s *CreateBucketInput) Validate() error {
6860	invalidParams := request.ErrInvalidParams{Context: "CreateBucketInput"}
6861	if s.Bucket == nil {
6862		invalidParams.Add(request.NewErrParamRequired("Bucket"))
6863	}
6864	if s.Bucket != nil && len(*s.Bucket) < 3 {
6865		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
6866	}
6867	if s.OutpostId != nil && len(*s.OutpostId) < 1 {
6868		invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1))
6869	}
6870
6871	if invalidParams.Len() > 0 {
6872		return invalidParams
6873	}
6874	return nil
6875}
6876
6877// SetACL sets the ACL field's value.
6878func (s *CreateBucketInput) SetACL(v string) *CreateBucketInput {
6879	s.ACL = &v
6880	return s
6881}
6882
6883// SetBucket sets the Bucket field's value.
6884func (s *CreateBucketInput) SetBucket(v string) *CreateBucketInput {
6885	s.Bucket = &v
6886	return s
6887}
6888
6889// SetCreateBucketConfiguration sets the CreateBucketConfiguration field's value.
6890func (s *CreateBucketInput) SetCreateBucketConfiguration(v *CreateBucketConfiguration) *CreateBucketInput {
6891	s.CreateBucketConfiguration = v
6892	return s
6893}
6894
6895// SetGrantFullControl sets the GrantFullControl field's value.
6896func (s *CreateBucketInput) SetGrantFullControl(v string) *CreateBucketInput {
6897	s.GrantFullControl = &v
6898	return s
6899}
6900
6901// SetGrantRead sets the GrantRead field's value.
6902func (s *CreateBucketInput) SetGrantRead(v string) *CreateBucketInput {
6903	s.GrantRead = &v
6904	return s
6905}
6906
6907// SetGrantReadACP sets the GrantReadACP field's value.
6908func (s *CreateBucketInput) SetGrantReadACP(v string) *CreateBucketInput {
6909	s.GrantReadACP = &v
6910	return s
6911}
6912
6913// SetGrantWrite sets the GrantWrite field's value.
6914func (s *CreateBucketInput) SetGrantWrite(v string) *CreateBucketInput {
6915	s.GrantWrite = &v
6916	return s
6917}
6918
6919// SetGrantWriteACP sets the GrantWriteACP field's value.
6920func (s *CreateBucketInput) SetGrantWriteACP(v string) *CreateBucketInput {
6921	s.GrantWriteACP = &v
6922	return s
6923}
6924
6925// SetObjectLockEnabledForBucket sets the ObjectLockEnabledForBucket field's value.
6926func (s *CreateBucketInput) SetObjectLockEnabledForBucket(v bool) *CreateBucketInput {
6927	s.ObjectLockEnabledForBucket = &v
6928	return s
6929}
6930
6931// SetOutpostId sets the OutpostId field's value.
6932func (s *CreateBucketInput) SetOutpostId(v string) *CreateBucketInput {
6933	s.OutpostId = &v
6934	return s
6935}
6936
6937func (s *CreateBucketInput) getOutpostID() (string, error) {
6938	if s.OutpostId == nil {
6939		return "", fmt.Errorf("member OutpostId is nil")
6940	}
6941	return *s.OutpostId, nil
6942}
6943
6944func (s *CreateBucketInput) hasOutpostID() bool {
6945	if s.OutpostId == nil {
6946		return false
6947	}
6948	return true
6949}
6950
6951type CreateBucketOutput struct {
6952	_ struct{} `type:"structure"`
6953
6954	// The Amazon Resource Name (ARN) of the bucket.
6955	//
6956	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6957	// must specify the name and the x-amz-outpost-id as well.
6958	//
6959	// For using this parameter with S3 on Outposts with the Amazon Web Services
6960	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
6961	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6962	// For example, to access the bucket reports through outpost my-outpost owned
6963	// 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.
6964	// The value must be URL encoded.
6965	BucketArn *string `min:"4" type:"string"`
6966
6967	// The location of the bucket.
6968	Location *string `location:"header" locationName:"Location" type:"string"`
6969}
6970
6971// String returns the string representation.
6972//
6973// API parameter values that are decorated as "sensitive" in the API will not
6974// be included in the string output. The member name will be present, but the
6975// value will be replaced with "sensitive".
6976func (s CreateBucketOutput) String() string {
6977	return awsutil.Prettify(s)
6978}
6979
6980// GoString returns the string representation.
6981//
6982// API parameter values that are decorated as "sensitive" in the API will not
6983// be included in the string output. The member name will be present, but the
6984// value will be replaced with "sensitive".
6985func (s CreateBucketOutput) GoString() string {
6986	return s.String()
6987}
6988
6989// SetBucketArn sets the BucketArn field's value.
6990func (s *CreateBucketOutput) SetBucketArn(v string) *CreateBucketOutput {
6991	s.BucketArn = &v
6992	return s
6993}
6994
6995// SetLocation sets the Location field's value.
6996func (s *CreateBucketOutput) SetLocation(v string) *CreateBucketOutput {
6997	s.Location = &v
6998	return s
6999}
7000
7001type CreateJobInput struct {
7002	_ struct{} `locationName:"CreateJobRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
7003
7004	// The Amazon Web Services account ID that creates the job.
7005	//
7006	// AccountId is a required field
7007	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7008
7009	// An idempotency token to ensure that you don't accidentally submit the same
7010	// request twice. You can use any string up to the maximum length.
7011	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
7012
7013	// Indicates whether confirmation is required before Amazon S3 runs the job.
7014	// Confirmation is only required for jobs created through the Amazon S3 console.
7015	ConfirmationRequired *bool `type:"boolean"`
7016
7017	// A description for this job. You can use any string within the permitted length.
7018	// Descriptions don't need to be unique and can be used for multiple jobs.
7019	Description *string `min:"1" type:"string"`
7020
7021	// Configuration parameters for the manifest.
7022	//
7023	// Manifest is a required field
7024	Manifest *JobManifest `type:"structure" required:"true"`
7025
7026	// The action that you want this job to perform on every object listed in the
7027	// manifest. For more information about the available actions, see Operations
7028	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-actions.html)
7029	// in the Amazon S3 User Guide.
7030	//
7031	// Operation is a required field
7032	Operation *JobOperation `type:"structure" required:"true"`
7033
7034	// The numerical priority for this job. Higher numbers indicate higher priority.
7035	//
7036	// Priority is a required field
7037	Priority *int64 `type:"integer" required:"true"`
7038
7039	// Configuration parameters for the optional job-completion report.
7040	//
7041	// Report is a required field
7042	Report *JobReport `type:"structure" required:"true"`
7043
7044	// The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
7045	// role that Batch Operations will use to run this job's action on every object
7046	// in the manifest.
7047	//
7048	// RoleArn is a required field
7049	RoleArn *string `min:"1" type:"string" required:"true"`
7050
7051	// A set of tags to associate with the S3 Batch Operations job. This is an optional
7052	// parameter.
7053	Tags []*S3Tag `type:"list"`
7054}
7055
7056// String returns the string representation.
7057//
7058// API parameter values that are decorated as "sensitive" in the API will not
7059// be included in the string output. The member name will be present, but the
7060// value will be replaced with "sensitive".
7061func (s CreateJobInput) String() string {
7062	return awsutil.Prettify(s)
7063}
7064
7065// GoString returns the string representation.
7066//
7067// API parameter values that are decorated as "sensitive" in the API will not
7068// be included in the string output. The member name will be present, but the
7069// value will be replaced with "sensitive".
7070func (s CreateJobInput) GoString() string {
7071	return s.String()
7072}
7073
7074// Validate inspects the fields of the type to determine if they are valid.
7075func (s *CreateJobInput) Validate() error {
7076	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
7077	if s.AccountId == nil {
7078		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7079	}
7080	if s.AccountId != nil && len(*s.AccountId) < 1 {
7081		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7082	}
7083	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7084		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7085	}
7086	if s.Description != nil && len(*s.Description) < 1 {
7087		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
7088	}
7089	if s.Manifest == nil {
7090		invalidParams.Add(request.NewErrParamRequired("Manifest"))
7091	}
7092	if s.Operation == nil {
7093		invalidParams.Add(request.NewErrParamRequired("Operation"))
7094	}
7095	if s.Priority == nil {
7096		invalidParams.Add(request.NewErrParamRequired("Priority"))
7097	}
7098	if s.Report == nil {
7099		invalidParams.Add(request.NewErrParamRequired("Report"))
7100	}
7101	if s.RoleArn == nil {
7102		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
7103	}
7104	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
7105		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
7106	}
7107	if s.Manifest != nil {
7108		if err := s.Manifest.Validate(); err != nil {
7109			invalidParams.AddNested("Manifest", err.(request.ErrInvalidParams))
7110		}
7111	}
7112	if s.Operation != nil {
7113		if err := s.Operation.Validate(); err != nil {
7114			invalidParams.AddNested("Operation", err.(request.ErrInvalidParams))
7115		}
7116	}
7117	if s.Report != nil {
7118		if err := s.Report.Validate(); err != nil {
7119			invalidParams.AddNested("Report", err.(request.ErrInvalidParams))
7120		}
7121	}
7122	if s.Tags != nil {
7123		for i, v := range s.Tags {
7124			if v == nil {
7125				continue
7126			}
7127			if err := v.Validate(); err != nil {
7128				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7129			}
7130		}
7131	}
7132
7133	if invalidParams.Len() > 0 {
7134		return invalidParams
7135	}
7136	return nil
7137}
7138
7139// SetAccountId sets the AccountId field's value.
7140func (s *CreateJobInput) SetAccountId(v string) *CreateJobInput {
7141	s.AccountId = &v
7142	return s
7143}
7144
7145// SetClientRequestToken sets the ClientRequestToken field's value.
7146func (s *CreateJobInput) SetClientRequestToken(v string) *CreateJobInput {
7147	s.ClientRequestToken = &v
7148	return s
7149}
7150
7151// SetConfirmationRequired sets the ConfirmationRequired field's value.
7152func (s *CreateJobInput) SetConfirmationRequired(v bool) *CreateJobInput {
7153	s.ConfirmationRequired = &v
7154	return s
7155}
7156
7157// SetDescription sets the Description field's value.
7158func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
7159	s.Description = &v
7160	return s
7161}
7162
7163// SetManifest sets the Manifest field's value.
7164func (s *CreateJobInput) SetManifest(v *JobManifest) *CreateJobInput {
7165	s.Manifest = v
7166	return s
7167}
7168
7169// SetOperation sets the Operation field's value.
7170func (s *CreateJobInput) SetOperation(v *JobOperation) *CreateJobInput {
7171	s.Operation = v
7172	return s
7173}
7174
7175// SetPriority sets the Priority field's value.
7176func (s *CreateJobInput) SetPriority(v int64) *CreateJobInput {
7177	s.Priority = &v
7178	return s
7179}
7180
7181// SetReport sets the Report field's value.
7182func (s *CreateJobInput) SetReport(v *JobReport) *CreateJobInput {
7183	s.Report = v
7184	return s
7185}
7186
7187// SetRoleArn sets the RoleArn field's value.
7188func (s *CreateJobInput) SetRoleArn(v string) *CreateJobInput {
7189	s.RoleArn = &v
7190	return s
7191}
7192
7193// SetTags sets the Tags field's value.
7194func (s *CreateJobInput) SetTags(v []*S3Tag) *CreateJobInput {
7195	s.Tags = v
7196	return s
7197}
7198
7199func (s *CreateJobInput) hostLabels() map[string]string {
7200	return map[string]string{
7201		"AccountId": aws.StringValue(s.AccountId),
7202	}
7203}
7204
7205type CreateJobOutput struct {
7206	_ struct{} `type:"structure"`
7207
7208	// The ID for this job. Amazon S3 generates this ID automatically and returns
7209	// it after a successful Create Job request.
7210	JobId *string `min:"5" type:"string"`
7211}
7212
7213// String returns the string representation.
7214//
7215// API parameter values that are decorated as "sensitive" in the API will not
7216// be included in the string output. The member name will be present, but the
7217// value will be replaced with "sensitive".
7218func (s CreateJobOutput) String() string {
7219	return awsutil.Prettify(s)
7220}
7221
7222// GoString returns the string representation.
7223//
7224// API parameter values that are decorated as "sensitive" in the API will not
7225// be included in the string output. The member name will be present, but the
7226// value will be replaced with "sensitive".
7227func (s CreateJobOutput) GoString() string {
7228	return s.String()
7229}
7230
7231// SetJobId sets the JobId field's value.
7232func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
7233	s.JobId = &v
7234	return s
7235}
7236
7237type CreateMultiRegionAccessPointInput struct {
7238	_ struct{} `locationName:"CreateMultiRegionAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
7239
7240	// The Amazon Web Services account ID for the owner of the Multi-Region Access
7241	// Point. The owner of the Multi-Region Access Point also must own the underlying
7242	// buckets.
7243	//
7244	// AccountId is a required field
7245	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7246
7247	// An idempotency token used to identify the request and guarantee that requests
7248	// are unique.
7249	ClientToken *string `type:"string" idempotencyToken:"true"`
7250
7251	// A container element containing details about the Multi-Region Access Point.
7252	//
7253	// Details is a required field
7254	Details *CreateMultiRegionAccessPointInput_ `type:"structure" required:"true"`
7255}
7256
7257// String returns the string representation.
7258//
7259// API parameter values that are decorated as "sensitive" in the API will not
7260// be included in the string output. The member name will be present, but the
7261// value will be replaced with "sensitive".
7262func (s CreateMultiRegionAccessPointInput) String() string {
7263	return awsutil.Prettify(s)
7264}
7265
7266// GoString returns the string representation.
7267//
7268// API parameter values that are decorated as "sensitive" in the API will not
7269// be included in the string output. The member name will be present, but the
7270// value will be replaced with "sensitive".
7271func (s CreateMultiRegionAccessPointInput) GoString() string {
7272	return s.String()
7273}
7274
7275// Validate inspects the fields of the type to determine if they are valid.
7276func (s *CreateMultiRegionAccessPointInput) Validate() error {
7277	invalidParams := request.ErrInvalidParams{Context: "CreateMultiRegionAccessPointInput"}
7278	if s.AccountId == nil {
7279		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7280	}
7281	if s.AccountId != nil && len(*s.AccountId) < 1 {
7282		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7283	}
7284	if s.Details == nil {
7285		invalidParams.Add(request.NewErrParamRequired("Details"))
7286	}
7287	if s.Details != nil {
7288		if err := s.Details.Validate(); err != nil {
7289			invalidParams.AddNested("Details", err.(request.ErrInvalidParams))
7290		}
7291	}
7292
7293	if invalidParams.Len() > 0 {
7294		return invalidParams
7295	}
7296	return nil
7297}
7298
7299// SetAccountId sets the AccountId field's value.
7300func (s *CreateMultiRegionAccessPointInput) SetAccountId(v string) *CreateMultiRegionAccessPointInput {
7301	s.AccountId = &v
7302	return s
7303}
7304
7305// SetClientToken sets the ClientToken field's value.
7306func (s *CreateMultiRegionAccessPointInput) SetClientToken(v string) *CreateMultiRegionAccessPointInput {
7307	s.ClientToken = &v
7308	return s
7309}
7310
7311// SetDetails sets the Details field's value.
7312func (s *CreateMultiRegionAccessPointInput) SetDetails(v *CreateMultiRegionAccessPointInput_) *CreateMultiRegionAccessPointInput {
7313	s.Details = v
7314	return s
7315}
7316
7317func (s *CreateMultiRegionAccessPointInput) hostLabels() map[string]string {
7318	return map[string]string{
7319		"AccountId": aws.StringValue(s.AccountId),
7320	}
7321}
7322
7323// A container for the information associated with a CreateMultiRegionAccessPoint
7324// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)
7325// request.
7326type CreateMultiRegionAccessPointInput_ struct {
7327	_ struct{} `type:"structure"`
7328
7329	// The name of the Multi-Region Access Point associated with this request.
7330	//
7331	// Name is a required field
7332	Name *string `type:"string" required:"true"`
7333
7334	// The PublicAccessBlock configuration that you want to apply to this Amazon
7335	// S3 account. You can enable the configuration options in any combination.
7336	// For more information about when Amazon S3 considers a bucket or object public,
7337	// 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)
7338	// in the Amazon S3 User Guide.
7339	//
7340	// This is not supported for Amazon S3 on Outposts.
7341	PublicAccessBlock *PublicAccessBlockConfiguration `type:"structure"`
7342
7343	// The buckets in different Regions that are associated with the Multi-Region
7344	// Access Point.
7345	//
7346	// Regions is a required field
7347	Regions []*Region `locationNameList:"Region" type:"list" required:"true"`
7348}
7349
7350// String returns the string representation.
7351//
7352// API parameter values that are decorated as "sensitive" in the API will not
7353// be included in the string output. The member name will be present, but the
7354// value will be replaced with "sensitive".
7355func (s CreateMultiRegionAccessPointInput_) String() string {
7356	return awsutil.Prettify(s)
7357}
7358
7359// GoString returns the string representation.
7360//
7361// API parameter values that are decorated as "sensitive" in the API will not
7362// be included in the string output. The member name will be present, but the
7363// value will be replaced with "sensitive".
7364func (s CreateMultiRegionAccessPointInput_) GoString() string {
7365	return s.String()
7366}
7367
7368// Validate inspects the fields of the type to determine if they are valid.
7369func (s *CreateMultiRegionAccessPointInput_) Validate() error {
7370	invalidParams := request.ErrInvalidParams{Context: "CreateMultiRegionAccessPointInput_"}
7371	if s.Name == nil {
7372		invalidParams.Add(request.NewErrParamRequired("Name"))
7373	}
7374	if s.Regions == nil {
7375		invalidParams.Add(request.NewErrParamRequired("Regions"))
7376	}
7377	if s.Regions != nil {
7378		for i, v := range s.Regions {
7379			if v == nil {
7380				continue
7381			}
7382			if err := v.Validate(); err != nil {
7383				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Regions", i), err.(request.ErrInvalidParams))
7384			}
7385		}
7386	}
7387
7388	if invalidParams.Len() > 0 {
7389		return invalidParams
7390	}
7391	return nil
7392}
7393
7394// SetName sets the Name field's value.
7395func (s *CreateMultiRegionAccessPointInput_) SetName(v string) *CreateMultiRegionAccessPointInput_ {
7396	s.Name = &v
7397	return s
7398}
7399
7400// SetPublicAccessBlock sets the PublicAccessBlock field's value.
7401func (s *CreateMultiRegionAccessPointInput_) SetPublicAccessBlock(v *PublicAccessBlockConfiguration) *CreateMultiRegionAccessPointInput_ {
7402	s.PublicAccessBlock = v
7403	return s
7404}
7405
7406// SetRegions sets the Regions field's value.
7407func (s *CreateMultiRegionAccessPointInput_) SetRegions(v []*Region) *CreateMultiRegionAccessPointInput_ {
7408	s.Regions = v
7409	return s
7410}
7411
7412type CreateMultiRegionAccessPointOutput struct {
7413	_ struct{} `type:"structure"`
7414
7415	// The request token associated with the request. You can use this token with
7416	// DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
7417	// to determine the status of asynchronous requests.
7418	RequestTokenARN *string `min:"1" type:"string"`
7419}
7420
7421// String returns the string representation.
7422//
7423// API parameter values that are decorated as "sensitive" in the API will not
7424// be included in the string output. The member name will be present, but the
7425// value will be replaced with "sensitive".
7426func (s CreateMultiRegionAccessPointOutput) String() string {
7427	return awsutil.Prettify(s)
7428}
7429
7430// GoString returns the string representation.
7431//
7432// API parameter values that are decorated as "sensitive" in the API will not
7433// be included in the string output. The member name will be present, but the
7434// value will be replaced with "sensitive".
7435func (s CreateMultiRegionAccessPointOutput) GoString() string {
7436	return s.String()
7437}
7438
7439// SetRequestTokenARN sets the RequestTokenARN field's value.
7440func (s *CreateMultiRegionAccessPointOutput) SetRequestTokenARN(v string) *CreateMultiRegionAccessPointOutput {
7441	s.RequestTokenARN = &v
7442	return s
7443}
7444
7445type DeleteAccessPointForObjectLambdaInput struct {
7446	_ struct{} `locationName:"DeleteAccessPointForObjectLambdaRequest" type:"structure"`
7447
7448	// The account ID for the account that owns the specified Object Lambda Access
7449	// Point.
7450	//
7451	// AccountId is a required field
7452	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7453
7454	// The name of the access point you want to delete.
7455	//
7456	// Name is a required field
7457	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7458}
7459
7460// String returns the string representation.
7461//
7462// API parameter values that are decorated as "sensitive" in the API will not
7463// be included in the string output. The member name will be present, but the
7464// value will be replaced with "sensitive".
7465func (s DeleteAccessPointForObjectLambdaInput) String() string {
7466	return awsutil.Prettify(s)
7467}
7468
7469// GoString returns the string representation.
7470//
7471// API parameter values that are decorated as "sensitive" in the API will not
7472// be included in the string output. The member name will be present, but the
7473// value will be replaced with "sensitive".
7474func (s DeleteAccessPointForObjectLambdaInput) GoString() string {
7475	return s.String()
7476}
7477
7478// Validate inspects the fields of the type to determine if they are valid.
7479func (s *DeleteAccessPointForObjectLambdaInput) Validate() error {
7480	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointForObjectLambdaInput"}
7481	if s.AccountId == nil {
7482		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7483	}
7484	if s.AccountId != nil && len(*s.AccountId) < 1 {
7485		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7486	}
7487	if s.Name == nil {
7488		invalidParams.Add(request.NewErrParamRequired("Name"))
7489	}
7490	if s.Name != nil && len(*s.Name) < 3 {
7491		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7492	}
7493
7494	if invalidParams.Len() > 0 {
7495		return invalidParams
7496	}
7497	return nil
7498}
7499
7500// SetAccountId sets the AccountId field's value.
7501func (s *DeleteAccessPointForObjectLambdaInput) SetAccountId(v string) *DeleteAccessPointForObjectLambdaInput {
7502	s.AccountId = &v
7503	return s
7504}
7505
7506// SetName sets the Name field's value.
7507func (s *DeleteAccessPointForObjectLambdaInput) SetName(v string) *DeleteAccessPointForObjectLambdaInput {
7508	s.Name = &v
7509	return s
7510}
7511
7512func (s *DeleteAccessPointForObjectLambdaInput) hostLabels() map[string]string {
7513	return map[string]string{
7514		"AccountId": aws.StringValue(s.AccountId),
7515	}
7516}
7517
7518type DeleteAccessPointForObjectLambdaOutput struct {
7519	_ struct{} `type:"structure"`
7520}
7521
7522// String returns the string representation.
7523//
7524// API parameter values that are decorated as "sensitive" in the API will not
7525// be included in the string output. The member name will be present, but the
7526// value will be replaced with "sensitive".
7527func (s DeleteAccessPointForObjectLambdaOutput) String() string {
7528	return awsutil.Prettify(s)
7529}
7530
7531// GoString returns the string representation.
7532//
7533// API parameter values that are decorated as "sensitive" in the API will not
7534// be included in the string output. The member name will be present, but the
7535// value will be replaced with "sensitive".
7536func (s DeleteAccessPointForObjectLambdaOutput) GoString() string {
7537	return s.String()
7538}
7539
7540type DeleteAccessPointInput struct {
7541	_ struct{} `locationName:"DeleteAccessPointRequest" type:"structure"`
7542
7543	// The account ID for the account that owns the specified access point.
7544	//
7545	// AccountId is a required field
7546	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7547
7548	// The name of the access point you want to delete.
7549	//
7550	// For using this parameter with Amazon S3 on Outposts with the REST API, you
7551	// must specify the name and the x-amz-outpost-id as well.
7552	//
7553	// For using this parameter with S3 on Outposts with the Amazon Web Services
7554	// SDK and CLI, you must specify the ARN of the access point accessed in the
7555	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
7556	// For example, to access the access point reports-ap through outpost my-outpost
7557	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
7558	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
7559	// The value must be URL encoded.
7560	//
7561	// Name is a required field
7562	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7563}
7564
7565// String returns the string representation.
7566//
7567// API parameter values that are decorated as "sensitive" in the API will not
7568// be included in the string output. The member name will be present, but the
7569// value will be replaced with "sensitive".
7570func (s DeleteAccessPointInput) String() string {
7571	return awsutil.Prettify(s)
7572}
7573
7574// GoString returns the string representation.
7575//
7576// API parameter values that are decorated as "sensitive" in the API will not
7577// be included in the string output. The member name will be present, but the
7578// value will be replaced with "sensitive".
7579func (s DeleteAccessPointInput) GoString() string {
7580	return s.String()
7581}
7582
7583// Validate inspects the fields of the type to determine if they are valid.
7584func (s *DeleteAccessPointInput) Validate() error {
7585	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointInput"}
7586	if s.AccountId == nil {
7587		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7588	}
7589	if s.AccountId != nil && len(*s.AccountId) < 1 {
7590		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7591	}
7592	if s.Name == nil {
7593		invalidParams.Add(request.NewErrParamRequired("Name"))
7594	}
7595	if s.Name != nil && len(*s.Name) < 3 {
7596		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7597	}
7598
7599	if invalidParams.Len() > 0 {
7600		return invalidParams
7601	}
7602	return nil
7603}
7604
7605// SetAccountId sets the AccountId field's value.
7606func (s *DeleteAccessPointInput) SetAccountId(v string) *DeleteAccessPointInput {
7607	s.AccountId = &v
7608	return s
7609}
7610
7611// SetName sets the Name field's value.
7612func (s *DeleteAccessPointInput) SetName(v string) *DeleteAccessPointInput {
7613	s.Name = &v
7614	return s
7615}
7616
7617func (s *DeleteAccessPointInput) hostLabels() map[string]string {
7618	return map[string]string{
7619		"AccountId": aws.StringValue(s.AccountId),
7620	}
7621}
7622
7623func (s *DeleteAccessPointInput) getEndpointARN() (arn.Resource, error) {
7624	if s.Name == nil {
7625		return nil, fmt.Errorf("member Name is nil")
7626	}
7627	return parseEndpointARN(*s.Name)
7628}
7629
7630func (s *DeleteAccessPointInput) hasEndpointARN() bool {
7631	if s.Name == nil {
7632		return false
7633	}
7634	return arn.IsARN(*s.Name)
7635}
7636
7637// updateArnableField updates the value of the input field that
7638// takes an ARN as an input. This method is useful to backfill
7639// the parsed resource name from ARN into the input member.
7640// It returns a pointer to a modified copy of input and an error.
7641// Note that original input is not modified.
7642func (s DeleteAccessPointInput) updateArnableField(v string) (interface{}, error) {
7643	if s.Name == nil {
7644		return nil, fmt.Errorf("member Name is nil")
7645	}
7646	s.Name = aws.String(v)
7647	return &s, nil
7648}
7649
7650// updateAccountID returns a pointer to a modified copy of input,
7651// if account id is not provided, we update the account id in modified input
7652// if account id is provided, but doesn't match with the one in ARN, we throw an error
7653// if account id is not updated, we return nil. Note that original input is not modified.
7654func (s DeleteAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
7655	if s.AccountId == nil {
7656		s.AccountId = aws.String(accountId)
7657		return &s, nil
7658	} else if *s.AccountId != accountId {
7659		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
7660	}
7661	return nil, nil
7662}
7663
7664type DeleteAccessPointOutput struct {
7665	_ struct{} `type:"structure"`
7666}
7667
7668// String returns the string representation.
7669//
7670// API parameter values that are decorated as "sensitive" in the API will not
7671// be included in the string output. The member name will be present, but the
7672// value will be replaced with "sensitive".
7673func (s DeleteAccessPointOutput) String() string {
7674	return awsutil.Prettify(s)
7675}
7676
7677// GoString returns the string representation.
7678//
7679// API parameter values that are decorated as "sensitive" in the API will not
7680// be included in the string output. The member name will be present, but the
7681// value will be replaced with "sensitive".
7682func (s DeleteAccessPointOutput) GoString() string {
7683	return s.String()
7684}
7685
7686type DeleteAccessPointPolicyForObjectLambdaInput struct {
7687	_ struct{} `locationName:"DeleteAccessPointPolicyForObjectLambdaRequest" type:"structure"`
7688
7689	// The account ID for the account that owns the specified Object Lambda Access
7690	// Point.
7691	//
7692	// AccountId is a required field
7693	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7694
7695	// The name of the Object Lambda Access Point you want to delete the policy
7696	// for.
7697	//
7698	// Name is a required field
7699	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7700}
7701
7702// String returns the string representation.
7703//
7704// API parameter values that are decorated as "sensitive" in the API will not
7705// be included in the string output. The member name will be present, but the
7706// value will be replaced with "sensitive".
7707func (s DeleteAccessPointPolicyForObjectLambdaInput) String() string {
7708	return awsutil.Prettify(s)
7709}
7710
7711// GoString returns the string representation.
7712//
7713// API parameter values that are decorated as "sensitive" in the API will not
7714// be included in the string output. The member name will be present, but the
7715// value will be replaced with "sensitive".
7716func (s DeleteAccessPointPolicyForObjectLambdaInput) GoString() string {
7717	return s.String()
7718}
7719
7720// Validate inspects the fields of the type to determine if they are valid.
7721func (s *DeleteAccessPointPolicyForObjectLambdaInput) Validate() error {
7722	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyForObjectLambdaInput"}
7723	if s.AccountId == nil {
7724		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7725	}
7726	if s.AccountId != nil && len(*s.AccountId) < 1 {
7727		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7728	}
7729	if s.Name == nil {
7730		invalidParams.Add(request.NewErrParamRequired("Name"))
7731	}
7732	if s.Name != nil && len(*s.Name) < 3 {
7733		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7734	}
7735
7736	if invalidParams.Len() > 0 {
7737		return invalidParams
7738	}
7739	return nil
7740}
7741
7742// SetAccountId sets the AccountId field's value.
7743func (s *DeleteAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *DeleteAccessPointPolicyForObjectLambdaInput {
7744	s.AccountId = &v
7745	return s
7746}
7747
7748// SetName sets the Name field's value.
7749func (s *DeleteAccessPointPolicyForObjectLambdaInput) SetName(v string) *DeleteAccessPointPolicyForObjectLambdaInput {
7750	s.Name = &v
7751	return s
7752}
7753
7754func (s *DeleteAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string {
7755	return map[string]string{
7756		"AccountId": aws.StringValue(s.AccountId),
7757	}
7758}
7759
7760type DeleteAccessPointPolicyForObjectLambdaOutput struct {
7761	_ struct{} `type:"structure"`
7762}
7763
7764// String returns the string representation.
7765//
7766// API parameter values that are decorated as "sensitive" in the API will not
7767// be included in the string output. The member name will be present, but the
7768// value will be replaced with "sensitive".
7769func (s DeleteAccessPointPolicyForObjectLambdaOutput) String() string {
7770	return awsutil.Prettify(s)
7771}
7772
7773// GoString returns the string representation.
7774//
7775// API parameter values that are decorated as "sensitive" in the API will not
7776// be included in the string output. The member name will be present, but the
7777// value will be replaced with "sensitive".
7778func (s DeleteAccessPointPolicyForObjectLambdaOutput) GoString() string {
7779	return s.String()
7780}
7781
7782type DeleteAccessPointPolicyInput struct {
7783	_ struct{} `locationName:"DeleteAccessPointPolicyRequest" type:"structure"`
7784
7785	// The account ID for the account that owns the specified access point.
7786	//
7787	// AccountId is a required field
7788	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7789
7790	// The name of the access point whose policy you want to delete.
7791	//
7792	// For using this parameter with Amazon S3 on Outposts with the REST API, you
7793	// must specify the name and the x-amz-outpost-id as well.
7794	//
7795	// For using this parameter with S3 on Outposts with the Amazon Web Services
7796	// SDK and CLI, you must specify the ARN of the access point accessed in the
7797	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
7798	// For example, to access the access point reports-ap through outpost my-outpost
7799	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
7800	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
7801	// The value must be URL encoded.
7802	//
7803	// Name is a required field
7804	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7805}
7806
7807// String returns the string representation.
7808//
7809// API parameter values that are decorated as "sensitive" in the API will not
7810// be included in the string output. The member name will be present, but the
7811// value will be replaced with "sensitive".
7812func (s DeleteAccessPointPolicyInput) String() string {
7813	return awsutil.Prettify(s)
7814}
7815
7816// GoString returns the string representation.
7817//
7818// API parameter values that are decorated as "sensitive" in the API will not
7819// be included in the string output. The member name will be present, but the
7820// value will be replaced with "sensitive".
7821func (s DeleteAccessPointPolicyInput) GoString() string {
7822	return s.String()
7823}
7824
7825// Validate inspects the fields of the type to determine if they are valid.
7826func (s *DeleteAccessPointPolicyInput) Validate() error {
7827	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyInput"}
7828	if s.AccountId == nil {
7829		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7830	}
7831	if s.AccountId != nil && len(*s.AccountId) < 1 {
7832		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7833	}
7834	if s.Name == nil {
7835		invalidParams.Add(request.NewErrParamRequired("Name"))
7836	}
7837	if s.Name != nil && len(*s.Name) < 3 {
7838		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7839	}
7840
7841	if invalidParams.Len() > 0 {
7842		return invalidParams
7843	}
7844	return nil
7845}
7846
7847// SetAccountId sets the AccountId field's value.
7848func (s *DeleteAccessPointPolicyInput) SetAccountId(v string) *DeleteAccessPointPolicyInput {
7849	s.AccountId = &v
7850	return s
7851}
7852
7853// SetName sets the Name field's value.
7854func (s *DeleteAccessPointPolicyInput) SetName(v string) *DeleteAccessPointPolicyInput {
7855	s.Name = &v
7856	return s
7857}
7858
7859func (s *DeleteAccessPointPolicyInput) hostLabels() map[string]string {
7860	return map[string]string{
7861		"AccountId": aws.StringValue(s.AccountId),
7862	}
7863}
7864
7865func (s *DeleteAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
7866	if s.Name == nil {
7867		return nil, fmt.Errorf("member Name is nil")
7868	}
7869	return parseEndpointARN(*s.Name)
7870}
7871
7872func (s *DeleteAccessPointPolicyInput) hasEndpointARN() bool {
7873	if s.Name == nil {
7874		return false
7875	}
7876	return arn.IsARN(*s.Name)
7877}
7878
7879// updateArnableField updates the value of the input field that
7880// takes an ARN as an input. This method is useful to backfill
7881// the parsed resource name from ARN into the input member.
7882// It returns a pointer to a modified copy of input and an error.
7883// Note that original input is not modified.
7884func (s DeleteAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
7885	if s.Name == nil {
7886		return nil, fmt.Errorf("member Name is nil")
7887	}
7888	s.Name = aws.String(v)
7889	return &s, nil
7890}
7891
7892// updateAccountID returns a pointer to a modified copy of input,
7893// if account id is not provided, we update the account id in modified input
7894// if account id is provided, but doesn't match with the one in ARN, we throw an error
7895// if account id is not updated, we return nil. Note that original input is not modified.
7896func (s DeleteAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
7897	if s.AccountId == nil {
7898		s.AccountId = aws.String(accountId)
7899		return &s, nil
7900	} else if *s.AccountId != accountId {
7901		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
7902	}
7903	return nil, nil
7904}
7905
7906type DeleteAccessPointPolicyOutput struct {
7907	_ struct{} `type:"structure"`
7908}
7909
7910// String returns the string representation.
7911//
7912// API parameter values that are decorated as "sensitive" in the API will not
7913// be included in the string output. The member name will be present, but the
7914// value will be replaced with "sensitive".
7915func (s DeleteAccessPointPolicyOutput) String() string {
7916	return awsutil.Prettify(s)
7917}
7918
7919// GoString returns the string representation.
7920//
7921// API parameter values that are decorated as "sensitive" in the API will not
7922// be included in the string output. The member name will be present, but the
7923// value will be replaced with "sensitive".
7924func (s DeleteAccessPointPolicyOutput) GoString() string {
7925	return s.String()
7926}
7927
7928type DeleteBucketInput struct {
7929	_ struct{} `locationName:"DeleteBucketRequest" type:"structure"`
7930
7931	// The account ID that owns the Outposts bucket.
7932	//
7933	// AccountId is a required field
7934	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7935
7936	// Specifies the bucket being deleted.
7937	//
7938	// For using this parameter with Amazon S3 on Outposts with the REST API, you
7939	// must specify the name and the x-amz-outpost-id as well.
7940	//
7941	// For using this parameter with S3 on Outposts with the Amazon Web Services
7942	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
7943	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
7944	// For example, to access the bucket reports through outpost my-outpost owned
7945	// 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.
7946	// The value must be URL encoded.
7947	//
7948	// Bucket is a required field
7949	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7950}
7951
7952// String returns the string representation.
7953//
7954// API parameter values that are decorated as "sensitive" in the API will not
7955// be included in the string output. The member name will be present, but the
7956// value will be replaced with "sensitive".
7957func (s DeleteBucketInput) String() string {
7958	return awsutil.Prettify(s)
7959}
7960
7961// GoString returns the string representation.
7962//
7963// API parameter values that are decorated as "sensitive" in the API will not
7964// be included in the string output. The member name will be present, but the
7965// value will be replaced with "sensitive".
7966func (s DeleteBucketInput) GoString() string {
7967	return s.String()
7968}
7969
7970// Validate inspects the fields of the type to determine if they are valid.
7971func (s *DeleteBucketInput) Validate() error {
7972	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketInput"}
7973	if s.AccountId == nil {
7974		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7975	}
7976	if s.AccountId != nil && len(*s.AccountId) < 1 {
7977		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7978	}
7979	if s.Bucket == nil {
7980		invalidParams.Add(request.NewErrParamRequired("Bucket"))
7981	}
7982	if s.Bucket != nil && len(*s.Bucket) < 3 {
7983		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
7984	}
7985
7986	if invalidParams.Len() > 0 {
7987		return invalidParams
7988	}
7989	return nil
7990}
7991
7992// SetAccountId sets the AccountId field's value.
7993func (s *DeleteBucketInput) SetAccountId(v string) *DeleteBucketInput {
7994	s.AccountId = &v
7995	return s
7996}
7997
7998// SetBucket sets the Bucket field's value.
7999func (s *DeleteBucketInput) SetBucket(v string) *DeleteBucketInput {
8000	s.Bucket = &v
8001	return s
8002}
8003
8004func (s *DeleteBucketInput) hostLabels() map[string]string {
8005	return map[string]string{
8006		"AccountId": aws.StringValue(s.AccountId),
8007	}
8008}
8009
8010func (s *DeleteBucketInput) getEndpointARN() (arn.Resource, error) {
8011	if s.Bucket == nil {
8012		return nil, fmt.Errorf("member Bucket is nil")
8013	}
8014	return parseEndpointARN(*s.Bucket)
8015}
8016
8017func (s *DeleteBucketInput) hasEndpointARN() bool {
8018	if s.Bucket == nil {
8019		return false
8020	}
8021	return arn.IsARN(*s.Bucket)
8022}
8023
8024// updateArnableField updates the value of the input field that
8025// takes an ARN as an input. This method is useful to backfill
8026// the parsed resource name from ARN into the input member.
8027// It returns a pointer to a modified copy of input and an error.
8028// Note that original input is not modified.
8029func (s DeleteBucketInput) updateArnableField(v string) (interface{}, error) {
8030	if s.Bucket == nil {
8031		return nil, fmt.Errorf("member Bucket is nil")
8032	}
8033	s.Bucket = aws.String(v)
8034	return &s, nil
8035}
8036
8037// updateAccountID returns a pointer to a modified copy of input,
8038// if account id is not provided, we update the account id in modified input
8039// if account id is provided, but doesn't match with the one in ARN, we throw an error
8040// if account id is not updated, we return nil. Note that original input is not modified.
8041func (s DeleteBucketInput) updateAccountID(accountId string) (interface{}, error) {
8042	if s.AccountId == nil {
8043		s.AccountId = aws.String(accountId)
8044		return &s, nil
8045	} else if *s.AccountId != accountId {
8046		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8047	}
8048	return nil, nil
8049}
8050
8051type DeleteBucketLifecycleConfigurationInput struct {
8052	_ struct{} `locationName:"DeleteBucketLifecycleConfigurationRequest" type:"structure"`
8053
8054	// The account ID of the lifecycle configuration to delete.
8055	//
8056	// AccountId is a required field
8057	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8058
8059	// Specifies the bucket.
8060	//
8061	// For using this parameter with Amazon S3 on Outposts with the REST API, you
8062	// must specify the name and the x-amz-outpost-id as well.
8063	//
8064	// For using this parameter with S3 on Outposts with the Amazon Web Services
8065	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
8066	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
8067	// For example, to access the bucket reports through outpost my-outpost owned
8068	// 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.
8069	// The value must be URL encoded.
8070	//
8071	// Bucket is a required field
8072	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8073}
8074
8075// String returns the string representation.
8076//
8077// API parameter values that are decorated as "sensitive" in the API will not
8078// be included in the string output. The member name will be present, but the
8079// value will be replaced with "sensitive".
8080func (s DeleteBucketLifecycleConfigurationInput) String() string {
8081	return awsutil.Prettify(s)
8082}
8083
8084// GoString returns the string representation.
8085//
8086// API parameter values that are decorated as "sensitive" in the API will not
8087// be included in the string output. The member name will be present, but the
8088// value will be replaced with "sensitive".
8089func (s DeleteBucketLifecycleConfigurationInput) GoString() string {
8090	return s.String()
8091}
8092
8093// Validate inspects the fields of the type to determine if they are valid.
8094func (s *DeleteBucketLifecycleConfigurationInput) Validate() error {
8095	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketLifecycleConfigurationInput"}
8096	if s.AccountId == nil {
8097		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8098	}
8099	if s.AccountId != nil && len(*s.AccountId) < 1 {
8100		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8101	}
8102	if s.Bucket == nil {
8103		invalidParams.Add(request.NewErrParamRequired("Bucket"))
8104	}
8105	if s.Bucket != nil && len(*s.Bucket) < 3 {
8106		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
8107	}
8108
8109	if invalidParams.Len() > 0 {
8110		return invalidParams
8111	}
8112	return nil
8113}
8114
8115// SetAccountId sets the AccountId field's value.
8116func (s *DeleteBucketLifecycleConfigurationInput) SetAccountId(v string) *DeleteBucketLifecycleConfigurationInput {
8117	s.AccountId = &v
8118	return s
8119}
8120
8121// SetBucket sets the Bucket field's value.
8122func (s *DeleteBucketLifecycleConfigurationInput) SetBucket(v string) *DeleteBucketLifecycleConfigurationInput {
8123	s.Bucket = &v
8124	return s
8125}
8126
8127func (s *DeleteBucketLifecycleConfigurationInput) hostLabels() map[string]string {
8128	return map[string]string{
8129		"AccountId": aws.StringValue(s.AccountId),
8130	}
8131}
8132
8133func (s *DeleteBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
8134	if s.Bucket == nil {
8135		return nil, fmt.Errorf("member Bucket is nil")
8136	}
8137	return parseEndpointARN(*s.Bucket)
8138}
8139
8140func (s *DeleteBucketLifecycleConfigurationInput) hasEndpointARN() bool {
8141	if s.Bucket == nil {
8142		return false
8143	}
8144	return arn.IsARN(*s.Bucket)
8145}
8146
8147// updateArnableField updates the value of the input field that
8148// takes an ARN as an input. This method is useful to backfill
8149// the parsed resource name from ARN into the input member.
8150// It returns a pointer to a modified copy of input and an error.
8151// Note that original input is not modified.
8152func (s DeleteBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
8153	if s.Bucket == nil {
8154		return nil, fmt.Errorf("member Bucket is nil")
8155	}
8156	s.Bucket = aws.String(v)
8157	return &s, nil
8158}
8159
8160// updateAccountID returns a pointer to a modified copy of input,
8161// if account id is not provided, we update the account id in modified input
8162// if account id is provided, but doesn't match with the one in ARN, we throw an error
8163// if account id is not updated, we return nil. Note that original input is not modified.
8164func (s DeleteBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
8165	if s.AccountId == nil {
8166		s.AccountId = aws.String(accountId)
8167		return &s, nil
8168	} else if *s.AccountId != accountId {
8169		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8170	}
8171	return nil, nil
8172}
8173
8174type DeleteBucketLifecycleConfigurationOutput struct {
8175	_ struct{} `type:"structure"`
8176}
8177
8178// String returns the string representation.
8179//
8180// API parameter values that are decorated as "sensitive" in the API will not
8181// be included in the string output. The member name will be present, but the
8182// value will be replaced with "sensitive".
8183func (s DeleteBucketLifecycleConfigurationOutput) String() string {
8184	return awsutil.Prettify(s)
8185}
8186
8187// GoString returns the string representation.
8188//
8189// API parameter values that are decorated as "sensitive" in the API will not
8190// be included in the string output. The member name will be present, but the
8191// value will be replaced with "sensitive".
8192func (s DeleteBucketLifecycleConfigurationOutput) GoString() string {
8193	return s.String()
8194}
8195
8196type DeleteBucketOutput struct {
8197	_ struct{} `type:"structure"`
8198}
8199
8200// String returns the string representation.
8201//
8202// API parameter values that are decorated as "sensitive" in the API will not
8203// be included in the string output. The member name will be present, but the
8204// value will be replaced with "sensitive".
8205func (s DeleteBucketOutput) String() string {
8206	return awsutil.Prettify(s)
8207}
8208
8209// GoString returns the string representation.
8210//
8211// API parameter values that are decorated as "sensitive" in the API will not
8212// be included in the string output. The member name will be present, but the
8213// value will be replaced with "sensitive".
8214func (s DeleteBucketOutput) GoString() string {
8215	return s.String()
8216}
8217
8218type DeleteBucketPolicyInput struct {
8219	_ struct{} `locationName:"DeleteBucketPolicyRequest" type:"structure"`
8220
8221	// The account ID of the Outposts bucket.
8222	//
8223	// AccountId is a required field
8224	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8225
8226	// Specifies the bucket.
8227	//
8228	// For using this parameter with Amazon S3 on Outposts with the REST API, you
8229	// must specify the name and the x-amz-outpost-id as well.
8230	//
8231	// For using this parameter with S3 on Outposts with the Amazon Web Services
8232	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
8233	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
8234	// For example, to access the bucket reports through outpost my-outpost owned
8235	// 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.
8236	// The value must be URL encoded.
8237	//
8238	// Bucket is a required field
8239	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8240}
8241
8242// String returns the string representation.
8243//
8244// API parameter values that are decorated as "sensitive" in the API will not
8245// be included in the string output. The member name will be present, but the
8246// value will be replaced with "sensitive".
8247func (s DeleteBucketPolicyInput) String() string {
8248	return awsutil.Prettify(s)
8249}
8250
8251// GoString returns the string representation.
8252//
8253// API parameter values that are decorated as "sensitive" in the API will not
8254// be included in the string output. The member name will be present, but the
8255// value will be replaced with "sensitive".
8256func (s DeleteBucketPolicyInput) GoString() string {
8257	return s.String()
8258}
8259
8260// Validate inspects the fields of the type to determine if they are valid.
8261func (s *DeleteBucketPolicyInput) Validate() error {
8262	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketPolicyInput"}
8263	if s.AccountId == nil {
8264		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8265	}
8266	if s.AccountId != nil && len(*s.AccountId) < 1 {
8267		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8268	}
8269	if s.Bucket == nil {
8270		invalidParams.Add(request.NewErrParamRequired("Bucket"))
8271	}
8272	if s.Bucket != nil && len(*s.Bucket) < 3 {
8273		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
8274	}
8275
8276	if invalidParams.Len() > 0 {
8277		return invalidParams
8278	}
8279	return nil
8280}
8281
8282// SetAccountId sets the AccountId field's value.
8283func (s *DeleteBucketPolicyInput) SetAccountId(v string) *DeleteBucketPolicyInput {
8284	s.AccountId = &v
8285	return s
8286}
8287
8288// SetBucket sets the Bucket field's value.
8289func (s *DeleteBucketPolicyInput) SetBucket(v string) *DeleteBucketPolicyInput {
8290	s.Bucket = &v
8291	return s
8292}
8293
8294func (s *DeleteBucketPolicyInput) hostLabels() map[string]string {
8295	return map[string]string{
8296		"AccountId": aws.StringValue(s.AccountId),
8297	}
8298}
8299
8300func (s *DeleteBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
8301	if s.Bucket == nil {
8302		return nil, fmt.Errorf("member Bucket is nil")
8303	}
8304	return parseEndpointARN(*s.Bucket)
8305}
8306
8307func (s *DeleteBucketPolicyInput) hasEndpointARN() bool {
8308	if s.Bucket == nil {
8309		return false
8310	}
8311	return arn.IsARN(*s.Bucket)
8312}
8313
8314// updateArnableField updates the value of the input field that
8315// takes an ARN as an input. This method is useful to backfill
8316// the parsed resource name from ARN into the input member.
8317// It returns a pointer to a modified copy of input and an error.
8318// Note that original input is not modified.
8319func (s DeleteBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
8320	if s.Bucket == nil {
8321		return nil, fmt.Errorf("member Bucket is nil")
8322	}
8323	s.Bucket = aws.String(v)
8324	return &s, nil
8325}
8326
8327// updateAccountID returns a pointer to a modified copy of input,
8328// if account id is not provided, we update the account id in modified input
8329// if account id is provided, but doesn't match with the one in ARN, we throw an error
8330// if account id is not updated, we return nil. Note that original input is not modified.
8331func (s DeleteBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
8332	if s.AccountId == nil {
8333		s.AccountId = aws.String(accountId)
8334		return &s, nil
8335	} else if *s.AccountId != accountId {
8336		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8337	}
8338	return nil, nil
8339}
8340
8341type DeleteBucketPolicyOutput struct {
8342	_ struct{} `type:"structure"`
8343}
8344
8345// String returns the string representation.
8346//
8347// API parameter values that are decorated as "sensitive" in the API will not
8348// be included in the string output. The member name will be present, but the
8349// value will be replaced with "sensitive".
8350func (s DeleteBucketPolicyOutput) String() string {
8351	return awsutil.Prettify(s)
8352}
8353
8354// GoString returns the string representation.
8355//
8356// API parameter values that are decorated as "sensitive" in the API will not
8357// be included in the string output. The member name will be present, but the
8358// value will be replaced with "sensitive".
8359func (s DeleteBucketPolicyOutput) GoString() string {
8360	return s.String()
8361}
8362
8363type DeleteBucketTaggingInput struct {
8364	_ struct{} `locationName:"DeleteBucketTaggingRequest" type:"structure"`
8365
8366	// The Amazon Web Services account ID of the Outposts bucket tag set to be removed.
8367	//
8368	// AccountId is a required field
8369	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8370
8371	// The bucket ARN that has the tag set to be removed.
8372	//
8373	// For using this parameter with Amazon S3 on Outposts with the REST API, you
8374	// must specify the name and the x-amz-outpost-id as well.
8375	//
8376	// For using this parameter with S3 on Outposts with the Amazon Web Services
8377	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
8378	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
8379	// For example, to access the bucket reports through outpost my-outpost owned
8380	// 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.
8381	// The value must be URL encoded.
8382	//
8383	// Bucket is a required field
8384	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8385}
8386
8387// String returns the string representation.
8388//
8389// API parameter values that are decorated as "sensitive" in the API will not
8390// be included in the string output. The member name will be present, but the
8391// value will be replaced with "sensitive".
8392func (s DeleteBucketTaggingInput) String() string {
8393	return awsutil.Prettify(s)
8394}
8395
8396// GoString returns the string representation.
8397//
8398// API parameter values that are decorated as "sensitive" in the API will not
8399// be included in the string output. The member name will be present, but the
8400// value will be replaced with "sensitive".
8401func (s DeleteBucketTaggingInput) GoString() string {
8402	return s.String()
8403}
8404
8405// Validate inspects the fields of the type to determine if they are valid.
8406func (s *DeleteBucketTaggingInput) Validate() error {
8407	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketTaggingInput"}
8408	if s.AccountId == nil {
8409		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8410	}
8411	if s.AccountId != nil && len(*s.AccountId) < 1 {
8412		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8413	}
8414	if s.Bucket == nil {
8415		invalidParams.Add(request.NewErrParamRequired("Bucket"))
8416	}
8417	if s.Bucket != nil && len(*s.Bucket) < 3 {
8418		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
8419	}
8420
8421	if invalidParams.Len() > 0 {
8422		return invalidParams
8423	}
8424	return nil
8425}
8426
8427// SetAccountId sets the AccountId field's value.
8428func (s *DeleteBucketTaggingInput) SetAccountId(v string) *DeleteBucketTaggingInput {
8429	s.AccountId = &v
8430	return s
8431}
8432
8433// SetBucket sets the Bucket field's value.
8434func (s *DeleteBucketTaggingInput) SetBucket(v string) *DeleteBucketTaggingInput {
8435	s.Bucket = &v
8436	return s
8437}
8438
8439func (s *DeleteBucketTaggingInput) hostLabels() map[string]string {
8440	return map[string]string{
8441		"AccountId": aws.StringValue(s.AccountId),
8442	}
8443}
8444
8445func (s *DeleteBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
8446	if s.Bucket == nil {
8447		return nil, fmt.Errorf("member Bucket is nil")
8448	}
8449	return parseEndpointARN(*s.Bucket)
8450}
8451
8452func (s *DeleteBucketTaggingInput) hasEndpointARN() bool {
8453	if s.Bucket == nil {
8454		return false
8455	}
8456	return arn.IsARN(*s.Bucket)
8457}
8458
8459// updateArnableField updates the value of the input field that
8460// takes an ARN as an input. This method is useful to backfill
8461// the parsed resource name from ARN into the input member.
8462// It returns a pointer to a modified copy of input and an error.
8463// Note that original input is not modified.
8464func (s DeleteBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
8465	if s.Bucket == nil {
8466		return nil, fmt.Errorf("member Bucket is nil")
8467	}
8468	s.Bucket = aws.String(v)
8469	return &s, nil
8470}
8471
8472// updateAccountID returns a pointer to a modified copy of input,
8473// if account id is not provided, we update the account id in modified input
8474// if account id is provided, but doesn't match with the one in ARN, we throw an error
8475// if account id is not updated, we return nil. Note that original input is not modified.
8476func (s DeleteBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
8477	if s.AccountId == nil {
8478		s.AccountId = aws.String(accountId)
8479		return &s, nil
8480	} else if *s.AccountId != accountId {
8481		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8482	}
8483	return nil, nil
8484}
8485
8486type DeleteBucketTaggingOutput struct {
8487	_ struct{} `type:"structure"`
8488}
8489
8490// String returns the string representation.
8491//
8492// API parameter values that are decorated as "sensitive" in the API will not
8493// be included in the string output. The member name will be present, but the
8494// value will be replaced with "sensitive".
8495func (s DeleteBucketTaggingOutput) String() string {
8496	return awsutil.Prettify(s)
8497}
8498
8499// GoString returns the string representation.
8500//
8501// API parameter values that are decorated as "sensitive" in the API will not
8502// be included in the string output. The member name will be present, but the
8503// value will be replaced with "sensitive".
8504func (s DeleteBucketTaggingOutput) GoString() string {
8505	return s.String()
8506}
8507
8508type DeleteJobTaggingInput struct {
8509	_ struct{} `locationName:"DeleteJobTaggingRequest" type:"structure"`
8510
8511	// The Amazon Web Services account ID associated with the S3 Batch Operations
8512	// job.
8513	//
8514	// AccountId is a required field
8515	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8516
8517	// The ID for the S3 Batch Operations job whose tags you want to delete.
8518	//
8519	// JobId is a required field
8520	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
8521}
8522
8523// String returns the string representation.
8524//
8525// API parameter values that are decorated as "sensitive" in the API will not
8526// be included in the string output. The member name will be present, but the
8527// value will be replaced with "sensitive".
8528func (s DeleteJobTaggingInput) String() string {
8529	return awsutil.Prettify(s)
8530}
8531
8532// GoString returns the string representation.
8533//
8534// API parameter values that are decorated as "sensitive" in the API will not
8535// be included in the string output. The member name will be present, but the
8536// value will be replaced with "sensitive".
8537func (s DeleteJobTaggingInput) GoString() string {
8538	return s.String()
8539}
8540
8541// Validate inspects the fields of the type to determine if they are valid.
8542func (s *DeleteJobTaggingInput) Validate() error {
8543	invalidParams := request.ErrInvalidParams{Context: "DeleteJobTaggingInput"}
8544	if s.AccountId == nil {
8545		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8546	}
8547	if s.AccountId != nil && len(*s.AccountId) < 1 {
8548		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8549	}
8550	if s.JobId == nil {
8551		invalidParams.Add(request.NewErrParamRequired("JobId"))
8552	}
8553	if s.JobId != nil && len(*s.JobId) < 5 {
8554		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
8555	}
8556
8557	if invalidParams.Len() > 0 {
8558		return invalidParams
8559	}
8560	return nil
8561}
8562
8563// SetAccountId sets the AccountId field's value.
8564func (s *DeleteJobTaggingInput) SetAccountId(v string) *DeleteJobTaggingInput {
8565	s.AccountId = &v
8566	return s
8567}
8568
8569// SetJobId sets the JobId field's value.
8570func (s *DeleteJobTaggingInput) SetJobId(v string) *DeleteJobTaggingInput {
8571	s.JobId = &v
8572	return s
8573}
8574
8575func (s *DeleteJobTaggingInput) hostLabels() map[string]string {
8576	return map[string]string{
8577		"AccountId": aws.StringValue(s.AccountId),
8578	}
8579}
8580
8581type DeleteJobTaggingOutput struct {
8582	_ struct{} `type:"structure"`
8583}
8584
8585// String returns the string representation.
8586//
8587// API parameter values that are decorated as "sensitive" in the API will not
8588// be included in the string output. The member name will be present, but the
8589// value will be replaced with "sensitive".
8590func (s DeleteJobTaggingOutput) String() string {
8591	return awsutil.Prettify(s)
8592}
8593
8594// GoString returns the string representation.
8595//
8596// API parameter values that are decorated as "sensitive" in the API will not
8597// be included in the string output. The member name will be present, but the
8598// value will be replaced with "sensitive".
8599func (s DeleteJobTaggingOutput) GoString() string {
8600	return s.String()
8601}
8602
8603type DeleteMultiRegionAccessPointInput struct {
8604	_ struct{} `locationName:"DeleteMultiRegionAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
8605
8606	// The Amazon Web Services account ID for the owner of the Multi-Region Access
8607	// Point.
8608	//
8609	// AccountId is a required field
8610	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8611
8612	// An idempotency token used to identify the request and guarantee that requests
8613	// are unique.
8614	ClientToken *string `type:"string" idempotencyToken:"true"`
8615
8616	// A container element containing details about the Multi-Region Access Point.
8617	//
8618	// Details is a required field
8619	Details *DeleteMultiRegionAccessPointInput_ `type:"structure" required:"true"`
8620}
8621
8622// String returns the string representation.
8623//
8624// API parameter values that are decorated as "sensitive" in the API will not
8625// be included in the string output. The member name will be present, but the
8626// value will be replaced with "sensitive".
8627func (s DeleteMultiRegionAccessPointInput) String() string {
8628	return awsutil.Prettify(s)
8629}
8630
8631// GoString returns the string representation.
8632//
8633// API parameter values that are decorated as "sensitive" in the API will not
8634// be included in the string output. The member name will be present, but the
8635// value will be replaced with "sensitive".
8636func (s DeleteMultiRegionAccessPointInput) GoString() string {
8637	return s.String()
8638}
8639
8640// Validate inspects the fields of the type to determine if they are valid.
8641func (s *DeleteMultiRegionAccessPointInput) Validate() error {
8642	invalidParams := request.ErrInvalidParams{Context: "DeleteMultiRegionAccessPointInput"}
8643	if s.AccountId == nil {
8644		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8645	}
8646	if s.AccountId != nil && len(*s.AccountId) < 1 {
8647		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8648	}
8649	if s.Details == nil {
8650		invalidParams.Add(request.NewErrParamRequired("Details"))
8651	}
8652	if s.Details != nil {
8653		if err := s.Details.Validate(); err != nil {
8654			invalidParams.AddNested("Details", err.(request.ErrInvalidParams))
8655		}
8656	}
8657
8658	if invalidParams.Len() > 0 {
8659		return invalidParams
8660	}
8661	return nil
8662}
8663
8664// SetAccountId sets the AccountId field's value.
8665func (s *DeleteMultiRegionAccessPointInput) SetAccountId(v string) *DeleteMultiRegionAccessPointInput {
8666	s.AccountId = &v
8667	return s
8668}
8669
8670// SetClientToken sets the ClientToken field's value.
8671func (s *DeleteMultiRegionAccessPointInput) SetClientToken(v string) *DeleteMultiRegionAccessPointInput {
8672	s.ClientToken = &v
8673	return s
8674}
8675
8676// SetDetails sets the Details field's value.
8677func (s *DeleteMultiRegionAccessPointInput) SetDetails(v *DeleteMultiRegionAccessPointInput_) *DeleteMultiRegionAccessPointInput {
8678	s.Details = v
8679	return s
8680}
8681
8682func (s *DeleteMultiRegionAccessPointInput) hostLabels() map[string]string {
8683	return map[string]string{
8684		"AccountId": aws.StringValue(s.AccountId),
8685	}
8686}
8687
8688// A container for the information associated with a DeleteMultiRegionAccessPoint
8689// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)
8690// request.
8691type DeleteMultiRegionAccessPointInput_ struct {
8692	_ struct{} `type:"structure"`
8693
8694	// The name of the Multi-Region Access Point associated with this request.
8695	//
8696	// Name is a required field
8697	Name *string `type:"string" required:"true"`
8698}
8699
8700// String returns the string representation.
8701//
8702// API parameter values that are decorated as "sensitive" in the API will not
8703// be included in the string output. The member name will be present, but the
8704// value will be replaced with "sensitive".
8705func (s DeleteMultiRegionAccessPointInput_) String() string {
8706	return awsutil.Prettify(s)
8707}
8708
8709// GoString returns the string representation.
8710//
8711// API parameter values that are decorated as "sensitive" in the API will not
8712// be included in the string output. The member name will be present, but the
8713// value will be replaced with "sensitive".
8714func (s DeleteMultiRegionAccessPointInput_) GoString() string {
8715	return s.String()
8716}
8717
8718// Validate inspects the fields of the type to determine if they are valid.
8719func (s *DeleteMultiRegionAccessPointInput_) Validate() error {
8720	invalidParams := request.ErrInvalidParams{Context: "DeleteMultiRegionAccessPointInput_"}
8721	if s.Name == nil {
8722		invalidParams.Add(request.NewErrParamRequired("Name"))
8723	}
8724
8725	if invalidParams.Len() > 0 {
8726		return invalidParams
8727	}
8728	return nil
8729}
8730
8731// SetName sets the Name field's value.
8732func (s *DeleteMultiRegionAccessPointInput_) SetName(v string) *DeleteMultiRegionAccessPointInput_ {
8733	s.Name = &v
8734	return s
8735}
8736
8737type DeleteMultiRegionAccessPointOutput struct {
8738	_ struct{} `type:"structure"`
8739
8740	// The request token associated with the request. You can use this token with
8741	// DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
8742	// to determine the status of asynchronous requests.
8743	RequestTokenARN *string `min:"1" type:"string"`
8744}
8745
8746// String returns the string representation.
8747//
8748// API parameter values that are decorated as "sensitive" in the API will not
8749// be included in the string output. The member name will be present, but the
8750// value will be replaced with "sensitive".
8751func (s DeleteMultiRegionAccessPointOutput) String() string {
8752	return awsutil.Prettify(s)
8753}
8754
8755// GoString returns the string representation.
8756//
8757// API parameter values that are decorated as "sensitive" in the API will not
8758// be included in the string output. The member name will be present, but the
8759// value will be replaced with "sensitive".
8760func (s DeleteMultiRegionAccessPointOutput) GoString() string {
8761	return s.String()
8762}
8763
8764// SetRequestTokenARN sets the RequestTokenARN field's value.
8765func (s *DeleteMultiRegionAccessPointOutput) SetRequestTokenARN(v string) *DeleteMultiRegionAccessPointOutput {
8766	s.RequestTokenARN = &v
8767	return s
8768}
8769
8770type DeletePublicAccessBlockInput struct {
8771	_ struct{} `locationName:"DeletePublicAccessBlockRequest" type:"structure"`
8772
8773	// The account ID for the Amazon Web Services account whose PublicAccessBlock
8774	// configuration you want to remove.
8775	//
8776	// AccountId is a required field
8777	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8778}
8779
8780// String returns the string representation.
8781//
8782// API parameter values that are decorated as "sensitive" in the API will not
8783// be included in the string output. The member name will be present, but the
8784// value will be replaced with "sensitive".
8785func (s DeletePublicAccessBlockInput) String() string {
8786	return awsutil.Prettify(s)
8787}
8788
8789// GoString returns the string representation.
8790//
8791// API parameter values that are decorated as "sensitive" in the API will not
8792// be included in the string output. The member name will be present, but the
8793// value will be replaced with "sensitive".
8794func (s DeletePublicAccessBlockInput) GoString() string {
8795	return s.String()
8796}
8797
8798// Validate inspects the fields of the type to determine if they are valid.
8799func (s *DeletePublicAccessBlockInput) Validate() error {
8800	invalidParams := request.ErrInvalidParams{Context: "DeletePublicAccessBlockInput"}
8801	if s.AccountId == nil {
8802		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8803	}
8804	if s.AccountId != nil && len(*s.AccountId) < 1 {
8805		invalidParams.Add(request.NewErrParamMinLen("AccountId", 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 *DeletePublicAccessBlockInput) SetAccountId(v string) *DeletePublicAccessBlockInput {
8816	s.AccountId = &v
8817	return s
8818}
8819
8820func (s *DeletePublicAccessBlockInput) hostLabels() map[string]string {
8821	return map[string]string{
8822		"AccountId": aws.StringValue(s.AccountId),
8823	}
8824}
8825
8826type DeletePublicAccessBlockOutput struct {
8827	_ struct{} `type:"structure"`
8828}
8829
8830// String returns the string representation.
8831//
8832// API parameter values that are decorated as "sensitive" in the API will not
8833// be included in the string output. The member name will be present, but the
8834// value will be replaced with "sensitive".
8835func (s DeletePublicAccessBlockOutput) String() string {
8836	return awsutil.Prettify(s)
8837}
8838
8839// GoString returns the string representation.
8840//
8841// API parameter values that are decorated as "sensitive" in the API will not
8842// be included in the string output. The member name will be present, but the
8843// value will be replaced with "sensitive".
8844func (s DeletePublicAccessBlockOutput) GoString() string {
8845	return s.String()
8846}
8847
8848type DeleteStorageLensConfigurationInput struct {
8849	_ struct{} `locationName:"DeleteStorageLensConfigurationRequest" type:"structure"`
8850
8851	// The account ID of the requester.
8852	//
8853	// AccountId is a required field
8854	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8855
8856	// The ID of the S3 Storage Lens configuration.
8857	//
8858	// ConfigId is a required field
8859	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
8860}
8861
8862// String returns the string representation.
8863//
8864// API parameter values that are decorated as "sensitive" in the API will not
8865// be included in the string output. The member name will be present, but the
8866// value will be replaced with "sensitive".
8867func (s DeleteStorageLensConfigurationInput) String() string {
8868	return awsutil.Prettify(s)
8869}
8870
8871// GoString returns the string representation.
8872//
8873// API parameter values that are decorated as "sensitive" in the API will not
8874// be included in the string output. The member name will be present, but the
8875// value will be replaced with "sensitive".
8876func (s DeleteStorageLensConfigurationInput) GoString() string {
8877	return s.String()
8878}
8879
8880// Validate inspects the fields of the type to determine if they are valid.
8881func (s *DeleteStorageLensConfigurationInput) Validate() error {
8882	invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationInput"}
8883	if s.AccountId == nil {
8884		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8885	}
8886	if s.AccountId != nil && len(*s.AccountId) < 1 {
8887		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8888	}
8889	if s.ConfigId == nil {
8890		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
8891	}
8892	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
8893		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
8894	}
8895
8896	if invalidParams.Len() > 0 {
8897		return invalidParams
8898	}
8899	return nil
8900}
8901
8902// SetAccountId sets the AccountId field's value.
8903func (s *DeleteStorageLensConfigurationInput) SetAccountId(v string) *DeleteStorageLensConfigurationInput {
8904	s.AccountId = &v
8905	return s
8906}
8907
8908// SetConfigId sets the ConfigId field's value.
8909func (s *DeleteStorageLensConfigurationInput) SetConfigId(v string) *DeleteStorageLensConfigurationInput {
8910	s.ConfigId = &v
8911	return s
8912}
8913
8914func (s *DeleteStorageLensConfigurationInput) hostLabels() map[string]string {
8915	return map[string]string{
8916		"AccountId": aws.StringValue(s.AccountId),
8917	}
8918}
8919
8920type DeleteStorageLensConfigurationOutput struct {
8921	_ struct{} `type:"structure"`
8922}
8923
8924// String returns the string representation.
8925//
8926// API parameter values that are decorated as "sensitive" in the API will not
8927// be included in the string output. The member name will be present, but the
8928// value will be replaced with "sensitive".
8929func (s DeleteStorageLensConfigurationOutput) String() string {
8930	return awsutil.Prettify(s)
8931}
8932
8933// GoString returns the string representation.
8934//
8935// API parameter values that are decorated as "sensitive" in the API will not
8936// be included in the string output. The member name will be present, but the
8937// value will be replaced with "sensitive".
8938func (s DeleteStorageLensConfigurationOutput) GoString() string {
8939	return s.String()
8940}
8941
8942type DeleteStorageLensConfigurationTaggingInput struct {
8943	_ struct{} `locationName:"DeleteStorageLensConfigurationTaggingRequest" type:"structure"`
8944
8945	// The account ID of the requester.
8946	//
8947	// AccountId is a required field
8948	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8949
8950	// The ID of the S3 Storage Lens configuration.
8951	//
8952	// ConfigId is a required field
8953	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
8954}
8955
8956// String returns the string representation.
8957//
8958// API parameter values that are decorated as "sensitive" in the API will not
8959// be included in the string output. The member name will be present, but the
8960// value will be replaced with "sensitive".
8961func (s DeleteStorageLensConfigurationTaggingInput) String() string {
8962	return awsutil.Prettify(s)
8963}
8964
8965// GoString returns the string representation.
8966//
8967// API parameter values that are decorated as "sensitive" in the API will not
8968// be included in the string output. The member name will be present, but the
8969// value will be replaced with "sensitive".
8970func (s DeleteStorageLensConfigurationTaggingInput) GoString() string {
8971	return s.String()
8972}
8973
8974// Validate inspects the fields of the type to determine if they are valid.
8975func (s *DeleteStorageLensConfigurationTaggingInput) Validate() error {
8976	invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationTaggingInput"}
8977	if s.AccountId == nil {
8978		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8979	}
8980	if s.AccountId != nil && len(*s.AccountId) < 1 {
8981		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8982	}
8983	if s.ConfigId == nil {
8984		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
8985	}
8986	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
8987		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
8988	}
8989
8990	if invalidParams.Len() > 0 {
8991		return invalidParams
8992	}
8993	return nil
8994}
8995
8996// SetAccountId sets the AccountId field's value.
8997func (s *DeleteStorageLensConfigurationTaggingInput) SetAccountId(v string) *DeleteStorageLensConfigurationTaggingInput {
8998	s.AccountId = &v
8999	return s
9000}
9001
9002// SetConfigId sets the ConfigId field's value.
9003func (s *DeleteStorageLensConfigurationTaggingInput) SetConfigId(v string) *DeleteStorageLensConfigurationTaggingInput {
9004	s.ConfigId = &v
9005	return s
9006}
9007
9008func (s *DeleteStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
9009	return map[string]string{
9010		"AccountId": aws.StringValue(s.AccountId),
9011	}
9012}
9013
9014type DeleteStorageLensConfigurationTaggingOutput struct {
9015	_ struct{} `type:"structure"`
9016}
9017
9018// String returns the string representation.
9019//
9020// API parameter values that are decorated as "sensitive" in the API will not
9021// be included in the string output. The member name will be present, but the
9022// value will be replaced with "sensitive".
9023func (s DeleteStorageLensConfigurationTaggingOutput) String() string {
9024	return awsutil.Prettify(s)
9025}
9026
9027// GoString returns the string representation.
9028//
9029// API parameter values that are decorated as "sensitive" in the API will not
9030// be included in the string output. The member name will be present, but the
9031// value will be replaced with "sensitive".
9032func (s DeleteStorageLensConfigurationTaggingOutput) GoString() string {
9033	return s.String()
9034}
9035
9036type DescribeJobInput struct {
9037	_ struct{} `locationName:"DescribeJobRequest" type:"structure"`
9038
9039	// The Amazon Web Services account ID associated with the S3 Batch Operations
9040	// job.
9041	//
9042	// AccountId is a required field
9043	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
9044
9045	// The ID for the job whose information you want to retrieve.
9046	//
9047	// JobId is a required field
9048	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
9049}
9050
9051// String returns the string representation.
9052//
9053// API parameter values that are decorated as "sensitive" in the API will not
9054// be included in the string output. The member name will be present, but the
9055// value will be replaced with "sensitive".
9056func (s DescribeJobInput) String() string {
9057	return awsutil.Prettify(s)
9058}
9059
9060// GoString returns the string representation.
9061//
9062// API parameter values that are decorated as "sensitive" in the API will not
9063// be included in the string output. The member name will be present, but the
9064// value will be replaced with "sensitive".
9065func (s DescribeJobInput) GoString() string {
9066	return s.String()
9067}
9068
9069// Validate inspects the fields of the type to determine if they are valid.
9070func (s *DescribeJobInput) Validate() error {
9071	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
9072	if s.AccountId == nil {
9073		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9074	}
9075	if s.AccountId != nil && len(*s.AccountId) < 1 {
9076		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9077	}
9078	if s.JobId == nil {
9079		invalidParams.Add(request.NewErrParamRequired("JobId"))
9080	}
9081	if s.JobId != nil && len(*s.JobId) < 5 {
9082		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
9083	}
9084
9085	if invalidParams.Len() > 0 {
9086		return invalidParams
9087	}
9088	return nil
9089}
9090
9091// SetAccountId sets the AccountId field's value.
9092func (s *DescribeJobInput) SetAccountId(v string) *DescribeJobInput {
9093	s.AccountId = &v
9094	return s
9095}
9096
9097// SetJobId sets the JobId field's value.
9098func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
9099	s.JobId = &v
9100	return s
9101}
9102
9103func (s *DescribeJobInput) hostLabels() map[string]string {
9104	return map[string]string{
9105		"AccountId": aws.StringValue(s.AccountId),
9106	}
9107}
9108
9109type DescribeJobOutput struct {
9110	_ struct{} `type:"structure"`
9111
9112	// Contains the configuration parameters and status for the job specified in
9113	// the Describe Job request.
9114	Job *JobDescriptor `type:"structure"`
9115}
9116
9117// String returns the string representation.
9118//
9119// API parameter values that are decorated as "sensitive" in the API will not
9120// be included in the string output. The member name will be present, but the
9121// value will be replaced with "sensitive".
9122func (s DescribeJobOutput) String() string {
9123	return awsutil.Prettify(s)
9124}
9125
9126// GoString returns the string representation.
9127//
9128// API parameter values that are decorated as "sensitive" in the API will not
9129// be included in the string output. The member name will be present, but the
9130// value will be replaced with "sensitive".
9131func (s DescribeJobOutput) GoString() string {
9132	return s.String()
9133}
9134
9135// SetJob sets the Job field's value.
9136func (s *DescribeJobOutput) SetJob(v *JobDescriptor) *DescribeJobOutput {
9137	s.Job = v
9138	return s
9139}
9140
9141type DescribeMultiRegionAccessPointOperationInput struct {
9142	_ struct{} `locationName:"DescribeMultiRegionAccessPointOperationRequest" type:"structure"`
9143
9144	// The Amazon Web Services account ID for the owner of the Multi-Region Access
9145	// Point.
9146	//
9147	// AccountId is a required field
9148	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
9149
9150	// The request token associated with the request you want to know about. This
9151	// request token is returned as part of the response when you make an asynchronous
9152	// request. You provide this token to query about the status of the asynchronous
9153	// action.
9154	//
9155	// RequestTokenARN is a required field
9156	RequestTokenARN *string `location:"uri" locationName:"request_token" min:"1" type:"string" required:"true"`
9157}
9158
9159// String returns the string representation.
9160//
9161// API parameter values that are decorated as "sensitive" in the API will not
9162// be included in the string output. The member name will be present, but the
9163// value will be replaced with "sensitive".
9164func (s DescribeMultiRegionAccessPointOperationInput) String() string {
9165	return awsutil.Prettify(s)
9166}
9167
9168// GoString returns the string representation.
9169//
9170// API parameter values that are decorated as "sensitive" in the API will not
9171// be included in the string output. The member name will be present, but the
9172// value will be replaced with "sensitive".
9173func (s DescribeMultiRegionAccessPointOperationInput) GoString() string {
9174	return s.String()
9175}
9176
9177// Validate inspects the fields of the type to determine if they are valid.
9178func (s *DescribeMultiRegionAccessPointOperationInput) Validate() error {
9179	invalidParams := request.ErrInvalidParams{Context: "DescribeMultiRegionAccessPointOperationInput"}
9180	if s.AccountId == nil {
9181		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9182	}
9183	if s.AccountId != nil && len(*s.AccountId) < 1 {
9184		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9185	}
9186	if s.RequestTokenARN == nil {
9187		invalidParams.Add(request.NewErrParamRequired("RequestTokenARN"))
9188	}
9189	if s.RequestTokenARN != nil && len(*s.RequestTokenARN) < 1 {
9190		invalidParams.Add(request.NewErrParamMinLen("RequestTokenARN", 1))
9191	}
9192
9193	if invalidParams.Len() > 0 {
9194		return invalidParams
9195	}
9196	return nil
9197}
9198
9199// SetAccountId sets the AccountId field's value.
9200func (s *DescribeMultiRegionAccessPointOperationInput) SetAccountId(v string) *DescribeMultiRegionAccessPointOperationInput {
9201	s.AccountId = &v
9202	return s
9203}
9204
9205// SetRequestTokenARN sets the RequestTokenARN field's value.
9206func (s *DescribeMultiRegionAccessPointOperationInput) SetRequestTokenARN(v string) *DescribeMultiRegionAccessPointOperationInput {
9207	s.RequestTokenARN = &v
9208	return s
9209}
9210
9211func (s *DescribeMultiRegionAccessPointOperationInput) hostLabels() map[string]string {
9212	return map[string]string{
9213		"AccountId": aws.StringValue(s.AccountId),
9214	}
9215}
9216
9217type DescribeMultiRegionAccessPointOperationOutput struct {
9218	_ struct{} `type:"structure"`
9219
9220	// A container element containing the details of the asynchronous operation.
9221	AsyncOperation *AsyncOperation `type:"structure"`
9222}
9223
9224// String returns the string representation.
9225//
9226// API parameter values that are decorated as "sensitive" in the API will not
9227// be included in the string output. The member name will be present, but the
9228// value will be replaced with "sensitive".
9229func (s DescribeMultiRegionAccessPointOperationOutput) String() string {
9230	return awsutil.Prettify(s)
9231}
9232
9233// GoString returns the string representation.
9234//
9235// API parameter values that are decorated as "sensitive" in the API will not
9236// be included in the string output. The member name will be present, but the
9237// value will be replaced with "sensitive".
9238func (s DescribeMultiRegionAccessPointOperationOutput) GoString() string {
9239	return s.String()
9240}
9241
9242// SetAsyncOperation sets the AsyncOperation field's value.
9243func (s *DescribeMultiRegionAccessPointOperationOutput) SetAsyncOperation(v *AsyncOperation) *DescribeMultiRegionAccessPointOperationOutput {
9244	s.AsyncOperation = v
9245	return s
9246}
9247
9248// The last established access control policy for a Multi-Region Access Point.
9249//
9250// When you update the policy, the update is first listed as the proposed policy.
9251// After the update is finished and all Regions have been updated, the proposed
9252// policy is listed as the established policy. If both policies have the same
9253// version number, the proposed policy is the established policy.
9254type EstablishedMultiRegionAccessPointPolicy struct {
9255	_ struct{} `type:"structure"`
9256
9257	// The details of the last established policy.
9258	Policy *string `type:"string"`
9259}
9260
9261// String returns the string representation.
9262//
9263// API parameter values that are decorated as "sensitive" in the API will not
9264// be included in the string output. The member name will be present, but the
9265// value will be replaced with "sensitive".
9266func (s EstablishedMultiRegionAccessPointPolicy) String() string {
9267	return awsutil.Prettify(s)
9268}
9269
9270// GoString returns the string representation.
9271//
9272// API parameter values that are decorated as "sensitive" in the API will not
9273// be included in the string output. The member name will be present, but the
9274// value will be replaced with "sensitive".
9275func (s EstablishedMultiRegionAccessPointPolicy) GoString() string {
9276	return s.String()
9277}
9278
9279// SetPolicy sets the Policy field's value.
9280func (s *EstablishedMultiRegionAccessPointPolicy) SetPolicy(v string) *EstablishedMultiRegionAccessPointPolicy {
9281	s.Policy = &v
9282	return s
9283}
9284
9285// A container for what Amazon S3 Storage Lens will exclude.
9286type Exclude struct {
9287	_ struct{} `type:"structure"`
9288
9289	// A container for the S3 Storage Lens bucket excludes.
9290	Buckets []*string `locationNameList:"Arn" type:"list"`
9291
9292	// A container for the S3 Storage Lens Region excludes.
9293	Regions []*string `locationNameList:"Region" type:"list"`
9294}
9295
9296// String returns the string representation.
9297//
9298// API parameter values that are decorated as "sensitive" in the API will not
9299// be included in the string output. The member name will be present, but the
9300// value will be replaced with "sensitive".
9301func (s Exclude) String() string {
9302	return awsutil.Prettify(s)
9303}
9304
9305// GoString returns the string representation.
9306//
9307// API parameter values that are decorated as "sensitive" in the API will not
9308// be included in the string output. The member name will be present, but the
9309// value will be replaced with "sensitive".
9310func (s Exclude) GoString() string {
9311	return s.String()
9312}
9313
9314// SetBuckets sets the Buckets field's value.
9315func (s *Exclude) SetBuckets(v []*string) *Exclude {
9316	s.Buckets = v
9317	return s
9318}
9319
9320// SetRegions sets the Regions field's value.
9321func (s *Exclude) SetRegions(v []*string) *Exclude {
9322	s.Regions = v
9323	return s
9324}
9325
9326type GetAccessPointConfigurationForObjectLambdaInput struct {
9327	_ struct{} `locationName:"GetAccessPointConfigurationForObjectLambdaRequest" type:"structure"`
9328
9329	// The account ID for the account that owns the specified Object Lambda Access
9330	// Point.
9331	//
9332	// AccountId is a required field
9333	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
9334
9335	// The name of the Object Lambda Access Point you want to return the configuration
9336	// for.
9337	//
9338	// Name is a required field
9339	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
9340}
9341
9342// String returns the string representation.
9343//
9344// API parameter values that are decorated as "sensitive" in the API will not
9345// be included in the string output. The member name will be present, but the
9346// value will be replaced with "sensitive".
9347func (s GetAccessPointConfigurationForObjectLambdaInput) String() string {
9348	return awsutil.Prettify(s)
9349}
9350
9351// GoString returns the string representation.
9352//
9353// API parameter values that are decorated as "sensitive" in the API will not
9354// be included in the string output. The member name will be present, but the
9355// value will be replaced with "sensitive".
9356func (s GetAccessPointConfigurationForObjectLambdaInput) GoString() string {
9357	return s.String()
9358}
9359
9360// Validate inspects the fields of the type to determine if they are valid.
9361func (s *GetAccessPointConfigurationForObjectLambdaInput) Validate() error {
9362	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointConfigurationForObjectLambdaInput"}
9363	if s.AccountId == nil {
9364		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9365	}
9366	if s.AccountId != nil && len(*s.AccountId) < 1 {
9367		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9368	}
9369	if s.Name == nil {
9370		invalidParams.Add(request.NewErrParamRequired("Name"))
9371	}
9372	if s.Name != nil && len(*s.Name) < 3 {
9373		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
9374	}
9375
9376	if invalidParams.Len() > 0 {
9377		return invalidParams
9378	}
9379	return nil
9380}
9381
9382// SetAccountId sets the AccountId field's value.
9383func (s *GetAccessPointConfigurationForObjectLambdaInput) SetAccountId(v string) *GetAccessPointConfigurationForObjectLambdaInput {
9384	s.AccountId = &v
9385	return s
9386}
9387
9388// SetName sets the Name field's value.
9389func (s *GetAccessPointConfigurationForObjectLambdaInput) SetName(v string) *GetAccessPointConfigurationForObjectLambdaInput {
9390	s.Name = &v
9391	return s
9392}
9393
9394func (s *GetAccessPointConfigurationForObjectLambdaInput) hostLabels() map[string]string {
9395	return map[string]string{
9396		"AccountId": aws.StringValue(s.AccountId),
9397	}
9398}
9399
9400type GetAccessPointConfigurationForObjectLambdaOutput struct {
9401	_ struct{} `type:"structure"`
9402
9403	// Object Lambda Access Point configuration document.
9404	Configuration *ObjectLambdaConfiguration `type:"structure"`
9405}
9406
9407// String returns the string representation.
9408//
9409// API parameter values that are decorated as "sensitive" in the API will not
9410// be included in the string output. The member name will be present, but the
9411// value will be replaced with "sensitive".
9412func (s GetAccessPointConfigurationForObjectLambdaOutput) String() string {
9413	return awsutil.Prettify(s)
9414}
9415
9416// GoString returns the string representation.
9417//
9418// API parameter values that are decorated as "sensitive" in the API will not
9419// be included in the string output. The member name will be present, but the
9420// value will be replaced with "sensitive".
9421func (s GetAccessPointConfigurationForObjectLambdaOutput) GoString() string {
9422	return s.String()
9423}
9424
9425// SetConfiguration sets the Configuration field's value.
9426func (s *GetAccessPointConfigurationForObjectLambdaOutput) SetConfiguration(v *ObjectLambdaConfiguration) *GetAccessPointConfigurationForObjectLambdaOutput {
9427	s.Configuration = v
9428	return s
9429}
9430
9431type GetAccessPointForObjectLambdaInput struct {
9432	_ struct{} `locationName:"GetAccessPointForObjectLambdaRequest" type:"structure"`
9433
9434	// The account ID for the account that owns the specified Object Lambda Access
9435	// Point.
9436	//
9437	// AccountId is a required field
9438	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
9439
9440	// The name of the Object Lambda Access Point.
9441	//
9442	// Name is a required field
9443	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
9444}
9445
9446// String returns the string representation.
9447//
9448// API parameter values that are decorated as "sensitive" in the API will not
9449// be included in the string output. The member name will be present, but the
9450// value will be replaced with "sensitive".
9451func (s GetAccessPointForObjectLambdaInput) String() string {
9452	return awsutil.Prettify(s)
9453}
9454
9455// GoString returns the string representation.
9456//
9457// API parameter values that are decorated as "sensitive" in the API will not
9458// be included in the string output. The member name will be present, but the
9459// value will be replaced with "sensitive".
9460func (s GetAccessPointForObjectLambdaInput) GoString() string {
9461	return s.String()
9462}
9463
9464// Validate inspects the fields of the type to determine if they are valid.
9465func (s *GetAccessPointForObjectLambdaInput) Validate() error {
9466	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointForObjectLambdaInput"}
9467	if s.AccountId == nil {
9468		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9469	}
9470	if s.AccountId != nil && len(*s.AccountId) < 1 {
9471		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9472	}
9473	if s.Name == nil {
9474		invalidParams.Add(request.NewErrParamRequired("Name"))
9475	}
9476	if s.Name != nil && len(*s.Name) < 3 {
9477		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
9478	}
9479
9480	if invalidParams.Len() > 0 {
9481		return invalidParams
9482	}
9483	return nil
9484}
9485
9486// SetAccountId sets the AccountId field's value.
9487func (s *GetAccessPointForObjectLambdaInput) SetAccountId(v string) *GetAccessPointForObjectLambdaInput {
9488	s.AccountId = &v
9489	return s
9490}
9491
9492// SetName sets the Name field's value.
9493func (s *GetAccessPointForObjectLambdaInput) SetName(v string) *GetAccessPointForObjectLambdaInput {
9494	s.Name = &v
9495	return s
9496}
9497
9498func (s *GetAccessPointForObjectLambdaInput) hostLabels() map[string]string {
9499	return map[string]string{
9500		"AccountId": aws.StringValue(s.AccountId),
9501	}
9502}
9503
9504type GetAccessPointForObjectLambdaOutput struct {
9505	_ struct{} `type:"structure"`
9506
9507	// The date and time when the specified Object Lambda Access Point was created.
9508	CreationDate *time.Time `type:"timestamp"`
9509
9510	// The name of the Object Lambda Access Point.
9511	Name *string `min:"3" type:"string"`
9512
9513	// Configuration to block all public access. This setting is turned on and can
9514	// not be edited.
9515	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
9516}
9517
9518// String returns the string representation.
9519//
9520// API parameter values that are decorated as "sensitive" in the API will not
9521// be included in the string output. The member name will be present, but the
9522// value will be replaced with "sensitive".
9523func (s GetAccessPointForObjectLambdaOutput) String() string {
9524	return awsutil.Prettify(s)
9525}
9526
9527// GoString returns the string representation.
9528//
9529// API parameter values that are decorated as "sensitive" in the API will not
9530// be included in the string output. The member name will be present, but the
9531// value will be replaced with "sensitive".
9532func (s GetAccessPointForObjectLambdaOutput) GoString() string {
9533	return s.String()
9534}
9535
9536// SetCreationDate sets the CreationDate field's value.
9537func (s *GetAccessPointForObjectLambdaOutput) SetCreationDate(v time.Time) *GetAccessPointForObjectLambdaOutput {
9538	s.CreationDate = &v
9539	return s
9540}
9541
9542// SetName sets the Name field's value.
9543func (s *GetAccessPointForObjectLambdaOutput) SetName(v string) *GetAccessPointForObjectLambdaOutput {
9544	s.Name = &v
9545	return s
9546}
9547
9548// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
9549func (s *GetAccessPointForObjectLambdaOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointForObjectLambdaOutput {
9550	s.PublicAccessBlockConfiguration = v
9551	return s
9552}
9553
9554type GetAccessPointInput struct {
9555	_ struct{} `locationName:"GetAccessPointRequest" type:"structure"`
9556
9557	// The account ID for the account that owns the specified access point.
9558	//
9559	// AccountId is a required field
9560	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
9561
9562	// The name of the access point whose configuration information you want to
9563	// retrieve.
9564	//
9565	// For using this parameter with Amazon S3 on Outposts with the REST API, you
9566	// must specify the name and the x-amz-outpost-id as well.
9567	//
9568	// For using this parameter with S3 on Outposts with the Amazon Web Services
9569	// SDK and CLI, you must specify the ARN of the access point accessed in the
9570	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
9571	// For example, to access the access point reports-ap through outpost my-outpost
9572	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
9573	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
9574	// The value must be URL encoded.
9575	//
9576	// Name is a required field
9577	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
9578}
9579
9580// String returns the string representation.
9581//
9582// API parameter values that are decorated as "sensitive" in the API will not
9583// be included in the string output. The member name will be present, but the
9584// value will be replaced with "sensitive".
9585func (s GetAccessPointInput) String() string {
9586	return awsutil.Prettify(s)
9587}
9588
9589// GoString returns the string representation.
9590//
9591// API parameter values that are decorated as "sensitive" in the API will not
9592// be included in the string output. The member name will be present, but the
9593// value will be replaced with "sensitive".
9594func (s GetAccessPointInput) GoString() string {
9595	return s.String()
9596}
9597
9598// Validate inspects the fields of the type to determine if they are valid.
9599func (s *GetAccessPointInput) Validate() error {
9600	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointInput"}
9601	if s.AccountId == nil {
9602		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9603	}
9604	if s.AccountId != nil && len(*s.AccountId) < 1 {
9605		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9606	}
9607	if s.Name == nil {
9608		invalidParams.Add(request.NewErrParamRequired("Name"))
9609	}
9610	if s.Name != nil && len(*s.Name) < 3 {
9611		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
9612	}
9613
9614	if invalidParams.Len() > 0 {
9615		return invalidParams
9616	}
9617	return nil
9618}
9619
9620// SetAccountId sets the AccountId field's value.
9621func (s *GetAccessPointInput) SetAccountId(v string) *GetAccessPointInput {
9622	s.AccountId = &v
9623	return s
9624}
9625
9626// SetName sets the Name field's value.
9627func (s *GetAccessPointInput) SetName(v string) *GetAccessPointInput {
9628	s.Name = &v
9629	return s
9630}
9631
9632func (s *GetAccessPointInput) hostLabels() map[string]string {
9633	return map[string]string{
9634		"AccountId": aws.StringValue(s.AccountId),
9635	}
9636}
9637
9638func (s *GetAccessPointInput) getEndpointARN() (arn.Resource, error) {
9639	if s.Name == nil {
9640		return nil, fmt.Errorf("member Name is nil")
9641	}
9642	return parseEndpointARN(*s.Name)
9643}
9644
9645func (s *GetAccessPointInput) hasEndpointARN() bool {
9646	if s.Name == nil {
9647		return false
9648	}
9649	return arn.IsARN(*s.Name)
9650}
9651
9652// updateArnableField updates the value of the input field that
9653// takes an ARN as an input. This method is useful to backfill
9654// the parsed resource name from ARN into the input member.
9655// It returns a pointer to a modified copy of input and an error.
9656// Note that original input is not modified.
9657func (s GetAccessPointInput) updateArnableField(v string) (interface{}, error) {
9658	if s.Name == nil {
9659		return nil, fmt.Errorf("member Name is nil")
9660	}
9661	s.Name = aws.String(v)
9662	return &s, nil
9663}
9664
9665// updateAccountID returns a pointer to a modified copy of input,
9666// if account id is not provided, we update the account id in modified input
9667// if account id is provided, but doesn't match with the one in ARN, we throw an error
9668// if account id is not updated, we return nil. Note that original input is not modified.
9669func (s GetAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
9670	if s.AccountId == nil {
9671		s.AccountId = aws.String(accountId)
9672		return &s, nil
9673	} else if *s.AccountId != accountId {
9674		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
9675	}
9676	return nil, nil
9677}
9678
9679type GetAccessPointOutput struct {
9680	_ struct{} `type:"structure"`
9681
9682	// The ARN of the access point.
9683	AccessPointArn *string `min:"4" type:"string"`
9684
9685	// The name or alias of the access point.
9686	Alias *string `type:"string"`
9687
9688	// The name of the bucket associated with the specified access point.
9689	Bucket *string `min:"3" type:"string"`
9690
9691	// The date and time when the specified access point was created.
9692	CreationDate *time.Time `type:"timestamp"`
9693
9694	// The VPC endpoint for the access point.
9695	Endpoints map[string]*string `type:"map"`
9696
9697	// The name of the specified access point.
9698	Name *string `min:"3" type:"string"`
9699
9700	// Indicates whether this access point allows access from the public internet.
9701	// If VpcConfiguration is specified for this access point, then NetworkOrigin
9702	// is VPC, and the access point doesn't allow access from the public internet.
9703	// Otherwise, NetworkOrigin is Internet, and the access point allows access
9704	// from the public internet, subject to the access point and bucket access policies.
9705	//
9706	// This will always be true for an Amazon S3 on Outposts access point
9707	NetworkOrigin *string `type:"string" enum:"NetworkOrigin"`
9708
9709	// The PublicAccessBlock configuration that you want to apply to this Amazon
9710	// S3 account. You can enable the configuration options in any combination.
9711	// For more information about when Amazon S3 considers a bucket or object public,
9712	// 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)
9713	// in the Amazon S3 User Guide.
9714	//
9715	// This is not supported for Amazon S3 on Outposts.
9716	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
9717
9718	// Contains the virtual private cloud (VPC) configuration for the specified
9719	// access point.
9720	//
9721	// This element is empty if this access point is an Amazon S3 on Outposts access
9722	// point that is used by other Amazon Web Services.
9723	VpcConfiguration *VpcConfiguration `type:"structure"`
9724}
9725
9726// String returns the string representation.
9727//
9728// API parameter values that are decorated as "sensitive" in the API will not
9729// be included in the string output. The member name will be present, but the
9730// value will be replaced with "sensitive".
9731func (s GetAccessPointOutput) String() string {
9732	return awsutil.Prettify(s)
9733}
9734
9735// GoString returns the string representation.
9736//
9737// API parameter values that are decorated as "sensitive" in the API will not
9738// be included in the string output. The member name will be present, but the
9739// value will be replaced with "sensitive".
9740func (s GetAccessPointOutput) GoString() string {
9741	return s.String()
9742}
9743
9744// SetAccessPointArn sets the AccessPointArn field's value.
9745func (s *GetAccessPointOutput) SetAccessPointArn(v string) *GetAccessPointOutput {
9746	s.AccessPointArn = &v
9747	return s
9748}
9749
9750// SetAlias sets the Alias field's value.
9751func (s *GetAccessPointOutput) SetAlias(v string) *GetAccessPointOutput {
9752	s.Alias = &v
9753	return s
9754}
9755
9756// SetBucket sets the Bucket field's value.
9757func (s *GetAccessPointOutput) SetBucket(v string) *GetAccessPointOutput {
9758	s.Bucket = &v
9759	return s
9760}
9761
9762// SetCreationDate sets the CreationDate field's value.
9763func (s *GetAccessPointOutput) SetCreationDate(v time.Time) *GetAccessPointOutput {
9764	s.CreationDate = &v
9765	return s
9766}
9767
9768// SetEndpoints sets the Endpoints field's value.
9769func (s *GetAccessPointOutput) SetEndpoints(v map[string]*string) *GetAccessPointOutput {
9770	s.Endpoints = v
9771	return s
9772}
9773
9774// SetName sets the Name field's value.
9775func (s *GetAccessPointOutput) SetName(v string) *GetAccessPointOutput {
9776	s.Name = &v
9777	return s
9778}
9779
9780// SetNetworkOrigin sets the NetworkOrigin field's value.
9781func (s *GetAccessPointOutput) SetNetworkOrigin(v string) *GetAccessPointOutput {
9782	s.NetworkOrigin = &v
9783	return s
9784}
9785
9786// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
9787func (s *GetAccessPointOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointOutput {
9788	s.PublicAccessBlockConfiguration = v
9789	return s
9790}
9791
9792// SetVpcConfiguration sets the VpcConfiguration field's value.
9793func (s *GetAccessPointOutput) SetVpcConfiguration(v *VpcConfiguration) *GetAccessPointOutput {
9794	s.VpcConfiguration = v
9795	return s
9796}
9797
9798type GetAccessPointPolicyForObjectLambdaInput struct {
9799	_ struct{} `locationName:"GetAccessPointPolicyForObjectLambdaRequest" type:"structure"`
9800
9801	// The account ID for the account that owns the specified Object Lambda Access
9802	// Point.
9803	//
9804	// AccountId is a required field
9805	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
9806
9807	// The name of the Object Lambda Access Point.
9808	//
9809	// Name is a required field
9810	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
9811}
9812
9813// String returns the string representation.
9814//
9815// API parameter values that are decorated as "sensitive" in the API will not
9816// be included in the string output. The member name will be present, but the
9817// value will be replaced with "sensitive".
9818func (s GetAccessPointPolicyForObjectLambdaInput) String() string {
9819	return awsutil.Prettify(s)
9820}
9821
9822// GoString returns the string representation.
9823//
9824// API parameter values that are decorated as "sensitive" in the API will not
9825// be included in the string output. The member name will be present, but the
9826// value will be replaced with "sensitive".
9827func (s GetAccessPointPolicyForObjectLambdaInput) GoString() string {
9828	return s.String()
9829}
9830
9831// Validate inspects the fields of the type to determine if they are valid.
9832func (s *GetAccessPointPolicyForObjectLambdaInput) Validate() error {
9833	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyForObjectLambdaInput"}
9834	if s.AccountId == nil {
9835		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9836	}
9837	if s.AccountId != nil && len(*s.AccountId) < 1 {
9838		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9839	}
9840	if s.Name == nil {
9841		invalidParams.Add(request.NewErrParamRequired("Name"))
9842	}
9843	if s.Name != nil && len(*s.Name) < 3 {
9844		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
9845	}
9846
9847	if invalidParams.Len() > 0 {
9848		return invalidParams
9849	}
9850	return nil
9851}
9852
9853// SetAccountId sets the AccountId field's value.
9854func (s *GetAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *GetAccessPointPolicyForObjectLambdaInput {
9855	s.AccountId = &v
9856	return s
9857}
9858
9859// SetName sets the Name field's value.
9860func (s *GetAccessPointPolicyForObjectLambdaInput) SetName(v string) *GetAccessPointPolicyForObjectLambdaInput {
9861	s.Name = &v
9862	return s
9863}
9864
9865func (s *GetAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string {
9866	return map[string]string{
9867		"AccountId": aws.StringValue(s.AccountId),
9868	}
9869}
9870
9871type GetAccessPointPolicyForObjectLambdaOutput struct {
9872	_ struct{} `type:"structure"`
9873
9874	// Object Lambda Access Point resource policy document.
9875	Policy *string `type:"string"`
9876}
9877
9878// String returns the string representation.
9879//
9880// API parameter values that are decorated as "sensitive" in the API will not
9881// be included in the string output. The member name will be present, but the
9882// value will be replaced with "sensitive".
9883func (s GetAccessPointPolicyForObjectLambdaOutput) String() string {
9884	return awsutil.Prettify(s)
9885}
9886
9887// GoString returns the string representation.
9888//
9889// API parameter values that are decorated as "sensitive" in the API will not
9890// be included in the string output. The member name will be present, but the
9891// value will be replaced with "sensitive".
9892func (s GetAccessPointPolicyForObjectLambdaOutput) GoString() string {
9893	return s.String()
9894}
9895
9896// SetPolicy sets the Policy field's value.
9897func (s *GetAccessPointPolicyForObjectLambdaOutput) SetPolicy(v string) *GetAccessPointPolicyForObjectLambdaOutput {
9898	s.Policy = &v
9899	return s
9900}
9901
9902type GetAccessPointPolicyInput struct {
9903	_ struct{} `locationName:"GetAccessPointPolicyRequest" type:"structure"`
9904
9905	// The account ID for the account that owns the specified access point.
9906	//
9907	// AccountId is a required field
9908	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
9909
9910	// The name of the access point whose policy you want to retrieve.
9911	//
9912	// For using this parameter with Amazon S3 on Outposts with the REST API, you
9913	// must specify the name and the x-amz-outpost-id as well.
9914	//
9915	// For using this parameter with S3 on Outposts with the Amazon Web Services
9916	// SDK and CLI, you must specify the ARN of the access point accessed in the
9917	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
9918	// For example, to access the access point reports-ap through outpost my-outpost
9919	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
9920	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
9921	// The value must be URL encoded.
9922	//
9923	// Name is a required field
9924	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
9925}
9926
9927// String returns the string representation.
9928//
9929// API parameter values that are decorated as "sensitive" in the API will not
9930// be included in the string output. The member name will be present, but the
9931// value will be replaced with "sensitive".
9932func (s GetAccessPointPolicyInput) String() string {
9933	return awsutil.Prettify(s)
9934}
9935
9936// GoString returns the string representation.
9937//
9938// API parameter values that are decorated as "sensitive" in the API will not
9939// be included in the string output. The member name will be present, but the
9940// value will be replaced with "sensitive".
9941func (s GetAccessPointPolicyInput) GoString() string {
9942	return s.String()
9943}
9944
9945// Validate inspects the fields of the type to determine if they are valid.
9946func (s *GetAccessPointPolicyInput) Validate() error {
9947	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyInput"}
9948	if s.AccountId == nil {
9949		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9950	}
9951	if s.AccountId != nil && len(*s.AccountId) < 1 {
9952		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9953	}
9954	if s.Name == nil {
9955		invalidParams.Add(request.NewErrParamRequired("Name"))
9956	}
9957	if s.Name != nil && len(*s.Name) < 3 {
9958		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
9959	}
9960
9961	if invalidParams.Len() > 0 {
9962		return invalidParams
9963	}
9964	return nil
9965}
9966
9967// SetAccountId sets the AccountId field's value.
9968func (s *GetAccessPointPolicyInput) SetAccountId(v string) *GetAccessPointPolicyInput {
9969	s.AccountId = &v
9970	return s
9971}
9972
9973// SetName sets the Name field's value.
9974func (s *GetAccessPointPolicyInput) SetName(v string) *GetAccessPointPolicyInput {
9975	s.Name = &v
9976	return s
9977}
9978
9979func (s *GetAccessPointPolicyInput) hostLabels() map[string]string {
9980	return map[string]string{
9981		"AccountId": aws.StringValue(s.AccountId),
9982	}
9983}
9984
9985func (s *GetAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
9986	if s.Name == nil {
9987		return nil, fmt.Errorf("member Name is nil")
9988	}
9989	return parseEndpointARN(*s.Name)
9990}
9991
9992func (s *GetAccessPointPolicyInput) hasEndpointARN() bool {
9993	if s.Name == nil {
9994		return false
9995	}
9996	return arn.IsARN(*s.Name)
9997}
9998
9999// updateArnableField updates the value of the input field that
10000// takes an ARN as an input. This method is useful to backfill
10001// the parsed resource name from ARN into the input member.
10002// It returns a pointer to a modified copy of input and an error.
10003// Note that original input is not modified.
10004func (s GetAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
10005	if s.Name == nil {
10006		return nil, fmt.Errorf("member Name is nil")
10007	}
10008	s.Name = aws.String(v)
10009	return &s, nil
10010}
10011
10012// updateAccountID returns a pointer to a modified copy of input,
10013// if account id is not provided, we update the account id in modified input
10014// if account id is provided, but doesn't match with the one in ARN, we throw an error
10015// if account id is not updated, we return nil. Note that original input is not modified.
10016func (s GetAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
10017	if s.AccountId == nil {
10018		s.AccountId = aws.String(accountId)
10019		return &s, nil
10020	} else if *s.AccountId != accountId {
10021		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
10022	}
10023	return nil, nil
10024}
10025
10026type GetAccessPointPolicyOutput struct {
10027	_ struct{} `type:"structure"`
10028
10029	// The access point policy associated with the specified access point.
10030	Policy *string `type:"string"`
10031}
10032
10033// String returns the string representation.
10034//
10035// API parameter values that are decorated as "sensitive" in the API will not
10036// be included in the string output. The member name will be present, but the
10037// value will be replaced with "sensitive".
10038func (s GetAccessPointPolicyOutput) String() string {
10039	return awsutil.Prettify(s)
10040}
10041
10042// GoString returns the string representation.
10043//
10044// API parameter values that are decorated as "sensitive" in the API will not
10045// be included in the string output. The member name will be present, but the
10046// value will be replaced with "sensitive".
10047func (s GetAccessPointPolicyOutput) GoString() string {
10048	return s.String()
10049}
10050
10051// SetPolicy sets the Policy field's value.
10052func (s *GetAccessPointPolicyOutput) SetPolicy(v string) *GetAccessPointPolicyOutput {
10053	s.Policy = &v
10054	return s
10055}
10056
10057type GetAccessPointPolicyStatusForObjectLambdaInput struct {
10058	_ struct{} `locationName:"GetAccessPointPolicyStatusForObjectLambdaRequest" type:"structure"`
10059
10060	// The account ID for the account that owns the specified Object Lambda Access
10061	// Point.
10062	//
10063	// AccountId is a required field
10064	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10065
10066	// The name of the Object Lambda Access Point.
10067	//
10068	// Name is a required field
10069	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
10070}
10071
10072// String returns the string representation.
10073//
10074// API parameter values that are decorated as "sensitive" in the API will not
10075// be included in the string output. The member name will be present, but the
10076// value will be replaced with "sensitive".
10077func (s GetAccessPointPolicyStatusForObjectLambdaInput) String() string {
10078	return awsutil.Prettify(s)
10079}
10080
10081// GoString returns the string representation.
10082//
10083// API parameter values that are decorated as "sensitive" in the API will not
10084// be included in the string output. The member name will be present, but the
10085// value will be replaced with "sensitive".
10086func (s GetAccessPointPolicyStatusForObjectLambdaInput) GoString() string {
10087	return s.String()
10088}
10089
10090// Validate inspects the fields of the type to determine if they are valid.
10091func (s *GetAccessPointPolicyStatusForObjectLambdaInput) Validate() error {
10092	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusForObjectLambdaInput"}
10093	if s.AccountId == nil {
10094		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10095	}
10096	if s.AccountId != nil && len(*s.AccountId) < 1 {
10097		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10098	}
10099	if s.Name == nil {
10100		invalidParams.Add(request.NewErrParamRequired("Name"))
10101	}
10102	if s.Name != nil && len(*s.Name) < 3 {
10103		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
10104	}
10105
10106	if invalidParams.Len() > 0 {
10107		return invalidParams
10108	}
10109	return nil
10110}
10111
10112// SetAccountId sets the AccountId field's value.
10113func (s *GetAccessPointPolicyStatusForObjectLambdaInput) SetAccountId(v string) *GetAccessPointPolicyStatusForObjectLambdaInput {
10114	s.AccountId = &v
10115	return s
10116}
10117
10118// SetName sets the Name field's value.
10119func (s *GetAccessPointPolicyStatusForObjectLambdaInput) SetName(v string) *GetAccessPointPolicyStatusForObjectLambdaInput {
10120	s.Name = &v
10121	return s
10122}
10123
10124func (s *GetAccessPointPolicyStatusForObjectLambdaInput) hostLabels() map[string]string {
10125	return map[string]string{
10126		"AccountId": aws.StringValue(s.AccountId),
10127	}
10128}
10129
10130type GetAccessPointPolicyStatusForObjectLambdaOutput struct {
10131	_ struct{} `type:"structure"`
10132
10133	// Indicates whether this access point policy is public. For more information
10134	// about how Amazon S3 evaluates policies to determine whether they are public,
10135	// 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)
10136	// in the Amazon S3 User Guide.
10137	PolicyStatus *PolicyStatus `type:"structure"`
10138}
10139
10140// String returns the string representation.
10141//
10142// API parameter values that are decorated as "sensitive" in the API will not
10143// be included in the string output. The member name will be present, but the
10144// value will be replaced with "sensitive".
10145func (s GetAccessPointPolicyStatusForObjectLambdaOutput) String() string {
10146	return awsutil.Prettify(s)
10147}
10148
10149// GoString returns the string representation.
10150//
10151// API parameter values that are decorated as "sensitive" in the API will not
10152// be included in the string output. The member name will be present, but the
10153// value will be replaced with "sensitive".
10154func (s GetAccessPointPolicyStatusForObjectLambdaOutput) GoString() string {
10155	return s.String()
10156}
10157
10158// SetPolicyStatus sets the PolicyStatus field's value.
10159func (s *GetAccessPointPolicyStatusForObjectLambdaOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusForObjectLambdaOutput {
10160	s.PolicyStatus = v
10161	return s
10162}
10163
10164type GetAccessPointPolicyStatusInput struct {
10165	_ struct{} `locationName:"GetAccessPointPolicyStatusRequest" type:"structure"`
10166
10167	// The account ID for the account that owns the specified access point.
10168	//
10169	// AccountId is a required field
10170	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10171
10172	// The name of the access point whose policy status you want to retrieve.
10173	//
10174	// Name is a required field
10175	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
10176}
10177
10178// String returns the string representation.
10179//
10180// API parameter values that are decorated as "sensitive" in the API will not
10181// be included in the string output. The member name will be present, but the
10182// value will be replaced with "sensitive".
10183func (s GetAccessPointPolicyStatusInput) String() string {
10184	return awsutil.Prettify(s)
10185}
10186
10187// GoString returns the string representation.
10188//
10189// API parameter values that are decorated as "sensitive" in the API will not
10190// be included in the string output. The member name will be present, but the
10191// value will be replaced with "sensitive".
10192func (s GetAccessPointPolicyStatusInput) GoString() string {
10193	return s.String()
10194}
10195
10196// Validate inspects the fields of the type to determine if they are valid.
10197func (s *GetAccessPointPolicyStatusInput) Validate() error {
10198	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusInput"}
10199	if s.AccountId == nil {
10200		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10201	}
10202	if s.AccountId != nil && len(*s.AccountId) < 1 {
10203		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10204	}
10205	if s.Name == nil {
10206		invalidParams.Add(request.NewErrParamRequired("Name"))
10207	}
10208	if s.Name != nil && len(*s.Name) < 3 {
10209		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
10210	}
10211
10212	if invalidParams.Len() > 0 {
10213		return invalidParams
10214	}
10215	return nil
10216}
10217
10218// SetAccountId sets the AccountId field's value.
10219func (s *GetAccessPointPolicyStatusInput) SetAccountId(v string) *GetAccessPointPolicyStatusInput {
10220	s.AccountId = &v
10221	return s
10222}
10223
10224// SetName sets the Name field's value.
10225func (s *GetAccessPointPolicyStatusInput) SetName(v string) *GetAccessPointPolicyStatusInput {
10226	s.Name = &v
10227	return s
10228}
10229
10230func (s *GetAccessPointPolicyStatusInput) hostLabels() map[string]string {
10231	return map[string]string{
10232		"AccountId": aws.StringValue(s.AccountId),
10233	}
10234}
10235
10236type GetAccessPointPolicyStatusOutput struct {
10237	_ struct{} `type:"structure"`
10238
10239	// Indicates the current policy status of the specified access point.
10240	PolicyStatus *PolicyStatus `type:"structure"`
10241}
10242
10243// String returns the string representation.
10244//
10245// API parameter values that are decorated as "sensitive" in the API will not
10246// be included in the string output. The member name will be present, but the
10247// value will be replaced with "sensitive".
10248func (s GetAccessPointPolicyStatusOutput) String() string {
10249	return awsutil.Prettify(s)
10250}
10251
10252// GoString returns the string representation.
10253//
10254// API parameter values that are decorated as "sensitive" in the API will not
10255// be included in the string output. The member name will be present, but the
10256// value will be replaced with "sensitive".
10257func (s GetAccessPointPolicyStatusOutput) GoString() string {
10258	return s.String()
10259}
10260
10261// SetPolicyStatus sets the PolicyStatus field's value.
10262func (s *GetAccessPointPolicyStatusOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusOutput {
10263	s.PolicyStatus = v
10264	return s
10265}
10266
10267type GetBucketInput struct {
10268	_ struct{} `locationName:"GetBucketRequest" type:"structure"`
10269
10270	// The Amazon Web Services account ID of the Outposts bucket.
10271	//
10272	// AccountId is a required field
10273	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10274
10275	// Specifies the bucket.
10276	//
10277	// For using this parameter with Amazon S3 on Outposts with the REST API, you
10278	// must specify the name and the x-amz-outpost-id as well.
10279	//
10280	// For using this parameter with S3 on Outposts with the Amazon Web Services
10281	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
10282	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
10283	// For example, to access the bucket reports through outpost my-outpost owned
10284	// 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.
10285	// The value must be URL encoded.
10286	//
10287	// Bucket is a required field
10288	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
10289}
10290
10291// String returns the string representation.
10292//
10293// API parameter values that are decorated as "sensitive" in the API will not
10294// be included in the string output. The member name will be present, but the
10295// value will be replaced with "sensitive".
10296func (s GetBucketInput) String() string {
10297	return awsutil.Prettify(s)
10298}
10299
10300// GoString returns the string representation.
10301//
10302// API parameter values that are decorated as "sensitive" in the API will not
10303// be included in the string output. The member name will be present, but the
10304// value will be replaced with "sensitive".
10305func (s GetBucketInput) GoString() string {
10306	return s.String()
10307}
10308
10309// Validate inspects the fields of the type to determine if they are valid.
10310func (s *GetBucketInput) Validate() error {
10311	invalidParams := request.ErrInvalidParams{Context: "GetBucketInput"}
10312	if s.AccountId == nil {
10313		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10314	}
10315	if s.AccountId != nil && len(*s.AccountId) < 1 {
10316		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10317	}
10318	if s.Bucket == nil {
10319		invalidParams.Add(request.NewErrParamRequired("Bucket"))
10320	}
10321	if s.Bucket != nil && len(*s.Bucket) < 3 {
10322		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
10323	}
10324
10325	if invalidParams.Len() > 0 {
10326		return invalidParams
10327	}
10328	return nil
10329}
10330
10331// SetAccountId sets the AccountId field's value.
10332func (s *GetBucketInput) SetAccountId(v string) *GetBucketInput {
10333	s.AccountId = &v
10334	return s
10335}
10336
10337// SetBucket sets the Bucket field's value.
10338func (s *GetBucketInput) SetBucket(v string) *GetBucketInput {
10339	s.Bucket = &v
10340	return s
10341}
10342
10343func (s *GetBucketInput) hostLabels() map[string]string {
10344	return map[string]string{
10345		"AccountId": aws.StringValue(s.AccountId),
10346	}
10347}
10348
10349func (s *GetBucketInput) getEndpointARN() (arn.Resource, error) {
10350	if s.Bucket == nil {
10351		return nil, fmt.Errorf("member Bucket is nil")
10352	}
10353	return parseEndpointARN(*s.Bucket)
10354}
10355
10356func (s *GetBucketInput) hasEndpointARN() bool {
10357	if s.Bucket == nil {
10358		return false
10359	}
10360	return arn.IsARN(*s.Bucket)
10361}
10362
10363// updateArnableField updates the value of the input field that
10364// takes an ARN as an input. This method is useful to backfill
10365// the parsed resource name from ARN into the input member.
10366// It returns a pointer to a modified copy of input and an error.
10367// Note that original input is not modified.
10368func (s GetBucketInput) updateArnableField(v string) (interface{}, error) {
10369	if s.Bucket == nil {
10370		return nil, fmt.Errorf("member Bucket is nil")
10371	}
10372	s.Bucket = aws.String(v)
10373	return &s, nil
10374}
10375
10376// updateAccountID returns a pointer to a modified copy of input,
10377// if account id is not provided, we update the account id in modified input
10378// if account id is provided, but doesn't match with the one in ARN, we throw an error
10379// if account id is not updated, we return nil. Note that original input is not modified.
10380func (s GetBucketInput) updateAccountID(accountId string) (interface{}, error) {
10381	if s.AccountId == nil {
10382		s.AccountId = aws.String(accountId)
10383		return &s, nil
10384	} else if *s.AccountId != accountId {
10385		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
10386	}
10387	return nil, nil
10388}
10389
10390type GetBucketLifecycleConfigurationInput struct {
10391	_ struct{} `locationName:"GetBucketLifecycleConfigurationRequest" type:"structure"`
10392
10393	// The Amazon Web Services account ID of the Outposts bucket.
10394	//
10395	// AccountId is a required field
10396	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10397
10398	// The Amazon Resource Name (ARN) of the bucket.
10399	//
10400	// For using this parameter with Amazon S3 on Outposts with the REST API, you
10401	// must specify the name and the x-amz-outpost-id as well.
10402	//
10403	// For using this parameter with S3 on Outposts with the Amazon Web Services
10404	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
10405	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
10406	// For example, to access the bucket reports through outpost my-outpost owned
10407	// 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.
10408	// The value must be URL encoded.
10409	//
10410	// Bucket is a required field
10411	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
10412}
10413
10414// String returns the string representation.
10415//
10416// API parameter values that are decorated as "sensitive" in the API will not
10417// be included in the string output. The member name will be present, but the
10418// value will be replaced with "sensitive".
10419func (s GetBucketLifecycleConfigurationInput) String() string {
10420	return awsutil.Prettify(s)
10421}
10422
10423// GoString returns the string representation.
10424//
10425// API parameter values that are decorated as "sensitive" in the API will not
10426// be included in the string output. The member name will be present, but the
10427// value will be replaced with "sensitive".
10428func (s GetBucketLifecycleConfigurationInput) GoString() string {
10429	return s.String()
10430}
10431
10432// Validate inspects the fields of the type to determine if they are valid.
10433func (s *GetBucketLifecycleConfigurationInput) Validate() error {
10434	invalidParams := request.ErrInvalidParams{Context: "GetBucketLifecycleConfigurationInput"}
10435	if s.AccountId == nil {
10436		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10437	}
10438	if s.AccountId != nil && len(*s.AccountId) < 1 {
10439		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10440	}
10441	if s.Bucket == nil {
10442		invalidParams.Add(request.NewErrParamRequired("Bucket"))
10443	}
10444	if s.Bucket != nil && len(*s.Bucket) < 3 {
10445		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
10446	}
10447
10448	if invalidParams.Len() > 0 {
10449		return invalidParams
10450	}
10451	return nil
10452}
10453
10454// SetAccountId sets the AccountId field's value.
10455func (s *GetBucketLifecycleConfigurationInput) SetAccountId(v string) *GetBucketLifecycleConfigurationInput {
10456	s.AccountId = &v
10457	return s
10458}
10459
10460// SetBucket sets the Bucket field's value.
10461func (s *GetBucketLifecycleConfigurationInput) SetBucket(v string) *GetBucketLifecycleConfigurationInput {
10462	s.Bucket = &v
10463	return s
10464}
10465
10466func (s *GetBucketLifecycleConfigurationInput) hostLabels() map[string]string {
10467	return map[string]string{
10468		"AccountId": aws.StringValue(s.AccountId),
10469	}
10470}
10471
10472func (s *GetBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
10473	if s.Bucket == nil {
10474		return nil, fmt.Errorf("member Bucket is nil")
10475	}
10476	return parseEndpointARN(*s.Bucket)
10477}
10478
10479func (s *GetBucketLifecycleConfigurationInput) hasEndpointARN() bool {
10480	if s.Bucket == nil {
10481		return false
10482	}
10483	return arn.IsARN(*s.Bucket)
10484}
10485
10486// updateArnableField updates the value of the input field that
10487// takes an ARN as an input. This method is useful to backfill
10488// the parsed resource name from ARN into the input member.
10489// It returns a pointer to a modified copy of input and an error.
10490// Note that original input is not modified.
10491func (s GetBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
10492	if s.Bucket == nil {
10493		return nil, fmt.Errorf("member Bucket is nil")
10494	}
10495	s.Bucket = aws.String(v)
10496	return &s, nil
10497}
10498
10499// updateAccountID returns a pointer to a modified copy of input,
10500// if account id is not provided, we update the account id in modified input
10501// if account id is provided, but doesn't match with the one in ARN, we throw an error
10502// if account id is not updated, we return nil. Note that original input is not modified.
10503func (s GetBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
10504	if s.AccountId == nil {
10505		s.AccountId = aws.String(accountId)
10506		return &s, nil
10507	} else if *s.AccountId != accountId {
10508		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
10509	}
10510	return nil, nil
10511}
10512
10513type GetBucketLifecycleConfigurationOutput struct {
10514	_ struct{} `type:"structure"`
10515
10516	// Container for the lifecycle rule of the Outposts bucket.
10517	Rules []*LifecycleRule `locationNameList:"Rule" type:"list"`
10518}
10519
10520// String returns the string representation.
10521//
10522// API parameter values that are decorated as "sensitive" in the API will not
10523// be included in the string output. The member name will be present, but the
10524// value will be replaced with "sensitive".
10525func (s GetBucketLifecycleConfigurationOutput) String() string {
10526	return awsutil.Prettify(s)
10527}
10528
10529// GoString returns the string representation.
10530//
10531// API parameter values that are decorated as "sensitive" in the API will not
10532// be included in the string output. The member name will be present, but the
10533// value will be replaced with "sensitive".
10534func (s GetBucketLifecycleConfigurationOutput) GoString() string {
10535	return s.String()
10536}
10537
10538// SetRules sets the Rules field's value.
10539func (s *GetBucketLifecycleConfigurationOutput) SetRules(v []*LifecycleRule) *GetBucketLifecycleConfigurationOutput {
10540	s.Rules = v
10541	return s
10542}
10543
10544type GetBucketOutput struct {
10545	_ struct{} `type:"structure"`
10546
10547	// The Outposts bucket requested.
10548	Bucket *string `min:"3" type:"string"`
10549
10550	// The creation date of the Outposts bucket.
10551	CreationDate *time.Time `type:"timestamp"`
10552
10553	PublicAccessBlockEnabled *bool `type:"boolean"`
10554}
10555
10556// String returns the string representation.
10557//
10558// API parameter values that are decorated as "sensitive" in the API will not
10559// be included in the string output. The member name will be present, but the
10560// value will be replaced with "sensitive".
10561func (s GetBucketOutput) String() string {
10562	return awsutil.Prettify(s)
10563}
10564
10565// GoString returns the string representation.
10566//
10567// API parameter values that are decorated as "sensitive" in the API will not
10568// be included in the string output. The member name will be present, but the
10569// value will be replaced with "sensitive".
10570func (s GetBucketOutput) GoString() string {
10571	return s.String()
10572}
10573
10574// SetBucket sets the Bucket field's value.
10575func (s *GetBucketOutput) SetBucket(v string) *GetBucketOutput {
10576	s.Bucket = &v
10577	return s
10578}
10579
10580// SetCreationDate sets the CreationDate field's value.
10581func (s *GetBucketOutput) SetCreationDate(v time.Time) *GetBucketOutput {
10582	s.CreationDate = &v
10583	return s
10584}
10585
10586// SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value.
10587func (s *GetBucketOutput) SetPublicAccessBlockEnabled(v bool) *GetBucketOutput {
10588	s.PublicAccessBlockEnabled = &v
10589	return s
10590}
10591
10592type GetBucketPolicyInput struct {
10593	_ struct{} `locationName:"GetBucketPolicyRequest" type:"structure"`
10594
10595	// The Amazon Web Services account ID of the Outposts bucket.
10596	//
10597	// AccountId is a required field
10598	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10599
10600	// Specifies the bucket.
10601	//
10602	// For using this parameter with Amazon S3 on Outposts with the REST API, you
10603	// must specify the name and the x-amz-outpost-id as well.
10604	//
10605	// For using this parameter with S3 on Outposts with the Amazon Web Services
10606	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
10607	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
10608	// For example, to access the bucket reports through outpost my-outpost owned
10609	// 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.
10610	// The value must be URL encoded.
10611	//
10612	// Bucket is a required field
10613	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
10614}
10615
10616// String returns the string representation.
10617//
10618// API parameter values that are decorated as "sensitive" in the API will not
10619// be included in the string output. The member name will be present, but the
10620// value will be replaced with "sensitive".
10621func (s GetBucketPolicyInput) String() string {
10622	return awsutil.Prettify(s)
10623}
10624
10625// GoString returns the string representation.
10626//
10627// API parameter values that are decorated as "sensitive" in the API will not
10628// be included in the string output. The member name will be present, but the
10629// value will be replaced with "sensitive".
10630func (s GetBucketPolicyInput) GoString() string {
10631	return s.String()
10632}
10633
10634// Validate inspects the fields of the type to determine if they are valid.
10635func (s *GetBucketPolicyInput) Validate() error {
10636	invalidParams := request.ErrInvalidParams{Context: "GetBucketPolicyInput"}
10637	if s.AccountId == nil {
10638		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10639	}
10640	if s.AccountId != nil && len(*s.AccountId) < 1 {
10641		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10642	}
10643	if s.Bucket == nil {
10644		invalidParams.Add(request.NewErrParamRequired("Bucket"))
10645	}
10646	if s.Bucket != nil && len(*s.Bucket) < 3 {
10647		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
10648	}
10649
10650	if invalidParams.Len() > 0 {
10651		return invalidParams
10652	}
10653	return nil
10654}
10655
10656// SetAccountId sets the AccountId field's value.
10657func (s *GetBucketPolicyInput) SetAccountId(v string) *GetBucketPolicyInput {
10658	s.AccountId = &v
10659	return s
10660}
10661
10662// SetBucket sets the Bucket field's value.
10663func (s *GetBucketPolicyInput) SetBucket(v string) *GetBucketPolicyInput {
10664	s.Bucket = &v
10665	return s
10666}
10667
10668func (s *GetBucketPolicyInput) hostLabels() map[string]string {
10669	return map[string]string{
10670		"AccountId": aws.StringValue(s.AccountId),
10671	}
10672}
10673
10674func (s *GetBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
10675	if s.Bucket == nil {
10676		return nil, fmt.Errorf("member Bucket is nil")
10677	}
10678	return parseEndpointARN(*s.Bucket)
10679}
10680
10681func (s *GetBucketPolicyInput) hasEndpointARN() bool {
10682	if s.Bucket == nil {
10683		return false
10684	}
10685	return arn.IsARN(*s.Bucket)
10686}
10687
10688// updateArnableField updates the value of the input field that
10689// takes an ARN as an input. This method is useful to backfill
10690// the parsed resource name from ARN into the input member.
10691// It returns a pointer to a modified copy of input and an error.
10692// Note that original input is not modified.
10693func (s GetBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
10694	if s.Bucket == nil {
10695		return nil, fmt.Errorf("member Bucket is nil")
10696	}
10697	s.Bucket = aws.String(v)
10698	return &s, nil
10699}
10700
10701// updateAccountID returns a pointer to a modified copy of input,
10702// if account id is not provided, we update the account id in modified input
10703// if account id is provided, but doesn't match with the one in ARN, we throw an error
10704// if account id is not updated, we return nil. Note that original input is not modified.
10705func (s GetBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
10706	if s.AccountId == nil {
10707		s.AccountId = aws.String(accountId)
10708		return &s, nil
10709	} else if *s.AccountId != accountId {
10710		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
10711	}
10712	return nil, nil
10713}
10714
10715type GetBucketPolicyOutput struct {
10716	_ struct{} `type:"structure"`
10717
10718	// The policy of the Outposts bucket.
10719	Policy *string `type:"string"`
10720}
10721
10722// String returns the string representation.
10723//
10724// API parameter values that are decorated as "sensitive" in the API will not
10725// be included in the string output. The member name will be present, but the
10726// value will be replaced with "sensitive".
10727func (s GetBucketPolicyOutput) String() string {
10728	return awsutil.Prettify(s)
10729}
10730
10731// GoString returns the string representation.
10732//
10733// API parameter values that are decorated as "sensitive" in the API will not
10734// be included in the string output. The member name will be present, but the
10735// value will be replaced with "sensitive".
10736func (s GetBucketPolicyOutput) GoString() string {
10737	return s.String()
10738}
10739
10740// SetPolicy sets the Policy field's value.
10741func (s *GetBucketPolicyOutput) SetPolicy(v string) *GetBucketPolicyOutput {
10742	s.Policy = &v
10743	return s
10744}
10745
10746type GetBucketTaggingInput struct {
10747	_ struct{} `locationName:"GetBucketTaggingRequest" type:"structure"`
10748
10749	// The Amazon Web Services account ID of the Outposts bucket.
10750	//
10751	// AccountId is a required field
10752	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10753
10754	// Specifies the bucket.
10755	//
10756	// For using this parameter with Amazon S3 on Outposts with the REST API, you
10757	// must specify the name and the x-amz-outpost-id as well.
10758	//
10759	// For using this parameter with S3 on Outposts with the Amazon Web Services
10760	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
10761	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
10762	// For example, to access the bucket reports through outpost my-outpost owned
10763	// 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.
10764	// The value must be URL encoded.
10765	//
10766	// Bucket is a required field
10767	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
10768}
10769
10770// String returns the string representation.
10771//
10772// API parameter values that are decorated as "sensitive" in the API will not
10773// be included in the string output. The member name will be present, but the
10774// value will be replaced with "sensitive".
10775func (s GetBucketTaggingInput) String() string {
10776	return awsutil.Prettify(s)
10777}
10778
10779// GoString returns the string representation.
10780//
10781// API parameter values that are decorated as "sensitive" in the API will not
10782// be included in the string output. The member name will be present, but the
10783// value will be replaced with "sensitive".
10784func (s GetBucketTaggingInput) GoString() string {
10785	return s.String()
10786}
10787
10788// Validate inspects the fields of the type to determine if they are valid.
10789func (s *GetBucketTaggingInput) Validate() error {
10790	invalidParams := request.ErrInvalidParams{Context: "GetBucketTaggingInput"}
10791	if s.AccountId == nil {
10792		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10793	}
10794	if s.AccountId != nil && len(*s.AccountId) < 1 {
10795		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10796	}
10797	if s.Bucket == nil {
10798		invalidParams.Add(request.NewErrParamRequired("Bucket"))
10799	}
10800	if s.Bucket != nil && len(*s.Bucket) < 3 {
10801		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
10802	}
10803
10804	if invalidParams.Len() > 0 {
10805		return invalidParams
10806	}
10807	return nil
10808}
10809
10810// SetAccountId sets the AccountId field's value.
10811func (s *GetBucketTaggingInput) SetAccountId(v string) *GetBucketTaggingInput {
10812	s.AccountId = &v
10813	return s
10814}
10815
10816// SetBucket sets the Bucket field's value.
10817func (s *GetBucketTaggingInput) SetBucket(v string) *GetBucketTaggingInput {
10818	s.Bucket = &v
10819	return s
10820}
10821
10822func (s *GetBucketTaggingInput) hostLabels() map[string]string {
10823	return map[string]string{
10824		"AccountId": aws.StringValue(s.AccountId),
10825	}
10826}
10827
10828func (s *GetBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
10829	if s.Bucket == nil {
10830		return nil, fmt.Errorf("member Bucket is nil")
10831	}
10832	return parseEndpointARN(*s.Bucket)
10833}
10834
10835func (s *GetBucketTaggingInput) hasEndpointARN() bool {
10836	if s.Bucket == nil {
10837		return false
10838	}
10839	return arn.IsARN(*s.Bucket)
10840}
10841
10842// updateArnableField updates the value of the input field that
10843// takes an ARN as an input. This method is useful to backfill
10844// the parsed resource name from ARN into the input member.
10845// It returns a pointer to a modified copy of input and an error.
10846// Note that original input is not modified.
10847func (s GetBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
10848	if s.Bucket == nil {
10849		return nil, fmt.Errorf("member Bucket is nil")
10850	}
10851	s.Bucket = aws.String(v)
10852	return &s, nil
10853}
10854
10855// updateAccountID returns a pointer to a modified copy of input,
10856// if account id is not provided, we update the account id in modified input
10857// if account id is provided, but doesn't match with the one in ARN, we throw an error
10858// if account id is not updated, we return nil. Note that original input is not modified.
10859func (s GetBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
10860	if s.AccountId == nil {
10861		s.AccountId = aws.String(accountId)
10862		return &s, nil
10863	} else if *s.AccountId != accountId {
10864		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
10865	}
10866	return nil, nil
10867}
10868
10869type GetBucketTaggingOutput struct {
10870	_ struct{} `type:"structure"`
10871
10872	// The tags set of the Outposts bucket.
10873	//
10874	// TagSet is a required field
10875	TagSet []*S3Tag `type:"list" required:"true"`
10876}
10877
10878// String returns the string representation.
10879//
10880// API parameter values that are decorated as "sensitive" in the API will not
10881// be included in the string output. The member name will be present, but the
10882// value will be replaced with "sensitive".
10883func (s GetBucketTaggingOutput) String() string {
10884	return awsutil.Prettify(s)
10885}
10886
10887// GoString returns the string representation.
10888//
10889// API parameter values that are decorated as "sensitive" in the API will not
10890// be included in the string output. The member name will be present, but the
10891// value will be replaced with "sensitive".
10892func (s GetBucketTaggingOutput) GoString() string {
10893	return s.String()
10894}
10895
10896// SetTagSet sets the TagSet field's value.
10897func (s *GetBucketTaggingOutput) SetTagSet(v []*S3Tag) *GetBucketTaggingOutput {
10898	s.TagSet = v
10899	return s
10900}
10901
10902type GetJobTaggingInput struct {
10903	_ struct{} `locationName:"GetJobTaggingRequest" type:"structure"`
10904
10905	// The Amazon Web Services account ID associated with the S3 Batch Operations
10906	// job.
10907	//
10908	// AccountId is a required field
10909	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10910
10911	// The ID for the S3 Batch Operations job whose tags you want to retrieve.
10912	//
10913	// JobId is a required field
10914	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
10915}
10916
10917// String returns the string representation.
10918//
10919// API parameter values that are decorated as "sensitive" in the API will not
10920// be included in the string output. The member name will be present, but the
10921// value will be replaced with "sensitive".
10922func (s GetJobTaggingInput) String() string {
10923	return awsutil.Prettify(s)
10924}
10925
10926// GoString returns the string representation.
10927//
10928// API parameter values that are decorated as "sensitive" in the API will not
10929// be included in the string output. The member name will be present, but the
10930// value will be replaced with "sensitive".
10931func (s GetJobTaggingInput) GoString() string {
10932	return s.String()
10933}
10934
10935// Validate inspects the fields of the type to determine if they are valid.
10936func (s *GetJobTaggingInput) Validate() error {
10937	invalidParams := request.ErrInvalidParams{Context: "GetJobTaggingInput"}
10938	if s.AccountId == nil {
10939		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10940	}
10941	if s.AccountId != nil && len(*s.AccountId) < 1 {
10942		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10943	}
10944	if s.JobId == nil {
10945		invalidParams.Add(request.NewErrParamRequired("JobId"))
10946	}
10947	if s.JobId != nil && len(*s.JobId) < 5 {
10948		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
10949	}
10950
10951	if invalidParams.Len() > 0 {
10952		return invalidParams
10953	}
10954	return nil
10955}
10956
10957// SetAccountId sets the AccountId field's value.
10958func (s *GetJobTaggingInput) SetAccountId(v string) *GetJobTaggingInput {
10959	s.AccountId = &v
10960	return s
10961}
10962
10963// SetJobId sets the JobId field's value.
10964func (s *GetJobTaggingInput) SetJobId(v string) *GetJobTaggingInput {
10965	s.JobId = &v
10966	return s
10967}
10968
10969func (s *GetJobTaggingInput) hostLabels() map[string]string {
10970	return map[string]string{
10971		"AccountId": aws.StringValue(s.AccountId),
10972	}
10973}
10974
10975type GetJobTaggingOutput struct {
10976	_ struct{} `type:"structure"`
10977
10978	// The set of tags associated with the S3 Batch Operations job.
10979	Tags []*S3Tag `type:"list"`
10980}
10981
10982// String returns the string representation.
10983//
10984// API parameter values that are decorated as "sensitive" in the API will not
10985// be included in the string output. The member name will be present, but the
10986// value will be replaced with "sensitive".
10987func (s GetJobTaggingOutput) String() string {
10988	return awsutil.Prettify(s)
10989}
10990
10991// GoString returns the string representation.
10992//
10993// API parameter values that are decorated as "sensitive" in the API will not
10994// be included in the string output. The member name will be present, but the
10995// value will be replaced with "sensitive".
10996func (s GetJobTaggingOutput) GoString() string {
10997	return s.String()
10998}
10999
11000// SetTags sets the Tags field's value.
11001func (s *GetJobTaggingOutput) SetTags(v []*S3Tag) *GetJobTaggingOutput {
11002	s.Tags = v
11003	return s
11004}
11005
11006type GetMultiRegionAccessPointInput struct {
11007	_ struct{} `locationName:"GetMultiRegionAccessPointRequest" type:"structure"`
11008
11009	// The Amazon Web Services account ID for the owner of the Multi-Region Access
11010	// Point.
11011	//
11012	// AccountId is a required field
11013	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11014
11015	// The name of the Multi-Region Access Point whose configuration information
11016	// you want to receive. The name of the Multi-Region Access Point is different
11017	// from the alias. For more information about the distinction between the name
11018	// and the alias of an Multi-Region Access Point, see Managing Multi-Region
11019	// Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming)
11020	// in the Amazon S3 User Guide.
11021	//
11022	// Name is a required field
11023	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
11024}
11025
11026// String returns the string representation.
11027//
11028// API parameter values that are decorated as "sensitive" in the API will not
11029// be included in the string output. The member name will be present, but the
11030// value will be replaced with "sensitive".
11031func (s GetMultiRegionAccessPointInput) String() string {
11032	return awsutil.Prettify(s)
11033}
11034
11035// GoString returns the string representation.
11036//
11037// API parameter values that are decorated as "sensitive" in the API will not
11038// be included in the string output. The member name will be present, but the
11039// value will be replaced with "sensitive".
11040func (s GetMultiRegionAccessPointInput) GoString() string {
11041	return s.String()
11042}
11043
11044// Validate inspects the fields of the type to determine if they are valid.
11045func (s *GetMultiRegionAccessPointInput) Validate() error {
11046	invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointInput"}
11047	if s.AccountId == nil {
11048		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11049	}
11050	if s.AccountId != nil && len(*s.AccountId) < 1 {
11051		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11052	}
11053	if s.Name == nil {
11054		invalidParams.Add(request.NewErrParamRequired("Name"))
11055	}
11056	if s.Name != nil && len(*s.Name) < 1 {
11057		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
11058	}
11059
11060	if invalidParams.Len() > 0 {
11061		return invalidParams
11062	}
11063	return nil
11064}
11065
11066// SetAccountId sets the AccountId field's value.
11067func (s *GetMultiRegionAccessPointInput) SetAccountId(v string) *GetMultiRegionAccessPointInput {
11068	s.AccountId = &v
11069	return s
11070}
11071
11072// SetName sets the Name field's value.
11073func (s *GetMultiRegionAccessPointInput) SetName(v string) *GetMultiRegionAccessPointInput {
11074	s.Name = &v
11075	return s
11076}
11077
11078func (s *GetMultiRegionAccessPointInput) hostLabels() map[string]string {
11079	return map[string]string{
11080		"AccountId": aws.StringValue(s.AccountId),
11081	}
11082}
11083
11084type GetMultiRegionAccessPointOutput struct {
11085	_ struct{} `type:"structure"`
11086
11087	// A container element containing the details of the requested Multi-Region
11088	// Access Point.
11089	AccessPoint *MultiRegionAccessPointReport `type:"structure"`
11090}
11091
11092// String returns the string representation.
11093//
11094// API parameter values that are decorated as "sensitive" in the API will not
11095// be included in the string output. The member name will be present, but the
11096// value will be replaced with "sensitive".
11097func (s GetMultiRegionAccessPointOutput) String() string {
11098	return awsutil.Prettify(s)
11099}
11100
11101// GoString returns the string representation.
11102//
11103// API parameter values that are decorated as "sensitive" in the API will not
11104// be included in the string output. The member name will be present, but the
11105// value will be replaced with "sensitive".
11106func (s GetMultiRegionAccessPointOutput) GoString() string {
11107	return s.String()
11108}
11109
11110// SetAccessPoint sets the AccessPoint field's value.
11111func (s *GetMultiRegionAccessPointOutput) SetAccessPoint(v *MultiRegionAccessPointReport) *GetMultiRegionAccessPointOutput {
11112	s.AccessPoint = v
11113	return s
11114}
11115
11116type GetMultiRegionAccessPointPolicyInput struct {
11117	_ struct{} `locationName:"GetMultiRegionAccessPointPolicyRequest" type:"structure"`
11118
11119	// The Amazon Web Services account ID for the owner of the Multi-Region Access
11120	// Point.
11121	//
11122	// AccountId is a required field
11123	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11124
11125	// Specifies the Multi-Region Access Point. The name of the Multi-Region Access
11126	// Point is different from the alias. For more information about the distinction
11127	// between the name and the alias of an Multi-Region Access Point, see Managing
11128	// Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming)
11129	// in the Amazon S3 User Guide.
11130	//
11131	// Name is a required field
11132	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
11133}
11134
11135// String returns the string representation.
11136//
11137// API parameter values that are decorated as "sensitive" in the API will not
11138// be included in the string output. The member name will be present, but the
11139// value will be replaced with "sensitive".
11140func (s GetMultiRegionAccessPointPolicyInput) String() string {
11141	return awsutil.Prettify(s)
11142}
11143
11144// GoString returns the string representation.
11145//
11146// API parameter values that are decorated as "sensitive" in the API will not
11147// be included in the string output. The member name will be present, but the
11148// value will be replaced with "sensitive".
11149func (s GetMultiRegionAccessPointPolicyInput) GoString() string {
11150	return s.String()
11151}
11152
11153// Validate inspects the fields of the type to determine if they are valid.
11154func (s *GetMultiRegionAccessPointPolicyInput) Validate() error {
11155	invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointPolicyInput"}
11156	if s.AccountId == nil {
11157		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11158	}
11159	if s.AccountId != nil && len(*s.AccountId) < 1 {
11160		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11161	}
11162	if s.Name == nil {
11163		invalidParams.Add(request.NewErrParamRequired("Name"))
11164	}
11165	if s.Name != nil && len(*s.Name) < 1 {
11166		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
11167	}
11168
11169	if invalidParams.Len() > 0 {
11170		return invalidParams
11171	}
11172	return nil
11173}
11174
11175// SetAccountId sets the AccountId field's value.
11176func (s *GetMultiRegionAccessPointPolicyInput) SetAccountId(v string) *GetMultiRegionAccessPointPolicyInput {
11177	s.AccountId = &v
11178	return s
11179}
11180
11181// SetName sets the Name field's value.
11182func (s *GetMultiRegionAccessPointPolicyInput) SetName(v string) *GetMultiRegionAccessPointPolicyInput {
11183	s.Name = &v
11184	return s
11185}
11186
11187func (s *GetMultiRegionAccessPointPolicyInput) hostLabels() map[string]string {
11188	return map[string]string{
11189		"AccountId": aws.StringValue(s.AccountId),
11190	}
11191}
11192
11193type GetMultiRegionAccessPointPolicyOutput struct {
11194	_ struct{} `type:"structure"`
11195
11196	// The policy associated with the specified Multi-Region Access Point.
11197	Policy *MultiRegionAccessPointPolicyDocument `type:"structure"`
11198}
11199
11200// String returns the string representation.
11201//
11202// API parameter values that are decorated as "sensitive" in the API will not
11203// be included in the string output. The member name will be present, but the
11204// value will be replaced with "sensitive".
11205func (s GetMultiRegionAccessPointPolicyOutput) String() string {
11206	return awsutil.Prettify(s)
11207}
11208
11209// GoString returns the string representation.
11210//
11211// API parameter values that are decorated as "sensitive" in the API will not
11212// be included in the string output. The member name will be present, but the
11213// value will be replaced with "sensitive".
11214func (s GetMultiRegionAccessPointPolicyOutput) GoString() string {
11215	return s.String()
11216}
11217
11218// SetPolicy sets the Policy field's value.
11219func (s *GetMultiRegionAccessPointPolicyOutput) SetPolicy(v *MultiRegionAccessPointPolicyDocument) *GetMultiRegionAccessPointPolicyOutput {
11220	s.Policy = v
11221	return s
11222}
11223
11224type GetMultiRegionAccessPointPolicyStatusInput struct {
11225	_ struct{} `locationName:"GetMultiRegionAccessPointPolicyStatusRequest" type:"structure"`
11226
11227	// The Amazon Web Services account ID for the owner of the Multi-Region Access
11228	// Point.
11229	//
11230	// AccountId is a required field
11231	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11232
11233	// Specifies the Multi-Region Access Point. The name of the Multi-Region Access
11234	// Point is different from the alias. For more information about the distinction
11235	// between the name and the alias of an Multi-Region Access Point, see Managing
11236	// Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming)
11237	// in the Amazon S3 User Guide.
11238	//
11239	// Name is a required field
11240	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
11241}
11242
11243// String returns the string representation.
11244//
11245// API parameter values that are decorated as "sensitive" in the API will not
11246// be included in the string output. The member name will be present, but the
11247// value will be replaced with "sensitive".
11248func (s GetMultiRegionAccessPointPolicyStatusInput) String() string {
11249	return awsutil.Prettify(s)
11250}
11251
11252// GoString returns the string representation.
11253//
11254// API parameter values that are decorated as "sensitive" in the API will not
11255// be included in the string output. The member name will be present, but the
11256// value will be replaced with "sensitive".
11257func (s GetMultiRegionAccessPointPolicyStatusInput) GoString() string {
11258	return s.String()
11259}
11260
11261// Validate inspects the fields of the type to determine if they are valid.
11262func (s *GetMultiRegionAccessPointPolicyStatusInput) Validate() error {
11263	invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointPolicyStatusInput"}
11264	if s.AccountId == nil {
11265		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11266	}
11267	if s.AccountId != nil && len(*s.AccountId) < 1 {
11268		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11269	}
11270	if s.Name == nil {
11271		invalidParams.Add(request.NewErrParamRequired("Name"))
11272	}
11273	if s.Name != nil && len(*s.Name) < 1 {
11274		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
11275	}
11276
11277	if invalidParams.Len() > 0 {
11278		return invalidParams
11279	}
11280	return nil
11281}
11282
11283// SetAccountId sets the AccountId field's value.
11284func (s *GetMultiRegionAccessPointPolicyStatusInput) SetAccountId(v string) *GetMultiRegionAccessPointPolicyStatusInput {
11285	s.AccountId = &v
11286	return s
11287}
11288
11289// SetName sets the Name field's value.
11290func (s *GetMultiRegionAccessPointPolicyStatusInput) SetName(v string) *GetMultiRegionAccessPointPolicyStatusInput {
11291	s.Name = &v
11292	return s
11293}
11294
11295func (s *GetMultiRegionAccessPointPolicyStatusInput) hostLabels() map[string]string {
11296	return map[string]string{
11297		"AccountId": aws.StringValue(s.AccountId),
11298	}
11299}
11300
11301type GetMultiRegionAccessPointPolicyStatusOutput struct {
11302	_ struct{} `type:"structure"`
11303
11304	// Indicates whether this access point policy is public. For more information
11305	// about how Amazon S3 evaluates policies to determine whether they are public,
11306	// 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)
11307	// in the Amazon S3 User Guide.
11308	Established *PolicyStatus `type:"structure"`
11309}
11310
11311// String returns the string representation.
11312//
11313// API parameter values that are decorated as "sensitive" in the API will not
11314// be included in the string output. The member name will be present, but the
11315// value will be replaced with "sensitive".
11316func (s GetMultiRegionAccessPointPolicyStatusOutput) String() string {
11317	return awsutil.Prettify(s)
11318}
11319
11320// GoString returns the string representation.
11321//
11322// API parameter values that are decorated as "sensitive" in the API will not
11323// be included in the string output. The member name will be present, but the
11324// value will be replaced with "sensitive".
11325func (s GetMultiRegionAccessPointPolicyStatusOutput) GoString() string {
11326	return s.String()
11327}
11328
11329// SetEstablished sets the Established field's value.
11330func (s *GetMultiRegionAccessPointPolicyStatusOutput) SetEstablished(v *PolicyStatus) *GetMultiRegionAccessPointPolicyStatusOutput {
11331	s.Established = v
11332	return s
11333}
11334
11335type GetPublicAccessBlockInput struct {
11336	_ struct{} `locationName:"GetPublicAccessBlockRequest" type:"structure"`
11337
11338	// The account ID for the Amazon Web Services account whose PublicAccessBlock
11339	// configuration you want to retrieve.
11340	//
11341	// AccountId is a required field
11342	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11343}
11344
11345// String returns the string representation.
11346//
11347// API parameter values that are decorated as "sensitive" in the API will not
11348// be included in the string output. The member name will be present, but the
11349// value will be replaced with "sensitive".
11350func (s GetPublicAccessBlockInput) String() string {
11351	return awsutil.Prettify(s)
11352}
11353
11354// GoString returns the string representation.
11355//
11356// API parameter values that are decorated as "sensitive" in the API will not
11357// be included in the string output. The member name will be present, but the
11358// value will be replaced with "sensitive".
11359func (s GetPublicAccessBlockInput) GoString() string {
11360	return s.String()
11361}
11362
11363// Validate inspects the fields of the type to determine if they are valid.
11364func (s *GetPublicAccessBlockInput) Validate() error {
11365	invalidParams := request.ErrInvalidParams{Context: "GetPublicAccessBlockInput"}
11366	if s.AccountId == nil {
11367		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11368	}
11369	if s.AccountId != nil && len(*s.AccountId) < 1 {
11370		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11371	}
11372
11373	if invalidParams.Len() > 0 {
11374		return invalidParams
11375	}
11376	return nil
11377}
11378
11379// SetAccountId sets the AccountId field's value.
11380func (s *GetPublicAccessBlockInput) SetAccountId(v string) *GetPublicAccessBlockInput {
11381	s.AccountId = &v
11382	return s
11383}
11384
11385func (s *GetPublicAccessBlockInput) hostLabels() map[string]string {
11386	return map[string]string{
11387		"AccountId": aws.StringValue(s.AccountId),
11388	}
11389}
11390
11391type GetPublicAccessBlockOutput struct {
11392	_ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"`
11393
11394	// The PublicAccessBlock configuration currently in effect for this Amazon Web
11395	// Services account.
11396	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
11397}
11398
11399// String returns the string representation.
11400//
11401// API parameter values that are decorated as "sensitive" in the API will not
11402// be included in the string output. The member name will be present, but the
11403// value will be replaced with "sensitive".
11404func (s GetPublicAccessBlockOutput) String() string {
11405	return awsutil.Prettify(s)
11406}
11407
11408// GoString returns the string representation.
11409//
11410// API parameter values that are decorated as "sensitive" in the API will not
11411// be included in the string output. The member name will be present, but the
11412// value will be replaced with "sensitive".
11413func (s GetPublicAccessBlockOutput) GoString() string {
11414	return s.String()
11415}
11416
11417// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
11418func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetPublicAccessBlockOutput {
11419	s.PublicAccessBlockConfiguration = v
11420	return s
11421}
11422
11423type GetStorageLensConfigurationInput struct {
11424	_ struct{} `locationName:"GetStorageLensConfigurationRequest" type:"structure"`
11425
11426	// The account ID of the requester.
11427	//
11428	// AccountId is a required field
11429	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11430
11431	// The ID of the Amazon S3 Storage Lens configuration.
11432	//
11433	// ConfigId is a required field
11434	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
11435}
11436
11437// String returns the string representation.
11438//
11439// API parameter values that are decorated as "sensitive" in the API will not
11440// be included in the string output. The member name will be present, but the
11441// value will be replaced with "sensitive".
11442func (s GetStorageLensConfigurationInput) String() string {
11443	return awsutil.Prettify(s)
11444}
11445
11446// GoString returns the string representation.
11447//
11448// API parameter values that are decorated as "sensitive" in the API will not
11449// be included in the string output. The member name will be present, but the
11450// value will be replaced with "sensitive".
11451func (s GetStorageLensConfigurationInput) GoString() string {
11452	return s.String()
11453}
11454
11455// Validate inspects the fields of the type to determine if they are valid.
11456func (s *GetStorageLensConfigurationInput) Validate() error {
11457	invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationInput"}
11458	if s.AccountId == nil {
11459		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11460	}
11461	if s.AccountId != nil && len(*s.AccountId) < 1 {
11462		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11463	}
11464	if s.ConfigId == nil {
11465		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
11466	}
11467	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
11468		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
11469	}
11470
11471	if invalidParams.Len() > 0 {
11472		return invalidParams
11473	}
11474	return nil
11475}
11476
11477// SetAccountId sets the AccountId field's value.
11478func (s *GetStorageLensConfigurationInput) SetAccountId(v string) *GetStorageLensConfigurationInput {
11479	s.AccountId = &v
11480	return s
11481}
11482
11483// SetConfigId sets the ConfigId field's value.
11484func (s *GetStorageLensConfigurationInput) SetConfigId(v string) *GetStorageLensConfigurationInput {
11485	s.ConfigId = &v
11486	return s
11487}
11488
11489func (s *GetStorageLensConfigurationInput) hostLabels() map[string]string {
11490	return map[string]string{
11491		"AccountId": aws.StringValue(s.AccountId),
11492	}
11493}
11494
11495type GetStorageLensConfigurationOutput struct {
11496	_ struct{} `type:"structure" payload:"StorageLensConfiguration"`
11497
11498	// The S3 Storage Lens configuration requested.
11499	StorageLensConfiguration *StorageLensConfiguration `type:"structure"`
11500}
11501
11502// String returns the string representation.
11503//
11504// API parameter values that are decorated as "sensitive" in the API will not
11505// be included in the string output. The member name will be present, but the
11506// value will be replaced with "sensitive".
11507func (s GetStorageLensConfigurationOutput) String() string {
11508	return awsutil.Prettify(s)
11509}
11510
11511// GoString returns the string representation.
11512//
11513// API parameter values that are decorated as "sensitive" in the API will not
11514// be included in the string output. The member name will be present, but the
11515// value will be replaced with "sensitive".
11516func (s GetStorageLensConfigurationOutput) GoString() string {
11517	return s.String()
11518}
11519
11520// SetStorageLensConfiguration sets the StorageLensConfiguration field's value.
11521func (s *GetStorageLensConfigurationOutput) SetStorageLensConfiguration(v *StorageLensConfiguration) *GetStorageLensConfigurationOutput {
11522	s.StorageLensConfiguration = v
11523	return s
11524}
11525
11526type GetStorageLensConfigurationTaggingInput struct {
11527	_ struct{} `locationName:"GetStorageLensConfigurationTaggingRequest" type:"structure"`
11528
11529	// The account ID of the requester.
11530	//
11531	// AccountId is a required field
11532	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11533
11534	// The ID of the Amazon S3 Storage Lens configuration.
11535	//
11536	// ConfigId is a required field
11537	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
11538}
11539
11540// String returns the string representation.
11541//
11542// API parameter values that are decorated as "sensitive" in the API will not
11543// be included in the string output. The member name will be present, but the
11544// value will be replaced with "sensitive".
11545func (s GetStorageLensConfigurationTaggingInput) String() string {
11546	return awsutil.Prettify(s)
11547}
11548
11549// GoString returns the string representation.
11550//
11551// API parameter values that are decorated as "sensitive" in the API will not
11552// be included in the string output. The member name will be present, but the
11553// value will be replaced with "sensitive".
11554func (s GetStorageLensConfigurationTaggingInput) GoString() string {
11555	return s.String()
11556}
11557
11558// Validate inspects the fields of the type to determine if they are valid.
11559func (s *GetStorageLensConfigurationTaggingInput) Validate() error {
11560	invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationTaggingInput"}
11561	if s.AccountId == nil {
11562		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11563	}
11564	if s.AccountId != nil && len(*s.AccountId) < 1 {
11565		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11566	}
11567	if s.ConfigId == nil {
11568		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
11569	}
11570	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
11571		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
11572	}
11573
11574	if invalidParams.Len() > 0 {
11575		return invalidParams
11576	}
11577	return nil
11578}
11579
11580// SetAccountId sets the AccountId field's value.
11581func (s *GetStorageLensConfigurationTaggingInput) SetAccountId(v string) *GetStorageLensConfigurationTaggingInput {
11582	s.AccountId = &v
11583	return s
11584}
11585
11586// SetConfigId sets the ConfigId field's value.
11587func (s *GetStorageLensConfigurationTaggingInput) SetConfigId(v string) *GetStorageLensConfigurationTaggingInput {
11588	s.ConfigId = &v
11589	return s
11590}
11591
11592func (s *GetStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
11593	return map[string]string{
11594		"AccountId": aws.StringValue(s.AccountId),
11595	}
11596}
11597
11598type GetStorageLensConfigurationTaggingOutput struct {
11599	_ struct{} `type:"structure"`
11600
11601	// The tags of S3 Storage Lens configuration requested.
11602	Tags []*StorageLensTag `locationNameList:"Tag" type:"list"`
11603}
11604
11605// String returns the string representation.
11606//
11607// API parameter values that are decorated as "sensitive" in the API will not
11608// be included in the string output. The member name will be present, but the
11609// value will be replaced with "sensitive".
11610func (s GetStorageLensConfigurationTaggingOutput) String() string {
11611	return awsutil.Prettify(s)
11612}
11613
11614// GoString returns the string representation.
11615//
11616// API parameter values that are decorated as "sensitive" in the API will not
11617// be included in the string output. The member name will be present, but the
11618// value will be replaced with "sensitive".
11619func (s GetStorageLensConfigurationTaggingOutput) GoString() string {
11620	return s.String()
11621}
11622
11623// SetTags sets the Tags field's value.
11624func (s *GetStorageLensConfigurationTaggingOutput) SetTags(v []*StorageLensTag) *GetStorageLensConfigurationTaggingOutput {
11625	s.Tags = v
11626	return s
11627}
11628
11629// A container for what Amazon S3 Storage Lens configuration includes.
11630type Include struct {
11631	_ struct{} `type:"structure"`
11632
11633	// A container for the S3 Storage Lens bucket includes.
11634	Buckets []*string `locationNameList:"Arn" type:"list"`
11635
11636	// A container for the S3 Storage Lens Region includes.
11637	Regions []*string `locationNameList:"Region" type:"list"`
11638}
11639
11640// String returns the string representation.
11641//
11642// API parameter values that are decorated as "sensitive" in the API will not
11643// be included in the string output. The member name will be present, but the
11644// value will be replaced with "sensitive".
11645func (s Include) String() string {
11646	return awsutil.Prettify(s)
11647}
11648
11649// GoString returns the string representation.
11650//
11651// API parameter values that are decorated as "sensitive" in the API will not
11652// be included in the string output. The member name will be present, but the
11653// value will be replaced with "sensitive".
11654func (s Include) GoString() string {
11655	return s.String()
11656}
11657
11658// SetBuckets sets the Buckets field's value.
11659func (s *Include) SetBuckets(v []*string) *Include {
11660	s.Buckets = v
11661	return s
11662}
11663
11664// SetRegions sets the Regions field's value.
11665func (s *Include) SetRegions(v []*string) *Include {
11666	s.Regions = v
11667	return s
11668}
11669
11670// A container element for the job configuration and status information returned
11671// by a Describe Job request.
11672type JobDescriptor struct {
11673	_ struct{} `type:"structure"`
11674
11675	// Indicates whether confirmation is required before Amazon S3 begins running
11676	// the specified job. Confirmation is required only for jobs created through
11677	// the Amazon S3 console.
11678	ConfirmationRequired *bool `type:"boolean"`
11679
11680	// A timestamp indicating when this job was created.
11681	CreationTime *time.Time `type:"timestamp"`
11682
11683	// The description for this job, if one was provided in this job's Create Job
11684	// request.
11685	Description *string `min:"1" type:"string"`
11686
11687	// If the specified job failed, this field contains information describing the
11688	// failure.
11689	FailureReasons []*JobFailure `type:"list"`
11690
11691	// The Amazon Resource Name (ARN) for this job.
11692	JobArn *string `min:"1" type:"string"`
11693
11694	// The ID for the specified job.
11695	JobId *string `min:"5" type:"string"`
11696
11697	// The configuration information for the specified job's manifest object.
11698	Manifest *JobManifest `type:"structure"`
11699
11700	// The operation that the specified job is configured to run on the objects
11701	// listed in the manifest.
11702	Operation *JobOperation `type:"structure"`
11703
11704	// The priority of the specified job.
11705	Priority *int64 `type:"integer"`
11706
11707	// Describes the total number of tasks that the specified job has run, the number
11708	// of tasks that succeeded, and the number of tasks that failed.
11709	ProgressSummary *JobProgressSummary `type:"structure"`
11710
11711	// Contains the configuration information for the job-completion report if you
11712	// requested one in the Create Job request.
11713	Report *JobReport `type:"structure"`
11714
11715	// The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
11716	// role assigned to run the tasks for this job.
11717	RoleArn *string `min:"1" type:"string"`
11718
11719	// The current status of the specified job.
11720	Status *string `type:"string" enum:"JobStatus"`
11721
11722	// The reason for updating the job.
11723	StatusUpdateReason *string `min:"1" type:"string"`
11724
11725	// The reason why the specified job was suspended. A job is only suspended if
11726	// you create it through the Amazon S3 console. When you create the job, it
11727	// enters the Suspended state to await confirmation before running. After you
11728	// confirm the job, it automatically exits the Suspended state.
11729	SuspendedCause *string `min:"1" type:"string"`
11730
11731	// The timestamp when this job was suspended, if it has been suspended.
11732	SuspendedDate *time.Time `type:"timestamp"`
11733
11734	// A timestamp indicating when this job terminated. A job's termination date
11735	// is the date and time when it succeeded, failed, or was canceled.
11736	TerminationDate *time.Time `type:"timestamp"`
11737}
11738
11739// String returns the string representation.
11740//
11741// API parameter values that are decorated as "sensitive" in the API will not
11742// be included in the string output. The member name will be present, but the
11743// value will be replaced with "sensitive".
11744func (s JobDescriptor) String() string {
11745	return awsutil.Prettify(s)
11746}
11747
11748// GoString returns the string representation.
11749//
11750// API parameter values that are decorated as "sensitive" in the API will not
11751// be included in the string output. The member name will be present, but the
11752// value will be replaced with "sensitive".
11753func (s JobDescriptor) GoString() string {
11754	return s.String()
11755}
11756
11757// SetConfirmationRequired sets the ConfirmationRequired field's value.
11758func (s *JobDescriptor) SetConfirmationRequired(v bool) *JobDescriptor {
11759	s.ConfirmationRequired = &v
11760	return s
11761}
11762
11763// SetCreationTime sets the CreationTime field's value.
11764func (s *JobDescriptor) SetCreationTime(v time.Time) *JobDescriptor {
11765	s.CreationTime = &v
11766	return s
11767}
11768
11769// SetDescription sets the Description field's value.
11770func (s *JobDescriptor) SetDescription(v string) *JobDescriptor {
11771	s.Description = &v
11772	return s
11773}
11774
11775// SetFailureReasons sets the FailureReasons field's value.
11776func (s *JobDescriptor) SetFailureReasons(v []*JobFailure) *JobDescriptor {
11777	s.FailureReasons = v
11778	return s
11779}
11780
11781// SetJobArn sets the JobArn field's value.
11782func (s *JobDescriptor) SetJobArn(v string) *JobDescriptor {
11783	s.JobArn = &v
11784	return s
11785}
11786
11787// SetJobId sets the JobId field's value.
11788func (s *JobDescriptor) SetJobId(v string) *JobDescriptor {
11789	s.JobId = &v
11790	return s
11791}
11792
11793// SetManifest sets the Manifest field's value.
11794func (s *JobDescriptor) SetManifest(v *JobManifest) *JobDescriptor {
11795	s.Manifest = v
11796	return s
11797}
11798
11799// SetOperation sets the Operation field's value.
11800func (s *JobDescriptor) SetOperation(v *JobOperation) *JobDescriptor {
11801	s.Operation = v
11802	return s
11803}
11804
11805// SetPriority sets the Priority field's value.
11806func (s *JobDescriptor) SetPriority(v int64) *JobDescriptor {
11807	s.Priority = &v
11808	return s
11809}
11810
11811// SetProgressSummary sets the ProgressSummary field's value.
11812func (s *JobDescriptor) SetProgressSummary(v *JobProgressSummary) *JobDescriptor {
11813	s.ProgressSummary = v
11814	return s
11815}
11816
11817// SetReport sets the Report field's value.
11818func (s *JobDescriptor) SetReport(v *JobReport) *JobDescriptor {
11819	s.Report = v
11820	return s
11821}
11822
11823// SetRoleArn sets the RoleArn field's value.
11824func (s *JobDescriptor) SetRoleArn(v string) *JobDescriptor {
11825	s.RoleArn = &v
11826	return s
11827}
11828
11829// SetStatus sets the Status field's value.
11830func (s *JobDescriptor) SetStatus(v string) *JobDescriptor {
11831	s.Status = &v
11832	return s
11833}
11834
11835// SetStatusUpdateReason sets the StatusUpdateReason field's value.
11836func (s *JobDescriptor) SetStatusUpdateReason(v string) *JobDescriptor {
11837	s.StatusUpdateReason = &v
11838	return s
11839}
11840
11841// SetSuspendedCause sets the SuspendedCause field's value.
11842func (s *JobDescriptor) SetSuspendedCause(v string) *JobDescriptor {
11843	s.SuspendedCause = &v
11844	return s
11845}
11846
11847// SetSuspendedDate sets the SuspendedDate field's value.
11848func (s *JobDescriptor) SetSuspendedDate(v time.Time) *JobDescriptor {
11849	s.SuspendedDate = &v
11850	return s
11851}
11852
11853// SetTerminationDate sets the TerminationDate field's value.
11854func (s *JobDescriptor) SetTerminationDate(v time.Time) *JobDescriptor {
11855	s.TerminationDate = &v
11856	return s
11857}
11858
11859// If this job failed, this element indicates why the job failed.
11860type JobFailure struct {
11861	_ struct{} `type:"structure"`
11862
11863	// The failure code, if any, for the specified job.
11864	FailureCode *string `min:"1" type:"string"`
11865
11866	// The failure reason, if any, for the specified job.
11867	FailureReason *string `min:"1" type:"string"`
11868}
11869
11870// String returns the string representation.
11871//
11872// API parameter values that are decorated as "sensitive" in the API will not
11873// be included in the string output. The member name will be present, but the
11874// value will be replaced with "sensitive".
11875func (s JobFailure) String() string {
11876	return awsutil.Prettify(s)
11877}
11878
11879// GoString returns the string representation.
11880//
11881// API parameter values that are decorated as "sensitive" in the API will not
11882// be included in the string output. The member name will be present, but the
11883// value will be replaced with "sensitive".
11884func (s JobFailure) GoString() string {
11885	return s.String()
11886}
11887
11888// SetFailureCode sets the FailureCode field's value.
11889func (s *JobFailure) SetFailureCode(v string) *JobFailure {
11890	s.FailureCode = &v
11891	return s
11892}
11893
11894// SetFailureReason sets the FailureReason field's value.
11895func (s *JobFailure) SetFailureReason(v string) *JobFailure {
11896	s.FailureReason = &v
11897	return s
11898}
11899
11900// Contains the configuration and status information for a single job retrieved
11901// as part of a job list.
11902type JobListDescriptor struct {
11903	_ struct{} `type:"structure"`
11904
11905	// A timestamp indicating when the specified job was created.
11906	CreationTime *time.Time `type:"timestamp"`
11907
11908	// The user-specified description that was included in the specified job's Create
11909	// Job request.
11910	Description *string `min:"1" type:"string"`
11911
11912	// The ID for the specified job.
11913	JobId *string `min:"5" type:"string"`
11914
11915	// The operation that the specified job is configured to run on every object
11916	// listed in the manifest.
11917	Operation *string `type:"string" enum:"OperationName"`
11918
11919	// The current priority for the specified job.
11920	Priority *int64 `type:"integer"`
11921
11922	// Describes the total number of tasks that the specified job has run, the number
11923	// of tasks that succeeded, and the number of tasks that failed.
11924	ProgressSummary *JobProgressSummary `type:"structure"`
11925
11926	// The specified job's current status.
11927	Status *string `type:"string" enum:"JobStatus"`
11928
11929	// A timestamp indicating when the specified job terminated. A job's termination
11930	// date is the date and time when it succeeded, failed, or was canceled.
11931	TerminationDate *time.Time `type:"timestamp"`
11932}
11933
11934// String returns the string representation.
11935//
11936// API parameter values that are decorated as "sensitive" in the API will not
11937// be included in the string output. The member name will be present, but the
11938// value will be replaced with "sensitive".
11939func (s JobListDescriptor) String() string {
11940	return awsutil.Prettify(s)
11941}
11942
11943// GoString returns the string representation.
11944//
11945// API parameter values that are decorated as "sensitive" in the API will not
11946// be included in the string output. The member name will be present, but the
11947// value will be replaced with "sensitive".
11948func (s JobListDescriptor) GoString() string {
11949	return s.String()
11950}
11951
11952// SetCreationTime sets the CreationTime field's value.
11953func (s *JobListDescriptor) SetCreationTime(v time.Time) *JobListDescriptor {
11954	s.CreationTime = &v
11955	return s
11956}
11957
11958// SetDescription sets the Description field's value.
11959func (s *JobListDescriptor) SetDescription(v string) *JobListDescriptor {
11960	s.Description = &v
11961	return s
11962}
11963
11964// SetJobId sets the JobId field's value.
11965func (s *JobListDescriptor) SetJobId(v string) *JobListDescriptor {
11966	s.JobId = &v
11967	return s
11968}
11969
11970// SetOperation sets the Operation field's value.
11971func (s *JobListDescriptor) SetOperation(v string) *JobListDescriptor {
11972	s.Operation = &v
11973	return s
11974}
11975
11976// SetPriority sets the Priority field's value.
11977func (s *JobListDescriptor) SetPriority(v int64) *JobListDescriptor {
11978	s.Priority = &v
11979	return s
11980}
11981
11982// SetProgressSummary sets the ProgressSummary field's value.
11983func (s *JobListDescriptor) SetProgressSummary(v *JobProgressSummary) *JobListDescriptor {
11984	s.ProgressSummary = v
11985	return s
11986}
11987
11988// SetStatus sets the Status field's value.
11989func (s *JobListDescriptor) SetStatus(v string) *JobListDescriptor {
11990	s.Status = &v
11991	return s
11992}
11993
11994// SetTerminationDate sets the TerminationDate field's value.
11995func (s *JobListDescriptor) SetTerminationDate(v time.Time) *JobListDescriptor {
11996	s.TerminationDate = &v
11997	return s
11998}
11999
12000// Contains the configuration information for a job's manifest.
12001type JobManifest struct {
12002	_ struct{} `type:"structure"`
12003
12004	// Contains the information required to locate the specified job's manifest.
12005	//
12006	// Location is a required field
12007	Location *JobManifestLocation `type:"structure" required:"true"`
12008
12009	// Describes the format of the specified job's manifest. If the manifest is
12010	// in CSV format, also describes the columns contained within the manifest.
12011	//
12012	// Spec is a required field
12013	Spec *JobManifestSpec `type:"structure" required:"true"`
12014}
12015
12016// String returns the string representation.
12017//
12018// API parameter values that are decorated as "sensitive" in the API will not
12019// be included in the string output. The member name will be present, but the
12020// value will be replaced with "sensitive".
12021func (s JobManifest) String() string {
12022	return awsutil.Prettify(s)
12023}
12024
12025// GoString returns the string representation.
12026//
12027// API parameter values that are decorated as "sensitive" in the API will not
12028// be included in the string output. The member name will be present, but the
12029// value will be replaced with "sensitive".
12030func (s JobManifest) GoString() string {
12031	return s.String()
12032}
12033
12034// Validate inspects the fields of the type to determine if they are valid.
12035func (s *JobManifest) Validate() error {
12036	invalidParams := request.ErrInvalidParams{Context: "JobManifest"}
12037	if s.Location == nil {
12038		invalidParams.Add(request.NewErrParamRequired("Location"))
12039	}
12040	if s.Spec == nil {
12041		invalidParams.Add(request.NewErrParamRequired("Spec"))
12042	}
12043	if s.Location != nil {
12044		if err := s.Location.Validate(); err != nil {
12045			invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
12046		}
12047	}
12048	if s.Spec != nil {
12049		if err := s.Spec.Validate(); err != nil {
12050			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
12051		}
12052	}
12053
12054	if invalidParams.Len() > 0 {
12055		return invalidParams
12056	}
12057	return nil
12058}
12059
12060// SetLocation sets the Location field's value.
12061func (s *JobManifest) SetLocation(v *JobManifestLocation) *JobManifest {
12062	s.Location = v
12063	return s
12064}
12065
12066// SetSpec sets the Spec field's value.
12067func (s *JobManifest) SetSpec(v *JobManifestSpec) *JobManifest {
12068	s.Spec = v
12069	return s
12070}
12071
12072// Contains the information required to locate a manifest object.
12073type JobManifestLocation struct {
12074	_ struct{} `type:"structure"`
12075
12076	// The ETag for the specified manifest object.
12077	//
12078	// ETag is a required field
12079	ETag *string `min:"1" type:"string" required:"true"`
12080
12081	// The Amazon Resource Name (ARN) for a manifest object.
12082	//
12083	// Replacement must be made for object keys containing special characters (such
12084	// as carriage returns) when using XML requests. For more information, see XML
12085	// related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
12086	//
12087	// ObjectArn is a required field
12088	ObjectArn *string `min:"1" type:"string" required:"true"`
12089
12090	// The optional version ID to identify a specific version of the manifest object.
12091	ObjectVersionId *string `min:"1" type:"string"`
12092}
12093
12094// String returns the string representation.
12095//
12096// API parameter values that are decorated as "sensitive" in the API will not
12097// be included in the string output. The member name will be present, but the
12098// value will be replaced with "sensitive".
12099func (s JobManifestLocation) String() string {
12100	return awsutil.Prettify(s)
12101}
12102
12103// GoString returns the string representation.
12104//
12105// API parameter values that are decorated as "sensitive" in the API will not
12106// be included in the string output. The member name will be present, but the
12107// value will be replaced with "sensitive".
12108func (s JobManifestLocation) GoString() string {
12109	return s.String()
12110}
12111
12112// Validate inspects the fields of the type to determine if they are valid.
12113func (s *JobManifestLocation) Validate() error {
12114	invalidParams := request.ErrInvalidParams{Context: "JobManifestLocation"}
12115	if s.ETag == nil {
12116		invalidParams.Add(request.NewErrParamRequired("ETag"))
12117	}
12118	if s.ETag != nil && len(*s.ETag) < 1 {
12119		invalidParams.Add(request.NewErrParamMinLen("ETag", 1))
12120	}
12121	if s.ObjectArn == nil {
12122		invalidParams.Add(request.NewErrParamRequired("ObjectArn"))
12123	}
12124	if s.ObjectArn != nil && len(*s.ObjectArn) < 1 {
12125		invalidParams.Add(request.NewErrParamMinLen("ObjectArn", 1))
12126	}
12127	if s.ObjectVersionId != nil && len(*s.ObjectVersionId) < 1 {
12128		invalidParams.Add(request.NewErrParamMinLen("ObjectVersionId", 1))
12129	}
12130
12131	if invalidParams.Len() > 0 {
12132		return invalidParams
12133	}
12134	return nil
12135}
12136
12137// SetETag sets the ETag field's value.
12138func (s *JobManifestLocation) SetETag(v string) *JobManifestLocation {
12139	s.ETag = &v
12140	return s
12141}
12142
12143// SetObjectArn sets the ObjectArn field's value.
12144func (s *JobManifestLocation) SetObjectArn(v string) *JobManifestLocation {
12145	s.ObjectArn = &v
12146	return s
12147}
12148
12149// SetObjectVersionId sets the ObjectVersionId field's value.
12150func (s *JobManifestLocation) SetObjectVersionId(v string) *JobManifestLocation {
12151	s.ObjectVersionId = &v
12152	return s
12153}
12154
12155// Describes the format of a manifest. If the manifest is in CSV format, also
12156// describes the columns contained within the manifest.
12157type JobManifestSpec struct {
12158	_ struct{} `type:"structure"`
12159
12160	// If the specified manifest object is in the S3BatchOperations_CSV_20180820
12161	// format, this element describes which columns contain the required data.
12162	Fields []*string `type:"list"`
12163
12164	// Indicates which of the available formats the specified manifest uses.
12165	//
12166	// Format is a required field
12167	Format *string `type:"string" required:"true" enum:"JobManifestFormat"`
12168}
12169
12170// String returns the string representation.
12171//
12172// API parameter values that are decorated as "sensitive" in the API will not
12173// be included in the string output. The member name will be present, but the
12174// value will be replaced with "sensitive".
12175func (s JobManifestSpec) String() string {
12176	return awsutil.Prettify(s)
12177}
12178
12179// GoString returns the string representation.
12180//
12181// API parameter values that are decorated as "sensitive" in the API will not
12182// be included in the string output. The member name will be present, but the
12183// value will be replaced with "sensitive".
12184func (s JobManifestSpec) GoString() string {
12185	return s.String()
12186}
12187
12188// Validate inspects the fields of the type to determine if they are valid.
12189func (s *JobManifestSpec) Validate() error {
12190	invalidParams := request.ErrInvalidParams{Context: "JobManifestSpec"}
12191	if s.Format == nil {
12192		invalidParams.Add(request.NewErrParamRequired("Format"))
12193	}
12194
12195	if invalidParams.Len() > 0 {
12196		return invalidParams
12197	}
12198	return nil
12199}
12200
12201// SetFields sets the Fields field's value.
12202func (s *JobManifestSpec) SetFields(v []*string) *JobManifestSpec {
12203	s.Fields = v
12204	return s
12205}
12206
12207// SetFormat sets the Format field's value.
12208func (s *JobManifestSpec) SetFormat(v string) *JobManifestSpec {
12209	s.Format = &v
12210	return s
12211}
12212
12213// The operation that you want this job to perform on every object listed in
12214// the manifest. For more information about the available operations, see Operations
12215// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html)
12216// in the Amazon S3 User Guide.
12217type JobOperation struct {
12218	_ struct{} `type:"structure"`
12219
12220	// Directs the specified job to invoke an Lambda function on every object in
12221	// the manifest.
12222	LambdaInvoke *LambdaInvokeOperation `type:"structure"`
12223
12224	// Directs the specified job to execute a DELETE Object tagging call on every
12225	// object in the manifest.
12226	S3DeleteObjectTagging *S3DeleteObjectTaggingOperation `type:"structure"`
12227
12228	// Directs the specified job to initiate restore requests for every archived
12229	// object in the manifest.
12230	S3InitiateRestoreObject *S3InitiateRestoreObjectOperation `type:"structure"`
12231
12232	// Directs the specified job to run a PUT Object acl call on every object in
12233	// the manifest.
12234	S3PutObjectAcl *S3SetObjectAclOperation `type:"structure"`
12235
12236	// Directs the specified job to run a PUT Copy object call on every object in
12237	// the manifest.
12238	S3PutObjectCopy *S3CopyObjectOperation `type:"structure"`
12239
12240	// Contains the configuration for an S3 Object Lock legal hold operation that
12241	// an S3 Batch Operations job passes every object to the underlying PutObjectLegalHold
12242	// API. For more information, see Using S3 Object Lock legal hold with S3 Batch
12243	// Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html)
12244	// in the Amazon S3 User Guide.
12245	S3PutObjectLegalHold *S3SetObjectLegalHoldOperation `type:"structure"`
12246
12247	// Contains the configuration parameters for the Object Lock retention action
12248	// for an S3 Batch Operations job. Batch Operations passes every object to the
12249	// underlying PutObjectRetention API. For more information, see Using S3 Object
12250	// Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
12251	// in the Amazon S3 User Guide.
12252	S3PutObjectRetention *S3SetObjectRetentionOperation `type:"structure"`
12253
12254	// Directs the specified job to run a PUT Object tagging call on every object
12255	// in the manifest.
12256	S3PutObjectTagging *S3SetObjectTaggingOperation `type:"structure"`
12257}
12258
12259// String returns the string representation.
12260//
12261// API parameter values that are decorated as "sensitive" in the API will not
12262// be included in the string output. The member name will be present, but the
12263// value will be replaced with "sensitive".
12264func (s JobOperation) String() string {
12265	return awsutil.Prettify(s)
12266}
12267
12268// GoString returns the string representation.
12269//
12270// API parameter values that are decorated as "sensitive" in the API will not
12271// be included in the string output. The member name will be present, but the
12272// value will be replaced with "sensitive".
12273func (s JobOperation) GoString() string {
12274	return s.String()
12275}
12276
12277// Validate inspects the fields of the type to determine if they are valid.
12278func (s *JobOperation) Validate() error {
12279	invalidParams := request.ErrInvalidParams{Context: "JobOperation"}
12280	if s.LambdaInvoke != nil {
12281		if err := s.LambdaInvoke.Validate(); err != nil {
12282			invalidParams.AddNested("LambdaInvoke", err.(request.ErrInvalidParams))
12283		}
12284	}
12285	if s.S3PutObjectAcl != nil {
12286		if err := s.S3PutObjectAcl.Validate(); err != nil {
12287			invalidParams.AddNested("S3PutObjectAcl", err.(request.ErrInvalidParams))
12288		}
12289	}
12290	if s.S3PutObjectCopy != nil {
12291		if err := s.S3PutObjectCopy.Validate(); err != nil {
12292			invalidParams.AddNested("S3PutObjectCopy", err.(request.ErrInvalidParams))
12293		}
12294	}
12295	if s.S3PutObjectLegalHold != nil {
12296		if err := s.S3PutObjectLegalHold.Validate(); err != nil {
12297			invalidParams.AddNested("S3PutObjectLegalHold", err.(request.ErrInvalidParams))
12298		}
12299	}
12300	if s.S3PutObjectRetention != nil {
12301		if err := s.S3PutObjectRetention.Validate(); err != nil {
12302			invalidParams.AddNested("S3PutObjectRetention", err.(request.ErrInvalidParams))
12303		}
12304	}
12305	if s.S3PutObjectTagging != nil {
12306		if err := s.S3PutObjectTagging.Validate(); err != nil {
12307			invalidParams.AddNested("S3PutObjectTagging", err.(request.ErrInvalidParams))
12308		}
12309	}
12310
12311	if invalidParams.Len() > 0 {
12312		return invalidParams
12313	}
12314	return nil
12315}
12316
12317// SetLambdaInvoke sets the LambdaInvoke field's value.
12318func (s *JobOperation) SetLambdaInvoke(v *LambdaInvokeOperation) *JobOperation {
12319	s.LambdaInvoke = v
12320	return s
12321}
12322
12323// SetS3DeleteObjectTagging sets the S3DeleteObjectTagging field's value.
12324func (s *JobOperation) SetS3DeleteObjectTagging(v *S3DeleteObjectTaggingOperation) *JobOperation {
12325	s.S3DeleteObjectTagging = v
12326	return s
12327}
12328
12329// SetS3InitiateRestoreObject sets the S3InitiateRestoreObject field's value.
12330func (s *JobOperation) SetS3InitiateRestoreObject(v *S3InitiateRestoreObjectOperation) *JobOperation {
12331	s.S3InitiateRestoreObject = v
12332	return s
12333}
12334
12335// SetS3PutObjectAcl sets the S3PutObjectAcl field's value.
12336func (s *JobOperation) SetS3PutObjectAcl(v *S3SetObjectAclOperation) *JobOperation {
12337	s.S3PutObjectAcl = v
12338	return s
12339}
12340
12341// SetS3PutObjectCopy sets the S3PutObjectCopy field's value.
12342func (s *JobOperation) SetS3PutObjectCopy(v *S3CopyObjectOperation) *JobOperation {
12343	s.S3PutObjectCopy = v
12344	return s
12345}
12346
12347// SetS3PutObjectLegalHold sets the S3PutObjectLegalHold field's value.
12348func (s *JobOperation) SetS3PutObjectLegalHold(v *S3SetObjectLegalHoldOperation) *JobOperation {
12349	s.S3PutObjectLegalHold = v
12350	return s
12351}
12352
12353// SetS3PutObjectRetention sets the S3PutObjectRetention field's value.
12354func (s *JobOperation) SetS3PutObjectRetention(v *S3SetObjectRetentionOperation) *JobOperation {
12355	s.S3PutObjectRetention = v
12356	return s
12357}
12358
12359// SetS3PutObjectTagging sets the S3PutObjectTagging field's value.
12360func (s *JobOperation) SetS3PutObjectTagging(v *S3SetObjectTaggingOperation) *JobOperation {
12361	s.S3PutObjectTagging = v
12362	return s
12363}
12364
12365// Describes the total number of tasks that the specified job has started, the
12366// number of tasks that succeeded, and the number of tasks that failed.
12367type JobProgressSummary struct {
12368	_ struct{} `type:"structure"`
12369
12370	NumberOfTasksFailed *int64 `type:"long"`
12371
12372	NumberOfTasksSucceeded *int64 `type:"long"`
12373
12374	TotalNumberOfTasks *int64 `type:"long"`
12375}
12376
12377// String returns the string representation.
12378//
12379// API parameter values that are decorated as "sensitive" in the API will not
12380// be included in the string output. The member name will be present, but the
12381// value will be replaced with "sensitive".
12382func (s JobProgressSummary) String() string {
12383	return awsutil.Prettify(s)
12384}
12385
12386// GoString returns the string representation.
12387//
12388// API parameter values that are decorated as "sensitive" in the API will not
12389// be included in the string output. The member name will be present, but the
12390// value will be replaced with "sensitive".
12391func (s JobProgressSummary) GoString() string {
12392	return s.String()
12393}
12394
12395// SetNumberOfTasksFailed sets the NumberOfTasksFailed field's value.
12396func (s *JobProgressSummary) SetNumberOfTasksFailed(v int64) *JobProgressSummary {
12397	s.NumberOfTasksFailed = &v
12398	return s
12399}
12400
12401// SetNumberOfTasksSucceeded sets the NumberOfTasksSucceeded field's value.
12402func (s *JobProgressSummary) SetNumberOfTasksSucceeded(v int64) *JobProgressSummary {
12403	s.NumberOfTasksSucceeded = &v
12404	return s
12405}
12406
12407// SetTotalNumberOfTasks sets the TotalNumberOfTasks field's value.
12408func (s *JobProgressSummary) SetTotalNumberOfTasks(v int64) *JobProgressSummary {
12409	s.TotalNumberOfTasks = &v
12410	return s
12411}
12412
12413// Contains the configuration parameters for a job-completion report.
12414type JobReport struct {
12415	_ struct{} `type:"structure"`
12416
12417	// The Amazon Resource Name (ARN) for the bucket where specified job-completion
12418	// report will be stored.
12419	Bucket *string `min:"1" type:"string"`
12420
12421	// Indicates whether the specified job will generate a job-completion report.
12422	//
12423	// Enabled is a required field
12424	Enabled *bool `type:"boolean" required:"true"`
12425
12426	// The format of the specified job-completion report.
12427	Format *string `type:"string" enum:"JobReportFormat"`
12428
12429	// An optional prefix to describe where in the specified bucket the job-completion
12430	// report will be stored. Amazon S3 stores the job-completion report at <prefix>/job-<job-id>/report.json.
12431	Prefix *string `min:"1" type:"string"`
12432
12433	// Indicates whether the job-completion report will include details of all tasks
12434	// or only failed tasks.
12435	ReportScope *string `type:"string" enum:"JobReportScope"`
12436}
12437
12438// String returns the string representation.
12439//
12440// API parameter values that are decorated as "sensitive" in the API will not
12441// be included in the string output. The member name will be present, but the
12442// value will be replaced with "sensitive".
12443func (s JobReport) String() string {
12444	return awsutil.Prettify(s)
12445}
12446
12447// GoString returns the string representation.
12448//
12449// API parameter values that are decorated as "sensitive" in the API will not
12450// be included in the string output. The member name will be present, but the
12451// value will be replaced with "sensitive".
12452func (s JobReport) GoString() string {
12453	return s.String()
12454}
12455
12456// Validate inspects the fields of the type to determine if they are valid.
12457func (s *JobReport) Validate() error {
12458	invalidParams := request.ErrInvalidParams{Context: "JobReport"}
12459	if s.Bucket != nil && len(*s.Bucket) < 1 {
12460		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
12461	}
12462	if s.Enabled == nil {
12463		invalidParams.Add(request.NewErrParamRequired("Enabled"))
12464	}
12465	if s.Prefix != nil && len(*s.Prefix) < 1 {
12466		invalidParams.Add(request.NewErrParamMinLen("Prefix", 1))
12467	}
12468
12469	if invalidParams.Len() > 0 {
12470		return invalidParams
12471	}
12472	return nil
12473}
12474
12475// SetBucket sets the Bucket field's value.
12476func (s *JobReport) SetBucket(v string) *JobReport {
12477	s.Bucket = &v
12478	return s
12479}
12480
12481// SetEnabled sets the Enabled field's value.
12482func (s *JobReport) SetEnabled(v bool) *JobReport {
12483	s.Enabled = &v
12484	return s
12485}
12486
12487// SetFormat sets the Format field's value.
12488func (s *JobReport) SetFormat(v string) *JobReport {
12489	s.Format = &v
12490	return s
12491}
12492
12493// SetPrefix sets the Prefix field's value.
12494func (s *JobReport) SetPrefix(v string) *JobReport {
12495	s.Prefix = &v
12496	return s
12497}
12498
12499// SetReportScope sets the ReportScope field's value.
12500func (s *JobReport) SetReportScope(v string) *JobReport {
12501	s.ReportScope = &v
12502	return s
12503}
12504
12505// Contains the configuration parameters for a Lambda Invoke operation.
12506type LambdaInvokeOperation struct {
12507	_ struct{} `type:"structure"`
12508
12509	// The Amazon Resource Name (ARN) for the Lambda function that the specified
12510	// job will invoke on every object in the manifest.
12511	FunctionArn *string `min:"1" type:"string"`
12512}
12513
12514// String returns the string representation.
12515//
12516// API parameter values that are decorated as "sensitive" in the API will not
12517// be included in the string output. The member name will be present, but the
12518// value will be replaced with "sensitive".
12519func (s LambdaInvokeOperation) String() string {
12520	return awsutil.Prettify(s)
12521}
12522
12523// GoString returns the string representation.
12524//
12525// API parameter values that are decorated as "sensitive" in the API will not
12526// be included in the string output. The member name will be present, but the
12527// value will be replaced with "sensitive".
12528func (s LambdaInvokeOperation) GoString() string {
12529	return s.String()
12530}
12531
12532// Validate inspects the fields of the type to determine if they are valid.
12533func (s *LambdaInvokeOperation) Validate() error {
12534	invalidParams := request.ErrInvalidParams{Context: "LambdaInvokeOperation"}
12535	if s.FunctionArn != nil && len(*s.FunctionArn) < 1 {
12536		invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1))
12537	}
12538
12539	if invalidParams.Len() > 0 {
12540		return invalidParams
12541	}
12542	return nil
12543}
12544
12545// SetFunctionArn sets the FunctionArn field's value.
12546func (s *LambdaInvokeOperation) SetFunctionArn(v string) *LambdaInvokeOperation {
12547	s.FunctionArn = &v
12548	return s
12549}
12550
12551// The container for the Outposts bucket lifecycle configuration.
12552type LifecycleConfiguration struct {
12553	_ struct{} `type:"structure"`
12554
12555	// A lifecycle rule for individual objects in an Outposts bucket.
12556	Rules []*LifecycleRule `locationNameList:"Rule" type:"list"`
12557}
12558
12559// String returns the string representation.
12560//
12561// API parameter values that are decorated as "sensitive" in the API will not
12562// be included in the string output. The member name will be present, but the
12563// value will be replaced with "sensitive".
12564func (s LifecycleConfiguration) String() string {
12565	return awsutil.Prettify(s)
12566}
12567
12568// GoString returns the string representation.
12569//
12570// API parameter values that are decorated as "sensitive" in the API will not
12571// be included in the string output. The member name will be present, but the
12572// value will be replaced with "sensitive".
12573func (s LifecycleConfiguration) GoString() string {
12574	return s.String()
12575}
12576
12577// Validate inspects the fields of the type to determine if they are valid.
12578func (s *LifecycleConfiguration) Validate() error {
12579	invalidParams := request.ErrInvalidParams{Context: "LifecycleConfiguration"}
12580	if s.Rules != nil {
12581		for i, v := range s.Rules {
12582			if v == nil {
12583				continue
12584			}
12585			if err := v.Validate(); err != nil {
12586				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
12587			}
12588		}
12589	}
12590
12591	if invalidParams.Len() > 0 {
12592		return invalidParams
12593	}
12594	return nil
12595}
12596
12597// SetRules sets the Rules field's value.
12598func (s *LifecycleConfiguration) SetRules(v []*LifecycleRule) *LifecycleConfiguration {
12599	s.Rules = v
12600	return s
12601}
12602
12603// The container of the Outposts bucket lifecycle expiration.
12604type LifecycleExpiration struct {
12605	_ struct{} `type:"structure"`
12606
12607	// Indicates at what date the object is to be deleted. Should be in GMT ISO
12608	// 8601 format.
12609	Date *time.Time `type:"timestamp"`
12610
12611	// Indicates the lifetime, in days, of the objects that are subject to the rule.
12612	// The value must be a non-zero positive integer.
12613	Days *int64 `type:"integer"`
12614
12615	// Indicates whether Amazon S3 will remove a delete marker with no noncurrent
12616	// versions. If set to true, the delete marker will be expired. If set to false,
12617	// the policy takes no action. This cannot be specified with Days or Date in
12618	// a Lifecycle Expiration Policy.
12619	ExpiredObjectDeleteMarker *bool `type:"boolean"`
12620}
12621
12622// String returns the string representation.
12623//
12624// API parameter values that are decorated as "sensitive" in the API will not
12625// be included in the string output. The member name will be present, but the
12626// value will be replaced with "sensitive".
12627func (s LifecycleExpiration) String() string {
12628	return awsutil.Prettify(s)
12629}
12630
12631// GoString returns the string representation.
12632//
12633// API parameter values that are decorated as "sensitive" in the API will not
12634// be included in the string output. The member name will be present, but the
12635// value will be replaced with "sensitive".
12636func (s LifecycleExpiration) GoString() string {
12637	return s.String()
12638}
12639
12640// SetDate sets the Date field's value.
12641func (s *LifecycleExpiration) SetDate(v time.Time) *LifecycleExpiration {
12642	s.Date = &v
12643	return s
12644}
12645
12646// SetDays sets the Days field's value.
12647func (s *LifecycleExpiration) SetDays(v int64) *LifecycleExpiration {
12648	s.Days = &v
12649	return s
12650}
12651
12652// SetExpiredObjectDeleteMarker sets the ExpiredObjectDeleteMarker field's value.
12653func (s *LifecycleExpiration) SetExpiredObjectDeleteMarker(v bool) *LifecycleExpiration {
12654	s.ExpiredObjectDeleteMarker = &v
12655	return s
12656}
12657
12658// The container for the Outposts bucket lifecycle rule.
12659type LifecycleRule struct {
12660	_ struct{} `type:"structure"`
12661
12662	// Specifies the days since the initiation of an incomplete multipart upload
12663	// that Amazon S3 waits before permanently removing all parts of the upload.
12664	// For more information, see Aborting Incomplete Multipart Uploads Using a Bucket
12665	// Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
12666	// in the Amazon S3 User Guide.
12667	AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"`
12668
12669	// Specifies the expiration for the lifecycle of the object in the form of date,
12670	// days and, whether the object has a delete marker.
12671	Expiration *LifecycleExpiration `type:"structure"`
12672
12673	// The container for the filter of lifecycle rule.
12674	Filter *LifecycleRuleFilter `type:"structure"`
12675
12676	// Unique identifier for the rule. The value cannot be longer than 255 characters.
12677	ID *string `type:"string"`
12678
12679	// The noncurrent version expiration of the lifecycle rule.
12680	//
12681	// This is not supported by Amazon S3 on Outposts buckets.
12682	NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"`
12683
12684	// Specifies the transition rule for the lifecycle rule that describes when
12685	// noncurrent objects transition to a specific storage class. If your bucket
12686	// is versioning-enabled (or versioning is suspended), you can set this action
12687	// to request that Amazon S3 transition noncurrent object versions to a specific
12688	// storage class at a set period in the object's lifetime.
12689	//
12690	// This is not supported by Amazon S3 on Outposts buckets.
12691	NoncurrentVersionTransitions []*NoncurrentVersionTransition `locationNameList:"NoncurrentVersionTransition" type:"list"`
12692
12693	// If 'Enabled', the rule is currently being applied. If 'Disabled', the rule
12694	// is not currently being applied.
12695	//
12696	// Status is a required field
12697	Status *string `type:"string" required:"true" enum:"ExpirationStatus"`
12698
12699	// Specifies when an Amazon S3 object transitions to a specified storage class.
12700	//
12701	// This is not supported by Amazon S3 on Outposts buckets.
12702	Transitions []*Transition `locationNameList:"Transition" type:"list"`
12703}
12704
12705// String returns the string representation.
12706//
12707// API parameter values that are decorated as "sensitive" in the API will not
12708// be included in the string output. The member name will be present, but the
12709// value will be replaced with "sensitive".
12710func (s LifecycleRule) String() string {
12711	return awsutil.Prettify(s)
12712}
12713
12714// GoString returns the string representation.
12715//
12716// API parameter values that are decorated as "sensitive" in the API will not
12717// be included in the string output. The member name will be present, but the
12718// value will be replaced with "sensitive".
12719func (s LifecycleRule) GoString() string {
12720	return s.String()
12721}
12722
12723// Validate inspects the fields of the type to determine if they are valid.
12724func (s *LifecycleRule) Validate() error {
12725	invalidParams := request.ErrInvalidParams{Context: "LifecycleRule"}
12726	if s.Status == nil {
12727		invalidParams.Add(request.NewErrParamRequired("Status"))
12728	}
12729	if s.Filter != nil {
12730		if err := s.Filter.Validate(); err != nil {
12731			invalidParams.AddNested("Filter", err.(request.ErrInvalidParams))
12732		}
12733	}
12734
12735	if invalidParams.Len() > 0 {
12736		return invalidParams
12737	}
12738	return nil
12739}
12740
12741// SetAbortIncompleteMultipartUpload sets the AbortIncompleteMultipartUpload field's value.
12742func (s *LifecycleRule) SetAbortIncompleteMultipartUpload(v *AbortIncompleteMultipartUpload) *LifecycleRule {
12743	s.AbortIncompleteMultipartUpload = v
12744	return s
12745}
12746
12747// SetExpiration sets the Expiration field's value.
12748func (s *LifecycleRule) SetExpiration(v *LifecycleExpiration) *LifecycleRule {
12749	s.Expiration = v
12750	return s
12751}
12752
12753// SetFilter sets the Filter field's value.
12754func (s *LifecycleRule) SetFilter(v *LifecycleRuleFilter) *LifecycleRule {
12755	s.Filter = v
12756	return s
12757}
12758
12759// SetID sets the ID field's value.
12760func (s *LifecycleRule) SetID(v string) *LifecycleRule {
12761	s.ID = &v
12762	return s
12763}
12764
12765// SetNoncurrentVersionExpiration sets the NoncurrentVersionExpiration field's value.
12766func (s *LifecycleRule) SetNoncurrentVersionExpiration(v *NoncurrentVersionExpiration) *LifecycleRule {
12767	s.NoncurrentVersionExpiration = v
12768	return s
12769}
12770
12771// SetNoncurrentVersionTransitions sets the NoncurrentVersionTransitions field's value.
12772func (s *LifecycleRule) SetNoncurrentVersionTransitions(v []*NoncurrentVersionTransition) *LifecycleRule {
12773	s.NoncurrentVersionTransitions = v
12774	return s
12775}
12776
12777// SetStatus sets the Status field's value.
12778func (s *LifecycleRule) SetStatus(v string) *LifecycleRule {
12779	s.Status = &v
12780	return s
12781}
12782
12783// SetTransitions sets the Transitions field's value.
12784func (s *LifecycleRule) SetTransitions(v []*Transition) *LifecycleRule {
12785	s.Transitions = v
12786	return s
12787}
12788
12789// The container for the Outposts bucket lifecycle rule and operator.
12790type LifecycleRuleAndOperator struct {
12791	_ struct{} `type:"structure"`
12792
12793	// Prefix identifying one or more objects to which the rule applies.
12794	Prefix *string `type:"string"`
12795
12796	// All of these tags must exist in the object's tag set in order for the rule
12797	// to apply.
12798	Tags []*S3Tag `type:"list"`
12799}
12800
12801// String returns the string representation.
12802//
12803// API parameter values that are decorated as "sensitive" in the API will not
12804// be included in the string output. The member name will be present, but the
12805// value will be replaced with "sensitive".
12806func (s LifecycleRuleAndOperator) String() string {
12807	return awsutil.Prettify(s)
12808}
12809
12810// GoString returns the string representation.
12811//
12812// API parameter values that are decorated as "sensitive" in the API will not
12813// be included in the string output. The member name will be present, but the
12814// value will be replaced with "sensitive".
12815func (s LifecycleRuleAndOperator) GoString() string {
12816	return s.String()
12817}
12818
12819// Validate inspects the fields of the type to determine if they are valid.
12820func (s *LifecycleRuleAndOperator) Validate() error {
12821	invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleAndOperator"}
12822	if s.Tags != nil {
12823		for i, v := range s.Tags {
12824			if v == nil {
12825				continue
12826			}
12827			if err := v.Validate(); err != nil {
12828				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12829			}
12830		}
12831	}
12832
12833	if invalidParams.Len() > 0 {
12834		return invalidParams
12835	}
12836	return nil
12837}
12838
12839// SetPrefix sets the Prefix field's value.
12840func (s *LifecycleRuleAndOperator) SetPrefix(v string) *LifecycleRuleAndOperator {
12841	s.Prefix = &v
12842	return s
12843}
12844
12845// SetTags sets the Tags field's value.
12846func (s *LifecycleRuleAndOperator) SetTags(v []*S3Tag) *LifecycleRuleAndOperator {
12847	s.Tags = v
12848	return s
12849}
12850
12851// The container for the filter of the lifecycle rule.
12852type LifecycleRuleFilter struct {
12853	_ struct{} `type:"structure"`
12854
12855	// The container for the AND condition for the lifecycle rule.
12856	And *LifecycleRuleAndOperator `type:"structure"`
12857
12858	// Prefix identifying one or more objects to which the rule applies.
12859	//
12860	// Replacement must be made for object keys containing special characters (such
12861	// as carriage returns) when using XML requests. For more information, see XML
12862	// related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
12863	Prefix *string `type:"string"`
12864
12865	Tag *S3Tag `type:"structure"`
12866}
12867
12868// String returns the string representation.
12869//
12870// API parameter values that are decorated as "sensitive" in the API will not
12871// be included in the string output. The member name will be present, but the
12872// value will be replaced with "sensitive".
12873func (s LifecycleRuleFilter) String() string {
12874	return awsutil.Prettify(s)
12875}
12876
12877// GoString returns the string representation.
12878//
12879// API parameter values that are decorated as "sensitive" in the API will not
12880// be included in the string output. The member name will be present, but the
12881// value will be replaced with "sensitive".
12882func (s LifecycleRuleFilter) GoString() string {
12883	return s.String()
12884}
12885
12886// Validate inspects the fields of the type to determine if they are valid.
12887func (s *LifecycleRuleFilter) Validate() error {
12888	invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleFilter"}
12889	if s.And != nil {
12890		if err := s.And.Validate(); err != nil {
12891			invalidParams.AddNested("And", err.(request.ErrInvalidParams))
12892		}
12893	}
12894	if s.Tag != nil {
12895		if err := s.Tag.Validate(); err != nil {
12896			invalidParams.AddNested("Tag", err.(request.ErrInvalidParams))
12897		}
12898	}
12899
12900	if invalidParams.Len() > 0 {
12901		return invalidParams
12902	}
12903	return nil
12904}
12905
12906// SetAnd sets the And field's value.
12907func (s *LifecycleRuleFilter) SetAnd(v *LifecycleRuleAndOperator) *LifecycleRuleFilter {
12908	s.And = v
12909	return s
12910}
12911
12912// SetPrefix sets the Prefix field's value.
12913func (s *LifecycleRuleFilter) SetPrefix(v string) *LifecycleRuleFilter {
12914	s.Prefix = &v
12915	return s
12916}
12917
12918// SetTag sets the Tag field's value.
12919func (s *LifecycleRuleFilter) SetTag(v *S3Tag) *LifecycleRuleFilter {
12920	s.Tag = v
12921	return s
12922}
12923
12924type ListAccessPointsForObjectLambdaInput struct {
12925	_ struct{} `locationName:"ListAccessPointsForObjectLambdaRequest" type:"structure"`
12926
12927	// The account ID for the account that owns the specified Object Lambda Access
12928	// Point.
12929	//
12930	// AccountId is a required field
12931	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
12932
12933	// The maximum number of access points that you want to include in the list.
12934	// If there are more than this number of access points, then the response will
12935	// include a continuation token in the NextToken field that you can use to retrieve
12936	// the next page of access points.
12937	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
12938
12939	// If the list has more access points than can be returned in one call to this
12940	// API, this field contains a continuation token that you can provide in subsequent
12941	// calls to this API to retrieve additional access points.
12942	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
12943}
12944
12945// String returns the string representation.
12946//
12947// API parameter values that are decorated as "sensitive" in the API will not
12948// be included in the string output. The member name will be present, but the
12949// value will be replaced with "sensitive".
12950func (s ListAccessPointsForObjectLambdaInput) String() string {
12951	return awsutil.Prettify(s)
12952}
12953
12954// GoString returns the string representation.
12955//
12956// API parameter values that are decorated as "sensitive" in the API will not
12957// be included in the string output. The member name will be present, but the
12958// value will be replaced with "sensitive".
12959func (s ListAccessPointsForObjectLambdaInput) GoString() string {
12960	return s.String()
12961}
12962
12963// Validate inspects the fields of the type to determine if they are valid.
12964func (s *ListAccessPointsForObjectLambdaInput) Validate() error {
12965	invalidParams := request.ErrInvalidParams{Context: "ListAccessPointsForObjectLambdaInput"}
12966	if s.AccountId == nil {
12967		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12968	}
12969	if s.AccountId != nil && len(*s.AccountId) < 1 {
12970		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12971	}
12972	if s.NextToken != nil && len(*s.NextToken) < 1 {
12973		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12974	}
12975
12976	if invalidParams.Len() > 0 {
12977		return invalidParams
12978	}
12979	return nil
12980}
12981
12982// SetAccountId sets the AccountId field's value.
12983func (s *ListAccessPointsForObjectLambdaInput) SetAccountId(v string) *ListAccessPointsForObjectLambdaInput {
12984	s.AccountId = &v
12985	return s
12986}
12987
12988// SetMaxResults sets the MaxResults field's value.
12989func (s *ListAccessPointsForObjectLambdaInput) SetMaxResults(v int64) *ListAccessPointsForObjectLambdaInput {
12990	s.MaxResults = &v
12991	return s
12992}
12993
12994// SetNextToken sets the NextToken field's value.
12995func (s *ListAccessPointsForObjectLambdaInput) SetNextToken(v string) *ListAccessPointsForObjectLambdaInput {
12996	s.NextToken = &v
12997	return s
12998}
12999
13000func (s *ListAccessPointsForObjectLambdaInput) hostLabels() map[string]string {
13001	return map[string]string{
13002		"AccountId": aws.StringValue(s.AccountId),
13003	}
13004}
13005
13006type ListAccessPointsForObjectLambdaOutput struct {
13007	_ struct{} `type:"structure"`
13008
13009	// If the list has more access points than can be returned in one call to this
13010	// API, this field contains a continuation token that you can provide in subsequent
13011	// calls to this API to retrieve additional access points.
13012	NextToken *string `min:"1" type:"string"`
13013
13014	// Returns list of Object Lambda Access Points.
13015	ObjectLambdaAccessPointList []*ObjectLambdaAccessPoint `locationNameList:"ObjectLambdaAccessPoint" type:"list"`
13016}
13017
13018// String returns the string representation.
13019//
13020// API parameter values that are decorated as "sensitive" in the API will not
13021// be included in the string output. The member name will be present, but the
13022// value will be replaced with "sensitive".
13023func (s ListAccessPointsForObjectLambdaOutput) String() string {
13024	return awsutil.Prettify(s)
13025}
13026
13027// GoString returns the string representation.
13028//
13029// API parameter values that are decorated as "sensitive" in the API will not
13030// be included in the string output. The member name will be present, but the
13031// value will be replaced with "sensitive".
13032func (s ListAccessPointsForObjectLambdaOutput) GoString() string {
13033	return s.String()
13034}
13035
13036// SetNextToken sets the NextToken field's value.
13037func (s *ListAccessPointsForObjectLambdaOutput) SetNextToken(v string) *ListAccessPointsForObjectLambdaOutput {
13038	s.NextToken = &v
13039	return s
13040}
13041
13042// SetObjectLambdaAccessPointList sets the ObjectLambdaAccessPointList field's value.
13043func (s *ListAccessPointsForObjectLambdaOutput) SetObjectLambdaAccessPointList(v []*ObjectLambdaAccessPoint) *ListAccessPointsForObjectLambdaOutput {
13044	s.ObjectLambdaAccessPointList = v
13045	return s
13046}
13047
13048type ListAccessPointsInput struct {
13049	_ struct{} `locationName:"ListAccessPointsRequest" type:"structure"`
13050
13051	// The Amazon Web Services account ID for owner of the bucket whose access points
13052	// you want to list.
13053	//
13054	// AccountId is a required field
13055	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
13056
13057	// The name of the bucket whose associated access points you want to list.
13058	//
13059	// For using this parameter with Amazon S3 on Outposts with the REST API, you
13060	// must specify the name and the x-amz-outpost-id as well.
13061	//
13062	// For using this parameter with S3 on Outposts with the Amazon Web Services
13063	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
13064	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
13065	// For example, to access the bucket reports through outpost my-outpost owned
13066	// 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.
13067	// The value must be URL encoded.
13068	Bucket *string `location:"querystring" locationName:"bucket" min:"3" type:"string"`
13069
13070	// The maximum number of access points that you want to include in the list.
13071	// If the specified bucket has more than this number of access points, then
13072	// the response will include a continuation token in the NextToken field that
13073	// you can use to retrieve the next page of access points.
13074	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
13075
13076	// A continuation token. If a previous call to ListAccessPoints returned a continuation
13077	// token in the NextToken field, then providing that value here causes Amazon
13078	// S3 to retrieve the next page of results.
13079	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
13080}
13081
13082// String returns the string representation.
13083//
13084// API parameter values that are decorated as "sensitive" in the API will not
13085// be included in the string output. The member name will be present, but the
13086// value will be replaced with "sensitive".
13087func (s ListAccessPointsInput) String() string {
13088	return awsutil.Prettify(s)
13089}
13090
13091// GoString returns the string representation.
13092//
13093// API parameter values that are decorated as "sensitive" in the API will not
13094// be included in the string output. The member name will be present, but the
13095// value will be replaced with "sensitive".
13096func (s ListAccessPointsInput) GoString() string {
13097	return s.String()
13098}
13099
13100// Validate inspects the fields of the type to determine if they are valid.
13101func (s *ListAccessPointsInput) Validate() error {
13102	invalidParams := request.ErrInvalidParams{Context: "ListAccessPointsInput"}
13103	if s.AccountId == nil {
13104		invalidParams.Add(request.NewErrParamRequired("AccountId"))
13105	}
13106	if s.AccountId != nil && len(*s.AccountId) < 1 {
13107		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
13108	}
13109	if s.Bucket != nil && len(*s.Bucket) < 3 {
13110		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
13111	}
13112	if s.NextToken != nil && len(*s.NextToken) < 1 {
13113		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13114	}
13115
13116	if invalidParams.Len() > 0 {
13117		return invalidParams
13118	}
13119	return nil
13120}
13121
13122// SetAccountId sets the AccountId field's value.
13123func (s *ListAccessPointsInput) SetAccountId(v string) *ListAccessPointsInput {
13124	s.AccountId = &v
13125	return s
13126}
13127
13128// SetBucket sets the Bucket field's value.
13129func (s *ListAccessPointsInput) SetBucket(v string) *ListAccessPointsInput {
13130	s.Bucket = &v
13131	return s
13132}
13133
13134// SetMaxResults sets the MaxResults field's value.
13135func (s *ListAccessPointsInput) SetMaxResults(v int64) *ListAccessPointsInput {
13136	s.MaxResults = &v
13137	return s
13138}
13139
13140// SetNextToken sets the NextToken field's value.
13141func (s *ListAccessPointsInput) SetNextToken(v string) *ListAccessPointsInput {
13142	s.NextToken = &v
13143	return s
13144}
13145
13146func (s *ListAccessPointsInput) hostLabels() map[string]string {
13147	return map[string]string{
13148		"AccountId": aws.StringValue(s.AccountId),
13149	}
13150}
13151
13152func (s *ListAccessPointsInput) getEndpointARN() (arn.Resource, error) {
13153	if s.Bucket == nil {
13154		return nil, fmt.Errorf("member Bucket is nil")
13155	}
13156	return parseEndpointARN(*s.Bucket)
13157}
13158
13159func (s *ListAccessPointsInput) hasEndpointARN() bool {
13160	if s.Bucket == nil {
13161		return false
13162	}
13163	return arn.IsARN(*s.Bucket)
13164}
13165
13166// updateArnableField updates the value of the input field that
13167// takes an ARN as an input. This method is useful to backfill
13168// the parsed resource name from ARN into the input member.
13169// It returns a pointer to a modified copy of input and an error.
13170// Note that original input is not modified.
13171func (s ListAccessPointsInput) updateArnableField(v string) (interface{}, error) {
13172	if s.Bucket == nil {
13173		return nil, fmt.Errorf("member Bucket is nil")
13174	}
13175	s.Bucket = aws.String(v)
13176	return &s, nil
13177}
13178
13179// updateAccountID returns a pointer to a modified copy of input,
13180// if account id is not provided, we update the account id in modified input
13181// if account id is provided, but doesn't match with the one in ARN, we throw an error
13182// if account id is not updated, we return nil. Note that original input is not modified.
13183func (s ListAccessPointsInput) updateAccountID(accountId string) (interface{}, error) {
13184	if s.AccountId == nil {
13185		s.AccountId = aws.String(accountId)
13186		return &s, nil
13187	} else if *s.AccountId != accountId {
13188		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
13189	}
13190	return nil, nil
13191}
13192
13193type ListAccessPointsOutput struct {
13194	_ struct{} `type:"structure"`
13195
13196	// Contains identification and configuration information for one or more access
13197	// points associated with the specified bucket.
13198	AccessPointList []*AccessPoint `locationNameList:"AccessPoint" type:"list"`
13199
13200	// If the specified bucket has more access points than can be returned in one
13201	// call to this API, this field contains a continuation token that you can provide
13202	// in subsequent calls to this API to retrieve additional access points.
13203	NextToken *string `min:"1" type:"string"`
13204}
13205
13206// String returns the string representation.
13207//
13208// API parameter values that are decorated as "sensitive" in the API will not
13209// be included in the string output. The member name will be present, but the
13210// value will be replaced with "sensitive".
13211func (s ListAccessPointsOutput) String() string {
13212	return awsutil.Prettify(s)
13213}
13214
13215// GoString returns the string representation.
13216//
13217// API parameter values that are decorated as "sensitive" in the API will not
13218// be included in the string output. The member name will be present, but the
13219// value will be replaced with "sensitive".
13220func (s ListAccessPointsOutput) GoString() string {
13221	return s.String()
13222}
13223
13224// SetAccessPointList sets the AccessPointList field's value.
13225func (s *ListAccessPointsOutput) SetAccessPointList(v []*AccessPoint) *ListAccessPointsOutput {
13226	s.AccessPointList = v
13227	return s
13228}
13229
13230// SetNextToken sets the NextToken field's value.
13231func (s *ListAccessPointsOutput) SetNextToken(v string) *ListAccessPointsOutput {
13232	s.NextToken = &v
13233	return s
13234}
13235
13236type ListJobsInput struct {
13237	_ struct{} `locationName:"ListJobsRequest" type:"structure"`
13238
13239	// The Amazon Web Services account ID associated with the S3 Batch Operations
13240	// job.
13241	//
13242	// AccountId is a required field
13243	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
13244
13245	// The List Jobs request returns jobs that match the statuses listed in this
13246	// element.
13247	JobStatuses []*string `location:"querystring" locationName:"jobStatuses" type:"list"`
13248
13249	// The maximum number of jobs that Amazon S3 will include in the List Jobs response.
13250	// If there are more jobs than this number, the response will include a pagination
13251	// token in the NextToken field to enable you to retrieve the next page of results.
13252	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
13253
13254	// A pagination token to request the next page of results. Use the token that
13255	// Amazon S3 returned in the NextToken element of the ListJobsResult from the
13256	// previous List Jobs request.
13257	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
13258}
13259
13260// String returns the string representation.
13261//
13262// API parameter values that are decorated as "sensitive" in the API will not
13263// be included in the string output. The member name will be present, but the
13264// value will be replaced with "sensitive".
13265func (s ListJobsInput) String() string {
13266	return awsutil.Prettify(s)
13267}
13268
13269// GoString returns the string representation.
13270//
13271// API parameter values that are decorated as "sensitive" in the API will not
13272// be included in the string output. The member name will be present, but the
13273// value will be replaced with "sensitive".
13274func (s ListJobsInput) GoString() string {
13275	return s.String()
13276}
13277
13278// Validate inspects the fields of the type to determine if they are valid.
13279func (s *ListJobsInput) Validate() error {
13280	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
13281	if s.AccountId == nil {
13282		invalidParams.Add(request.NewErrParamRequired("AccountId"))
13283	}
13284	if s.AccountId != nil && len(*s.AccountId) < 1 {
13285		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
13286	}
13287	if s.NextToken != nil && len(*s.NextToken) < 1 {
13288		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13289	}
13290
13291	if invalidParams.Len() > 0 {
13292		return invalidParams
13293	}
13294	return nil
13295}
13296
13297// SetAccountId sets the AccountId field's value.
13298func (s *ListJobsInput) SetAccountId(v string) *ListJobsInput {
13299	s.AccountId = &v
13300	return s
13301}
13302
13303// SetJobStatuses sets the JobStatuses field's value.
13304func (s *ListJobsInput) SetJobStatuses(v []*string) *ListJobsInput {
13305	s.JobStatuses = v
13306	return s
13307}
13308
13309// SetMaxResults sets the MaxResults field's value.
13310func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
13311	s.MaxResults = &v
13312	return s
13313}
13314
13315// SetNextToken sets the NextToken field's value.
13316func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
13317	s.NextToken = &v
13318	return s
13319}
13320
13321func (s *ListJobsInput) hostLabels() map[string]string {
13322	return map[string]string{
13323		"AccountId": aws.StringValue(s.AccountId),
13324	}
13325}
13326
13327type ListJobsOutput struct {
13328	_ struct{} `type:"structure"`
13329
13330	// The list of current jobs and jobs that have ended within the last 30 days.
13331	Jobs []*JobListDescriptor `type:"list"`
13332
13333	// If the List Jobs request produced more than the maximum number of results,
13334	// you can pass this value into a subsequent List Jobs request in order to retrieve
13335	// the next page of results.
13336	NextToken *string `min:"1" type:"string"`
13337}
13338
13339// String returns the string representation.
13340//
13341// API parameter values that are decorated as "sensitive" in the API will not
13342// be included in the string output. The member name will be present, but the
13343// value will be replaced with "sensitive".
13344func (s ListJobsOutput) String() string {
13345	return awsutil.Prettify(s)
13346}
13347
13348// GoString returns the string representation.
13349//
13350// API parameter values that are decorated as "sensitive" in the API will not
13351// be included in the string output. The member name will be present, but the
13352// value will be replaced with "sensitive".
13353func (s ListJobsOutput) GoString() string {
13354	return s.String()
13355}
13356
13357// SetJobs sets the Jobs field's value.
13358func (s *ListJobsOutput) SetJobs(v []*JobListDescriptor) *ListJobsOutput {
13359	s.Jobs = v
13360	return s
13361}
13362
13363// SetNextToken sets the NextToken field's value.
13364func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
13365	s.NextToken = &v
13366	return s
13367}
13368
13369type ListMultiRegionAccessPointsInput struct {
13370	_ struct{} `locationName:"ListMultiRegionAccessPointsRequest" type:"structure"`
13371
13372	// The Amazon Web Services account ID for the owner of the Multi-Region Access
13373	// Point.
13374	//
13375	// AccountId is a required field
13376	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
13377
13378	// Not currently used. Do not use this parameter.
13379	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
13380
13381	// Not currently used. Do not use this parameter.
13382	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
13383}
13384
13385// String returns the string representation.
13386//
13387// API parameter values that are decorated as "sensitive" in the API will not
13388// be included in the string output. The member name will be present, but the
13389// value will be replaced with "sensitive".
13390func (s ListMultiRegionAccessPointsInput) String() string {
13391	return awsutil.Prettify(s)
13392}
13393
13394// GoString returns the string representation.
13395//
13396// API parameter values that are decorated as "sensitive" in the API will not
13397// be included in the string output. The member name will be present, but the
13398// value will be replaced with "sensitive".
13399func (s ListMultiRegionAccessPointsInput) GoString() string {
13400	return s.String()
13401}
13402
13403// Validate inspects the fields of the type to determine if they are valid.
13404func (s *ListMultiRegionAccessPointsInput) Validate() error {
13405	invalidParams := request.ErrInvalidParams{Context: "ListMultiRegionAccessPointsInput"}
13406	if s.AccountId == nil {
13407		invalidParams.Add(request.NewErrParamRequired("AccountId"))
13408	}
13409	if s.AccountId != nil && len(*s.AccountId) < 1 {
13410		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
13411	}
13412	if s.NextToken != nil && len(*s.NextToken) < 1 {
13413		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13414	}
13415
13416	if invalidParams.Len() > 0 {
13417		return invalidParams
13418	}
13419	return nil
13420}
13421
13422// SetAccountId sets the AccountId field's value.
13423func (s *ListMultiRegionAccessPointsInput) SetAccountId(v string) *ListMultiRegionAccessPointsInput {
13424	s.AccountId = &v
13425	return s
13426}
13427
13428// SetMaxResults sets the MaxResults field's value.
13429func (s *ListMultiRegionAccessPointsInput) SetMaxResults(v int64) *ListMultiRegionAccessPointsInput {
13430	s.MaxResults = &v
13431	return s
13432}
13433
13434// SetNextToken sets the NextToken field's value.
13435func (s *ListMultiRegionAccessPointsInput) SetNextToken(v string) *ListMultiRegionAccessPointsInput {
13436	s.NextToken = &v
13437	return s
13438}
13439
13440func (s *ListMultiRegionAccessPointsInput) hostLabels() map[string]string {
13441	return map[string]string{
13442		"AccountId": aws.StringValue(s.AccountId),
13443	}
13444}
13445
13446type ListMultiRegionAccessPointsOutput struct {
13447	_ struct{} `type:"structure"`
13448
13449	// The list of Multi-Region Access Points associated with the user.
13450	AccessPoints []*MultiRegionAccessPointReport `locationNameList:"AccessPoint" type:"list"`
13451
13452	// If the specified bucket has more Multi-Region Access Points than can be returned
13453	// in one call to this action, this field contains a continuation token. You
13454	// can use this token tin subsequent calls to this action to retrieve additional
13455	// Multi-Region Access Points.
13456	NextToken *string `min:"1" type:"string"`
13457}
13458
13459// String returns the string representation.
13460//
13461// API parameter values that are decorated as "sensitive" in the API will not
13462// be included in the string output. The member name will be present, but the
13463// value will be replaced with "sensitive".
13464func (s ListMultiRegionAccessPointsOutput) String() string {
13465	return awsutil.Prettify(s)
13466}
13467
13468// GoString returns the string representation.
13469//
13470// API parameter values that are decorated as "sensitive" in the API will not
13471// be included in the string output. The member name will be present, but the
13472// value will be replaced with "sensitive".
13473func (s ListMultiRegionAccessPointsOutput) GoString() string {
13474	return s.String()
13475}
13476
13477// SetAccessPoints sets the AccessPoints field's value.
13478func (s *ListMultiRegionAccessPointsOutput) SetAccessPoints(v []*MultiRegionAccessPointReport) *ListMultiRegionAccessPointsOutput {
13479	s.AccessPoints = v
13480	return s
13481}
13482
13483// SetNextToken sets the NextToken field's value.
13484func (s *ListMultiRegionAccessPointsOutput) SetNextToken(v string) *ListMultiRegionAccessPointsOutput {
13485	s.NextToken = &v
13486	return s
13487}
13488
13489type ListRegionalBucketsInput struct {
13490	_ struct{} `locationName:"ListRegionalBucketsRequest" type:"structure"`
13491
13492	// The Amazon Web Services account ID of the Outposts bucket.
13493	//
13494	// AccountId is a required field
13495	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
13496
13497	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
13498
13499	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
13500
13501	// The ID of the Outposts.
13502	//
13503	// This is required by Amazon S3 on Outposts buckets.
13504	OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"`
13505}
13506
13507// String returns the string representation.
13508//
13509// API parameter values that are decorated as "sensitive" in the API will not
13510// be included in the string output. The member name will be present, but the
13511// value will be replaced with "sensitive".
13512func (s ListRegionalBucketsInput) String() string {
13513	return awsutil.Prettify(s)
13514}
13515
13516// GoString returns the string representation.
13517//
13518// API parameter values that are decorated as "sensitive" in the API will not
13519// be included in the string output. The member name will be present, but the
13520// value will be replaced with "sensitive".
13521func (s ListRegionalBucketsInput) GoString() string {
13522	return s.String()
13523}
13524
13525// Validate inspects the fields of the type to determine if they are valid.
13526func (s *ListRegionalBucketsInput) Validate() error {
13527	invalidParams := request.ErrInvalidParams{Context: "ListRegionalBucketsInput"}
13528	if s.AccountId == nil {
13529		invalidParams.Add(request.NewErrParamRequired("AccountId"))
13530	}
13531	if s.AccountId != nil && len(*s.AccountId) < 1 {
13532		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
13533	}
13534	if s.NextToken != nil && len(*s.NextToken) < 1 {
13535		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13536	}
13537	if s.OutpostId != nil && len(*s.OutpostId) < 1 {
13538		invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1))
13539	}
13540
13541	if invalidParams.Len() > 0 {
13542		return invalidParams
13543	}
13544	return nil
13545}
13546
13547// SetAccountId sets the AccountId field's value.
13548func (s *ListRegionalBucketsInput) SetAccountId(v string) *ListRegionalBucketsInput {
13549	s.AccountId = &v
13550	return s
13551}
13552
13553// SetMaxResults sets the MaxResults field's value.
13554func (s *ListRegionalBucketsInput) SetMaxResults(v int64) *ListRegionalBucketsInput {
13555	s.MaxResults = &v
13556	return s
13557}
13558
13559// SetNextToken sets the NextToken field's value.
13560func (s *ListRegionalBucketsInput) SetNextToken(v string) *ListRegionalBucketsInput {
13561	s.NextToken = &v
13562	return s
13563}
13564
13565// SetOutpostId sets the OutpostId field's value.
13566func (s *ListRegionalBucketsInput) SetOutpostId(v string) *ListRegionalBucketsInput {
13567	s.OutpostId = &v
13568	return s
13569}
13570
13571func (s *ListRegionalBucketsInput) hostLabels() map[string]string {
13572	return map[string]string{
13573		"AccountId": aws.StringValue(s.AccountId),
13574	}
13575}
13576
13577func (s *ListRegionalBucketsInput) getOutpostID() (string, error) {
13578	if s.OutpostId == nil {
13579		return "", fmt.Errorf("member OutpostId is nil")
13580	}
13581	return *s.OutpostId, nil
13582}
13583
13584func (s *ListRegionalBucketsInput) hasOutpostID() bool {
13585	if s.OutpostId == nil {
13586		return false
13587	}
13588	return true
13589}
13590
13591type ListRegionalBucketsOutput struct {
13592	_ struct{} `type:"structure"`
13593
13594	// NextToken is sent when isTruncated is true, which means there are more buckets
13595	// that can be listed. The next list requests to Amazon S3 can be continued
13596	// with this NextToken. NextToken is obfuscated and is not a real key.
13597	NextToken *string `min:"1" type:"string"`
13598
13599	RegionalBucketList []*RegionalBucket `locationNameList:"RegionalBucket" type:"list"`
13600}
13601
13602// String returns the string representation.
13603//
13604// API parameter values that are decorated as "sensitive" in the API will not
13605// be included in the string output. The member name will be present, but the
13606// value will be replaced with "sensitive".
13607func (s ListRegionalBucketsOutput) String() string {
13608	return awsutil.Prettify(s)
13609}
13610
13611// GoString returns the string representation.
13612//
13613// API parameter values that are decorated as "sensitive" in the API will not
13614// be included in the string output. The member name will be present, but the
13615// value will be replaced with "sensitive".
13616func (s ListRegionalBucketsOutput) GoString() string {
13617	return s.String()
13618}
13619
13620// SetNextToken sets the NextToken field's value.
13621func (s *ListRegionalBucketsOutput) SetNextToken(v string) *ListRegionalBucketsOutput {
13622	s.NextToken = &v
13623	return s
13624}
13625
13626// SetRegionalBucketList sets the RegionalBucketList field's value.
13627func (s *ListRegionalBucketsOutput) SetRegionalBucketList(v []*RegionalBucket) *ListRegionalBucketsOutput {
13628	s.RegionalBucketList = v
13629	return s
13630}
13631
13632// Part of ListStorageLensConfigurationResult. Each entry includes the description
13633// of the S3 Storage Lens configuration, its home Region, whether it is enabled,
13634// its Amazon Resource Name (ARN), and config ID.
13635type ListStorageLensConfigurationEntry struct {
13636	_ struct{} `type:"structure"`
13637
13638	// A container for the S3 Storage Lens home Region. Your metrics data is stored
13639	// and retained in your designated S3 Storage Lens home Region.
13640	//
13641	// HomeRegion is a required field
13642	HomeRegion *string `min:"5" type:"string" required:"true"`
13643
13644	// A container for the S3 Storage Lens configuration ID.
13645	//
13646	// Id is a required field
13647	Id *string `min:"1" type:"string" required:"true"`
13648
13649	// A container for whether the S3 Storage Lens configuration is enabled. This
13650	// property is required.
13651	IsEnabled *bool `type:"boolean"`
13652
13653	// The ARN of the S3 Storage Lens configuration. This property is read-only.
13654	//
13655	// StorageLensArn is a required field
13656	StorageLensArn *string `min:"1" type:"string" required:"true"`
13657}
13658
13659// String returns the string representation.
13660//
13661// API parameter values that are decorated as "sensitive" in the API will not
13662// be included in the string output. The member name will be present, but the
13663// value will be replaced with "sensitive".
13664func (s ListStorageLensConfigurationEntry) String() string {
13665	return awsutil.Prettify(s)
13666}
13667
13668// GoString returns the string representation.
13669//
13670// API parameter values that are decorated as "sensitive" in the API will not
13671// be included in the string output. The member name will be present, but the
13672// value will be replaced with "sensitive".
13673func (s ListStorageLensConfigurationEntry) GoString() string {
13674	return s.String()
13675}
13676
13677// SetHomeRegion sets the HomeRegion field's value.
13678func (s *ListStorageLensConfigurationEntry) SetHomeRegion(v string) *ListStorageLensConfigurationEntry {
13679	s.HomeRegion = &v
13680	return s
13681}
13682
13683// SetId sets the Id field's value.
13684func (s *ListStorageLensConfigurationEntry) SetId(v string) *ListStorageLensConfigurationEntry {
13685	s.Id = &v
13686	return s
13687}
13688
13689// SetIsEnabled sets the IsEnabled field's value.
13690func (s *ListStorageLensConfigurationEntry) SetIsEnabled(v bool) *ListStorageLensConfigurationEntry {
13691	s.IsEnabled = &v
13692	return s
13693}
13694
13695// SetStorageLensArn sets the StorageLensArn field's value.
13696func (s *ListStorageLensConfigurationEntry) SetStorageLensArn(v string) *ListStorageLensConfigurationEntry {
13697	s.StorageLensArn = &v
13698	return s
13699}
13700
13701type ListStorageLensConfigurationsInput struct {
13702	_ struct{} `locationName:"ListStorageLensConfigurationsRequest" type:"structure"`
13703
13704	// The account ID of the requester.
13705	//
13706	// AccountId is a required field
13707	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
13708
13709	// A pagination token to request the next page of results.
13710	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
13711}
13712
13713// String returns the string representation.
13714//
13715// API parameter values that are decorated as "sensitive" in the API will not
13716// be included in the string output. The member name will be present, but the
13717// value will be replaced with "sensitive".
13718func (s ListStorageLensConfigurationsInput) String() string {
13719	return awsutil.Prettify(s)
13720}
13721
13722// GoString returns the string representation.
13723//
13724// API parameter values that are decorated as "sensitive" in the API will not
13725// be included in the string output. The member name will be present, but the
13726// value will be replaced with "sensitive".
13727func (s ListStorageLensConfigurationsInput) GoString() string {
13728	return s.String()
13729}
13730
13731// Validate inspects the fields of the type to determine if they are valid.
13732func (s *ListStorageLensConfigurationsInput) Validate() error {
13733	invalidParams := request.ErrInvalidParams{Context: "ListStorageLensConfigurationsInput"}
13734	if s.AccountId == nil {
13735		invalidParams.Add(request.NewErrParamRequired("AccountId"))
13736	}
13737	if s.AccountId != nil && len(*s.AccountId) < 1 {
13738		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
13739	}
13740
13741	if invalidParams.Len() > 0 {
13742		return invalidParams
13743	}
13744	return nil
13745}
13746
13747// SetAccountId sets the AccountId field's value.
13748func (s *ListStorageLensConfigurationsInput) SetAccountId(v string) *ListStorageLensConfigurationsInput {
13749	s.AccountId = &v
13750	return s
13751}
13752
13753// SetNextToken sets the NextToken field's value.
13754func (s *ListStorageLensConfigurationsInput) SetNextToken(v string) *ListStorageLensConfigurationsInput {
13755	s.NextToken = &v
13756	return s
13757}
13758
13759func (s *ListStorageLensConfigurationsInput) hostLabels() map[string]string {
13760	return map[string]string{
13761		"AccountId": aws.StringValue(s.AccountId),
13762	}
13763}
13764
13765type ListStorageLensConfigurationsOutput struct {
13766	_ struct{} `type:"structure"`
13767
13768	// If the request produced more than the maximum number of S3 Storage Lens configuration
13769	// results, you can pass this value into a subsequent request to retrieve the
13770	// next page of results.
13771	NextToken *string `type:"string"`
13772
13773	// A list of S3 Storage Lens configurations.
13774	StorageLensConfigurationList []*ListStorageLensConfigurationEntry `locationNameList:"StorageLensConfiguration" type:"list" flattened:"true"`
13775}
13776
13777// String returns the string representation.
13778//
13779// API parameter values that are decorated as "sensitive" in the API will not
13780// be included in the string output. The member name will be present, but the
13781// value will be replaced with "sensitive".
13782func (s ListStorageLensConfigurationsOutput) String() string {
13783	return awsutil.Prettify(s)
13784}
13785
13786// GoString returns the string representation.
13787//
13788// API parameter values that are decorated as "sensitive" in the API will not
13789// be included in the string output. The member name will be present, but the
13790// value will be replaced with "sensitive".
13791func (s ListStorageLensConfigurationsOutput) GoString() string {
13792	return s.String()
13793}
13794
13795// SetNextToken sets the NextToken field's value.
13796func (s *ListStorageLensConfigurationsOutput) SetNextToken(v string) *ListStorageLensConfigurationsOutput {
13797	s.NextToken = &v
13798	return s
13799}
13800
13801// SetStorageLensConfigurationList sets the StorageLensConfigurationList field's value.
13802func (s *ListStorageLensConfigurationsOutput) SetStorageLensConfigurationList(v []*ListStorageLensConfigurationEntry) *ListStorageLensConfigurationsOutput {
13803	s.StorageLensConfigurationList = v
13804	return s
13805}
13806
13807// The Multi-Region Access Point access control policy.
13808//
13809// When you update the policy, the update is first listed as the proposed policy.
13810// After the update is finished and all Regions have been updated, the proposed
13811// policy is listed as the established policy. If both policies have the same
13812// version number, the proposed policy is the established policy.
13813type MultiRegionAccessPointPolicyDocument struct {
13814	_ struct{} `type:"structure"`
13815
13816	// The last established policy for the Multi-Region Access Point.
13817	Established *EstablishedMultiRegionAccessPointPolicy `type:"structure"`
13818
13819	// The proposed policy for the Multi-Region Access Point.
13820	Proposed *ProposedMultiRegionAccessPointPolicy `type:"structure"`
13821}
13822
13823// String returns the string representation.
13824//
13825// API parameter values that are decorated as "sensitive" in the API will not
13826// be included in the string output. The member name will be present, but the
13827// value will be replaced with "sensitive".
13828func (s MultiRegionAccessPointPolicyDocument) String() string {
13829	return awsutil.Prettify(s)
13830}
13831
13832// GoString returns the string representation.
13833//
13834// API parameter values that are decorated as "sensitive" in the API will not
13835// be included in the string output. The member name will be present, but the
13836// value will be replaced with "sensitive".
13837func (s MultiRegionAccessPointPolicyDocument) GoString() string {
13838	return s.String()
13839}
13840
13841// SetEstablished sets the Established field's value.
13842func (s *MultiRegionAccessPointPolicyDocument) SetEstablished(v *EstablishedMultiRegionAccessPointPolicy) *MultiRegionAccessPointPolicyDocument {
13843	s.Established = v
13844	return s
13845}
13846
13847// SetProposed sets the Proposed field's value.
13848func (s *MultiRegionAccessPointPolicyDocument) SetProposed(v *ProposedMultiRegionAccessPointPolicy) *MultiRegionAccessPointPolicyDocument {
13849	s.Proposed = v
13850	return s
13851}
13852
13853// Status information for a single Multi-Region Access Point Region.
13854type MultiRegionAccessPointRegionalResponse struct {
13855	_ struct{} `type:"structure"`
13856
13857	// The name of the Region in the Multi-Region Access Point.
13858	Name *string `min:"1" type:"string"`
13859
13860	// The current status of the Multi-Region Access Point in this Region.
13861	RequestStatus *string `type:"string"`
13862}
13863
13864// String returns the string representation.
13865//
13866// API parameter values that are decorated as "sensitive" in the API will not
13867// be included in the string output. The member name will be present, but the
13868// value will be replaced with "sensitive".
13869func (s MultiRegionAccessPointRegionalResponse) String() string {
13870	return awsutil.Prettify(s)
13871}
13872
13873// GoString returns the string representation.
13874//
13875// API parameter values that are decorated as "sensitive" in the API will not
13876// be included in the string output. The member name will be present, but the
13877// value will be replaced with "sensitive".
13878func (s MultiRegionAccessPointRegionalResponse) GoString() string {
13879	return s.String()
13880}
13881
13882// SetName sets the Name field's value.
13883func (s *MultiRegionAccessPointRegionalResponse) SetName(v string) *MultiRegionAccessPointRegionalResponse {
13884	s.Name = &v
13885	return s
13886}
13887
13888// SetRequestStatus sets the RequestStatus field's value.
13889func (s *MultiRegionAccessPointRegionalResponse) SetRequestStatus(v string) *MultiRegionAccessPointRegionalResponse {
13890	s.RequestStatus = &v
13891	return s
13892}
13893
13894// A collection of statuses for a Multi-Region Access Point in the various Regions
13895// it supports.
13896type MultiRegionAccessPointReport struct {
13897	_ struct{} `type:"structure"`
13898
13899	// The alias for the Multi-Region Access Point. For more information about the
13900	// distinction between the name and the alias of an Multi-Region Access Point,
13901	// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming).
13902	Alias *string `type:"string"`
13903
13904	// When the Multi-Region Access Point create request was received.
13905	CreatedAt *time.Time `type:"timestamp"`
13906
13907	// The name of the Multi-Region Access Point.
13908	Name *string `type:"string"`
13909
13910	// The PublicAccessBlock configuration that you want to apply to this Amazon
13911	// S3 account. You can enable the configuration options in any combination.
13912	// For more information about when Amazon S3 considers a bucket or object public,
13913	// 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)
13914	// in the Amazon S3 User Guide.
13915	//
13916	// This is not supported for Amazon S3 on Outposts.
13917	PublicAccessBlock *PublicAccessBlockConfiguration `type:"structure"`
13918
13919	// A collection of the Regions and buckets associated with the Multi-Region
13920	// Access Point.
13921	Regions []*RegionReport `locationNameList:"Region" type:"list"`
13922
13923	// The current status of the Multi-Region Access Point.
13924	//
13925	// CREATING and DELETING are temporary states that exist while the request is
13926	// propogating and being completed. If a Multi-Region Access Point has a status
13927	// of PARTIALLY_CREATED, you can retry creation or send a request to delete
13928	// the Multi-Region Access Point. If a Multi-Region Access Point has a status
13929	// of PARTIALLY_DELETED, you can retry a delete request to finish the deletion
13930	// of the Multi-Region Access Point.
13931	Status *string `type:"string" enum:"MultiRegionAccessPointStatus"`
13932}
13933
13934// String returns the string representation.
13935//
13936// API parameter values that are decorated as "sensitive" in the API will not
13937// be included in the string output. The member name will be present, but the
13938// value will be replaced with "sensitive".
13939func (s MultiRegionAccessPointReport) String() string {
13940	return awsutil.Prettify(s)
13941}
13942
13943// GoString returns the string representation.
13944//
13945// API parameter values that are decorated as "sensitive" in the API will not
13946// be included in the string output. The member name will be present, but the
13947// value will be replaced with "sensitive".
13948func (s MultiRegionAccessPointReport) GoString() string {
13949	return s.String()
13950}
13951
13952// SetAlias sets the Alias field's value.
13953func (s *MultiRegionAccessPointReport) SetAlias(v string) *MultiRegionAccessPointReport {
13954	s.Alias = &v
13955	return s
13956}
13957
13958// SetCreatedAt sets the CreatedAt field's value.
13959func (s *MultiRegionAccessPointReport) SetCreatedAt(v time.Time) *MultiRegionAccessPointReport {
13960	s.CreatedAt = &v
13961	return s
13962}
13963
13964// SetName sets the Name field's value.
13965func (s *MultiRegionAccessPointReport) SetName(v string) *MultiRegionAccessPointReport {
13966	s.Name = &v
13967	return s
13968}
13969
13970// SetPublicAccessBlock sets the PublicAccessBlock field's value.
13971func (s *MultiRegionAccessPointReport) SetPublicAccessBlock(v *PublicAccessBlockConfiguration) *MultiRegionAccessPointReport {
13972	s.PublicAccessBlock = v
13973	return s
13974}
13975
13976// SetRegions sets the Regions field's value.
13977func (s *MultiRegionAccessPointReport) SetRegions(v []*RegionReport) *MultiRegionAccessPointReport {
13978	s.Regions = v
13979	return s
13980}
13981
13982// SetStatus sets the Status field's value.
13983func (s *MultiRegionAccessPointReport) SetStatus(v string) *MultiRegionAccessPointReport {
13984	s.Status = &v
13985	return s
13986}
13987
13988// The Multi-Region Access Point details that are returned when querying about
13989// an asynchronous request.
13990type MultiRegionAccessPointsAsyncResponse struct {
13991	_ struct{} `type:"structure"`
13992
13993	// A collection of status information for the different Regions that a Multi-Region
13994	// Access Point supports.
13995	Regions []*MultiRegionAccessPointRegionalResponse `locationNameList:"Region" type:"list"`
13996}
13997
13998// String returns the string representation.
13999//
14000// API parameter values that are decorated as "sensitive" in the API will not
14001// be included in the string output. The member name will be present, but the
14002// value will be replaced with "sensitive".
14003func (s MultiRegionAccessPointsAsyncResponse) String() string {
14004	return awsutil.Prettify(s)
14005}
14006
14007// GoString returns the string representation.
14008//
14009// API parameter values that are decorated as "sensitive" in the API will not
14010// be included in the string output. The member name will be present, but the
14011// value will be replaced with "sensitive".
14012func (s MultiRegionAccessPointsAsyncResponse) GoString() string {
14013	return s.String()
14014}
14015
14016// SetRegions sets the Regions field's value.
14017func (s *MultiRegionAccessPointsAsyncResponse) SetRegions(v []*MultiRegionAccessPointRegionalResponse) *MultiRegionAccessPointsAsyncResponse {
14018	s.Regions = v
14019	return s
14020}
14021
14022// The container of the noncurrent version expiration.
14023type NoncurrentVersionExpiration struct {
14024	_ struct{} `type:"structure"`
14025
14026	// Specifies the number of days an object is noncurrent before Amazon S3 can
14027	// perform the associated action. For information about the noncurrent days
14028	// calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
14029	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
14030	// in the Amazon S3 User Guide.
14031	NoncurrentDays *int64 `type:"integer"`
14032}
14033
14034// String returns the string representation.
14035//
14036// API parameter values that are decorated as "sensitive" in the API will not
14037// be included in the string output. The member name will be present, but the
14038// value will be replaced with "sensitive".
14039func (s NoncurrentVersionExpiration) String() string {
14040	return awsutil.Prettify(s)
14041}
14042
14043// GoString returns the string representation.
14044//
14045// API parameter values that are decorated as "sensitive" in the API will not
14046// be included in the string output. The member name will be present, but the
14047// value will be replaced with "sensitive".
14048func (s NoncurrentVersionExpiration) GoString() string {
14049	return s.String()
14050}
14051
14052// SetNoncurrentDays sets the NoncurrentDays field's value.
14053func (s *NoncurrentVersionExpiration) SetNoncurrentDays(v int64) *NoncurrentVersionExpiration {
14054	s.NoncurrentDays = &v
14055	return s
14056}
14057
14058// The container for the noncurrent version transition.
14059type NoncurrentVersionTransition struct {
14060	_ struct{} `type:"structure"`
14061
14062	// Specifies the number of days an object is noncurrent before Amazon S3 can
14063	// perform the associated action. For information about the noncurrent days
14064	// calculations, see How Amazon S3 Calculates How Long an Object Has Been Noncurrent
14065	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
14066	// in the Amazon S3 User Guide.
14067	NoncurrentDays *int64 `type:"integer"`
14068
14069	// The class of storage used to store the object.
14070	StorageClass *string `type:"string" enum:"TransitionStorageClass"`
14071}
14072
14073// String returns the string representation.
14074//
14075// API parameter values that are decorated as "sensitive" in the API will not
14076// be included in the string output. The member name will be present, but the
14077// value will be replaced with "sensitive".
14078func (s NoncurrentVersionTransition) String() string {
14079	return awsutil.Prettify(s)
14080}
14081
14082// GoString returns the string representation.
14083//
14084// API parameter values that are decorated as "sensitive" in the API will not
14085// be included in the string output. The member name will be present, but the
14086// value will be replaced with "sensitive".
14087func (s NoncurrentVersionTransition) GoString() string {
14088	return s.String()
14089}
14090
14091// SetNoncurrentDays sets the NoncurrentDays field's value.
14092func (s *NoncurrentVersionTransition) SetNoncurrentDays(v int64) *NoncurrentVersionTransition {
14093	s.NoncurrentDays = &v
14094	return s
14095}
14096
14097// SetStorageClass sets the StorageClass field's value.
14098func (s *NoncurrentVersionTransition) SetStorageClass(v string) *NoncurrentVersionTransition {
14099	s.StorageClass = &v
14100	return s
14101}
14102
14103// An access point with an attached Lambda function used to access transformed
14104// data from an Amazon S3 bucket.
14105type ObjectLambdaAccessPoint struct {
14106	_ struct{} `type:"structure"`
14107
14108	// The name of the Object Lambda Access Point.
14109	//
14110	// Name is a required field
14111	Name *string `min:"3" type:"string" required:"true"`
14112
14113	// Specifies the ARN for the Object Lambda Access Point.
14114	ObjectLambdaAccessPointArn *string `min:"1" type:"string"`
14115}
14116
14117// String returns the string representation.
14118//
14119// API parameter values that are decorated as "sensitive" in the API will not
14120// be included in the string output. The member name will be present, but the
14121// value will be replaced with "sensitive".
14122func (s ObjectLambdaAccessPoint) String() string {
14123	return awsutil.Prettify(s)
14124}
14125
14126// GoString returns the string representation.
14127//
14128// API parameter values that are decorated as "sensitive" in the API will not
14129// be included in the string output. The member name will be present, but the
14130// value will be replaced with "sensitive".
14131func (s ObjectLambdaAccessPoint) GoString() string {
14132	return s.String()
14133}
14134
14135// SetName sets the Name field's value.
14136func (s *ObjectLambdaAccessPoint) SetName(v string) *ObjectLambdaAccessPoint {
14137	s.Name = &v
14138	return s
14139}
14140
14141// SetObjectLambdaAccessPointArn sets the ObjectLambdaAccessPointArn field's value.
14142func (s *ObjectLambdaAccessPoint) SetObjectLambdaAccessPointArn(v string) *ObjectLambdaAccessPoint {
14143	s.ObjectLambdaAccessPointArn = &v
14144	return s
14145}
14146
14147// A configuration used when creating an Object Lambda Access Point.
14148type ObjectLambdaConfiguration struct {
14149	_ struct{} `type:"structure"`
14150
14151	// A container for allowed features. Valid inputs are GetObject-Range and GetObject-PartNumber.
14152	AllowedFeatures []*string `locationNameList:"AllowedFeature" type:"list"`
14153
14154	// A container for whether the CloudWatch metrics configuration is enabled.
14155	CloudWatchMetricsEnabled *bool `type:"boolean"`
14156
14157	// Standard access point associated with the Object Lambda Access Point.
14158	//
14159	// SupportingAccessPoint is a required field
14160	SupportingAccessPoint *string `min:"1" type:"string" required:"true"`
14161
14162	// A container for transformation configurations for an Object Lambda Access
14163	// Point.
14164	//
14165	// TransformationConfigurations is a required field
14166	TransformationConfigurations []*ObjectLambdaTransformationConfiguration `locationNameList:"TransformationConfiguration" type:"list" required:"true"`
14167}
14168
14169// String returns the string representation.
14170//
14171// API parameter values that are decorated as "sensitive" in the API will not
14172// be included in the string output. The member name will be present, but the
14173// value will be replaced with "sensitive".
14174func (s ObjectLambdaConfiguration) String() string {
14175	return awsutil.Prettify(s)
14176}
14177
14178// GoString returns the string representation.
14179//
14180// API parameter values that are decorated as "sensitive" in the API will not
14181// be included in the string output. The member name will be present, but the
14182// value will be replaced with "sensitive".
14183func (s ObjectLambdaConfiguration) GoString() string {
14184	return s.String()
14185}
14186
14187// Validate inspects the fields of the type to determine if they are valid.
14188func (s *ObjectLambdaConfiguration) Validate() error {
14189	invalidParams := request.ErrInvalidParams{Context: "ObjectLambdaConfiguration"}
14190	if s.SupportingAccessPoint == nil {
14191		invalidParams.Add(request.NewErrParamRequired("SupportingAccessPoint"))
14192	}
14193	if s.SupportingAccessPoint != nil && len(*s.SupportingAccessPoint) < 1 {
14194		invalidParams.Add(request.NewErrParamMinLen("SupportingAccessPoint", 1))
14195	}
14196	if s.TransformationConfigurations == nil {
14197		invalidParams.Add(request.NewErrParamRequired("TransformationConfigurations"))
14198	}
14199	if s.TransformationConfigurations != nil {
14200		for i, v := range s.TransformationConfigurations {
14201			if v == nil {
14202				continue
14203			}
14204			if err := v.Validate(); err != nil {
14205				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TransformationConfigurations", i), err.(request.ErrInvalidParams))
14206			}
14207		}
14208	}
14209
14210	if invalidParams.Len() > 0 {
14211		return invalidParams
14212	}
14213	return nil
14214}
14215
14216// SetAllowedFeatures sets the AllowedFeatures field's value.
14217func (s *ObjectLambdaConfiguration) SetAllowedFeatures(v []*string) *ObjectLambdaConfiguration {
14218	s.AllowedFeatures = v
14219	return s
14220}
14221
14222// SetCloudWatchMetricsEnabled sets the CloudWatchMetricsEnabled field's value.
14223func (s *ObjectLambdaConfiguration) SetCloudWatchMetricsEnabled(v bool) *ObjectLambdaConfiguration {
14224	s.CloudWatchMetricsEnabled = &v
14225	return s
14226}
14227
14228// SetSupportingAccessPoint sets the SupportingAccessPoint field's value.
14229func (s *ObjectLambdaConfiguration) SetSupportingAccessPoint(v string) *ObjectLambdaConfiguration {
14230	s.SupportingAccessPoint = &v
14231	return s
14232}
14233
14234// SetTransformationConfigurations sets the TransformationConfigurations field's value.
14235func (s *ObjectLambdaConfiguration) SetTransformationConfigurations(v []*ObjectLambdaTransformationConfiguration) *ObjectLambdaConfiguration {
14236	s.TransformationConfigurations = v
14237	return s
14238}
14239
14240// A container for AwsLambdaTransformation.
14241type ObjectLambdaContentTransformation struct {
14242	_ struct{} `type:"structure"`
14243
14244	// A container for an Lambda function.
14245	AwsLambda *AwsLambdaTransformation `type:"structure"`
14246}
14247
14248// String returns the string representation.
14249//
14250// API parameter values that are decorated as "sensitive" in the API will not
14251// be included in the string output. The member name will be present, but the
14252// value will be replaced with "sensitive".
14253func (s ObjectLambdaContentTransformation) String() string {
14254	return awsutil.Prettify(s)
14255}
14256
14257// GoString returns the string representation.
14258//
14259// API parameter values that are decorated as "sensitive" in the API will not
14260// be included in the string output. The member name will be present, but the
14261// value will be replaced with "sensitive".
14262func (s ObjectLambdaContentTransformation) GoString() string {
14263	return s.String()
14264}
14265
14266// Validate inspects the fields of the type to determine if they are valid.
14267func (s *ObjectLambdaContentTransformation) Validate() error {
14268	invalidParams := request.ErrInvalidParams{Context: "ObjectLambdaContentTransformation"}
14269	if s.AwsLambda != nil {
14270		if err := s.AwsLambda.Validate(); err != nil {
14271			invalidParams.AddNested("AwsLambda", err.(request.ErrInvalidParams))
14272		}
14273	}
14274
14275	if invalidParams.Len() > 0 {
14276		return invalidParams
14277	}
14278	return nil
14279}
14280
14281// SetAwsLambda sets the AwsLambda field's value.
14282func (s *ObjectLambdaContentTransformation) SetAwsLambda(v *AwsLambdaTransformation) *ObjectLambdaContentTransformation {
14283	s.AwsLambda = v
14284	return s
14285}
14286
14287// A configuration used when creating an Object Lambda Access Point transformation.
14288type ObjectLambdaTransformationConfiguration struct {
14289	_ struct{} `type:"structure"`
14290
14291	// A container for the action of an Object Lambda Access Point configuration.
14292	// Valid input is GetObject.
14293	//
14294	// Actions is a required field
14295	Actions []*string `locationNameList:"Action" type:"list" required:"true"`
14296
14297	// A container for the content transformation of an Object Lambda Access Point
14298	// configuration.
14299	//
14300	// ContentTransformation is a required field
14301	ContentTransformation *ObjectLambdaContentTransformation `type:"structure" required:"true"`
14302}
14303
14304// String returns the string representation.
14305//
14306// API parameter values that are decorated as "sensitive" in the API will not
14307// be included in the string output. The member name will be present, but the
14308// value will be replaced with "sensitive".
14309func (s ObjectLambdaTransformationConfiguration) String() string {
14310	return awsutil.Prettify(s)
14311}
14312
14313// GoString returns the string representation.
14314//
14315// API parameter values that are decorated as "sensitive" in the API will not
14316// be included in the string output. The member name will be present, but the
14317// value will be replaced with "sensitive".
14318func (s ObjectLambdaTransformationConfiguration) GoString() string {
14319	return s.String()
14320}
14321
14322// Validate inspects the fields of the type to determine if they are valid.
14323func (s *ObjectLambdaTransformationConfiguration) Validate() error {
14324	invalidParams := request.ErrInvalidParams{Context: "ObjectLambdaTransformationConfiguration"}
14325	if s.Actions == nil {
14326		invalidParams.Add(request.NewErrParamRequired("Actions"))
14327	}
14328	if s.ContentTransformation == nil {
14329		invalidParams.Add(request.NewErrParamRequired("ContentTransformation"))
14330	}
14331	if s.ContentTransformation != nil {
14332		if err := s.ContentTransformation.Validate(); err != nil {
14333			invalidParams.AddNested("ContentTransformation", err.(request.ErrInvalidParams))
14334		}
14335	}
14336
14337	if invalidParams.Len() > 0 {
14338		return invalidParams
14339	}
14340	return nil
14341}
14342
14343// SetActions sets the Actions field's value.
14344func (s *ObjectLambdaTransformationConfiguration) SetActions(v []*string) *ObjectLambdaTransformationConfiguration {
14345	s.Actions = v
14346	return s
14347}
14348
14349// SetContentTransformation sets the ContentTransformation field's value.
14350func (s *ObjectLambdaTransformationConfiguration) SetContentTransformation(v *ObjectLambdaContentTransformation) *ObjectLambdaTransformationConfiguration {
14351	s.ContentTransformation = v
14352	return s
14353}
14354
14355// Indicates whether this access point policy is public. For more information
14356// about how Amazon S3 evaluates policies to determine whether they are public,
14357// 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)
14358// in the Amazon S3 User Guide.
14359type PolicyStatus struct {
14360	_ struct{} `type:"structure"`
14361
14362	IsPublic *bool `locationName:"IsPublic" type:"boolean"`
14363}
14364
14365// String returns the string representation.
14366//
14367// API parameter values that are decorated as "sensitive" in the API will not
14368// be included in the string output. The member name will be present, but the
14369// value will be replaced with "sensitive".
14370func (s PolicyStatus) String() string {
14371	return awsutil.Prettify(s)
14372}
14373
14374// GoString returns the string representation.
14375//
14376// API parameter values that are decorated as "sensitive" in the API will not
14377// be included in the string output. The member name will be present, but the
14378// value will be replaced with "sensitive".
14379func (s PolicyStatus) GoString() string {
14380	return s.String()
14381}
14382
14383// SetIsPublic sets the IsPublic field's value.
14384func (s *PolicyStatus) SetIsPublic(v bool) *PolicyStatus {
14385	s.IsPublic = &v
14386	return s
14387}
14388
14389// A container for the prefix-level configuration.
14390type PrefixLevel struct {
14391	_ struct{} `type:"structure"`
14392
14393	// A container for the prefix-level storage metrics for S3 Storage Lens.
14394	//
14395	// StorageMetrics is a required field
14396	StorageMetrics *PrefixLevelStorageMetrics `type:"structure" required:"true"`
14397}
14398
14399// String returns the string representation.
14400//
14401// API parameter values that are decorated as "sensitive" in the API will not
14402// be included in the string output. The member name will be present, but the
14403// value will be replaced with "sensitive".
14404func (s PrefixLevel) String() string {
14405	return awsutil.Prettify(s)
14406}
14407
14408// GoString returns the string representation.
14409//
14410// API parameter values that are decorated as "sensitive" in the API will not
14411// be included in the string output. The member name will be present, but the
14412// value will be replaced with "sensitive".
14413func (s PrefixLevel) GoString() string {
14414	return s.String()
14415}
14416
14417// Validate inspects the fields of the type to determine if they are valid.
14418func (s *PrefixLevel) Validate() error {
14419	invalidParams := request.ErrInvalidParams{Context: "PrefixLevel"}
14420	if s.StorageMetrics == nil {
14421		invalidParams.Add(request.NewErrParamRequired("StorageMetrics"))
14422	}
14423	if s.StorageMetrics != nil {
14424		if err := s.StorageMetrics.Validate(); err != nil {
14425			invalidParams.AddNested("StorageMetrics", err.(request.ErrInvalidParams))
14426		}
14427	}
14428
14429	if invalidParams.Len() > 0 {
14430		return invalidParams
14431	}
14432	return nil
14433}
14434
14435// SetStorageMetrics sets the StorageMetrics field's value.
14436func (s *PrefixLevel) SetStorageMetrics(v *PrefixLevelStorageMetrics) *PrefixLevel {
14437	s.StorageMetrics = v
14438	return s
14439}
14440
14441// A container for the prefix-level storage metrics for S3 Storage Lens.
14442type PrefixLevelStorageMetrics struct {
14443	_ struct{} `type:"structure"`
14444
14445	// A container for whether prefix-level storage metrics are enabled.
14446	IsEnabled *bool `type:"boolean"`
14447
14448	SelectionCriteria *SelectionCriteria `type:"structure"`
14449}
14450
14451// String returns the string representation.
14452//
14453// API parameter values that are decorated as "sensitive" in the API will not
14454// be included in the string output. The member name will be present, but the
14455// value will be replaced with "sensitive".
14456func (s PrefixLevelStorageMetrics) String() string {
14457	return awsutil.Prettify(s)
14458}
14459
14460// GoString returns the string representation.
14461//
14462// API parameter values that are decorated as "sensitive" in the API will not
14463// be included in the string output. The member name will be present, but the
14464// value will be replaced with "sensitive".
14465func (s PrefixLevelStorageMetrics) GoString() string {
14466	return s.String()
14467}
14468
14469// Validate inspects the fields of the type to determine if they are valid.
14470func (s *PrefixLevelStorageMetrics) Validate() error {
14471	invalidParams := request.ErrInvalidParams{Context: "PrefixLevelStorageMetrics"}
14472	if s.SelectionCriteria != nil {
14473		if err := s.SelectionCriteria.Validate(); err != nil {
14474			invalidParams.AddNested("SelectionCriteria", err.(request.ErrInvalidParams))
14475		}
14476	}
14477
14478	if invalidParams.Len() > 0 {
14479		return invalidParams
14480	}
14481	return nil
14482}
14483
14484// SetIsEnabled sets the IsEnabled field's value.
14485func (s *PrefixLevelStorageMetrics) SetIsEnabled(v bool) *PrefixLevelStorageMetrics {
14486	s.IsEnabled = &v
14487	return s
14488}
14489
14490// SetSelectionCriteria sets the SelectionCriteria field's value.
14491func (s *PrefixLevelStorageMetrics) SetSelectionCriteria(v *SelectionCriteria) *PrefixLevelStorageMetrics {
14492	s.SelectionCriteria = v
14493	return s
14494}
14495
14496// The proposed access control policy for the Multi-Region Access Point.
14497//
14498// When you update the policy, the update is first listed as the proposed policy.
14499// After the update is finished and all Regions have been updated, the proposed
14500// policy is listed as the established policy. If both policies have the same
14501// version number, the proposed policy is the established policy.
14502type ProposedMultiRegionAccessPointPolicy struct {
14503	_ struct{} `type:"structure"`
14504
14505	// The details of the proposed policy.
14506	Policy *string `type:"string"`
14507}
14508
14509// String returns the string representation.
14510//
14511// API parameter values that are decorated as "sensitive" in the API will not
14512// be included in the string output. The member name will be present, but the
14513// value will be replaced with "sensitive".
14514func (s ProposedMultiRegionAccessPointPolicy) String() string {
14515	return awsutil.Prettify(s)
14516}
14517
14518// GoString returns the string representation.
14519//
14520// API parameter values that are decorated as "sensitive" in the API will not
14521// be included in the string output. The member name will be present, but the
14522// value will be replaced with "sensitive".
14523func (s ProposedMultiRegionAccessPointPolicy) GoString() string {
14524	return s.String()
14525}
14526
14527// SetPolicy sets the Policy field's value.
14528func (s *ProposedMultiRegionAccessPointPolicy) SetPolicy(v string) *ProposedMultiRegionAccessPointPolicy {
14529	s.Policy = &v
14530	return s
14531}
14532
14533// The PublicAccessBlock configuration that you want to apply to this Amazon
14534// S3 account. You can enable the configuration options in any combination.
14535// For more information about when Amazon S3 considers a bucket or object public,
14536// 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)
14537// in the Amazon S3 User Guide.
14538//
14539// This is not supported for Amazon S3 on Outposts.
14540type PublicAccessBlockConfiguration struct {
14541	_ struct{} `type:"structure"`
14542
14543	// Specifies whether Amazon S3 should block public access control lists (ACLs)
14544	// for buckets in this account. Setting this element to TRUE causes the following
14545	// behavior:
14546	//
14547	//    * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is
14548	//    public.
14549	//
14550	//    * PUT Object calls fail if the request includes a public ACL.
14551	//
14552	//    * PUT Bucket calls fail if the request includes a public ACL.
14553	//
14554	// Enabling this setting doesn't affect existing policies or ACLs.
14555	//
14556	// This is not supported for Amazon S3 on Outposts.
14557	BlockPublicAcls *bool `locationName:"BlockPublicAcls" type:"boolean"`
14558
14559	// Specifies whether Amazon S3 should block public bucket policies for buckets
14560	// in this account. Setting this element to TRUE causes Amazon S3 to reject
14561	// calls to PUT Bucket policy if the specified bucket policy allows public access.
14562	//
14563	// Enabling this setting doesn't affect existing bucket policies.
14564	//
14565	// This is not supported for Amazon S3 on Outposts.
14566	BlockPublicPolicy *bool `locationName:"BlockPublicPolicy" type:"boolean"`
14567
14568	// Specifies whether Amazon S3 should ignore public ACLs for buckets in this
14569	// account. Setting this element to TRUE causes Amazon S3 to ignore all public
14570	// ACLs on buckets in this account and any objects that they contain.
14571	//
14572	// Enabling this setting doesn't affect the persistence of any existing ACLs
14573	// and doesn't prevent new public ACLs from being set.
14574	//
14575	// This is not supported for Amazon S3 on Outposts.
14576	IgnorePublicAcls *bool `locationName:"IgnorePublicAcls" type:"boolean"`
14577
14578	// Specifies whether Amazon S3 should restrict public bucket policies for buckets
14579	// in this account. Setting this element to TRUE restricts access to buckets
14580	// with public policies to only Amazon Web Service principals and authorized
14581	// users within this account.
14582	//
14583	// Enabling this setting doesn't affect previously stored bucket policies, except
14584	// that public and cross-account access within any public bucket policy, including
14585	// non-public delegation to specific accounts, is blocked.
14586	//
14587	// This is not supported for Amazon S3 on Outposts.
14588	RestrictPublicBuckets *bool `locationName:"RestrictPublicBuckets" type:"boolean"`
14589}
14590
14591// String returns the string representation.
14592//
14593// API parameter values that are decorated as "sensitive" in the API will not
14594// be included in the string output. The member name will be present, but the
14595// value will be replaced with "sensitive".
14596func (s PublicAccessBlockConfiguration) String() string {
14597	return awsutil.Prettify(s)
14598}
14599
14600// GoString returns the string representation.
14601//
14602// API parameter values that are decorated as "sensitive" in the API will not
14603// be included in the string output. The member name will be present, but the
14604// value will be replaced with "sensitive".
14605func (s PublicAccessBlockConfiguration) GoString() string {
14606	return s.String()
14607}
14608
14609// SetBlockPublicAcls sets the BlockPublicAcls field's value.
14610func (s *PublicAccessBlockConfiguration) SetBlockPublicAcls(v bool) *PublicAccessBlockConfiguration {
14611	s.BlockPublicAcls = &v
14612	return s
14613}
14614
14615// SetBlockPublicPolicy sets the BlockPublicPolicy field's value.
14616func (s *PublicAccessBlockConfiguration) SetBlockPublicPolicy(v bool) *PublicAccessBlockConfiguration {
14617	s.BlockPublicPolicy = &v
14618	return s
14619}
14620
14621// SetIgnorePublicAcls sets the IgnorePublicAcls field's value.
14622func (s *PublicAccessBlockConfiguration) SetIgnorePublicAcls(v bool) *PublicAccessBlockConfiguration {
14623	s.IgnorePublicAcls = &v
14624	return s
14625}
14626
14627// SetRestrictPublicBuckets sets the RestrictPublicBuckets field's value.
14628func (s *PublicAccessBlockConfiguration) SetRestrictPublicBuckets(v bool) *PublicAccessBlockConfiguration {
14629	s.RestrictPublicBuckets = &v
14630	return s
14631}
14632
14633type PutAccessPointConfigurationForObjectLambdaInput struct {
14634	_ struct{} `locationName:"PutAccessPointConfigurationForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
14635
14636	// The account ID for the account that owns the specified Object Lambda Access
14637	// Point.
14638	//
14639	// AccountId is a required field
14640	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
14641
14642	// Object Lambda Access Point configuration document.
14643	//
14644	// Configuration is a required field
14645	Configuration *ObjectLambdaConfiguration `type:"structure" required:"true"`
14646
14647	// The name of the Object Lambda Access Point.
14648	//
14649	// Name is a required field
14650	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
14651}
14652
14653// String returns the string representation.
14654//
14655// API parameter values that are decorated as "sensitive" in the API will not
14656// be included in the string output. The member name will be present, but the
14657// value will be replaced with "sensitive".
14658func (s PutAccessPointConfigurationForObjectLambdaInput) String() string {
14659	return awsutil.Prettify(s)
14660}
14661
14662// GoString returns the string representation.
14663//
14664// API parameter values that are decorated as "sensitive" in the API will not
14665// be included in the string output. The member name will be present, but the
14666// value will be replaced with "sensitive".
14667func (s PutAccessPointConfigurationForObjectLambdaInput) GoString() string {
14668	return s.String()
14669}
14670
14671// Validate inspects the fields of the type to determine if they are valid.
14672func (s *PutAccessPointConfigurationForObjectLambdaInput) Validate() error {
14673	invalidParams := request.ErrInvalidParams{Context: "PutAccessPointConfigurationForObjectLambdaInput"}
14674	if s.AccountId == nil {
14675		invalidParams.Add(request.NewErrParamRequired("AccountId"))
14676	}
14677	if s.AccountId != nil && len(*s.AccountId) < 1 {
14678		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
14679	}
14680	if s.Configuration == nil {
14681		invalidParams.Add(request.NewErrParamRequired("Configuration"))
14682	}
14683	if s.Name == nil {
14684		invalidParams.Add(request.NewErrParamRequired("Name"))
14685	}
14686	if s.Name != nil && len(*s.Name) < 3 {
14687		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
14688	}
14689	if s.Configuration != nil {
14690		if err := s.Configuration.Validate(); err != nil {
14691			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
14692		}
14693	}
14694
14695	if invalidParams.Len() > 0 {
14696		return invalidParams
14697	}
14698	return nil
14699}
14700
14701// SetAccountId sets the AccountId field's value.
14702func (s *PutAccessPointConfigurationForObjectLambdaInput) SetAccountId(v string) *PutAccessPointConfigurationForObjectLambdaInput {
14703	s.AccountId = &v
14704	return s
14705}
14706
14707// SetConfiguration sets the Configuration field's value.
14708func (s *PutAccessPointConfigurationForObjectLambdaInput) SetConfiguration(v *ObjectLambdaConfiguration) *PutAccessPointConfigurationForObjectLambdaInput {
14709	s.Configuration = v
14710	return s
14711}
14712
14713// SetName sets the Name field's value.
14714func (s *PutAccessPointConfigurationForObjectLambdaInput) SetName(v string) *PutAccessPointConfigurationForObjectLambdaInput {
14715	s.Name = &v
14716	return s
14717}
14718
14719func (s *PutAccessPointConfigurationForObjectLambdaInput) hostLabels() map[string]string {
14720	return map[string]string{
14721		"AccountId": aws.StringValue(s.AccountId),
14722	}
14723}
14724
14725type PutAccessPointConfigurationForObjectLambdaOutput struct {
14726	_ struct{} `type:"structure"`
14727}
14728
14729// String returns the string representation.
14730//
14731// API parameter values that are decorated as "sensitive" in the API will not
14732// be included in the string output. The member name will be present, but the
14733// value will be replaced with "sensitive".
14734func (s PutAccessPointConfigurationForObjectLambdaOutput) String() string {
14735	return awsutil.Prettify(s)
14736}
14737
14738// GoString returns the string representation.
14739//
14740// API parameter values that are decorated as "sensitive" in the API will not
14741// be included in the string output. The member name will be present, but the
14742// value will be replaced with "sensitive".
14743func (s PutAccessPointConfigurationForObjectLambdaOutput) GoString() string {
14744	return s.String()
14745}
14746
14747type PutAccessPointPolicyForObjectLambdaInput struct {
14748	_ struct{} `locationName:"PutAccessPointPolicyForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
14749
14750	// The account ID for the account that owns the specified Object Lambda Access
14751	// Point.
14752	//
14753	// AccountId is a required field
14754	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
14755
14756	// The name of the Object Lambda Access Point.
14757	//
14758	// Name is a required field
14759	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
14760
14761	// Object Lambda Access Point resource policy document.
14762	//
14763	// Policy is a required field
14764	Policy *string `type:"string" required:"true"`
14765}
14766
14767// String returns the string representation.
14768//
14769// API parameter values that are decorated as "sensitive" in the API will not
14770// be included in the string output. The member name will be present, but the
14771// value will be replaced with "sensitive".
14772func (s PutAccessPointPolicyForObjectLambdaInput) String() string {
14773	return awsutil.Prettify(s)
14774}
14775
14776// GoString returns the string representation.
14777//
14778// API parameter values that are decorated as "sensitive" in the API will not
14779// be included in the string output. The member name will be present, but the
14780// value will be replaced with "sensitive".
14781func (s PutAccessPointPolicyForObjectLambdaInput) GoString() string {
14782	return s.String()
14783}
14784
14785// Validate inspects the fields of the type to determine if they are valid.
14786func (s *PutAccessPointPolicyForObjectLambdaInput) Validate() error {
14787	invalidParams := request.ErrInvalidParams{Context: "PutAccessPointPolicyForObjectLambdaInput"}
14788	if s.AccountId == nil {
14789		invalidParams.Add(request.NewErrParamRequired("AccountId"))
14790	}
14791	if s.AccountId != nil && len(*s.AccountId) < 1 {
14792		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
14793	}
14794	if s.Name == nil {
14795		invalidParams.Add(request.NewErrParamRequired("Name"))
14796	}
14797	if s.Name != nil && len(*s.Name) < 3 {
14798		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
14799	}
14800	if s.Policy == nil {
14801		invalidParams.Add(request.NewErrParamRequired("Policy"))
14802	}
14803
14804	if invalidParams.Len() > 0 {
14805		return invalidParams
14806	}
14807	return nil
14808}
14809
14810// SetAccountId sets the AccountId field's value.
14811func (s *PutAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *PutAccessPointPolicyForObjectLambdaInput {
14812	s.AccountId = &v
14813	return s
14814}
14815
14816// SetName sets the Name field's value.
14817func (s *PutAccessPointPolicyForObjectLambdaInput) SetName(v string) *PutAccessPointPolicyForObjectLambdaInput {
14818	s.Name = &v
14819	return s
14820}
14821
14822// SetPolicy sets the Policy field's value.
14823func (s *PutAccessPointPolicyForObjectLambdaInput) SetPolicy(v string) *PutAccessPointPolicyForObjectLambdaInput {
14824	s.Policy = &v
14825	return s
14826}
14827
14828func (s *PutAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string {
14829	return map[string]string{
14830		"AccountId": aws.StringValue(s.AccountId),
14831	}
14832}
14833
14834type PutAccessPointPolicyForObjectLambdaOutput struct {
14835	_ struct{} `type:"structure"`
14836}
14837
14838// String returns the string representation.
14839//
14840// API parameter values that are decorated as "sensitive" in the API will not
14841// be included in the string output. The member name will be present, but the
14842// value will be replaced with "sensitive".
14843func (s PutAccessPointPolicyForObjectLambdaOutput) String() string {
14844	return awsutil.Prettify(s)
14845}
14846
14847// GoString returns the string representation.
14848//
14849// API parameter values that are decorated as "sensitive" in the API will not
14850// be included in the string output. The member name will be present, but the
14851// value will be replaced with "sensitive".
14852func (s PutAccessPointPolicyForObjectLambdaOutput) GoString() string {
14853	return s.String()
14854}
14855
14856type PutAccessPointPolicyInput struct {
14857	_ struct{} `locationName:"PutAccessPointPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
14858
14859	// The Amazon Web Services account ID for owner of the bucket associated with
14860	// the specified access point.
14861	//
14862	// AccountId is a required field
14863	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
14864
14865	// The name of the access point that you want to associate with the specified
14866	// policy.
14867	//
14868	// For using this parameter with Amazon S3 on Outposts with the REST API, you
14869	// must specify the name and the x-amz-outpost-id as well.
14870	//
14871	// For using this parameter with S3 on Outposts with the Amazon Web Services
14872	// SDK and CLI, you must specify the ARN of the access point accessed in the
14873	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
14874	// For example, to access the access point reports-ap through outpost my-outpost
14875	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
14876	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
14877	// The value must be URL encoded.
14878	//
14879	// Name is a required field
14880	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
14881
14882	// The policy that you want to apply to the specified access point. For more
14883	// information about access point policies, see Managing data access with Amazon
14884	// S3 access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)
14885	// in the Amazon S3 User Guide.
14886	//
14887	// Policy is a required field
14888	Policy *string `type:"string" required:"true"`
14889}
14890
14891// String returns the string representation.
14892//
14893// API parameter values that are decorated as "sensitive" in the API will not
14894// be included in the string output. The member name will be present, but the
14895// value will be replaced with "sensitive".
14896func (s PutAccessPointPolicyInput) String() string {
14897	return awsutil.Prettify(s)
14898}
14899
14900// GoString returns the string representation.
14901//
14902// API parameter values that are decorated as "sensitive" in the API will not
14903// be included in the string output. The member name will be present, but the
14904// value will be replaced with "sensitive".
14905func (s PutAccessPointPolicyInput) GoString() string {
14906	return s.String()
14907}
14908
14909// Validate inspects the fields of the type to determine if they are valid.
14910func (s *PutAccessPointPolicyInput) Validate() error {
14911	invalidParams := request.ErrInvalidParams{Context: "PutAccessPointPolicyInput"}
14912	if s.AccountId == nil {
14913		invalidParams.Add(request.NewErrParamRequired("AccountId"))
14914	}
14915	if s.AccountId != nil && len(*s.AccountId) < 1 {
14916		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
14917	}
14918	if s.Name == nil {
14919		invalidParams.Add(request.NewErrParamRequired("Name"))
14920	}
14921	if s.Name != nil && len(*s.Name) < 3 {
14922		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
14923	}
14924	if s.Policy == nil {
14925		invalidParams.Add(request.NewErrParamRequired("Policy"))
14926	}
14927
14928	if invalidParams.Len() > 0 {
14929		return invalidParams
14930	}
14931	return nil
14932}
14933
14934// SetAccountId sets the AccountId field's value.
14935func (s *PutAccessPointPolicyInput) SetAccountId(v string) *PutAccessPointPolicyInput {
14936	s.AccountId = &v
14937	return s
14938}
14939
14940// SetName sets the Name field's value.
14941func (s *PutAccessPointPolicyInput) SetName(v string) *PutAccessPointPolicyInput {
14942	s.Name = &v
14943	return s
14944}
14945
14946// SetPolicy sets the Policy field's value.
14947func (s *PutAccessPointPolicyInput) SetPolicy(v string) *PutAccessPointPolicyInput {
14948	s.Policy = &v
14949	return s
14950}
14951
14952func (s *PutAccessPointPolicyInput) hostLabels() map[string]string {
14953	return map[string]string{
14954		"AccountId": aws.StringValue(s.AccountId),
14955	}
14956}
14957
14958func (s *PutAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
14959	if s.Name == nil {
14960		return nil, fmt.Errorf("member Name is nil")
14961	}
14962	return parseEndpointARN(*s.Name)
14963}
14964
14965func (s *PutAccessPointPolicyInput) hasEndpointARN() bool {
14966	if s.Name == nil {
14967		return false
14968	}
14969	return arn.IsARN(*s.Name)
14970}
14971
14972// updateArnableField updates the value of the input field that
14973// takes an ARN as an input. This method is useful to backfill
14974// the parsed resource name from ARN into the input member.
14975// It returns a pointer to a modified copy of input and an error.
14976// Note that original input is not modified.
14977func (s PutAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
14978	if s.Name == nil {
14979		return nil, fmt.Errorf("member Name is nil")
14980	}
14981	s.Name = aws.String(v)
14982	return &s, nil
14983}
14984
14985// updateAccountID returns a pointer to a modified copy of input,
14986// if account id is not provided, we update the account id in modified input
14987// if account id is provided, but doesn't match with the one in ARN, we throw an error
14988// if account id is not updated, we return nil. Note that original input is not modified.
14989func (s PutAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
14990	if s.AccountId == nil {
14991		s.AccountId = aws.String(accountId)
14992		return &s, nil
14993	} else if *s.AccountId != accountId {
14994		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
14995	}
14996	return nil, nil
14997}
14998
14999type PutAccessPointPolicyOutput struct {
15000	_ struct{} `type:"structure"`
15001}
15002
15003// String returns the string representation.
15004//
15005// API parameter values that are decorated as "sensitive" in the API will not
15006// be included in the string output. The member name will be present, but the
15007// value will be replaced with "sensitive".
15008func (s PutAccessPointPolicyOutput) String() string {
15009	return awsutil.Prettify(s)
15010}
15011
15012// GoString returns the string representation.
15013//
15014// API parameter values that are decorated as "sensitive" in the API will not
15015// be included in the string output. The member name will be present, but the
15016// value will be replaced with "sensitive".
15017func (s PutAccessPointPolicyOutput) GoString() string {
15018	return s.String()
15019}
15020
15021type PutBucketLifecycleConfigurationInput struct {
15022	_ struct{} `locationName:"PutBucketLifecycleConfigurationRequest" type:"structure" payload:"LifecycleConfiguration"`
15023
15024	// The Amazon Web Services account ID of the Outposts bucket.
15025	//
15026	// AccountId is a required field
15027	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
15028
15029	// The name of the bucket for which to set the configuration.
15030	//
15031	// Bucket is a required field
15032	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
15033
15034	// Container for lifecycle rules. You can add as many as 1,000 rules.
15035	LifecycleConfiguration *LifecycleConfiguration `locationName:"LifecycleConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
15036}
15037
15038// String returns the string representation.
15039//
15040// API parameter values that are decorated as "sensitive" in the API will not
15041// be included in the string output. The member name will be present, but the
15042// value will be replaced with "sensitive".
15043func (s PutBucketLifecycleConfigurationInput) String() string {
15044	return awsutil.Prettify(s)
15045}
15046
15047// GoString returns the string representation.
15048//
15049// API parameter values that are decorated as "sensitive" in the API will not
15050// be included in the string output. The member name will be present, but the
15051// value will be replaced with "sensitive".
15052func (s PutBucketLifecycleConfigurationInput) GoString() string {
15053	return s.String()
15054}
15055
15056// Validate inspects the fields of the type to determine if they are valid.
15057func (s *PutBucketLifecycleConfigurationInput) Validate() error {
15058	invalidParams := request.ErrInvalidParams{Context: "PutBucketLifecycleConfigurationInput"}
15059	if s.AccountId == nil {
15060		invalidParams.Add(request.NewErrParamRequired("AccountId"))
15061	}
15062	if s.AccountId != nil && len(*s.AccountId) < 1 {
15063		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
15064	}
15065	if s.Bucket == nil {
15066		invalidParams.Add(request.NewErrParamRequired("Bucket"))
15067	}
15068	if s.Bucket != nil && len(*s.Bucket) < 3 {
15069		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
15070	}
15071	if s.LifecycleConfiguration != nil {
15072		if err := s.LifecycleConfiguration.Validate(); err != nil {
15073			invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams))
15074		}
15075	}
15076
15077	if invalidParams.Len() > 0 {
15078		return invalidParams
15079	}
15080	return nil
15081}
15082
15083// SetAccountId sets the AccountId field's value.
15084func (s *PutBucketLifecycleConfigurationInput) SetAccountId(v string) *PutBucketLifecycleConfigurationInput {
15085	s.AccountId = &v
15086	return s
15087}
15088
15089// SetBucket sets the Bucket field's value.
15090func (s *PutBucketLifecycleConfigurationInput) SetBucket(v string) *PutBucketLifecycleConfigurationInput {
15091	s.Bucket = &v
15092	return s
15093}
15094
15095// SetLifecycleConfiguration sets the LifecycleConfiguration field's value.
15096func (s *PutBucketLifecycleConfigurationInput) SetLifecycleConfiguration(v *LifecycleConfiguration) *PutBucketLifecycleConfigurationInput {
15097	s.LifecycleConfiguration = v
15098	return s
15099}
15100
15101func (s *PutBucketLifecycleConfigurationInput) hostLabels() map[string]string {
15102	return map[string]string{
15103		"AccountId": aws.StringValue(s.AccountId),
15104	}
15105}
15106
15107func (s *PutBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
15108	if s.Bucket == nil {
15109		return nil, fmt.Errorf("member Bucket is nil")
15110	}
15111	return parseEndpointARN(*s.Bucket)
15112}
15113
15114func (s *PutBucketLifecycleConfigurationInput) hasEndpointARN() bool {
15115	if s.Bucket == nil {
15116		return false
15117	}
15118	return arn.IsARN(*s.Bucket)
15119}
15120
15121// updateArnableField updates the value of the input field that
15122// takes an ARN as an input. This method is useful to backfill
15123// the parsed resource name from ARN into the input member.
15124// It returns a pointer to a modified copy of input and an error.
15125// Note that original input is not modified.
15126func (s PutBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
15127	if s.Bucket == nil {
15128		return nil, fmt.Errorf("member Bucket is nil")
15129	}
15130	s.Bucket = aws.String(v)
15131	return &s, nil
15132}
15133
15134// updateAccountID returns a pointer to a modified copy of input,
15135// if account id is not provided, we update the account id in modified input
15136// if account id is provided, but doesn't match with the one in ARN, we throw an error
15137// if account id is not updated, we return nil. Note that original input is not modified.
15138func (s PutBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
15139	if s.AccountId == nil {
15140		s.AccountId = aws.String(accountId)
15141		return &s, nil
15142	} else if *s.AccountId != accountId {
15143		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
15144	}
15145	return nil, nil
15146}
15147
15148type PutBucketLifecycleConfigurationOutput struct {
15149	_ struct{} `type:"structure"`
15150}
15151
15152// String returns the string representation.
15153//
15154// API parameter values that are decorated as "sensitive" in the API will not
15155// be included in the string output. The member name will be present, but the
15156// value will be replaced with "sensitive".
15157func (s PutBucketLifecycleConfigurationOutput) String() string {
15158	return awsutil.Prettify(s)
15159}
15160
15161// GoString returns the string representation.
15162//
15163// API parameter values that are decorated as "sensitive" in the API will not
15164// be included in the string output. The member name will be present, but the
15165// value will be replaced with "sensitive".
15166func (s PutBucketLifecycleConfigurationOutput) GoString() string {
15167	return s.String()
15168}
15169
15170type PutBucketPolicyInput struct {
15171	_ struct{} `locationName:"PutBucketPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
15172
15173	// The Amazon Web Services account ID of the Outposts bucket.
15174	//
15175	// AccountId is a required field
15176	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
15177
15178	// Specifies the bucket.
15179	//
15180	// For using this parameter with Amazon S3 on Outposts with the REST API, you
15181	// must specify the name and the x-amz-outpost-id as well.
15182	//
15183	// For using this parameter with S3 on Outposts with the Amazon Web Services
15184	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
15185	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
15186	// For example, to access the bucket reports through outpost my-outpost owned
15187	// 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.
15188	// The value must be URL encoded.
15189	//
15190	// Bucket is a required field
15191	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
15192
15193	// Set this parameter to true to confirm that you want to remove your permissions
15194	// to change this bucket policy in the future.
15195	//
15196	// This is not supported by Amazon S3 on Outposts buckets.
15197	ConfirmRemoveSelfBucketAccess *bool `location:"header" locationName:"x-amz-confirm-remove-self-bucket-access" type:"boolean"`
15198
15199	// The bucket policy as a JSON document.
15200	//
15201	// Policy is a required field
15202	Policy *string `type:"string" required:"true"`
15203}
15204
15205// String returns the string representation.
15206//
15207// API parameter values that are decorated as "sensitive" in the API will not
15208// be included in the string output. The member name will be present, but the
15209// value will be replaced with "sensitive".
15210func (s PutBucketPolicyInput) String() string {
15211	return awsutil.Prettify(s)
15212}
15213
15214// GoString returns the string representation.
15215//
15216// API parameter values that are decorated as "sensitive" in the API will not
15217// be included in the string output. The member name will be present, but the
15218// value will be replaced with "sensitive".
15219func (s PutBucketPolicyInput) GoString() string {
15220	return s.String()
15221}
15222
15223// Validate inspects the fields of the type to determine if they are valid.
15224func (s *PutBucketPolicyInput) Validate() error {
15225	invalidParams := request.ErrInvalidParams{Context: "PutBucketPolicyInput"}
15226	if s.AccountId == nil {
15227		invalidParams.Add(request.NewErrParamRequired("AccountId"))
15228	}
15229	if s.AccountId != nil && len(*s.AccountId) < 1 {
15230		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
15231	}
15232	if s.Bucket == nil {
15233		invalidParams.Add(request.NewErrParamRequired("Bucket"))
15234	}
15235	if s.Bucket != nil && len(*s.Bucket) < 3 {
15236		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
15237	}
15238	if s.Policy == nil {
15239		invalidParams.Add(request.NewErrParamRequired("Policy"))
15240	}
15241
15242	if invalidParams.Len() > 0 {
15243		return invalidParams
15244	}
15245	return nil
15246}
15247
15248// SetAccountId sets the AccountId field's value.
15249func (s *PutBucketPolicyInput) SetAccountId(v string) *PutBucketPolicyInput {
15250	s.AccountId = &v
15251	return s
15252}
15253
15254// SetBucket sets the Bucket field's value.
15255func (s *PutBucketPolicyInput) SetBucket(v string) *PutBucketPolicyInput {
15256	s.Bucket = &v
15257	return s
15258}
15259
15260// SetConfirmRemoveSelfBucketAccess sets the ConfirmRemoveSelfBucketAccess field's value.
15261func (s *PutBucketPolicyInput) SetConfirmRemoveSelfBucketAccess(v bool) *PutBucketPolicyInput {
15262	s.ConfirmRemoveSelfBucketAccess = &v
15263	return s
15264}
15265
15266// SetPolicy sets the Policy field's value.
15267func (s *PutBucketPolicyInput) SetPolicy(v string) *PutBucketPolicyInput {
15268	s.Policy = &v
15269	return s
15270}
15271
15272func (s *PutBucketPolicyInput) hostLabels() map[string]string {
15273	return map[string]string{
15274		"AccountId": aws.StringValue(s.AccountId),
15275	}
15276}
15277
15278func (s *PutBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
15279	if s.Bucket == nil {
15280		return nil, fmt.Errorf("member Bucket is nil")
15281	}
15282	return parseEndpointARN(*s.Bucket)
15283}
15284
15285func (s *PutBucketPolicyInput) hasEndpointARN() bool {
15286	if s.Bucket == nil {
15287		return false
15288	}
15289	return arn.IsARN(*s.Bucket)
15290}
15291
15292// updateArnableField updates the value of the input field that
15293// takes an ARN as an input. This method is useful to backfill
15294// the parsed resource name from ARN into the input member.
15295// It returns a pointer to a modified copy of input and an error.
15296// Note that original input is not modified.
15297func (s PutBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
15298	if s.Bucket == nil {
15299		return nil, fmt.Errorf("member Bucket is nil")
15300	}
15301	s.Bucket = aws.String(v)
15302	return &s, nil
15303}
15304
15305// updateAccountID returns a pointer to a modified copy of input,
15306// if account id is not provided, we update the account id in modified input
15307// if account id is provided, but doesn't match with the one in ARN, we throw an error
15308// if account id is not updated, we return nil. Note that original input is not modified.
15309func (s PutBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
15310	if s.AccountId == nil {
15311		s.AccountId = aws.String(accountId)
15312		return &s, nil
15313	} else if *s.AccountId != accountId {
15314		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
15315	}
15316	return nil, nil
15317}
15318
15319type PutBucketPolicyOutput struct {
15320	_ struct{} `type:"structure"`
15321}
15322
15323// String returns the string representation.
15324//
15325// API parameter values that are decorated as "sensitive" in the API will not
15326// be included in the string output. The member name will be present, but the
15327// value will be replaced with "sensitive".
15328func (s PutBucketPolicyOutput) String() string {
15329	return awsutil.Prettify(s)
15330}
15331
15332// GoString returns the string representation.
15333//
15334// API parameter values that are decorated as "sensitive" in the API will not
15335// be included in the string output. The member name will be present, but the
15336// value will be replaced with "sensitive".
15337func (s PutBucketPolicyOutput) GoString() string {
15338	return s.String()
15339}
15340
15341type PutBucketTaggingInput struct {
15342	_ struct{} `locationName:"PutBucketTaggingRequest" type:"structure" payload:"Tagging"`
15343
15344	// The Amazon Web Services account ID of the Outposts bucket.
15345	//
15346	// AccountId is a required field
15347	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
15348
15349	// The Amazon Resource Name (ARN) of the bucket.
15350	//
15351	// For using this parameter with Amazon S3 on Outposts with the REST API, you
15352	// must specify the name and the x-amz-outpost-id as well.
15353	//
15354	// For using this parameter with S3 on Outposts with the Amazon Web Services
15355	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
15356	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
15357	// For example, to access the bucket reports through outpost my-outpost owned
15358	// 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.
15359	// The value must be URL encoded.
15360	//
15361	// Bucket is a required field
15362	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
15363
15364	// Tagging is a required field
15365	Tagging *Tagging `locationName:"Tagging" type:"structure" required:"true" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
15366}
15367
15368// String returns the string representation.
15369//
15370// API parameter values that are decorated as "sensitive" in the API will not
15371// be included in the string output. The member name will be present, but the
15372// value will be replaced with "sensitive".
15373func (s PutBucketTaggingInput) String() string {
15374	return awsutil.Prettify(s)
15375}
15376
15377// GoString returns the string representation.
15378//
15379// API parameter values that are decorated as "sensitive" in the API will not
15380// be included in the string output. The member name will be present, but the
15381// value will be replaced with "sensitive".
15382func (s PutBucketTaggingInput) GoString() string {
15383	return s.String()
15384}
15385
15386// Validate inspects the fields of the type to determine if they are valid.
15387func (s *PutBucketTaggingInput) Validate() error {
15388	invalidParams := request.ErrInvalidParams{Context: "PutBucketTaggingInput"}
15389	if s.AccountId == nil {
15390		invalidParams.Add(request.NewErrParamRequired("AccountId"))
15391	}
15392	if s.AccountId != nil && len(*s.AccountId) < 1 {
15393		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
15394	}
15395	if s.Bucket == nil {
15396		invalidParams.Add(request.NewErrParamRequired("Bucket"))
15397	}
15398	if s.Bucket != nil && len(*s.Bucket) < 3 {
15399		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
15400	}
15401	if s.Tagging == nil {
15402		invalidParams.Add(request.NewErrParamRequired("Tagging"))
15403	}
15404	if s.Tagging != nil {
15405		if err := s.Tagging.Validate(); err != nil {
15406			invalidParams.AddNested("Tagging", err.(request.ErrInvalidParams))
15407		}
15408	}
15409
15410	if invalidParams.Len() > 0 {
15411		return invalidParams
15412	}
15413	return nil
15414}
15415
15416// SetAccountId sets the AccountId field's value.
15417func (s *PutBucketTaggingInput) SetAccountId(v string) *PutBucketTaggingInput {
15418	s.AccountId = &v
15419	return s
15420}
15421
15422// SetBucket sets the Bucket field's value.
15423func (s *PutBucketTaggingInput) SetBucket(v string) *PutBucketTaggingInput {
15424	s.Bucket = &v
15425	return s
15426}
15427
15428// SetTagging sets the Tagging field's value.
15429func (s *PutBucketTaggingInput) SetTagging(v *Tagging) *PutBucketTaggingInput {
15430	s.Tagging = v
15431	return s
15432}
15433
15434func (s *PutBucketTaggingInput) hostLabels() map[string]string {
15435	return map[string]string{
15436		"AccountId": aws.StringValue(s.AccountId),
15437	}
15438}
15439
15440func (s *PutBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
15441	if s.Bucket == nil {
15442		return nil, fmt.Errorf("member Bucket is nil")
15443	}
15444	return parseEndpointARN(*s.Bucket)
15445}
15446
15447func (s *PutBucketTaggingInput) hasEndpointARN() bool {
15448	if s.Bucket == nil {
15449		return false
15450	}
15451	return arn.IsARN(*s.Bucket)
15452}
15453
15454// updateArnableField updates the value of the input field that
15455// takes an ARN as an input. This method is useful to backfill
15456// the parsed resource name from ARN into the input member.
15457// It returns a pointer to a modified copy of input and an error.
15458// Note that original input is not modified.
15459func (s PutBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
15460	if s.Bucket == nil {
15461		return nil, fmt.Errorf("member Bucket is nil")
15462	}
15463	s.Bucket = aws.String(v)
15464	return &s, nil
15465}
15466
15467// updateAccountID returns a pointer to a modified copy of input,
15468// if account id is not provided, we update the account id in modified input
15469// if account id is provided, but doesn't match with the one in ARN, we throw an error
15470// if account id is not updated, we return nil. Note that original input is not modified.
15471func (s PutBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
15472	if s.AccountId == nil {
15473		s.AccountId = aws.String(accountId)
15474		return &s, nil
15475	} else if *s.AccountId != accountId {
15476		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
15477	}
15478	return nil, nil
15479}
15480
15481type PutBucketTaggingOutput struct {
15482	_ struct{} `type:"structure"`
15483}
15484
15485// String returns the string representation.
15486//
15487// API parameter values that are decorated as "sensitive" in the API will not
15488// be included in the string output. The member name will be present, but the
15489// value will be replaced with "sensitive".
15490func (s PutBucketTaggingOutput) String() string {
15491	return awsutil.Prettify(s)
15492}
15493
15494// GoString returns the string representation.
15495//
15496// API parameter values that are decorated as "sensitive" in the API will not
15497// be included in the string output. The member name will be present, but the
15498// value will be replaced with "sensitive".
15499func (s PutBucketTaggingOutput) GoString() string {
15500	return s.String()
15501}
15502
15503type PutJobTaggingInput struct {
15504	_ struct{} `locationName:"PutJobTaggingRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
15505
15506	// The Amazon Web Services account ID associated with the S3 Batch Operations
15507	// job.
15508	//
15509	// AccountId is a required field
15510	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
15511
15512	// The ID for the S3 Batch Operations job whose tags you want to replace.
15513	//
15514	// JobId is a required field
15515	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
15516
15517	// The set of tags to associate with the S3 Batch Operations job.
15518	//
15519	// Tags is a required field
15520	Tags []*S3Tag `type:"list" required:"true"`
15521}
15522
15523// String returns the string representation.
15524//
15525// API parameter values that are decorated as "sensitive" in the API will not
15526// be included in the string output. The member name will be present, but the
15527// value will be replaced with "sensitive".
15528func (s PutJobTaggingInput) String() string {
15529	return awsutil.Prettify(s)
15530}
15531
15532// GoString returns the string representation.
15533//
15534// API parameter values that are decorated as "sensitive" in the API will not
15535// be included in the string output. The member name will be present, but the
15536// value will be replaced with "sensitive".
15537func (s PutJobTaggingInput) GoString() string {
15538	return s.String()
15539}
15540
15541// Validate inspects the fields of the type to determine if they are valid.
15542func (s *PutJobTaggingInput) Validate() error {
15543	invalidParams := request.ErrInvalidParams{Context: "PutJobTaggingInput"}
15544	if s.AccountId == nil {
15545		invalidParams.Add(request.NewErrParamRequired("AccountId"))
15546	}
15547	if s.AccountId != nil && len(*s.AccountId) < 1 {
15548		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
15549	}
15550	if s.JobId == nil {
15551		invalidParams.Add(request.NewErrParamRequired("JobId"))
15552	}
15553	if s.JobId != nil && len(*s.JobId) < 5 {
15554		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
15555	}
15556	if s.Tags == nil {
15557		invalidParams.Add(request.NewErrParamRequired("Tags"))
15558	}
15559	if s.Tags != nil {
15560		for i, v := range s.Tags {
15561			if v == nil {
15562				continue
15563			}
15564			if err := v.Validate(); err != nil {
15565				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
15566			}
15567		}
15568	}
15569
15570	if invalidParams.Len() > 0 {
15571		return invalidParams
15572	}
15573	return nil
15574}
15575
15576// SetAccountId sets the AccountId field's value.
15577func (s *PutJobTaggingInput) SetAccountId(v string) *PutJobTaggingInput {
15578	s.AccountId = &v
15579	return s
15580}
15581
15582// SetJobId sets the JobId field's value.
15583func (s *PutJobTaggingInput) SetJobId(v string) *PutJobTaggingInput {
15584	s.JobId = &v
15585	return s
15586}
15587
15588// SetTags sets the Tags field's value.
15589func (s *PutJobTaggingInput) SetTags(v []*S3Tag) *PutJobTaggingInput {
15590	s.Tags = v
15591	return s
15592}
15593
15594func (s *PutJobTaggingInput) hostLabels() map[string]string {
15595	return map[string]string{
15596		"AccountId": aws.StringValue(s.AccountId),
15597	}
15598}
15599
15600type PutJobTaggingOutput struct {
15601	_ struct{} `type:"structure"`
15602}
15603
15604// String returns the string representation.
15605//
15606// API parameter values that are decorated as "sensitive" in the API will not
15607// be included in the string output. The member name will be present, but the
15608// value will be replaced with "sensitive".
15609func (s PutJobTaggingOutput) String() string {
15610	return awsutil.Prettify(s)
15611}
15612
15613// GoString returns the string representation.
15614//
15615// API parameter values that are decorated as "sensitive" in the API will not
15616// be included in the string output. The member name will be present, but the
15617// value will be replaced with "sensitive".
15618func (s PutJobTaggingOutput) GoString() string {
15619	return s.String()
15620}
15621
15622type PutMultiRegionAccessPointPolicyInput struct {
15623	_ struct{} `locationName:"PutMultiRegionAccessPointPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
15624
15625	// The Amazon Web Services account ID for the owner of the Multi-Region Access
15626	// Point.
15627	//
15628	// AccountId is a required field
15629	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
15630
15631	// An idempotency token used to identify the request and guarantee that requests
15632	// are unique.
15633	ClientToken *string `type:"string" idempotencyToken:"true"`
15634
15635	// A container element containing the details of the policy for the Multi-Region
15636	// Access Point.
15637	//
15638	// Details is a required field
15639	Details *PutMultiRegionAccessPointPolicyInput_ `type:"structure" required:"true"`
15640}
15641
15642// String returns the string representation.
15643//
15644// API parameter values that are decorated as "sensitive" in the API will not
15645// be included in the string output. The member name will be present, but the
15646// value will be replaced with "sensitive".
15647func (s PutMultiRegionAccessPointPolicyInput) String() string {
15648	return awsutil.Prettify(s)
15649}
15650
15651// GoString returns the string representation.
15652//
15653// API parameter values that are decorated as "sensitive" in the API will not
15654// be included in the string output. The member name will be present, but the
15655// value will be replaced with "sensitive".
15656func (s PutMultiRegionAccessPointPolicyInput) GoString() string {
15657	return s.String()
15658}
15659
15660// Validate inspects the fields of the type to determine if they are valid.
15661func (s *PutMultiRegionAccessPointPolicyInput) Validate() error {
15662	invalidParams := request.ErrInvalidParams{Context: "PutMultiRegionAccessPointPolicyInput"}
15663	if s.AccountId == nil {
15664		invalidParams.Add(request.NewErrParamRequired("AccountId"))
15665	}
15666	if s.AccountId != nil && len(*s.AccountId) < 1 {
15667		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
15668	}
15669	if s.Details == nil {
15670		invalidParams.Add(request.NewErrParamRequired("Details"))
15671	}
15672	if s.Details != nil {
15673		if err := s.Details.Validate(); err != nil {
15674			invalidParams.AddNested("Details", err.(request.ErrInvalidParams))
15675		}
15676	}
15677
15678	if invalidParams.Len() > 0 {
15679		return invalidParams
15680	}
15681	return nil
15682}
15683
15684// SetAccountId sets the AccountId field's value.
15685func (s *PutMultiRegionAccessPointPolicyInput) SetAccountId(v string) *PutMultiRegionAccessPointPolicyInput {
15686	s.AccountId = &v
15687	return s
15688}
15689
15690// SetClientToken sets the ClientToken field's value.
15691func (s *PutMultiRegionAccessPointPolicyInput) SetClientToken(v string) *PutMultiRegionAccessPointPolicyInput {
15692	s.ClientToken = &v
15693	return s
15694}
15695
15696// SetDetails sets the Details field's value.
15697func (s *PutMultiRegionAccessPointPolicyInput) SetDetails(v *PutMultiRegionAccessPointPolicyInput_) *PutMultiRegionAccessPointPolicyInput {
15698	s.Details = v
15699	return s
15700}
15701
15702func (s *PutMultiRegionAccessPointPolicyInput) hostLabels() map[string]string {
15703	return map[string]string{
15704		"AccountId": aws.StringValue(s.AccountId),
15705	}
15706}
15707
15708// A container for the information associated with a PutMultiRegionAccessPoint
15709// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPoint.html)
15710// request.
15711type PutMultiRegionAccessPointPolicyInput_ struct {
15712	_ struct{} `type:"structure"`
15713
15714	// The name of the Multi-Region Access Point associated with the request.
15715	//
15716	// Name is a required field
15717	Name *string `type:"string" required:"true"`
15718
15719	// The policy details for the PutMultiRegionAccessPoint request.
15720	//
15721	// Policy is a required field
15722	Policy *string `type:"string" required:"true"`
15723}
15724
15725// String returns the string representation.
15726//
15727// API parameter values that are decorated as "sensitive" in the API will not
15728// be included in the string output. The member name will be present, but the
15729// value will be replaced with "sensitive".
15730func (s PutMultiRegionAccessPointPolicyInput_) String() string {
15731	return awsutil.Prettify(s)
15732}
15733
15734// GoString returns the string representation.
15735//
15736// API parameter values that are decorated as "sensitive" in the API will not
15737// be included in the string output. The member name will be present, but the
15738// value will be replaced with "sensitive".
15739func (s PutMultiRegionAccessPointPolicyInput_) GoString() string {
15740	return s.String()
15741}
15742
15743// Validate inspects the fields of the type to determine if they are valid.
15744func (s *PutMultiRegionAccessPointPolicyInput_) Validate() error {
15745	invalidParams := request.ErrInvalidParams{Context: "PutMultiRegionAccessPointPolicyInput_"}
15746	if s.Name == nil {
15747		invalidParams.Add(request.NewErrParamRequired("Name"))
15748	}
15749	if s.Policy == nil {
15750		invalidParams.Add(request.NewErrParamRequired("Policy"))
15751	}
15752
15753	if invalidParams.Len() > 0 {
15754		return invalidParams
15755	}
15756	return nil
15757}
15758
15759// SetName sets the Name field's value.
15760func (s *PutMultiRegionAccessPointPolicyInput_) SetName(v string) *PutMultiRegionAccessPointPolicyInput_ {
15761	s.Name = &v
15762	return s
15763}
15764
15765// SetPolicy sets the Policy field's value.
15766func (s *PutMultiRegionAccessPointPolicyInput_) SetPolicy(v string) *PutMultiRegionAccessPointPolicyInput_ {
15767	s.Policy = &v
15768	return s
15769}
15770
15771type PutMultiRegionAccessPointPolicyOutput struct {
15772	_ struct{} `type:"structure"`
15773
15774	// The request token associated with the request. You can use this token with
15775	// DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
15776	// to determine the status of asynchronous requests.
15777	RequestTokenARN *string `min:"1" type:"string"`
15778}
15779
15780// String returns the string representation.
15781//
15782// API parameter values that are decorated as "sensitive" in the API will not
15783// be included in the string output. The member name will be present, but the
15784// value will be replaced with "sensitive".
15785func (s PutMultiRegionAccessPointPolicyOutput) String() string {
15786	return awsutil.Prettify(s)
15787}
15788
15789// GoString returns the string representation.
15790//
15791// API parameter values that are decorated as "sensitive" in the API will not
15792// be included in the string output. The member name will be present, but the
15793// value will be replaced with "sensitive".
15794func (s PutMultiRegionAccessPointPolicyOutput) GoString() string {
15795	return s.String()
15796}
15797
15798// SetRequestTokenARN sets the RequestTokenARN field's value.
15799func (s *PutMultiRegionAccessPointPolicyOutput) SetRequestTokenARN(v string) *PutMultiRegionAccessPointPolicyOutput {
15800	s.RequestTokenARN = &v
15801	return s
15802}
15803
15804type PutPublicAccessBlockInput struct {
15805	_ struct{} `locationName:"PutPublicAccessBlockRequest" type:"structure" payload:"PublicAccessBlockConfiguration"`
15806
15807	// The account ID for the Amazon Web Services account whose PublicAccessBlock
15808	// configuration you want to set.
15809	//
15810	// AccountId is a required field
15811	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
15812
15813	// The PublicAccessBlock configuration that you want to apply to the specified
15814	// Amazon Web Services account.
15815	//
15816	// PublicAccessBlockConfiguration is a required field
15817	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `locationName:"PublicAccessBlockConfiguration" type:"structure" required:"true" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
15818}
15819
15820// String returns the string representation.
15821//
15822// API parameter values that are decorated as "sensitive" in the API will not
15823// be included in the string output. The member name will be present, but the
15824// value will be replaced with "sensitive".
15825func (s PutPublicAccessBlockInput) String() string {
15826	return awsutil.Prettify(s)
15827}
15828
15829// GoString returns the string representation.
15830//
15831// API parameter values that are decorated as "sensitive" in the API will not
15832// be included in the string output. The member name will be present, but the
15833// value will be replaced with "sensitive".
15834func (s PutPublicAccessBlockInput) GoString() string {
15835	return s.String()
15836}
15837
15838// Validate inspects the fields of the type to determine if they are valid.
15839func (s *PutPublicAccessBlockInput) Validate() error {
15840	invalidParams := request.ErrInvalidParams{Context: "PutPublicAccessBlockInput"}
15841	if s.AccountId == nil {
15842		invalidParams.Add(request.NewErrParamRequired("AccountId"))
15843	}
15844	if s.AccountId != nil && len(*s.AccountId) < 1 {
15845		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
15846	}
15847	if s.PublicAccessBlockConfiguration == nil {
15848		invalidParams.Add(request.NewErrParamRequired("PublicAccessBlockConfiguration"))
15849	}
15850
15851	if invalidParams.Len() > 0 {
15852		return invalidParams
15853	}
15854	return nil
15855}
15856
15857// SetAccountId sets the AccountId field's value.
15858func (s *PutPublicAccessBlockInput) SetAccountId(v string) *PutPublicAccessBlockInput {
15859	s.AccountId = &v
15860	return s
15861}
15862
15863// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
15864func (s *PutPublicAccessBlockInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *PutPublicAccessBlockInput {
15865	s.PublicAccessBlockConfiguration = v
15866	return s
15867}
15868
15869func (s *PutPublicAccessBlockInput) hostLabels() map[string]string {
15870	return map[string]string{
15871		"AccountId": aws.StringValue(s.AccountId),
15872	}
15873}
15874
15875type PutPublicAccessBlockOutput struct {
15876	_ struct{} `type:"structure"`
15877}
15878
15879// String returns the string representation.
15880//
15881// API parameter values that are decorated as "sensitive" in the API will not
15882// be included in the string output. The member name will be present, but the
15883// value will be replaced with "sensitive".
15884func (s PutPublicAccessBlockOutput) String() string {
15885	return awsutil.Prettify(s)
15886}
15887
15888// GoString returns the string representation.
15889//
15890// API parameter values that are decorated as "sensitive" in the API will not
15891// be included in the string output. The member name will be present, but the
15892// value will be replaced with "sensitive".
15893func (s PutPublicAccessBlockOutput) GoString() string {
15894	return s.String()
15895}
15896
15897type PutStorageLensConfigurationInput struct {
15898	_ struct{} `locationName:"PutStorageLensConfigurationRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
15899
15900	// The account ID of the requester.
15901	//
15902	// AccountId is a required field
15903	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
15904
15905	// The ID of the S3 Storage Lens configuration.
15906	//
15907	// ConfigId is a required field
15908	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
15909
15910	// The S3 Storage Lens configuration.
15911	//
15912	// StorageLensConfiguration is a required field
15913	StorageLensConfiguration *StorageLensConfiguration `type:"structure" required:"true"`
15914
15915	// The tag set of the S3 Storage Lens configuration.
15916	//
15917	// You can set up to a maximum of 50 tags.
15918	Tags []*StorageLensTag `locationNameList:"Tag" type:"list"`
15919}
15920
15921// String returns the string representation.
15922//
15923// API parameter values that are decorated as "sensitive" in the API will not
15924// be included in the string output. The member name will be present, but the
15925// value will be replaced with "sensitive".
15926func (s PutStorageLensConfigurationInput) String() string {
15927	return awsutil.Prettify(s)
15928}
15929
15930// GoString returns the string representation.
15931//
15932// API parameter values that are decorated as "sensitive" in the API will not
15933// be included in the string output. The member name will be present, but the
15934// value will be replaced with "sensitive".
15935func (s PutStorageLensConfigurationInput) GoString() string {
15936	return s.String()
15937}
15938
15939// Validate inspects the fields of the type to determine if they are valid.
15940func (s *PutStorageLensConfigurationInput) Validate() error {
15941	invalidParams := request.ErrInvalidParams{Context: "PutStorageLensConfigurationInput"}
15942	if s.AccountId == nil {
15943		invalidParams.Add(request.NewErrParamRequired("AccountId"))
15944	}
15945	if s.AccountId != nil && len(*s.AccountId) < 1 {
15946		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
15947	}
15948	if s.ConfigId == nil {
15949		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
15950	}
15951	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
15952		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
15953	}
15954	if s.StorageLensConfiguration == nil {
15955		invalidParams.Add(request.NewErrParamRequired("StorageLensConfiguration"))
15956	}
15957	if s.StorageLensConfiguration != nil {
15958		if err := s.StorageLensConfiguration.Validate(); err != nil {
15959			invalidParams.AddNested("StorageLensConfiguration", err.(request.ErrInvalidParams))
15960		}
15961	}
15962	if s.Tags != nil {
15963		for i, v := range s.Tags {
15964			if v == nil {
15965				continue
15966			}
15967			if err := v.Validate(); err != nil {
15968				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
15969			}
15970		}
15971	}
15972
15973	if invalidParams.Len() > 0 {
15974		return invalidParams
15975	}
15976	return nil
15977}
15978
15979// SetAccountId sets the AccountId field's value.
15980func (s *PutStorageLensConfigurationInput) SetAccountId(v string) *PutStorageLensConfigurationInput {
15981	s.AccountId = &v
15982	return s
15983}
15984
15985// SetConfigId sets the ConfigId field's value.
15986func (s *PutStorageLensConfigurationInput) SetConfigId(v string) *PutStorageLensConfigurationInput {
15987	s.ConfigId = &v
15988	return s
15989}
15990
15991// SetStorageLensConfiguration sets the StorageLensConfiguration field's value.
15992func (s *PutStorageLensConfigurationInput) SetStorageLensConfiguration(v *StorageLensConfiguration) *PutStorageLensConfigurationInput {
15993	s.StorageLensConfiguration = v
15994	return s
15995}
15996
15997// SetTags sets the Tags field's value.
15998func (s *PutStorageLensConfigurationInput) SetTags(v []*StorageLensTag) *PutStorageLensConfigurationInput {
15999	s.Tags = v
16000	return s
16001}
16002
16003func (s *PutStorageLensConfigurationInput) hostLabels() map[string]string {
16004	return map[string]string{
16005		"AccountId": aws.StringValue(s.AccountId),
16006	}
16007}
16008
16009type PutStorageLensConfigurationOutput struct {
16010	_ struct{} `type:"structure"`
16011}
16012
16013// String returns the string representation.
16014//
16015// API parameter values that are decorated as "sensitive" in the API will not
16016// be included in the string output. The member name will be present, but the
16017// value will be replaced with "sensitive".
16018func (s PutStorageLensConfigurationOutput) String() string {
16019	return awsutil.Prettify(s)
16020}
16021
16022// GoString returns the string representation.
16023//
16024// API parameter values that are decorated as "sensitive" in the API will not
16025// be included in the string output. The member name will be present, but the
16026// value will be replaced with "sensitive".
16027func (s PutStorageLensConfigurationOutput) GoString() string {
16028	return s.String()
16029}
16030
16031type PutStorageLensConfigurationTaggingInput struct {
16032	_ struct{} `locationName:"PutStorageLensConfigurationTaggingRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
16033
16034	// The account ID of the requester.
16035	//
16036	// AccountId is a required field
16037	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
16038
16039	// The ID of the S3 Storage Lens configuration.
16040	//
16041	// ConfigId is a required field
16042	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
16043
16044	// The tag set of the S3 Storage Lens configuration.
16045	//
16046	// You can set up to a maximum of 50 tags.
16047	//
16048	// Tags is a required field
16049	Tags []*StorageLensTag `locationNameList:"Tag" type:"list" required:"true"`
16050}
16051
16052// String returns the string representation.
16053//
16054// API parameter values that are decorated as "sensitive" in the API will not
16055// be included in the string output. The member name will be present, but the
16056// value will be replaced with "sensitive".
16057func (s PutStorageLensConfigurationTaggingInput) String() string {
16058	return awsutil.Prettify(s)
16059}
16060
16061// GoString returns the string representation.
16062//
16063// API parameter values that are decorated as "sensitive" in the API will not
16064// be included in the string output. The member name will be present, but the
16065// value will be replaced with "sensitive".
16066func (s PutStorageLensConfigurationTaggingInput) GoString() string {
16067	return s.String()
16068}
16069
16070// Validate inspects the fields of the type to determine if they are valid.
16071func (s *PutStorageLensConfigurationTaggingInput) Validate() error {
16072	invalidParams := request.ErrInvalidParams{Context: "PutStorageLensConfigurationTaggingInput"}
16073	if s.AccountId == nil {
16074		invalidParams.Add(request.NewErrParamRequired("AccountId"))
16075	}
16076	if s.AccountId != nil && len(*s.AccountId) < 1 {
16077		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
16078	}
16079	if s.ConfigId == nil {
16080		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
16081	}
16082	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
16083		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
16084	}
16085	if s.Tags == nil {
16086		invalidParams.Add(request.NewErrParamRequired("Tags"))
16087	}
16088	if s.Tags != nil {
16089		for i, v := range s.Tags {
16090			if v == nil {
16091				continue
16092			}
16093			if err := v.Validate(); err != nil {
16094				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
16095			}
16096		}
16097	}
16098
16099	if invalidParams.Len() > 0 {
16100		return invalidParams
16101	}
16102	return nil
16103}
16104
16105// SetAccountId sets the AccountId field's value.
16106func (s *PutStorageLensConfigurationTaggingInput) SetAccountId(v string) *PutStorageLensConfigurationTaggingInput {
16107	s.AccountId = &v
16108	return s
16109}
16110
16111// SetConfigId sets the ConfigId field's value.
16112func (s *PutStorageLensConfigurationTaggingInput) SetConfigId(v string) *PutStorageLensConfigurationTaggingInput {
16113	s.ConfigId = &v
16114	return s
16115}
16116
16117// SetTags sets the Tags field's value.
16118func (s *PutStorageLensConfigurationTaggingInput) SetTags(v []*StorageLensTag) *PutStorageLensConfigurationTaggingInput {
16119	s.Tags = v
16120	return s
16121}
16122
16123func (s *PutStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
16124	return map[string]string{
16125		"AccountId": aws.StringValue(s.AccountId),
16126	}
16127}
16128
16129type PutStorageLensConfigurationTaggingOutput struct {
16130	_ struct{} `type:"structure"`
16131}
16132
16133// String returns the string representation.
16134//
16135// API parameter values that are decorated as "sensitive" in the API will not
16136// be included in the string output. The member name will be present, but the
16137// value will be replaced with "sensitive".
16138func (s PutStorageLensConfigurationTaggingOutput) String() string {
16139	return awsutil.Prettify(s)
16140}
16141
16142// GoString returns the string representation.
16143//
16144// API parameter values that are decorated as "sensitive" in the API will not
16145// be included in the string output. The member name will be present, but the
16146// value will be replaced with "sensitive".
16147func (s PutStorageLensConfigurationTaggingOutput) GoString() string {
16148	return s.String()
16149}
16150
16151// A Region that supports a Multi-Region Access Point as well as the associated
16152// bucket for the Region.
16153type Region struct {
16154	_ struct{} `type:"structure"`
16155
16156	// The name of the associated bucket for the Region.
16157	//
16158	// Bucket is a required field
16159	Bucket *string `min:"3" type:"string" required:"true"`
16160}
16161
16162// String returns the string representation.
16163//
16164// API parameter values that are decorated as "sensitive" in the API will not
16165// be included in the string output. The member name will be present, but the
16166// value will be replaced with "sensitive".
16167func (s Region) String() string {
16168	return awsutil.Prettify(s)
16169}
16170
16171// GoString returns the string representation.
16172//
16173// API parameter values that are decorated as "sensitive" in the API will not
16174// be included in the string output. The member name will be present, but the
16175// value will be replaced with "sensitive".
16176func (s Region) GoString() string {
16177	return s.String()
16178}
16179
16180// Validate inspects the fields of the type to determine if they are valid.
16181func (s *Region) Validate() error {
16182	invalidParams := request.ErrInvalidParams{Context: "Region"}
16183	if s.Bucket == nil {
16184		invalidParams.Add(request.NewErrParamRequired("Bucket"))
16185	}
16186	if s.Bucket != nil && len(*s.Bucket) < 3 {
16187		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
16188	}
16189
16190	if invalidParams.Len() > 0 {
16191		return invalidParams
16192	}
16193	return nil
16194}
16195
16196// SetBucket sets the Bucket field's value.
16197func (s *Region) SetBucket(v string) *Region {
16198	s.Bucket = &v
16199	return s
16200}
16201
16202// A combination of a bucket and Region that's part of a Multi-Region Access
16203// Point.
16204type RegionReport struct {
16205	_ struct{} `type:"structure"`
16206
16207	// The name of the bucket.
16208	Bucket *string `min:"3" type:"string"`
16209
16210	// The name of the Region.
16211	Region *string `min:"1" type:"string"`
16212}
16213
16214// String returns the string representation.
16215//
16216// API parameter values that are decorated as "sensitive" in the API will not
16217// be included in the string output. The member name will be present, but the
16218// value will be replaced with "sensitive".
16219func (s RegionReport) String() string {
16220	return awsutil.Prettify(s)
16221}
16222
16223// GoString returns the string representation.
16224//
16225// API parameter values that are decorated as "sensitive" in the API will not
16226// be included in the string output. The member name will be present, but the
16227// value will be replaced with "sensitive".
16228func (s RegionReport) GoString() string {
16229	return s.String()
16230}
16231
16232// SetBucket sets the Bucket field's value.
16233func (s *RegionReport) SetBucket(v string) *RegionReport {
16234	s.Bucket = &v
16235	return s
16236}
16237
16238// SetRegion sets the Region field's value.
16239func (s *RegionReport) SetRegion(v string) *RegionReport {
16240	s.Region = &v
16241	return s
16242}
16243
16244// The container for the regional bucket.
16245type RegionalBucket struct {
16246	_ struct{} `type:"structure"`
16247
16248	// Bucket is a required field
16249	Bucket *string `min:"3" type:"string" required:"true"`
16250
16251	// The Amazon Resource Name (ARN) for the regional bucket.
16252	BucketArn *string `min:"4" type:"string"`
16253
16254	// The creation date of the regional bucket
16255	//
16256	// CreationDate is a required field
16257	CreationDate *time.Time `type:"timestamp" required:"true"`
16258
16259	// The Outposts ID of the regional bucket.
16260	OutpostId *string `min:"1" type:"string"`
16261
16262	// PublicAccessBlockEnabled is a required field
16263	PublicAccessBlockEnabled *bool `type:"boolean" required:"true"`
16264}
16265
16266// String returns the string representation.
16267//
16268// API parameter values that are decorated as "sensitive" in the API will not
16269// be included in the string output. The member name will be present, but the
16270// value will be replaced with "sensitive".
16271func (s RegionalBucket) String() string {
16272	return awsutil.Prettify(s)
16273}
16274
16275// GoString returns the string representation.
16276//
16277// API parameter values that are decorated as "sensitive" in the API will not
16278// be included in the string output. The member name will be present, but the
16279// value will be replaced with "sensitive".
16280func (s RegionalBucket) GoString() string {
16281	return s.String()
16282}
16283
16284// SetBucket sets the Bucket field's value.
16285func (s *RegionalBucket) SetBucket(v string) *RegionalBucket {
16286	s.Bucket = &v
16287	return s
16288}
16289
16290// SetBucketArn sets the BucketArn field's value.
16291func (s *RegionalBucket) SetBucketArn(v string) *RegionalBucket {
16292	s.BucketArn = &v
16293	return s
16294}
16295
16296// SetCreationDate sets the CreationDate field's value.
16297func (s *RegionalBucket) SetCreationDate(v time.Time) *RegionalBucket {
16298	s.CreationDate = &v
16299	return s
16300}
16301
16302// SetOutpostId sets the OutpostId field's value.
16303func (s *RegionalBucket) SetOutpostId(v string) *RegionalBucket {
16304	s.OutpostId = &v
16305	return s
16306}
16307
16308// SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value.
16309func (s *RegionalBucket) SetPublicAccessBlockEnabled(v bool) *RegionalBucket {
16310	s.PublicAccessBlockEnabled = &v
16311	return s
16312}
16313
16314type S3AccessControlList struct {
16315	_ struct{} `type:"structure"`
16316
16317	Grants []*S3Grant `type:"list"`
16318
16319	// Owner is a required field
16320	Owner *S3ObjectOwner `type:"structure" required:"true"`
16321}
16322
16323// String returns the string representation.
16324//
16325// API parameter values that are decorated as "sensitive" in the API will not
16326// be included in the string output. The member name will be present, but the
16327// value will be replaced with "sensitive".
16328func (s S3AccessControlList) String() string {
16329	return awsutil.Prettify(s)
16330}
16331
16332// GoString returns the string representation.
16333//
16334// API parameter values that are decorated as "sensitive" in the API will not
16335// be included in the string output. The member name will be present, but the
16336// value will be replaced with "sensitive".
16337func (s S3AccessControlList) GoString() string {
16338	return s.String()
16339}
16340
16341// Validate inspects the fields of the type to determine if they are valid.
16342func (s *S3AccessControlList) Validate() error {
16343	invalidParams := request.ErrInvalidParams{Context: "S3AccessControlList"}
16344	if s.Owner == nil {
16345		invalidParams.Add(request.NewErrParamRequired("Owner"))
16346	}
16347	if s.Grants != nil {
16348		for i, v := range s.Grants {
16349			if v == nil {
16350				continue
16351			}
16352			if err := v.Validate(); err != nil {
16353				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Grants", i), err.(request.ErrInvalidParams))
16354			}
16355		}
16356	}
16357	if s.Owner != nil {
16358		if err := s.Owner.Validate(); err != nil {
16359			invalidParams.AddNested("Owner", err.(request.ErrInvalidParams))
16360		}
16361	}
16362
16363	if invalidParams.Len() > 0 {
16364		return invalidParams
16365	}
16366	return nil
16367}
16368
16369// SetGrants sets the Grants field's value.
16370func (s *S3AccessControlList) SetGrants(v []*S3Grant) *S3AccessControlList {
16371	s.Grants = v
16372	return s
16373}
16374
16375// SetOwner sets the Owner field's value.
16376func (s *S3AccessControlList) SetOwner(v *S3ObjectOwner) *S3AccessControlList {
16377	s.Owner = v
16378	return s
16379}
16380
16381type S3AccessControlPolicy struct {
16382	_ struct{} `type:"structure"`
16383
16384	AccessControlList *S3AccessControlList `type:"structure"`
16385
16386	CannedAccessControlList *string `type:"string" enum:"S3CannedAccessControlList"`
16387}
16388
16389// String returns the string representation.
16390//
16391// API parameter values that are decorated as "sensitive" in the API will not
16392// be included in the string output. The member name will be present, but the
16393// value will be replaced with "sensitive".
16394func (s S3AccessControlPolicy) String() string {
16395	return awsutil.Prettify(s)
16396}
16397
16398// GoString returns the string representation.
16399//
16400// API parameter values that are decorated as "sensitive" in the API will not
16401// be included in the string output. The member name will be present, but the
16402// value will be replaced with "sensitive".
16403func (s S3AccessControlPolicy) GoString() string {
16404	return s.String()
16405}
16406
16407// Validate inspects the fields of the type to determine if they are valid.
16408func (s *S3AccessControlPolicy) Validate() error {
16409	invalidParams := request.ErrInvalidParams{Context: "S3AccessControlPolicy"}
16410	if s.AccessControlList != nil {
16411		if err := s.AccessControlList.Validate(); err != nil {
16412			invalidParams.AddNested("AccessControlList", err.(request.ErrInvalidParams))
16413		}
16414	}
16415
16416	if invalidParams.Len() > 0 {
16417		return invalidParams
16418	}
16419	return nil
16420}
16421
16422// SetAccessControlList sets the AccessControlList field's value.
16423func (s *S3AccessControlPolicy) SetAccessControlList(v *S3AccessControlList) *S3AccessControlPolicy {
16424	s.AccessControlList = v
16425	return s
16426}
16427
16428// SetCannedAccessControlList sets the CannedAccessControlList field's value.
16429func (s *S3AccessControlPolicy) SetCannedAccessControlList(v string) *S3AccessControlPolicy {
16430	s.CannedAccessControlList = &v
16431	return s
16432}
16433
16434// A container for the bucket where the Amazon S3 Storage Lens metrics export
16435// files are located.
16436type S3BucketDestination struct {
16437	_ struct{} `type:"structure"`
16438
16439	// The account ID of the owner of the S3 Storage Lens metrics export bucket.
16440	//
16441	// AccountId is a required field
16442	AccountId *string `type:"string" required:"true"`
16443
16444	// The Amazon Resource Name (ARN) of the bucket. This property is read-only
16445	// and follows the following format: arn:aws:s3:us-east-1:example-account-id:bucket/your-destination-bucket-name
16446	//
16447	// Arn is a required field
16448	Arn *string `min:"1" type:"string" required:"true"`
16449
16450	// The container for the type encryption of the metrics exports in this bucket.
16451	Encryption *StorageLensDataExportEncryption `type:"structure"`
16452
16453	// Format is a required field
16454	Format *string `type:"string" required:"true" enum:"Format"`
16455
16456	// The schema version of the export file.
16457	//
16458	// OutputSchemaVersion is a required field
16459	OutputSchemaVersion *string `type:"string" required:"true" enum:"OutputSchemaVersion"`
16460
16461	// The prefix of the destination bucket where the metrics export will be delivered.
16462	Prefix *string `type:"string"`
16463}
16464
16465// String returns the string representation.
16466//
16467// API parameter values that are decorated as "sensitive" in the API will not
16468// be included in the string output. The member name will be present, but the
16469// value will be replaced with "sensitive".
16470func (s S3BucketDestination) String() string {
16471	return awsutil.Prettify(s)
16472}
16473
16474// GoString returns the string representation.
16475//
16476// API parameter values that are decorated as "sensitive" in the API will not
16477// be included in the string output. The member name will be present, but the
16478// value will be replaced with "sensitive".
16479func (s S3BucketDestination) GoString() string {
16480	return s.String()
16481}
16482
16483// Validate inspects the fields of the type to determine if they are valid.
16484func (s *S3BucketDestination) Validate() error {
16485	invalidParams := request.ErrInvalidParams{Context: "S3BucketDestination"}
16486	if s.AccountId == nil {
16487		invalidParams.Add(request.NewErrParamRequired("AccountId"))
16488	}
16489	if s.Arn == nil {
16490		invalidParams.Add(request.NewErrParamRequired("Arn"))
16491	}
16492	if s.Arn != nil && len(*s.Arn) < 1 {
16493		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
16494	}
16495	if s.Format == nil {
16496		invalidParams.Add(request.NewErrParamRequired("Format"))
16497	}
16498	if s.OutputSchemaVersion == nil {
16499		invalidParams.Add(request.NewErrParamRequired("OutputSchemaVersion"))
16500	}
16501	if s.Encryption != nil {
16502		if err := s.Encryption.Validate(); err != nil {
16503			invalidParams.AddNested("Encryption", err.(request.ErrInvalidParams))
16504		}
16505	}
16506
16507	if invalidParams.Len() > 0 {
16508		return invalidParams
16509	}
16510	return nil
16511}
16512
16513// SetAccountId sets the AccountId field's value.
16514func (s *S3BucketDestination) SetAccountId(v string) *S3BucketDestination {
16515	s.AccountId = &v
16516	return s
16517}
16518
16519// SetArn sets the Arn field's value.
16520func (s *S3BucketDestination) SetArn(v string) *S3BucketDestination {
16521	s.Arn = &v
16522	return s
16523}
16524
16525// SetEncryption sets the Encryption field's value.
16526func (s *S3BucketDestination) SetEncryption(v *StorageLensDataExportEncryption) *S3BucketDestination {
16527	s.Encryption = v
16528	return s
16529}
16530
16531// SetFormat sets the Format field's value.
16532func (s *S3BucketDestination) SetFormat(v string) *S3BucketDestination {
16533	s.Format = &v
16534	return s
16535}
16536
16537// SetOutputSchemaVersion sets the OutputSchemaVersion field's value.
16538func (s *S3BucketDestination) SetOutputSchemaVersion(v string) *S3BucketDestination {
16539	s.OutputSchemaVersion = &v
16540	return s
16541}
16542
16543// SetPrefix sets the Prefix field's value.
16544func (s *S3BucketDestination) SetPrefix(v string) *S3BucketDestination {
16545	s.Prefix = &v
16546	return s
16547}
16548
16549// Contains the configuration parameters for a PUT Copy object operation. S3
16550// Batch Operations passes every object to the underlying PUT Copy object API.
16551// For more information about the parameters for this operation, see PUT Object
16552// - Copy (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html).
16553type S3CopyObjectOperation struct {
16554	_ struct{} `type:"structure"`
16555
16556	AccessControlGrants []*S3Grant `type:"list"`
16557
16558	// Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption
16559	// with server-side encryption using Amazon Web Services KMS (SSE-KMS). Setting
16560	// this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption
16561	// with SSE-KMS.
16562	//
16563	// Specifying this header with an object action doesn’t affect bucket-level
16564	// settings for S3 Bucket Key.
16565	BucketKeyEnabled *bool `type:"boolean"`
16566
16567	CannedAccessControlList *string `type:"string" enum:"S3CannedAccessControlList"`
16568
16569	MetadataDirective *string `type:"string" enum:"S3MetadataDirective"`
16570
16571	ModifiedSinceConstraint *time.Time `type:"timestamp"`
16572
16573	NewObjectMetadata *S3ObjectMetadata `type:"structure"`
16574
16575	NewObjectTagging []*S3Tag `type:"list"`
16576
16577	// The legal hold status to be applied to all objects in the Batch Operations
16578	// job.
16579	ObjectLockLegalHoldStatus *string `type:"string" enum:"S3ObjectLockLegalHoldStatus"`
16580
16581	// The retention mode to be applied to all objects in the Batch Operations job.
16582	ObjectLockMode *string `type:"string" enum:"S3ObjectLockMode"`
16583
16584	// The date when the applied object retention configuration expires on all objects
16585	// in the Batch Operations job.
16586	ObjectLockRetainUntilDate *time.Time `type:"timestamp"`
16587
16588	// Specifies an optional metadata property for website redirects, x-amz-website-redirect-location.
16589	// Allows webpage redirects if the object is accessed through a website endpoint.
16590	RedirectLocation *string `min:"1" type:"string"`
16591
16592	RequesterPays *bool `type:"boolean"`
16593
16594	SSEAwsKmsKeyId *string `min:"1" type:"string"`
16595
16596	StorageClass *string `type:"string" enum:"S3StorageClass"`
16597
16598	// Specifies the folder prefix into which you would like the objects to be copied.
16599	// For example, to copy objects into a folder named "Folder1" in the destination
16600	// bucket, set the TargetKeyPrefix to "Folder1/".
16601	TargetKeyPrefix *string `min:"1" type:"string"`
16602
16603	// Specifies the destination bucket ARN for the batch copy operation. For example,
16604	// to copy objects to a bucket named "destinationBucket", set the TargetResource
16605	// to "arn:aws:s3:::destinationBucket".
16606	TargetResource *string `min:"1" type:"string"`
16607
16608	UnModifiedSinceConstraint *time.Time `type:"timestamp"`
16609}
16610
16611// String returns the string representation.
16612//
16613// API parameter values that are decorated as "sensitive" in the API will not
16614// be included in the string output. The member name will be present, but the
16615// value will be replaced with "sensitive".
16616func (s S3CopyObjectOperation) String() string {
16617	return awsutil.Prettify(s)
16618}
16619
16620// GoString returns the string representation.
16621//
16622// API parameter values that are decorated as "sensitive" in the API will not
16623// be included in the string output. The member name will be present, but the
16624// value will be replaced with "sensitive".
16625func (s S3CopyObjectOperation) GoString() string {
16626	return s.String()
16627}
16628
16629// Validate inspects the fields of the type to determine if they are valid.
16630func (s *S3CopyObjectOperation) Validate() error {
16631	invalidParams := request.ErrInvalidParams{Context: "S3CopyObjectOperation"}
16632	if s.RedirectLocation != nil && len(*s.RedirectLocation) < 1 {
16633		invalidParams.Add(request.NewErrParamMinLen("RedirectLocation", 1))
16634	}
16635	if s.SSEAwsKmsKeyId != nil && len(*s.SSEAwsKmsKeyId) < 1 {
16636		invalidParams.Add(request.NewErrParamMinLen("SSEAwsKmsKeyId", 1))
16637	}
16638	if s.TargetKeyPrefix != nil && len(*s.TargetKeyPrefix) < 1 {
16639		invalidParams.Add(request.NewErrParamMinLen("TargetKeyPrefix", 1))
16640	}
16641	if s.TargetResource != nil && len(*s.TargetResource) < 1 {
16642		invalidParams.Add(request.NewErrParamMinLen("TargetResource", 1))
16643	}
16644	if s.AccessControlGrants != nil {
16645		for i, v := range s.AccessControlGrants {
16646			if v == nil {
16647				continue
16648			}
16649			if err := v.Validate(); err != nil {
16650				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessControlGrants", i), err.(request.ErrInvalidParams))
16651			}
16652		}
16653	}
16654	if s.NewObjectMetadata != nil {
16655		if err := s.NewObjectMetadata.Validate(); err != nil {
16656			invalidParams.AddNested("NewObjectMetadata", err.(request.ErrInvalidParams))
16657		}
16658	}
16659	if s.NewObjectTagging != nil {
16660		for i, v := range s.NewObjectTagging {
16661			if v == nil {
16662				continue
16663			}
16664			if err := v.Validate(); err != nil {
16665				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NewObjectTagging", i), err.(request.ErrInvalidParams))
16666			}
16667		}
16668	}
16669
16670	if invalidParams.Len() > 0 {
16671		return invalidParams
16672	}
16673	return nil
16674}
16675
16676// SetAccessControlGrants sets the AccessControlGrants field's value.
16677func (s *S3CopyObjectOperation) SetAccessControlGrants(v []*S3Grant) *S3CopyObjectOperation {
16678	s.AccessControlGrants = v
16679	return s
16680}
16681
16682// SetBucketKeyEnabled sets the BucketKeyEnabled field's value.
16683func (s *S3CopyObjectOperation) SetBucketKeyEnabled(v bool) *S3CopyObjectOperation {
16684	s.BucketKeyEnabled = &v
16685	return s
16686}
16687
16688// SetCannedAccessControlList sets the CannedAccessControlList field's value.
16689func (s *S3CopyObjectOperation) SetCannedAccessControlList(v string) *S3CopyObjectOperation {
16690	s.CannedAccessControlList = &v
16691	return s
16692}
16693
16694// SetMetadataDirective sets the MetadataDirective field's value.
16695func (s *S3CopyObjectOperation) SetMetadataDirective(v string) *S3CopyObjectOperation {
16696	s.MetadataDirective = &v
16697	return s
16698}
16699
16700// SetModifiedSinceConstraint sets the ModifiedSinceConstraint field's value.
16701func (s *S3CopyObjectOperation) SetModifiedSinceConstraint(v time.Time) *S3CopyObjectOperation {
16702	s.ModifiedSinceConstraint = &v
16703	return s
16704}
16705
16706// SetNewObjectMetadata sets the NewObjectMetadata field's value.
16707func (s *S3CopyObjectOperation) SetNewObjectMetadata(v *S3ObjectMetadata) *S3CopyObjectOperation {
16708	s.NewObjectMetadata = v
16709	return s
16710}
16711
16712// SetNewObjectTagging sets the NewObjectTagging field's value.
16713func (s *S3CopyObjectOperation) SetNewObjectTagging(v []*S3Tag) *S3CopyObjectOperation {
16714	s.NewObjectTagging = v
16715	return s
16716}
16717
16718// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
16719func (s *S3CopyObjectOperation) SetObjectLockLegalHoldStatus(v string) *S3CopyObjectOperation {
16720	s.ObjectLockLegalHoldStatus = &v
16721	return s
16722}
16723
16724// SetObjectLockMode sets the ObjectLockMode field's value.
16725func (s *S3CopyObjectOperation) SetObjectLockMode(v string) *S3CopyObjectOperation {
16726	s.ObjectLockMode = &v
16727	return s
16728}
16729
16730// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
16731func (s *S3CopyObjectOperation) SetObjectLockRetainUntilDate(v time.Time) *S3CopyObjectOperation {
16732	s.ObjectLockRetainUntilDate = &v
16733	return s
16734}
16735
16736// SetRedirectLocation sets the RedirectLocation field's value.
16737func (s *S3CopyObjectOperation) SetRedirectLocation(v string) *S3CopyObjectOperation {
16738	s.RedirectLocation = &v
16739	return s
16740}
16741
16742// SetRequesterPays sets the RequesterPays field's value.
16743func (s *S3CopyObjectOperation) SetRequesterPays(v bool) *S3CopyObjectOperation {
16744	s.RequesterPays = &v
16745	return s
16746}
16747
16748// SetSSEAwsKmsKeyId sets the SSEAwsKmsKeyId field's value.
16749func (s *S3CopyObjectOperation) SetSSEAwsKmsKeyId(v string) *S3CopyObjectOperation {
16750	s.SSEAwsKmsKeyId = &v
16751	return s
16752}
16753
16754// SetStorageClass sets the StorageClass field's value.
16755func (s *S3CopyObjectOperation) SetStorageClass(v string) *S3CopyObjectOperation {
16756	s.StorageClass = &v
16757	return s
16758}
16759
16760// SetTargetKeyPrefix sets the TargetKeyPrefix field's value.
16761func (s *S3CopyObjectOperation) SetTargetKeyPrefix(v string) *S3CopyObjectOperation {
16762	s.TargetKeyPrefix = &v
16763	return s
16764}
16765
16766// SetTargetResource sets the TargetResource field's value.
16767func (s *S3CopyObjectOperation) SetTargetResource(v string) *S3CopyObjectOperation {
16768	s.TargetResource = &v
16769	return s
16770}
16771
16772// SetUnModifiedSinceConstraint sets the UnModifiedSinceConstraint field's value.
16773func (s *S3CopyObjectOperation) SetUnModifiedSinceConstraint(v time.Time) *S3CopyObjectOperation {
16774	s.UnModifiedSinceConstraint = &v
16775	return s
16776}
16777
16778// Contains no configuration parameters because the DELETE Object tagging API
16779// only accepts the bucket name and key name as parameters, which are defined
16780// in the job's manifest.
16781type S3DeleteObjectTaggingOperation struct {
16782	_ struct{} `type:"structure"`
16783}
16784
16785// String returns the string representation.
16786//
16787// API parameter values that are decorated as "sensitive" in the API will not
16788// be included in the string output. The member name will be present, but the
16789// value will be replaced with "sensitive".
16790func (s S3DeleteObjectTaggingOperation) String() string {
16791	return awsutil.Prettify(s)
16792}
16793
16794// GoString returns the string representation.
16795//
16796// API parameter values that are decorated as "sensitive" in the API will not
16797// be included in the string output. The member name will be present, but the
16798// value will be replaced with "sensitive".
16799func (s S3DeleteObjectTaggingOperation) GoString() string {
16800	return s.String()
16801}
16802
16803type S3Grant struct {
16804	_ struct{} `type:"structure"`
16805
16806	Grantee *S3Grantee `type:"structure"`
16807
16808	Permission *string `type:"string" enum:"S3Permission"`
16809}
16810
16811// String returns the string representation.
16812//
16813// API parameter values that are decorated as "sensitive" in the API will not
16814// be included in the string output. The member name will be present, but the
16815// value will be replaced with "sensitive".
16816func (s S3Grant) String() string {
16817	return awsutil.Prettify(s)
16818}
16819
16820// GoString returns the string representation.
16821//
16822// API parameter values that are decorated as "sensitive" in the API will not
16823// be included in the string output. The member name will be present, but the
16824// value will be replaced with "sensitive".
16825func (s S3Grant) GoString() string {
16826	return s.String()
16827}
16828
16829// Validate inspects the fields of the type to determine if they are valid.
16830func (s *S3Grant) Validate() error {
16831	invalidParams := request.ErrInvalidParams{Context: "S3Grant"}
16832	if s.Grantee != nil {
16833		if err := s.Grantee.Validate(); err != nil {
16834			invalidParams.AddNested("Grantee", err.(request.ErrInvalidParams))
16835		}
16836	}
16837
16838	if invalidParams.Len() > 0 {
16839		return invalidParams
16840	}
16841	return nil
16842}
16843
16844// SetGrantee sets the Grantee field's value.
16845func (s *S3Grant) SetGrantee(v *S3Grantee) *S3Grant {
16846	s.Grantee = v
16847	return s
16848}
16849
16850// SetPermission sets the Permission field's value.
16851func (s *S3Grant) SetPermission(v string) *S3Grant {
16852	s.Permission = &v
16853	return s
16854}
16855
16856type S3Grantee struct {
16857	_ struct{} `type:"structure"`
16858
16859	DisplayName *string `min:"1" type:"string"`
16860
16861	Identifier *string `min:"1" type:"string"`
16862
16863	TypeIdentifier *string `type:"string" enum:"S3GranteeTypeIdentifier"`
16864}
16865
16866// String returns the string representation.
16867//
16868// API parameter values that are decorated as "sensitive" in the API will not
16869// be included in the string output. The member name will be present, but the
16870// value will be replaced with "sensitive".
16871func (s S3Grantee) String() string {
16872	return awsutil.Prettify(s)
16873}
16874
16875// GoString returns the string representation.
16876//
16877// API parameter values that are decorated as "sensitive" in the API will not
16878// be included in the string output. The member name will be present, but the
16879// value will be replaced with "sensitive".
16880func (s S3Grantee) GoString() string {
16881	return s.String()
16882}
16883
16884// Validate inspects the fields of the type to determine if they are valid.
16885func (s *S3Grantee) Validate() error {
16886	invalidParams := request.ErrInvalidParams{Context: "S3Grantee"}
16887	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
16888		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
16889	}
16890	if s.Identifier != nil && len(*s.Identifier) < 1 {
16891		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
16892	}
16893
16894	if invalidParams.Len() > 0 {
16895		return invalidParams
16896	}
16897	return nil
16898}
16899
16900// SetDisplayName sets the DisplayName field's value.
16901func (s *S3Grantee) SetDisplayName(v string) *S3Grantee {
16902	s.DisplayName = &v
16903	return s
16904}
16905
16906// SetIdentifier sets the Identifier field's value.
16907func (s *S3Grantee) SetIdentifier(v string) *S3Grantee {
16908	s.Identifier = &v
16909	return s
16910}
16911
16912// SetTypeIdentifier sets the TypeIdentifier field's value.
16913func (s *S3Grantee) SetTypeIdentifier(v string) *S3Grantee {
16914	s.TypeIdentifier = &v
16915	return s
16916}
16917
16918// Contains the configuration parameters for an S3 Initiate Restore Object job.
16919// S3 Batch Operations passes every object to the underlying POST Object restore
16920// API. For more information about the parameters for this operation, see RestoreObject
16921// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOSTrestore.html#RESTObjectPOSTrestore-restore-request).
16922type S3InitiateRestoreObjectOperation struct {
16923	_ struct{} `type:"structure"`
16924
16925	// This argument specifies how long the S3 Glacier or S3 Glacier Deep Archive
16926	// object remains available in Amazon S3. S3 Initiate Restore Object jobs that
16927	// target S3 Glacier and S3 Glacier Deep Archive objects require ExpirationInDays
16928	// set to 1 or greater.
16929	//
16930	// Conversely, do not set ExpirationInDays when creating S3 Initiate Restore
16931	// Object jobs that target S3 Intelligent-Tiering Archive Access and Deep Archive
16932	// Access tier objects. Objects in S3 Intelligent-Tiering archive access tiers
16933	// are not subject to restore expiry, so specifying ExpirationInDays results
16934	// in restore request failure.
16935	//
16936	// S3 Batch Operations jobs can operate either on S3 Glacier and S3 Glacier
16937	// Deep Archive storage class objects or on S3 Intelligent-Tiering Archive Access
16938	// and Deep Archive Access storage tier objects, but not both types in the same
16939	// job. If you need to restore objects of both types you must create separate
16940	// Batch Operations jobs.
16941	ExpirationInDays *int64 `type:"integer"`
16942
16943	// S3 Batch Operations supports STANDARD and BULK retrieval tiers, but not the
16944	// EXPEDITED retrieval tier.
16945	GlacierJobTier *string `type:"string" enum:"S3GlacierJobTier"`
16946}
16947
16948// String returns the string representation.
16949//
16950// API parameter values that are decorated as "sensitive" in the API will not
16951// be included in the string output. The member name will be present, but the
16952// value will be replaced with "sensitive".
16953func (s S3InitiateRestoreObjectOperation) String() string {
16954	return awsutil.Prettify(s)
16955}
16956
16957// GoString returns the string representation.
16958//
16959// API parameter values that are decorated as "sensitive" in the API will not
16960// be included in the string output. The member name will be present, but the
16961// value will be replaced with "sensitive".
16962func (s S3InitiateRestoreObjectOperation) GoString() string {
16963	return s.String()
16964}
16965
16966// SetExpirationInDays sets the ExpirationInDays field's value.
16967func (s *S3InitiateRestoreObjectOperation) SetExpirationInDays(v int64) *S3InitiateRestoreObjectOperation {
16968	s.ExpirationInDays = &v
16969	return s
16970}
16971
16972// SetGlacierJobTier sets the GlacierJobTier field's value.
16973func (s *S3InitiateRestoreObjectOperation) SetGlacierJobTier(v string) *S3InitiateRestoreObjectOperation {
16974	s.GlacierJobTier = &v
16975	return s
16976}
16977
16978// Whether S3 Object Lock legal hold will be applied to objects in an S3 Batch
16979// Operations job.
16980type S3ObjectLockLegalHold struct {
16981	_ struct{} `type:"structure"`
16982
16983	// The Object Lock legal hold status to be applied to all objects in the Batch
16984	// Operations job.
16985	//
16986	// Status is a required field
16987	Status *string `type:"string" required:"true" enum:"S3ObjectLockLegalHoldStatus"`
16988}
16989
16990// String returns the string representation.
16991//
16992// API parameter values that are decorated as "sensitive" in the API will not
16993// be included in the string output. The member name will be present, but the
16994// value will be replaced with "sensitive".
16995func (s S3ObjectLockLegalHold) String() string {
16996	return awsutil.Prettify(s)
16997}
16998
16999// GoString returns the string representation.
17000//
17001// API parameter values that are decorated as "sensitive" in the API will not
17002// be included in the string output. The member name will be present, but the
17003// value will be replaced with "sensitive".
17004func (s S3ObjectLockLegalHold) GoString() string {
17005	return s.String()
17006}
17007
17008// Validate inspects the fields of the type to determine if they are valid.
17009func (s *S3ObjectLockLegalHold) Validate() error {
17010	invalidParams := request.ErrInvalidParams{Context: "S3ObjectLockLegalHold"}
17011	if s.Status == nil {
17012		invalidParams.Add(request.NewErrParamRequired("Status"))
17013	}
17014
17015	if invalidParams.Len() > 0 {
17016		return invalidParams
17017	}
17018	return nil
17019}
17020
17021// SetStatus sets the Status field's value.
17022func (s *S3ObjectLockLegalHold) SetStatus(v string) *S3ObjectLockLegalHold {
17023	s.Status = &v
17024	return s
17025}
17026
17027type S3ObjectMetadata struct {
17028	_ struct{} `type:"structure"`
17029
17030	CacheControl *string `min:"1" type:"string"`
17031
17032	ContentDisposition *string `min:"1" type:"string"`
17033
17034	ContentEncoding *string `min:"1" type:"string"`
17035
17036	ContentLanguage *string `min:"1" type:"string"`
17037
17038	ContentLength *int64 `type:"long"`
17039
17040	ContentMD5 *string `min:"1" type:"string"`
17041
17042	ContentType *string `min:"1" type:"string"`
17043
17044	HttpExpiresDate *time.Time `type:"timestamp"`
17045
17046	RequesterCharged *bool `type:"boolean"`
17047
17048	SSEAlgorithm *string `type:"string" enum:"S3SSEAlgorithm"`
17049
17050	UserMetadata map[string]*string `type:"map"`
17051}
17052
17053// String returns the string representation.
17054//
17055// API parameter values that are decorated as "sensitive" in the API will not
17056// be included in the string output. The member name will be present, but the
17057// value will be replaced with "sensitive".
17058func (s S3ObjectMetadata) String() string {
17059	return awsutil.Prettify(s)
17060}
17061
17062// GoString returns the string representation.
17063//
17064// API parameter values that are decorated as "sensitive" in the API will not
17065// be included in the string output. The member name will be present, but the
17066// value will be replaced with "sensitive".
17067func (s S3ObjectMetadata) GoString() string {
17068	return s.String()
17069}
17070
17071// Validate inspects the fields of the type to determine if they are valid.
17072func (s *S3ObjectMetadata) Validate() error {
17073	invalidParams := request.ErrInvalidParams{Context: "S3ObjectMetadata"}
17074	if s.CacheControl != nil && len(*s.CacheControl) < 1 {
17075		invalidParams.Add(request.NewErrParamMinLen("CacheControl", 1))
17076	}
17077	if s.ContentDisposition != nil && len(*s.ContentDisposition) < 1 {
17078		invalidParams.Add(request.NewErrParamMinLen("ContentDisposition", 1))
17079	}
17080	if s.ContentEncoding != nil && len(*s.ContentEncoding) < 1 {
17081		invalidParams.Add(request.NewErrParamMinLen("ContentEncoding", 1))
17082	}
17083	if s.ContentLanguage != nil && len(*s.ContentLanguage) < 1 {
17084		invalidParams.Add(request.NewErrParamMinLen("ContentLanguage", 1))
17085	}
17086	if s.ContentMD5 != nil && len(*s.ContentMD5) < 1 {
17087		invalidParams.Add(request.NewErrParamMinLen("ContentMD5", 1))
17088	}
17089	if s.ContentType != nil && len(*s.ContentType) < 1 {
17090		invalidParams.Add(request.NewErrParamMinLen("ContentType", 1))
17091	}
17092
17093	if invalidParams.Len() > 0 {
17094		return invalidParams
17095	}
17096	return nil
17097}
17098
17099// SetCacheControl sets the CacheControl field's value.
17100func (s *S3ObjectMetadata) SetCacheControl(v string) *S3ObjectMetadata {
17101	s.CacheControl = &v
17102	return s
17103}
17104
17105// SetContentDisposition sets the ContentDisposition field's value.
17106func (s *S3ObjectMetadata) SetContentDisposition(v string) *S3ObjectMetadata {
17107	s.ContentDisposition = &v
17108	return s
17109}
17110
17111// SetContentEncoding sets the ContentEncoding field's value.
17112func (s *S3ObjectMetadata) SetContentEncoding(v string) *S3ObjectMetadata {
17113	s.ContentEncoding = &v
17114	return s
17115}
17116
17117// SetContentLanguage sets the ContentLanguage field's value.
17118func (s *S3ObjectMetadata) SetContentLanguage(v string) *S3ObjectMetadata {
17119	s.ContentLanguage = &v
17120	return s
17121}
17122
17123// SetContentLength sets the ContentLength field's value.
17124func (s *S3ObjectMetadata) SetContentLength(v int64) *S3ObjectMetadata {
17125	s.ContentLength = &v
17126	return s
17127}
17128
17129// SetContentMD5 sets the ContentMD5 field's value.
17130func (s *S3ObjectMetadata) SetContentMD5(v string) *S3ObjectMetadata {
17131	s.ContentMD5 = &v
17132	return s
17133}
17134
17135// SetContentType sets the ContentType field's value.
17136func (s *S3ObjectMetadata) SetContentType(v string) *S3ObjectMetadata {
17137	s.ContentType = &v
17138	return s
17139}
17140
17141// SetHttpExpiresDate sets the HttpExpiresDate field's value.
17142func (s *S3ObjectMetadata) SetHttpExpiresDate(v time.Time) *S3ObjectMetadata {
17143	s.HttpExpiresDate = &v
17144	return s
17145}
17146
17147// SetRequesterCharged sets the RequesterCharged field's value.
17148func (s *S3ObjectMetadata) SetRequesterCharged(v bool) *S3ObjectMetadata {
17149	s.RequesterCharged = &v
17150	return s
17151}
17152
17153// SetSSEAlgorithm sets the SSEAlgorithm field's value.
17154func (s *S3ObjectMetadata) SetSSEAlgorithm(v string) *S3ObjectMetadata {
17155	s.SSEAlgorithm = &v
17156	return s
17157}
17158
17159// SetUserMetadata sets the UserMetadata field's value.
17160func (s *S3ObjectMetadata) SetUserMetadata(v map[string]*string) *S3ObjectMetadata {
17161	s.UserMetadata = v
17162	return s
17163}
17164
17165type S3ObjectOwner struct {
17166	_ struct{} `type:"structure"`
17167
17168	DisplayName *string `min:"1" type:"string"`
17169
17170	ID *string `min:"1" type:"string"`
17171}
17172
17173// String returns the string representation.
17174//
17175// API parameter values that are decorated as "sensitive" in the API will not
17176// be included in the string output. The member name will be present, but the
17177// value will be replaced with "sensitive".
17178func (s S3ObjectOwner) String() string {
17179	return awsutil.Prettify(s)
17180}
17181
17182// GoString returns the string representation.
17183//
17184// API parameter values that are decorated as "sensitive" in the API will not
17185// be included in the string output. The member name will be present, but the
17186// value will be replaced with "sensitive".
17187func (s S3ObjectOwner) GoString() string {
17188	return s.String()
17189}
17190
17191// Validate inspects the fields of the type to determine if they are valid.
17192func (s *S3ObjectOwner) Validate() error {
17193	invalidParams := request.ErrInvalidParams{Context: "S3ObjectOwner"}
17194	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
17195		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
17196	}
17197	if s.ID != nil && len(*s.ID) < 1 {
17198		invalidParams.Add(request.NewErrParamMinLen("ID", 1))
17199	}
17200
17201	if invalidParams.Len() > 0 {
17202		return invalidParams
17203	}
17204	return nil
17205}
17206
17207// SetDisplayName sets the DisplayName field's value.
17208func (s *S3ObjectOwner) SetDisplayName(v string) *S3ObjectOwner {
17209	s.DisplayName = &v
17210	return s
17211}
17212
17213// SetID sets the ID field's value.
17214func (s *S3ObjectOwner) SetID(v string) *S3ObjectOwner {
17215	s.ID = &v
17216	return s
17217}
17218
17219// Contains the S3 Object Lock retention mode to be applied to all objects in
17220// the S3 Batch Operations job. If you don't provide Mode and RetainUntilDate
17221// data types in your operation, you will remove the retention from your objects.
17222// For more information, see Using S3 Object Lock retention with S3 Batch Operations
17223// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
17224// in the Amazon S3 User Guide.
17225type S3Retention struct {
17226	_ struct{} `type:"structure"`
17227
17228	// The Object Lock retention mode to be applied to all objects in the Batch
17229	// Operations job.
17230	Mode *string `type:"string" enum:"S3ObjectLockRetentionMode"`
17231
17232	// The date when the applied Object Lock retention will expire on all objects
17233	// set by the Batch Operations job.
17234	RetainUntilDate *time.Time `type:"timestamp"`
17235}
17236
17237// String returns the string representation.
17238//
17239// API parameter values that are decorated as "sensitive" in the API will not
17240// be included in the string output. The member name will be present, but the
17241// value will be replaced with "sensitive".
17242func (s S3Retention) String() string {
17243	return awsutil.Prettify(s)
17244}
17245
17246// GoString returns the string representation.
17247//
17248// API parameter values that are decorated as "sensitive" in the API will not
17249// be included in the string output. The member name will be present, but the
17250// value will be replaced with "sensitive".
17251func (s S3Retention) GoString() string {
17252	return s.String()
17253}
17254
17255// SetMode sets the Mode field's value.
17256func (s *S3Retention) SetMode(v string) *S3Retention {
17257	s.Mode = &v
17258	return s
17259}
17260
17261// SetRetainUntilDate sets the RetainUntilDate field's value.
17262func (s *S3Retention) SetRetainUntilDate(v time.Time) *S3Retention {
17263	s.RetainUntilDate = &v
17264	return s
17265}
17266
17267// Contains the configuration parameters for a Set Object ACL operation. S3
17268// Batch Operations passes every object to the underlying PUT Object acl API.
17269// For more information about the parameters for this operation, see PUT Object
17270// acl (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTacl.html).
17271type S3SetObjectAclOperation struct {
17272	_ struct{} `type:"structure"`
17273
17274	AccessControlPolicy *S3AccessControlPolicy `type:"structure"`
17275}
17276
17277// String returns the string representation.
17278//
17279// API parameter values that are decorated as "sensitive" in the API will not
17280// be included in the string output. The member name will be present, but the
17281// value will be replaced with "sensitive".
17282func (s S3SetObjectAclOperation) String() string {
17283	return awsutil.Prettify(s)
17284}
17285
17286// GoString returns the string representation.
17287//
17288// API parameter values that are decorated as "sensitive" in the API will not
17289// be included in the string output. The member name will be present, but the
17290// value will be replaced with "sensitive".
17291func (s S3SetObjectAclOperation) GoString() string {
17292	return s.String()
17293}
17294
17295// Validate inspects the fields of the type to determine if they are valid.
17296func (s *S3SetObjectAclOperation) Validate() error {
17297	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectAclOperation"}
17298	if s.AccessControlPolicy != nil {
17299		if err := s.AccessControlPolicy.Validate(); err != nil {
17300			invalidParams.AddNested("AccessControlPolicy", err.(request.ErrInvalidParams))
17301		}
17302	}
17303
17304	if invalidParams.Len() > 0 {
17305		return invalidParams
17306	}
17307	return nil
17308}
17309
17310// SetAccessControlPolicy sets the AccessControlPolicy field's value.
17311func (s *S3SetObjectAclOperation) SetAccessControlPolicy(v *S3AccessControlPolicy) *S3SetObjectAclOperation {
17312	s.AccessControlPolicy = v
17313	return s
17314}
17315
17316// Contains the configuration for an S3 Object Lock legal hold operation that
17317// an S3 Batch Operations job passes every object to the underlying PutObjectLegalHold
17318// API. For more information, see Using S3 Object Lock legal hold with S3 Batch
17319// Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html)
17320// in the Amazon S3 User Guide.
17321type S3SetObjectLegalHoldOperation struct {
17322	_ struct{} `type:"structure"`
17323
17324	// Contains the Object Lock legal hold status to be applied to all objects in
17325	// the Batch Operations job.
17326	//
17327	// LegalHold is a required field
17328	LegalHold *S3ObjectLockLegalHold `type:"structure" required:"true"`
17329}
17330
17331// String returns the string representation.
17332//
17333// API parameter values that are decorated as "sensitive" in the API will not
17334// be included in the string output. The member name will be present, but the
17335// value will be replaced with "sensitive".
17336func (s S3SetObjectLegalHoldOperation) String() string {
17337	return awsutil.Prettify(s)
17338}
17339
17340// GoString returns the string representation.
17341//
17342// API parameter values that are decorated as "sensitive" in the API will not
17343// be included in the string output. The member name will be present, but the
17344// value will be replaced with "sensitive".
17345func (s S3SetObjectLegalHoldOperation) GoString() string {
17346	return s.String()
17347}
17348
17349// Validate inspects the fields of the type to determine if they are valid.
17350func (s *S3SetObjectLegalHoldOperation) Validate() error {
17351	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectLegalHoldOperation"}
17352	if s.LegalHold == nil {
17353		invalidParams.Add(request.NewErrParamRequired("LegalHold"))
17354	}
17355	if s.LegalHold != nil {
17356		if err := s.LegalHold.Validate(); err != nil {
17357			invalidParams.AddNested("LegalHold", err.(request.ErrInvalidParams))
17358		}
17359	}
17360
17361	if invalidParams.Len() > 0 {
17362		return invalidParams
17363	}
17364	return nil
17365}
17366
17367// SetLegalHold sets the LegalHold field's value.
17368func (s *S3SetObjectLegalHoldOperation) SetLegalHold(v *S3ObjectLockLegalHold) *S3SetObjectLegalHoldOperation {
17369	s.LegalHold = v
17370	return s
17371}
17372
17373// Contains the configuration parameters for the Object Lock retention action
17374// for an S3 Batch Operations job. Batch Operations passes every object to the
17375// underlying PutObjectRetention API. For more information, see Using S3 Object
17376// Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
17377// in the Amazon S3 User Guide.
17378type S3SetObjectRetentionOperation struct {
17379	_ struct{} `type:"structure"`
17380
17381	// Indicates if the action should be applied to objects in the Batch Operations
17382	// job even if they have Object Lock GOVERNANCE type in place.
17383	BypassGovernanceRetention *bool `type:"boolean"`
17384
17385	// Contains the Object Lock retention mode to be applied to all objects in the
17386	// Batch Operations job. For more information, see Using S3 Object Lock retention
17387	// with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
17388	// in the Amazon S3 User Guide.
17389	//
17390	// Retention is a required field
17391	Retention *S3Retention `type:"structure" required:"true"`
17392}
17393
17394// String returns the string representation.
17395//
17396// API parameter values that are decorated as "sensitive" in the API will not
17397// be included in the string output. The member name will be present, but the
17398// value will be replaced with "sensitive".
17399func (s S3SetObjectRetentionOperation) String() string {
17400	return awsutil.Prettify(s)
17401}
17402
17403// GoString returns the string representation.
17404//
17405// API parameter values that are decorated as "sensitive" in the API will not
17406// be included in the string output. The member name will be present, but the
17407// value will be replaced with "sensitive".
17408func (s S3SetObjectRetentionOperation) GoString() string {
17409	return s.String()
17410}
17411
17412// Validate inspects the fields of the type to determine if they are valid.
17413func (s *S3SetObjectRetentionOperation) Validate() error {
17414	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectRetentionOperation"}
17415	if s.Retention == nil {
17416		invalidParams.Add(request.NewErrParamRequired("Retention"))
17417	}
17418
17419	if invalidParams.Len() > 0 {
17420		return invalidParams
17421	}
17422	return nil
17423}
17424
17425// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
17426func (s *S3SetObjectRetentionOperation) SetBypassGovernanceRetention(v bool) *S3SetObjectRetentionOperation {
17427	s.BypassGovernanceRetention = &v
17428	return s
17429}
17430
17431// SetRetention sets the Retention field's value.
17432func (s *S3SetObjectRetentionOperation) SetRetention(v *S3Retention) *S3SetObjectRetentionOperation {
17433	s.Retention = v
17434	return s
17435}
17436
17437// Contains the configuration parameters for a Set Object Tagging operation.
17438// S3 Batch Operations passes every object to the underlying PUT Object tagging
17439// API. For more information about the parameters for this operation, see PUT
17440// Object tagging (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTtagging.html).
17441type S3SetObjectTaggingOperation struct {
17442	_ struct{} `type:"structure"`
17443
17444	TagSet []*S3Tag `type:"list"`
17445}
17446
17447// String returns the string representation.
17448//
17449// API parameter values that are decorated as "sensitive" in the API will not
17450// be included in the string output. The member name will be present, but the
17451// value will be replaced with "sensitive".
17452func (s S3SetObjectTaggingOperation) String() string {
17453	return awsutil.Prettify(s)
17454}
17455
17456// GoString returns the string representation.
17457//
17458// API parameter values that are decorated as "sensitive" in the API will not
17459// be included in the string output. The member name will be present, but the
17460// value will be replaced with "sensitive".
17461func (s S3SetObjectTaggingOperation) GoString() string {
17462	return s.String()
17463}
17464
17465// Validate inspects the fields of the type to determine if they are valid.
17466func (s *S3SetObjectTaggingOperation) Validate() error {
17467	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectTaggingOperation"}
17468	if s.TagSet != nil {
17469		for i, v := range s.TagSet {
17470			if v == nil {
17471				continue
17472			}
17473			if err := v.Validate(); err != nil {
17474				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSet", i), err.(request.ErrInvalidParams))
17475			}
17476		}
17477	}
17478
17479	if invalidParams.Len() > 0 {
17480		return invalidParams
17481	}
17482	return nil
17483}
17484
17485// SetTagSet sets the TagSet field's value.
17486func (s *S3SetObjectTaggingOperation) SetTagSet(v []*S3Tag) *S3SetObjectTaggingOperation {
17487	s.TagSet = v
17488	return s
17489}
17490
17491type S3Tag struct {
17492	_ struct{} `type:"structure"`
17493
17494	// Key is a required field
17495	Key *string `min:"1" type:"string" required:"true"`
17496
17497	// Value is a required field
17498	Value *string `type:"string" required:"true"`
17499}
17500
17501// String returns the string representation.
17502//
17503// API parameter values that are decorated as "sensitive" in the API will not
17504// be included in the string output. The member name will be present, but the
17505// value will be replaced with "sensitive".
17506func (s S3Tag) String() string {
17507	return awsutil.Prettify(s)
17508}
17509
17510// GoString returns the string representation.
17511//
17512// API parameter values that are decorated as "sensitive" in the API will not
17513// be included in the string output. The member name will be present, but the
17514// value will be replaced with "sensitive".
17515func (s S3Tag) GoString() string {
17516	return s.String()
17517}
17518
17519// Validate inspects the fields of the type to determine if they are valid.
17520func (s *S3Tag) Validate() error {
17521	invalidParams := request.ErrInvalidParams{Context: "S3Tag"}
17522	if s.Key == nil {
17523		invalidParams.Add(request.NewErrParamRequired("Key"))
17524	}
17525	if s.Key != nil && len(*s.Key) < 1 {
17526		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
17527	}
17528	if s.Value == nil {
17529		invalidParams.Add(request.NewErrParamRequired("Value"))
17530	}
17531
17532	if invalidParams.Len() > 0 {
17533		return invalidParams
17534	}
17535	return nil
17536}
17537
17538// SetKey sets the Key field's value.
17539func (s *S3Tag) SetKey(v string) *S3Tag {
17540	s.Key = &v
17541	return s
17542}
17543
17544// SetValue sets the Value field's value.
17545func (s *S3Tag) SetValue(v string) *S3Tag {
17546	s.Value = &v
17547	return s
17548}
17549
17550type SSEKMS struct {
17551	_ struct{} `locationName:"SSE-KMS" type:"structure"`
17552
17553	// A container for the ARN of the SSE-KMS encryption. This property is read-only
17554	// and follows the following format: arn:aws:kms:us-east-1:example-account-id:key/example-9a73-4afc-8d29-8f5900cef44e
17555	//
17556	// KeyId is a required field
17557	KeyId *string `type:"string" required:"true"`
17558}
17559
17560// String returns the string representation.
17561//
17562// API parameter values that are decorated as "sensitive" in the API will not
17563// be included in the string output. The member name will be present, but the
17564// value will be replaced with "sensitive".
17565func (s SSEKMS) String() string {
17566	return awsutil.Prettify(s)
17567}
17568
17569// GoString returns the string representation.
17570//
17571// API parameter values that are decorated as "sensitive" in the API will not
17572// be included in the string output. The member name will be present, but the
17573// value will be replaced with "sensitive".
17574func (s SSEKMS) GoString() string {
17575	return s.String()
17576}
17577
17578// Validate inspects the fields of the type to determine if they are valid.
17579func (s *SSEKMS) Validate() error {
17580	invalidParams := request.ErrInvalidParams{Context: "SSEKMS"}
17581	if s.KeyId == nil {
17582		invalidParams.Add(request.NewErrParamRequired("KeyId"))
17583	}
17584
17585	if invalidParams.Len() > 0 {
17586		return invalidParams
17587	}
17588	return nil
17589}
17590
17591// SetKeyId sets the KeyId field's value.
17592func (s *SSEKMS) SetKeyId(v string) *SSEKMS {
17593	s.KeyId = &v
17594	return s
17595}
17596
17597type SSES3 struct {
17598	_ struct{} `locationName:"SSE-S3" type:"structure"`
17599}
17600
17601// String returns the string representation.
17602//
17603// API parameter values that are decorated as "sensitive" in the API will not
17604// be included in the string output. The member name will be present, but the
17605// value will be replaced with "sensitive".
17606func (s SSES3) String() string {
17607	return awsutil.Prettify(s)
17608}
17609
17610// GoString returns the string representation.
17611//
17612// API parameter values that are decorated as "sensitive" in the API will not
17613// be included in the string output. The member name will be present, but the
17614// value will be replaced with "sensitive".
17615func (s SSES3) GoString() string {
17616	return s.String()
17617}
17618
17619type SelectionCriteria struct {
17620	_ struct{} `type:"structure"`
17621
17622	// A container for the delimiter of the selection criteria being used.
17623	Delimiter *string `type:"string"`
17624
17625	// The max depth of the selection criteria
17626	MaxDepth *int64 `min:"1" type:"integer"`
17627
17628	// The minimum number of storage bytes percentage whose metrics will be selected.
17629	//
17630	// You must choose a value greater than or equal to 1.0.
17631	MinStorageBytesPercentage *float64 `min:"0.1" type:"double"`
17632}
17633
17634// String returns the string representation.
17635//
17636// API parameter values that are decorated as "sensitive" in the API will not
17637// be included in the string output. The member name will be present, but the
17638// value will be replaced with "sensitive".
17639func (s SelectionCriteria) String() string {
17640	return awsutil.Prettify(s)
17641}
17642
17643// GoString returns the string representation.
17644//
17645// API parameter values that are decorated as "sensitive" in the API will not
17646// be included in the string output. The member name will be present, but the
17647// value will be replaced with "sensitive".
17648func (s SelectionCriteria) GoString() string {
17649	return s.String()
17650}
17651
17652// Validate inspects the fields of the type to determine if they are valid.
17653func (s *SelectionCriteria) Validate() error {
17654	invalidParams := request.ErrInvalidParams{Context: "SelectionCriteria"}
17655	if s.MaxDepth != nil && *s.MaxDepth < 1 {
17656		invalidParams.Add(request.NewErrParamMinValue("MaxDepth", 1))
17657	}
17658	if s.MinStorageBytesPercentage != nil && *s.MinStorageBytesPercentage < 0.1 {
17659		invalidParams.Add(request.NewErrParamMinValue("MinStorageBytesPercentage", 0.1))
17660	}
17661
17662	if invalidParams.Len() > 0 {
17663		return invalidParams
17664	}
17665	return nil
17666}
17667
17668// SetDelimiter sets the Delimiter field's value.
17669func (s *SelectionCriteria) SetDelimiter(v string) *SelectionCriteria {
17670	s.Delimiter = &v
17671	return s
17672}
17673
17674// SetMaxDepth sets the MaxDepth field's value.
17675func (s *SelectionCriteria) SetMaxDepth(v int64) *SelectionCriteria {
17676	s.MaxDepth = &v
17677	return s
17678}
17679
17680// SetMinStorageBytesPercentage sets the MinStorageBytesPercentage field's value.
17681func (s *SelectionCriteria) SetMinStorageBytesPercentage(v float64) *SelectionCriteria {
17682	s.MinStorageBytesPercentage = &v
17683	return s
17684}
17685
17686// The Amazon Web Services organization for your S3 Storage Lens.
17687type StorageLensAwsOrg struct {
17688	_ struct{} `type:"structure"`
17689
17690	// A container for the Amazon Resource Name (ARN) of the Amazon Web Services
17691	// organization. This property is read-only and follows the following format:
17692	// arn:aws:organizations:us-east-1:example-account-id:organization/o-ex2l495dck
17693	//
17694	// Arn is a required field
17695	Arn *string `min:"1" type:"string" required:"true"`
17696}
17697
17698// String returns the string representation.
17699//
17700// API parameter values that are decorated as "sensitive" in the API will not
17701// be included in the string output. The member name will be present, but the
17702// value will be replaced with "sensitive".
17703func (s StorageLensAwsOrg) String() string {
17704	return awsutil.Prettify(s)
17705}
17706
17707// GoString returns the string representation.
17708//
17709// API parameter values that are decorated as "sensitive" in the API will not
17710// be included in the string output. The member name will be present, but the
17711// value will be replaced with "sensitive".
17712func (s StorageLensAwsOrg) GoString() string {
17713	return s.String()
17714}
17715
17716// Validate inspects the fields of the type to determine if they are valid.
17717func (s *StorageLensAwsOrg) Validate() error {
17718	invalidParams := request.ErrInvalidParams{Context: "StorageLensAwsOrg"}
17719	if s.Arn == nil {
17720		invalidParams.Add(request.NewErrParamRequired("Arn"))
17721	}
17722	if s.Arn != nil && len(*s.Arn) < 1 {
17723		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
17724	}
17725
17726	if invalidParams.Len() > 0 {
17727		return invalidParams
17728	}
17729	return nil
17730}
17731
17732// SetArn sets the Arn field's value.
17733func (s *StorageLensAwsOrg) SetArn(v string) *StorageLensAwsOrg {
17734	s.Arn = &v
17735	return s
17736}
17737
17738// A container for the Amazon S3 Storage Lens configuration.
17739type StorageLensConfiguration struct {
17740	_ struct{} `type:"structure"`
17741
17742	// A container for all the account-level configurations of your S3 Storage Lens
17743	// configuration.
17744	//
17745	// AccountLevel is a required field
17746	AccountLevel *AccountLevel `type:"structure" required:"true"`
17747
17748	// A container for the Amazon Web Services organization for this S3 Storage
17749	// Lens configuration.
17750	AwsOrg *StorageLensAwsOrg `type:"structure"`
17751
17752	// A container to specify the properties of your S3 Storage Lens metrics export
17753	// including, the destination, schema and format.
17754	DataExport *StorageLensDataExport `type:"structure"`
17755
17756	// A container for what is excluded in this configuration. This container can
17757	// only be valid if there is no Include container submitted, and it's not empty.
17758	Exclude *Exclude `type:"structure"`
17759
17760	// A container for the Amazon S3 Storage Lens configuration ID.
17761	//
17762	// Id is a required field
17763	Id *string `min:"1" type:"string" required:"true"`
17764
17765	// A container for what is included in this configuration. This container can
17766	// only be valid if there is no Exclude container submitted, and it's not empty.
17767	Include *Include `type:"structure"`
17768
17769	// A container for whether the S3 Storage Lens configuration is enabled.
17770	//
17771	// IsEnabled is a required field
17772	IsEnabled *bool `type:"boolean" required:"true"`
17773
17774	// The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This
17775	// property is read-only and follows the following format: arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name
17776	StorageLensArn *string `min:"1" type:"string"`
17777}
17778
17779// String returns the string representation.
17780//
17781// API parameter values that are decorated as "sensitive" in the API will not
17782// be included in the string output. The member name will be present, but the
17783// value will be replaced with "sensitive".
17784func (s StorageLensConfiguration) String() string {
17785	return awsutil.Prettify(s)
17786}
17787
17788// GoString returns the string representation.
17789//
17790// API parameter values that are decorated as "sensitive" in the API will not
17791// be included in the string output. The member name will be present, but the
17792// value will be replaced with "sensitive".
17793func (s StorageLensConfiguration) GoString() string {
17794	return s.String()
17795}
17796
17797// Validate inspects the fields of the type to determine if they are valid.
17798func (s *StorageLensConfiguration) Validate() error {
17799	invalidParams := request.ErrInvalidParams{Context: "StorageLensConfiguration"}
17800	if s.AccountLevel == nil {
17801		invalidParams.Add(request.NewErrParamRequired("AccountLevel"))
17802	}
17803	if s.Id == nil {
17804		invalidParams.Add(request.NewErrParamRequired("Id"))
17805	}
17806	if s.Id != nil && len(*s.Id) < 1 {
17807		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
17808	}
17809	if s.IsEnabled == nil {
17810		invalidParams.Add(request.NewErrParamRequired("IsEnabled"))
17811	}
17812	if s.StorageLensArn != nil && len(*s.StorageLensArn) < 1 {
17813		invalidParams.Add(request.NewErrParamMinLen("StorageLensArn", 1))
17814	}
17815	if s.AccountLevel != nil {
17816		if err := s.AccountLevel.Validate(); err != nil {
17817			invalidParams.AddNested("AccountLevel", err.(request.ErrInvalidParams))
17818		}
17819	}
17820	if s.AwsOrg != nil {
17821		if err := s.AwsOrg.Validate(); err != nil {
17822			invalidParams.AddNested("AwsOrg", err.(request.ErrInvalidParams))
17823		}
17824	}
17825	if s.DataExport != nil {
17826		if err := s.DataExport.Validate(); err != nil {
17827			invalidParams.AddNested("DataExport", err.(request.ErrInvalidParams))
17828		}
17829	}
17830
17831	if invalidParams.Len() > 0 {
17832		return invalidParams
17833	}
17834	return nil
17835}
17836
17837// SetAccountLevel sets the AccountLevel field's value.
17838func (s *StorageLensConfiguration) SetAccountLevel(v *AccountLevel) *StorageLensConfiguration {
17839	s.AccountLevel = v
17840	return s
17841}
17842
17843// SetAwsOrg sets the AwsOrg field's value.
17844func (s *StorageLensConfiguration) SetAwsOrg(v *StorageLensAwsOrg) *StorageLensConfiguration {
17845	s.AwsOrg = v
17846	return s
17847}
17848
17849// SetDataExport sets the DataExport field's value.
17850func (s *StorageLensConfiguration) SetDataExport(v *StorageLensDataExport) *StorageLensConfiguration {
17851	s.DataExport = v
17852	return s
17853}
17854
17855// SetExclude sets the Exclude field's value.
17856func (s *StorageLensConfiguration) SetExclude(v *Exclude) *StorageLensConfiguration {
17857	s.Exclude = v
17858	return s
17859}
17860
17861// SetId sets the Id field's value.
17862func (s *StorageLensConfiguration) SetId(v string) *StorageLensConfiguration {
17863	s.Id = &v
17864	return s
17865}
17866
17867// SetInclude sets the Include field's value.
17868func (s *StorageLensConfiguration) SetInclude(v *Include) *StorageLensConfiguration {
17869	s.Include = v
17870	return s
17871}
17872
17873// SetIsEnabled sets the IsEnabled field's value.
17874func (s *StorageLensConfiguration) SetIsEnabled(v bool) *StorageLensConfiguration {
17875	s.IsEnabled = &v
17876	return s
17877}
17878
17879// SetStorageLensArn sets the StorageLensArn field's value.
17880func (s *StorageLensConfiguration) SetStorageLensArn(v string) *StorageLensConfiguration {
17881	s.StorageLensArn = &v
17882	return s
17883}
17884
17885// A container to specify the properties of your S3 Storage Lens metrics export,
17886// including the destination, schema, and format.
17887type StorageLensDataExport struct {
17888	_ struct{} `type:"structure"`
17889
17890	// A container for the bucket where the S3 Storage Lens metrics export will
17891	// be located.
17892	//
17893	// This bucket must be located in the same Region as the storage lens configuration.
17894	//
17895	// S3BucketDestination is a required field
17896	S3BucketDestination *S3BucketDestination `type:"structure" required:"true"`
17897}
17898
17899// String returns the string representation.
17900//
17901// API parameter values that are decorated as "sensitive" in the API will not
17902// be included in the string output. The member name will be present, but the
17903// value will be replaced with "sensitive".
17904func (s StorageLensDataExport) String() string {
17905	return awsutil.Prettify(s)
17906}
17907
17908// GoString returns the string representation.
17909//
17910// API parameter values that are decorated as "sensitive" in the API will not
17911// be included in the string output. The member name will be present, but the
17912// value will be replaced with "sensitive".
17913func (s StorageLensDataExport) GoString() string {
17914	return s.String()
17915}
17916
17917// Validate inspects the fields of the type to determine if they are valid.
17918func (s *StorageLensDataExport) Validate() error {
17919	invalidParams := request.ErrInvalidParams{Context: "StorageLensDataExport"}
17920	if s.S3BucketDestination == nil {
17921		invalidParams.Add(request.NewErrParamRequired("S3BucketDestination"))
17922	}
17923	if s.S3BucketDestination != nil {
17924		if err := s.S3BucketDestination.Validate(); err != nil {
17925			invalidParams.AddNested("S3BucketDestination", err.(request.ErrInvalidParams))
17926		}
17927	}
17928
17929	if invalidParams.Len() > 0 {
17930		return invalidParams
17931	}
17932	return nil
17933}
17934
17935// SetS3BucketDestination sets the S3BucketDestination field's value.
17936func (s *StorageLensDataExport) SetS3BucketDestination(v *S3BucketDestination) *StorageLensDataExport {
17937	s.S3BucketDestination = v
17938	return s
17939}
17940
17941// A container for the encryption of the S3 Storage Lens metrics exports.
17942type StorageLensDataExportEncryption struct {
17943	_ struct{} `type:"structure"`
17944
17945	SSEKMS *SSEKMS `locationName:"SSE-KMS" type:"structure"`
17946
17947	SSES3 *SSES3 `locationName:"SSE-S3" type:"structure"`
17948}
17949
17950// String returns the string representation.
17951//
17952// API parameter values that are decorated as "sensitive" in the API will not
17953// be included in the string output. The member name will be present, but the
17954// value will be replaced with "sensitive".
17955func (s StorageLensDataExportEncryption) String() string {
17956	return awsutil.Prettify(s)
17957}
17958
17959// GoString returns the string representation.
17960//
17961// API parameter values that are decorated as "sensitive" in the API will not
17962// be included in the string output. The member name will be present, but the
17963// value will be replaced with "sensitive".
17964func (s StorageLensDataExportEncryption) GoString() string {
17965	return s.String()
17966}
17967
17968// Validate inspects the fields of the type to determine if they are valid.
17969func (s *StorageLensDataExportEncryption) Validate() error {
17970	invalidParams := request.ErrInvalidParams{Context: "StorageLensDataExportEncryption"}
17971	if s.SSEKMS != nil {
17972		if err := s.SSEKMS.Validate(); err != nil {
17973			invalidParams.AddNested("SSEKMS", err.(request.ErrInvalidParams))
17974		}
17975	}
17976
17977	if invalidParams.Len() > 0 {
17978		return invalidParams
17979	}
17980	return nil
17981}
17982
17983// SetSSEKMS sets the SSEKMS field's value.
17984func (s *StorageLensDataExportEncryption) SetSSEKMS(v *SSEKMS) *StorageLensDataExportEncryption {
17985	s.SSEKMS = v
17986	return s
17987}
17988
17989// SetSSES3 sets the SSES3 field's value.
17990func (s *StorageLensDataExportEncryption) SetSSES3(v *SSES3) *StorageLensDataExportEncryption {
17991	s.SSES3 = v
17992	return s
17993}
17994
17995type StorageLensTag struct {
17996	_ struct{} `type:"structure"`
17997
17998	// Key is a required field
17999	Key *string `min:"1" type:"string" required:"true"`
18000
18001	// Value is a required field
18002	Value *string `type:"string" required:"true"`
18003}
18004
18005// String returns the string representation.
18006//
18007// API parameter values that are decorated as "sensitive" in the API will not
18008// be included in the string output. The member name will be present, but the
18009// value will be replaced with "sensitive".
18010func (s StorageLensTag) String() string {
18011	return awsutil.Prettify(s)
18012}
18013
18014// GoString returns the string representation.
18015//
18016// API parameter values that are decorated as "sensitive" in the API will not
18017// be included in the string output. The member name will be present, but the
18018// value will be replaced with "sensitive".
18019func (s StorageLensTag) GoString() string {
18020	return s.String()
18021}
18022
18023// Validate inspects the fields of the type to determine if they are valid.
18024func (s *StorageLensTag) Validate() error {
18025	invalidParams := request.ErrInvalidParams{Context: "StorageLensTag"}
18026	if s.Key == nil {
18027		invalidParams.Add(request.NewErrParamRequired("Key"))
18028	}
18029	if s.Key != nil && len(*s.Key) < 1 {
18030		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
18031	}
18032	if s.Value == nil {
18033		invalidParams.Add(request.NewErrParamRequired("Value"))
18034	}
18035
18036	if invalidParams.Len() > 0 {
18037		return invalidParams
18038	}
18039	return nil
18040}
18041
18042// SetKey sets the Key field's value.
18043func (s *StorageLensTag) SetKey(v string) *StorageLensTag {
18044	s.Key = &v
18045	return s
18046}
18047
18048// SetValue sets the Value field's value.
18049func (s *StorageLensTag) SetValue(v string) *StorageLensTag {
18050	s.Value = &v
18051	return s
18052}
18053
18054type Tagging struct {
18055	_ struct{} `type:"structure"`
18056
18057	// A collection for a set of tags.
18058	//
18059	// TagSet is a required field
18060	TagSet []*S3Tag `type:"list" required:"true"`
18061}
18062
18063// String returns the string representation.
18064//
18065// API parameter values that are decorated as "sensitive" in the API will not
18066// be included in the string output. The member name will be present, but the
18067// value will be replaced with "sensitive".
18068func (s Tagging) String() string {
18069	return awsutil.Prettify(s)
18070}
18071
18072// GoString returns the string representation.
18073//
18074// API parameter values that are decorated as "sensitive" in the API will not
18075// be included in the string output. The member name will be present, but the
18076// value will be replaced with "sensitive".
18077func (s Tagging) GoString() string {
18078	return s.String()
18079}
18080
18081// Validate inspects the fields of the type to determine if they are valid.
18082func (s *Tagging) Validate() error {
18083	invalidParams := request.ErrInvalidParams{Context: "Tagging"}
18084	if s.TagSet == nil {
18085		invalidParams.Add(request.NewErrParamRequired("TagSet"))
18086	}
18087	if s.TagSet != nil {
18088		for i, v := range s.TagSet {
18089			if v == nil {
18090				continue
18091			}
18092			if err := v.Validate(); err != nil {
18093				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSet", i), err.(request.ErrInvalidParams))
18094			}
18095		}
18096	}
18097
18098	if invalidParams.Len() > 0 {
18099		return invalidParams
18100	}
18101	return nil
18102}
18103
18104// SetTagSet sets the TagSet field's value.
18105func (s *Tagging) SetTagSet(v []*S3Tag) *Tagging {
18106	s.TagSet = v
18107	return s
18108}
18109
18110// Specifies when an object transitions to a specified storage class. For more
18111// information about Amazon S3 Lifecycle configuration rules, see Transitioning
18112// objects using Amazon S3 Lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html)
18113// in the Amazon S3 User Guide.
18114type Transition struct {
18115	_ struct{} `type:"structure"`
18116
18117	// Indicates when objects are transitioned to the specified storage class. The
18118	// date value must be in ISO 8601 format. The time is always midnight UTC.
18119	Date *time.Time `type:"timestamp"`
18120
18121	// Indicates the number of days after creation when objects are transitioned
18122	// to the specified storage class. The value must be a positive integer.
18123	Days *int64 `type:"integer"`
18124
18125	// The storage class to which you want the object to transition.
18126	StorageClass *string `type:"string" enum:"TransitionStorageClass"`
18127}
18128
18129// String returns the string representation.
18130//
18131// API parameter values that are decorated as "sensitive" in the API will not
18132// be included in the string output. The member name will be present, but the
18133// value will be replaced with "sensitive".
18134func (s Transition) String() string {
18135	return awsutil.Prettify(s)
18136}
18137
18138// GoString returns the string representation.
18139//
18140// API parameter values that are decorated as "sensitive" in the API will not
18141// be included in the string output. The member name will be present, but the
18142// value will be replaced with "sensitive".
18143func (s Transition) GoString() string {
18144	return s.String()
18145}
18146
18147// SetDate sets the Date field's value.
18148func (s *Transition) SetDate(v time.Time) *Transition {
18149	s.Date = &v
18150	return s
18151}
18152
18153// SetDays sets the Days field's value.
18154func (s *Transition) SetDays(v int64) *Transition {
18155	s.Days = &v
18156	return s
18157}
18158
18159// SetStorageClass sets the StorageClass field's value.
18160func (s *Transition) SetStorageClass(v string) *Transition {
18161	s.StorageClass = &v
18162	return s
18163}
18164
18165type UpdateJobPriorityInput struct {
18166	_ struct{} `locationName:"UpdateJobPriorityRequest" type:"structure"`
18167
18168	// The Amazon Web Services account ID associated with the S3 Batch Operations
18169	// job.
18170	//
18171	// AccountId is a required field
18172	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
18173
18174	// The ID for the job whose priority you want to update.
18175	//
18176	// JobId is a required field
18177	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
18178
18179	// The priority you want to assign to this job.
18180	//
18181	// Priority is a required field
18182	Priority *int64 `location:"querystring" locationName:"priority" type:"integer" required:"true"`
18183}
18184
18185// String returns the string representation.
18186//
18187// API parameter values that are decorated as "sensitive" in the API will not
18188// be included in the string output. The member name will be present, but the
18189// value will be replaced with "sensitive".
18190func (s UpdateJobPriorityInput) String() string {
18191	return awsutil.Prettify(s)
18192}
18193
18194// GoString returns the string representation.
18195//
18196// API parameter values that are decorated as "sensitive" in the API will not
18197// be included in the string output. The member name will be present, but the
18198// value will be replaced with "sensitive".
18199func (s UpdateJobPriorityInput) GoString() string {
18200	return s.String()
18201}
18202
18203// Validate inspects the fields of the type to determine if they are valid.
18204func (s *UpdateJobPriorityInput) Validate() error {
18205	invalidParams := request.ErrInvalidParams{Context: "UpdateJobPriorityInput"}
18206	if s.AccountId == nil {
18207		invalidParams.Add(request.NewErrParamRequired("AccountId"))
18208	}
18209	if s.AccountId != nil && len(*s.AccountId) < 1 {
18210		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
18211	}
18212	if s.JobId == nil {
18213		invalidParams.Add(request.NewErrParamRequired("JobId"))
18214	}
18215	if s.JobId != nil && len(*s.JobId) < 5 {
18216		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
18217	}
18218	if s.Priority == nil {
18219		invalidParams.Add(request.NewErrParamRequired("Priority"))
18220	}
18221
18222	if invalidParams.Len() > 0 {
18223		return invalidParams
18224	}
18225	return nil
18226}
18227
18228// SetAccountId sets the AccountId field's value.
18229func (s *UpdateJobPriorityInput) SetAccountId(v string) *UpdateJobPriorityInput {
18230	s.AccountId = &v
18231	return s
18232}
18233
18234// SetJobId sets the JobId field's value.
18235func (s *UpdateJobPriorityInput) SetJobId(v string) *UpdateJobPriorityInput {
18236	s.JobId = &v
18237	return s
18238}
18239
18240// SetPriority sets the Priority field's value.
18241func (s *UpdateJobPriorityInput) SetPriority(v int64) *UpdateJobPriorityInput {
18242	s.Priority = &v
18243	return s
18244}
18245
18246func (s *UpdateJobPriorityInput) hostLabels() map[string]string {
18247	return map[string]string{
18248		"AccountId": aws.StringValue(s.AccountId),
18249	}
18250}
18251
18252type UpdateJobPriorityOutput struct {
18253	_ struct{} `type:"structure"`
18254
18255	// The ID for the job whose priority Amazon S3 updated.
18256	//
18257	// JobId is a required field
18258	JobId *string `min:"5" type:"string" required:"true"`
18259
18260	// The new priority assigned to the specified job.
18261	//
18262	// Priority is a required field
18263	Priority *int64 `type:"integer" required:"true"`
18264}
18265
18266// String returns the string representation.
18267//
18268// API parameter values that are decorated as "sensitive" in the API will not
18269// be included in the string output. The member name will be present, but the
18270// value will be replaced with "sensitive".
18271func (s UpdateJobPriorityOutput) String() string {
18272	return awsutil.Prettify(s)
18273}
18274
18275// GoString returns the string representation.
18276//
18277// API parameter values that are decorated as "sensitive" in the API will not
18278// be included in the string output. The member name will be present, but the
18279// value will be replaced with "sensitive".
18280func (s UpdateJobPriorityOutput) GoString() string {
18281	return s.String()
18282}
18283
18284// SetJobId sets the JobId field's value.
18285func (s *UpdateJobPriorityOutput) SetJobId(v string) *UpdateJobPriorityOutput {
18286	s.JobId = &v
18287	return s
18288}
18289
18290// SetPriority sets the Priority field's value.
18291func (s *UpdateJobPriorityOutput) SetPriority(v int64) *UpdateJobPriorityOutput {
18292	s.Priority = &v
18293	return s
18294}
18295
18296type UpdateJobStatusInput struct {
18297	_ struct{} `locationName:"UpdateJobStatusRequest" type:"structure"`
18298
18299	// The Amazon Web Services account ID associated with the S3 Batch Operations
18300	// job.
18301	//
18302	// AccountId is a required field
18303	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
18304
18305	// The ID of the job whose status you want to update.
18306	//
18307	// JobId is a required field
18308	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
18309
18310	// The status that you want to move the specified job to.
18311	//
18312	// RequestedJobStatus is a required field
18313	RequestedJobStatus *string `location:"querystring" locationName:"requestedJobStatus" type:"string" required:"true" enum:"RequestedJobStatus"`
18314
18315	// A description of the reason why you want to change the specified job's status.
18316	// This field can be any string up to the maximum length.
18317	StatusUpdateReason *string `location:"querystring" locationName:"statusUpdateReason" min:"1" type:"string"`
18318}
18319
18320// String returns the string representation.
18321//
18322// API parameter values that are decorated as "sensitive" in the API will not
18323// be included in the string output. The member name will be present, but the
18324// value will be replaced with "sensitive".
18325func (s UpdateJobStatusInput) String() string {
18326	return awsutil.Prettify(s)
18327}
18328
18329// GoString returns the string representation.
18330//
18331// API parameter values that are decorated as "sensitive" in the API will not
18332// be included in the string output. The member name will be present, but the
18333// value will be replaced with "sensitive".
18334func (s UpdateJobStatusInput) GoString() string {
18335	return s.String()
18336}
18337
18338// Validate inspects the fields of the type to determine if they are valid.
18339func (s *UpdateJobStatusInput) Validate() error {
18340	invalidParams := request.ErrInvalidParams{Context: "UpdateJobStatusInput"}
18341	if s.AccountId == nil {
18342		invalidParams.Add(request.NewErrParamRequired("AccountId"))
18343	}
18344	if s.AccountId != nil && len(*s.AccountId) < 1 {
18345		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
18346	}
18347	if s.JobId == nil {
18348		invalidParams.Add(request.NewErrParamRequired("JobId"))
18349	}
18350	if s.JobId != nil && len(*s.JobId) < 5 {
18351		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
18352	}
18353	if s.RequestedJobStatus == nil {
18354		invalidParams.Add(request.NewErrParamRequired("RequestedJobStatus"))
18355	}
18356	if s.StatusUpdateReason != nil && len(*s.StatusUpdateReason) < 1 {
18357		invalidParams.Add(request.NewErrParamMinLen("StatusUpdateReason", 1))
18358	}
18359
18360	if invalidParams.Len() > 0 {
18361		return invalidParams
18362	}
18363	return nil
18364}
18365
18366// SetAccountId sets the AccountId field's value.
18367func (s *UpdateJobStatusInput) SetAccountId(v string) *UpdateJobStatusInput {
18368	s.AccountId = &v
18369	return s
18370}
18371
18372// SetJobId sets the JobId field's value.
18373func (s *UpdateJobStatusInput) SetJobId(v string) *UpdateJobStatusInput {
18374	s.JobId = &v
18375	return s
18376}
18377
18378// SetRequestedJobStatus sets the RequestedJobStatus field's value.
18379func (s *UpdateJobStatusInput) SetRequestedJobStatus(v string) *UpdateJobStatusInput {
18380	s.RequestedJobStatus = &v
18381	return s
18382}
18383
18384// SetStatusUpdateReason sets the StatusUpdateReason field's value.
18385func (s *UpdateJobStatusInput) SetStatusUpdateReason(v string) *UpdateJobStatusInput {
18386	s.StatusUpdateReason = &v
18387	return s
18388}
18389
18390func (s *UpdateJobStatusInput) hostLabels() map[string]string {
18391	return map[string]string{
18392		"AccountId": aws.StringValue(s.AccountId),
18393	}
18394}
18395
18396type UpdateJobStatusOutput struct {
18397	_ struct{} `type:"structure"`
18398
18399	// The ID for the job whose status was updated.
18400	JobId *string `min:"5" type:"string"`
18401
18402	// The current status for the specified job.
18403	Status *string `type:"string" enum:"JobStatus"`
18404
18405	// The reason that the specified job's status was updated.
18406	StatusUpdateReason *string `min:"1" type:"string"`
18407}
18408
18409// String returns the string representation.
18410//
18411// API parameter values that are decorated as "sensitive" in the API will not
18412// be included in the string output. The member name will be present, but the
18413// value will be replaced with "sensitive".
18414func (s UpdateJobStatusOutput) String() string {
18415	return awsutil.Prettify(s)
18416}
18417
18418// GoString returns the string representation.
18419//
18420// API parameter values that are decorated as "sensitive" in the API will not
18421// be included in the string output. The member name will be present, but the
18422// value will be replaced with "sensitive".
18423func (s UpdateJobStatusOutput) GoString() string {
18424	return s.String()
18425}
18426
18427// SetJobId sets the JobId field's value.
18428func (s *UpdateJobStatusOutput) SetJobId(v string) *UpdateJobStatusOutput {
18429	s.JobId = &v
18430	return s
18431}
18432
18433// SetStatus sets the Status field's value.
18434func (s *UpdateJobStatusOutput) SetStatus(v string) *UpdateJobStatusOutput {
18435	s.Status = &v
18436	return s
18437}
18438
18439// SetStatusUpdateReason sets the StatusUpdateReason field's value.
18440func (s *UpdateJobStatusOutput) SetStatusUpdateReason(v string) *UpdateJobStatusOutput {
18441	s.StatusUpdateReason = &v
18442	return s
18443}
18444
18445// The virtual private cloud (VPC) configuration for an access point.
18446type VpcConfiguration struct {
18447	_ struct{} `type:"structure"`
18448
18449	// If this field is specified, this access point will only allow connections
18450	// from the specified VPC ID.
18451	//
18452	// VpcId is a required field
18453	VpcId *string `min:"1" type:"string" required:"true"`
18454}
18455
18456// String returns the string representation.
18457//
18458// API parameter values that are decorated as "sensitive" in the API will not
18459// be included in the string output. The member name will be present, but the
18460// value will be replaced with "sensitive".
18461func (s VpcConfiguration) String() string {
18462	return awsutil.Prettify(s)
18463}
18464
18465// GoString returns the string representation.
18466//
18467// API parameter values that are decorated as "sensitive" in the API will not
18468// be included in the string output. The member name will be present, but the
18469// value will be replaced with "sensitive".
18470func (s VpcConfiguration) GoString() string {
18471	return s.String()
18472}
18473
18474// Validate inspects the fields of the type to determine if they are valid.
18475func (s *VpcConfiguration) Validate() error {
18476	invalidParams := request.ErrInvalidParams{Context: "VpcConfiguration"}
18477	if s.VpcId == nil {
18478		invalidParams.Add(request.NewErrParamRequired("VpcId"))
18479	}
18480	if s.VpcId != nil && len(*s.VpcId) < 1 {
18481		invalidParams.Add(request.NewErrParamMinLen("VpcId", 1))
18482	}
18483
18484	if invalidParams.Len() > 0 {
18485		return invalidParams
18486	}
18487	return nil
18488}
18489
18490// SetVpcId sets the VpcId field's value.
18491func (s *VpcConfiguration) SetVpcId(v string) *VpcConfiguration {
18492	s.VpcId = &v
18493	return s
18494}
18495
18496const (
18497	// AsyncOperationNameCreateMultiRegionAccessPoint is a AsyncOperationName enum value
18498	AsyncOperationNameCreateMultiRegionAccessPoint = "CreateMultiRegionAccessPoint"
18499
18500	// AsyncOperationNameDeleteMultiRegionAccessPoint is a AsyncOperationName enum value
18501	AsyncOperationNameDeleteMultiRegionAccessPoint = "DeleteMultiRegionAccessPoint"
18502
18503	// AsyncOperationNamePutMultiRegionAccessPointPolicy is a AsyncOperationName enum value
18504	AsyncOperationNamePutMultiRegionAccessPointPolicy = "PutMultiRegionAccessPointPolicy"
18505)
18506
18507// AsyncOperationName_Values returns all elements of the AsyncOperationName enum
18508func AsyncOperationName_Values() []string {
18509	return []string{
18510		AsyncOperationNameCreateMultiRegionAccessPoint,
18511		AsyncOperationNameDeleteMultiRegionAccessPoint,
18512		AsyncOperationNamePutMultiRegionAccessPointPolicy,
18513	}
18514}
18515
18516const (
18517	// BucketCannedACLPrivate is a BucketCannedACL enum value
18518	BucketCannedACLPrivate = "private"
18519
18520	// BucketCannedACLPublicRead is a BucketCannedACL enum value
18521	BucketCannedACLPublicRead = "public-read"
18522
18523	// BucketCannedACLPublicReadWrite is a BucketCannedACL enum value
18524	BucketCannedACLPublicReadWrite = "public-read-write"
18525
18526	// BucketCannedACLAuthenticatedRead is a BucketCannedACL enum value
18527	BucketCannedACLAuthenticatedRead = "authenticated-read"
18528)
18529
18530// BucketCannedACL_Values returns all elements of the BucketCannedACL enum
18531func BucketCannedACL_Values() []string {
18532	return []string{
18533		BucketCannedACLPrivate,
18534		BucketCannedACLPublicRead,
18535		BucketCannedACLPublicReadWrite,
18536		BucketCannedACLAuthenticatedRead,
18537	}
18538}
18539
18540const (
18541	// BucketLocationConstraintEu is a BucketLocationConstraint enum value
18542	BucketLocationConstraintEu = "EU"
18543
18544	// BucketLocationConstraintEuWest1 is a BucketLocationConstraint enum value
18545	BucketLocationConstraintEuWest1 = "eu-west-1"
18546
18547	// BucketLocationConstraintUsWest1 is a BucketLocationConstraint enum value
18548	BucketLocationConstraintUsWest1 = "us-west-1"
18549
18550	// BucketLocationConstraintUsWest2 is a BucketLocationConstraint enum value
18551	BucketLocationConstraintUsWest2 = "us-west-2"
18552
18553	// BucketLocationConstraintApSouth1 is a BucketLocationConstraint enum value
18554	BucketLocationConstraintApSouth1 = "ap-south-1"
18555
18556	// BucketLocationConstraintApSoutheast1 is a BucketLocationConstraint enum value
18557	BucketLocationConstraintApSoutheast1 = "ap-southeast-1"
18558
18559	// BucketLocationConstraintApSoutheast2 is a BucketLocationConstraint enum value
18560	BucketLocationConstraintApSoutheast2 = "ap-southeast-2"
18561
18562	// BucketLocationConstraintApNortheast1 is a BucketLocationConstraint enum value
18563	BucketLocationConstraintApNortheast1 = "ap-northeast-1"
18564
18565	// BucketLocationConstraintSaEast1 is a BucketLocationConstraint enum value
18566	BucketLocationConstraintSaEast1 = "sa-east-1"
18567
18568	// BucketLocationConstraintCnNorth1 is a BucketLocationConstraint enum value
18569	BucketLocationConstraintCnNorth1 = "cn-north-1"
18570
18571	// BucketLocationConstraintEuCentral1 is a BucketLocationConstraint enum value
18572	BucketLocationConstraintEuCentral1 = "eu-central-1"
18573)
18574
18575// BucketLocationConstraint_Values returns all elements of the BucketLocationConstraint enum
18576func BucketLocationConstraint_Values() []string {
18577	return []string{
18578		BucketLocationConstraintEu,
18579		BucketLocationConstraintEuWest1,
18580		BucketLocationConstraintUsWest1,
18581		BucketLocationConstraintUsWest2,
18582		BucketLocationConstraintApSouth1,
18583		BucketLocationConstraintApSoutheast1,
18584		BucketLocationConstraintApSoutheast2,
18585		BucketLocationConstraintApNortheast1,
18586		BucketLocationConstraintSaEast1,
18587		BucketLocationConstraintCnNorth1,
18588		BucketLocationConstraintEuCentral1,
18589	}
18590}
18591
18592const (
18593	// ExpirationStatusEnabled is a ExpirationStatus enum value
18594	ExpirationStatusEnabled = "Enabled"
18595
18596	// ExpirationStatusDisabled is a ExpirationStatus enum value
18597	ExpirationStatusDisabled = "Disabled"
18598)
18599
18600// ExpirationStatus_Values returns all elements of the ExpirationStatus enum
18601func ExpirationStatus_Values() []string {
18602	return []string{
18603		ExpirationStatusEnabled,
18604		ExpirationStatusDisabled,
18605	}
18606}
18607
18608const (
18609	// FormatCsv is a Format enum value
18610	FormatCsv = "CSV"
18611
18612	// FormatParquet is a Format enum value
18613	FormatParquet = "Parquet"
18614)
18615
18616// Format_Values returns all elements of the Format enum
18617func Format_Values() []string {
18618	return []string{
18619		FormatCsv,
18620		FormatParquet,
18621	}
18622}
18623
18624const (
18625	// JobManifestFieldNameIgnore is a JobManifestFieldName enum value
18626	JobManifestFieldNameIgnore = "Ignore"
18627
18628	// JobManifestFieldNameBucket is a JobManifestFieldName enum value
18629	JobManifestFieldNameBucket = "Bucket"
18630
18631	// JobManifestFieldNameKey is a JobManifestFieldName enum value
18632	JobManifestFieldNameKey = "Key"
18633
18634	// JobManifestFieldNameVersionId is a JobManifestFieldName enum value
18635	JobManifestFieldNameVersionId = "VersionId"
18636)
18637
18638// JobManifestFieldName_Values returns all elements of the JobManifestFieldName enum
18639func JobManifestFieldName_Values() []string {
18640	return []string{
18641		JobManifestFieldNameIgnore,
18642		JobManifestFieldNameBucket,
18643		JobManifestFieldNameKey,
18644		JobManifestFieldNameVersionId,
18645	}
18646}
18647
18648const (
18649	// JobManifestFormatS3batchOperationsCsv20180820 is a JobManifestFormat enum value
18650	JobManifestFormatS3batchOperationsCsv20180820 = "S3BatchOperations_CSV_20180820"
18651
18652	// JobManifestFormatS3inventoryReportCsv20161130 is a JobManifestFormat enum value
18653	JobManifestFormatS3inventoryReportCsv20161130 = "S3InventoryReport_CSV_20161130"
18654)
18655
18656// JobManifestFormat_Values returns all elements of the JobManifestFormat enum
18657func JobManifestFormat_Values() []string {
18658	return []string{
18659		JobManifestFormatS3batchOperationsCsv20180820,
18660		JobManifestFormatS3inventoryReportCsv20161130,
18661	}
18662}
18663
18664const (
18665	// JobReportFormatReportCsv20180820 is a JobReportFormat enum value
18666	JobReportFormatReportCsv20180820 = "Report_CSV_20180820"
18667)
18668
18669// JobReportFormat_Values returns all elements of the JobReportFormat enum
18670func JobReportFormat_Values() []string {
18671	return []string{
18672		JobReportFormatReportCsv20180820,
18673	}
18674}
18675
18676const (
18677	// JobReportScopeAllTasks is a JobReportScope enum value
18678	JobReportScopeAllTasks = "AllTasks"
18679
18680	// JobReportScopeFailedTasksOnly is a JobReportScope enum value
18681	JobReportScopeFailedTasksOnly = "FailedTasksOnly"
18682)
18683
18684// JobReportScope_Values returns all elements of the JobReportScope enum
18685func JobReportScope_Values() []string {
18686	return []string{
18687		JobReportScopeAllTasks,
18688		JobReportScopeFailedTasksOnly,
18689	}
18690}
18691
18692const (
18693	// JobStatusActive is a JobStatus enum value
18694	JobStatusActive = "Active"
18695
18696	// JobStatusCancelled is a JobStatus enum value
18697	JobStatusCancelled = "Cancelled"
18698
18699	// JobStatusCancelling is a JobStatus enum value
18700	JobStatusCancelling = "Cancelling"
18701
18702	// JobStatusComplete is a JobStatus enum value
18703	JobStatusComplete = "Complete"
18704
18705	// JobStatusCompleting is a JobStatus enum value
18706	JobStatusCompleting = "Completing"
18707
18708	// JobStatusFailed is a JobStatus enum value
18709	JobStatusFailed = "Failed"
18710
18711	// JobStatusFailing is a JobStatus enum value
18712	JobStatusFailing = "Failing"
18713
18714	// JobStatusNew is a JobStatus enum value
18715	JobStatusNew = "New"
18716
18717	// JobStatusPaused is a JobStatus enum value
18718	JobStatusPaused = "Paused"
18719
18720	// JobStatusPausing is a JobStatus enum value
18721	JobStatusPausing = "Pausing"
18722
18723	// JobStatusPreparing is a JobStatus enum value
18724	JobStatusPreparing = "Preparing"
18725
18726	// JobStatusReady is a JobStatus enum value
18727	JobStatusReady = "Ready"
18728
18729	// JobStatusSuspended is a JobStatus enum value
18730	JobStatusSuspended = "Suspended"
18731)
18732
18733// JobStatus_Values returns all elements of the JobStatus enum
18734func JobStatus_Values() []string {
18735	return []string{
18736		JobStatusActive,
18737		JobStatusCancelled,
18738		JobStatusCancelling,
18739		JobStatusComplete,
18740		JobStatusCompleting,
18741		JobStatusFailed,
18742		JobStatusFailing,
18743		JobStatusNew,
18744		JobStatusPaused,
18745		JobStatusPausing,
18746		JobStatusPreparing,
18747		JobStatusReady,
18748		JobStatusSuspended,
18749	}
18750}
18751
18752const (
18753	// MultiRegionAccessPointStatusReady is a MultiRegionAccessPointStatus enum value
18754	MultiRegionAccessPointStatusReady = "READY"
18755
18756	// MultiRegionAccessPointStatusInconsistentAcrossRegions is a MultiRegionAccessPointStatus enum value
18757	MultiRegionAccessPointStatusInconsistentAcrossRegions = "INCONSISTENT_ACROSS_REGIONS"
18758
18759	// MultiRegionAccessPointStatusCreating is a MultiRegionAccessPointStatus enum value
18760	MultiRegionAccessPointStatusCreating = "CREATING"
18761
18762	// MultiRegionAccessPointStatusPartiallyCreated is a MultiRegionAccessPointStatus enum value
18763	MultiRegionAccessPointStatusPartiallyCreated = "PARTIALLY_CREATED"
18764
18765	// MultiRegionAccessPointStatusPartiallyDeleted is a MultiRegionAccessPointStatus enum value
18766	MultiRegionAccessPointStatusPartiallyDeleted = "PARTIALLY_DELETED"
18767
18768	// MultiRegionAccessPointStatusDeleting is a MultiRegionAccessPointStatus enum value
18769	MultiRegionAccessPointStatusDeleting = "DELETING"
18770)
18771
18772// MultiRegionAccessPointStatus_Values returns all elements of the MultiRegionAccessPointStatus enum
18773func MultiRegionAccessPointStatus_Values() []string {
18774	return []string{
18775		MultiRegionAccessPointStatusReady,
18776		MultiRegionAccessPointStatusInconsistentAcrossRegions,
18777		MultiRegionAccessPointStatusCreating,
18778		MultiRegionAccessPointStatusPartiallyCreated,
18779		MultiRegionAccessPointStatusPartiallyDeleted,
18780		MultiRegionAccessPointStatusDeleting,
18781	}
18782}
18783
18784const (
18785	// NetworkOriginInternet is a NetworkOrigin enum value
18786	NetworkOriginInternet = "Internet"
18787
18788	// NetworkOriginVpc is a NetworkOrigin enum value
18789	NetworkOriginVpc = "VPC"
18790)
18791
18792// NetworkOrigin_Values returns all elements of the NetworkOrigin enum
18793func NetworkOrigin_Values() []string {
18794	return []string{
18795		NetworkOriginInternet,
18796		NetworkOriginVpc,
18797	}
18798}
18799
18800const (
18801	// ObjectLambdaAllowedFeatureGetObjectRange is a ObjectLambdaAllowedFeature enum value
18802	ObjectLambdaAllowedFeatureGetObjectRange = "GetObject-Range"
18803
18804	// ObjectLambdaAllowedFeatureGetObjectPartNumber is a ObjectLambdaAllowedFeature enum value
18805	ObjectLambdaAllowedFeatureGetObjectPartNumber = "GetObject-PartNumber"
18806)
18807
18808// ObjectLambdaAllowedFeature_Values returns all elements of the ObjectLambdaAllowedFeature enum
18809func ObjectLambdaAllowedFeature_Values() []string {
18810	return []string{
18811		ObjectLambdaAllowedFeatureGetObjectRange,
18812		ObjectLambdaAllowedFeatureGetObjectPartNumber,
18813	}
18814}
18815
18816const (
18817	// ObjectLambdaTransformationConfigurationActionGetObject is a ObjectLambdaTransformationConfigurationAction enum value
18818	ObjectLambdaTransformationConfigurationActionGetObject = "GetObject"
18819)
18820
18821// ObjectLambdaTransformationConfigurationAction_Values returns all elements of the ObjectLambdaTransformationConfigurationAction enum
18822func ObjectLambdaTransformationConfigurationAction_Values() []string {
18823	return []string{
18824		ObjectLambdaTransformationConfigurationActionGetObject,
18825	}
18826}
18827
18828const (
18829	// OperationNameLambdaInvoke is a OperationName enum value
18830	OperationNameLambdaInvoke = "LambdaInvoke"
18831
18832	// OperationNameS3putObjectCopy is a OperationName enum value
18833	OperationNameS3putObjectCopy = "S3PutObjectCopy"
18834
18835	// OperationNameS3putObjectAcl is a OperationName enum value
18836	OperationNameS3putObjectAcl = "S3PutObjectAcl"
18837
18838	// OperationNameS3putObjectTagging is a OperationName enum value
18839	OperationNameS3putObjectTagging = "S3PutObjectTagging"
18840
18841	// OperationNameS3deleteObjectTagging is a OperationName enum value
18842	OperationNameS3deleteObjectTagging = "S3DeleteObjectTagging"
18843
18844	// OperationNameS3initiateRestoreObject is a OperationName enum value
18845	OperationNameS3initiateRestoreObject = "S3InitiateRestoreObject"
18846
18847	// OperationNameS3putObjectLegalHold is a OperationName enum value
18848	OperationNameS3putObjectLegalHold = "S3PutObjectLegalHold"
18849
18850	// OperationNameS3putObjectRetention is a OperationName enum value
18851	OperationNameS3putObjectRetention = "S3PutObjectRetention"
18852)
18853
18854// OperationName_Values returns all elements of the OperationName enum
18855func OperationName_Values() []string {
18856	return []string{
18857		OperationNameLambdaInvoke,
18858		OperationNameS3putObjectCopy,
18859		OperationNameS3putObjectAcl,
18860		OperationNameS3putObjectTagging,
18861		OperationNameS3deleteObjectTagging,
18862		OperationNameS3initiateRestoreObject,
18863		OperationNameS3putObjectLegalHold,
18864		OperationNameS3putObjectRetention,
18865	}
18866}
18867
18868const (
18869	// OutputSchemaVersionV1 is a OutputSchemaVersion enum value
18870	OutputSchemaVersionV1 = "V_1"
18871)
18872
18873// OutputSchemaVersion_Values returns all elements of the OutputSchemaVersion enum
18874func OutputSchemaVersion_Values() []string {
18875	return []string{
18876		OutputSchemaVersionV1,
18877	}
18878}
18879
18880const (
18881	// RequestedJobStatusCancelled is a RequestedJobStatus enum value
18882	RequestedJobStatusCancelled = "Cancelled"
18883
18884	// RequestedJobStatusReady is a RequestedJobStatus enum value
18885	RequestedJobStatusReady = "Ready"
18886)
18887
18888// RequestedJobStatus_Values returns all elements of the RequestedJobStatus enum
18889func RequestedJobStatus_Values() []string {
18890	return []string{
18891		RequestedJobStatusCancelled,
18892		RequestedJobStatusReady,
18893	}
18894}
18895
18896const (
18897	// S3CannedAccessControlListPrivate is a S3CannedAccessControlList enum value
18898	S3CannedAccessControlListPrivate = "private"
18899
18900	// S3CannedAccessControlListPublicRead is a S3CannedAccessControlList enum value
18901	S3CannedAccessControlListPublicRead = "public-read"
18902
18903	// S3CannedAccessControlListPublicReadWrite is a S3CannedAccessControlList enum value
18904	S3CannedAccessControlListPublicReadWrite = "public-read-write"
18905
18906	// S3CannedAccessControlListAwsExecRead is a S3CannedAccessControlList enum value
18907	S3CannedAccessControlListAwsExecRead = "aws-exec-read"
18908
18909	// S3CannedAccessControlListAuthenticatedRead is a S3CannedAccessControlList enum value
18910	S3CannedAccessControlListAuthenticatedRead = "authenticated-read"
18911
18912	// S3CannedAccessControlListBucketOwnerRead is a S3CannedAccessControlList enum value
18913	S3CannedAccessControlListBucketOwnerRead = "bucket-owner-read"
18914
18915	// S3CannedAccessControlListBucketOwnerFullControl is a S3CannedAccessControlList enum value
18916	S3CannedAccessControlListBucketOwnerFullControl = "bucket-owner-full-control"
18917)
18918
18919// S3CannedAccessControlList_Values returns all elements of the S3CannedAccessControlList enum
18920func S3CannedAccessControlList_Values() []string {
18921	return []string{
18922		S3CannedAccessControlListPrivate,
18923		S3CannedAccessControlListPublicRead,
18924		S3CannedAccessControlListPublicReadWrite,
18925		S3CannedAccessControlListAwsExecRead,
18926		S3CannedAccessControlListAuthenticatedRead,
18927		S3CannedAccessControlListBucketOwnerRead,
18928		S3CannedAccessControlListBucketOwnerFullControl,
18929	}
18930}
18931
18932const (
18933	// S3GlacierJobTierBulk is a S3GlacierJobTier enum value
18934	S3GlacierJobTierBulk = "BULK"
18935
18936	// S3GlacierJobTierStandard is a S3GlacierJobTier enum value
18937	S3GlacierJobTierStandard = "STANDARD"
18938)
18939
18940// S3GlacierJobTier_Values returns all elements of the S3GlacierJobTier enum
18941func S3GlacierJobTier_Values() []string {
18942	return []string{
18943		S3GlacierJobTierBulk,
18944		S3GlacierJobTierStandard,
18945	}
18946}
18947
18948const (
18949	// S3GranteeTypeIdentifierId is a S3GranteeTypeIdentifier enum value
18950	S3GranteeTypeIdentifierId = "id"
18951
18952	// S3GranteeTypeIdentifierEmailAddress is a S3GranteeTypeIdentifier enum value
18953	S3GranteeTypeIdentifierEmailAddress = "emailAddress"
18954
18955	// S3GranteeTypeIdentifierUri is a S3GranteeTypeIdentifier enum value
18956	S3GranteeTypeIdentifierUri = "uri"
18957)
18958
18959// S3GranteeTypeIdentifier_Values returns all elements of the S3GranteeTypeIdentifier enum
18960func S3GranteeTypeIdentifier_Values() []string {
18961	return []string{
18962		S3GranteeTypeIdentifierId,
18963		S3GranteeTypeIdentifierEmailAddress,
18964		S3GranteeTypeIdentifierUri,
18965	}
18966}
18967
18968const (
18969	// S3MetadataDirectiveCopy is a S3MetadataDirective enum value
18970	S3MetadataDirectiveCopy = "COPY"
18971
18972	// S3MetadataDirectiveReplace is a S3MetadataDirective enum value
18973	S3MetadataDirectiveReplace = "REPLACE"
18974)
18975
18976// S3MetadataDirective_Values returns all elements of the S3MetadataDirective enum
18977func S3MetadataDirective_Values() []string {
18978	return []string{
18979		S3MetadataDirectiveCopy,
18980		S3MetadataDirectiveReplace,
18981	}
18982}
18983
18984const (
18985	// S3ObjectLockLegalHoldStatusOff is a S3ObjectLockLegalHoldStatus enum value
18986	S3ObjectLockLegalHoldStatusOff = "OFF"
18987
18988	// S3ObjectLockLegalHoldStatusOn is a S3ObjectLockLegalHoldStatus enum value
18989	S3ObjectLockLegalHoldStatusOn = "ON"
18990)
18991
18992// S3ObjectLockLegalHoldStatus_Values returns all elements of the S3ObjectLockLegalHoldStatus enum
18993func S3ObjectLockLegalHoldStatus_Values() []string {
18994	return []string{
18995		S3ObjectLockLegalHoldStatusOff,
18996		S3ObjectLockLegalHoldStatusOn,
18997	}
18998}
18999
19000const (
19001	// S3ObjectLockModeCompliance is a S3ObjectLockMode enum value
19002	S3ObjectLockModeCompliance = "COMPLIANCE"
19003
19004	// S3ObjectLockModeGovernance is a S3ObjectLockMode enum value
19005	S3ObjectLockModeGovernance = "GOVERNANCE"
19006)
19007
19008// S3ObjectLockMode_Values returns all elements of the S3ObjectLockMode enum
19009func S3ObjectLockMode_Values() []string {
19010	return []string{
19011		S3ObjectLockModeCompliance,
19012		S3ObjectLockModeGovernance,
19013	}
19014}
19015
19016const (
19017	// S3ObjectLockRetentionModeCompliance is a S3ObjectLockRetentionMode enum value
19018	S3ObjectLockRetentionModeCompliance = "COMPLIANCE"
19019
19020	// S3ObjectLockRetentionModeGovernance is a S3ObjectLockRetentionMode enum value
19021	S3ObjectLockRetentionModeGovernance = "GOVERNANCE"
19022)
19023
19024// S3ObjectLockRetentionMode_Values returns all elements of the S3ObjectLockRetentionMode enum
19025func S3ObjectLockRetentionMode_Values() []string {
19026	return []string{
19027		S3ObjectLockRetentionModeCompliance,
19028		S3ObjectLockRetentionModeGovernance,
19029	}
19030}
19031
19032const (
19033	// S3PermissionFullControl is a S3Permission enum value
19034	S3PermissionFullControl = "FULL_CONTROL"
19035
19036	// S3PermissionRead is a S3Permission enum value
19037	S3PermissionRead = "READ"
19038
19039	// S3PermissionWrite is a S3Permission enum value
19040	S3PermissionWrite = "WRITE"
19041
19042	// S3PermissionReadAcp is a S3Permission enum value
19043	S3PermissionReadAcp = "READ_ACP"
19044
19045	// S3PermissionWriteAcp is a S3Permission enum value
19046	S3PermissionWriteAcp = "WRITE_ACP"
19047)
19048
19049// S3Permission_Values returns all elements of the S3Permission enum
19050func S3Permission_Values() []string {
19051	return []string{
19052		S3PermissionFullControl,
19053		S3PermissionRead,
19054		S3PermissionWrite,
19055		S3PermissionReadAcp,
19056		S3PermissionWriteAcp,
19057	}
19058}
19059
19060const (
19061	// S3SSEAlgorithmAes256 is a S3SSEAlgorithm enum value
19062	S3SSEAlgorithmAes256 = "AES256"
19063
19064	// S3SSEAlgorithmKms is a S3SSEAlgorithm enum value
19065	S3SSEAlgorithmKms = "KMS"
19066)
19067
19068// S3SSEAlgorithm_Values returns all elements of the S3SSEAlgorithm enum
19069func S3SSEAlgorithm_Values() []string {
19070	return []string{
19071		S3SSEAlgorithmAes256,
19072		S3SSEAlgorithmKms,
19073	}
19074}
19075
19076const (
19077	// S3StorageClassStandard is a S3StorageClass enum value
19078	S3StorageClassStandard = "STANDARD"
19079
19080	// S3StorageClassStandardIa is a S3StorageClass enum value
19081	S3StorageClassStandardIa = "STANDARD_IA"
19082
19083	// S3StorageClassOnezoneIa is a S3StorageClass enum value
19084	S3StorageClassOnezoneIa = "ONEZONE_IA"
19085
19086	// S3StorageClassGlacier is a S3StorageClass enum value
19087	S3StorageClassGlacier = "GLACIER"
19088
19089	// S3StorageClassIntelligentTiering is a S3StorageClass enum value
19090	S3StorageClassIntelligentTiering = "INTELLIGENT_TIERING"
19091
19092	// S3StorageClassDeepArchive is a S3StorageClass enum value
19093	S3StorageClassDeepArchive = "DEEP_ARCHIVE"
19094)
19095
19096// S3StorageClass_Values returns all elements of the S3StorageClass enum
19097func S3StorageClass_Values() []string {
19098	return []string{
19099		S3StorageClassStandard,
19100		S3StorageClassStandardIa,
19101		S3StorageClassOnezoneIa,
19102		S3StorageClassGlacier,
19103		S3StorageClassIntelligentTiering,
19104		S3StorageClassDeepArchive,
19105	}
19106}
19107
19108const (
19109	// TransitionStorageClassGlacier is a TransitionStorageClass enum value
19110	TransitionStorageClassGlacier = "GLACIER"
19111
19112	// TransitionStorageClassStandardIa is a TransitionStorageClass enum value
19113	TransitionStorageClassStandardIa = "STANDARD_IA"
19114
19115	// TransitionStorageClassOnezoneIa is a TransitionStorageClass enum value
19116	TransitionStorageClassOnezoneIa = "ONEZONE_IA"
19117
19118	// TransitionStorageClassIntelligentTiering is a TransitionStorageClass enum value
19119	TransitionStorageClassIntelligentTiering = "INTELLIGENT_TIERING"
19120
19121	// TransitionStorageClassDeepArchive is a TransitionStorageClass enum value
19122	TransitionStorageClassDeepArchive = "DEEP_ARCHIVE"
19123)
19124
19125// TransitionStorageClass_Values returns all elements of the TransitionStorageClass enum
19126func TransitionStorageClass_Values() []string {
19127	return []string{
19128		TransitionStorageClassGlacier,
19129		TransitionStorageClassStandardIa,
19130		TransitionStorageClassOnezoneIa,
19131		TransitionStorageClassIntelligentTiering,
19132		TransitionStorageClassDeepArchive,
19133	}
19134}
19135