1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package s3control
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/internal/s3shared/arn"
13	"github.com/aws/aws-sdk-go/private/checksum"
14	"github.com/aws/aws-sdk-go/private/protocol"
15	"github.com/aws/aws-sdk-go/private/protocol/restxml"
16)
17
18const opCreateAccessPoint = "CreateAccessPoint"
19
20// CreateAccessPointRequest generates a "aws/request.Request" representing the
21// client's request for the CreateAccessPoint operation. The "output" return
22// value will be populated with the request's response once the request completes
23// successfully.
24//
25// Use "Send" method on the returned Request to send the API call to the service.
26// the "output" return value is not valid until after Send returns without error.
27//
28// See CreateAccessPoint for more information on using the CreateAccessPoint
29// API call, and error handling.
30//
31// This method is useful when you want to inject custom logic or configuration
32// into the SDK's request lifecycle. Such as custom headers, or retry logic.
33//
34//
35//    // Example sending a request using the CreateAccessPointRequest method.
36//    req, resp := client.CreateAccessPointRequest(params)
37//
38//    err := req.Send()
39//    if err == nil { // resp is now filled
40//        fmt.Println(resp)
41//    }
42//
43// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPoint
44func (c *S3Control) CreateAccessPointRequest(input *CreateAccessPointInput) (req *request.Request, output *CreateAccessPointOutput) {
45	op := &request.Operation{
46		Name:       opCreateAccessPoint,
47		HTTPMethod: "PUT",
48		HTTPPath:   "/v20180820/accesspoint/{name}",
49	}
50
51	if input == nil {
52		input = &CreateAccessPointInput{}
53	}
54
55	output = &CreateAccessPointOutput{}
56	req = c.newRequest(op, input, output)
57	// update account id or check if provided input for account id member matches
58	// the account id present in ARN
59	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
60	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
61	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
62	return
63}
64
65// CreateAccessPoint API operation for AWS S3 Control.
66//
67// Creates an access point and associates it with the specified bucket. For
68// more information, see Managing Data Access with Amazon S3 Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)
69// in the Amazon S3 User Guide.
70//
71// S3 on Outposts only supports VPC-style access points.
72//
73// For more information, see Accessing Amazon S3 on Outposts using virtual private
74// cloud (VPC) only access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
75// in the Amazon S3 User Guide.
76//
77// All Amazon S3 on Outposts REST API requests for this action require an additional
78// parameter of x-amz-outpost-id to be passed with the request and an S3 on
79// Outposts endpoint hostname prefix instead of s3-control. For an example of
80// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
81// endpoint hostname prefix and the x-amz-outpost-id derived using the access
82// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html#API_control_CreateAccessPoint_Examples)
83// section.
84//
85// The following actions are related to CreateAccessPoint:
86//
87//    * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)
88//
89//    * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)
90//
91//    * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)
92//
93// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
94// with awserr.Error's Code and Message methods to get detailed information about
95// the error.
96//
97// See the AWS API reference guide for AWS S3 Control's
98// API operation CreateAccessPoint for usage and error information.
99// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPoint
100func (c *S3Control) CreateAccessPoint(input *CreateAccessPointInput) (*CreateAccessPointOutput, error) {
101	req, out := c.CreateAccessPointRequest(input)
102	return out, req.Send()
103}
104
105// CreateAccessPointWithContext is the same as CreateAccessPoint with the addition of
106// the ability to pass a context and additional request options.
107//
108// See CreateAccessPoint for details on how to use this API operation.
109//
110// The context must be non-nil and will be used for request cancellation. If
111// the context is nil a panic will occur. In the future the SDK may create
112// sub-contexts for http.Requests. See https://golang.org/pkg/context/
113// for more information on using Contexts.
114func (c *S3Control) CreateAccessPointWithContext(ctx aws.Context, input *CreateAccessPointInput, opts ...request.Option) (*CreateAccessPointOutput, error) {
115	req, out := c.CreateAccessPointRequest(input)
116	req.SetContext(ctx)
117	req.ApplyOptions(opts...)
118	return out, req.Send()
119}
120
121const opCreateAccessPointForObjectLambda = "CreateAccessPointForObjectLambda"
122
123// CreateAccessPointForObjectLambdaRequest generates a "aws/request.Request" representing the
124// client's request for the CreateAccessPointForObjectLambda operation. The "output" return
125// value will be populated with the request's response once the request completes
126// successfully.
127//
128// Use "Send" method on the returned Request to send the API call to the service.
129// the "output" return value is not valid until after Send returns without error.
130//
131// See CreateAccessPointForObjectLambda for more information on using the CreateAccessPointForObjectLambda
132// API call, and error handling.
133//
134// This method is useful when you want to inject custom logic or configuration
135// into the SDK's request lifecycle. Such as custom headers, or retry logic.
136//
137//
138//    // Example sending a request using the CreateAccessPointForObjectLambdaRequest method.
139//    req, resp := client.CreateAccessPointForObjectLambdaRequest(params)
140//
141//    err := req.Send()
142//    if err == nil { // resp is now filled
143//        fmt.Println(resp)
144//    }
145//
146// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPointForObjectLambda
147func (c *S3Control) CreateAccessPointForObjectLambdaRequest(input *CreateAccessPointForObjectLambdaInput) (req *request.Request, output *CreateAccessPointForObjectLambdaOutput) {
148	op := &request.Operation{
149		Name:       opCreateAccessPointForObjectLambda,
150		HTTPMethod: "PUT",
151		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}",
152	}
153
154	if input == nil {
155		input = &CreateAccessPointForObjectLambdaInput{}
156	}
157
158	output = &CreateAccessPointForObjectLambdaOutput{}
159	req = c.newRequest(op, input, output)
160	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
161	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
162	return
163}
164
165// CreateAccessPointForObjectLambda API operation for AWS S3 Control.
166//
167// Creates an Object Lambda Access Point. For more information, see Transforming
168// objects with Object Lambda Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html)
169// in the Amazon S3 User Guide.
170//
171// The following actions are related to CreateAccessPointForObjectLambda:
172//
173//    * DeleteAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html)
174//
175//    * GetAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointForObjectLambda.html)
176//
177//    * ListAccessPointsForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html)
178//
179// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
180// with awserr.Error's Code and Message methods to get detailed information about
181// the error.
182//
183// See the AWS API reference guide for AWS S3 Control's
184// API operation CreateAccessPointForObjectLambda for usage and error information.
185// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPointForObjectLambda
186func (c *S3Control) CreateAccessPointForObjectLambda(input *CreateAccessPointForObjectLambdaInput) (*CreateAccessPointForObjectLambdaOutput, error) {
187	req, out := c.CreateAccessPointForObjectLambdaRequest(input)
188	return out, req.Send()
189}
190
191// CreateAccessPointForObjectLambdaWithContext is the same as CreateAccessPointForObjectLambda with the addition of
192// the ability to pass a context and additional request options.
193//
194// See CreateAccessPointForObjectLambda for details on how to use this API operation.
195//
196// The context must be non-nil and will be used for request cancellation. If
197// the context is nil a panic will occur. In the future the SDK may create
198// sub-contexts for http.Requests. See https://golang.org/pkg/context/
199// for more information on using Contexts.
200func (c *S3Control) CreateAccessPointForObjectLambdaWithContext(ctx aws.Context, input *CreateAccessPointForObjectLambdaInput, opts ...request.Option) (*CreateAccessPointForObjectLambdaOutput, error) {
201	req, out := c.CreateAccessPointForObjectLambdaRequest(input)
202	req.SetContext(ctx)
203	req.ApplyOptions(opts...)
204	return out, req.Send()
205}
206
207const opCreateBucket = "CreateBucket"
208
209// CreateBucketRequest generates a "aws/request.Request" representing the
210// client's request for the CreateBucket operation. The "output" return
211// value will be populated with the request's response once the request completes
212// successfully.
213//
214// Use "Send" method on the returned Request to send the API call to the service.
215// the "output" return value is not valid until after Send returns without error.
216//
217// See CreateBucket for more information on using the CreateBucket
218// API call, and error handling.
219//
220// This method is useful when you want to inject custom logic or configuration
221// into the SDK's request lifecycle. Such as custom headers, or retry logic.
222//
223//
224//    // Example sending a request using the CreateBucketRequest method.
225//    req, resp := client.CreateBucketRequest(params)
226//
227//    err := req.Send()
228//    if err == nil { // resp is now filled
229//        fmt.Println(resp)
230//    }
231//
232// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucket
233func (c *S3Control) CreateBucketRequest(input *CreateBucketInput) (req *request.Request, output *CreateBucketOutput) {
234	op := &request.Operation{
235		Name:       opCreateBucket,
236		HTTPMethod: "PUT",
237		HTTPPath:   "/v20180820/bucket/{name}",
238	}
239
240	if input == nil {
241		input = &CreateBucketInput{}
242	}
243
244	output = &CreateBucketOutput{}
245	req = c.newRequest(op, input, output)
246	req.Handlers.Build.PushBackNamed(request.NamedHandler{
247		Name: "contentMd5Handler",
248		Fn:   checksum.AddBodyContentMD5Handler,
249	})
250	return
251}
252
253// CreateBucket API operation for AWS S3 Control.
254//
255//
256// This action creates an Amazon S3 on Outposts bucket. To create an S3 bucket,
257// see Create Bucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
258// in the Amazon S3 API Reference.
259//
260// Creates a new Outposts bucket. By creating the bucket, you become the bucket
261// owner. To create an Outposts bucket, you must have S3 on Outposts. For more
262// information, see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
263// in Amazon S3 User Guide.
264//
265// Not every string is an acceptable bucket name. For information on bucket
266// naming restrictions, see Working with Amazon S3 Buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules).
267//
268// S3 on Outposts buckets support:
269//
270//    * Tags
271//
272//    * LifecycleConfigurations for deleting expired objects
273//
274// For a complete list of restrictions and Amazon S3 feature limitations on
275// S3 on Outposts, see Amazon S3 on Outposts Restrictions and Limitations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3OnOutpostsRestrictionsLimitations.html).
276//
277// For an example of the request syntax for Amazon S3 on Outposts that uses
278// the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your
279// API request, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html#API_control_CreateBucket_Examples)
280// section.
281//
282// The following actions are related to CreateBucket for Amazon S3 on Outposts:
283//
284//    * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
285//
286//    * GetBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html)
287//
288//    * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html)
289//
290//    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
291//
292//    * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)
293//
294// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
295// with awserr.Error's Code and Message methods to get detailed information about
296// the error.
297//
298// See the AWS API reference guide for AWS S3 Control's
299// API operation CreateBucket for usage and error information.
300//
301// Returned Error Codes:
302//   * ErrCodeBucketAlreadyExists "BucketAlreadyExists"
303//   The requested Outposts bucket name is not available. The bucket namespace
304//   is shared by all users of the Outposts in this Region. Select a different
305//   name and try again.
306//
307//   * ErrCodeBucketAlreadyOwnedByYou "BucketAlreadyOwnedByYou"
308//   The Outposts bucket you tried to create already exists, and you own it.
309//
310// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucket
311func (c *S3Control) CreateBucket(input *CreateBucketInput) (*CreateBucketOutput, error) {
312	req, out := c.CreateBucketRequest(input)
313	return out, req.Send()
314}
315
316// CreateBucketWithContext is the same as CreateBucket with the addition of
317// the ability to pass a context and additional request options.
318//
319// See CreateBucket for details on how to use this API operation.
320//
321// The context must be non-nil and will be used for request cancellation. If
322// the context is nil a panic will occur. In the future the SDK may create
323// sub-contexts for http.Requests. See https://golang.org/pkg/context/
324// for more information on using Contexts.
325func (c *S3Control) CreateBucketWithContext(ctx aws.Context, input *CreateBucketInput, opts ...request.Option) (*CreateBucketOutput, error) {
326	req, out := c.CreateBucketRequest(input)
327	req.SetContext(ctx)
328	req.ApplyOptions(opts...)
329	return out, req.Send()
330}
331
332const opCreateJob = "CreateJob"
333
334// CreateJobRequest generates a "aws/request.Request" representing the
335// client's request for the CreateJob operation. The "output" return
336// value will be populated with the request's response once the request completes
337// successfully.
338//
339// Use "Send" method on the returned Request to send the API call to the service.
340// the "output" return value is not valid until after Send returns without error.
341//
342// See CreateJob for more information on using the CreateJob
343// API call, and error handling.
344//
345// This method is useful when you want to inject custom logic or configuration
346// into the SDK's request lifecycle. Such as custom headers, or retry logic.
347//
348//
349//    // Example sending a request using the CreateJobRequest method.
350//    req, resp := client.CreateJobRequest(params)
351//
352//    err := req.Send()
353//    if err == nil { // resp is now filled
354//        fmt.Println(resp)
355//    }
356//
357// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateJob
358func (c *S3Control) CreateJobRequest(input *CreateJobInput) (req *request.Request, output *CreateJobOutput) {
359	op := &request.Operation{
360		Name:       opCreateJob,
361		HTTPMethod: "POST",
362		HTTPPath:   "/v20180820/jobs",
363	}
364
365	if input == nil {
366		input = &CreateJobInput{}
367	}
368
369	output = &CreateJobOutput{}
370	req = c.newRequest(op, input, output)
371	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
372	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
373	return
374}
375
376// CreateJob API operation for AWS S3 Control.
377//
378// You can use S3 Batch Operations to perform large-scale batch actions on Amazon
379// S3 objects. Batch Operations can run a single action on lists of Amazon S3
380// objects that you specify. For more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
381// in the Amazon S3 User Guide.
382//
383// This action creates a S3 Batch Operations job.
384//
385// Related actions include:
386//
387//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
388//
389//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
390//
391//    * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html)
392//
393//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
394//
395//    * JobOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobOperation.html)
396//
397// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
398// with awserr.Error's Code and Message methods to get detailed information about
399// the error.
400//
401// See the AWS API reference guide for AWS S3 Control's
402// API operation CreateJob for usage and error information.
403//
404// Returned Error Codes:
405//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
406//
407//   * ErrCodeBadRequestException "BadRequestException"
408//
409//   * ErrCodeIdempotencyException "IdempotencyException"
410//
411//   * ErrCodeInternalServiceException "InternalServiceException"
412//
413// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateJob
414func (c *S3Control) CreateJob(input *CreateJobInput) (*CreateJobOutput, error) {
415	req, out := c.CreateJobRequest(input)
416	return out, req.Send()
417}
418
419// CreateJobWithContext is the same as CreateJob with the addition of
420// the ability to pass a context and additional request options.
421//
422// See CreateJob for details on how to use this API operation.
423//
424// The context must be non-nil and will be used for request cancellation. If
425// the context is nil a panic will occur. In the future the SDK may create
426// sub-contexts for http.Requests. See https://golang.org/pkg/context/
427// for more information on using Contexts.
428func (c *S3Control) CreateJobWithContext(ctx aws.Context, input *CreateJobInput, opts ...request.Option) (*CreateJobOutput, error) {
429	req, out := c.CreateJobRequest(input)
430	req.SetContext(ctx)
431	req.ApplyOptions(opts...)
432	return out, req.Send()
433}
434
435const 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 S3 API Reference.
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 S3 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 S3 API Reference.
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 S3 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 S3 API Reference.
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 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 S3 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 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 S3 API Reference.
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 S3 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 S3 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 account. For more information,
1379// 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 S3 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 S3 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 S3 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 S3 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 S3 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 S3 User 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 S3 User Guide.
2318//
2319// If you are using an identity other than the root user of the account that
2320// 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 S3 API Reference.
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 S3 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 S3 API Reference.
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 S3 User Guide.
2546//
2547// If you are using an identity other than the root user of the account that
2548// owns the bucket, the calling identity must have the GetBucketPolicy permissions
2549// on the specified bucket and belong to the bucket owner's account in order
2550// 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 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 S3 API Reference.
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 S3 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 S3 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 account. For more information,
2859// 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 S3 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 S3 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 S3 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 S3 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 account making the request. For more information, see
3425// S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
3426// in the Amazon S3 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 S3 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 S3 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 S3 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 S3 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 S3 API Reference.
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 S3 API Reference.
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 S3 User Guide.
4241//
4242// If you are using an identity other than the root user of the account that
4243// 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 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 S3 API Reference.
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 S3 User Guide.
4363//
4364// Use tags to organize your Amazon Web Services bill to reflect your own cost
4365// structure. To do this, sign up to get your account bill with tag key values
4366// included. Then, to see the cost of combined resources, organize your billing
4367// information according to resources with the same tag key values. For example,
4368// you can tag several resources with a specific application name, and then
4369// organize your billing information to see the total cost of that application
4370// across several services. For more information, see Cost allocation and tagging
4371// (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html).
4372//
4373// Within a bucket, if you add a tag that has the same key as an existing tag,
4374// the new value overwrites the old value. For more information, see Using cost
4375// allocation in Amazon S3 bucket tags (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html).
4376//
4377// To use this action, you must have permissions to perform the s3-outposts:PutBucketTagging
4378// action. The Outposts bucket owner has this permission by default and can
4379// grant this permission to others. For more information about permissions,
4380// 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)
4381// and Managing access permissions to your Amazon S3 resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html).
4382//
4383// PutBucketTagging has the following special errors:
4384//
4385//    * Error code: InvalidTagError Description: The tag provided was not a
4386//    valid tag. This error can occur if the tag did not pass input validation.
4387//    For information about tag restrictions, see User-Defined Tag Restrictions
4388//    (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html)
4389//    and Amazon Web Services-Generated Cost Allocation Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html).
4390//
4391//    * Error code: MalformedXMLError Description: The XML provided does not
4392//    match the schema.
4393//
4394//    * Error code: OperationAbortedError Description: A conflicting conditional
4395//    action is currently in progress against this resource. Try again.
4396//
4397//    * Error code: InternalError Description: The service was unable to apply
4398//    the provided tag to the bucket.
4399//
4400// All Amazon S3 on Outposts REST API requests for this action require an additional
4401// parameter of x-amz-outpost-id to be passed with the request and an S3 on
4402// Outposts endpoint hostname prefix instead of s3-control. For an example of
4403// the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
4404// endpoint hostname prefix and the x-amz-outpost-id derived using the access
4405// point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html#API_control_PutBucketTagging_Examples)
4406// section.
4407//
4408// The following actions are related to PutBucketTagging:
4409//
4410//    * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html)
4411//
4412//    * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html)
4413//
4414// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4415// with awserr.Error's Code and Message methods to get detailed information about
4416// the error.
4417//
4418// See the AWS API reference guide for AWS S3 Control's
4419// API operation PutBucketTagging for usage and error information.
4420// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging
4421func (c *S3Control) PutBucketTagging(input *PutBucketTaggingInput) (*PutBucketTaggingOutput, error) {
4422	req, out := c.PutBucketTaggingRequest(input)
4423	return out, req.Send()
4424}
4425
4426// PutBucketTaggingWithContext is the same as PutBucketTagging with the addition of
4427// the ability to pass a context and additional request options.
4428//
4429// See PutBucketTagging for details on how to use this API operation.
4430//
4431// The context must be non-nil and will be used for request cancellation. If
4432// the context is nil a panic will occur. In the future the SDK may create
4433// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4434// for more information on using Contexts.
4435func (c *S3Control) PutBucketTaggingWithContext(ctx aws.Context, input *PutBucketTaggingInput, opts ...request.Option) (*PutBucketTaggingOutput, error) {
4436	req, out := c.PutBucketTaggingRequest(input)
4437	req.SetContext(ctx)
4438	req.ApplyOptions(opts...)
4439	return out, req.Send()
4440}
4441
4442const opPutJobTagging = "PutJobTagging"
4443
4444// PutJobTaggingRequest generates a "aws/request.Request" representing the
4445// client's request for the PutJobTagging operation. The "output" return
4446// value will be populated with the request's response once the request completes
4447// successfully.
4448//
4449// Use "Send" method on the returned Request to send the API call to the service.
4450// the "output" return value is not valid until after Send returns without error.
4451//
4452// See PutJobTagging for more information on using the PutJobTagging
4453// API call, and error handling.
4454//
4455// This method is useful when you want to inject custom logic or configuration
4456// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4457//
4458//
4459//    // Example sending a request using the PutJobTaggingRequest method.
4460//    req, resp := client.PutJobTaggingRequest(params)
4461//
4462//    err := req.Send()
4463//    if err == nil { // resp is now filled
4464//        fmt.Println(resp)
4465//    }
4466//
4467// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging
4468func (c *S3Control) PutJobTaggingRequest(input *PutJobTaggingInput) (req *request.Request, output *PutJobTaggingOutput) {
4469	op := &request.Operation{
4470		Name:       opPutJobTagging,
4471		HTTPMethod: "PUT",
4472		HTTPPath:   "/v20180820/jobs/{id}/tagging",
4473	}
4474
4475	if input == nil {
4476		input = &PutJobTaggingInput{}
4477	}
4478
4479	output = &PutJobTaggingOutput{}
4480	req = c.newRequest(op, input, output)
4481	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4482	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4483	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4484	return
4485}
4486
4487// PutJobTagging API operation for AWS S3 Control.
4488//
4489// Sets the supplied tag-set on an S3 Batch Operations job.
4490//
4491// A tag is a key-value pair. You can associate S3 Batch Operations tags with
4492// any job by sending a PUT request against the tagging subresource that is
4493// associated with the job. To modify the existing tag set, you can either replace
4494// the existing tag set entirely, or make changes within the existing tag set
4495// by retrieving the existing tag set using GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html),
4496// modify that tag set, and use this action to replace the tag set with the
4497// one you modified. For more information, see Controlling access and labeling
4498// jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags)
4499// in the Amazon S3 User Guide.
4500//
4501//    * If you send this request with an empty tag set, Amazon S3 deletes the
4502//    existing tag set on the Batch Operations job. If you use this method,
4503//    you are charged for a Tier 1 Request (PUT). For more information, see
4504//    Amazon S3 pricing (http://aws.amazon.com/s3/pricing/).
4505//
4506//    * For deleting existing tags for your Batch Operations job, a DeleteJobTagging
4507//    (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
4508//    request is preferred because it achieves the same result without incurring
4509//    charges.
4510//
4511//    * A few things to consider about using tags: Amazon S3 limits the maximum
4512//    number of tags to 50 tags per job. You can associate up to 50 tags with
4513//    a job as long as they have unique tag keys. A tag key can be up to 128
4514//    Unicode characters in length, and tag values can be up to 256 Unicode
4515//    characters in length. The key and values are case sensitive. For tagging-related
4516//    restrictions related to characters and encodings, see User-Defined Tag
4517//    Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html)
4518//    in the Billing and Cost Management User Guide.
4519//
4520// To use this action, you must have permission to perform the s3:PutJobTagging
4521// action.
4522//
4523// Related actions include:
4524//
4525//    * CreatJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
4526//
4527//    * GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html)
4528//
4529//    * DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
4530//
4531// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4532// with awserr.Error's Code and Message methods to get detailed information about
4533// the error.
4534//
4535// See the AWS API reference guide for AWS S3 Control's
4536// API operation PutJobTagging for usage and error information.
4537//
4538// Returned Error Codes:
4539//   * ErrCodeInternalServiceException "InternalServiceException"
4540//
4541//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4542//
4543//   * ErrCodeNotFoundException "NotFoundException"
4544//
4545//   * ErrCodeTooManyTagsException "TooManyTagsException"
4546//   Amazon S3 throws this exception if you have too many tags in your tag set.
4547//
4548// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging
4549func (c *S3Control) PutJobTagging(input *PutJobTaggingInput) (*PutJobTaggingOutput, error) {
4550	req, out := c.PutJobTaggingRequest(input)
4551	return out, req.Send()
4552}
4553
4554// PutJobTaggingWithContext is the same as PutJobTagging with the addition of
4555// the ability to pass a context and additional request options.
4556//
4557// See PutJobTagging for details on how to use this API operation.
4558//
4559// The context must be non-nil and will be used for request cancellation. If
4560// the context is nil a panic will occur. In the future the SDK may create
4561// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4562// for more information on using Contexts.
4563func (c *S3Control) PutJobTaggingWithContext(ctx aws.Context, input *PutJobTaggingInput, opts ...request.Option) (*PutJobTaggingOutput, error) {
4564	req, out := c.PutJobTaggingRequest(input)
4565	req.SetContext(ctx)
4566	req.ApplyOptions(opts...)
4567	return out, req.Send()
4568}
4569
4570const opPutPublicAccessBlock = "PutPublicAccessBlock"
4571
4572// PutPublicAccessBlockRequest generates a "aws/request.Request" representing the
4573// client's request for the PutPublicAccessBlock operation. The "output" return
4574// value will be populated with the request's response once the request completes
4575// successfully.
4576//
4577// Use "Send" method on the returned Request to send the API call to the service.
4578// the "output" return value is not valid until after Send returns without error.
4579//
4580// See PutPublicAccessBlock for more information on using the PutPublicAccessBlock
4581// API call, and error handling.
4582//
4583// This method is useful when you want to inject custom logic or configuration
4584// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4585//
4586//
4587//    // Example sending a request using the PutPublicAccessBlockRequest method.
4588//    req, resp := client.PutPublicAccessBlockRequest(params)
4589//
4590//    err := req.Send()
4591//    if err == nil { // resp is now filled
4592//        fmt.Println(resp)
4593//    }
4594//
4595// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock
4596func (c *S3Control) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req *request.Request, output *PutPublicAccessBlockOutput) {
4597	op := &request.Operation{
4598		Name:       opPutPublicAccessBlock,
4599		HTTPMethod: "PUT",
4600		HTTPPath:   "/v20180820/configuration/publicAccessBlock",
4601	}
4602
4603	if input == nil {
4604		input = &PutPublicAccessBlockInput{}
4605	}
4606
4607	output = &PutPublicAccessBlockOutput{}
4608	req = c.newRequest(op, input, output)
4609	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4610	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4611	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4612	return
4613}
4614
4615// PutPublicAccessBlock API operation for AWS S3 Control.
4616//
4617// Creates or modifies the PublicAccessBlock configuration for an account. For
4618// more information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).
4619//
4620// Related actions include:
4621//
4622//    * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html)
4623//
4624//    * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html)
4625//
4626// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4627// with awserr.Error's Code and Message methods to get detailed information about
4628// the error.
4629//
4630// See the AWS API reference guide for AWS S3 Control's
4631// API operation PutPublicAccessBlock for usage and error information.
4632// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock
4633func (c *S3Control) PutPublicAccessBlock(input *PutPublicAccessBlockInput) (*PutPublicAccessBlockOutput, error) {
4634	req, out := c.PutPublicAccessBlockRequest(input)
4635	return out, req.Send()
4636}
4637
4638// PutPublicAccessBlockWithContext is the same as PutPublicAccessBlock with the addition of
4639// the ability to pass a context and additional request options.
4640//
4641// See PutPublicAccessBlock for details on how to use this API operation.
4642//
4643// The context must be non-nil and will be used for request cancellation. If
4644// the context is nil a panic will occur. In the future the SDK may create
4645// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4646// for more information on using Contexts.
4647func (c *S3Control) PutPublicAccessBlockWithContext(ctx aws.Context, input *PutPublicAccessBlockInput, opts ...request.Option) (*PutPublicAccessBlockOutput, error) {
4648	req, out := c.PutPublicAccessBlockRequest(input)
4649	req.SetContext(ctx)
4650	req.ApplyOptions(opts...)
4651	return out, req.Send()
4652}
4653
4654const opPutStorageLensConfiguration = "PutStorageLensConfiguration"
4655
4656// PutStorageLensConfigurationRequest generates a "aws/request.Request" representing the
4657// client's request for the PutStorageLensConfiguration operation. The "output" return
4658// value will be populated with the request's response once the request completes
4659// successfully.
4660//
4661// Use "Send" method on the returned Request to send the API call to the service.
4662// the "output" return value is not valid until after Send returns without error.
4663//
4664// See PutStorageLensConfiguration for more information on using the PutStorageLensConfiguration
4665// API call, and error handling.
4666//
4667// This method is useful when you want to inject custom logic or configuration
4668// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4669//
4670//
4671//    // Example sending a request using the PutStorageLensConfigurationRequest method.
4672//    req, resp := client.PutStorageLensConfigurationRequest(params)
4673//
4674//    err := req.Send()
4675//    if err == nil { // resp is now filled
4676//        fmt.Println(resp)
4677//    }
4678//
4679// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration
4680func (c *S3Control) PutStorageLensConfigurationRequest(input *PutStorageLensConfigurationInput) (req *request.Request, output *PutStorageLensConfigurationOutput) {
4681	op := &request.Operation{
4682		Name:       opPutStorageLensConfiguration,
4683		HTTPMethod: "PUT",
4684		HTTPPath:   "/v20180820/storagelens/{storagelensid}",
4685	}
4686
4687	if input == nil {
4688		input = &PutStorageLensConfigurationInput{}
4689	}
4690
4691	output = &PutStorageLensConfigurationOutput{}
4692	req = c.newRequest(op, input, output)
4693	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4694	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4695	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4696	return
4697}
4698
4699// PutStorageLensConfiguration API operation for AWS S3 Control.
4700//
4701// Puts an Amazon S3 Storage Lens configuration. For more information about
4702// S3 Storage Lens, see Working with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
4703// in the Amazon S3 User Guide.
4704//
4705// To use this action, you must have permission to perform the s3:PutStorageLensConfiguration
4706// action. For more information, see Setting permissions to use Amazon S3 Storage
4707// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
4708// in the Amazon S3 User Guide.
4709//
4710// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4711// with awserr.Error's Code and Message methods to get detailed information about
4712// the error.
4713//
4714// See the AWS API reference guide for AWS S3 Control's
4715// API operation PutStorageLensConfiguration for usage and error information.
4716// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration
4717func (c *S3Control) PutStorageLensConfiguration(input *PutStorageLensConfigurationInput) (*PutStorageLensConfigurationOutput, error) {
4718	req, out := c.PutStorageLensConfigurationRequest(input)
4719	return out, req.Send()
4720}
4721
4722// PutStorageLensConfigurationWithContext is the same as PutStorageLensConfiguration with the addition of
4723// the ability to pass a context and additional request options.
4724//
4725// See PutStorageLensConfiguration for details on how to use this API operation.
4726//
4727// The context must be non-nil and will be used for request cancellation. If
4728// the context is nil a panic will occur. In the future the SDK may create
4729// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4730// for more information on using Contexts.
4731func (c *S3Control) PutStorageLensConfigurationWithContext(ctx aws.Context, input *PutStorageLensConfigurationInput, opts ...request.Option) (*PutStorageLensConfigurationOutput, error) {
4732	req, out := c.PutStorageLensConfigurationRequest(input)
4733	req.SetContext(ctx)
4734	req.ApplyOptions(opts...)
4735	return out, req.Send()
4736}
4737
4738const opPutStorageLensConfigurationTagging = "PutStorageLensConfigurationTagging"
4739
4740// PutStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the
4741// client's request for the PutStorageLensConfigurationTagging operation. The "output" return
4742// value will be populated with the request's response once the request completes
4743// successfully.
4744//
4745// Use "Send" method on the returned Request to send the API call to the service.
4746// the "output" return value is not valid until after Send returns without error.
4747//
4748// See PutStorageLensConfigurationTagging for more information on using the PutStorageLensConfigurationTagging
4749// API call, and error handling.
4750//
4751// This method is useful when you want to inject custom logic or configuration
4752// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4753//
4754//
4755//    // Example sending a request using the PutStorageLensConfigurationTaggingRequest method.
4756//    req, resp := client.PutStorageLensConfigurationTaggingRequest(params)
4757//
4758//    err := req.Send()
4759//    if err == nil { // resp is now filled
4760//        fmt.Println(resp)
4761//    }
4762//
4763// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging
4764func (c *S3Control) PutStorageLensConfigurationTaggingRequest(input *PutStorageLensConfigurationTaggingInput) (req *request.Request, output *PutStorageLensConfigurationTaggingOutput) {
4765	op := &request.Operation{
4766		Name:       opPutStorageLensConfigurationTagging,
4767		HTTPMethod: "PUT",
4768		HTTPPath:   "/v20180820/storagelens/{storagelensid}/tagging",
4769	}
4770
4771	if input == nil {
4772		input = &PutStorageLensConfigurationTaggingInput{}
4773	}
4774
4775	output = &PutStorageLensConfigurationTaggingOutput{}
4776	req = c.newRequest(op, input, output)
4777	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4778	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4779	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4780	return
4781}
4782
4783// PutStorageLensConfigurationTagging API operation for AWS S3 Control.
4784//
4785// Put or replace tags on an existing Amazon S3 Storage Lens configuration.
4786// For more information about S3 Storage Lens, see Assessing your storage activity
4787// and usage with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
4788// in the Amazon S3 User Guide.
4789//
4790// To use this action, you must have permission to perform the s3:PutStorageLensConfigurationTagging
4791// action. For more information, see Setting permissions to use Amazon S3 Storage
4792// Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
4793// in the Amazon S3 User Guide.
4794//
4795// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4796// with awserr.Error's Code and Message methods to get detailed information about
4797// the error.
4798//
4799// See the AWS API reference guide for AWS S3 Control's
4800// API operation PutStorageLensConfigurationTagging for usage and error information.
4801// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging
4802func (c *S3Control) PutStorageLensConfigurationTagging(input *PutStorageLensConfigurationTaggingInput) (*PutStorageLensConfigurationTaggingOutput, error) {
4803	req, out := c.PutStorageLensConfigurationTaggingRequest(input)
4804	return out, req.Send()
4805}
4806
4807// PutStorageLensConfigurationTaggingWithContext is the same as PutStorageLensConfigurationTagging with the addition of
4808// the ability to pass a context and additional request options.
4809//
4810// See PutStorageLensConfigurationTagging for details on how to use this API operation.
4811//
4812// The context must be non-nil and will be used for request cancellation. If
4813// the context is nil a panic will occur. In the future the SDK may create
4814// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4815// for more information on using Contexts.
4816func (c *S3Control) PutStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *PutStorageLensConfigurationTaggingInput, opts ...request.Option) (*PutStorageLensConfigurationTaggingOutput, error) {
4817	req, out := c.PutStorageLensConfigurationTaggingRequest(input)
4818	req.SetContext(ctx)
4819	req.ApplyOptions(opts...)
4820	return out, req.Send()
4821}
4822
4823const opUpdateJobPriority = "UpdateJobPriority"
4824
4825// UpdateJobPriorityRequest generates a "aws/request.Request" representing the
4826// client's request for the UpdateJobPriority operation. The "output" return
4827// value will be populated with the request's response once the request completes
4828// successfully.
4829//
4830// Use "Send" method on the returned Request to send the API call to the service.
4831// the "output" return value is not valid until after Send returns without error.
4832//
4833// See UpdateJobPriority for more information on using the UpdateJobPriority
4834// API call, and error handling.
4835//
4836// This method is useful when you want to inject custom logic or configuration
4837// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4838//
4839//
4840//    // Example sending a request using the UpdateJobPriorityRequest method.
4841//    req, resp := client.UpdateJobPriorityRequest(params)
4842//
4843//    err := req.Send()
4844//    if err == nil { // resp is now filled
4845//        fmt.Println(resp)
4846//    }
4847//
4848// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority
4849func (c *S3Control) UpdateJobPriorityRequest(input *UpdateJobPriorityInput) (req *request.Request, output *UpdateJobPriorityOutput) {
4850	op := &request.Operation{
4851		Name:       opUpdateJobPriority,
4852		HTTPMethod: "POST",
4853		HTTPPath:   "/v20180820/jobs/{id}/priority",
4854	}
4855
4856	if input == nil {
4857		input = &UpdateJobPriorityInput{}
4858	}
4859
4860	output = &UpdateJobPriorityOutput{}
4861	req = c.newRequest(op, input, output)
4862	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4863	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4864	return
4865}
4866
4867// UpdateJobPriority API operation for AWS S3 Control.
4868//
4869// Updates an existing S3 Batch Operations job's priority. For more information,
4870// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
4871// in the Amazon S3 User Guide.
4872//
4873// Related actions include:
4874//
4875//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
4876//
4877//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
4878//
4879//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
4880//
4881//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
4882//
4883// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4884// with awserr.Error's Code and Message methods to get detailed information about
4885// the error.
4886//
4887// See the AWS API reference guide for AWS S3 Control's
4888// API operation UpdateJobPriority for usage and error information.
4889//
4890// Returned Error Codes:
4891//   * ErrCodeBadRequestException "BadRequestException"
4892//
4893//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4894//
4895//   * ErrCodeNotFoundException "NotFoundException"
4896//
4897//   * ErrCodeInternalServiceException "InternalServiceException"
4898//
4899// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority
4900func (c *S3Control) UpdateJobPriority(input *UpdateJobPriorityInput) (*UpdateJobPriorityOutput, error) {
4901	req, out := c.UpdateJobPriorityRequest(input)
4902	return out, req.Send()
4903}
4904
4905// UpdateJobPriorityWithContext is the same as UpdateJobPriority with the addition of
4906// the ability to pass a context and additional request options.
4907//
4908// See UpdateJobPriority for details on how to use this API operation.
4909//
4910// The context must be non-nil and will be used for request cancellation. If
4911// the context is nil a panic will occur. In the future the SDK may create
4912// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4913// for more information on using Contexts.
4914func (c *S3Control) UpdateJobPriorityWithContext(ctx aws.Context, input *UpdateJobPriorityInput, opts ...request.Option) (*UpdateJobPriorityOutput, error) {
4915	req, out := c.UpdateJobPriorityRequest(input)
4916	req.SetContext(ctx)
4917	req.ApplyOptions(opts...)
4918	return out, req.Send()
4919}
4920
4921const opUpdateJobStatus = "UpdateJobStatus"
4922
4923// UpdateJobStatusRequest generates a "aws/request.Request" representing the
4924// client's request for the UpdateJobStatus operation. The "output" return
4925// value will be populated with the request's response once the request completes
4926// successfully.
4927//
4928// Use "Send" method on the returned Request to send the API call to the service.
4929// the "output" return value is not valid until after Send returns without error.
4930//
4931// See UpdateJobStatus for more information on using the UpdateJobStatus
4932// API call, and error handling.
4933//
4934// This method is useful when you want to inject custom logic or configuration
4935// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4936//
4937//
4938//    // Example sending a request using the UpdateJobStatusRequest method.
4939//    req, resp := client.UpdateJobStatusRequest(params)
4940//
4941//    err := req.Send()
4942//    if err == nil { // resp is now filled
4943//        fmt.Println(resp)
4944//    }
4945//
4946// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus
4947func (c *S3Control) UpdateJobStatusRequest(input *UpdateJobStatusInput) (req *request.Request, output *UpdateJobStatusOutput) {
4948	op := &request.Operation{
4949		Name:       opUpdateJobStatus,
4950		HTTPMethod: "POST",
4951		HTTPPath:   "/v20180820/jobs/{id}/status",
4952	}
4953
4954	if input == nil {
4955		input = &UpdateJobStatusInput{}
4956	}
4957
4958	output = &UpdateJobStatusOutput{}
4959	req = c.newRequest(op, input, output)
4960	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
4961	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
4962	return
4963}
4964
4965// UpdateJobStatus API operation for AWS S3 Control.
4966//
4967// Updates the status for the specified job. Use this action to confirm that
4968// you want to run a job or to cancel an existing job. For more information,
4969// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
4970// in the Amazon S3 User Guide.
4971//
4972// Related actions include:
4973//
4974//    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
4975//
4976//    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
4977//
4978//    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
4979//
4980//    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
4981//
4982// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4983// with awserr.Error's Code and Message methods to get detailed information about
4984// the error.
4985//
4986// See the AWS API reference guide for AWS S3 Control's
4987// API operation UpdateJobStatus for usage and error information.
4988//
4989// Returned Error Codes:
4990//   * ErrCodeBadRequestException "BadRequestException"
4991//
4992//   * ErrCodeTooManyRequestsException "TooManyRequestsException"
4993//
4994//   * ErrCodeNotFoundException "NotFoundException"
4995//
4996//   * ErrCodeJobStatusException "JobStatusException"
4997//
4998//   * ErrCodeInternalServiceException "InternalServiceException"
4999//
5000// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus
5001func (c *S3Control) UpdateJobStatus(input *UpdateJobStatusInput) (*UpdateJobStatusOutput, error) {
5002	req, out := c.UpdateJobStatusRequest(input)
5003	return out, req.Send()
5004}
5005
5006// UpdateJobStatusWithContext is the same as UpdateJobStatus with the addition of
5007// the ability to pass a context and additional request options.
5008//
5009// See UpdateJobStatus for details on how to use this API operation.
5010//
5011// The context must be non-nil and will be used for request cancellation. If
5012// the context is nil a panic will occur. In the future the SDK may create
5013// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5014// for more information on using Contexts.
5015func (c *S3Control) UpdateJobStatusWithContext(ctx aws.Context, input *UpdateJobStatusInput, opts ...request.Option) (*UpdateJobStatusOutput, error) {
5016	req, out := c.UpdateJobStatusRequest(input)
5017	req.SetContext(ctx)
5018	req.ApplyOptions(opts...)
5019	return out, req.Send()
5020}
5021
5022// The container for abort incomplete multipart upload
5023type AbortIncompleteMultipartUpload struct {
5024	_ struct{} `type:"structure"`
5025
5026	// Specifies the number of days after which Amazon S3 aborts an incomplete multipart
5027	// upload to the Outposts bucket.
5028	DaysAfterInitiation *int64 `type:"integer"`
5029}
5030
5031// String returns the string representation
5032func (s AbortIncompleteMultipartUpload) String() string {
5033	return awsutil.Prettify(s)
5034}
5035
5036// GoString returns the string representation
5037func (s AbortIncompleteMultipartUpload) GoString() string {
5038	return s.String()
5039}
5040
5041// SetDaysAfterInitiation sets the DaysAfterInitiation field's value.
5042func (s *AbortIncompleteMultipartUpload) SetDaysAfterInitiation(v int64) *AbortIncompleteMultipartUpload {
5043	s.DaysAfterInitiation = &v
5044	return s
5045}
5046
5047// An access point used to access a bucket.
5048type AccessPoint struct {
5049	_ struct{} `type:"structure"`
5050
5051	// The ARN for the access point.
5052	AccessPointArn *string `min:"4" type:"string"`
5053
5054	// The name or alias of the access point.
5055	Alias *string `type:"string"`
5056
5057	// The name of the bucket associated with this access point.
5058	//
5059	// Bucket is a required field
5060	Bucket *string `min:"3" type:"string" required:"true"`
5061
5062	// The name of this access point.
5063	//
5064	// Name is a required field
5065	Name *string `min:"3" type:"string" required:"true"`
5066
5067	// Indicates whether this access point allows access from the public internet.
5068	// If VpcConfiguration is specified for this access point, then NetworkOrigin
5069	// is VPC, and the access point doesn't allow access from the public internet.
5070	// Otherwise, NetworkOrigin is Internet, and the access point allows access
5071	// from the public internet, subject to the access point and bucket access policies.
5072	//
5073	// NetworkOrigin is a required field
5074	NetworkOrigin *string `type:"string" required:"true" enum:"NetworkOrigin"`
5075
5076	// The virtual private cloud (VPC) configuration for this access point, if one
5077	// exists.
5078	//
5079	// This element is empty if this access point is an Amazon S3 on Outposts access
5080	// point that is used by other Amazon Web Services.
5081	VpcConfiguration *VpcConfiguration `type:"structure"`
5082}
5083
5084// String returns the string representation
5085func (s AccessPoint) String() string {
5086	return awsutil.Prettify(s)
5087}
5088
5089// GoString returns the string representation
5090func (s AccessPoint) GoString() string {
5091	return s.String()
5092}
5093
5094// SetAccessPointArn sets the AccessPointArn field's value.
5095func (s *AccessPoint) SetAccessPointArn(v string) *AccessPoint {
5096	s.AccessPointArn = &v
5097	return s
5098}
5099
5100// SetAlias sets the Alias field's value.
5101func (s *AccessPoint) SetAlias(v string) *AccessPoint {
5102	s.Alias = &v
5103	return s
5104}
5105
5106// SetBucket sets the Bucket field's value.
5107func (s *AccessPoint) SetBucket(v string) *AccessPoint {
5108	s.Bucket = &v
5109	return s
5110}
5111
5112// SetName sets the Name field's value.
5113func (s *AccessPoint) SetName(v string) *AccessPoint {
5114	s.Name = &v
5115	return s
5116}
5117
5118// SetNetworkOrigin sets the NetworkOrigin field's value.
5119func (s *AccessPoint) SetNetworkOrigin(v string) *AccessPoint {
5120	s.NetworkOrigin = &v
5121	return s
5122}
5123
5124// SetVpcConfiguration sets the VpcConfiguration field's value.
5125func (s *AccessPoint) SetVpcConfiguration(v *VpcConfiguration) *AccessPoint {
5126	s.VpcConfiguration = v
5127	return s
5128}
5129
5130// A container for the account level Amazon S3 Storage Lens configuration.
5131type AccountLevel struct {
5132	_ struct{} `type:"structure"`
5133
5134	// A container for the S3 Storage Lens activity metrics.
5135	ActivityMetrics *ActivityMetrics `type:"structure"`
5136
5137	// A container for the S3 Storage Lens bucket-level configuration.
5138	//
5139	// BucketLevel is a required field
5140	BucketLevel *BucketLevel `type:"structure" required:"true"`
5141}
5142
5143// String returns the string representation
5144func (s AccountLevel) String() string {
5145	return awsutil.Prettify(s)
5146}
5147
5148// GoString returns the string representation
5149func (s AccountLevel) GoString() string {
5150	return s.String()
5151}
5152
5153// Validate inspects the fields of the type to determine if they are valid.
5154func (s *AccountLevel) Validate() error {
5155	invalidParams := request.ErrInvalidParams{Context: "AccountLevel"}
5156	if s.BucketLevel == nil {
5157		invalidParams.Add(request.NewErrParamRequired("BucketLevel"))
5158	}
5159	if s.BucketLevel != nil {
5160		if err := s.BucketLevel.Validate(); err != nil {
5161			invalidParams.AddNested("BucketLevel", err.(request.ErrInvalidParams))
5162		}
5163	}
5164
5165	if invalidParams.Len() > 0 {
5166		return invalidParams
5167	}
5168	return nil
5169}
5170
5171// SetActivityMetrics sets the ActivityMetrics field's value.
5172func (s *AccountLevel) SetActivityMetrics(v *ActivityMetrics) *AccountLevel {
5173	s.ActivityMetrics = v
5174	return s
5175}
5176
5177// SetBucketLevel sets the BucketLevel field's value.
5178func (s *AccountLevel) SetBucketLevel(v *BucketLevel) *AccountLevel {
5179	s.BucketLevel = v
5180	return s
5181}
5182
5183// A container for the activity metrics.
5184type ActivityMetrics struct {
5185	_ struct{} `type:"structure"`
5186
5187	// A container for whether the activity metrics are enabled.
5188	IsEnabled *bool `type:"boolean"`
5189}
5190
5191// String returns the string representation
5192func (s ActivityMetrics) String() string {
5193	return awsutil.Prettify(s)
5194}
5195
5196// GoString returns the string representation
5197func (s ActivityMetrics) GoString() string {
5198	return s.String()
5199}
5200
5201// SetIsEnabled sets the IsEnabled field's value.
5202func (s *ActivityMetrics) SetIsEnabled(v bool) *ActivityMetrics {
5203	s.IsEnabled = &v
5204	return s
5205}
5206
5207// Lambda function used to transform objects through an Object Lambda Access
5208// Point.
5209type AwsLambdaTransformation struct {
5210	_ struct{} `type:"structure"`
5211
5212	// The Amazon Resource Name (ARN) of the Lambda function.
5213	//
5214	// FunctionArn is a required field
5215	FunctionArn *string `min:"1" type:"string" required:"true"`
5216
5217	// Additional JSON that provides supplemental data to the Lambda function used
5218	// to transform objects.
5219	FunctionPayload *string `type:"string"`
5220}
5221
5222// String returns the string representation
5223func (s AwsLambdaTransformation) String() string {
5224	return awsutil.Prettify(s)
5225}
5226
5227// GoString returns the string representation
5228func (s AwsLambdaTransformation) GoString() string {
5229	return s.String()
5230}
5231
5232// Validate inspects the fields of the type to determine if they are valid.
5233func (s *AwsLambdaTransformation) Validate() error {
5234	invalidParams := request.ErrInvalidParams{Context: "AwsLambdaTransformation"}
5235	if s.FunctionArn == nil {
5236		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
5237	}
5238	if s.FunctionArn != nil && len(*s.FunctionArn) < 1 {
5239		invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1))
5240	}
5241
5242	if invalidParams.Len() > 0 {
5243		return invalidParams
5244	}
5245	return nil
5246}
5247
5248// SetFunctionArn sets the FunctionArn field's value.
5249func (s *AwsLambdaTransformation) SetFunctionArn(v string) *AwsLambdaTransformation {
5250	s.FunctionArn = &v
5251	return s
5252}
5253
5254// SetFunctionPayload sets the FunctionPayload field's value.
5255func (s *AwsLambdaTransformation) SetFunctionPayload(v string) *AwsLambdaTransformation {
5256	s.FunctionPayload = &v
5257	return s
5258}
5259
5260// A container for the bucket-level configuration.
5261type BucketLevel struct {
5262	_ struct{} `type:"structure"`
5263
5264	// A container for the bucket-level activity metrics for Amazon S3 Storage Lens
5265	ActivityMetrics *ActivityMetrics `type:"structure"`
5266
5267	// A container for the bucket-level prefix-level metrics for S3 Storage Lens
5268	PrefixLevel *PrefixLevel `type:"structure"`
5269}
5270
5271// String returns the string representation
5272func (s BucketLevel) String() string {
5273	return awsutil.Prettify(s)
5274}
5275
5276// GoString returns the string representation
5277func (s BucketLevel) GoString() string {
5278	return s.String()
5279}
5280
5281// Validate inspects the fields of the type to determine if they are valid.
5282func (s *BucketLevel) Validate() error {
5283	invalidParams := request.ErrInvalidParams{Context: "BucketLevel"}
5284	if s.PrefixLevel != nil {
5285		if err := s.PrefixLevel.Validate(); err != nil {
5286			invalidParams.AddNested("PrefixLevel", err.(request.ErrInvalidParams))
5287		}
5288	}
5289
5290	if invalidParams.Len() > 0 {
5291		return invalidParams
5292	}
5293	return nil
5294}
5295
5296// SetActivityMetrics sets the ActivityMetrics field's value.
5297func (s *BucketLevel) SetActivityMetrics(v *ActivityMetrics) *BucketLevel {
5298	s.ActivityMetrics = v
5299	return s
5300}
5301
5302// SetPrefixLevel sets the PrefixLevel field's value.
5303func (s *BucketLevel) SetPrefixLevel(v *PrefixLevel) *BucketLevel {
5304	s.PrefixLevel = v
5305	return s
5306}
5307
5308type CreateAccessPointForObjectLambdaInput struct {
5309	_ struct{} `locationName:"CreateAccessPointForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
5310
5311	// The account ID for owner of the specified Object Lambda Access Point.
5312	//
5313	// AccountId is a required field
5314	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5315
5316	// Object Lambda Access Point configuration as a JSON document.
5317	//
5318	// Configuration is a required field
5319	Configuration *ObjectLambdaConfiguration `type:"structure" required:"true"`
5320
5321	// The name you want to assign to this Object Lambda Access Point.
5322	//
5323	// Name is a required field
5324	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
5325}
5326
5327// String returns the string representation
5328func (s CreateAccessPointForObjectLambdaInput) String() string {
5329	return awsutil.Prettify(s)
5330}
5331
5332// GoString returns the string representation
5333func (s CreateAccessPointForObjectLambdaInput) GoString() string {
5334	return s.String()
5335}
5336
5337// Validate inspects the fields of the type to determine if they are valid.
5338func (s *CreateAccessPointForObjectLambdaInput) Validate() error {
5339	invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointForObjectLambdaInput"}
5340	if s.AccountId == nil {
5341		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5342	}
5343	if s.AccountId != nil && len(*s.AccountId) < 1 {
5344		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5345	}
5346	if s.Configuration == nil {
5347		invalidParams.Add(request.NewErrParamRequired("Configuration"))
5348	}
5349	if s.Name == nil {
5350		invalidParams.Add(request.NewErrParamRequired("Name"))
5351	}
5352	if s.Name != nil && len(*s.Name) < 3 {
5353		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
5354	}
5355	if s.Configuration != nil {
5356		if err := s.Configuration.Validate(); err != nil {
5357			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
5358		}
5359	}
5360
5361	if invalidParams.Len() > 0 {
5362		return invalidParams
5363	}
5364	return nil
5365}
5366
5367// SetAccountId sets the AccountId field's value.
5368func (s *CreateAccessPointForObjectLambdaInput) SetAccountId(v string) *CreateAccessPointForObjectLambdaInput {
5369	s.AccountId = &v
5370	return s
5371}
5372
5373// SetConfiguration sets the Configuration field's value.
5374func (s *CreateAccessPointForObjectLambdaInput) SetConfiguration(v *ObjectLambdaConfiguration) *CreateAccessPointForObjectLambdaInput {
5375	s.Configuration = v
5376	return s
5377}
5378
5379// SetName sets the Name field's value.
5380func (s *CreateAccessPointForObjectLambdaInput) SetName(v string) *CreateAccessPointForObjectLambdaInput {
5381	s.Name = &v
5382	return s
5383}
5384
5385func (s *CreateAccessPointForObjectLambdaInput) hostLabels() map[string]string {
5386	return map[string]string{
5387		"AccountId": aws.StringValue(s.AccountId),
5388	}
5389}
5390
5391type CreateAccessPointForObjectLambdaOutput struct {
5392	_ struct{} `type:"structure"`
5393
5394	// Specifies the ARN for the Object Lambda Access Point.
5395	ObjectLambdaAccessPointArn *string `min:"1" type:"string"`
5396}
5397
5398// String returns the string representation
5399func (s CreateAccessPointForObjectLambdaOutput) String() string {
5400	return awsutil.Prettify(s)
5401}
5402
5403// GoString returns the string representation
5404func (s CreateAccessPointForObjectLambdaOutput) GoString() string {
5405	return s.String()
5406}
5407
5408// SetObjectLambdaAccessPointArn sets the ObjectLambdaAccessPointArn field's value.
5409func (s *CreateAccessPointForObjectLambdaOutput) SetObjectLambdaAccessPointArn(v string) *CreateAccessPointForObjectLambdaOutput {
5410	s.ObjectLambdaAccessPointArn = &v
5411	return s
5412}
5413
5414type CreateAccessPointInput struct {
5415	_ struct{} `locationName:"CreateAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
5416
5417	// The account ID for the owner of the bucket for which you want to create an
5418	// access point.
5419	//
5420	// AccountId is a required field
5421	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5422
5423	// The name of the bucket that you want to associate this access point with.
5424	//
5425	// For using this parameter with Amazon S3 on Outposts with the REST API, you
5426	// must specify the name and the x-amz-outpost-id as well.
5427	//
5428	// For using this parameter with S3 on Outposts with the Amazon Web Services
5429	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
5430	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
5431	// For example, to access the bucket reports through outpost my-outpost owned
5432	// 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.
5433	// The value must be URL encoded.
5434	//
5435	// Bucket is a required field
5436	Bucket *string `min:"3" type:"string" required:"true"`
5437
5438	// The name you want to assign to this access point.
5439	//
5440	// Name is a required field
5441	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
5442
5443	// The PublicAccessBlock configuration that you want to apply to the access
5444	// point.
5445	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
5446
5447	// If you include this field, Amazon S3 restricts access to this access point
5448	// to requests from the specified virtual private cloud (VPC).
5449	//
5450	// This is required for creating an access point for Amazon S3 on Outposts buckets.
5451	VpcConfiguration *VpcConfiguration `type:"structure"`
5452}
5453
5454// String returns the string representation
5455func (s CreateAccessPointInput) String() string {
5456	return awsutil.Prettify(s)
5457}
5458
5459// GoString returns the string representation
5460func (s CreateAccessPointInput) GoString() string {
5461	return s.String()
5462}
5463
5464// Validate inspects the fields of the type to determine if they are valid.
5465func (s *CreateAccessPointInput) Validate() error {
5466	invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointInput"}
5467	if s.AccountId == nil {
5468		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5469	}
5470	if s.AccountId != nil && len(*s.AccountId) < 1 {
5471		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5472	}
5473	if s.Bucket == nil {
5474		invalidParams.Add(request.NewErrParamRequired("Bucket"))
5475	}
5476	if s.Bucket != nil && len(*s.Bucket) < 3 {
5477		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
5478	}
5479	if s.Name == nil {
5480		invalidParams.Add(request.NewErrParamRequired("Name"))
5481	}
5482	if s.Name != nil && len(*s.Name) < 3 {
5483		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
5484	}
5485	if s.VpcConfiguration != nil {
5486		if err := s.VpcConfiguration.Validate(); err != nil {
5487			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
5488		}
5489	}
5490
5491	if invalidParams.Len() > 0 {
5492		return invalidParams
5493	}
5494	return nil
5495}
5496
5497// SetAccountId sets the AccountId field's value.
5498func (s *CreateAccessPointInput) SetAccountId(v string) *CreateAccessPointInput {
5499	s.AccountId = &v
5500	return s
5501}
5502
5503// SetBucket sets the Bucket field's value.
5504func (s *CreateAccessPointInput) SetBucket(v string) *CreateAccessPointInput {
5505	s.Bucket = &v
5506	return s
5507}
5508
5509// SetName sets the Name field's value.
5510func (s *CreateAccessPointInput) SetName(v string) *CreateAccessPointInput {
5511	s.Name = &v
5512	return s
5513}
5514
5515// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
5516func (s *CreateAccessPointInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *CreateAccessPointInput {
5517	s.PublicAccessBlockConfiguration = v
5518	return s
5519}
5520
5521// SetVpcConfiguration sets the VpcConfiguration field's value.
5522func (s *CreateAccessPointInput) SetVpcConfiguration(v *VpcConfiguration) *CreateAccessPointInput {
5523	s.VpcConfiguration = v
5524	return s
5525}
5526
5527func (s *CreateAccessPointInput) hostLabels() map[string]string {
5528	return map[string]string{
5529		"AccountId": aws.StringValue(s.AccountId),
5530	}
5531}
5532
5533func (s *CreateAccessPointInput) getEndpointARN() (arn.Resource, error) {
5534	if s.Bucket == nil {
5535		return nil, fmt.Errorf("member Bucket is nil")
5536	}
5537	return parseEndpointARN(*s.Bucket)
5538}
5539
5540func (s *CreateAccessPointInput) hasEndpointARN() bool {
5541	if s.Bucket == nil {
5542		return false
5543	}
5544	return arn.IsARN(*s.Bucket)
5545}
5546
5547// updateArnableField updates the value of the input field that
5548// takes an ARN as an input. This method is useful to backfill
5549// the parsed resource name from ARN into the input member.
5550// It returns a pointer to a modified copy of input and an error.
5551// Note that original input is not modified.
5552func (s CreateAccessPointInput) updateArnableField(v string) (interface{}, error) {
5553	if s.Bucket == nil {
5554		return nil, fmt.Errorf("member Bucket is nil")
5555	}
5556	s.Bucket = aws.String(v)
5557	return &s, nil
5558}
5559
5560// updateAccountID returns a pointer to a modified copy of input,
5561// if account id is not provided, we update the account id in modified input
5562// if account id is provided, but doesn't match with the one in ARN, we throw an error
5563// if account id is not updated, we return nil. Note that original input is not modified.
5564func (s CreateAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
5565	if s.AccountId == nil {
5566		s.AccountId = aws.String(accountId)
5567		return &s, nil
5568	} else if *s.AccountId != accountId {
5569		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
5570	}
5571	return nil, nil
5572}
5573
5574type CreateAccessPointOutput struct {
5575	_ struct{} `type:"structure"`
5576
5577	// The ARN of the access point.
5578	//
5579	// This is only supported by Amazon S3 on Outposts.
5580	AccessPointArn *string `min:"4" type:"string"`
5581
5582	// The name or alias of the access point.
5583	Alias *string `type:"string"`
5584}
5585
5586// String returns the string representation
5587func (s CreateAccessPointOutput) String() string {
5588	return awsutil.Prettify(s)
5589}
5590
5591// GoString returns the string representation
5592func (s CreateAccessPointOutput) GoString() string {
5593	return s.String()
5594}
5595
5596// SetAccessPointArn sets the AccessPointArn field's value.
5597func (s *CreateAccessPointOutput) SetAccessPointArn(v string) *CreateAccessPointOutput {
5598	s.AccessPointArn = &v
5599	return s
5600}
5601
5602// SetAlias sets the Alias field's value.
5603func (s *CreateAccessPointOutput) SetAlias(v string) *CreateAccessPointOutput {
5604	s.Alias = &v
5605	return s
5606}
5607
5608// The container for the bucket configuration.
5609//
5610// This is not supported by Amazon S3 on Outposts buckets.
5611type CreateBucketConfiguration struct {
5612	_ struct{} `type:"structure"`
5613
5614	// Specifies the Region where the bucket will be created. If you are creating
5615	// a bucket on the US East (N. Virginia) Region (us-east-1), you do not need
5616	// to specify the location.
5617	//
5618	// This is not supported by Amazon S3 on Outposts buckets.
5619	LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"`
5620}
5621
5622// String returns the string representation
5623func (s CreateBucketConfiguration) String() string {
5624	return awsutil.Prettify(s)
5625}
5626
5627// GoString returns the string representation
5628func (s CreateBucketConfiguration) GoString() string {
5629	return s.String()
5630}
5631
5632// SetLocationConstraint sets the LocationConstraint field's value.
5633func (s *CreateBucketConfiguration) SetLocationConstraint(v string) *CreateBucketConfiguration {
5634	s.LocationConstraint = &v
5635	return s
5636}
5637
5638type CreateBucketInput struct {
5639	_ struct{} `locationName:"CreateBucketRequest" type:"structure" payload:"CreateBucketConfiguration"`
5640
5641	// The canned ACL to apply to the bucket.
5642	//
5643	// This is not supported by Amazon S3 on Outposts buckets.
5644	ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"`
5645
5646	// The name of the bucket.
5647	//
5648	// Bucket is a required field
5649	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
5650
5651	// The configuration information for the bucket.
5652	//
5653	// This is not supported by Amazon S3 on Outposts buckets.
5654	CreateBucketConfiguration *CreateBucketConfiguration `locationName:"CreateBucketConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
5655
5656	// Allows grantee the read, write, read ACP, and write ACP permissions on the
5657	// bucket.
5658	//
5659	// This is not supported by Amazon S3 on Outposts buckets.
5660	GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"`
5661
5662	// Allows grantee to list the objects in the bucket.
5663	//
5664	// This is not supported by Amazon S3 on Outposts buckets.
5665	GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"`
5666
5667	// Allows grantee to read the bucket ACL.
5668	//
5669	// This is not supported by Amazon S3 on Outposts buckets.
5670	GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"`
5671
5672	// Allows grantee to create, overwrite, and delete any object in the bucket.
5673	//
5674	// This is not supported by Amazon S3 on Outposts buckets.
5675	GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"`
5676
5677	// Allows grantee to write the ACL for the applicable bucket.
5678	//
5679	// This is not supported by Amazon S3 on Outposts buckets.
5680	GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"`
5681
5682	// Specifies whether you want S3 Object Lock to be enabled for the new bucket.
5683	//
5684	// This is not supported by Amazon S3 on Outposts buckets.
5685	ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"`
5686
5687	// The ID of the Outposts where the bucket is being created.
5688	//
5689	// This is required by Amazon S3 on Outposts buckets.
5690	OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"`
5691}
5692
5693// String returns the string representation
5694func (s CreateBucketInput) String() string {
5695	return awsutil.Prettify(s)
5696}
5697
5698// GoString returns the string representation
5699func (s CreateBucketInput) GoString() string {
5700	return s.String()
5701}
5702
5703// Validate inspects the fields of the type to determine if they are valid.
5704func (s *CreateBucketInput) Validate() error {
5705	invalidParams := request.ErrInvalidParams{Context: "CreateBucketInput"}
5706	if s.Bucket == nil {
5707		invalidParams.Add(request.NewErrParamRequired("Bucket"))
5708	}
5709	if s.Bucket != nil && len(*s.Bucket) < 3 {
5710		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
5711	}
5712	if s.OutpostId != nil && len(*s.OutpostId) < 1 {
5713		invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1))
5714	}
5715
5716	if invalidParams.Len() > 0 {
5717		return invalidParams
5718	}
5719	return nil
5720}
5721
5722// SetACL sets the ACL field's value.
5723func (s *CreateBucketInput) SetACL(v string) *CreateBucketInput {
5724	s.ACL = &v
5725	return s
5726}
5727
5728// SetBucket sets the Bucket field's value.
5729func (s *CreateBucketInput) SetBucket(v string) *CreateBucketInput {
5730	s.Bucket = &v
5731	return s
5732}
5733
5734// SetCreateBucketConfiguration sets the CreateBucketConfiguration field's value.
5735func (s *CreateBucketInput) SetCreateBucketConfiguration(v *CreateBucketConfiguration) *CreateBucketInput {
5736	s.CreateBucketConfiguration = v
5737	return s
5738}
5739
5740// SetGrantFullControl sets the GrantFullControl field's value.
5741func (s *CreateBucketInput) SetGrantFullControl(v string) *CreateBucketInput {
5742	s.GrantFullControl = &v
5743	return s
5744}
5745
5746// SetGrantRead sets the GrantRead field's value.
5747func (s *CreateBucketInput) SetGrantRead(v string) *CreateBucketInput {
5748	s.GrantRead = &v
5749	return s
5750}
5751
5752// SetGrantReadACP sets the GrantReadACP field's value.
5753func (s *CreateBucketInput) SetGrantReadACP(v string) *CreateBucketInput {
5754	s.GrantReadACP = &v
5755	return s
5756}
5757
5758// SetGrantWrite sets the GrantWrite field's value.
5759func (s *CreateBucketInput) SetGrantWrite(v string) *CreateBucketInput {
5760	s.GrantWrite = &v
5761	return s
5762}
5763
5764// SetGrantWriteACP sets the GrantWriteACP field's value.
5765func (s *CreateBucketInput) SetGrantWriteACP(v string) *CreateBucketInput {
5766	s.GrantWriteACP = &v
5767	return s
5768}
5769
5770// SetObjectLockEnabledForBucket sets the ObjectLockEnabledForBucket field's value.
5771func (s *CreateBucketInput) SetObjectLockEnabledForBucket(v bool) *CreateBucketInput {
5772	s.ObjectLockEnabledForBucket = &v
5773	return s
5774}
5775
5776// SetOutpostId sets the OutpostId field's value.
5777func (s *CreateBucketInput) SetOutpostId(v string) *CreateBucketInput {
5778	s.OutpostId = &v
5779	return s
5780}
5781
5782func (s *CreateBucketInput) getOutpostID() (string, error) {
5783	if s.OutpostId == nil {
5784		return "", fmt.Errorf("member OutpostId is nil")
5785	}
5786	return *s.OutpostId, nil
5787}
5788
5789func (s *CreateBucketInput) hasOutpostID() bool {
5790	if s.OutpostId == nil {
5791		return false
5792	}
5793	return true
5794}
5795
5796type CreateBucketOutput struct {
5797	_ struct{} `type:"structure"`
5798
5799	// The Amazon Resource Name (ARN) of the bucket.
5800	//
5801	// For using this parameter with Amazon S3 on Outposts with the REST API, you
5802	// must specify the name and the x-amz-outpost-id as well.
5803	//
5804	// For using this parameter with S3 on Outposts with the Amazon Web Services
5805	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
5806	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
5807	// For example, to access the bucket reports through outpost my-outpost owned
5808	// 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.
5809	// The value must be URL encoded.
5810	BucketArn *string `min:"4" type:"string"`
5811
5812	// The location of the bucket.
5813	Location *string `location:"header" locationName:"Location" type:"string"`
5814}
5815
5816// String returns the string representation
5817func (s CreateBucketOutput) String() string {
5818	return awsutil.Prettify(s)
5819}
5820
5821// GoString returns the string representation
5822func (s CreateBucketOutput) GoString() string {
5823	return s.String()
5824}
5825
5826// SetBucketArn sets the BucketArn field's value.
5827func (s *CreateBucketOutput) SetBucketArn(v string) *CreateBucketOutput {
5828	s.BucketArn = &v
5829	return s
5830}
5831
5832// SetLocation sets the Location field's value.
5833func (s *CreateBucketOutput) SetLocation(v string) *CreateBucketOutput {
5834	s.Location = &v
5835	return s
5836}
5837
5838type CreateJobInput struct {
5839	_ struct{} `locationName:"CreateJobRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
5840
5841	// The account ID that creates the job.
5842	//
5843	// AccountId is a required field
5844	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
5845
5846	// An idempotency token to ensure that you don't accidentally submit the same
5847	// request twice. You can use any string up to the maximum length.
5848	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
5849
5850	// Indicates whether confirmation is required before Amazon S3 runs the job.
5851	// Confirmation is only required for jobs created through the Amazon S3 console.
5852	ConfirmationRequired *bool `type:"boolean"`
5853
5854	// A description for this job. You can use any string within the permitted length.
5855	// Descriptions don't need to be unique and can be used for multiple jobs.
5856	Description *string `min:"1" type:"string"`
5857
5858	// Configuration parameters for the manifest.
5859	//
5860	// Manifest is a required field
5861	Manifest *JobManifest `type:"structure" required:"true"`
5862
5863	// The action that you want this job to perform on every object listed in the
5864	// manifest. For more information about the available actions, see Operations
5865	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-actions.html)
5866	// in the Amazon S3 User Guide.
5867	//
5868	// Operation is a required field
5869	Operation *JobOperation `type:"structure" required:"true"`
5870
5871	// The numerical priority for this job. Higher numbers indicate higher priority.
5872	//
5873	// Priority is a required field
5874	Priority *int64 `type:"integer" required:"true"`
5875
5876	// Configuration parameters for the optional job-completion report.
5877	//
5878	// Report is a required field
5879	Report *JobReport `type:"structure" required:"true"`
5880
5881	// The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
5882	// role that Batch Operations will use to run this job's action on every object
5883	// in the manifest.
5884	//
5885	// RoleArn is a required field
5886	RoleArn *string `min:"1" type:"string" required:"true"`
5887
5888	// A set of tags to associate with the S3 Batch Operations job. This is an optional
5889	// parameter.
5890	Tags []*S3Tag `type:"list"`
5891}
5892
5893// String returns the string representation
5894func (s CreateJobInput) String() string {
5895	return awsutil.Prettify(s)
5896}
5897
5898// GoString returns the string representation
5899func (s CreateJobInput) GoString() string {
5900	return s.String()
5901}
5902
5903// Validate inspects the fields of the type to determine if they are valid.
5904func (s *CreateJobInput) Validate() error {
5905	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
5906	if s.AccountId == nil {
5907		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5908	}
5909	if s.AccountId != nil && len(*s.AccountId) < 1 {
5910		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5911	}
5912	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
5913		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
5914	}
5915	if s.Description != nil && len(*s.Description) < 1 {
5916		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
5917	}
5918	if s.Manifest == nil {
5919		invalidParams.Add(request.NewErrParamRequired("Manifest"))
5920	}
5921	if s.Operation == nil {
5922		invalidParams.Add(request.NewErrParamRequired("Operation"))
5923	}
5924	if s.Priority == nil {
5925		invalidParams.Add(request.NewErrParamRequired("Priority"))
5926	}
5927	if s.Report == nil {
5928		invalidParams.Add(request.NewErrParamRequired("Report"))
5929	}
5930	if s.RoleArn == nil {
5931		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
5932	}
5933	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
5934		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
5935	}
5936	if s.Manifest != nil {
5937		if err := s.Manifest.Validate(); err != nil {
5938			invalidParams.AddNested("Manifest", err.(request.ErrInvalidParams))
5939		}
5940	}
5941	if s.Operation != nil {
5942		if err := s.Operation.Validate(); err != nil {
5943			invalidParams.AddNested("Operation", err.(request.ErrInvalidParams))
5944		}
5945	}
5946	if s.Report != nil {
5947		if err := s.Report.Validate(); err != nil {
5948			invalidParams.AddNested("Report", err.(request.ErrInvalidParams))
5949		}
5950	}
5951	if s.Tags != nil {
5952		for i, v := range s.Tags {
5953			if v == nil {
5954				continue
5955			}
5956			if err := v.Validate(); err != nil {
5957				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5958			}
5959		}
5960	}
5961
5962	if invalidParams.Len() > 0 {
5963		return invalidParams
5964	}
5965	return nil
5966}
5967
5968// SetAccountId sets the AccountId field's value.
5969func (s *CreateJobInput) SetAccountId(v string) *CreateJobInput {
5970	s.AccountId = &v
5971	return s
5972}
5973
5974// SetClientRequestToken sets the ClientRequestToken field's value.
5975func (s *CreateJobInput) SetClientRequestToken(v string) *CreateJobInput {
5976	s.ClientRequestToken = &v
5977	return s
5978}
5979
5980// SetConfirmationRequired sets the ConfirmationRequired field's value.
5981func (s *CreateJobInput) SetConfirmationRequired(v bool) *CreateJobInput {
5982	s.ConfirmationRequired = &v
5983	return s
5984}
5985
5986// SetDescription sets the Description field's value.
5987func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
5988	s.Description = &v
5989	return s
5990}
5991
5992// SetManifest sets the Manifest field's value.
5993func (s *CreateJobInput) SetManifest(v *JobManifest) *CreateJobInput {
5994	s.Manifest = v
5995	return s
5996}
5997
5998// SetOperation sets the Operation field's value.
5999func (s *CreateJobInput) SetOperation(v *JobOperation) *CreateJobInput {
6000	s.Operation = v
6001	return s
6002}
6003
6004// SetPriority sets the Priority field's value.
6005func (s *CreateJobInput) SetPriority(v int64) *CreateJobInput {
6006	s.Priority = &v
6007	return s
6008}
6009
6010// SetReport sets the Report field's value.
6011func (s *CreateJobInput) SetReport(v *JobReport) *CreateJobInput {
6012	s.Report = v
6013	return s
6014}
6015
6016// SetRoleArn sets the RoleArn field's value.
6017func (s *CreateJobInput) SetRoleArn(v string) *CreateJobInput {
6018	s.RoleArn = &v
6019	return s
6020}
6021
6022// SetTags sets the Tags field's value.
6023func (s *CreateJobInput) SetTags(v []*S3Tag) *CreateJobInput {
6024	s.Tags = v
6025	return s
6026}
6027
6028func (s *CreateJobInput) hostLabels() map[string]string {
6029	return map[string]string{
6030		"AccountId": aws.StringValue(s.AccountId),
6031	}
6032}
6033
6034type CreateJobOutput struct {
6035	_ struct{} `type:"structure"`
6036
6037	// The ID for this job. Amazon S3 generates this ID automatically and returns
6038	// it after a successful Create Job request.
6039	JobId *string `min:"5" type:"string"`
6040}
6041
6042// String returns the string representation
6043func (s CreateJobOutput) String() string {
6044	return awsutil.Prettify(s)
6045}
6046
6047// GoString returns the string representation
6048func (s CreateJobOutput) GoString() string {
6049	return s.String()
6050}
6051
6052// SetJobId sets the JobId field's value.
6053func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
6054	s.JobId = &v
6055	return s
6056}
6057
6058type DeleteAccessPointForObjectLambdaInput struct {
6059	_ struct{} `locationName:"DeleteAccessPointForObjectLambdaRequest" type:"structure"`
6060
6061	// The account ID for the account that owns the specified Object Lambda Access
6062	// Point.
6063	//
6064	// AccountId is a required field
6065	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6066
6067	// The name of the access point you want to delete.
6068	//
6069	// Name is a required field
6070	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6071}
6072
6073// String returns the string representation
6074func (s DeleteAccessPointForObjectLambdaInput) String() string {
6075	return awsutil.Prettify(s)
6076}
6077
6078// GoString returns the string representation
6079func (s DeleteAccessPointForObjectLambdaInput) GoString() string {
6080	return s.String()
6081}
6082
6083// Validate inspects the fields of the type to determine if they are valid.
6084func (s *DeleteAccessPointForObjectLambdaInput) Validate() error {
6085	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointForObjectLambdaInput"}
6086	if s.AccountId == nil {
6087		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6088	}
6089	if s.AccountId != nil && len(*s.AccountId) < 1 {
6090		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6091	}
6092	if s.Name == nil {
6093		invalidParams.Add(request.NewErrParamRequired("Name"))
6094	}
6095	if s.Name != nil && len(*s.Name) < 3 {
6096		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
6097	}
6098
6099	if invalidParams.Len() > 0 {
6100		return invalidParams
6101	}
6102	return nil
6103}
6104
6105// SetAccountId sets the AccountId field's value.
6106func (s *DeleteAccessPointForObjectLambdaInput) SetAccountId(v string) *DeleteAccessPointForObjectLambdaInput {
6107	s.AccountId = &v
6108	return s
6109}
6110
6111// SetName sets the Name field's value.
6112func (s *DeleteAccessPointForObjectLambdaInput) SetName(v string) *DeleteAccessPointForObjectLambdaInput {
6113	s.Name = &v
6114	return s
6115}
6116
6117func (s *DeleteAccessPointForObjectLambdaInput) hostLabels() map[string]string {
6118	return map[string]string{
6119		"AccountId": aws.StringValue(s.AccountId),
6120	}
6121}
6122
6123type DeleteAccessPointForObjectLambdaOutput struct {
6124	_ struct{} `type:"structure"`
6125}
6126
6127// String returns the string representation
6128func (s DeleteAccessPointForObjectLambdaOutput) String() string {
6129	return awsutil.Prettify(s)
6130}
6131
6132// GoString returns the string representation
6133func (s DeleteAccessPointForObjectLambdaOutput) GoString() string {
6134	return s.String()
6135}
6136
6137type DeleteAccessPointInput struct {
6138	_ struct{} `locationName:"DeleteAccessPointRequest" type:"structure"`
6139
6140	// The account ID for the account that owns the specified access point.
6141	//
6142	// AccountId is a required field
6143	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6144
6145	// The name of the access point you want to delete.
6146	//
6147	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6148	// must specify the name and the x-amz-outpost-id as well.
6149	//
6150	// For using this parameter with S3 on Outposts with the Amazon Web Services
6151	// SDK and CLI, you must specify the ARN of the access point accessed in the
6152	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
6153	// For example, to access the access point reports-ap through outpost my-outpost
6154	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
6155	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
6156	// The value must be URL encoded.
6157	//
6158	// Name is a required field
6159	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6160}
6161
6162// String returns the string representation
6163func (s DeleteAccessPointInput) String() string {
6164	return awsutil.Prettify(s)
6165}
6166
6167// GoString returns the string representation
6168func (s DeleteAccessPointInput) GoString() string {
6169	return s.String()
6170}
6171
6172// Validate inspects the fields of the type to determine if they are valid.
6173func (s *DeleteAccessPointInput) Validate() error {
6174	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointInput"}
6175	if s.AccountId == nil {
6176		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6177	}
6178	if s.AccountId != nil && len(*s.AccountId) < 1 {
6179		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6180	}
6181	if s.Name == nil {
6182		invalidParams.Add(request.NewErrParamRequired("Name"))
6183	}
6184	if s.Name != nil && len(*s.Name) < 3 {
6185		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
6186	}
6187
6188	if invalidParams.Len() > 0 {
6189		return invalidParams
6190	}
6191	return nil
6192}
6193
6194// SetAccountId sets the AccountId field's value.
6195func (s *DeleteAccessPointInput) SetAccountId(v string) *DeleteAccessPointInput {
6196	s.AccountId = &v
6197	return s
6198}
6199
6200// SetName sets the Name field's value.
6201func (s *DeleteAccessPointInput) SetName(v string) *DeleteAccessPointInput {
6202	s.Name = &v
6203	return s
6204}
6205
6206func (s *DeleteAccessPointInput) hostLabels() map[string]string {
6207	return map[string]string{
6208		"AccountId": aws.StringValue(s.AccountId),
6209	}
6210}
6211
6212func (s *DeleteAccessPointInput) getEndpointARN() (arn.Resource, error) {
6213	if s.Name == nil {
6214		return nil, fmt.Errorf("member Name is nil")
6215	}
6216	return parseEndpointARN(*s.Name)
6217}
6218
6219func (s *DeleteAccessPointInput) hasEndpointARN() bool {
6220	if s.Name == nil {
6221		return false
6222	}
6223	return arn.IsARN(*s.Name)
6224}
6225
6226// updateArnableField updates the value of the input field that
6227// takes an ARN as an input. This method is useful to backfill
6228// the parsed resource name from ARN into the input member.
6229// It returns a pointer to a modified copy of input and an error.
6230// Note that original input is not modified.
6231func (s DeleteAccessPointInput) updateArnableField(v string) (interface{}, error) {
6232	if s.Name == nil {
6233		return nil, fmt.Errorf("member Name is nil")
6234	}
6235	s.Name = aws.String(v)
6236	return &s, nil
6237}
6238
6239// updateAccountID returns a pointer to a modified copy of input,
6240// if account id is not provided, we update the account id in modified input
6241// if account id is provided, but doesn't match with the one in ARN, we throw an error
6242// if account id is not updated, we return nil. Note that original input is not modified.
6243func (s DeleteAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
6244	if s.AccountId == nil {
6245		s.AccountId = aws.String(accountId)
6246		return &s, nil
6247	} else if *s.AccountId != accountId {
6248		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6249	}
6250	return nil, nil
6251}
6252
6253type DeleteAccessPointOutput struct {
6254	_ struct{} `type:"structure"`
6255}
6256
6257// String returns the string representation
6258func (s DeleteAccessPointOutput) String() string {
6259	return awsutil.Prettify(s)
6260}
6261
6262// GoString returns the string representation
6263func (s DeleteAccessPointOutput) GoString() string {
6264	return s.String()
6265}
6266
6267type DeleteAccessPointPolicyForObjectLambdaInput struct {
6268	_ struct{} `locationName:"DeleteAccessPointPolicyForObjectLambdaRequest" type:"structure"`
6269
6270	// The account ID for the account that owns the specified Object Lambda Access
6271	// Point.
6272	//
6273	// AccountId is a required field
6274	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6275
6276	// The name of the Object Lambda Access Point you want to delete the policy
6277	// for.
6278	//
6279	// Name is a required field
6280	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6281}
6282
6283// String returns the string representation
6284func (s DeleteAccessPointPolicyForObjectLambdaInput) String() string {
6285	return awsutil.Prettify(s)
6286}
6287
6288// GoString returns the string representation
6289func (s DeleteAccessPointPolicyForObjectLambdaInput) GoString() string {
6290	return s.String()
6291}
6292
6293// Validate inspects the fields of the type to determine if they are valid.
6294func (s *DeleteAccessPointPolicyForObjectLambdaInput) Validate() error {
6295	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyForObjectLambdaInput"}
6296	if s.AccountId == nil {
6297		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6298	}
6299	if s.AccountId != nil && len(*s.AccountId) < 1 {
6300		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6301	}
6302	if s.Name == nil {
6303		invalidParams.Add(request.NewErrParamRequired("Name"))
6304	}
6305	if s.Name != nil && len(*s.Name) < 3 {
6306		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
6307	}
6308
6309	if invalidParams.Len() > 0 {
6310		return invalidParams
6311	}
6312	return nil
6313}
6314
6315// SetAccountId sets the AccountId field's value.
6316func (s *DeleteAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *DeleteAccessPointPolicyForObjectLambdaInput {
6317	s.AccountId = &v
6318	return s
6319}
6320
6321// SetName sets the Name field's value.
6322func (s *DeleteAccessPointPolicyForObjectLambdaInput) SetName(v string) *DeleteAccessPointPolicyForObjectLambdaInput {
6323	s.Name = &v
6324	return s
6325}
6326
6327func (s *DeleteAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string {
6328	return map[string]string{
6329		"AccountId": aws.StringValue(s.AccountId),
6330	}
6331}
6332
6333type DeleteAccessPointPolicyForObjectLambdaOutput struct {
6334	_ struct{} `type:"structure"`
6335}
6336
6337// String returns the string representation
6338func (s DeleteAccessPointPolicyForObjectLambdaOutput) String() string {
6339	return awsutil.Prettify(s)
6340}
6341
6342// GoString returns the string representation
6343func (s DeleteAccessPointPolicyForObjectLambdaOutput) GoString() string {
6344	return s.String()
6345}
6346
6347type DeleteAccessPointPolicyInput struct {
6348	_ struct{} `locationName:"DeleteAccessPointPolicyRequest" type:"structure"`
6349
6350	// The account ID for the account that owns the specified access point.
6351	//
6352	// AccountId is a required field
6353	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6354
6355	// The name of the access point whose policy you want to delete.
6356	//
6357	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6358	// must specify the name and the x-amz-outpost-id as well.
6359	//
6360	// For using this parameter with S3 on Outposts with the Amazon Web Services
6361	// SDK and CLI, you must specify the ARN of the access point accessed in the
6362	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
6363	// For example, to access the access point reports-ap through outpost my-outpost
6364	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
6365	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
6366	// The value must be URL encoded.
6367	//
6368	// Name is a required field
6369	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6370}
6371
6372// String returns the string representation
6373func (s DeleteAccessPointPolicyInput) String() string {
6374	return awsutil.Prettify(s)
6375}
6376
6377// GoString returns the string representation
6378func (s DeleteAccessPointPolicyInput) GoString() string {
6379	return s.String()
6380}
6381
6382// Validate inspects the fields of the type to determine if they are valid.
6383func (s *DeleteAccessPointPolicyInput) Validate() error {
6384	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyInput"}
6385	if s.AccountId == nil {
6386		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6387	}
6388	if s.AccountId != nil && len(*s.AccountId) < 1 {
6389		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6390	}
6391	if s.Name == nil {
6392		invalidParams.Add(request.NewErrParamRequired("Name"))
6393	}
6394	if s.Name != nil && len(*s.Name) < 3 {
6395		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
6396	}
6397
6398	if invalidParams.Len() > 0 {
6399		return invalidParams
6400	}
6401	return nil
6402}
6403
6404// SetAccountId sets the AccountId field's value.
6405func (s *DeleteAccessPointPolicyInput) SetAccountId(v string) *DeleteAccessPointPolicyInput {
6406	s.AccountId = &v
6407	return s
6408}
6409
6410// SetName sets the Name field's value.
6411func (s *DeleteAccessPointPolicyInput) SetName(v string) *DeleteAccessPointPolicyInput {
6412	s.Name = &v
6413	return s
6414}
6415
6416func (s *DeleteAccessPointPolicyInput) hostLabels() map[string]string {
6417	return map[string]string{
6418		"AccountId": aws.StringValue(s.AccountId),
6419	}
6420}
6421
6422func (s *DeleteAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
6423	if s.Name == nil {
6424		return nil, fmt.Errorf("member Name is nil")
6425	}
6426	return parseEndpointARN(*s.Name)
6427}
6428
6429func (s *DeleteAccessPointPolicyInput) hasEndpointARN() bool {
6430	if s.Name == nil {
6431		return false
6432	}
6433	return arn.IsARN(*s.Name)
6434}
6435
6436// updateArnableField updates the value of the input field that
6437// takes an ARN as an input. This method is useful to backfill
6438// the parsed resource name from ARN into the input member.
6439// It returns a pointer to a modified copy of input and an error.
6440// Note that original input is not modified.
6441func (s DeleteAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
6442	if s.Name == nil {
6443		return nil, fmt.Errorf("member Name is nil")
6444	}
6445	s.Name = aws.String(v)
6446	return &s, nil
6447}
6448
6449// updateAccountID returns a pointer to a modified copy of input,
6450// if account id is not provided, we update the account id in modified input
6451// if account id is provided, but doesn't match with the one in ARN, we throw an error
6452// if account id is not updated, we return nil. Note that original input is not modified.
6453func (s DeleteAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
6454	if s.AccountId == nil {
6455		s.AccountId = aws.String(accountId)
6456		return &s, nil
6457	} else if *s.AccountId != accountId {
6458		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6459	}
6460	return nil, nil
6461}
6462
6463type DeleteAccessPointPolicyOutput struct {
6464	_ struct{} `type:"structure"`
6465}
6466
6467// String returns the string representation
6468func (s DeleteAccessPointPolicyOutput) String() string {
6469	return awsutil.Prettify(s)
6470}
6471
6472// GoString returns the string representation
6473func (s DeleteAccessPointPolicyOutput) GoString() string {
6474	return s.String()
6475}
6476
6477type DeleteBucketInput struct {
6478	_ struct{} `locationName:"DeleteBucketRequest" type:"structure"`
6479
6480	// The account ID that owns the Outposts bucket.
6481	//
6482	// AccountId is a required field
6483	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6484
6485	// Specifies the bucket being deleted.
6486	//
6487	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6488	// must specify the name and the x-amz-outpost-id as well.
6489	//
6490	// For using this parameter with S3 on Outposts with the Amazon Web Services
6491	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
6492	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6493	// For example, to access the bucket reports through outpost my-outpost owned
6494	// 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.
6495	// The value must be URL encoded.
6496	//
6497	// Bucket is a required field
6498	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6499}
6500
6501// String returns the string representation
6502func (s DeleteBucketInput) String() string {
6503	return awsutil.Prettify(s)
6504}
6505
6506// GoString returns the string representation
6507func (s DeleteBucketInput) GoString() string {
6508	return s.String()
6509}
6510
6511// Validate inspects the fields of the type to determine if they are valid.
6512func (s *DeleteBucketInput) Validate() error {
6513	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketInput"}
6514	if s.AccountId == nil {
6515		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6516	}
6517	if s.AccountId != nil && len(*s.AccountId) < 1 {
6518		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6519	}
6520	if s.Bucket == nil {
6521		invalidParams.Add(request.NewErrParamRequired("Bucket"))
6522	}
6523	if s.Bucket != nil && len(*s.Bucket) < 3 {
6524		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
6525	}
6526
6527	if invalidParams.Len() > 0 {
6528		return invalidParams
6529	}
6530	return nil
6531}
6532
6533// SetAccountId sets the AccountId field's value.
6534func (s *DeleteBucketInput) SetAccountId(v string) *DeleteBucketInput {
6535	s.AccountId = &v
6536	return s
6537}
6538
6539// SetBucket sets the Bucket field's value.
6540func (s *DeleteBucketInput) SetBucket(v string) *DeleteBucketInput {
6541	s.Bucket = &v
6542	return s
6543}
6544
6545func (s *DeleteBucketInput) hostLabels() map[string]string {
6546	return map[string]string{
6547		"AccountId": aws.StringValue(s.AccountId),
6548	}
6549}
6550
6551func (s *DeleteBucketInput) getEndpointARN() (arn.Resource, error) {
6552	if s.Bucket == nil {
6553		return nil, fmt.Errorf("member Bucket is nil")
6554	}
6555	return parseEndpointARN(*s.Bucket)
6556}
6557
6558func (s *DeleteBucketInput) hasEndpointARN() bool {
6559	if s.Bucket == nil {
6560		return false
6561	}
6562	return arn.IsARN(*s.Bucket)
6563}
6564
6565// updateArnableField updates the value of the input field that
6566// takes an ARN as an input. This method is useful to backfill
6567// the parsed resource name from ARN into the input member.
6568// It returns a pointer to a modified copy of input and an error.
6569// Note that original input is not modified.
6570func (s DeleteBucketInput) updateArnableField(v string) (interface{}, error) {
6571	if s.Bucket == nil {
6572		return nil, fmt.Errorf("member Bucket is nil")
6573	}
6574	s.Bucket = aws.String(v)
6575	return &s, nil
6576}
6577
6578// updateAccountID returns a pointer to a modified copy of input,
6579// if account id is not provided, we update the account id in modified input
6580// if account id is provided, but doesn't match with the one in ARN, we throw an error
6581// if account id is not updated, we return nil. Note that original input is not modified.
6582func (s DeleteBucketInput) updateAccountID(accountId string) (interface{}, error) {
6583	if s.AccountId == nil {
6584		s.AccountId = aws.String(accountId)
6585		return &s, nil
6586	} else if *s.AccountId != accountId {
6587		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6588	}
6589	return nil, nil
6590}
6591
6592type DeleteBucketLifecycleConfigurationInput struct {
6593	_ struct{} `locationName:"DeleteBucketLifecycleConfigurationRequest" type:"structure"`
6594
6595	// The account ID of the lifecycle configuration to delete.
6596	//
6597	// AccountId is a required field
6598	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6599
6600	// Specifies the bucket.
6601	//
6602	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6603	// must specify the name and the x-amz-outpost-id as well.
6604	//
6605	// For using this parameter with S3 on Outposts with the Amazon Web Services
6606	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
6607	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6608	// For example, to access the bucket reports through outpost my-outpost owned
6609	// 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.
6610	// The value must be URL encoded.
6611	//
6612	// Bucket is a required field
6613	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6614}
6615
6616// String returns the string representation
6617func (s DeleteBucketLifecycleConfigurationInput) String() string {
6618	return awsutil.Prettify(s)
6619}
6620
6621// GoString returns the string representation
6622func (s DeleteBucketLifecycleConfigurationInput) GoString() string {
6623	return s.String()
6624}
6625
6626// Validate inspects the fields of the type to determine if they are valid.
6627func (s *DeleteBucketLifecycleConfigurationInput) Validate() error {
6628	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketLifecycleConfigurationInput"}
6629	if s.AccountId == nil {
6630		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6631	}
6632	if s.AccountId != nil && len(*s.AccountId) < 1 {
6633		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6634	}
6635	if s.Bucket == nil {
6636		invalidParams.Add(request.NewErrParamRequired("Bucket"))
6637	}
6638	if s.Bucket != nil && len(*s.Bucket) < 3 {
6639		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
6640	}
6641
6642	if invalidParams.Len() > 0 {
6643		return invalidParams
6644	}
6645	return nil
6646}
6647
6648// SetAccountId sets the AccountId field's value.
6649func (s *DeleteBucketLifecycleConfigurationInput) SetAccountId(v string) *DeleteBucketLifecycleConfigurationInput {
6650	s.AccountId = &v
6651	return s
6652}
6653
6654// SetBucket sets the Bucket field's value.
6655func (s *DeleteBucketLifecycleConfigurationInput) SetBucket(v string) *DeleteBucketLifecycleConfigurationInput {
6656	s.Bucket = &v
6657	return s
6658}
6659
6660func (s *DeleteBucketLifecycleConfigurationInput) hostLabels() map[string]string {
6661	return map[string]string{
6662		"AccountId": aws.StringValue(s.AccountId),
6663	}
6664}
6665
6666func (s *DeleteBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
6667	if s.Bucket == nil {
6668		return nil, fmt.Errorf("member Bucket is nil")
6669	}
6670	return parseEndpointARN(*s.Bucket)
6671}
6672
6673func (s *DeleteBucketLifecycleConfigurationInput) hasEndpointARN() bool {
6674	if s.Bucket == nil {
6675		return false
6676	}
6677	return arn.IsARN(*s.Bucket)
6678}
6679
6680// updateArnableField updates the value of the input field that
6681// takes an ARN as an input. This method is useful to backfill
6682// the parsed resource name from ARN into the input member.
6683// It returns a pointer to a modified copy of input and an error.
6684// Note that original input is not modified.
6685func (s DeleteBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
6686	if s.Bucket == nil {
6687		return nil, fmt.Errorf("member Bucket is nil")
6688	}
6689	s.Bucket = aws.String(v)
6690	return &s, nil
6691}
6692
6693// updateAccountID returns a pointer to a modified copy of input,
6694// if account id is not provided, we update the account id in modified input
6695// if account id is provided, but doesn't match with the one in ARN, we throw an error
6696// if account id is not updated, we return nil. Note that original input is not modified.
6697func (s DeleteBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
6698	if s.AccountId == nil {
6699		s.AccountId = aws.String(accountId)
6700		return &s, nil
6701	} else if *s.AccountId != accountId {
6702		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6703	}
6704	return nil, nil
6705}
6706
6707type DeleteBucketLifecycleConfigurationOutput struct {
6708	_ struct{} `type:"structure"`
6709}
6710
6711// String returns the string representation
6712func (s DeleteBucketLifecycleConfigurationOutput) String() string {
6713	return awsutil.Prettify(s)
6714}
6715
6716// GoString returns the string representation
6717func (s DeleteBucketLifecycleConfigurationOutput) GoString() string {
6718	return s.String()
6719}
6720
6721type DeleteBucketOutput struct {
6722	_ struct{} `type:"structure"`
6723}
6724
6725// String returns the string representation
6726func (s DeleteBucketOutput) String() string {
6727	return awsutil.Prettify(s)
6728}
6729
6730// GoString returns the string representation
6731func (s DeleteBucketOutput) GoString() string {
6732	return s.String()
6733}
6734
6735type DeleteBucketPolicyInput struct {
6736	_ struct{} `locationName:"DeleteBucketPolicyRequest" type:"structure"`
6737
6738	// The account ID of the Outposts bucket.
6739	//
6740	// AccountId is a required field
6741	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6742
6743	// Specifies the bucket.
6744	//
6745	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6746	// must specify the name and the x-amz-outpost-id as well.
6747	//
6748	// For using this parameter with S3 on Outposts with the Amazon Web Services
6749	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
6750	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6751	// For example, to access the bucket reports through outpost my-outpost owned
6752	// 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.
6753	// The value must be URL encoded.
6754	//
6755	// Bucket is a required field
6756	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6757}
6758
6759// String returns the string representation
6760func (s DeleteBucketPolicyInput) String() string {
6761	return awsutil.Prettify(s)
6762}
6763
6764// GoString returns the string representation
6765func (s DeleteBucketPolicyInput) GoString() string {
6766	return s.String()
6767}
6768
6769// Validate inspects the fields of the type to determine if they are valid.
6770func (s *DeleteBucketPolicyInput) Validate() error {
6771	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketPolicyInput"}
6772	if s.AccountId == nil {
6773		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6774	}
6775	if s.AccountId != nil && len(*s.AccountId) < 1 {
6776		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6777	}
6778	if s.Bucket == nil {
6779		invalidParams.Add(request.NewErrParamRequired("Bucket"))
6780	}
6781	if s.Bucket != nil && len(*s.Bucket) < 3 {
6782		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
6783	}
6784
6785	if invalidParams.Len() > 0 {
6786		return invalidParams
6787	}
6788	return nil
6789}
6790
6791// SetAccountId sets the AccountId field's value.
6792func (s *DeleteBucketPolicyInput) SetAccountId(v string) *DeleteBucketPolicyInput {
6793	s.AccountId = &v
6794	return s
6795}
6796
6797// SetBucket sets the Bucket field's value.
6798func (s *DeleteBucketPolicyInput) SetBucket(v string) *DeleteBucketPolicyInput {
6799	s.Bucket = &v
6800	return s
6801}
6802
6803func (s *DeleteBucketPolicyInput) hostLabels() map[string]string {
6804	return map[string]string{
6805		"AccountId": aws.StringValue(s.AccountId),
6806	}
6807}
6808
6809func (s *DeleteBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
6810	if s.Bucket == nil {
6811		return nil, fmt.Errorf("member Bucket is nil")
6812	}
6813	return parseEndpointARN(*s.Bucket)
6814}
6815
6816func (s *DeleteBucketPolicyInput) hasEndpointARN() bool {
6817	if s.Bucket == nil {
6818		return false
6819	}
6820	return arn.IsARN(*s.Bucket)
6821}
6822
6823// updateArnableField updates the value of the input field that
6824// takes an ARN as an input. This method is useful to backfill
6825// the parsed resource name from ARN into the input member.
6826// It returns a pointer to a modified copy of input and an error.
6827// Note that original input is not modified.
6828func (s DeleteBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
6829	if s.Bucket == nil {
6830		return nil, fmt.Errorf("member Bucket is nil")
6831	}
6832	s.Bucket = aws.String(v)
6833	return &s, nil
6834}
6835
6836// updateAccountID returns a pointer to a modified copy of input,
6837// if account id is not provided, we update the account id in modified input
6838// if account id is provided, but doesn't match with the one in ARN, we throw an error
6839// if account id is not updated, we return nil. Note that original input is not modified.
6840func (s DeleteBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
6841	if s.AccountId == nil {
6842		s.AccountId = aws.String(accountId)
6843		return &s, nil
6844	} else if *s.AccountId != accountId {
6845		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6846	}
6847	return nil, nil
6848}
6849
6850type DeleteBucketPolicyOutput struct {
6851	_ struct{} `type:"structure"`
6852}
6853
6854// String returns the string representation
6855func (s DeleteBucketPolicyOutput) String() string {
6856	return awsutil.Prettify(s)
6857}
6858
6859// GoString returns the string representation
6860func (s DeleteBucketPolicyOutput) GoString() string {
6861	return s.String()
6862}
6863
6864type DeleteBucketTaggingInput struct {
6865	_ struct{} `locationName:"DeleteBucketTaggingRequest" type:"structure"`
6866
6867	// The account ID of the Outposts bucket tag set to be removed.
6868	//
6869	// AccountId is a required field
6870	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
6871
6872	// The bucket ARN that has the tag set to be removed.
6873	//
6874	// For using this parameter with Amazon S3 on Outposts with the REST API, you
6875	// must specify the name and the x-amz-outpost-id as well.
6876	//
6877	// For using this parameter with S3 on Outposts with the Amazon Web Services
6878	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
6879	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
6880	// For example, to access the bucket reports through outpost my-outpost owned
6881	// 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.
6882	// The value must be URL encoded.
6883	//
6884	// Bucket is a required field
6885	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
6886}
6887
6888// String returns the string representation
6889func (s DeleteBucketTaggingInput) String() string {
6890	return awsutil.Prettify(s)
6891}
6892
6893// GoString returns the string representation
6894func (s DeleteBucketTaggingInput) GoString() string {
6895	return s.String()
6896}
6897
6898// Validate inspects the fields of the type to determine if they are valid.
6899func (s *DeleteBucketTaggingInput) Validate() error {
6900	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketTaggingInput"}
6901	if s.AccountId == nil {
6902		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6903	}
6904	if s.AccountId != nil && len(*s.AccountId) < 1 {
6905		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6906	}
6907	if s.Bucket == nil {
6908		invalidParams.Add(request.NewErrParamRequired("Bucket"))
6909	}
6910	if s.Bucket != nil && len(*s.Bucket) < 3 {
6911		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
6912	}
6913
6914	if invalidParams.Len() > 0 {
6915		return invalidParams
6916	}
6917	return nil
6918}
6919
6920// SetAccountId sets the AccountId field's value.
6921func (s *DeleteBucketTaggingInput) SetAccountId(v string) *DeleteBucketTaggingInput {
6922	s.AccountId = &v
6923	return s
6924}
6925
6926// SetBucket sets the Bucket field's value.
6927func (s *DeleteBucketTaggingInput) SetBucket(v string) *DeleteBucketTaggingInput {
6928	s.Bucket = &v
6929	return s
6930}
6931
6932func (s *DeleteBucketTaggingInput) hostLabels() map[string]string {
6933	return map[string]string{
6934		"AccountId": aws.StringValue(s.AccountId),
6935	}
6936}
6937
6938func (s *DeleteBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
6939	if s.Bucket == nil {
6940		return nil, fmt.Errorf("member Bucket is nil")
6941	}
6942	return parseEndpointARN(*s.Bucket)
6943}
6944
6945func (s *DeleteBucketTaggingInput) hasEndpointARN() bool {
6946	if s.Bucket == nil {
6947		return false
6948	}
6949	return arn.IsARN(*s.Bucket)
6950}
6951
6952// updateArnableField updates the value of the input field that
6953// takes an ARN as an input. This method is useful to backfill
6954// the parsed resource name from ARN into the input member.
6955// It returns a pointer to a modified copy of input and an error.
6956// Note that original input is not modified.
6957func (s DeleteBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
6958	if s.Bucket == nil {
6959		return nil, fmt.Errorf("member Bucket is nil")
6960	}
6961	s.Bucket = aws.String(v)
6962	return &s, nil
6963}
6964
6965// updateAccountID returns a pointer to a modified copy of input,
6966// if account id is not provided, we update the account id in modified input
6967// if account id is provided, but doesn't match with the one in ARN, we throw an error
6968// if account id is not updated, we return nil. Note that original input is not modified.
6969func (s DeleteBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
6970	if s.AccountId == nil {
6971		s.AccountId = aws.String(accountId)
6972		return &s, nil
6973	} else if *s.AccountId != accountId {
6974		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
6975	}
6976	return nil, nil
6977}
6978
6979type DeleteBucketTaggingOutput struct {
6980	_ struct{} `type:"structure"`
6981}
6982
6983// String returns the string representation
6984func (s DeleteBucketTaggingOutput) String() string {
6985	return awsutil.Prettify(s)
6986}
6987
6988// GoString returns the string representation
6989func (s DeleteBucketTaggingOutput) GoString() string {
6990	return s.String()
6991}
6992
6993type DeleteJobTaggingInput struct {
6994	_ struct{} `locationName:"DeleteJobTaggingRequest" type:"structure"`
6995
6996	// The account ID associated with the S3 Batch Operations job.
6997	//
6998	// AccountId is a required field
6999	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7000
7001	// The ID for the S3 Batch Operations job whose tags you want to delete.
7002	//
7003	// JobId is a required field
7004	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
7005}
7006
7007// String returns the string representation
7008func (s DeleteJobTaggingInput) String() string {
7009	return awsutil.Prettify(s)
7010}
7011
7012// GoString returns the string representation
7013func (s DeleteJobTaggingInput) GoString() string {
7014	return s.String()
7015}
7016
7017// Validate inspects the fields of the type to determine if they are valid.
7018func (s *DeleteJobTaggingInput) Validate() error {
7019	invalidParams := request.ErrInvalidParams{Context: "DeleteJobTaggingInput"}
7020	if s.AccountId == nil {
7021		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7022	}
7023	if s.AccountId != nil && len(*s.AccountId) < 1 {
7024		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7025	}
7026	if s.JobId == nil {
7027		invalidParams.Add(request.NewErrParamRequired("JobId"))
7028	}
7029	if s.JobId != nil && len(*s.JobId) < 5 {
7030		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
7031	}
7032
7033	if invalidParams.Len() > 0 {
7034		return invalidParams
7035	}
7036	return nil
7037}
7038
7039// SetAccountId sets the AccountId field's value.
7040func (s *DeleteJobTaggingInput) SetAccountId(v string) *DeleteJobTaggingInput {
7041	s.AccountId = &v
7042	return s
7043}
7044
7045// SetJobId sets the JobId field's value.
7046func (s *DeleteJobTaggingInput) SetJobId(v string) *DeleteJobTaggingInput {
7047	s.JobId = &v
7048	return s
7049}
7050
7051func (s *DeleteJobTaggingInput) hostLabels() map[string]string {
7052	return map[string]string{
7053		"AccountId": aws.StringValue(s.AccountId),
7054	}
7055}
7056
7057type DeleteJobTaggingOutput struct {
7058	_ struct{} `type:"structure"`
7059}
7060
7061// String returns the string representation
7062func (s DeleteJobTaggingOutput) String() string {
7063	return awsutil.Prettify(s)
7064}
7065
7066// GoString returns the string representation
7067func (s DeleteJobTaggingOutput) GoString() string {
7068	return s.String()
7069}
7070
7071type DeletePublicAccessBlockInput struct {
7072	_ struct{} `locationName:"DeletePublicAccessBlockRequest" type:"structure"`
7073
7074	// The account ID for the account whose PublicAccessBlock configuration you
7075	// want to remove.
7076	//
7077	// AccountId is a required field
7078	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7079}
7080
7081// String returns the string representation
7082func (s DeletePublicAccessBlockInput) String() string {
7083	return awsutil.Prettify(s)
7084}
7085
7086// GoString returns the string representation
7087func (s DeletePublicAccessBlockInput) GoString() string {
7088	return s.String()
7089}
7090
7091// Validate inspects the fields of the type to determine if they are valid.
7092func (s *DeletePublicAccessBlockInput) Validate() error {
7093	invalidParams := request.ErrInvalidParams{Context: "DeletePublicAccessBlockInput"}
7094	if s.AccountId == nil {
7095		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7096	}
7097	if s.AccountId != nil && len(*s.AccountId) < 1 {
7098		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7099	}
7100
7101	if invalidParams.Len() > 0 {
7102		return invalidParams
7103	}
7104	return nil
7105}
7106
7107// SetAccountId sets the AccountId field's value.
7108func (s *DeletePublicAccessBlockInput) SetAccountId(v string) *DeletePublicAccessBlockInput {
7109	s.AccountId = &v
7110	return s
7111}
7112
7113func (s *DeletePublicAccessBlockInput) hostLabels() map[string]string {
7114	return map[string]string{
7115		"AccountId": aws.StringValue(s.AccountId),
7116	}
7117}
7118
7119type DeletePublicAccessBlockOutput struct {
7120	_ struct{} `type:"structure"`
7121}
7122
7123// String returns the string representation
7124func (s DeletePublicAccessBlockOutput) String() string {
7125	return awsutil.Prettify(s)
7126}
7127
7128// GoString returns the string representation
7129func (s DeletePublicAccessBlockOutput) GoString() string {
7130	return s.String()
7131}
7132
7133type DeleteStorageLensConfigurationInput struct {
7134	_ struct{} `locationName:"DeleteStorageLensConfigurationRequest" type:"structure"`
7135
7136	// The account ID of the requester.
7137	//
7138	// AccountId is a required field
7139	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7140
7141	// The ID of the S3 Storage Lens configuration.
7142	//
7143	// ConfigId is a required field
7144	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
7145}
7146
7147// String returns the string representation
7148func (s DeleteStorageLensConfigurationInput) String() string {
7149	return awsutil.Prettify(s)
7150}
7151
7152// GoString returns the string representation
7153func (s DeleteStorageLensConfigurationInput) GoString() string {
7154	return s.String()
7155}
7156
7157// Validate inspects the fields of the type to determine if they are valid.
7158func (s *DeleteStorageLensConfigurationInput) Validate() error {
7159	invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationInput"}
7160	if s.AccountId == nil {
7161		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7162	}
7163	if s.AccountId != nil && len(*s.AccountId) < 1 {
7164		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7165	}
7166	if s.ConfigId == nil {
7167		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
7168	}
7169	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
7170		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
7171	}
7172
7173	if invalidParams.Len() > 0 {
7174		return invalidParams
7175	}
7176	return nil
7177}
7178
7179// SetAccountId sets the AccountId field's value.
7180func (s *DeleteStorageLensConfigurationInput) SetAccountId(v string) *DeleteStorageLensConfigurationInput {
7181	s.AccountId = &v
7182	return s
7183}
7184
7185// SetConfigId sets the ConfigId field's value.
7186func (s *DeleteStorageLensConfigurationInput) SetConfigId(v string) *DeleteStorageLensConfigurationInput {
7187	s.ConfigId = &v
7188	return s
7189}
7190
7191func (s *DeleteStorageLensConfigurationInput) hostLabels() map[string]string {
7192	return map[string]string{
7193		"AccountId": aws.StringValue(s.AccountId),
7194	}
7195}
7196
7197type DeleteStorageLensConfigurationOutput struct {
7198	_ struct{} `type:"structure"`
7199}
7200
7201// String returns the string representation
7202func (s DeleteStorageLensConfigurationOutput) String() string {
7203	return awsutil.Prettify(s)
7204}
7205
7206// GoString returns the string representation
7207func (s DeleteStorageLensConfigurationOutput) GoString() string {
7208	return s.String()
7209}
7210
7211type DeleteStorageLensConfigurationTaggingInput struct {
7212	_ struct{} `locationName:"DeleteStorageLensConfigurationTaggingRequest" type:"structure"`
7213
7214	// The account ID of the requester.
7215	//
7216	// AccountId is a required field
7217	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7218
7219	// The ID of the S3 Storage Lens configuration.
7220	//
7221	// ConfigId is a required field
7222	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
7223}
7224
7225// String returns the string representation
7226func (s DeleteStorageLensConfigurationTaggingInput) String() string {
7227	return awsutil.Prettify(s)
7228}
7229
7230// GoString returns the string representation
7231func (s DeleteStorageLensConfigurationTaggingInput) GoString() string {
7232	return s.String()
7233}
7234
7235// Validate inspects the fields of the type to determine if they are valid.
7236func (s *DeleteStorageLensConfigurationTaggingInput) Validate() error {
7237	invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationTaggingInput"}
7238	if s.AccountId == nil {
7239		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7240	}
7241	if s.AccountId != nil && len(*s.AccountId) < 1 {
7242		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7243	}
7244	if s.ConfigId == nil {
7245		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
7246	}
7247	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
7248		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
7249	}
7250
7251	if invalidParams.Len() > 0 {
7252		return invalidParams
7253	}
7254	return nil
7255}
7256
7257// SetAccountId sets the AccountId field's value.
7258func (s *DeleteStorageLensConfigurationTaggingInput) SetAccountId(v string) *DeleteStorageLensConfigurationTaggingInput {
7259	s.AccountId = &v
7260	return s
7261}
7262
7263// SetConfigId sets the ConfigId field's value.
7264func (s *DeleteStorageLensConfigurationTaggingInput) SetConfigId(v string) *DeleteStorageLensConfigurationTaggingInput {
7265	s.ConfigId = &v
7266	return s
7267}
7268
7269func (s *DeleteStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
7270	return map[string]string{
7271		"AccountId": aws.StringValue(s.AccountId),
7272	}
7273}
7274
7275type DeleteStorageLensConfigurationTaggingOutput struct {
7276	_ struct{} `type:"structure"`
7277}
7278
7279// String returns the string representation
7280func (s DeleteStorageLensConfigurationTaggingOutput) String() string {
7281	return awsutil.Prettify(s)
7282}
7283
7284// GoString returns the string representation
7285func (s DeleteStorageLensConfigurationTaggingOutput) GoString() string {
7286	return s.String()
7287}
7288
7289type DescribeJobInput struct {
7290	_ struct{} `locationName:"DescribeJobRequest" type:"structure"`
7291
7292	// The account ID associated with the S3 Batch Operations job.
7293	//
7294	// AccountId is a required field
7295	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7296
7297	// The ID for the job whose information you want to retrieve.
7298	//
7299	// JobId is a required field
7300	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
7301}
7302
7303// String returns the string representation
7304func (s DescribeJobInput) String() string {
7305	return awsutil.Prettify(s)
7306}
7307
7308// GoString returns the string representation
7309func (s DescribeJobInput) GoString() string {
7310	return s.String()
7311}
7312
7313// Validate inspects the fields of the type to determine if they are valid.
7314func (s *DescribeJobInput) Validate() error {
7315	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
7316	if s.AccountId == nil {
7317		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7318	}
7319	if s.AccountId != nil && len(*s.AccountId) < 1 {
7320		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7321	}
7322	if s.JobId == nil {
7323		invalidParams.Add(request.NewErrParamRequired("JobId"))
7324	}
7325	if s.JobId != nil && len(*s.JobId) < 5 {
7326		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
7327	}
7328
7329	if invalidParams.Len() > 0 {
7330		return invalidParams
7331	}
7332	return nil
7333}
7334
7335// SetAccountId sets the AccountId field's value.
7336func (s *DescribeJobInput) SetAccountId(v string) *DescribeJobInput {
7337	s.AccountId = &v
7338	return s
7339}
7340
7341// SetJobId sets the JobId field's value.
7342func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
7343	s.JobId = &v
7344	return s
7345}
7346
7347func (s *DescribeJobInput) hostLabels() map[string]string {
7348	return map[string]string{
7349		"AccountId": aws.StringValue(s.AccountId),
7350	}
7351}
7352
7353type DescribeJobOutput struct {
7354	_ struct{} `type:"structure"`
7355
7356	// Contains the configuration parameters and status for the job specified in
7357	// the Describe Job request.
7358	Job *JobDescriptor `type:"structure"`
7359}
7360
7361// String returns the string representation
7362func (s DescribeJobOutput) String() string {
7363	return awsutil.Prettify(s)
7364}
7365
7366// GoString returns the string representation
7367func (s DescribeJobOutput) GoString() string {
7368	return s.String()
7369}
7370
7371// SetJob sets the Job field's value.
7372func (s *DescribeJobOutput) SetJob(v *JobDescriptor) *DescribeJobOutput {
7373	s.Job = v
7374	return s
7375}
7376
7377// A container for what Amazon S3 Storage Lens will exclude.
7378type Exclude struct {
7379	_ struct{} `type:"structure"`
7380
7381	// A container for the S3 Storage Lens bucket excludes.
7382	Buckets []*string `locationNameList:"Arn" type:"list"`
7383
7384	// A container for the S3 Storage Lens Region excludes.
7385	Regions []*string `locationNameList:"Region" type:"list"`
7386}
7387
7388// String returns the string representation
7389func (s Exclude) String() string {
7390	return awsutil.Prettify(s)
7391}
7392
7393// GoString returns the string representation
7394func (s Exclude) GoString() string {
7395	return s.String()
7396}
7397
7398// SetBuckets sets the Buckets field's value.
7399func (s *Exclude) SetBuckets(v []*string) *Exclude {
7400	s.Buckets = v
7401	return s
7402}
7403
7404// SetRegions sets the Regions field's value.
7405func (s *Exclude) SetRegions(v []*string) *Exclude {
7406	s.Regions = v
7407	return s
7408}
7409
7410type GetAccessPointConfigurationForObjectLambdaInput struct {
7411	_ struct{} `locationName:"GetAccessPointConfigurationForObjectLambdaRequest" type:"structure"`
7412
7413	// The account ID for the account that owns the specified Object Lambda Access
7414	// Point.
7415	//
7416	// AccountId is a required field
7417	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7418
7419	// The name of the Object Lambda Access Point you want to return the configuration
7420	// for.
7421	//
7422	// Name is a required field
7423	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7424}
7425
7426// String returns the string representation
7427func (s GetAccessPointConfigurationForObjectLambdaInput) String() string {
7428	return awsutil.Prettify(s)
7429}
7430
7431// GoString returns the string representation
7432func (s GetAccessPointConfigurationForObjectLambdaInput) GoString() string {
7433	return s.String()
7434}
7435
7436// Validate inspects the fields of the type to determine if they are valid.
7437func (s *GetAccessPointConfigurationForObjectLambdaInput) Validate() error {
7438	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointConfigurationForObjectLambdaInput"}
7439	if s.AccountId == nil {
7440		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7441	}
7442	if s.AccountId != nil && len(*s.AccountId) < 1 {
7443		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7444	}
7445	if s.Name == nil {
7446		invalidParams.Add(request.NewErrParamRequired("Name"))
7447	}
7448	if s.Name != nil && len(*s.Name) < 3 {
7449		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7450	}
7451
7452	if invalidParams.Len() > 0 {
7453		return invalidParams
7454	}
7455	return nil
7456}
7457
7458// SetAccountId sets the AccountId field's value.
7459func (s *GetAccessPointConfigurationForObjectLambdaInput) SetAccountId(v string) *GetAccessPointConfigurationForObjectLambdaInput {
7460	s.AccountId = &v
7461	return s
7462}
7463
7464// SetName sets the Name field's value.
7465func (s *GetAccessPointConfigurationForObjectLambdaInput) SetName(v string) *GetAccessPointConfigurationForObjectLambdaInput {
7466	s.Name = &v
7467	return s
7468}
7469
7470func (s *GetAccessPointConfigurationForObjectLambdaInput) hostLabels() map[string]string {
7471	return map[string]string{
7472		"AccountId": aws.StringValue(s.AccountId),
7473	}
7474}
7475
7476type GetAccessPointConfigurationForObjectLambdaOutput struct {
7477	_ struct{} `type:"structure"`
7478
7479	// Object Lambda Access Point configuration document.
7480	Configuration *ObjectLambdaConfiguration `type:"structure"`
7481}
7482
7483// String returns the string representation
7484func (s GetAccessPointConfigurationForObjectLambdaOutput) String() string {
7485	return awsutil.Prettify(s)
7486}
7487
7488// GoString returns the string representation
7489func (s GetAccessPointConfigurationForObjectLambdaOutput) GoString() string {
7490	return s.String()
7491}
7492
7493// SetConfiguration sets the Configuration field's value.
7494func (s *GetAccessPointConfigurationForObjectLambdaOutput) SetConfiguration(v *ObjectLambdaConfiguration) *GetAccessPointConfigurationForObjectLambdaOutput {
7495	s.Configuration = v
7496	return s
7497}
7498
7499type GetAccessPointForObjectLambdaInput struct {
7500	_ struct{} `locationName:"GetAccessPointForObjectLambdaRequest" type:"structure"`
7501
7502	// The account ID for the account that owns the specified Object Lambda Access
7503	// Point.
7504	//
7505	// AccountId is a required field
7506	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7507
7508	// The name of the Object Lambda Access Point.
7509	//
7510	// Name is a required field
7511	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7512}
7513
7514// String returns the string representation
7515func (s GetAccessPointForObjectLambdaInput) String() string {
7516	return awsutil.Prettify(s)
7517}
7518
7519// GoString returns the string representation
7520func (s GetAccessPointForObjectLambdaInput) GoString() string {
7521	return s.String()
7522}
7523
7524// Validate inspects the fields of the type to determine if they are valid.
7525func (s *GetAccessPointForObjectLambdaInput) Validate() error {
7526	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointForObjectLambdaInput"}
7527	if s.AccountId == nil {
7528		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7529	}
7530	if s.AccountId != nil && len(*s.AccountId) < 1 {
7531		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7532	}
7533	if s.Name == nil {
7534		invalidParams.Add(request.NewErrParamRequired("Name"))
7535	}
7536	if s.Name != nil && len(*s.Name) < 3 {
7537		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7538	}
7539
7540	if invalidParams.Len() > 0 {
7541		return invalidParams
7542	}
7543	return nil
7544}
7545
7546// SetAccountId sets the AccountId field's value.
7547func (s *GetAccessPointForObjectLambdaInput) SetAccountId(v string) *GetAccessPointForObjectLambdaInput {
7548	s.AccountId = &v
7549	return s
7550}
7551
7552// SetName sets the Name field's value.
7553func (s *GetAccessPointForObjectLambdaInput) SetName(v string) *GetAccessPointForObjectLambdaInput {
7554	s.Name = &v
7555	return s
7556}
7557
7558func (s *GetAccessPointForObjectLambdaInput) hostLabels() map[string]string {
7559	return map[string]string{
7560		"AccountId": aws.StringValue(s.AccountId),
7561	}
7562}
7563
7564type GetAccessPointForObjectLambdaOutput struct {
7565	_ struct{} `type:"structure"`
7566
7567	// The date and time when the specified Object Lambda Access Point was created.
7568	CreationDate *time.Time `type:"timestamp"`
7569
7570	// The name of the Object Lambda Access Point.
7571	Name *string `min:"3" type:"string"`
7572
7573	// Configuration to block all public access. This setting is turned on and can
7574	// not be edited.
7575	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
7576}
7577
7578// String returns the string representation
7579func (s GetAccessPointForObjectLambdaOutput) String() string {
7580	return awsutil.Prettify(s)
7581}
7582
7583// GoString returns the string representation
7584func (s GetAccessPointForObjectLambdaOutput) GoString() string {
7585	return s.String()
7586}
7587
7588// SetCreationDate sets the CreationDate field's value.
7589func (s *GetAccessPointForObjectLambdaOutput) SetCreationDate(v time.Time) *GetAccessPointForObjectLambdaOutput {
7590	s.CreationDate = &v
7591	return s
7592}
7593
7594// SetName sets the Name field's value.
7595func (s *GetAccessPointForObjectLambdaOutput) SetName(v string) *GetAccessPointForObjectLambdaOutput {
7596	s.Name = &v
7597	return s
7598}
7599
7600// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
7601func (s *GetAccessPointForObjectLambdaOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointForObjectLambdaOutput {
7602	s.PublicAccessBlockConfiguration = v
7603	return s
7604}
7605
7606type GetAccessPointInput struct {
7607	_ struct{} `locationName:"GetAccessPointRequest" type:"structure"`
7608
7609	// The account ID for the account that owns the specified access point.
7610	//
7611	// AccountId is a required field
7612	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7613
7614	// The name of the access point whose configuration information you want to
7615	// retrieve.
7616	//
7617	// For using this parameter with Amazon S3 on Outposts with the REST API, you
7618	// must specify the name and the x-amz-outpost-id as well.
7619	//
7620	// For using this parameter with S3 on Outposts with the Amazon Web Services
7621	// SDK and CLI, you must specify the ARN of the access point accessed in the
7622	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
7623	// For example, to access the access point reports-ap through outpost my-outpost
7624	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
7625	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
7626	// The value must be URL encoded.
7627	//
7628	// Name is a required field
7629	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7630}
7631
7632// String returns the string representation
7633func (s GetAccessPointInput) String() string {
7634	return awsutil.Prettify(s)
7635}
7636
7637// GoString returns the string representation
7638func (s GetAccessPointInput) GoString() string {
7639	return s.String()
7640}
7641
7642// Validate inspects the fields of the type to determine if they are valid.
7643func (s *GetAccessPointInput) Validate() error {
7644	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointInput"}
7645	if s.AccountId == nil {
7646		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7647	}
7648	if s.AccountId != nil && len(*s.AccountId) < 1 {
7649		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7650	}
7651	if s.Name == nil {
7652		invalidParams.Add(request.NewErrParamRequired("Name"))
7653	}
7654	if s.Name != nil && len(*s.Name) < 3 {
7655		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7656	}
7657
7658	if invalidParams.Len() > 0 {
7659		return invalidParams
7660	}
7661	return nil
7662}
7663
7664// SetAccountId sets the AccountId field's value.
7665func (s *GetAccessPointInput) SetAccountId(v string) *GetAccessPointInput {
7666	s.AccountId = &v
7667	return s
7668}
7669
7670// SetName sets the Name field's value.
7671func (s *GetAccessPointInput) SetName(v string) *GetAccessPointInput {
7672	s.Name = &v
7673	return s
7674}
7675
7676func (s *GetAccessPointInput) hostLabels() map[string]string {
7677	return map[string]string{
7678		"AccountId": aws.StringValue(s.AccountId),
7679	}
7680}
7681
7682func (s *GetAccessPointInput) getEndpointARN() (arn.Resource, error) {
7683	if s.Name == nil {
7684		return nil, fmt.Errorf("member Name is nil")
7685	}
7686	return parseEndpointARN(*s.Name)
7687}
7688
7689func (s *GetAccessPointInput) hasEndpointARN() bool {
7690	if s.Name == nil {
7691		return false
7692	}
7693	return arn.IsARN(*s.Name)
7694}
7695
7696// updateArnableField updates the value of the input field that
7697// takes an ARN as an input. This method is useful to backfill
7698// the parsed resource name from ARN into the input member.
7699// It returns a pointer to a modified copy of input and an error.
7700// Note that original input is not modified.
7701func (s GetAccessPointInput) updateArnableField(v string) (interface{}, error) {
7702	if s.Name == nil {
7703		return nil, fmt.Errorf("member Name is nil")
7704	}
7705	s.Name = aws.String(v)
7706	return &s, nil
7707}
7708
7709// updateAccountID returns a pointer to a modified copy of input,
7710// if account id is not provided, we update the account id in modified input
7711// if account id is provided, but doesn't match with the one in ARN, we throw an error
7712// if account id is not updated, we return nil. Note that original input is not modified.
7713func (s GetAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
7714	if s.AccountId == nil {
7715		s.AccountId = aws.String(accountId)
7716		return &s, nil
7717	} else if *s.AccountId != accountId {
7718		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
7719	}
7720	return nil, nil
7721}
7722
7723type GetAccessPointOutput struct {
7724	_ struct{} `type:"structure"`
7725
7726	// The ARN of the access point.
7727	AccessPointArn *string `min:"4" type:"string"`
7728
7729	// The name or alias of the access point.
7730	Alias *string `type:"string"`
7731
7732	// The name of the bucket associated with the specified access point.
7733	Bucket *string `min:"3" type:"string"`
7734
7735	// The date and time when the specified access point was created.
7736	CreationDate *time.Time `type:"timestamp"`
7737
7738	// The VPC endpoint for the access point.
7739	Endpoints map[string]*string `type:"map"`
7740
7741	// The name of the specified access point.
7742	Name *string `min:"3" type:"string"`
7743
7744	// Indicates whether this access point allows access from the public internet.
7745	// If VpcConfiguration is specified for this access point, then NetworkOrigin
7746	// is VPC, and the access point doesn't allow access from the public internet.
7747	// Otherwise, NetworkOrigin is Internet, and the access point allows access
7748	// from the public internet, subject to the access point and bucket access policies.
7749	//
7750	// This will always be true for an Amazon S3 on Outposts access point
7751	NetworkOrigin *string `type:"string" enum:"NetworkOrigin"`
7752
7753	// The PublicAccessBlock configuration that you want to apply to this Amazon
7754	// S3 account. You can enable the configuration options in any combination.
7755	// For more information about when Amazon S3 considers a bucket or object public,
7756	// 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)
7757	// in the Amazon S3 User Guide.
7758	//
7759	// This is not supported for Amazon S3 on Outposts.
7760	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
7761
7762	// Contains the virtual private cloud (VPC) configuration for the specified
7763	// access point.
7764	//
7765	// This element is empty if this access point is an Amazon S3 on Outposts access
7766	// point that is used by other Amazon Web Services.
7767	VpcConfiguration *VpcConfiguration `type:"structure"`
7768}
7769
7770// String returns the string representation
7771func (s GetAccessPointOutput) String() string {
7772	return awsutil.Prettify(s)
7773}
7774
7775// GoString returns the string representation
7776func (s GetAccessPointOutput) GoString() string {
7777	return s.String()
7778}
7779
7780// SetAccessPointArn sets the AccessPointArn field's value.
7781func (s *GetAccessPointOutput) SetAccessPointArn(v string) *GetAccessPointOutput {
7782	s.AccessPointArn = &v
7783	return s
7784}
7785
7786// SetAlias sets the Alias field's value.
7787func (s *GetAccessPointOutput) SetAlias(v string) *GetAccessPointOutput {
7788	s.Alias = &v
7789	return s
7790}
7791
7792// SetBucket sets the Bucket field's value.
7793func (s *GetAccessPointOutput) SetBucket(v string) *GetAccessPointOutput {
7794	s.Bucket = &v
7795	return s
7796}
7797
7798// SetCreationDate sets the CreationDate field's value.
7799func (s *GetAccessPointOutput) SetCreationDate(v time.Time) *GetAccessPointOutput {
7800	s.CreationDate = &v
7801	return s
7802}
7803
7804// SetEndpoints sets the Endpoints field's value.
7805func (s *GetAccessPointOutput) SetEndpoints(v map[string]*string) *GetAccessPointOutput {
7806	s.Endpoints = v
7807	return s
7808}
7809
7810// SetName sets the Name field's value.
7811func (s *GetAccessPointOutput) SetName(v string) *GetAccessPointOutput {
7812	s.Name = &v
7813	return s
7814}
7815
7816// SetNetworkOrigin sets the NetworkOrigin field's value.
7817func (s *GetAccessPointOutput) SetNetworkOrigin(v string) *GetAccessPointOutput {
7818	s.NetworkOrigin = &v
7819	return s
7820}
7821
7822// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
7823func (s *GetAccessPointOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointOutput {
7824	s.PublicAccessBlockConfiguration = v
7825	return s
7826}
7827
7828// SetVpcConfiguration sets the VpcConfiguration field's value.
7829func (s *GetAccessPointOutput) SetVpcConfiguration(v *VpcConfiguration) *GetAccessPointOutput {
7830	s.VpcConfiguration = v
7831	return s
7832}
7833
7834type GetAccessPointPolicyForObjectLambdaInput struct {
7835	_ struct{} `locationName:"GetAccessPointPolicyForObjectLambdaRequest" type:"structure"`
7836
7837	// The account ID for the account that owns the specified Object Lambda Access
7838	// Point.
7839	//
7840	// AccountId is a required field
7841	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7842
7843	// The name of the Object Lambda Access Point.
7844	//
7845	// Name is a required field
7846	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7847}
7848
7849// String returns the string representation
7850func (s GetAccessPointPolicyForObjectLambdaInput) String() string {
7851	return awsutil.Prettify(s)
7852}
7853
7854// GoString returns the string representation
7855func (s GetAccessPointPolicyForObjectLambdaInput) GoString() string {
7856	return s.String()
7857}
7858
7859// Validate inspects the fields of the type to determine if they are valid.
7860func (s *GetAccessPointPolicyForObjectLambdaInput) Validate() error {
7861	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyForObjectLambdaInput"}
7862	if s.AccountId == nil {
7863		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7864	}
7865	if s.AccountId != nil && len(*s.AccountId) < 1 {
7866		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7867	}
7868	if s.Name == nil {
7869		invalidParams.Add(request.NewErrParamRequired("Name"))
7870	}
7871	if s.Name != nil && len(*s.Name) < 3 {
7872		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7873	}
7874
7875	if invalidParams.Len() > 0 {
7876		return invalidParams
7877	}
7878	return nil
7879}
7880
7881// SetAccountId sets the AccountId field's value.
7882func (s *GetAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *GetAccessPointPolicyForObjectLambdaInput {
7883	s.AccountId = &v
7884	return s
7885}
7886
7887// SetName sets the Name field's value.
7888func (s *GetAccessPointPolicyForObjectLambdaInput) SetName(v string) *GetAccessPointPolicyForObjectLambdaInput {
7889	s.Name = &v
7890	return s
7891}
7892
7893func (s *GetAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string {
7894	return map[string]string{
7895		"AccountId": aws.StringValue(s.AccountId),
7896	}
7897}
7898
7899type GetAccessPointPolicyForObjectLambdaOutput struct {
7900	_ struct{} `type:"structure"`
7901
7902	// Object Lambda Access Point resource policy document.
7903	Policy *string `type:"string"`
7904}
7905
7906// String returns the string representation
7907func (s GetAccessPointPolicyForObjectLambdaOutput) String() string {
7908	return awsutil.Prettify(s)
7909}
7910
7911// GoString returns the string representation
7912func (s GetAccessPointPolicyForObjectLambdaOutput) GoString() string {
7913	return s.String()
7914}
7915
7916// SetPolicy sets the Policy field's value.
7917func (s *GetAccessPointPolicyForObjectLambdaOutput) SetPolicy(v string) *GetAccessPointPolicyForObjectLambdaOutput {
7918	s.Policy = &v
7919	return s
7920}
7921
7922type GetAccessPointPolicyInput struct {
7923	_ struct{} `locationName:"GetAccessPointPolicyRequest" type:"structure"`
7924
7925	// The account ID for the account that owns the specified access point.
7926	//
7927	// AccountId is a required field
7928	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
7929
7930	// The name of the access point whose policy you want to retrieve.
7931	//
7932	// For using this parameter with Amazon S3 on Outposts with the REST API, you
7933	// must specify the name and the x-amz-outpost-id as well.
7934	//
7935	// For using this parameter with S3 on Outposts with the Amazon Web Services
7936	// SDK and CLI, you must specify the ARN of the access point accessed in the
7937	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
7938	// For example, to access the access point reports-ap through outpost my-outpost
7939	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
7940	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
7941	// The value must be URL encoded.
7942	//
7943	// Name is a required field
7944	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
7945}
7946
7947// String returns the string representation
7948func (s GetAccessPointPolicyInput) String() string {
7949	return awsutil.Prettify(s)
7950}
7951
7952// GoString returns the string representation
7953func (s GetAccessPointPolicyInput) GoString() string {
7954	return s.String()
7955}
7956
7957// Validate inspects the fields of the type to determine if they are valid.
7958func (s *GetAccessPointPolicyInput) Validate() error {
7959	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyInput"}
7960	if s.AccountId == nil {
7961		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7962	}
7963	if s.AccountId != nil && len(*s.AccountId) < 1 {
7964		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7965	}
7966	if s.Name == nil {
7967		invalidParams.Add(request.NewErrParamRequired("Name"))
7968	}
7969	if s.Name != nil && len(*s.Name) < 3 {
7970		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
7971	}
7972
7973	if invalidParams.Len() > 0 {
7974		return invalidParams
7975	}
7976	return nil
7977}
7978
7979// SetAccountId sets the AccountId field's value.
7980func (s *GetAccessPointPolicyInput) SetAccountId(v string) *GetAccessPointPolicyInput {
7981	s.AccountId = &v
7982	return s
7983}
7984
7985// SetName sets the Name field's value.
7986func (s *GetAccessPointPolicyInput) SetName(v string) *GetAccessPointPolicyInput {
7987	s.Name = &v
7988	return s
7989}
7990
7991func (s *GetAccessPointPolicyInput) hostLabels() map[string]string {
7992	return map[string]string{
7993		"AccountId": aws.StringValue(s.AccountId),
7994	}
7995}
7996
7997func (s *GetAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
7998	if s.Name == nil {
7999		return nil, fmt.Errorf("member Name is nil")
8000	}
8001	return parseEndpointARN(*s.Name)
8002}
8003
8004func (s *GetAccessPointPolicyInput) hasEndpointARN() bool {
8005	if s.Name == nil {
8006		return false
8007	}
8008	return arn.IsARN(*s.Name)
8009}
8010
8011// updateArnableField updates the value of the input field that
8012// takes an ARN as an input. This method is useful to backfill
8013// the parsed resource name from ARN into the input member.
8014// It returns a pointer to a modified copy of input and an error.
8015// Note that original input is not modified.
8016func (s GetAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
8017	if s.Name == nil {
8018		return nil, fmt.Errorf("member Name is nil")
8019	}
8020	s.Name = aws.String(v)
8021	return &s, nil
8022}
8023
8024// updateAccountID returns a pointer to a modified copy of input,
8025// if account id is not provided, we update the account id in modified input
8026// if account id is provided, but doesn't match with the one in ARN, we throw an error
8027// if account id is not updated, we return nil. Note that original input is not modified.
8028func (s GetAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
8029	if s.AccountId == nil {
8030		s.AccountId = aws.String(accountId)
8031		return &s, nil
8032	} else if *s.AccountId != accountId {
8033		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8034	}
8035	return nil, nil
8036}
8037
8038type GetAccessPointPolicyOutput struct {
8039	_ struct{} `type:"structure"`
8040
8041	// The access point policy associated with the specified access point.
8042	Policy *string `type:"string"`
8043}
8044
8045// String returns the string representation
8046func (s GetAccessPointPolicyOutput) String() string {
8047	return awsutil.Prettify(s)
8048}
8049
8050// GoString returns the string representation
8051func (s GetAccessPointPolicyOutput) GoString() string {
8052	return s.String()
8053}
8054
8055// SetPolicy sets the Policy field's value.
8056func (s *GetAccessPointPolicyOutput) SetPolicy(v string) *GetAccessPointPolicyOutput {
8057	s.Policy = &v
8058	return s
8059}
8060
8061type GetAccessPointPolicyStatusForObjectLambdaInput struct {
8062	_ struct{} `locationName:"GetAccessPointPolicyStatusForObjectLambdaRequest" type:"structure"`
8063
8064	// The account ID for the account that owns the specified Object Lambda Access
8065	// Point.
8066	//
8067	// AccountId is a required field
8068	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8069
8070	// The name of the Object Lambda Access Point.
8071	//
8072	// Name is a required field
8073	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8074}
8075
8076// String returns the string representation
8077func (s GetAccessPointPolicyStatusForObjectLambdaInput) String() string {
8078	return awsutil.Prettify(s)
8079}
8080
8081// GoString returns the string representation
8082func (s GetAccessPointPolicyStatusForObjectLambdaInput) GoString() string {
8083	return s.String()
8084}
8085
8086// Validate inspects the fields of the type to determine if they are valid.
8087func (s *GetAccessPointPolicyStatusForObjectLambdaInput) Validate() error {
8088	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusForObjectLambdaInput"}
8089	if s.AccountId == nil {
8090		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8091	}
8092	if s.AccountId != nil && len(*s.AccountId) < 1 {
8093		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8094	}
8095	if s.Name == nil {
8096		invalidParams.Add(request.NewErrParamRequired("Name"))
8097	}
8098	if s.Name != nil && len(*s.Name) < 3 {
8099		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
8100	}
8101
8102	if invalidParams.Len() > 0 {
8103		return invalidParams
8104	}
8105	return nil
8106}
8107
8108// SetAccountId sets the AccountId field's value.
8109func (s *GetAccessPointPolicyStatusForObjectLambdaInput) SetAccountId(v string) *GetAccessPointPolicyStatusForObjectLambdaInput {
8110	s.AccountId = &v
8111	return s
8112}
8113
8114// SetName sets the Name field's value.
8115func (s *GetAccessPointPolicyStatusForObjectLambdaInput) SetName(v string) *GetAccessPointPolicyStatusForObjectLambdaInput {
8116	s.Name = &v
8117	return s
8118}
8119
8120func (s *GetAccessPointPolicyStatusForObjectLambdaInput) hostLabels() map[string]string {
8121	return map[string]string{
8122		"AccountId": aws.StringValue(s.AccountId),
8123	}
8124}
8125
8126type GetAccessPointPolicyStatusForObjectLambdaOutput struct {
8127	_ struct{} `type:"structure"`
8128
8129	// Indicates whether this access point policy is public. For more information
8130	// about how Amazon S3 evaluates policies to determine whether they are public,
8131	// 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)
8132	// in the Amazon S3 User Guide.
8133	PolicyStatus *PolicyStatus `type:"structure"`
8134}
8135
8136// String returns the string representation
8137func (s GetAccessPointPolicyStatusForObjectLambdaOutput) String() string {
8138	return awsutil.Prettify(s)
8139}
8140
8141// GoString returns the string representation
8142func (s GetAccessPointPolicyStatusForObjectLambdaOutput) GoString() string {
8143	return s.String()
8144}
8145
8146// SetPolicyStatus sets the PolicyStatus field's value.
8147func (s *GetAccessPointPolicyStatusForObjectLambdaOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusForObjectLambdaOutput {
8148	s.PolicyStatus = v
8149	return s
8150}
8151
8152type GetAccessPointPolicyStatusInput struct {
8153	_ struct{} `locationName:"GetAccessPointPolicyStatusRequest" type:"structure"`
8154
8155	// The account ID for the account that owns the specified access point.
8156	//
8157	// AccountId is a required field
8158	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8159
8160	// The name of the access point whose policy status you want to retrieve.
8161	//
8162	// Name is a required field
8163	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8164}
8165
8166// String returns the string representation
8167func (s GetAccessPointPolicyStatusInput) String() string {
8168	return awsutil.Prettify(s)
8169}
8170
8171// GoString returns the string representation
8172func (s GetAccessPointPolicyStatusInput) GoString() string {
8173	return s.String()
8174}
8175
8176// Validate inspects the fields of the type to determine if they are valid.
8177func (s *GetAccessPointPolicyStatusInput) Validate() error {
8178	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusInput"}
8179	if s.AccountId == nil {
8180		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8181	}
8182	if s.AccountId != nil && len(*s.AccountId) < 1 {
8183		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8184	}
8185	if s.Name == nil {
8186		invalidParams.Add(request.NewErrParamRequired("Name"))
8187	}
8188	if s.Name != nil && len(*s.Name) < 3 {
8189		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
8190	}
8191
8192	if invalidParams.Len() > 0 {
8193		return invalidParams
8194	}
8195	return nil
8196}
8197
8198// SetAccountId sets the AccountId field's value.
8199func (s *GetAccessPointPolicyStatusInput) SetAccountId(v string) *GetAccessPointPolicyStatusInput {
8200	s.AccountId = &v
8201	return s
8202}
8203
8204// SetName sets the Name field's value.
8205func (s *GetAccessPointPolicyStatusInput) SetName(v string) *GetAccessPointPolicyStatusInput {
8206	s.Name = &v
8207	return s
8208}
8209
8210func (s *GetAccessPointPolicyStatusInput) hostLabels() map[string]string {
8211	return map[string]string{
8212		"AccountId": aws.StringValue(s.AccountId),
8213	}
8214}
8215
8216type GetAccessPointPolicyStatusOutput struct {
8217	_ struct{} `type:"structure"`
8218
8219	// Indicates the current policy status of the specified access point.
8220	PolicyStatus *PolicyStatus `type:"structure"`
8221}
8222
8223// String returns the string representation
8224func (s GetAccessPointPolicyStatusOutput) String() string {
8225	return awsutil.Prettify(s)
8226}
8227
8228// GoString returns the string representation
8229func (s GetAccessPointPolicyStatusOutput) GoString() string {
8230	return s.String()
8231}
8232
8233// SetPolicyStatus sets the PolicyStatus field's value.
8234func (s *GetAccessPointPolicyStatusOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusOutput {
8235	s.PolicyStatus = v
8236	return s
8237}
8238
8239type GetBucketInput struct {
8240	_ struct{} `locationName:"GetBucketRequest" type:"structure"`
8241
8242	// The account ID of the Outposts bucket.
8243	//
8244	// AccountId is a required field
8245	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8246
8247	// Specifies the bucket.
8248	//
8249	// For using this parameter with Amazon S3 on Outposts with the REST API, you
8250	// must specify the name and the x-amz-outpost-id as well.
8251	//
8252	// For using this parameter with S3 on Outposts with the Amazon Web Services
8253	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
8254	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
8255	// For example, to access the bucket reports through outpost my-outpost owned
8256	// 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.
8257	// The value must be URL encoded.
8258	//
8259	// Bucket is a required field
8260	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8261}
8262
8263// String returns the string representation
8264func (s GetBucketInput) String() string {
8265	return awsutil.Prettify(s)
8266}
8267
8268// GoString returns the string representation
8269func (s GetBucketInput) GoString() string {
8270	return s.String()
8271}
8272
8273// Validate inspects the fields of the type to determine if they are valid.
8274func (s *GetBucketInput) Validate() error {
8275	invalidParams := request.ErrInvalidParams{Context: "GetBucketInput"}
8276	if s.AccountId == nil {
8277		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8278	}
8279	if s.AccountId != nil && len(*s.AccountId) < 1 {
8280		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8281	}
8282	if s.Bucket == nil {
8283		invalidParams.Add(request.NewErrParamRequired("Bucket"))
8284	}
8285	if s.Bucket != nil && len(*s.Bucket) < 3 {
8286		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
8287	}
8288
8289	if invalidParams.Len() > 0 {
8290		return invalidParams
8291	}
8292	return nil
8293}
8294
8295// SetAccountId sets the AccountId field's value.
8296func (s *GetBucketInput) SetAccountId(v string) *GetBucketInput {
8297	s.AccountId = &v
8298	return s
8299}
8300
8301// SetBucket sets the Bucket field's value.
8302func (s *GetBucketInput) SetBucket(v string) *GetBucketInput {
8303	s.Bucket = &v
8304	return s
8305}
8306
8307func (s *GetBucketInput) hostLabels() map[string]string {
8308	return map[string]string{
8309		"AccountId": aws.StringValue(s.AccountId),
8310	}
8311}
8312
8313func (s *GetBucketInput) getEndpointARN() (arn.Resource, error) {
8314	if s.Bucket == nil {
8315		return nil, fmt.Errorf("member Bucket is nil")
8316	}
8317	return parseEndpointARN(*s.Bucket)
8318}
8319
8320func (s *GetBucketInput) hasEndpointARN() bool {
8321	if s.Bucket == nil {
8322		return false
8323	}
8324	return arn.IsARN(*s.Bucket)
8325}
8326
8327// updateArnableField updates the value of the input field that
8328// takes an ARN as an input. This method is useful to backfill
8329// the parsed resource name from ARN into the input member.
8330// It returns a pointer to a modified copy of input and an error.
8331// Note that original input is not modified.
8332func (s GetBucketInput) updateArnableField(v string) (interface{}, error) {
8333	if s.Bucket == nil {
8334		return nil, fmt.Errorf("member Bucket is nil")
8335	}
8336	s.Bucket = aws.String(v)
8337	return &s, nil
8338}
8339
8340// updateAccountID returns a pointer to a modified copy of input,
8341// if account id is not provided, we update the account id in modified input
8342// if account id is provided, but doesn't match with the one in ARN, we throw an error
8343// if account id is not updated, we return nil. Note that original input is not modified.
8344func (s GetBucketInput) updateAccountID(accountId string) (interface{}, error) {
8345	if s.AccountId == nil {
8346		s.AccountId = aws.String(accountId)
8347		return &s, nil
8348	} else if *s.AccountId != accountId {
8349		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8350	}
8351	return nil, nil
8352}
8353
8354type GetBucketLifecycleConfigurationInput struct {
8355	_ struct{} `locationName:"GetBucketLifecycleConfigurationRequest" type:"structure"`
8356
8357	// The account ID of the Outposts bucket.
8358	//
8359	// AccountId is a required field
8360	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8361
8362	// The Amazon Resource Name (ARN) of the bucket.
8363	//
8364	// For using this parameter with Amazon S3 on Outposts with the REST API, you
8365	// must specify the name and the x-amz-outpost-id as well.
8366	//
8367	// For using this parameter with S3 on Outposts with the Amazon Web Services
8368	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
8369	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
8370	// For example, to access the bucket reports through outpost my-outpost owned
8371	// 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.
8372	// The value must be URL encoded.
8373	//
8374	// Bucket is a required field
8375	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8376}
8377
8378// String returns the string representation
8379func (s GetBucketLifecycleConfigurationInput) String() string {
8380	return awsutil.Prettify(s)
8381}
8382
8383// GoString returns the string representation
8384func (s GetBucketLifecycleConfigurationInput) GoString() string {
8385	return s.String()
8386}
8387
8388// Validate inspects the fields of the type to determine if they are valid.
8389func (s *GetBucketLifecycleConfigurationInput) Validate() error {
8390	invalidParams := request.ErrInvalidParams{Context: "GetBucketLifecycleConfigurationInput"}
8391	if s.AccountId == nil {
8392		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8393	}
8394	if s.AccountId != nil && len(*s.AccountId) < 1 {
8395		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8396	}
8397	if s.Bucket == nil {
8398		invalidParams.Add(request.NewErrParamRequired("Bucket"))
8399	}
8400	if s.Bucket != nil && len(*s.Bucket) < 3 {
8401		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
8402	}
8403
8404	if invalidParams.Len() > 0 {
8405		return invalidParams
8406	}
8407	return nil
8408}
8409
8410// SetAccountId sets the AccountId field's value.
8411func (s *GetBucketLifecycleConfigurationInput) SetAccountId(v string) *GetBucketLifecycleConfigurationInput {
8412	s.AccountId = &v
8413	return s
8414}
8415
8416// SetBucket sets the Bucket field's value.
8417func (s *GetBucketLifecycleConfigurationInput) SetBucket(v string) *GetBucketLifecycleConfigurationInput {
8418	s.Bucket = &v
8419	return s
8420}
8421
8422func (s *GetBucketLifecycleConfigurationInput) hostLabels() map[string]string {
8423	return map[string]string{
8424		"AccountId": aws.StringValue(s.AccountId),
8425	}
8426}
8427
8428func (s *GetBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
8429	if s.Bucket == nil {
8430		return nil, fmt.Errorf("member Bucket is nil")
8431	}
8432	return parseEndpointARN(*s.Bucket)
8433}
8434
8435func (s *GetBucketLifecycleConfigurationInput) hasEndpointARN() bool {
8436	if s.Bucket == nil {
8437		return false
8438	}
8439	return arn.IsARN(*s.Bucket)
8440}
8441
8442// updateArnableField updates the value of the input field that
8443// takes an ARN as an input. This method is useful to backfill
8444// the parsed resource name from ARN into the input member.
8445// It returns a pointer to a modified copy of input and an error.
8446// Note that original input is not modified.
8447func (s GetBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
8448	if s.Bucket == nil {
8449		return nil, fmt.Errorf("member Bucket is nil")
8450	}
8451	s.Bucket = aws.String(v)
8452	return &s, nil
8453}
8454
8455// updateAccountID returns a pointer to a modified copy of input,
8456// if account id is not provided, we update the account id in modified input
8457// if account id is provided, but doesn't match with the one in ARN, we throw an error
8458// if account id is not updated, we return nil. Note that original input is not modified.
8459func (s GetBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
8460	if s.AccountId == nil {
8461		s.AccountId = aws.String(accountId)
8462		return &s, nil
8463	} else if *s.AccountId != accountId {
8464		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8465	}
8466	return nil, nil
8467}
8468
8469type GetBucketLifecycleConfigurationOutput struct {
8470	_ struct{} `type:"structure"`
8471
8472	// Container for the lifecycle rule of the Outposts bucket.
8473	Rules []*LifecycleRule `locationNameList:"Rule" type:"list"`
8474}
8475
8476// String returns the string representation
8477func (s GetBucketLifecycleConfigurationOutput) String() string {
8478	return awsutil.Prettify(s)
8479}
8480
8481// GoString returns the string representation
8482func (s GetBucketLifecycleConfigurationOutput) GoString() string {
8483	return s.String()
8484}
8485
8486// SetRules sets the Rules field's value.
8487func (s *GetBucketLifecycleConfigurationOutput) SetRules(v []*LifecycleRule) *GetBucketLifecycleConfigurationOutput {
8488	s.Rules = v
8489	return s
8490}
8491
8492type GetBucketOutput struct {
8493	_ struct{} `type:"structure"`
8494
8495	// The Outposts bucket requested.
8496	Bucket *string `min:"3" type:"string"`
8497
8498	// The creation date of the Outposts bucket.
8499	CreationDate *time.Time `type:"timestamp"`
8500
8501	PublicAccessBlockEnabled *bool `type:"boolean"`
8502}
8503
8504// String returns the string representation
8505func (s GetBucketOutput) String() string {
8506	return awsutil.Prettify(s)
8507}
8508
8509// GoString returns the string representation
8510func (s GetBucketOutput) GoString() string {
8511	return s.String()
8512}
8513
8514// SetBucket sets the Bucket field's value.
8515func (s *GetBucketOutput) SetBucket(v string) *GetBucketOutput {
8516	s.Bucket = &v
8517	return s
8518}
8519
8520// SetCreationDate sets the CreationDate field's value.
8521func (s *GetBucketOutput) SetCreationDate(v time.Time) *GetBucketOutput {
8522	s.CreationDate = &v
8523	return s
8524}
8525
8526// SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value.
8527func (s *GetBucketOutput) SetPublicAccessBlockEnabled(v bool) *GetBucketOutput {
8528	s.PublicAccessBlockEnabled = &v
8529	return s
8530}
8531
8532type GetBucketPolicyInput struct {
8533	_ struct{} `locationName:"GetBucketPolicyRequest" type:"structure"`
8534
8535	// The account ID of the Outposts bucket.
8536	//
8537	// AccountId is a required field
8538	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8539
8540	// Specifies the bucket.
8541	//
8542	// For using this parameter with Amazon S3 on Outposts with the REST API, you
8543	// must specify the name and the x-amz-outpost-id as well.
8544	//
8545	// For using this parameter with S3 on Outposts with the Amazon Web Services
8546	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
8547	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
8548	// For example, to access the bucket reports through outpost my-outpost owned
8549	// 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.
8550	// The value must be URL encoded.
8551	//
8552	// Bucket is a required field
8553	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8554}
8555
8556// String returns the string representation
8557func (s GetBucketPolicyInput) String() string {
8558	return awsutil.Prettify(s)
8559}
8560
8561// GoString returns the string representation
8562func (s GetBucketPolicyInput) GoString() string {
8563	return s.String()
8564}
8565
8566// Validate inspects the fields of the type to determine if they are valid.
8567func (s *GetBucketPolicyInput) Validate() error {
8568	invalidParams := request.ErrInvalidParams{Context: "GetBucketPolicyInput"}
8569	if s.AccountId == nil {
8570		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8571	}
8572	if s.AccountId != nil && len(*s.AccountId) < 1 {
8573		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8574	}
8575	if s.Bucket == nil {
8576		invalidParams.Add(request.NewErrParamRequired("Bucket"))
8577	}
8578	if s.Bucket != nil && len(*s.Bucket) < 3 {
8579		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
8580	}
8581
8582	if invalidParams.Len() > 0 {
8583		return invalidParams
8584	}
8585	return nil
8586}
8587
8588// SetAccountId sets the AccountId field's value.
8589func (s *GetBucketPolicyInput) SetAccountId(v string) *GetBucketPolicyInput {
8590	s.AccountId = &v
8591	return s
8592}
8593
8594// SetBucket sets the Bucket field's value.
8595func (s *GetBucketPolicyInput) SetBucket(v string) *GetBucketPolicyInput {
8596	s.Bucket = &v
8597	return s
8598}
8599
8600func (s *GetBucketPolicyInput) hostLabels() map[string]string {
8601	return map[string]string{
8602		"AccountId": aws.StringValue(s.AccountId),
8603	}
8604}
8605
8606func (s *GetBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
8607	if s.Bucket == nil {
8608		return nil, fmt.Errorf("member Bucket is nil")
8609	}
8610	return parseEndpointARN(*s.Bucket)
8611}
8612
8613func (s *GetBucketPolicyInput) hasEndpointARN() bool {
8614	if s.Bucket == nil {
8615		return false
8616	}
8617	return arn.IsARN(*s.Bucket)
8618}
8619
8620// updateArnableField updates the value of the input field that
8621// takes an ARN as an input. This method is useful to backfill
8622// the parsed resource name from ARN into the input member.
8623// It returns a pointer to a modified copy of input and an error.
8624// Note that original input is not modified.
8625func (s GetBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
8626	if s.Bucket == nil {
8627		return nil, fmt.Errorf("member Bucket is nil")
8628	}
8629	s.Bucket = aws.String(v)
8630	return &s, nil
8631}
8632
8633// updateAccountID returns a pointer to a modified copy of input,
8634// if account id is not provided, we update the account id in modified input
8635// if account id is provided, but doesn't match with the one in ARN, we throw an error
8636// if account id is not updated, we return nil. Note that original input is not modified.
8637func (s GetBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
8638	if s.AccountId == nil {
8639		s.AccountId = aws.String(accountId)
8640		return &s, nil
8641	} else if *s.AccountId != accountId {
8642		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8643	}
8644	return nil, nil
8645}
8646
8647type GetBucketPolicyOutput struct {
8648	_ struct{} `type:"structure"`
8649
8650	// The policy of the Outposts bucket.
8651	Policy *string `type:"string"`
8652}
8653
8654// String returns the string representation
8655func (s GetBucketPolicyOutput) String() string {
8656	return awsutil.Prettify(s)
8657}
8658
8659// GoString returns the string representation
8660func (s GetBucketPolicyOutput) GoString() string {
8661	return s.String()
8662}
8663
8664// SetPolicy sets the Policy field's value.
8665func (s *GetBucketPolicyOutput) SetPolicy(v string) *GetBucketPolicyOutput {
8666	s.Policy = &v
8667	return s
8668}
8669
8670type GetBucketTaggingInput struct {
8671	_ struct{} `locationName:"GetBucketTaggingRequest" type:"structure"`
8672
8673	// The account ID of the Outposts bucket.
8674	//
8675	// AccountId is a required field
8676	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8677
8678	// Specifies the bucket.
8679	//
8680	// For using this parameter with Amazon S3 on Outposts with the REST API, you
8681	// must specify the name and the x-amz-outpost-id as well.
8682	//
8683	// For using this parameter with S3 on Outposts with the Amazon Web Services
8684	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
8685	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
8686	// For example, to access the bucket reports through outpost my-outpost owned
8687	// 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.
8688	// The value must be URL encoded.
8689	//
8690	// Bucket is a required field
8691	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
8692}
8693
8694// String returns the string representation
8695func (s GetBucketTaggingInput) String() string {
8696	return awsutil.Prettify(s)
8697}
8698
8699// GoString returns the string representation
8700func (s GetBucketTaggingInput) GoString() string {
8701	return s.String()
8702}
8703
8704// Validate inspects the fields of the type to determine if they are valid.
8705func (s *GetBucketTaggingInput) Validate() error {
8706	invalidParams := request.ErrInvalidParams{Context: "GetBucketTaggingInput"}
8707	if s.AccountId == nil {
8708		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8709	}
8710	if s.AccountId != nil && len(*s.AccountId) < 1 {
8711		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8712	}
8713	if s.Bucket == nil {
8714		invalidParams.Add(request.NewErrParamRequired("Bucket"))
8715	}
8716	if s.Bucket != nil && len(*s.Bucket) < 3 {
8717		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
8718	}
8719
8720	if invalidParams.Len() > 0 {
8721		return invalidParams
8722	}
8723	return nil
8724}
8725
8726// SetAccountId sets the AccountId field's value.
8727func (s *GetBucketTaggingInput) SetAccountId(v string) *GetBucketTaggingInput {
8728	s.AccountId = &v
8729	return s
8730}
8731
8732// SetBucket sets the Bucket field's value.
8733func (s *GetBucketTaggingInput) SetBucket(v string) *GetBucketTaggingInput {
8734	s.Bucket = &v
8735	return s
8736}
8737
8738func (s *GetBucketTaggingInput) hostLabels() map[string]string {
8739	return map[string]string{
8740		"AccountId": aws.StringValue(s.AccountId),
8741	}
8742}
8743
8744func (s *GetBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
8745	if s.Bucket == nil {
8746		return nil, fmt.Errorf("member Bucket is nil")
8747	}
8748	return parseEndpointARN(*s.Bucket)
8749}
8750
8751func (s *GetBucketTaggingInput) hasEndpointARN() bool {
8752	if s.Bucket == nil {
8753		return false
8754	}
8755	return arn.IsARN(*s.Bucket)
8756}
8757
8758// updateArnableField updates the value of the input field that
8759// takes an ARN as an input. This method is useful to backfill
8760// the parsed resource name from ARN into the input member.
8761// It returns a pointer to a modified copy of input and an error.
8762// Note that original input is not modified.
8763func (s GetBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
8764	if s.Bucket == nil {
8765		return nil, fmt.Errorf("member Bucket is nil")
8766	}
8767	s.Bucket = aws.String(v)
8768	return &s, nil
8769}
8770
8771// updateAccountID returns a pointer to a modified copy of input,
8772// if account id is not provided, we update the account id in modified input
8773// if account id is provided, but doesn't match with the one in ARN, we throw an error
8774// if account id is not updated, we return nil. Note that original input is not modified.
8775func (s GetBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
8776	if s.AccountId == nil {
8777		s.AccountId = aws.String(accountId)
8778		return &s, nil
8779	} else if *s.AccountId != accountId {
8780		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
8781	}
8782	return nil, nil
8783}
8784
8785type GetBucketTaggingOutput struct {
8786	_ struct{} `type:"structure"`
8787
8788	// The tags set of the Outposts bucket.
8789	//
8790	// TagSet is a required field
8791	TagSet []*S3Tag `type:"list" required:"true"`
8792}
8793
8794// String returns the string representation
8795func (s GetBucketTaggingOutput) String() string {
8796	return awsutil.Prettify(s)
8797}
8798
8799// GoString returns the string representation
8800func (s GetBucketTaggingOutput) GoString() string {
8801	return s.String()
8802}
8803
8804// SetTagSet sets the TagSet field's value.
8805func (s *GetBucketTaggingOutput) SetTagSet(v []*S3Tag) *GetBucketTaggingOutput {
8806	s.TagSet = v
8807	return s
8808}
8809
8810type GetJobTaggingInput struct {
8811	_ struct{} `locationName:"GetJobTaggingRequest" type:"structure"`
8812
8813	// The account ID associated with the S3 Batch Operations job.
8814	//
8815	// AccountId is a required field
8816	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8817
8818	// The ID for the S3 Batch Operations job whose tags you want to retrieve.
8819	//
8820	// JobId is a required field
8821	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
8822}
8823
8824// String returns the string representation
8825func (s GetJobTaggingInput) String() string {
8826	return awsutil.Prettify(s)
8827}
8828
8829// GoString returns the string representation
8830func (s GetJobTaggingInput) GoString() string {
8831	return s.String()
8832}
8833
8834// Validate inspects the fields of the type to determine if they are valid.
8835func (s *GetJobTaggingInput) Validate() error {
8836	invalidParams := request.ErrInvalidParams{Context: "GetJobTaggingInput"}
8837	if s.AccountId == nil {
8838		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8839	}
8840	if s.AccountId != nil && len(*s.AccountId) < 1 {
8841		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8842	}
8843	if s.JobId == nil {
8844		invalidParams.Add(request.NewErrParamRequired("JobId"))
8845	}
8846	if s.JobId != nil && len(*s.JobId) < 5 {
8847		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
8848	}
8849
8850	if invalidParams.Len() > 0 {
8851		return invalidParams
8852	}
8853	return nil
8854}
8855
8856// SetAccountId sets the AccountId field's value.
8857func (s *GetJobTaggingInput) SetAccountId(v string) *GetJobTaggingInput {
8858	s.AccountId = &v
8859	return s
8860}
8861
8862// SetJobId sets the JobId field's value.
8863func (s *GetJobTaggingInput) SetJobId(v string) *GetJobTaggingInput {
8864	s.JobId = &v
8865	return s
8866}
8867
8868func (s *GetJobTaggingInput) hostLabels() map[string]string {
8869	return map[string]string{
8870		"AccountId": aws.StringValue(s.AccountId),
8871	}
8872}
8873
8874type GetJobTaggingOutput struct {
8875	_ struct{} `type:"structure"`
8876
8877	// The set of tags associated with the S3 Batch Operations job.
8878	Tags []*S3Tag `type:"list"`
8879}
8880
8881// String returns the string representation
8882func (s GetJobTaggingOutput) String() string {
8883	return awsutil.Prettify(s)
8884}
8885
8886// GoString returns the string representation
8887func (s GetJobTaggingOutput) GoString() string {
8888	return s.String()
8889}
8890
8891// SetTags sets the Tags field's value.
8892func (s *GetJobTaggingOutput) SetTags(v []*S3Tag) *GetJobTaggingOutput {
8893	s.Tags = v
8894	return s
8895}
8896
8897type GetPublicAccessBlockInput struct {
8898	_ struct{} `locationName:"GetPublicAccessBlockRequest" type:"structure"`
8899
8900	// The account ID for the account whose PublicAccessBlock configuration you
8901	// want to retrieve.
8902	//
8903	// AccountId is a required field
8904	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8905}
8906
8907// String returns the string representation
8908func (s GetPublicAccessBlockInput) String() string {
8909	return awsutil.Prettify(s)
8910}
8911
8912// GoString returns the string representation
8913func (s GetPublicAccessBlockInput) GoString() string {
8914	return s.String()
8915}
8916
8917// Validate inspects the fields of the type to determine if they are valid.
8918func (s *GetPublicAccessBlockInput) Validate() error {
8919	invalidParams := request.ErrInvalidParams{Context: "GetPublicAccessBlockInput"}
8920	if s.AccountId == nil {
8921		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8922	}
8923	if s.AccountId != nil && len(*s.AccountId) < 1 {
8924		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8925	}
8926
8927	if invalidParams.Len() > 0 {
8928		return invalidParams
8929	}
8930	return nil
8931}
8932
8933// SetAccountId sets the AccountId field's value.
8934func (s *GetPublicAccessBlockInput) SetAccountId(v string) *GetPublicAccessBlockInput {
8935	s.AccountId = &v
8936	return s
8937}
8938
8939func (s *GetPublicAccessBlockInput) hostLabels() map[string]string {
8940	return map[string]string{
8941		"AccountId": aws.StringValue(s.AccountId),
8942	}
8943}
8944
8945type GetPublicAccessBlockOutput struct {
8946	_ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"`
8947
8948	// The PublicAccessBlock configuration currently in effect for this account.
8949	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
8950}
8951
8952// String returns the string representation
8953func (s GetPublicAccessBlockOutput) String() string {
8954	return awsutil.Prettify(s)
8955}
8956
8957// GoString returns the string representation
8958func (s GetPublicAccessBlockOutput) GoString() string {
8959	return s.String()
8960}
8961
8962// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
8963func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetPublicAccessBlockOutput {
8964	s.PublicAccessBlockConfiguration = v
8965	return s
8966}
8967
8968type GetStorageLensConfigurationInput struct {
8969	_ struct{} `locationName:"GetStorageLensConfigurationRequest" type:"structure"`
8970
8971	// The account ID of the requester.
8972	//
8973	// AccountId is a required field
8974	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
8975
8976	// The ID of the Amazon S3 Storage Lens configuration.
8977	//
8978	// ConfigId is a required field
8979	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
8980}
8981
8982// String returns the string representation
8983func (s GetStorageLensConfigurationInput) String() string {
8984	return awsutil.Prettify(s)
8985}
8986
8987// GoString returns the string representation
8988func (s GetStorageLensConfigurationInput) GoString() string {
8989	return s.String()
8990}
8991
8992// Validate inspects the fields of the type to determine if they are valid.
8993func (s *GetStorageLensConfigurationInput) Validate() error {
8994	invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationInput"}
8995	if s.AccountId == nil {
8996		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8997	}
8998	if s.AccountId != nil && len(*s.AccountId) < 1 {
8999		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9000	}
9001	if s.ConfigId == nil {
9002		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
9003	}
9004	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
9005		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
9006	}
9007
9008	if invalidParams.Len() > 0 {
9009		return invalidParams
9010	}
9011	return nil
9012}
9013
9014// SetAccountId sets the AccountId field's value.
9015func (s *GetStorageLensConfigurationInput) SetAccountId(v string) *GetStorageLensConfigurationInput {
9016	s.AccountId = &v
9017	return s
9018}
9019
9020// SetConfigId sets the ConfigId field's value.
9021func (s *GetStorageLensConfigurationInput) SetConfigId(v string) *GetStorageLensConfigurationInput {
9022	s.ConfigId = &v
9023	return s
9024}
9025
9026func (s *GetStorageLensConfigurationInput) hostLabels() map[string]string {
9027	return map[string]string{
9028		"AccountId": aws.StringValue(s.AccountId),
9029	}
9030}
9031
9032type GetStorageLensConfigurationOutput struct {
9033	_ struct{} `type:"structure" payload:"StorageLensConfiguration"`
9034
9035	// The S3 Storage Lens configuration requested.
9036	StorageLensConfiguration *StorageLensConfiguration `type:"structure"`
9037}
9038
9039// String returns the string representation
9040func (s GetStorageLensConfigurationOutput) String() string {
9041	return awsutil.Prettify(s)
9042}
9043
9044// GoString returns the string representation
9045func (s GetStorageLensConfigurationOutput) GoString() string {
9046	return s.String()
9047}
9048
9049// SetStorageLensConfiguration sets the StorageLensConfiguration field's value.
9050func (s *GetStorageLensConfigurationOutput) SetStorageLensConfiguration(v *StorageLensConfiguration) *GetStorageLensConfigurationOutput {
9051	s.StorageLensConfiguration = v
9052	return s
9053}
9054
9055type GetStorageLensConfigurationTaggingInput struct {
9056	_ struct{} `locationName:"GetStorageLensConfigurationTaggingRequest" type:"structure"`
9057
9058	// The account ID of the requester.
9059	//
9060	// AccountId is a required field
9061	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
9062
9063	// The ID of the Amazon S3 Storage Lens configuration.
9064	//
9065	// ConfigId is a required field
9066	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
9067}
9068
9069// String returns the string representation
9070func (s GetStorageLensConfigurationTaggingInput) String() string {
9071	return awsutil.Prettify(s)
9072}
9073
9074// GoString returns the string representation
9075func (s GetStorageLensConfigurationTaggingInput) GoString() string {
9076	return s.String()
9077}
9078
9079// Validate inspects the fields of the type to determine if they are valid.
9080func (s *GetStorageLensConfigurationTaggingInput) Validate() error {
9081	invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationTaggingInput"}
9082	if s.AccountId == nil {
9083		invalidParams.Add(request.NewErrParamRequired("AccountId"))
9084	}
9085	if s.AccountId != nil && len(*s.AccountId) < 1 {
9086		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
9087	}
9088	if s.ConfigId == nil {
9089		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
9090	}
9091	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
9092		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
9093	}
9094
9095	if invalidParams.Len() > 0 {
9096		return invalidParams
9097	}
9098	return nil
9099}
9100
9101// SetAccountId sets the AccountId field's value.
9102func (s *GetStorageLensConfigurationTaggingInput) SetAccountId(v string) *GetStorageLensConfigurationTaggingInput {
9103	s.AccountId = &v
9104	return s
9105}
9106
9107// SetConfigId sets the ConfigId field's value.
9108func (s *GetStorageLensConfigurationTaggingInput) SetConfigId(v string) *GetStorageLensConfigurationTaggingInput {
9109	s.ConfigId = &v
9110	return s
9111}
9112
9113func (s *GetStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
9114	return map[string]string{
9115		"AccountId": aws.StringValue(s.AccountId),
9116	}
9117}
9118
9119type GetStorageLensConfigurationTaggingOutput struct {
9120	_ struct{} `type:"structure"`
9121
9122	// The tags of S3 Storage Lens configuration requested.
9123	Tags []*StorageLensTag `locationNameList:"Tag" type:"list"`
9124}
9125
9126// String returns the string representation
9127func (s GetStorageLensConfigurationTaggingOutput) String() string {
9128	return awsutil.Prettify(s)
9129}
9130
9131// GoString returns the string representation
9132func (s GetStorageLensConfigurationTaggingOutput) GoString() string {
9133	return s.String()
9134}
9135
9136// SetTags sets the Tags field's value.
9137func (s *GetStorageLensConfigurationTaggingOutput) SetTags(v []*StorageLensTag) *GetStorageLensConfigurationTaggingOutput {
9138	s.Tags = v
9139	return s
9140}
9141
9142// A container for what Amazon S3 Storage Lens configuration includes.
9143type Include struct {
9144	_ struct{} `type:"structure"`
9145
9146	// A container for the S3 Storage Lens bucket includes.
9147	Buckets []*string `locationNameList:"Arn" type:"list"`
9148
9149	// A container for the S3 Storage Lens Region includes.
9150	Regions []*string `locationNameList:"Region" type:"list"`
9151}
9152
9153// String returns the string representation
9154func (s Include) String() string {
9155	return awsutil.Prettify(s)
9156}
9157
9158// GoString returns the string representation
9159func (s Include) GoString() string {
9160	return s.String()
9161}
9162
9163// SetBuckets sets the Buckets field's value.
9164func (s *Include) SetBuckets(v []*string) *Include {
9165	s.Buckets = v
9166	return s
9167}
9168
9169// SetRegions sets the Regions field's value.
9170func (s *Include) SetRegions(v []*string) *Include {
9171	s.Regions = v
9172	return s
9173}
9174
9175// A container element for the job configuration and status information returned
9176// by a Describe Job request.
9177type JobDescriptor struct {
9178	_ struct{} `type:"structure"`
9179
9180	// Indicates whether confirmation is required before Amazon S3 begins running
9181	// the specified job. Confirmation is required only for jobs created through
9182	// the Amazon S3 console.
9183	ConfirmationRequired *bool `type:"boolean"`
9184
9185	// A timestamp indicating when this job was created.
9186	CreationTime *time.Time `type:"timestamp"`
9187
9188	// The description for this job, if one was provided in this job's Create Job
9189	// request.
9190	Description *string `min:"1" type:"string"`
9191
9192	// If the specified job failed, this field contains information describing the
9193	// failure.
9194	FailureReasons []*JobFailure `type:"list"`
9195
9196	// The Amazon Resource Name (ARN) for this job.
9197	JobArn *string `min:"1" type:"string"`
9198
9199	// The ID for the specified job.
9200	JobId *string `min:"5" type:"string"`
9201
9202	// The configuration information for the specified job's manifest object.
9203	Manifest *JobManifest `type:"structure"`
9204
9205	// The operation that the specified job is configured to run on the objects
9206	// listed in the manifest.
9207	Operation *JobOperation `type:"structure"`
9208
9209	// The priority of the specified job.
9210	Priority *int64 `type:"integer"`
9211
9212	// Describes the total number of tasks that the specified job has run, the number
9213	// of tasks that succeeded, and the number of tasks that failed.
9214	ProgressSummary *JobProgressSummary `type:"structure"`
9215
9216	// Contains the configuration information for the job-completion report if you
9217	// requested one in the Create Job request.
9218	Report *JobReport `type:"structure"`
9219
9220	// The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
9221	// role assigned to run the tasks for this job.
9222	RoleArn *string `min:"1" type:"string"`
9223
9224	// The current status of the specified job.
9225	Status *string `type:"string" enum:"JobStatus"`
9226
9227	// The reason for updating the job.
9228	StatusUpdateReason *string `min:"1" type:"string"`
9229
9230	// The reason why the specified job was suspended. A job is only suspended if
9231	// you create it through the Amazon S3 console. When you create the job, it
9232	// enters the Suspended state to await confirmation before running. After you
9233	// confirm the job, it automatically exits the Suspended state.
9234	SuspendedCause *string `min:"1" type:"string"`
9235
9236	// The timestamp when this job was suspended, if it has been suspended.
9237	SuspendedDate *time.Time `type:"timestamp"`
9238
9239	// A timestamp indicating when this job terminated. A job's termination date
9240	// is the date and time when it succeeded, failed, or was canceled.
9241	TerminationDate *time.Time `type:"timestamp"`
9242}
9243
9244// String returns the string representation
9245func (s JobDescriptor) String() string {
9246	return awsutil.Prettify(s)
9247}
9248
9249// GoString returns the string representation
9250func (s JobDescriptor) GoString() string {
9251	return s.String()
9252}
9253
9254// SetConfirmationRequired sets the ConfirmationRequired field's value.
9255func (s *JobDescriptor) SetConfirmationRequired(v bool) *JobDescriptor {
9256	s.ConfirmationRequired = &v
9257	return s
9258}
9259
9260// SetCreationTime sets the CreationTime field's value.
9261func (s *JobDescriptor) SetCreationTime(v time.Time) *JobDescriptor {
9262	s.CreationTime = &v
9263	return s
9264}
9265
9266// SetDescription sets the Description field's value.
9267func (s *JobDescriptor) SetDescription(v string) *JobDescriptor {
9268	s.Description = &v
9269	return s
9270}
9271
9272// SetFailureReasons sets the FailureReasons field's value.
9273func (s *JobDescriptor) SetFailureReasons(v []*JobFailure) *JobDescriptor {
9274	s.FailureReasons = v
9275	return s
9276}
9277
9278// SetJobArn sets the JobArn field's value.
9279func (s *JobDescriptor) SetJobArn(v string) *JobDescriptor {
9280	s.JobArn = &v
9281	return s
9282}
9283
9284// SetJobId sets the JobId field's value.
9285func (s *JobDescriptor) SetJobId(v string) *JobDescriptor {
9286	s.JobId = &v
9287	return s
9288}
9289
9290// SetManifest sets the Manifest field's value.
9291func (s *JobDescriptor) SetManifest(v *JobManifest) *JobDescriptor {
9292	s.Manifest = v
9293	return s
9294}
9295
9296// SetOperation sets the Operation field's value.
9297func (s *JobDescriptor) SetOperation(v *JobOperation) *JobDescriptor {
9298	s.Operation = v
9299	return s
9300}
9301
9302// SetPriority sets the Priority field's value.
9303func (s *JobDescriptor) SetPriority(v int64) *JobDescriptor {
9304	s.Priority = &v
9305	return s
9306}
9307
9308// SetProgressSummary sets the ProgressSummary field's value.
9309func (s *JobDescriptor) SetProgressSummary(v *JobProgressSummary) *JobDescriptor {
9310	s.ProgressSummary = v
9311	return s
9312}
9313
9314// SetReport sets the Report field's value.
9315func (s *JobDescriptor) SetReport(v *JobReport) *JobDescriptor {
9316	s.Report = v
9317	return s
9318}
9319
9320// SetRoleArn sets the RoleArn field's value.
9321func (s *JobDescriptor) SetRoleArn(v string) *JobDescriptor {
9322	s.RoleArn = &v
9323	return s
9324}
9325
9326// SetStatus sets the Status field's value.
9327func (s *JobDescriptor) SetStatus(v string) *JobDescriptor {
9328	s.Status = &v
9329	return s
9330}
9331
9332// SetStatusUpdateReason sets the StatusUpdateReason field's value.
9333func (s *JobDescriptor) SetStatusUpdateReason(v string) *JobDescriptor {
9334	s.StatusUpdateReason = &v
9335	return s
9336}
9337
9338// SetSuspendedCause sets the SuspendedCause field's value.
9339func (s *JobDescriptor) SetSuspendedCause(v string) *JobDescriptor {
9340	s.SuspendedCause = &v
9341	return s
9342}
9343
9344// SetSuspendedDate sets the SuspendedDate field's value.
9345func (s *JobDescriptor) SetSuspendedDate(v time.Time) *JobDescriptor {
9346	s.SuspendedDate = &v
9347	return s
9348}
9349
9350// SetTerminationDate sets the TerminationDate field's value.
9351func (s *JobDescriptor) SetTerminationDate(v time.Time) *JobDescriptor {
9352	s.TerminationDate = &v
9353	return s
9354}
9355
9356// If this job failed, this element indicates why the job failed.
9357type JobFailure struct {
9358	_ struct{} `type:"structure"`
9359
9360	// The failure code, if any, for the specified job.
9361	FailureCode *string `min:"1" type:"string"`
9362
9363	// The failure reason, if any, for the specified job.
9364	FailureReason *string `min:"1" type:"string"`
9365}
9366
9367// String returns the string representation
9368func (s JobFailure) String() string {
9369	return awsutil.Prettify(s)
9370}
9371
9372// GoString returns the string representation
9373func (s JobFailure) GoString() string {
9374	return s.String()
9375}
9376
9377// SetFailureCode sets the FailureCode field's value.
9378func (s *JobFailure) SetFailureCode(v string) *JobFailure {
9379	s.FailureCode = &v
9380	return s
9381}
9382
9383// SetFailureReason sets the FailureReason field's value.
9384func (s *JobFailure) SetFailureReason(v string) *JobFailure {
9385	s.FailureReason = &v
9386	return s
9387}
9388
9389// Contains the configuration and status information for a single job retrieved
9390// as part of a job list.
9391type JobListDescriptor struct {
9392	_ struct{} `type:"structure"`
9393
9394	// A timestamp indicating when the specified job was created.
9395	CreationTime *time.Time `type:"timestamp"`
9396
9397	// The user-specified description that was included in the specified job's Create
9398	// Job request.
9399	Description *string `min:"1" type:"string"`
9400
9401	// The ID for the specified job.
9402	JobId *string `min:"5" type:"string"`
9403
9404	// The operation that the specified job is configured to run on every object
9405	// listed in the manifest.
9406	Operation *string `type:"string" enum:"OperationName"`
9407
9408	// The current priority for the specified job.
9409	Priority *int64 `type:"integer"`
9410
9411	// Describes the total number of tasks that the specified job has run, the number
9412	// of tasks that succeeded, and the number of tasks that failed.
9413	ProgressSummary *JobProgressSummary `type:"structure"`
9414
9415	// The specified job's current status.
9416	Status *string `type:"string" enum:"JobStatus"`
9417
9418	// A timestamp indicating when the specified job terminated. A job's termination
9419	// date is the date and time when it succeeded, failed, or was canceled.
9420	TerminationDate *time.Time `type:"timestamp"`
9421}
9422
9423// String returns the string representation
9424func (s JobListDescriptor) String() string {
9425	return awsutil.Prettify(s)
9426}
9427
9428// GoString returns the string representation
9429func (s JobListDescriptor) GoString() string {
9430	return s.String()
9431}
9432
9433// SetCreationTime sets the CreationTime field's value.
9434func (s *JobListDescriptor) SetCreationTime(v time.Time) *JobListDescriptor {
9435	s.CreationTime = &v
9436	return s
9437}
9438
9439// SetDescription sets the Description field's value.
9440func (s *JobListDescriptor) SetDescription(v string) *JobListDescriptor {
9441	s.Description = &v
9442	return s
9443}
9444
9445// SetJobId sets the JobId field's value.
9446func (s *JobListDescriptor) SetJobId(v string) *JobListDescriptor {
9447	s.JobId = &v
9448	return s
9449}
9450
9451// SetOperation sets the Operation field's value.
9452func (s *JobListDescriptor) SetOperation(v string) *JobListDescriptor {
9453	s.Operation = &v
9454	return s
9455}
9456
9457// SetPriority sets the Priority field's value.
9458func (s *JobListDescriptor) SetPriority(v int64) *JobListDescriptor {
9459	s.Priority = &v
9460	return s
9461}
9462
9463// SetProgressSummary sets the ProgressSummary field's value.
9464func (s *JobListDescriptor) SetProgressSummary(v *JobProgressSummary) *JobListDescriptor {
9465	s.ProgressSummary = v
9466	return s
9467}
9468
9469// SetStatus sets the Status field's value.
9470func (s *JobListDescriptor) SetStatus(v string) *JobListDescriptor {
9471	s.Status = &v
9472	return s
9473}
9474
9475// SetTerminationDate sets the TerminationDate field's value.
9476func (s *JobListDescriptor) SetTerminationDate(v time.Time) *JobListDescriptor {
9477	s.TerminationDate = &v
9478	return s
9479}
9480
9481// Contains the configuration information for a job's manifest.
9482type JobManifest struct {
9483	_ struct{} `type:"structure"`
9484
9485	// Contains the information required to locate the specified job's manifest.
9486	//
9487	// Location is a required field
9488	Location *JobManifestLocation `type:"structure" required:"true"`
9489
9490	// Describes the format of the specified job's manifest. If the manifest is
9491	// in CSV format, also describes the columns contained within the manifest.
9492	//
9493	// Spec is a required field
9494	Spec *JobManifestSpec `type:"structure" required:"true"`
9495}
9496
9497// String returns the string representation
9498func (s JobManifest) String() string {
9499	return awsutil.Prettify(s)
9500}
9501
9502// GoString returns the string representation
9503func (s JobManifest) GoString() string {
9504	return s.String()
9505}
9506
9507// Validate inspects the fields of the type to determine if they are valid.
9508func (s *JobManifest) Validate() error {
9509	invalidParams := request.ErrInvalidParams{Context: "JobManifest"}
9510	if s.Location == nil {
9511		invalidParams.Add(request.NewErrParamRequired("Location"))
9512	}
9513	if s.Spec == nil {
9514		invalidParams.Add(request.NewErrParamRequired("Spec"))
9515	}
9516	if s.Location != nil {
9517		if err := s.Location.Validate(); err != nil {
9518			invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
9519		}
9520	}
9521	if s.Spec != nil {
9522		if err := s.Spec.Validate(); err != nil {
9523			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
9524		}
9525	}
9526
9527	if invalidParams.Len() > 0 {
9528		return invalidParams
9529	}
9530	return nil
9531}
9532
9533// SetLocation sets the Location field's value.
9534func (s *JobManifest) SetLocation(v *JobManifestLocation) *JobManifest {
9535	s.Location = v
9536	return s
9537}
9538
9539// SetSpec sets the Spec field's value.
9540func (s *JobManifest) SetSpec(v *JobManifestSpec) *JobManifest {
9541	s.Spec = v
9542	return s
9543}
9544
9545// Contains the information required to locate a manifest object.
9546type JobManifestLocation struct {
9547	_ struct{} `type:"structure"`
9548
9549	// The ETag for the specified manifest object.
9550	//
9551	// ETag is a required field
9552	ETag *string `min:"1" type:"string" required:"true"`
9553
9554	// The Amazon Resource Name (ARN) for a manifest object.
9555	//
9556	// Replacement must be made for object keys containing special characters (such
9557	// as carriage returns) when using XML requests. For more information, see XML
9558	// related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
9559	//
9560	// ObjectArn is a required field
9561	ObjectArn *string `min:"1" type:"string" required:"true"`
9562
9563	// The optional version ID to identify a specific version of the manifest object.
9564	ObjectVersionId *string `min:"1" type:"string"`
9565}
9566
9567// String returns the string representation
9568func (s JobManifestLocation) String() string {
9569	return awsutil.Prettify(s)
9570}
9571
9572// GoString returns the string representation
9573func (s JobManifestLocation) GoString() string {
9574	return s.String()
9575}
9576
9577// Validate inspects the fields of the type to determine if they are valid.
9578func (s *JobManifestLocation) Validate() error {
9579	invalidParams := request.ErrInvalidParams{Context: "JobManifestLocation"}
9580	if s.ETag == nil {
9581		invalidParams.Add(request.NewErrParamRequired("ETag"))
9582	}
9583	if s.ETag != nil && len(*s.ETag) < 1 {
9584		invalidParams.Add(request.NewErrParamMinLen("ETag", 1))
9585	}
9586	if s.ObjectArn == nil {
9587		invalidParams.Add(request.NewErrParamRequired("ObjectArn"))
9588	}
9589	if s.ObjectArn != nil && len(*s.ObjectArn) < 1 {
9590		invalidParams.Add(request.NewErrParamMinLen("ObjectArn", 1))
9591	}
9592	if s.ObjectVersionId != nil && len(*s.ObjectVersionId) < 1 {
9593		invalidParams.Add(request.NewErrParamMinLen("ObjectVersionId", 1))
9594	}
9595
9596	if invalidParams.Len() > 0 {
9597		return invalidParams
9598	}
9599	return nil
9600}
9601
9602// SetETag sets the ETag field's value.
9603func (s *JobManifestLocation) SetETag(v string) *JobManifestLocation {
9604	s.ETag = &v
9605	return s
9606}
9607
9608// SetObjectArn sets the ObjectArn field's value.
9609func (s *JobManifestLocation) SetObjectArn(v string) *JobManifestLocation {
9610	s.ObjectArn = &v
9611	return s
9612}
9613
9614// SetObjectVersionId sets the ObjectVersionId field's value.
9615func (s *JobManifestLocation) SetObjectVersionId(v string) *JobManifestLocation {
9616	s.ObjectVersionId = &v
9617	return s
9618}
9619
9620// Describes the format of a manifest. If the manifest is in CSV format, also
9621// describes the columns contained within the manifest.
9622type JobManifestSpec struct {
9623	_ struct{} `type:"structure"`
9624
9625	// If the specified manifest object is in the S3BatchOperations_CSV_20180820
9626	// format, this element describes which columns contain the required data.
9627	Fields []*string `type:"list"`
9628
9629	// Indicates which of the available formats the specified manifest uses.
9630	//
9631	// Format is a required field
9632	Format *string `type:"string" required:"true" enum:"JobManifestFormat"`
9633}
9634
9635// String returns the string representation
9636func (s JobManifestSpec) String() string {
9637	return awsutil.Prettify(s)
9638}
9639
9640// GoString returns the string representation
9641func (s JobManifestSpec) GoString() string {
9642	return s.String()
9643}
9644
9645// Validate inspects the fields of the type to determine if they are valid.
9646func (s *JobManifestSpec) Validate() error {
9647	invalidParams := request.ErrInvalidParams{Context: "JobManifestSpec"}
9648	if s.Format == nil {
9649		invalidParams.Add(request.NewErrParamRequired("Format"))
9650	}
9651
9652	if invalidParams.Len() > 0 {
9653		return invalidParams
9654	}
9655	return nil
9656}
9657
9658// SetFields sets the Fields field's value.
9659func (s *JobManifestSpec) SetFields(v []*string) *JobManifestSpec {
9660	s.Fields = v
9661	return s
9662}
9663
9664// SetFormat sets the Format field's value.
9665func (s *JobManifestSpec) SetFormat(v string) *JobManifestSpec {
9666	s.Format = &v
9667	return s
9668}
9669
9670// The operation that you want this job to perform on every object listed in
9671// the manifest. For more information about the available operations, see Operations
9672// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html)
9673// in the Amazon S3 User Guide.
9674type JobOperation struct {
9675	_ struct{} `type:"structure"`
9676
9677	// Directs the specified job to invoke an Lambda function on every object in
9678	// the manifest.
9679	LambdaInvoke *LambdaInvokeOperation `type:"structure"`
9680
9681	// Directs the specified job to execute a DELETE Object tagging call on every
9682	// object in the manifest.
9683	S3DeleteObjectTagging *S3DeleteObjectTaggingOperation `type:"structure"`
9684
9685	// Directs the specified job to initiate restore requests for every archived
9686	// object in the manifest.
9687	S3InitiateRestoreObject *S3InitiateRestoreObjectOperation `type:"structure"`
9688
9689	// Directs the specified job to run a PUT Object acl call on every object in
9690	// the manifest.
9691	S3PutObjectAcl *S3SetObjectAclOperation `type:"structure"`
9692
9693	// Directs the specified job to run a PUT Copy object call on every object in
9694	// the manifest.
9695	S3PutObjectCopy *S3CopyObjectOperation `type:"structure"`
9696
9697	// Contains the configuration for an S3 Object Lock legal hold operation that
9698	// an S3 Batch Operations job passes every object to the underlying PutObjectLegalHold
9699	// API. For more information, see Using S3 Object Lock legal hold with S3 Batch
9700	// Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html)
9701	// in the Amazon S3 User Guide.
9702	S3PutObjectLegalHold *S3SetObjectLegalHoldOperation `type:"structure"`
9703
9704	// Contains the configuration parameters for the Object Lock retention action
9705	// for an S3 Batch Operations job. Batch Operations passes every object to the
9706	// underlying PutObjectRetention API. For more information, see Using S3 Object
9707	// Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
9708	// in the Amazon S3 User Guide.
9709	S3PutObjectRetention *S3SetObjectRetentionOperation `type:"structure"`
9710
9711	// Directs the specified job to run a PUT Object tagging call on every object
9712	// in the manifest.
9713	S3PutObjectTagging *S3SetObjectTaggingOperation `type:"structure"`
9714}
9715
9716// String returns the string representation
9717func (s JobOperation) String() string {
9718	return awsutil.Prettify(s)
9719}
9720
9721// GoString returns the string representation
9722func (s JobOperation) GoString() string {
9723	return s.String()
9724}
9725
9726// Validate inspects the fields of the type to determine if they are valid.
9727func (s *JobOperation) Validate() error {
9728	invalidParams := request.ErrInvalidParams{Context: "JobOperation"}
9729	if s.LambdaInvoke != nil {
9730		if err := s.LambdaInvoke.Validate(); err != nil {
9731			invalidParams.AddNested("LambdaInvoke", err.(request.ErrInvalidParams))
9732		}
9733	}
9734	if s.S3PutObjectAcl != nil {
9735		if err := s.S3PutObjectAcl.Validate(); err != nil {
9736			invalidParams.AddNested("S3PutObjectAcl", err.(request.ErrInvalidParams))
9737		}
9738	}
9739	if s.S3PutObjectCopy != nil {
9740		if err := s.S3PutObjectCopy.Validate(); err != nil {
9741			invalidParams.AddNested("S3PutObjectCopy", err.(request.ErrInvalidParams))
9742		}
9743	}
9744	if s.S3PutObjectLegalHold != nil {
9745		if err := s.S3PutObjectLegalHold.Validate(); err != nil {
9746			invalidParams.AddNested("S3PutObjectLegalHold", err.(request.ErrInvalidParams))
9747		}
9748	}
9749	if s.S3PutObjectRetention != nil {
9750		if err := s.S3PutObjectRetention.Validate(); err != nil {
9751			invalidParams.AddNested("S3PutObjectRetention", err.(request.ErrInvalidParams))
9752		}
9753	}
9754	if s.S3PutObjectTagging != nil {
9755		if err := s.S3PutObjectTagging.Validate(); err != nil {
9756			invalidParams.AddNested("S3PutObjectTagging", err.(request.ErrInvalidParams))
9757		}
9758	}
9759
9760	if invalidParams.Len() > 0 {
9761		return invalidParams
9762	}
9763	return nil
9764}
9765
9766// SetLambdaInvoke sets the LambdaInvoke field's value.
9767func (s *JobOperation) SetLambdaInvoke(v *LambdaInvokeOperation) *JobOperation {
9768	s.LambdaInvoke = v
9769	return s
9770}
9771
9772// SetS3DeleteObjectTagging sets the S3DeleteObjectTagging field's value.
9773func (s *JobOperation) SetS3DeleteObjectTagging(v *S3DeleteObjectTaggingOperation) *JobOperation {
9774	s.S3DeleteObjectTagging = v
9775	return s
9776}
9777
9778// SetS3InitiateRestoreObject sets the S3InitiateRestoreObject field's value.
9779func (s *JobOperation) SetS3InitiateRestoreObject(v *S3InitiateRestoreObjectOperation) *JobOperation {
9780	s.S3InitiateRestoreObject = v
9781	return s
9782}
9783
9784// SetS3PutObjectAcl sets the S3PutObjectAcl field's value.
9785func (s *JobOperation) SetS3PutObjectAcl(v *S3SetObjectAclOperation) *JobOperation {
9786	s.S3PutObjectAcl = v
9787	return s
9788}
9789
9790// SetS3PutObjectCopy sets the S3PutObjectCopy field's value.
9791func (s *JobOperation) SetS3PutObjectCopy(v *S3CopyObjectOperation) *JobOperation {
9792	s.S3PutObjectCopy = v
9793	return s
9794}
9795
9796// SetS3PutObjectLegalHold sets the S3PutObjectLegalHold field's value.
9797func (s *JobOperation) SetS3PutObjectLegalHold(v *S3SetObjectLegalHoldOperation) *JobOperation {
9798	s.S3PutObjectLegalHold = v
9799	return s
9800}
9801
9802// SetS3PutObjectRetention sets the S3PutObjectRetention field's value.
9803func (s *JobOperation) SetS3PutObjectRetention(v *S3SetObjectRetentionOperation) *JobOperation {
9804	s.S3PutObjectRetention = v
9805	return s
9806}
9807
9808// SetS3PutObjectTagging sets the S3PutObjectTagging field's value.
9809func (s *JobOperation) SetS3PutObjectTagging(v *S3SetObjectTaggingOperation) *JobOperation {
9810	s.S3PutObjectTagging = v
9811	return s
9812}
9813
9814// Describes the total number of tasks that the specified job has started, the
9815// number of tasks that succeeded, and the number of tasks that failed.
9816type JobProgressSummary struct {
9817	_ struct{} `type:"structure"`
9818
9819	NumberOfTasksFailed *int64 `type:"long"`
9820
9821	NumberOfTasksSucceeded *int64 `type:"long"`
9822
9823	TotalNumberOfTasks *int64 `type:"long"`
9824}
9825
9826// String returns the string representation
9827func (s JobProgressSummary) String() string {
9828	return awsutil.Prettify(s)
9829}
9830
9831// GoString returns the string representation
9832func (s JobProgressSummary) GoString() string {
9833	return s.String()
9834}
9835
9836// SetNumberOfTasksFailed sets the NumberOfTasksFailed field's value.
9837func (s *JobProgressSummary) SetNumberOfTasksFailed(v int64) *JobProgressSummary {
9838	s.NumberOfTasksFailed = &v
9839	return s
9840}
9841
9842// SetNumberOfTasksSucceeded sets the NumberOfTasksSucceeded field's value.
9843func (s *JobProgressSummary) SetNumberOfTasksSucceeded(v int64) *JobProgressSummary {
9844	s.NumberOfTasksSucceeded = &v
9845	return s
9846}
9847
9848// SetTotalNumberOfTasks sets the TotalNumberOfTasks field's value.
9849func (s *JobProgressSummary) SetTotalNumberOfTasks(v int64) *JobProgressSummary {
9850	s.TotalNumberOfTasks = &v
9851	return s
9852}
9853
9854// Contains the configuration parameters for a job-completion report.
9855type JobReport struct {
9856	_ struct{} `type:"structure"`
9857
9858	// The Amazon Resource Name (ARN) for the bucket where specified job-completion
9859	// report will be stored.
9860	Bucket *string `min:"1" type:"string"`
9861
9862	// Indicates whether the specified job will generate a job-completion report.
9863	//
9864	// Enabled is a required field
9865	Enabled *bool `type:"boolean" required:"true"`
9866
9867	// The format of the specified job-completion report.
9868	Format *string `type:"string" enum:"JobReportFormat"`
9869
9870	// An optional prefix to describe where in the specified bucket the job-completion
9871	// report will be stored. Amazon S3 stores the job-completion report at <prefix>/job-<job-id>/report.json.
9872	Prefix *string `min:"1" type:"string"`
9873
9874	// Indicates whether the job-completion report will include details of all tasks
9875	// or only failed tasks.
9876	ReportScope *string `type:"string" enum:"JobReportScope"`
9877}
9878
9879// String returns the string representation
9880func (s JobReport) String() string {
9881	return awsutil.Prettify(s)
9882}
9883
9884// GoString returns the string representation
9885func (s JobReport) GoString() string {
9886	return s.String()
9887}
9888
9889// Validate inspects the fields of the type to determine if they are valid.
9890func (s *JobReport) Validate() error {
9891	invalidParams := request.ErrInvalidParams{Context: "JobReport"}
9892	if s.Bucket != nil && len(*s.Bucket) < 1 {
9893		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
9894	}
9895	if s.Enabled == nil {
9896		invalidParams.Add(request.NewErrParamRequired("Enabled"))
9897	}
9898	if s.Prefix != nil && len(*s.Prefix) < 1 {
9899		invalidParams.Add(request.NewErrParamMinLen("Prefix", 1))
9900	}
9901
9902	if invalidParams.Len() > 0 {
9903		return invalidParams
9904	}
9905	return nil
9906}
9907
9908// SetBucket sets the Bucket field's value.
9909func (s *JobReport) SetBucket(v string) *JobReport {
9910	s.Bucket = &v
9911	return s
9912}
9913
9914// SetEnabled sets the Enabled field's value.
9915func (s *JobReport) SetEnabled(v bool) *JobReport {
9916	s.Enabled = &v
9917	return s
9918}
9919
9920// SetFormat sets the Format field's value.
9921func (s *JobReport) SetFormat(v string) *JobReport {
9922	s.Format = &v
9923	return s
9924}
9925
9926// SetPrefix sets the Prefix field's value.
9927func (s *JobReport) SetPrefix(v string) *JobReport {
9928	s.Prefix = &v
9929	return s
9930}
9931
9932// SetReportScope sets the ReportScope field's value.
9933func (s *JobReport) SetReportScope(v string) *JobReport {
9934	s.ReportScope = &v
9935	return s
9936}
9937
9938// Contains the configuration parameters for a Lambda Invoke operation.
9939type LambdaInvokeOperation struct {
9940	_ struct{} `type:"structure"`
9941
9942	// The Amazon Resource Name (ARN) for the Lambda function that the specified
9943	// job will invoke on every object in the manifest.
9944	FunctionArn *string `min:"1" type:"string"`
9945}
9946
9947// String returns the string representation
9948func (s LambdaInvokeOperation) String() string {
9949	return awsutil.Prettify(s)
9950}
9951
9952// GoString returns the string representation
9953func (s LambdaInvokeOperation) GoString() string {
9954	return s.String()
9955}
9956
9957// Validate inspects the fields of the type to determine if they are valid.
9958func (s *LambdaInvokeOperation) Validate() error {
9959	invalidParams := request.ErrInvalidParams{Context: "LambdaInvokeOperation"}
9960	if s.FunctionArn != nil && len(*s.FunctionArn) < 1 {
9961		invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1))
9962	}
9963
9964	if invalidParams.Len() > 0 {
9965		return invalidParams
9966	}
9967	return nil
9968}
9969
9970// SetFunctionArn sets the FunctionArn field's value.
9971func (s *LambdaInvokeOperation) SetFunctionArn(v string) *LambdaInvokeOperation {
9972	s.FunctionArn = &v
9973	return s
9974}
9975
9976// The container for the Outposts bucket lifecycle configuration.
9977type LifecycleConfiguration struct {
9978	_ struct{} `type:"structure"`
9979
9980	// A lifecycle rule for individual objects in an Outposts bucket.
9981	Rules []*LifecycleRule `locationNameList:"Rule" type:"list"`
9982}
9983
9984// String returns the string representation
9985func (s LifecycleConfiguration) String() string {
9986	return awsutil.Prettify(s)
9987}
9988
9989// GoString returns the string representation
9990func (s LifecycleConfiguration) GoString() string {
9991	return s.String()
9992}
9993
9994// Validate inspects the fields of the type to determine if they are valid.
9995func (s *LifecycleConfiguration) Validate() error {
9996	invalidParams := request.ErrInvalidParams{Context: "LifecycleConfiguration"}
9997	if s.Rules != nil {
9998		for i, v := range s.Rules {
9999			if v == nil {
10000				continue
10001			}
10002			if err := v.Validate(); err != nil {
10003				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
10004			}
10005		}
10006	}
10007
10008	if invalidParams.Len() > 0 {
10009		return invalidParams
10010	}
10011	return nil
10012}
10013
10014// SetRules sets the Rules field's value.
10015func (s *LifecycleConfiguration) SetRules(v []*LifecycleRule) *LifecycleConfiguration {
10016	s.Rules = v
10017	return s
10018}
10019
10020// The container of the Outposts bucket lifecycle expiration.
10021type LifecycleExpiration struct {
10022	_ struct{} `type:"structure"`
10023
10024	// Indicates at what date the object is to be deleted. Should be in GMT ISO
10025	// 8601 format.
10026	Date *time.Time `type:"timestamp"`
10027
10028	// Indicates the lifetime, in days, of the objects that are subject to the rule.
10029	// The value must be a non-zero positive integer.
10030	Days *int64 `type:"integer"`
10031
10032	// Indicates whether Amazon S3 will remove a delete marker with no noncurrent
10033	// versions. If set to true, the delete marker will be expired. If set to false,
10034	// the policy takes no action. This cannot be specified with Days or Date in
10035	// a Lifecycle Expiration Policy.
10036	ExpiredObjectDeleteMarker *bool `type:"boolean"`
10037}
10038
10039// String returns the string representation
10040func (s LifecycleExpiration) String() string {
10041	return awsutil.Prettify(s)
10042}
10043
10044// GoString returns the string representation
10045func (s LifecycleExpiration) GoString() string {
10046	return s.String()
10047}
10048
10049// SetDate sets the Date field's value.
10050func (s *LifecycleExpiration) SetDate(v time.Time) *LifecycleExpiration {
10051	s.Date = &v
10052	return s
10053}
10054
10055// SetDays sets the Days field's value.
10056func (s *LifecycleExpiration) SetDays(v int64) *LifecycleExpiration {
10057	s.Days = &v
10058	return s
10059}
10060
10061// SetExpiredObjectDeleteMarker sets the ExpiredObjectDeleteMarker field's value.
10062func (s *LifecycleExpiration) SetExpiredObjectDeleteMarker(v bool) *LifecycleExpiration {
10063	s.ExpiredObjectDeleteMarker = &v
10064	return s
10065}
10066
10067// The container for the Outposts bucket lifecycle rule.
10068type LifecycleRule struct {
10069	_ struct{} `type:"structure"`
10070
10071	// Specifies the days since the initiation of an incomplete multipart upload
10072	// that Amazon S3 waits before permanently removing all parts of the upload.
10073	// For more information, see Aborting Incomplete Multipart Uploads Using a Bucket
10074	// Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
10075	// in the Amazon S3 User Guide.
10076	AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"`
10077
10078	// Specifies the expiration for the lifecycle of the object in the form of date,
10079	// days and, whether the object has a delete marker.
10080	Expiration *LifecycleExpiration `type:"structure"`
10081
10082	// The container for the filter of lifecycle rule.
10083	Filter *LifecycleRuleFilter `type:"structure"`
10084
10085	// Unique identifier for the rule. The value cannot be longer than 255 characters.
10086	ID *string `type:"string"`
10087
10088	// The noncurrent version expiration of the lifecycle rule.
10089	//
10090	// This is not supported by Amazon S3 on Outposts buckets.
10091	NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"`
10092
10093	// Specifies the transition rule for the lifecycle rule that describes when
10094	// noncurrent objects transition to a specific storage class. If your bucket
10095	// is versioning-enabled (or versioning is suspended), you can set this action
10096	// to request that Amazon S3 transition noncurrent object versions to a specific
10097	// storage class at a set period in the object's lifetime.
10098	//
10099	// This is not supported by Amazon S3 on Outposts buckets.
10100	NoncurrentVersionTransitions []*NoncurrentVersionTransition `locationNameList:"NoncurrentVersionTransition" type:"list"`
10101
10102	// If 'Enabled', the rule is currently being applied. If 'Disabled', the rule
10103	// is not currently being applied.
10104	//
10105	// Status is a required field
10106	Status *string `type:"string" required:"true" enum:"ExpirationStatus"`
10107
10108	// Specifies when an Amazon S3 object transitions to a specified storage class.
10109	//
10110	// This is not supported by Amazon S3 on Outposts buckets.
10111	Transitions []*Transition `locationNameList:"Transition" type:"list"`
10112}
10113
10114// String returns the string representation
10115func (s LifecycleRule) String() string {
10116	return awsutil.Prettify(s)
10117}
10118
10119// GoString returns the string representation
10120func (s LifecycleRule) GoString() string {
10121	return s.String()
10122}
10123
10124// Validate inspects the fields of the type to determine if they are valid.
10125func (s *LifecycleRule) Validate() error {
10126	invalidParams := request.ErrInvalidParams{Context: "LifecycleRule"}
10127	if s.Status == nil {
10128		invalidParams.Add(request.NewErrParamRequired("Status"))
10129	}
10130	if s.Filter != nil {
10131		if err := s.Filter.Validate(); err != nil {
10132			invalidParams.AddNested("Filter", err.(request.ErrInvalidParams))
10133		}
10134	}
10135
10136	if invalidParams.Len() > 0 {
10137		return invalidParams
10138	}
10139	return nil
10140}
10141
10142// SetAbortIncompleteMultipartUpload sets the AbortIncompleteMultipartUpload field's value.
10143func (s *LifecycleRule) SetAbortIncompleteMultipartUpload(v *AbortIncompleteMultipartUpload) *LifecycleRule {
10144	s.AbortIncompleteMultipartUpload = v
10145	return s
10146}
10147
10148// SetExpiration sets the Expiration field's value.
10149func (s *LifecycleRule) SetExpiration(v *LifecycleExpiration) *LifecycleRule {
10150	s.Expiration = v
10151	return s
10152}
10153
10154// SetFilter sets the Filter field's value.
10155func (s *LifecycleRule) SetFilter(v *LifecycleRuleFilter) *LifecycleRule {
10156	s.Filter = v
10157	return s
10158}
10159
10160// SetID sets the ID field's value.
10161func (s *LifecycleRule) SetID(v string) *LifecycleRule {
10162	s.ID = &v
10163	return s
10164}
10165
10166// SetNoncurrentVersionExpiration sets the NoncurrentVersionExpiration field's value.
10167func (s *LifecycleRule) SetNoncurrentVersionExpiration(v *NoncurrentVersionExpiration) *LifecycleRule {
10168	s.NoncurrentVersionExpiration = v
10169	return s
10170}
10171
10172// SetNoncurrentVersionTransitions sets the NoncurrentVersionTransitions field's value.
10173func (s *LifecycleRule) SetNoncurrentVersionTransitions(v []*NoncurrentVersionTransition) *LifecycleRule {
10174	s.NoncurrentVersionTransitions = v
10175	return s
10176}
10177
10178// SetStatus sets the Status field's value.
10179func (s *LifecycleRule) SetStatus(v string) *LifecycleRule {
10180	s.Status = &v
10181	return s
10182}
10183
10184// SetTransitions sets the Transitions field's value.
10185func (s *LifecycleRule) SetTransitions(v []*Transition) *LifecycleRule {
10186	s.Transitions = v
10187	return s
10188}
10189
10190// The container for the Outposts bucket lifecycle rule and operator.
10191type LifecycleRuleAndOperator struct {
10192	_ struct{} `type:"structure"`
10193
10194	// Prefix identifying one or more objects to which the rule applies.
10195	Prefix *string `type:"string"`
10196
10197	// All of these tags must exist in the object's tag set in order for the rule
10198	// to apply.
10199	Tags []*S3Tag `type:"list"`
10200}
10201
10202// String returns the string representation
10203func (s LifecycleRuleAndOperator) String() string {
10204	return awsutil.Prettify(s)
10205}
10206
10207// GoString returns the string representation
10208func (s LifecycleRuleAndOperator) GoString() string {
10209	return s.String()
10210}
10211
10212// Validate inspects the fields of the type to determine if they are valid.
10213func (s *LifecycleRuleAndOperator) Validate() error {
10214	invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleAndOperator"}
10215	if s.Tags != nil {
10216		for i, v := range s.Tags {
10217			if v == nil {
10218				continue
10219			}
10220			if err := v.Validate(); err != nil {
10221				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10222			}
10223		}
10224	}
10225
10226	if invalidParams.Len() > 0 {
10227		return invalidParams
10228	}
10229	return nil
10230}
10231
10232// SetPrefix sets the Prefix field's value.
10233func (s *LifecycleRuleAndOperator) SetPrefix(v string) *LifecycleRuleAndOperator {
10234	s.Prefix = &v
10235	return s
10236}
10237
10238// SetTags sets the Tags field's value.
10239func (s *LifecycleRuleAndOperator) SetTags(v []*S3Tag) *LifecycleRuleAndOperator {
10240	s.Tags = v
10241	return s
10242}
10243
10244// The container for the filter of the lifecycle rule.
10245type LifecycleRuleFilter struct {
10246	_ struct{} `type:"structure"`
10247
10248	// The container for the AND condition for the lifecycle rule.
10249	And *LifecycleRuleAndOperator `type:"structure"`
10250
10251	// Prefix identifying one or more objects to which the rule applies.
10252	//
10253	// Replacement must be made for object keys containing special characters (such
10254	// as carriage returns) when using XML requests. For more information, see XML
10255	// related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
10256	Prefix *string `type:"string"`
10257
10258	Tag *S3Tag `type:"structure"`
10259}
10260
10261// String returns the string representation
10262func (s LifecycleRuleFilter) String() string {
10263	return awsutil.Prettify(s)
10264}
10265
10266// GoString returns the string representation
10267func (s LifecycleRuleFilter) GoString() string {
10268	return s.String()
10269}
10270
10271// Validate inspects the fields of the type to determine if they are valid.
10272func (s *LifecycleRuleFilter) Validate() error {
10273	invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleFilter"}
10274	if s.And != nil {
10275		if err := s.And.Validate(); err != nil {
10276			invalidParams.AddNested("And", err.(request.ErrInvalidParams))
10277		}
10278	}
10279	if s.Tag != nil {
10280		if err := s.Tag.Validate(); err != nil {
10281			invalidParams.AddNested("Tag", err.(request.ErrInvalidParams))
10282		}
10283	}
10284
10285	if invalidParams.Len() > 0 {
10286		return invalidParams
10287	}
10288	return nil
10289}
10290
10291// SetAnd sets the And field's value.
10292func (s *LifecycleRuleFilter) SetAnd(v *LifecycleRuleAndOperator) *LifecycleRuleFilter {
10293	s.And = v
10294	return s
10295}
10296
10297// SetPrefix sets the Prefix field's value.
10298func (s *LifecycleRuleFilter) SetPrefix(v string) *LifecycleRuleFilter {
10299	s.Prefix = &v
10300	return s
10301}
10302
10303// SetTag sets the Tag field's value.
10304func (s *LifecycleRuleFilter) SetTag(v *S3Tag) *LifecycleRuleFilter {
10305	s.Tag = v
10306	return s
10307}
10308
10309type ListAccessPointsForObjectLambdaInput struct {
10310	_ struct{} `locationName:"ListAccessPointsForObjectLambdaRequest" type:"structure"`
10311
10312	// The account ID for the account that owns the specified Object Lambda Access
10313	// Point.
10314	//
10315	// AccountId is a required field
10316	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10317
10318	// The maximum number of access points that you want to include in the list.
10319	// If there are more than this number of access points, then the response will
10320	// include a continuation token in the NextToken field that you can use to retrieve
10321	// the next page of access points.
10322	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
10323
10324	// If the list has more access points than can be returned in one call to this
10325	// API, this field contains a continuation token that you can provide in subsequent
10326	// calls to this API to retrieve additional access points.
10327	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
10328}
10329
10330// String returns the string representation
10331func (s ListAccessPointsForObjectLambdaInput) String() string {
10332	return awsutil.Prettify(s)
10333}
10334
10335// GoString returns the string representation
10336func (s ListAccessPointsForObjectLambdaInput) GoString() string {
10337	return s.String()
10338}
10339
10340// Validate inspects the fields of the type to determine if they are valid.
10341func (s *ListAccessPointsForObjectLambdaInput) Validate() error {
10342	invalidParams := request.ErrInvalidParams{Context: "ListAccessPointsForObjectLambdaInput"}
10343	if s.AccountId == nil {
10344		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10345	}
10346	if s.AccountId != nil && len(*s.AccountId) < 1 {
10347		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10348	}
10349	if s.NextToken != nil && len(*s.NextToken) < 1 {
10350		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10351	}
10352
10353	if invalidParams.Len() > 0 {
10354		return invalidParams
10355	}
10356	return nil
10357}
10358
10359// SetAccountId sets the AccountId field's value.
10360func (s *ListAccessPointsForObjectLambdaInput) SetAccountId(v string) *ListAccessPointsForObjectLambdaInput {
10361	s.AccountId = &v
10362	return s
10363}
10364
10365// SetMaxResults sets the MaxResults field's value.
10366func (s *ListAccessPointsForObjectLambdaInput) SetMaxResults(v int64) *ListAccessPointsForObjectLambdaInput {
10367	s.MaxResults = &v
10368	return s
10369}
10370
10371// SetNextToken sets the NextToken field's value.
10372func (s *ListAccessPointsForObjectLambdaInput) SetNextToken(v string) *ListAccessPointsForObjectLambdaInput {
10373	s.NextToken = &v
10374	return s
10375}
10376
10377func (s *ListAccessPointsForObjectLambdaInput) hostLabels() map[string]string {
10378	return map[string]string{
10379		"AccountId": aws.StringValue(s.AccountId),
10380	}
10381}
10382
10383type ListAccessPointsForObjectLambdaOutput struct {
10384	_ struct{} `type:"structure"`
10385
10386	// If the list has more access points than can be returned in one call to this
10387	// API, this field contains a continuation token that you can provide in subsequent
10388	// calls to this API to retrieve additional access points.
10389	NextToken *string `min:"1" type:"string"`
10390
10391	// Returns list of Object Lambda Access Points.
10392	ObjectLambdaAccessPointList []*ObjectLambdaAccessPoint `locationNameList:"ObjectLambdaAccessPoint" type:"list"`
10393}
10394
10395// String returns the string representation
10396func (s ListAccessPointsForObjectLambdaOutput) String() string {
10397	return awsutil.Prettify(s)
10398}
10399
10400// GoString returns the string representation
10401func (s ListAccessPointsForObjectLambdaOutput) GoString() string {
10402	return s.String()
10403}
10404
10405// SetNextToken sets the NextToken field's value.
10406func (s *ListAccessPointsForObjectLambdaOutput) SetNextToken(v string) *ListAccessPointsForObjectLambdaOutput {
10407	s.NextToken = &v
10408	return s
10409}
10410
10411// SetObjectLambdaAccessPointList sets the ObjectLambdaAccessPointList field's value.
10412func (s *ListAccessPointsForObjectLambdaOutput) SetObjectLambdaAccessPointList(v []*ObjectLambdaAccessPoint) *ListAccessPointsForObjectLambdaOutput {
10413	s.ObjectLambdaAccessPointList = v
10414	return s
10415}
10416
10417type ListAccessPointsInput struct {
10418	_ struct{} `locationName:"ListAccessPointsRequest" type:"structure"`
10419
10420	// The account ID for owner of the bucket whose access points you want to list.
10421	//
10422	// AccountId is a required field
10423	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10424
10425	// The name of the bucket whose associated access points you want to list.
10426	//
10427	// For using this parameter with Amazon S3 on Outposts with the REST API, you
10428	// must specify the name and the x-amz-outpost-id as well.
10429	//
10430	// For using this parameter with S3 on Outposts with the Amazon Web Services
10431	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
10432	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
10433	// For example, to access the bucket reports through outpost my-outpost owned
10434	// 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.
10435	// The value must be URL encoded.
10436	Bucket *string `location:"querystring" locationName:"bucket" min:"3" type:"string"`
10437
10438	// The maximum number of access points that you want to include in the list.
10439	// If the specified bucket has more than this number of access points, then
10440	// the response will include a continuation token in the NextToken field that
10441	// you can use to retrieve the next page of access points.
10442	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
10443
10444	// A continuation token. If a previous call to ListAccessPoints returned a continuation
10445	// token in the NextToken field, then providing that value here causes Amazon
10446	// S3 to retrieve the next page of results.
10447	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
10448}
10449
10450// String returns the string representation
10451func (s ListAccessPointsInput) String() string {
10452	return awsutil.Prettify(s)
10453}
10454
10455// GoString returns the string representation
10456func (s ListAccessPointsInput) GoString() string {
10457	return s.String()
10458}
10459
10460// Validate inspects the fields of the type to determine if they are valid.
10461func (s *ListAccessPointsInput) Validate() error {
10462	invalidParams := request.ErrInvalidParams{Context: "ListAccessPointsInput"}
10463	if s.AccountId == nil {
10464		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10465	}
10466	if s.AccountId != nil && len(*s.AccountId) < 1 {
10467		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10468	}
10469	if s.Bucket != nil && len(*s.Bucket) < 3 {
10470		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
10471	}
10472	if s.NextToken != nil && len(*s.NextToken) < 1 {
10473		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10474	}
10475
10476	if invalidParams.Len() > 0 {
10477		return invalidParams
10478	}
10479	return nil
10480}
10481
10482// SetAccountId sets the AccountId field's value.
10483func (s *ListAccessPointsInput) SetAccountId(v string) *ListAccessPointsInput {
10484	s.AccountId = &v
10485	return s
10486}
10487
10488// SetBucket sets the Bucket field's value.
10489func (s *ListAccessPointsInput) SetBucket(v string) *ListAccessPointsInput {
10490	s.Bucket = &v
10491	return s
10492}
10493
10494// SetMaxResults sets the MaxResults field's value.
10495func (s *ListAccessPointsInput) SetMaxResults(v int64) *ListAccessPointsInput {
10496	s.MaxResults = &v
10497	return s
10498}
10499
10500// SetNextToken sets the NextToken field's value.
10501func (s *ListAccessPointsInput) SetNextToken(v string) *ListAccessPointsInput {
10502	s.NextToken = &v
10503	return s
10504}
10505
10506func (s *ListAccessPointsInput) hostLabels() map[string]string {
10507	return map[string]string{
10508		"AccountId": aws.StringValue(s.AccountId),
10509	}
10510}
10511
10512func (s *ListAccessPointsInput) getEndpointARN() (arn.Resource, error) {
10513	if s.Bucket == nil {
10514		return nil, fmt.Errorf("member Bucket is nil")
10515	}
10516	return parseEndpointARN(*s.Bucket)
10517}
10518
10519func (s *ListAccessPointsInput) hasEndpointARN() bool {
10520	if s.Bucket == nil {
10521		return false
10522	}
10523	return arn.IsARN(*s.Bucket)
10524}
10525
10526// updateArnableField updates the value of the input field that
10527// takes an ARN as an input. This method is useful to backfill
10528// the parsed resource name from ARN into the input member.
10529// It returns a pointer to a modified copy of input and an error.
10530// Note that original input is not modified.
10531func (s ListAccessPointsInput) updateArnableField(v string) (interface{}, error) {
10532	if s.Bucket == nil {
10533		return nil, fmt.Errorf("member Bucket is nil")
10534	}
10535	s.Bucket = aws.String(v)
10536	return &s, nil
10537}
10538
10539// updateAccountID returns a pointer to a modified copy of input,
10540// if account id is not provided, we update the account id in modified input
10541// if account id is provided, but doesn't match with the one in ARN, we throw an error
10542// if account id is not updated, we return nil. Note that original input is not modified.
10543func (s ListAccessPointsInput) updateAccountID(accountId string) (interface{}, error) {
10544	if s.AccountId == nil {
10545		s.AccountId = aws.String(accountId)
10546		return &s, nil
10547	} else if *s.AccountId != accountId {
10548		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
10549	}
10550	return nil, nil
10551}
10552
10553type ListAccessPointsOutput struct {
10554	_ struct{} `type:"structure"`
10555
10556	// Contains identification and configuration information for one or more access
10557	// points associated with the specified bucket.
10558	AccessPointList []*AccessPoint `locationNameList:"AccessPoint" type:"list"`
10559
10560	// If the specified bucket has more access points than can be returned in one
10561	// call to this API, this field contains a continuation token that you can provide
10562	// in subsequent calls to this API to retrieve additional access points.
10563	NextToken *string `min:"1" type:"string"`
10564}
10565
10566// String returns the string representation
10567func (s ListAccessPointsOutput) String() string {
10568	return awsutil.Prettify(s)
10569}
10570
10571// GoString returns the string representation
10572func (s ListAccessPointsOutput) GoString() string {
10573	return s.String()
10574}
10575
10576// SetAccessPointList sets the AccessPointList field's value.
10577func (s *ListAccessPointsOutput) SetAccessPointList(v []*AccessPoint) *ListAccessPointsOutput {
10578	s.AccessPointList = v
10579	return s
10580}
10581
10582// SetNextToken sets the NextToken field's value.
10583func (s *ListAccessPointsOutput) SetNextToken(v string) *ListAccessPointsOutput {
10584	s.NextToken = &v
10585	return s
10586}
10587
10588type ListJobsInput struct {
10589	_ struct{} `locationName:"ListJobsRequest" type:"structure"`
10590
10591	// The account ID associated with the S3 Batch Operations job.
10592	//
10593	// AccountId is a required field
10594	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10595
10596	// The List Jobs request returns jobs that match the statuses listed in this
10597	// element.
10598	JobStatuses []*string `location:"querystring" locationName:"jobStatuses" type:"list"`
10599
10600	// The maximum number of jobs that Amazon S3 will include in the List Jobs response.
10601	// If there are more jobs than this number, the response will include a pagination
10602	// token in the NextToken field to enable you to retrieve the next page of results.
10603	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
10604
10605	// A pagination token to request the next page of results. Use the token that
10606	// Amazon S3 returned in the NextToken element of the ListJobsResult from the
10607	// previous List Jobs request.
10608	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
10609}
10610
10611// String returns the string representation
10612func (s ListJobsInput) String() string {
10613	return awsutil.Prettify(s)
10614}
10615
10616// GoString returns the string representation
10617func (s ListJobsInput) GoString() string {
10618	return s.String()
10619}
10620
10621// Validate inspects the fields of the type to determine if they are valid.
10622func (s *ListJobsInput) Validate() error {
10623	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
10624	if s.AccountId == nil {
10625		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10626	}
10627	if s.AccountId != nil && len(*s.AccountId) < 1 {
10628		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10629	}
10630	if s.NextToken != nil && len(*s.NextToken) < 1 {
10631		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10632	}
10633
10634	if invalidParams.Len() > 0 {
10635		return invalidParams
10636	}
10637	return nil
10638}
10639
10640// SetAccountId sets the AccountId field's value.
10641func (s *ListJobsInput) SetAccountId(v string) *ListJobsInput {
10642	s.AccountId = &v
10643	return s
10644}
10645
10646// SetJobStatuses sets the JobStatuses field's value.
10647func (s *ListJobsInput) SetJobStatuses(v []*string) *ListJobsInput {
10648	s.JobStatuses = v
10649	return s
10650}
10651
10652// SetMaxResults sets the MaxResults field's value.
10653func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
10654	s.MaxResults = &v
10655	return s
10656}
10657
10658// SetNextToken sets the NextToken field's value.
10659func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
10660	s.NextToken = &v
10661	return s
10662}
10663
10664func (s *ListJobsInput) hostLabels() map[string]string {
10665	return map[string]string{
10666		"AccountId": aws.StringValue(s.AccountId),
10667	}
10668}
10669
10670type ListJobsOutput struct {
10671	_ struct{} `type:"structure"`
10672
10673	// The list of current jobs and jobs that have ended within the last 30 days.
10674	Jobs []*JobListDescriptor `type:"list"`
10675
10676	// If the List Jobs request produced more than the maximum number of results,
10677	// you can pass this value into a subsequent List Jobs request in order to retrieve
10678	// the next page of results.
10679	NextToken *string `min:"1" type:"string"`
10680}
10681
10682// String returns the string representation
10683func (s ListJobsOutput) String() string {
10684	return awsutil.Prettify(s)
10685}
10686
10687// GoString returns the string representation
10688func (s ListJobsOutput) GoString() string {
10689	return s.String()
10690}
10691
10692// SetJobs sets the Jobs field's value.
10693func (s *ListJobsOutput) SetJobs(v []*JobListDescriptor) *ListJobsOutput {
10694	s.Jobs = v
10695	return s
10696}
10697
10698// SetNextToken sets the NextToken field's value.
10699func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
10700	s.NextToken = &v
10701	return s
10702}
10703
10704type ListRegionalBucketsInput struct {
10705	_ struct{} `locationName:"ListRegionalBucketsRequest" type:"structure"`
10706
10707	// The account ID of the Outposts bucket.
10708	//
10709	// AccountId is a required field
10710	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10711
10712	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
10713
10714	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
10715
10716	// The ID of the Outposts.
10717	//
10718	// This is required by Amazon S3 on Outposts buckets.
10719	OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"`
10720}
10721
10722// String returns the string representation
10723func (s ListRegionalBucketsInput) String() string {
10724	return awsutil.Prettify(s)
10725}
10726
10727// GoString returns the string representation
10728func (s ListRegionalBucketsInput) GoString() string {
10729	return s.String()
10730}
10731
10732// Validate inspects the fields of the type to determine if they are valid.
10733func (s *ListRegionalBucketsInput) Validate() error {
10734	invalidParams := request.ErrInvalidParams{Context: "ListRegionalBucketsInput"}
10735	if s.AccountId == nil {
10736		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10737	}
10738	if s.AccountId != nil && len(*s.AccountId) < 1 {
10739		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10740	}
10741	if s.NextToken != nil && len(*s.NextToken) < 1 {
10742		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10743	}
10744	if s.OutpostId != nil && len(*s.OutpostId) < 1 {
10745		invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1))
10746	}
10747
10748	if invalidParams.Len() > 0 {
10749		return invalidParams
10750	}
10751	return nil
10752}
10753
10754// SetAccountId sets the AccountId field's value.
10755func (s *ListRegionalBucketsInput) SetAccountId(v string) *ListRegionalBucketsInput {
10756	s.AccountId = &v
10757	return s
10758}
10759
10760// SetMaxResults sets the MaxResults field's value.
10761func (s *ListRegionalBucketsInput) SetMaxResults(v int64) *ListRegionalBucketsInput {
10762	s.MaxResults = &v
10763	return s
10764}
10765
10766// SetNextToken sets the NextToken field's value.
10767func (s *ListRegionalBucketsInput) SetNextToken(v string) *ListRegionalBucketsInput {
10768	s.NextToken = &v
10769	return s
10770}
10771
10772// SetOutpostId sets the OutpostId field's value.
10773func (s *ListRegionalBucketsInput) SetOutpostId(v string) *ListRegionalBucketsInput {
10774	s.OutpostId = &v
10775	return s
10776}
10777
10778func (s *ListRegionalBucketsInput) hostLabels() map[string]string {
10779	return map[string]string{
10780		"AccountId": aws.StringValue(s.AccountId),
10781	}
10782}
10783
10784func (s *ListRegionalBucketsInput) getOutpostID() (string, error) {
10785	if s.OutpostId == nil {
10786		return "", fmt.Errorf("member OutpostId is nil")
10787	}
10788	return *s.OutpostId, nil
10789}
10790
10791func (s *ListRegionalBucketsInput) hasOutpostID() bool {
10792	if s.OutpostId == nil {
10793		return false
10794	}
10795	return true
10796}
10797
10798type ListRegionalBucketsOutput struct {
10799	_ struct{} `type:"structure"`
10800
10801	// NextToken is sent when isTruncated is true, which means there are more buckets
10802	// that can be listed. The next list requests to Amazon S3 can be continued
10803	// with this NextToken. NextToken is obfuscated and is not a real key.
10804	NextToken *string `min:"1" type:"string"`
10805
10806	RegionalBucketList []*RegionalBucket `locationNameList:"RegionalBucket" type:"list"`
10807}
10808
10809// String returns the string representation
10810func (s ListRegionalBucketsOutput) String() string {
10811	return awsutil.Prettify(s)
10812}
10813
10814// GoString returns the string representation
10815func (s ListRegionalBucketsOutput) GoString() string {
10816	return s.String()
10817}
10818
10819// SetNextToken sets the NextToken field's value.
10820func (s *ListRegionalBucketsOutput) SetNextToken(v string) *ListRegionalBucketsOutput {
10821	s.NextToken = &v
10822	return s
10823}
10824
10825// SetRegionalBucketList sets the RegionalBucketList field's value.
10826func (s *ListRegionalBucketsOutput) SetRegionalBucketList(v []*RegionalBucket) *ListRegionalBucketsOutput {
10827	s.RegionalBucketList = v
10828	return s
10829}
10830
10831// Part of ListStorageLensConfigurationResult. Each entry includes the description
10832// of the S3 Storage Lens configuration, its home Region, whether it is enabled,
10833// its Amazon Resource Name (ARN), and config ID.
10834type ListStorageLensConfigurationEntry struct {
10835	_ struct{} `type:"structure"`
10836
10837	// A container for the S3 Storage Lens home Region. Your metrics data is stored
10838	// and retained in your designated S3 Storage Lens home Region.
10839	//
10840	// HomeRegion is a required field
10841	HomeRegion *string `min:"5" type:"string" required:"true"`
10842
10843	// A container for the S3 Storage Lens configuration ID.
10844	//
10845	// Id is a required field
10846	Id *string `min:"1" type:"string" required:"true"`
10847
10848	// A container for whether the S3 Storage Lens configuration is enabled. This
10849	// property is required.
10850	IsEnabled *bool `type:"boolean"`
10851
10852	// The ARN of the S3 Storage Lens configuration. This property is read-only.
10853	//
10854	// StorageLensArn is a required field
10855	StorageLensArn *string `min:"1" type:"string" required:"true"`
10856}
10857
10858// String returns the string representation
10859func (s ListStorageLensConfigurationEntry) String() string {
10860	return awsutil.Prettify(s)
10861}
10862
10863// GoString returns the string representation
10864func (s ListStorageLensConfigurationEntry) GoString() string {
10865	return s.String()
10866}
10867
10868// SetHomeRegion sets the HomeRegion field's value.
10869func (s *ListStorageLensConfigurationEntry) SetHomeRegion(v string) *ListStorageLensConfigurationEntry {
10870	s.HomeRegion = &v
10871	return s
10872}
10873
10874// SetId sets the Id field's value.
10875func (s *ListStorageLensConfigurationEntry) SetId(v string) *ListStorageLensConfigurationEntry {
10876	s.Id = &v
10877	return s
10878}
10879
10880// SetIsEnabled sets the IsEnabled field's value.
10881func (s *ListStorageLensConfigurationEntry) SetIsEnabled(v bool) *ListStorageLensConfigurationEntry {
10882	s.IsEnabled = &v
10883	return s
10884}
10885
10886// SetStorageLensArn sets the StorageLensArn field's value.
10887func (s *ListStorageLensConfigurationEntry) SetStorageLensArn(v string) *ListStorageLensConfigurationEntry {
10888	s.StorageLensArn = &v
10889	return s
10890}
10891
10892type ListStorageLensConfigurationsInput struct {
10893	_ struct{} `locationName:"ListStorageLensConfigurationsRequest" type:"structure"`
10894
10895	// The account ID of the requester.
10896	//
10897	// AccountId is a required field
10898	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
10899
10900	// A pagination token to request the next page of results.
10901	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
10902}
10903
10904// String returns the string representation
10905func (s ListStorageLensConfigurationsInput) String() string {
10906	return awsutil.Prettify(s)
10907}
10908
10909// GoString returns the string representation
10910func (s ListStorageLensConfigurationsInput) GoString() string {
10911	return s.String()
10912}
10913
10914// Validate inspects the fields of the type to determine if they are valid.
10915func (s *ListStorageLensConfigurationsInput) Validate() error {
10916	invalidParams := request.ErrInvalidParams{Context: "ListStorageLensConfigurationsInput"}
10917	if s.AccountId == nil {
10918		invalidParams.Add(request.NewErrParamRequired("AccountId"))
10919	}
10920	if s.AccountId != nil && len(*s.AccountId) < 1 {
10921		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
10922	}
10923
10924	if invalidParams.Len() > 0 {
10925		return invalidParams
10926	}
10927	return nil
10928}
10929
10930// SetAccountId sets the AccountId field's value.
10931func (s *ListStorageLensConfigurationsInput) SetAccountId(v string) *ListStorageLensConfigurationsInput {
10932	s.AccountId = &v
10933	return s
10934}
10935
10936// SetNextToken sets the NextToken field's value.
10937func (s *ListStorageLensConfigurationsInput) SetNextToken(v string) *ListStorageLensConfigurationsInput {
10938	s.NextToken = &v
10939	return s
10940}
10941
10942func (s *ListStorageLensConfigurationsInput) hostLabels() map[string]string {
10943	return map[string]string{
10944		"AccountId": aws.StringValue(s.AccountId),
10945	}
10946}
10947
10948type ListStorageLensConfigurationsOutput struct {
10949	_ struct{} `type:"structure"`
10950
10951	// If the request produced more than the maximum number of S3 Storage Lens configuration
10952	// results, you can pass this value into a subsequent request to retrieve the
10953	// next page of results.
10954	NextToken *string `type:"string"`
10955
10956	// A list of S3 Storage Lens configurations.
10957	StorageLensConfigurationList []*ListStorageLensConfigurationEntry `locationNameList:"StorageLensConfiguration" type:"list" flattened:"true"`
10958}
10959
10960// String returns the string representation
10961func (s ListStorageLensConfigurationsOutput) String() string {
10962	return awsutil.Prettify(s)
10963}
10964
10965// GoString returns the string representation
10966func (s ListStorageLensConfigurationsOutput) GoString() string {
10967	return s.String()
10968}
10969
10970// SetNextToken sets the NextToken field's value.
10971func (s *ListStorageLensConfigurationsOutput) SetNextToken(v string) *ListStorageLensConfigurationsOutput {
10972	s.NextToken = &v
10973	return s
10974}
10975
10976// SetStorageLensConfigurationList sets the StorageLensConfigurationList field's value.
10977func (s *ListStorageLensConfigurationsOutput) SetStorageLensConfigurationList(v []*ListStorageLensConfigurationEntry) *ListStorageLensConfigurationsOutput {
10978	s.StorageLensConfigurationList = v
10979	return s
10980}
10981
10982// The container of the noncurrent version expiration.
10983type NoncurrentVersionExpiration struct {
10984	_ struct{} `type:"structure"`
10985
10986	// Specifies the number of days an object is noncurrent before Amazon S3 can
10987	// perform the associated action. For information about the noncurrent days
10988	// calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
10989	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
10990	// in the Amazon S3 User Guide.
10991	NoncurrentDays *int64 `type:"integer"`
10992}
10993
10994// String returns the string representation
10995func (s NoncurrentVersionExpiration) String() string {
10996	return awsutil.Prettify(s)
10997}
10998
10999// GoString returns the string representation
11000func (s NoncurrentVersionExpiration) GoString() string {
11001	return s.String()
11002}
11003
11004// SetNoncurrentDays sets the NoncurrentDays field's value.
11005func (s *NoncurrentVersionExpiration) SetNoncurrentDays(v int64) *NoncurrentVersionExpiration {
11006	s.NoncurrentDays = &v
11007	return s
11008}
11009
11010// The container for the noncurrent version transition.
11011type NoncurrentVersionTransition struct {
11012	_ struct{} `type:"structure"`
11013
11014	// Specifies the number of days an object is noncurrent before Amazon S3 can
11015	// perform the associated action. For information about the noncurrent days
11016	// calculations, see How Amazon S3 Calculates How Long an Object Has Been Noncurrent
11017	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
11018	// in the Amazon S3 User Guide.
11019	NoncurrentDays *int64 `type:"integer"`
11020
11021	// The class of storage used to store the object.
11022	StorageClass *string `type:"string" enum:"TransitionStorageClass"`
11023}
11024
11025// String returns the string representation
11026func (s NoncurrentVersionTransition) String() string {
11027	return awsutil.Prettify(s)
11028}
11029
11030// GoString returns the string representation
11031func (s NoncurrentVersionTransition) GoString() string {
11032	return s.String()
11033}
11034
11035// SetNoncurrentDays sets the NoncurrentDays field's value.
11036func (s *NoncurrentVersionTransition) SetNoncurrentDays(v int64) *NoncurrentVersionTransition {
11037	s.NoncurrentDays = &v
11038	return s
11039}
11040
11041// SetStorageClass sets the StorageClass field's value.
11042func (s *NoncurrentVersionTransition) SetStorageClass(v string) *NoncurrentVersionTransition {
11043	s.StorageClass = &v
11044	return s
11045}
11046
11047// An access point with an attached Lambda function used to access transformed
11048// data from an Amazon S3 bucket.
11049type ObjectLambdaAccessPoint struct {
11050	_ struct{} `type:"structure"`
11051
11052	// The name of the Object Lambda Access Point.
11053	//
11054	// Name is a required field
11055	Name *string `min:"3" type:"string" required:"true"`
11056
11057	// Specifies the ARN for the Object Lambda Access Point.
11058	ObjectLambdaAccessPointArn *string `min:"1" type:"string"`
11059}
11060
11061// String returns the string representation
11062func (s ObjectLambdaAccessPoint) String() string {
11063	return awsutil.Prettify(s)
11064}
11065
11066// GoString returns the string representation
11067func (s ObjectLambdaAccessPoint) GoString() string {
11068	return s.String()
11069}
11070
11071// SetName sets the Name field's value.
11072func (s *ObjectLambdaAccessPoint) SetName(v string) *ObjectLambdaAccessPoint {
11073	s.Name = &v
11074	return s
11075}
11076
11077// SetObjectLambdaAccessPointArn sets the ObjectLambdaAccessPointArn field's value.
11078func (s *ObjectLambdaAccessPoint) SetObjectLambdaAccessPointArn(v string) *ObjectLambdaAccessPoint {
11079	s.ObjectLambdaAccessPointArn = &v
11080	return s
11081}
11082
11083// A configuration used when creating an Object Lambda Access Point.
11084type ObjectLambdaConfiguration struct {
11085	_ struct{} `type:"structure"`
11086
11087	// A container for allowed features. Valid inputs are GetObject-Range and GetObject-PartNumber.
11088	AllowedFeatures []*string `locationNameList:"AllowedFeature" type:"list"`
11089
11090	// A container for whether the CloudWatch metrics configuration is enabled.
11091	CloudWatchMetricsEnabled *bool `type:"boolean"`
11092
11093	// Standard access point associated with the Object Lambda Access Point.
11094	//
11095	// SupportingAccessPoint is a required field
11096	SupportingAccessPoint *string `min:"1" type:"string" required:"true"`
11097
11098	// A container for transformation configurations for an Object Lambda Access
11099	// Point.
11100	//
11101	// TransformationConfigurations is a required field
11102	TransformationConfigurations []*ObjectLambdaTransformationConfiguration `locationNameList:"TransformationConfiguration" type:"list" required:"true"`
11103}
11104
11105// String returns the string representation
11106func (s ObjectLambdaConfiguration) String() string {
11107	return awsutil.Prettify(s)
11108}
11109
11110// GoString returns the string representation
11111func (s ObjectLambdaConfiguration) GoString() string {
11112	return s.String()
11113}
11114
11115// Validate inspects the fields of the type to determine if they are valid.
11116func (s *ObjectLambdaConfiguration) Validate() error {
11117	invalidParams := request.ErrInvalidParams{Context: "ObjectLambdaConfiguration"}
11118	if s.SupportingAccessPoint == nil {
11119		invalidParams.Add(request.NewErrParamRequired("SupportingAccessPoint"))
11120	}
11121	if s.SupportingAccessPoint != nil && len(*s.SupportingAccessPoint) < 1 {
11122		invalidParams.Add(request.NewErrParamMinLen("SupportingAccessPoint", 1))
11123	}
11124	if s.TransformationConfigurations == nil {
11125		invalidParams.Add(request.NewErrParamRequired("TransformationConfigurations"))
11126	}
11127	if s.TransformationConfigurations != nil {
11128		for i, v := range s.TransformationConfigurations {
11129			if v == nil {
11130				continue
11131			}
11132			if err := v.Validate(); err != nil {
11133				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TransformationConfigurations", i), err.(request.ErrInvalidParams))
11134			}
11135		}
11136	}
11137
11138	if invalidParams.Len() > 0 {
11139		return invalidParams
11140	}
11141	return nil
11142}
11143
11144// SetAllowedFeatures sets the AllowedFeatures field's value.
11145func (s *ObjectLambdaConfiguration) SetAllowedFeatures(v []*string) *ObjectLambdaConfiguration {
11146	s.AllowedFeatures = v
11147	return s
11148}
11149
11150// SetCloudWatchMetricsEnabled sets the CloudWatchMetricsEnabled field's value.
11151func (s *ObjectLambdaConfiguration) SetCloudWatchMetricsEnabled(v bool) *ObjectLambdaConfiguration {
11152	s.CloudWatchMetricsEnabled = &v
11153	return s
11154}
11155
11156// SetSupportingAccessPoint sets the SupportingAccessPoint field's value.
11157func (s *ObjectLambdaConfiguration) SetSupportingAccessPoint(v string) *ObjectLambdaConfiguration {
11158	s.SupportingAccessPoint = &v
11159	return s
11160}
11161
11162// SetTransformationConfigurations sets the TransformationConfigurations field's value.
11163func (s *ObjectLambdaConfiguration) SetTransformationConfigurations(v []*ObjectLambdaTransformationConfiguration) *ObjectLambdaConfiguration {
11164	s.TransformationConfigurations = v
11165	return s
11166}
11167
11168// A container for AwsLambdaTransformation.
11169type ObjectLambdaContentTransformation struct {
11170	_ struct{} `type:"structure"`
11171
11172	// A container for an Lambda function.
11173	AwsLambda *AwsLambdaTransformation `type:"structure"`
11174}
11175
11176// String returns the string representation
11177func (s ObjectLambdaContentTransformation) String() string {
11178	return awsutil.Prettify(s)
11179}
11180
11181// GoString returns the string representation
11182func (s ObjectLambdaContentTransformation) GoString() string {
11183	return s.String()
11184}
11185
11186// Validate inspects the fields of the type to determine if they are valid.
11187func (s *ObjectLambdaContentTransformation) Validate() error {
11188	invalidParams := request.ErrInvalidParams{Context: "ObjectLambdaContentTransformation"}
11189	if s.AwsLambda != nil {
11190		if err := s.AwsLambda.Validate(); err != nil {
11191			invalidParams.AddNested("AwsLambda", err.(request.ErrInvalidParams))
11192		}
11193	}
11194
11195	if invalidParams.Len() > 0 {
11196		return invalidParams
11197	}
11198	return nil
11199}
11200
11201// SetAwsLambda sets the AwsLambda field's value.
11202func (s *ObjectLambdaContentTransformation) SetAwsLambda(v *AwsLambdaTransformation) *ObjectLambdaContentTransformation {
11203	s.AwsLambda = v
11204	return s
11205}
11206
11207// A configuration used when creating an Object Lambda Access Point transformation.
11208type ObjectLambdaTransformationConfiguration struct {
11209	_ struct{} `type:"structure"`
11210
11211	// A container for the action of an Object Lambda Access Point configuration.
11212	// Valid input is GetObject.
11213	//
11214	// Actions is a required field
11215	Actions []*string `locationNameList:"Action" type:"list" required:"true"`
11216
11217	// A container for the content transformation of an Object Lambda Access Point
11218	// configuration.
11219	//
11220	// ContentTransformation is a required field
11221	ContentTransformation *ObjectLambdaContentTransformation `type:"structure" required:"true"`
11222}
11223
11224// String returns the string representation
11225func (s ObjectLambdaTransformationConfiguration) String() string {
11226	return awsutil.Prettify(s)
11227}
11228
11229// GoString returns the string representation
11230func (s ObjectLambdaTransformationConfiguration) GoString() string {
11231	return s.String()
11232}
11233
11234// Validate inspects the fields of the type to determine if they are valid.
11235func (s *ObjectLambdaTransformationConfiguration) Validate() error {
11236	invalidParams := request.ErrInvalidParams{Context: "ObjectLambdaTransformationConfiguration"}
11237	if s.Actions == nil {
11238		invalidParams.Add(request.NewErrParamRequired("Actions"))
11239	}
11240	if s.ContentTransformation == nil {
11241		invalidParams.Add(request.NewErrParamRequired("ContentTransformation"))
11242	}
11243	if s.ContentTransformation != nil {
11244		if err := s.ContentTransformation.Validate(); err != nil {
11245			invalidParams.AddNested("ContentTransformation", err.(request.ErrInvalidParams))
11246		}
11247	}
11248
11249	if invalidParams.Len() > 0 {
11250		return invalidParams
11251	}
11252	return nil
11253}
11254
11255// SetActions sets the Actions field's value.
11256func (s *ObjectLambdaTransformationConfiguration) SetActions(v []*string) *ObjectLambdaTransformationConfiguration {
11257	s.Actions = v
11258	return s
11259}
11260
11261// SetContentTransformation sets the ContentTransformation field's value.
11262func (s *ObjectLambdaTransformationConfiguration) SetContentTransformation(v *ObjectLambdaContentTransformation) *ObjectLambdaTransformationConfiguration {
11263	s.ContentTransformation = v
11264	return s
11265}
11266
11267// Indicates whether this access point policy is public. For more information
11268// about how Amazon S3 evaluates policies to determine whether they are public,
11269// 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)
11270// in the Amazon S3 User Guide.
11271type PolicyStatus struct {
11272	_ struct{} `type:"structure"`
11273
11274	IsPublic *bool `locationName:"IsPublic" type:"boolean"`
11275}
11276
11277// String returns the string representation
11278func (s PolicyStatus) String() string {
11279	return awsutil.Prettify(s)
11280}
11281
11282// GoString returns the string representation
11283func (s PolicyStatus) GoString() string {
11284	return s.String()
11285}
11286
11287// SetIsPublic sets the IsPublic field's value.
11288func (s *PolicyStatus) SetIsPublic(v bool) *PolicyStatus {
11289	s.IsPublic = &v
11290	return s
11291}
11292
11293// A container for the prefix-level configuration.
11294type PrefixLevel struct {
11295	_ struct{} `type:"structure"`
11296
11297	// A container for the prefix-level storage metrics for S3 Storage Lens.
11298	//
11299	// StorageMetrics is a required field
11300	StorageMetrics *PrefixLevelStorageMetrics `type:"structure" required:"true"`
11301}
11302
11303// String returns the string representation
11304func (s PrefixLevel) String() string {
11305	return awsutil.Prettify(s)
11306}
11307
11308// GoString returns the string representation
11309func (s PrefixLevel) GoString() string {
11310	return s.String()
11311}
11312
11313// Validate inspects the fields of the type to determine if they are valid.
11314func (s *PrefixLevel) Validate() error {
11315	invalidParams := request.ErrInvalidParams{Context: "PrefixLevel"}
11316	if s.StorageMetrics == nil {
11317		invalidParams.Add(request.NewErrParamRequired("StorageMetrics"))
11318	}
11319	if s.StorageMetrics != nil {
11320		if err := s.StorageMetrics.Validate(); err != nil {
11321			invalidParams.AddNested("StorageMetrics", err.(request.ErrInvalidParams))
11322		}
11323	}
11324
11325	if invalidParams.Len() > 0 {
11326		return invalidParams
11327	}
11328	return nil
11329}
11330
11331// SetStorageMetrics sets the StorageMetrics field's value.
11332func (s *PrefixLevel) SetStorageMetrics(v *PrefixLevelStorageMetrics) *PrefixLevel {
11333	s.StorageMetrics = v
11334	return s
11335}
11336
11337// A container for the prefix-level storage metrics for S3 Storage Lens.
11338type PrefixLevelStorageMetrics struct {
11339	_ struct{} `type:"structure"`
11340
11341	// A container for whether prefix-level storage metrics are enabled.
11342	IsEnabled *bool `type:"boolean"`
11343
11344	SelectionCriteria *SelectionCriteria `type:"structure"`
11345}
11346
11347// String returns the string representation
11348func (s PrefixLevelStorageMetrics) String() string {
11349	return awsutil.Prettify(s)
11350}
11351
11352// GoString returns the string representation
11353func (s PrefixLevelStorageMetrics) GoString() string {
11354	return s.String()
11355}
11356
11357// Validate inspects the fields of the type to determine if they are valid.
11358func (s *PrefixLevelStorageMetrics) Validate() error {
11359	invalidParams := request.ErrInvalidParams{Context: "PrefixLevelStorageMetrics"}
11360	if s.SelectionCriteria != nil {
11361		if err := s.SelectionCriteria.Validate(); err != nil {
11362			invalidParams.AddNested("SelectionCriteria", err.(request.ErrInvalidParams))
11363		}
11364	}
11365
11366	if invalidParams.Len() > 0 {
11367		return invalidParams
11368	}
11369	return nil
11370}
11371
11372// SetIsEnabled sets the IsEnabled field's value.
11373func (s *PrefixLevelStorageMetrics) SetIsEnabled(v bool) *PrefixLevelStorageMetrics {
11374	s.IsEnabled = &v
11375	return s
11376}
11377
11378// SetSelectionCriteria sets the SelectionCriteria field's value.
11379func (s *PrefixLevelStorageMetrics) SetSelectionCriteria(v *SelectionCriteria) *PrefixLevelStorageMetrics {
11380	s.SelectionCriteria = v
11381	return s
11382}
11383
11384// The PublicAccessBlock configuration that you want to apply to this Amazon
11385// S3 account. You can enable the configuration options in any combination.
11386// For more information about when Amazon S3 considers a bucket or object public,
11387// 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)
11388// in the Amazon S3 User Guide.
11389//
11390// This is not supported for Amazon S3 on Outposts.
11391type PublicAccessBlockConfiguration struct {
11392	_ struct{} `type:"structure"`
11393
11394	// Specifies whether Amazon S3 should block public access control lists (ACLs)
11395	// for buckets in this account. Setting this element to TRUE causes the following
11396	// behavior:
11397	//
11398	//    * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is
11399	//    public.
11400	//
11401	//    * PUT Object calls fail if the request includes a public ACL.
11402	//
11403	//    * PUT Bucket calls fail if the request includes a public ACL.
11404	//
11405	// Enabling this setting doesn't affect existing policies or ACLs.
11406	//
11407	// This is not supported for Amazon S3 on Outposts.
11408	BlockPublicAcls *bool `locationName:"BlockPublicAcls" type:"boolean"`
11409
11410	// Specifies whether Amazon S3 should block public bucket policies for buckets
11411	// in this account. Setting this element to TRUE causes Amazon S3 to reject
11412	// calls to PUT Bucket policy if the specified bucket policy allows public access.
11413	//
11414	// Enabling this setting doesn't affect existing bucket policies.
11415	//
11416	// This is not supported for Amazon S3 on Outposts.
11417	BlockPublicPolicy *bool `locationName:"BlockPublicPolicy" type:"boolean"`
11418
11419	// Specifies whether Amazon S3 should ignore public ACLs for buckets in this
11420	// account. Setting this element to TRUE causes Amazon S3 to ignore all public
11421	// ACLs on buckets in this account and any objects that they contain.
11422	//
11423	// Enabling this setting doesn't affect the persistence of any existing ACLs
11424	// and doesn't prevent new public ACLs from being set.
11425	//
11426	// This is not supported for Amazon S3 on Outposts.
11427	IgnorePublicAcls *bool `locationName:"IgnorePublicAcls" type:"boolean"`
11428
11429	// Specifies whether Amazon S3 should restrict public bucket policies for buckets
11430	// in this account. Setting this element to TRUE restricts access to buckets
11431	// with public policies to only Amazon Web Service principals and authorized
11432	// users within this account.
11433	//
11434	// Enabling this setting doesn't affect previously stored bucket policies, except
11435	// that public and cross-account access within any public bucket policy, including
11436	// non-public delegation to specific accounts, is blocked.
11437	//
11438	// This is not supported for Amazon S3 on Outposts.
11439	RestrictPublicBuckets *bool `locationName:"RestrictPublicBuckets" type:"boolean"`
11440}
11441
11442// String returns the string representation
11443func (s PublicAccessBlockConfiguration) String() string {
11444	return awsutil.Prettify(s)
11445}
11446
11447// GoString returns the string representation
11448func (s PublicAccessBlockConfiguration) GoString() string {
11449	return s.String()
11450}
11451
11452// SetBlockPublicAcls sets the BlockPublicAcls field's value.
11453func (s *PublicAccessBlockConfiguration) SetBlockPublicAcls(v bool) *PublicAccessBlockConfiguration {
11454	s.BlockPublicAcls = &v
11455	return s
11456}
11457
11458// SetBlockPublicPolicy sets the BlockPublicPolicy field's value.
11459func (s *PublicAccessBlockConfiguration) SetBlockPublicPolicy(v bool) *PublicAccessBlockConfiguration {
11460	s.BlockPublicPolicy = &v
11461	return s
11462}
11463
11464// SetIgnorePublicAcls sets the IgnorePublicAcls field's value.
11465func (s *PublicAccessBlockConfiguration) SetIgnorePublicAcls(v bool) *PublicAccessBlockConfiguration {
11466	s.IgnorePublicAcls = &v
11467	return s
11468}
11469
11470// SetRestrictPublicBuckets sets the RestrictPublicBuckets field's value.
11471func (s *PublicAccessBlockConfiguration) SetRestrictPublicBuckets(v bool) *PublicAccessBlockConfiguration {
11472	s.RestrictPublicBuckets = &v
11473	return s
11474}
11475
11476type PutAccessPointConfigurationForObjectLambdaInput struct {
11477	_ struct{} `locationName:"PutAccessPointConfigurationForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
11478
11479	// The account ID for the account that owns the specified Object Lambda Access
11480	// Point.
11481	//
11482	// AccountId is a required field
11483	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11484
11485	// Object Lambda Access Point configuration document.
11486	//
11487	// Configuration is a required field
11488	Configuration *ObjectLambdaConfiguration `type:"structure" required:"true"`
11489
11490	// The name of the Object Lambda Access Point.
11491	//
11492	// Name is a required field
11493	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
11494}
11495
11496// String returns the string representation
11497func (s PutAccessPointConfigurationForObjectLambdaInput) String() string {
11498	return awsutil.Prettify(s)
11499}
11500
11501// GoString returns the string representation
11502func (s PutAccessPointConfigurationForObjectLambdaInput) GoString() string {
11503	return s.String()
11504}
11505
11506// Validate inspects the fields of the type to determine if they are valid.
11507func (s *PutAccessPointConfigurationForObjectLambdaInput) Validate() error {
11508	invalidParams := request.ErrInvalidParams{Context: "PutAccessPointConfigurationForObjectLambdaInput"}
11509	if s.AccountId == nil {
11510		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11511	}
11512	if s.AccountId != nil && len(*s.AccountId) < 1 {
11513		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11514	}
11515	if s.Configuration == nil {
11516		invalidParams.Add(request.NewErrParamRequired("Configuration"))
11517	}
11518	if s.Name == nil {
11519		invalidParams.Add(request.NewErrParamRequired("Name"))
11520	}
11521	if s.Name != nil && len(*s.Name) < 3 {
11522		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
11523	}
11524	if s.Configuration != nil {
11525		if err := s.Configuration.Validate(); err != nil {
11526			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
11527		}
11528	}
11529
11530	if invalidParams.Len() > 0 {
11531		return invalidParams
11532	}
11533	return nil
11534}
11535
11536// SetAccountId sets the AccountId field's value.
11537func (s *PutAccessPointConfigurationForObjectLambdaInput) SetAccountId(v string) *PutAccessPointConfigurationForObjectLambdaInput {
11538	s.AccountId = &v
11539	return s
11540}
11541
11542// SetConfiguration sets the Configuration field's value.
11543func (s *PutAccessPointConfigurationForObjectLambdaInput) SetConfiguration(v *ObjectLambdaConfiguration) *PutAccessPointConfigurationForObjectLambdaInput {
11544	s.Configuration = v
11545	return s
11546}
11547
11548// SetName sets the Name field's value.
11549func (s *PutAccessPointConfigurationForObjectLambdaInput) SetName(v string) *PutAccessPointConfigurationForObjectLambdaInput {
11550	s.Name = &v
11551	return s
11552}
11553
11554func (s *PutAccessPointConfigurationForObjectLambdaInput) hostLabels() map[string]string {
11555	return map[string]string{
11556		"AccountId": aws.StringValue(s.AccountId),
11557	}
11558}
11559
11560type PutAccessPointConfigurationForObjectLambdaOutput struct {
11561	_ struct{} `type:"structure"`
11562}
11563
11564// String returns the string representation
11565func (s PutAccessPointConfigurationForObjectLambdaOutput) String() string {
11566	return awsutil.Prettify(s)
11567}
11568
11569// GoString returns the string representation
11570func (s PutAccessPointConfigurationForObjectLambdaOutput) GoString() string {
11571	return s.String()
11572}
11573
11574type PutAccessPointPolicyForObjectLambdaInput struct {
11575	_ struct{} `locationName:"PutAccessPointPolicyForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
11576
11577	// The account ID for the account that owns the specified Object Lambda Access
11578	// Point.
11579	//
11580	// AccountId is a required field
11581	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11582
11583	// The name of the Object Lambda Access Point.
11584	//
11585	// Name is a required field
11586	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
11587
11588	// Object Lambda Access Point resource policy document.
11589	//
11590	// Policy is a required field
11591	Policy *string `type:"string" required:"true"`
11592}
11593
11594// String returns the string representation
11595func (s PutAccessPointPolicyForObjectLambdaInput) String() string {
11596	return awsutil.Prettify(s)
11597}
11598
11599// GoString returns the string representation
11600func (s PutAccessPointPolicyForObjectLambdaInput) GoString() string {
11601	return s.String()
11602}
11603
11604// Validate inspects the fields of the type to determine if they are valid.
11605func (s *PutAccessPointPolicyForObjectLambdaInput) Validate() error {
11606	invalidParams := request.ErrInvalidParams{Context: "PutAccessPointPolicyForObjectLambdaInput"}
11607	if s.AccountId == nil {
11608		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11609	}
11610	if s.AccountId != nil && len(*s.AccountId) < 1 {
11611		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11612	}
11613	if s.Name == nil {
11614		invalidParams.Add(request.NewErrParamRequired("Name"))
11615	}
11616	if s.Name != nil && len(*s.Name) < 3 {
11617		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
11618	}
11619	if s.Policy == nil {
11620		invalidParams.Add(request.NewErrParamRequired("Policy"))
11621	}
11622
11623	if invalidParams.Len() > 0 {
11624		return invalidParams
11625	}
11626	return nil
11627}
11628
11629// SetAccountId sets the AccountId field's value.
11630func (s *PutAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *PutAccessPointPolicyForObjectLambdaInput {
11631	s.AccountId = &v
11632	return s
11633}
11634
11635// SetName sets the Name field's value.
11636func (s *PutAccessPointPolicyForObjectLambdaInput) SetName(v string) *PutAccessPointPolicyForObjectLambdaInput {
11637	s.Name = &v
11638	return s
11639}
11640
11641// SetPolicy sets the Policy field's value.
11642func (s *PutAccessPointPolicyForObjectLambdaInput) SetPolicy(v string) *PutAccessPointPolicyForObjectLambdaInput {
11643	s.Policy = &v
11644	return s
11645}
11646
11647func (s *PutAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string {
11648	return map[string]string{
11649		"AccountId": aws.StringValue(s.AccountId),
11650	}
11651}
11652
11653type PutAccessPointPolicyForObjectLambdaOutput struct {
11654	_ struct{} `type:"structure"`
11655}
11656
11657// String returns the string representation
11658func (s PutAccessPointPolicyForObjectLambdaOutput) String() string {
11659	return awsutil.Prettify(s)
11660}
11661
11662// GoString returns the string representation
11663func (s PutAccessPointPolicyForObjectLambdaOutput) GoString() string {
11664	return s.String()
11665}
11666
11667type PutAccessPointPolicyInput struct {
11668	_ struct{} `locationName:"PutAccessPointPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
11669
11670	// The account ID for owner of the bucket associated with the specified access
11671	// point.
11672	//
11673	// AccountId is a required field
11674	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11675
11676	// The name of the access point that you want to associate with the specified
11677	// policy.
11678	//
11679	// For using this parameter with Amazon S3 on Outposts with the REST API, you
11680	// must specify the name and the x-amz-outpost-id as well.
11681	//
11682	// For using this parameter with S3 on Outposts with the Amazon Web Services
11683	// SDK and CLI, you must specify the ARN of the access point accessed in the
11684	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
11685	// For example, to access the access point reports-ap through outpost my-outpost
11686	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
11687	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
11688	// The value must be URL encoded.
11689	//
11690	// Name is a required field
11691	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
11692
11693	// The policy that you want to apply to the specified access point. For more
11694	// information about access point policies, see Managing data access with Amazon
11695	// S3 access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)
11696	// in the Amazon S3 User Guide.
11697	//
11698	// Policy is a required field
11699	Policy *string `type:"string" required:"true"`
11700}
11701
11702// String returns the string representation
11703func (s PutAccessPointPolicyInput) String() string {
11704	return awsutil.Prettify(s)
11705}
11706
11707// GoString returns the string representation
11708func (s PutAccessPointPolicyInput) GoString() string {
11709	return s.String()
11710}
11711
11712// Validate inspects the fields of the type to determine if they are valid.
11713func (s *PutAccessPointPolicyInput) Validate() error {
11714	invalidParams := request.ErrInvalidParams{Context: "PutAccessPointPolicyInput"}
11715	if s.AccountId == nil {
11716		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11717	}
11718	if s.AccountId != nil && len(*s.AccountId) < 1 {
11719		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11720	}
11721	if s.Name == nil {
11722		invalidParams.Add(request.NewErrParamRequired("Name"))
11723	}
11724	if s.Name != nil && len(*s.Name) < 3 {
11725		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
11726	}
11727	if s.Policy == nil {
11728		invalidParams.Add(request.NewErrParamRequired("Policy"))
11729	}
11730
11731	if invalidParams.Len() > 0 {
11732		return invalidParams
11733	}
11734	return nil
11735}
11736
11737// SetAccountId sets the AccountId field's value.
11738func (s *PutAccessPointPolicyInput) SetAccountId(v string) *PutAccessPointPolicyInput {
11739	s.AccountId = &v
11740	return s
11741}
11742
11743// SetName sets the Name field's value.
11744func (s *PutAccessPointPolicyInput) SetName(v string) *PutAccessPointPolicyInput {
11745	s.Name = &v
11746	return s
11747}
11748
11749// SetPolicy sets the Policy field's value.
11750func (s *PutAccessPointPolicyInput) SetPolicy(v string) *PutAccessPointPolicyInput {
11751	s.Policy = &v
11752	return s
11753}
11754
11755func (s *PutAccessPointPolicyInput) hostLabels() map[string]string {
11756	return map[string]string{
11757		"AccountId": aws.StringValue(s.AccountId),
11758	}
11759}
11760
11761func (s *PutAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
11762	if s.Name == nil {
11763		return nil, fmt.Errorf("member Name is nil")
11764	}
11765	return parseEndpointARN(*s.Name)
11766}
11767
11768func (s *PutAccessPointPolicyInput) hasEndpointARN() bool {
11769	if s.Name == nil {
11770		return false
11771	}
11772	return arn.IsARN(*s.Name)
11773}
11774
11775// updateArnableField updates the value of the input field that
11776// takes an ARN as an input. This method is useful to backfill
11777// the parsed resource name from ARN into the input member.
11778// It returns a pointer to a modified copy of input and an error.
11779// Note that original input is not modified.
11780func (s PutAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
11781	if s.Name == nil {
11782		return nil, fmt.Errorf("member Name is nil")
11783	}
11784	s.Name = aws.String(v)
11785	return &s, nil
11786}
11787
11788// updateAccountID returns a pointer to a modified copy of input,
11789// if account id is not provided, we update the account id in modified input
11790// if account id is provided, but doesn't match with the one in ARN, we throw an error
11791// if account id is not updated, we return nil. Note that original input is not modified.
11792func (s PutAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
11793	if s.AccountId == nil {
11794		s.AccountId = aws.String(accountId)
11795		return &s, nil
11796	} else if *s.AccountId != accountId {
11797		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
11798	}
11799	return nil, nil
11800}
11801
11802type PutAccessPointPolicyOutput struct {
11803	_ struct{} `type:"structure"`
11804}
11805
11806// String returns the string representation
11807func (s PutAccessPointPolicyOutput) String() string {
11808	return awsutil.Prettify(s)
11809}
11810
11811// GoString returns the string representation
11812func (s PutAccessPointPolicyOutput) GoString() string {
11813	return s.String()
11814}
11815
11816type PutBucketLifecycleConfigurationInput struct {
11817	_ struct{} `locationName:"PutBucketLifecycleConfigurationRequest" type:"structure" payload:"LifecycleConfiguration"`
11818
11819	// The account ID of the Outposts bucket.
11820	//
11821	// AccountId is a required field
11822	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11823
11824	// The name of the bucket for which to set the configuration.
11825	//
11826	// Bucket is a required field
11827	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
11828
11829	// Container for lifecycle rules. You can add as many as 1,000 rules.
11830	LifecycleConfiguration *LifecycleConfiguration `locationName:"LifecycleConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
11831}
11832
11833// String returns the string representation
11834func (s PutBucketLifecycleConfigurationInput) String() string {
11835	return awsutil.Prettify(s)
11836}
11837
11838// GoString returns the string representation
11839func (s PutBucketLifecycleConfigurationInput) GoString() string {
11840	return s.String()
11841}
11842
11843// Validate inspects the fields of the type to determine if they are valid.
11844func (s *PutBucketLifecycleConfigurationInput) Validate() error {
11845	invalidParams := request.ErrInvalidParams{Context: "PutBucketLifecycleConfigurationInput"}
11846	if s.AccountId == nil {
11847		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11848	}
11849	if s.AccountId != nil && len(*s.AccountId) < 1 {
11850		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
11851	}
11852	if s.Bucket == nil {
11853		invalidParams.Add(request.NewErrParamRequired("Bucket"))
11854	}
11855	if s.Bucket != nil && len(*s.Bucket) < 3 {
11856		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
11857	}
11858	if s.LifecycleConfiguration != nil {
11859		if err := s.LifecycleConfiguration.Validate(); err != nil {
11860			invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams))
11861		}
11862	}
11863
11864	if invalidParams.Len() > 0 {
11865		return invalidParams
11866	}
11867	return nil
11868}
11869
11870// SetAccountId sets the AccountId field's value.
11871func (s *PutBucketLifecycleConfigurationInput) SetAccountId(v string) *PutBucketLifecycleConfigurationInput {
11872	s.AccountId = &v
11873	return s
11874}
11875
11876// SetBucket sets the Bucket field's value.
11877func (s *PutBucketLifecycleConfigurationInput) SetBucket(v string) *PutBucketLifecycleConfigurationInput {
11878	s.Bucket = &v
11879	return s
11880}
11881
11882// SetLifecycleConfiguration sets the LifecycleConfiguration field's value.
11883func (s *PutBucketLifecycleConfigurationInput) SetLifecycleConfiguration(v *LifecycleConfiguration) *PutBucketLifecycleConfigurationInput {
11884	s.LifecycleConfiguration = v
11885	return s
11886}
11887
11888func (s *PutBucketLifecycleConfigurationInput) hostLabels() map[string]string {
11889	return map[string]string{
11890		"AccountId": aws.StringValue(s.AccountId),
11891	}
11892}
11893
11894func (s *PutBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
11895	if s.Bucket == nil {
11896		return nil, fmt.Errorf("member Bucket is nil")
11897	}
11898	return parseEndpointARN(*s.Bucket)
11899}
11900
11901func (s *PutBucketLifecycleConfigurationInput) hasEndpointARN() bool {
11902	if s.Bucket == nil {
11903		return false
11904	}
11905	return arn.IsARN(*s.Bucket)
11906}
11907
11908// updateArnableField updates the value of the input field that
11909// takes an ARN as an input. This method is useful to backfill
11910// the parsed resource name from ARN into the input member.
11911// It returns a pointer to a modified copy of input and an error.
11912// Note that original input is not modified.
11913func (s PutBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
11914	if s.Bucket == nil {
11915		return nil, fmt.Errorf("member Bucket is nil")
11916	}
11917	s.Bucket = aws.String(v)
11918	return &s, nil
11919}
11920
11921// updateAccountID returns a pointer to a modified copy of input,
11922// if account id is not provided, we update the account id in modified input
11923// if account id is provided, but doesn't match with the one in ARN, we throw an error
11924// if account id is not updated, we return nil. Note that original input is not modified.
11925func (s PutBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
11926	if s.AccountId == nil {
11927		s.AccountId = aws.String(accountId)
11928		return &s, nil
11929	} else if *s.AccountId != accountId {
11930		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
11931	}
11932	return nil, nil
11933}
11934
11935type PutBucketLifecycleConfigurationOutput struct {
11936	_ struct{} `type:"structure"`
11937}
11938
11939// String returns the string representation
11940func (s PutBucketLifecycleConfigurationOutput) String() string {
11941	return awsutil.Prettify(s)
11942}
11943
11944// GoString returns the string representation
11945func (s PutBucketLifecycleConfigurationOutput) GoString() string {
11946	return s.String()
11947}
11948
11949type PutBucketPolicyInput struct {
11950	_ struct{} `locationName:"PutBucketPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
11951
11952	// The account ID of the Outposts bucket.
11953	//
11954	// AccountId is a required field
11955	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
11956
11957	// Specifies the bucket.
11958	//
11959	// For using this parameter with Amazon S3 on Outposts with the REST API, you
11960	// must specify the name and the x-amz-outpost-id as well.
11961	//
11962	// For using this parameter with S3 on Outposts with the Amazon Web Services
11963	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
11964	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
11965	// For example, to access the bucket reports through outpost my-outpost owned
11966	// 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.
11967	// The value must be URL encoded.
11968	//
11969	// Bucket is a required field
11970	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
11971
11972	// Set this parameter to true to confirm that you want to remove your permissions
11973	// to change this bucket policy in the future.
11974	//
11975	// This is not supported by Amazon S3 on Outposts buckets.
11976	ConfirmRemoveSelfBucketAccess *bool `location:"header" locationName:"x-amz-confirm-remove-self-bucket-access" type:"boolean"`
11977
11978	// The bucket policy as a JSON document.
11979	//
11980	// Policy is a required field
11981	Policy *string `type:"string" required:"true"`
11982}
11983
11984// String returns the string representation
11985func (s PutBucketPolicyInput) String() string {
11986	return awsutil.Prettify(s)
11987}
11988
11989// GoString returns the string representation
11990func (s PutBucketPolicyInput) GoString() string {
11991	return s.String()
11992}
11993
11994// Validate inspects the fields of the type to determine if they are valid.
11995func (s *PutBucketPolicyInput) Validate() error {
11996	invalidParams := request.ErrInvalidParams{Context: "PutBucketPolicyInput"}
11997	if s.AccountId == nil {
11998		invalidParams.Add(request.NewErrParamRequired("AccountId"))
11999	}
12000	if s.AccountId != nil && len(*s.AccountId) < 1 {
12001		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12002	}
12003	if s.Bucket == nil {
12004		invalidParams.Add(request.NewErrParamRequired("Bucket"))
12005	}
12006	if s.Bucket != nil && len(*s.Bucket) < 3 {
12007		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
12008	}
12009	if s.Policy == nil {
12010		invalidParams.Add(request.NewErrParamRequired("Policy"))
12011	}
12012
12013	if invalidParams.Len() > 0 {
12014		return invalidParams
12015	}
12016	return nil
12017}
12018
12019// SetAccountId sets the AccountId field's value.
12020func (s *PutBucketPolicyInput) SetAccountId(v string) *PutBucketPolicyInput {
12021	s.AccountId = &v
12022	return s
12023}
12024
12025// SetBucket sets the Bucket field's value.
12026func (s *PutBucketPolicyInput) SetBucket(v string) *PutBucketPolicyInput {
12027	s.Bucket = &v
12028	return s
12029}
12030
12031// SetConfirmRemoveSelfBucketAccess sets the ConfirmRemoveSelfBucketAccess field's value.
12032func (s *PutBucketPolicyInput) SetConfirmRemoveSelfBucketAccess(v bool) *PutBucketPolicyInput {
12033	s.ConfirmRemoveSelfBucketAccess = &v
12034	return s
12035}
12036
12037// SetPolicy sets the Policy field's value.
12038func (s *PutBucketPolicyInput) SetPolicy(v string) *PutBucketPolicyInput {
12039	s.Policy = &v
12040	return s
12041}
12042
12043func (s *PutBucketPolicyInput) hostLabels() map[string]string {
12044	return map[string]string{
12045		"AccountId": aws.StringValue(s.AccountId),
12046	}
12047}
12048
12049func (s *PutBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
12050	if s.Bucket == nil {
12051		return nil, fmt.Errorf("member Bucket is nil")
12052	}
12053	return parseEndpointARN(*s.Bucket)
12054}
12055
12056func (s *PutBucketPolicyInput) hasEndpointARN() bool {
12057	if s.Bucket == nil {
12058		return false
12059	}
12060	return arn.IsARN(*s.Bucket)
12061}
12062
12063// updateArnableField updates the value of the input field that
12064// takes an ARN as an input. This method is useful to backfill
12065// the parsed resource name from ARN into the input member.
12066// It returns a pointer to a modified copy of input and an error.
12067// Note that original input is not modified.
12068func (s PutBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
12069	if s.Bucket == nil {
12070		return nil, fmt.Errorf("member Bucket is nil")
12071	}
12072	s.Bucket = aws.String(v)
12073	return &s, nil
12074}
12075
12076// updateAccountID returns a pointer to a modified copy of input,
12077// if account id is not provided, we update the account id in modified input
12078// if account id is provided, but doesn't match with the one in ARN, we throw an error
12079// if account id is not updated, we return nil. Note that original input is not modified.
12080func (s PutBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
12081	if s.AccountId == nil {
12082		s.AccountId = aws.String(accountId)
12083		return &s, nil
12084	} else if *s.AccountId != accountId {
12085		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
12086	}
12087	return nil, nil
12088}
12089
12090type PutBucketPolicyOutput struct {
12091	_ struct{} `type:"structure"`
12092}
12093
12094// String returns the string representation
12095func (s PutBucketPolicyOutput) String() string {
12096	return awsutil.Prettify(s)
12097}
12098
12099// GoString returns the string representation
12100func (s PutBucketPolicyOutput) GoString() string {
12101	return s.String()
12102}
12103
12104type PutBucketTaggingInput struct {
12105	_ struct{} `locationName:"PutBucketTaggingRequest" type:"structure" payload:"Tagging"`
12106
12107	// The account ID of the Outposts bucket.
12108	//
12109	// AccountId is a required field
12110	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
12111
12112	// The Amazon Resource Name (ARN) of the bucket.
12113	//
12114	// For using this parameter with Amazon S3 on Outposts with the REST API, you
12115	// must specify the name and the x-amz-outpost-id as well.
12116	//
12117	// For using this parameter with S3 on Outposts with the Amazon Web Services
12118	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
12119	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
12120	// For example, to access the bucket reports through outpost my-outpost owned
12121	// 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.
12122	// The value must be URL encoded.
12123	//
12124	// Bucket is a required field
12125	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
12126
12127	// Tagging is a required field
12128	Tagging *Tagging `locationName:"Tagging" type:"structure" required:"true" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
12129}
12130
12131// String returns the string representation
12132func (s PutBucketTaggingInput) String() string {
12133	return awsutil.Prettify(s)
12134}
12135
12136// GoString returns the string representation
12137func (s PutBucketTaggingInput) GoString() string {
12138	return s.String()
12139}
12140
12141// Validate inspects the fields of the type to determine if they are valid.
12142func (s *PutBucketTaggingInput) Validate() error {
12143	invalidParams := request.ErrInvalidParams{Context: "PutBucketTaggingInput"}
12144	if s.AccountId == nil {
12145		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12146	}
12147	if s.AccountId != nil && len(*s.AccountId) < 1 {
12148		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12149	}
12150	if s.Bucket == nil {
12151		invalidParams.Add(request.NewErrParamRequired("Bucket"))
12152	}
12153	if s.Bucket != nil && len(*s.Bucket) < 3 {
12154		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
12155	}
12156	if s.Tagging == nil {
12157		invalidParams.Add(request.NewErrParamRequired("Tagging"))
12158	}
12159	if s.Tagging != nil {
12160		if err := s.Tagging.Validate(); err != nil {
12161			invalidParams.AddNested("Tagging", err.(request.ErrInvalidParams))
12162		}
12163	}
12164
12165	if invalidParams.Len() > 0 {
12166		return invalidParams
12167	}
12168	return nil
12169}
12170
12171// SetAccountId sets the AccountId field's value.
12172func (s *PutBucketTaggingInput) SetAccountId(v string) *PutBucketTaggingInput {
12173	s.AccountId = &v
12174	return s
12175}
12176
12177// SetBucket sets the Bucket field's value.
12178func (s *PutBucketTaggingInput) SetBucket(v string) *PutBucketTaggingInput {
12179	s.Bucket = &v
12180	return s
12181}
12182
12183// SetTagging sets the Tagging field's value.
12184func (s *PutBucketTaggingInput) SetTagging(v *Tagging) *PutBucketTaggingInput {
12185	s.Tagging = v
12186	return s
12187}
12188
12189func (s *PutBucketTaggingInput) hostLabels() map[string]string {
12190	return map[string]string{
12191		"AccountId": aws.StringValue(s.AccountId),
12192	}
12193}
12194
12195func (s *PutBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
12196	if s.Bucket == nil {
12197		return nil, fmt.Errorf("member Bucket is nil")
12198	}
12199	return parseEndpointARN(*s.Bucket)
12200}
12201
12202func (s *PutBucketTaggingInput) hasEndpointARN() bool {
12203	if s.Bucket == nil {
12204		return false
12205	}
12206	return arn.IsARN(*s.Bucket)
12207}
12208
12209// updateArnableField updates the value of the input field that
12210// takes an ARN as an input. This method is useful to backfill
12211// the parsed resource name from ARN into the input member.
12212// It returns a pointer to a modified copy of input and an error.
12213// Note that original input is not modified.
12214func (s PutBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
12215	if s.Bucket == nil {
12216		return nil, fmt.Errorf("member Bucket is nil")
12217	}
12218	s.Bucket = aws.String(v)
12219	return &s, nil
12220}
12221
12222// updateAccountID returns a pointer to a modified copy of input,
12223// if account id is not provided, we update the account id in modified input
12224// if account id is provided, but doesn't match with the one in ARN, we throw an error
12225// if account id is not updated, we return nil. Note that original input is not modified.
12226func (s PutBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
12227	if s.AccountId == nil {
12228		s.AccountId = aws.String(accountId)
12229		return &s, nil
12230	} else if *s.AccountId != accountId {
12231		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
12232	}
12233	return nil, nil
12234}
12235
12236type PutBucketTaggingOutput struct {
12237	_ struct{} `type:"structure"`
12238}
12239
12240// String returns the string representation
12241func (s PutBucketTaggingOutput) String() string {
12242	return awsutil.Prettify(s)
12243}
12244
12245// GoString returns the string representation
12246func (s PutBucketTaggingOutput) GoString() string {
12247	return s.String()
12248}
12249
12250type PutJobTaggingInput struct {
12251	_ struct{} `locationName:"PutJobTaggingRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
12252
12253	// The account ID associated with the S3 Batch Operations job.
12254	//
12255	// AccountId is a required field
12256	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
12257
12258	// The ID for the S3 Batch Operations job whose tags you want to replace.
12259	//
12260	// JobId is a required field
12261	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
12262
12263	// The set of tags to associate with the S3 Batch Operations job.
12264	//
12265	// Tags is a required field
12266	Tags []*S3Tag `type:"list" required:"true"`
12267}
12268
12269// String returns the string representation
12270func (s PutJobTaggingInput) String() string {
12271	return awsutil.Prettify(s)
12272}
12273
12274// GoString returns the string representation
12275func (s PutJobTaggingInput) GoString() string {
12276	return s.String()
12277}
12278
12279// Validate inspects the fields of the type to determine if they are valid.
12280func (s *PutJobTaggingInput) Validate() error {
12281	invalidParams := request.ErrInvalidParams{Context: "PutJobTaggingInput"}
12282	if s.AccountId == nil {
12283		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12284	}
12285	if s.AccountId != nil && len(*s.AccountId) < 1 {
12286		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12287	}
12288	if s.JobId == nil {
12289		invalidParams.Add(request.NewErrParamRequired("JobId"))
12290	}
12291	if s.JobId != nil && len(*s.JobId) < 5 {
12292		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
12293	}
12294	if s.Tags == nil {
12295		invalidParams.Add(request.NewErrParamRequired("Tags"))
12296	}
12297	if s.Tags != nil {
12298		for i, v := range s.Tags {
12299			if v == nil {
12300				continue
12301			}
12302			if err := v.Validate(); err != nil {
12303				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12304			}
12305		}
12306	}
12307
12308	if invalidParams.Len() > 0 {
12309		return invalidParams
12310	}
12311	return nil
12312}
12313
12314// SetAccountId sets the AccountId field's value.
12315func (s *PutJobTaggingInput) SetAccountId(v string) *PutJobTaggingInput {
12316	s.AccountId = &v
12317	return s
12318}
12319
12320// SetJobId sets the JobId field's value.
12321func (s *PutJobTaggingInput) SetJobId(v string) *PutJobTaggingInput {
12322	s.JobId = &v
12323	return s
12324}
12325
12326// SetTags sets the Tags field's value.
12327func (s *PutJobTaggingInput) SetTags(v []*S3Tag) *PutJobTaggingInput {
12328	s.Tags = v
12329	return s
12330}
12331
12332func (s *PutJobTaggingInput) hostLabels() map[string]string {
12333	return map[string]string{
12334		"AccountId": aws.StringValue(s.AccountId),
12335	}
12336}
12337
12338type PutJobTaggingOutput struct {
12339	_ struct{} `type:"structure"`
12340}
12341
12342// String returns the string representation
12343func (s PutJobTaggingOutput) String() string {
12344	return awsutil.Prettify(s)
12345}
12346
12347// GoString returns the string representation
12348func (s PutJobTaggingOutput) GoString() string {
12349	return s.String()
12350}
12351
12352type PutPublicAccessBlockInput struct {
12353	_ struct{} `locationName:"PutPublicAccessBlockRequest" type:"structure" payload:"PublicAccessBlockConfiguration"`
12354
12355	// The account ID for the account whose PublicAccessBlock configuration you
12356	// want to set.
12357	//
12358	// AccountId is a required field
12359	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
12360
12361	// The PublicAccessBlock configuration that you want to apply to the specified
12362	// account.
12363	//
12364	// PublicAccessBlockConfiguration is a required field
12365	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `locationName:"PublicAccessBlockConfiguration" type:"structure" required:"true" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
12366}
12367
12368// String returns the string representation
12369func (s PutPublicAccessBlockInput) String() string {
12370	return awsutil.Prettify(s)
12371}
12372
12373// GoString returns the string representation
12374func (s PutPublicAccessBlockInput) GoString() string {
12375	return s.String()
12376}
12377
12378// Validate inspects the fields of the type to determine if they are valid.
12379func (s *PutPublicAccessBlockInput) Validate() error {
12380	invalidParams := request.ErrInvalidParams{Context: "PutPublicAccessBlockInput"}
12381	if s.AccountId == nil {
12382		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12383	}
12384	if s.AccountId != nil && len(*s.AccountId) < 1 {
12385		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12386	}
12387	if s.PublicAccessBlockConfiguration == nil {
12388		invalidParams.Add(request.NewErrParamRequired("PublicAccessBlockConfiguration"))
12389	}
12390
12391	if invalidParams.Len() > 0 {
12392		return invalidParams
12393	}
12394	return nil
12395}
12396
12397// SetAccountId sets the AccountId field's value.
12398func (s *PutPublicAccessBlockInput) SetAccountId(v string) *PutPublicAccessBlockInput {
12399	s.AccountId = &v
12400	return s
12401}
12402
12403// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
12404func (s *PutPublicAccessBlockInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *PutPublicAccessBlockInput {
12405	s.PublicAccessBlockConfiguration = v
12406	return s
12407}
12408
12409func (s *PutPublicAccessBlockInput) hostLabels() map[string]string {
12410	return map[string]string{
12411		"AccountId": aws.StringValue(s.AccountId),
12412	}
12413}
12414
12415type PutPublicAccessBlockOutput struct {
12416	_ struct{} `type:"structure"`
12417}
12418
12419// String returns the string representation
12420func (s PutPublicAccessBlockOutput) String() string {
12421	return awsutil.Prettify(s)
12422}
12423
12424// GoString returns the string representation
12425func (s PutPublicAccessBlockOutput) GoString() string {
12426	return s.String()
12427}
12428
12429type PutStorageLensConfigurationInput struct {
12430	_ struct{} `locationName:"PutStorageLensConfigurationRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
12431
12432	// The account ID of the requester.
12433	//
12434	// AccountId is a required field
12435	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
12436
12437	// The ID of the S3 Storage Lens configuration.
12438	//
12439	// ConfigId is a required field
12440	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
12441
12442	// The S3 Storage Lens configuration.
12443	//
12444	// StorageLensConfiguration is a required field
12445	StorageLensConfiguration *StorageLensConfiguration `type:"structure" required:"true"`
12446
12447	// The tag set of the S3 Storage Lens configuration.
12448	//
12449	// You can set up to a maximum of 50 tags.
12450	Tags []*StorageLensTag `locationNameList:"Tag" type:"list"`
12451}
12452
12453// String returns the string representation
12454func (s PutStorageLensConfigurationInput) String() string {
12455	return awsutil.Prettify(s)
12456}
12457
12458// GoString returns the string representation
12459func (s PutStorageLensConfigurationInput) GoString() string {
12460	return s.String()
12461}
12462
12463// Validate inspects the fields of the type to determine if they are valid.
12464func (s *PutStorageLensConfigurationInput) Validate() error {
12465	invalidParams := request.ErrInvalidParams{Context: "PutStorageLensConfigurationInput"}
12466	if s.AccountId == nil {
12467		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12468	}
12469	if s.AccountId != nil && len(*s.AccountId) < 1 {
12470		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12471	}
12472	if s.ConfigId == nil {
12473		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
12474	}
12475	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
12476		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
12477	}
12478	if s.StorageLensConfiguration == nil {
12479		invalidParams.Add(request.NewErrParamRequired("StorageLensConfiguration"))
12480	}
12481	if s.StorageLensConfiguration != nil {
12482		if err := s.StorageLensConfiguration.Validate(); err != nil {
12483			invalidParams.AddNested("StorageLensConfiguration", err.(request.ErrInvalidParams))
12484		}
12485	}
12486	if s.Tags != nil {
12487		for i, v := range s.Tags {
12488			if v == nil {
12489				continue
12490			}
12491			if err := v.Validate(); err != nil {
12492				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12493			}
12494		}
12495	}
12496
12497	if invalidParams.Len() > 0 {
12498		return invalidParams
12499	}
12500	return nil
12501}
12502
12503// SetAccountId sets the AccountId field's value.
12504func (s *PutStorageLensConfigurationInput) SetAccountId(v string) *PutStorageLensConfigurationInput {
12505	s.AccountId = &v
12506	return s
12507}
12508
12509// SetConfigId sets the ConfigId field's value.
12510func (s *PutStorageLensConfigurationInput) SetConfigId(v string) *PutStorageLensConfigurationInput {
12511	s.ConfigId = &v
12512	return s
12513}
12514
12515// SetStorageLensConfiguration sets the StorageLensConfiguration field's value.
12516func (s *PutStorageLensConfigurationInput) SetStorageLensConfiguration(v *StorageLensConfiguration) *PutStorageLensConfigurationInput {
12517	s.StorageLensConfiguration = v
12518	return s
12519}
12520
12521// SetTags sets the Tags field's value.
12522func (s *PutStorageLensConfigurationInput) SetTags(v []*StorageLensTag) *PutStorageLensConfigurationInput {
12523	s.Tags = v
12524	return s
12525}
12526
12527func (s *PutStorageLensConfigurationInput) hostLabels() map[string]string {
12528	return map[string]string{
12529		"AccountId": aws.StringValue(s.AccountId),
12530	}
12531}
12532
12533type PutStorageLensConfigurationOutput struct {
12534	_ struct{} `type:"structure"`
12535}
12536
12537// String returns the string representation
12538func (s PutStorageLensConfigurationOutput) String() string {
12539	return awsutil.Prettify(s)
12540}
12541
12542// GoString returns the string representation
12543func (s PutStorageLensConfigurationOutput) GoString() string {
12544	return s.String()
12545}
12546
12547type PutStorageLensConfigurationTaggingInput struct {
12548	_ struct{} `locationName:"PutStorageLensConfigurationTaggingRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
12549
12550	// The account ID of the requester.
12551	//
12552	// AccountId is a required field
12553	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
12554
12555	// The ID of the S3 Storage Lens configuration.
12556	//
12557	// ConfigId is a required field
12558	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
12559
12560	// The tag set of the S3 Storage Lens configuration.
12561	//
12562	// You can set up to a maximum of 50 tags.
12563	//
12564	// Tags is a required field
12565	Tags []*StorageLensTag `locationNameList:"Tag" type:"list" required:"true"`
12566}
12567
12568// String returns the string representation
12569func (s PutStorageLensConfigurationTaggingInput) String() string {
12570	return awsutil.Prettify(s)
12571}
12572
12573// GoString returns the string representation
12574func (s PutStorageLensConfigurationTaggingInput) GoString() string {
12575	return s.String()
12576}
12577
12578// Validate inspects the fields of the type to determine if they are valid.
12579func (s *PutStorageLensConfigurationTaggingInput) Validate() error {
12580	invalidParams := request.ErrInvalidParams{Context: "PutStorageLensConfigurationTaggingInput"}
12581	if s.AccountId == nil {
12582		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12583	}
12584	if s.AccountId != nil && len(*s.AccountId) < 1 {
12585		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
12586	}
12587	if s.ConfigId == nil {
12588		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
12589	}
12590	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
12591		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
12592	}
12593	if s.Tags == nil {
12594		invalidParams.Add(request.NewErrParamRequired("Tags"))
12595	}
12596	if s.Tags != nil {
12597		for i, v := range s.Tags {
12598			if v == nil {
12599				continue
12600			}
12601			if err := v.Validate(); err != nil {
12602				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12603			}
12604		}
12605	}
12606
12607	if invalidParams.Len() > 0 {
12608		return invalidParams
12609	}
12610	return nil
12611}
12612
12613// SetAccountId sets the AccountId field's value.
12614func (s *PutStorageLensConfigurationTaggingInput) SetAccountId(v string) *PutStorageLensConfigurationTaggingInput {
12615	s.AccountId = &v
12616	return s
12617}
12618
12619// SetConfigId sets the ConfigId field's value.
12620func (s *PutStorageLensConfigurationTaggingInput) SetConfigId(v string) *PutStorageLensConfigurationTaggingInput {
12621	s.ConfigId = &v
12622	return s
12623}
12624
12625// SetTags sets the Tags field's value.
12626func (s *PutStorageLensConfigurationTaggingInput) SetTags(v []*StorageLensTag) *PutStorageLensConfigurationTaggingInput {
12627	s.Tags = v
12628	return s
12629}
12630
12631func (s *PutStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
12632	return map[string]string{
12633		"AccountId": aws.StringValue(s.AccountId),
12634	}
12635}
12636
12637type PutStorageLensConfigurationTaggingOutput struct {
12638	_ struct{} `type:"structure"`
12639}
12640
12641// String returns the string representation
12642func (s PutStorageLensConfigurationTaggingOutput) String() string {
12643	return awsutil.Prettify(s)
12644}
12645
12646// GoString returns the string representation
12647func (s PutStorageLensConfigurationTaggingOutput) GoString() string {
12648	return s.String()
12649}
12650
12651// The container for the regional bucket.
12652type RegionalBucket struct {
12653	_ struct{} `type:"structure"`
12654
12655	// Bucket is a required field
12656	Bucket *string `min:"3" type:"string" required:"true"`
12657
12658	// The Amazon Resource Name (ARN) for the regional bucket.
12659	BucketArn *string `min:"4" type:"string"`
12660
12661	// The creation date of the regional bucket
12662	//
12663	// CreationDate is a required field
12664	CreationDate *time.Time `type:"timestamp" required:"true"`
12665
12666	// The Outposts ID of the regional bucket.
12667	OutpostId *string `min:"1" type:"string"`
12668
12669	// PublicAccessBlockEnabled is a required field
12670	PublicAccessBlockEnabled *bool `type:"boolean" required:"true"`
12671}
12672
12673// String returns the string representation
12674func (s RegionalBucket) String() string {
12675	return awsutil.Prettify(s)
12676}
12677
12678// GoString returns the string representation
12679func (s RegionalBucket) GoString() string {
12680	return s.String()
12681}
12682
12683// SetBucket sets the Bucket field's value.
12684func (s *RegionalBucket) SetBucket(v string) *RegionalBucket {
12685	s.Bucket = &v
12686	return s
12687}
12688
12689// SetBucketArn sets the BucketArn field's value.
12690func (s *RegionalBucket) SetBucketArn(v string) *RegionalBucket {
12691	s.BucketArn = &v
12692	return s
12693}
12694
12695// SetCreationDate sets the CreationDate field's value.
12696func (s *RegionalBucket) SetCreationDate(v time.Time) *RegionalBucket {
12697	s.CreationDate = &v
12698	return s
12699}
12700
12701// SetOutpostId sets the OutpostId field's value.
12702func (s *RegionalBucket) SetOutpostId(v string) *RegionalBucket {
12703	s.OutpostId = &v
12704	return s
12705}
12706
12707// SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value.
12708func (s *RegionalBucket) SetPublicAccessBlockEnabled(v bool) *RegionalBucket {
12709	s.PublicAccessBlockEnabled = &v
12710	return s
12711}
12712
12713type S3AccessControlList struct {
12714	_ struct{} `type:"structure"`
12715
12716	Grants []*S3Grant `type:"list"`
12717
12718	// Owner is a required field
12719	Owner *S3ObjectOwner `type:"structure" required:"true"`
12720}
12721
12722// String returns the string representation
12723func (s S3AccessControlList) String() string {
12724	return awsutil.Prettify(s)
12725}
12726
12727// GoString returns the string representation
12728func (s S3AccessControlList) GoString() string {
12729	return s.String()
12730}
12731
12732// Validate inspects the fields of the type to determine if they are valid.
12733func (s *S3AccessControlList) Validate() error {
12734	invalidParams := request.ErrInvalidParams{Context: "S3AccessControlList"}
12735	if s.Owner == nil {
12736		invalidParams.Add(request.NewErrParamRequired("Owner"))
12737	}
12738	if s.Grants != nil {
12739		for i, v := range s.Grants {
12740			if v == nil {
12741				continue
12742			}
12743			if err := v.Validate(); err != nil {
12744				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Grants", i), err.(request.ErrInvalidParams))
12745			}
12746		}
12747	}
12748	if s.Owner != nil {
12749		if err := s.Owner.Validate(); err != nil {
12750			invalidParams.AddNested("Owner", err.(request.ErrInvalidParams))
12751		}
12752	}
12753
12754	if invalidParams.Len() > 0 {
12755		return invalidParams
12756	}
12757	return nil
12758}
12759
12760// SetGrants sets the Grants field's value.
12761func (s *S3AccessControlList) SetGrants(v []*S3Grant) *S3AccessControlList {
12762	s.Grants = v
12763	return s
12764}
12765
12766// SetOwner sets the Owner field's value.
12767func (s *S3AccessControlList) SetOwner(v *S3ObjectOwner) *S3AccessControlList {
12768	s.Owner = v
12769	return s
12770}
12771
12772type S3AccessControlPolicy struct {
12773	_ struct{} `type:"structure"`
12774
12775	AccessControlList *S3AccessControlList `type:"structure"`
12776
12777	CannedAccessControlList *string `type:"string" enum:"S3CannedAccessControlList"`
12778}
12779
12780// String returns the string representation
12781func (s S3AccessControlPolicy) String() string {
12782	return awsutil.Prettify(s)
12783}
12784
12785// GoString returns the string representation
12786func (s S3AccessControlPolicy) GoString() string {
12787	return s.String()
12788}
12789
12790// Validate inspects the fields of the type to determine if they are valid.
12791func (s *S3AccessControlPolicy) Validate() error {
12792	invalidParams := request.ErrInvalidParams{Context: "S3AccessControlPolicy"}
12793	if s.AccessControlList != nil {
12794		if err := s.AccessControlList.Validate(); err != nil {
12795			invalidParams.AddNested("AccessControlList", err.(request.ErrInvalidParams))
12796		}
12797	}
12798
12799	if invalidParams.Len() > 0 {
12800		return invalidParams
12801	}
12802	return nil
12803}
12804
12805// SetAccessControlList sets the AccessControlList field's value.
12806func (s *S3AccessControlPolicy) SetAccessControlList(v *S3AccessControlList) *S3AccessControlPolicy {
12807	s.AccessControlList = v
12808	return s
12809}
12810
12811// SetCannedAccessControlList sets the CannedAccessControlList field's value.
12812func (s *S3AccessControlPolicy) SetCannedAccessControlList(v string) *S3AccessControlPolicy {
12813	s.CannedAccessControlList = &v
12814	return s
12815}
12816
12817// A container for the bucket where the Amazon S3 Storage Lens metrics export
12818// files are located.
12819type S3BucketDestination struct {
12820	_ struct{} `type:"structure"`
12821
12822	// The account ID of the owner of the S3 Storage Lens metrics export bucket.
12823	//
12824	// AccountId is a required field
12825	AccountId *string `type:"string" required:"true"`
12826
12827	// The Amazon Resource Name (ARN) of the bucket. This property is read-only
12828	// and follows the following format: arn:aws:s3:us-east-1:example-account-id:bucket/your-destination-bucket-name
12829	//
12830	// Arn is a required field
12831	Arn *string `min:"1" type:"string" required:"true"`
12832
12833	// The container for the type encryption of the metrics exports in this bucket.
12834	Encryption *StorageLensDataExportEncryption `type:"structure"`
12835
12836	// Format is a required field
12837	Format *string `type:"string" required:"true" enum:"Format"`
12838
12839	// The schema version of the export file.
12840	//
12841	// OutputSchemaVersion is a required field
12842	OutputSchemaVersion *string `type:"string" required:"true" enum:"OutputSchemaVersion"`
12843
12844	// The prefix of the destination bucket where the metrics export will be delivered.
12845	Prefix *string `type:"string"`
12846}
12847
12848// String returns the string representation
12849func (s S3BucketDestination) String() string {
12850	return awsutil.Prettify(s)
12851}
12852
12853// GoString returns the string representation
12854func (s S3BucketDestination) GoString() string {
12855	return s.String()
12856}
12857
12858// Validate inspects the fields of the type to determine if they are valid.
12859func (s *S3BucketDestination) Validate() error {
12860	invalidParams := request.ErrInvalidParams{Context: "S3BucketDestination"}
12861	if s.AccountId == nil {
12862		invalidParams.Add(request.NewErrParamRequired("AccountId"))
12863	}
12864	if s.Arn == nil {
12865		invalidParams.Add(request.NewErrParamRequired("Arn"))
12866	}
12867	if s.Arn != nil && len(*s.Arn) < 1 {
12868		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
12869	}
12870	if s.Format == nil {
12871		invalidParams.Add(request.NewErrParamRequired("Format"))
12872	}
12873	if s.OutputSchemaVersion == nil {
12874		invalidParams.Add(request.NewErrParamRequired("OutputSchemaVersion"))
12875	}
12876	if s.Encryption != nil {
12877		if err := s.Encryption.Validate(); err != nil {
12878			invalidParams.AddNested("Encryption", err.(request.ErrInvalidParams))
12879		}
12880	}
12881
12882	if invalidParams.Len() > 0 {
12883		return invalidParams
12884	}
12885	return nil
12886}
12887
12888// SetAccountId sets the AccountId field's value.
12889func (s *S3BucketDestination) SetAccountId(v string) *S3BucketDestination {
12890	s.AccountId = &v
12891	return s
12892}
12893
12894// SetArn sets the Arn field's value.
12895func (s *S3BucketDestination) SetArn(v string) *S3BucketDestination {
12896	s.Arn = &v
12897	return s
12898}
12899
12900// SetEncryption sets the Encryption field's value.
12901func (s *S3BucketDestination) SetEncryption(v *StorageLensDataExportEncryption) *S3BucketDestination {
12902	s.Encryption = v
12903	return s
12904}
12905
12906// SetFormat sets the Format field's value.
12907func (s *S3BucketDestination) SetFormat(v string) *S3BucketDestination {
12908	s.Format = &v
12909	return s
12910}
12911
12912// SetOutputSchemaVersion sets the OutputSchemaVersion field's value.
12913func (s *S3BucketDestination) SetOutputSchemaVersion(v string) *S3BucketDestination {
12914	s.OutputSchemaVersion = &v
12915	return s
12916}
12917
12918// SetPrefix sets the Prefix field's value.
12919func (s *S3BucketDestination) SetPrefix(v string) *S3BucketDestination {
12920	s.Prefix = &v
12921	return s
12922}
12923
12924// Contains the configuration parameters for a PUT Copy object operation. S3
12925// Batch Operations passes every object to the underlying PUT Copy object API.
12926// For more information about the parameters for this operation, see PUT Object
12927// - Copy (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html).
12928type S3CopyObjectOperation struct {
12929	_ struct{} `type:"structure"`
12930
12931	AccessControlGrants []*S3Grant `type:"list"`
12932
12933	// Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption
12934	// with server-side encryption using Amazon Web Services KMS (SSE-KMS). Setting
12935	// this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption
12936	// with SSE-KMS.
12937	//
12938	// Specifying this header with an object action doesn’t affect bucket-level
12939	// settings for S3 Bucket Key.
12940	BucketKeyEnabled *bool `type:"boolean"`
12941
12942	CannedAccessControlList *string `type:"string" enum:"S3CannedAccessControlList"`
12943
12944	MetadataDirective *string `type:"string" enum:"S3MetadataDirective"`
12945
12946	ModifiedSinceConstraint *time.Time `type:"timestamp"`
12947
12948	NewObjectMetadata *S3ObjectMetadata `type:"structure"`
12949
12950	NewObjectTagging []*S3Tag `type:"list"`
12951
12952	// The legal hold status to be applied to all objects in the Batch Operations
12953	// job.
12954	ObjectLockLegalHoldStatus *string `type:"string" enum:"S3ObjectLockLegalHoldStatus"`
12955
12956	// The retention mode to be applied to all objects in the Batch Operations job.
12957	ObjectLockMode *string `type:"string" enum:"S3ObjectLockMode"`
12958
12959	// The date when the applied object retention configuration expires on all objects
12960	// in the Batch Operations job.
12961	ObjectLockRetainUntilDate *time.Time `type:"timestamp"`
12962
12963	// Specifies an optional metadata property for website redirects, x-amz-website-redirect-location.
12964	// Allows webpage redirects if the object is accessed through a website endpoint.
12965	RedirectLocation *string `min:"1" type:"string"`
12966
12967	RequesterPays *bool `type:"boolean"`
12968
12969	SSEAwsKmsKeyId *string `min:"1" type:"string"`
12970
12971	StorageClass *string `type:"string" enum:"S3StorageClass"`
12972
12973	// Specifies the folder prefix into which you would like the objects to be copied.
12974	// For example, to copy objects into a folder named "Folder1" in the destination
12975	// bucket, set the TargetKeyPrefix to "Folder1/".
12976	TargetKeyPrefix *string `min:"1" type:"string"`
12977
12978	// Specifies the destination bucket ARN for the batch copy operation. For example,
12979	// to copy objects to a bucket named "destinationBucket", set the TargetResource
12980	// to "arn:aws:s3:::destinationBucket".
12981	TargetResource *string `min:"1" type:"string"`
12982
12983	UnModifiedSinceConstraint *time.Time `type:"timestamp"`
12984}
12985
12986// String returns the string representation
12987func (s S3CopyObjectOperation) String() string {
12988	return awsutil.Prettify(s)
12989}
12990
12991// GoString returns the string representation
12992func (s S3CopyObjectOperation) GoString() string {
12993	return s.String()
12994}
12995
12996// Validate inspects the fields of the type to determine if they are valid.
12997func (s *S3CopyObjectOperation) Validate() error {
12998	invalidParams := request.ErrInvalidParams{Context: "S3CopyObjectOperation"}
12999	if s.RedirectLocation != nil && len(*s.RedirectLocation) < 1 {
13000		invalidParams.Add(request.NewErrParamMinLen("RedirectLocation", 1))
13001	}
13002	if s.SSEAwsKmsKeyId != nil && len(*s.SSEAwsKmsKeyId) < 1 {
13003		invalidParams.Add(request.NewErrParamMinLen("SSEAwsKmsKeyId", 1))
13004	}
13005	if s.TargetKeyPrefix != nil && len(*s.TargetKeyPrefix) < 1 {
13006		invalidParams.Add(request.NewErrParamMinLen("TargetKeyPrefix", 1))
13007	}
13008	if s.TargetResource != nil && len(*s.TargetResource) < 1 {
13009		invalidParams.Add(request.NewErrParamMinLen("TargetResource", 1))
13010	}
13011	if s.AccessControlGrants != nil {
13012		for i, v := range s.AccessControlGrants {
13013			if v == nil {
13014				continue
13015			}
13016			if err := v.Validate(); err != nil {
13017				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessControlGrants", i), err.(request.ErrInvalidParams))
13018			}
13019		}
13020	}
13021	if s.NewObjectMetadata != nil {
13022		if err := s.NewObjectMetadata.Validate(); err != nil {
13023			invalidParams.AddNested("NewObjectMetadata", err.(request.ErrInvalidParams))
13024		}
13025	}
13026	if s.NewObjectTagging != nil {
13027		for i, v := range s.NewObjectTagging {
13028			if v == nil {
13029				continue
13030			}
13031			if err := v.Validate(); err != nil {
13032				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NewObjectTagging", i), err.(request.ErrInvalidParams))
13033			}
13034		}
13035	}
13036
13037	if invalidParams.Len() > 0 {
13038		return invalidParams
13039	}
13040	return nil
13041}
13042
13043// SetAccessControlGrants sets the AccessControlGrants field's value.
13044func (s *S3CopyObjectOperation) SetAccessControlGrants(v []*S3Grant) *S3CopyObjectOperation {
13045	s.AccessControlGrants = v
13046	return s
13047}
13048
13049// SetBucketKeyEnabled sets the BucketKeyEnabled field's value.
13050func (s *S3CopyObjectOperation) SetBucketKeyEnabled(v bool) *S3CopyObjectOperation {
13051	s.BucketKeyEnabled = &v
13052	return s
13053}
13054
13055// SetCannedAccessControlList sets the CannedAccessControlList field's value.
13056func (s *S3CopyObjectOperation) SetCannedAccessControlList(v string) *S3CopyObjectOperation {
13057	s.CannedAccessControlList = &v
13058	return s
13059}
13060
13061// SetMetadataDirective sets the MetadataDirective field's value.
13062func (s *S3CopyObjectOperation) SetMetadataDirective(v string) *S3CopyObjectOperation {
13063	s.MetadataDirective = &v
13064	return s
13065}
13066
13067// SetModifiedSinceConstraint sets the ModifiedSinceConstraint field's value.
13068func (s *S3CopyObjectOperation) SetModifiedSinceConstraint(v time.Time) *S3CopyObjectOperation {
13069	s.ModifiedSinceConstraint = &v
13070	return s
13071}
13072
13073// SetNewObjectMetadata sets the NewObjectMetadata field's value.
13074func (s *S3CopyObjectOperation) SetNewObjectMetadata(v *S3ObjectMetadata) *S3CopyObjectOperation {
13075	s.NewObjectMetadata = v
13076	return s
13077}
13078
13079// SetNewObjectTagging sets the NewObjectTagging field's value.
13080func (s *S3CopyObjectOperation) SetNewObjectTagging(v []*S3Tag) *S3CopyObjectOperation {
13081	s.NewObjectTagging = v
13082	return s
13083}
13084
13085// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
13086func (s *S3CopyObjectOperation) SetObjectLockLegalHoldStatus(v string) *S3CopyObjectOperation {
13087	s.ObjectLockLegalHoldStatus = &v
13088	return s
13089}
13090
13091// SetObjectLockMode sets the ObjectLockMode field's value.
13092func (s *S3CopyObjectOperation) SetObjectLockMode(v string) *S3CopyObjectOperation {
13093	s.ObjectLockMode = &v
13094	return s
13095}
13096
13097// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
13098func (s *S3CopyObjectOperation) SetObjectLockRetainUntilDate(v time.Time) *S3CopyObjectOperation {
13099	s.ObjectLockRetainUntilDate = &v
13100	return s
13101}
13102
13103// SetRedirectLocation sets the RedirectLocation field's value.
13104func (s *S3CopyObjectOperation) SetRedirectLocation(v string) *S3CopyObjectOperation {
13105	s.RedirectLocation = &v
13106	return s
13107}
13108
13109// SetRequesterPays sets the RequesterPays field's value.
13110func (s *S3CopyObjectOperation) SetRequesterPays(v bool) *S3CopyObjectOperation {
13111	s.RequesterPays = &v
13112	return s
13113}
13114
13115// SetSSEAwsKmsKeyId sets the SSEAwsKmsKeyId field's value.
13116func (s *S3CopyObjectOperation) SetSSEAwsKmsKeyId(v string) *S3CopyObjectOperation {
13117	s.SSEAwsKmsKeyId = &v
13118	return s
13119}
13120
13121// SetStorageClass sets the StorageClass field's value.
13122func (s *S3CopyObjectOperation) SetStorageClass(v string) *S3CopyObjectOperation {
13123	s.StorageClass = &v
13124	return s
13125}
13126
13127// SetTargetKeyPrefix sets the TargetKeyPrefix field's value.
13128func (s *S3CopyObjectOperation) SetTargetKeyPrefix(v string) *S3CopyObjectOperation {
13129	s.TargetKeyPrefix = &v
13130	return s
13131}
13132
13133// SetTargetResource sets the TargetResource field's value.
13134func (s *S3CopyObjectOperation) SetTargetResource(v string) *S3CopyObjectOperation {
13135	s.TargetResource = &v
13136	return s
13137}
13138
13139// SetUnModifiedSinceConstraint sets the UnModifiedSinceConstraint field's value.
13140func (s *S3CopyObjectOperation) SetUnModifiedSinceConstraint(v time.Time) *S3CopyObjectOperation {
13141	s.UnModifiedSinceConstraint = &v
13142	return s
13143}
13144
13145// Contains no configuration parameters because the DELETE Object tagging API
13146// only accepts the bucket name and key name as parameters, which are defined
13147// in the job's manifest.
13148type S3DeleteObjectTaggingOperation struct {
13149	_ struct{} `type:"structure"`
13150}
13151
13152// String returns the string representation
13153func (s S3DeleteObjectTaggingOperation) String() string {
13154	return awsutil.Prettify(s)
13155}
13156
13157// GoString returns the string representation
13158func (s S3DeleteObjectTaggingOperation) GoString() string {
13159	return s.String()
13160}
13161
13162type S3Grant struct {
13163	_ struct{} `type:"structure"`
13164
13165	Grantee *S3Grantee `type:"structure"`
13166
13167	Permission *string `type:"string" enum:"S3Permission"`
13168}
13169
13170// String returns the string representation
13171func (s S3Grant) String() string {
13172	return awsutil.Prettify(s)
13173}
13174
13175// GoString returns the string representation
13176func (s S3Grant) GoString() string {
13177	return s.String()
13178}
13179
13180// Validate inspects the fields of the type to determine if they are valid.
13181func (s *S3Grant) Validate() error {
13182	invalidParams := request.ErrInvalidParams{Context: "S3Grant"}
13183	if s.Grantee != nil {
13184		if err := s.Grantee.Validate(); err != nil {
13185			invalidParams.AddNested("Grantee", err.(request.ErrInvalidParams))
13186		}
13187	}
13188
13189	if invalidParams.Len() > 0 {
13190		return invalidParams
13191	}
13192	return nil
13193}
13194
13195// SetGrantee sets the Grantee field's value.
13196func (s *S3Grant) SetGrantee(v *S3Grantee) *S3Grant {
13197	s.Grantee = v
13198	return s
13199}
13200
13201// SetPermission sets the Permission field's value.
13202func (s *S3Grant) SetPermission(v string) *S3Grant {
13203	s.Permission = &v
13204	return s
13205}
13206
13207type S3Grantee struct {
13208	_ struct{} `type:"structure"`
13209
13210	DisplayName *string `min:"1" type:"string"`
13211
13212	Identifier *string `min:"1" type:"string"`
13213
13214	TypeIdentifier *string `type:"string" enum:"S3GranteeTypeIdentifier"`
13215}
13216
13217// String returns the string representation
13218func (s S3Grantee) String() string {
13219	return awsutil.Prettify(s)
13220}
13221
13222// GoString returns the string representation
13223func (s S3Grantee) GoString() string {
13224	return s.String()
13225}
13226
13227// Validate inspects the fields of the type to determine if they are valid.
13228func (s *S3Grantee) Validate() error {
13229	invalidParams := request.ErrInvalidParams{Context: "S3Grantee"}
13230	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
13231		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
13232	}
13233	if s.Identifier != nil && len(*s.Identifier) < 1 {
13234		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
13235	}
13236
13237	if invalidParams.Len() > 0 {
13238		return invalidParams
13239	}
13240	return nil
13241}
13242
13243// SetDisplayName sets the DisplayName field's value.
13244func (s *S3Grantee) SetDisplayName(v string) *S3Grantee {
13245	s.DisplayName = &v
13246	return s
13247}
13248
13249// SetIdentifier sets the Identifier field's value.
13250func (s *S3Grantee) SetIdentifier(v string) *S3Grantee {
13251	s.Identifier = &v
13252	return s
13253}
13254
13255// SetTypeIdentifier sets the TypeIdentifier field's value.
13256func (s *S3Grantee) SetTypeIdentifier(v string) *S3Grantee {
13257	s.TypeIdentifier = &v
13258	return s
13259}
13260
13261// Contains the configuration parameters for an S3 Initiate Restore Object job.
13262// S3 Batch Operations passes every object to the underlying POST Object restore
13263// API. For more information about the parameters for this operation, see RestoreObject
13264// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOSTrestore.html#RESTObjectPOSTrestore-restore-request).
13265type S3InitiateRestoreObjectOperation struct {
13266	_ struct{} `type:"structure"`
13267
13268	// This argument specifies how long the S3 Glacier or S3 Glacier Deep Archive
13269	// object remains available in Amazon S3. S3 Initiate Restore Object jobs that
13270	// target S3 Glacier and S3 Glacier Deep Archive objects require ExpirationInDays
13271	// set to 1 or greater.
13272	//
13273	// Conversely, do not set ExpirationInDays when creating S3 Initiate Restore
13274	// Object jobs that target S3 Intelligent-Tiering Archive Access and Deep Archive
13275	// Access tier objects. Objects in S3 Intelligent-Tiering archive access tiers
13276	// are not subject to restore expiry, so specifying ExpirationInDays results
13277	// in restore request failure.
13278	//
13279	// S3 Batch Operations jobs can operate either on S3 Glacier and S3 Glacier
13280	// Deep Archive storage class objects or on S3 Intelligent-Tiering Archive Access
13281	// and Deep Archive Access storage tier objects, but not both types in the same
13282	// job. If you need to restore objects of both types you must create separate
13283	// Batch Operations jobs.
13284	ExpirationInDays *int64 `type:"integer"`
13285
13286	// S3 Batch Operations supports STANDARD and BULK retrieval tiers, but not the
13287	// EXPEDITED retrieval tier.
13288	GlacierJobTier *string `type:"string" enum:"S3GlacierJobTier"`
13289}
13290
13291// String returns the string representation
13292func (s S3InitiateRestoreObjectOperation) String() string {
13293	return awsutil.Prettify(s)
13294}
13295
13296// GoString returns the string representation
13297func (s S3InitiateRestoreObjectOperation) GoString() string {
13298	return s.String()
13299}
13300
13301// SetExpirationInDays sets the ExpirationInDays field's value.
13302func (s *S3InitiateRestoreObjectOperation) SetExpirationInDays(v int64) *S3InitiateRestoreObjectOperation {
13303	s.ExpirationInDays = &v
13304	return s
13305}
13306
13307// SetGlacierJobTier sets the GlacierJobTier field's value.
13308func (s *S3InitiateRestoreObjectOperation) SetGlacierJobTier(v string) *S3InitiateRestoreObjectOperation {
13309	s.GlacierJobTier = &v
13310	return s
13311}
13312
13313// Whether S3 Object Lock legal hold will be applied to objects in an S3 Batch
13314// Operations job.
13315type S3ObjectLockLegalHold struct {
13316	_ struct{} `type:"structure"`
13317
13318	// The Object Lock legal hold status to be applied to all objects in the Batch
13319	// Operations job.
13320	//
13321	// Status is a required field
13322	Status *string `type:"string" required:"true" enum:"S3ObjectLockLegalHoldStatus"`
13323}
13324
13325// String returns the string representation
13326func (s S3ObjectLockLegalHold) String() string {
13327	return awsutil.Prettify(s)
13328}
13329
13330// GoString returns the string representation
13331func (s S3ObjectLockLegalHold) GoString() string {
13332	return s.String()
13333}
13334
13335// Validate inspects the fields of the type to determine if they are valid.
13336func (s *S3ObjectLockLegalHold) Validate() error {
13337	invalidParams := request.ErrInvalidParams{Context: "S3ObjectLockLegalHold"}
13338	if s.Status == nil {
13339		invalidParams.Add(request.NewErrParamRequired("Status"))
13340	}
13341
13342	if invalidParams.Len() > 0 {
13343		return invalidParams
13344	}
13345	return nil
13346}
13347
13348// SetStatus sets the Status field's value.
13349func (s *S3ObjectLockLegalHold) SetStatus(v string) *S3ObjectLockLegalHold {
13350	s.Status = &v
13351	return s
13352}
13353
13354type S3ObjectMetadata struct {
13355	_ struct{} `type:"structure"`
13356
13357	CacheControl *string `min:"1" type:"string"`
13358
13359	ContentDisposition *string `min:"1" type:"string"`
13360
13361	ContentEncoding *string `min:"1" type:"string"`
13362
13363	ContentLanguage *string `min:"1" type:"string"`
13364
13365	ContentLength *int64 `type:"long"`
13366
13367	ContentMD5 *string `min:"1" type:"string"`
13368
13369	ContentType *string `min:"1" type:"string"`
13370
13371	HttpExpiresDate *time.Time `type:"timestamp"`
13372
13373	RequesterCharged *bool `type:"boolean"`
13374
13375	SSEAlgorithm *string `type:"string" enum:"S3SSEAlgorithm"`
13376
13377	UserMetadata map[string]*string `type:"map"`
13378}
13379
13380// String returns the string representation
13381func (s S3ObjectMetadata) String() string {
13382	return awsutil.Prettify(s)
13383}
13384
13385// GoString returns the string representation
13386func (s S3ObjectMetadata) GoString() string {
13387	return s.String()
13388}
13389
13390// Validate inspects the fields of the type to determine if they are valid.
13391func (s *S3ObjectMetadata) Validate() error {
13392	invalidParams := request.ErrInvalidParams{Context: "S3ObjectMetadata"}
13393	if s.CacheControl != nil && len(*s.CacheControl) < 1 {
13394		invalidParams.Add(request.NewErrParamMinLen("CacheControl", 1))
13395	}
13396	if s.ContentDisposition != nil && len(*s.ContentDisposition) < 1 {
13397		invalidParams.Add(request.NewErrParamMinLen("ContentDisposition", 1))
13398	}
13399	if s.ContentEncoding != nil && len(*s.ContentEncoding) < 1 {
13400		invalidParams.Add(request.NewErrParamMinLen("ContentEncoding", 1))
13401	}
13402	if s.ContentLanguage != nil && len(*s.ContentLanguage) < 1 {
13403		invalidParams.Add(request.NewErrParamMinLen("ContentLanguage", 1))
13404	}
13405	if s.ContentMD5 != nil && len(*s.ContentMD5) < 1 {
13406		invalidParams.Add(request.NewErrParamMinLen("ContentMD5", 1))
13407	}
13408	if s.ContentType != nil && len(*s.ContentType) < 1 {
13409		invalidParams.Add(request.NewErrParamMinLen("ContentType", 1))
13410	}
13411
13412	if invalidParams.Len() > 0 {
13413		return invalidParams
13414	}
13415	return nil
13416}
13417
13418// SetCacheControl sets the CacheControl field's value.
13419func (s *S3ObjectMetadata) SetCacheControl(v string) *S3ObjectMetadata {
13420	s.CacheControl = &v
13421	return s
13422}
13423
13424// SetContentDisposition sets the ContentDisposition field's value.
13425func (s *S3ObjectMetadata) SetContentDisposition(v string) *S3ObjectMetadata {
13426	s.ContentDisposition = &v
13427	return s
13428}
13429
13430// SetContentEncoding sets the ContentEncoding field's value.
13431func (s *S3ObjectMetadata) SetContentEncoding(v string) *S3ObjectMetadata {
13432	s.ContentEncoding = &v
13433	return s
13434}
13435
13436// SetContentLanguage sets the ContentLanguage field's value.
13437func (s *S3ObjectMetadata) SetContentLanguage(v string) *S3ObjectMetadata {
13438	s.ContentLanguage = &v
13439	return s
13440}
13441
13442// SetContentLength sets the ContentLength field's value.
13443func (s *S3ObjectMetadata) SetContentLength(v int64) *S3ObjectMetadata {
13444	s.ContentLength = &v
13445	return s
13446}
13447
13448// SetContentMD5 sets the ContentMD5 field's value.
13449func (s *S3ObjectMetadata) SetContentMD5(v string) *S3ObjectMetadata {
13450	s.ContentMD5 = &v
13451	return s
13452}
13453
13454// SetContentType sets the ContentType field's value.
13455func (s *S3ObjectMetadata) SetContentType(v string) *S3ObjectMetadata {
13456	s.ContentType = &v
13457	return s
13458}
13459
13460// SetHttpExpiresDate sets the HttpExpiresDate field's value.
13461func (s *S3ObjectMetadata) SetHttpExpiresDate(v time.Time) *S3ObjectMetadata {
13462	s.HttpExpiresDate = &v
13463	return s
13464}
13465
13466// SetRequesterCharged sets the RequesterCharged field's value.
13467func (s *S3ObjectMetadata) SetRequesterCharged(v bool) *S3ObjectMetadata {
13468	s.RequesterCharged = &v
13469	return s
13470}
13471
13472// SetSSEAlgorithm sets the SSEAlgorithm field's value.
13473func (s *S3ObjectMetadata) SetSSEAlgorithm(v string) *S3ObjectMetadata {
13474	s.SSEAlgorithm = &v
13475	return s
13476}
13477
13478// SetUserMetadata sets the UserMetadata field's value.
13479func (s *S3ObjectMetadata) SetUserMetadata(v map[string]*string) *S3ObjectMetadata {
13480	s.UserMetadata = v
13481	return s
13482}
13483
13484type S3ObjectOwner struct {
13485	_ struct{} `type:"structure"`
13486
13487	DisplayName *string `min:"1" type:"string"`
13488
13489	ID *string `min:"1" type:"string"`
13490}
13491
13492// String returns the string representation
13493func (s S3ObjectOwner) String() string {
13494	return awsutil.Prettify(s)
13495}
13496
13497// GoString returns the string representation
13498func (s S3ObjectOwner) GoString() string {
13499	return s.String()
13500}
13501
13502// Validate inspects the fields of the type to determine if they are valid.
13503func (s *S3ObjectOwner) Validate() error {
13504	invalidParams := request.ErrInvalidParams{Context: "S3ObjectOwner"}
13505	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
13506		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
13507	}
13508	if s.ID != nil && len(*s.ID) < 1 {
13509		invalidParams.Add(request.NewErrParamMinLen("ID", 1))
13510	}
13511
13512	if invalidParams.Len() > 0 {
13513		return invalidParams
13514	}
13515	return nil
13516}
13517
13518// SetDisplayName sets the DisplayName field's value.
13519func (s *S3ObjectOwner) SetDisplayName(v string) *S3ObjectOwner {
13520	s.DisplayName = &v
13521	return s
13522}
13523
13524// SetID sets the ID field's value.
13525func (s *S3ObjectOwner) SetID(v string) *S3ObjectOwner {
13526	s.ID = &v
13527	return s
13528}
13529
13530// Contains the S3 Object Lock retention mode to be applied to all objects in
13531// the S3 Batch Operations job. If you don't provide Mode and RetainUntilDate
13532// data types in your operation, you will remove the retention from your objects.
13533// For more information, see Using S3 Object Lock retention with S3 Batch Operations
13534// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
13535// in the Amazon S3 User Guide.
13536type S3Retention struct {
13537	_ struct{} `type:"structure"`
13538
13539	// The Object Lock retention mode to be applied to all objects in the Batch
13540	// Operations job.
13541	Mode *string `type:"string" enum:"S3ObjectLockRetentionMode"`
13542
13543	// The date when the applied Object Lock retention will expire on all objects
13544	// set by the Batch Operations job.
13545	RetainUntilDate *time.Time `type:"timestamp"`
13546}
13547
13548// String returns the string representation
13549func (s S3Retention) String() string {
13550	return awsutil.Prettify(s)
13551}
13552
13553// GoString returns the string representation
13554func (s S3Retention) GoString() string {
13555	return s.String()
13556}
13557
13558// SetMode sets the Mode field's value.
13559func (s *S3Retention) SetMode(v string) *S3Retention {
13560	s.Mode = &v
13561	return s
13562}
13563
13564// SetRetainUntilDate sets the RetainUntilDate field's value.
13565func (s *S3Retention) SetRetainUntilDate(v time.Time) *S3Retention {
13566	s.RetainUntilDate = &v
13567	return s
13568}
13569
13570// Contains the configuration parameters for a Set Object ACL operation. S3
13571// Batch Operations passes every object to the underlying PUT Object acl API.
13572// For more information about the parameters for this operation, see PUT Object
13573// acl (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTacl.html).
13574type S3SetObjectAclOperation struct {
13575	_ struct{} `type:"structure"`
13576
13577	AccessControlPolicy *S3AccessControlPolicy `type:"structure"`
13578}
13579
13580// String returns the string representation
13581func (s S3SetObjectAclOperation) String() string {
13582	return awsutil.Prettify(s)
13583}
13584
13585// GoString returns the string representation
13586func (s S3SetObjectAclOperation) GoString() string {
13587	return s.String()
13588}
13589
13590// Validate inspects the fields of the type to determine if they are valid.
13591func (s *S3SetObjectAclOperation) Validate() error {
13592	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectAclOperation"}
13593	if s.AccessControlPolicy != nil {
13594		if err := s.AccessControlPolicy.Validate(); err != nil {
13595			invalidParams.AddNested("AccessControlPolicy", err.(request.ErrInvalidParams))
13596		}
13597	}
13598
13599	if invalidParams.Len() > 0 {
13600		return invalidParams
13601	}
13602	return nil
13603}
13604
13605// SetAccessControlPolicy sets the AccessControlPolicy field's value.
13606func (s *S3SetObjectAclOperation) SetAccessControlPolicy(v *S3AccessControlPolicy) *S3SetObjectAclOperation {
13607	s.AccessControlPolicy = v
13608	return s
13609}
13610
13611// Contains the configuration for an S3 Object Lock legal hold operation that
13612// an S3 Batch Operations job passes every object to the underlying PutObjectLegalHold
13613// API. For more information, see Using S3 Object Lock legal hold with S3 Batch
13614// Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html)
13615// in the Amazon S3 User Guide.
13616type S3SetObjectLegalHoldOperation struct {
13617	_ struct{} `type:"structure"`
13618
13619	// Contains the Object Lock legal hold status to be applied to all objects in
13620	// the Batch Operations job.
13621	//
13622	// LegalHold is a required field
13623	LegalHold *S3ObjectLockLegalHold `type:"structure" required:"true"`
13624}
13625
13626// String returns the string representation
13627func (s S3SetObjectLegalHoldOperation) String() string {
13628	return awsutil.Prettify(s)
13629}
13630
13631// GoString returns the string representation
13632func (s S3SetObjectLegalHoldOperation) GoString() string {
13633	return s.String()
13634}
13635
13636// Validate inspects the fields of the type to determine if they are valid.
13637func (s *S3SetObjectLegalHoldOperation) Validate() error {
13638	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectLegalHoldOperation"}
13639	if s.LegalHold == nil {
13640		invalidParams.Add(request.NewErrParamRequired("LegalHold"))
13641	}
13642	if s.LegalHold != nil {
13643		if err := s.LegalHold.Validate(); err != nil {
13644			invalidParams.AddNested("LegalHold", err.(request.ErrInvalidParams))
13645		}
13646	}
13647
13648	if invalidParams.Len() > 0 {
13649		return invalidParams
13650	}
13651	return nil
13652}
13653
13654// SetLegalHold sets the LegalHold field's value.
13655func (s *S3SetObjectLegalHoldOperation) SetLegalHold(v *S3ObjectLockLegalHold) *S3SetObjectLegalHoldOperation {
13656	s.LegalHold = v
13657	return s
13658}
13659
13660// Contains the configuration parameters for the Object Lock retention action
13661// for an S3 Batch Operations job. Batch Operations passes every object to the
13662// underlying PutObjectRetention API. For more information, see Using S3 Object
13663// Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
13664// in the Amazon S3 User Guide.
13665type S3SetObjectRetentionOperation struct {
13666	_ struct{} `type:"structure"`
13667
13668	// Indicates if the action should be applied to objects in the Batch Operations
13669	// job even if they have Object Lock GOVERNANCE type in place.
13670	BypassGovernanceRetention *bool `type:"boolean"`
13671
13672	// Contains the Object Lock retention mode to be applied to all objects in the
13673	// Batch Operations job. For more information, see Using S3 Object Lock retention
13674	// with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
13675	// in the Amazon S3 User Guide.
13676	//
13677	// Retention is a required field
13678	Retention *S3Retention `type:"structure" required:"true"`
13679}
13680
13681// String returns the string representation
13682func (s S3SetObjectRetentionOperation) String() string {
13683	return awsutil.Prettify(s)
13684}
13685
13686// GoString returns the string representation
13687func (s S3SetObjectRetentionOperation) GoString() string {
13688	return s.String()
13689}
13690
13691// Validate inspects the fields of the type to determine if they are valid.
13692func (s *S3SetObjectRetentionOperation) Validate() error {
13693	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectRetentionOperation"}
13694	if s.Retention == nil {
13695		invalidParams.Add(request.NewErrParamRequired("Retention"))
13696	}
13697
13698	if invalidParams.Len() > 0 {
13699		return invalidParams
13700	}
13701	return nil
13702}
13703
13704// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
13705func (s *S3SetObjectRetentionOperation) SetBypassGovernanceRetention(v bool) *S3SetObjectRetentionOperation {
13706	s.BypassGovernanceRetention = &v
13707	return s
13708}
13709
13710// SetRetention sets the Retention field's value.
13711func (s *S3SetObjectRetentionOperation) SetRetention(v *S3Retention) *S3SetObjectRetentionOperation {
13712	s.Retention = v
13713	return s
13714}
13715
13716// Contains the configuration parameters for a Set Object Tagging operation.
13717// S3 Batch Operations passes every object to the underlying PUT Object tagging
13718// API. For more information about the parameters for this operation, see PUT
13719// Object tagging (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTtagging.html).
13720type S3SetObjectTaggingOperation struct {
13721	_ struct{} `type:"structure"`
13722
13723	TagSet []*S3Tag `type:"list"`
13724}
13725
13726// String returns the string representation
13727func (s S3SetObjectTaggingOperation) String() string {
13728	return awsutil.Prettify(s)
13729}
13730
13731// GoString returns the string representation
13732func (s S3SetObjectTaggingOperation) GoString() string {
13733	return s.String()
13734}
13735
13736// Validate inspects the fields of the type to determine if they are valid.
13737func (s *S3SetObjectTaggingOperation) Validate() error {
13738	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectTaggingOperation"}
13739	if s.TagSet != nil {
13740		for i, v := range s.TagSet {
13741			if v == nil {
13742				continue
13743			}
13744			if err := v.Validate(); err != nil {
13745				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSet", i), err.(request.ErrInvalidParams))
13746			}
13747		}
13748	}
13749
13750	if invalidParams.Len() > 0 {
13751		return invalidParams
13752	}
13753	return nil
13754}
13755
13756// SetTagSet sets the TagSet field's value.
13757func (s *S3SetObjectTaggingOperation) SetTagSet(v []*S3Tag) *S3SetObjectTaggingOperation {
13758	s.TagSet = v
13759	return s
13760}
13761
13762type S3Tag struct {
13763	_ struct{} `type:"structure"`
13764
13765	// Key is a required field
13766	Key *string `min:"1" type:"string" required:"true"`
13767
13768	// Value is a required field
13769	Value *string `type:"string" required:"true"`
13770}
13771
13772// String returns the string representation
13773func (s S3Tag) String() string {
13774	return awsutil.Prettify(s)
13775}
13776
13777// GoString returns the string representation
13778func (s S3Tag) GoString() string {
13779	return s.String()
13780}
13781
13782// Validate inspects the fields of the type to determine if they are valid.
13783func (s *S3Tag) Validate() error {
13784	invalidParams := request.ErrInvalidParams{Context: "S3Tag"}
13785	if s.Key == nil {
13786		invalidParams.Add(request.NewErrParamRequired("Key"))
13787	}
13788	if s.Key != nil && len(*s.Key) < 1 {
13789		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
13790	}
13791	if s.Value == nil {
13792		invalidParams.Add(request.NewErrParamRequired("Value"))
13793	}
13794
13795	if invalidParams.Len() > 0 {
13796		return invalidParams
13797	}
13798	return nil
13799}
13800
13801// SetKey sets the Key field's value.
13802func (s *S3Tag) SetKey(v string) *S3Tag {
13803	s.Key = &v
13804	return s
13805}
13806
13807// SetValue sets the Value field's value.
13808func (s *S3Tag) SetValue(v string) *S3Tag {
13809	s.Value = &v
13810	return s
13811}
13812
13813type SSEKMS struct {
13814	_ struct{} `locationName:"SSE-KMS" type:"structure"`
13815
13816	// A container for the ARN of the SSE-KMS encryption. This property is read-only
13817	// and follows the following format: arn:aws:kms:us-east-1:example-account-id:key/example-9a73-4afc-8d29-8f5900cef44e
13818	//
13819	// KeyId is a required field
13820	KeyId *string `type:"string" required:"true"`
13821}
13822
13823// String returns the string representation
13824func (s SSEKMS) String() string {
13825	return awsutil.Prettify(s)
13826}
13827
13828// GoString returns the string representation
13829func (s SSEKMS) GoString() string {
13830	return s.String()
13831}
13832
13833// Validate inspects the fields of the type to determine if they are valid.
13834func (s *SSEKMS) Validate() error {
13835	invalidParams := request.ErrInvalidParams{Context: "SSEKMS"}
13836	if s.KeyId == nil {
13837		invalidParams.Add(request.NewErrParamRequired("KeyId"))
13838	}
13839
13840	if invalidParams.Len() > 0 {
13841		return invalidParams
13842	}
13843	return nil
13844}
13845
13846// SetKeyId sets the KeyId field's value.
13847func (s *SSEKMS) SetKeyId(v string) *SSEKMS {
13848	s.KeyId = &v
13849	return s
13850}
13851
13852type SSES3 struct {
13853	_ struct{} `locationName:"SSE-S3" type:"structure"`
13854}
13855
13856// String returns the string representation
13857func (s SSES3) String() string {
13858	return awsutil.Prettify(s)
13859}
13860
13861// GoString returns the string representation
13862func (s SSES3) GoString() string {
13863	return s.String()
13864}
13865
13866type SelectionCriteria struct {
13867	_ struct{} `type:"structure"`
13868
13869	// A container for the delimiter of the selection criteria being used.
13870	Delimiter *string `type:"string"`
13871
13872	// The max depth of the selection criteria
13873	MaxDepth *int64 `min:"1" type:"integer"`
13874
13875	// The minimum number of storage bytes percentage whose metrics will be selected.
13876	//
13877	// You must choose a value greater than or equal to 1.0.
13878	MinStorageBytesPercentage *float64 `min:"0.1" type:"double"`
13879}
13880
13881// String returns the string representation
13882func (s SelectionCriteria) String() string {
13883	return awsutil.Prettify(s)
13884}
13885
13886// GoString returns the string representation
13887func (s SelectionCriteria) GoString() string {
13888	return s.String()
13889}
13890
13891// Validate inspects the fields of the type to determine if they are valid.
13892func (s *SelectionCriteria) Validate() error {
13893	invalidParams := request.ErrInvalidParams{Context: "SelectionCriteria"}
13894	if s.MaxDepth != nil && *s.MaxDepth < 1 {
13895		invalidParams.Add(request.NewErrParamMinValue("MaxDepth", 1))
13896	}
13897	if s.MinStorageBytesPercentage != nil && *s.MinStorageBytesPercentage < 0.1 {
13898		invalidParams.Add(request.NewErrParamMinValue("MinStorageBytesPercentage", 0.1))
13899	}
13900
13901	if invalidParams.Len() > 0 {
13902		return invalidParams
13903	}
13904	return nil
13905}
13906
13907// SetDelimiter sets the Delimiter field's value.
13908func (s *SelectionCriteria) SetDelimiter(v string) *SelectionCriteria {
13909	s.Delimiter = &v
13910	return s
13911}
13912
13913// SetMaxDepth sets the MaxDepth field's value.
13914func (s *SelectionCriteria) SetMaxDepth(v int64) *SelectionCriteria {
13915	s.MaxDepth = &v
13916	return s
13917}
13918
13919// SetMinStorageBytesPercentage sets the MinStorageBytesPercentage field's value.
13920func (s *SelectionCriteria) SetMinStorageBytesPercentage(v float64) *SelectionCriteria {
13921	s.MinStorageBytesPercentage = &v
13922	return s
13923}
13924
13925// The Amazon Web Services organization for your S3 Storage Lens.
13926type StorageLensAwsOrg struct {
13927	_ struct{} `type:"structure"`
13928
13929	// A container for the Amazon Resource Name (ARN) of the Amazon Web Services
13930	// organization. This property is read-only and follows the following format:
13931	// arn:aws:organizations:us-east-1:example-account-id:organization/o-ex2l495dck
13932	//
13933	// Arn is a required field
13934	Arn *string `min:"1" type:"string" required:"true"`
13935}
13936
13937// String returns the string representation
13938func (s StorageLensAwsOrg) String() string {
13939	return awsutil.Prettify(s)
13940}
13941
13942// GoString returns the string representation
13943func (s StorageLensAwsOrg) GoString() string {
13944	return s.String()
13945}
13946
13947// Validate inspects the fields of the type to determine if they are valid.
13948func (s *StorageLensAwsOrg) Validate() error {
13949	invalidParams := request.ErrInvalidParams{Context: "StorageLensAwsOrg"}
13950	if s.Arn == nil {
13951		invalidParams.Add(request.NewErrParamRequired("Arn"))
13952	}
13953	if s.Arn != nil && len(*s.Arn) < 1 {
13954		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
13955	}
13956
13957	if invalidParams.Len() > 0 {
13958		return invalidParams
13959	}
13960	return nil
13961}
13962
13963// SetArn sets the Arn field's value.
13964func (s *StorageLensAwsOrg) SetArn(v string) *StorageLensAwsOrg {
13965	s.Arn = &v
13966	return s
13967}
13968
13969// A container for the Amazon S3 Storage Lens configuration.
13970type StorageLensConfiguration struct {
13971	_ struct{} `type:"structure"`
13972
13973	// A container for all the account-level configurations of your S3 Storage Lens
13974	// configuration.
13975	//
13976	// AccountLevel is a required field
13977	AccountLevel *AccountLevel `type:"structure" required:"true"`
13978
13979	// A container for the Amazon Web Services organization for this S3 Storage
13980	// Lens configuration.
13981	AwsOrg *StorageLensAwsOrg `type:"structure"`
13982
13983	// A container to specify the properties of your S3 Storage Lens metrics export
13984	// including, the destination, schema and format.
13985	DataExport *StorageLensDataExport `type:"structure"`
13986
13987	// A container for what is excluded in this configuration. This container can
13988	// only be valid if there is no Include container submitted, and it's not empty.
13989	Exclude *Exclude `type:"structure"`
13990
13991	// A container for the Amazon S3 Storage Lens configuration ID.
13992	//
13993	// Id is a required field
13994	Id *string `min:"1" type:"string" required:"true"`
13995
13996	// A container for what is included in this configuration. This container can
13997	// only be valid if there is no Exclude container submitted, and it's not empty.
13998	Include *Include `type:"structure"`
13999
14000	// A container for whether the S3 Storage Lens configuration is enabled.
14001	//
14002	// IsEnabled is a required field
14003	IsEnabled *bool `type:"boolean" required:"true"`
14004
14005	// The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This
14006	// property is read-only and follows the following format: arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name
14007	StorageLensArn *string `min:"1" type:"string"`
14008}
14009
14010// String returns the string representation
14011func (s StorageLensConfiguration) String() string {
14012	return awsutil.Prettify(s)
14013}
14014
14015// GoString returns the string representation
14016func (s StorageLensConfiguration) GoString() string {
14017	return s.String()
14018}
14019
14020// Validate inspects the fields of the type to determine if they are valid.
14021func (s *StorageLensConfiguration) Validate() error {
14022	invalidParams := request.ErrInvalidParams{Context: "StorageLensConfiguration"}
14023	if s.AccountLevel == nil {
14024		invalidParams.Add(request.NewErrParamRequired("AccountLevel"))
14025	}
14026	if s.Id == nil {
14027		invalidParams.Add(request.NewErrParamRequired("Id"))
14028	}
14029	if s.Id != nil && len(*s.Id) < 1 {
14030		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
14031	}
14032	if s.IsEnabled == nil {
14033		invalidParams.Add(request.NewErrParamRequired("IsEnabled"))
14034	}
14035	if s.StorageLensArn != nil && len(*s.StorageLensArn) < 1 {
14036		invalidParams.Add(request.NewErrParamMinLen("StorageLensArn", 1))
14037	}
14038	if s.AccountLevel != nil {
14039		if err := s.AccountLevel.Validate(); err != nil {
14040			invalidParams.AddNested("AccountLevel", err.(request.ErrInvalidParams))
14041		}
14042	}
14043	if s.AwsOrg != nil {
14044		if err := s.AwsOrg.Validate(); err != nil {
14045			invalidParams.AddNested("AwsOrg", err.(request.ErrInvalidParams))
14046		}
14047	}
14048	if s.DataExport != nil {
14049		if err := s.DataExport.Validate(); err != nil {
14050			invalidParams.AddNested("DataExport", err.(request.ErrInvalidParams))
14051		}
14052	}
14053
14054	if invalidParams.Len() > 0 {
14055		return invalidParams
14056	}
14057	return nil
14058}
14059
14060// SetAccountLevel sets the AccountLevel field's value.
14061func (s *StorageLensConfiguration) SetAccountLevel(v *AccountLevel) *StorageLensConfiguration {
14062	s.AccountLevel = v
14063	return s
14064}
14065
14066// SetAwsOrg sets the AwsOrg field's value.
14067func (s *StorageLensConfiguration) SetAwsOrg(v *StorageLensAwsOrg) *StorageLensConfiguration {
14068	s.AwsOrg = v
14069	return s
14070}
14071
14072// SetDataExport sets the DataExport field's value.
14073func (s *StorageLensConfiguration) SetDataExport(v *StorageLensDataExport) *StorageLensConfiguration {
14074	s.DataExport = v
14075	return s
14076}
14077
14078// SetExclude sets the Exclude field's value.
14079func (s *StorageLensConfiguration) SetExclude(v *Exclude) *StorageLensConfiguration {
14080	s.Exclude = v
14081	return s
14082}
14083
14084// SetId sets the Id field's value.
14085func (s *StorageLensConfiguration) SetId(v string) *StorageLensConfiguration {
14086	s.Id = &v
14087	return s
14088}
14089
14090// SetInclude sets the Include field's value.
14091func (s *StorageLensConfiguration) SetInclude(v *Include) *StorageLensConfiguration {
14092	s.Include = v
14093	return s
14094}
14095
14096// SetIsEnabled sets the IsEnabled field's value.
14097func (s *StorageLensConfiguration) SetIsEnabled(v bool) *StorageLensConfiguration {
14098	s.IsEnabled = &v
14099	return s
14100}
14101
14102// SetStorageLensArn sets the StorageLensArn field's value.
14103func (s *StorageLensConfiguration) SetStorageLensArn(v string) *StorageLensConfiguration {
14104	s.StorageLensArn = &v
14105	return s
14106}
14107
14108// A container to specify the properties of your S3 Storage Lens metrics export,
14109// including the destination, schema, and format.
14110type StorageLensDataExport struct {
14111	_ struct{} `type:"structure"`
14112
14113	// A container for the bucket where the S3 Storage Lens metrics export will
14114	// be located.
14115	//
14116	// This bucket must be located in the same Region as the storage lens configuration.
14117	//
14118	// S3BucketDestination is a required field
14119	S3BucketDestination *S3BucketDestination `type:"structure" required:"true"`
14120}
14121
14122// String returns the string representation
14123func (s StorageLensDataExport) String() string {
14124	return awsutil.Prettify(s)
14125}
14126
14127// GoString returns the string representation
14128func (s StorageLensDataExport) GoString() string {
14129	return s.String()
14130}
14131
14132// Validate inspects the fields of the type to determine if they are valid.
14133func (s *StorageLensDataExport) Validate() error {
14134	invalidParams := request.ErrInvalidParams{Context: "StorageLensDataExport"}
14135	if s.S3BucketDestination == nil {
14136		invalidParams.Add(request.NewErrParamRequired("S3BucketDestination"))
14137	}
14138	if s.S3BucketDestination != nil {
14139		if err := s.S3BucketDestination.Validate(); err != nil {
14140			invalidParams.AddNested("S3BucketDestination", err.(request.ErrInvalidParams))
14141		}
14142	}
14143
14144	if invalidParams.Len() > 0 {
14145		return invalidParams
14146	}
14147	return nil
14148}
14149
14150// SetS3BucketDestination sets the S3BucketDestination field's value.
14151func (s *StorageLensDataExport) SetS3BucketDestination(v *S3BucketDestination) *StorageLensDataExport {
14152	s.S3BucketDestination = v
14153	return s
14154}
14155
14156// A container for the encryption of the S3 Storage Lens metrics exports.
14157type StorageLensDataExportEncryption struct {
14158	_ struct{} `type:"structure"`
14159
14160	SSEKMS *SSEKMS `locationName:"SSE-KMS" type:"structure"`
14161
14162	SSES3 *SSES3 `locationName:"SSE-S3" type:"structure"`
14163}
14164
14165// String returns the string representation
14166func (s StorageLensDataExportEncryption) String() string {
14167	return awsutil.Prettify(s)
14168}
14169
14170// GoString returns the string representation
14171func (s StorageLensDataExportEncryption) GoString() string {
14172	return s.String()
14173}
14174
14175// Validate inspects the fields of the type to determine if they are valid.
14176func (s *StorageLensDataExportEncryption) Validate() error {
14177	invalidParams := request.ErrInvalidParams{Context: "StorageLensDataExportEncryption"}
14178	if s.SSEKMS != nil {
14179		if err := s.SSEKMS.Validate(); err != nil {
14180			invalidParams.AddNested("SSEKMS", err.(request.ErrInvalidParams))
14181		}
14182	}
14183
14184	if invalidParams.Len() > 0 {
14185		return invalidParams
14186	}
14187	return nil
14188}
14189
14190// SetSSEKMS sets the SSEKMS field's value.
14191func (s *StorageLensDataExportEncryption) SetSSEKMS(v *SSEKMS) *StorageLensDataExportEncryption {
14192	s.SSEKMS = v
14193	return s
14194}
14195
14196// SetSSES3 sets the SSES3 field's value.
14197func (s *StorageLensDataExportEncryption) SetSSES3(v *SSES3) *StorageLensDataExportEncryption {
14198	s.SSES3 = v
14199	return s
14200}
14201
14202type StorageLensTag struct {
14203	_ struct{} `type:"structure"`
14204
14205	// Key is a required field
14206	Key *string `min:"1" type:"string" required:"true"`
14207
14208	// Value is a required field
14209	Value *string `type:"string" required:"true"`
14210}
14211
14212// String returns the string representation
14213func (s StorageLensTag) String() string {
14214	return awsutil.Prettify(s)
14215}
14216
14217// GoString returns the string representation
14218func (s StorageLensTag) GoString() string {
14219	return s.String()
14220}
14221
14222// Validate inspects the fields of the type to determine if they are valid.
14223func (s *StorageLensTag) Validate() error {
14224	invalidParams := request.ErrInvalidParams{Context: "StorageLensTag"}
14225	if s.Key == nil {
14226		invalidParams.Add(request.NewErrParamRequired("Key"))
14227	}
14228	if s.Key != nil && len(*s.Key) < 1 {
14229		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
14230	}
14231	if s.Value == nil {
14232		invalidParams.Add(request.NewErrParamRequired("Value"))
14233	}
14234
14235	if invalidParams.Len() > 0 {
14236		return invalidParams
14237	}
14238	return nil
14239}
14240
14241// SetKey sets the Key field's value.
14242func (s *StorageLensTag) SetKey(v string) *StorageLensTag {
14243	s.Key = &v
14244	return s
14245}
14246
14247// SetValue sets the Value field's value.
14248func (s *StorageLensTag) SetValue(v string) *StorageLensTag {
14249	s.Value = &v
14250	return s
14251}
14252
14253type Tagging struct {
14254	_ struct{} `type:"structure"`
14255
14256	// A collection for a set of tags.
14257	//
14258	// TagSet is a required field
14259	TagSet []*S3Tag `type:"list" required:"true"`
14260}
14261
14262// String returns the string representation
14263func (s Tagging) String() string {
14264	return awsutil.Prettify(s)
14265}
14266
14267// GoString returns the string representation
14268func (s Tagging) GoString() string {
14269	return s.String()
14270}
14271
14272// Validate inspects the fields of the type to determine if they are valid.
14273func (s *Tagging) Validate() error {
14274	invalidParams := request.ErrInvalidParams{Context: "Tagging"}
14275	if s.TagSet == nil {
14276		invalidParams.Add(request.NewErrParamRequired("TagSet"))
14277	}
14278	if s.TagSet != nil {
14279		for i, v := range s.TagSet {
14280			if v == nil {
14281				continue
14282			}
14283			if err := v.Validate(); err != nil {
14284				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSet", i), err.(request.ErrInvalidParams))
14285			}
14286		}
14287	}
14288
14289	if invalidParams.Len() > 0 {
14290		return invalidParams
14291	}
14292	return nil
14293}
14294
14295// SetTagSet sets the TagSet field's value.
14296func (s *Tagging) SetTagSet(v []*S3Tag) *Tagging {
14297	s.TagSet = v
14298	return s
14299}
14300
14301// Specifies when an object transitions to a specified storage class. For more
14302// information about Amazon S3 Lifecycle configuration rules, see Transitioning
14303// objects using Amazon S3 Lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html)
14304// in the Amazon S3 User Guide.
14305type Transition struct {
14306	_ struct{} `type:"structure"`
14307
14308	// Indicates when objects are transitioned to the specified storage class. The
14309	// date value must be in ISO 8601 format. The time is always midnight UTC.
14310	Date *time.Time `type:"timestamp"`
14311
14312	// Indicates the number of days after creation when objects are transitioned
14313	// to the specified storage class. The value must be a positive integer.
14314	Days *int64 `type:"integer"`
14315
14316	// The storage class to which you want the object to transition.
14317	StorageClass *string `type:"string" enum:"TransitionStorageClass"`
14318}
14319
14320// String returns the string representation
14321func (s Transition) String() string {
14322	return awsutil.Prettify(s)
14323}
14324
14325// GoString returns the string representation
14326func (s Transition) GoString() string {
14327	return s.String()
14328}
14329
14330// SetDate sets the Date field's value.
14331func (s *Transition) SetDate(v time.Time) *Transition {
14332	s.Date = &v
14333	return s
14334}
14335
14336// SetDays sets the Days field's value.
14337func (s *Transition) SetDays(v int64) *Transition {
14338	s.Days = &v
14339	return s
14340}
14341
14342// SetStorageClass sets the StorageClass field's value.
14343func (s *Transition) SetStorageClass(v string) *Transition {
14344	s.StorageClass = &v
14345	return s
14346}
14347
14348type UpdateJobPriorityInput struct {
14349	_ struct{} `locationName:"UpdateJobPriorityRequest" type:"structure"`
14350
14351	// The account ID associated with the S3 Batch Operations job.
14352	//
14353	// AccountId is a required field
14354	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
14355
14356	// The ID for the job whose priority you want to update.
14357	//
14358	// JobId is a required field
14359	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
14360
14361	// The priority you want to assign to this job.
14362	//
14363	// Priority is a required field
14364	Priority *int64 `location:"querystring" locationName:"priority" type:"integer" required:"true"`
14365}
14366
14367// String returns the string representation
14368func (s UpdateJobPriorityInput) String() string {
14369	return awsutil.Prettify(s)
14370}
14371
14372// GoString returns the string representation
14373func (s UpdateJobPriorityInput) GoString() string {
14374	return s.String()
14375}
14376
14377// Validate inspects the fields of the type to determine if they are valid.
14378func (s *UpdateJobPriorityInput) Validate() error {
14379	invalidParams := request.ErrInvalidParams{Context: "UpdateJobPriorityInput"}
14380	if s.AccountId == nil {
14381		invalidParams.Add(request.NewErrParamRequired("AccountId"))
14382	}
14383	if s.AccountId != nil && len(*s.AccountId) < 1 {
14384		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
14385	}
14386	if s.JobId == nil {
14387		invalidParams.Add(request.NewErrParamRequired("JobId"))
14388	}
14389	if s.JobId != nil && len(*s.JobId) < 5 {
14390		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
14391	}
14392	if s.Priority == nil {
14393		invalidParams.Add(request.NewErrParamRequired("Priority"))
14394	}
14395
14396	if invalidParams.Len() > 0 {
14397		return invalidParams
14398	}
14399	return nil
14400}
14401
14402// SetAccountId sets the AccountId field's value.
14403func (s *UpdateJobPriorityInput) SetAccountId(v string) *UpdateJobPriorityInput {
14404	s.AccountId = &v
14405	return s
14406}
14407
14408// SetJobId sets the JobId field's value.
14409func (s *UpdateJobPriorityInput) SetJobId(v string) *UpdateJobPriorityInput {
14410	s.JobId = &v
14411	return s
14412}
14413
14414// SetPriority sets the Priority field's value.
14415func (s *UpdateJobPriorityInput) SetPriority(v int64) *UpdateJobPriorityInput {
14416	s.Priority = &v
14417	return s
14418}
14419
14420func (s *UpdateJobPriorityInput) hostLabels() map[string]string {
14421	return map[string]string{
14422		"AccountId": aws.StringValue(s.AccountId),
14423	}
14424}
14425
14426type UpdateJobPriorityOutput struct {
14427	_ struct{} `type:"structure"`
14428
14429	// The ID for the job whose priority Amazon S3 updated.
14430	//
14431	// JobId is a required field
14432	JobId *string `min:"5" type:"string" required:"true"`
14433
14434	// The new priority assigned to the specified job.
14435	//
14436	// Priority is a required field
14437	Priority *int64 `type:"integer" required:"true"`
14438}
14439
14440// String returns the string representation
14441func (s UpdateJobPriorityOutput) String() string {
14442	return awsutil.Prettify(s)
14443}
14444
14445// GoString returns the string representation
14446func (s UpdateJobPriorityOutput) GoString() string {
14447	return s.String()
14448}
14449
14450// SetJobId sets the JobId field's value.
14451func (s *UpdateJobPriorityOutput) SetJobId(v string) *UpdateJobPriorityOutput {
14452	s.JobId = &v
14453	return s
14454}
14455
14456// SetPriority sets the Priority field's value.
14457func (s *UpdateJobPriorityOutput) SetPriority(v int64) *UpdateJobPriorityOutput {
14458	s.Priority = &v
14459	return s
14460}
14461
14462type UpdateJobStatusInput struct {
14463	_ struct{} `locationName:"UpdateJobStatusRequest" type:"structure"`
14464
14465	// The account ID associated with the S3 Batch Operations job.
14466	//
14467	// AccountId is a required field
14468	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
14469
14470	// The ID of the job whose status you want to update.
14471	//
14472	// JobId is a required field
14473	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
14474
14475	// The status that you want to move the specified job to.
14476	//
14477	// RequestedJobStatus is a required field
14478	RequestedJobStatus *string `location:"querystring" locationName:"requestedJobStatus" type:"string" required:"true" enum:"RequestedJobStatus"`
14479
14480	// A description of the reason why you want to change the specified job's status.
14481	// This field can be any string up to the maximum length.
14482	StatusUpdateReason *string `location:"querystring" locationName:"statusUpdateReason" min:"1" type:"string"`
14483}
14484
14485// String returns the string representation
14486func (s UpdateJobStatusInput) String() string {
14487	return awsutil.Prettify(s)
14488}
14489
14490// GoString returns the string representation
14491func (s UpdateJobStatusInput) GoString() string {
14492	return s.String()
14493}
14494
14495// Validate inspects the fields of the type to determine if they are valid.
14496func (s *UpdateJobStatusInput) Validate() error {
14497	invalidParams := request.ErrInvalidParams{Context: "UpdateJobStatusInput"}
14498	if s.AccountId == nil {
14499		invalidParams.Add(request.NewErrParamRequired("AccountId"))
14500	}
14501	if s.AccountId != nil && len(*s.AccountId) < 1 {
14502		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
14503	}
14504	if s.JobId == nil {
14505		invalidParams.Add(request.NewErrParamRequired("JobId"))
14506	}
14507	if s.JobId != nil && len(*s.JobId) < 5 {
14508		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
14509	}
14510	if s.RequestedJobStatus == nil {
14511		invalidParams.Add(request.NewErrParamRequired("RequestedJobStatus"))
14512	}
14513	if s.StatusUpdateReason != nil && len(*s.StatusUpdateReason) < 1 {
14514		invalidParams.Add(request.NewErrParamMinLen("StatusUpdateReason", 1))
14515	}
14516
14517	if invalidParams.Len() > 0 {
14518		return invalidParams
14519	}
14520	return nil
14521}
14522
14523// SetAccountId sets the AccountId field's value.
14524func (s *UpdateJobStatusInput) SetAccountId(v string) *UpdateJobStatusInput {
14525	s.AccountId = &v
14526	return s
14527}
14528
14529// SetJobId sets the JobId field's value.
14530func (s *UpdateJobStatusInput) SetJobId(v string) *UpdateJobStatusInput {
14531	s.JobId = &v
14532	return s
14533}
14534
14535// SetRequestedJobStatus sets the RequestedJobStatus field's value.
14536func (s *UpdateJobStatusInput) SetRequestedJobStatus(v string) *UpdateJobStatusInput {
14537	s.RequestedJobStatus = &v
14538	return s
14539}
14540
14541// SetStatusUpdateReason sets the StatusUpdateReason field's value.
14542func (s *UpdateJobStatusInput) SetStatusUpdateReason(v string) *UpdateJobStatusInput {
14543	s.StatusUpdateReason = &v
14544	return s
14545}
14546
14547func (s *UpdateJobStatusInput) hostLabels() map[string]string {
14548	return map[string]string{
14549		"AccountId": aws.StringValue(s.AccountId),
14550	}
14551}
14552
14553type UpdateJobStatusOutput struct {
14554	_ struct{} `type:"structure"`
14555
14556	// The ID for the job whose status was updated.
14557	JobId *string `min:"5" type:"string"`
14558
14559	// The current status for the specified job.
14560	Status *string `type:"string" enum:"JobStatus"`
14561
14562	// The reason that the specified job's status was updated.
14563	StatusUpdateReason *string `min:"1" type:"string"`
14564}
14565
14566// String returns the string representation
14567func (s UpdateJobStatusOutput) String() string {
14568	return awsutil.Prettify(s)
14569}
14570
14571// GoString returns the string representation
14572func (s UpdateJobStatusOutput) GoString() string {
14573	return s.String()
14574}
14575
14576// SetJobId sets the JobId field's value.
14577func (s *UpdateJobStatusOutput) SetJobId(v string) *UpdateJobStatusOutput {
14578	s.JobId = &v
14579	return s
14580}
14581
14582// SetStatus sets the Status field's value.
14583func (s *UpdateJobStatusOutput) SetStatus(v string) *UpdateJobStatusOutput {
14584	s.Status = &v
14585	return s
14586}
14587
14588// SetStatusUpdateReason sets the StatusUpdateReason field's value.
14589func (s *UpdateJobStatusOutput) SetStatusUpdateReason(v string) *UpdateJobStatusOutput {
14590	s.StatusUpdateReason = &v
14591	return s
14592}
14593
14594// The virtual private cloud (VPC) configuration for an access point.
14595type VpcConfiguration struct {
14596	_ struct{} `type:"structure"`
14597
14598	// If this field is specified, this access point will only allow connections
14599	// from the specified VPC ID.
14600	//
14601	// VpcId is a required field
14602	VpcId *string `min:"1" type:"string" required:"true"`
14603}
14604
14605// String returns the string representation
14606func (s VpcConfiguration) String() string {
14607	return awsutil.Prettify(s)
14608}
14609
14610// GoString returns the string representation
14611func (s VpcConfiguration) GoString() string {
14612	return s.String()
14613}
14614
14615// Validate inspects the fields of the type to determine if they are valid.
14616func (s *VpcConfiguration) Validate() error {
14617	invalidParams := request.ErrInvalidParams{Context: "VpcConfiguration"}
14618	if s.VpcId == nil {
14619		invalidParams.Add(request.NewErrParamRequired("VpcId"))
14620	}
14621	if s.VpcId != nil && len(*s.VpcId) < 1 {
14622		invalidParams.Add(request.NewErrParamMinLen("VpcId", 1))
14623	}
14624
14625	if invalidParams.Len() > 0 {
14626		return invalidParams
14627	}
14628	return nil
14629}
14630
14631// SetVpcId sets the VpcId field's value.
14632func (s *VpcConfiguration) SetVpcId(v string) *VpcConfiguration {
14633	s.VpcId = &v
14634	return s
14635}
14636
14637const (
14638	// BucketCannedACLPrivate is a BucketCannedACL enum value
14639	BucketCannedACLPrivate = "private"
14640
14641	// BucketCannedACLPublicRead is a BucketCannedACL enum value
14642	BucketCannedACLPublicRead = "public-read"
14643
14644	// BucketCannedACLPublicReadWrite is a BucketCannedACL enum value
14645	BucketCannedACLPublicReadWrite = "public-read-write"
14646
14647	// BucketCannedACLAuthenticatedRead is a BucketCannedACL enum value
14648	BucketCannedACLAuthenticatedRead = "authenticated-read"
14649)
14650
14651// BucketCannedACL_Values returns all elements of the BucketCannedACL enum
14652func BucketCannedACL_Values() []string {
14653	return []string{
14654		BucketCannedACLPrivate,
14655		BucketCannedACLPublicRead,
14656		BucketCannedACLPublicReadWrite,
14657		BucketCannedACLAuthenticatedRead,
14658	}
14659}
14660
14661const (
14662	// BucketLocationConstraintEu is a BucketLocationConstraint enum value
14663	BucketLocationConstraintEu = "EU"
14664
14665	// BucketLocationConstraintEuWest1 is a BucketLocationConstraint enum value
14666	BucketLocationConstraintEuWest1 = "eu-west-1"
14667
14668	// BucketLocationConstraintUsWest1 is a BucketLocationConstraint enum value
14669	BucketLocationConstraintUsWest1 = "us-west-1"
14670
14671	// BucketLocationConstraintUsWest2 is a BucketLocationConstraint enum value
14672	BucketLocationConstraintUsWest2 = "us-west-2"
14673
14674	// BucketLocationConstraintApSouth1 is a BucketLocationConstraint enum value
14675	BucketLocationConstraintApSouth1 = "ap-south-1"
14676
14677	// BucketLocationConstraintApSoutheast1 is a BucketLocationConstraint enum value
14678	BucketLocationConstraintApSoutheast1 = "ap-southeast-1"
14679
14680	// BucketLocationConstraintApSoutheast2 is a BucketLocationConstraint enum value
14681	BucketLocationConstraintApSoutheast2 = "ap-southeast-2"
14682
14683	// BucketLocationConstraintApNortheast1 is a BucketLocationConstraint enum value
14684	BucketLocationConstraintApNortheast1 = "ap-northeast-1"
14685
14686	// BucketLocationConstraintSaEast1 is a BucketLocationConstraint enum value
14687	BucketLocationConstraintSaEast1 = "sa-east-1"
14688
14689	// BucketLocationConstraintCnNorth1 is a BucketLocationConstraint enum value
14690	BucketLocationConstraintCnNorth1 = "cn-north-1"
14691
14692	// BucketLocationConstraintEuCentral1 is a BucketLocationConstraint enum value
14693	BucketLocationConstraintEuCentral1 = "eu-central-1"
14694)
14695
14696// BucketLocationConstraint_Values returns all elements of the BucketLocationConstraint enum
14697func BucketLocationConstraint_Values() []string {
14698	return []string{
14699		BucketLocationConstraintEu,
14700		BucketLocationConstraintEuWest1,
14701		BucketLocationConstraintUsWest1,
14702		BucketLocationConstraintUsWest2,
14703		BucketLocationConstraintApSouth1,
14704		BucketLocationConstraintApSoutheast1,
14705		BucketLocationConstraintApSoutheast2,
14706		BucketLocationConstraintApNortheast1,
14707		BucketLocationConstraintSaEast1,
14708		BucketLocationConstraintCnNorth1,
14709		BucketLocationConstraintEuCentral1,
14710	}
14711}
14712
14713const (
14714	// ExpirationStatusEnabled is a ExpirationStatus enum value
14715	ExpirationStatusEnabled = "Enabled"
14716
14717	// ExpirationStatusDisabled is a ExpirationStatus enum value
14718	ExpirationStatusDisabled = "Disabled"
14719)
14720
14721// ExpirationStatus_Values returns all elements of the ExpirationStatus enum
14722func ExpirationStatus_Values() []string {
14723	return []string{
14724		ExpirationStatusEnabled,
14725		ExpirationStatusDisabled,
14726	}
14727}
14728
14729const (
14730	// FormatCsv is a Format enum value
14731	FormatCsv = "CSV"
14732
14733	// FormatParquet is a Format enum value
14734	FormatParquet = "Parquet"
14735)
14736
14737// Format_Values returns all elements of the Format enum
14738func Format_Values() []string {
14739	return []string{
14740		FormatCsv,
14741		FormatParquet,
14742	}
14743}
14744
14745const (
14746	// JobManifestFieldNameIgnore is a JobManifestFieldName enum value
14747	JobManifestFieldNameIgnore = "Ignore"
14748
14749	// JobManifestFieldNameBucket is a JobManifestFieldName enum value
14750	JobManifestFieldNameBucket = "Bucket"
14751
14752	// JobManifestFieldNameKey is a JobManifestFieldName enum value
14753	JobManifestFieldNameKey = "Key"
14754
14755	// JobManifestFieldNameVersionId is a JobManifestFieldName enum value
14756	JobManifestFieldNameVersionId = "VersionId"
14757)
14758
14759// JobManifestFieldName_Values returns all elements of the JobManifestFieldName enum
14760func JobManifestFieldName_Values() []string {
14761	return []string{
14762		JobManifestFieldNameIgnore,
14763		JobManifestFieldNameBucket,
14764		JobManifestFieldNameKey,
14765		JobManifestFieldNameVersionId,
14766	}
14767}
14768
14769const (
14770	// JobManifestFormatS3batchOperationsCsv20180820 is a JobManifestFormat enum value
14771	JobManifestFormatS3batchOperationsCsv20180820 = "S3BatchOperations_CSV_20180820"
14772
14773	// JobManifestFormatS3inventoryReportCsv20161130 is a JobManifestFormat enum value
14774	JobManifestFormatS3inventoryReportCsv20161130 = "S3InventoryReport_CSV_20161130"
14775)
14776
14777// JobManifestFormat_Values returns all elements of the JobManifestFormat enum
14778func JobManifestFormat_Values() []string {
14779	return []string{
14780		JobManifestFormatS3batchOperationsCsv20180820,
14781		JobManifestFormatS3inventoryReportCsv20161130,
14782	}
14783}
14784
14785const (
14786	// JobReportFormatReportCsv20180820 is a JobReportFormat enum value
14787	JobReportFormatReportCsv20180820 = "Report_CSV_20180820"
14788)
14789
14790// JobReportFormat_Values returns all elements of the JobReportFormat enum
14791func JobReportFormat_Values() []string {
14792	return []string{
14793		JobReportFormatReportCsv20180820,
14794	}
14795}
14796
14797const (
14798	// JobReportScopeAllTasks is a JobReportScope enum value
14799	JobReportScopeAllTasks = "AllTasks"
14800
14801	// JobReportScopeFailedTasksOnly is a JobReportScope enum value
14802	JobReportScopeFailedTasksOnly = "FailedTasksOnly"
14803)
14804
14805// JobReportScope_Values returns all elements of the JobReportScope enum
14806func JobReportScope_Values() []string {
14807	return []string{
14808		JobReportScopeAllTasks,
14809		JobReportScopeFailedTasksOnly,
14810	}
14811}
14812
14813const (
14814	// JobStatusActive is a JobStatus enum value
14815	JobStatusActive = "Active"
14816
14817	// JobStatusCancelled is a JobStatus enum value
14818	JobStatusCancelled = "Cancelled"
14819
14820	// JobStatusCancelling is a JobStatus enum value
14821	JobStatusCancelling = "Cancelling"
14822
14823	// JobStatusComplete is a JobStatus enum value
14824	JobStatusComplete = "Complete"
14825
14826	// JobStatusCompleting is a JobStatus enum value
14827	JobStatusCompleting = "Completing"
14828
14829	// JobStatusFailed is a JobStatus enum value
14830	JobStatusFailed = "Failed"
14831
14832	// JobStatusFailing is a JobStatus enum value
14833	JobStatusFailing = "Failing"
14834
14835	// JobStatusNew is a JobStatus enum value
14836	JobStatusNew = "New"
14837
14838	// JobStatusPaused is a JobStatus enum value
14839	JobStatusPaused = "Paused"
14840
14841	// JobStatusPausing is a JobStatus enum value
14842	JobStatusPausing = "Pausing"
14843
14844	// JobStatusPreparing is a JobStatus enum value
14845	JobStatusPreparing = "Preparing"
14846
14847	// JobStatusReady is a JobStatus enum value
14848	JobStatusReady = "Ready"
14849
14850	// JobStatusSuspended is a JobStatus enum value
14851	JobStatusSuspended = "Suspended"
14852)
14853
14854// JobStatus_Values returns all elements of the JobStatus enum
14855func JobStatus_Values() []string {
14856	return []string{
14857		JobStatusActive,
14858		JobStatusCancelled,
14859		JobStatusCancelling,
14860		JobStatusComplete,
14861		JobStatusCompleting,
14862		JobStatusFailed,
14863		JobStatusFailing,
14864		JobStatusNew,
14865		JobStatusPaused,
14866		JobStatusPausing,
14867		JobStatusPreparing,
14868		JobStatusReady,
14869		JobStatusSuspended,
14870	}
14871}
14872
14873const (
14874	// NetworkOriginInternet is a NetworkOrigin enum value
14875	NetworkOriginInternet = "Internet"
14876
14877	// NetworkOriginVpc is a NetworkOrigin enum value
14878	NetworkOriginVpc = "VPC"
14879)
14880
14881// NetworkOrigin_Values returns all elements of the NetworkOrigin enum
14882func NetworkOrigin_Values() []string {
14883	return []string{
14884		NetworkOriginInternet,
14885		NetworkOriginVpc,
14886	}
14887}
14888
14889const (
14890	// ObjectLambdaAllowedFeatureGetObjectRange is a ObjectLambdaAllowedFeature enum value
14891	ObjectLambdaAllowedFeatureGetObjectRange = "GetObject-Range"
14892
14893	// ObjectLambdaAllowedFeatureGetObjectPartNumber is a ObjectLambdaAllowedFeature enum value
14894	ObjectLambdaAllowedFeatureGetObjectPartNumber = "GetObject-PartNumber"
14895)
14896
14897// ObjectLambdaAllowedFeature_Values returns all elements of the ObjectLambdaAllowedFeature enum
14898func ObjectLambdaAllowedFeature_Values() []string {
14899	return []string{
14900		ObjectLambdaAllowedFeatureGetObjectRange,
14901		ObjectLambdaAllowedFeatureGetObjectPartNumber,
14902	}
14903}
14904
14905const (
14906	// ObjectLambdaTransformationConfigurationActionGetObject is a ObjectLambdaTransformationConfigurationAction enum value
14907	ObjectLambdaTransformationConfigurationActionGetObject = "GetObject"
14908)
14909
14910// ObjectLambdaTransformationConfigurationAction_Values returns all elements of the ObjectLambdaTransformationConfigurationAction enum
14911func ObjectLambdaTransformationConfigurationAction_Values() []string {
14912	return []string{
14913		ObjectLambdaTransformationConfigurationActionGetObject,
14914	}
14915}
14916
14917const (
14918	// OperationNameLambdaInvoke is a OperationName enum value
14919	OperationNameLambdaInvoke = "LambdaInvoke"
14920
14921	// OperationNameS3putObjectCopy is a OperationName enum value
14922	OperationNameS3putObjectCopy = "S3PutObjectCopy"
14923
14924	// OperationNameS3putObjectAcl is a OperationName enum value
14925	OperationNameS3putObjectAcl = "S3PutObjectAcl"
14926
14927	// OperationNameS3putObjectTagging is a OperationName enum value
14928	OperationNameS3putObjectTagging = "S3PutObjectTagging"
14929
14930	// OperationNameS3deleteObjectTagging is a OperationName enum value
14931	OperationNameS3deleteObjectTagging = "S3DeleteObjectTagging"
14932
14933	// OperationNameS3initiateRestoreObject is a OperationName enum value
14934	OperationNameS3initiateRestoreObject = "S3InitiateRestoreObject"
14935
14936	// OperationNameS3putObjectLegalHold is a OperationName enum value
14937	OperationNameS3putObjectLegalHold = "S3PutObjectLegalHold"
14938
14939	// OperationNameS3putObjectRetention is a OperationName enum value
14940	OperationNameS3putObjectRetention = "S3PutObjectRetention"
14941)
14942
14943// OperationName_Values returns all elements of the OperationName enum
14944func OperationName_Values() []string {
14945	return []string{
14946		OperationNameLambdaInvoke,
14947		OperationNameS3putObjectCopy,
14948		OperationNameS3putObjectAcl,
14949		OperationNameS3putObjectTagging,
14950		OperationNameS3deleteObjectTagging,
14951		OperationNameS3initiateRestoreObject,
14952		OperationNameS3putObjectLegalHold,
14953		OperationNameS3putObjectRetention,
14954	}
14955}
14956
14957const (
14958	// OutputSchemaVersionV1 is a OutputSchemaVersion enum value
14959	OutputSchemaVersionV1 = "V_1"
14960)
14961
14962// OutputSchemaVersion_Values returns all elements of the OutputSchemaVersion enum
14963func OutputSchemaVersion_Values() []string {
14964	return []string{
14965		OutputSchemaVersionV1,
14966	}
14967}
14968
14969const (
14970	// RequestedJobStatusCancelled is a RequestedJobStatus enum value
14971	RequestedJobStatusCancelled = "Cancelled"
14972
14973	// RequestedJobStatusReady is a RequestedJobStatus enum value
14974	RequestedJobStatusReady = "Ready"
14975)
14976
14977// RequestedJobStatus_Values returns all elements of the RequestedJobStatus enum
14978func RequestedJobStatus_Values() []string {
14979	return []string{
14980		RequestedJobStatusCancelled,
14981		RequestedJobStatusReady,
14982	}
14983}
14984
14985const (
14986	// S3CannedAccessControlListPrivate is a S3CannedAccessControlList enum value
14987	S3CannedAccessControlListPrivate = "private"
14988
14989	// S3CannedAccessControlListPublicRead is a S3CannedAccessControlList enum value
14990	S3CannedAccessControlListPublicRead = "public-read"
14991
14992	// S3CannedAccessControlListPublicReadWrite is a S3CannedAccessControlList enum value
14993	S3CannedAccessControlListPublicReadWrite = "public-read-write"
14994
14995	// S3CannedAccessControlListAwsExecRead is a S3CannedAccessControlList enum value
14996	S3CannedAccessControlListAwsExecRead = "aws-exec-read"
14997
14998	// S3CannedAccessControlListAuthenticatedRead is a S3CannedAccessControlList enum value
14999	S3CannedAccessControlListAuthenticatedRead = "authenticated-read"
15000
15001	// S3CannedAccessControlListBucketOwnerRead is a S3CannedAccessControlList enum value
15002	S3CannedAccessControlListBucketOwnerRead = "bucket-owner-read"
15003
15004	// S3CannedAccessControlListBucketOwnerFullControl is a S3CannedAccessControlList enum value
15005	S3CannedAccessControlListBucketOwnerFullControl = "bucket-owner-full-control"
15006)
15007
15008// S3CannedAccessControlList_Values returns all elements of the S3CannedAccessControlList enum
15009func S3CannedAccessControlList_Values() []string {
15010	return []string{
15011		S3CannedAccessControlListPrivate,
15012		S3CannedAccessControlListPublicRead,
15013		S3CannedAccessControlListPublicReadWrite,
15014		S3CannedAccessControlListAwsExecRead,
15015		S3CannedAccessControlListAuthenticatedRead,
15016		S3CannedAccessControlListBucketOwnerRead,
15017		S3CannedAccessControlListBucketOwnerFullControl,
15018	}
15019}
15020
15021const (
15022	// S3GlacierJobTierBulk is a S3GlacierJobTier enum value
15023	S3GlacierJobTierBulk = "BULK"
15024
15025	// S3GlacierJobTierStandard is a S3GlacierJobTier enum value
15026	S3GlacierJobTierStandard = "STANDARD"
15027)
15028
15029// S3GlacierJobTier_Values returns all elements of the S3GlacierJobTier enum
15030func S3GlacierJobTier_Values() []string {
15031	return []string{
15032		S3GlacierJobTierBulk,
15033		S3GlacierJobTierStandard,
15034	}
15035}
15036
15037const (
15038	// S3GranteeTypeIdentifierId is a S3GranteeTypeIdentifier enum value
15039	S3GranteeTypeIdentifierId = "id"
15040
15041	// S3GranteeTypeIdentifierEmailAddress is a S3GranteeTypeIdentifier enum value
15042	S3GranteeTypeIdentifierEmailAddress = "emailAddress"
15043
15044	// S3GranteeTypeIdentifierUri is a S3GranteeTypeIdentifier enum value
15045	S3GranteeTypeIdentifierUri = "uri"
15046)
15047
15048// S3GranteeTypeIdentifier_Values returns all elements of the S3GranteeTypeIdentifier enum
15049func S3GranteeTypeIdentifier_Values() []string {
15050	return []string{
15051		S3GranteeTypeIdentifierId,
15052		S3GranteeTypeIdentifierEmailAddress,
15053		S3GranteeTypeIdentifierUri,
15054	}
15055}
15056
15057const (
15058	// S3MetadataDirectiveCopy is a S3MetadataDirective enum value
15059	S3MetadataDirectiveCopy = "COPY"
15060
15061	// S3MetadataDirectiveReplace is a S3MetadataDirective enum value
15062	S3MetadataDirectiveReplace = "REPLACE"
15063)
15064
15065// S3MetadataDirective_Values returns all elements of the S3MetadataDirective enum
15066func S3MetadataDirective_Values() []string {
15067	return []string{
15068		S3MetadataDirectiveCopy,
15069		S3MetadataDirectiveReplace,
15070	}
15071}
15072
15073const (
15074	// S3ObjectLockLegalHoldStatusOff is a S3ObjectLockLegalHoldStatus enum value
15075	S3ObjectLockLegalHoldStatusOff = "OFF"
15076
15077	// S3ObjectLockLegalHoldStatusOn is a S3ObjectLockLegalHoldStatus enum value
15078	S3ObjectLockLegalHoldStatusOn = "ON"
15079)
15080
15081// S3ObjectLockLegalHoldStatus_Values returns all elements of the S3ObjectLockLegalHoldStatus enum
15082func S3ObjectLockLegalHoldStatus_Values() []string {
15083	return []string{
15084		S3ObjectLockLegalHoldStatusOff,
15085		S3ObjectLockLegalHoldStatusOn,
15086	}
15087}
15088
15089const (
15090	// S3ObjectLockModeCompliance is a S3ObjectLockMode enum value
15091	S3ObjectLockModeCompliance = "COMPLIANCE"
15092
15093	// S3ObjectLockModeGovernance is a S3ObjectLockMode enum value
15094	S3ObjectLockModeGovernance = "GOVERNANCE"
15095)
15096
15097// S3ObjectLockMode_Values returns all elements of the S3ObjectLockMode enum
15098func S3ObjectLockMode_Values() []string {
15099	return []string{
15100		S3ObjectLockModeCompliance,
15101		S3ObjectLockModeGovernance,
15102	}
15103}
15104
15105const (
15106	// S3ObjectLockRetentionModeCompliance is a S3ObjectLockRetentionMode enum value
15107	S3ObjectLockRetentionModeCompliance = "COMPLIANCE"
15108
15109	// S3ObjectLockRetentionModeGovernance is a S3ObjectLockRetentionMode enum value
15110	S3ObjectLockRetentionModeGovernance = "GOVERNANCE"
15111)
15112
15113// S3ObjectLockRetentionMode_Values returns all elements of the S3ObjectLockRetentionMode enum
15114func S3ObjectLockRetentionMode_Values() []string {
15115	return []string{
15116		S3ObjectLockRetentionModeCompliance,
15117		S3ObjectLockRetentionModeGovernance,
15118	}
15119}
15120
15121const (
15122	// S3PermissionFullControl is a S3Permission enum value
15123	S3PermissionFullControl = "FULL_CONTROL"
15124
15125	// S3PermissionRead is a S3Permission enum value
15126	S3PermissionRead = "READ"
15127
15128	// S3PermissionWrite is a S3Permission enum value
15129	S3PermissionWrite = "WRITE"
15130
15131	// S3PermissionReadAcp is a S3Permission enum value
15132	S3PermissionReadAcp = "READ_ACP"
15133
15134	// S3PermissionWriteAcp is a S3Permission enum value
15135	S3PermissionWriteAcp = "WRITE_ACP"
15136)
15137
15138// S3Permission_Values returns all elements of the S3Permission enum
15139func S3Permission_Values() []string {
15140	return []string{
15141		S3PermissionFullControl,
15142		S3PermissionRead,
15143		S3PermissionWrite,
15144		S3PermissionReadAcp,
15145		S3PermissionWriteAcp,
15146	}
15147}
15148
15149const (
15150	// S3SSEAlgorithmAes256 is a S3SSEAlgorithm enum value
15151	S3SSEAlgorithmAes256 = "AES256"
15152
15153	// S3SSEAlgorithmKms is a S3SSEAlgorithm enum value
15154	S3SSEAlgorithmKms = "KMS"
15155)
15156
15157// S3SSEAlgorithm_Values returns all elements of the S3SSEAlgorithm enum
15158func S3SSEAlgorithm_Values() []string {
15159	return []string{
15160		S3SSEAlgorithmAes256,
15161		S3SSEAlgorithmKms,
15162	}
15163}
15164
15165const (
15166	// S3StorageClassStandard is a S3StorageClass enum value
15167	S3StorageClassStandard = "STANDARD"
15168
15169	// S3StorageClassStandardIa is a S3StorageClass enum value
15170	S3StorageClassStandardIa = "STANDARD_IA"
15171
15172	// S3StorageClassOnezoneIa is a S3StorageClass enum value
15173	S3StorageClassOnezoneIa = "ONEZONE_IA"
15174
15175	// S3StorageClassGlacier is a S3StorageClass enum value
15176	S3StorageClassGlacier = "GLACIER"
15177
15178	// S3StorageClassIntelligentTiering is a S3StorageClass enum value
15179	S3StorageClassIntelligentTiering = "INTELLIGENT_TIERING"
15180
15181	// S3StorageClassDeepArchive is a S3StorageClass enum value
15182	S3StorageClassDeepArchive = "DEEP_ARCHIVE"
15183)
15184
15185// S3StorageClass_Values returns all elements of the S3StorageClass enum
15186func S3StorageClass_Values() []string {
15187	return []string{
15188		S3StorageClassStandard,
15189		S3StorageClassStandardIa,
15190		S3StorageClassOnezoneIa,
15191		S3StorageClassGlacier,
15192		S3StorageClassIntelligentTiering,
15193		S3StorageClassDeepArchive,
15194	}
15195}
15196
15197const (
15198	// TransitionStorageClassGlacier is a TransitionStorageClass enum value
15199	TransitionStorageClassGlacier = "GLACIER"
15200
15201	// TransitionStorageClassStandardIa is a TransitionStorageClass enum value
15202	TransitionStorageClassStandardIa = "STANDARD_IA"
15203
15204	// TransitionStorageClassOnezoneIa is a TransitionStorageClass enum value
15205	TransitionStorageClassOnezoneIa = "ONEZONE_IA"
15206
15207	// TransitionStorageClassIntelligentTiering is a TransitionStorageClass enum value
15208	TransitionStorageClassIntelligentTiering = "INTELLIGENT_TIERING"
15209
15210	// TransitionStorageClassDeepArchive is a TransitionStorageClass enum value
15211	TransitionStorageClassDeepArchive = "DEEP_ARCHIVE"
15212)
15213
15214// TransitionStorageClass_Values returns all elements of the TransitionStorageClass enum
15215func TransitionStorageClass_Values() []string {
15216	return []string{
15217		TransitionStorageClassGlacier,
15218		TransitionStorageClassStandardIa,
15219		TransitionStorageClassOnezoneIa,
15220		TransitionStorageClassIntelligentTiering,
15221		TransitionStorageClassDeepArchive,
15222	}
15223}
15224