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 Simple Storage Service 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 Simple Storage Service 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 Simple Storage Service 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 Simple Storage Service API.
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 Simple Storage Service 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 AWS 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 Simple Storage Service 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 opDeleteAccessPoint = "DeleteAccessPoint"
436
437// DeleteAccessPointRequest generates a "aws/request.Request" representing the
438// client's request for the DeleteAccessPoint 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 DeleteAccessPoint for more information on using the DeleteAccessPoint
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 DeleteAccessPointRequest method.
453//    req, resp := client.DeleteAccessPointRequest(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/DeleteAccessPoint
461func (c *S3Control) DeleteAccessPointRequest(input *DeleteAccessPointInput) (req *request.Request, output *DeleteAccessPointOutput) {
462	op := &request.Operation{
463		Name:       opDeleteAccessPoint,
464		HTTPMethod: "DELETE",
465		HTTPPath:   "/v20180820/accesspoint/{name}",
466	}
467
468	if input == nil {
469		input = &DeleteAccessPointInput{}
470	}
471
472	output = &DeleteAccessPointOutput{}
473	req = c.newRequest(op, input, output)
474	// update account id or check if provided input for account id member matches
475	// the account id present in ARN
476	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
477	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
478	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
479	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
480	return
481}
482
483// DeleteAccessPoint API operation for AWS S3 Control.
484//
485// Deletes the specified access point.
486//
487// All Amazon S3 on Outposts REST API requests for this action require an additional
488// parameter of x-amz-outpost-id to be passed with the request and an S3 on
489// Outposts endpoint hostname prefix instead of s3-control. For an example of
490// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
491// endpoint hostname prefix and the x-amz-outpost-id derived using the access
492// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html#API_control_DeleteAccessPoint_Examples)
493// section.
494//
495// The following actions are related to DeleteAccessPoint:
496//
497//    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
498//
499//    * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)
500//
501//    * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)
502//
503// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
504// with awserr.Error's Code and Message methods to get detailed information about
505// the error.
506//
507// See the AWS API reference guide for AWS S3 Control's
508// API operation DeleteAccessPoint for usage and error information.
509// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPoint
510func (c *S3Control) DeleteAccessPoint(input *DeleteAccessPointInput) (*DeleteAccessPointOutput, error) {
511	req, out := c.DeleteAccessPointRequest(input)
512	return out, req.Send()
513}
514
515// DeleteAccessPointWithContext is the same as DeleteAccessPoint with the addition of
516// the ability to pass a context and additional request options.
517//
518// See DeleteAccessPoint for details on how to use this API operation.
519//
520// The context must be non-nil and will be used for request cancellation. If
521// the context is nil a panic will occur. In the future the SDK may create
522// sub-contexts for http.Requests. See https://golang.org/pkg/context/
523// for more information on using Contexts.
524func (c *S3Control) DeleteAccessPointWithContext(ctx aws.Context, input *DeleteAccessPointInput, opts ...request.Option) (*DeleteAccessPointOutput, error) {
525	req, out := c.DeleteAccessPointRequest(input)
526	req.SetContext(ctx)
527	req.ApplyOptions(opts...)
528	return out, req.Send()
529}
530
531const opDeleteAccessPointForObjectLambda = "DeleteAccessPointForObjectLambda"
532
533// DeleteAccessPointForObjectLambdaRequest generates a "aws/request.Request" representing the
534// client's request for the DeleteAccessPointForObjectLambda operation. The "output" return
535// value will be populated with the request's response once the request completes
536// successfully.
537//
538// Use "Send" method on the returned Request to send the API call to the service.
539// the "output" return value is not valid until after Send returns without error.
540//
541// See DeleteAccessPointForObjectLambda for more information on using the DeleteAccessPointForObjectLambda
542// API call, and error handling.
543//
544// This method is useful when you want to inject custom logic or configuration
545// into the SDK's request lifecycle. Such as custom headers, or retry logic.
546//
547//
548//    // Example sending a request using the DeleteAccessPointForObjectLambdaRequest method.
549//    req, resp := client.DeleteAccessPointForObjectLambdaRequest(params)
550//
551//    err := req.Send()
552//    if err == nil { // resp is now filled
553//        fmt.Println(resp)
554//    }
555//
556// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointForObjectLambda
557func (c *S3Control) DeleteAccessPointForObjectLambdaRequest(input *DeleteAccessPointForObjectLambdaInput) (req *request.Request, output *DeleteAccessPointForObjectLambdaOutput) {
558	op := &request.Operation{
559		Name:       opDeleteAccessPointForObjectLambda,
560		HTTPMethod: "DELETE",
561		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}",
562	}
563
564	if input == nil {
565		input = &DeleteAccessPointForObjectLambdaInput{}
566	}
567
568	output = &DeleteAccessPointForObjectLambdaOutput{}
569	req = c.newRequest(op, input, output)
570	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
571	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
572	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
573	return
574}
575
576// DeleteAccessPointForObjectLambda API operation for AWS S3 Control.
577//
578// Deletes the specified Object Lambda Access Point.
579//
580// The following actions are related to DeleteAccessPointForObjectLambda:
581//
582//    * CreateAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html)
583//
584//    * GetAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointForObjectLambda.html)
585//
586//    * ListAccessPointsForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html)
587//
588// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
589// with awserr.Error's Code and Message methods to get detailed information about
590// the error.
591//
592// See the AWS API reference guide for AWS S3 Control's
593// API operation DeleteAccessPointForObjectLambda for usage and error information.
594// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointForObjectLambda
595func (c *S3Control) DeleteAccessPointForObjectLambda(input *DeleteAccessPointForObjectLambdaInput) (*DeleteAccessPointForObjectLambdaOutput, error) {
596	req, out := c.DeleteAccessPointForObjectLambdaRequest(input)
597	return out, req.Send()
598}
599
600// DeleteAccessPointForObjectLambdaWithContext is the same as DeleteAccessPointForObjectLambda with the addition of
601// the ability to pass a context and additional request options.
602//
603// See DeleteAccessPointForObjectLambda for details on how to use this API operation.
604//
605// The context must be non-nil and will be used for request cancellation. If
606// the context is nil a panic will occur. In the future the SDK may create
607// sub-contexts for http.Requests. See https://golang.org/pkg/context/
608// for more information on using Contexts.
609func (c *S3Control) DeleteAccessPointForObjectLambdaWithContext(ctx aws.Context, input *DeleteAccessPointForObjectLambdaInput, opts ...request.Option) (*DeleteAccessPointForObjectLambdaOutput, error) {
610	req, out := c.DeleteAccessPointForObjectLambdaRequest(input)
611	req.SetContext(ctx)
612	req.ApplyOptions(opts...)
613	return out, req.Send()
614}
615
616const opDeleteAccessPointPolicy = "DeleteAccessPointPolicy"
617
618// DeleteAccessPointPolicyRequest generates a "aws/request.Request" representing the
619// client's request for the DeleteAccessPointPolicy operation. The "output" return
620// value will be populated with the request's response once the request completes
621// successfully.
622//
623// Use "Send" method on the returned Request to send the API call to the service.
624// the "output" return value is not valid until after Send returns without error.
625//
626// See DeleteAccessPointPolicy for more information on using the DeleteAccessPointPolicy
627// API call, and error handling.
628//
629// This method is useful when you want to inject custom logic or configuration
630// into the SDK's request lifecycle. Such as custom headers, or retry logic.
631//
632//
633//    // Example sending a request using the DeleteAccessPointPolicyRequest method.
634//    req, resp := client.DeleteAccessPointPolicyRequest(params)
635//
636//    err := req.Send()
637//    if err == nil { // resp is now filled
638//        fmt.Println(resp)
639//    }
640//
641// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicy
642func (c *S3Control) DeleteAccessPointPolicyRequest(input *DeleteAccessPointPolicyInput) (req *request.Request, output *DeleteAccessPointPolicyOutput) {
643	op := &request.Operation{
644		Name:       opDeleteAccessPointPolicy,
645		HTTPMethod: "DELETE",
646		HTTPPath:   "/v20180820/accesspoint/{name}/policy",
647	}
648
649	if input == nil {
650		input = &DeleteAccessPointPolicyInput{}
651	}
652
653	output = &DeleteAccessPointPolicyOutput{}
654	req = c.newRequest(op, input, output)
655	// update account id or check if provided input for account id member matches
656	// the account id present in ARN
657	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
658	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
659	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
660	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
661	return
662}
663
664// DeleteAccessPointPolicy API operation for AWS S3 Control.
665//
666// Deletes the access point policy for the specified access point.
667//
668// All Amazon S3 on Outposts REST API requests for this action require an additional
669// parameter of x-amz-outpost-id to be passed with the request and an S3 on
670// Outposts endpoint hostname prefix instead of s3-control. For an example of
671// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
672// endpoint hostname prefix and the x-amz-outpost-id derived using the access
673// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html#API_control_DeleteAccessPointPolicy_Examples)
674// section.
675//
676// The following actions are related to DeleteAccessPointPolicy:
677//
678//    * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)
679//
680//    * GetAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html)
681//
682// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
683// with awserr.Error's Code and Message methods to get detailed information about
684// the error.
685//
686// See the AWS API reference guide for AWS S3 Control's
687// API operation DeleteAccessPointPolicy for usage and error information.
688// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicy
689func (c *S3Control) DeleteAccessPointPolicy(input *DeleteAccessPointPolicyInput) (*DeleteAccessPointPolicyOutput, error) {
690	req, out := c.DeleteAccessPointPolicyRequest(input)
691	return out, req.Send()
692}
693
694// DeleteAccessPointPolicyWithContext is the same as DeleteAccessPointPolicy with the addition of
695// the ability to pass a context and additional request options.
696//
697// See DeleteAccessPointPolicy for details on how to use this API operation.
698//
699// The context must be non-nil and will be used for request cancellation. If
700// the context is nil a panic will occur. In the future the SDK may create
701// sub-contexts for http.Requests. See https://golang.org/pkg/context/
702// for more information on using Contexts.
703func (c *S3Control) DeleteAccessPointPolicyWithContext(ctx aws.Context, input *DeleteAccessPointPolicyInput, opts ...request.Option) (*DeleteAccessPointPolicyOutput, error) {
704	req, out := c.DeleteAccessPointPolicyRequest(input)
705	req.SetContext(ctx)
706	req.ApplyOptions(opts...)
707	return out, req.Send()
708}
709
710const opDeleteAccessPointPolicyForObjectLambda = "DeleteAccessPointPolicyForObjectLambda"
711
712// DeleteAccessPointPolicyForObjectLambdaRequest generates a "aws/request.Request" representing the
713// client's request for the DeleteAccessPointPolicyForObjectLambda operation. The "output" return
714// value will be populated with the request's response once the request completes
715// successfully.
716//
717// Use "Send" method on the returned Request to send the API call to the service.
718// the "output" return value is not valid until after Send returns without error.
719//
720// See DeleteAccessPointPolicyForObjectLambda for more information on using the DeleteAccessPointPolicyForObjectLambda
721// API call, and error handling.
722//
723// This method is useful when you want to inject custom logic or configuration
724// into the SDK's request lifecycle. Such as custom headers, or retry logic.
725//
726//
727//    // Example sending a request using the DeleteAccessPointPolicyForObjectLambdaRequest method.
728//    req, resp := client.DeleteAccessPointPolicyForObjectLambdaRequest(params)
729//
730//    err := req.Send()
731//    if err == nil { // resp is now filled
732//        fmt.Println(resp)
733//    }
734//
735// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicyForObjectLambda
736func (c *S3Control) DeleteAccessPointPolicyForObjectLambdaRequest(input *DeleteAccessPointPolicyForObjectLambdaInput) (req *request.Request, output *DeleteAccessPointPolicyForObjectLambdaOutput) {
737	op := &request.Operation{
738		Name:       opDeleteAccessPointPolicyForObjectLambda,
739		HTTPMethod: "DELETE",
740		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/policy",
741	}
742
743	if input == nil {
744		input = &DeleteAccessPointPolicyForObjectLambdaInput{}
745	}
746
747	output = &DeleteAccessPointPolicyForObjectLambdaOutput{}
748	req = c.newRequest(op, input, output)
749	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
750	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
751	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
752	return
753}
754
755// DeleteAccessPointPolicyForObjectLambda API operation for AWS S3 Control.
756//
757// Removes the resource policy for an Object Lambda Access Point.
758//
759// The following actions are related to DeleteAccessPointPolicyForObjectLambda:
760//
761//    * GetAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyForObjectLambda.html)
762//
763//    * PutAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicyForObjectLambda.html)
764//
765// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
766// with awserr.Error's Code and Message methods to get detailed information about
767// the error.
768//
769// See the AWS API reference guide for AWS S3 Control's
770// API operation DeleteAccessPointPolicyForObjectLambda for usage and error information.
771// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicyForObjectLambda
772func (c *S3Control) DeleteAccessPointPolicyForObjectLambda(input *DeleteAccessPointPolicyForObjectLambdaInput) (*DeleteAccessPointPolicyForObjectLambdaOutput, error) {
773	req, out := c.DeleteAccessPointPolicyForObjectLambdaRequest(input)
774	return out, req.Send()
775}
776
777// DeleteAccessPointPolicyForObjectLambdaWithContext is the same as DeleteAccessPointPolicyForObjectLambda with the addition of
778// the ability to pass a context and additional request options.
779//
780// See DeleteAccessPointPolicyForObjectLambda for details on how to use this API operation.
781//
782// The context must be non-nil and will be used for request cancellation. If
783// the context is nil a panic will occur. In the future the SDK may create
784// sub-contexts for http.Requests. See https://golang.org/pkg/context/
785// for more information on using Contexts.
786func (c *S3Control) DeleteAccessPointPolicyForObjectLambdaWithContext(ctx aws.Context, input *DeleteAccessPointPolicyForObjectLambdaInput, opts ...request.Option) (*DeleteAccessPointPolicyForObjectLambdaOutput, error) {
787	req, out := c.DeleteAccessPointPolicyForObjectLambdaRequest(input)
788	req.SetContext(ctx)
789	req.ApplyOptions(opts...)
790	return out, req.Send()
791}
792
793const opDeleteBucket = "DeleteBucket"
794
795// DeleteBucketRequest generates a "aws/request.Request" representing the
796// client's request for the DeleteBucket operation. The "output" return
797// value will be populated with the request's response once the request completes
798// successfully.
799//
800// Use "Send" method on the returned Request to send the API call to the service.
801// the "output" return value is not valid until after Send returns without error.
802//
803// See DeleteBucket for more information on using the DeleteBucket
804// API call, and error handling.
805//
806// This method is useful when you want to inject custom logic or configuration
807// into the SDK's request lifecycle. Such as custom headers, or retry logic.
808//
809//
810//    // Example sending a request using the DeleteBucketRequest method.
811//    req, resp := client.DeleteBucketRequest(params)
812//
813//    err := req.Send()
814//    if err == nil { // resp is now filled
815//        fmt.Println(resp)
816//    }
817//
818// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucket
819func (c *S3Control) DeleteBucketRequest(input *DeleteBucketInput) (req *request.Request, output *DeleteBucketOutput) {
820	op := &request.Operation{
821		Name:       opDeleteBucket,
822		HTTPMethod: "DELETE",
823		HTTPPath:   "/v20180820/bucket/{name}",
824	}
825
826	if input == nil {
827		input = &DeleteBucketInput{}
828	}
829
830	output = &DeleteBucketOutput{}
831	req = c.newRequest(op, input, output)
832	// update account id or check if provided input for account id member matches
833	// the account id present in ARN
834	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
835	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
836	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
837	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
838	return
839}
840
841// DeleteBucket API operation for AWS S3 Control.
842//
843//
844// This action deletes an Amazon S3 on Outposts bucket. To delete an S3 bucket,
845// see DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
846// in the Amazon Simple Storage Service API.
847//
848// Deletes the Amazon S3 on Outposts bucket. All objects (including all object
849// versions and delete markers) in the bucket must be deleted before the bucket
850// itself can be deleted. For more information, see Using Amazon S3 on Outposts
851// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
852// in Amazon Simple Storage Service User Guide.
853//
854// All Amazon S3 on Outposts REST API requests for this action require an additional
855// parameter of x-amz-outpost-id to be passed with the request and an S3 on
856// Outposts endpoint hostname prefix instead of s3-control. For an example of
857// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
858// endpoint hostname prefix and the x-amz-outpost-id derived using the access
859// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html#API_control_DeleteBucket_Examples)
860// section.
861//
862// Related Resources
863//
864//    * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html)
865//
866//    * GetBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html)
867//
868//    * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
869//
870// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
871// with awserr.Error's Code and Message methods to get detailed information about
872// the error.
873//
874// See the AWS API reference guide for AWS S3 Control's
875// API operation DeleteBucket for usage and error information.
876// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucket
877func (c *S3Control) DeleteBucket(input *DeleteBucketInput) (*DeleteBucketOutput, error) {
878	req, out := c.DeleteBucketRequest(input)
879	return out, req.Send()
880}
881
882// DeleteBucketWithContext is the same as DeleteBucket with the addition of
883// the ability to pass a context and additional request options.
884//
885// See DeleteBucket for details on how to use this API operation.
886//
887// The context must be non-nil and will be used for request cancellation. If
888// the context is nil a panic will occur. In the future the SDK may create
889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
890// for more information on using Contexts.
891func (c *S3Control) DeleteBucketWithContext(ctx aws.Context, input *DeleteBucketInput, opts ...request.Option) (*DeleteBucketOutput, error) {
892	req, out := c.DeleteBucketRequest(input)
893	req.SetContext(ctx)
894	req.ApplyOptions(opts...)
895	return out, req.Send()
896}
897
898const opDeleteBucketLifecycleConfiguration = "DeleteBucketLifecycleConfiguration"
899
900// DeleteBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
901// client's request for the DeleteBucketLifecycleConfiguration operation. The "output" return
902// value will be populated with the request's response once the request completes
903// successfully.
904//
905// Use "Send" method on the returned Request to send the API call to the service.
906// the "output" return value is not valid until after Send returns without error.
907//
908// See DeleteBucketLifecycleConfiguration for more information on using the DeleteBucketLifecycleConfiguration
909// API call, and error handling.
910//
911// This method is useful when you want to inject custom logic or configuration
912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
913//
914//
915//    // Example sending a request using the DeleteBucketLifecycleConfigurationRequest method.
916//    req, resp := client.DeleteBucketLifecycleConfigurationRequest(params)
917//
918//    err := req.Send()
919//    if err == nil { // resp is now filled
920//        fmt.Println(resp)
921//    }
922//
923// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketLifecycleConfiguration
924func (c *S3Control) DeleteBucketLifecycleConfigurationRequest(input *DeleteBucketLifecycleConfigurationInput) (req *request.Request, output *DeleteBucketLifecycleConfigurationOutput) {
925	op := &request.Operation{
926		Name:       opDeleteBucketLifecycleConfiguration,
927		HTTPMethod: "DELETE",
928		HTTPPath:   "/v20180820/bucket/{name}/lifecycleconfiguration",
929	}
930
931	if input == nil {
932		input = &DeleteBucketLifecycleConfigurationInput{}
933	}
934
935	output = &DeleteBucketLifecycleConfigurationOutput{}
936	req = c.newRequest(op, input, output)
937	// update account id or check if provided input for account id member matches
938	// the account id present in ARN
939	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
940	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
941	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
942	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
943	return
944}
945
946// DeleteBucketLifecycleConfiguration API operation for AWS S3 Control.
947//
948//
949// This action deletes an Amazon S3 on Outposts bucket's lifecycle configuration.
950// To delete an S3 bucket's lifecycle configuration, see DeleteBucketLifecycle
951// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html)
952// in the Amazon Simple Storage Service API.
953//
954// Deletes the lifecycle configuration from the specified Outposts bucket. Amazon
955// S3 on Outposts removes all the lifecycle configuration rules in the lifecycle
956// subresource associated with the bucket. Your objects never expire, and Amazon
957// S3 on Outposts no longer automatically deletes any objects on the basis of
958// rules contained in the deleted lifecycle configuration. For more information,
959// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
960// in Amazon Simple Storage Service User Guide.
961//
962// To use this action, you must have permission to perform the s3-outposts:DeleteLifecycleConfiguration
963// action. By default, the bucket owner has this permission and the Outposts
964// bucket owner can grant this permission to others.
965//
966// All Amazon S3 on Outposts REST API requests for this action require an additional
967// parameter of x-amz-outpost-id to be passed with the request and an S3 on
968// Outposts endpoint hostname prefix instead of s3-control. For an example of
969// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
970// endpoint hostname prefix and the x-amz-outpost-id derived using the access
971// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html#API_control_DeleteBucketLifecycleConfiguration_Examples)
972// section.
973//
974// For more information about object expiration, see Elements to Describe Lifecycle
975// Actions (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions).
976//
977// Related actions include:
978//
979//    * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html)
980//
981//    * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html)
982//
983// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
984// with awserr.Error's Code and Message methods to get detailed information about
985// the error.
986//
987// See the AWS API reference guide for AWS S3 Control's
988// API operation DeleteBucketLifecycleConfiguration for usage and error information.
989// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketLifecycleConfiguration
990func (c *S3Control) DeleteBucketLifecycleConfiguration(input *DeleteBucketLifecycleConfigurationInput) (*DeleteBucketLifecycleConfigurationOutput, error) {
991	req, out := c.DeleteBucketLifecycleConfigurationRequest(input)
992	return out, req.Send()
993}
994
995// DeleteBucketLifecycleConfigurationWithContext is the same as DeleteBucketLifecycleConfiguration with the addition of
996// the ability to pass a context and additional request options.
997//
998// See DeleteBucketLifecycleConfiguration for details on how to use this API operation.
999//
1000// The context must be non-nil and will be used for request cancellation. If
1001// the context is nil a panic will occur. In the future the SDK may create
1002// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1003// for more information on using Contexts.
1004func (c *S3Control) DeleteBucketLifecycleConfigurationWithContext(ctx aws.Context, input *DeleteBucketLifecycleConfigurationInput, opts ...request.Option) (*DeleteBucketLifecycleConfigurationOutput, error) {
1005	req, out := c.DeleteBucketLifecycleConfigurationRequest(input)
1006	req.SetContext(ctx)
1007	req.ApplyOptions(opts...)
1008	return out, req.Send()
1009}
1010
1011const opDeleteBucketPolicy = "DeleteBucketPolicy"
1012
1013// DeleteBucketPolicyRequest generates a "aws/request.Request" representing the
1014// client's request for the DeleteBucketPolicy operation. The "output" return
1015// value will be populated with the request's response once the request completes
1016// successfully.
1017//
1018// Use "Send" method on the returned Request to send the API call to the service.
1019// the "output" return value is not valid until after Send returns without error.
1020//
1021// See DeleteBucketPolicy for more information on using the DeleteBucketPolicy
1022// API call, and error handling.
1023//
1024// This method is useful when you want to inject custom logic or configuration
1025// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1026//
1027//
1028//    // Example sending a request using the DeleteBucketPolicyRequest method.
1029//    req, resp := client.DeleteBucketPolicyRequest(params)
1030//
1031//    err := req.Send()
1032//    if err == nil { // resp is now filled
1033//        fmt.Println(resp)
1034//    }
1035//
1036// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketPolicy
1037func (c *S3Control) DeleteBucketPolicyRequest(input *DeleteBucketPolicyInput) (req *request.Request, output *DeleteBucketPolicyOutput) {
1038	op := &request.Operation{
1039		Name:       opDeleteBucketPolicy,
1040		HTTPMethod: "DELETE",
1041		HTTPPath:   "/v20180820/bucket/{name}/policy",
1042	}
1043
1044	if input == nil {
1045		input = &DeleteBucketPolicyInput{}
1046	}
1047
1048	output = &DeleteBucketPolicyOutput{}
1049	req = c.newRequest(op, input, output)
1050	// update account id or check if provided input for account id member matches
1051	// the account id present in ARN
1052	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
1053	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1054	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1055	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1056	return
1057}
1058
1059// DeleteBucketPolicy API operation for AWS S3 Control.
1060//
1061//
1062// This action deletes an Amazon S3 on Outposts bucket policy. To delete an
1063// S3 bucket policy, see DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html)
1064// in the Amazon Simple Storage Service API.
1065//
1066// This implementation of the DELETE action uses the policy subresource to delete
1067// the policy of a specified Amazon S3 on Outposts bucket. If you are using
1068// an identity other than the root user of the AWS account that owns the bucket,
1069// the calling identity must have the s3-outposts:DeleteBucketPolicy permissions
1070// on the specified Outposts bucket and belong to the bucket owner's account
1071// to use this action. For more information, see Using Amazon S3 on Outposts
1072// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
1073// in Amazon Simple Storage Service User Guide.
1074//
1075// If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403
1076// Access Denied error. If you have the correct permissions, but you're not
1077// using an identity that belongs to the bucket owner's account, Amazon S3 returns
1078// a 405 Method Not Allowed error.
1079//
1080// As a security precaution, the root user of the AWS account that owns a bucket
1081// can always use this action, even if the policy explicitly denies the root
1082// user the ability to perform this action.
1083//
1084// For more information about bucket policies, see Using Bucket Policies and
1085// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html).
1086//
1087// All Amazon S3 on Outposts REST API requests for this action require an additional
1088// parameter of x-amz-outpost-id to be passed with the request and an S3 on
1089// Outposts endpoint hostname prefix instead of s3-control. For an example of
1090// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
1091// endpoint hostname prefix and the x-amz-outpost-id derived using the access
1092// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html#API_control_DeleteBucketPolicy_Examples)
1093// section.
1094//
1095// The following actions are related to DeleteBucketPolicy:
1096//
1097//    * GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html)
1098//
1099//    * PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html)
1100//
1101// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1102// with awserr.Error's Code and Message methods to get detailed information about
1103// the error.
1104//
1105// See the AWS API reference guide for AWS S3 Control's
1106// API operation DeleteBucketPolicy for usage and error information.
1107// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketPolicy
1108func (c *S3Control) DeleteBucketPolicy(input *DeleteBucketPolicyInput) (*DeleteBucketPolicyOutput, error) {
1109	req, out := c.DeleteBucketPolicyRequest(input)
1110	return out, req.Send()
1111}
1112
1113// DeleteBucketPolicyWithContext is the same as DeleteBucketPolicy with the addition of
1114// the ability to pass a context and additional request options.
1115//
1116// See DeleteBucketPolicy for details on how to use this API operation.
1117//
1118// The context must be non-nil and will be used for request cancellation. If
1119// the context is nil a panic will occur. In the future the SDK may create
1120// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1121// for more information on using Contexts.
1122func (c *S3Control) DeleteBucketPolicyWithContext(ctx aws.Context, input *DeleteBucketPolicyInput, opts ...request.Option) (*DeleteBucketPolicyOutput, error) {
1123	req, out := c.DeleteBucketPolicyRequest(input)
1124	req.SetContext(ctx)
1125	req.ApplyOptions(opts...)
1126	return out, req.Send()
1127}
1128
1129const opDeleteBucketTagging = "DeleteBucketTagging"
1130
1131// DeleteBucketTaggingRequest generates a "aws/request.Request" representing the
1132// client's request for the DeleteBucketTagging operation. The "output" return
1133// value will be populated with the request's response once the request completes
1134// successfully.
1135//
1136// Use "Send" method on the returned Request to send the API call to the service.
1137// the "output" return value is not valid until after Send returns without error.
1138//
1139// See DeleteBucketTagging for more information on using the DeleteBucketTagging
1140// API call, and error handling.
1141//
1142// This method is useful when you want to inject custom logic or configuration
1143// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1144//
1145//
1146//    // Example sending a request using the DeleteBucketTaggingRequest method.
1147//    req, resp := client.DeleteBucketTaggingRequest(params)
1148//
1149//    err := req.Send()
1150//    if err == nil { // resp is now filled
1151//        fmt.Println(resp)
1152//    }
1153//
1154// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketTagging
1155func (c *S3Control) DeleteBucketTaggingRequest(input *DeleteBucketTaggingInput) (req *request.Request, output *DeleteBucketTaggingOutput) {
1156	op := &request.Operation{
1157		Name:       opDeleteBucketTagging,
1158		HTTPMethod: "DELETE",
1159		HTTPPath:   "/v20180820/bucket/{name}/tagging",
1160	}
1161
1162	if input == nil {
1163		input = &DeleteBucketTaggingInput{}
1164	}
1165
1166	output = &DeleteBucketTaggingOutput{}
1167	req = c.newRequest(op, input, output)
1168	// update account id or check if provided input for account id member matches
1169	// the account id present in ARN
1170	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
1171	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1172	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1173	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1174	return
1175}
1176
1177// DeleteBucketTagging API operation for AWS S3 Control.
1178//
1179//
1180// This action deletes an Amazon S3 on Outposts bucket's tags. To delete an
1181// S3 bucket tags, see DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html)
1182// in the Amazon Simple Storage Service API.
1183//
1184// Deletes the tags from the Outposts bucket. For more information, see Using
1185// Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
1186// in Amazon Simple Storage Service User Guide.
1187//
1188// To use this action, you must have permission to perform the PutBucketTagging
1189// action. By default, the bucket owner has this permission and can grant this
1190// permission to others.
1191//
1192// All Amazon S3 on Outposts REST API requests for this action require an additional
1193// parameter of x-amz-outpost-id to be passed with the request and an S3 on
1194// Outposts endpoint hostname prefix instead of s3-control. For an example of
1195// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
1196// endpoint hostname prefix and the x-amz-outpost-id derived using the access
1197// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html#API_control_DeleteBucketTagging_Examples)
1198// section.
1199//
1200// The following actions are related to DeleteBucketTagging:
1201//
1202//    * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html)
1203//
1204//    * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html)
1205//
1206// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1207// with awserr.Error's Code and Message methods to get detailed information about
1208// the error.
1209//
1210// See the AWS API reference guide for AWS S3 Control's
1211// API operation DeleteBucketTagging for usage and error information.
1212// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketTagging
1213func (c *S3Control) DeleteBucketTagging(input *DeleteBucketTaggingInput) (*DeleteBucketTaggingOutput, error) {
1214	req, out := c.DeleteBucketTaggingRequest(input)
1215	return out, req.Send()
1216}
1217
1218// DeleteBucketTaggingWithContext is the same as DeleteBucketTagging with the addition of
1219// the ability to pass a context and additional request options.
1220//
1221// See DeleteBucketTagging for details on how to use this API operation.
1222//
1223// The context must be non-nil and will be used for request cancellation. If
1224// the context is nil a panic will occur. In the future the SDK may create
1225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1226// for more information on using Contexts.
1227func (c *S3Control) DeleteBucketTaggingWithContext(ctx aws.Context, input *DeleteBucketTaggingInput, opts ...request.Option) (*DeleteBucketTaggingOutput, error) {
1228	req, out := c.DeleteBucketTaggingRequest(input)
1229	req.SetContext(ctx)
1230	req.ApplyOptions(opts...)
1231	return out, req.Send()
1232}
1233
1234const opDeleteJobTagging = "DeleteJobTagging"
1235
1236// DeleteJobTaggingRequest generates a "aws/request.Request" representing the
1237// client's request for the DeleteJobTagging operation. The "output" return
1238// value will be populated with the request's response once the request completes
1239// successfully.
1240//
1241// Use "Send" method on the returned Request to send the API call to the service.
1242// the "output" return value is not valid until after Send returns without error.
1243//
1244// See DeleteJobTagging for more information on using the DeleteJobTagging
1245// API call, and error handling.
1246//
1247// This method is useful when you want to inject custom logic or configuration
1248// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1249//
1250//
1251//    // Example sending a request using the DeleteJobTaggingRequest method.
1252//    req, resp := client.DeleteJobTaggingRequest(params)
1253//
1254//    err := req.Send()
1255//    if err == nil { // resp is now filled
1256//        fmt.Println(resp)
1257//    }
1258//
1259// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTagging
1260func (c *S3Control) DeleteJobTaggingRequest(input *DeleteJobTaggingInput) (req *request.Request, output *DeleteJobTaggingOutput) {
1261	op := &request.Operation{
1262		Name:       opDeleteJobTagging,
1263		HTTPMethod: "DELETE",
1264		HTTPPath:   "/v20180820/jobs/{id}/tagging",
1265	}
1266
1267	if input == nil {
1268		input = &DeleteJobTaggingInput{}
1269	}
1270
1271	output = &DeleteJobTaggingOutput{}
1272	req = c.newRequest(op, input, output)
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// DeleteJobTagging API operation for AWS S3 Control.
1280//
1281// Removes the entire tag set from the specified S3 Batch Operations job. To
1282// use this operation, you must have permission to perform the s3:DeleteJobTagging
1283// action. For more information, see Controlling access and labeling jobs using
1284// tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags)
1285// in the Amazon Simple Storage Service User Guide.
1286//
1287// Related actions include:
1288//
1289//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
1290//
1291//    * GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html)
1292//
1293//    * PutJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html)
1294//
1295// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1296// with awserr.Error's Code and Message methods to get detailed information about
1297// the error.
1298//
1299// See the AWS API reference guide for AWS S3 Control's
1300// API operation DeleteJobTagging for usage and error information.
1301//
1302// Returned Error Codes:
1303//   * ErrCodeInternalServiceException "InternalServiceException"
1304//
1305//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1306//
1307//   * ErrCodeNotFoundException "NotFoundException"
1308//
1309// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTagging
1310func (c *S3Control) DeleteJobTagging(input *DeleteJobTaggingInput) (*DeleteJobTaggingOutput, error) {
1311	req, out := c.DeleteJobTaggingRequest(input)
1312	return out, req.Send()
1313}
1314
1315// DeleteJobTaggingWithContext is the same as DeleteJobTagging with the addition of
1316// the ability to pass a context and additional request options.
1317//
1318// See DeleteJobTagging for details on how to use this API operation.
1319//
1320// The context must be non-nil and will be used for request cancellation. If
1321// the context is nil a panic will occur. In the future the SDK may create
1322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1323// for more information on using Contexts.
1324func (c *S3Control) DeleteJobTaggingWithContext(ctx aws.Context, input *DeleteJobTaggingInput, opts ...request.Option) (*DeleteJobTaggingOutput, error) {
1325	req, out := c.DeleteJobTaggingRequest(input)
1326	req.SetContext(ctx)
1327	req.ApplyOptions(opts...)
1328	return out, req.Send()
1329}
1330
1331const opDeletePublicAccessBlock = "DeletePublicAccessBlock"
1332
1333// DeletePublicAccessBlockRequest generates a "aws/request.Request" representing the
1334// client's request for the DeletePublicAccessBlock operation. The "output" return
1335// value will be populated with the request's response once the request completes
1336// successfully.
1337//
1338// Use "Send" method on the returned Request to send the API call to the service.
1339// the "output" return value is not valid until after Send returns without error.
1340//
1341// See DeletePublicAccessBlock for more information on using the DeletePublicAccessBlock
1342// API call, and error handling.
1343//
1344// This method is useful when you want to inject custom logic or configuration
1345// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1346//
1347//
1348//    // Example sending a request using the DeletePublicAccessBlockRequest method.
1349//    req, resp := client.DeletePublicAccessBlockRequest(params)
1350//
1351//    err := req.Send()
1352//    if err == nil { // resp is now filled
1353//        fmt.Println(resp)
1354//    }
1355//
1356// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlock
1357func (c *S3Control) DeletePublicAccessBlockRequest(input *DeletePublicAccessBlockInput) (req *request.Request, output *DeletePublicAccessBlockOutput) {
1358	op := &request.Operation{
1359		Name:       opDeletePublicAccessBlock,
1360		HTTPMethod: "DELETE",
1361		HTTPPath:   "/v20180820/configuration/publicAccessBlock",
1362	}
1363
1364	if input == nil {
1365		input = &DeletePublicAccessBlockInput{}
1366	}
1367
1368	output = &DeletePublicAccessBlockOutput{}
1369	req = c.newRequest(op, input, output)
1370	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1371	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1372	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1373	return
1374}
1375
1376// DeletePublicAccessBlock API operation for AWS S3 Control.
1377//
1378// Removes the PublicAccessBlock configuration for an AWS account. For more
1379// information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).
1380//
1381// Related actions include:
1382//
1383//    * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html)
1384//
1385//    * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html)
1386//
1387// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1388// with awserr.Error's Code and Message methods to get detailed information about
1389// the error.
1390//
1391// See the AWS API reference guide for AWS S3 Control's
1392// API operation DeletePublicAccessBlock for usage and error information.
1393// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlock
1394func (c *S3Control) DeletePublicAccessBlock(input *DeletePublicAccessBlockInput) (*DeletePublicAccessBlockOutput, error) {
1395	req, out := c.DeletePublicAccessBlockRequest(input)
1396	return out, req.Send()
1397}
1398
1399// DeletePublicAccessBlockWithContext is the same as DeletePublicAccessBlock with the addition of
1400// the ability to pass a context and additional request options.
1401//
1402// See DeletePublicAccessBlock for details on how to use this API operation.
1403//
1404// The context must be non-nil and will be used for request cancellation. If
1405// the context is nil a panic will occur. In the future the SDK may create
1406// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1407// for more information on using Contexts.
1408func (c *S3Control) DeletePublicAccessBlockWithContext(ctx aws.Context, input *DeletePublicAccessBlockInput, opts ...request.Option) (*DeletePublicAccessBlockOutput, error) {
1409	req, out := c.DeletePublicAccessBlockRequest(input)
1410	req.SetContext(ctx)
1411	req.ApplyOptions(opts...)
1412	return out, req.Send()
1413}
1414
1415const opDeleteStorageLensConfiguration = "DeleteStorageLensConfiguration"
1416
1417// DeleteStorageLensConfigurationRequest generates a "aws/request.Request" representing the
1418// client's request for the DeleteStorageLensConfiguration operation. The "output" return
1419// value will be populated with the request's response once the request completes
1420// successfully.
1421//
1422// Use "Send" method on the returned Request to send the API call to the service.
1423// the "output" return value is not valid until after Send returns without error.
1424//
1425// See DeleteStorageLensConfiguration for more information on using the DeleteStorageLensConfiguration
1426// API call, and error handling.
1427//
1428// This method is useful when you want to inject custom logic or configuration
1429// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1430//
1431//
1432//    // Example sending a request using the DeleteStorageLensConfigurationRequest method.
1433//    req, resp := client.DeleteStorageLensConfigurationRequest(params)
1434//
1435//    err := req.Send()
1436//    if err == nil { // resp is now filled
1437//        fmt.Println(resp)
1438//    }
1439//
1440// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfiguration
1441func (c *S3Control) DeleteStorageLensConfigurationRequest(input *DeleteStorageLensConfigurationInput) (req *request.Request, output *DeleteStorageLensConfigurationOutput) {
1442	op := &request.Operation{
1443		Name:       opDeleteStorageLensConfiguration,
1444		HTTPMethod: "DELETE",
1445		HTTPPath:   "/v20180820/storagelens/{storagelensid}",
1446	}
1447
1448	if input == nil {
1449		input = &DeleteStorageLensConfigurationInput{}
1450	}
1451
1452	output = &DeleteStorageLensConfigurationOutput{}
1453	req = c.newRequest(op, input, output)
1454	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1455	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1456	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1457	return
1458}
1459
1460// DeleteStorageLensConfiguration API operation for AWS S3 Control.
1461//
1462// Deletes the Amazon S3 Storage Lens configuration. For more information about
1463// S3 Storage Lens, see Assessing your storage activity and usage with Amazon
1464// S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
1465// in the Amazon Simple Storage Service User Guide.
1466//
1467// To use this action, you must have permission to perform the s3:DeleteStorageLensConfiguration
1468// action. For more information, see Setting permissions to use Amazon S3 Storage
1469// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
1470// in the Amazon Simple Storage Service User Guide.
1471//
1472// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1473// with awserr.Error's Code and Message methods to get detailed information about
1474// the error.
1475//
1476// See the AWS API reference guide for AWS S3 Control's
1477// API operation DeleteStorageLensConfiguration for usage and error information.
1478// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfiguration
1479func (c *S3Control) DeleteStorageLensConfiguration(input *DeleteStorageLensConfigurationInput) (*DeleteStorageLensConfigurationOutput, error) {
1480	req, out := c.DeleteStorageLensConfigurationRequest(input)
1481	return out, req.Send()
1482}
1483
1484// DeleteStorageLensConfigurationWithContext is the same as DeleteStorageLensConfiguration with the addition of
1485// the ability to pass a context and additional request options.
1486//
1487// See DeleteStorageLensConfiguration for details on how to use this API operation.
1488//
1489// The context must be non-nil and will be used for request cancellation. If
1490// the context is nil a panic will occur. In the future the SDK may create
1491// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1492// for more information on using Contexts.
1493func (c *S3Control) DeleteStorageLensConfigurationWithContext(ctx aws.Context, input *DeleteStorageLensConfigurationInput, opts ...request.Option) (*DeleteStorageLensConfigurationOutput, error) {
1494	req, out := c.DeleteStorageLensConfigurationRequest(input)
1495	req.SetContext(ctx)
1496	req.ApplyOptions(opts...)
1497	return out, req.Send()
1498}
1499
1500const opDeleteStorageLensConfigurationTagging = "DeleteStorageLensConfigurationTagging"
1501
1502// DeleteStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the
1503// client's request for the DeleteStorageLensConfigurationTagging operation. The "output" return
1504// value will be populated with the request's response once the request completes
1505// successfully.
1506//
1507// Use "Send" method on the returned Request to send the API call to the service.
1508// the "output" return value is not valid until after Send returns without error.
1509//
1510// See DeleteStorageLensConfigurationTagging for more information on using the DeleteStorageLensConfigurationTagging
1511// API call, and error handling.
1512//
1513// This method is useful when you want to inject custom logic or configuration
1514// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1515//
1516//
1517//    // Example sending a request using the DeleteStorageLensConfigurationTaggingRequest method.
1518//    req, resp := client.DeleteStorageLensConfigurationTaggingRequest(params)
1519//
1520//    err := req.Send()
1521//    if err == nil { // resp is now filled
1522//        fmt.Println(resp)
1523//    }
1524//
1525// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationTagging
1526func (c *S3Control) DeleteStorageLensConfigurationTaggingRequest(input *DeleteStorageLensConfigurationTaggingInput) (req *request.Request, output *DeleteStorageLensConfigurationTaggingOutput) {
1527	op := &request.Operation{
1528		Name:       opDeleteStorageLensConfigurationTagging,
1529		HTTPMethod: "DELETE",
1530		HTTPPath:   "/v20180820/storagelens/{storagelensid}/tagging",
1531	}
1532
1533	if input == nil {
1534		input = &DeleteStorageLensConfigurationTaggingInput{}
1535	}
1536
1537	output = &DeleteStorageLensConfigurationTaggingOutput{}
1538	req = c.newRequest(op, input, output)
1539	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1540	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1541	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1542	return
1543}
1544
1545// DeleteStorageLensConfigurationTagging API operation for AWS S3 Control.
1546//
1547// Deletes the Amazon S3 Storage Lens configuration tags. For more information
1548// about S3 Storage Lens, see Assessing your storage activity and usage with
1549// Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
1550// in the Amazon Simple Storage Service User Guide.
1551//
1552// To use this action, you must have permission to perform the s3:DeleteStorageLensConfigurationTagging
1553// action. For more information, see Setting permissions to use Amazon S3 Storage
1554// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
1555// in the Amazon Simple Storage Service User Guide.
1556//
1557// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1558// with awserr.Error's Code and Message methods to get detailed information about
1559// the error.
1560//
1561// See the AWS API reference guide for AWS S3 Control's
1562// API operation DeleteStorageLensConfigurationTagging for usage and error information.
1563// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationTagging
1564func (c *S3Control) DeleteStorageLensConfigurationTagging(input *DeleteStorageLensConfigurationTaggingInput) (*DeleteStorageLensConfigurationTaggingOutput, error) {
1565	req, out := c.DeleteStorageLensConfigurationTaggingRequest(input)
1566	return out, req.Send()
1567}
1568
1569// DeleteStorageLensConfigurationTaggingWithContext is the same as DeleteStorageLensConfigurationTagging with the addition of
1570// the ability to pass a context and additional request options.
1571//
1572// See DeleteStorageLensConfigurationTagging for details on how to use this API operation.
1573//
1574// The context must be non-nil and will be used for request cancellation. If
1575// the context is nil a panic will occur. In the future the SDK may create
1576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1577// for more information on using Contexts.
1578func (c *S3Control) DeleteStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *DeleteStorageLensConfigurationTaggingInput, opts ...request.Option) (*DeleteStorageLensConfigurationTaggingOutput, error) {
1579	req, out := c.DeleteStorageLensConfigurationTaggingRequest(input)
1580	req.SetContext(ctx)
1581	req.ApplyOptions(opts...)
1582	return out, req.Send()
1583}
1584
1585const opDescribeJob = "DescribeJob"
1586
1587// DescribeJobRequest generates a "aws/request.Request" representing the
1588// client's request for the DescribeJob operation. The "output" return
1589// value will be populated with the request's response once the request completes
1590// successfully.
1591//
1592// Use "Send" method on the returned Request to send the API call to the service.
1593// the "output" return value is not valid until after Send returns without error.
1594//
1595// See DescribeJob for more information on using the DescribeJob
1596// API call, and error handling.
1597//
1598// This method is useful when you want to inject custom logic or configuration
1599// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1600//
1601//
1602//    // Example sending a request using the DescribeJobRequest method.
1603//    req, resp := client.DescribeJobRequest(params)
1604//
1605//    err := req.Send()
1606//    if err == nil { // resp is now filled
1607//        fmt.Println(resp)
1608//    }
1609//
1610// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJob
1611func (c *S3Control) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
1612	op := &request.Operation{
1613		Name:       opDescribeJob,
1614		HTTPMethod: "GET",
1615		HTTPPath:   "/v20180820/jobs/{id}",
1616	}
1617
1618	if input == nil {
1619		input = &DescribeJobInput{}
1620	}
1621
1622	output = &DescribeJobOutput{}
1623	req = c.newRequest(op, input, output)
1624	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1625	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1626	return
1627}
1628
1629// DescribeJob API operation for AWS S3 Control.
1630//
1631// Retrieves the configuration parameters and status for a Batch Operations
1632// job. For more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
1633// in the Amazon Simple Storage Service User Guide.
1634//
1635// Related actions include:
1636//
1637//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
1638//
1639//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
1640//
1641//    * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html)
1642//
1643//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
1644//
1645// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1646// with awserr.Error's Code and Message methods to get detailed information about
1647// the error.
1648//
1649// See the AWS API reference guide for AWS S3 Control's
1650// API operation DescribeJob for usage and error information.
1651//
1652// Returned Error Codes:
1653//   * ErrCodeBadRequestException "BadRequestException"
1654//
1655//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
1656//
1657//   * ErrCodeNotFoundException "NotFoundException"
1658//
1659//   * ErrCodeInternalServiceException "InternalServiceException"
1660//
1661// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJob
1662func (c *S3Control) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
1663	req, out := c.DescribeJobRequest(input)
1664	return out, req.Send()
1665}
1666
1667// DescribeJobWithContext is the same as DescribeJob with the addition of
1668// the ability to pass a context and additional request options.
1669//
1670// See DescribeJob for details on how to use this API operation.
1671//
1672// The context must be non-nil and will be used for request cancellation. If
1673// the context is nil a panic will occur. In the future the SDK may create
1674// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1675// for more information on using Contexts.
1676func (c *S3Control) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) {
1677	req, out := c.DescribeJobRequest(input)
1678	req.SetContext(ctx)
1679	req.ApplyOptions(opts...)
1680	return out, req.Send()
1681}
1682
1683const opGetAccessPoint = "GetAccessPoint"
1684
1685// GetAccessPointRequest generates a "aws/request.Request" representing the
1686// client's request for the GetAccessPoint operation. The "output" return
1687// value will be populated with the request's response once the request completes
1688// successfully.
1689//
1690// Use "Send" method on the returned Request to send the API call to the service.
1691// the "output" return value is not valid until after Send returns without error.
1692//
1693// See GetAccessPoint for more information on using the GetAccessPoint
1694// API call, and error handling.
1695//
1696// This method is useful when you want to inject custom logic or configuration
1697// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1698//
1699//
1700//    // Example sending a request using the GetAccessPointRequest method.
1701//    req, resp := client.GetAccessPointRequest(params)
1702//
1703//    err := req.Send()
1704//    if err == nil { // resp is now filled
1705//        fmt.Println(resp)
1706//    }
1707//
1708// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint
1709func (c *S3Control) GetAccessPointRequest(input *GetAccessPointInput) (req *request.Request, output *GetAccessPointOutput) {
1710	op := &request.Operation{
1711		Name:       opGetAccessPoint,
1712		HTTPMethod: "GET",
1713		HTTPPath:   "/v20180820/accesspoint/{name}",
1714	}
1715
1716	if input == nil {
1717		input = &GetAccessPointInput{}
1718	}
1719
1720	output = &GetAccessPointOutput{}
1721	req = c.newRequest(op, input, output)
1722	// update account id or check if provided input for account id member matches
1723	// the account id present in ARN
1724	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
1725	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1726	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1727	return
1728}
1729
1730// GetAccessPoint API operation for AWS S3 Control.
1731//
1732// Returns configuration information about the specified access point.
1733//
1734// All Amazon S3 on Outposts REST API requests for this action require an additional
1735// parameter of x-amz-outpost-id to be passed with the request and an S3 on
1736// Outposts endpoint hostname prefix instead of s3-control. For an example of
1737// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
1738// endpoint hostname prefix and the x-amz-outpost-id derived using the access
1739// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples)
1740// section.
1741//
1742// The following actions are related to GetAccessPoint:
1743//
1744//    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
1745//
1746//    * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)
1747//
1748//    * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)
1749//
1750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1751// with awserr.Error's Code and Message methods to get detailed information about
1752// the error.
1753//
1754// See the AWS API reference guide for AWS S3 Control's
1755// API operation GetAccessPoint for usage and error information.
1756// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint
1757func (c *S3Control) GetAccessPoint(input *GetAccessPointInput) (*GetAccessPointOutput, error) {
1758	req, out := c.GetAccessPointRequest(input)
1759	return out, req.Send()
1760}
1761
1762// GetAccessPointWithContext is the same as GetAccessPoint with the addition of
1763// the ability to pass a context and additional request options.
1764//
1765// See GetAccessPoint for details on how to use this API operation.
1766//
1767// The context must be non-nil and will be used for request cancellation. If
1768// the context is nil a panic will occur. In the future the SDK may create
1769// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1770// for more information on using Contexts.
1771func (c *S3Control) GetAccessPointWithContext(ctx aws.Context, input *GetAccessPointInput, opts ...request.Option) (*GetAccessPointOutput, error) {
1772	req, out := c.GetAccessPointRequest(input)
1773	req.SetContext(ctx)
1774	req.ApplyOptions(opts...)
1775	return out, req.Send()
1776}
1777
1778const opGetAccessPointConfigurationForObjectLambda = "GetAccessPointConfigurationForObjectLambda"
1779
1780// GetAccessPointConfigurationForObjectLambdaRequest generates a "aws/request.Request" representing the
1781// client's request for the GetAccessPointConfigurationForObjectLambda operation. The "output" return
1782// value will be populated with the request's response once the request completes
1783// successfully.
1784//
1785// Use "Send" method on the returned Request to send the API call to the service.
1786// the "output" return value is not valid until after Send returns without error.
1787//
1788// See GetAccessPointConfigurationForObjectLambda for more information on using the GetAccessPointConfigurationForObjectLambda
1789// API call, and error handling.
1790//
1791// This method is useful when you want to inject custom logic or configuration
1792// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1793//
1794//
1795//    // Example sending a request using the GetAccessPointConfigurationForObjectLambdaRequest method.
1796//    req, resp := client.GetAccessPointConfigurationForObjectLambdaRequest(params)
1797//
1798//    err := req.Send()
1799//    if err == nil { // resp is now filled
1800//        fmt.Println(resp)
1801//    }
1802//
1803// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointConfigurationForObjectLambda
1804func (c *S3Control) GetAccessPointConfigurationForObjectLambdaRequest(input *GetAccessPointConfigurationForObjectLambdaInput) (req *request.Request, output *GetAccessPointConfigurationForObjectLambdaOutput) {
1805	op := &request.Operation{
1806		Name:       opGetAccessPointConfigurationForObjectLambda,
1807		HTTPMethod: "GET",
1808		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/configuration",
1809	}
1810
1811	if input == nil {
1812		input = &GetAccessPointConfigurationForObjectLambdaInput{}
1813	}
1814
1815	output = &GetAccessPointConfigurationForObjectLambdaOutput{}
1816	req = c.newRequest(op, input, output)
1817	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1818	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1819	return
1820}
1821
1822// GetAccessPointConfigurationForObjectLambda API operation for AWS S3 Control.
1823//
1824// Returns configuration for an Object Lambda Access Point.
1825//
1826// The following actions are related to GetAccessPointConfigurationForObjectLambda:
1827//
1828//    * PutAccessPointConfigurationForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointConfigurationForObjectLambda.html)
1829//
1830// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1831// with awserr.Error's Code and Message methods to get detailed information about
1832// the error.
1833//
1834// See the AWS API reference guide for AWS S3 Control's
1835// API operation GetAccessPointConfigurationForObjectLambda for usage and error information.
1836// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointConfigurationForObjectLambda
1837func (c *S3Control) GetAccessPointConfigurationForObjectLambda(input *GetAccessPointConfigurationForObjectLambdaInput) (*GetAccessPointConfigurationForObjectLambdaOutput, error) {
1838	req, out := c.GetAccessPointConfigurationForObjectLambdaRequest(input)
1839	return out, req.Send()
1840}
1841
1842// GetAccessPointConfigurationForObjectLambdaWithContext is the same as GetAccessPointConfigurationForObjectLambda with the addition of
1843// the ability to pass a context and additional request options.
1844//
1845// See GetAccessPointConfigurationForObjectLambda for details on how to use this API operation.
1846//
1847// The context must be non-nil and will be used for request cancellation. If
1848// the context is nil a panic will occur. In the future the SDK may create
1849// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1850// for more information on using Contexts.
1851func (c *S3Control) GetAccessPointConfigurationForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointConfigurationForObjectLambdaInput, opts ...request.Option) (*GetAccessPointConfigurationForObjectLambdaOutput, error) {
1852	req, out := c.GetAccessPointConfigurationForObjectLambdaRequest(input)
1853	req.SetContext(ctx)
1854	req.ApplyOptions(opts...)
1855	return out, req.Send()
1856}
1857
1858const opGetAccessPointForObjectLambda = "GetAccessPointForObjectLambda"
1859
1860// GetAccessPointForObjectLambdaRequest generates a "aws/request.Request" representing the
1861// client's request for the GetAccessPointForObjectLambda operation. The "output" return
1862// value will be populated with the request's response once the request completes
1863// successfully.
1864//
1865// Use "Send" method on the returned Request to send the API call to the service.
1866// the "output" return value is not valid until after Send returns without error.
1867//
1868// See GetAccessPointForObjectLambda for more information on using the GetAccessPointForObjectLambda
1869// API call, and error handling.
1870//
1871// This method is useful when you want to inject custom logic or configuration
1872// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1873//
1874//
1875//    // Example sending a request using the GetAccessPointForObjectLambdaRequest method.
1876//    req, resp := client.GetAccessPointForObjectLambdaRequest(params)
1877//
1878//    err := req.Send()
1879//    if err == nil { // resp is now filled
1880//        fmt.Println(resp)
1881//    }
1882//
1883// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointForObjectLambda
1884func (c *S3Control) GetAccessPointForObjectLambdaRequest(input *GetAccessPointForObjectLambdaInput) (req *request.Request, output *GetAccessPointForObjectLambdaOutput) {
1885	op := &request.Operation{
1886		Name:       opGetAccessPointForObjectLambda,
1887		HTTPMethod: "GET",
1888		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}",
1889	}
1890
1891	if input == nil {
1892		input = &GetAccessPointForObjectLambdaInput{}
1893	}
1894
1895	output = &GetAccessPointForObjectLambdaOutput{}
1896	req = c.newRequest(op, input, output)
1897	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1898	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1899	return
1900}
1901
1902// GetAccessPointForObjectLambda API operation for AWS S3 Control.
1903//
1904// Returns configuration information about the specified Object Lambda Access
1905// Point
1906//
1907// The following actions are related to GetAccessPointForObjectLambda:
1908//
1909//    * CreateAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html)
1910//
1911//    * DeleteAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html)
1912//
1913//    * ListAccessPointsForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html)
1914//
1915// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1916// with awserr.Error's Code and Message methods to get detailed information about
1917// the error.
1918//
1919// See the AWS API reference guide for AWS S3 Control's
1920// API operation GetAccessPointForObjectLambda for usage and error information.
1921// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointForObjectLambda
1922func (c *S3Control) GetAccessPointForObjectLambda(input *GetAccessPointForObjectLambdaInput) (*GetAccessPointForObjectLambdaOutput, error) {
1923	req, out := c.GetAccessPointForObjectLambdaRequest(input)
1924	return out, req.Send()
1925}
1926
1927// GetAccessPointForObjectLambdaWithContext is the same as GetAccessPointForObjectLambda with the addition of
1928// the ability to pass a context and additional request options.
1929//
1930// See GetAccessPointForObjectLambda for details on how to use this API operation.
1931//
1932// The context must be non-nil and will be used for request cancellation. If
1933// the context is nil a panic will occur. In the future the SDK may create
1934// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1935// for more information on using Contexts.
1936func (c *S3Control) GetAccessPointForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointForObjectLambdaInput, opts ...request.Option) (*GetAccessPointForObjectLambdaOutput, error) {
1937	req, out := c.GetAccessPointForObjectLambdaRequest(input)
1938	req.SetContext(ctx)
1939	req.ApplyOptions(opts...)
1940	return out, req.Send()
1941}
1942
1943const opGetAccessPointPolicy = "GetAccessPointPolicy"
1944
1945// GetAccessPointPolicyRequest generates a "aws/request.Request" representing the
1946// client's request for the GetAccessPointPolicy operation. The "output" return
1947// value will be populated with the request's response once the request completes
1948// successfully.
1949//
1950// Use "Send" method on the returned Request to send the API call to the service.
1951// the "output" return value is not valid until after Send returns without error.
1952//
1953// See GetAccessPointPolicy for more information on using the GetAccessPointPolicy
1954// API call, and error handling.
1955//
1956// This method is useful when you want to inject custom logic or configuration
1957// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1958//
1959//
1960//    // Example sending a request using the GetAccessPointPolicyRequest method.
1961//    req, resp := client.GetAccessPointPolicyRequest(params)
1962//
1963//    err := req.Send()
1964//    if err == nil { // resp is now filled
1965//        fmt.Println(resp)
1966//    }
1967//
1968// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy
1969func (c *S3Control) GetAccessPointPolicyRequest(input *GetAccessPointPolicyInput) (req *request.Request, output *GetAccessPointPolicyOutput) {
1970	op := &request.Operation{
1971		Name:       opGetAccessPointPolicy,
1972		HTTPMethod: "GET",
1973		HTTPPath:   "/v20180820/accesspoint/{name}/policy",
1974	}
1975
1976	if input == nil {
1977		input = &GetAccessPointPolicyInput{}
1978	}
1979
1980	output = &GetAccessPointPolicyOutput{}
1981	req = c.newRequest(op, input, output)
1982	// update account id or check if provided input for account id member matches
1983	// the account id present in ARN
1984	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
1985	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
1986	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
1987	return
1988}
1989
1990// GetAccessPointPolicy API operation for AWS S3 Control.
1991//
1992// Returns the access point policy associated with the specified access point.
1993//
1994// The following actions are related to GetAccessPointPolicy:
1995//
1996//    * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)
1997//
1998//    * DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html)
1999//
2000// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2001// with awserr.Error's Code and Message methods to get detailed information about
2002// the error.
2003//
2004// See the AWS API reference guide for AWS S3 Control's
2005// API operation GetAccessPointPolicy for usage and error information.
2006// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy
2007func (c *S3Control) GetAccessPointPolicy(input *GetAccessPointPolicyInput) (*GetAccessPointPolicyOutput, error) {
2008	req, out := c.GetAccessPointPolicyRequest(input)
2009	return out, req.Send()
2010}
2011
2012// GetAccessPointPolicyWithContext is the same as GetAccessPointPolicy with the addition of
2013// the ability to pass a context and additional request options.
2014//
2015// See GetAccessPointPolicy for details on how to use this API operation.
2016//
2017// The context must be non-nil and will be used for request cancellation. If
2018// the context is nil a panic will occur. In the future the SDK may create
2019// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2020// for more information on using Contexts.
2021func (c *S3Control) GetAccessPointPolicyWithContext(ctx aws.Context, input *GetAccessPointPolicyInput, opts ...request.Option) (*GetAccessPointPolicyOutput, error) {
2022	req, out := c.GetAccessPointPolicyRequest(input)
2023	req.SetContext(ctx)
2024	req.ApplyOptions(opts...)
2025	return out, req.Send()
2026}
2027
2028const opGetAccessPointPolicyForObjectLambda = "GetAccessPointPolicyForObjectLambda"
2029
2030// GetAccessPointPolicyForObjectLambdaRequest generates a "aws/request.Request" representing the
2031// client's request for the GetAccessPointPolicyForObjectLambda operation. The "output" return
2032// value will be populated with the request's response once the request completes
2033// successfully.
2034//
2035// Use "Send" method on the returned Request to send the API call to the service.
2036// the "output" return value is not valid until after Send returns without error.
2037//
2038// See GetAccessPointPolicyForObjectLambda for more information on using the GetAccessPointPolicyForObjectLambda
2039// API call, and error handling.
2040//
2041// This method is useful when you want to inject custom logic or configuration
2042// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2043//
2044//
2045//    // Example sending a request using the GetAccessPointPolicyForObjectLambdaRequest method.
2046//    req, resp := client.GetAccessPointPolicyForObjectLambdaRequest(params)
2047//
2048//    err := req.Send()
2049//    if err == nil { // resp is now filled
2050//        fmt.Println(resp)
2051//    }
2052//
2053// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyForObjectLambda
2054func (c *S3Control) GetAccessPointPolicyForObjectLambdaRequest(input *GetAccessPointPolicyForObjectLambdaInput) (req *request.Request, output *GetAccessPointPolicyForObjectLambdaOutput) {
2055	op := &request.Operation{
2056		Name:       opGetAccessPointPolicyForObjectLambda,
2057		HTTPMethod: "GET",
2058		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/policy",
2059	}
2060
2061	if input == nil {
2062		input = &GetAccessPointPolicyForObjectLambdaInput{}
2063	}
2064
2065	output = &GetAccessPointPolicyForObjectLambdaOutput{}
2066	req = c.newRequest(op, input, output)
2067	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2068	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2069	return
2070}
2071
2072// GetAccessPointPolicyForObjectLambda API operation for AWS S3 Control.
2073//
2074// Returns the resource policy for an Object Lambda Access Point.
2075//
2076// The following actions are related to GetAccessPointPolicyForObjectLambda:
2077//
2078//    * DeleteAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html)
2079//
2080//    * PutAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicyForObjectLambda.html)
2081//
2082// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2083// with awserr.Error's Code and Message methods to get detailed information about
2084// the error.
2085//
2086// See the AWS API reference guide for AWS S3 Control's
2087// API operation GetAccessPointPolicyForObjectLambda for usage and error information.
2088// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyForObjectLambda
2089func (c *S3Control) GetAccessPointPolicyForObjectLambda(input *GetAccessPointPolicyForObjectLambdaInput) (*GetAccessPointPolicyForObjectLambdaOutput, error) {
2090	req, out := c.GetAccessPointPolicyForObjectLambdaRequest(input)
2091	return out, req.Send()
2092}
2093
2094// GetAccessPointPolicyForObjectLambdaWithContext is the same as GetAccessPointPolicyForObjectLambda with the addition of
2095// the ability to pass a context and additional request options.
2096//
2097// See GetAccessPointPolicyForObjectLambda for details on how to use this API operation.
2098//
2099// The context must be non-nil and will be used for request cancellation. If
2100// the context is nil a panic will occur. In the future the SDK may create
2101// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2102// for more information on using Contexts.
2103func (c *S3Control) GetAccessPointPolicyForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointPolicyForObjectLambdaInput, opts ...request.Option) (*GetAccessPointPolicyForObjectLambdaOutput, error) {
2104	req, out := c.GetAccessPointPolicyForObjectLambdaRequest(input)
2105	req.SetContext(ctx)
2106	req.ApplyOptions(opts...)
2107	return out, req.Send()
2108}
2109
2110const opGetAccessPointPolicyStatus = "GetAccessPointPolicyStatus"
2111
2112// GetAccessPointPolicyStatusRequest generates a "aws/request.Request" representing the
2113// client's request for the GetAccessPointPolicyStatus operation. The "output" return
2114// value will be populated with the request's response once the request completes
2115// successfully.
2116//
2117// Use "Send" method on the returned Request to send the API call to the service.
2118// the "output" return value is not valid until after Send returns without error.
2119//
2120// See GetAccessPointPolicyStatus for more information on using the GetAccessPointPolicyStatus
2121// API call, and error handling.
2122//
2123// This method is useful when you want to inject custom logic or configuration
2124// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2125//
2126//
2127//    // Example sending a request using the GetAccessPointPolicyStatusRequest method.
2128//    req, resp := client.GetAccessPointPolicyStatusRequest(params)
2129//
2130//    err := req.Send()
2131//    if err == nil { // resp is now filled
2132//        fmt.Println(resp)
2133//    }
2134//
2135// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus
2136func (c *S3Control) GetAccessPointPolicyStatusRequest(input *GetAccessPointPolicyStatusInput) (req *request.Request, output *GetAccessPointPolicyStatusOutput) {
2137	op := &request.Operation{
2138		Name:       opGetAccessPointPolicyStatus,
2139		HTTPMethod: "GET",
2140		HTTPPath:   "/v20180820/accesspoint/{name}/policyStatus",
2141	}
2142
2143	if input == nil {
2144		input = &GetAccessPointPolicyStatusInput{}
2145	}
2146
2147	output = &GetAccessPointPolicyStatusOutput{}
2148	req = c.newRequest(op, input, output)
2149	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2150	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2151	return
2152}
2153
2154// GetAccessPointPolicyStatus API operation for AWS S3 Control.
2155//
2156// Indicates whether the specified access point currently has a policy that
2157// allows public access. For more information about public access through access
2158// points, see Managing Data Access with Amazon S3 Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)
2159// in the Amazon Simple Storage Service Developer Guide.
2160//
2161// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2162// with awserr.Error's Code and Message methods to get detailed information about
2163// the error.
2164//
2165// See the AWS API reference guide for AWS S3 Control's
2166// API operation GetAccessPointPolicyStatus for usage and error information.
2167// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus
2168func (c *S3Control) GetAccessPointPolicyStatus(input *GetAccessPointPolicyStatusInput) (*GetAccessPointPolicyStatusOutput, error) {
2169	req, out := c.GetAccessPointPolicyStatusRequest(input)
2170	return out, req.Send()
2171}
2172
2173// GetAccessPointPolicyStatusWithContext is the same as GetAccessPointPolicyStatus with the addition of
2174// the ability to pass a context and additional request options.
2175//
2176// See GetAccessPointPolicyStatus for details on how to use this API operation.
2177//
2178// The context must be non-nil and will be used for request cancellation. If
2179// the context is nil a panic will occur. In the future the SDK may create
2180// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2181// for more information on using Contexts.
2182func (c *S3Control) GetAccessPointPolicyStatusWithContext(ctx aws.Context, input *GetAccessPointPolicyStatusInput, opts ...request.Option) (*GetAccessPointPolicyStatusOutput, error) {
2183	req, out := c.GetAccessPointPolicyStatusRequest(input)
2184	req.SetContext(ctx)
2185	req.ApplyOptions(opts...)
2186	return out, req.Send()
2187}
2188
2189const opGetAccessPointPolicyStatusForObjectLambda = "GetAccessPointPolicyStatusForObjectLambda"
2190
2191// GetAccessPointPolicyStatusForObjectLambdaRequest generates a "aws/request.Request" representing the
2192// client's request for the GetAccessPointPolicyStatusForObjectLambda operation. The "output" return
2193// value will be populated with the request's response once the request completes
2194// successfully.
2195//
2196// Use "Send" method on the returned Request to send the API call to the service.
2197// the "output" return value is not valid until after Send returns without error.
2198//
2199// See GetAccessPointPolicyStatusForObjectLambda for more information on using the GetAccessPointPolicyStatusForObjectLambda
2200// API call, and error handling.
2201//
2202// This method is useful when you want to inject custom logic or configuration
2203// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2204//
2205//
2206//    // Example sending a request using the GetAccessPointPolicyStatusForObjectLambdaRequest method.
2207//    req, resp := client.GetAccessPointPolicyStatusForObjectLambdaRequest(params)
2208//
2209//    err := req.Send()
2210//    if err == nil { // resp is now filled
2211//        fmt.Println(resp)
2212//    }
2213//
2214// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusForObjectLambda
2215func (c *S3Control) GetAccessPointPolicyStatusForObjectLambdaRequest(input *GetAccessPointPolicyStatusForObjectLambdaInput) (req *request.Request, output *GetAccessPointPolicyStatusForObjectLambdaOutput) {
2216	op := &request.Operation{
2217		Name:       opGetAccessPointPolicyStatusForObjectLambda,
2218		HTTPMethod: "GET",
2219		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/policyStatus",
2220	}
2221
2222	if input == nil {
2223		input = &GetAccessPointPolicyStatusForObjectLambdaInput{}
2224	}
2225
2226	output = &GetAccessPointPolicyStatusForObjectLambdaOutput{}
2227	req = c.newRequest(op, input, output)
2228	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2229	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2230	return
2231}
2232
2233// GetAccessPointPolicyStatusForObjectLambda API operation for AWS S3 Control.
2234//
2235// Returns the status of the resource policy associated with an Object Lambda
2236// Access Point.
2237//
2238// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2239// with awserr.Error's Code and Message methods to get detailed information about
2240// the error.
2241//
2242// See the AWS API reference guide for AWS S3 Control's
2243// API operation GetAccessPointPolicyStatusForObjectLambda for usage and error information.
2244// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusForObjectLambda
2245func (c *S3Control) GetAccessPointPolicyStatusForObjectLambda(input *GetAccessPointPolicyStatusForObjectLambdaInput) (*GetAccessPointPolicyStatusForObjectLambdaOutput, error) {
2246	req, out := c.GetAccessPointPolicyStatusForObjectLambdaRequest(input)
2247	return out, req.Send()
2248}
2249
2250// GetAccessPointPolicyStatusForObjectLambdaWithContext is the same as GetAccessPointPolicyStatusForObjectLambda with the addition of
2251// the ability to pass a context and additional request options.
2252//
2253// See GetAccessPointPolicyStatusForObjectLambda for details on how to use this API operation.
2254//
2255// The context must be non-nil and will be used for request cancellation. If
2256// the context is nil a panic will occur. In the future the SDK may create
2257// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2258// for more information on using Contexts.
2259func (c *S3Control) GetAccessPointPolicyStatusForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointPolicyStatusForObjectLambdaInput, opts ...request.Option) (*GetAccessPointPolicyStatusForObjectLambdaOutput, error) {
2260	req, out := c.GetAccessPointPolicyStatusForObjectLambdaRequest(input)
2261	req.SetContext(ctx)
2262	req.ApplyOptions(opts...)
2263	return out, req.Send()
2264}
2265
2266const opGetBucket = "GetBucket"
2267
2268// GetBucketRequest generates a "aws/request.Request" representing the
2269// client's request for the GetBucket operation. The "output" return
2270// value will be populated with the request's response once the request completes
2271// successfully.
2272//
2273// Use "Send" method on the returned Request to send the API call to the service.
2274// the "output" return value is not valid until after Send returns without error.
2275//
2276// See GetBucket for more information on using the GetBucket
2277// API call, and error handling.
2278//
2279// This method is useful when you want to inject custom logic or configuration
2280// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2281//
2282//
2283//    // Example sending a request using the GetBucketRequest method.
2284//    req, resp := client.GetBucketRequest(params)
2285//
2286//    err := req.Send()
2287//    if err == nil { // resp is now filled
2288//        fmt.Println(resp)
2289//    }
2290//
2291// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket
2292func (c *S3Control) GetBucketRequest(input *GetBucketInput) (req *request.Request, output *GetBucketOutput) {
2293	op := &request.Operation{
2294		Name:       opGetBucket,
2295		HTTPMethod: "GET",
2296		HTTPPath:   "/v20180820/bucket/{name}",
2297	}
2298
2299	if input == nil {
2300		input = &GetBucketInput{}
2301	}
2302
2303	output = &GetBucketOutput{}
2304	req = c.newRequest(op, input, output)
2305	// update account id or check if provided input for account id member matches
2306	// the account id present in ARN
2307	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
2308	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2309	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2310	return
2311}
2312
2313// GetBucket API operation for AWS S3 Control.
2314//
2315// Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon
2316// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
2317// in the Amazon Simple Storage Service User Guide.
2318//
2319// If you are using an identity other than the root user of the AWS account
2320// that owns the Outposts bucket, the calling identity must have the s3-outposts:GetBucket
2321// permissions on the specified Outposts bucket and belong to the Outposts bucket
2322// owner's account in order to use this action. Only users from Outposts bucket
2323// owner account with the right permissions can perform actions on an Outposts
2324// bucket.
2325//
2326// If you don't have s3-outposts:GetBucket permissions or you're not using an
2327// identity that belongs to the bucket owner's account, Amazon S3 returns a
2328// 403 Access Denied error.
2329//
2330// The following actions are related to GetBucket for Amazon S3 on Outposts:
2331//
2332// All Amazon S3 on Outposts REST API requests for this action require an additional
2333// parameter of x-amz-outpost-id to be passed with the request and an S3 on
2334// Outposts endpoint hostname prefix instead of s3-control. For an example of
2335// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
2336// endpoint hostname prefix and the x-amz-outpost-id derived using the access
2337// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html#API_control_GetBucket_Examples)
2338// section.
2339//
2340//    * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
2341//
2342//    * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html)
2343//
2344//    * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html)
2345//
2346// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2347// with awserr.Error's Code and Message methods to get detailed information about
2348// the error.
2349//
2350// See the AWS API reference guide for AWS S3 Control's
2351// API operation GetBucket for usage and error information.
2352// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket
2353func (c *S3Control) GetBucket(input *GetBucketInput) (*GetBucketOutput, error) {
2354	req, out := c.GetBucketRequest(input)
2355	return out, req.Send()
2356}
2357
2358// GetBucketWithContext is the same as GetBucket with the addition of
2359// the ability to pass a context and additional request options.
2360//
2361// See GetBucket for details on how to use this API operation.
2362//
2363// The context must be non-nil and will be used for request cancellation. If
2364// the context is nil a panic will occur. In the future the SDK may create
2365// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2366// for more information on using Contexts.
2367func (c *S3Control) GetBucketWithContext(ctx aws.Context, input *GetBucketInput, opts ...request.Option) (*GetBucketOutput, error) {
2368	req, out := c.GetBucketRequest(input)
2369	req.SetContext(ctx)
2370	req.ApplyOptions(opts...)
2371	return out, req.Send()
2372}
2373
2374const opGetBucketLifecycleConfiguration = "GetBucketLifecycleConfiguration"
2375
2376// GetBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
2377// client's request for the GetBucketLifecycleConfiguration operation. The "output" return
2378// value will be populated with the request's response once the request completes
2379// successfully.
2380//
2381// Use "Send" method on the returned Request to send the API call to the service.
2382// the "output" return value is not valid until after Send returns without error.
2383//
2384// See GetBucketLifecycleConfiguration for more information on using the GetBucketLifecycleConfiguration
2385// API call, and error handling.
2386//
2387// This method is useful when you want to inject custom logic or configuration
2388// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2389//
2390//
2391//    // Example sending a request using the GetBucketLifecycleConfigurationRequest method.
2392//    req, resp := client.GetBucketLifecycleConfigurationRequest(params)
2393//
2394//    err := req.Send()
2395//    if err == nil { // resp is now filled
2396//        fmt.Println(resp)
2397//    }
2398//
2399// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration
2400func (c *S3Control) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleConfigurationInput) (req *request.Request, output *GetBucketLifecycleConfigurationOutput) {
2401	op := &request.Operation{
2402		Name:       opGetBucketLifecycleConfiguration,
2403		HTTPMethod: "GET",
2404		HTTPPath:   "/v20180820/bucket/{name}/lifecycleconfiguration",
2405	}
2406
2407	if input == nil {
2408		input = &GetBucketLifecycleConfigurationInput{}
2409	}
2410
2411	output = &GetBucketLifecycleConfigurationOutput{}
2412	req = c.newRequest(op, input, output)
2413	// update account id or check if provided input for account id member matches
2414	// the account id present in ARN
2415	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
2416	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2417	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2418	return
2419}
2420
2421// GetBucketLifecycleConfiguration API operation for AWS S3 Control.
2422//
2423//
2424// This action gets an Amazon S3 on Outposts bucket's lifecycle configuration.
2425// To get an S3 bucket's lifecycle configuration, see GetBucketLifecycleConfiguration
2426// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html)
2427// in the Amazon Simple Storage Service API.
2428//
2429// Returns the lifecycle configuration information set on the Outposts bucket.
2430// For more information, see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
2431// and for information about lifecycle configuration, see Object Lifecycle Management
2432// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)
2433// in Amazon Simple Storage Service User Guide.
2434//
2435// To use this action, you must have permission to perform the s3-outposts:GetLifecycleConfiguration
2436// action. The Outposts bucket owner has this permission, by default. The bucket
2437// owner can grant this permission to others. For more information about permissions,
2438// 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)
2439// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html).
2440//
2441// All Amazon S3 on Outposts REST API requests for this action require an additional
2442// parameter of x-amz-outpost-id to be passed with the request and an S3 on
2443// Outposts endpoint hostname prefix instead of s3-control. For an example of
2444// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
2445// endpoint hostname prefix and the x-amz-outpost-id derived using the access
2446// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html#API_control_GetBucketLifecycleConfiguration_Examples)
2447// section.
2448//
2449// GetBucketLifecycleConfiguration has the following special error:
2450//
2451//    * Error code: NoSuchLifecycleConfiguration Description: The lifecycle
2452//    configuration does not exist. HTTP Status Code: 404 Not Found SOAP Fault
2453//    Code Prefix: Client
2454//
2455// The following actions are related to GetBucketLifecycleConfiguration:
2456//
2457//    * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html)
2458//
2459//    * DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html)
2460//
2461// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2462// with awserr.Error's Code and Message methods to get detailed information about
2463// the error.
2464//
2465// See the AWS API reference guide for AWS S3 Control's
2466// API operation GetBucketLifecycleConfiguration for usage and error information.
2467// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration
2468func (c *S3Control) GetBucketLifecycleConfiguration(input *GetBucketLifecycleConfigurationInput) (*GetBucketLifecycleConfigurationOutput, error) {
2469	req, out := c.GetBucketLifecycleConfigurationRequest(input)
2470	return out, req.Send()
2471}
2472
2473// GetBucketLifecycleConfigurationWithContext is the same as GetBucketLifecycleConfiguration with the addition of
2474// the ability to pass a context and additional request options.
2475//
2476// See GetBucketLifecycleConfiguration for details on how to use this API operation.
2477//
2478// The context must be non-nil and will be used for request cancellation. If
2479// the context is nil a panic will occur. In the future the SDK may create
2480// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2481// for more information on using Contexts.
2482func (c *S3Control) GetBucketLifecycleConfigurationWithContext(ctx aws.Context, input *GetBucketLifecycleConfigurationInput, opts ...request.Option) (*GetBucketLifecycleConfigurationOutput, error) {
2483	req, out := c.GetBucketLifecycleConfigurationRequest(input)
2484	req.SetContext(ctx)
2485	req.ApplyOptions(opts...)
2486	return out, req.Send()
2487}
2488
2489const opGetBucketPolicy = "GetBucketPolicy"
2490
2491// GetBucketPolicyRequest generates a "aws/request.Request" representing the
2492// client's request for the GetBucketPolicy operation. The "output" return
2493// value will be populated with the request's response once the request completes
2494// successfully.
2495//
2496// Use "Send" method on the returned Request to send the API call to the service.
2497// the "output" return value is not valid until after Send returns without error.
2498//
2499// See GetBucketPolicy for more information on using the GetBucketPolicy
2500// API call, and error handling.
2501//
2502// This method is useful when you want to inject custom logic or configuration
2503// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2504//
2505//
2506//    // Example sending a request using the GetBucketPolicyRequest method.
2507//    req, resp := client.GetBucketPolicyRequest(params)
2508//
2509//    err := req.Send()
2510//    if err == nil { // resp is now filled
2511//        fmt.Println(resp)
2512//    }
2513//
2514// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy
2515func (c *S3Control) GetBucketPolicyRequest(input *GetBucketPolicyInput) (req *request.Request, output *GetBucketPolicyOutput) {
2516	op := &request.Operation{
2517		Name:       opGetBucketPolicy,
2518		HTTPMethod: "GET",
2519		HTTPPath:   "/v20180820/bucket/{name}/policy",
2520	}
2521
2522	if input == nil {
2523		input = &GetBucketPolicyInput{}
2524	}
2525
2526	output = &GetBucketPolicyOutput{}
2527	req = c.newRequest(op, input, output)
2528	// update account id or check if provided input for account id member matches
2529	// the account id present in ARN
2530	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
2531	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2532	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2533	return
2534}
2535
2536// GetBucketPolicy API operation for AWS S3 Control.
2537//
2538//
2539// This action gets a bucket policy for an Amazon S3 on Outposts bucket. To
2540// get a policy for an S3 bucket, see GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html)
2541// in the Amazon Simple Storage Service API.
2542//
2543// Returns the policy of a specified Outposts bucket. For more information,
2544// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
2545// in the Amazon Simple Storage Service User Guide.
2546//
2547// If you are using an identity other than the root user of the AWS account
2548// that owns the bucket, the calling identity must have the GetBucketPolicy
2549// permissions on the specified bucket and belong to the bucket owner's account
2550// in order to use this action.
2551//
2552// Only users from Outposts bucket owner account with the right permissions
2553// can perform actions on an Outposts bucket. If you don't have s3-outposts:GetBucketPolicy
2554// permissions or you're not using an identity that belongs to the bucket owner's
2555// account, Amazon S3 returns a 403 Access Denied error.
2556//
2557// As a security precaution, the root user of the AWS account that owns a bucket
2558// can always use this action, even if the policy explicitly denies the root
2559// user the ability to perform this action.
2560//
2561// For more information about bucket policies, see Using Bucket Policies and
2562// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html).
2563//
2564// All Amazon S3 on Outposts REST API requests for this action require an additional
2565// parameter of x-amz-outpost-id to be passed with the request and an S3 on
2566// Outposts endpoint hostname prefix instead of s3-control. For an example of
2567// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
2568// endpoint hostname prefix and the x-amz-outpost-id derived using the access
2569// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html#API_control_GetBucketPolicy_Examples)
2570// section.
2571//
2572// The following actions are related to GetBucketPolicy:
2573//
2574//    * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
2575//
2576//    * PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html)
2577//
2578//    * DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html)
2579//
2580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2581// with awserr.Error's Code and Message methods to get detailed information about
2582// the error.
2583//
2584// See the AWS API reference guide for AWS S3 Control's
2585// API operation GetBucketPolicy for usage and error information.
2586// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy
2587func (c *S3Control) GetBucketPolicy(input *GetBucketPolicyInput) (*GetBucketPolicyOutput, error) {
2588	req, out := c.GetBucketPolicyRequest(input)
2589	return out, req.Send()
2590}
2591
2592// GetBucketPolicyWithContext is the same as GetBucketPolicy with the addition of
2593// the ability to pass a context and additional request options.
2594//
2595// See GetBucketPolicy for details on how to use this API operation.
2596//
2597// The context must be non-nil and will be used for request cancellation. If
2598// the context is nil a panic will occur. In the future the SDK may create
2599// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2600// for more information on using Contexts.
2601func (c *S3Control) GetBucketPolicyWithContext(ctx aws.Context, input *GetBucketPolicyInput, opts ...request.Option) (*GetBucketPolicyOutput, error) {
2602	req, out := c.GetBucketPolicyRequest(input)
2603	req.SetContext(ctx)
2604	req.ApplyOptions(opts...)
2605	return out, req.Send()
2606}
2607
2608const opGetBucketTagging = "GetBucketTagging"
2609
2610// GetBucketTaggingRequest generates a "aws/request.Request" representing the
2611// client's request for the GetBucketTagging operation. The "output" return
2612// value will be populated with the request's response once the request completes
2613// successfully.
2614//
2615// Use "Send" method on the returned Request to send the API call to the service.
2616// the "output" return value is not valid until after Send returns without error.
2617//
2618// See GetBucketTagging for more information on using the GetBucketTagging
2619// API call, and error handling.
2620//
2621// This method is useful when you want to inject custom logic or configuration
2622// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2623//
2624//
2625//    // Example sending a request using the GetBucketTaggingRequest method.
2626//    req, resp := client.GetBucketTaggingRequest(params)
2627//
2628//    err := req.Send()
2629//    if err == nil { // resp is now filled
2630//        fmt.Println(resp)
2631//    }
2632//
2633// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging
2634func (c *S3Control) GetBucketTaggingRequest(input *GetBucketTaggingInput) (req *request.Request, output *GetBucketTaggingOutput) {
2635	op := &request.Operation{
2636		Name:       opGetBucketTagging,
2637		HTTPMethod: "GET",
2638		HTTPPath:   "/v20180820/bucket/{name}/tagging",
2639	}
2640
2641	if input == nil {
2642		input = &GetBucketTaggingInput{}
2643	}
2644
2645	output = &GetBucketTaggingOutput{}
2646	req = c.newRequest(op, input, output)
2647	// update account id or check if provided input for account id member matches
2648	// the account id present in ARN
2649	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
2650	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2651	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2652	return
2653}
2654
2655// GetBucketTagging API operation for AWS S3 Control.
2656//
2657//
2658// This action gets an Amazon S3 on Outposts bucket's tags. To get an S3 bucket
2659// tags, see GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html)
2660// in the Amazon Simple Storage Service API.
2661//
2662// Returns the tag set associated with the Outposts bucket. For more information,
2663// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
2664// in the Amazon Simple Storage Service User Guide.
2665//
2666// To use this action, you must have permission to perform the GetBucketTagging
2667// action. By default, the bucket owner has this permission and can grant this
2668// permission to others.
2669//
2670// GetBucketTagging has the following special error:
2671//
2672//    * Error code: NoSuchTagSetError Description: There is no tag set associated
2673//    with the bucket.
2674//
2675// All Amazon S3 on Outposts REST API requests for this action require an additional
2676// parameter of x-amz-outpost-id to be passed with the request and an S3 on
2677// Outposts endpoint hostname prefix instead of s3-control. For an example of
2678// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
2679// endpoint hostname prefix and the x-amz-outpost-id derived using the access
2680// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html#API_control_GetBucketTagging_Examples)
2681// section.
2682//
2683// The following actions are related to GetBucketTagging:
2684//
2685//    * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html)
2686//
2687//    * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html)
2688//
2689// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2690// with awserr.Error's Code and Message methods to get detailed information about
2691// the error.
2692//
2693// See the AWS API reference guide for AWS S3 Control's
2694// API operation GetBucketTagging for usage and error information.
2695// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging
2696func (c *S3Control) GetBucketTagging(input *GetBucketTaggingInput) (*GetBucketTaggingOutput, error) {
2697	req, out := c.GetBucketTaggingRequest(input)
2698	return out, req.Send()
2699}
2700
2701// GetBucketTaggingWithContext is the same as GetBucketTagging with the addition of
2702// the ability to pass a context and additional request options.
2703//
2704// See GetBucketTagging for details on how to use this API operation.
2705//
2706// The context must be non-nil and will be used for request cancellation. If
2707// the context is nil a panic will occur. In the future the SDK may create
2708// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2709// for more information on using Contexts.
2710func (c *S3Control) GetBucketTaggingWithContext(ctx aws.Context, input *GetBucketTaggingInput, opts ...request.Option) (*GetBucketTaggingOutput, error) {
2711	req, out := c.GetBucketTaggingRequest(input)
2712	req.SetContext(ctx)
2713	req.ApplyOptions(opts...)
2714	return out, req.Send()
2715}
2716
2717const opGetJobTagging = "GetJobTagging"
2718
2719// GetJobTaggingRequest generates a "aws/request.Request" representing the
2720// client's request for the GetJobTagging operation. The "output" return
2721// value will be populated with the request's response once the request completes
2722// successfully.
2723//
2724// Use "Send" method on the returned Request to send the API call to the service.
2725// the "output" return value is not valid until after Send returns without error.
2726//
2727// See GetJobTagging for more information on using the GetJobTagging
2728// API call, and error handling.
2729//
2730// This method is useful when you want to inject custom logic or configuration
2731// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2732//
2733//
2734//    // Example sending a request using the GetJobTaggingRequest method.
2735//    req, resp := client.GetJobTaggingRequest(params)
2736//
2737//    err := req.Send()
2738//    if err == nil { // resp is now filled
2739//        fmt.Println(resp)
2740//    }
2741//
2742// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging
2743func (c *S3Control) GetJobTaggingRequest(input *GetJobTaggingInput) (req *request.Request, output *GetJobTaggingOutput) {
2744	op := &request.Operation{
2745		Name:       opGetJobTagging,
2746		HTTPMethod: "GET",
2747		HTTPPath:   "/v20180820/jobs/{id}/tagging",
2748	}
2749
2750	if input == nil {
2751		input = &GetJobTaggingInput{}
2752	}
2753
2754	output = &GetJobTaggingOutput{}
2755	req = c.newRequest(op, input, output)
2756	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2757	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2758	return
2759}
2760
2761// GetJobTagging API operation for AWS S3 Control.
2762//
2763// Returns the tags on an S3 Batch Operations job. To use this operation, you
2764// must have permission to perform the s3:GetJobTagging action. For more information,
2765// 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)
2766// in the Amazon Simple Storage Service User Guide.
2767//
2768// Related actions include:
2769//
2770//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
2771//
2772//    * PutJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html)
2773//
2774//    * DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
2775//
2776// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2777// with awserr.Error's Code and Message methods to get detailed information about
2778// the error.
2779//
2780// See the AWS API reference guide for AWS S3 Control's
2781// API operation GetJobTagging for usage and error information.
2782//
2783// Returned Error Codes:
2784//   * ErrCodeInternalServiceException "InternalServiceException"
2785//
2786//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
2787//
2788//   * ErrCodeNotFoundException "NotFoundException"
2789//
2790// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging
2791func (c *S3Control) GetJobTagging(input *GetJobTaggingInput) (*GetJobTaggingOutput, error) {
2792	req, out := c.GetJobTaggingRequest(input)
2793	return out, req.Send()
2794}
2795
2796// GetJobTaggingWithContext is the same as GetJobTagging with the addition of
2797// the ability to pass a context and additional request options.
2798//
2799// See GetJobTagging for details on how to use this API operation.
2800//
2801// The context must be non-nil and will be used for request cancellation. If
2802// the context is nil a panic will occur. In the future the SDK may create
2803// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2804// for more information on using Contexts.
2805func (c *S3Control) GetJobTaggingWithContext(ctx aws.Context, input *GetJobTaggingInput, opts ...request.Option) (*GetJobTaggingOutput, error) {
2806	req, out := c.GetJobTaggingRequest(input)
2807	req.SetContext(ctx)
2808	req.ApplyOptions(opts...)
2809	return out, req.Send()
2810}
2811
2812const opGetPublicAccessBlock = "GetPublicAccessBlock"
2813
2814// GetPublicAccessBlockRequest generates a "aws/request.Request" representing the
2815// client's request for the GetPublicAccessBlock operation. The "output" return
2816// value will be populated with the request's response once the request completes
2817// successfully.
2818//
2819// Use "Send" method on the returned Request to send the API call to the service.
2820// the "output" return value is not valid until after Send returns without error.
2821//
2822// See GetPublicAccessBlock for more information on using the GetPublicAccessBlock
2823// API call, and error handling.
2824//
2825// This method is useful when you want to inject custom logic or configuration
2826// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2827//
2828//
2829//    // Example sending a request using the GetPublicAccessBlockRequest method.
2830//    req, resp := client.GetPublicAccessBlockRequest(params)
2831//
2832//    err := req.Send()
2833//    if err == nil { // resp is now filled
2834//        fmt.Println(resp)
2835//    }
2836//
2837// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock
2838func (c *S3Control) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput) (req *request.Request, output *GetPublicAccessBlockOutput) {
2839	op := &request.Operation{
2840		Name:       opGetPublicAccessBlock,
2841		HTTPMethod: "GET",
2842		HTTPPath:   "/v20180820/configuration/publicAccessBlock",
2843	}
2844
2845	if input == nil {
2846		input = &GetPublicAccessBlockInput{}
2847	}
2848
2849	output = &GetPublicAccessBlockOutput{}
2850	req = c.newRequest(op, input, output)
2851	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2852	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2853	return
2854}
2855
2856// GetPublicAccessBlock API operation for AWS S3 Control.
2857//
2858// Retrieves the PublicAccessBlock configuration for an AWS account. For more
2859// information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).
2860//
2861// Related actions include:
2862//
2863//    * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html)
2864//
2865//    * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html)
2866//
2867// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2868// with awserr.Error's Code and Message methods to get detailed information about
2869// the error.
2870//
2871// See the AWS API reference guide for AWS S3 Control's
2872// API operation GetPublicAccessBlock for usage and error information.
2873//
2874// Returned Error Codes:
2875//   * ErrCodeNoSuchPublicAccessBlockConfiguration "NoSuchPublicAccessBlockConfiguration"
2876//   Amazon S3 throws this exception if you make a GetPublicAccessBlock request
2877//   against an account that doesn't have a PublicAccessBlockConfiguration set.
2878//
2879// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock
2880func (c *S3Control) GetPublicAccessBlock(input *GetPublicAccessBlockInput) (*GetPublicAccessBlockOutput, error) {
2881	req, out := c.GetPublicAccessBlockRequest(input)
2882	return out, req.Send()
2883}
2884
2885// GetPublicAccessBlockWithContext is the same as GetPublicAccessBlock with the addition of
2886// the ability to pass a context and additional request options.
2887//
2888// See GetPublicAccessBlock for details on how to use this API operation.
2889//
2890// The context must be non-nil and will be used for request cancellation. If
2891// the context is nil a panic will occur. In the future the SDK may create
2892// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2893// for more information on using Contexts.
2894func (c *S3Control) GetPublicAccessBlockWithContext(ctx aws.Context, input *GetPublicAccessBlockInput, opts ...request.Option) (*GetPublicAccessBlockOutput, error) {
2895	req, out := c.GetPublicAccessBlockRequest(input)
2896	req.SetContext(ctx)
2897	req.ApplyOptions(opts...)
2898	return out, req.Send()
2899}
2900
2901const opGetStorageLensConfiguration = "GetStorageLensConfiguration"
2902
2903// GetStorageLensConfigurationRequest generates a "aws/request.Request" representing the
2904// client's request for the GetStorageLensConfiguration operation. The "output" return
2905// value will be populated with the request's response once the request completes
2906// successfully.
2907//
2908// Use "Send" method on the returned Request to send the API call to the service.
2909// the "output" return value is not valid until after Send returns without error.
2910//
2911// See GetStorageLensConfiguration for more information on using the GetStorageLensConfiguration
2912// API call, and error handling.
2913//
2914// This method is useful when you want to inject custom logic or configuration
2915// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2916//
2917//
2918//    // Example sending a request using the GetStorageLensConfigurationRequest method.
2919//    req, resp := client.GetStorageLensConfigurationRequest(params)
2920//
2921//    err := req.Send()
2922//    if err == nil { // resp is now filled
2923//        fmt.Println(resp)
2924//    }
2925//
2926// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfiguration
2927func (c *S3Control) GetStorageLensConfigurationRequest(input *GetStorageLensConfigurationInput) (req *request.Request, output *GetStorageLensConfigurationOutput) {
2928	op := &request.Operation{
2929		Name:       opGetStorageLensConfiguration,
2930		HTTPMethod: "GET",
2931		HTTPPath:   "/v20180820/storagelens/{storagelensid}",
2932	}
2933
2934	if input == nil {
2935		input = &GetStorageLensConfigurationInput{}
2936	}
2937
2938	output = &GetStorageLensConfigurationOutput{}
2939	req = c.newRequest(op, input, output)
2940	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
2941	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
2942	return
2943}
2944
2945// GetStorageLensConfiguration API operation for AWS S3 Control.
2946//
2947// Gets the Amazon S3 Storage Lens configuration. For more information, see
2948// Assessing your storage activity and usage with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
2949// in the Amazon Simple Storage Service User Guide.
2950//
2951// To use this action, you must have permission to perform the s3:GetStorageLensConfiguration
2952// action. For more information, see Setting permissions to use Amazon S3 Storage
2953// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
2954// in the Amazon Simple Storage Service User Guide.
2955//
2956// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2957// with awserr.Error's Code and Message methods to get detailed information about
2958// the error.
2959//
2960// See the AWS API reference guide for AWS S3 Control's
2961// API operation GetStorageLensConfiguration for usage and error information.
2962// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfiguration
2963func (c *S3Control) GetStorageLensConfiguration(input *GetStorageLensConfigurationInput) (*GetStorageLensConfigurationOutput, error) {
2964	req, out := c.GetStorageLensConfigurationRequest(input)
2965	return out, req.Send()
2966}
2967
2968// GetStorageLensConfigurationWithContext is the same as GetStorageLensConfiguration with the addition of
2969// the ability to pass a context and additional request options.
2970//
2971// See GetStorageLensConfiguration for details on how to use this API operation.
2972//
2973// The context must be non-nil and will be used for request cancellation. If
2974// the context is nil a panic will occur. In the future the SDK may create
2975// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2976// for more information on using Contexts.
2977func (c *S3Control) GetStorageLensConfigurationWithContext(ctx aws.Context, input *GetStorageLensConfigurationInput, opts ...request.Option) (*GetStorageLensConfigurationOutput, error) {
2978	req, out := c.GetStorageLensConfigurationRequest(input)
2979	req.SetContext(ctx)
2980	req.ApplyOptions(opts...)
2981	return out, req.Send()
2982}
2983
2984const opGetStorageLensConfigurationTagging = "GetStorageLensConfigurationTagging"
2985
2986// GetStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the
2987// client's request for the GetStorageLensConfigurationTagging operation. The "output" return
2988// value will be populated with the request's response once the request completes
2989// successfully.
2990//
2991// Use "Send" method on the returned Request to send the API call to the service.
2992// the "output" return value is not valid until after Send returns without error.
2993//
2994// See GetStorageLensConfigurationTagging for more information on using the GetStorageLensConfigurationTagging
2995// API call, and error handling.
2996//
2997// This method is useful when you want to inject custom logic or configuration
2998// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2999//
3000//
3001//    // Example sending a request using the GetStorageLensConfigurationTaggingRequest method.
3002//    req, resp := client.GetStorageLensConfigurationTaggingRequest(params)
3003//
3004//    err := req.Send()
3005//    if err == nil { // resp is now filled
3006//        fmt.Println(resp)
3007//    }
3008//
3009// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTagging
3010func (c *S3Control) GetStorageLensConfigurationTaggingRequest(input *GetStorageLensConfigurationTaggingInput) (req *request.Request, output *GetStorageLensConfigurationTaggingOutput) {
3011	op := &request.Operation{
3012		Name:       opGetStorageLensConfigurationTagging,
3013		HTTPMethod: "GET",
3014		HTTPPath:   "/v20180820/storagelens/{storagelensid}/tagging",
3015	}
3016
3017	if input == nil {
3018		input = &GetStorageLensConfigurationTaggingInput{}
3019	}
3020
3021	output = &GetStorageLensConfigurationTaggingOutput{}
3022	req = c.newRequest(op, input, output)
3023	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3024	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3025	return
3026}
3027
3028// GetStorageLensConfigurationTagging API operation for AWS S3 Control.
3029//
3030// Gets the tags of Amazon S3 Storage Lens configuration. For more information
3031// about S3 Storage Lens, see Assessing your storage activity and usage with
3032// Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
3033// in the Amazon Simple Storage Service User Guide.
3034//
3035// To use this action, you must have permission to perform the s3:GetStorageLensConfigurationTagging
3036// action. For more information, see Setting permissions to use Amazon S3 Storage
3037// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
3038// in the Amazon Simple Storage Service User Guide.
3039//
3040// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3041// with awserr.Error's Code and Message methods to get detailed information about
3042// the error.
3043//
3044// See the AWS API reference guide for AWS S3 Control's
3045// API operation GetStorageLensConfigurationTagging for usage and error information.
3046// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTagging
3047func (c *S3Control) GetStorageLensConfigurationTagging(input *GetStorageLensConfigurationTaggingInput) (*GetStorageLensConfigurationTaggingOutput, error) {
3048	req, out := c.GetStorageLensConfigurationTaggingRequest(input)
3049	return out, req.Send()
3050}
3051
3052// GetStorageLensConfigurationTaggingWithContext is the same as GetStorageLensConfigurationTagging with the addition of
3053// the ability to pass a context and additional request options.
3054//
3055// See GetStorageLensConfigurationTagging for details on how to use this API operation.
3056//
3057// The context must be non-nil and will be used for request cancellation. If
3058// the context is nil a panic will occur. In the future the SDK may create
3059// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3060// for more information on using Contexts.
3061func (c *S3Control) GetStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *GetStorageLensConfigurationTaggingInput, opts ...request.Option) (*GetStorageLensConfigurationTaggingOutput, error) {
3062	req, out := c.GetStorageLensConfigurationTaggingRequest(input)
3063	req.SetContext(ctx)
3064	req.ApplyOptions(opts...)
3065	return out, req.Send()
3066}
3067
3068const opListAccessPoints = "ListAccessPoints"
3069
3070// ListAccessPointsRequest generates a "aws/request.Request" representing the
3071// client's request for the ListAccessPoints operation. The "output" return
3072// value will be populated with the request's response once the request completes
3073// successfully.
3074//
3075// Use "Send" method on the returned Request to send the API call to the service.
3076// the "output" return value is not valid until after Send returns without error.
3077//
3078// See ListAccessPoints for more information on using the ListAccessPoints
3079// API call, and error handling.
3080//
3081// This method is useful when you want to inject custom logic or configuration
3082// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3083//
3084//
3085//    // Example sending a request using the ListAccessPointsRequest method.
3086//    req, resp := client.ListAccessPointsRequest(params)
3087//
3088//    err := req.Send()
3089//    if err == nil { // resp is now filled
3090//        fmt.Println(resp)
3091//    }
3092//
3093// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints
3094func (c *S3Control) ListAccessPointsRequest(input *ListAccessPointsInput) (req *request.Request, output *ListAccessPointsOutput) {
3095	op := &request.Operation{
3096		Name:       opListAccessPoints,
3097		HTTPMethod: "GET",
3098		HTTPPath:   "/v20180820/accesspoint",
3099		Paginator: &request.Paginator{
3100			InputTokens:     []string{"NextToken"},
3101			OutputTokens:    []string{"NextToken"},
3102			LimitToken:      "MaxResults",
3103			TruncationToken: "",
3104		},
3105	}
3106
3107	if input == nil {
3108		input = &ListAccessPointsInput{}
3109	}
3110
3111	output = &ListAccessPointsOutput{}
3112	req = c.newRequest(op, input, output)
3113	// update account id or check if provided input for account id member matches
3114	// the account id present in ARN
3115	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
3116	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3117	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3118	return
3119}
3120
3121// ListAccessPoints API operation for AWS S3 Control.
3122//
3123// Returns a list of the access points currently associated with the specified
3124// bucket. You can retrieve up to 1000 access points per call. If the specified
3125// bucket has more than 1,000 access points (or the number specified in maxResults,
3126// whichever is less), the response will include a continuation token that you
3127// can use to list the additional access points.
3128//
3129// All Amazon S3 on Outposts REST API requests for this action require an additional
3130// parameter of x-amz-outpost-id to be passed with the request and an S3 on
3131// Outposts endpoint hostname prefix instead of s3-control. For an example of
3132// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
3133// endpoint hostname prefix and the x-amz-outpost-id derived using the access
3134// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples)
3135// section.
3136//
3137// The following actions are related to ListAccessPoints:
3138//
3139//    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
3140//
3141//    * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)
3142//
3143//    * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)
3144//
3145// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3146// with awserr.Error's Code and Message methods to get detailed information about
3147// the error.
3148//
3149// See the AWS API reference guide for AWS S3 Control's
3150// API operation ListAccessPoints for usage and error information.
3151// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints
3152func (c *S3Control) ListAccessPoints(input *ListAccessPointsInput) (*ListAccessPointsOutput, error) {
3153	req, out := c.ListAccessPointsRequest(input)
3154	return out, req.Send()
3155}
3156
3157// ListAccessPointsWithContext is the same as ListAccessPoints with the addition of
3158// the ability to pass a context and additional request options.
3159//
3160// See ListAccessPoints for details on how to use this API operation.
3161//
3162// The context must be non-nil and will be used for request cancellation. If
3163// the context is nil a panic will occur. In the future the SDK may create
3164// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3165// for more information on using Contexts.
3166func (c *S3Control) ListAccessPointsWithContext(ctx aws.Context, input *ListAccessPointsInput, opts ...request.Option) (*ListAccessPointsOutput, error) {
3167	req, out := c.ListAccessPointsRequest(input)
3168	req.SetContext(ctx)
3169	req.ApplyOptions(opts...)
3170	return out, req.Send()
3171}
3172
3173// ListAccessPointsPages iterates over the pages of a ListAccessPoints operation,
3174// calling the "fn" function with the response data for each page. To stop
3175// iterating, return false from the fn function.
3176//
3177// See ListAccessPoints method for more information on how to use this operation.
3178//
3179// Note: This operation can generate multiple requests to a service.
3180//
3181//    // Example iterating over at most 3 pages of a ListAccessPoints operation.
3182//    pageNum := 0
3183//    err := client.ListAccessPointsPages(params,
3184//        func(page *s3control.ListAccessPointsOutput, lastPage bool) bool {
3185//            pageNum++
3186//            fmt.Println(page)
3187//            return pageNum <= 3
3188//        })
3189//
3190func (c *S3Control) ListAccessPointsPages(input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool) error {
3191	return c.ListAccessPointsPagesWithContext(aws.BackgroundContext(), input, fn)
3192}
3193
3194// ListAccessPointsPagesWithContext same as ListAccessPointsPages except
3195// it takes a Context and allows setting request options on the pages.
3196//
3197// The context must be non-nil and will be used for request cancellation. If
3198// the context is nil a panic will occur. In the future the SDK may create
3199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3200// for more information on using Contexts.
3201func (c *S3Control) ListAccessPointsPagesWithContext(ctx aws.Context, input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool, opts ...request.Option) error {
3202	p := request.Pagination{
3203		NewRequest: func() (*request.Request, error) {
3204			var inCpy *ListAccessPointsInput
3205			if input != nil {
3206				tmp := *input
3207				inCpy = &tmp
3208			}
3209			req, _ := c.ListAccessPointsRequest(inCpy)
3210			req.SetContext(ctx)
3211			req.ApplyOptions(opts...)
3212			return req, nil
3213		},
3214	}
3215
3216	for p.Next() {
3217		if !fn(p.Page().(*ListAccessPointsOutput), !p.HasNextPage()) {
3218			break
3219		}
3220	}
3221
3222	return p.Err()
3223}
3224
3225const opListAccessPointsForObjectLambda = "ListAccessPointsForObjectLambda"
3226
3227// ListAccessPointsForObjectLambdaRequest generates a "aws/request.Request" representing the
3228// client's request for the ListAccessPointsForObjectLambda operation. The "output" return
3229// value will be populated with the request's response once the request completes
3230// successfully.
3231//
3232// Use "Send" method on the returned Request to send the API call to the service.
3233// the "output" return value is not valid until after Send returns without error.
3234//
3235// See ListAccessPointsForObjectLambda for more information on using the ListAccessPointsForObjectLambda
3236// API call, and error handling.
3237//
3238// This method is useful when you want to inject custom logic or configuration
3239// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3240//
3241//
3242//    // Example sending a request using the ListAccessPointsForObjectLambdaRequest method.
3243//    req, resp := client.ListAccessPointsForObjectLambdaRequest(params)
3244//
3245//    err := req.Send()
3246//    if err == nil { // resp is now filled
3247//        fmt.Println(resp)
3248//    }
3249//
3250// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsForObjectLambda
3251func (c *S3Control) ListAccessPointsForObjectLambdaRequest(input *ListAccessPointsForObjectLambdaInput) (req *request.Request, output *ListAccessPointsForObjectLambdaOutput) {
3252	op := &request.Operation{
3253		Name:       opListAccessPointsForObjectLambda,
3254		HTTPMethod: "GET",
3255		HTTPPath:   "/v20180820/accesspointforobjectlambda",
3256		Paginator: &request.Paginator{
3257			InputTokens:     []string{"NextToken"},
3258			OutputTokens:    []string{"NextToken"},
3259			LimitToken:      "MaxResults",
3260			TruncationToken: "",
3261		},
3262	}
3263
3264	if input == nil {
3265		input = &ListAccessPointsForObjectLambdaInput{}
3266	}
3267
3268	output = &ListAccessPointsForObjectLambdaOutput{}
3269	req = c.newRequest(op, input, output)
3270	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3271	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3272	return
3273}
3274
3275// ListAccessPointsForObjectLambda API operation for AWS S3 Control.
3276//
3277// Returns a list of the access points associated with the Object Lambda Access
3278// Point. You can retrieve up to 1000 access points per call. If there are more
3279// than 1,000 access points (or the number specified in maxResults, whichever
3280// is less), the response will include a continuation token that you can use
3281// to list the additional access points.
3282//
3283// The following actions are related to ListAccessPointsForObjectLambda:
3284//
3285//    * CreateAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html)
3286//
3287//    * DeleteAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html)
3288//
3289//    * GetAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointForObjectLambda.html)
3290//
3291// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3292// with awserr.Error's Code and Message methods to get detailed information about
3293// the error.
3294//
3295// See the AWS API reference guide for AWS S3 Control's
3296// API operation ListAccessPointsForObjectLambda for usage and error information.
3297// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsForObjectLambda
3298func (c *S3Control) ListAccessPointsForObjectLambda(input *ListAccessPointsForObjectLambdaInput) (*ListAccessPointsForObjectLambdaOutput, error) {
3299	req, out := c.ListAccessPointsForObjectLambdaRequest(input)
3300	return out, req.Send()
3301}
3302
3303// ListAccessPointsForObjectLambdaWithContext is the same as ListAccessPointsForObjectLambda with the addition of
3304// the ability to pass a context and additional request options.
3305//
3306// See ListAccessPointsForObjectLambda for details on how to use this API operation.
3307//
3308// The context must be non-nil and will be used for request cancellation. If
3309// the context is nil a panic will occur. In the future the SDK may create
3310// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3311// for more information on using Contexts.
3312func (c *S3Control) ListAccessPointsForObjectLambdaWithContext(ctx aws.Context, input *ListAccessPointsForObjectLambdaInput, opts ...request.Option) (*ListAccessPointsForObjectLambdaOutput, error) {
3313	req, out := c.ListAccessPointsForObjectLambdaRequest(input)
3314	req.SetContext(ctx)
3315	req.ApplyOptions(opts...)
3316	return out, req.Send()
3317}
3318
3319// ListAccessPointsForObjectLambdaPages iterates over the pages of a ListAccessPointsForObjectLambda operation,
3320// calling the "fn" function with the response data for each page. To stop
3321// iterating, return false from the fn function.
3322//
3323// See ListAccessPointsForObjectLambda method for more information on how to use this operation.
3324//
3325// Note: This operation can generate multiple requests to a service.
3326//
3327//    // Example iterating over at most 3 pages of a ListAccessPointsForObjectLambda operation.
3328//    pageNum := 0
3329//    err := client.ListAccessPointsForObjectLambdaPages(params,
3330//        func(page *s3control.ListAccessPointsForObjectLambdaOutput, lastPage bool) bool {
3331//            pageNum++
3332//            fmt.Println(page)
3333//            return pageNum <= 3
3334//        })
3335//
3336func (c *S3Control) ListAccessPointsForObjectLambdaPages(input *ListAccessPointsForObjectLambdaInput, fn func(*ListAccessPointsForObjectLambdaOutput, bool) bool) error {
3337	return c.ListAccessPointsForObjectLambdaPagesWithContext(aws.BackgroundContext(), input, fn)
3338}
3339
3340// ListAccessPointsForObjectLambdaPagesWithContext same as ListAccessPointsForObjectLambdaPages except
3341// it takes a Context and allows setting request options on the pages.
3342//
3343// The context must be non-nil and will be used for request cancellation. If
3344// the context is nil a panic will occur. In the future the SDK may create
3345// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3346// for more information on using Contexts.
3347func (c *S3Control) ListAccessPointsForObjectLambdaPagesWithContext(ctx aws.Context, input *ListAccessPointsForObjectLambdaInput, fn func(*ListAccessPointsForObjectLambdaOutput, bool) bool, opts ...request.Option) error {
3348	p := request.Pagination{
3349		NewRequest: func() (*request.Request, error) {
3350			var inCpy *ListAccessPointsForObjectLambdaInput
3351			if input != nil {
3352				tmp := *input
3353				inCpy = &tmp
3354			}
3355			req, _ := c.ListAccessPointsForObjectLambdaRequest(inCpy)
3356			req.SetContext(ctx)
3357			req.ApplyOptions(opts...)
3358			return req, nil
3359		},
3360	}
3361
3362	for p.Next() {
3363		if !fn(p.Page().(*ListAccessPointsForObjectLambdaOutput), !p.HasNextPage()) {
3364			break
3365		}
3366	}
3367
3368	return p.Err()
3369}
3370
3371const opListJobs = "ListJobs"
3372
3373// ListJobsRequest generates a "aws/request.Request" representing the
3374// client's request for the ListJobs operation. The "output" return
3375// value will be populated with the request's response once the request completes
3376// successfully.
3377//
3378// Use "Send" method on the returned Request to send the API call to the service.
3379// the "output" return value is not valid until after Send returns without error.
3380//
3381// See ListJobs for more information on using the ListJobs
3382// API call, and error handling.
3383//
3384// This method is useful when you want to inject custom logic or configuration
3385// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3386//
3387//
3388//    // Example sending a request using the ListJobsRequest method.
3389//    req, resp := client.ListJobsRequest(params)
3390//
3391//    err := req.Send()
3392//    if err == nil { // resp is now filled
3393//        fmt.Println(resp)
3394//    }
3395//
3396// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs
3397func (c *S3Control) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
3398	op := &request.Operation{
3399		Name:       opListJobs,
3400		HTTPMethod: "GET",
3401		HTTPPath:   "/v20180820/jobs",
3402		Paginator: &request.Paginator{
3403			InputTokens:     []string{"NextToken"},
3404			OutputTokens:    []string{"NextToken"},
3405			LimitToken:      "MaxResults",
3406			TruncationToken: "",
3407		},
3408	}
3409
3410	if input == nil {
3411		input = &ListJobsInput{}
3412	}
3413
3414	output = &ListJobsOutput{}
3415	req = c.newRequest(op, input, output)
3416	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3417	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3418	return
3419}
3420
3421// ListJobs API operation for AWS S3 Control.
3422//
3423// Lists current S3 Batch Operations jobs and jobs that have ended within the
3424// last 30 days for the AWS account making the request. For more information,
3425// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
3426// in the Amazon Simple Storage Service User Guide.
3427//
3428// Related actions include:
3429//
3430//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
3431//
3432//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
3433//
3434//    * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html)
3435//
3436//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
3437//
3438// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3439// with awserr.Error's Code and Message methods to get detailed information about
3440// the error.
3441//
3442// See the AWS API reference guide for AWS S3 Control's
3443// API operation ListJobs for usage and error information.
3444//
3445// Returned Error Codes:
3446//   * ErrCodeInvalidRequestException "InvalidRequestException"
3447//
3448//   * ErrCodeInternalServiceException "InternalServiceException"
3449//
3450//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
3451//
3452// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs
3453func (c *S3Control) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
3454	req, out := c.ListJobsRequest(input)
3455	return out, req.Send()
3456}
3457
3458// ListJobsWithContext is the same as ListJobs with the addition of
3459// the ability to pass a context and additional request options.
3460//
3461// See ListJobs for details on how to use this API operation.
3462//
3463// The context must be non-nil and will be used for request cancellation. If
3464// the context is nil a panic will occur. In the future the SDK may create
3465// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3466// for more information on using Contexts.
3467func (c *S3Control) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
3468	req, out := c.ListJobsRequest(input)
3469	req.SetContext(ctx)
3470	req.ApplyOptions(opts...)
3471	return out, req.Send()
3472}
3473
3474// ListJobsPages iterates over the pages of a ListJobs operation,
3475// calling the "fn" function with the response data for each page. To stop
3476// iterating, return false from the fn function.
3477//
3478// See ListJobs method for more information on how to use this operation.
3479//
3480// Note: This operation can generate multiple requests to a service.
3481//
3482//    // Example iterating over at most 3 pages of a ListJobs operation.
3483//    pageNum := 0
3484//    err := client.ListJobsPages(params,
3485//        func(page *s3control.ListJobsOutput, lastPage bool) bool {
3486//            pageNum++
3487//            fmt.Println(page)
3488//            return pageNum <= 3
3489//        })
3490//
3491func (c *S3Control) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
3492	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
3493}
3494
3495// ListJobsPagesWithContext same as ListJobsPages except
3496// it takes a Context and allows setting request options on the pages.
3497//
3498// The context must be non-nil and will be used for request cancellation. If
3499// the context is nil a panic will occur. In the future the SDK may create
3500// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3501// for more information on using Contexts.
3502func (c *S3Control) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
3503	p := request.Pagination{
3504		NewRequest: func() (*request.Request, error) {
3505			var inCpy *ListJobsInput
3506			if input != nil {
3507				tmp := *input
3508				inCpy = &tmp
3509			}
3510			req, _ := c.ListJobsRequest(inCpy)
3511			req.SetContext(ctx)
3512			req.ApplyOptions(opts...)
3513			return req, nil
3514		},
3515	}
3516
3517	for p.Next() {
3518		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
3519			break
3520		}
3521	}
3522
3523	return p.Err()
3524}
3525
3526const opListRegionalBuckets = "ListRegionalBuckets"
3527
3528// ListRegionalBucketsRequest generates a "aws/request.Request" representing the
3529// client's request for the ListRegionalBuckets operation. The "output" return
3530// value will be populated with the request's response once the request completes
3531// successfully.
3532//
3533// Use "Send" method on the returned Request to send the API call to the service.
3534// the "output" return value is not valid until after Send returns without error.
3535//
3536// See ListRegionalBuckets for more information on using the ListRegionalBuckets
3537// API call, and error handling.
3538//
3539// This method is useful when you want to inject custom logic or configuration
3540// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3541//
3542//
3543//    // Example sending a request using the ListRegionalBucketsRequest method.
3544//    req, resp := client.ListRegionalBucketsRequest(params)
3545//
3546//    err := req.Send()
3547//    if err == nil { // resp is now filled
3548//        fmt.Println(resp)
3549//    }
3550//
3551// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets
3552func (c *S3Control) ListRegionalBucketsRequest(input *ListRegionalBucketsInput) (req *request.Request, output *ListRegionalBucketsOutput) {
3553	op := &request.Operation{
3554		Name:       opListRegionalBuckets,
3555		HTTPMethod: "GET",
3556		HTTPPath:   "/v20180820/bucket",
3557		Paginator: &request.Paginator{
3558			InputTokens:     []string{"NextToken"},
3559			OutputTokens:    []string{"NextToken"},
3560			LimitToken:      "MaxResults",
3561			TruncationToken: "",
3562		},
3563	}
3564
3565	if input == nil {
3566		input = &ListRegionalBucketsInput{}
3567	}
3568
3569	output = &ListRegionalBucketsOutput{}
3570	req = c.newRequest(op, input, output)
3571	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3572	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3573	return
3574}
3575
3576// ListRegionalBuckets API operation for AWS S3 Control.
3577//
3578// Returns a list of all Outposts buckets in an Outpost that are owned by the
3579// authenticated sender of the request. For more information, see Using Amazon
3580// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
3581// in the Amazon Simple Storage Service User Guide.
3582//
3583// For an example of the request syntax for Amazon S3 on Outposts that uses
3584// the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your
3585// request, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListRegionalBuckets.html#API_control_ListRegionalBuckets_Examples)
3586// section.
3587//
3588// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3589// with awserr.Error's Code and Message methods to get detailed information about
3590// the error.
3591//
3592// See the AWS API reference guide for AWS S3 Control's
3593// API operation ListRegionalBuckets for usage and error information.
3594// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets
3595func (c *S3Control) ListRegionalBuckets(input *ListRegionalBucketsInput) (*ListRegionalBucketsOutput, error) {
3596	req, out := c.ListRegionalBucketsRequest(input)
3597	return out, req.Send()
3598}
3599
3600// ListRegionalBucketsWithContext is the same as ListRegionalBuckets with the addition of
3601// the ability to pass a context and additional request options.
3602//
3603// See ListRegionalBuckets for details on how to use this API operation.
3604//
3605// The context must be non-nil and will be used for request cancellation. If
3606// the context is nil a panic will occur. In the future the SDK may create
3607// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3608// for more information on using Contexts.
3609func (c *S3Control) ListRegionalBucketsWithContext(ctx aws.Context, input *ListRegionalBucketsInput, opts ...request.Option) (*ListRegionalBucketsOutput, error) {
3610	req, out := c.ListRegionalBucketsRequest(input)
3611	req.SetContext(ctx)
3612	req.ApplyOptions(opts...)
3613	return out, req.Send()
3614}
3615
3616// ListRegionalBucketsPages iterates over the pages of a ListRegionalBuckets operation,
3617// calling the "fn" function with the response data for each page. To stop
3618// iterating, return false from the fn function.
3619//
3620// See ListRegionalBuckets method for more information on how to use this operation.
3621//
3622// Note: This operation can generate multiple requests to a service.
3623//
3624//    // Example iterating over at most 3 pages of a ListRegionalBuckets operation.
3625//    pageNum := 0
3626//    err := client.ListRegionalBucketsPages(params,
3627//        func(page *s3control.ListRegionalBucketsOutput, lastPage bool) bool {
3628//            pageNum++
3629//            fmt.Println(page)
3630//            return pageNum <= 3
3631//        })
3632//
3633func (c *S3Control) ListRegionalBucketsPages(input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool) error {
3634	return c.ListRegionalBucketsPagesWithContext(aws.BackgroundContext(), input, fn)
3635}
3636
3637// ListRegionalBucketsPagesWithContext same as ListRegionalBucketsPages except
3638// it takes a Context and allows setting request options on the pages.
3639//
3640// The context must be non-nil and will be used for request cancellation. If
3641// the context is nil a panic will occur. In the future the SDK may create
3642// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3643// for more information on using Contexts.
3644func (c *S3Control) ListRegionalBucketsPagesWithContext(ctx aws.Context, input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool, opts ...request.Option) error {
3645	p := request.Pagination{
3646		NewRequest: func() (*request.Request, error) {
3647			var inCpy *ListRegionalBucketsInput
3648			if input != nil {
3649				tmp := *input
3650				inCpy = &tmp
3651			}
3652			req, _ := c.ListRegionalBucketsRequest(inCpy)
3653			req.SetContext(ctx)
3654			req.ApplyOptions(opts...)
3655			return req, nil
3656		},
3657	}
3658
3659	for p.Next() {
3660		if !fn(p.Page().(*ListRegionalBucketsOutput), !p.HasNextPage()) {
3661			break
3662		}
3663	}
3664
3665	return p.Err()
3666}
3667
3668const opListStorageLensConfigurations = "ListStorageLensConfigurations"
3669
3670// ListStorageLensConfigurationsRequest generates a "aws/request.Request" representing the
3671// client's request for the ListStorageLensConfigurations operation. The "output" return
3672// value will be populated with the request's response once the request completes
3673// successfully.
3674//
3675// Use "Send" method on the returned Request to send the API call to the service.
3676// the "output" return value is not valid until after Send returns without error.
3677//
3678// See ListStorageLensConfigurations for more information on using the ListStorageLensConfigurations
3679// API call, and error handling.
3680//
3681// This method is useful when you want to inject custom logic or configuration
3682// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3683//
3684//
3685//    // Example sending a request using the ListStorageLensConfigurationsRequest method.
3686//    req, resp := client.ListStorageLensConfigurationsRequest(params)
3687//
3688//    err := req.Send()
3689//    if err == nil { // resp is now filled
3690//        fmt.Println(resp)
3691//    }
3692//
3693// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurations
3694func (c *S3Control) ListStorageLensConfigurationsRequest(input *ListStorageLensConfigurationsInput) (req *request.Request, output *ListStorageLensConfigurationsOutput) {
3695	op := &request.Operation{
3696		Name:       opListStorageLensConfigurations,
3697		HTTPMethod: "GET",
3698		HTTPPath:   "/v20180820/storagelens",
3699		Paginator: &request.Paginator{
3700			InputTokens:     []string{"NextToken"},
3701			OutputTokens:    []string{"NextToken"},
3702			LimitToken:      "",
3703			TruncationToken: "",
3704		},
3705	}
3706
3707	if input == nil {
3708		input = &ListStorageLensConfigurationsInput{}
3709	}
3710
3711	output = &ListStorageLensConfigurationsOutput{}
3712	req = c.newRequest(op, input, output)
3713	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3714	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3715	return
3716}
3717
3718// ListStorageLensConfigurations API operation for AWS S3 Control.
3719//
3720// Gets a list of Amazon S3 Storage Lens configurations. For more information
3721// about S3 Storage Lens, see Assessing your storage activity and usage with
3722// Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
3723// in the Amazon Simple Storage Service User Guide.
3724//
3725// To use this action, you must have permission to perform the s3:ListStorageLensConfigurations
3726// action. For more information, see Setting permissions to use Amazon S3 Storage
3727// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
3728// in the Amazon Simple Storage Service User Guide.
3729//
3730// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3731// with awserr.Error's Code and Message methods to get detailed information about
3732// the error.
3733//
3734// See the AWS API reference guide for AWS S3 Control's
3735// API operation ListStorageLensConfigurations for usage and error information.
3736// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurations
3737func (c *S3Control) ListStorageLensConfigurations(input *ListStorageLensConfigurationsInput) (*ListStorageLensConfigurationsOutput, error) {
3738	req, out := c.ListStorageLensConfigurationsRequest(input)
3739	return out, req.Send()
3740}
3741
3742// ListStorageLensConfigurationsWithContext is the same as ListStorageLensConfigurations with the addition of
3743// the ability to pass a context and additional request options.
3744//
3745// See ListStorageLensConfigurations for details on how to use this API operation.
3746//
3747// The context must be non-nil and will be used for request cancellation. If
3748// the context is nil a panic will occur. In the future the SDK may create
3749// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3750// for more information on using Contexts.
3751func (c *S3Control) ListStorageLensConfigurationsWithContext(ctx aws.Context, input *ListStorageLensConfigurationsInput, opts ...request.Option) (*ListStorageLensConfigurationsOutput, error) {
3752	req, out := c.ListStorageLensConfigurationsRequest(input)
3753	req.SetContext(ctx)
3754	req.ApplyOptions(opts...)
3755	return out, req.Send()
3756}
3757
3758// ListStorageLensConfigurationsPages iterates over the pages of a ListStorageLensConfigurations operation,
3759// calling the "fn" function with the response data for each page. To stop
3760// iterating, return false from the fn function.
3761//
3762// See ListStorageLensConfigurations method for more information on how to use this operation.
3763//
3764// Note: This operation can generate multiple requests to a service.
3765//
3766//    // Example iterating over at most 3 pages of a ListStorageLensConfigurations operation.
3767//    pageNum := 0
3768//    err := client.ListStorageLensConfigurationsPages(params,
3769//        func(page *s3control.ListStorageLensConfigurationsOutput, lastPage bool) bool {
3770//            pageNum++
3771//            fmt.Println(page)
3772//            return pageNum <= 3
3773//        })
3774//
3775func (c *S3Control) ListStorageLensConfigurationsPages(input *ListStorageLensConfigurationsInput, fn func(*ListStorageLensConfigurationsOutput, bool) bool) error {
3776	return c.ListStorageLensConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
3777}
3778
3779// ListStorageLensConfigurationsPagesWithContext same as ListStorageLensConfigurationsPages except
3780// it takes a Context and allows setting request options on the pages.
3781//
3782// The context must be non-nil and will be used for request cancellation. If
3783// the context is nil a panic will occur. In the future the SDK may create
3784// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3785// for more information on using Contexts.
3786func (c *S3Control) ListStorageLensConfigurationsPagesWithContext(ctx aws.Context, input *ListStorageLensConfigurationsInput, fn func(*ListStorageLensConfigurationsOutput, bool) bool, opts ...request.Option) error {
3787	p := request.Pagination{
3788		NewRequest: func() (*request.Request, error) {
3789			var inCpy *ListStorageLensConfigurationsInput
3790			if input != nil {
3791				tmp := *input
3792				inCpy = &tmp
3793			}
3794			req, _ := c.ListStorageLensConfigurationsRequest(inCpy)
3795			req.SetContext(ctx)
3796			req.ApplyOptions(opts...)
3797			return req, nil
3798		},
3799	}
3800
3801	for p.Next() {
3802		if !fn(p.Page().(*ListStorageLensConfigurationsOutput), !p.HasNextPage()) {
3803			break
3804		}
3805	}
3806
3807	return p.Err()
3808}
3809
3810const opPutAccessPointConfigurationForObjectLambda = "PutAccessPointConfigurationForObjectLambda"
3811
3812// PutAccessPointConfigurationForObjectLambdaRequest generates a "aws/request.Request" representing the
3813// client's request for the PutAccessPointConfigurationForObjectLambda operation. The "output" return
3814// value will be populated with the request's response once the request completes
3815// successfully.
3816//
3817// Use "Send" method on the returned Request to send the API call to the service.
3818// the "output" return value is not valid until after Send returns without error.
3819//
3820// See PutAccessPointConfigurationForObjectLambda for more information on using the PutAccessPointConfigurationForObjectLambda
3821// API call, and error handling.
3822//
3823// This method is useful when you want to inject custom logic or configuration
3824// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3825//
3826//
3827//    // Example sending a request using the PutAccessPointConfigurationForObjectLambdaRequest method.
3828//    req, resp := client.PutAccessPointConfigurationForObjectLambdaRequest(params)
3829//
3830//    err := req.Send()
3831//    if err == nil { // resp is now filled
3832//        fmt.Println(resp)
3833//    }
3834//
3835// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointConfigurationForObjectLambda
3836func (c *S3Control) PutAccessPointConfigurationForObjectLambdaRequest(input *PutAccessPointConfigurationForObjectLambdaInput) (req *request.Request, output *PutAccessPointConfigurationForObjectLambdaOutput) {
3837	op := &request.Operation{
3838		Name:       opPutAccessPointConfigurationForObjectLambda,
3839		HTTPMethod: "PUT",
3840		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/configuration",
3841	}
3842
3843	if input == nil {
3844		input = &PutAccessPointConfigurationForObjectLambdaInput{}
3845	}
3846
3847	output = &PutAccessPointConfigurationForObjectLambdaOutput{}
3848	req = c.newRequest(op, input, output)
3849	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3850	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3851	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3852	return
3853}
3854
3855// PutAccessPointConfigurationForObjectLambda API operation for AWS S3 Control.
3856//
3857// Replaces configuration for an Object Lambda Access Point.
3858//
3859// The following actions are related to PutAccessPointConfigurationForObjectLambda:
3860//
3861//    * GetAccessPointConfigurationForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointConfigurationForObjectLambda.html)
3862//
3863// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3864// with awserr.Error's Code and Message methods to get detailed information about
3865// the error.
3866//
3867// See the AWS API reference guide for AWS S3 Control's
3868// API operation PutAccessPointConfigurationForObjectLambda for usage and error information.
3869// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointConfigurationForObjectLambda
3870func (c *S3Control) PutAccessPointConfigurationForObjectLambda(input *PutAccessPointConfigurationForObjectLambdaInput) (*PutAccessPointConfigurationForObjectLambdaOutput, error) {
3871	req, out := c.PutAccessPointConfigurationForObjectLambdaRequest(input)
3872	return out, req.Send()
3873}
3874
3875// PutAccessPointConfigurationForObjectLambdaWithContext is the same as PutAccessPointConfigurationForObjectLambda with the addition of
3876// the ability to pass a context and additional request options.
3877//
3878// See PutAccessPointConfigurationForObjectLambda for details on how to use this API operation.
3879//
3880// The context must be non-nil and will be used for request cancellation. If
3881// the context is nil a panic will occur. In the future the SDK may create
3882// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3883// for more information on using Contexts.
3884func (c *S3Control) PutAccessPointConfigurationForObjectLambdaWithContext(ctx aws.Context, input *PutAccessPointConfigurationForObjectLambdaInput, opts ...request.Option) (*PutAccessPointConfigurationForObjectLambdaOutput, error) {
3885	req, out := c.PutAccessPointConfigurationForObjectLambdaRequest(input)
3886	req.SetContext(ctx)
3887	req.ApplyOptions(opts...)
3888	return out, req.Send()
3889}
3890
3891const opPutAccessPointPolicy = "PutAccessPointPolicy"
3892
3893// PutAccessPointPolicyRequest generates a "aws/request.Request" representing the
3894// client's request for the PutAccessPointPolicy operation. The "output" return
3895// value will be populated with the request's response once the request completes
3896// successfully.
3897//
3898// Use "Send" method on the returned Request to send the API call to the service.
3899// the "output" return value is not valid until after Send returns without error.
3900//
3901// See PutAccessPointPolicy for more information on using the PutAccessPointPolicy
3902// API call, and error handling.
3903//
3904// This method is useful when you want to inject custom logic or configuration
3905// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3906//
3907//
3908//    // Example sending a request using the PutAccessPointPolicyRequest method.
3909//    req, resp := client.PutAccessPointPolicyRequest(params)
3910//
3911//    err := req.Send()
3912//    if err == nil { // resp is now filled
3913//        fmt.Println(resp)
3914//    }
3915//
3916// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy
3917func (c *S3Control) PutAccessPointPolicyRequest(input *PutAccessPointPolicyInput) (req *request.Request, output *PutAccessPointPolicyOutput) {
3918	op := &request.Operation{
3919		Name:       opPutAccessPointPolicy,
3920		HTTPMethod: "PUT",
3921		HTTPPath:   "/v20180820/accesspoint/{name}/policy",
3922	}
3923
3924	if input == nil {
3925		input = &PutAccessPointPolicyInput{}
3926	}
3927
3928	output = &PutAccessPointPolicyOutput{}
3929	req = c.newRequest(op, input, output)
3930	// update account id or check if provided input for account id member matches
3931	// the account id present in ARN
3932	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
3933	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3934	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
3935	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
3936	return
3937}
3938
3939// PutAccessPointPolicy API operation for AWS S3 Control.
3940//
3941// Associates an access policy with the specified access point. Each access
3942// point can have only one policy, so a request made to this API replaces any
3943// existing policy associated with the specified access point.
3944//
3945// All Amazon S3 on Outposts REST API requests for this action require an additional
3946// parameter of x-amz-outpost-id to be passed with the request and an S3 on
3947// Outposts endpoint hostname prefix instead of s3-control. For an example of
3948// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
3949// endpoint hostname prefix and the x-amz-outpost-id derived using the access
3950// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html#API_control_PutAccessPointPolicy_Examples)
3951// section.
3952//
3953// The following actions are related to PutAccessPointPolicy:
3954//
3955//    * GetAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html)
3956//
3957//    * DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html)
3958//
3959// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3960// with awserr.Error's Code and Message methods to get detailed information about
3961// the error.
3962//
3963// See the AWS API reference guide for AWS S3 Control's
3964// API operation PutAccessPointPolicy for usage and error information.
3965// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy
3966func (c *S3Control) PutAccessPointPolicy(input *PutAccessPointPolicyInput) (*PutAccessPointPolicyOutput, error) {
3967	req, out := c.PutAccessPointPolicyRequest(input)
3968	return out, req.Send()
3969}
3970
3971// PutAccessPointPolicyWithContext is the same as PutAccessPointPolicy with the addition of
3972// the ability to pass a context and additional request options.
3973//
3974// See PutAccessPointPolicy for details on how to use this API operation.
3975//
3976// The context must be non-nil and will be used for request cancellation. If
3977// the context is nil a panic will occur. In the future the SDK may create
3978// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3979// for more information on using Contexts.
3980func (c *S3Control) PutAccessPointPolicyWithContext(ctx aws.Context, input *PutAccessPointPolicyInput, opts ...request.Option) (*PutAccessPointPolicyOutput, error) {
3981	req, out := c.PutAccessPointPolicyRequest(input)
3982	req.SetContext(ctx)
3983	req.ApplyOptions(opts...)
3984	return out, req.Send()
3985}
3986
3987const opPutAccessPointPolicyForObjectLambda = "PutAccessPointPolicyForObjectLambda"
3988
3989// PutAccessPointPolicyForObjectLambdaRequest generates a "aws/request.Request" representing the
3990// client's request for the PutAccessPointPolicyForObjectLambda operation. The "output" return
3991// value will be populated with the request's response once the request completes
3992// successfully.
3993//
3994// Use "Send" method on the returned Request to send the API call to the service.
3995// the "output" return value is not valid until after Send returns without error.
3996//
3997// See PutAccessPointPolicyForObjectLambda for more information on using the PutAccessPointPolicyForObjectLambda
3998// API call, and error handling.
3999//
4000// This method is useful when you want to inject custom logic or configuration
4001// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4002//
4003//
4004//    // Example sending a request using the PutAccessPointPolicyForObjectLambdaRequest method.
4005//    req, resp := client.PutAccessPointPolicyForObjectLambdaRequest(params)
4006//
4007//    err := req.Send()
4008//    if err == nil { // resp is now filled
4009//        fmt.Println(resp)
4010//    }
4011//
4012// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicyForObjectLambda
4013func (c *S3Control) PutAccessPointPolicyForObjectLambdaRequest(input *PutAccessPointPolicyForObjectLambdaInput) (req *request.Request, output *PutAccessPointPolicyForObjectLambdaOutput) {
4014	op := &request.Operation{
4015		Name:       opPutAccessPointPolicyForObjectLambda,
4016		HTTPMethod: "PUT",
4017		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/policy",
4018	}
4019
4020	if input == nil {
4021		input = &PutAccessPointPolicyForObjectLambdaInput{}
4022	}
4023
4024	output = &PutAccessPointPolicyForObjectLambdaOutput{}
4025	req = c.newRequest(op, input, output)
4026	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4027	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4028	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4029	return
4030}
4031
4032// PutAccessPointPolicyForObjectLambda API operation for AWS S3 Control.
4033//
4034// Creates or replaces resource policy for an Object Lambda Access Point. For
4035// an example policy, see Creating Object Lambda Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-create.html#olap-create-cli)
4036// in the Amazon Simple Storage Service User Guide.
4037//
4038// The following actions are related to PutAccessPointPolicyForObjectLambda:
4039//
4040//    * DeleteAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html)
4041//
4042//    * GetAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyForObjectLambda.html)
4043//
4044// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4045// with awserr.Error's Code and Message methods to get detailed information about
4046// the error.
4047//
4048// See the AWS API reference guide for AWS S3 Control's
4049// API operation PutAccessPointPolicyForObjectLambda for usage and error information.
4050// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicyForObjectLambda
4051func (c *S3Control) PutAccessPointPolicyForObjectLambda(input *PutAccessPointPolicyForObjectLambdaInput) (*PutAccessPointPolicyForObjectLambdaOutput, error) {
4052	req, out := c.PutAccessPointPolicyForObjectLambdaRequest(input)
4053	return out, req.Send()
4054}
4055
4056// PutAccessPointPolicyForObjectLambdaWithContext is the same as PutAccessPointPolicyForObjectLambda with the addition of
4057// the ability to pass a context and additional request options.
4058//
4059// See PutAccessPointPolicyForObjectLambda for details on how to use this API operation.
4060//
4061// The context must be non-nil and will be used for request cancellation. If
4062// the context is nil a panic will occur. In the future the SDK may create
4063// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4064// for more information on using Contexts.
4065func (c *S3Control) PutAccessPointPolicyForObjectLambdaWithContext(ctx aws.Context, input *PutAccessPointPolicyForObjectLambdaInput, opts ...request.Option) (*PutAccessPointPolicyForObjectLambdaOutput, error) {
4066	req, out := c.PutAccessPointPolicyForObjectLambdaRequest(input)
4067	req.SetContext(ctx)
4068	req.ApplyOptions(opts...)
4069	return out, req.Send()
4070}
4071
4072const opPutBucketLifecycleConfiguration = "PutBucketLifecycleConfiguration"
4073
4074// PutBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
4075// client's request for the PutBucketLifecycleConfiguration operation. The "output" return
4076// value will be populated with the request's response once the request completes
4077// successfully.
4078//
4079// Use "Send" method on the returned Request to send the API call to the service.
4080// the "output" return value is not valid until after Send returns without error.
4081//
4082// See PutBucketLifecycleConfiguration for more information on using the PutBucketLifecycleConfiguration
4083// API call, and error handling.
4084//
4085// This method is useful when you want to inject custom logic or configuration
4086// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4087//
4088//
4089//    // Example sending a request using the PutBucketLifecycleConfigurationRequest method.
4090//    req, resp := client.PutBucketLifecycleConfigurationRequest(params)
4091//
4092//    err := req.Send()
4093//    if err == nil { // resp is now filled
4094//        fmt.Println(resp)
4095//    }
4096//
4097// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration
4098func (c *S3Control) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleConfigurationInput) (req *request.Request, output *PutBucketLifecycleConfigurationOutput) {
4099	op := &request.Operation{
4100		Name:       opPutBucketLifecycleConfiguration,
4101		HTTPMethod: "PUT",
4102		HTTPPath:   "/v20180820/bucket/{name}/lifecycleconfiguration",
4103	}
4104
4105	if input == nil {
4106		input = &PutBucketLifecycleConfigurationInput{}
4107	}
4108
4109	output = &PutBucketLifecycleConfigurationOutput{}
4110	req = c.newRequest(op, input, output)
4111	// update account id or check if provided input for account id member matches
4112	// the account id present in ARN
4113	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
4114	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4115	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4116	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4117	req.Handlers.Build.PushBackNamed(request.NamedHandler{
4118		Name: "contentMd5Handler",
4119		Fn:   checksum.AddBodyContentMD5Handler,
4120	})
4121	return
4122}
4123
4124// PutBucketLifecycleConfiguration API operation for AWS S3 Control.
4125//
4126//
4127// This action puts a lifecycle configuration to an Amazon S3 on Outposts bucket.
4128// To put a lifecycle configuration to an S3 bucket, see PutBucketLifecycleConfiguration
4129// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)
4130// in the Amazon Simple Storage Service API.
4131//
4132// Creates a new lifecycle configuration for the S3 on Outposts bucket or replaces
4133// an existing lifecycle configuration. Outposts buckets only support lifecycle
4134// configurations that delete/expire objects after a certain period of time
4135// and abort incomplete multipart uploads.
4136//
4137// All Amazon S3 on Outposts REST API requests for this action require an additional
4138// parameter of x-amz-outpost-id to be passed with the request and an S3 on
4139// Outposts endpoint hostname prefix instead of s3-control. For an example of
4140// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
4141// endpoint hostname prefix and the x-amz-outpost-id derived using the access
4142// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html#API_control_PutBucketLifecycleConfiguration_Examples)
4143// section.
4144//
4145// The following actions are related to PutBucketLifecycleConfiguration:
4146//
4147//    * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html)
4148//
4149//    * DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html)
4150//
4151// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4152// with awserr.Error's Code and Message methods to get detailed information about
4153// the error.
4154//
4155// See the AWS API reference guide for AWS S3 Control's
4156// API operation PutBucketLifecycleConfiguration for usage and error information.
4157// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration
4158func (c *S3Control) PutBucketLifecycleConfiguration(input *PutBucketLifecycleConfigurationInput) (*PutBucketLifecycleConfigurationOutput, error) {
4159	req, out := c.PutBucketLifecycleConfigurationRequest(input)
4160	return out, req.Send()
4161}
4162
4163// PutBucketLifecycleConfigurationWithContext is the same as PutBucketLifecycleConfiguration with the addition of
4164// the ability to pass a context and additional request options.
4165//
4166// See PutBucketLifecycleConfiguration for details on how to use this API operation.
4167//
4168// The context must be non-nil and will be used for request cancellation. If
4169// the context is nil a panic will occur. In the future the SDK may create
4170// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4171// for more information on using Contexts.
4172func (c *S3Control) PutBucketLifecycleConfigurationWithContext(ctx aws.Context, input *PutBucketLifecycleConfigurationInput, opts ...request.Option) (*PutBucketLifecycleConfigurationOutput, error) {
4173	req, out := c.PutBucketLifecycleConfigurationRequest(input)
4174	req.SetContext(ctx)
4175	req.ApplyOptions(opts...)
4176	return out, req.Send()
4177}
4178
4179const opPutBucketPolicy = "PutBucketPolicy"
4180
4181// PutBucketPolicyRequest generates a "aws/request.Request" representing the
4182// client's request for the PutBucketPolicy operation. The "output" return
4183// value will be populated with the request's response once the request completes
4184// successfully.
4185//
4186// Use "Send" method on the returned Request to send the API call to the service.
4187// the "output" return value is not valid until after Send returns without error.
4188//
4189// See PutBucketPolicy for more information on using the PutBucketPolicy
4190// API call, and error handling.
4191//
4192// This method is useful when you want to inject custom logic or configuration
4193// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4194//
4195//
4196//    // Example sending a request using the PutBucketPolicyRequest method.
4197//    req, resp := client.PutBucketPolicyRequest(params)
4198//
4199//    err := req.Send()
4200//    if err == nil { // resp is now filled
4201//        fmt.Println(resp)
4202//    }
4203//
4204// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy
4205func (c *S3Control) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.Request, output *PutBucketPolicyOutput) {
4206	op := &request.Operation{
4207		Name:       opPutBucketPolicy,
4208		HTTPMethod: "PUT",
4209		HTTPPath:   "/v20180820/bucket/{name}/policy",
4210	}
4211
4212	if input == nil {
4213		input = &PutBucketPolicyInput{}
4214	}
4215
4216	output = &PutBucketPolicyOutput{}
4217	req = c.newRequest(op, input, output)
4218	// update account id or check if provided input for account id member matches
4219	// the account id present in ARN
4220	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
4221	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4222	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4223	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4224	req.Handlers.Build.PushBackNamed(request.NamedHandler{
4225		Name: "contentMd5Handler",
4226		Fn:   checksum.AddBodyContentMD5Handler,
4227	})
4228	return
4229}
4230
4231// PutBucketPolicy API operation for AWS S3 Control.
4232//
4233//
4234// This action puts a bucket policy to an Amazon S3 on Outposts bucket. To put
4235// a policy on an S3 bucket, see PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html)
4236// in the Amazon Simple Storage Service API.
4237//
4238// Applies an Amazon S3 bucket policy to an Outposts bucket. For more information,
4239// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
4240// in the Amazon Simple Storage Service User Guide.
4241//
4242// If you are using an identity other than the root user of the AWS account
4243// that owns the Outposts bucket, the calling identity must have the PutBucketPolicy
4244// permissions on the specified Outposts bucket and belong to the bucket owner's
4245// account in order to use this action.
4246//
4247// If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access
4248// Denied error. If you have the correct permissions, but you're not using an
4249// identity that belongs to the bucket owner's account, Amazon S3 returns a
4250// 405 Method Not Allowed error.
4251//
4252// As a security precaution, the root user of the AWS account that owns a bucket
4253// can always use this action, even if the policy explicitly denies the root
4254// user the ability to perform this action.
4255//
4256// For more information about bucket policies, see Using Bucket Policies and
4257// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html).
4258//
4259// All Amazon S3 on Outposts REST API requests for this action require an additional
4260// parameter of x-amz-outpost-id to be passed with the request and an S3 on
4261// Outposts endpoint hostname prefix instead of s3-control. For an example of
4262// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
4263// endpoint hostname prefix and the x-amz-outpost-id derived using the access
4264// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html#API_control_PutBucketPolicy_Examples)
4265// section.
4266//
4267// The following actions are related to PutBucketPolicy:
4268//
4269//    * GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html)
4270//
4271//    * DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html)
4272//
4273// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4274// with awserr.Error's Code and Message methods to get detailed information about
4275// the error.
4276//
4277// See the AWS API reference guide for AWS S3 Control's
4278// API operation PutBucketPolicy for usage and error information.
4279// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy
4280func (c *S3Control) PutBucketPolicy(input *PutBucketPolicyInput) (*PutBucketPolicyOutput, error) {
4281	req, out := c.PutBucketPolicyRequest(input)
4282	return out, req.Send()
4283}
4284
4285// PutBucketPolicyWithContext is the same as PutBucketPolicy with the addition of
4286// the ability to pass a context and additional request options.
4287//
4288// See PutBucketPolicy for details on how to use this API operation.
4289//
4290// The context must be non-nil and will be used for request cancellation. If
4291// the context is nil a panic will occur. In the future the SDK may create
4292// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4293// for more information on using Contexts.
4294func (c *S3Control) PutBucketPolicyWithContext(ctx aws.Context, input *PutBucketPolicyInput, opts ...request.Option) (*PutBucketPolicyOutput, error) {
4295	req, out := c.PutBucketPolicyRequest(input)
4296	req.SetContext(ctx)
4297	req.ApplyOptions(opts...)
4298	return out, req.Send()
4299}
4300
4301const opPutBucketTagging = "PutBucketTagging"
4302
4303// PutBucketTaggingRequest generates a "aws/request.Request" representing the
4304// client's request for the PutBucketTagging operation. The "output" return
4305// value will be populated with the request's response once the request completes
4306// successfully.
4307//
4308// Use "Send" method on the returned Request to send the API call to the service.
4309// the "output" return value is not valid until after Send returns without error.
4310//
4311// See PutBucketTagging for more information on using the PutBucketTagging
4312// API call, and error handling.
4313//
4314// This method is useful when you want to inject custom logic or configuration
4315// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4316//
4317//
4318//    // Example sending a request using the PutBucketTaggingRequest method.
4319//    req, resp := client.PutBucketTaggingRequest(params)
4320//
4321//    err := req.Send()
4322//    if err == nil { // resp is now filled
4323//        fmt.Println(resp)
4324//    }
4325//
4326// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging
4327func (c *S3Control) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request.Request, output *PutBucketTaggingOutput) {
4328	op := &request.Operation{
4329		Name:       opPutBucketTagging,
4330		HTTPMethod: "PUT",
4331		HTTPPath:   "/v20180820/bucket/{name}/tagging",
4332	}
4333
4334	if input == nil {
4335		input = &PutBucketTaggingInput{}
4336	}
4337
4338	output = &PutBucketTaggingOutput{}
4339	req = c.newRequest(op, input, output)
4340	// update account id or check if provided input for account id member matches
4341	// the account id present in ARN
4342	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
4343	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4344	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4345	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4346	req.Handlers.Build.PushBackNamed(request.NamedHandler{
4347		Name: "contentMd5Handler",
4348		Fn:   checksum.AddBodyContentMD5Handler,
4349	})
4350	return
4351}
4352
4353// PutBucketTagging API operation for AWS S3 Control.
4354//
4355//
4356// This action puts tags on an Amazon S3 on Outposts bucket. To put tags on
4357// an S3 bucket, see PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html)
4358// in the Amazon Simple Storage Service API.
4359//
4360// Sets the tags for an S3 on Outposts bucket. For more information, see Using
4361// Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
4362// in the Amazon Simple Storage Service User Guide.
4363//
4364// Use tags to organize your AWS bill to reflect your own cost structure. To
4365// do this, sign up to get your AWS account bill with tag key values included.
4366// Then, to see the cost of combined resources, organize your billing information
4367// according to resources with the same tag key values. For example, you can
4368// tag several resources with a specific application name, and then organize
4369// your billing information to see the total cost of that application across
4370// several services. For more information, see Cost allocation and tagging (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html).
4371//
4372// Within a bucket, if you add a tag that has the same key as an existing tag,
4373// the new value overwrites the old value. For more information, see Using cost
4374// allocation in Amazon S3 bucket tags (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html).
4375//
4376// To use this action, you must have permissions to perform the s3-outposts:PutBucketTagging
4377// action. The Outposts bucket owner has this permission by default and can
4378// grant this permission to others. For more information about permissions,
4379// 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)
4380// and Managing access permissions to your Amazon S3 resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html).
4381//
4382// PutBucketTagging has the following special errors:
4383//
4384//    * Error code: InvalidTagError Description: The tag provided was not a
4385//    valid tag. This error can occur if the tag did not pass input validation.
4386//    For information about tag restrictions, see User-Defined Tag Restrictions
4387//    (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html)
4388//    and AWS-Generated Cost Allocation Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html).
4389//
4390//    * Error code: MalformedXMLError Description: The XML provided does not
4391//    match the schema.
4392//
4393//    * Error code: OperationAbortedError Description: A conflicting conditional
4394//    action is currently in progress against this resource. Try again.
4395//
4396//    * Error code: InternalError Description: The service was unable to apply
4397//    the provided tag to the bucket.
4398//
4399// All Amazon S3 on Outposts REST API requests for this action require an additional
4400// parameter of x-amz-outpost-id to be passed with the request and an S3 on
4401// Outposts endpoint hostname prefix instead of s3-control. For an example of
4402// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
4403// endpoint hostname prefix and the x-amz-outpost-id derived using the access
4404// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html#API_control_PutBucketTagging_Examples)
4405// section.
4406//
4407// The following actions are related to PutBucketTagging:
4408//
4409//    * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html)
4410//
4411//    * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html)
4412//
4413// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4414// with awserr.Error's Code and Message methods to get detailed information about
4415// the error.
4416//
4417// See the AWS API reference guide for AWS S3 Control's
4418// API operation PutBucketTagging for usage and error information.
4419// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging
4420func (c *S3Control) PutBucketTagging(input *PutBucketTaggingInput) (*PutBucketTaggingOutput, error) {
4421	req, out := c.PutBucketTaggingRequest(input)
4422	return out, req.Send()
4423}
4424
4425// PutBucketTaggingWithContext is the same as PutBucketTagging with the addition of
4426// the ability to pass a context and additional request options.
4427//
4428// See PutBucketTagging for details on how to use this API operation.
4429//
4430// The context must be non-nil and will be used for request cancellation. If
4431// the context is nil a panic will occur. In the future the SDK may create
4432// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4433// for more information on using Contexts.
4434func (c *S3Control) PutBucketTaggingWithContext(ctx aws.Context, input *PutBucketTaggingInput, opts ...request.Option) (*PutBucketTaggingOutput, error) {
4435	req, out := c.PutBucketTaggingRequest(input)
4436	req.SetContext(ctx)
4437	req.ApplyOptions(opts...)
4438	return out, req.Send()
4439}
4440
4441const opPutJobTagging = "PutJobTagging"
4442
4443// PutJobTaggingRequest generates a "aws/request.Request" representing the
4444// client's request for the PutJobTagging operation. The "output" return
4445// value will be populated with the request's response once the request completes
4446// successfully.
4447//
4448// Use "Send" method on the returned Request to send the API call to the service.
4449// the "output" return value is not valid until after Send returns without error.
4450//
4451// See PutJobTagging for more information on using the PutJobTagging
4452// API call, and error handling.
4453//
4454// This method is useful when you want to inject custom logic or configuration
4455// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4456//
4457//
4458//    // Example sending a request using the PutJobTaggingRequest method.
4459//    req, resp := client.PutJobTaggingRequest(params)
4460//
4461//    err := req.Send()
4462//    if err == nil { // resp is now filled
4463//        fmt.Println(resp)
4464//    }
4465//
4466// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging
4467func (c *S3Control) PutJobTaggingRequest(input *PutJobTaggingInput) (req *request.Request, output *PutJobTaggingOutput) {
4468	op := &request.Operation{
4469		Name:       opPutJobTagging,
4470		HTTPMethod: "PUT",
4471		HTTPPath:   "/v20180820/jobs/{id}/tagging",
4472	}
4473
4474	if input == nil {
4475		input = &PutJobTaggingInput{}
4476	}
4477
4478	output = &PutJobTaggingOutput{}
4479	req = c.newRequest(op, input, output)
4480	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4481	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4482	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4483	return
4484}
4485
4486// PutJobTagging API operation for AWS S3 Control.
4487//
4488// Sets the supplied tag-set on an S3 Batch Operations job.
4489//
4490// A tag is a key-value pair. You can associate S3 Batch Operations tags with
4491// any job by sending a PUT request against the tagging subresource that is
4492// associated with the job. To modify the existing tag set, you can either replace
4493// the existing tag set entirely, or make changes within the existing tag set
4494// by retrieving the existing tag set using GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html),
4495// modify that tag set, and use this action to replace the tag set with the
4496// one you modified. For more information, see Controlling access and labeling
4497// jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags)
4498// in the Amazon Simple Storage Service User Guide.
4499//
4500//    * If you send this request with an empty tag set, Amazon S3 deletes the
4501//    existing tag set on the Batch Operations job. If you use this method,
4502//    you are charged for a Tier 1 Request (PUT). For more information, see
4503//    Amazon S3 pricing (http://aws.amazon.com/s3/pricing/).
4504//
4505//    * For deleting existing tags for your Batch Operations job, a DeleteJobTagging
4506//    (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
4507//    request is preferred because it achieves the same result without incurring
4508//    charges.
4509//
4510//    * A few things to consider about using tags: Amazon S3 limits the maximum
4511//    number of tags to 50 tags per job. You can associate up to 50 tags with
4512//    a job as long as they have unique tag keys. A tag key can be up to 128
4513//    Unicode characters in length, and tag values can be up to 256 Unicode
4514//    characters in length. The key and values are case sensitive. For tagging-related
4515//    restrictions related to characters and encodings, see User-Defined Tag
4516//    Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html)
4517//    in the AWS Billing and Cost Management User Guide.
4518//
4519// To use this action, you must have permission to perform the s3:PutJobTagging
4520// action.
4521//
4522// Related actions include:
4523//
4524//    * CreatJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
4525//
4526//    * GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html)
4527//
4528//    * DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
4529//
4530// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4531// with awserr.Error's Code and Message methods to get detailed information about
4532// the error.
4533//
4534// See the AWS API reference guide for AWS S3 Control's
4535// API operation PutJobTagging for usage and error information.
4536//
4537// Returned Error Codes:
4538//   * ErrCodeInternalServiceException "InternalServiceException"
4539//
4540//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4541//
4542//   * ErrCodeNotFoundException "NotFoundException"
4543//
4544//   * ErrCodeTooManyTagsException "TooManyTagsException"
4545//   Amazon S3 throws this exception if you have too many tags in your tag set.
4546//
4547// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging
4548func (c *S3Control) PutJobTagging(input *PutJobTaggingInput) (*PutJobTaggingOutput, error) {
4549	req, out := c.PutJobTaggingRequest(input)
4550	return out, req.Send()
4551}
4552
4553// PutJobTaggingWithContext is the same as PutJobTagging with the addition of
4554// the ability to pass a context and additional request options.
4555//
4556// See PutJobTagging for details on how to use this API operation.
4557//
4558// The context must be non-nil and will be used for request cancellation. If
4559// the context is nil a panic will occur. In the future the SDK may create
4560// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4561// for more information on using Contexts.
4562func (c *S3Control) PutJobTaggingWithContext(ctx aws.Context, input *PutJobTaggingInput, opts ...request.Option) (*PutJobTaggingOutput, error) {
4563	req, out := c.PutJobTaggingRequest(input)
4564	req.SetContext(ctx)
4565	req.ApplyOptions(opts...)
4566	return out, req.Send()
4567}
4568
4569const opPutPublicAccessBlock = "PutPublicAccessBlock"
4570
4571// PutPublicAccessBlockRequest generates a "aws/request.Request" representing the
4572// client's request for the PutPublicAccessBlock operation. The "output" return
4573// value will be populated with the request's response once the request completes
4574// successfully.
4575//
4576// Use "Send" method on the returned Request to send the API call to the service.
4577// the "output" return value is not valid until after Send returns without error.
4578//
4579// See PutPublicAccessBlock for more information on using the PutPublicAccessBlock
4580// API call, and error handling.
4581//
4582// This method is useful when you want to inject custom logic or configuration
4583// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4584//
4585//
4586//    // Example sending a request using the PutPublicAccessBlockRequest method.
4587//    req, resp := client.PutPublicAccessBlockRequest(params)
4588//
4589//    err := req.Send()
4590//    if err == nil { // resp is now filled
4591//        fmt.Println(resp)
4592//    }
4593//
4594// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock
4595func (c *S3Control) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req *request.Request, output *PutPublicAccessBlockOutput) {
4596	op := &request.Operation{
4597		Name:       opPutPublicAccessBlock,
4598		HTTPMethod: "PUT",
4599		HTTPPath:   "/v20180820/configuration/publicAccessBlock",
4600	}
4601
4602	if input == nil {
4603		input = &PutPublicAccessBlockInput{}
4604	}
4605
4606	output = &PutPublicAccessBlockOutput{}
4607	req = c.newRequest(op, input, output)
4608	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4609	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4610	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4611	return
4612}
4613
4614// PutPublicAccessBlock API operation for AWS S3 Control.
4615//
4616// Creates or modifies the PublicAccessBlock configuration for an AWS account.
4617// For more information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).
4618//
4619// Related actions include:
4620//
4621//    * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html)
4622//
4623//    * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html)
4624//
4625// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4626// with awserr.Error's Code and Message methods to get detailed information about
4627// the error.
4628//
4629// See the AWS API reference guide for AWS S3 Control's
4630// API operation PutPublicAccessBlock for usage and error information.
4631// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock
4632func (c *S3Control) PutPublicAccessBlock(input *PutPublicAccessBlockInput) (*PutPublicAccessBlockOutput, error) {
4633	req, out := c.PutPublicAccessBlockRequest(input)
4634	return out, req.Send()
4635}
4636
4637// PutPublicAccessBlockWithContext is the same as PutPublicAccessBlock with the addition of
4638// the ability to pass a context and additional request options.
4639//
4640// See PutPublicAccessBlock for details on how to use this API operation.
4641//
4642// The context must be non-nil and will be used for request cancellation. If
4643// the context is nil a panic will occur. In the future the SDK may create
4644// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4645// for more information on using Contexts.
4646func (c *S3Control) PutPublicAccessBlockWithContext(ctx aws.Context, input *PutPublicAccessBlockInput, opts ...request.Option) (*PutPublicAccessBlockOutput, error) {
4647	req, out := c.PutPublicAccessBlockRequest(input)
4648	req.SetContext(ctx)
4649	req.ApplyOptions(opts...)
4650	return out, req.Send()
4651}
4652
4653const opPutStorageLensConfiguration = "PutStorageLensConfiguration"
4654
4655// PutStorageLensConfigurationRequest generates a "aws/request.Request" representing the
4656// client's request for the PutStorageLensConfiguration operation. The "output" return
4657// value will be populated with the request's response once the request completes
4658// successfully.
4659//
4660// Use "Send" method on the returned Request to send the API call to the service.
4661// the "output" return value is not valid until after Send returns without error.
4662//
4663// See PutStorageLensConfiguration for more information on using the PutStorageLensConfiguration
4664// API call, and error handling.
4665//
4666// This method is useful when you want to inject custom logic or configuration
4667// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4668//
4669//
4670//    // Example sending a request using the PutStorageLensConfigurationRequest method.
4671//    req, resp := client.PutStorageLensConfigurationRequest(params)
4672//
4673//    err := req.Send()
4674//    if err == nil { // resp is now filled
4675//        fmt.Println(resp)
4676//    }
4677//
4678// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration
4679func (c *S3Control) PutStorageLensConfigurationRequest(input *PutStorageLensConfigurationInput) (req *request.Request, output *PutStorageLensConfigurationOutput) {
4680	op := &request.Operation{
4681		Name:       opPutStorageLensConfiguration,
4682		HTTPMethod: "PUT",
4683		HTTPPath:   "/v20180820/storagelens/{storagelensid}",
4684	}
4685
4686	if input == nil {
4687		input = &PutStorageLensConfigurationInput{}
4688	}
4689
4690	output = &PutStorageLensConfigurationOutput{}
4691	req = c.newRequest(op, input, output)
4692	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4693	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4694	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4695	return
4696}
4697
4698// PutStorageLensConfiguration API operation for AWS S3 Control.
4699//
4700// Puts an Amazon S3 Storage Lens configuration. For more information about
4701// S3 Storage Lens, see Working with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
4702// in the Amazon Simple Storage Service User Guide.
4703//
4704// To use this action, you must have permission to perform the s3:PutStorageLensConfiguration
4705// action. For more information, see Setting permissions to use Amazon S3 Storage
4706// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
4707// in the Amazon Simple Storage Service User Guide.
4708//
4709// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4710// with awserr.Error's Code and Message methods to get detailed information about
4711// the error.
4712//
4713// See the AWS API reference guide for AWS S3 Control's
4714// API operation PutStorageLensConfiguration for usage and error information.
4715// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration
4716func (c *S3Control) PutStorageLensConfiguration(input *PutStorageLensConfigurationInput) (*PutStorageLensConfigurationOutput, error) {
4717	req, out := c.PutStorageLensConfigurationRequest(input)
4718	return out, req.Send()
4719}
4720
4721// PutStorageLensConfigurationWithContext is the same as PutStorageLensConfiguration with the addition of
4722// the ability to pass a context and additional request options.
4723//
4724// See PutStorageLensConfiguration for details on how to use this API operation.
4725//
4726// The context must be non-nil and will be used for request cancellation. If
4727// the context is nil a panic will occur. In the future the SDK may create
4728// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4729// for more information on using Contexts.
4730func (c *S3Control) PutStorageLensConfigurationWithContext(ctx aws.Context, input *PutStorageLensConfigurationInput, opts ...request.Option) (*PutStorageLensConfigurationOutput, error) {
4731	req, out := c.PutStorageLensConfigurationRequest(input)
4732	req.SetContext(ctx)
4733	req.ApplyOptions(opts...)
4734	return out, req.Send()
4735}
4736
4737const opPutStorageLensConfigurationTagging = "PutStorageLensConfigurationTagging"
4738
4739// PutStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the
4740// client's request for the PutStorageLensConfigurationTagging operation. The "output" return
4741// value will be populated with the request's response once the request completes
4742// successfully.
4743//
4744// Use "Send" method on the returned Request to send the API call to the service.
4745// the "output" return value is not valid until after Send returns without error.
4746//
4747// See PutStorageLensConfigurationTagging for more information on using the PutStorageLensConfigurationTagging
4748// API call, and error handling.
4749//
4750// This method is useful when you want to inject custom logic or configuration
4751// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4752//
4753//
4754//    // Example sending a request using the PutStorageLensConfigurationTaggingRequest method.
4755//    req, resp := client.PutStorageLensConfigurationTaggingRequest(params)
4756//
4757//    err := req.Send()
4758//    if err == nil { // resp is now filled
4759//        fmt.Println(resp)
4760//    }
4761//
4762// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging
4763func (c *S3Control) PutStorageLensConfigurationTaggingRequest(input *PutStorageLensConfigurationTaggingInput) (req *request.Request, output *PutStorageLensConfigurationTaggingOutput) {
4764	op := &request.Operation{
4765		Name:       opPutStorageLensConfigurationTagging,
4766		HTTPMethod: "PUT",
4767		HTTPPath:   "/v20180820/storagelens/{storagelensid}/tagging",
4768	}
4769
4770	if input == nil {
4771		input = &PutStorageLensConfigurationTaggingInput{}
4772	}
4773
4774	output = &PutStorageLensConfigurationTaggingOutput{}
4775	req = c.newRequest(op, input, output)
4776	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4777	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4778	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4779	return
4780}
4781
4782// PutStorageLensConfigurationTagging API operation for AWS S3 Control.
4783//
4784// Put or replace tags on an existing Amazon S3 Storage Lens configuration.
4785// For more information about S3 Storage Lens, see Assessing your storage activity
4786// and usage with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
4787// in the Amazon Simple Storage Service User Guide.
4788//
4789// To use this action, you must have permission to perform the s3:PutStorageLensConfigurationTagging
4790// action. For more information, see Setting permissions to use Amazon S3 Storage
4791// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
4792// in the Amazon Simple Storage Service User Guide.
4793//
4794// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4795// with awserr.Error's Code and Message methods to get detailed information about
4796// the error.
4797//
4798// See the AWS API reference guide for AWS S3 Control's
4799// API operation PutStorageLensConfigurationTagging for usage and error information.
4800// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging
4801func (c *S3Control) PutStorageLensConfigurationTagging(input *PutStorageLensConfigurationTaggingInput) (*PutStorageLensConfigurationTaggingOutput, error) {
4802	req, out := c.PutStorageLensConfigurationTaggingRequest(input)
4803	return out, req.Send()
4804}
4805
4806// PutStorageLensConfigurationTaggingWithContext is the same as PutStorageLensConfigurationTagging with the addition of
4807// the ability to pass a context and additional request options.
4808//
4809// See PutStorageLensConfigurationTagging for details on how to use this API operation.
4810//
4811// The context must be non-nil and will be used for request cancellation. If
4812// the context is nil a panic will occur. In the future the SDK may create
4813// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4814// for more information on using Contexts.
4815func (c *S3Control) PutStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *PutStorageLensConfigurationTaggingInput, opts ...request.Option) (*PutStorageLensConfigurationTaggingOutput, error) {
4816	req, out := c.PutStorageLensConfigurationTaggingRequest(input)
4817	req.SetContext(ctx)
4818	req.ApplyOptions(opts...)
4819	return out, req.Send()
4820}
4821
4822const opUpdateJobPriority = "UpdateJobPriority"
4823
4824// UpdateJobPriorityRequest generates a "aws/request.Request" representing the
4825// client's request for the UpdateJobPriority operation. The "output" return
4826// value will be populated with the request's response once the request completes
4827// successfully.
4828//
4829// Use "Send" method on the returned Request to send the API call to the service.
4830// the "output" return value is not valid until after Send returns without error.
4831//
4832// See UpdateJobPriority for more information on using the UpdateJobPriority
4833// API call, and error handling.
4834//
4835// This method is useful when you want to inject custom logic or configuration
4836// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4837//
4838//
4839//    // Example sending a request using the UpdateJobPriorityRequest method.
4840//    req, resp := client.UpdateJobPriorityRequest(params)
4841//
4842//    err := req.Send()
4843//    if err == nil { // resp is now filled
4844//        fmt.Println(resp)
4845//    }
4846//
4847// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority
4848func (c *S3Control) UpdateJobPriorityRequest(input *UpdateJobPriorityInput) (req *request.Request, output *UpdateJobPriorityOutput) {
4849	op := &request.Operation{
4850		Name:       opUpdateJobPriority,
4851		HTTPMethod: "POST",
4852		HTTPPath:   "/v20180820/jobs/{id}/priority",
4853	}
4854
4855	if input == nil {
4856		input = &UpdateJobPriorityInput{}
4857	}
4858
4859	output = &UpdateJobPriorityOutput{}
4860	req = c.newRequest(op, input, output)
4861	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4862	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4863	return
4864}
4865
4866// UpdateJobPriority API operation for AWS S3 Control.
4867//
4868// Updates an existing S3 Batch Operations job's priority. For more information,
4869// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
4870// in the Amazon Simple Storage Service User Guide.
4871//
4872// Related actions include:
4873//
4874//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
4875//
4876//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
4877//
4878//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
4879//
4880//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
4881//
4882// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4883// with awserr.Error's Code and Message methods to get detailed information about
4884// the error.
4885//
4886// See the AWS API reference guide for AWS S3 Control's
4887// API operation UpdateJobPriority for usage and error information.
4888//
4889// Returned Error Codes:
4890//   * ErrCodeBadRequestException "BadRequestException"
4891//
4892//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4893//
4894//   * ErrCodeNotFoundException "NotFoundException"
4895//
4896//   * ErrCodeInternalServiceException "InternalServiceException"
4897//
4898// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority
4899func (c *S3Control) UpdateJobPriority(input *UpdateJobPriorityInput) (*UpdateJobPriorityOutput, error) {
4900	req, out := c.UpdateJobPriorityRequest(input)
4901	return out, req.Send()
4902}
4903
4904// UpdateJobPriorityWithContext is the same as UpdateJobPriority with the addition of
4905// the ability to pass a context and additional request options.
4906//
4907// See UpdateJobPriority for details on how to use this API operation.
4908//
4909// The context must be non-nil and will be used for request cancellation. If
4910// the context is nil a panic will occur. In the future the SDK may create
4911// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4912// for more information on using Contexts.
4913func (c *S3Control) UpdateJobPriorityWithContext(ctx aws.Context, input *UpdateJobPriorityInput, opts ...request.Option) (*UpdateJobPriorityOutput, error) {
4914	req, out := c.UpdateJobPriorityRequest(input)
4915	req.SetContext(ctx)
4916	req.ApplyOptions(opts...)
4917	return out, req.Send()
4918}
4919
4920const opUpdateJobStatus = "UpdateJobStatus"
4921
4922// UpdateJobStatusRequest generates a "aws/request.Request" representing the
4923// client's request for the UpdateJobStatus operation. The "output" return
4924// value will be populated with the request's response once the request completes
4925// successfully.
4926//
4927// Use "Send" method on the returned Request to send the API call to the service.
4928// the "output" return value is not valid until after Send returns without error.
4929//
4930// See UpdateJobStatus for more information on using the UpdateJobStatus
4931// API call, and error handling.
4932//
4933// This method is useful when you want to inject custom logic or configuration
4934// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4935//
4936//
4937//    // Example sending a request using the UpdateJobStatusRequest method.
4938//    req, resp := client.UpdateJobStatusRequest(params)
4939//
4940//    err := req.Send()
4941//    if err == nil { // resp is now filled
4942//        fmt.Println(resp)
4943//    }
4944//
4945// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus
4946func (c *S3Control) UpdateJobStatusRequest(input *UpdateJobStatusInput) (req *request.Request, output *UpdateJobStatusOutput) {
4947	op := &request.Operation{
4948		Name:       opUpdateJobStatus,
4949		HTTPMethod: "POST",
4950		HTTPPath:   "/v20180820/jobs/{id}/status",
4951	}
4952
4953	if input == nil {
4954		input = &UpdateJobStatusInput{}
4955	}
4956
4957	output = &UpdateJobStatusOutput{}
4958	req = c.newRequest(op, input, output)
4959	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4960	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4961	return
4962}
4963
4964// UpdateJobStatus API operation for AWS S3 Control.
4965//
4966// Updates the status for the specified job. Use this action to confirm that
4967// you want to run a job or to cancel an existing job. For more information,
4968// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
4969// in the Amazon Simple Storage Service User Guide.
4970//
4971// Related actions include:
4972//
4973//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
4974//
4975//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
4976//
4977//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
4978//
4979//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
4980//
4981// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4982// with awserr.Error's Code and Message methods to get detailed information about
4983// the error.
4984//
4985// See the AWS API reference guide for AWS S3 Control's
4986// API operation UpdateJobStatus for usage and error information.
4987//
4988// Returned Error Codes:
4989//   * ErrCodeBadRequestException "BadRequestException"
4990//
4991//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4992//
4993//   * ErrCodeNotFoundException "NotFoundException"
4994//
4995//   * ErrCodeJobStatusException "JobStatusException"
4996//
4997//   * ErrCodeInternalServiceException "InternalServiceException"
4998//
4999// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus
5000func (c *S3Control) UpdateJobStatus(input *UpdateJobStatusInput) (*UpdateJobStatusOutput, error) {
5001	req, out := c.UpdateJobStatusRequest(input)
5002	return out, req.Send()
5003}
5004
5005// UpdateJobStatusWithContext is the same as UpdateJobStatus with the addition of
5006// the ability to pass a context and additional request options.
5007//
5008// See UpdateJobStatus for details on how to use this API operation.
5009//
5010// The context must be non-nil and will be used for request cancellation. If
5011// the context is nil a panic will occur. In the future the SDK may create
5012// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5013// for more information on using Contexts.
5014func (c *S3Control) UpdateJobStatusWithContext(ctx aws.Context, input *UpdateJobStatusInput, opts ...request.Option) (*UpdateJobStatusOutput, error) {
5015	req, out := c.UpdateJobStatusRequest(input)
5016	req.SetContext(ctx)
5017	req.ApplyOptions(opts...)
5018	return out, req.Send()
5019}
5020
5021// The container for abort incomplete multipart upload
5022type AbortIncompleteMultipartUpload struct {
5023	_ struct{} `type:"structure"`
5024
5025	// Specifies the number of days after which Amazon S3 aborts an incomplete multipart
5026	// upload to the Outposts bucket.
5027	DaysAfterInitiation *int64 `type:"integer"`
5028}
5029
5030// String returns the string representation
5031func (s AbortIncompleteMultipartUpload) String() string {
5032	return awsutil.Prettify(s)
5033}
5034
5035// GoString returns the string representation
5036func (s AbortIncompleteMultipartUpload) GoString() string {
5037	return s.String()
5038}
5039
5040// SetDaysAfterInitiation sets the DaysAfterInitiation field's value.
5041func (s *AbortIncompleteMultipartUpload) SetDaysAfterInitiation(v int64) *AbortIncompleteMultipartUpload {
5042	s.DaysAfterInitiation = &v
5043	return s
5044}
5045
5046// An access point used to access a bucket.
5047type AccessPoint struct {
5048	_ struct{} `type:"structure"`
5049
5050	// The ARN for the access point.
5051	AccessPointArn *string `min:"4" type:"string"`
5052
5053	// The name of the bucket associated with this access point.
5054	//
5055	// Bucket is a required field
5056	Bucket *string `min:"3" type:"string" required:"true"`
5057
5058	// The name of this access point.
5059	//
5060	// Name is a required field
5061	Name *string `min:"3" type:"string" required:"true"`
5062
5063	// Indicates whether this access point allows access from the public internet.
5064	// If VpcConfiguration is specified for this access point, then NetworkOrigin
5065	// is VPC, and the access point doesn't allow access from the public internet.
5066	// Otherwise, NetworkOrigin is Internet, and the access point allows access
5067	// from the public internet, subject to the access point and bucket access policies.
5068	//
5069	// NetworkOrigin is a required field
5070	NetworkOrigin *string `type:"string" required:"true" enum:"NetworkOrigin"`
5071
5072	// The virtual private cloud (VPC) configuration for this access point, if one
5073	// exists.
5074	VpcConfiguration *VpcConfiguration `type:"structure"`
5075}
5076
5077// String returns the string representation
5078func (s AccessPoint) String() string {
5079	return awsutil.Prettify(s)
5080}
5081
5082// GoString returns the string representation
5083func (s AccessPoint) GoString() string {
5084	return s.String()
5085}
5086
5087// SetAccessPointArn sets the AccessPointArn field's value.
5088func (s *AccessPoint) SetAccessPointArn(v string) *AccessPoint {
5089	s.AccessPointArn = &v
5090	return s
5091}
5092
5093// SetBucket sets the Bucket field's value.
5094func (s *AccessPoint) SetBucket(v string) *AccessPoint {
5095	s.Bucket = &v
5096	return s
5097}
5098
5099// SetName sets the Name field's value.
5100func (s *AccessPoint) SetName(v string) *AccessPoint {
5101	s.Name = &v
5102	return s
5103}
5104
5105// SetNetworkOrigin sets the NetworkOrigin field's value.
5106func (s *AccessPoint) SetNetworkOrigin(v string) *AccessPoint {
5107	s.NetworkOrigin = &v
5108	return s
5109}
5110
5111// SetVpcConfiguration sets the VpcConfiguration field's value.
5112func (s *AccessPoint) SetVpcConfiguration(v *VpcConfiguration) *AccessPoint {
5113	s.VpcConfiguration = v
5114	return s
5115}
5116
5117// A container for the account level Amazon S3 Storage Lens configuration.
5118type AccountLevel struct {
5119	_ struct{} `type:"structure"`
5120
5121	// A container for the S3 Storage Lens activity metrics.
5122	ActivityMetrics *ActivityMetrics `type:"structure"`
5123
5124	// A container for the S3 Storage Lens bucket-level configuration.
5125	//
5126	// BucketLevel is a required field
5127	BucketLevel *BucketLevel `type:"structure" required:"true"`
5128}
5129
5130// String returns the string representation
5131func (s AccountLevel) String() string {
5132	return awsutil.Prettify(s)
5133}
5134
5135// GoString returns the string representation
5136func (s AccountLevel) GoString() string {
5137	return s.String()
5138}
5139
5140// Validate inspects the fields of the type to determine if they are valid.
5141func (s *AccountLevel) Validate() error {
5142	invalidParams := request.ErrInvalidParams{Context: "AccountLevel"}
5143	if s.BucketLevel == nil {
5144		invalidParams.Add(request.NewErrParamRequired("BucketLevel"))
5145	}
5146	if s.BucketLevel != nil {
5147		if err := s.BucketLevel.Validate(); err != nil {
5148			invalidParams.AddNested("BucketLevel", err.(request.ErrInvalidParams))
5149		}
5150	}
5151
5152	if invalidParams.Len() > 0 {
5153		return invalidParams
5154	}
5155	return nil
5156}
5157
5158// SetActivityMetrics sets the ActivityMetrics field's value.
5159func (s *AccountLevel) SetActivityMetrics(v *ActivityMetrics) *AccountLevel {
5160	s.ActivityMetrics = v
5161	return s
5162}
5163
5164// SetBucketLevel sets the BucketLevel field's value.
5165func (s *AccountLevel) SetBucketLevel(v *BucketLevel) *AccountLevel {
5166	s.BucketLevel = v
5167	return s
5168}
5169
5170// A container for the activity metrics.
5171type ActivityMetrics struct {
5172	_ struct{} `type:"structure"`
5173
5174	// A container for whether the activity metrics are enabled.
5175	IsEnabled *bool `type:"boolean"`
5176}
5177
5178// String returns the string representation
5179func (s ActivityMetrics) String() string {
5180	return awsutil.Prettify(s)
5181}
5182
5183// GoString returns the string representation
5184func (s ActivityMetrics) GoString() string {
5185	return s.String()
5186}
5187
5188// SetIsEnabled sets the IsEnabled field's value.
5189func (s *ActivityMetrics) SetIsEnabled(v bool) *ActivityMetrics {
5190	s.IsEnabled = &v
5191	return s
5192}
5193
5194// AWS Lambda function used to transform objects through an Object Lambda Access
5195// Point.
5196type AwsLambdaTransformation struct {
5197	_ struct{} `type:"structure"`
5198
5199	// The Amazon Resource Name (ARN) of the AWS Lambda function.
5200	//
5201	// FunctionArn is a required field
5202	FunctionArn *string `min:"1" type:"string" required:"true"`
5203
5204	// Additional JSON that provides supplemental data to the Lambda function used
5205	// to transform objects.
5206	FunctionPayload *string `type:"string"`
5207}
5208
5209// String returns the string representation
5210func (s AwsLambdaTransformation) String() string {
5211	return awsutil.Prettify(s)
5212}
5213
5214// GoString returns the string representation
5215func (s AwsLambdaTransformation) GoString() string {
5216	return s.String()
5217}
5218
5219// Validate inspects the fields of the type to determine if they are valid.
5220func (s *AwsLambdaTransformation) Validate() error {
5221	invalidParams := request.ErrInvalidParams{Context: "AwsLambdaTransformation"}
5222	if s.FunctionArn == nil {
5223		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
5224	}
5225	if s.FunctionArn != nil && len(*s.FunctionArn) < 1 {
5226		invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1))
5227	}
5228
5229	if invalidParams.Len() > 0 {
5230		return invalidParams
5231	}
5232	return nil
5233}
5234
5235// SetFunctionArn sets the FunctionArn field's value.
5236func (s *AwsLambdaTransformation) SetFunctionArn(v string) *AwsLambdaTransformation {
5237	s.FunctionArn = &v
5238	return s
5239}
5240
5241// SetFunctionPayload sets the FunctionPayload field's value.
5242func (s *AwsLambdaTransformation) SetFunctionPayload(v string) *AwsLambdaTransformation {
5243	s.FunctionPayload = &v
5244	return s
5245}
5246
5247// A container for the bucket-level configuration.
5248type BucketLevel struct {
5249	_ struct{} `type:"structure"`
5250
5251	// A container for the bucket-level activity metrics for Amazon S3 Storage Lens
5252	ActivityMetrics *ActivityMetrics `type:"structure"`
5253
5254	// A container for the bucket-level prefix-level metrics for S3 Storage Lens
5255	PrefixLevel *PrefixLevel `type:"structure"`
5256}
5257
5258// String returns the string representation
5259func (s BucketLevel) String() string {
5260	return awsutil.Prettify(s)
5261}
5262
5263// GoString returns the string representation
5264func (s BucketLevel) GoString() string {
5265	return s.String()
5266}
5267
5268// Validate inspects the fields of the type to determine if they are valid.
5269func (s *BucketLevel) Validate() error {
5270	invalidParams := request.ErrInvalidParams{Context: "BucketLevel"}
5271	if s.PrefixLevel != nil {
5272		if err := s.PrefixLevel.Validate(); err != nil {
5273			invalidParams.AddNested("PrefixLevel", err.(request.ErrInvalidParams))
5274		}
5275	}
5276
5277	if invalidParams.Len() > 0 {
5278		return invalidParams
5279	}
5280	return nil
5281}
5282
5283// SetActivityMetrics sets the ActivityMetrics field's value.
5284func (s *BucketLevel) SetActivityMetrics(v *ActivityMetrics) *BucketLevel {
5285	s.ActivityMetrics = v
5286	return s
5287}
5288
5289// SetPrefixLevel sets the PrefixLevel field's value.
5290func (s *BucketLevel) SetPrefixLevel(v *PrefixLevel) *BucketLevel {
5291	s.PrefixLevel = v
5292	return s
5293}
5294
5295type CreateAccessPointForObjectLambdaInput struct {
5296	_ struct{} `locationName:"CreateAccessPointForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
5297
5298	// The AWS account ID for owner of the specified Object Lambda Access Point.
5299	//
5300	// AccountId is a required field
5301	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5302
5303	// Object Lambda Access Point configuration as a JSON document.
5304	//
5305	// Configuration is a required field
5306	Configuration *ObjectLambdaConfiguration `type:"structure" required:"true"`
5307
5308	// The name you want to assign to this Object Lambda Access Point.
5309	//
5310	// Name is a required field
5311	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
5312}
5313
5314// String returns the string representation
5315func (s CreateAccessPointForObjectLambdaInput) String() string {
5316	return awsutil.Prettify(s)
5317}
5318
5319// GoString returns the string representation
5320func (s CreateAccessPointForObjectLambdaInput) GoString() string {
5321	return s.String()
5322}
5323
5324// Validate inspects the fields of the type to determine if they are valid.
5325func (s *CreateAccessPointForObjectLambdaInput) Validate() error {
5326	invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointForObjectLambdaInput"}
5327	if s.AccountId == nil {
5328		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5329	}
5330	if s.AccountId != nil && len(*s.AccountId) < 1 {
5331		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5332	}
5333	if s.Configuration == nil {
5334		invalidParams.Add(request.NewErrParamRequired("Configuration"))
5335	}
5336	if s.Name == nil {
5337		invalidParams.Add(request.NewErrParamRequired("Name"))
5338	}
5339	if s.Name != nil && len(*s.Name) < 3 {
5340		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
5341	}
5342	if s.Configuration != nil {
5343		if err := s.Configuration.Validate(); err != nil {
5344			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
5345		}
5346	}
5347
5348	if invalidParams.Len() > 0 {
5349		return invalidParams
5350	}
5351	return nil
5352}
5353
5354// SetAccountId sets the AccountId field's value.
5355func (s *CreateAccessPointForObjectLambdaInput) SetAccountId(v string) *CreateAccessPointForObjectLambdaInput {
5356	s.AccountId = &v
5357	return s
5358}
5359
5360// SetConfiguration sets the Configuration field's value.
5361func (s *CreateAccessPointForObjectLambdaInput) SetConfiguration(v *ObjectLambdaConfiguration) *CreateAccessPointForObjectLambdaInput {
5362	s.Configuration = v
5363	return s
5364}
5365
5366// SetName sets the Name field's value.
5367func (s *CreateAccessPointForObjectLambdaInput) SetName(v string) *CreateAccessPointForObjectLambdaInput {
5368	s.Name = &v
5369	return s
5370}
5371
5372func (s *CreateAccessPointForObjectLambdaInput) hostLabels() map[string]string {
5373	return map[string]string{
5374		"AccountId": aws.StringValue(s.AccountId),
5375	}
5376}
5377
5378type CreateAccessPointForObjectLambdaOutput struct {
5379	_ struct{} `type:"structure"`
5380
5381	// Specifies the ARN for the Object Lambda Access Point.
5382	ObjectLambdaAccessPointArn *string `min:"1" type:"string"`
5383}
5384
5385// String returns the string representation
5386func (s CreateAccessPointForObjectLambdaOutput) String() string {
5387	return awsutil.Prettify(s)
5388}
5389
5390// GoString returns the string representation
5391func (s CreateAccessPointForObjectLambdaOutput) GoString() string {
5392	return s.String()
5393}
5394
5395// SetObjectLambdaAccessPointArn sets the ObjectLambdaAccessPointArn field's value.
5396func (s *CreateAccessPointForObjectLambdaOutput) SetObjectLambdaAccessPointArn(v string) *CreateAccessPointForObjectLambdaOutput {
5397	s.ObjectLambdaAccessPointArn = &v
5398	return s
5399}
5400
5401type CreateAccessPointInput struct {
5402	_ struct{} `locationName:"CreateAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
5403
5404	// The AWS account ID for the owner of the bucket for which you want to create
5405	// an access point.
5406	//
5407	// AccountId is a required field
5408	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5409
5410	// The name of the bucket that you want to associate this access point with.
5411	//
5412	// For using this parameter with Amazon S3 on Outposts with the REST API, you
5413	// must specify the name and the x-amz-outpost-id as well.
5414	//
5415	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
5416	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
5417	// For example, to access the bucket reports through outpost my-outpost owned
5418	// 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.
5419	// The value must be URL encoded.
5420	//
5421	// Bucket is a required field
5422	Bucket *string `min:"3" type:"string" required:"true"`
5423
5424	// The name you want to assign to this access point.
5425	//
5426	// Name is a required field
5427	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
5428
5429	// The PublicAccessBlock configuration that you want to apply to the access
5430	// point.
5431	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
5432
5433	// If you include this field, Amazon S3 restricts access to this access point
5434	// to requests from the specified virtual private cloud (VPC).
5435	//
5436	// This is required for creating an access point for Amazon S3 on Outposts buckets.
5437	VpcConfiguration *VpcConfiguration `type:"structure"`
5438}
5439
5440// String returns the string representation
5441func (s CreateAccessPointInput) String() string {
5442	return awsutil.Prettify(s)
5443}
5444
5445// GoString returns the string representation
5446func (s CreateAccessPointInput) GoString() string {
5447	return s.String()
5448}
5449
5450// Validate inspects the fields of the type to determine if they are valid.
5451func (s *CreateAccessPointInput) Validate() error {
5452	invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointInput"}
5453	if s.AccountId == nil {
5454		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5455	}
5456	if s.AccountId != nil && len(*s.AccountId) < 1 {
5457		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5458	}
5459	if s.Bucket == nil {
5460		invalidParams.Add(request.NewErrParamRequired("Bucket"))
5461	}
5462	if s.Bucket != nil && len(*s.Bucket) < 3 {
5463		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
5464	}
5465	if s.Name == nil {
5466		invalidParams.Add(request.NewErrParamRequired("Name"))
5467	}
5468	if s.Name != nil && len(*s.Name) < 3 {
5469		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
5470	}
5471	if s.VpcConfiguration != nil {
5472		if err := s.VpcConfiguration.Validate(); err != nil {
5473			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
5474		}
5475	}
5476
5477	if invalidParams.Len() > 0 {
5478		return invalidParams
5479	}
5480	return nil
5481}
5482
5483// SetAccountId sets the AccountId field's value.
5484func (s *CreateAccessPointInput) SetAccountId(v string) *CreateAccessPointInput {
5485	s.AccountId = &v
5486	return s
5487}
5488
5489// SetBucket sets the Bucket field's value.
5490func (s *CreateAccessPointInput) SetBucket(v string) *CreateAccessPointInput {
5491	s.Bucket = &v
5492	return s
5493}
5494
5495// SetName sets the Name field's value.
5496func (s *CreateAccessPointInput) SetName(v string) *CreateAccessPointInput {
5497	s.Name = &v
5498	return s
5499}
5500
5501// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
5502func (s *CreateAccessPointInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *CreateAccessPointInput {
5503	s.PublicAccessBlockConfiguration = v
5504	return s
5505}
5506
5507// SetVpcConfiguration sets the VpcConfiguration field's value.
5508func (s *CreateAccessPointInput) SetVpcConfiguration(v *VpcConfiguration) *CreateAccessPointInput {
5509	s.VpcConfiguration = v
5510	return s
5511}
5512
5513func (s *CreateAccessPointInput) hostLabels() map[string]string {
5514	return map[string]string{
5515		"AccountId": aws.StringValue(s.AccountId),
5516	}
5517}
5518
5519func (s *CreateAccessPointInput) getEndpointARN() (arn.Resource, error) {
5520	if s.Bucket == nil {
5521		return nil, fmt.Errorf("member Bucket is nil")
5522	}
5523	return parseEndpointARN(*s.Bucket)
5524}
5525
5526func (s *CreateAccessPointInput) hasEndpointARN() bool {
5527	if s.Bucket == nil {
5528		return false
5529	}
5530	return arn.IsARN(*s.Bucket)
5531}
5532
5533// updateArnableField updates the value of the input field that
5534// takes an ARN as an input. This method is useful to backfill
5535// the parsed resource name from ARN into the input member.
5536// It returns a pointer to a modified copy of input and an error.
5537// Note that original input is not modified.
5538func (s CreateAccessPointInput) updateArnableField(v string) (interface{}, error) {
5539	if s.Bucket == nil {
5540		return nil, fmt.Errorf("member Bucket is nil")
5541	}
5542	s.Bucket = aws.String(v)
5543	return &s, nil
5544}
5545
5546// updateAccountID returns a pointer to a modified copy of input,
5547// if account id is not provided, we update the account id in modified input
5548// if account id is provided, but doesn't match with the one in ARN, we throw an error
5549// if account id is not updated, we return nil. Note that original input is not modified.
5550func (s CreateAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
5551	if s.AccountId == nil {
5552		s.AccountId = aws.String(accountId)
5553		return &s, nil
5554	} else if *s.AccountId != accountId {
5555		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
5556	}
5557	return nil, nil
5558}
5559
5560type CreateAccessPointOutput struct {
5561	_ struct{} `type:"structure"`
5562
5563	// The ARN of the access point.
5564	//
5565	// This is only supported by Amazon S3 on Outposts.
5566	AccessPointArn *string `min:"4" type:"string"`
5567}
5568
5569// String returns the string representation
5570func (s CreateAccessPointOutput) String() string {
5571	return awsutil.Prettify(s)
5572}
5573
5574// GoString returns the string representation
5575func (s CreateAccessPointOutput) GoString() string {
5576	return s.String()
5577}
5578
5579// SetAccessPointArn sets the AccessPointArn field's value.
5580func (s *CreateAccessPointOutput) SetAccessPointArn(v string) *CreateAccessPointOutput {
5581	s.AccessPointArn = &v
5582	return s
5583}
5584
5585// The container for the bucket configuration.
5586//
5587// This is not supported by Amazon S3 on Outposts buckets.
5588type CreateBucketConfiguration struct {
5589	_ struct{} `type:"structure"`
5590
5591	// Specifies the Region where the bucket will be created. If you are creating
5592	// a bucket on the US East (N. Virginia) Region (us-east-1), you do not need
5593	// to specify the location.
5594	//
5595	// This is not supported by Amazon S3 on Outposts buckets.
5596	LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"`
5597}
5598
5599// String returns the string representation
5600func (s CreateBucketConfiguration) String() string {
5601	return awsutil.Prettify(s)
5602}
5603
5604// GoString returns the string representation
5605func (s CreateBucketConfiguration) GoString() string {
5606	return s.String()
5607}
5608
5609// SetLocationConstraint sets the LocationConstraint field's value.
5610func (s *CreateBucketConfiguration) SetLocationConstraint(v string) *CreateBucketConfiguration {
5611	s.LocationConstraint = &v
5612	return s
5613}
5614
5615type CreateBucketInput struct {
5616	_ struct{} `locationName:"CreateBucketRequest" type:"structure" payload:"CreateBucketConfiguration"`
5617
5618	// The canned ACL to apply to the bucket.
5619	//
5620	// This is not supported by Amazon S3 on Outposts buckets.
5621	ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"`
5622
5623	// The name of the bucket.
5624	//
5625	// Bucket is a required field
5626	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
5627
5628	// The configuration information for the bucket.
5629	//
5630	// This is not supported by Amazon S3 on Outposts buckets.
5631	CreateBucketConfiguration *CreateBucketConfiguration `locationName:"CreateBucketConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
5632
5633	// Allows grantee the read, write, read ACP, and write ACP permissions on the
5634	// bucket.
5635	//
5636	// This is not supported by Amazon S3 on Outposts buckets.
5637	GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"`
5638
5639	// Allows grantee to list the objects in the bucket.
5640	//
5641	// This is not supported by Amazon S3 on Outposts buckets.
5642	GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"`
5643
5644	// Allows grantee to read the bucket ACL.
5645	//
5646	// This is not supported by Amazon S3 on Outposts buckets.
5647	GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"`
5648
5649	// Allows grantee to create, overwrite, and delete any object in the bucket.
5650	//
5651	// This is not supported by Amazon S3 on Outposts buckets.
5652	GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"`
5653
5654	// Allows grantee to write the ACL for the applicable bucket.
5655	//
5656	// This is not supported by Amazon S3 on Outposts buckets.
5657	GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"`
5658
5659	// Specifies whether you want S3 Object Lock to be enabled for the new bucket.
5660	//
5661	// This is not supported by Amazon S3 on Outposts buckets.
5662	ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"`
5663
5664	// The ID of the Outposts where the bucket is being created.
5665	//
5666	// This is required by Amazon S3 on Outposts buckets.
5667	OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"`
5668}
5669
5670// String returns the string representation
5671func (s CreateBucketInput) String() string {
5672	return awsutil.Prettify(s)
5673}
5674
5675// GoString returns the string representation
5676func (s CreateBucketInput) GoString() string {
5677	return s.String()
5678}
5679
5680// Validate inspects the fields of the type to determine if they are valid.
5681func (s *CreateBucketInput) Validate() error {
5682	invalidParams := request.ErrInvalidParams{Context: "CreateBucketInput"}
5683	if s.Bucket == nil {
5684		invalidParams.Add(request.NewErrParamRequired("Bucket"))
5685	}
5686	if s.Bucket != nil && len(*s.Bucket) < 3 {
5687		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
5688	}
5689	if s.OutpostId != nil && len(*s.OutpostId) < 1 {
5690		invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1))
5691	}
5692
5693	if invalidParams.Len() > 0 {
5694		return invalidParams
5695	}
5696	return nil
5697}
5698
5699// SetACL sets the ACL field's value.
5700func (s *CreateBucketInput) SetACL(v string) *CreateBucketInput {
5701	s.ACL = &v
5702	return s
5703}
5704
5705// SetBucket sets the Bucket field's value.
5706func (s *CreateBucketInput) SetBucket(v string) *CreateBucketInput {
5707	s.Bucket = &v
5708	return s
5709}
5710
5711// SetCreateBucketConfiguration sets the CreateBucketConfiguration field's value.
5712func (s *CreateBucketInput) SetCreateBucketConfiguration(v *CreateBucketConfiguration) *CreateBucketInput {
5713	s.CreateBucketConfiguration = v
5714	return s
5715}
5716
5717// SetGrantFullControl sets the GrantFullControl field's value.
5718func (s *CreateBucketInput) SetGrantFullControl(v string) *CreateBucketInput {
5719	s.GrantFullControl = &v
5720	return s
5721}
5722
5723// SetGrantRead sets the GrantRead field's value.
5724func (s *CreateBucketInput) SetGrantRead(v string) *CreateBucketInput {
5725	s.GrantRead = &v
5726	return s
5727}
5728
5729// SetGrantReadACP sets the GrantReadACP field's value.
5730func (s *CreateBucketInput) SetGrantReadACP(v string) *CreateBucketInput {
5731	s.GrantReadACP = &v
5732	return s
5733}
5734
5735// SetGrantWrite sets the GrantWrite field's value.
5736func (s *CreateBucketInput) SetGrantWrite(v string) *CreateBucketInput {
5737	s.GrantWrite = &v
5738	return s
5739}
5740
5741// SetGrantWriteACP sets the GrantWriteACP field's value.
5742func (s *CreateBucketInput) SetGrantWriteACP(v string) *CreateBucketInput {
5743	s.GrantWriteACP = &v
5744	return s
5745}
5746
5747// SetObjectLockEnabledForBucket sets the ObjectLockEnabledForBucket field's value.
5748func (s *CreateBucketInput) SetObjectLockEnabledForBucket(v bool) *CreateBucketInput {
5749	s.ObjectLockEnabledForBucket = &v
5750	return s
5751}
5752
5753// SetOutpostId sets the OutpostId field's value.
5754func (s *CreateBucketInput) SetOutpostId(v string) *CreateBucketInput {
5755	s.OutpostId = &v
5756	return s
5757}
5758
5759func (s *CreateBucketInput) getOutpostID() (string, error) {
5760	if s.OutpostId == nil {
5761		return "", fmt.Errorf("member OutpostId is nil")
5762	}
5763	return *s.OutpostId, nil
5764}
5765
5766func (s *CreateBucketInput) hasOutpostID() bool {
5767	if s.OutpostId == nil {
5768		return false
5769	}
5770	return true
5771}
5772
5773type CreateBucketOutput struct {
5774	_ struct{} `type:"structure"`
5775
5776	// The Amazon Resource Name (ARN) of the bucket.
5777	//
5778	// For using this parameter with Amazon S3 on Outposts with the REST API, you
5779	// must specify the name and the x-amz-outpost-id as well.
5780	//
5781	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
5782	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
5783	// For example, to access the bucket reports through outpost my-outpost owned
5784	// 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.
5785	// The value must be URL encoded.
5786	BucketArn *string `min:"4" type:"string"`
5787
5788	// The location of the bucket.
5789	Location *string `location:"header" locationName:"Location" type:"string"`
5790}
5791
5792// String returns the string representation
5793func (s CreateBucketOutput) String() string {
5794	return awsutil.Prettify(s)
5795}
5796
5797// GoString returns the string representation
5798func (s CreateBucketOutput) GoString() string {
5799	return s.String()
5800}
5801
5802// SetBucketArn sets the BucketArn field's value.
5803func (s *CreateBucketOutput) SetBucketArn(v string) *CreateBucketOutput {
5804	s.BucketArn = &v
5805	return s
5806}
5807
5808// SetLocation sets the Location field's value.
5809func (s *CreateBucketOutput) SetLocation(v string) *CreateBucketOutput {
5810	s.Location = &v
5811	return s
5812}
5813
5814type CreateJobInput struct {
5815	_ struct{} `locationName:"CreateJobRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
5816
5817	// The AWS account ID that creates the job.
5818	//
5819	// AccountId is a required field
5820	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5821
5822	// An idempotency token to ensure that you don't accidentally submit the same
5823	// request twice. You can use any string up to the maximum length.
5824	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
5825
5826	// Indicates whether confirmation is required before Amazon S3 runs the job.
5827	// Confirmation is only required for jobs created through the Amazon S3 console.
5828	ConfirmationRequired *bool `type:"boolean"`
5829
5830	// A description for this job. You can use any string within the permitted length.
5831	// Descriptions don't need to be unique and can be used for multiple jobs.
5832	Description *string `min:"1" type:"string"`
5833
5834	// Configuration parameters for the manifest.
5835	//
5836	// Manifest is a required field
5837	Manifest *JobManifest `type:"structure" required:"true"`
5838
5839	// The action that you want this job to perform on every object listed in the
5840	// manifest. For more information about the available actions, see Operations
5841	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-actions.html)
5842	// in the Amazon Simple Storage Service User Guide.
5843	//
5844	// Operation is a required field
5845	Operation *JobOperation `type:"structure" required:"true"`
5846
5847	// The numerical priority for this job. Higher numbers indicate higher priority.
5848	//
5849	// Priority is a required field
5850	Priority *int64 `type:"integer" required:"true"`
5851
5852	// Configuration parameters for the optional job-completion report.
5853	//
5854	// Report is a required field
5855	Report *JobReport `type:"structure" required:"true"`
5856
5857	// The Amazon Resource Name (ARN) for the AWS Identity and Access Management
5858	// (IAM) role that Batch Operations will use to run this job's action on every
5859	// object in the manifest.
5860	//
5861	// RoleArn is a required field
5862	RoleArn *string `min:"1" type:"string" required:"true"`
5863
5864	// A set of tags to associate with the S3 Batch Operations job. This is an optional
5865	// parameter.
5866	Tags []*S3Tag `type:"list"`
5867}
5868
5869// String returns the string representation
5870func (s CreateJobInput) String() string {
5871	return awsutil.Prettify(s)
5872}
5873
5874// GoString returns the string representation
5875func (s CreateJobInput) GoString() string {
5876	return s.String()
5877}
5878
5879// Validate inspects the fields of the type to determine if they are valid.
5880func (s *CreateJobInput) Validate() error {
5881	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
5882	if s.AccountId == nil {
5883		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5884	}
5885	if s.AccountId != nil && len(*s.AccountId) < 1 {
5886		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5887	}
5888	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
5889		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
5890	}
5891	if s.Description != nil && len(*s.Description) < 1 {
5892		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
5893	}
5894	if s.Manifest == nil {
5895		invalidParams.Add(request.NewErrParamRequired("Manifest"))
5896	}
5897	if s.Operation == nil {
5898		invalidParams.Add(request.NewErrParamRequired("Operation"))
5899	}
5900	if s.Priority == nil {
5901		invalidParams.Add(request.NewErrParamRequired("Priority"))
5902	}
5903	if s.Report == nil {
5904		invalidParams.Add(request.NewErrParamRequired("Report"))
5905	}
5906	if s.RoleArn == nil {
5907		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
5908	}
5909	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
5910		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
5911	}
5912	if s.Manifest != nil {
5913		if err := s.Manifest.Validate(); err != nil {
5914			invalidParams.AddNested("Manifest", err.(request.ErrInvalidParams))
5915		}
5916	}
5917	if s.Operation != nil {
5918		if err := s.Operation.Validate(); err != nil {
5919			invalidParams.AddNested("Operation", err.(request.ErrInvalidParams))
5920		}
5921	}
5922	if s.Report != nil {
5923		if err := s.Report.Validate(); err != nil {
5924			invalidParams.AddNested("Report", err.(request.ErrInvalidParams))
5925		}
5926	}
5927	if s.Tags != nil {
5928		for i, v := range s.Tags {
5929			if v == nil {
5930				continue
5931			}
5932			if err := v.Validate(); err != nil {
5933				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5934			}
5935		}
5936	}
5937
5938	if invalidParams.Len() > 0 {
5939		return invalidParams
5940	}
5941	return nil
5942}
5943
5944// SetAccountId sets the AccountId field's value.
5945func (s *CreateJobInput) SetAccountId(v string) *CreateJobInput {
5946	s.AccountId = &v
5947	return s
5948}
5949
5950// SetClientRequestToken sets the ClientRequestToken field's value.
5951func (s *CreateJobInput) SetClientRequestToken(v string) *CreateJobInput {
5952	s.ClientRequestToken = &v
5953	return s
5954}
5955
5956// SetConfirmationRequired sets the ConfirmationRequired field's value.
5957func (s *CreateJobInput) SetConfirmationRequired(v bool) *CreateJobInput {
5958	s.ConfirmationRequired = &v
5959	return s
5960}
5961
5962// SetDescription sets the Description field's value.
5963func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
5964	s.Description = &v
5965	return s
5966}
5967
5968// SetManifest sets the Manifest field's value.
5969func (s *CreateJobInput) SetManifest(v *JobManifest) *CreateJobInput {
5970	s.Manifest = v
5971	return s
5972}
5973
5974// SetOperation sets the Operation field's value.
5975func (s *CreateJobInput) SetOperation(v *JobOperation) *CreateJobInput {
5976	s.Operation = v
5977	return s
5978}
5979
5980// SetPriority sets the Priority field's value.
5981func (s *CreateJobInput) SetPriority(v int64) *CreateJobInput {
5982	s.Priority = &v
5983	return s
5984}
5985
5986// SetReport sets the Report field's value.
5987func (s *CreateJobInput) SetReport(v *JobReport) *CreateJobInput {
5988	s.Report = v
5989	return s
5990}
5991
5992// SetRoleArn sets the RoleArn field's value.
5993func (s *CreateJobInput) SetRoleArn(v string) *CreateJobInput {
5994	s.RoleArn = &v
5995	return s
5996}
5997
5998// SetTags sets the Tags field's value.
5999func (s *CreateJobInput) SetTags(v []*S3Tag) *CreateJobInput {
6000	s.Tags = v
6001	return s
6002}
6003
6004func (s *CreateJobInput) hostLabels() map[string]string {
6005	return map[string]string{
6006		"AccountId": aws.StringValue(s.AccountId),
6007	}
6008}
6009
6010type CreateJobOutput struct {
6011	_ struct{} `type:"structure"`
6012
6013	// The ID for this job. Amazon S3 generates this ID automatically and returns
6014	// it after a successful Create Job request.
6015	JobId *string `min:"5" type:"string"`
6016}
6017
6018// String returns the string representation
6019func (s CreateJobOutput) String() string {
6020	return awsutil.Prettify(s)
6021}
6022
6023// GoString returns the string representation
6024func (s CreateJobOutput) GoString() string {
6025	return s.String()
6026}
6027
6028// SetJobId sets the JobId field's value.
6029func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
6030	s.JobId = &v
6031	return s
6032}
6033
6034type DeleteAccessPointForObjectLambdaInput struct {
6035	_ struct{} `locationName:"DeleteAccessPointForObjectLambdaRequest" type:"structure"`
6036
6037	// The account ID for the account that owns the specified Object Lambda Access
6038	// Point.
6039	//
6040	// AccountId is a required field
6041	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6042
6043	// The name of the access point you want to delete.
6044	//
6045	// Name is a required field
6046	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6047}
6048
6049// String returns the string representation
6050func (s DeleteAccessPointForObjectLambdaInput) String() string {
6051	return awsutil.Prettify(s)
6052}
6053
6054// GoString returns the string representation
6055func (s DeleteAccessPointForObjectLambdaInput) GoString() string {
6056	return s.String()
6057}
6058
6059// Validate inspects the fields of the type to determine if they are valid.
6060func (s *DeleteAccessPointForObjectLambdaInput) Validate() error {
6061	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointForObjectLambdaInput"}
6062	if s.AccountId == nil {
6063		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6064	}
6065	if s.AccountId != nil && len(*s.AccountId) < 1 {
6066		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6067	}
6068	if s.Name == nil {
6069		invalidParams.Add(request.NewErrParamRequired("Name"))
6070	}
6071	if s.Name != nil && len(*s.Name) < 3 {
6072		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
6073	}
6074
6075	if invalidParams.Len() > 0 {
6076		return invalidParams
6077	}
6078	return nil
6079}
6080
6081// SetAccountId sets the AccountId field's value.
6082func (s *DeleteAccessPointForObjectLambdaInput) SetAccountId(v string) *DeleteAccessPointForObjectLambdaInput {
6083	s.AccountId = &v
6084	return s
6085}
6086
6087// SetName sets the Name field's value.
6088func (s *DeleteAccessPointForObjectLambdaInput) SetName(v string) *DeleteAccessPointForObjectLambdaInput {
6089	s.Name = &v
6090	return s
6091}
6092
6093func (s *DeleteAccessPointForObjectLambdaInput) hostLabels() map[string]string {
6094	return map[string]string{
6095		"AccountId": aws.StringValue(s.AccountId),
6096	}
6097}
6098
6099type DeleteAccessPointForObjectLambdaOutput struct {
6100	_ struct{} `type:"structure"`
6101}
6102
6103// String returns the string representation
6104func (s DeleteAccessPointForObjectLambdaOutput) String() string {
6105	return awsutil.Prettify(s)
6106}
6107
6108// GoString returns the string representation
6109func (s DeleteAccessPointForObjectLambdaOutput) GoString() string {
6110	return s.String()
6111}
6112
6113type DeleteAccessPointInput struct {
6114	_ struct{} `locationName:"DeleteAccessPointRequest" type:"structure"`
6115
6116	// The account ID for the account that owns the specified access point.
6117	//
6118	// AccountId is a required field
6119	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6120
6121	// The name of the access point you want to delete.
6122	//
6123	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6124	// must specify the name and the x-amz-outpost-id as well.
6125	//
6126	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
6127	// must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
6128	// For example, to access the access point reports-ap through outpost my-outpost
6129	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
6130	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
6131	// The value must be URL encoded.
6132	//
6133	// Name is a required field
6134	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6135}
6136
6137// String returns the string representation
6138func (s DeleteAccessPointInput) String() string {
6139	return awsutil.Prettify(s)
6140}
6141
6142// GoString returns the string representation
6143func (s DeleteAccessPointInput) GoString() string {
6144	return s.String()
6145}
6146
6147// Validate inspects the fields of the type to determine if they are valid.
6148func (s *DeleteAccessPointInput) Validate() error {
6149	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointInput"}
6150	if s.AccountId == nil {
6151		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6152	}
6153	if s.AccountId != nil && len(*s.AccountId) < 1 {
6154		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6155	}
6156	if s.Name == nil {
6157		invalidParams.Add(request.NewErrParamRequired("Name"))
6158	}
6159	if s.Name != nil && len(*s.Name) < 3 {
6160		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
6161	}
6162
6163	if invalidParams.Len() > 0 {
6164		return invalidParams
6165	}
6166	return nil
6167}
6168
6169// SetAccountId sets the AccountId field's value.
6170func (s *DeleteAccessPointInput) SetAccountId(v string) *DeleteAccessPointInput {
6171	s.AccountId = &v
6172	return s
6173}
6174
6175// SetName sets the Name field's value.
6176func (s *DeleteAccessPointInput) SetName(v string) *DeleteAccessPointInput {
6177	s.Name = &v
6178	return s
6179}
6180
6181func (s *DeleteAccessPointInput) hostLabels() map[string]string {
6182	return map[string]string{
6183		"AccountId": aws.StringValue(s.AccountId),
6184	}
6185}
6186
6187func (s *DeleteAccessPointInput) getEndpointARN() (arn.Resource, error) {
6188	if s.Name == nil {
6189		return nil, fmt.Errorf("member Name is nil")
6190	}
6191	return parseEndpointARN(*s.Name)
6192}
6193
6194func (s *DeleteAccessPointInput) hasEndpointARN() bool {
6195	if s.Name == nil {
6196		return false
6197	}
6198	return arn.IsARN(*s.Name)
6199}
6200
6201// updateArnableField updates the value of the input field that
6202// takes an ARN as an input. This method is useful to backfill
6203// the parsed resource name from ARN into the input member.
6204// It returns a pointer to a modified copy of input and an error.
6205// Note that original input is not modified.
6206func (s DeleteAccessPointInput) updateArnableField(v string) (interface{}, error) {
6207	if s.Name == nil {
6208		return nil, fmt.Errorf("member Name is nil")
6209	}
6210	s.Name = aws.String(v)
6211	return &s, nil
6212}
6213
6214// updateAccountID returns a pointer to a modified copy of input,
6215// if account id is not provided, we update the account id in modified input
6216// if account id is provided, but doesn't match with the one in ARN, we throw an error
6217// if account id is not updated, we return nil. Note that original input is not modified.
6218func (s DeleteAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
6219	if s.AccountId == nil {
6220		s.AccountId = aws.String(accountId)
6221		return &s, nil
6222	} else if *s.AccountId != accountId {
6223		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6224	}
6225	return nil, nil
6226}
6227
6228type DeleteAccessPointOutput struct {
6229	_ struct{} `type:"structure"`
6230}
6231
6232// String returns the string representation
6233func (s DeleteAccessPointOutput) String() string {
6234	return awsutil.Prettify(s)
6235}
6236
6237// GoString returns the string representation
6238func (s DeleteAccessPointOutput) GoString() string {
6239	return s.String()
6240}
6241
6242type DeleteAccessPointPolicyForObjectLambdaInput struct {
6243	_ struct{} `locationName:"DeleteAccessPointPolicyForObjectLambdaRequest" type:"structure"`
6244
6245	// The account ID for the account that owns the specified Object Lambda Access
6246	// Point.
6247	//
6248	// AccountId is a required field
6249	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6250
6251	// The name of the Object Lambda Access Point you want to delete the policy
6252	// for.
6253	//
6254	// Name is a required field
6255	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6256}
6257
6258// String returns the string representation
6259func (s DeleteAccessPointPolicyForObjectLambdaInput) String() string {
6260	return awsutil.Prettify(s)
6261}
6262
6263// GoString returns the string representation
6264func (s DeleteAccessPointPolicyForObjectLambdaInput) GoString() string {
6265	return s.String()
6266}
6267
6268// Validate inspects the fields of the type to determine if they are valid.
6269func (s *DeleteAccessPointPolicyForObjectLambdaInput) Validate() error {
6270	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyForObjectLambdaInput"}
6271	if s.AccountId == nil {
6272		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6273	}
6274	if s.AccountId != nil && len(*s.AccountId) < 1 {
6275		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6276	}
6277	if s.Name == nil {
6278		invalidParams.Add(request.NewErrParamRequired("Name"))
6279	}
6280	if s.Name != nil && len(*s.Name) < 3 {
6281		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
6282	}
6283
6284	if invalidParams.Len() > 0 {
6285		return invalidParams
6286	}
6287	return nil
6288}
6289
6290// SetAccountId sets the AccountId field's value.
6291func (s *DeleteAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *DeleteAccessPointPolicyForObjectLambdaInput {
6292	s.AccountId = &v
6293	return s
6294}
6295
6296// SetName sets the Name field's value.
6297func (s *DeleteAccessPointPolicyForObjectLambdaInput) SetName(v string) *DeleteAccessPointPolicyForObjectLambdaInput {
6298	s.Name = &v
6299	return s
6300}
6301
6302func (s *DeleteAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string {
6303	return map[string]string{
6304		"AccountId": aws.StringValue(s.AccountId),
6305	}
6306}
6307
6308type DeleteAccessPointPolicyForObjectLambdaOutput struct {
6309	_ struct{} `type:"structure"`
6310}
6311
6312// String returns the string representation
6313func (s DeleteAccessPointPolicyForObjectLambdaOutput) String() string {
6314	return awsutil.Prettify(s)
6315}
6316
6317// GoString returns the string representation
6318func (s DeleteAccessPointPolicyForObjectLambdaOutput) GoString() string {
6319	return s.String()
6320}
6321
6322type DeleteAccessPointPolicyInput struct {
6323	_ struct{} `locationName:"DeleteAccessPointPolicyRequest" type:"structure"`
6324
6325	// The account ID for the account that owns the specified access point.
6326	//
6327	// AccountId is a required field
6328	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6329
6330	// The name of the access point whose policy you want to delete.
6331	//
6332	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6333	// must specify the name and the x-amz-outpost-id as well.
6334	//
6335	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
6336	// must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
6337	// For example, to access the access point reports-ap through outpost my-outpost
6338	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
6339	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
6340	// The value must be URL encoded.
6341	//
6342	// Name is a required field
6343	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6344}
6345
6346// String returns the string representation
6347func (s DeleteAccessPointPolicyInput) String() string {
6348	return awsutil.Prettify(s)
6349}
6350
6351// GoString returns the string representation
6352func (s DeleteAccessPointPolicyInput) GoString() string {
6353	return s.String()
6354}
6355
6356// Validate inspects the fields of the type to determine if they are valid.
6357func (s *DeleteAccessPointPolicyInput) Validate() error {
6358	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyInput"}
6359	if s.AccountId == nil {
6360		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6361	}
6362	if s.AccountId != nil && len(*s.AccountId) < 1 {
6363		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6364	}
6365	if s.Name == nil {
6366		invalidParams.Add(request.NewErrParamRequired("Name"))
6367	}
6368	if s.Name != nil && len(*s.Name) < 3 {
6369		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
6370	}
6371
6372	if invalidParams.Len() > 0 {
6373		return invalidParams
6374	}
6375	return nil
6376}
6377
6378// SetAccountId sets the AccountId field's value.
6379func (s *DeleteAccessPointPolicyInput) SetAccountId(v string) *DeleteAccessPointPolicyInput {
6380	s.AccountId = &v
6381	return s
6382}
6383
6384// SetName sets the Name field's value.
6385func (s *DeleteAccessPointPolicyInput) SetName(v string) *DeleteAccessPointPolicyInput {
6386	s.Name = &v
6387	return s
6388}
6389
6390func (s *DeleteAccessPointPolicyInput) hostLabels() map[string]string {
6391	return map[string]string{
6392		"AccountId": aws.StringValue(s.AccountId),
6393	}
6394}
6395
6396func (s *DeleteAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
6397	if s.Name == nil {
6398		return nil, fmt.Errorf("member Name is nil")
6399	}
6400	return parseEndpointARN(*s.Name)
6401}
6402
6403func (s *DeleteAccessPointPolicyInput) hasEndpointARN() bool {
6404	if s.Name == nil {
6405		return false
6406	}
6407	return arn.IsARN(*s.Name)
6408}
6409
6410// updateArnableField updates the value of the input field that
6411// takes an ARN as an input. This method is useful to backfill
6412// the parsed resource name from ARN into the input member.
6413// It returns a pointer to a modified copy of input and an error.
6414// Note that original input is not modified.
6415func (s DeleteAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
6416	if s.Name == nil {
6417		return nil, fmt.Errorf("member Name is nil")
6418	}
6419	s.Name = aws.String(v)
6420	return &s, nil
6421}
6422
6423// updateAccountID returns a pointer to a modified copy of input,
6424// if account id is not provided, we update the account id in modified input
6425// if account id is provided, but doesn't match with the one in ARN, we throw an error
6426// if account id is not updated, we return nil. Note that original input is not modified.
6427func (s DeleteAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
6428	if s.AccountId == nil {
6429		s.AccountId = aws.String(accountId)
6430		return &s, nil
6431	} else if *s.AccountId != accountId {
6432		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6433	}
6434	return nil, nil
6435}
6436
6437type DeleteAccessPointPolicyOutput struct {
6438	_ struct{} `type:"structure"`
6439}
6440
6441// String returns the string representation
6442func (s DeleteAccessPointPolicyOutput) String() string {
6443	return awsutil.Prettify(s)
6444}
6445
6446// GoString returns the string representation
6447func (s DeleteAccessPointPolicyOutput) GoString() string {
6448	return s.String()
6449}
6450
6451type DeleteBucketInput struct {
6452	_ struct{} `locationName:"DeleteBucketRequest" type:"structure"`
6453
6454	// The account ID that owns the Outposts bucket.
6455	//
6456	// AccountId is a required field
6457	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6458
6459	// Specifies the bucket being deleted.
6460	//
6461	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6462	// must specify the name and the x-amz-outpost-id as well.
6463	//
6464	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
6465	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6466	// For example, to access the bucket reports through outpost my-outpost owned
6467	// 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.
6468	// The value must be URL encoded.
6469	//
6470	// Bucket is a required field
6471	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6472}
6473
6474// String returns the string representation
6475func (s DeleteBucketInput) String() string {
6476	return awsutil.Prettify(s)
6477}
6478
6479// GoString returns the string representation
6480func (s DeleteBucketInput) GoString() string {
6481	return s.String()
6482}
6483
6484// Validate inspects the fields of the type to determine if they are valid.
6485func (s *DeleteBucketInput) Validate() error {
6486	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketInput"}
6487	if s.AccountId == nil {
6488		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6489	}
6490	if s.AccountId != nil && len(*s.AccountId) < 1 {
6491		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6492	}
6493	if s.Bucket == nil {
6494		invalidParams.Add(request.NewErrParamRequired("Bucket"))
6495	}
6496	if s.Bucket != nil && len(*s.Bucket) < 3 {
6497		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
6498	}
6499
6500	if invalidParams.Len() > 0 {
6501		return invalidParams
6502	}
6503	return nil
6504}
6505
6506// SetAccountId sets the AccountId field's value.
6507func (s *DeleteBucketInput) SetAccountId(v string) *DeleteBucketInput {
6508	s.AccountId = &v
6509	return s
6510}
6511
6512// SetBucket sets the Bucket field's value.
6513func (s *DeleteBucketInput) SetBucket(v string) *DeleteBucketInput {
6514	s.Bucket = &v
6515	return s
6516}
6517
6518func (s *DeleteBucketInput) hostLabels() map[string]string {
6519	return map[string]string{
6520		"AccountId": aws.StringValue(s.AccountId),
6521	}
6522}
6523
6524func (s *DeleteBucketInput) getEndpointARN() (arn.Resource, error) {
6525	if s.Bucket == nil {
6526		return nil, fmt.Errorf("member Bucket is nil")
6527	}
6528	return parseEndpointARN(*s.Bucket)
6529}
6530
6531func (s *DeleteBucketInput) hasEndpointARN() bool {
6532	if s.Bucket == nil {
6533		return false
6534	}
6535	return arn.IsARN(*s.Bucket)
6536}
6537
6538// updateArnableField updates the value of the input field that
6539// takes an ARN as an input. This method is useful to backfill
6540// the parsed resource name from ARN into the input member.
6541// It returns a pointer to a modified copy of input and an error.
6542// Note that original input is not modified.
6543func (s DeleteBucketInput) updateArnableField(v string) (interface{}, error) {
6544	if s.Bucket == nil {
6545		return nil, fmt.Errorf("member Bucket is nil")
6546	}
6547	s.Bucket = aws.String(v)
6548	return &s, nil
6549}
6550
6551// updateAccountID returns a pointer to a modified copy of input,
6552// if account id is not provided, we update the account id in modified input
6553// if account id is provided, but doesn't match with the one in ARN, we throw an error
6554// if account id is not updated, we return nil. Note that original input is not modified.
6555func (s DeleteBucketInput) updateAccountID(accountId string) (interface{}, error) {
6556	if s.AccountId == nil {
6557		s.AccountId = aws.String(accountId)
6558		return &s, nil
6559	} else if *s.AccountId != accountId {
6560		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6561	}
6562	return nil, nil
6563}
6564
6565type DeleteBucketLifecycleConfigurationInput struct {
6566	_ struct{} `locationName:"DeleteBucketLifecycleConfigurationRequest" type:"structure"`
6567
6568	// The account ID of the lifecycle configuration to delete.
6569	//
6570	// AccountId is a required field
6571	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6572
6573	// Specifies the bucket.
6574	//
6575	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6576	// must specify the name and the x-amz-outpost-id as well.
6577	//
6578	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
6579	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6580	// For example, to access the bucket reports through outpost my-outpost owned
6581	// 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.
6582	// The value must be URL encoded.
6583	//
6584	// Bucket is a required field
6585	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6586}
6587
6588// String returns the string representation
6589func (s DeleteBucketLifecycleConfigurationInput) String() string {
6590	return awsutil.Prettify(s)
6591}
6592
6593// GoString returns the string representation
6594func (s DeleteBucketLifecycleConfigurationInput) GoString() string {
6595	return s.String()
6596}
6597
6598// Validate inspects the fields of the type to determine if they are valid.
6599func (s *DeleteBucketLifecycleConfigurationInput) Validate() error {
6600	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketLifecycleConfigurationInput"}
6601	if s.AccountId == nil {
6602		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6603	}
6604	if s.AccountId != nil && len(*s.AccountId) < 1 {
6605		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6606	}
6607	if s.Bucket == nil {
6608		invalidParams.Add(request.NewErrParamRequired("Bucket"))
6609	}
6610	if s.Bucket != nil && len(*s.Bucket) < 3 {
6611		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
6612	}
6613
6614	if invalidParams.Len() > 0 {
6615		return invalidParams
6616	}
6617	return nil
6618}
6619
6620// SetAccountId sets the AccountId field's value.
6621func (s *DeleteBucketLifecycleConfigurationInput) SetAccountId(v string) *DeleteBucketLifecycleConfigurationInput {
6622	s.AccountId = &v
6623	return s
6624}
6625
6626// SetBucket sets the Bucket field's value.
6627func (s *DeleteBucketLifecycleConfigurationInput) SetBucket(v string) *DeleteBucketLifecycleConfigurationInput {
6628	s.Bucket = &v
6629	return s
6630}
6631
6632func (s *DeleteBucketLifecycleConfigurationInput) hostLabels() map[string]string {
6633	return map[string]string{
6634		"AccountId": aws.StringValue(s.AccountId),
6635	}
6636}
6637
6638func (s *DeleteBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
6639	if s.Bucket == nil {
6640		return nil, fmt.Errorf("member Bucket is nil")
6641	}
6642	return parseEndpointARN(*s.Bucket)
6643}
6644
6645func (s *DeleteBucketLifecycleConfigurationInput) hasEndpointARN() bool {
6646	if s.Bucket == nil {
6647		return false
6648	}
6649	return arn.IsARN(*s.Bucket)
6650}
6651
6652// updateArnableField updates the value of the input field that
6653// takes an ARN as an input. This method is useful to backfill
6654// the parsed resource name from ARN into the input member.
6655// It returns a pointer to a modified copy of input and an error.
6656// Note that original input is not modified.
6657func (s DeleteBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
6658	if s.Bucket == nil {
6659		return nil, fmt.Errorf("member Bucket is nil")
6660	}
6661	s.Bucket = aws.String(v)
6662	return &s, nil
6663}
6664
6665// updateAccountID returns a pointer to a modified copy of input,
6666// if account id is not provided, we update the account id in modified input
6667// if account id is provided, but doesn't match with the one in ARN, we throw an error
6668// if account id is not updated, we return nil. Note that original input is not modified.
6669func (s DeleteBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
6670	if s.AccountId == nil {
6671		s.AccountId = aws.String(accountId)
6672		return &s, nil
6673	} else if *s.AccountId != accountId {
6674		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6675	}
6676	return nil, nil
6677}
6678
6679type DeleteBucketLifecycleConfigurationOutput struct {
6680	_ struct{} `type:"structure"`
6681}
6682
6683// String returns the string representation
6684func (s DeleteBucketLifecycleConfigurationOutput) String() string {
6685	return awsutil.Prettify(s)
6686}
6687
6688// GoString returns the string representation
6689func (s DeleteBucketLifecycleConfigurationOutput) GoString() string {
6690	return s.String()
6691}
6692
6693type DeleteBucketOutput struct {
6694	_ struct{} `type:"structure"`
6695}
6696
6697// String returns the string representation
6698func (s DeleteBucketOutput) String() string {
6699	return awsutil.Prettify(s)
6700}
6701
6702// GoString returns the string representation
6703func (s DeleteBucketOutput) GoString() string {
6704	return s.String()
6705}
6706
6707type DeleteBucketPolicyInput struct {
6708	_ struct{} `locationName:"DeleteBucketPolicyRequest" type:"structure"`
6709
6710	// The account ID of the Outposts bucket.
6711	//
6712	// AccountId is a required field
6713	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6714
6715	// Specifies the bucket.
6716	//
6717	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6718	// must specify the name and the x-amz-outpost-id as well.
6719	//
6720	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
6721	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6722	// For example, to access the bucket reports through outpost my-outpost owned
6723	// 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.
6724	// The value must be URL encoded.
6725	//
6726	// Bucket is a required field
6727	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6728}
6729
6730// String returns the string representation
6731func (s DeleteBucketPolicyInput) String() string {
6732	return awsutil.Prettify(s)
6733}
6734
6735// GoString returns the string representation
6736func (s DeleteBucketPolicyInput) GoString() string {
6737	return s.String()
6738}
6739
6740// Validate inspects the fields of the type to determine if they are valid.
6741func (s *DeleteBucketPolicyInput) Validate() error {
6742	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketPolicyInput"}
6743	if s.AccountId == nil {
6744		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6745	}
6746	if s.AccountId != nil && len(*s.AccountId) < 1 {
6747		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6748	}
6749	if s.Bucket == nil {
6750		invalidParams.Add(request.NewErrParamRequired("Bucket"))
6751	}
6752	if s.Bucket != nil && len(*s.Bucket) < 3 {
6753		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
6754	}
6755
6756	if invalidParams.Len() > 0 {
6757		return invalidParams
6758	}
6759	return nil
6760}
6761
6762// SetAccountId sets the AccountId field's value.
6763func (s *DeleteBucketPolicyInput) SetAccountId(v string) *DeleteBucketPolicyInput {
6764	s.AccountId = &v
6765	return s
6766}
6767
6768// SetBucket sets the Bucket field's value.
6769func (s *DeleteBucketPolicyInput) SetBucket(v string) *DeleteBucketPolicyInput {
6770	s.Bucket = &v
6771	return s
6772}
6773
6774func (s *DeleteBucketPolicyInput) hostLabels() map[string]string {
6775	return map[string]string{
6776		"AccountId": aws.StringValue(s.AccountId),
6777	}
6778}
6779
6780func (s *DeleteBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
6781	if s.Bucket == nil {
6782		return nil, fmt.Errorf("member Bucket is nil")
6783	}
6784	return parseEndpointARN(*s.Bucket)
6785}
6786
6787func (s *DeleteBucketPolicyInput) hasEndpointARN() bool {
6788	if s.Bucket == nil {
6789		return false
6790	}
6791	return arn.IsARN(*s.Bucket)
6792}
6793
6794// updateArnableField updates the value of the input field that
6795// takes an ARN as an input. This method is useful to backfill
6796// the parsed resource name from ARN into the input member.
6797// It returns a pointer to a modified copy of input and an error.
6798// Note that original input is not modified.
6799func (s DeleteBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
6800	if s.Bucket == nil {
6801		return nil, fmt.Errorf("member Bucket is nil")
6802	}
6803	s.Bucket = aws.String(v)
6804	return &s, nil
6805}
6806
6807// updateAccountID returns a pointer to a modified copy of input,
6808// if account id is not provided, we update the account id in modified input
6809// if account id is provided, but doesn't match with the one in ARN, we throw an error
6810// if account id is not updated, we return nil. Note that original input is not modified.
6811func (s DeleteBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
6812	if s.AccountId == nil {
6813		s.AccountId = aws.String(accountId)
6814		return &s, nil
6815	} else if *s.AccountId != accountId {
6816		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6817	}
6818	return nil, nil
6819}
6820
6821type DeleteBucketPolicyOutput struct {
6822	_ struct{} `type:"structure"`
6823}
6824
6825// String returns the string representation
6826func (s DeleteBucketPolicyOutput) String() string {
6827	return awsutil.Prettify(s)
6828}
6829
6830// GoString returns the string representation
6831func (s DeleteBucketPolicyOutput) GoString() string {
6832	return s.String()
6833}
6834
6835type DeleteBucketTaggingInput struct {
6836	_ struct{} `locationName:"DeleteBucketTaggingRequest" type:"structure"`
6837
6838	// The AWS account ID of the Outposts bucket tag set to be removed.
6839	//
6840	// AccountId is a required field
6841	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6842
6843	// The bucket ARN that has the tag set to be removed.
6844	//
6845	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6846	// must specify the name and the x-amz-outpost-id as well.
6847	//
6848	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
6849	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6850	// For example, to access the bucket reports through outpost my-outpost owned
6851	// 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.
6852	// The value must be URL encoded.
6853	//
6854	// Bucket is a required field
6855	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6856}
6857
6858// String returns the string representation
6859func (s DeleteBucketTaggingInput) String() string {
6860	return awsutil.Prettify(s)
6861}
6862
6863// GoString returns the string representation
6864func (s DeleteBucketTaggingInput) GoString() string {
6865	return s.String()
6866}
6867
6868// Validate inspects the fields of the type to determine if they are valid.
6869func (s *DeleteBucketTaggingInput) Validate() error {
6870	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketTaggingInput"}
6871	if s.AccountId == nil {
6872		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6873	}
6874	if s.AccountId != nil && len(*s.AccountId) < 1 {
6875		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6876	}
6877	if s.Bucket == nil {
6878		invalidParams.Add(request.NewErrParamRequired("Bucket"))
6879	}
6880	if s.Bucket != nil && len(*s.Bucket) < 3 {
6881		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
6882	}
6883
6884	if invalidParams.Len() > 0 {
6885		return invalidParams
6886	}
6887	return nil
6888}
6889
6890// SetAccountId sets the AccountId field's value.
6891func (s *DeleteBucketTaggingInput) SetAccountId(v string) *DeleteBucketTaggingInput {
6892	s.AccountId = &v
6893	return s
6894}
6895
6896// SetBucket sets the Bucket field's value.
6897func (s *DeleteBucketTaggingInput) SetBucket(v string) *DeleteBucketTaggingInput {
6898	s.Bucket = &v
6899	return s
6900}
6901
6902func (s *DeleteBucketTaggingInput) hostLabels() map[string]string {
6903	return map[string]string{
6904		"AccountId": aws.StringValue(s.AccountId),
6905	}
6906}
6907
6908func (s *DeleteBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
6909	if s.Bucket == nil {
6910		return nil, fmt.Errorf("member Bucket is nil")
6911	}
6912	return parseEndpointARN(*s.Bucket)
6913}
6914
6915func (s *DeleteBucketTaggingInput) hasEndpointARN() bool {
6916	if s.Bucket == nil {
6917		return false
6918	}
6919	return arn.IsARN(*s.Bucket)
6920}
6921
6922// updateArnableField updates the value of the input field that
6923// takes an ARN as an input. This method is useful to backfill
6924// the parsed resource name from ARN into the input member.
6925// It returns a pointer to a modified copy of input and an error.
6926// Note that original input is not modified.
6927func (s DeleteBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
6928	if s.Bucket == nil {
6929		return nil, fmt.Errorf("member Bucket is nil")
6930	}
6931	s.Bucket = aws.String(v)
6932	return &s, nil
6933}
6934
6935// updateAccountID returns a pointer to a modified copy of input,
6936// if account id is not provided, we update the account id in modified input
6937// if account id is provided, but doesn't match with the one in ARN, we throw an error
6938// if account id is not updated, we return nil. Note that original input is not modified.
6939func (s DeleteBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
6940	if s.AccountId == nil {
6941		s.AccountId = aws.String(accountId)
6942		return &s, nil
6943	} else if *s.AccountId != accountId {
6944		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6945	}
6946	return nil, nil
6947}
6948
6949type DeleteBucketTaggingOutput struct {
6950	_ struct{} `type:"structure"`
6951}
6952
6953// String returns the string representation
6954func (s DeleteBucketTaggingOutput) String() string {
6955	return awsutil.Prettify(s)
6956}
6957
6958// GoString returns the string representation
6959func (s DeleteBucketTaggingOutput) GoString() string {
6960	return s.String()
6961}
6962
6963type DeleteJobTaggingInput struct {
6964	_ struct{} `locationName:"DeleteJobTaggingRequest" type:"structure"`
6965
6966	// The AWS account ID associated with the S3 Batch Operations job.
6967	//
6968	// AccountId is a required field
6969	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6970
6971	// The ID for the S3 Batch Operations job whose tags you want to delete.
6972	//
6973	// JobId is a required field
6974	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
6975}
6976
6977// String returns the string representation
6978func (s DeleteJobTaggingInput) String() string {
6979	return awsutil.Prettify(s)
6980}
6981
6982// GoString returns the string representation
6983func (s DeleteJobTaggingInput) GoString() string {
6984	return s.String()
6985}
6986
6987// Validate inspects the fields of the type to determine if they are valid.
6988func (s *DeleteJobTaggingInput) Validate() error {
6989	invalidParams := request.ErrInvalidParams{Context: "DeleteJobTaggingInput"}
6990	if s.AccountId == nil {
6991		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6992	}
6993	if s.AccountId != nil && len(*s.AccountId) < 1 {
6994		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6995	}
6996	if s.JobId == nil {
6997		invalidParams.Add(request.NewErrParamRequired("JobId"))
6998	}
6999	if s.JobId != nil && len(*s.JobId) < 5 {
7000		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
7001	}
7002
7003	if invalidParams.Len() > 0 {
7004		return invalidParams
7005	}
7006	return nil
7007}
7008
7009// SetAccountId sets the AccountId field's value.
7010func (s *DeleteJobTaggingInput) SetAccountId(v string) *DeleteJobTaggingInput {
7011	s.AccountId = &v
7012	return s
7013}
7014
7015// SetJobId sets the JobId field's value.
7016func (s *DeleteJobTaggingInput) SetJobId(v string) *DeleteJobTaggingInput {
7017	s.JobId = &v
7018	return s
7019}
7020
7021func (s *DeleteJobTaggingInput) hostLabels() map[string]string {
7022	return map[string]string{
7023		"AccountId": aws.StringValue(s.AccountId),
7024	}
7025}
7026
7027type DeleteJobTaggingOutput struct {
7028	_ struct{} `type:"structure"`
7029}
7030
7031// String returns the string representation
7032func (s DeleteJobTaggingOutput) String() string {
7033	return awsutil.Prettify(s)
7034}
7035
7036// GoString returns the string representation
7037func (s DeleteJobTaggingOutput) GoString() string {
7038	return s.String()
7039}
7040
7041type DeletePublicAccessBlockInput struct {
7042	_ struct{} `locationName:"DeletePublicAccessBlockRequest" type:"structure"`
7043
7044	// The account ID for the AWS account whose PublicAccessBlock configuration
7045	// you want to remove.
7046	//
7047	// AccountId is a required field
7048	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7049}
7050
7051// String returns the string representation
7052func (s DeletePublicAccessBlockInput) String() string {
7053	return awsutil.Prettify(s)
7054}
7055
7056// GoString returns the string representation
7057func (s DeletePublicAccessBlockInput) GoString() string {
7058	return s.String()
7059}
7060
7061// Validate inspects the fields of the type to determine if they are valid.
7062func (s *DeletePublicAccessBlockInput) Validate() error {
7063	invalidParams := request.ErrInvalidParams{Context: "DeletePublicAccessBlockInput"}
7064	if s.AccountId == nil {
7065		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7066	}
7067	if s.AccountId != nil && len(*s.AccountId) < 1 {
7068		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7069	}
7070
7071	if invalidParams.Len() > 0 {
7072		return invalidParams
7073	}
7074	return nil
7075}
7076
7077// SetAccountId sets the AccountId field's value.
7078func (s *DeletePublicAccessBlockInput) SetAccountId(v string) *DeletePublicAccessBlockInput {
7079	s.AccountId = &v
7080	return s
7081}
7082
7083func (s *DeletePublicAccessBlockInput) hostLabels() map[string]string {
7084	return map[string]string{
7085		"AccountId": aws.StringValue(s.AccountId),
7086	}
7087}
7088
7089type DeletePublicAccessBlockOutput struct {
7090	_ struct{} `type:"structure"`
7091}
7092
7093// String returns the string representation
7094func (s DeletePublicAccessBlockOutput) String() string {
7095	return awsutil.Prettify(s)
7096}
7097
7098// GoString returns the string representation
7099func (s DeletePublicAccessBlockOutput) GoString() string {
7100	return s.String()
7101}
7102
7103type DeleteStorageLensConfigurationInput struct {
7104	_ struct{} `locationName:"DeleteStorageLensConfigurationRequest" type:"structure"`
7105
7106	// The account ID of the requester.
7107	//
7108	// AccountId is a required field
7109	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7110
7111	// The ID of the S3 Storage Lens configuration.
7112	//
7113	// ConfigId is a required field
7114	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
7115}
7116
7117// String returns the string representation
7118func (s DeleteStorageLensConfigurationInput) String() string {
7119	return awsutil.Prettify(s)
7120}
7121
7122// GoString returns the string representation
7123func (s DeleteStorageLensConfigurationInput) GoString() string {
7124	return s.String()
7125}
7126
7127// Validate inspects the fields of the type to determine if they are valid.
7128func (s *DeleteStorageLensConfigurationInput) Validate() error {
7129	invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationInput"}
7130	if s.AccountId == nil {
7131		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7132	}
7133	if s.AccountId != nil && len(*s.AccountId) < 1 {
7134		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7135	}
7136	if s.ConfigId == nil {
7137		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
7138	}
7139	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
7140		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
7141	}
7142
7143	if invalidParams.Len() > 0 {
7144		return invalidParams
7145	}
7146	return nil
7147}
7148
7149// SetAccountId sets the AccountId field's value.
7150func (s *DeleteStorageLensConfigurationInput) SetAccountId(v string) *DeleteStorageLensConfigurationInput {
7151	s.AccountId = &v
7152	return s
7153}
7154
7155// SetConfigId sets the ConfigId field's value.
7156func (s *DeleteStorageLensConfigurationInput) SetConfigId(v string) *DeleteStorageLensConfigurationInput {
7157	s.ConfigId = &v
7158	return s
7159}
7160
7161func (s *DeleteStorageLensConfigurationInput) hostLabels() map[string]string {
7162	return map[string]string{
7163		"AccountId": aws.StringValue(s.AccountId),
7164	}
7165}
7166
7167type DeleteStorageLensConfigurationOutput struct {
7168	_ struct{} `type:"structure"`
7169}
7170
7171// String returns the string representation
7172func (s DeleteStorageLensConfigurationOutput) String() string {
7173	return awsutil.Prettify(s)
7174}
7175
7176// GoString returns the string representation
7177func (s DeleteStorageLensConfigurationOutput) GoString() string {
7178	return s.String()
7179}
7180
7181type DeleteStorageLensConfigurationTaggingInput struct {
7182	_ struct{} `locationName:"DeleteStorageLensConfigurationTaggingRequest" type:"structure"`
7183
7184	// The account ID of the requester.
7185	//
7186	// AccountId is a required field
7187	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7188
7189	// The ID of the S3 Storage Lens configuration.
7190	//
7191	// ConfigId is a required field
7192	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
7193}
7194
7195// String returns the string representation
7196func (s DeleteStorageLensConfigurationTaggingInput) String() string {
7197	return awsutil.Prettify(s)
7198}
7199
7200// GoString returns the string representation
7201func (s DeleteStorageLensConfigurationTaggingInput) GoString() string {
7202	return s.String()
7203}
7204
7205// Validate inspects the fields of the type to determine if they are valid.
7206func (s *DeleteStorageLensConfigurationTaggingInput) Validate() error {
7207	invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationTaggingInput"}
7208	if s.AccountId == nil {
7209		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7210	}
7211	if s.AccountId != nil && len(*s.AccountId) < 1 {
7212		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7213	}
7214	if s.ConfigId == nil {
7215		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
7216	}
7217	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
7218		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
7219	}
7220
7221	if invalidParams.Len() > 0 {
7222		return invalidParams
7223	}
7224	return nil
7225}
7226
7227// SetAccountId sets the AccountId field's value.
7228func (s *DeleteStorageLensConfigurationTaggingInput) SetAccountId(v string) *DeleteStorageLensConfigurationTaggingInput {
7229	s.AccountId = &v
7230	return s
7231}
7232
7233// SetConfigId sets the ConfigId field's value.
7234func (s *DeleteStorageLensConfigurationTaggingInput) SetConfigId(v string) *DeleteStorageLensConfigurationTaggingInput {
7235	s.ConfigId = &v
7236	return s
7237}
7238
7239func (s *DeleteStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
7240	return map[string]string{
7241		"AccountId": aws.StringValue(s.AccountId),
7242	}
7243}
7244
7245type DeleteStorageLensConfigurationTaggingOutput struct {
7246	_ struct{} `type:"structure"`
7247}
7248
7249// String returns the string representation
7250func (s DeleteStorageLensConfigurationTaggingOutput) String() string {
7251	return awsutil.Prettify(s)
7252}
7253
7254// GoString returns the string representation
7255func (s DeleteStorageLensConfigurationTaggingOutput) GoString() string {
7256	return s.String()
7257}
7258
7259type DescribeJobInput struct {
7260	_ struct{} `locationName:"DescribeJobRequest" type:"structure"`
7261
7262	// The AWS account ID associated with the S3 Batch Operations job.
7263	//
7264	// AccountId is a required field
7265	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7266
7267	// The ID for the job whose information you want to retrieve.
7268	//
7269	// JobId is a required field
7270	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
7271}
7272
7273// String returns the string representation
7274func (s DescribeJobInput) String() string {
7275	return awsutil.Prettify(s)
7276}
7277
7278// GoString returns the string representation
7279func (s DescribeJobInput) GoString() string {
7280	return s.String()
7281}
7282
7283// Validate inspects the fields of the type to determine if they are valid.
7284func (s *DescribeJobInput) Validate() error {
7285	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
7286	if s.AccountId == nil {
7287		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7288	}
7289	if s.AccountId != nil && len(*s.AccountId) < 1 {
7290		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7291	}
7292	if s.JobId == nil {
7293		invalidParams.Add(request.NewErrParamRequired("JobId"))
7294	}
7295	if s.JobId != nil && len(*s.JobId) < 5 {
7296		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
7297	}
7298
7299	if invalidParams.Len() > 0 {
7300		return invalidParams
7301	}
7302	return nil
7303}
7304
7305// SetAccountId sets the AccountId field's value.
7306func (s *DescribeJobInput) SetAccountId(v string) *DescribeJobInput {
7307	s.AccountId = &v
7308	return s
7309}
7310
7311// SetJobId sets the JobId field's value.
7312func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
7313	s.JobId = &v
7314	return s
7315}
7316
7317func (s *DescribeJobInput) hostLabels() map[string]string {
7318	return map[string]string{
7319		"AccountId": aws.StringValue(s.AccountId),
7320	}
7321}
7322
7323type DescribeJobOutput struct {
7324	_ struct{} `type:"structure"`
7325
7326	// Contains the configuration parameters and status for the job specified in
7327	// the Describe Job request.
7328	Job *JobDescriptor `type:"structure"`
7329}
7330
7331// String returns the string representation
7332func (s DescribeJobOutput) String() string {
7333	return awsutil.Prettify(s)
7334}
7335
7336// GoString returns the string representation
7337func (s DescribeJobOutput) GoString() string {
7338	return s.String()
7339}
7340
7341// SetJob sets the Job field's value.
7342func (s *DescribeJobOutput) SetJob(v *JobDescriptor) *DescribeJobOutput {
7343	s.Job = v
7344	return s
7345}
7346
7347// A container for what Amazon S3 Storage Lens will exclude.
7348type Exclude struct {
7349	_ struct{} `type:"structure"`
7350
7351	// A container for the S3 Storage Lens bucket excludes.
7352	Buckets []*string `locationNameList:"Arn" type:"list"`
7353
7354	// A container for the S3 Storage Lens Region excludes.
7355	Regions []*string `locationNameList:"Region" type:"list"`
7356}
7357
7358// String returns the string representation
7359func (s Exclude) String() string {
7360	return awsutil.Prettify(s)
7361}
7362
7363// GoString returns the string representation
7364func (s Exclude) GoString() string {
7365	return s.String()
7366}
7367
7368// SetBuckets sets the Buckets field's value.
7369func (s *Exclude) SetBuckets(v []*string) *Exclude {
7370	s.Buckets = v
7371	return s
7372}
7373
7374// SetRegions sets the Regions field's value.
7375func (s *Exclude) SetRegions(v []*string) *Exclude {
7376	s.Regions = v
7377	return s
7378}
7379
7380type GetAccessPointConfigurationForObjectLambdaInput struct {
7381	_ struct{} `locationName:"GetAccessPointConfigurationForObjectLambdaRequest" type:"structure"`
7382
7383	// The account ID for the account that owns the specified Object Lambda Access
7384	// Point.
7385	//
7386	// AccountId is a required field
7387	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7388
7389	// The name of the Object Lambda Access Point you want to return the configuration
7390	// for.
7391	//
7392	// Name is a required field
7393	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7394}
7395
7396// String returns the string representation
7397func (s GetAccessPointConfigurationForObjectLambdaInput) String() string {
7398	return awsutil.Prettify(s)
7399}
7400
7401// GoString returns the string representation
7402func (s GetAccessPointConfigurationForObjectLambdaInput) GoString() string {
7403	return s.String()
7404}
7405
7406// Validate inspects the fields of the type to determine if they are valid.
7407func (s *GetAccessPointConfigurationForObjectLambdaInput) Validate() error {
7408	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointConfigurationForObjectLambdaInput"}
7409	if s.AccountId == nil {
7410		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7411	}
7412	if s.AccountId != nil && len(*s.AccountId) < 1 {
7413		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7414	}
7415	if s.Name == nil {
7416		invalidParams.Add(request.NewErrParamRequired("Name"))
7417	}
7418	if s.Name != nil && len(*s.Name) < 3 {
7419		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7420	}
7421
7422	if invalidParams.Len() > 0 {
7423		return invalidParams
7424	}
7425	return nil
7426}
7427
7428// SetAccountId sets the AccountId field's value.
7429func (s *GetAccessPointConfigurationForObjectLambdaInput) SetAccountId(v string) *GetAccessPointConfigurationForObjectLambdaInput {
7430	s.AccountId = &v
7431	return s
7432}
7433
7434// SetName sets the Name field's value.
7435func (s *GetAccessPointConfigurationForObjectLambdaInput) SetName(v string) *GetAccessPointConfigurationForObjectLambdaInput {
7436	s.Name = &v
7437	return s
7438}
7439
7440func (s *GetAccessPointConfigurationForObjectLambdaInput) hostLabels() map[string]string {
7441	return map[string]string{
7442		"AccountId": aws.StringValue(s.AccountId),
7443	}
7444}
7445
7446type GetAccessPointConfigurationForObjectLambdaOutput struct {
7447	_ struct{} `type:"structure"`
7448
7449	// Object Lambda Access Point configuration document.
7450	Configuration *ObjectLambdaConfiguration `type:"structure"`
7451}
7452
7453// String returns the string representation
7454func (s GetAccessPointConfigurationForObjectLambdaOutput) String() string {
7455	return awsutil.Prettify(s)
7456}
7457
7458// GoString returns the string representation
7459func (s GetAccessPointConfigurationForObjectLambdaOutput) GoString() string {
7460	return s.String()
7461}
7462
7463// SetConfiguration sets the Configuration field's value.
7464func (s *GetAccessPointConfigurationForObjectLambdaOutput) SetConfiguration(v *ObjectLambdaConfiguration) *GetAccessPointConfigurationForObjectLambdaOutput {
7465	s.Configuration = v
7466	return s
7467}
7468
7469type GetAccessPointForObjectLambdaInput struct {
7470	_ struct{} `locationName:"GetAccessPointForObjectLambdaRequest" type:"structure"`
7471
7472	// The account ID for the account that owns the specified Object Lambda Access
7473	// Point.
7474	//
7475	// AccountId is a required field
7476	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7477
7478	// The name of the Object Lambda Access Point.
7479	//
7480	// Name is a required field
7481	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7482}
7483
7484// String returns the string representation
7485func (s GetAccessPointForObjectLambdaInput) String() string {
7486	return awsutil.Prettify(s)
7487}
7488
7489// GoString returns the string representation
7490func (s GetAccessPointForObjectLambdaInput) GoString() string {
7491	return s.String()
7492}
7493
7494// Validate inspects the fields of the type to determine if they are valid.
7495func (s *GetAccessPointForObjectLambdaInput) Validate() error {
7496	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointForObjectLambdaInput"}
7497	if s.AccountId == nil {
7498		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7499	}
7500	if s.AccountId != nil && len(*s.AccountId) < 1 {
7501		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7502	}
7503	if s.Name == nil {
7504		invalidParams.Add(request.NewErrParamRequired("Name"))
7505	}
7506	if s.Name != nil && len(*s.Name) < 3 {
7507		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7508	}
7509
7510	if invalidParams.Len() > 0 {
7511		return invalidParams
7512	}
7513	return nil
7514}
7515
7516// SetAccountId sets the AccountId field's value.
7517func (s *GetAccessPointForObjectLambdaInput) SetAccountId(v string) *GetAccessPointForObjectLambdaInput {
7518	s.AccountId = &v
7519	return s
7520}
7521
7522// SetName sets the Name field's value.
7523func (s *GetAccessPointForObjectLambdaInput) SetName(v string) *GetAccessPointForObjectLambdaInput {
7524	s.Name = &v
7525	return s
7526}
7527
7528func (s *GetAccessPointForObjectLambdaInput) hostLabels() map[string]string {
7529	return map[string]string{
7530		"AccountId": aws.StringValue(s.AccountId),
7531	}
7532}
7533
7534type GetAccessPointForObjectLambdaOutput struct {
7535	_ struct{} `type:"structure"`
7536
7537	// The date and time when the specified Object Lambda Access Point was created.
7538	CreationDate *time.Time `type:"timestamp"`
7539
7540	// The name of the Object Lambda Access Point.
7541	Name *string `min:"3" type:"string"`
7542
7543	// Configuration to block all public access. This setting is turned on and can
7544	// not be edited.
7545	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
7546}
7547
7548// String returns the string representation
7549func (s GetAccessPointForObjectLambdaOutput) String() string {
7550	return awsutil.Prettify(s)
7551}
7552
7553// GoString returns the string representation
7554func (s GetAccessPointForObjectLambdaOutput) GoString() string {
7555	return s.String()
7556}
7557
7558// SetCreationDate sets the CreationDate field's value.
7559func (s *GetAccessPointForObjectLambdaOutput) SetCreationDate(v time.Time) *GetAccessPointForObjectLambdaOutput {
7560	s.CreationDate = &v
7561	return s
7562}
7563
7564// SetName sets the Name field's value.
7565func (s *GetAccessPointForObjectLambdaOutput) SetName(v string) *GetAccessPointForObjectLambdaOutput {
7566	s.Name = &v
7567	return s
7568}
7569
7570// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
7571func (s *GetAccessPointForObjectLambdaOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointForObjectLambdaOutput {
7572	s.PublicAccessBlockConfiguration = v
7573	return s
7574}
7575
7576type GetAccessPointInput struct {
7577	_ struct{} `locationName:"GetAccessPointRequest" type:"structure"`
7578
7579	// The account ID for the account that owns the specified access point.
7580	//
7581	// AccountId is a required field
7582	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7583
7584	// The name of the access point whose configuration information you want to
7585	// retrieve.
7586	//
7587	// For using this parameter with Amazon S3 on Outposts with the REST API, you
7588	// must specify the name and the x-amz-outpost-id as well.
7589	//
7590	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
7591	// must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
7592	// For example, to access the access point reports-ap through outpost my-outpost
7593	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
7594	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
7595	// The value must be URL encoded.
7596	//
7597	// Name is a required field
7598	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7599}
7600
7601// String returns the string representation
7602func (s GetAccessPointInput) String() string {
7603	return awsutil.Prettify(s)
7604}
7605
7606// GoString returns the string representation
7607func (s GetAccessPointInput) GoString() string {
7608	return s.String()
7609}
7610
7611// Validate inspects the fields of the type to determine if they are valid.
7612func (s *GetAccessPointInput) Validate() error {
7613	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointInput"}
7614	if s.AccountId == nil {
7615		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7616	}
7617	if s.AccountId != nil && len(*s.AccountId) < 1 {
7618		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7619	}
7620	if s.Name == nil {
7621		invalidParams.Add(request.NewErrParamRequired("Name"))
7622	}
7623	if s.Name != nil && len(*s.Name) < 3 {
7624		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7625	}
7626
7627	if invalidParams.Len() > 0 {
7628		return invalidParams
7629	}
7630	return nil
7631}
7632
7633// SetAccountId sets the AccountId field's value.
7634func (s *GetAccessPointInput) SetAccountId(v string) *GetAccessPointInput {
7635	s.AccountId = &v
7636	return s
7637}
7638
7639// SetName sets the Name field's value.
7640func (s *GetAccessPointInput) SetName(v string) *GetAccessPointInput {
7641	s.Name = &v
7642	return s
7643}
7644
7645func (s *GetAccessPointInput) hostLabels() map[string]string {
7646	return map[string]string{
7647		"AccountId": aws.StringValue(s.AccountId),
7648	}
7649}
7650
7651func (s *GetAccessPointInput) getEndpointARN() (arn.Resource, error) {
7652	if s.Name == nil {
7653		return nil, fmt.Errorf("member Name is nil")
7654	}
7655	return parseEndpointARN(*s.Name)
7656}
7657
7658func (s *GetAccessPointInput) hasEndpointARN() bool {
7659	if s.Name == nil {
7660		return false
7661	}
7662	return arn.IsARN(*s.Name)
7663}
7664
7665// updateArnableField updates the value of the input field that
7666// takes an ARN as an input. This method is useful to backfill
7667// the parsed resource name from ARN into the input member.
7668// It returns a pointer to a modified copy of input and an error.
7669// Note that original input is not modified.
7670func (s GetAccessPointInput) updateArnableField(v string) (interface{}, error) {
7671	if s.Name == nil {
7672		return nil, fmt.Errorf("member Name is nil")
7673	}
7674	s.Name = aws.String(v)
7675	return &s, nil
7676}
7677
7678// updateAccountID returns a pointer to a modified copy of input,
7679// if account id is not provided, we update the account id in modified input
7680// if account id is provided, but doesn't match with the one in ARN, we throw an error
7681// if account id is not updated, we return nil. Note that original input is not modified.
7682func (s GetAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
7683	if s.AccountId == nil {
7684		s.AccountId = aws.String(accountId)
7685		return &s, nil
7686	} else if *s.AccountId != accountId {
7687		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
7688	}
7689	return nil, nil
7690}
7691
7692type GetAccessPointOutput struct {
7693	_ struct{} `type:"structure"`
7694
7695	// The name of the bucket associated with the specified access point.
7696	Bucket *string `min:"3" type:"string"`
7697
7698	// The date and time when the specified access point was created.
7699	CreationDate *time.Time `type:"timestamp"`
7700
7701	// The name of the specified access point.
7702	Name *string `min:"3" type:"string"`
7703
7704	// Indicates whether this access point allows access from the public internet.
7705	// If VpcConfiguration is specified for this access point, then NetworkOrigin
7706	// is VPC, and the access point doesn't allow access from the public internet.
7707	// Otherwise, NetworkOrigin is Internet, and the access point allows access
7708	// from the public internet, subject to the access point and bucket access policies.
7709	//
7710	// This will always be true for an Amazon S3 on Outposts access point
7711	NetworkOrigin *string `type:"string" enum:"NetworkOrigin"`
7712
7713	// The PublicAccessBlock configuration that you want to apply to this Amazon
7714	// S3 account. You can enable the configuration options in any combination.
7715	// For more information about when Amazon S3 considers a bucket or object public,
7716	// 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)
7717	// in the Amazon Simple Storage Service Developer Guide.
7718	//
7719	// This is not supported for Amazon S3 on Outposts.
7720	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
7721
7722	// Contains the virtual private cloud (VPC) configuration for the specified
7723	// access point.
7724	VpcConfiguration *VpcConfiguration `type:"structure"`
7725}
7726
7727// String returns the string representation
7728func (s GetAccessPointOutput) String() string {
7729	return awsutil.Prettify(s)
7730}
7731
7732// GoString returns the string representation
7733func (s GetAccessPointOutput) GoString() string {
7734	return s.String()
7735}
7736
7737// SetBucket sets the Bucket field's value.
7738func (s *GetAccessPointOutput) SetBucket(v string) *GetAccessPointOutput {
7739	s.Bucket = &v
7740	return s
7741}
7742
7743// SetCreationDate sets the CreationDate field's value.
7744func (s *GetAccessPointOutput) SetCreationDate(v time.Time) *GetAccessPointOutput {
7745	s.CreationDate = &v
7746	return s
7747}
7748
7749// SetName sets the Name field's value.
7750func (s *GetAccessPointOutput) SetName(v string) *GetAccessPointOutput {
7751	s.Name = &v
7752	return s
7753}
7754
7755// SetNetworkOrigin sets the NetworkOrigin field's value.
7756func (s *GetAccessPointOutput) SetNetworkOrigin(v string) *GetAccessPointOutput {
7757	s.NetworkOrigin = &v
7758	return s
7759}
7760
7761// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
7762func (s *GetAccessPointOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointOutput {
7763	s.PublicAccessBlockConfiguration = v
7764	return s
7765}
7766
7767// SetVpcConfiguration sets the VpcConfiguration field's value.
7768func (s *GetAccessPointOutput) SetVpcConfiguration(v *VpcConfiguration) *GetAccessPointOutput {
7769	s.VpcConfiguration = v
7770	return s
7771}
7772
7773type GetAccessPointPolicyForObjectLambdaInput struct {
7774	_ struct{} `locationName:"GetAccessPointPolicyForObjectLambdaRequest" type:"structure"`
7775
7776	// The account ID for the account that owns the specified Object Lambda Access
7777	// Point.
7778	//
7779	// AccountId is a required field
7780	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7781
7782	// The name of the Object Lambda Access Point.
7783	//
7784	// Name is a required field
7785	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7786}
7787
7788// String returns the string representation
7789func (s GetAccessPointPolicyForObjectLambdaInput) String() string {
7790	return awsutil.Prettify(s)
7791}
7792
7793// GoString returns the string representation
7794func (s GetAccessPointPolicyForObjectLambdaInput) GoString() string {
7795	return s.String()
7796}
7797
7798// Validate inspects the fields of the type to determine if they are valid.
7799func (s *GetAccessPointPolicyForObjectLambdaInput) Validate() error {
7800	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyForObjectLambdaInput"}
7801	if s.AccountId == nil {
7802		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7803	}
7804	if s.AccountId != nil && len(*s.AccountId) < 1 {
7805		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7806	}
7807	if s.Name == nil {
7808		invalidParams.Add(request.NewErrParamRequired("Name"))
7809	}
7810	if s.Name != nil && len(*s.Name) < 3 {
7811		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7812	}
7813
7814	if invalidParams.Len() > 0 {
7815		return invalidParams
7816	}
7817	return nil
7818}
7819
7820// SetAccountId sets the AccountId field's value.
7821func (s *GetAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *GetAccessPointPolicyForObjectLambdaInput {
7822	s.AccountId = &v
7823	return s
7824}
7825
7826// SetName sets the Name field's value.
7827func (s *GetAccessPointPolicyForObjectLambdaInput) SetName(v string) *GetAccessPointPolicyForObjectLambdaInput {
7828	s.Name = &v
7829	return s
7830}
7831
7832func (s *GetAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string {
7833	return map[string]string{
7834		"AccountId": aws.StringValue(s.AccountId),
7835	}
7836}
7837
7838type GetAccessPointPolicyForObjectLambdaOutput struct {
7839	_ struct{} `type:"structure"`
7840
7841	// Object Lambda Access Point resource policy document.
7842	Policy *string `type:"string"`
7843}
7844
7845// String returns the string representation
7846func (s GetAccessPointPolicyForObjectLambdaOutput) String() string {
7847	return awsutil.Prettify(s)
7848}
7849
7850// GoString returns the string representation
7851func (s GetAccessPointPolicyForObjectLambdaOutput) GoString() string {
7852	return s.String()
7853}
7854
7855// SetPolicy sets the Policy field's value.
7856func (s *GetAccessPointPolicyForObjectLambdaOutput) SetPolicy(v string) *GetAccessPointPolicyForObjectLambdaOutput {
7857	s.Policy = &v
7858	return s
7859}
7860
7861type GetAccessPointPolicyInput struct {
7862	_ struct{} `locationName:"GetAccessPointPolicyRequest" type:"structure"`
7863
7864	// The account ID for the account that owns the specified access point.
7865	//
7866	// AccountId is a required field
7867	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7868
7869	// The name of the access point whose policy you want to retrieve.
7870	//
7871	// For using this parameter with Amazon S3 on Outposts with the REST API, you
7872	// must specify the name and the x-amz-outpost-id as well.
7873	//
7874	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
7875	// must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
7876	// For example, to access the access point reports-ap through outpost my-outpost
7877	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
7878	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
7879	// The value must be URL encoded.
7880	//
7881	// Name is a required field
7882	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7883}
7884
7885// String returns the string representation
7886func (s GetAccessPointPolicyInput) String() string {
7887	return awsutil.Prettify(s)
7888}
7889
7890// GoString returns the string representation
7891func (s GetAccessPointPolicyInput) GoString() string {
7892	return s.String()
7893}
7894
7895// Validate inspects the fields of the type to determine if they are valid.
7896func (s *GetAccessPointPolicyInput) Validate() error {
7897	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyInput"}
7898	if s.AccountId == nil {
7899		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7900	}
7901	if s.AccountId != nil && len(*s.AccountId) < 1 {
7902		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7903	}
7904	if s.Name == nil {
7905		invalidParams.Add(request.NewErrParamRequired("Name"))
7906	}
7907	if s.Name != nil && len(*s.Name) < 3 {
7908		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7909	}
7910
7911	if invalidParams.Len() > 0 {
7912		return invalidParams
7913	}
7914	return nil
7915}
7916
7917// SetAccountId sets the AccountId field's value.
7918func (s *GetAccessPointPolicyInput) SetAccountId(v string) *GetAccessPointPolicyInput {
7919	s.AccountId = &v
7920	return s
7921}
7922
7923// SetName sets the Name field's value.
7924func (s *GetAccessPointPolicyInput) SetName(v string) *GetAccessPointPolicyInput {
7925	s.Name = &v
7926	return s
7927}
7928
7929func (s *GetAccessPointPolicyInput) hostLabels() map[string]string {
7930	return map[string]string{
7931		"AccountId": aws.StringValue(s.AccountId),
7932	}
7933}
7934
7935func (s *GetAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
7936	if s.Name == nil {
7937		return nil, fmt.Errorf("member Name is nil")
7938	}
7939	return parseEndpointARN(*s.Name)
7940}
7941
7942func (s *GetAccessPointPolicyInput) hasEndpointARN() bool {
7943	if s.Name == nil {
7944		return false
7945	}
7946	return arn.IsARN(*s.Name)
7947}
7948
7949// updateArnableField updates the value of the input field that
7950// takes an ARN as an input. This method is useful to backfill
7951// the parsed resource name from ARN into the input member.
7952// It returns a pointer to a modified copy of input and an error.
7953// Note that original input is not modified.
7954func (s GetAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
7955	if s.Name == nil {
7956		return nil, fmt.Errorf("member Name is nil")
7957	}
7958	s.Name = aws.String(v)
7959	return &s, nil
7960}
7961
7962// updateAccountID returns a pointer to a modified copy of input,
7963// if account id is not provided, we update the account id in modified input
7964// if account id is provided, but doesn't match with the one in ARN, we throw an error
7965// if account id is not updated, we return nil. Note that original input is not modified.
7966func (s GetAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
7967	if s.AccountId == nil {
7968		s.AccountId = aws.String(accountId)
7969		return &s, nil
7970	} else if *s.AccountId != accountId {
7971		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
7972	}
7973	return nil, nil
7974}
7975
7976type GetAccessPointPolicyOutput struct {
7977	_ struct{} `type:"structure"`
7978
7979	// The access point policy associated with the specified access point.
7980	Policy *string `type:"string"`
7981}
7982
7983// String returns the string representation
7984func (s GetAccessPointPolicyOutput) String() string {
7985	return awsutil.Prettify(s)
7986}
7987
7988// GoString returns the string representation
7989func (s GetAccessPointPolicyOutput) GoString() string {
7990	return s.String()
7991}
7992
7993// SetPolicy sets the Policy field's value.
7994func (s *GetAccessPointPolicyOutput) SetPolicy(v string) *GetAccessPointPolicyOutput {
7995	s.Policy = &v
7996	return s
7997}
7998
7999type GetAccessPointPolicyStatusForObjectLambdaInput struct {
8000	_ struct{} `locationName:"GetAccessPointPolicyStatusForObjectLambdaRequest" type:"structure"`
8001
8002	// The account ID for the account that owns the specified Object Lambda Access
8003	// Point.
8004	//
8005	// AccountId is a required field
8006	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8007
8008	// The name of the Object Lambda Access Point.
8009	//
8010	// Name is a required field
8011	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8012}
8013
8014// String returns the string representation
8015func (s GetAccessPointPolicyStatusForObjectLambdaInput) String() string {
8016	return awsutil.Prettify(s)
8017}
8018
8019// GoString returns the string representation
8020func (s GetAccessPointPolicyStatusForObjectLambdaInput) GoString() string {
8021	return s.String()
8022}
8023
8024// Validate inspects the fields of the type to determine if they are valid.
8025func (s *GetAccessPointPolicyStatusForObjectLambdaInput) Validate() error {
8026	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusForObjectLambdaInput"}
8027	if s.AccountId == nil {
8028		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8029	}
8030	if s.AccountId != nil && len(*s.AccountId) < 1 {
8031		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8032	}
8033	if s.Name == nil {
8034		invalidParams.Add(request.NewErrParamRequired("Name"))
8035	}
8036	if s.Name != nil && len(*s.Name) < 3 {
8037		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
8038	}
8039
8040	if invalidParams.Len() > 0 {
8041		return invalidParams
8042	}
8043	return nil
8044}
8045
8046// SetAccountId sets the AccountId field's value.
8047func (s *GetAccessPointPolicyStatusForObjectLambdaInput) SetAccountId(v string) *GetAccessPointPolicyStatusForObjectLambdaInput {
8048	s.AccountId = &v
8049	return s
8050}
8051
8052// SetName sets the Name field's value.
8053func (s *GetAccessPointPolicyStatusForObjectLambdaInput) SetName(v string) *GetAccessPointPolicyStatusForObjectLambdaInput {
8054	s.Name = &v
8055	return s
8056}
8057
8058func (s *GetAccessPointPolicyStatusForObjectLambdaInput) hostLabels() map[string]string {
8059	return map[string]string{
8060		"AccountId": aws.StringValue(s.AccountId),
8061	}
8062}
8063
8064type GetAccessPointPolicyStatusForObjectLambdaOutput struct {
8065	_ struct{} `type:"structure"`
8066
8067	// Indicates whether this access point policy is public. For more information
8068	// about how Amazon S3 evaluates policies to determine whether they are public,
8069	// 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)
8070	// in the Amazon Simple Storage Service User Guide.
8071	PolicyStatus *PolicyStatus `type:"structure"`
8072}
8073
8074// String returns the string representation
8075func (s GetAccessPointPolicyStatusForObjectLambdaOutput) String() string {
8076	return awsutil.Prettify(s)
8077}
8078
8079// GoString returns the string representation
8080func (s GetAccessPointPolicyStatusForObjectLambdaOutput) GoString() string {
8081	return s.String()
8082}
8083
8084// SetPolicyStatus sets the PolicyStatus field's value.
8085func (s *GetAccessPointPolicyStatusForObjectLambdaOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusForObjectLambdaOutput {
8086	s.PolicyStatus = v
8087	return s
8088}
8089
8090type GetAccessPointPolicyStatusInput struct {
8091	_ struct{} `locationName:"GetAccessPointPolicyStatusRequest" type:"structure"`
8092
8093	// The account ID for the account that owns the specified access point.
8094	//
8095	// AccountId is a required field
8096	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8097
8098	// The name of the access point whose policy status you want to retrieve.
8099	//
8100	// Name is a required field
8101	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8102}
8103
8104// String returns the string representation
8105func (s GetAccessPointPolicyStatusInput) String() string {
8106	return awsutil.Prettify(s)
8107}
8108
8109// GoString returns the string representation
8110func (s GetAccessPointPolicyStatusInput) GoString() string {
8111	return s.String()
8112}
8113
8114// Validate inspects the fields of the type to determine if they are valid.
8115func (s *GetAccessPointPolicyStatusInput) Validate() error {
8116	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusInput"}
8117	if s.AccountId == nil {
8118		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8119	}
8120	if s.AccountId != nil && len(*s.AccountId) < 1 {
8121		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8122	}
8123	if s.Name == nil {
8124		invalidParams.Add(request.NewErrParamRequired("Name"))
8125	}
8126	if s.Name != nil && len(*s.Name) < 3 {
8127		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
8128	}
8129
8130	if invalidParams.Len() > 0 {
8131		return invalidParams
8132	}
8133	return nil
8134}
8135
8136// SetAccountId sets the AccountId field's value.
8137func (s *GetAccessPointPolicyStatusInput) SetAccountId(v string) *GetAccessPointPolicyStatusInput {
8138	s.AccountId = &v
8139	return s
8140}
8141
8142// SetName sets the Name field's value.
8143func (s *GetAccessPointPolicyStatusInput) SetName(v string) *GetAccessPointPolicyStatusInput {
8144	s.Name = &v
8145	return s
8146}
8147
8148func (s *GetAccessPointPolicyStatusInput) hostLabels() map[string]string {
8149	return map[string]string{
8150		"AccountId": aws.StringValue(s.AccountId),
8151	}
8152}
8153
8154type GetAccessPointPolicyStatusOutput struct {
8155	_ struct{} `type:"structure"`
8156
8157	// Indicates the current policy status of the specified access point.
8158	PolicyStatus *PolicyStatus `type:"structure"`
8159}
8160
8161// String returns the string representation
8162func (s GetAccessPointPolicyStatusOutput) String() string {
8163	return awsutil.Prettify(s)
8164}
8165
8166// GoString returns the string representation
8167func (s GetAccessPointPolicyStatusOutput) GoString() string {
8168	return s.String()
8169}
8170
8171// SetPolicyStatus sets the PolicyStatus field's value.
8172func (s *GetAccessPointPolicyStatusOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusOutput {
8173	s.PolicyStatus = v
8174	return s
8175}
8176
8177type GetBucketInput struct {
8178	_ struct{} `locationName:"GetBucketRequest" type:"structure"`
8179
8180	// The AWS account ID of the Outposts bucket.
8181	//
8182	// AccountId is a required field
8183	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8184
8185	// Specifies the bucket.
8186	//
8187	// For using this parameter with Amazon S3 on Outposts with the REST API, you
8188	// must specify the name and the x-amz-outpost-id as well.
8189	//
8190	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
8191	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
8192	// For example, to access the bucket reports through outpost my-outpost owned
8193	// 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.
8194	// The value must be URL encoded.
8195	//
8196	// Bucket is a required field
8197	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8198}
8199
8200// String returns the string representation
8201func (s GetBucketInput) String() string {
8202	return awsutil.Prettify(s)
8203}
8204
8205// GoString returns the string representation
8206func (s GetBucketInput) GoString() string {
8207	return s.String()
8208}
8209
8210// Validate inspects the fields of the type to determine if they are valid.
8211func (s *GetBucketInput) Validate() error {
8212	invalidParams := request.ErrInvalidParams{Context: "GetBucketInput"}
8213	if s.AccountId == nil {
8214		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8215	}
8216	if s.AccountId != nil && len(*s.AccountId) < 1 {
8217		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8218	}
8219	if s.Bucket == nil {
8220		invalidParams.Add(request.NewErrParamRequired("Bucket"))
8221	}
8222	if s.Bucket != nil && len(*s.Bucket) < 3 {
8223		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
8224	}
8225
8226	if invalidParams.Len() > 0 {
8227		return invalidParams
8228	}
8229	return nil
8230}
8231
8232// SetAccountId sets the AccountId field's value.
8233func (s *GetBucketInput) SetAccountId(v string) *GetBucketInput {
8234	s.AccountId = &v
8235	return s
8236}
8237
8238// SetBucket sets the Bucket field's value.
8239func (s *GetBucketInput) SetBucket(v string) *GetBucketInput {
8240	s.Bucket = &v
8241	return s
8242}
8243
8244func (s *GetBucketInput) hostLabels() map[string]string {
8245	return map[string]string{
8246		"AccountId": aws.StringValue(s.AccountId),
8247	}
8248}
8249
8250func (s *GetBucketInput) getEndpointARN() (arn.Resource, error) {
8251	if s.Bucket == nil {
8252		return nil, fmt.Errorf("member Bucket is nil")
8253	}
8254	return parseEndpointARN(*s.Bucket)
8255}
8256
8257func (s *GetBucketInput) hasEndpointARN() bool {
8258	if s.Bucket == nil {
8259		return false
8260	}
8261	return arn.IsARN(*s.Bucket)
8262}
8263
8264// updateArnableField updates the value of the input field that
8265// takes an ARN as an input. This method is useful to backfill
8266// the parsed resource name from ARN into the input member.
8267// It returns a pointer to a modified copy of input and an error.
8268// Note that original input is not modified.
8269func (s GetBucketInput) updateArnableField(v string) (interface{}, error) {
8270	if s.Bucket == nil {
8271		return nil, fmt.Errorf("member Bucket is nil")
8272	}
8273	s.Bucket = aws.String(v)
8274	return &s, nil
8275}
8276
8277// updateAccountID returns a pointer to a modified copy of input,
8278// if account id is not provided, we update the account id in modified input
8279// if account id is provided, but doesn't match with the one in ARN, we throw an error
8280// if account id is not updated, we return nil. Note that original input is not modified.
8281func (s GetBucketInput) updateAccountID(accountId string) (interface{}, error) {
8282	if s.AccountId == nil {
8283		s.AccountId = aws.String(accountId)
8284		return &s, nil
8285	} else if *s.AccountId != accountId {
8286		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8287	}
8288	return nil, nil
8289}
8290
8291type GetBucketLifecycleConfigurationInput struct {
8292	_ struct{} `locationName:"GetBucketLifecycleConfigurationRequest" type:"structure"`
8293
8294	// The AWS account ID of the Outposts bucket.
8295	//
8296	// AccountId is a required field
8297	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8298
8299	// The Amazon Resource Name (ARN) of the bucket.
8300	//
8301	// For using this parameter with Amazon S3 on Outposts with the REST API, you
8302	// must specify the name and the x-amz-outpost-id as well.
8303	//
8304	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
8305	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
8306	// For example, to access the bucket reports through outpost my-outpost owned
8307	// 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.
8308	// The value must be URL encoded.
8309	//
8310	// Bucket is a required field
8311	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8312}
8313
8314// String returns the string representation
8315func (s GetBucketLifecycleConfigurationInput) String() string {
8316	return awsutil.Prettify(s)
8317}
8318
8319// GoString returns the string representation
8320func (s GetBucketLifecycleConfigurationInput) GoString() string {
8321	return s.String()
8322}
8323
8324// Validate inspects the fields of the type to determine if they are valid.
8325func (s *GetBucketLifecycleConfigurationInput) Validate() error {
8326	invalidParams := request.ErrInvalidParams{Context: "GetBucketLifecycleConfigurationInput"}
8327	if s.AccountId == nil {
8328		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8329	}
8330	if s.AccountId != nil && len(*s.AccountId) < 1 {
8331		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8332	}
8333	if s.Bucket == nil {
8334		invalidParams.Add(request.NewErrParamRequired("Bucket"))
8335	}
8336	if s.Bucket != nil && len(*s.Bucket) < 3 {
8337		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
8338	}
8339
8340	if invalidParams.Len() > 0 {
8341		return invalidParams
8342	}
8343	return nil
8344}
8345
8346// SetAccountId sets the AccountId field's value.
8347func (s *GetBucketLifecycleConfigurationInput) SetAccountId(v string) *GetBucketLifecycleConfigurationInput {
8348	s.AccountId = &v
8349	return s
8350}
8351
8352// SetBucket sets the Bucket field's value.
8353func (s *GetBucketLifecycleConfigurationInput) SetBucket(v string) *GetBucketLifecycleConfigurationInput {
8354	s.Bucket = &v
8355	return s
8356}
8357
8358func (s *GetBucketLifecycleConfigurationInput) hostLabels() map[string]string {
8359	return map[string]string{
8360		"AccountId": aws.StringValue(s.AccountId),
8361	}
8362}
8363
8364func (s *GetBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
8365	if s.Bucket == nil {
8366		return nil, fmt.Errorf("member Bucket is nil")
8367	}
8368	return parseEndpointARN(*s.Bucket)
8369}
8370
8371func (s *GetBucketLifecycleConfigurationInput) hasEndpointARN() bool {
8372	if s.Bucket == nil {
8373		return false
8374	}
8375	return arn.IsARN(*s.Bucket)
8376}
8377
8378// updateArnableField updates the value of the input field that
8379// takes an ARN as an input. This method is useful to backfill
8380// the parsed resource name from ARN into the input member.
8381// It returns a pointer to a modified copy of input and an error.
8382// Note that original input is not modified.
8383func (s GetBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
8384	if s.Bucket == nil {
8385		return nil, fmt.Errorf("member Bucket is nil")
8386	}
8387	s.Bucket = aws.String(v)
8388	return &s, nil
8389}
8390
8391// updateAccountID returns a pointer to a modified copy of input,
8392// if account id is not provided, we update the account id in modified input
8393// if account id is provided, but doesn't match with the one in ARN, we throw an error
8394// if account id is not updated, we return nil. Note that original input is not modified.
8395func (s GetBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
8396	if s.AccountId == nil {
8397		s.AccountId = aws.String(accountId)
8398		return &s, nil
8399	} else if *s.AccountId != accountId {
8400		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8401	}
8402	return nil, nil
8403}
8404
8405type GetBucketLifecycleConfigurationOutput struct {
8406	_ struct{} `type:"structure"`
8407
8408	// Container for the lifecycle rule of the Outposts bucket.
8409	Rules []*LifecycleRule `locationNameList:"Rule" type:"list"`
8410}
8411
8412// String returns the string representation
8413func (s GetBucketLifecycleConfigurationOutput) String() string {
8414	return awsutil.Prettify(s)
8415}
8416
8417// GoString returns the string representation
8418func (s GetBucketLifecycleConfigurationOutput) GoString() string {
8419	return s.String()
8420}
8421
8422// SetRules sets the Rules field's value.
8423func (s *GetBucketLifecycleConfigurationOutput) SetRules(v []*LifecycleRule) *GetBucketLifecycleConfigurationOutput {
8424	s.Rules = v
8425	return s
8426}
8427
8428type GetBucketOutput struct {
8429	_ struct{} `type:"structure"`
8430
8431	// The Outposts bucket requested.
8432	Bucket *string `min:"3" type:"string"`
8433
8434	// The creation date of the Outposts bucket.
8435	CreationDate *time.Time `type:"timestamp"`
8436
8437	PublicAccessBlockEnabled *bool `type:"boolean"`
8438}
8439
8440// String returns the string representation
8441func (s GetBucketOutput) String() string {
8442	return awsutil.Prettify(s)
8443}
8444
8445// GoString returns the string representation
8446func (s GetBucketOutput) GoString() string {
8447	return s.String()
8448}
8449
8450// SetBucket sets the Bucket field's value.
8451func (s *GetBucketOutput) SetBucket(v string) *GetBucketOutput {
8452	s.Bucket = &v
8453	return s
8454}
8455
8456// SetCreationDate sets the CreationDate field's value.
8457func (s *GetBucketOutput) SetCreationDate(v time.Time) *GetBucketOutput {
8458	s.CreationDate = &v
8459	return s
8460}
8461
8462// SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value.
8463func (s *GetBucketOutput) SetPublicAccessBlockEnabled(v bool) *GetBucketOutput {
8464	s.PublicAccessBlockEnabled = &v
8465	return s
8466}
8467
8468type GetBucketPolicyInput struct {
8469	_ struct{} `locationName:"GetBucketPolicyRequest" type:"structure"`
8470
8471	// The AWS account ID of the Outposts bucket.
8472	//
8473	// AccountId is a required field
8474	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8475
8476	// Specifies the bucket.
8477	//
8478	// For using this parameter with Amazon S3 on Outposts with the REST API, you
8479	// must specify the name and the x-amz-outpost-id as well.
8480	//
8481	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
8482	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
8483	// For example, to access the bucket reports through outpost my-outpost owned
8484	// 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.
8485	// The value must be URL encoded.
8486	//
8487	// Bucket is a required field
8488	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8489}
8490
8491// String returns the string representation
8492func (s GetBucketPolicyInput) String() string {
8493	return awsutil.Prettify(s)
8494}
8495
8496// GoString returns the string representation
8497func (s GetBucketPolicyInput) GoString() string {
8498	return s.String()
8499}
8500
8501// Validate inspects the fields of the type to determine if they are valid.
8502func (s *GetBucketPolicyInput) Validate() error {
8503	invalidParams := request.ErrInvalidParams{Context: "GetBucketPolicyInput"}
8504	if s.AccountId == nil {
8505		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8506	}
8507	if s.AccountId != nil && len(*s.AccountId) < 1 {
8508		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8509	}
8510	if s.Bucket == nil {
8511		invalidParams.Add(request.NewErrParamRequired("Bucket"))
8512	}
8513	if s.Bucket != nil && len(*s.Bucket) < 3 {
8514		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
8515	}
8516
8517	if invalidParams.Len() > 0 {
8518		return invalidParams
8519	}
8520	return nil
8521}
8522
8523// SetAccountId sets the AccountId field's value.
8524func (s *GetBucketPolicyInput) SetAccountId(v string) *GetBucketPolicyInput {
8525	s.AccountId = &v
8526	return s
8527}
8528
8529// SetBucket sets the Bucket field's value.
8530func (s *GetBucketPolicyInput) SetBucket(v string) *GetBucketPolicyInput {
8531	s.Bucket = &v
8532	return s
8533}
8534
8535func (s *GetBucketPolicyInput) hostLabels() map[string]string {
8536	return map[string]string{
8537		"AccountId": aws.StringValue(s.AccountId),
8538	}
8539}
8540
8541func (s *GetBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
8542	if s.Bucket == nil {
8543		return nil, fmt.Errorf("member Bucket is nil")
8544	}
8545	return parseEndpointARN(*s.Bucket)
8546}
8547
8548func (s *GetBucketPolicyInput) hasEndpointARN() bool {
8549	if s.Bucket == nil {
8550		return false
8551	}
8552	return arn.IsARN(*s.Bucket)
8553}
8554
8555// updateArnableField updates the value of the input field that
8556// takes an ARN as an input. This method is useful to backfill
8557// the parsed resource name from ARN into the input member.
8558// It returns a pointer to a modified copy of input and an error.
8559// Note that original input is not modified.
8560func (s GetBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
8561	if s.Bucket == nil {
8562		return nil, fmt.Errorf("member Bucket is nil")
8563	}
8564	s.Bucket = aws.String(v)
8565	return &s, nil
8566}
8567
8568// updateAccountID returns a pointer to a modified copy of input,
8569// if account id is not provided, we update the account id in modified input
8570// if account id is provided, but doesn't match with the one in ARN, we throw an error
8571// if account id is not updated, we return nil. Note that original input is not modified.
8572func (s GetBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
8573	if s.AccountId == nil {
8574		s.AccountId = aws.String(accountId)
8575		return &s, nil
8576	} else if *s.AccountId != accountId {
8577		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8578	}
8579	return nil, nil
8580}
8581
8582type GetBucketPolicyOutput struct {
8583	_ struct{} `type:"structure"`
8584
8585	// The policy of the Outposts bucket.
8586	Policy *string `type:"string"`
8587}
8588
8589// String returns the string representation
8590func (s GetBucketPolicyOutput) String() string {
8591	return awsutil.Prettify(s)
8592}
8593
8594// GoString returns the string representation
8595func (s GetBucketPolicyOutput) GoString() string {
8596	return s.String()
8597}
8598
8599// SetPolicy sets the Policy field's value.
8600func (s *GetBucketPolicyOutput) SetPolicy(v string) *GetBucketPolicyOutput {
8601	s.Policy = &v
8602	return s
8603}
8604
8605type GetBucketTaggingInput struct {
8606	_ struct{} `locationName:"GetBucketTaggingRequest" type:"structure"`
8607
8608	// The AWS account ID of the Outposts bucket.
8609	//
8610	// AccountId is a required field
8611	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8612
8613	// Specifies the bucket.
8614	//
8615	// For using this parameter with Amazon S3 on Outposts with the REST API, you
8616	// must specify the name and the x-amz-outpost-id as well.
8617	//
8618	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
8619	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
8620	// For example, to access the bucket reports through outpost my-outpost owned
8621	// 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.
8622	// The value must be URL encoded.
8623	//
8624	// Bucket is a required field
8625	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8626}
8627
8628// String returns the string representation
8629func (s GetBucketTaggingInput) String() string {
8630	return awsutil.Prettify(s)
8631}
8632
8633// GoString returns the string representation
8634func (s GetBucketTaggingInput) GoString() string {
8635	return s.String()
8636}
8637
8638// Validate inspects the fields of the type to determine if they are valid.
8639func (s *GetBucketTaggingInput) Validate() error {
8640	invalidParams := request.ErrInvalidParams{Context: "GetBucketTaggingInput"}
8641	if s.AccountId == nil {
8642		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8643	}
8644	if s.AccountId != nil && len(*s.AccountId) < 1 {
8645		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8646	}
8647	if s.Bucket == nil {
8648		invalidParams.Add(request.NewErrParamRequired("Bucket"))
8649	}
8650	if s.Bucket != nil && len(*s.Bucket) < 3 {
8651		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
8652	}
8653
8654	if invalidParams.Len() > 0 {
8655		return invalidParams
8656	}
8657	return nil
8658}
8659
8660// SetAccountId sets the AccountId field's value.
8661func (s *GetBucketTaggingInput) SetAccountId(v string) *GetBucketTaggingInput {
8662	s.AccountId = &v
8663	return s
8664}
8665
8666// SetBucket sets the Bucket field's value.
8667func (s *GetBucketTaggingInput) SetBucket(v string) *GetBucketTaggingInput {
8668	s.Bucket = &v
8669	return s
8670}
8671
8672func (s *GetBucketTaggingInput) hostLabels() map[string]string {
8673	return map[string]string{
8674		"AccountId": aws.StringValue(s.AccountId),
8675	}
8676}
8677
8678func (s *GetBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
8679	if s.Bucket == nil {
8680		return nil, fmt.Errorf("member Bucket is nil")
8681	}
8682	return parseEndpointARN(*s.Bucket)
8683}
8684
8685func (s *GetBucketTaggingInput) hasEndpointARN() bool {
8686	if s.Bucket == nil {
8687		return false
8688	}
8689	return arn.IsARN(*s.Bucket)
8690}
8691
8692// updateArnableField updates the value of the input field that
8693// takes an ARN as an input. This method is useful to backfill
8694// the parsed resource name from ARN into the input member.
8695// It returns a pointer to a modified copy of input and an error.
8696// Note that original input is not modified.
8697func (s GetBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
8698	if s.Bucket == nil {
8699		return nil, fmt.Errorf("member Bucket is nil")
8700	}
8701	s.Bucket = aws.String(v)
8702	return &s, nil
8703}
8704
8705// updateAccountID returns a pointer to a modified copy of input,
8706// if account id is not provided, we update the account id in modified input
8707// if account id is provided, but doesn't match with the one in ARN, we throw an error
8708// if account id is not updated, we return nil. Note that original input is not modified.
8709func (s GetBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
8710	if s.AccountId == nil {
8711		s.AccountId = aws.String(accountId)
8712		return &s, nil
8713	} else if *s.AccountId != accountId {
8714		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8715	}
8716	return nil, nil
8717}
8718
8719type GetBucketTaggingOutput struct {
8720	_ struct{} `type:"structure"`
8721
8722	// The tags set of the Outposts bucket.
8723	//
8724	// TagSet is a required field
8725	TagSet []*S3Tag `type:"list" required:"true"`
8726}
8727
8728// String returns the string representation
8729func (s GetBucketTaggingOutput) String() string {
8730	return awsutil.Prettify(s)
8731}
8732
8733// GoString returns the string representation
8734func (s GetBucketTaggingOutput) GoString() string {
8735	return s.String()
8736}
8737
8738// SetTagSet sets the TagSet field's value.
8739func (s *GetBucketTaggingOutput) SetTagSet(v []*S3Tag) *GetBucketTaggingOutput {
8740	s.TagSet = v
8741	return s
8742}
8743
8744type GetJobTaggingInput struct {
8745	_ struct{} `locationName:"GetJobTaggingRequest" type:"structure"`
8746
8747	// The AWS account ID associated with the S3 Batch Operations job.
8748	//
8749	// AccountId is a required field
8750	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8751
8752	// The ID for the S3 Batch Operations job whose tags you want to retrieve.
8753	//
8754	// JobId is a required field
8755	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
8756}
8757
8758// String returns the string representation
8759func (s GetJobTaggingInput) String() string {
8760	return awsutil.Prettify(s)
8761}
8762
8763// GoString returns the string representation
8764func (s GetJobTaggingInput) GoString() string {
8765	return s.String()
8766}
8767
8768// Validate inspects the fields of the type to determine if they are valid.
8769func (s *GetJobTaggingInput) Validate() error {
8770	invalidParams := request.ErrInvalidParams{Context: "GetJobTaggingInput"}
8771	if s.AccountId == nil {
8772		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8773	}
8774	if s.AccountId != nil && len(*s.AccountId) < 1 {
8775		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8776	}
8777	if s.JobId == nil {
8778		invalidParams.Add(request.NewErrParamRequired("JobId"))
8779	}
8780	if s.JobId != nil && len(*s.JobId) < 5 {
8781		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
8782	}
8783
8784	if invalidParams.Len() > 0 {
8785		return invalidParams
8786	}
8787	return nil
8788}
8789
8790// SetAccountId sets the AccountId field's value.
8791func (s *GetJobTaggingInput) SetAccountId(v string) *GetJobTaggingInput {
8792	s.AccountId = &v
8793	return s
8794}
8795
8796// SetJobId sets the JobId field's value.
8797func (s *GetJobTaggingInput) SetJobId(v string) *GetJobTaggingInput {
8798	s.JobId = &v
8799	return s
8800}
8801
8802func (s *GetJobTaggingInput) hostLabels() map[string]string {
8803	return map[string]string{
8804		"AccountId": aws.StringValue(s.AccountId),
8805	}
8806}
8807
8808type GetJobTaggingOutput struct {
8809	_ struct{} `type:"structure"`
8810
8811	// The set of tags associated with the S3 Batch Operations job.
8812	Tags []*S3Tag `type:"list"`
8813}
8814
8815// String returns the string representation
8816func (s GetJobTaggingOutput) String() string {
8817	return awsutil.Prettify(s)
8818}
8819
8820// GoString returns the string representation
8821func (s GetJobTaggingOutput) GoString() string {
8822	return s.String()
8823}
8824
8825// SetTags sets the Tags field's value.
8826func (s *GetJobTaggingOutput) SetTags(v []*S3Tag) *GetJobTaggingOutput {
8827	s.Tags = v
8828	return s
8829}
8830
8831type GetPublicAccessBlockInput struct {
8832	_ struct{} `locationName:"GetPublicAccessBlockRequest" type:"structure"`
8833
8834	// The account ID for the AWS account whose PublicAccessBlock configuration
8835	// you want to retrieve.
8836	//
8837	// AccountId is a required field
8838	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8839}
8840
8841// String returns the string representation
8842func (s GetPublicAccessBlockInput) String() string {
8843	return awsutil.Prettify(s)
8844}
8845
8846// GoString returns the string representation
8847func (s GetPublicAccessBlockInput) GoString() string {
8848	return s.String()
8849}
8850
8851// Validate inspects the fields of the type to determine if they are valid.
8852func (s *GetPublicAccessBlockInput) Validate() error {
8853	invalidParams := request.ErrInvalidParams{Context: "GetPublicAccessBlockInput"}
8854	if s.AccountId == nil {
8855		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8856	}
8857	if s.AccountId != nil && len(*s.AccountId) < 1 {
8858		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8859	}
8860
8861	if invalidParams.Len() > 0 {
8862		return invalidParams
8863	}
8864	return nil
8865}
8866
8867// SetAccountId sets the AccountId field's value.
8868func (s *GetPublicAccessBlockInput) SetAccountId(v string) *GetPublicAccessBlockInput {
8869	s.AccountId = &v
8870	return s
8871}
8872
8873func (s *GetPublicAccessBlockInput) hostLabels() map[string]string {
8874	return map[string]string{
8875		"AccountId": aws.StringValue(s.AccountId),
8876	}
8877}
8878
8879type GetPublicAccessBlockOutput struct {
8880	_ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"`
8881
8882	// The PublicAccessBlock configuration currently in effect for this AWS account.
8883	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
8884}
8885
8886// String returns the string representation
8887func (s GetPublicAccessBlockOutput) String() string {
8888	return awsutil.Prettify(s)
8889}
8890
8891// GoString returns the string representation
8892func (s GetPublicAccessBlockOutput) GoString() string {
8893	return s.String()
8894}
8895
8896// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
8897func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetPublicAccessBlockOutput {
8898	s.PublicAccessBlockConfiguration = v
8899	return s
8900}
8901
8902type GetStorageLensConfigurationInput struct {
8903	_ struct{} `locationName:"GetStorageLensConfigurationRequest" type:"structure"`
8904
8905	// The account ID of the requester.
8906	//
8907	// AccountId is a required field
8908	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8909
8910	// The ID of the Amazon S3 Storage Lens configuration.
8911	//
8912	// ConfigId is a required field
8913	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
8914}
8915
8916// String returns the string representation
8917func (s GetStorageLensConfigurationInput) String() string {
8918	return awsutil.Prettify(s)
8919}
8920
8921// GoString returns the string representation
8922func (s GetStorageLensConfigurationInput) GoString() string {
8923	return s.String()
8924}
8925
8926// Validate inspects the fields of the type to determine if they are valid.
8927func (s *GetStorageLensConfigurationInput) Validate() error {
8928	invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationInput"}
8929	if s.AccountId == nil {
8930		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8931	}
8932	if s.AccountId != nil && len(*s.AccountId) < 1 {
8933		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8934	}
8935	if s.ConfigId == nil {
8936		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
8937	}
8938	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
8939		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
8940	}
8941
8942	if invalidParams.Len() > 0 {
8943		return invalidParams
8944	}
8945	return nil
8946}
8947
8948// SetAccountId sets the AccountId field's value.
8949func (s *GetStorageLensConfigurationInput) SetAccountId(v string) *GetStorageLensConfigurationInput {
8950	s.AccountId = &v
8951	return s
8952}
8953
8954// SetConfigId sets the ConfigId field's value.
8955func (s *GetStorageLensConfigurationInput) SetConfigId(v string) *GetStorageLensConfigurationInput {
8956	s.ConfigId = &v
8957	return s
8958}
8959
8960func (s *GetStorageLensConfigurationInput) hostLabels() map[string]string {
8961	return map[string]string{
8962		"AccountId": aws.StringValue(s.AccountId),
8963	}
8964}
8965
8966type GetStorageLensConfigurationOutput struct {
8967	_ struct{} `type:"structure" payload:"StorageLensConfiguration"`
8968
8969	// The S3 Storage Lens configuration requested.
8970	StorageLensConfiguration *StorageLensConfiguration `type:"structure"`
8971}
8972
8973// String returns the string representation
8974func (s GetStorageLensConfigurationOutput) String() string {
8975	return awsutil.Prettify(s)
8976}
8977
8978// GoString returns the string representation
8979func (s GetStorageLensConfigurationOutput) GoString() string {
8980	return s.String()
8981}
8982
8983// SetStorageLensConfiguration sets the StorageLensConfiguration field's value.
8984func (s *GetStorageLensConfigurationOutput) SetStorageLensConfiguration(v *StorageLensConfiguration) *GetStorageLensConfigurationOutput {
8985	s.StorageLensConfiguration = v
8986	return s
8987}
8988
8989type GetStorageLensConfigurationTaggingInput struct {
8990	_ struct{} `locationName:"GetStorageLensConfigurationTaggingRequest" type:"structure"`
8991
8992	// The account ID of the requester.
8993	//
8994	// AccountId is a required field
8995	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8996
8997	// The ID of the Amazon S3 Storage Lens configuration.
8998	//
8999	// ConfigId is a required field
9000	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
9001}
9002
9003// String returns the string representation
9004func (s GetStorageLensConfigurationTaggingInput) String() string {
9005	return awsutil.Prettify(s)
9006}
9007
9008// GoString returns the string representation
9009func (s GetStorageLensConfigurationTaggingInput) GoString() string {
9010	return s.String()
9011}
9012
9013// Validate inspects the fields of the type to determine if they are valid.
9014func (s *GetStorageLensConfigurationTaggingInput) Validate() error {
9015	invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationTaggingInput"}
9016	if s.AccountId == nil {
9017		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9018	}
9019	if s.AccountId != nil && len(*s.AccountId) < 1 {
9020		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9021	}
9022	if s.ConfigId == nil {
9023		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
9024	}
9025	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
9026		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
9027	}
9028
9029	if invalidParams.Len() > 0 {
9030		return invalidParams
9031	}
9032	return nil
9033}
9034
9035// SetAccountId sets the AccountId field's value.
9036func (s *GetStorageLensConfigurationTaggingInput) SetAccountId(v string) *GetStorageLensConfigurationTaggingInput {
9037	s.AccountId = &v
9038	return s
9039}
9040
9041// SetConfigId sets the ConfigId field's value.
9042func (s *GetStorageLensConfigurationTaggingInput) SetConfigId(v string) *GetStorageLensConfigurationTaggingInput {
9043	s.ConfigId = &v
9044	return s
9045}
9046
9047func (s *GetStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
9048	return map[string]string{
9049		"AccountId": aws.StringValue(s.AccountId),
9050	}
9051}
9052
9053type GetStorageLensConfigurationTaggingOutput struct {
9054	_ struct{} `type:"structure"`
9055
9056	// The tags of S3 Storage Lens configuration requested.
9057	Tags []*StorageLensTag `locationNameList:"Tag" type:"list"`
9058}
9059
9060// String returns the string representation
9061func (s GetStorageLensConfigurationTaggingOutput) String() string {
9062	return awsutil.Prettify(s)
9063}
9064
9065// GoString returns the string representation
9066func (s GetStorageLensConfigurationTaggingOutput) GoString() string {
9067	return s.String()
9068}
9069
9070// SetTags sets the Tags field's value.
9071func (s *GetStorageLensConfigurationTaggingOutput) SetTags(v []*StorageLensTag) *GetStorageLensConfigurationTaggingOutput {
9072	s.Tags = v
9073	return s
9074}
9075
9076// A container for what Amazon S3 Storage Lens configuration includes.
9077type Include struct {
9078	_ struct{} `type:"structure"`
9079
9080	// A container for the S3 Storage Lens bucket includes.
9081	Buckets []*string `locationNameList:"Arn" type:"list"`
9082
9083	// A container for the S3 Storage Lens Region includes.
9084	Regions []*string `locationNameList:"Region" type:"list"`
9085}
9086
9087// String returns the string representation
9088func (s Include) String() string {
9089	return awsutil.Prettify(s)
9090}
9091
9092// GoString returns the string representation
9093func (s Include) GoString() string {
9094	return s.String()
9095}
9096
9097// SetBuckets sets the Buckets field's value.
9098func (s *Include) SetBuckets(v []*string) *Include {
9099	s.Buckets = v
9100	return s
9101}
9102
9103// SetRegions sets the Regions field's value.
9104func (s *Include) SetRegions(v []*string) *Include {
9105	s.Regions = v
9106	return s
9107}
9108
9109// A container element for the job configuration and status information returned
9110// by a Describe Job request.
9111type JobDescriptor struct {
9112	_ struct{} `type:"structure"`
9113
9114	// Indicates whether confirmation is required before Amazon S3 begins running
9115	// the specified job. Confirmation is required only for jobs created through
9116	// the Amazon S3 console.
9117	ConfirmationRequired *bool `type:"boolean"`
9118
9119	// A timestamp indicating when this job was created.
9120	CreationTime *time.Time `type:"timestamp"`
9121
9122	// The description for this job, if one was provided in this job's Create Job
9123	// request.
9124	Description *string `min:"1" type:"string"`
9125
9126	// If the specified job failed, this field contains information describing the
9127	// failure.
9128	FailureReasons []*JobFailure `type:"list"`
9129
9130	// The Amazon Resource Name (ARN) for this job.
9131	JobArn *string `min:"1" type:"string"`
9132
9133	// The ID for the specified job.
9134	JobId *string `min:"5" type:"string"`
9135
9136	// The configuration information for the specified job's manifest object.
9137	Manifest *JobManifest `type:"structure"`
9138
9139	// The operation that the specified job is configured to run on the objects
9140	// listed in the manifest.
9141	Operation *JobOperation `type:"structure"`
9142
9143	// The priority of the specified job.
9144	Priority *int64 `type:"integer"`
9145
9146	// Describes the total number of tasks that the specified job has run, the number
9147	// of tasks that succeeded, and the number of tasks that failed.
9148	ProgressSummary *JobProgressSummary `type:"structure"`
9149
9150	// Contains the configuration information for the job-completion report if you
9151	// requested one in the Create Job request.
9152	Report *JobReport `type:"structure"`
9153
9154	// The Amazon Resource Name (ARN) for the AWS Identity and Access Management
9155	// (IAM) role assigned to run the tasks for this job.
9156	RoleArn *string `min:"1" type:"string"`
9157
9158	// The current status of the specified job.
9159	Status *string `type:"string" enum:"JobStatus"`
9160
9161	// The reason for updating the job.
9162	StatusUpdateReason *string `min:"1" type:"string"`
9163
9164	// The reason why the specified job was suspended. A job is only suspended if
9165	// you create it through the Amazon S3 console. When you create the job, it
9166	// enters the Suspended state to await confirmation before running. After you
9167	// confirm the job, it automatically exits the Suspended state.
9168	SuspendedCause *string `min:"1" type:"string"`
9169
9170	// The timestamp when this job was suspended, if it has been suspended.
9171	SuspendedDate *time.Time `type:"timestamp"`
9172
9173	// A timestamp indicating when this job terminated. A job's termination date
9174	// is the date and time when it succeeded, failed, or was canceled.
9175	TerminationDate *time.Time `type:"timestamp"`
9176}
9177
9178// String returns the string representation
9179func (s JobDescriptor) String() string {
9180	return awsutil.Prettify(s)
9181}
9182
9183// GoString returns the string representation
9184func (s JobDescriptor) GoString() string {
9185	return s.String()
9186}
9187
9188// SetConfirmationRequired sets the ConfirmationRequired field's value.
9189func (s *JobDescriptor) SetConfirmationRequired(v bool) *JobDescriptor {
9190	s.ConfirmationRequired = &v
9191	return s
9192}
9193
9194// SetCreationTime sets the CreationTime field's value.
9195func (s *JobDescriptor) SetCreationTime(v time.Time) *JobDescriptor {
9196	s.CreationTime = &v
9197	return s
9198}
9199
9200// SetDescription sets the Description field's value.
9201func (s *JobDescriptor) SetDescription(v string) *JobDescriptor {
9202	s.Description = &v
9203	return s
9204}
9205
9206// SetFailureReasons sets the FailureReasons field's value.
9207func (s *JobDescriptor) SetFailureReasons(v []*JobFailure) *JobDescriptor {
9208	s.FailureReasons = v
9209	return s
9210}
9211
9212// SetJobArn sets the JobArn field's value.
9213func (s *JobDescriptor) SetJobArn(v string) *JobDescriptor {
9214	s.JobArn = &v
9215	return s
9216}
9217
9218// SetJobId sets the JobId field's value.
9219func (s *JobDescriptor) SetJobId(v string) *JobDescriptor {
9220	s.JobId = &v
9221	return s
9222}
9223
9224// SetManifest sets the Manifest field's value.
9225func (s *JobDescriptor) SetManifest(v *JobManifest) *JobDescriptor {
9226	s.Manifest = v
9227	return s
9228}
9229
9230// SetOperation sets the Operation field's value.
9231func (s *JobDescriptor) SetOperation(v *JobOperation) *JobDescriptor {
9232	s.Operation = v
9233	return s
9234}
9235
9236// SetPriority sets the Priority field's value.
9237func (s *JobDescriptor) SetPriority(v int64) *JobDescriptor {
9238	s.Priority = &v
9239	return s
9240}
9241
9242// SetProgressSummary sets the ProgressSummary field's value.
9243func (s *JobDescriptor) SetProgressSummary(v *JobProgressSummary) *JobDescriptor {
9244	s.ProgressSummary = v
9245	return s
9246}
9247
9248// SetReport sets the Report field's value.
9249func (s *JobDescriptor) SetReport(v *JobReport) *JobDescriptor {
9250	s.Report = v
9251	return s
9252}
9253
9254// SetRoleArn sets the RoleArn field's value.
9255func (s *JobDescriptor) SetRoleArn(v string) *JobDescriptor {
9256	s.RoleArn = &v
9257	return s
9258}
9259
9260// SetStatus sets the Status field's value.
9261func (s *JobDescriptor) SetStatus(v string) *JobDescriptor {
9262	s.Status = &v
9263	return s
9264}
9265
9266// SetStatusUpdateReason sets the StatusUpdateReason field's value.
9267func (s *JobDescriptor) SetStatusUpdateReason(v string) *JobDescriptor {
9268	s.StatusUpdateReason = &v
9269	return s
9270}
9271
9272// SetSuspendedCause sets the SuspendedCause field's value.
9273func (s *JobDescriptor) SetSuspendedCause(v string) *JobDescriptor {
9274	s.SuspendedCause = &v
9275	return s
9276}
9277
9278// SetSuspendedDate sets the SuspendedDate field's value.
9279func (s *JobDescriptor) SetSuspendedDate(v time.Time) *JobDescriptor {
9280	s.SuspendedDate = &v
9281	return s
9282}
9283
9284// SetTerminationDate sets the TerminationDate field's value.
9285func (s *JobDescriptor) SetTerminationDate(v time.Time) *JobDescriptor {
9286	s.TerminationDate = &v
9287	return s
9288}
9289
9290// If this job failed, this element indicates why the job failed.
9291type JobFailure struct {
9292	_ struct{} `type:"structure"`
9293
9294	// The failure code, if any, for the specified job.
9295	FailureCode *string `min:"1" type:"string"`
9296
9297	// The failure reason, if any, for the specified job.
9298	FailureReason *string `min:"1" type:"string"`
9299}
9300
9301// String returns the string representation
9302func (s JobFailure) String() string {
9303	return awsutil.Prettify(s)
9304}
9305
9306// GoString returns the string representation
9307func (s JobFailure) GoString() string {
9308	return s.String()
9309}
9310
9311// SetFailureCode sets the FailureCode field's value.
9312func (s *JobFailure) SetFailureCode(v string) *JobFailure {
9313	s.FailureCode = &v
9314	return s
9315}
9316
9317// SetFailureReason sets the FailureReason field's value.
9318func (s *JobFailure) SetFailureReason(v string) *JobFailure {
9319	s.FailureReason = &v
9320	return s
9321}
9322
9323// Contains the configuration and status information for a single job retrieved
9324// as part of a job list.
9325type JobListDescriptor struct {
9326	_ struct{} `type:"structure"`
9327
9328	// A timestamp indicating when the specified job was created.
9329	CreationTime *time.Time `type:"timestamp"`
9330
9331	// The user-specified description that was included in the specified job's Create
9332	// Job request.
9333	Description *string `min:"1" type:"string"`
9334
9335	// The ID for the specified job.
9336	JobId *string `min:"5" type:"string"`
9337
9338	// The operation that the specified job is configured to run on every object
9339	// listed in the manifest.
9340	Operation *string `type:"string" enum:"OperationName"`
9341
9342	// The current priority for the specified job.
9343	Priority *int64 `type:"integer"`
9344
9345	// Describes the total number of tasks that the specified job has run, the number
9346	// of tasks that succeeded, and the number of tasks that failed.
9347	ProgressSummary *JobProgressSummary `type:"structure"`
9348
9349	// The specified job's current status.
9350	Status *string `type:"string" enum:"JobStatus"`
9351
9352	// A timestamp indicating when the specified job terminated. A job's termination
9353	// date is the date and time when it succeeded, failed, or was canceled.
9354	TerminationDate *time.Time `type:"timestamp"`
9355}
9356
9357// String returns the string representation
9358func (s JobListDescriptor) String() string {
9359	return awsutil.Prettify(s)
9360}
9361
9362// GoString returns the string representation
9363func (s JobListDescriptor) GoString() string {
9364	return s.String()
9365}
9366
9367// SetCreationTime sets the CreationTime field's value.
9368func (s *JobListDescriptor) SetCreationTime(v time.Time) *JobListDescriptor {
9369	s.CreationTime = &v
9370	return s
9371}
9372
9373// SetDescription sets the Description field's value.
9374func (s *JobListDescriptor) SetDescription(v string) *JobListDescriptor {
9375	s.Description = &v
9376	return s
9377}
9378
9379// SetJobId sets the JobId field's value.
9380func (s *JobListDescriptor) SetJobId(v string) *JobListDescriptor {
9381	s.JobId = &v
9382	return s
9383}
9384
9385// SetOperation sets the Operation field's value.
9386func (s *JobListDescriptor) SetOperation(v string) *JobListDescriptor {
9387	s.Operation = &v
9388	return s
9389}
9390
9391// SetPriority sets the Priority field's value.
9392func (s *JobListDescriptor) SetPriority(v int64) *JobListDescriptor {
9393	s.Priority = &v
9394	return s
9395}
9396
9397// SetProgressSummary sets the ProgressSummary field's value.
9398func (s *JobListDescriptor) SetProgressSummary(v *JobProgressSummary) *JobListDescriptor {
9399	s.ProgressSummary = v
9400	return s
9401}
9402
9403// SetStatus sets the Status field's value.
9404func (s *JobListDescriptor) SetStatus(v string) *JobListDescriptor {
9405	s.Status = &v
9406	return s
9407}
9408
9409// SetTerminationDate sets the TerminationDate field's value.
9410func (s *JobListDescriptor) SetTerminationDate(v time.Time) *JobListDescriptor {
9411	s.TerminationDate = &v
9412	return s
9413}
9414
9415// Contains the configuration information for a job's manifest.
9416type JobManifest struct {
9417	_ struct{} `type:"structure"`
9418
9419	// Contains the information required to locate the specified job's manifest.
9420	//
9421	// Location is a required field
9422	Location *JobManifestLocation `type:"structure" required:"true"`
9423
9424	// Describes the format of the specified job's manifest. If the manifest is
9425	// in CSV format, also describes the columns contained within the manifest.
9426	//
9427	// Spec is a required field
9428	Spec *JobManifestSpec `type:"structure" required:"true"`
9429}
9430
9431// String returns the string representation
9432func (s JobManifest) String() string {
9433	return awsutil.Prettify(s)
9434}
9435
9436// GoString returns the string representation
9437func (s JobManifest) GoString() string {
9438	return s.String()
9439}
9440
9441// Validate inspects the fields of the type to determine if they are valid.
9442func (s *JobManifest) Validate() error {
9443	invalidParams := request.ErrInvalidParams{Context: "JobManifest"}
9444	if s.Location == nil {
9445		invalidParams.Add(request.NewErrParamRequired("Location"))
9446	}
9447	if s.Spec == nil {
9448		invalidParams.Add(request.NewErrParamRequired("Spec"))
9449	}
9450	if s.Location != nil {
9451		if err := s.Location.Validate(); err != nil {
9452			invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
9453		}
9454	}
9455	if s.Spec != nil {
9456		if err := s.Spec.Validate(); err != nil {
9457			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
9458		}
9459	}
9460
9461	if invalidParams.Len() > 0 {
9462		return invalidParams
9463	}
9464	return nil
9465}
9466
9467// SetLocation sets the Location field's value.
9468func (s *JobManifest) SetLocation(v *JobManifestLocation) *JobManifest {
9469	s.Location = v
9470	return s
9471}
9472
9473// SetSpec sets the Spec field's value.
9474func (s *JobManifest) SetSpec(v *JobManifestSpec) *JobManifest {
9475	s.Spec = v
9476	return s
9477}
9478
9479// Contains the information required to locate a manifest object.
9480type JobManifestLocation struct {
9481	_ struct{} `type:"structure"`
9482
9483	// The ETag for the specified manifest object.
9484	//
9485	// ETag is a required field
9486	ETag *string `min:"1" type:"string" required:"true"`
9487
9488	// The Amazon Resource Name (ARN) for a manifest object.
9489	//
9490	// Replacement must be made for object keys containing special characters (such
9491	// as carriage returns) when using XML requests. For more information, see XML
9492	// related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
9493	//
9494	// ObjectArn is a required field
9495	ObjectArn *string `min:"1" type:"string" required:"true"`
9496
9497	// The optional version ID to identify a specific version of the manifest object.
9498	ObjectVersionId *string `min:"1" type:"string"`
9499}
9500
9501// String returns the string representation
9502func (s JobManifestLocation) String() string {
9503	return awsutil.Prettify(s)
9504}
9505
9506// GoString returns the string representation
9507func (s JobManifestLocation) GoString() string {
9508	return s.String()
9509}
9510
9511// Validate inspects the fields of the type to determine if they are valid.
9512func (s *JobManifestLocation) Validate() error {
9513	invalidParams := request.ErrInvalidParams{Context: "JobManifestLocation"}
9514	if s.ETag == nil {
9515		invalidParams.Add(request.NewErrParamRequired("ETag"))
9516	}
9517	if s.ETag != nil && len(*s.ETag) < 1 {
9518		invalidParams.Add(request.NewErrParamMinLen("ETag", 1))
9519	}
9520	if s.ObjectArn == nil {
9521		invalidParams.Add(request.NewErrParamRequired("ObjectArn"))
9522	}
9523	if s.ObjectArn != nil && len(*s.ObjectArn) < 1 {
9524		invalidParams.Add(request.NewErrParamMinLen("ObjectArn", 1))
9525	}
9526	if s.ObjectVersionId != nil && len(*s.ObjectVersionId) < 1 {
9527		invalidParams.Add(request.NewErrParamMinLen("ObjectVersionId", 1))
9528	}
9529
9530	if invalidParams.Len() > 0 {
9531		return invalidParams
9532	}
9533	return nil
9534}
9535
9536// SetETag sets the ETag field's value.
9537func (s *JobManifestLocation) SetETag(v string) *JobManifestLocation {
9538	s.ETag = &v
9539	return s
9540}
9541
9542// SetObjectArn sets the ObjectArn field's value.
9543func (s *JobManifestLocation) SetObjectArn(v string) *JobManifestLocation {
9544	s.ObjectArn = &v
9545	return s
9546}
9547
9548// SetObjectVersionId sets the ObjectVersionId field's value.
9549func (s *JobManifestLocation) SetObjectVersionId(v string) *JobManifestLocation {
9550	s.ObjectVersionId = &v
9551	return s
9552}
9553
9554// Describes the format of a manifest. If the manifest is in CSV format, also
9555// describes the columns contained within the manifest.
9556type JobManifestSpec struct {
9557	_ struct{} `type:"structure"`
9558
9559	// If the specified manifest object is in the S3BatchOperations_CSV_20180820
9560	// format, this element describes which columns contain the required data.
9561	Fields []*string `type:"list"`
9562
9563	// Indicates which of the available formats the specified manifest uses.
9564	//
9565	// Format is a required field
9566	Format *string `type:"string" required:"true" enum:"JobManifestFormat"`
9567}
9568
9569// String returns the string representation
9570func (s JobManifestSpec) String() string {
9571	return awsutil.Prettify(s)
9572}
9573
9574// GoString returns the string representation
9575func (s JobManifestSpec) GoString() string {
9576	return s.String()
9577}
9578
9579// Validate inspects the fields of the type to determine if they are valid.
9580func (s *JobManifestSpec) Validate() error {
9581	invalidParams := request.ErrInvalidParams{Context: "JobManifestSpec"}
9582	if s.Format == nil {
9583		invalidParams.Add(request.NewErrParamRequired("Format"))
9584	}
9585
9586	if invalidParams.Len() > 0 {
9587		return invalidParams
9588	}
9589	return nil
9590}
9591
9592// SetFields sets the Fields field's value.
9593func (s *JobManifestSpec) SetFields(v []*string) *JobManifestSpec {
9594	s.Fields = v
9595	return s
9596}
9597
9598// SetFormat sets the Format field's value.
9599func (s *JobManifestSpec) SetFormat(v string) *JobManifestSpec {
9600	s.Format = &v
9601	return s
9602}
9603
9604// The operation that you want this job to perform on every object listed in
9605// the manifest. For more information about the available operations, see Operations
9606// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html)
9607// in the Amazon Simple Storage Service User Guide.
9608type JobOperation struct {
9609	_ struct{} `type:"structure"`
9610
9611	// Directs the specified job to invoke an AWS Lambda function on every object
9612	// in the manifest.
9613	LambdaInvoke *LambdaInvokeOperation `type:"structure"`
9614
9615	// Directs the specified job to execute a DELETE Object tagging call on every
9616	// object in the manifest.
9617	S3DeleteObjectTagging *S3DeleteObjectTaggingOperation `type:"structure"`
9618
9619	// Directs the specified job to initiate restore requests for every archived
9620	// object in the manifest.
9621	S3InitiateRestoreObject *S3InitiateRestoreObjectOperation `type:"structure"`
9622
9623	// Directs the specified job to run a PUT Object acl call on every object in
9624	// the manifest.
9625	S3PutObjectAcl *S3SetObjectAclOperation `type:"structure"`
9626
9627	// Directs the specified job to run a PUT Copy object call on every object in
9628	// the manifest.
9629	S3PutObjectCopy *S3CopyObjectOperation `type:"structure"`
9630
9631	// Contains the configuration for an S3 Object Lock legal hold operation that
9632	// an S3 Batch Operations job passes every object to the underlying PutObjectLegalHold
9633	// API. For more information, see Using S3 Object Lock legal hold with S3 Batch
9634	// Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html)
9635	// in the Amazon Simple Storage Service User Guide.
9636	S3PutObjectLegalHold *S3SetObjectLegalHoldOperation `type:"structure"`
9637
9638	// Contains the configuration parameters for the Object Lock retention action
9639	// for an S3 Batch Operations job. Batch Operations passes every object to the
9640	// underlying PutObjectRetention API. For more information, see Using S3 Object
9641	// Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
9642	// in the Amazon Simple Storage Service User Guide.
9643	S3PutObjectRetention *S3SetObjectRetentionOperation `type:"structure"`
9644
9645	// Directs the specified job to run a PUT Object tagging call on every object
9646	// in the manifest.
9647	S3PutObjectTagging *S3SetObjectTaggingOperation `type:"structure"`
9648}
9649
9650// String returns the string representation
9651func (s JobOperation) String() string {
9652	return awsutil.Prettify(s)
9653}
9654
9655// GoString returns the string representation
9656func (s JobOperation) GoString() string {
9657	return s.String()
9658}
9659
9660// Validate inspects the fields of the type to determine if they are valid.
9661func (s *JobOperation) Validate() error {
9662	invalidParams := request.ErrInvalidParams{Context: "JobOperation"}
9663	if s.LambdaInvoke != nil {
9664		if err := s.LambdaInvoke.Validate(); err != nil {
9665			invalidParams.AddNested("LambdaInvoke", err.(request.ErrInvalidParams))
9666		}
9667	}
9668	if s.S3PutObjectAcl != nil {
9669		if err := s.S3PutObjectAcl.Validate(); err != nil {
9670			invalidParams.AddNested("S3PutObjectAcl", err.(request.ErrInvalidParams))
9671		}
9672	}
9673	if s.S3PutObjectCopy != nil {
9674		if err := s.S3PutObjectCopy.Validate(); err != nil {
9675			invalidParams.AddNested("S3PutObjectCopy", err.(request.ErrInvalidParams))
9676		}
9677	}
9678	if s.S3PutObjectLegalHold != nil {
9679		if err := s.S3PutObjectLegalHold.Validate(); err != nil {
9680			invalidParams.AddNested("S3PutObjectLegalHold", err.(request.ErrInvalidParams))
9681		}
9682	}
9683	if s.S3PutObjectRetention != nil {
9684		if err := s.S3PutObjectRetention.Validate(); err != nil {
9685			invalidParams.AddNested("S3PutObjectRetention", err.(request.ErrInvalidParams))
9686		}
9687	}
9688	if s.S3PutObjectTagging != nil {
9689		if err := s.S3PutObjectTagging.Validate(); err != nil {
9690			invalidParams.AddNested("S3PutObjectTagging", err.(request.ErrInvalidParams))
9691		}
9692	}
9693
9694	if invalidParams.Len() > 0 {
9695		return invalidParams
9696	}
9697	return nil
9698}
9699
9700// SetLambdaInvoke sets the LambdaInvoke field's value.
9701func (s *JobOperation) SetLambdaInvoke(v *LambdaInvokeOperation) *JobOperation {
9702	s.LambdaInvoke = v
9703	return s
9704}
9705
9706// SetS3DeleteObjectTagging sets the S3DeleteObjectTagging field's value.
9707func (s *JobOperation) SetS3DeleteObjectTagging(v *S3DeleteObjectTaggingOperation) *JobOperation {
9708	s.S3DeleteObjectTagging = v
9709	return s
9710}
9711
9712// SetS3InitiateRestoreObject sets the S3InitiateRestoreObject field's value.
9713func (s *JobOperation) SetS3InitiateRestoreObject(v *S3InitiateRestoreObjectOperation) *JobOperation {
9714	s.S3InitiateRestoreObject = v
9715	return s
9716}
9717
9718// SetS3PutObjectAcl sets the S3PutObjectAcl field's value.
9719func (s *JobOperation) SetS3PutObjectAcl(v *S3SetObjectAclOperation) *JobOperation {
9720	s.S3PutObjectAcl = v
9721	return s
9722}
9723
9724// SetS3PutObjectCopy sets the S3PutObjectCopy field's value.
9725func (s *JobOperation) SetS3PutObjectCopy(v *S3CopyObjectOperation) *JobOperation {
9726	s.S3PutObjectCopy = v
9727	return s
9728}
9729
9730// SetS3PutObjectLegalHold sets the S3PutObjectLegalHold field's value.
9731func (s *JobOperation) SetS3PutObjectLegalHold(v *S3SetObjectLegalHoldOperation) *JobOperation {
9732	s.S3PutObjectLegalHold = v
9733	return s
9734}
9735
9736// SetS3PutObjectRetention sets the S3PutObjectRetention field's value.
9737func (s *JobOperation) SetS3PutObjectRetention(v *S3SetObjectRetentionOperation) *JobOperation {
9738	s.S3PutObjectRetention = v
9739	return s
9740}
9741
9742// SetS3PutObjectTagging sets the S3PutObjectTagging field's value.
9743func (s *JobOperation) SetS3PutObjectTagging(v *S3SetObjectTaggingOperation) *JobOperation {
9744	s.S3PutObjectTagging = v
9745	return s
9746}
9747
9748// Describes the total number of tasks that the specified job has started, the
9749// number of tasks that succeeded, and the number of tasks that failed.
9750type JobProgressSummary struct {
9751	_ struct{} `type:"structure"`
9752
9753	NumberOfTasksFailed *int64 `type:"long"`
9754
9755	NumberOfTasksSucceeded *int64 `type:"long"`
9756
9757	TotalNumberOfTasks *int64 `type:"long"`
9758}
9759
9760// String returns the string representation
9761func (s JobProgressSummary) String() string {
9762	return awsutil.Prettify(s)
9763}
9764
9765// GoString returns the string representation
9766func (s JobProgressSummary) GoString() string {
9767	return s.String()
9768}
9769
9770// SetNumberOfTasksFailed sets the NumberOfTasksFailed field's value.
9771func (s *JobProgressSummary) SetNumberOfTasksFailed(v int64) *JobProgressSummary {
9772	s.NumberOfTasksFailed = &v
9773	return s
9774}
9775
9776// SetNumberOfTasksSucceeded sets the NumberOfTasksSucceeded field's value.
9777func (s *JobProgressSummary) SetNumberOfTasksSucceeded(v int64) *JobProgressSummary {
9778	s.NumberOfTasksSucceeded = &v
9779	return s
9780}
9781
9782// SetTotalNumberOfTasks sets the TotalNumberOfTasks field's value.
9783func (s *JobProgressSummary) SetTotalNumberOfTasks(v int64) *JobProgressSummary {
9784	s.TotalNumberOfTasks = &v
9785	return s
9786}
9787
9788// Contains the configuration parameters for a job-completion report.
9789type JobReport struct {
9790	_ struct{} `type:"structure"`
9791
9792	// The Amazon Resource Name (ARN) for the bucket where specified job-completion
9793	// report will be stored.
9794	Bucket *string `min:"1" type:"string"`
9795
9796	// Indicates whether the specified job will generate a job-completion report.
9797	//
9798	// Enabled is a required field
9799	Enabled *bool `type:"boolean" required:"true"`
9800
9801	// The format of the specified job-completion report.
9802	Format *string `type:"string" enum:"JobReportFormat"`
9803
9804	// An optional prefix to describe where in the specified bucket the job-completion
9805	// report will be stored. Amazon S3 stores the job-completion report at <prefix>/job-<job-id>/report.json.
9806	Prefix *string `min:"1" type:"string"`
9807
9808	// Indicates whether the job-completion report will include details of all tasks
9809	// or only failed tasks.
9810	ReportScope *string `type:"string" enum:"JobReportScope"`
9811}
9812
9813// String returns the string representation
9814func (s JobReport) String() string {
9815	return awsutil.Prettify(s)
9816}
9817
9818// GoString returns the string representation
9819func (s JobReport) GoString() string {
9820	return s.String()
9821}
9822
9823// Validate inspects the fields of the type to determine if they are valid.
9824func (s *JobReport) Validate() error {
9825	invalidParams := request.ErrInvalidParams{Context: "JobReport"}
9826	if s.Bucket != nil && len(*s.Bucket) < 1 {
9827		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
9828	}
9829	if s.Enabled == nil {
9830		invalidParams.Add(request.NewErrParamRequired("Enabled"))
9831	}
9832	if s.Prefix != nil && len(*s.Prefix) < 1 {
9833		invalidParams.Add(request.NewErrParamMinLen("Prefix", 1))
9834	}
9835
9836	if invalidParams.Len() > 0 {
9837		return invalidParams
9838	}
9839	return nil
9840}
9841
9842// SetBucket sets the Bucket field's value.
9843func (s *JobReport) SetBucket(v string) *JobReport {
9844	s.Bucket = &v
9845	return s
9846}
9847
9848// SetEnabled sets the Enabled field's value.
9849func (s *JobReport) SetEnabled(v bool) *JobReport {
9850	s.Enabled = &v
9851	return s
9852}
9853
9854// SetFormat sets the Format field's value.
9855func (s *JobReport) SetFormat(v string) *JobReport {
9856	s.Format = &v
9857	return s
9858}
9859
9860// SetPrefix sets the Prefix field's value.
9861func (s *JobReport) SetPrefix(v string) *JobReport {
9862	s.Prefix = &v
9863	return s
9864}
9865
9866// SetReportScope sets the ReportScope field's value.
9867func (s *JobReport) SetReportScope(v string) *JobReport {
9868	s.ReportScope = &v
9869	return s
9870}
9871
9872// Contains the configuration parameters for a Lambda Invoke operation.
9873type LambdaInvokeOperation struct {
9874	_ struct{} `type:"structure"`
9875
9876	// The Amazon Resource Name (ARN) for the AWS Lambda function that the specified
9877	// job will invoke on every object in the manifest.
9878	FunctionArn *string `min:"1" type:"string"`
9879}
9880
9881// String returns the string representation
9882func (s LambdaInvokeOperation) String() string {
9883	return awsutil.Prettify(s)
9884}
9885
9886// GoString returns the string representation
9887func (s LambdaInvokeOperation) GoString() string {
9888	return s.String()
9889}
9890
9891// Validate inspects the fields of the type to determine if they are valid.
9892func (s *LambdaInvokeOperation) Validate() error {
9893	invalidParams := request.ErrInvalidParams{Context: "LambdaInvokeOperation"}
9894	if s.FunctionArn != nil && len(*s.FunctionArn) < 1 {
9895		invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1))
9896	}
9897
9898	if invalidParams.Len() > 0 {
9899		return invalidParams
9900	}
9901	return nil
9902}
9903
9904// SetFunctionArn sets the FunctionArn field's value.
9905func (s *LambdaInvokeOperation) SetFunctionArn(v string) *LambdaInvokeOperation {
9906	s.FunctionArn = &v
9907	return s
9908}
9909
9910// The container for the Outposts bucket lifecycle configuration.
9911type LifecycleConfiguration struct {
9912	_ struct{} `type:"structure"`
9913
9914	// A lifecycle rule for individual objects in an Outposts bucket.
9915	Rules []*LifecycleRule `locationNameList:"Rule" type:"list"`
9916}
9917
9918// String returns the string representation
9919func (s LifecycleConfiguration) String() string {
9920	return awsutil.Prettify(s)
9921}
9922
9923// GoString returns the string representation
9924func (s LifecycleConfiguration) GoString() string {
9925	return s.String()
9926}
9927
9928// Validate inspects the fields of the type to determine if they are valid.
9929func (s *LifecycleConfiguration) Validate() error {
9930	invalidParams := request.ErrInvalidParams{Context: "LifecycleConfiguration"}
9931	if s.Rules != nil {
9932		for i, v := range s.Rules {
9933			if v == nil {
9934				continue
9935			}
9936			if err := v.Validate(); err != nil {
9937				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
9938			}
9939		}
9940	}
9941
9942	if invalidParams.Len() > 0 {
9943		return invalidParams
9944	}
9945	return nil
9946}
9947
9948// SetRules sets the Rules field's value.
9949func (s *LifecycleConfiguration) SetRules(v []*LifecycleRule) *LifecycleConfiguration {
9950	s.Rules = v
9951	return s
9952}
9953
9954// The container of the Outposts bucket lifecycle expiration.
9955type LifecycleExpiration struct {
9956	_ struct{} `type:"structure"`
9957
9958	// Indicates at what date the object is to be deleted. Should be in GMT ISO
9959	// 8601 format.
9960	Date *time.Time `type:"timestamp"`
9961
9962	// Indicates the lifetime, in days, of the objects that are subject to the rule.
9963	// The value must be a non-zero positive integer.
9964	Days *int64 `type:"integer"`
9965
9966	// Indicates whether Amazon S3 will remove a delete marker with no noncurrent
9967	// versions. If set to true, the delete marker will be expired. If set to false,
9968	// the policy takes no action. This cannot be specified with Days or Date in
9969	// a Lifecycle Expiration Policy.
9970	ExpiredObjectDeleteMarker *bool `type:"boolean"`
9971}
9972
9973// String returns the string representation
9974func (s LifecycleExpiration) String() string {
9975	return awsutil.Prettify(s)
9976}
9977
9978// GoString returns the string representation
9979func (s LifecycleExpiration) GoString() string {
9980	return s.String()
9981}
9982
9983// SetDate sets the Date field's value.
9984func (s *LifecycleExpiration) SetDate(v time.Time) *LifecycleExpiration {
9985	s.Date = &v
9986	return s
9987}
9988
9989// SetDays sets the Days field's value.
9990func (s *LifecycleExpiration) SetDays(v int64) *LifecycleExpiration {
9991	s.Days = &v
9992	return s
9993}
9994
9995// SetExpiredObjectDeleteMarker sets the ExpiredObjectDeleteMarker field's value.
9996func (s *LifecycleExpiration) SetExpiredObjectDeleteMarker(v bool) *LifecycleExpiration {
9997	s.ExpiredObjectDeleteMarker = &v
9998	return s
9999}
10000
10001// The container for the Outposts bucket lifecycle rule.
10002type LifecycleRule struct {
10003	_ struct{} `type:"structure"`
10004
10005	// Specifies the days since the initiation of an incomplete multipart upload
10006	// that Amazon S3 waits before permanently removing all parts of the upload.
10007	// For more information, see Aborting Incomplete Multipart Uploads Using a Bucket
10008	// Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
10009	// in the Amazon Simple Storage Service Developer Guide.
10010	AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"`
10011
10012	// Specifies the expiration for the lifecycle of the object in the form of date,
10013	// days and, whether the object has a delete marker.
10014	Expiration *LifecycleExpiration `type:"structure"`
10015
10016	// The container for the filter of lifecycle rule.
10017	Filter *LifecycleRuleFilter `type:"structure"`
10018
10019	// Unique identifier for the rule. The value cannot be longer than 255 characters.
10020	ID *string `type:"string"`
10021
10022	// The noncurrent version expiration of the lifecycle rule.
10023	//
10024	// This is not supported by Amazon S3 on Outposts buckets.
10025	NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"`
10026
10027	// Specifies the transition rule for the lifecycle rule that describes when
10028	// noncurrent objects transition to a specific storage class. If your bucket
10029	// is versioning-enabled (or versioning is suspended), you can set this action
10030	// to request that Amazon S3 transition noncurrent object versions to a specific
10031	// storage class at a set period in the object's lifetime.
10032	//
10033	// This is not supported by Amazon S3 on Outposts buckets.
10034	NoncurrentVersionTransitions []*NoncurrentVersionTransition `locationNameList:"NoncurrentVersionTransition" type:"list"`
10035
10036	// If 'Enabled', the rule is currently being applied. If 'Disabled', the rule
10037	// is not currently being applied.
10038	//
10039	// Status is a required field
10040	Status *string `type:"string" required:"true" enum:"ExpirationStatus"`
10041
10042	// Specifies when an Amazon S3 object transitions to a specified storage class.
10043	//
10044	// This is not supported by Amazon S3 on Outposts buckets.
10045	Transitions []*Transition `locationNameList:"Transition" type:"list"`
10046}
10047
10048// String returns the string representation
10049func (s LifecycleRule) String() string {
10050	return awsutil.Prettify(s)
10051}
10052
10053// GoString returns the string representation
10054func (s LifecycleRule) GoString() string {
10055	return s.String()
10056}
10057
10058// Validate inspects the fields of the type to determine if they are valid.
10059func (s *LifecycleRule) Validate() error {
10060	invalidParams := request.ErrInvalidParams{Context: "LifecycleRule"}
10061	if s.Status == nil {
10062		invalidParams.Add(request.NewErrParamRequired("Status"))
10063	}
10064	if s.Filter != nil {
10065		if err := s.Filter.Validate(); err != nil {
10066			invalidParams.AddNested("Filter", err.(request.ErrInvalidParams))
10067		}
10068	}
10069
10070	if invalidParams.Len() > 0 {
10071		return invalidParams
10072	}
10073	return nil
10074}
10075
10076// SetAbortIncompleteMultipartUpload sets the AbortIncompleteMultipartUpload field's value.
10077func (s *LifecycleRule) SetAbortIncompleteMultipartUpload(v *AbortIncompleteMultipartUpload) *LifecycleRule {
10078	s.AbortIncompleteMultipartUpload = v
10079	return s
10080}
10081
10082// SetExpiration sets the Expiration field's value.
10083func (s *LifecycleRule) SetExpiration(v *LifecycleExpiration) *LifecycleRule {
10084	s.Expiration = v
10085	return s
10086}
10087
10088// SetFilter sets the Filter field's value.
10089func (s *LifecycleRule) SetFilter(v *LifecycleRuleFilter) *LifecycleRule {
10090	s.Filter = v
10091	return s
10092}
10093
10094// SetID sets the ID field's value.
10095func (s *LifecycleRule) SetID(v string) *LifecycleRule {
10096	s.ID = &v
10097	return s
10098}
10099
10100// SetNoncurrentVersionExpiration sets the NoncurrentVersionExpiration field's value.
10101func (s *LifecycleRule) SetNoncurrentVersionExpiration(v *NoncurrentVersionExpiration) *LifecycleRule {
10102	s.NoncurrentVersionExpiration = v
10103	return s
10104}
10105
10106// SetNoncurrentVersionTransitions sets the NoncurrentVersionTransitions field's value.
10107func (s *LifecycleRule) SetNoncurrentVersionTransitions(v []*NoncurrentVersionTransition) *LifecycleRule {
10108	s.NoncurrentVersionTransitions = v
10109	return s
10110}
10111
10112// SetStatus sets the Status field's value.
10113func (s *LifecycleRule) SetStatus(v string) *LifecycleRule {
10114	s.Status = &v
10115	return s
10116}
10117
10118// SetTransitions sets the Transitions field's value.
10119func (s *LifecycleRule) SetTransitions(v []*Transition) *LifecycleRule {
10120	s.Transitions = v
10121	return s
10122}
10123
10124// The container for the Outposts bucket lifecycle rule and operator.
10125type LifecycleRuleAndOperator struct {
10126	_ struct{} `type:"structure"`
10127
10128	// Prefix identifying one or more objects to which the rule applies.
10129	Prefix *string `type:"string"`
10130
10131	// All of these tags must exist in the object's tag set in order for the rule
10132	// to apply.
10133	Tags []*S3Tag `type:"list"`
10134}
10135
10136// String returns the string representation
10137func (s LifecycleRuleAndOperator) String() string {
10138	return awsutil.Prettify(s)
10139}
10140
10141// GoString returns the string representation
10142func (s LifecycleRuleAndOperator) GoString() string {
10143	return s.String()
10144}
10145
10146// Validate inspects the fields of the type to determine if they are valid.
10147func (s *LifecycleRuleAndOperator) Validate() error {
10148	invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleAndOperator"}
10149	if s.Tags != nil {
10150		for i, v := range s.Tags {
10151			if v == nil {
10152				continue
10153			}
10154			if err := v.Validate(); err != nil {
10155				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10156			}
10157		}
10158	}
10159
10160	if invalidParams.Len() > 0 {
10161		return invalidParams
10162	}
10163	return nil
10164}
10165
10166// SetPrefix sets the Prefix field's value.
10167func (s *LifecycleRuleAndOperator) SetPrefix(v string) *LifecycleRuleAndOperator {
10168	s.Prefix = &v
10169	return s
10170}
10171
10172// SetTags sets the Tags field's value.
10173func (s *LifecycleRuleAndOperator) SetTags(v []*S3Tag) *LifecycleRuleAndOperator {
10174	s.Tags = v
10175	return s
10176}
10177
10178// The container for the filter of the lifecycle rule.
10179type LifecycleRuleFilter struct {
10180	_ struct{} `type:"structure"`
10181
10182	// The container for the AND condition for the lifecycle rule.
10183	And *LifecycleRuleAndOperator `type:"structure"`
10184
10185	// Prefix identifying one or more objects to which the rule applies.
10186	//
10187	// Replacement must be made for object keys containing special characters (such
10188	// as carriage returns) when using XML requests. For more information, see XML
10189	// related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
10190	Prefix *string `type:"string"`
10191
10192	Tag *S3Tag `type:"structure"`
10193}
10194
10195// String returns the string representation
10196func (s LifecycleRuleFilter) String() string {
10197	return awsutil.Prettify(s)
10198}
10199
10200// GoString returns the string representation
10201func (s LifecycleRuleFilter) GoString() string {
10202	return s.String()
10203}
10204
10205// Validate inspects the fields of the type to determine if they are valid.
10206func (s *LifecycleRuleFilter) Validate() error {
10207	invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleFilter"}
10208	if s.And != nil {
10209		if err := s.And.Validate(); err != nil {
10210			invalidParams.AddNested("And", err.(request.ErrInvalidParams))
10211		}
10212	}
10213	if s.Tag != nil {
10214		if err := s.Tag.Validate(); err != nil {
10215			invalidParams.AddNested("Tag", err.(request.ErrInvalidParams))
10216		}
10217	}
10218
10219	if invalidParams.Len() > 0 {
10220		return invalidParams
10221	}
10222	return nil
10223}
10224
10225// SetAnd sets the And field's value.
10226func (s *LifecycleRuleFilter) SetAnd(v *LifecycleRuleAndOperator) *LifecycleRuleFilter {
10227	s.And = v
10228	return s
10229}
10230
10231// SetPrefix sets the Prefix field's value.
10232func (s *LifecycleRuleFilter) SetPrefix(v string) *LifecycleRuleFilter {
10233	s.Prefix = &v
10234	return s
10235}
10236
10237// SetTag sets the Tag field's value.
10238func (s *LifecycleRuleFilter) SetTag(v *S3Tag) *LifecycleRuleFilter {
10239	s.Tag = v
10240	return s
10241}
10242
10243type ListAccessPointsForObjectLambdaInput struct {
10244	_ struct{} `locationName:"ListAccessPointsForObjectLambdaRequest" type:"structure"`
10245
10246	// The account ID for the account that owns the specified Object Lambda Access
10247	// Point.
10248	//
10249	// AccountId is a required field
10250	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10251
10252	// The maximum number of access points that you want to include in the list.
10253	// If there are more than this number of access points, then the response will
10254	// include a continuation token in the NextToken field that you can use to retrieve
10255	// the next page of access points.
10256	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
10257
10258	// If the list has more access points than can be returned in one call to this
10259	// API, this field contains a continuation token that you can provide in subsequent
10260	// calls to this API to retrieve additional access points.
10261	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
10262}
10263
10264// String returns the string representation
10265func (s ListAccessPointsForObjectLambdaInput) String() string {
10266	return awsutil.Prettify(s)
10267}
10268
10269// GoString returns the string representation
10270func (s ListAccessPointsForObjectLambdaInput) GoString() string {
10271	return s.String()
10272}
10273
10274// Validate inspects the fields of the type to determine if they are valid.
10275func (s *ListAccessPointsForObjectLambdaInput) Validate() error {
10276	invalidParams := request.ErrInvalidParams{Context: "ListAccessPointsForObjectLambdaInput"}
10277	if s.AccountId == nil {
10278		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10279	}
10280	if s.AccountId != nil && len(*s.AccountId) < 1 {
10281		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10282	}
10283	if s.NextToken != nil && len(*s.NextToken) < 1 {
10284		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10285	}
10286
10287	if invalidParams.Len() > 0 {
10288		return invalidParams
10289	}
10290	return nil
10291}
10292
10293// SetAccountId sets the AccountId field's value.
10294func (s *ListAccessPointsForObjectLambdaInput) SetAccountId(v string) *ListAccessPointsForObjectLambdaInput {
10295	s.AccountId = &v
10296	return s
10297}
10298
10299// SetMaxResults sets the MaxResults field's value.
10300func (s *ListAccessPointsForObjectLambdaInput) SetMaxResults(v int64) *ListAccessPointsForObjectLambdaInput {
10301	s.MaxResults = &v
10302	return s
10303}
10304
10305// SetNextToken sets the NextToken field's value.
10306func (s *ListAccessPointsForObjectLambdaInput) SetNextToken(v string) *ListAccessPointsForObjectLambdaInput {
10307	s.NextToken = &v
10308	return s
10309}
10310
10311func (s *ListAccessPointsForObjectLambdaInput) hostLabels() map[string]string {
10312	return map[string]string{
10313		"AccountId": aws.StringValue(s.AccountId),
10314	}
10315}
10316
10317type ListAccessPointsForObjectLambdaOutput struct {
10318	_ struct{} `type:"structure"`
10319
10320	// If the list has more access points than can be returned in one call to this
10321	// API, this field contains a continuation token that you can provide in subsequent
10322	// calls to this API to retrieve additional access points.
10323	NextToken *string `min:"1" type:"string"`
10324
10325	// Returns list of Object Lambda Access Points.
10326	ObjectLambdaAccessPointList []*ObjectLambdaAccessPoint `locationNameList:"ObjectLambdaAccessPoint" type:"list"`
10327}
10328
10329// String returns the string representation
10330func (s ListAccessPointsForObjectLambdaOutput) String() string {
10331	return awsutil.Prettify(s)
10332}
10333
10334// GoString returns the string representation
10335func (s ListAccessPointsForObjectLambdaOutput) GoString() string {
10336	return s.String()
10337}
10338
10339// SetNextToken sets the NextToken field's value.
10340func (s *ListAccessPointsForObjectLambdaOutput) SetNextToken(v string) *ListAccessPointsForObjectLambdaOutput {
10341	s.NextToken = &v
10342	return s
10343}
10344
10345// SetObjectLambdaAccessPointList sets the ObjectLambdaAccessPointList field's value.
10346func (s *ListAccessPointsForObjectLambdaOutput) SetObjectLambdaAccessPointList(v []*ObjectLambdaAccessPoint) *ListAccessPointsForObjectLambdaOutput {
10347	s.ObjectLambdaAccessPointList = v
10348	return s
10349}
10350
10351type ListAccessPointsInput struct {
10352	_ struct{} `locationName:"ListAccessPointsRequest" type:"structure"`
10353
10354	// The AWS account ID for owner of the bucket whose access points you want to
10355	// list.
10356	//
10357	// AccountId is a required field
10358	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10359
10360	// The name of the bucket whose associated access points you want to list.
10361	//
10362	// For using this parameter with Amazon S3 on Outposts with the REST API, you
10363	// must specify the name and the x-amz-outpost-id as well.
10364	//
10365	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
10366	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
10367	// For example, to access the bucket reports through outpost my-outpost owned
10368	// 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.
10369	// The value must be URL encoded.
10370	Bucket *string `location:"querystring" locationName:"bucket" min:"3" type:"string"`
10371
10372	// The maximum number of access points that you want to include in the list.
10373	// If the specified bucket has more than this number of access points, then
10374	// the response will include a continuation token in the NextToken field that
10375	// you can use to retrieve the next page of access points.
10376	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
10377
10378	// A continuation token. If a previous call to ListAccessPoints returned a continuation
10379	// token in the NextToken field, then providing that value here causes Amazon
10380	// S3 to retrieve the next page of results.
10381	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
10382}
10383
10384// String returns the string representation
10385func (s ListAccessPointsInput) String() string {
10386	return awsutil.Prettify(s)
10387}
10388
10389// GoString returns the string representation
10390func (s ListAccessPointsInput) GoString() string {
10391	return s.String()
10392}
10393
10394// Validate inspects the fields of the type to determine if they are valid.
10395func (s *ListAccessPointsInput) Validate() error {
10396	invalidParams := request.ErrInvalidParams{Context: "ListAccessPointsInput"}
10397	if s.AccountId == nil {
10398		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10399	}
10400	if s.AccountId != nil && len(*s.AccountId) < 1 {
10401		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10402	}
10403	if s.Bucket != nil && len(*s.Bucket) < 3 {
10404		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
10405	}
10406	if s.NextToken != nil && len(*s.NextToken) < 1 {
10407		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10408	}
10409
10410	if invalidParams.Len() > 0 {
10411		return invalidParams
10412	}
10413	return nil
10414}
10415
10416// SetAccountId sets the AccountId field's value.
10417func (s *ListAccessPointsInput) SetAccountId(v string) *ListAccessPointsInput {
10418	s.AccountId = &v
10419	return s
10420}
10421
10422// SetBucket sets the Bucket field's value.
10423func (s *ListAccessPointsInput) SetBucket(v string) *ListAccessPointsInput {
10424	s.Bucket = &v
10425	return s
10426}
10427
10428// SetMaxResults sets the MaxResults field's value.
10429func (s *ListAccessPointsInput) SetMaxResults(v int64) *ListAccessPointsInput {
10430	s.MaxResults = &v
10431	return s
10432}
10433
10434// SetNextToken sets the NextToken field's value.
10435func (s *ListAccessPointsInput) SetNextToken(v string) *ListAccessPointsInput {
10436	s.NextToken = &v
10437	return s
10438}
10439
10440func (s *ListAccessPointsInput) hostLabels() map[string]string {
10441	return map[string]string{
10442		"AccountId": aws.StringValue(s.AccountId),
10443	}
10444}
10445
10446func (s *ListAccessPointsInput) getEndpointARN() (arn.Resource, error) {
10447	if s.Bucket == nil {
10448		return nil, fmt.Errorf("member Bucket is nil")
10449	}
10450	return parseEndpointARN(*s.Bucket)
10451}
10452
10453func (s *ListAccessPointsInput) hasEndpointARN() bool {
10454	if s.Bucket == nil {
10455		return false
10456	}
10457	return arn.IsARN(*s.Bucket)
10458}
10459
10460// updateArnableField updates the value of the input field that
10461// takes an ARN as an input. This method is useful to backfill
10462// the parsed resource name from ARN into the input member.
10463// It returns a pointer to a modified copy of input and an error.
10464// Note that original input is not modified.
10465func (s ListAccessPointsInput) updateArnableField(v string) (interface{}, error) {
10466	if s.Bucket == nil {
10467		return nil, fmt.Errorf("member Bucket is nil")
10468	}
10469	s.Bucket = aws.String(v)
10470	return &s, nil
10471}
10472
10473// updateAccountID returns a pointer to a modified copy of input,
10474// if account id is not provided, we update the account id in modified input
10475// if account id is provided, but doesn't match with the one in ARN, we throw an error
10476// if account id is not updated, we return nil. Note that original input is not modified.
10477func (s ListAccessPointsInput) updateAccountID(accountId string) (interface{}, error) {
10478	if s.AccountId == nil {
10479		s.AccountId = aws.String(accountId)
10480		return &s, nil
10481	} else if *s.AccountId != accountId {
10482		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
10483	}
10484	return nil, nil
10485}
10486
10487type ListAccessPointsOutput struct {
10488	_ struct{} `type:"structure"`
10489
10490	// Contains identification and configuration information for one or more access
10491	// points associated with the specified bucket.
10492	AccessPointList []*AccessPoint `locationNameList:"AccessPoint" type:"list"`
10493
10494	// If the specified bucket has more access points than can be returned in one
10495	// call to this API, this field contains a continuation token that you can provide
10496	// in subsequent calls to this API to retrieve additional access points.
10497	NextToken *string `min:"1" type:"string"`
10498}
10499
10500// String returns the string representation
10501func (s ListAccessPointsOutput) String() string {
10502	return awsutil.Prettify(s)
10503}
10504
10505// GoString returns the string representation
10506func (s ListAccessPointsOutput) GoString() string {
10507	return s.String()
10508}
10509
10510// SetAccessPointList sets the AccessPointList field's value.
10511func (s *ListAccessPointsOutput) SetAccessPointList(v []*AccessPoint) *ListAccessPointsOutput {
10512	s.AccessPointList = v
10513	return s
10514}
10515
10516// SetNextToken sets the NextToken field's value.
10517func (s *ListAccessPointsOutput) SetNextToken(v string) *ListAccessPointsOutput {
10518	s.NextToken = &v
10519	return s
10520}
10521
10522type ListJobsInput struct {
10523	_ struct{} `locationName:"ListJobsRequest" type:"structure"`
10524
10525	// The AWS account ID associated with the S3 Batch Operations job.
10526	//
10527	// AccountId is a required field
10528	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10529
10530	// The List Jobs request returns jobs that match the statuses listed in this
10531	// element.
10532	JobStatuses []*string `location:"querystring" locationName:"jobStatuses" type:"list"`
10533
10534	// The maximum number of jobs that Amazon S3 will include in the List Jobs response.
10535	// If there are more jobs than this number, the response will include a pagination
10536	// token in the NextToken field to enable you to retrieve the next page of results.
10537	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
10538
10539	// A pagination token to request the next page of results. Use the token that
10540	// Amazon S3 returned in the NextToken element of the ListJobsResult from the
10541	// previous List Jobs request.
10542	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
10543}
10544
10545// String returns the string representation
10546func (s ListJobsInput) String() string {
10547	return awsutil.Prettify(s)
10548}
10549
10550// GoString returns the string representation
10551func (s ListJobsInput) GoString() string {
10552	return s.String()
10553}
10554
10555// Validate inspects the fields of the type to determine if they are valid.
10556func (s *ListJobsInput) Validate() error {
10557	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
10558	if s.AccountId == nil {
10559		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10560	}
10561	if s.AccountId != nil && len(*s.AccountId) < 1 {
10562		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10563	}
10564	if s.NextToken != nil && len(*s.NextToken) < 1 {
10565		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10566	}
10567
10568	if invalidParams.Len() > 0 {
10569		return invalidParams
10570	}
10571	return nil
10572}
10573
10574// SetAccountId sets the AccountId field's value.
10575func (s *ListJobsInput) SetAccountId(v string) *ListJobsInput {
10576	s.AccountId = &v
10577	return s
10578}
10579
10580// SetJobStatuses sets the JobStatuses field's value.
10581func (s *ListJobsInput) SetJobStatuses(v []*string) *ListJobsInput {
10582	s.JobStatuses = v
10583	return s
10584}
10585
10586// SetMaxResults sets the MaxResults field's value.
10587func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
10588	s.MaxResults = &v
10589	return s
10590}
10591
10592// SetNextToken sets the NextToken field's value.
10593func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
10594	s.NextToken = &v
10595	return s
10596}
10597
10598func (s *ListJobsInput) hostLabels() map[string]string {
10599	return map[string]string{
10600		"AccountId": aws.StringValue(s.AccountId),
10601	}
10602}
10603
10604type ListJobsOutput struct {
10605	_ struct{} `type:"structure"`
10606
10607	// The list of current jobs and jobs that have ended within the last 30 days.
10608	Jobs []*JobListDescriptor `type:"list"`
10609
10610	// If the List Jobs request produced more than the maximum number of results,
10611	// you can pass this value into a subsequent List Jobs request in order to retrieve
10612	// the next page of results.
10613	NextToken *string `min:"1" type:"string"`
10614}
10615
10616// String returns the string representation
10617func (s ListJobsOutput) String() string {
10618	return awsutil.Prettify(s)
10619}
10620
10621// GoString returns the string representation
10622func (s ListJobsOutput) GoString() string {
10623	return s.String()
10624}
10625
10626// SetJobs sets the Jobs field's value.
10627func (s *ListJobsOutput) SetJobs(v []*JobListDescriptor) *ListJobsOutput {
10628	s.Jobs = v
10629	return s
10630}
10631
10632// SetNextToken sets the NextToken field's value.
10633func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
10634	s.NextToken = &v
10635	return s
10636}
10637
10638type ListRegionalBucketsInput struct {
10639	_ struct{} `locationName:"ListRegionalBucketsRequest" type:"structure"`
10640
10641	// The AWS account ID of the Outposts bucket.
10642	//
10643	// AccountId is a required field
10644	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10645
10646	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
10647
10648	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
10649
10650	// The ID of the AWS Outposts.
10651	//
10652	// This is required by Amazon S3 on Outposts buckets.
10653	OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"`
10654}
10655
10656// String returns the string representation
10657func (s ListRegionalBucketsInput) String() string {
10658	return awsutil.Prettify(s)
10659}
10660
10661// GoString returns the string representation
10662func (s ListRegionalBucketsInput) GoString() string {
10663	return s.String()
10664}
10665
10666// Validate inspects the fields of the type to determine if they are valid.
10667func (s *ListRegionalBucketsInput) Validate() error {
10668	invalidParams := request.ErrInvalidParams{Context: "ListRegionalBucketsInput"}
10669	if s.AccountId == nil {
10670		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10671	}
10672	if s.AccountId != nil && len(*s.AccountId) < 1 {
10673		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10674	}
10675	if s.NextToken != nil && len(*s.NextToken) < 1 {
10676		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10677	}
10678	if s.OutpostId != nil && len(*s.OutpostId) < 1 {
10679		invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1))
10680	}
10681
10682	if invalidParams.Len() > 0 {
10683		return invalidParams
10684	}
10685	return nil
10686}
10687
10688// SetAccountId sets the AccountId field's value.
10689func (s *ListRegionalBucketsInput) SetAccountId(v string) *ListRegionalBucketsInput {
10690	s.AccountId = &v
10691	return s
10692}
10693
10694// SetMaxResults sets the MaxResults field's value.
10695func (s *ListRegionalBucketsInput) SetMaxResults(v int64) *ListRegionalBucketsInput {
10696	s.MaxResults = &v
10697	return s
10698}
10699
10700// SetNextToken sets the NextToken field's value.
10701func (s *ListRegionalBucketsInput) SetNextToken(v string) *ListRegionalBucketsInput {
10702	s.NextToken = &v
10703	return s
10704}
10705
10706// SetOutpostId sets the OutpostId field's value.
10707func (s *ListRegionalBucketsInput) SetOutpostId(v string) *ListRegionalBucketsInput {
10708	s.OutpostId = &v
10709	return s
10710}
10711
10712func (s *ListRegionalBucketsInput) hostLabels() map[string]string {
10713	return map[string]string{
10714		"AccountId": aws.StringValue(s.AccountId),
10715	}
10716}
10717
10718func (s *ListRegionalBucketsInput) getOutpostID() (string, error) {
10719	if s.OutpostId == nil {
10720		return "", fmt.Errorf("member OutpostId is nil")
10721	}
10722	return *s.OutpostId, nil
10723}
10724
10725func (s *ListRegionalBucketsInput) hasOutpostID() bool {
10726	if s.OutpostId == nil {
10727		return false
10728	}
10729	return true
10730}
10731
10732type ListRegionalBucketsOutput struct {
10733	_ struct{} `type:"structure"`
10734
10735	// NextToken is sent when isTruncated is true, which means there are more buckets
10736	// that can be listed. The next list requests to Amazon S3 can be continued
10737	// with this NextToken. NextToken is obfuscated and is not a real key.
10738	NextToken *string `min:"1" type:"string"`
10739
10740	RegionalBucketList []*RegionalBucket `locationNameList:"RegionalBucket" type:"list"`
10741}
10742
10743// String returns the string representation
10744func (s ListRegionalBucketsOutput) String() string {
10745	return awsutil.Prettify(s)
10746}
10747
10748// GoString returns the string representation
10749func (s ListRegionalBucketsOutput) GoString() string {
10750	return s.String()
10751}
10752
10753// SetNextToken sets the NextToken field's value.
10754func (s *ListRegionalBucketsOutput) SetNextToken(v string) *ListRegionalBucketsOutput {
10755	s.NextToken = &v
10756	return s
10757}
10758
10759// SetRegionalBucketList sets the RegionalBucketList field's value.
10760func (s *ListRegionalBucketsOutput) SetRegionalBucketList(v []*RegionalBucket) *ListRegionalBucketsOutput {
10761	s.RegionalBucketList = v
10762	return s
10763}
10764
10765// Part of ListStorageLensConfigurationResult. Each entry includes the description
10766// of the S3 Storage Lens configuration, its home Region, whether it is enabled,
10767// its Amazon Resource Name (ARN), and config ID.
10768type ListStorageLensConfigurationEntry struct {
10769	_ struct{} `type:"structure"`
10770
10771	// A container for the S3 Storage Lens home Region. Your metrics data is stored
10772	// and retained in your designated S3 Storage Lens home Region.
10773	//
10774	// HomeRegion is a required field
10775	HomeRegion *string `min:"5" type:"string" required:"true"`
10776
10777	// A container for the S3 Storage Lens configuration ID.
10778	//
10779	// Id is a required field
10780	Id *string `min:"1" type:"string" required:"true"`
10781
10782	// A container for whether the S3 Storage Lens configuration is enabled. This
10783	// property is required.
10784	IsEnabled *bool `type:"boolean"`
10785
10786	// The ARN of the S3 Storage Lens configuration. This property is read-only.
10787	//
10788	// StorageLensArn is a required field
10789	StorageLensArn *string `min:"1" type:"string" required:"true"`
10790}
10791
10792// String returns the string representation
10793func (s ListStorageLensConfigurationEntry) String() string {
10794	return awsutil.Prettify(s)
10795}
10796
10797// GoString returns the string representation
10798func (s ListStorageLensConfigurationEntry) GoString() string {
10799	return s.String()
10800}
10801
10802// SetHomeRegion sets the HomeRegion field's value.
10803func (s *ListStorageLensConfigurationEntry) SetHomeRegion(v string) *ListStorageLensConfigurationEntry {
10804	s.HomeRegion = &v
10805	return s
10806}
10807
10808// SetId sets the Id field's value.
10809func (s *ListStorageLensConfigurationEntry) SetId(v string) *ListStorageLensConfigurationEntry {
10810	s.Id = &v
10811	return s
10812}
10813
10814// SetIsEnabled sets the IsEnabled field's value.
10815func (s *ListStorageLensConfigurationEntry) SetIsEnabled(v bool) *ListStorageLensConfigurationEntry {
10816	s.IsEnabled = &v
10817	return s
10818}
10819
10820// SetStorageLensArn sets the StorageLensArn field's value.
10821func (s *ListStorageLensConfigurationEntry) SetStorageLensArn(v string) *ListStorageLensConfigurationEntry {
10822	s.StorageLensArn = &v
10823	return s
10824}
10825
10826type ListStorageLensConfigurationsInput struct {
10827	_ struct{} `locationName:"ListStorageLensConfigurationsRequest" type:"structure"`
10828
10829	// The account ID of the requester.
10830	//
10831	// AccountId is a required field
10832	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10833
10834	// A pagination token to request the next page of results.
10835	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
10836}
10837
10838// String returns the string representation
10839func (s ListStorageLensConfigurationsInput) String() string {
10840	return awsutil.Prettify(s)
10841}
10842
10843// GoString returns the string representation
10844func (s ListStorageLensConfigurationsInput) GoString() string {
10845	return s.String()
10846}
10847
10848// Validate inspects the fields of the type to determine if they are valid.
10849func (s *ListStorageLensConfigurationsInput) Validate() error {
10850	invalidParams := request.ErrInvalidParams{Context: "ListStorageLensConfigurationsInput"}
10851	if s.AccountId == nil {
10852		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10853	}
10854	if s.AccountId != nil && len(*s.AccountId) < 1 {
10855		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10856	}
10857
10858	if invalidParams.Len() > 0 {
10859		return invalidParams
10860	}
10861	return nil
10862}
10863
10864// SetAccountId sets the AccountId field's value.
10865func (s *ListStorageLensConfigurationsInput) SetAccountId(v string) *ListStorageLensConfigurationsInput {
10866	s.AccountId = &v
10867	return s
10868}
10869
10870// SetNextToken sets the NextToken field's value.
10871func (s *ListStorageLensConfigurationsInput) SetNextToken(v string) *ListStorageLensConfigurationsInput {
10872	s.NextToken = &v
10873	return s
10874}
10875
10876func (s *ListStorageLensConfigurationsInput) hostLabels() map[string]string {
10877	return map[string]string{
10878		"AccountId": aws.StringValue(s.AccountId),
10879	}
10880}
10881
10882type ListStorageLensConfigurationsOutput struct {
10883	_ struct{} `type:"structure"`
10884
10885	// If the request produced more than the maximum number of S3 Storage Lens configuration
10886	// results, you can pass this value into a subsequent request to retrieve the
10887	// next page of results.
10888	NextToken *string `type:"string"`
10889
10890	// A list of S3 Storage Lens configurations.
10891	StorageLensConfigurationList []*ListStorageLensConfigurationEntry `locationNameList:"StorageLensConfiguration" type:"list" flattened:"true"`
10892}
10893
10894// String returns the string representation
10895func (s ListStorageLensConfigurationsOutput) String() string {
10896	return awsutil.Prettify(s)
10897}
10898
10899// GoString returns the string representation
10900func (s ListStorageLensConfigurationsOutput) GoString() string {
10901	return s.String()
10902}
10903
10904// SetNextToken sets the NextToken field's value.
10905func (s *ListStorageLensConfigurationsOutput) SetNextToken(v string) *ListStorageLensConfigurationsOutput {
10906	s.NextToken = &v
10907	return s
10908}
10909
10910// SetStorageLensConfigurationList sets the StorageLensConfigurationList field's value.
10911func (s *ListStorageLensConfigurationsOutput) SetStorageLensConfigurationList(v []*ListStorageLensConfigurationEntry) *ListStorageLensConfigurationsOutput {
10912	s.StorageLensConfigurationList = v
10913	return s
10914}
10915
10916// The container of the noncurrent version expiration.
10917type NoncurrentVersionExpiration struct {
10918	_ struct{} `type:"structure"`
10919
10920	// Specifies the number of days an object is noncurrent before Amazon S3 can
10921	// perform the associated action. For information about the noncurrent days
10922	// calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
10923	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
10924	// in the Amazon Simple Storage Service Developer Guide.
10925	NoncurrentDays *int64 `type:"integer"`
10926}
10927
10928// String returns the string representation
10929func (s NoncurrentVersionExpiration) String() string {
10930	return awsutil.Prettify(s)
10931}
10932
10933// GoString returns the string representation
10934func (s NoncurrentVersionExpiration) GoString() string {
10935	return s.String()
10936}
10937
10938// SetNoncurrentDays sets the NoncurrentDays field's value.
10939func (s *NoncurrentVersionExpiration) SetNoncurrentDays(v int64) *NoncurrentVersionExpiration {
10940	s.NoncurrentDays = &v
10941	return s
10942}
10943
10944// The container for the noncurrent version transition.
10945type NoncurrentVersionTransition struct {
10946	_ struct{} `type:"structure"`
10947
10948	// Specifies the number of days an object is noncurrent before Amazon S3 can
10949	// perform the associated action. For information about the noncurrent days
10950	// calculations, see How Amazon S3 Calculates How Long an Object Has Been Noncurrent
10951	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
10952	// in the Amazon Simple Storage Service Developer Guide.
10953	NoncurrentDays *int64 `type:"integer"`
10954
10955	// The class of storage used to store the object.
10956	StorageClass *string `type:"string" enum:"TransitionStorageClass"`
10957}
10958
10959// String returns the string representation
10960func (s NoncurrentVersionTransition) String() string {
10961	return awsutil.Prettify(s)
10962}
10963
10964// GoString returns the string representation
10965func (s NoncurrentVersionTransition) GoString() string {
10966	return s.String()
10967}
10968
10969// SetNoncurrentDays sets the NoncurrentDays field's value.
10970func (s *NoncurrentVersionTransition) SetNoncurrentDays(v int64) *NoncurrentVersionTransition {
10971	s.NoncurrentDays = &v
10972	return s
10973}
10974
10975// SetStorageClass sets the StorageClass field's value.
10976func (s *NoncurrentVersionTransition) SetStorageClass(v string) *NoncurrentVersionTransition {
10977	s.StorageClass = &v
10978	return s
10979}
10980
10981// An access point with an attached AWS Lambda function used to access transformed
10982// data from an Amazon S3 bucket.
10983type ObjectLambdaAccessPoint struct {
10984	_ struct{} `type:"structure"`
10985
10986	// The name of the Object Lambda Access Point.
10987	//
10988	// Name is a required field
10989	Name *string `min:"3" type:"string" required:"true"`
10990
10991	// Specifies the ARN for the Object Lambda Access Point.
10992	ObjectLambdaAccessPointArn *string `min:"1" type:"string"`
10993}
10994
10995// String returns the string representation
10996func (s ObjectLambdaAccessPoint) String() string {
10997	return awsutil.Prettify(s)
10998}
10999
11000// GoString returns the string representation
11001func (s ObjectLambdaAccessPoint) GoString() string {
11002	return s.String()
11003}
11004
11005// SetName sets the Name field's value.
11006func (s *ObjectLambdaAccessPoint) SetName(v string) *ObjectLambdaAccessPoint {
11007	s.Name = &v
11008	return s
11009}
11010
11011// SetObjectLambdaAccessPointArn sets the ObjectLambdaAccessPointArn field's value.
11012func (s *ObjectLambdaAccessPoint) SetObjectLambdaAccessPointArn(v string) *ObjectLambdaAccessPoint {
11013	s.ObjectLambdaAccessPointArn = &v
11014	return s
11015}
11016
11017// A configuration used when creating an Object Lambda Access Point.
11018type ObjectLambdaConfiguration struct {
11019	_ struct{} `type:"structure"`
11020
11021	// A container for allowed features. Valid inputs are GetObject-Range and GetObject-PartNumber.
11022	AllowedFeatures []*string `locationNameList:"AllowedFeature" type:"list"`
11023
11024	// A container for whether the CloudWatch metrics configuration is enabled.
11025	CloudWatchMetricsEnabled *bool `type:"boolean"`
11026
11027	// Standard access point associated with the Object Lambda Access Point.
11028	//
11029	// SupportingAccessPoint is a required field
11030	SupportingAccessPoint *string `min:"1" type:"string" required:"true"`
11031
11032	// A container for transformation configurations for an Object Lambda Access
11033	// Point.
11034	//
11035	// TransformationConfigurations is a required field
11036	TransformationConfigurations []*ObjectLambdaTransformationConfiguration `locationNameList:"TransformationConfiguration" type:"list" required:"true"`
11037}
11038
11039// String returns the string representation
11040func (s ObjectLambdaConfiguration) String() string {
11041	return awsutil.Prettify(s)
11042}
11043
11044// GoString returns the string representation
11045func (s ObjectLambdaConfiguration) GoString() string {
11046	return s.String()
11047}
11048
11049// Validate inspects the fields of the type to determine if they are valid.
11050func (s *ObjectLambdaConfiguration) Validate() error {
11051	invalidParams := request.ErrInvalidParams{Context: "ObjectLambdaConfiguration"}
11052	if s.SupportingAccessPoint == nil {
11053		invalidParams.Add(request.NewErrParamRequired("SupportingAccessPoint"))
11054	}
11055	if s.SupportingAccessPoint != nil && len(*s.SupportingAccessPoint) < 1 {
11056		invalidParams.Add(request.NewErrParamMinLen("SupportingAccessPoint", 1))
11057	}
11058	if s.TransformationConfigurations == nil {
11059		invalidParams.Add(request.NewErrParamRequired("TransformationConfigurations"))
11060	}
11061	if s.TransformationConfigurations != nil {
11062		for i, v := range s.TransformationConfigurations {
11063			if v == nil {
11064				continue
11065			}
11066			if err := v.Validate(); err != nil {
11067				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TransformationConfigurations", i), err.(request.ErrInvalidParams))
11068			}
11069		}
11070	}
11071
11072	if invalidParams.Len() > 0 {
11073		return invalidParams
11074	}
11075	return nil
11076}
11077
11078// SetAllowedFeatures sets the AllowedFeatures field's value.
11079func (s *ObjectLambdaConfiguration) SetAllowedFeatures(v []*string) *ObjectLambdaConfiguration {
11080	s.AllowedFeatures = v
11081	return s
11082}
11083
11084// SetCloudWatchMetricsEnabled sets the CloudWatchMetricsEnabled field's value.
11085func (s *ObjectLambdaConfiguration) SetCloudWatchMetricsEnabled(v bool) *ObjectLambdaConfiguration {
11086	s.CloudWatchMetricsEnabled = &v
11087	return s
11088}
11089
11090// SetSupportingAccessPoint sets the SupportingAccessPoint field's value.
11091func (s *ObjectLambdaConfiguration) SetSupportingAccessPoint(v string) *ObjectLambdaConfiguration {
11092	s.SupportingAccessPoint = &v
11093	return s
11094}
11095
11096// SetTransformationConfigurations sets the TransformationConfigurations field's value.
11097func (s *ObjectLambdaConfiguration) SetTransformationConfigurations(v []*ObjectLambdaTransformationConfiguration) *ObjectLambdaConfiguration {
11098	s.TransformationConfigurations = v
11099	return s
11100}
11101
11102// A container for AwsLambdaTransformation.
11103type ObjectLambdaContentTransformation struct {
11104	_ struct{} `type:"structure"`
11105
11106	// A container for an AWS Lambda function.
11107	AwsLambda *AwsLambdaTransformation `type:"structure"`
11108}
11109
11110// String returns the string representation
11111func (s ObjectLambdaContentTransformation) String() string {
11112	return awsutil.Prettify(s)
11113}
11114
11115// GoString returns the string representation
11116func (s ObjectLambdaContentTransformation) GoString() string {
11117	return s.String()
11118}
11119
11120// Validate inspects the fields of the type to determine if they are valid.
11121func (s *ObjectLambdaContentTransformation) Validate() error {
11122	invalidParams := request.ErrInvalidParams{Context: "ObjectLambdaContentTransformation"}
11123	if s.AwsLambda != nil {
11124		if err := s.AwsLambda.Validate(); err != nil {
11125			invalidParams.AddNested("AwsLambda", err.(request.ErrInvalidParams))
11126		}
11127	}
11128
11129	if invalidParams.Len() > 0 {
11130		return invalidParams
11131	}
11132	return nil
11133}
11134
11135// SetAwsLambda sets the AwsLambda field's value.
11136func (s *ObjectLambdaContentTransformation) SetAwsLambda(v *AwsLambdaTransformation) *ObjectLambdaContentTransformation {
11137	s.AwsLambda = v
11138	return s
11139}
11140
11141// A configuration used when creating an Object Lambda Access Point transformation.
11142type ObjectLambdaTransformationConfiguration struct {
11143	_ struct{} `type:"structure"`
11144
11145	// A container for the action of an Object Lambda Access Point configuration.
11146	// Valid input is GetObject.
11147	//
11148	// Actions is a required field
11149	Actions []*string `locationNameList:"Action" type:"list" required:"true"`
11150
11151	// A container for the content transformation of an Object Lambda Access Point
11152	// configuration.
11153	//
11154	// ContentTransformation is a required field
11155	ContentTransformation *ObjectLambdaContentTransformation `type:"structure" required:"true"`
11156}
11157
11158// String returns the string representation
11159func (s ObjectLambdaTransformationConfiguration) String() string {
11160	return awsutil.Prettify(s)
11161}
11162
11163// GoString returns the string representation
11164func (s ObjectLambdaTransformationConfiguration) GoString() string {
11165	return s.String()
11166}
11167
11168// Validate inspects the fields of the type to determine if they are valid.
11169func (s *ObjectLambdaTransformationConfiguration) Validate() error {
11170	invalidParams := request.ErrInvalidParams{Context: "ObjectLambdaTransformationConfiguration"}
11171	if s.Actions == nil {
11172		invalidParams.Add(request.NewErrParamRequired("Actions"))
11173	}
11174	if s.ContentTransformation == nil {
11175		invalidParams.Add(request.NewErrParamRequired("ContentTransformation"))
11176	}
11177	if s.ContentTransformation != nil {
11178		if err := s.ContentTransformation.Validate(); err != nil {
11179			invalidParams.AddNested("ContentTransformation", err.(request.ErrInvalidParams))
11180		}
11181	}
11182
11183	if invalidParams.Len() > 0 {
11184		return invalidParams
11185	}
11186	return nil
11187}
11188
11189// SetActions sets the Actions field's value.
11190func (s *ObjectLambdaTransformationConfiguration) SetActions(v []*string) *ObjectLambdaTransformationConfiguration {
11191	s.Actions = v
11192	return s
11193}
11194
11195// SetContentTransformation sets the ContentTransformation field's value.
11196func (s *ObjectLambdaTransformationConfiguration) SetContentTransformation(v *ObjectLambdaContentTransformation) *ObjectLambdaTransformationConfiguration {
11197	s.ContentTransformation = v
11198	return s
11199}
11200
11201// Indicates whether this access point policy is public. For more information
11202// about how Amazon S3 evaluates policies to determine whether they are public,
11203// 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)
11204// in the Amazon Simple Storage Service User Guide.
11205type PolicyStatus struct {
11206	_ struct{} `type:"structure"`
11207
11208	IsPublic *bool `locationName:"IsPublic" type:"boolean"`
11209}
11210
11211// String returns the string representation
11212func (s PolicyStatus) String() string {
11213	return awsutil.Prettify(s)
11214}
11215
11216// GoString returns the string representation
11217func (s PolicyStatus) GoString() string {
11218	return s.String()
11219}
11220
11221// SetIsPublic sets the IsPublic field's value.
11222func (s *PolicyStatus) SetIsPublic(v bool) *PolicyStatus {
11223	s.IsPublic = &v
11224	return s
11225}
11226
11227// A container for the prefix-level configuration.
11228type PrefixLevel struct {
11229	_ struct{} `type:"structure"`
11230
11231	// A container for the prefix-level storage metrics for S3 Storage Lens.
11232	//
11233	// StorageMetrics is a required field
11234	StorageMetrics *PrefixLevelStorageMetrics `type:"structure" required:"true"`
11235}
11236
11237// String returns the string representation
11238func (s PrefixLevel) String() string {
11239	return awsutil.Prettify(s)
11240}
11241
11242// GoString returns the string representation
11243func (s PrefixLevel) GoString() string {
11244	return s.String()
11245}
11246
11247// Validate inspects the fields of the type to determine if they are valid.
11248func (s *PrefixLevel) Validate() error {
11249	invalidParams := request.ErrInvalidParams{Context: "PrefixLevel"}
11250	if s.StorageMetrics == nil {
11251		invalidParams.Add(request.NewErrParamRequired("StorageMetrics"))
11252	}
11253	if s.StorageMetrics != nil {
11254		if err := s.StorageMetrics.Validate(); err != nil {
11255			invalidParams.AddNested("StorageMetrics", err.(request.ErrInvalidParams))
11256		}
11257	}
11258
11259	if invalidParams.Len() > 0 {
11260		return invalidParams
11261	}
11262	return nil
11263}
11264
11265// SetStorageMetrics sets the StorageMetrics field's value.
11266func (s *PrefixLevel) SetStorageMetrics(v *PrefixLevelStorageMetrics) *PrefixLevel {
11267	s.StorageMetrics = v
11268	return s
11269}
11270
11271// A container for the prefix-level storage metrics for S3 Storage Lens.
11272type PrefixLevelStorageMetrics struct {
11273	_ struct{} `type:"structure"`
11274
11275	// A container for whether prefix-level storage metrics are enabled.
11276	IsEnabled *bool `type:"boolean"`
11277
11278	SelectionCriteria *SelectionCriteria `type:"structure"`
11279}
11280
11281// String returns the string representation
11282func (s PrefixLevelStorageMetrics) String() string {
11283	return awsutil.Prettify(s)
11284}
11285
11286// GoString returns the string representation
11287func (s PrefixLevelStorageMetrics) GoString() string {
11288	return s.String()
11289}
11290
11291// Validate inspects the fields of the type to determine if they are valid.
11292func (s *PrefixLevelStorageMetrics) Validate() error {
11293	invalidParams := request.ErrInvalidParams{Context: "PrefixLevelStorageMetrics"}
11294	if s.SelectionCriteria != nil {
11295		if err := s.SelectionCriteria.Validate(); err != nil {
11296			invalidParams.AddNested("SelectionCriteria", err.(request.ErrInvalidParams))
11297		}
11298	}
11299
11300	if invalidParams.Len() > 0 {
11301		return invalidParams
11302	}
11303	return nil
11304}
11305
11306// SetIsEnabled sets the IsEnabled field's value.
11307func (s *PrefixLevelStorageMetrics) SetIsEnabled(v bool) *PrefixLevelStorageMetrics {
11308	s.IsEnabled = &v
11309	return s
11310}
11311
11312// SetSelectionCriteria sets the SelectionCriteria field's value.
11313func (s *PrefixLevelStorageMetrics) SetSelectionCriteria(v *SelectionCriteria) *PrefixLevelStorageMetrics {
11314	s.SelectionCriteria = v
11315	return s
11316}
11317
11318// The PublicAccessBlock configuration that you want to apply to this Amazon
11319// S3 account. You can enable the configuration options in any combination.
11320// For more information about when Amazon S3 considers a bucket or object public,
11321// 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)
11322// in the Amazon Simple Storage Service Developer Guide.
11323//
11324// This is not supported for Amazon S3 on Outposts.
11325type PublicAccessBlockConfiguration struct {
11326	_ struct{} `type:"structure"`
11327
11328	// Specifies whether Amazon S3 should block public access control lists (ACLs)
11329	// for buckets in this account. Setting this element to TRUE causes the following
11330	// behavior:
11331	//
11332	//    * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is
11333	//    public.
11334	//
11335	//    * PUT Object calls fail if the request includes a public ACL.
11336	//
11337	//    * PUT Bucket calls fail if the request includes a public ACL.
11338	//
11339	// Enabling this setting doesn't affect existing policies or ACLs.
11340	//
11341	// This is not supported for Amazon S3 on Outposts.
11342	BlockPublicAcls *bool `locationName:"BlockPublicAcls" type:"boolean"`
11343
11344	// Specifies whether Amazon S3 should block public bucket policies for buckets
11345	// in this account. Setting this element to TRUE causes Amazon S3 to reject
11346	// calls to PUT Bucket policy if the specified bucket policy allows public access.
11347	//
11348	// Enabling this setting doesn't affect existing bucket policies.
11349	//
11350	// This is not supported for Amazon S3 on Outposts.
11351	BlockPublicPolicy *bool `locationName:"BlockPublicPolicy" type:"boolean"`
11352
11353	// Specifies whether Amazon S3 should ignore public ACLs for buckets in this
11354	// account. Setting this element to TRUE causes Amazon S3 to ignore all public
11355	// ACLs on buckets in this account and any objects that they contain.
11356	//
11357	// Enabling this setting doesn't affect the persistence of any existing ACLs
11358	// and doesn't prevent new public ACLs from being set.
11359	//
11360	// This is not supported for Amazon S3 on Outposts.
11361	IgnorePublicAcls *bool `locationName:"IgnorePublicAcls" type:"boolean"`
11362
11363	// Specifies whether Amazon S3 should restrict public bucket policies for buckets
11364	// in this account. Setting this element to TRUE restricts access to buckets
11365	// with public policies to only AWS service principals and authorized users
11366	// within this account.
11367	//
11368	// Enabling this setting doesn't affect previously stored bucket policies, except
11369	// that public and cross-account access within any public bucket policy, including
11370	// non-public delegation to specific accounts, is blocked.
11371	//
11372	// This is not supported for Amazon S3 on Outposts.
11373	RestrictPublicBuckets *bool `locationName:"RestrictPublicBuckets" type:"boolean"`
11374}
11375
11376// String returns the string representation
11377func (s PublicAccessBlockConfiguration) String() string {
11378	return awsutil.Prettify(s)
11379}
11380
11381// GoString returns the string representation
11382func (s PublicAccessBlockConfiguration) GoString() string {
11383	return s.String()
11384}
11385
11386// SetBlockPublicAcls sets the BlockPublicAcls field's value.
11387func (s *PublicAccessBlockConfiguration) SetBlockPublicAcls(v bool) *PublicAccessBlockConfiguration {
11388	s.BlockPublicAcls = &v
11389	return s
11390}
11391
11392// SetBlockPublicPolicy sets the BlockPublicPolicy field's value.
11393func (s *PublicAccessBlockConfiguration) SetBlockPublicPolicy(v bool) *PublicAccessBlockConfiguration {
11394	s.BlockPublicPolicy = &v
11395	return s
11396}
11397
11398// SetIgnorePublicAcls sets the IgnorePublicAcls field's value.
11399func (s *PublicAccessBlockConfiguration) SetIgnorePublicAcls(v bool) *PublicAccessBlockConfiguration {
11400	s.IgnorePublicAcls = &v
11401	return s
11402}
11403
11404// SetRestrictPublicBuckets sets the RestrictPublicBuckets field's value.
11405func (s *PublicAccessBlockConfiguration) SetRestrictPublicBuckets(v bool) *PublicAccessBlockConfiguration {
11406	s.RestrictPublicBuckets = &v
11407	return s
11408}
11409
11410type PutAccessPointConfigurationForObjectLambdaInput struct {
11411	_ struct{} `locationName:"PutAccessPointConfigurationForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
11412
11413	// The account ID for the account that owns the specified Object Lambda Access
11414	// Point.
11415	//
11416	// AccountId is a required field
11417	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11418
11419	// Object Lambda Access Point configuration document.
11420	//
11421	// Configuration is a required field
11422	Configuration *ObjectLambdaConfiguration `type:"structure" required:"true"`
11423
11424	// The name of the Object Lambda Access Point.
11425	//
11426	// Name is a required field
11427	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
11428}
11429
11430// String returns the string representation
11431func (s PutAccessPointConfigurationForObjectLambdaInput) String() string {
11432	return awsutil.Prettify(s)
11433}
11434
11435// GoString returns the string representation
11436func (s PutAccessPointConfigurationForObjectLambdaInput) GoString() string {
11437	return s.String()
11438}
11439
11440// Validate inspects the fields of the type to determine if they are valid.
11441func (s *PutAccessPointConfigurationForObjectLambdaInput) Validate() error {
11442	invalidParams := request.ErrInvalidParams{Context: "PutAccessPointConfigurationForObjectLambdaInput"}
11443	if s.AccountId == nil {
11444		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11445	}
11446	if s.AccountId != nil && len(*s.AccountId) < 1 {
11447		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11448	}
11449	if s.Configuration == nil {
11450		invalidParams.Add(request.NewErrParamRequired("Configuration"))
11451	}
11452	if s.Name == nil {
11453		invalidParams.Add(request.NewErrParamRequired("Name"))
11454	}
11455	if s.Name != nil && len(*s.Name) < 3 {
11456		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
11457	}
11458	if s.Configuration != nil {
11459		if err := s.Configuration.Validate(); err != nil {
11460			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
11461		}
11462	}
11463
11464	if invalidParams.Len() > 0 {
11465		return invalidParams
11466	}
11467	return nil
11468}
11469
11470// SetAccountId sets the AccountId field's value.
11471func (s *PutAccessPointConfigurationForObjectLambdaInput) SetAccountId(v string) *PutAccessPointConfigurationForObjectLambdaInput {
11472	s.AccountId = &v
11473	return s
11474}
11475
11476// SetConfiguration sets the Configuration field's value.
11477func (s *PutAccessPointConfigurationForObjectLambdaInput) SetConfiguration(v *ObjectLambdaConfiguration) *PutAccessPointConfigurationForObjectLambdaInput {
11478	s.Configuration = v
11479	return s
11480}
11481
11482// SetName sets the Name field's value.
11483func (s *PutAccessPointConfigurationForObjectLambdaInput) SetName(v string) *PutAccessPointConfigurationForObjectLambdaInput {
11484	s.Name = &v
11485	return s
11486}
11487
11488func (s *PutAccessPointConfigurationForObjectLambdaInput) hostLabels() map[string]string {
11489	return map[string]string{
11490		"AccountId": aws.StringValue(s.AccountId),
11491	}
11492}
11493
11494type PutAccessPointConfigurationForObjectLambdaOutput struct {
11495	_ struct{} `type:"structure"`
11496}
11497
11498// String returns the string representation
11499func (s PutAccessPointConfigurationForObjectLambdaOutput) String() string {
11500	return awsutil.Prettify(s)
11501}
11502
11503// GoString returns the string representation
11504func (s PutAccessPointConfigurationForObjectLambdaOutput) GoString() string {
11505	return s.String()
11506}
11507
11508type PutAccessPointPolicyForObjectLambdaInput struct {
11509	_ struct{} `locationName:"PutAccessPointPolicyForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
11510
11511	// The account ID for the account that owns the specified Object Lambda Access
11512	// Point.
11513	//
11514	// AccountId is a required field
11515	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11516
11517	// The name of the Object Lambda Access Point.
11518	//
11519	// Name is a required field
11520	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
11521
11522	// Object Lambda Access Point resource policy document.
11523	//
11524	// Policy is a required field
11525	Policy *string `type:"string" required:"true"`
11526}
11527
11528// String returns the string representation
11529func (s PutAccessPointPolicyForObjectLambdaInput) String() string {
11530	return awsutil.Prettify(s)
11531}
11532
11533// GoString returns the string representation
11534func (s PutAccessPointPolicyForObjectLambdaInput) GoString() string {
11535	return s.String()
11536}
11537
11538// Validate inspects the fields of the type to determine if they are valid.
11539func (s *PutAccessPointPolicyForObjectLambdaInput) Validate() error {
11540	invalidParams := request.ErrInvalidParams{Context: "PutAccessPointPolicyForObjectLambdaInput"}
11541	if s.AccountId == nil {
11542		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11543	}
11544	if s.AccountId != nil && len(*s.AccountId) < 1 {
11545		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11546	}
11547	if s.Name == nil {
11548		invalidParams.Add(request.NewErrParamRequired("Name"))
11549	}
11550	if s.Name != nil && len(*s.Name) < 3 {
11551		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
11552	}
11553	if s.Policy == nil {
11554		invalidParams.Add(request.NewErrParamRequired("Policy"))
11555	}
11556
11557	if invalidParams.Len() > 0 {
11558		return invalidParams
11559	}
11560	return nil
11561}
11562
11563// SetAccountId sets the AccountId field's value.
11564func (s *PutAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *PutAccessPointPolicyForObjectLambdaInput {
11565	s.AccountId = &v
11566	return s
11567}
11568
11569// SetName sets the Name field's value.
11570func (s *PutAccessPointPolicyForObjectLambdaInput) SetName(v string) *PutAccessPointPolicyForObjectLambdaInput {
11571	s.Name = &v
11572	return s
11573}
11574
11575// SetPolicy sets the Policy field's value.
11576func (s *PutAccessPointPolicyForObjectLambdaInput) SetPolicy(v string) *PutAccessPointPolicyForObjectLambdaInput {
11577	s.Policy = &v
11578	return s
11579}
11580
11581func (s *PutAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string {
11582	return map[string]string{
11583		"AccountId": aws.StringValue(s.AccountId),
11584	}
11585}
11586
11587type PutAccessPointPolicyForObjectLambdaOutput struct {
11588	_ struct{} `type:"structure"`
11589}
11590
11591// String returns the string representation
11592func (s PutAccessPointPolicyForObjectLambdaOutput) String() string {
11593	return awsutil.Prettify(s)
11594}
11595
11596// GoString returns the string representation
11597func (s PutAccessPointPolicyForObjectLambdaOutput) GoString() string {
11598	return s.String()
11599}
11600
11601type PutAccessPointPolicyInput struct {
11602	_ struct{} `locationName:"PutAccessPointPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
11603
11604	// The AWS account ID for owner of the bucket associated with the specified
11605	// access point.
11606	//
11607	// AccountId is a required field
11608	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11609
11610	// The name of the access point that you want to associate with the specified
11611	// policy.
11612	//
11613	// For using this parameter with Amazon S3 on Outposts with the REST API, you
11614	// must specify the name and the x-amz-outpost-id as well.
11615	//
11616	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
11617	// must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
11618	// For example, to access the access point reports-ap through outpost my-outpost
11619	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
11620	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
11621	// The value must be URL encoded.
11622	//
11623	// Name is a required field
11624	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
11625
11626	// The policy that you want to apply to the specified access point. For more
11627	// information about access point policies, see Managing data access with Amazon
11628	// S3 Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)
11629	// in the Amazon Simple Storage Service User Guide.
11630	//
11631	// Policy is a required field
11632	Policy *string `type:"string" required:"true"`
11633}
11634
11635// String returns the string representation
11636func (s PutAccessPointPolicyInput) String() string {
11637	return awsutil.Prettify(s)
11638}
11639
11640// GoString returns the string representation
11641func (s PutAccessPointPolicyInput) GoString() string {
11642	return s.String()
11643}
11644
11645// Validate inspects the fields of the type to determine if they are valid.
11646func (s *PutAccessPointPolicyInput) Validate() error {
11647	invalidParams := request.ErrInvalidParams{Context: "PutAccessPointPolicyInput"}
11648	if s.AccountId == nil {
11649		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11650	}
11651	if s.AccountId != nil && len(*s.AccountId) < 1 {
11652		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11653	}
11654	if s.Name == nil {
11655		invalidParams.Add(request.NewErrParamRequired("Name"))
11656	}
11657	if s.Name != nil && len(*s.Name) < 3 {
11658		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
11659	}
11660	if s.Policy == nil {
11661		invalidParams.Add(request.NewErrParamRequired("Policy"))
11662	}
11663
11664	if invalidParams.Len() > 0 {
11665		return invalidParams
11666	}
11667	return nil
11668}
11669
11670// SetAccountId sets the AccountId field's value.
11671func (s *PutAccessPointPolicyInput) SetAccountId(v string) *PutAccessPointPolicyInput {
11672	s.AccountId = &v
11673	return s
11674}
11675
11676// SetName sets the Name field's value.
11677func (s *PutAccessPointPolicyInput) SetName(v string) *PutAccessPointPolicyInput {
11678	s.Name = &v
11679	return s
11680}
11681
11682// SetPolicy sets the Policy field's value.
11683func (s *PutAccessPointPolicyInput) SetPolicy(v string) *PutAccessPointPolicyInput {
11684	s.Policy = &v
11685	return s
11686}
11687
11688func (s *PutAccessPointPolicyInput) hostLabels() map[string]string {
11689	return map[string]string{
11690		"AccountId": aws.StringValue(s.AccountId),
11691	}
11692}
11693
11694func (s *PutAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
11695	if s.Name == nil {
11696		return nil, fmt.Errorf("member Name is nil")
11697	}
11698	return parseEndpointARN(*s.Name)
11699}
11700
11701func (s *PutAccessPointPolicyInput) hasEndpointARN() bool {
11702	if s.Name == nil {
11703		return false
11704	}
11705	return arn.IsARN(*s.Name)
11706}
11707
11708// updateArnableField updates the value of the input field that
11709// takes an ARN as an input. This method is useful to backfill
11710// the parsed resource name from ARN into the input member.
11711// It returns a pointer to a modified copy of input and an error.
11712// Note that original input is not modified.
11713func (s PutAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
11714	if s.Name == nil {
11715		return nil, fmt.Errorf("member Name is nil")
11716	}
11717	s.Name = aws.String(v)
11718	return &s, nil
11719}
11720
11721// updateAccountID returns a pointer to a modified copy of input,
11722// if account id is not provided, we update the account id in modified input
11723// if account id is provided, but doesn't match with the one in ARN, we throw an error
11724// if account id is not updated, we return nil. Note that original input is not modified.
11725func (s PutAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
11726	if s.AccountId == nil {
11727		s.AccountId = aws.String(accountId)
11728		return &s, nil
11729	} else if *s.AccountId != accountId {
11730		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
11731	}
11732	return nil, nil
11733}
11734
11735type PutAccessPointPolicyOutput struct {
11736	_ struct{} `type:"structure"`
11737}
11738
11739// String returns the string representation
11740func (s PutAccessPointPolicyOutput) String() string {
11741	return awsutil.Prettify(s)
11742}
11743
11744// GoString returns the string representation
11745func (s PutAccessPointPolicyOutput) GoString() string {
11746	return s.String()
11747}
11748
11749type PutBucketLifecycleConfigurationInput struct {
11750	_ struct{} `locationName:"PutBucketLifecycleConfigurationRequest" type:"structure" payload:"LifecycleConfiguration"`
11751
11752	// The AWS account ID of the Outposts bucket.
11753	//
11754	// AccountId is a required field
11755	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11756
11757	// The name of the bucket for which to set the configuration.
11758	//
11759	// Bucket is a required field
11760	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
11761
11762	// Container for lifecycle rules. You can add as many as 1,000 rules.
11763	LifecycleConfiguration *LifecycleConfiguration `locationName:"LifecycleConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
11764}
11765
11766// String returns the string representation
11767func (s PutBucketLifecycleConfigurationInput) String() string {
11768	return awsutil.Prettify(s)
11769}
11770
11771// GoString returns the string representation
11772func (s PutBucketLifecycleConfigurationInput) GoString() string {
11773	return s.String()
11774}
11775
11776// Validate inspects the fields of the type to determine if they are valid.
11777func (s *PutBucketLifecycleConfigurationInput) Validate() error {
11778	invalidParams := request.ErrInvalidParams{Context: "PutBucketLifecycleConfigurationInput"}
11779	if s.AccountId == nil {
11780		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11781	}
11782	if s.AccountId != nil && len(*s.AccountId) < 1 {
11783		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11784	}
11785	if s.Bucket == nil {
11786		invalidParams.Add(request.NewErrParamRequired("Bucket"))
11787	}
11788	if s.Bucket != nil && len(*s.Bucket) < 3 {
11789		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
11790	}
11791	if s.LifecycleConfiguration != nil {
11792		if err := s.LifecycleConfiguration.Validate(); err != nil {
11793			invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams))
11794		}
11795	}
11796
11797	if invalidParams.Len() > 0 {
11798		return invalidParams
11799	}
11800	return nil
11801}
11802
11803// SetAccountId sets the AccountId field's value.
11804func (s *PutBucketLifecycleConfigurationInput) SetAccountId(v string) *PutBucketLifecycleConfigurationInput {
11805	s.AccountId = &v
11806	return s
11807}
11808
11809// SetBucket sets the Bucket field's value.
11810func (s *PutBucketLifecycleConfigurationInput) SetBucket(v string) *PutBucketLifecycleConfigurationInput {
11811	s.Bucket = &v
11812	return s
11813}
11814
11815// SetLifecycleConfiguration sets the LifecycleConfiguration field's value.
11816func (s *PutBucketLifecycleConfigurationInput) SetLifecycleConfiguration(v *LifecycleConfiguration) *PutBucketLifecycleConfigurationInput {
11817	s.LifecycleConfiguration = v
11818	return s
11819}
11820
11821func (s *PutBucketLifecycleConfigurationInput) hostLabels() map[string]string {
11822	return map[string]string{
11823		"AccountId": aws.StringValue(s.AccountId),
11824	}
11825}
11826
11827func (s *PutBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
11828	if s.Bucket == nil {
11829		return nil, fmt.Errorf("member Bucket is nil")
11830	}
11831	return parseEndpointARN(*s.Bucket)
11832}
11833
11834func (s *PutBucketLifecycleConfigurationInput) hasEndpointARN() bool {
11835	if s.Bucket == nil {
11836		return false
11837	}
11838	return arn.IsARN(*s.Bucket)
11839}
11840
11841// updateArnableField updates the value of the input field that
11842// takes an ARN as an input. This method is useful to backfill
11843// the parsed resource name from ARN into the input member.
11844// It returns a pointer to a modified copy of input and an error.
11845// Note that original input is not modified.
11846func (s PutBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
11847	if s.Bucket == nil {
11848		return nil, fmt.Errorf("member Bucket is nil")
11849	}
11850	s.Bucket = aws.String(v)
11851	return &s, nil
11852}
11853
11854// updateAccountID returns a pointer to a modified copy of input,
11855// if account id is not provided, we update the account id in modified input
11856// if account id is provided, but doesn't match with the one in ARN, we throw an error
11857// if account id is not updated, we return nil. Note that original input is not modified.
11858func (s PutBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
11859	if s.AccountId == nil {
11860		s.AccountId = aws.String(accountId)
11861		return &s, nil
11862	} else if *s.AccountId != accountId {
11863		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
11864	}
11865	return nil, nil
11866}
11867
11868type PutBucketLifecycleConfigurationOutput struct {
11869	_ struct{} `type:"structure"`
11870}
11871
11872// String returns the string representation
11873func (s PutBucketLifecycleConfigurationOutput) String() string {
11874	return awsutil.Prettify(s)
11875}
11876
11877// GoString returns the string representation
11878func (s PutBucketLifecycleConfigurationOutput) GoString() string {
11879	return s.String()
11880}
11881
11882type PutBucketPolicyInput struct {
11883	_ struct{} `locationName:"PutBucketPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
11884
11885	// The AWS account ID of the Outposts bucket.
11886	//
11887	// AccountId is a required field
11888	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11889
11890	// Specifies the bucket.
11891	//
11892	// For using this parameter with Amazon S3 on Outposts with the REST API, you
11893	// must specify the name and the x-amz-outpost-id as well.
11894	//
11895	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
11896	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
11897	// For example, to access the bucket reports through outpost my-outpost owned
11898	// 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.
11899	// The value must be URL encoded.
11900	//
11901	// Bucket is a required field
11902	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
11903
11904	// Set this parameter to true to confirm that you want to remove your permissions
11905	// to change this bucket policy in the future.
11906	//
11907	// This is not supported by Amazon S3 on Outposts buckets.
11908	ConfirmRemoveSelfBucketAccess *bool `location:"header" locationName:"x-amz-confirm-remove-self-bucket-access" type:"boolean"`
11909
11910	// The bucket policy as a JSON document.
11911	//
11912	// Policy is a required field
11913	Policy *string `type:"string" required:"true"`
11914}
11915
11916// String returns the string representation
11917func (s PutBucketPolicyInput) String() string {
11918	return awsutil.Prettify(s)
11919}
11920
11921// GoString returns the string representation
11922func (s PutBucketPolicyInput) GoString() string {
11923	return s.String()
11924}
11925
11926// Validate inspects the fields of the type to determine if they are valid.
11927func (s *PutBucketPolicyInput) Validate() error {
11928	invalidParams := request.ErrInvalidParams{Context: "PutBucketPolicyInput"}
11929	if s.AccountId == nil {
11930		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11931	}
11932	if s.AccountId != nil && len(*s.AccountId) < 1 {
11933		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11934	}
11935	if s.Bucket == nil {
11936		invalidParams.Add(request.NewErrParamRequired("Bucket"))
11937	}
11938	if s.Bucket != nil && len(*s.Bucket) < 3 {
11939		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
11940	}
11941	if s.Policy == nil {
11942		invalidParams.Add(request.NewErrParamRequired("Policy"))
11943	}
11944
11945	if invalidParams.Len() > 0 {
11946		return invalidParams
11947	}
11948	return nil
11949}
11950
11951// SetAccountId sets the AccountId field's value.
11952func (s *PutBucketPolicyInput) SetAccountId(v string) *PutBucketPolicyInput {
11953	s.AccountId = &v
11954	return s
11955}
11956
11957// SetBucket sets the Bucket field's value.
11958func (s *PutBucketPolicyInput) SetBucket(v string) *PutBucketPolicyInput {
11959	s.Bucket = &v
11960	return s
11961}
11962
11963// SetConfirmRemoveSelfBucketAccess sets the ConfirmRemoveSelfBucketAccess field's value.
11964func (s *PutBucketPolicyInput) SetConfirmRemoveSelfBucketAccess(v bool) *PutBucketPolicyInput {
11965	s.ConfirmRemoveSelfBucketAccess = &v
11966	return s
11967}
11968
11969// SetPolicy sets the Policy field's value.
11970func (s *PutBucketPolicyInput) SetPolicy(v string) *PutBucketPolicyInput {
11971	s.Policy = &v
11972	return s
11973}
11974
11975func (s *PutBucketPolicyInput) hostLabels() map[string]string {
11976	return map[string]string{
11977		"AccountId": aws.StringValue(s.AccountId),
11978	}
11979}
11980
11981func (s *PutBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
11982	if s.Bucket == nil {
11983		return nil, fmt.Errorf("member Bucket is nil")
11984	}
11985	return parseEndpointARN(*s.Bucket)
11986}
11987
11988func (s *PutBucketPolicyInput) hasEndpointARN() bool {
11989	if s.Bucket == nil {
11990		return false
11991	}
11992	return arn.IsARN(*s.Bucket)
11993}
11994
11995// updateArnableField updates the value of the input field that
11996// takes an ARN as an input. This method is useful to backfill
11997// the parsed resource name from ARN into the input member.
11998// It returns a pointer to a modified copy of input and an error.
11999// Note that original input is not modified.
12000func (s PutBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
12001	if s.Bucket == nil {
12002		return nil, fmt.Errorf("member Bucket is nil")
12003	}
12004	s.Bucket = aws.String(v)
12005	return &s, nil
12006}
12007
12008// updateAccountID returns a pointer to a modified copy of input,
12009// if account id is not provided, we update the account id in modified input
12010// if account id is provided, but doesn't match with the one in ARN, we throw an error
12011// if account id is not updated, we return nil. Note that original input is not modified.
12012func (s PutBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
12013	if s.AccountId == nil {
12014		s.AccountId = aws.String(accountId)
12015		return &s, nil
12016	} else if *s.AccountId != accountId {
12017		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
12018	}
12019	return nil, nil
12020}
12021
12022type PutBucketPolicyOutput struct {
12023	_ struct{} `type:"structure"`
12024}
12025
12026// String returns the string representation
12027func (s PutBucketPolicyOutput) String() string {
12028	return awsutil.Prettify(s)
12029}
12030
12031// GoString returns the string representation
12032func (s PutBucketPolicyOutput) GoString() string {
12033	return s.String()
12034}
12035
12036type PutBucketTaggingInput struct {
12037	_ struct{} `locationName:"PutBucketTaggingRequest" type:"structure" payload:"Tagging"`
12038
12039	// The AWS account ID of the Outposts bucket.
12040	//
12041	// AccountId is a required field
12042	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
12043
12044	// The Amazon Resource Name (ARN) of the bucket.
12045	//
12046	// For using this parameter with Amazon S3 on Outposts with the REST API, you
12047	// must specify the name and the x-amz-outpost-id as well.
12048	//
12049	// For using this parameter with S3 on Outposts with the AWS SDK and CLI, you
12050	// must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
12051	// For example, to access the bucket reports through outpost my-outpost owned
12052	// 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.
12053	// The value must be URL encoded.
12054	//
12055	// Bucket is a required field
12056	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
12057
12058	// Tagging is a required field
12059	Tagging *Tagging `locationName:"Tagging" type:"structure" required:"true" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
12060}
12061
12062// String returns the string representation
12063func (s PutBucketTaggingInput) String() string {
12064	return awsutil.Prettify(s)
12065}
12066
12067// GoString returns the string representation
12068func (s PutBucketTaggingInput) GoString() string {
12069	return s.String()
12070}
12071
12072// Validate inspects the fields of the type to determine if they are valid.
12073func (s *PutBucketTaggingInput) Validate() error {
12074	invalidParams := request.ErrInvalidParams{Context: "PutBucketTaggingInput"}
12075	if s.AccountId == nil {
12076		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12077	}
12078	if s.AccountId != nil && len(*s.AccountId) < 1 {
12079		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12080	}
12081	if s.Bucket == nil {
12082		invalidParams.Add(request.NewErrParamRequired("Bucket"))
12083	}
12084	if s.Bucket != nil && len(*s.Bucket) < 3 {
12085		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
12086	}
12087	if s.Tagging == nil {
12088		invalidParams.Add(request.NewErrParamRequired("Tagging"))
12089	}
12090	if s.Tagging != nil {
12091		if err := s.Tagging.Validate(); err != nil {
12092			invalidParams.AddNested("Tagging", err.(request.ErrInvalidParams))
12093		}
12094	}
12095
12096	if invalidParams.Len() > 0 {
12097		return invalidParams
12098	}
12099	return nil
12100}
12101
12102// SetAccountId sets the AccountId field's value.
12103func (s *PutBucketTaggingInput) SetAccountId(v string) *PutBucketTaggingInput {
12104	s.AccountId = &v
12105	return s
12106}
12107
12108// SetBucket sets the Bucket field's value.
12109func (s *PutBucketTaggingInput) SetBucket(v string) *PutBucketTaggingInput {
12110	s.Bucket = &v
12111	return s
12112}
12113
12114// SetTagging sets the Tagging field's value.
12115func (s *PutBucketTaggingInput) SetTagging(v *Tagging) *PutBucketTaggingInput {
12116	s.Tagging = v
12117	return s
12118}
12119
12120func (s *PutBucketTaggingInput) hostLabels() map[string]string {
12121	return map[string]string{
12122		"AccountId": aws.StringValue(s.AccountId),
12123	}
12124}
12125
12126func (s *PutBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
12127	if s.Bucket == nil {
12128		return nil, fmt.Errorf("member Bucket is nil")
12129	}
12130	return parseEndpointARN(*s.Bucket)
12131}
12132
12133func (s *PutBucketTaggingInput) hasEndpointARN() bool {
12134	if s.Bucket == nil {
12135		return false
12136	}
12137	return arn.IsARN(*s.Bucket)
12138}
12139
12140// updateArnableField updates the value of the input field that
12141// takes an ARN as an input. This method is useful to backfill
12142// the parsed resource name from ARN into the input member.
12143// It returns a pointer to a modified copy of input and an error.
12144// Note that original input is not modified.
12145func (s PutBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
12146	if s.Bucket == nil {
12147		return nil, fmt.Errorf("member Bucket is nil")
12148	}
12149	s.Bucket = aws.String(v)
12150	return &s, nil
12151}
12152
12153// updateAccountID returns a pointer to a modified copy of input,
12154// if account id is not provided, we update the account id in modified input
12155// if account id is provided, but doesn't match with the one in ARN, we throw an error
12156// if account id is not updated, we return nil. Note that original input is not modified.
12157func (s PutBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
12158	if s.AccountId == nil {
12159		s.AccountId = aws.String(accountId)
12160		return &s, nil
12161	} else if *s.AccountId != accountId {
12162		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
12163	}
12164	return nil, nil
12165}
12166
12167type PutBucketTaggingOutput struct {
12168	_ struct{} `type:"structure"`
12169}
12170
12171// String returns the string representation
12172func (s PutBucketTaggingOutput) String() string {
12173	return awsutil.Prettify(s)
12174}
12175
12176// GoString returns the string representation
12177func (s PutBucketTaggingOutput) GoString() string {
12178	return s.String()
12179}
12180
12181type PutJobTaggingInput struct {
12182	_ struct{} `locationName:"PutJobTaggingRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
12183
12184	// The AWS account ID associated with the S3 Batch Operations job.
12185	//
12186	// AccountId is a required field
12187	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
12188
12189	// The ID for the S3 Batch Operations job whose tags you want to replace.
12190	//
12191	// JobId is a required field
12192	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
12193
12194	// The set of tags to associate with the S3 Batch Operations job.
12195	//
12196	// Tags is a required field
12197	Tags []*S3Tag `type:"list" required:"true"`
12198}
12199
12200// String returns the string representation
12201func (s PutJobTaggingInput) String() string {
12202	return awsutil.Prettify(s)
12203}
12204
12205// GoString returns the string representation
12206func (s PutJobTaggingInput) GoString() string {
12207	return s.String()
12208}
12209
12210// Validate inspects the fields of the type to determine if they are valid.
12211func (s *PutJobTaggingInput) Validate() error {
12212	invalidParams := request.ErrInvalidParams{Context: "PutJobTaggingInput"}
12213	if s.AccountId == nil {
12214		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12215	}
12216	if s.AccountId != nil && len(*s.AccountId) < 1 {
12217		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12218	}
12219	if s.JobId == nil {
12220		invalidParams.Add(request.NewErrParamRequired("JobId"))
12221	}
12222	if s.JobId != nil && len(*s.JobId) < 5 {
12223		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
12224	}
12225	if s.Tags == nil {
12226		invalidParams.Add(request.NewErrParamRequired("Tags"))
12227	}
12228	if s.Tags != nil {
12229		for i, v := range s.Tags {
12230			if v == nil {
12231				continue
12232			}
12233			if err := v.Validate(); err != nil {
12234				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12235			}
12236		}
12237	}
12238
12239	if invalidParams.Len() > 0 {
12240		return invalidParams
12241	}
12242	return nil
12243}
12244
12245// SetAccountId sets the AccountId field's value.
12246func (s *PutJobTaggingInput) SetAccountId(v string) *PutJobTaggingInput {
12247	s.AccountId = &v
12248	return s
12249}
12250
12251// SetJobId sets the JobId field's value.
12252func (s *PutJobTaggingInput) SetJobId(v string) *PutJobTaggingInput {
12253	s.JobId = &v
12254	return s
12255}
12256
12257// SetTags sets the Tags field's value.
12258func (s *PutJobTaggingInput) SetTags(v []*S3Tag) *PutJobTaggingInput {
12259	s.Tags = v
12260	return s
12261}
12262
12263func (s *PutJobTaggingInput) hostLabels() map[string]string {
12264	return map[string]string{
12265		"AccountId": aws.StringValue(s.AccountId),
12266	}
12267}
12268
12269type PutJobTaggingOutput struct {
12270	_ struct{} `type:"structure"`
12271}
12272
12273// String returns the string representation
12274func (s PutJobTaggingOutput) String() string {
12275	return awsutil.Prettify(s)
12276}
12277
12278// GoString returns the string representation
12279func (s PutJobTaggingOutput) GoString() string {
12280	return s.String()
12281}
12282
12283type PutPublicAccessBlockInput struct {
12284	_ struct{} `locationName:"PutPublicAccessBlockRequest" type:"structure" payload:"PublicAccessBlockConfiguration"`
12285
12286	// The account ID for the AWS account whose PublicAccessBlock configuration
12287	// you want to set.
12288	//
12289	// AccountId is a required field
12290	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
12291
12292	// The PublicAccessBlock configuration that you want to apply to the specified
12293	// AWS account.
12294	//
12295	// PublicAccessBlockConfiguration is a required field
12296	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `locationName:"PublicAccessBlockConfiguration" type:"structure" required:"true" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
12297}
12298
12299// String returns the string representation
12300func (s PutPublicAccessBlockInput) String() string {
12301	return awsutil.Prettify(s)
12302}
12303
12304// GoString returns the string representation
12305func (s PutPublicAccessBlockInput) GoString() string {
12306	return s.String()
12307}
12308
12309// Validate inspects the fields of the type to determine if they are valid.
12310func (s *PutPublicAccessBlockInput) Validate() error {
12311	invalidParams := request.ErrInvalidParams{Context: "PutPublicAccessBlockInput"}
12312	if s.AccountId == nil {
12313		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12314	}
12315	if s.AccountId != nil && len(*s.AccountId) < 1 {
12316		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12317	}
12318	if s.PublicAccessBlockConfiguration == nil {
12319		invalidParams.Add(request.NewErrParamRequired("PublicAccessBlockConfiguration"))
12320	}
12321
12322	if invalidParams.Len() > 0 {
12323		return invalidParams
12324	}
12325	return nil
12326}
12327
12328// SetAccountId sets the AccountId field's value.
12329func (s *PutPublicAccessBlockInput) SetAccountId(v string) *PutPublicAccessBlockInput {
12330	s.AccountId = &v
12331	return s
12332}
12333
12334// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
12335func (s *PutPublicAccessBlockInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *PutPublicAccessBlockInput {
12336	s.PublicAccessBlockConfiguration = v
12337	return s
12338}
12339
12340func (s *PutPublicAccessBlockInput) hostLabels() map[string]string {
12341	return map[string]string{
12342		"AccountId": aws.StringValue(s.AccountId),
12343	}
12344}
12345
12346type PutPublicAccessBlockOutput struct {
12347	_ struct{} `type:"structure"`
12348}
12349
12350// String returns the string representation
12351func (s PutPublicAccessBlockOutput) String() string {
12352	return awsutil.Prettify(s)
12353}
12354
12355// GoString returns the string representation
12356func (s PutPublicAccessBlockOutput) GoString() string {
12357	return s.String()
12358}
12359
12360type PutStorageLensConfigurationInput struct {
12361	_ struct{} `locationName:"PutStorageLensConfigurationRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
12362
12363	// The account ID of the requester.
12364	//
12365	// AccountId is a required field
12366	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
12367
12368	// The ID of the S3 Storage Lens configuration.
12369	//
12370	// ConfigId is a required field
12371	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
12372
12373	// The S3 Storage Lens configuration.
12374	//
12375	// StorageLensConfiguration is a required field
12376	StorageLensConfiguration *StorageLensConfiguration `type:"structure" required:"true"`
12377
12378	// The tag set of the S3 Storage Lens configuration.
12379	//
12380	// You can set up to a maximum of 50 tags.
12381	Tags []*StorageLensTag `locationNameList:"Tag" type:"list"`
12382}
12383
12384// String returns the string representation
12385func (s PutStorageLensConfigurationInput) String() string {
12386	return awsutil.Prettify(s)
12387}
12388
12389// GoString returns the string representation
12390func (s PutStorageLensConfigurationInput) GoString() string {
12391	return s.String()
12392}
12393
12394// Validate inspects the fields of the type to determine if they are valid.
12395func (s *PutStorageLensConfigurationInput) Validate() error {
12396	invalidParams := request.ErrInvalidParams{Context: "PutStorageLensConfigurationInput"}
12397	if s.AccountId == nil {
12398		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12399	}
12400	if s.AccountId != nil && len(*s.AccountId) < 1 {
12401		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12402	}
12403	if s.ConfigId == nil {
12404		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
12405	}
12406	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
12407		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
12408	}
12409	if s.StorageLensConfiguration == nil {
12410		invalidParams.Add(request.NewErrParamRequired("StorageLensConfiguration"))
12411	}
12412	if s.StorageLensConfiguration != nil {
12413		if err := s.StorageLensConfiguration.Validate(); err != nil {
12414			invalidParams.AddNested("StorageLensConfiguration", err.(request.ErrInvalidParams))
12415		}
12416	}
12417	if s.Tags != nil {
12418		for i, v := range s.Tags {
12419			if v == nil {
12420				continue
12421			}
12422			if err := v.Validate(); err != nil {
12423				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12424			}
12425		}
12426	}
12427
12428	if invalidParams.Len() > 0 {
12429		return invalidParams
12430	}
12431	return nil
12432}
12433
12434// SetAccountId sets the AccountId field's value.
12435func (s *PutStorageLensConfigurationInput) SetAccountId(v string) *PutStorageLensConfigurationInput {
12436	s.AccountId = &v
12437	return s
12438}
12439
12440// SetConfigId sets the ConfigId field's value.
12441func (s *PutStorageLensConfigurationInput) SetConfigId(v string) *PutStorageLensConfigurationInput {
12442	s.ConfigId = &v
12443	return s
12444}
12445
12446// SetStorageLensConfiguration sets the StorageLensConfiguration field's value.
12447func (s *PutStorageLensConfigurationInput) SetStorageLensConfiguration(v *StorageLensConfiguration) *PutStorageLensConfigurationInput {
12448	s.StorageLensConfiguration = v
12449	return s
12450}
12451
12452// SetTags sets the Tags field's value.
12453func (s *PutStorageLensConfigurationInput) SetTags(v []*StorageLensTag) *PutStorageLensConfigurationInput {
12454	s.Tags = v
12455	return s
12456}
12457
12458func (s *PutStorageLensConfigurationInput) hostLabels() map[string]string {
12459	return map[string]string{
12460		"AccountId": aws.StringValue(s.AccountId),
12461	}
12462}
12463
12464type PutStorageLensConfigurationOutput struct {
12465	_ struct{} `type:"structure"`
12466}
12467
12468// String returns the string representation
12469func (s PutStorageLensConfigurationOutput) String() string {
12470	return awsutil.Prettify(s)
12471}
12472
12473// GoString returns the string representation
12474func (s PutStorageLensConfigurationOutput) GoString() string {
12475	return s.String()
12476}
12477
12478type PutStorageLensConfigurationTaggingInput struct {
12479	_ struct{} `locationName:"PutStorageLensConfigurationTaggingRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
12480
12481	// The account ID of the requester.
12482	//
12483	// AccountId is a required field
12484	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
12485
12486	// The ID of the S3 Storage Lens configuration.
12487	//
12488	// ConfigId is a required field
12489	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
12490
12491	// The tag set of the S3 Storage Lens configuration.
12492	//
12493	// You can set up to a maximum of 50 tags.
12494	//
12495	// Tags is a required field
12496	Tags []*StorageLensTag `locationNameList:"Tag" type:"list" required:"true"`
12497}
12498
12499// String returns the string representation
12500func (s PutStorageLensConfigurationTaggingInput) String() string {
12501	return awsutil.Prettify(s)
12502}
12503
12504// GoString returns the string representation
12505func (s PutStorageLensConfigurationTaggingInput) GoString() string {
12506	return s.String()
12507}
12508
12509// Validate inspects the fields of the type to determine if they are valid.
12510func (s *PutStorageLensConfigurationTaggingInput) Validate() error {
12511	invalidParams := request.ErrInvalidParams{Context: "PutStorageLensConfigurationTaggingInput"}
12512	if s.AccountId == nil {
12513		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12514	}
12515	if s.AccountId != nil && len(*s.AccountId) < 1 {
12516		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12517	}
12518	if s.ConfigId == nil {
12519		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
12520	}
12521	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
12522		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
12523	}
12524	if s.Tags == nil {
12525		invalidParams.Add(request.NewErrParamRequired("Tags"))
12526	}
12527	if s.Tags != nil {
12528		for i, v := range s.Tags {
12529			if v == nil {
12530				continue
12531			}
12532			if err := v.Validate(); err != nil {
12533				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12534			}
12535		}
12536	}
12537
12538	if invalidParams.Len() > 0 {
12539		return invalidParams
12540	}
12541	return nil
12542}
12543
12544// SetAccountId sets the AccountId field's value.
12545func (s *PutStorageLensConfigurationTaggingInput) SetAccountId(v string) *PutStorageLensConfigurationTaggingInput {
12546	s.AccountId = &v
12547	return s
12548}
12549
12550// SetConfigId sets the ConfigId field's value.
12551func (s *PutStorageLensConfigurationTaggingInput) SetConfigId(v string) *PutStorageLensConfigurationTaggingInput {
12552	s.ConfigId = &v
12553	return s
12554}
12555
12556// SetTags sets the Tags field's value.
12557func (s *PutStorageLensConfigurationTaggingInput) SetTags(v []*StorageLensTag) *PutStorageLensConfigurationTaggingInput {
12558	s.Tags = v
12559	return s
12560}
12561
12562func (s *PutStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
12563	return map[string]string{
12564		"AccountId": aws.StringValue(s.AccountId),
12565	}
12566}
12567
12568type PutStorageLensConfigurationTaggingOutput struct {
12569	_ struct{} `type:"structure"`
12570}
12571
12572// String returns the string representation
12573func (s PutStorageLensConfigurationTaggingOutput) String() string {
12574	return awsutil.Prettify(s)
12575}
12576
12577// GoString returns the string representation
12578func (s PutStorageLensConfigurationTaggingOutput) GoString() string {
12579	return s.String()
12580}
12581
12582// The container for the regional bucket.
12583type RegionalBucket struct {
12584	_ struct{} `type:"structure"`
12585
12586	// Bucket is a required field
12587	Bucket *string `min:"3" type:"string" required:"true"`
12588
12589	// The Amazon Resource Name (ARN) for the regional bucket.
12590	BucketArn *string `min:"4" type:"string"`
12591
12592	// The creation date of the regional bucket
12593	//
12594	// CreationDate is a required field
12595	CreationDate *time.Time `type:"timestamp" required:"true"`
12596
12597	// The AWS Outposts ID of the regional bucket.
12598	OutpostId *string `min:"1" type:"string"`
12599
12600	// PublicAccessBlockEnabled is a required field
12601	PublicAccessBlockEnabled *bool `type:"boolean" required:"true"`
12602}
12603
12604// String returns the string representation
12605func (s RegionalBucket) String() string {
12606	return awsutil.Prettify(s)
12607}
12608
12609// GoString returns the string representation
12610func (s RegionalBucket) GoString() string {
12611	return s.String()
12612}
12613
12614// SetBucket sets the Bucket field's value.
12615func (s *RegionalBucket) SetBucket(v string) *RegionalBucket {
12616	s.Bucket = &v
12617	return s
12618}
12619
12620// SetBucketArn sets the BucketArn field's value.
12621func (s *RegionalBucket) SetBucketArn(v string) *RegionalBucket {
12622	s.BucketArn = &v
12623	return s
12624}
12625
12626// SetCreationDate sets the CreationDate field's value.
12627func (s *RegionalBucket) SetCreationDate(v time.Time) *RegionalBucket {
12628	s.CreationDate = &v
12629	return s
12630}
12631
12632// SetOutpostId sets the OutpostId field's value.
12633func (s *RegionalBucket) SetOutpostId(v string) *RegionalBucket {
12634	s.OutpostId = &v
12635	return s
12636}
12637
12638// SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value.
12639func (s *RegionalBucket) SetPublicAccessBlockEnabled(v bool) *RegionalBucket {
12640	s.PublicAccessBlockEnabled = &v
12641	return s
12642}
12643
12644type S3AccessControlList struct {
12645	_ struct{} `type:"structure"`
12646
12647	Grants []*S3Grant `type:"list"`
12648
12649	// Owner is a required field
12650	Owner *S3ObjectOwner `type:"structure" required:"true"`
12651}
12652
12653// String returns the string representation
12654func (s S3AccessControlList) String() string {
12655	return awsutil.Prettify(s)
12656}
12657
12658// GoString returns the string representation
12659func (s S3AccessControlList) GoString() string {
12660	return s.String()
12661}
12662
12663// Validate inspects the fields of the type to determine if they are valid.
12664func (s *S3AccessControlList) Validate() error {
12665	invalidParams := request.ErrInvalidParams{Context: "S3AccessControlList"}
12666	if s.Owner == nil {
12667		invalidParams.Add(request.NewErrParamRequired("Owner"))
12668	}
12669	if s.Grants != nil {
12670		for i, v := range s.Grants {
12671			if v == nil {
12672				continue
12673			}
12674			if err := v.Validate(); err != nil {
12675				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Grants", i), err.(request.ErrInvalidParams))
12676			}
12677		}
12678	}
12679	if s.Owner != nil {
12680		if err := s.Owner.Validate(); err != nil {
12681			invalidParams.AddNested("Owner", err.(request.ErrInvalidParams))
12682		}
12683	}
12684
12685	if invalidParams.Len() > 0 {
12686		return invalidParams
12687	}
12688	return nil
12689}
12690
12691// SetGrants sets the Grants field's value.
12692func (s *S3AccessControlList) SetGrants(v []*S3Grant) *S3AccessControlList {
12693	s.Grants = v
12694	return s
12695}
12696
12697// SetOwner sets the Owner field's value.
12698func (s *S3AccessControlList) SetOwner(v *S3ObjectOwner) *S3AccessControlList {
12699	s.Owner = v
12700	return s
12701}
12702
12703type S3AccessControlPolicy struct {
12704	_ struct{} `type:"structure"`
12705
12706	AccessControlList *S3AccessControlList `type:"structure"`
12707
12708	CannedAccessControlList *string `type:"string" enum:"S3CannedAccessControlList"`
12709}
12710
12711// String returns the string representation
12712func (s S3AccessControlPolicy) String() string {
12713	return awsutil.Prettify(s)
12714}
12715
12716// GoString returns the string representation
12717func (s S3AccessControlPolicy) GoString() string {
12718	return s.String()
12719}
12720
12721// Validate inspects the fields of the type to determine if they are valid.
12722func (s *S3AccessControlPolicy) Validate() error {
12723	invalidParams := request.ErrInvalidParams{Context: "S3AccessControlPolicy"}
12724	if s.AccessControlList != nil {
12725		if err := s.AccessControlList.Validate(); err != nil {
12726			invalidParams.AddNested("AccessControlList", err.(request.ErrInvalidParams))
12727		}
12728	}
12729
12730	if invalidParams.Len() > 0 {
12731		return invalidParams
12732	}
12733	return nil
12734}
12735
12736// SetAccessControlList sets the AccessControlList field's value.
12737func (s *S3AccessControlPolicy) SetAccessControlList(v *S3AccessControlList) *S3AccessControlPolicy {
12738	s.AccessControlList = v
12739	return s
12740}
12741
12742// SetCannedAccessControlList sets the CannedAccessControlList field's value.
12743func (s *S3AccessControlPolicy) SetCannedAccessControlList(v string) *S3AccessControlPolicy {
12744	s.CannedAccessControlList = &v
12745	return s
12746}
12747
12748// A container for the bucket where the Amazon S3 Storage Lens metrics export
12749// files are located.
12750type S3BucketDestination struct {
12751	_ struct{} `type:"structure"`
12752
12753	// The account ID of the owner of the S3 Storage Lens metrics export bucket.
12754	//
12755	// AccountId is a required field
12756	AccountId *string `type:"string" required:"true"`
12757
12758	// The Amazon Resource Name (ARN) of the bucket. This property is read-only
12759	// and follows the following format: arn:aws:s3:us-east-1:example-account-id:bucket/your-destination-bucket-name
12760	//
12761	// Arn is a required field
12762	Arn *string `min:"1" type:"string" required:"true"`
12763
12764	// The container for the type encryption of the metrics exports in this bucket.
12765	Encryption *StorageLensDataExportEncryption `type:"structure"`
12766
12767	// Format is a required field
12768	Format *string `type:"string" required:"true" enum:"Format"`
12769
12770	// The schema version of the export file.
12771	//
12772	// OutputSchemaVersion is a required field
12773	OutputSchemaVersion *string `type:"string" required:"true" enum:"OutputSchemaVersion"`
12774
12775	// The prefix of the destination bucket where the metrics export will be delivered.
12776	Prefix *string `type:"string"`
12777}
12778
12779// String returns the string representation
12780func (s S3BucketDestination) String() string {
12781	return awsutil.Prettify(s)
12782}
12783
12784// GoString returns the string representation
12785func (s S3BucketDestination) GoString() string {
12786	return s.String()
12787}
12788
12789// Validate inspects the fields of the type to determine if they are valid.
12790func (s *S3BucketDestination) Validate() error {
12791	invalidParams := request.ErrInvalidParams{Context: "S3BucketDestination"}
12792	if s.AccountId == nil {
12793		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12794	}
12795	if s.Arn == nil {
12796		invalidParams.Add(request.NewErrParamRequired("Arn"))
12797	}
12798	if s.Arn != nil && len(*s.Arn) < 1 {
12799		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
12800	}
12801	if s.Format == nil {
12802		invalidParams.Add(request.NewErrParamRequired("Format"))
12803	}
12804	if s.OutputSchemaVersion == nil {
12805		invalidParams.Add(request.NewErrParamRequired("OutputSchemaVersion"))
12806	}
12807	if s.Encryption != nil {
12808		if err := s.Encryption.Validate(); err != nil {
12809			invalidParams.AddNested("Encryption", err.(request.ErrInvalidParams))
12810		}
12811	}
12812
12813	if invalidParams.Len() > 0 {
12814		return invalidParams
12815	}
12816	return nil
12817}
12818
12819// SetAccountId sets the AccountId field's value.
12820func (s *S3BucketDestination) SetAccountId(v string) *S3BucketDestination {
12821	s.AccountId = &v
12822	return s
12823}
12824
12825// SetArn sets the Arn field's value.
12826func (s *S3BucketDestination) SetArn(v string) *S3BucketDestination {
12827	s.Arn = &v
12828	return s
12829}
12830
12831// SetEncryption sets the Encryption field's value.
12832func (s *S3BucketDestination) SetEncryption(v *StorageLensDataExportEncryption) *S3BucketDestination {
12833	s.Encryption = v
12834	return s
12835}
12836
12837// SetFormat sets the Format field's value.
12838func (s *S3BucketDestination) SetFormat(v string) *S3BucketDestination {
12839	s.Format = &v
12840	return s
12841}
12842
12843// SetOutputSchemaVersion sets the OutputSchemaVersion field's value.
12844func (s *S3BucketDestination) SetOutputSchemaVersion(v string) *S3BucketDestination {
12845	s.OutputSchemaVersion = &v
12846	return s
12847}
12848
12849// SetPrefix sets the Prefix field's value.
12850func (s *S3BucketDestination) SetPrefix(v string) *S3BucketDestination {
12851	s.Prefix = &v
12852	return s
12853}
12854
12855// Contains the configuration parameters for a PUT Copy object operation. S3
12856// Batch Operations passes every object to the underlying PUT Copy object API.
12857// For more information about the parameters for this operation, see PUT Object
12858// - Copy (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html).
12859type S3CopyObjectOperation struct {
12860	_ struct{} `type:"structure"`
12861
12862	AccessControlGrants []*S3Grant `type:"list"`
12863
12864	CannedAccessControlList *string `type:"string" enum:"S3CannedAccessControlList"`
12865
12866	MetadataDirective *string `type:"string" enum:"S3MetadataDirective"`
12867
12868	ModifiedSinceConstraint *time.Time `type:"timestamp"`
12869
12870	NewObjectMetadata *S3ObjectMetadata `type:"structure"`
12871
12872	NewObjectTagging []*S3Tag `type:"list"`
12873
12874	// The legal hold status to be applied to all objects in the Batch Operations
12875	// job.
12876	ObjectLockLegalHoldStatus *string `type:"string" enum:"S3ObjectLockLegalHoldStatus"`
12877
12878	// The retention mode to be applied to all objects in the Batch Operations job.
12879	ObjectLockMode *string `type:"string" enum:"S3ObjectLockMode"`
12880
12881	// The date when the applied object retention configuration expires on all objects
12882	// in the Batch Operations job.
12883	ObjectLockRetainUntilDate *time.Time `type:"timestamp"`
12884
12885	// Specifies an optional metadata property for website redirects, x-amz-website-redirect-location.
12886	// Allows webpage redirects if the object is accessed through a website endpoint.
12887	RedirectLocation *string `min:"1" type:"string"`
12888
12889	RequesterPays *bool `type:"boolean"`
12890
12891	SSEAwsKmsKeyId *string `min:"1" type:"string"`
12892
12893	StorageClass *string `type:"string" enum:"S3StorageClass"`
12894
12895	// Specifies the folder prefix into which you would like the objects to be copied.
12896	// For example, to copy objects into a folder named "Folder1" in the destination
12897	// bucket, set the TargetKeyPrefix to "Folder1/".
12898	TargetKeyPrefix *string `min:"1" type:"string"`
12899
12900	// Specifies the destination bucket ARN for the batch copy operation. For example,
12901	// to copy objects to a bucket named "destinationBucket", set the TargetResource
12902	// to "arn:aws:s3:::destinationBucket".
12903	TargetResource *string `min:"1" type:"string"`
12904
12905	UnModifiedSinceConstraint *time.Time `type:"timestamp"`
12906}
12907
12908// String returns the string representation
12909func (s S3CopyObjectOperation) String() string {
12910	return awsutil.Prettify(s)
12911}
12912
12913// GoString returns the string representation
12914func (s S3CopyObjectOperation) GoString() string {
12915	return s.String()
12916}
12917
12918// Validate inspects the fields of the type to determine if they are valid.
12919func (s *S3CopyObjectOperation) Validate() error {
12920	invalidParams := request.ErrInvalidParams{Context: "S3CopyObjectOperation"}
12921	if s.RedirectLocation != nil && len(*s.RedirectLocation) < 1 {
12922		invalidParams.Add(request.NewErrParamMinLen("RedirectLocation", 1))
12923	}
12924	if s.SSEAwsKmsKeyId != nil && len(*s.SSEAwsKmsKeyId) < 1 {
12925		invalidParams.Add(request.NewErrParamMinLen("SSEAwsKmsKeyId", 1))
12926	}
12927	if s.TargetKeyPrefix != nil && len(*s.TargetKeyPrefix) < 1 {
12928		invalidParams.Add(request.NewErrParamMinLen("TargetKeyPrefix", 1))
12929	}
12930	if s.TargetResource != nil && len(*s.TargetResource) < 1 {
12931		invalidParams.Add(request.NewErrParamMinLen("TargetResource", 1))
12932	}
12933	if s.AccessControlGrants != nil {
12934		for i, v := range s.AccessControlGrants {
12935			if v == nil {
12936				continue
12937			}
12938			if err := v.Validate(); err != nil {
12939				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessControlGrants", i), err.(request.ErrInvalidParams))
12940			}
12941		}
12942	}
12943	if s.NewObjectMetadata != nil {
12944		if err := s.NewObjectMetadata.Validate(); err != nil {
12945			invalidParams.AddNested("NewObjectMetadata", err.(request.ErrInvalidParams))
12946		}
12947	}
12948	if s.NewObjectTagging != nil {
12949		for i, v := range s.NewObjectTagging {
12950			if v == nil {
12951				continue
12952			}
12953			if err := v.Validate(); err != nil {
12954				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NewObjectTagging", i), err.(request.ErrInvalidParams))
12955			}
12956		}
12957	}
12958
12959	if invalidParams.Len() > 0 {
12960		return invalidParams
12961	}
12962	return nil
12963}
12964
12965// SetAccessControlGrants sets the AccessControlGrants field's value.
12966func (s *S3CopyObjectOperation) SetAccessControlGrants(v []*S3Grant) *S3CopyObjectOperation {
12967	s.AccessControlGrants = v
12968	return s
12969}
12970
12971// SetCannedAccessControlList sets the CannedAccessControlList field's value.
12972func (s *S3CopyObjectOperation) SetCannedAccessControlList(v string) *S3CopyObjectOperation {
12973	s.CannedAccessControlList = &v
12974	return s
12975}
12976
12977// SetMetadataDirective sets the MetadataDirective field's value.
12978func (s *S3CopyObjectOperation) SetMetadataDirective(v string) *S3CopyObjectOperation {
12979	s.MetadataDirective = &v
12980	return s
12981}
12982
12983// SetModifiedSinceConstraint sets the ModifiedSinceConstraint field's value.
12984func (s *S3CopyObjectOperation) SetModifiedSinceConstraint(v time.Time) *S3CopyObjectOperation {
12985	s.ModifiedSinceConstraint = &v
12986	return s
12987}
12988
12989// SetNewObjectMetadata sets the NewObjectMetadata field's value.
12990func (s *S3CopyObjectOperation) SetNewObjectMetadata(v *S3ObjectMetadata) *S3CopyObjectOperation {
12991	s.NewObjectMetadata = v
12992	return s
12993}
12994
12995// SetNewObjectTagging sets the NewObjectTagging field's value.
12996func (s *S3CopyObjectOperation) SetNewObjectTagging(v []*S3Tag) *S3CopyObjectOperation {
12997	s.NewObjectTagging = v
12998	return s
12999}
13000
13001// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
13002func (s *S3CopyObjectOperation) SetObjectLockLegalHoldStatus(v string) *S3CopyObjectOperation {
13003	s.ObjectLockLegalHoldStatus = &v
13004	return s
13005}
13006
13007// SetObjectLockMode sets the ObjectLockMode field's value.
13008func (s *S3CopyObjectOperation) SetObjectLockMode(v string) *S3CopyObjectOperation {
13009	s.ObjectLockMode = &v
13010	return s
13011}
13012
13013// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
13014func (s *S3CopyObjectOperation) SetObjectLockRetainUntilDate(v time.Time) *S3CopyObjectOperation {
13015	s.ObjectLockRetainUntilDate = &v
13016	return s
13017}
13018
13019// SetRedirectLocation sets the RedirectLocation field's value.
13020func (s *S3CopyObjectOperation) SetRedirectLocation(v string) *S3CopyObjectOperation {
13021	s.RedirectLocation = &v
13022	return s
13023}
13024
13025// SetRequesterPays sets the RequesterPays field's value.
13026func (s *S3CopyObjectOperation) SetRequesterPays(v bool) *S3CopyObjectOperation {
13027	s.RequesterPays = &v
13028	return s
13029}
13030
13031// SetSSEAwsKmsKeyId sets the SSEAwsKmsKeyId field's value.
13032func (s *S3CopyObjectOperation) SetSSEAwsKmsKeyId(v string) *S3CopyObjectOperation {
13033	s.SSEAwsKmsKeyId = &v
13034	return s
13035}
13036
13037// SetStorageClass sets the StorageClass field's value.
13038func (s *S3CopyObjectOperation) SetStorageClass(v string) *S3CopyObjectOperation {
13039	s.StorageClass = &v
13040	return s
13041}
13042
13043// SetTargetKeyPrefix sets the TargetKeyPrefix field's value.
13044func (s *S3CopyObjectOperation) SetTargetKeyPrefix(v string) *S3CopyObjectOperation {
13045	s.TargetKeyPrefix = &v
13046	return s
13047}
13048
13049// SetTargetResource sets the TargetResource field's value.
13050func (s *S3CopyObjectOperation) SetTargetResource(v string) *S3CopyObjectOperation {
13051	s.TargetResource = &v
13052	return s
13053}
13054
13055// SetUnModifiedSinceConstraint sets the UnModifiedSinceConstraint field's value.
13056func (s *S3CopyObjectOperation) SetUnModifiedSinceConstraint(v time.Time) *S3CopyObjectOperation {
13057	s.UnModifiedSinceConstraint = &v
13058	return s
13059}
13060
13061// Contains no configuration parameters because the DELETE Object tagging API
13062// only accepts the bucket name and key name as parameters, which are defined
13063// in the job's manifest.
13064type S3DeleteObjectTaggingOperation struct {
13065	_ struct{} `type:"structure"`
13066}
13067
13068// String returns the string representation
13069func (s S3DeleteObjectTaggingOperation) String() string {
13070	return awsutil.Prettify(s)
13071}
13072
13073// GoString returns the string representation
13074func (s S3DeleteObjectTaggingOperation) GoString() string {
13075	return s.String()
13076}
13077
13078type S3Grant struct {
13079	_ struct{} `type:"structure"`
13080
13081	Grantee *S3Grantee `type:"structure"`
13082
13083	Permission *string `type:"string" enum:"S3Permission"`
13084}
13085
13086// String returns the string representation
13087func (s S3Grant) String() string {
13088	return awsutil.Prettify(s)
13089}
13090
13091// GoString returns the string representation
13092func (s S3Grant) GoString() string {
13093	return s.String()
13094}
13095
13096// Validate inspects the fields of the type to determine if they are valid.
13097func (s *S3Grant) Validate() error {
13098	invalidParams := request.ErrInvalidParams{Context: "S3Grant"}
13099	if s.Grantee != nil {
13100		if err := s.Grantee.Validate(); err != nil {
13101			invalidParams.AddNested("Grantee", err.(request.ErrInvalidParams))
13102		}
13103	}
13104
13105	if invalidParams.Len() > 0 {
13106		return invalidParams
13107	}
13108	return nil
13109}
13110
13111// SetGrantee sets the Grantee field's value.
13112func (s *S3Grant) SetGrantee(v *S3Grantee) *S3Grant {
13113	s.Grantee = v
13114	return s
13115}
13116
13117// SetPermission sets the Permission field's value.
13118func (s *S3Grant) SetPermission(v string) *S3Grant {
13119	s.Permission = &v
13120	return s
13121}
13122
13123type S3Grantee struct {
13124	_ struct{} `type:"structure"`
13125
13126	DisplayName *string `min:"1" type:"string"`
13127
13128	Identifier *string `min:"1" type:"string"`
13129
13130	TypeIdentifier *string `type:"string" enum:"S3GranteeTypeIdentifier"`
13131}
13132
13133// String returns the string representation
13134func (s S3Grantee) String() string {
13135	return awsutil.Prettify(s)
13136}
13137
13138// GoString returns the string representation
13139func (s S3Grantee) GoString() string {
13140	return s.String()
13141}
13142
13143// Validate inspects the fields of the type to determine if they are valid.
13144func (s *S3Grantee) Validate() error {
13145	invalidParams := request.ErrInvalidParams{Context: "S3Grantee"}
13146	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
13147		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
13148	}
13149	if s.Identifier != nil && len(*s.Identifier) < 1 {
13150		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
13151	}
13152
13153	if invalidParams.Len() > 0 {
13154		return invalidParams
13155	}
13156	return nil
13157}
13158
13159// SetDisplayName sets the DisplayName field's value.
13160func (s *S3Grantee) SetDisplayName(v string) *S3Grantee {
13161	s.DisplayName = &v
13162	return s
13163}
13164
13165// SetIdentifier sets the Identifier field's value.
13166func (s *S3Grantee) SetIdentifier(v string) *S3Grantee {
13167	s.Identifier = &v
13168	return s
13169}
13170
13171// SetTypeIdentifier sets the TypeIdentifier field's value.
13172func (s *S3Grantee) SetTypeIdentifier(v string) *S3Grantee {
13173	s.TypeIdentifier = &v
13174	return s
13175}
13176
13177// Contains the configuration parameters for an S3 Initiate Restore Object job.
13178// S3 Batch Operations passes every object to the underlying POST Object restore
13179// API. For more information about the parameters for this operation, see RestoreObject
13180// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOSTrestore.html#RESTObjectPOSTrestore-restore-request).
13181type S3InitiateRestoreObjectOperation struct {
13182	_ struct{} `type:"structure"`
13183
13184	// This argument specifies how long the S3 Glacier or S3 Glacier Deep Archive
13185	// object remains available in Amazon S3. S3 Initiate Restore Object jobs that
13186	// target S3 Glacier and S3 Glacier Deep Archive objects require ExpirationInDays
13187	// set to 1 or greater.
13188	//
13189	// Conversely, do not set ExpirationInDays when creating S3 Initiate Restore
13190	// Object jobs that target S3 Intelligent-Tiering Archive Access and Deep Archive
13191	// Access tier objects. Objects in S3 Intelligent-Tiering archive access tiers
13192	// are not subject to restore expiry, so specifying ExpirationInDays results
13193	// in restore request failure.
13194	//
13195	// S3 Batch Operations jobs can operate either on S3 Glacier and S3 Glacier
13196	// Deep Archive storage class objects or on S3 Intelligent-Tiering Archive Access
13197	// and Deep Archive Access storage tier objects, but not both types in the same
13198	// job. If you need to restore objects of both types you must create separate
13199	// Batch Operations jobs.
13200	ExpirationInDays *int64 `type:"integer"`
13201
13202	// S3 Batch Operations supports STANDARD and BULK retrieval tiers, but not the
13203	// EXPEDITED retrieval tier.
13204	GlacierJobTier *string `type:"string" enum:"S3GlacierJobTier"`
13205}
13206
13207// String returns the string representation
13208func (s S3InitiateRestoreObjectOperation) String() string {
13209	return awsutil.Prettify(s)
13210}
13211
13212// GoString returns the string representation
13213func (s S3InitiateRestoreObjectOperation) GoString() string {
13214	return s.String()
13215}
13216
13217// SetExpirationInDays sets the ExpirationInDays field's value.
13218func (s *S3InitiateRestoreObjectOperation) SetExpirationInDays(v int64) *S3InitiateRestoreObjectOperation {
13219	s.ExpirationInDays = &v
13220	return s
13221}
13222
13223// SetGlacierJobTier sets the GlacierJobTier field's value.
13224func (s *S3InitiateRestoreObjectOperation) SetGlacierJobTier(v string) *S3InitiateRestoreObjectOperation {
13225	s.GlacierJobTier = &v
13226	return s
13227}
13228
13229// Whether S3 Object Lock legal hold will be applied to objects in an S3 Batch
13230// Operations job.
13231type S3ObjectLockLegalHold struct {
13232	_ struct{} `type:"structure"`
13233
13234	// The Object Lock legal hold status to be applied to all objects in the Batch
13235	// Operations job.
13236	//
13237	// Status is a required field
13238	Status *string `type:"string" required:"true" enum:"S3ObjectLockLegalHoldStatus"`
13239}
13240
13241// String returns the string representation
13242func (s S3ObjectLockLegalHold) String() string {
13243	return awsutil.Prettify(s)
13244}
13245
13246// GoString returns the string representation
13247func (s S3ObjectLockLegalHold) GoString() string {
13248	return s.String()
13249}
13250
13251// Validate inspects the fields of the type to determine if they are valid.
13252func (s *S3ObjectLockLegalHold) Validate() error {
13253	invalidParams := request.ErrInvalidParams{Context: "S3ObjectLockLegalHold"}
13254	if s.Status == nil {
13255		invalidParams.Add(request.NewErrParamRequired("Status"))
13256	}
13257
13258	if invalidParams.Len() > 0 {
13259		return invalidParams
13260	}
13261	return nil
13262}
13263
13264// SetStatus sets the Status field's value.
13265func (s *S3ObjectLockLegalHold) SetStatus(v string) *S3ObjectLockLegalHold {
13266	s.Status = &v
13267	return s
13268}
13269
13270type S3ObjectMetadata struct {
13271	_ struct{} `type:"structure"`
13272
13273	CacheControl *string `min:"1" type:"string"`
13274
13275	ContentDisposition *string `min:"1" type:"string"`
13276
13277	ContentEncoding *string `min:"1" type:"string"`
13278
13279	ContentLanguage *string `min:"1" type:"string"`
13280
13281	ContentLength *int64 `type:"long"`
13282
13283	ContentMD5 *string `min:"1" type:"string"`
13284
13285	ContentType *string `min:"1" type:"string"`
13286
13287	HttpExpiresDate *time.Time `type:"timestamp"`
13288
13289	RequesterCharged *bool `type:"boolean"`
13290
13291	SSEAlgorithm *string `type:"string" enum:"S3SSEAlgorithm"`
13292
13293	UserMetadata map[string]*string `type:"map"`
13294}
13295
13296// String returns the string representation
13297func (s S3ObjectMetadata) String() string {
13298	return awsutil.Prettify(s)
13299}
13300
13301// GoString returns the string representation
13302func (s S3ObjectMetadata) GoString() string {
13303	return s.String()
13304}
13305
13306// Validate inspects the fields of the type to determine if they are valid.
13307func (s *S3ObjectMetadata) Validate() error {
13308	invalidParams := request.ErrInvalidParams{Context: "S3ObjectMetadata"}
13309	if s.CacheControl != nil && len(*s.CacheControl) < 1 {
13310		invalidParams.Add(request.NewErrParamMinLen("CacheControl", 1))
13311	}
13312	if s.ContentDisposition != nil && len(*s.ContentDisposition) < 1 {
13313		invalidParams.Add(request.NewErrParamMinLen("ContentDisposition", 1))
13314	}
13315	if s.ContentEncoding != nil && len(*s.ContentEncoding) < 1 {
13316		invalidParams.Add(request.NewErrParamMinLen("ContentEncoding", 1))
13317	}
13318	if s.ContentLanguage != nil && len(*s.ContentLanguage) < 1 {
13319		invalidParams.Add(request.NewErrParamMinLen("ContentLanguage", 1))
13320	}
13321	if s.ContentMD5 != nil && len(*s.ContentMD5) < 1 {
13322		invalidParams.Add(request.NewErrParamMinLen("ContentMD5", 1))
13323	}
13324	if s.ContentType != nil && len(*s.ContentType) < 1 {
13325		invalidParams.Add(request.NewErrParamMinLen("ContentType", 1))
13326	}
13327
13328	if invalidParams.Len() > 0 {
13329		return invalidParams
13330	}
13331	return nil
13332}
13333
13334// SetCacheControl sets the CacheControl field's value.
13335func (s *S3ObjectMetadata) SetCacheControl(v string) *S3ObjectMetadata {
13336	s.CacheControl = &v
13337	return s
13338}
13339
13340// SetContentDisposition sets the ContentDisposition field's value.
13341func (s *S3ObjectMetadata) SetContentDisposition(v string) *S3ObjectMetadata {
13342	s.ContentDisposition = &v
13343	return s
13344}
13345
13346// SetContentEncoding sets the ContentEncoding field's value.
13347func (s *S3ObjectMetadata) SetContentEncoding(v string) *S3ObjectMetadata {
13348	s.ContentEncoding = &v
13349	return s
13350}
13351
13352// SetContentLanguage sets the ContentLanguage field's value.
13353func (s *S3ObjectMetadata) SetContentLanguage(v string) *S3ObjectMetadata {
13354	s.ContentLanguage = &v
13355	return s
13356}
13357
13358// SetContentLength sets the ContentLength field's value.
13359func (s *S3ObjectMetadata) SetContentLength(v int64) *S3ObjectMetadata {
13360	s.ContentLength = &v
13361	return s
13362}
13363
13364// SetContentMD5 sets the ContentMD5 field's value.
13365func (s *S3ObjectMetadata) SetContentMD5(v string) *S3ObjectMetadata {
13366	s.ContentMD5 = &v
13367	return s
13368}
13369
13370// SetContentType sets the ContentType field's value.
13371func (s *S3ObjectMetadata) SetContentType(v string) *S3ObjectMetadata {
13372	s.ContentType = &v
13373	return s
13374}
13375
13376// SetHttpExpiresDate sets the HttpExpiresDate field's value.
13377func (s *S3ObjectMetadata) SetHttpExpiresDate(v time.Time) *S3ObjectMetadata {
13378	s.HttpExpiresDate = &v
13379	return s
13380}
13381
13382// SetRequesterCharged sets the RequesterCharged field's value.
13383func (s *S3ObjectMetadata) SetRequesterCharged(v bool) *S3ObjectMetadata {
13384	s.RequesterCharged = &v
13385	return s
13386}
13387
13388// SetSSEAlgorithm sets the SSEAlgorithm field's value.
13389func (s *S3ObjectMetadata) SetSSEAlgorithm(v string) *S3ObjectMetadata {
13390	s.SSEAlgorithm = &v
13391	return s
13392}
13393
13394// SetUserMetadata sets the UserMetadata field's value.
13395func (s *S3ObjectMetadata) SetUserMetadata(v map[string]*string) *S3ObjectMetadata {
13396	s.UserMetadata = v
13397	return s
13398}
13399
13400type S3ObjectOwner struct {
13401	_ struct{} `type:"structure"`
13402
13403	DisplayName *string `min:"1" type:"string"`
13404
13405	ID *string `min:"1" type:"string"`
13406}
13407
13408// String returns the string representation
13409func (s S3ObjectOwner) String() string {
13410	return awsutil.Prettify(s)
13411}
13412
13413// GoString returns the string representation
13414func (s S3ObjectOwner) GoString() string {
13415	return s.String()
13416}
13417
13418// Validate inspects the fields of the type to determine if they are valid.
13419func (s *S3ObjectOwner) Validate() error {
13420	invalidParams := request.ErrInvalidParams{Context: "S3ObjectOwner"}
13421	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
13422		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
13423	}
13424	if s.ID != nil && len(*s.ID) < 1 {
13425		invalidParams.Add(request.NewErrParamMinLen("ID", 1))
13426	}
13427
13428	if invalidParams.Len() > 0 {
13429		return invalidParams
13430	}
13431	return nil
13432}
13433
13434// SetDisplayName sets the DisplayName field's value.
13435func (s *S3ObjectOwner) SetDisplayName(v string) *S3ObjectOwner {
13436	s.DisplayName = &v
13437	return s
13438}
13439
13440// SetID sets the ID field's value.
13441func (s *S3ObjectOwner) SetID(v string) *S3ObjectOwner {
13442	s.ID = &v
13443	return s
13444}
13445
13446// Contains the S3 Object Lock retention mode to be applied to all objects in
13447// the S3 Batch Operations job. If you don't provide Mode and RetainUntilDate
13448// data types in your operation, you will remove the retention from your objects.
13449// For more information, see Using S3 Object Lock retention with S3 Batch Operations
13450// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
13451// in the Amazon Simple Storage Service User Guide.
13452type S3Retention struct {
13453	_ struct{} `type:"structure"`
13454
13455	// The Object Lock retention mode to be applied to all objects in the Batch
13456	// Operations job.
13457	Mode *string `type:"string" enum:"S3ObjectLockRetentionMode"`
13458
13459	// The date when the applied Object Lock retention will expire on all objects
13460	// set by the Batch Operations job.
13461	RetainUntilDate *time.Time `type:"timestamp"`
13462}
13463
13464// String returns the string representation
13465func (s S3Retention) String() string {
13466	return awsutil.Prettify(s)
13467}
13468
13469// GoString returns the string representation
13470func (s S3Retention) GoString() string {
13471	return s.String()
13472}
13473
13474// SetMode sets the Mode field's value.
13475func (s *S3Retention) SetMode(v string) *S3Retention {
13476	s.Mode = &v
13477	return s
13478}
13479
13480// SetRetainUntilDate sets the RetainUntilDate field's value.
13481func (s *S3Retention) SetRetainUntilDate(v time.Time) *S3Retention {
13482	s.RetainUntilDate = &v
13483	return s
13484}
13485
13486// Contains the configuration parameters for a Set Object ACL operation. S3
13487// Batch Operations passes every object to the underlying PUT Object acl API.
13488// For more information about the parameters for this operation, see PUT Object
13489// acl (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTacl.html).
13490type S3SetObjectAclOperation struct {
13491	_ struct{} `type:"structure"`
13492
13493	AccessControlPolicy *S3AccessControlPolicy `type:"structure"`
13494}
13495
13496// String returns the string representation
13497func (s S3SetObjectAclOperation) String() string {
13498	return awsutil.Prettify(s)
13499}
13500
13501// GoString returns the string representation
13502func (s S3SetObjectAclOperation) GoString() string {
13503	return s.String()
13504}
13505
13506// Validate inspects the fields of the type to determine if they are valid.
13507func (s *S3SetObjectAclOperation) Validate() error {
13508	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectAclOperation"}
13509	if s.AccessControlPolicy != nil {
13510		if err := s.AccessControlPolicy.Validate(); err != nil {
13511			invalidParams.AddNested("AccessControlPolicy", err.(request.ErrInvalidParams))
13512		}
13513	}
13514
13515	if invalidParams.Len() > 0 {
13516		return invalidParams
13517	}
13518	return nil
13519}
13520
13521// SetAccessControlPolicy sets the AccessControlPolicy field's value.
13522func (s *S3SetObjectAclOperation) SetAccessControlPolicy(v *S3AccessControlPolicy) *S3SetObjectAclOperation {
13523	s.AccessControlPolicy = v
13524	return s
13525}
13526
13527// Contains the configuration for an S3 Object Lock legal hold operation that
13528// an S3 Batch Operations job passes every object to the underlying PutObjectLegalHold
13529// API. For more information, see Using S3 Object Lock legal hold with S3 Batch
13530// Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html)
13531// in the Amazon Simple Storage Service User Guide.
13532type S3SetObjectLegalHoldOperation struct {
13533	_ struct{} `type:"structure"`
13534
13535	// Contains the Object Lock legal hold status to be applied to all objects in
13536	// the Batch Operations job.
13537	//
13538	// LegalHold is a required field
13539	LegalHold *S3ObjectLockLegalHold `type:"structure" required:"true"`
13540}
13541
13542// String returns the string representation
13543func (s S3SetObjectLegalHoldOperation) String() string {
13544	return awsutil.Prettify(s)
13545}
13546
13547// GoString returns the string representation
13548func (s S3SetObjectLegalHoldOperation) GoString() string {
13549	return s.String()
13550}
13551
13552// Validate inspects the fields of the type to determine if they are valid.
13553func (s *S3SetObjectLegalHoldOperation) Validate() error {
13554	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectLegalHoldOperation"}
13555	if s.LegalHold == nil {
13556		invalidParams.Add(request.NewErrParamRequired("LegalHold"))
13557	}
13558	if s.LegalHold != nil {
13559		if err := s.LegalHold.Validate(); err != nil {
13560			invalidParams.AddNested("LegalHold", err.(request.ErrInvalidParams))
13561		}
13562	}
13563
13564	if invalidParams.Len() > 0 {
13565		return invalidParams
13566	}
13567	return nil
13568}
13569
13570// SetLegalHold sets the LegalHold field's value.
13571func (s *S3SetObjectLegalHoldOperation) SetLegalHold(v *S3ObjectLockLegalHold) *S3SetObjectLegalHoldOperation {
13572	s.LegalHold = v
13573	return s
13574}
13575
13576// Contains the configuration parameters for the Object Lock retention action
13577// for an S3 Batch Operations job. Batch Operations passes every object to the
13578// underlying PutObjectRetention API. For more information, see Using S3 Object
13579// Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
13580// in the Amazon Simple Storage Service User Guide.
13581type S3SetObjectRetentionOperation struct {
13582	_ struct{} `type:"structure"`
13583
13584	// Indicates if the action should be applied to objects in the Batch Operations
13585	// job even if they have Object Lock GOVERNANCE type in place.
13586	BypassGovernanceRetention *bool `type:"boolean"`
13587
13588	// Contains the Object Lock retention mode to be applied to all objects in the
13589	// Batch Operations job. For more information, see Using S3 Object Lock retention
13590	// with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
13591	// in the Amazon Simple Storage Service User Guide.
13592	//
13593	// Retention is a required field
13594	Retention *S3Retention `type:"structure" required:"true"`
13595}
13596
13597// String returns the string representation
13598func (s S3SetObjectRetentionOperation) String() string {
13599	return awsutil.Prettify(s)
13600}
13601
13602// GoString returns the string representation
13603func (s S3SetObjectRetentionOperation) GoString() string {
13604	return s.String()
13605}
13606
13607// Validate inspects the fields of the type to determine if they are valid.
13608func (s *S3SetObjectRetentionOperation) Validate() error {
13609	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectRetentionOperation"}
13610	if s.Retention == nil {
13611		invalidParams.Add(request.NewErrParamRequired("Retention"))
13612	}
13613
13614	if invalidParams.Len() > 0 {
13615		return invalidParams
13616	}
13617	return nil
13618}
13619
13620// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
13621func (s *S3SetObjectRetentionOperation) SetBypassGovernanceRetention(v bool) *S3SetObjectRetentionOperation {
13622	s.BypassGovernanceRetention = &v
13623	return s
13624}
13625
13626// SetRetention sets the Retention field's value.
13627func (s *S3SetObjectRetentionOperation) SetRetention(v *S3Retention) *S3SetObjectRetentionOperation {
13628	s.Retention = v
13629	return s
13630}
13631
13632// Contains the configuration parameters for a Set Object Tagging operation.
13633// S3 Batch Operations passes every object to the underlying PUT Object tagging
13634// API. For more information about the parameters for this operation, see PUT
13635// Object tagging (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTtagging.html).
13636type S3SetObjectTaggingOperation struct {
13637	_ struct{} `type:"structure"`
13638
13639	TagSet []*S3Tag `type:"list"`
13640}
13641
13642// String returns the string representation
13643func (s S3SetObjectTaggingOperation) String() string {
13644	return awsutil.Prettify(s)
13645}
13646
13647// GoString returns the string representation
13648func (s S3SetObjectTaggingOperation) GoString() string {
13649	return s.String()
13650}
13651
13652// Validate inspects the fields of the type to determine if they are valid.
13653func (s *S3SetObjectTaggingOperation) Validate() error {
13654	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectTaggingOperation"}
13655	if s.TagSet != nil {
13656		for i, v := range s.TagSet {
13657			if v == nil {
13658				continue
13659			}
13660			if err := v.Validate(); err != nil {
13661				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSet", i), err.(request.ErrInvalidParams))
13662			}
13663		}
13664	}
13665
13666	if invalidParams.Len() > 0 {
13667		return invalidParams
13668	}
13669	return nil
13670}
13671
13672// SetTagSet sets the TagSet field's value.
13673func (s *S3SetObjectTaggingOperation) SetTagSet(v []*S3Tag) *S3SetObjectTaggingOperation {
13674	s.TagSet = v
13675	return s
13676}
13677
13678type S3Tag struct {
13679	_ struct{} `type:"structure"`
13680
13681	// Key is a required field
13682	Key *string `min:"1" type:"string" required:"true"`
13683
13684	// Value is a required field
13685	Value *string `type:"string" required:"true"`
13686}
13687
13688// String returns the string representation
13689func (s S3Tag) String() string {
13690	return awsutil.Prettify(s)
13691}
13692
13693// GoString returns the string representation
13694func (s S3Tag) GoString() string {
13695	return s.String()
13696}
13697
13698// Validate inspects the fields of the type to determine if they are valid.
13699func (s *S3Tag) Validate() error {
13700	invalidParams := request.ErrInvalidParams{Context: "S3Tag"}
13701	if s.Key == nil {
13702		invalidParams.Add(request.NewErrParamRequired("Key"))
13703	}
13704	if s.Key != nil && len(*s.Key) < 1 {
13705		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
13706	}
13707	if s.Value == nil {
13708		invalidParams.Add(request.NewErrParamRequired("Value"))
13709	}
13710
13711	if invalidParams.Len() > 0 {
13712		return invalidParams
13713	}
13714	return nil
13715}
13716
13717// SetKey sets the Key field's value.
13718func (s *S3Tag) SetKey(v string) *S3Tag {
13719	s.Key = &v
13720	return s
13721}
13722
13723// SetValue sets the Value field's value.
13724func (s *S3Tag) SetValue(v string) *S3Tag {
13725	s.Value = &v
13726	return s
13727}
13728
13729type SSEKMS struct {
13730	_ struct{} `locationName:"SSE-KMS" type:"structure"`
13731
13732	// A container for the ARN of the SSE-KMS encryption. This property is read-only
13733	// and follows the following format: arn:aws:kms:us-east-1:example-account-id:key/example-9a73-4afc-8d29-8f5900cef44e
13734	//
13735	// KeyId is a required field
13736	KeyId *string `type:"string" required:"true"`
13737}
13738
13739// String returns the string representation
13740func (s SSEKMS) String() string {
13741	return awsutil.Prettify(s)
13742}
13743
13744// GoString returns the string representation
13745func (s SSEKMS) GoString() string {
13746	return s.String()
13747}
13748
13749// Validate inspects the fields of the type to determine if they are valid.
13750func (s *SSEKMS) Validate() error {
13751	invalidParams := request.ErrInvalidParams{Context: "SSEKMS"}
13752	if s.KeyId == nil {
13753		invalidParams.Add(request.NewErrParamRequired("KeyId"))
13754	}
13755
13756	if invalidParams.Len() > 0 {
13757		return invalidParams
13758	}
13759	return nil
13760}
13761
13762// SetKeyId sets the KeyId field's value.
13763func (s *SSEKMS) SetKeyId(v string) *SSEKMS {
13764	s.KeyId = &v
13765	return s
13766}
13767
13768type SSES3 struct {
13769	_ struct{} `locationName:"SSE-S3" type:"structure"`
13770}
13771
13772// String returns the string representation
13773func (s SSES3) String() string {
13774	return awsutil.Prettify(s)
13775}
13776
13777// GoString returns the string representation
13778func (s SSES3) GoString() string {
13779	return s.String()
13780}
13781
13782type SelectionCriteria struct {
13783	_ struct{} `type:"structure"`
13784
13785	// A container for the delimiter of the selection criteria being used.
13786	Delimiter *string `type:"string"`
13787
13788	// The max depth of the selection criteria
13789	MaxDepth *int64 `min:"1" type:"integer"`
13790
13791	// The minimum number of storage bytes percentage whose metrics will be selected.
13792	//
13793	// You must choose a value greater than or equal to 1.0.
13794	MinStorageBytesPercentage *float64 `min:"0.1" type:"double"`
13795}
13796
13797// String returns the string representation
13798func (s SelectionCriteria) String() string {
13799	return awsutil.Prettify(s)
13800}
13801
13802// GoString returns the string representation
13803func (s SelectionCriteria) GoString() string {
13804	return s.String()
13805}
13806
13807// Validate inspects the fields of the type to determine if they are valid.
13808func (s *SelectionCriteria) Validate() error {
13809	invalidParams := request.ErrInvalidParams{Context: "SelectionCriteria"}
13810	if s.MaxDepth != nil && *s.MaxDepth < 1 {
13811		invalidParams.Add(request.NewErrParamMinValue("MaxDepth", 1))
13812	}
13813	if s.MinStorageBytesPercentage != nil && *s.MinStorageBytesPercentage < 0.1 {
13814		invalidParams.Add(request.NewErrParamMinValue("MinStorageBytesPercentage", 0.1))
13815	}
13816
13817	if invalidParams.Len() > 0 {
13818		return invalidParams
13819	}
13820	return nil
13821}
13822
13823// SetDelimiter sets the Delimiter field's value.
13824func (s *SelectionCriteria) SetDelimiter(v string) *SelectionCriteria {
13825	s.Delimiter = &v
13826	return s
13827}
13828
13829// SetMaxDepth sets the MaxDepth field's value.
13830func (s *SelectionCriteria) SetMaxDepth(v int64) *SelectionCriteria {
13831	s.MaxDepth = &v
13832	return s
13833}
13834
13835// SetMinStorageBytesPercentage sets the MinStorageBytesPercentage field's value.
13836func (s *SelectionCriteria) SetMinStorageBytesPercentage(v float64) *SelectionCriteria {
13837	s.MinStorageBytesPercentage = &v
13838	return s
13839}
13840
13841// The AWS organization for your S3 Storage Lens.
13842type StorageLensAwsOrg struct {
13843	_ struct{} `type:"structure"`
13844
13845	// A container for the Amazon Resource Name (ARN) of the AWS organization. This
13846	// property is read-only and follows the following format: arn:aws:organizations:us-east-1:example-account-id:organization/o-ex2l495dck
13847	//
13848	// Arn is a required field
13849	Arn *string `min:"1" type:"string" required:"true"`
13850}
13851
13852// String returns the string representation
13853func (s StorageLensAwsOrg) String() string {
13854	return awsutil.Prettify(s)
13855}
13856
13857// GoString returns the string representation
13858func (s StorageLensAwsOrg) GoString() string {
13859	return s.String()
13860}
13861
13862// Validate inspects the fields of the type to determine if they are valid.
13863func (s *StorageLensAwsOrg) Validate() error {
13864	invalidParams := request.ErrInvalidParams{Context: "StorageLensAwsOrg"}
13865	if s.Arn == nil {
13866		invalidParams.Add(request.NewErrParamRequired("Arn"))
13867	}
13868	if s.Arn != nil && len(*s.Arn) < 1 {
13869		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
13870	}
13871
13872	if invalidParams.Len() > 0 {
13873		return invalidParams
13874	}
13875	return nil
13876}
13877
13878// SetArn sets the Arn field's value.
13879func (s *StorageLensAwsOrg) SetArn(v string) *StorageLensAwsOrg {
13880	s.Arn = &v
13881	return s
13882}
13883
13884// A container for the Amazon S3 Storage Lens configuration.
13885type StorageLensConfiguration struct {
13886	_ struct{} `type:"structure"`
13887
13888	// A container for all the account-level configurations of your S3 Storage Lens
13889	// configuration.
13890	//
13891	// AccountLevel is a required field
13892	AccountLevel *AccountLevel `type:"structure" required:"true"`
13893
13894	// A container for the AWS organization for this S3 Storage Lens configuration.
13895	AwsOrg *StorageLensAwsOrg `type:"structure"`
13896
13897	// A container to specify the properties of your S3 Storage Lens metrics export
13898	// including, the destination, schema and format.
13899	DataExport *StorageLensDataExport `type:"structure"`
13900
13901	// A container for what is excluded in this configuration. This container can
13902	// only be valid if there is no Include container submitted, and it's not empty.
13903	Exclude *Exclude `type:"structure"`
13904
13905	// A container for the Amazon S3 Storage Lens configuration ID.
13906	//
13907	// Id is a required field
13908	Id *string `min:"1" type:"string" required:"true"`
13909
13910	// A container for what is included in this configuration. This container can
13911	// only be valid if there is no Exclude container submitted, and it's not empty.
13912	Include *Include `type:"structure"`
13913
13914	// A container for whether the S3 Storage Lens configuration is enabled.
13915	//
13916	// IsEnabled is a required field
13917	IsEnabled *bool `type:"boolean" required:"true"`
13918
13919	// The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This
13920	// property is read-only and follows the following format: arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name
13921	StorageLensArn *string `min:"1" type:"string"`
13922}
13923
13924// String returns the string representation
13925func (s StorageLensConfiguration) String() string {
13926	return awsutil.Prettify(s)
13927}
13928
13929// GoString returns the string representation
13930func (s StorageLensConfiguration) GoString() string {
13931	return s.String()
13932}
13933
13934// Validate inspects the fields of the type to determine if they are valid.
13935func (s *StorageLensConfiguration) Validate() error {
13936	invalidParams := request.ErrInvalidParams{Context: "StorageLensConfiguration"}
13937	if s.AccountLevel == nil {
13938		invalidParams.Add(request.NewErrParamRequired("AccountLevel"))
13939	}
13940	if s.Id == nil {
13941		invalidParams.Add(request.NewErrParamRequired("Id"))
13942	}
13943	if s.Id != nil && len(*s.Id) < 1 {
13944		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
13945	}
13946	if s.IsEnabled == nil {
13947		invalidParams.Add(request.NewErrParamRequired("IsEnabled"))
13948	}
13949	if s.StorageLensArn != nil && len(*s.StorageLensArn) < 1 {
13950		invalidParams.Add(request.NewErrParamMinLen("StorageLensArn", 1))
13951	}
13952	if s.AccountLevel != nil {
13953		if err := s.AccountLevel.Validate(); err != nil {
13954			invalidParams.AddNested("AccountLevel", err.(request.ErrInvalidParams))
13955		}
13956	}
13957	if s.AwsOrg != nil {
13958		if err := s.AwsOrg.Validate(); err != nil {
13959			invalidParams.AddNested("AwsOrg", err.(request.ErrInvalidParams))
13960		}
13961	}
13962	if s.DataExport != nil {
13963		if err := s.DataExport.Validate(); err != nil {
13964			invalidParams.AddNested("DataExport", err.(request.ErrInvalidParams))
13965		}
13966	}
13967
13968	if invalidParams.Len() > 0 {
13969		return invalidParams
13970	}
13971	return nil
13972}
13973
13974// SetAccountLevel sets the AccountLevel field's value.
13975func (s *StorageLensConfiguration) SetAccountLevel(v *AccountLevel) *StorageLensConfiguration {
13976	s.AccountLevel = v
13977	return s
13978}
13979
13980// SetAwsOrg sets the AwsOrg field's value.
13981func (s *StorageLensConfiguration) SetAwsOrg(v *StorageLensAwsOrg) *StorageLensConfiguration {
13982	s.AwsOrg = v
13983	return s
13984}
13985
13986// SetDataExport sets the DataExport field's value.
13987func (s *StorageLensConfiguration) SetDataExport(v *StorageLensDataExport) *StorageLensConfiguration {
13988	s.DataExport = v
13989	return s
13990}
13991
13992// SetExclude sets the Exclude field's value.
13993func (s *StorageLensConfiguration) SetExclude(v *Exclude) *StorageLensConfiguration {
13994	s.Exclude = v
13995	return s
13996}
13997
13998// SetId sets the Id field's value.
13999func (s *StorageLensConfiguration) SetId(v string) *StorageLensConfiguration {
14000	s.Id = &v
14001	return s
14002}
14003
14004// SetInclude sets the Include field's value.
14005func (s *StorageLensConfiguration) SetInclude(v *Include) *StorageLensConfiguration {
14006	s.Include = v
14007	return s
14008}
14009
14010// SetIsEnabled sets the IsEnabled field's value.
14011func (s *StorageLensConfiguration) SetIsEnabled(v bool) *StorageLensConfiguration {
14012	s.IsEnabled = &v
14013	return s
14014}
14015
14016// SetStorageLensArn sets the StorageLensArn field's value.
14017func (s *StorageLensConfiguration) SetStorageLensArn(v string) *StorageLensConfiguration {
14018	s.StorageLensArn = &v
14019	return s
14020}
14021
14022// A container to specify the properties of your S3 Storage Lens metrics export,
14023// including the destination, schema, and format.
14024type StorageLensDataExport struct {
14025	_ struct{} `type:"structure"`
14026
14027	// A container for the bucket where the S3 Storage Lens metrics export will
14028	// be located.
14029	//
14030	// This bucket must be located in the same Region as the storage lens configuration.
14031	//
14032	// S3BucketDestination is a required field
14033	S3BucketDestination *S3BucketDestination `type:"structure" required:"true"`
14034}
14035
14036// String returns the string representation
14037func (s StorageLensDataExport) String() string {
14038	return awsutil.Prettify(s)
14039}
14040
14041// GoString returns the string representation
14042func (s StorageLensDataExport) GoString() string {
14043	return s.String()
14044}
14045
14046// Validate inspects the fields of the type to determine if they are valid.
14047func (s *StorageLensDataExport) Validate() error {
14048	invalidParams := request.ErrInvalidParams{Context: "StorageLensDataExport"}
14049	if s.S3BucketDestination == nil {
14050		invalidParams.Add(request.NewErrParamRequired("S3BucketDestination"))
14051	}
14052	if s.S3BucketDestination != nil {
14053		if err := s.S3BucketDestination.Validate(); err != nil {
14054			invalidParams.AddNested("S3BucketDestination", err.(request.ErrInvalidParams))
14055		}
14056	}
14057
14058	if invalidParams.Len() > 0 {
14059		return invalidParams
14060	}
14061	return nil
14062}
14063
14064// SetS3BucketDestination sets the S3BucketDestination field's value.
14065func (s *StorageLensDataExport) SetS3BucketDestination(v *S3BucketDestination) *StorageLensDataExport {
14066	s.S3BucketDestination = v
14067	return s
14068}
14069
14070// A container for the encryption of the S3 Storage Lens metrics exports.
14071type StorageLensDataExportEncryption struct {
14072	_ struct{} `type:"structure"`
14073
14074	SSEKMS *SSEKMS `locationName:"SSE-KMS" type:"structure"`
14075
14076	SSES3 *SSES3 `locationName:"SSE-S3" type:"structure"`
14077}
14078
14079// String returns the string representation
14080func (s StorageLensDataExportEncryption) String() string {
14081	return awsutil.Prettify(s)
14082}
14083
14084// GoString returns the string representation
14085func (s StorageLensDataExportEncryption) GoString() string {
14086	return s.String()
14087}
14088
14089// Validate inspects the fields of the type to determine if they are valid.
14090func (s *StorageLensDataExportEncryption) Validate() error {
14091	invalidParams := request.ErrInvalidParams{Context: "StorageLensDataExportEncryption"}
14092	if s.SSEKMS != nil {
14093		if err := s.SSEKMS.Validate(); err != nil {
14094			invalidParams.AddNested("SSEKMS", err.(request.ErrInvalidParams))
14095		}
14096	}
14097
14098	if invalidParams.Len() > 0 {
14099		return invalidParams
14100	}
14101	return nil
14102}
14103
14104// SetSSEKMS sets the SSEKMS field's value.
14105func (s *StorageLensDataExportEncryption) SetSSEKMS(v *SSEKMS) *StorageLensDataExportEncryption {
14106	s.SSEKMS = v
14107	return s
14108}
14109
14110// SetSSES3 sets the SSES3 field's value.
14111func (s *StorageLensDataExportEncryption) SetSSES3(v *SSES3) *StorageLensDataExportEncryption {
14112	s.SSES3 = v
14113	return s
14114}
14115
14116type StorageLensTag struct {
14117	_ struct{} `type:"structure"`
14118
14119	// Key is a required field
14120	Key *string `min:"1" type:"string" required:"true"`
14121
14122	// Value is a required field
14123	Value *string `type:"string" required:"true"`
14124}
14125
14126// String returns the string representation
14127func (s StorageLensTag) String() string {
14128	return awsutil.Prettify(s)
14129}
14130
14131// GoString returns the string representation
14132func (s StorageLensTag) GoString() string {
14133	return s.String()
14134}
14135
14136// Validate inspects the fields of the type to determine if they are valid.
14137func (s *StorageLensTag) Validate() error {
14138	invalidParams := request.ErrInvalidParams{Context: "StorageLensTag"}
14139	if s.Key == nil {
14140		invalidParams.Add(request.NewErrParamRequired("Key"))
14141	}
14142	if s.Key != nil && len(*s.Key) < 1 {
14143		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
14144	}
14145	if s.Value == nil {
14146		invalidParams.Add(request.NewErrParamRequired("Value"))
14147	}
14148
14149	if invalidParams.Len() > 0 {
14150		return invalidParams
14151	}
14152	return nil
14153}
14154
14155// SetKey sets the Key field's value.
14156func (s *StorageLensTag) SetKey(v string) *StorageLensTag {
14157	s.Key = &v
14158	return s
14159}
14160
14161// SetValue sets the Value field's value.
14162func (s *StorageLensTag) SetValue(v string) *StorageLensTag {
14163	s.Value = &v
14164	return s
14165}
14166
14167type Tagging struct {
14168	_ struct{} `type:"structure"`
14169
14170	// A collection for a set of tags.
14171	//
14172	// TagSet is a required field
14173	TagSet []*S3Tag `type:"list" required:"true"`
14174}
14175
14176// String returns the string representation
14177func (s Tagging) String() string {
14178	return awsutil.Prettify(s)
14179}
14180
14181// GoString returns the string representation
14182func (s Tagging) GoString() string {
14183	return s.String()
14184}
14185
14186// Validate inspects the fields of the type to determine if they are valid.
14187func (s *Tagging) Validate() error {
14188	invalidParams := request.ErrInvalidParams{Context: "Tagging"}
14189	if s.TagSet == nil {
14190		invalidParams.Add(request.NewErrParamRequired("TagSet"))
14191	}
14192	if s.TagSet != nil {
14193		for i, v := range s.TagSet {
14194			if v == nil {
14195				continue
14196			}
14197			if err := v.Validate(); err != nil {
14198				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSet", i), err.(request.ErrInvalidParams))
14199			}
14200		}
14201	}
14202
14203	if invalidParams.Len() > 0 {
14204		return invalidParams
14205	}
14206	return nil
14207}
14208
14209// SetTagSet sets the TagSet field's value.
14210func (s *Tagging) SetTagSet(v []*S3Tag) *Tagging {
14211	s.TagSet = v
14212	return s
14213}
14214
14215// Specifies when an object transitions to a specified storage class. For more
14216// information about Amazon S3 Lifecycle configuration rules, see Transitioning
14217// objects using Amazon S3 Lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html)
14218// in the Amazon Simple Storage Service User Guide.
14219type Transition struct {
14220	_ struct{} `type:"structure"`
14221
14222	// Indicates when objects are transitioned to the specified storage class. The
14223	// date value must be in ISO 8601 format. The time is always midnight UTC.
14224	Date *time.Time `type:"timestamp"`
14225
14226	// Indicates the number of days after creation when objects are transitioned
14227	// to the specified storage class. The value must be a positive integer.
14228	Days *int64 `type:"integer"`
14229
14230	// The storage class to which you want the object to transition.
14231	StorageClass *string `type:"string" enum:"TransitionStorageClass"`
14232}
14233
14234// String returns the string representation
14235func (s Transition) String() string {
14236	return awsutil.Prettify(s)
14237}
14238
14239// GoString returns the string representation
14240func (s Transition) GoString() string {
14241	return s.String()
14242}
14243
14244// SetDate sets the Date field's value.
14245func (s *Transition) SetDate(v time.Time) *Transition {
14246	s.Date = &v
14247	return s
14248}
14249
14250// SetDays sets the Days field's value.
14251func (s *Transition) SetDays(v int64) *Transition {
14252	s.Days = &v
14253	return s
14254}
14255
14256// SetStorageClass sets the StorageClass field's value.
14257func (s *Transition) SetStorageClass(v string) *Transition {
14258	s.StorageClass = &v
14259	return s
14260}
14261
14262type UpdateJobPriorityInput struct {
14263	_ struct{} `locationName:"UpdateJobPriorityRequest" type:"structure"`
14264
14265	// The AWS account ID associated with the S3 Batch Operations job.
14266	//
14267	// AccountId is a required field
14268	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
14269
14270	// The ID for the job whose priority you want to update.
14271	//
14272	// JobId is a required field
14273	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
14274
14275	// The priority you want to assign to this job.
14276	//
14277	// Priority is a required field
14278	Priority *int64 `location:"querystring" locationName:"priority" type:"integer" required:"true"`
14279}
14280
14281// String returns the string representation
14282func (s UpdateJobPriorityInput) String() string {
14283	return awsutil.Prettify(s)
14284}
14285
14286// GoString returns the string representation
14287func (s UpdateJobPriorityInput) GoString() string {
14288	return s.String()
14289}
14290
14291// Validate inspects the fields of the type to determine if they are valid.
14292func (s *UpdateJobPriorityInput) Validate() error {
14293	invalidParams := request.ErrInvalidParams{Context: "UpdateJobPriorityInput"}
14294	if s.AccountId == nil {
14295		invalidParams.Add(request.NewErrParamRequired("AccountId"))
14296	}
14297	if s.AccountId != nil && len(*s.AccountId) < 1 {
14298		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
14299	}
14300	if s.JobId == nil {
14301		invalidParams.Add(request.NewErrParamRequired("JobId"))
14302	}
14303	if s.JobId != nil && len(*s.JobId) < 5 {
14304		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
14305	}
14306	if s.Priority == nil {
14307		invalidParams.Add(request.NewErrParamRequired("Priority"))
14308	}
14309
14310	if invalidParams.Len() > 0 {
14311		return invalidParams
14312	}
14313	return nil
14314}
14315
14316// SetAccountId sets the AccountId field's value.
14317func (s *UpdateJobPriorityInput) SetAccountId(v string) *UpdateJobPriorityInput {
14318	s.AccountId = &v
14319	return s
14320}
14321
14322// SetJobId sets the JobId field's value.
14323func (s *UpdateJobPriorityInput) SetJobId(v string) *UpdateJobPriorityInput {
14324	s.JobId = &v
14325	return s
14326}
14327
14328// SetPriority sets the Priority field's value.
14329func (s *UpdateJobPriorityInput) SetPriority(v int64) *UpdateJobPriorityInput {
14330	s.Priority = &v
14331	return s
14332}
14333
14334func (s *UpdateJobPriorityInput) hostLabels() map[string]string {
14335	return map[string]string{
14336		"AccountId": aws.StringValue(s.AccountId),
14337	}
14338}
14339
14340type UpdateJobPriorityOutput struct {
14341	_ struct{} `type:"structure"`
14342
14343	// The ID for the job whose priority Amazon S3 updated.
14344	//
14345	// JobId is a required field
14346	JobId *string `min:"5" type:"string" required:"true"`
14347
14348	// The new priority assigned to the specified job.
14349	//
14350	// Priority is a required field
14351	Priority *int64 `type:"integer" required:"true"`
14352}
14353
14354// String returns the string representation
14355func (s UpdateJobPriorityOutput) String() string {
14356	return awsutil.Prettify(s)
14357}
14358
14359// GoString returns the string representation
14360func (s UpdateJobPriorityOutput) GoString() string {
14361	return s.String()
14362}
14363
14364// SetJobId sets the JobId field's value.
14365func (s *UpdateJobPriorityOutput) SetJobId(v string) *UpdateJobPriorityOutput {
14366	s.JobId = &v
14367	return s
14368}
14369
14370// SetPriority sets the Priority field's value.
14371func (s *UpdateJobPriorityOutput) SetPriority(v int64) *UpdateJobPriorityOutput {
14372	s.Priority = &v
14373	return s
14374}
14375
14376type UpdateJobStatusInput struct {
14377	_ struct{} `locationName:"UpdateJobStatusRequest" type:"structure"`
14378
14379	// The AWS account ID associated with the S3 Batch Operations job.
14380	//
14381	// AccountId is a required field
14382	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
14383
14384	// The ID of the job whose status you want to update.
14385	//
14386	// JobId is a required field
14387	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
14388
14389	// The status that you want to move the specified job to.
14390	//
14391	// RequestedJobStatus is a required field
14392	RequestedJobStatus *string `location:"querystring" locationName:"requestedJobStatus" type:"string" required:"true" enum:"RequestedJobStatus"`
14393
14394	// A description of the reason why you want to change the specified job's status.
14395	// This field can be any string up to the maximum length.
14396	StatusUpdateReason *string `location:"querystring" locationName:"statusUpdateReason" min:"1" type:"string"`
14397}
14398
14399// String returns the string representation
14400func (s UpdateJobStatusInput) String() string {
14401	return awsutil.Prettify(s)
14402}
14403
14404// GoString returns the string representation
14405func (s UpdateJobStatusInput) GoString() string {
14406	return s.String()
14407}
14408
14409// Validate inspects the fields of the type to determine if they are valid.
14410func (s *UpdateJobStatusInput) Validate() error {
14411	invalidParams := request.ErrInvalidParams{Context: "UpdateJobStatusInput"}
14412	if s.AccountId == nil {
14413		invalidParams.Add(request.NewErrParamRequired("AccountId"))
14414	}
14415	if s.AccountId != nil && len(*s.AccountId) < 1 {
14416		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
14417	}
14418	if s.JobId == nil {
14419		invalidParams.Add(request.NewErrParamRequired("JobId"))
14420	}
14421	if s.JobId != nil && len(*s.JobId) < 5 {
14422		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
14423	}
14424	if s.RequestedJobStatus == nil {
14425		invalidParams.Add(request.NewErrParamRequired("RequestedJobStatus"))
14426	}
14427	if s.StatusUpdateReason != nil && len(*s.StatusUpdateReason) < 1 {
14428		invalidParams.Add(request.NewErrParamMinLen("StatusUpdateReason", 1))
14429	}
14430
14431	if invalidParams.Len() > 0 {
14432		return invalidParams
14433	}
14434	return nil
14435}
14436
14437// SetAccountId sets the AccountId field's value.
14438func (s *UpdateJobStatusInput) SetAccountId(v string) *UpdateJobStatusInput {
14439	s.AccountId = &v
14440	return s
14441}
14442
14443// SetJobId sets the JobId field's value.
14444func (s *UpdateJobStatusInput) SetJobId(v string) *UpdateJobStatusInput {
14445	s.JobId = &v
14446	return s
14447}
14448
14449// SetRequestedJobStatus sets the RequestedJobStatus field's value.
14450func (s *UpdateJobStatusInput) SetRequestedJobStatus(v string) *UpdateJobStatusInput {
14451	s.RequestedJobStatus = &v
14452	return s
14453}
14454
14455// SetStatusUpdateReason sets the StatusUpdateReason field's value.
14456func (s *UpdateJobStatusInput) SetStatusUpdateReason(v string) *UpdateJobStatusInput {
14457	s.StatusUpdateReason = &v
14458	return s
14459}
14460
14461func (s *UpdateJobStatusInput) hostLabels() map[string]string {
14462	return map[string]string{
14463		"AccountId": aws.StringValue(s.AccountId),
14464	}
14465}
14466
14467type UpdateJobStatusOutput struct {
14468	_ struct{} `type:"structure"`
14469
14470	// The ID for the job whose status was updated.
14471	JobId *string `min:"5" type:"string"`
14472
14473	// The current status for the specified job.
14474	Status *string `type:"string" enum:"JobStatus"`
14475
14476	// The reason that the specified job's status was updated.
14477	StatusUpdateReason *string `min:"1" type:"string"`
14478}
14479
14480// String returns the string representation
14481func (s UpdateJobStatusOutput) String() string {
14482	return awsutil.Prettify(s)
14483}
14484
14485// GoString returns the string representation
14486func (s UpdateJobStatusOutput) GoString() string {
14487	return s.String()
14488}
14489
14490// SetJobId sets the JobId field's value.
14491func (s *UpdateJobStatusOutput) SetJobId(v string) *UpdateJobStatusOutput {
14492	s.JobId = &v
14493	return s
14494}
14495
14496// SetStatus sets the Status field's value.
14497func (s *UpdateJobStatusOutput) SetStatus(v string) *UpdateJobStatusOutput {
14498	s.Status = &v
14499	return s
14500}
14501
14502// SetStatusUpdateReason sets the StatusUpdateReason field's value.
14503func (s *UpdateJobStatusOutput) SetStatusUpdateReason(v string) *UpdateJobStatusOutput {
14504	s.StatusUpdateReason = &v
14505	return s
14506}
14507
14508// The virtual private cloud (VPC) configuration for an access point.
14509type VpcConfiguration struct {
14510	_ struct{} `type:"structure"`
14511
14512	// If this field is specified, this access point will only allow connections
14513	// from the specified VPC ID.
14514	//
14515	// VpcId is a required field
14516	VpcId *string `min:"1" type:"string" required:"true"`
14517}
14518
14519// String returns the string representation
14520func (s VpcConfiguration) String() string {
14521	return awsutil.Prettify(s)
14522}
14523
14524// GoString returns the string representation
14525func (s VpcConfiguration) GoString() string {
14526	return s.String()
14527}
14528
14529// Validate inspects the fields of the type to determine if they are valid.
14530func (s *VpcConfiguration) Validate() error {
14531	invalidParams := request.ErrInvalidParams{Context: "VpcConfiguration"}
14532	if s.VpcId == nil {
14533		invalidParams.Add(request.NewErrParamRequired("VpcId"))
14534	}
14535	if s.VpcId != nil && len(*s.VpcId) < 1 {
14536		invalidParams.Add(request.NewErrParamMinLen("VpcId", 1))
14537	}
14538
14539	if invalidParams.Len() > 0 {
14540		return invalidParams
14541	}
14542	return nil
14543}
14544
14545// SetVpcId sets the VpcId field's value.
14546func (s *VpcConfiguration) SetVpcId(v string) *VpcConfiguration {
14547	s.VpcId = &v
14548	return s
14549}
14550
14551const (
14552	// BucketCannedACLPrivate is a BucketCannedACL enum value
14553	BucketCannedACLPrivate = "private"
14554
14555	// BucketCannedACLPublicRead is a BucketCannedACL enum value
14556	BucketCannedACLPublicRead = "public-read"
14557
14558	// BucketCannedACLPublicReadWrite is a BucketCannedACL enum value
14559	BucketCannedACLPublicReadWrite = "public-read-write"
14560
14561	// BucketCannedACLAuthenticatedRead is a BucketCannedACL enum value
14562	BucketCannedACLAuthenticatedRead = "authenticated-read"
14563)
14564
14565// BucketCannedACL_Values returns all elements of the BucketCannedACL enum
14566func BucketCannedACL_Values() []string {
14567	return []string{
14568		BucketCannedACLPrivate,
14569		BucketCannedACLPublicRead,
14570		BucketCannedACLPublicReadWrite,
14571		BucketCannedACLAuthenticatedRead,
14572	}
14573}
14574
14575const (
14576	// BucketLocationConstraintEu is a BucketLocationConstraint enum value
14577	BucketLocationConstraintEu = "EU"
14578
14579	// BucketLocationConstraintEuWest1 is a BucketLocationConstraint enum value
14580	BucketLocationConstraintEuWest1 = "eu-west-1"
14581
14582	// BucketLocationConstraintUsWest1 is a BucketLocationConstraint enum value
14583	BucketLocationConstraintUsWest1 = "us-west-1"
14584
14585	// BucketLocationConstraintUsWest2 is a BucketLocationConstraint enum value
14586	BucketLocationConstraintUsWest2 = "us-west-2"
14587
14588	// BucketLocationConstraintApSouth1 is a BucketLocationConstraint enum value
14589	BucketLocationConstraintApSouth1 = "ap-south-1"
14590
14591	// BucketLocationConstraintApSoutheast1 is a BucketLocationConstraint enum value
14592	BucketLocationConstraintApSoutheast1 = "ap-southeast-1"
14593
14594	// BucketLocationConstraintApSoutheast2 is a BucketLocationConstraint enum value
14595	BucketLocationConstraintApSoutheast2 = "ap-southeast-2"
14596
14597	// BucketLocationConstraintApNortheast1 is a BucketLocationConstraint enum value
14598	BucketLocationConstraintApNortheast1 = "ap-northeast-1"
14599
14600	// BucketLocationConstraintSaEast1 is a BucketLocationConstraint enum value
14601	BucketLocationConstraintSaEast1 = "sa-east-1"
14602
14603	// BucketLocationConstraintCnNorth1 is a BucketLocationConstraint enum value
14604	BucketLocationConstraintCnNorth1 = "cn-north-1"
14605
14606	// BucketLocationConstraintEuCentral1 is a BucketLocationConstraint enum value
14607	BucketLocationConstraintEuCentral1 = "eu-central-1"
14608)
14609
14610// BucketLocationConstraint_Values returns all elements of the BucketLocationConstraint enum
14611func BucketLocationConstraint_Values() []string {
14612	return []string{
14613		BucketLocationConstraintEu,
14614		BucketLocationConstraintEuWest1,
14615		BucketLocationConstraintUsWest1,
14616		BucketLocationConstraintUsWest2,
14617		BucketLocationConstraintApSouth1,
14618		BucketLocationConstraintApSoutheast1,
14619		BucketLocationConstraintApSoutheast2,
14620		BucketLocationConstraintApNortheast1,
14621		BucketLocationConstraintSaEast1,
14622		BucketLocationConstraintCnNorth1,
14623		BucketLocationConstraintEuCentral1,
14624	}
14625}
14626
14627const (
14628	// ExpirationStatusEnabled is a ExpirationStatus enum value
14629	ExpirationStatusEnabled = "Enabled"
14630
14631	// ExpirationStatusDisabled is a ExpirationStatus enum value
14632	ExpirationStatusDisabled = "Disabled"
14633)
14634
14635// ExpirationStatus_Values returns all elements of the ExpirationStatus enum
14636func ExpirationStatus_Values() []string {
14637	return []string{
14638		ExpirationStatusEnabled,
14639		ExpirationStatusDisabled,
14640	}
14641}
14642
14643const (
14644	// FormatCsv is a Format enum value
14645	FormatCsv = "CSV"
14646
14647	// FormatParquet is a Format enum value
14648	FormatParquet = "Parquet"
14649)
14650
14651// Format_Values returns all elements of the Format enum
14652func Format_Values() []string {
14653	return []string{
14654		FormatCsv,
14655		FormatParquet,
14656	}
14657}
14658
14659const (
14660	// JobManifestFieldNameIgnore is a JobManifestFieldName enum value
14661	JobManifestFieldNameIgnore = "Ignore"
14662
14663	// JobManifestFieldNameBucket is a JobManifestFieldName enum value
14664	JobManifestFieldNameBucket = "Bucket"
14665
14666	// JobManifestFieldNameKey is a JobManifestFieldName enum value
14667	JobManifestFieldNameKey = "Key"
14668
14669	// JobManifestFieldNameVersionId is a JobManifestFieldName enum value
14670	JobManifestFieldNameVersionId = "VersionId"
14671)
14672
14673// JobManifestFieldName_Values returns all elements of the JobManifestFieldName enum
14674func JobManifestFieldName_Values() []string {
14675	return []string{
14676		JobManifestFieldNameIgnore,
14677		JobManifestFieldNameBucket,
14678		JobManifestFieldNameKey,
14679		JobManifestFieldNameVersionId,
14680	}
14681}
14682
14683const (
14684	// JobManifestFormatS3batchOperationsCsv20180820 is a JobManifestFormat enum value
14685	JobManifestFormatS3batchOperationsCsv20180820 = "S3BatchOperations_CSV_20180820"
14686
14687	// JobManifestFormatS3inventoryReportCsv20161130 is a JobManifestFormat enum value
14688	JobManifestFormatS3inventoryReportCsv20161130 = "S3InventoryReport_CSV_20161130"
14689)
14690
14691// JobManifestFormat_Values returns all elements of the JobManifestFormat enum
14692func JobManifestFormat_Values() []string {
14693	return []string{
14694		JobManifestFormatS3batchOperationsCsv20180820,
14695		JobManifestFormatS3inventoryReportCsv20161130,
14696	}
14697}
14698
14699const (
14700	// JobReportFormatReportCsv20180820 is a JobReportFormat enum value
14701	JobReportFormatReportCsv20180820 = "Report_CSV_20180820"
14702)
14703
14704// JobReportFormat_Values returns all elements of the JobReportFormat enum
14705func JobReportFormat_Values() []string {
14706	return []string{
14707		JobReportFormatReportCsv20180820,
14708	}
14709}
14710
14711const (
14712	// JobReportScopeAllTasks is a JobReportScope enum value
14713	JobReportScopeAllTasks = "AllTasks"
14714
14715	// JobReportScopeFailedTasksOnly is a JobReportScope enum value
14716	JobReportScopeFailedTasksOnly = "FailedTasksOnly"
14717)
14718
14719// JobReportScope_Values returns all elements of the JobReportScope enum
14720func JobReportScope_Values() []string {
14721	return []string{
14722		JobReportScopeAllTasks,
14723		JobReportScopeFailedTasksOnly,
14724	}
14725}
14726
14727const (
14728	// JobStatusActive is a JobStatus enum value
14729	JobStatusActive = "Active"
14730
14731	// JobStatusCancelled is a JobStatus enum value
14732	JobStatusCancelled = "Cancelled"
14733
14734	// JobStatusCancelling is a JobStatus enum value
14735	JobStatusCancelling = "Cancelling"
14736
14737	// JobStatusComplete is a JobStatus enum value
14738	JobStatusComplete = "Complete"
14739
14740	// JobStatusCompleting is a JobStatus enum value
14741	JobStatusCompleting = "Completing"
14742
14743	// JobStatusFailed is a JobStatus enum value
14744	JobStatusFailed = "Failed"
14745
14746	// JobStatusFailing is a JobStatus enum value
14747	JobStatusFailing = "Failing"
14748
14749	// JobStatusNew is a JobStatus enum value
14750	JobStatusNew = "New"
14751
14752	// JobStatusPaused is a JobStatus enum value
14753	JobStatusPaused = "Paused"
14754
14755	// JobStatusPausing is a JobStatus enum value
14756	JobStatusPausing = "Pausing"
14757
14758	// JobStatusPreparing is a JobStatus enum value
14759	JobStatusPreparing = "Preparing"
14760
14761	// JobStatusReady is a JobStatus enum value
14762	JobStatusReady = "Ready"
14763
14764	// JobStatusSuspended is a JobStatus enum value
14765	JobStatusSuspended = "Suspended"
14766)
14767
14768// JobStatus_Values returns all elements of the JobStatus enum
14769func JobStatus_Values() []string {
14770	return []string{
14771		JobStatusActive,
14772		JobStatusCancelled,
14773		JobStatusCancelling,
14774		JobStatusComplete,
14775		JobStatusCompleting,
14776		JobStatusFailed,
14777		JobStatusFailing,
14778		JobStatusNew,
14779		JobStatusPaused,
14780		JobStatusPausing,
14781		JobStatusPreparing,
14782		JobStatusReady,
14783		JobStatusSuspended,
14784	}
14785}
14786
14787const (
14788	// NetworkOriginInternet is a NetworkOrigin enum value
14789	NetworkOriginInternet = "Internet"
14790
14791	// NetworkOriginVpc is a NetworkOrigin enum value
14792	NetworkOriginVpc = "VPC"
14793)
14794
14795// NetworkOrigin_Values returns all elements of the NetworkOrigin enum
14796func NetworkOrigin_Values() []string {
14797	return []string{
14798		NetworkOriginInternet,
14799		NetworkOriginVpc,
14800	}
14801}
14802
14803const (
14804	// ObjectLambdaAllowedFeatureGetObjectRange is a ObjectLambdaAllowedFeature enum value
14805	ObjectLambdaAllowedFeatureGetObjectRange = "GetObject-Range"
14806
14807	// ObjectLambdaAllowedFeatureGetObjectPartNumber is a ObjectLambdaAllowedFeature enum value
14808	ObjectLambdaAllowedFeatureGetObjectPartNumber = "GetObject-PartNumber"
14809)
14810
14811// ObjectLambdaAllowedFeature_Values returns all elements of the ObjectLambdaAllowedFeature enum
14812func ObjectLambdaAllowedFeature_Values() []string {
14813	return []string{
14814		ObjectLambdaAllowedFeatureGetObjectRange,
14815		ObjectLambdaAllowedFeatureGetObjectPartNumber,
14816	}
14817}
14818
14819const (
14820	// ObjectLambdaTransformationConfigurationActionGetObject is a ObjectLambdaTransformationConfigurationAction enum value
14821	ObjectLambdaTransformationConfigurationActionGetObject = "GetObject"
14822)
14823
14824// ObjectLambdaTransformationConfigurationAction_Values returns all elements of the ObjectLambdaTransformationConfigurationAction enum
14825func ObjectLambdaTransformationConfigurationAction_Values() []string {
14826	return []string{
14827		ObjectLambdaTransformationConfigurationActionGetObject,
14828	}
14829}
14830
14831const (
14832	// OperationNameLambdaInvoke is a OperationName enum value
14833	OperationNameLambdaInvoke = "LambdaInvoke"
14834
14835	// OperationNameS3putObjectCopy is a OperationName enum value
14836	OperationNameS3putObjectCopy = "S3PutObjectCopy"
14837
14838	// OperationNameS3putObjectAcl is a OperationName enum value
14839	OperationNameS3putObjectAcl = "S3PutObjectAcl"
14840
14841	// OperationNameS3putObjectTagging is a OperationName enum value
14842	OperationNameS3putObjectTagging = "S3PutObjectTagging"
14843
14844	// OperationNameS3deleteObjectTagging is a OperationName enum value
14845	OperationNameS3deleteObjectTagging = "S3DeleteObjectTagging"
14846
14847	// OperationNameS3initiateRestoreObject is a OperationName enum value
14848	OperationNameS3initiateRestoreObject = "S3InitiateRestoreObject"
14849
14850	// OperationNameS3putObjectLegalHold is a OperationName enum value
14851	OperationNameS3putObjectLegalHold = "S3PutObjectLegalHold"
14852
14853	// OperationNameS3putObjectRetention is a OperationName enum value
14854	OperationNameS3putObjectRetention = "S3PutObjectRetention"
14855)
14856
14857// OperationName_Values returns all elements of the OperationName enum
14858func OperationName_Values() []string {
14859	return []string{
14860		OperationNameLambdaInvoke,
14861		OperationNameS3putObjectCopy,
14862		OperationNameS3putObjectAcl,
14863		OperationNameS3putObjectTagging,
14864		OperationNameS3deleteObjectTagging,
14865		OperationNameS3initiateRestoreObject,
14866		OperationNameS3putObjectLegalHold,
14867		OperationNameS3putObjectRetention,
14868	}
14869}
14870
14871const (
14872	// OutputSchemaVersionV1 is a OutputSchemaVersion enum value
14873	OutputSchemaVersionV1 = "V_1"
14874)
14875
14876// OutputSchemaVersion_Values returns all elements of the OutputSchemaVersion enum
14877func OutputSchemaVersion_Values() []string {
14878	return []string{
14879		OutputSchemaVersionV1,
14880	}
14881}
14882
14883const (
14884	// RequestedJobStatusCancelled is a RequestedJobStatus enum value
14885	RequestedJobStatusCancelled = "Cancelled"
14886
14887	// RequestedJobStatusReady is a RequestedJobStatus enum value
14888	RequestedJobStatusReady = "Ready"
14889)
14890
14891// RequestedJobStatus_Values returns all elements of the RequestedJobStatus enum
14892func RequestedJobStatus_Values() []string {
14893	return []string{
14894		RequestedJobStatusCancelled,
14895		RequestedJobStatusReady,
14896	}
14897}
14898
14899const (
14900	// S3CannedAccessControlListPrivate is a S3CannedAccessControlList enum value
14901	S3CannedAccessControlListPrivate = "private"
14902
14903	// S3CannedAccessControlListPublicRead is a S3CannedAccessControlList enum value
14904	S3CannedAccessControlListPublicRead = "public-read"
14905
14906	// S3CannedAccessControlListPublicReadWrite is a S3CannedAccessControlList enum value
14907	S3CannedAccessControlListPublicReadWrite = "public-read-write"
14908
14909	// S3CannedAccessControlListAwsExecRead is a S3CannedAccessControlList enum value
14910	S3CannedAccessControlListAwsExecRead = "aws-exec-read"
14911
14912	// S3CannedAccessControlListAuthenticatedRead is a S3CannedAccessControlList enum value
14913	S3CannedAccessControlListAuthenticatedRead = "authenticated-read"
14914
14915	// S3CannedAccessControlListBucketOwnerRead is a S3CannedAccessControlList enum value
14916	S3CannedAccessControlListBucketOwnerRead = "bucket-owner-read"
14917
14918	// S3CannedAccessControlListBucketOwnerFullControl is a S3CannedAccessControlList enum value
14919	S3CannedAccessControlListBucketOwnerFullControl = "bucket-owner-full-control"
14920)
14921
14922// S3CannedAccessControlList_Values returns all elements of the S3CannedAccessControlList enum
14923func S3CannedAccessControlList_Values() []string {
14924	return []string{
14925		S3CannedAccessControlListPrivate,
14926		S3CannedAccessControlListPublicRead,
14927		S3CannedAccessControlListPublicReadWrite,
14928		S3CannedAccessControlListAwsExecRead,
14929		S3CannedAccessControlListAuthenticatedRead,
14930		S3CannedAccessControlListBucketOwnerRead,
14931		S3CannedAccessControlListBucketOwnerFullControl,
14932	}
14933}
14934
14935const (
14936	// S3GlacierJobTierBulk is a S3GlacierJobTier enum value
14937	S3GlacierJobTierBulk = "BULK"
14938
14939	// S3GlacierJobTierStandard is a S3GlacierJobTier enum value
14940	S3GlacierJobTierStandard = "STANDARD"
14941)
14942
14943// S3GlacierJobTier_Values returns all elements of the S3GlacierJobTier enum
14944func S3GlacierJobTier_Values() []string {
14945	return []string{
14946		S3GlacierJobTierBulk,
14947		S3GlacierJobTierStandard,
14948	}
14949}
14950
14951const (
14952	// S3GranteeTypeIdentifierId is a S3GranteeTypeIdentifier enum value
14953	S3GranteeTypeIdentifierId = "id"
14954
14955	// S3GranteeTypeIdentifierEmailAddress is a S3GranteeTypeIdentifier enum value
14956	S3GranteeTypeIdentifierEmailAddress = "emailAddress"
14957
14958	// S3GranteeTypeIdentifierUri is a S3GranteeTypeIdentifier enum value
14959	S3GranteeTypeIdentifierUri = "uri"
14960)
14961
14962// S3GranteeTypeIdentifier_Values returns all elements of the S3GranteeTypeIdentifier enum
14963func S3GranteeTypeIdentifier_Values() []string {
14964	return []string{
14965		S3GranteeTypeIdentifierId,
14966		S3GranteeTypeIdentifierEmailAddress,
14967		S3GranteeTypeIdentifierUri,
14968	}
14969}
14970
14971const (
14972	// S3MetadataDirectiveCopy is a S3MetadataDirective enum value
14973	S3MetadataDirectiveCopy = "COPY"
14974
14975	// S3MetadataDirectiveReplace is a S3MetadataDirective enum value
14976	S3MetadataDirectiveReplace = "REPLACE"
14977)
14978
14979// S3MetadataDirective_Values returns all elements of the S3MetadataDirective enum
14980func S3MetadataDirective_Values() []string {
14981	return []string{
14982		S3MetadataDirectiveCopy,
14983		S3MetadataDirectiveReplace,
14984	}
14985}
14986
14987const (
14988	// S3ObjectLockLegalHoldStatusOff is a S3ObjectLockLegalHoldStatus enum value
14989	S3ObjectLockLegalHoldStatusOff = "OFF"
14990
14991	// S3ObjectLockLegalHoldStatusOn is a S3ObjectLockLegalHoldStatus enum value
14992	S3ObjectLockLegalHoldStatusOn = "ON"
14993)
14994
14995// S3ObjectLockLegalHoldStatus_Values returns all elements of the S3ObjectLockLegalHoldStatus enum
14996func S3ObjectLockLegalHoldStatus_Values() []string {
14997	return []string{
14998		S3ObjectLockLegalHoldStatusOff,
14999		S3ObjectLockLegalHoldStatusOn,
15000	}
15001}
15002
15003const (
15004	// S3ObjectLockModeCompliance is a S3ObjectLockMode enum value
15005	S3ObjectLockModeCompliance = "COMPLIANCE"
15006
15007	// S3ObjectLockModeGovernance is a S3ObjectLockMode enum value
15008	S3ObjectLockModeGovernance = "GOVERNANCE"
15009)
15010
15011// S3ObjectLockMode_Values returns all elements of the S3ObjectLockMode enum
15012func S3ObjectLockMode_Values() []string {
15013	return []string{
15014		S3ObjectLockModeCompliance,
15015		S3ObjectLockModeGovernance,
15016	}
15017}
15018
15019const (
15020	// S3ObjectLockRetentionModeCompliance is a S3ObjectLockRetentionMode enum value
15021	S3ObjectLockRetentionModeCompliance = "COMPLIANCE"
15022
15023	// S3ObjectLockRetentionModeGovernance is a S3ObjectLockRetentionMode enum value
15024	S3ObjectLockRetentionModeGovernance = "GOVERNANCE"
15025)
15026
15027// S3ObjectLockRetentionMode_Values returns all elements of the S3ObjectLockRetentionMode enum
15028func S3ObjectLockRetentionMode_Values() []string {
15029	return []string{
15030		S3ObjectLockRetentionModeCompliance,
15031		S3ObjectLockRetentionModeGovernance,
15032	}
15033}
15034
15035const (
15036	// S3PermissionFullControl is a S3Permission enum value
15037	S3PermissionFullControl = "FULL_CONTROL"
15038
15039	// S3PermissionRead is a S3Permission enum value
15040	S3PermissionRead = "READ"
15041
15042	// S3PermissionWrite is a S3Permission enum value
15043	S3PermissionWrite = "WRITE"
15044
15045	// S3PermissionReadAcp is a S3Permission enum value
15046	S3PermissionReadAcp = "READ_ACP"
15047
15048	// S3PermissionWriteAcp is a S3Permission enum value
15049	S3PermissionWriteAcp = "WRITE_ACP"
15050)
15051
15052// S3Permission_Values returns all elements of the S3Permission enum
15053func S3Permission_Values() []string {
15054	return []string{
15055		S3PermissionFullControl,
15056		S3PermissionRead,
15057		S3PermissionWrite,
15058		S3PermissionReadAcp,
15059		S3PermissionWriteAcp,
15060	}
15061}
15062
15063const (
15064	// S3SSEAlgorithmAes256 is a S3SSEAlgorithm enum value
15065	S3SSEAlgorithmAes256 = "AES256"
15066
15067	// S3SSEAlgorithmKms is a S3SSEAlgorithm enum value
15068	S3SSEAlgorithmKms = "KMS"
15069)
15070
15071// S3SSEAlgorithm_Values returns all elements of the S3SSEAlgorithm enum
15072func S3SSEAlgorithm_Values() []string {
15073	return []string{
15074		S3SSEAlgorithmAes256,
15075		S3SSEAlgorithmKms,
15076	}
15077}
15078
15079const (
15080	// S3StorageClassStandard is a S3StorageClass enum value
15081	S3StorageClassStandard = "STANDARD"
15082
15083	// S3StorageClassStandardIa is a S3StorageClass enum value
15084	S3StorageClassStandardIa = "STANDARD_IA"
15085
15086	// S3StorageClassOnezoneIa is a S3StorageClass enum value
15087	S3StorageClassOnezoneIa = "ONEZONE_IA"
15088
15089	// S3StorageClassGlacier is a S3StorageClass enum value
15090	S3StorageClassGlacier = "GLACIER"
15091
15092	// S3StorageClassIntelligentTiering is a S3StorageClass enum value
15093	S3StorageClassIntelligentTiering = "INTELLIGENT_TIERING"
15094
15095	// S3StorageClassDeepArchive is a S3StorageClass enum value
15096	S3StorageClassDeepArchive = "DEEP_ARCHIVE"
15097)
15098
15099// S3StorageClass_Values returns all elements of the S3StorageClass enum
15100func S3StorageClass_Values() []string {
15101	return []string{
15102		S3StorageClassStandard,
15103		S3StorageClassStandardIa,
15104		S3StorageClassOnezoneIa,
15105		S3StorageClassGlacier,
15106		S3StorageClassIntelligentTiering,
15107		S3StorageClassDeepArchive,
15108	}
15109}
15110
15111const (
15112	// TransitionStorageClassGlacier is a TransitionStorageClass enum value
15113	TransitionStorageClassGlacier = "GLACIER"
15114
15115	// TransitionStorageClassStandardIa is a TransitionStorageClass enum value
15116	TransitionStorageClassStandardIa = "STANDARD_IA"
15117
15118	// TransitionStorageClassOnezoneIa is a TransitionStorageClass enum value
15119	TransitionStorageClassOnezoneIa = "ONEZONE_IA"
15120
15121	// TransitionStorageClassIntelligentTiering is a TransitionStorageClass enum value
15122	TransitionStorageClassIntelligentTiering = "INTELLIGENT_TIERING"
15123
15124	// TransitionStorageClassDeepArchive is a TransitionStorageClass enum value
15125	TransitionStorageClassDeepArchive = "DEEP_ARCHIVE"
15126)
15127
15128// TransitionStorageClass_Values returns all elements of the TransitionStorageClass enum
15129func TransitionStorageClass_Values() []string {
15130	return []string{
15131		TransitionStorageClassGlacier,
15132		TransitionStorageClassStandardIa,
15133		TransitionStorageClassOnezoneIa,
15134		TransitionStorageClassIntelligentTiering,
15135		TransitionStorageClassDeepArchive,
15136	}
15137}
15138