github.com/aavshr/aws-sdk-go@v1.41.3/service/s3control/api.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package s3control
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/internal/s3shared/arn"
    13  	"github.com/aavshr/aws-sdk-go/private/checksum"
    14  	"github.com/aavshr/aws-sdk-go/private/protocol"
    15  	"github.com/aavshr/aws-sdk-go/private/protocol/restxml"
    16  )
    17  
    18  const 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
    44  func (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
   100  func (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.
   114  func (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  
   121  const 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
   147  func (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
   186  func (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.
   200  func (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  
   207  const 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
   233  func (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
   311  func (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.
   325  func (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  
   332  const 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
   358  func (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
   414  func (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.
   428  func (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  
   435  const opCreateMultiRegionAccessPoint = "CreateMultiRegionAccessPoint"
   436  
   437  // CreateMultiRegionAccessPointRequest generates a "aws/request.Request" representing the
   438  // client's request for the CreateMultiRegionAccessPoint operation. The "output" return
   439  // value will be populated with the request's response once the request completes
   440  // successfully.
   441  //
   442  // Use "Send" method on the returned Request to send the API call to the service.
   443  // the "output" return value is not valid until after Send returns without error.
   444  //
   445  // See CreateMultiRegionAccessPoint for more information on using the CreateMultiRegionAccessPoint
   446  // API call, and error handling.
   447  //
   448  // This method is useful when you want to inject custom logic or configuration
   449  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   450  //
   451  //
   452  //    // Example sending a request using the CreateMultiRegionAccessPointRequest method.
   453  //    req, resp := client.CreateMultiRegionAccessPointRequest(params)
   454  //
   455  //    err := req.Send()
   456  //    if err == nil { // resp is now filled
   457  //        fmt.Println(resp)
   458  //    }
   459  //
   460  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateMultiRegionAccessPoint
   461  func (c *S3Control) CreateMultiRegionAccessPointRequest(input *CreateMultiRegionAccessPointInput) (req *request.Request, output *CreateMultiRegionAccessPointOutput) {
   462  	op := &request.Operation{
   463  		Name:       opCreateMultiRegionAccessPoint,
   464  		HTTPMethod: "POST",
   465  		HTTPPath:   "/v20180820/async-requests/mrap/create",
   466  	}
   467  
   468  	if input == nil {
   469  		input = &CreateMultiRegionAccessPointInput{}
   470  	}
   471  
   472  	output = &CreateMultiRegionAccessPointOutput{}
   473  	req = c.newRequest(op, input, output)
   474  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
   475  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
   476  	req.Handlers.Build.PushBackNamed(request.NamedHandler{
   477  		Name: "contentMd5Handler",
   478  		Fn:   checksum.AddBodyContentMD5Handler,
   479  	})
   480  	return
   481  }
   482  
   483  // CreateMultiRegionAccessPoint API operation for AWS S3 Control.
   484  //
   485  // Creates a Multi-Region Access Point and associates it with the specified
   486  // buckets. For more information about creating Multi-Region Access Points,
   487  // see Creating Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html)
   488  // in the Amazon S3 User Guide.
   489  //
   490  // This action will always be routed to the US West (Oregon) Region. For more
   491  // information about the restrictions around managing Multi-Region Access Points,
   492  // see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
   493  // in the Amazon S3 User Guide.
   494  //
   495  // This request is asynchronous, meaning that you might receive a response before
   496  // the command has completed. When this request provides a response, it provides
   497  // a token that you can use to monitor the status of the request with DescribeMultiRegionAccessPointOperation.
   498  //
   499  // The following actions are related to CreateMultiRegionAccessPoint:
   500  //
   501  //    * DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)
   502  //
   503  //    * DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
   504  //
   505  //    * GetMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html)
   506  //
   507  //    * ListMultiRegionAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html)
   508  //
   509  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   510  // with awserr.Error's Code and Message methods to get detailed information about
   511  // the error.
   512  //
   513  // See the AWS API reference guide for AWS S3 Control's
   514  // API operation CreateMultiRegionAccessPoint for usage and error information.
   515  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateMultiRegionAccessPoint
   516  func (c *S3Control) CreateMultiRegionAccessPoint(input *CreateMultiRegionAccessPointInput) (*CreateMultiRegionAccessPointOutput, error) {
   517  	req, out := c.CreateMultiRegionAccessPointRequest(input)
   518  	return out, req.Send()
   519  }
   520  
   521  // CreateMultiRegionAccessPointWithContext is the same as CreateMultiRegionAccessPoint with the addition of
   522  // the ability to pass a context and additional request options.
   523  //
   524  // See CreateMultiRegionAccessPoint for details on how to use this API operation.
   525  //
   526  // The context must be non-nil and will be used for request cancellation. If
   527  // the context is nil a panic will occur. In the future the SDK may create
   528  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   529  // for more information on using Contexts.
   530  func (c *S3Control) CreateMultiRegionAccessPointWithContext(ctx aws.Context, input *CreateMultiRegionAccessPointInput, opts ...request.Option) (*CreateMultiRegionAccessPointOutput, error) {
   531  	req, out := c.CreateMultiRegionAccessPointRequest(input)
   532  	req.SetContext(ctx)
   533  	req.ApplyOptions(opts...)
   534  	return out, req.Send()
   535  }
   536  
   537  const opDeleteAccessPoint = "DeleteAccessPoint"
   538  
   539  // DeleteAccessPointRequest generates a "aws/request.Request" representing the
   540  // client's request for the DeleteAccessPoint operation. The "output" return
   541  // value will be populated with the request's response once the request completes
   542  // successfully.
   543  //
   544  // Use "Send" method on the returned Request to send the API call to the service.
   545  // the "output" return value is not valid until after Send returns without error.
   546  //
   547  // See DeleteAccessPoint for more information on using the DeleteAccessPoint
   548  // API call, and error handling.
   549  //
   550  // This method is useful when you want to inject custom logic or configuration
   551  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   552  //
   553  //
   554  //    // Example sending a request using the DeleteAccessPointRequest method.
   555  //    req, resp := client.DeleteAccessPointRequest(params)
   556  //
   557  //    err := req.Send()
   558  //    if err == nil { // resp is now filled
   559  //        fmt.Println(resp)
   560  //    }
   561  //
   562  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPoint
   563  func (c *S3Control) DeleteAccessPointRequest(input *DeleteAccessPointInput) (req *request.Request, output *DeleteAccessPointOutput) {
   564  	op := &request.Operation{
   565  		Name:       opDeleteAccessPoint,
   566  		HTTPMethod: "DELETE",
   567  		HTTPPath:   "/v20180820/accesspoint/{name}",
   568  	}
   569  
   570  	if input == nil {
   571  		input = &DeleteAccessPointInput{}
   572  	}
   573  
   574  	output = &DeleteAccessPointOutput{}
   575  	req = c.newRequest(op, input, output)
   576  	// update account id or check if provided input for account id member matches
   577  	// the account id present in ARN
   578  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
   579  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   580  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
   581  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
   582  	return
   583  }
   584  
   585  // DeleteAccessPoint API operation for AWS S3 Control.
   586  //
   587  // Deletes the specified access point.
   588  //
   589  // All Amazon S3 on Outposts REST API requests for this action require an additional
   590  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
   591  // Outposts endpoint hostname prefix instead of s3-control. For an example of
   592  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
   593  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
   594  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html#API_control_DeleteAccessPoint_Examples)
   595  // section.
   596  //
   597  // The following actions are related to DeleteAccessPoint:
   598  //
   599  //    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
   600  //
   601  //    * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)
   602  //
   603  //    * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)
   604  //
   605  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   606  // with awserr.Error's Code and Message methods to get detailed information about
   607  // the error.
   608  //
   609  // See the AWS API reference guide for AWS S3 Control's
   610  // API operation DeleteAccessPoint for usage and error information.
   611  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPoint
   612  func (c *S3Control) DeleteAccessPoint(input *DeleteAccessPointInput) (*DeleteAccessPointOutput, error) {
   613  	req, out := c.DeleteAccessPointRequest(input)
   614  	return out, req.Send()
   615  }
   616  
   617  // DeleteAccessPointWithContext is the same as DeleteAccessPoint with the addition of
   618  // the ability to pass a context and additional request options.
   619  //
   620  // See DeleteAccessPoint for details on how to use this API operation.
   621  //
   622  // The context must be non-nil and will be used for request cancellation. If
   623  // the context is nil a panic will occur. In the future the SDK may create
   624  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   625  // for more information on using Contexts.
   626  func (c *S3Control) DeleteAccessPointWithContext(ctx aws.Context, input *DeleteAccessPointInput, opts ...request.Option) (*DeleteAccessPointOutput, error) {
   627  	req, out := c.DeleteAccessPointRequest(input)
   628  	req.SetContext(ctx)
   629  	req.ApplyOptions(opts...)
   630  	return out, req.Send()
   631  }
   632  
   633  const opDeleteAccessPointForObjectLambda = "DeleteAccessPointForObjectLambda"
   634  
   635  // DeleteAccessPointForObjectLambdaRequest generates a "aws/request.Request" representing the
   636  // client's request for the DeleteAccessPointForObjectLambda operation. The "output" return
   637  // value will be populated with the request's response once the request completes
   638  // successfully.
   639  //
   640  // Use "Send" method on the returned Request to send the API call to the service.
   641  // the "output" return value is not valid until after Send returns without error.
   642  //
   643  // See DeleteAccessPointForObjectLambda for more information on using the DeleteAccessPointForObjectLambda
   644  // API call, and error handling.
   645  //
   646  // This method is useful when you want to inject custom logic or configuration
   647  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   648  //
   649  //
   650  //    // Example sending a request using the DeleteAccessPointForObjectLambdaRequest method.
   651  //    req, resp := client.DeleteAccessPointForObjectLambdaRequest(params)
   652  //
   653  //    err := req.Send()
   654  //    if err == nil { // resp is now filled
   655  //        fmt.Println(resp)
   656  //    }
   657  //
   658  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointForObjectLambda
   659  func (c *S3Control) DeleteAccessPointForObjectLambdaRequest(input *DeleteAccessPointForObjectLambdaInput) (req *request.Request, output *DeleteAccessPointForObjectLambdaOutput) {
   660  	op := &request.Operation{
   661  		Name:       opDeleteAccessPointForObjectLambda,
   662  		HTTPMethod: "DELETE",
   663  		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}",
   664  	}
   665  
   666  	if input == nil {
   667  		input = &DeleteAccessPointForObjectLambdaInput{}
   668  	}
   669  
   670  	output = &DeleteAccessPointForObjectLambdaOutput{}
   671  	req = c.newRequest(op, input, output)
   672  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   673  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
   674  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
   675  	return
   676  }
   677  
   678  // DeleteAccessPointForObjectLambda API operation for AWS S3 Control.
   679  //
   680  // Deletes the specified Object Lambda Access Point.
   681  //
   682  // The following actions are related to DeleteAccessPointForObjectLambda:
   683  //
   684  //    * CreateAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html)
   685  //
   686  //    * GetAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointForObjectLambda.html)
   687  //
   688  //    * ListAccessPointsForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html)
   689  //
   690  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   691  // with awserr.Error's Code and Message methods to get detailed information about
   692  // the error.
   693  //
   694  // See the AWS API reference guide for AWS S3 Control's
   695  // API operation DeleteAccessPointForObjectLambda for usage and error information.
   696  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointForObjectLambda
   697  func (c *S3Control) DeleteAccessPointForObjectLambda(input *DeleteAccessPointForObjectLambdaInput) (*DeleteAccessPointForObjectLambdaOutput, error) {
   698  	req, out := c.DeleteAccessPointForObjectLambdaRequest(input)
   699  	return out, req.Send()
   700  }
   701  
   702  // DeleteAccessPointForObjectLambdaWithContext is the same as DeleteAccessPointForObjectLambda with the addition of
   703  // the ability to pass a context and additional request options.
   704  //
   705  // See DeleteAccessPointForObjectLambda for details on how to use this API operation.
   706  //
   707  // The context must be non-nil and will be used for request cancellation. If
   708  // the context is nil a panic will occur. In the future the SDK may create
   709  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   710  // for more information on using Contexts.
   711  func (c *S3Control) DeleteAccessPointForObjectLambdaWithContext(ctx aws.Context, input *DeleteAccessPointForObjectLambdaInput, opts ...request.Option) (*DeleteAccessPointForObjectLambdaOutput, error) {
   712  	req, out := c.DeleteAccessPointForObjectLambdaRequest(input)
   713  	req.SetContext(ctx)
   714  	req.ApplyOptions(opts...)
   715  	return out, req.Send()
   716  }
   717  
   718  const opDeleteAccessPointPolicy = "DeleteAccessPointPolicy"
   719  
   720  // DeleteAccessPointPolicyRequest generates a "aws/request.Request" representing the
   721  // client's request for the DeleteAccessPointPolicy operation. The "output" return
   722  // value will be populated with the request's response once the request completes
   723  // successfully.
   724  //
   725  // Use "Send" method on the returned Request to send the API call to the service.
   726  // the "output" return value is not valid until after Send returns without error.
   727  //
   728  // See DeleteAccessPointPolicy for more information on using the DeleteAccessPointPolicy
   729  // API call, and error handling.
   730  //
   731  // This method is useful when you want to inject custom logic or configuration
   732  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   733  //
   734  //
   735  //    // Example sending a request using the DeleteAccessPointPolicyRequest method.
   736  //    req, resp := client.DeleteAccessPointPolicyRequest(params)
   737  //
   738  //    err := req.Send()
   739  //    if err == nil { // resp is now filled
   740  //        fmt.Println(resp)
   741  //    }
   742  //
   743  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicy
   744  func (c *S3Control) DeleteAccessPointPolicyRequest(input *DeleteAccessPointPolicyInput) (req *request.Request, output *DeleteAccessPointPolicyOutput) {
   745  	op := &request.Operation{
   746  		Name:       opDeleteAccessPointPolicy,
   747  		HTTPMethod: "DELETE",
   748  		HTTPPath:   "/v20180820/accesspoint/{name}/policy",
   749  	}
   750  
   751  	if input == nil {
   752  		input = &DeleteAccessPointPolicyInput{}
   753  	}
   754  
   755  	output = &DeleteAccessPointPolicyOutput{}
   756  	req = c.newRequest(op, input, output)
   757  	// update account id or check if provided input for account id member matches
   758  	// the account id present in ARN
   759  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
   760  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   761  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
   762  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
   763  	return
   764  }
   765  
   766  // DeleteAccessPointPolicy API operation for AWS S3 Control.
   767  //
   768  // Deletes the access point policy for the specified access point.
   769  //
   770  // All Amazon S3 on Outposts REST API requests for this action require an additional
   771  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
   772  // Outposts endpoint hostname prefix instead of s3-control. For an example of
   773  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
   774  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
   775  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html#API_control_DeleteAccessPointPolicy_Examples)
   776  // section.
   777  //
   778  // The following actions are related to DeleteAccessPointPolicy:
   779  //
   780  //    * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)
   781  //
   782  //    * GetAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html)
   783  //
   784  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   785  // with awserr.Error's Code and Message methods to get detailed information about
   786  // the error.
   787  //
   788  // See the AWS API reference guide for AWS S3 Control's
   789  // API operation DeleteAccessPointPolicy for usage and error information.
   790  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicy
   791  func (c *S3Control) DeleteAccessPointPolicy(input *DeleteAccessPointPolicyInput) (*DeleteAccessPointPolicyOutput, error) {
   792  	req, out := c.DeleteAccessPointPolicyRequest(input)
   793  	return out, req.Send()
   794  }
   795  
   796  // DeleteAccessPointPolicyWithContext is the same as DeleteAccessPointPolicy with the addition of
   797  // the ability to pass a context and additional request options.
   798  //
   799  // See DeleteAccessPointPolicy for details on how to use this API operation.
   800  //
   801  // The context must be non-nil and will be used for request cancellation. If
   802  // the context is nil a panic will occur. In the future the SDK may create
   803  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   804  // for more information on using Contexts.
   805  func (c *S3Control) DeleteAccessPointPolicyWithContext(ctx aws.Context, input *DeleteAccessPointPolicyInput, opts ...request.Option) (*DeleteAccessPointPolicyOutput, error) {
   806  	req, out := c.DeleteAccessPointPolicyRequest(input)
   807  	req.SetContext(ctx)
   808  	req.ApplyOptions(opts...)
   809  	return out, req.Send()
   810  }
   811  
   812  const opDeleteAccessPointPolicyForObjectLambda = "DeleteAccessPointPolicyForObjectLambda"
   813  
   814  // DeleteAccessPointPolicyForObjectLambdaRequest generates a "aws/request.Request" representing the
   815  // client's request for the DeleteAccessPointPolicyForObjectLambda operation. The "output" return
   816  // value will be populated with the request's response once the request completes
   817  // successfully.
   818  //
   819  // Use "Send" method on the returned Request to send the API call to the service.
   820  // the "output" return value is not valid until after Send returns without error.
   821  //
   822  // See DeleteAccessPointPolicyForObjectLambda for more information on using the DeleteAccessPointPolicyForObjectLambda
   823  // API call, and error handling.
   824  //
   825  // This method is useful when you want to inject custom logic or configuration
   826  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   827  //
   828  //
   829  //    // Example sending a request using the DeleteAccessPointPolicyForObjectLambdaRequest method.
   830  //    req, resp := client.DeleteAccessPointPolicyForObjectLambdaRequest(params)
   831  //
   832  //    err := req.Send()
   833  //    if err == nil { // resp is now filled
   834  //        fmt.Println(resp)
   835  //    }
   836  //
   837  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicyForObjectLambda
   838  func (c *S3Control) DeleteAccessPointPolicyForObjectLambdaRequest(input *DeleteAccessPointPolicyForObjectLambdaInput) (req *request.Request, output *DeleteAccessPointPolicyForObjectLambdaOutput) {
   839  	op := &request.Operation{
   840  		Name:       opDeleteAccessPointPolicyForObjectLambda,
   841  		HTTPMethod: "DELETE",
   842  		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/policy",
   843  	}
   844  
   845  	if input == nil {
   846  		input = &DeleteAccessPointPolicyForObjectLambdaInput{}
   847  	}
   848  
   849  	output = &DeleteAccessPointPolicyForObjectLambdaOutput{}
   850  	req = c.newRequest(op, input, output)
   851  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   852  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
   853  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
   854  	return
   855  }
   856  
   857  // DeleteAccessPointPolicyForObjectLambda API operation for AWS S3 Control.
   858  //
   859  // Removes the resource policy for an Object Lambda Access Point.
   860  //
   861  // The following actions are related to DeleteAccessPointPolicyForObjectLambda:
   862  //
   863  //    * GetAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyForObjectLambda.html)
   864  //
   865  //    * PutAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicyForObjectLambda.html)
   866  //
   867  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   868  // with awserr.Error's Code and Message methods to get detailed information about
   869  // the error.
   870  //
   871  // See the AWS API reference guide for AWS S3 Control's
   872  // API operation DeleteAccessPointPolicyForObjectLambda for usage and error information.
   873  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicyForObjectLambda
   874  func (c *S3Control) DeleteAccessPointPolicyForObjectLambda(input *DeleteAccessPointPolicyForObjectLambdaInput) (*DeleteAccessPointPolicyForObjectLambdaOutput, error) {
   875  	req, out := c.DeleteAccessPointPolicyForObjectLambdaRequest(input)
   876  	return out, req.Send()
   877  }
   878  
   879  // DeleteAccessPointPolicyForObjectLambdaWithContext is the same as DeleteAccessPointPolicyForObjectLambda with the addition of
   880  // the ability to pass a context and additional request options.
   881  //
   882  // See DeleteAccessPointPolicyForObjectLambda for details on how to use this API operation.
   883  //
   884  // The context must be non-nil and will be used for request cancellation. If
   885  // the context is nil a panic will occur. In the future the SDK may create
   886  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   887  // for more information on using Contexts.
   888  func (c *S3Control) DeleteAccessPointPolicyForObjectLambdaWithContext(ctx aws.Context, input *DeleteAccessPointPolicyForObjectLambdaInput, opts ...request.Option) (*DeleteAccessPointPolicyForObjectLambdaOutput, error) {
   889  	req, out := c.DeleteAccessPointPolicyForObjectLambdaRequest(input)
   890  	req.SetContext(ctx)
   891  	req.ApplyOptions(opts...)
   892  	return out, req.Send()
   893  }
   894  
   895  const opDeleteBucket = "DeleteBucket"
   896  
   897  // DeleteBucketRequest generates a "aws/request.Request" representing the
   898  // client's request for the DeleteBucket operation. The "output" return
   899  // value will be populated with the request's response once the request completes
   900  // successfully.
   901  //
   902  // Use "Send" method on the returned Request to send the API call to the service.
   903  // the "output" return value is not valid until after Send returns without error.
   904  //
   905  // See DeleteBucket for more information on using the DeleteBucket
   906  // API call, and error handling.
   907  //
   908  // This method is useful when you want to inject custom logic or configuration
   909  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   910  //
   911  //
   912  //    // Example sending a request using the DeleteBucketRequest method.
   913  //    req, resp := client.DeleteBucketRequest(params)
   914  //
   915  //    err := req.Send()
   916  //    if err == nil { // resp is now filled
   917  //        fmt.Println(resp)
   918  //    }
   919  //
   920  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucket
   921  func (c *S3Control) DeleteBucketRequest(input *DeleteBucketInput) (req *request.Request, output *DeleteBucketOutput) {
   922  	op := &request.Operation{
   923  		Name:       opDeleteBucket,
   924  		HTTPMethod: "DELETE",
   925  		HTTPPath:   "/v20180820/bucket/{name}",
   926  	}
   927  
   928  	if input == nil {
   929  		input = &DeleteBucketInput{}
   930  	}
   931  
   932  	output = &DeleteBucketOutput{}
   933  	req = c.newRequest(op, input, output)
   934  	// update account id or check if provided input for account id member matches
   935  	// the account id present in ARN
   936  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
   937  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   938  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
   939  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
   940  	return
   941  }
   942  
   943  // DeleteBucket API operation for AWS S3 Control.
   944  //
   945  //
   946  // This action deletes an Amazon S3 on Outposts bucket. To delete an S3 bucket,
   947  // see DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
   948  // in the Amazon S3 API Reference.
   949  //
   950  // Deletes the Amazon S3 on Outposts bucket. All objects (including all object
   951  // versions and delete markers) in the bucket must be deleted before the bucket
   952  // itself can be deleted. For more information, see Using Amazon S3 on Outposts
   953  // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
   954  // in Amazon S3 User Guide.
   955  //
   956  // All Amazon S3 on Outposts REST API requests for this action require an additional
   957  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
   958  // Outposts endpoint hostname prefix instead of s3-control. For an example of
   959  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
   960  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
   961  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html#API_control_DeleteBucket_Examples)
   962  // section.
   963  //
   964  // Related Resources
   965  //
   966  //    * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html)
   967  //
   968  //    * GetBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html)
   969  //
   970  //    * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
   971  //
   972  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   973  // with awserr.Error's Code and Message methods to get detailed information about
   974  // the error.
   975  //
   976  // See the AWS API reference guide for AWS S3 Control's
   977  // API operation DeleteBucket for usage and error information.
   978  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucket
   979  func (c *S3Control) DeleteBucket(input *DeleteBucketInput) (*DeleteBucketOutput, error) {
   980  	req, out := c.DeleteBucketRequest(input)
   981  	return out, req.Send()
   982  }
   983  
   984  // DeleteBucketWithContext is the same as DeleteBucket with the addition of
   985  // the ability to pass a context and additional request options.
   986  //
   987  // See DeleteBucket for details on how to use this API operation.
   988  //
   989  // The context must be non-nil and will be used for request cancellation. If
   990  // the context is nil a panic will occur. In the future the SDK may create
   991  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   992  // for more information on using Contexts.
   993  func (c *S3Control) DeleteBucketWithContext(ctx aws.Context, input *DeleteBucketInput, opts ...request.Option) (*DeleteBucketOutput, error) {
   994  	req, out := c.DeleteBucketRequest(input)
   995  	req.SetContext(ctx)
   996  	req.ApplyOptions(opts...)
   997  	return out, req.Send()
   998  }
   999  
  1000  const opDeleteBucketLifecycleConfiguration = "DeleteBucketLifecycleConfiguration"
  1001  
  1002  // DeleteBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
  1003  // client's request for the DeleteBucketLifecycleConfiguration operation. The "output" return
  1004  // value will be populated with the request's response once the request completes
  1005  // successfully.
  1006  //
  1007  // Use "Send" method on the returned Request to send the API call to the service.
  1008  // the "output" return value is not valid until after Send returns without error.
  1009  //
  1010  // See DeleteBucketLifecycleConfiguration for more information on using the DeleteBucketLifecycleConfiguration
  1011  // API call, and error handling.
  1012  //
  1013  // This method is useful when you want to inject custom logic or configuration
  1014  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1015  //
  1016  //
  1017  //    // Example sending a request using the DeleteBucketLifecycleConfigurationRequest method.
  1018  //    req, resp := client.DeleteBucketLifecycleConfigurationRequest(params)
  1019  //
  1020  //    err := req.Send()
  1021  //    if err == nil { // resp is now filled
  1022  //        fmt.Println(resp)
  1023  //    }
  1024  //
  1025  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketLifecycleConfiguration
  1026  func (c *S3Control) DeleteBucketLifecycleConfigurationRequest(input *DeleteBucketLifecycleConfigurationInput) (req *request.Request, output *DeleteBucketLifecycleConfigurationOutput) {
  1027  	op := &request.Operation{
  1028  		Name:       opDeleteBucketLifecycleConfiguration,
  1029  		HTTPMethod: "DELETE",
  1030  		HTTPPath:   "/v20180820/bucket/{name}/lifecycleconfiguration",
  1031  	}
  1032  
  1033  	if input == nil {
  1034  		input = &DeleteBucketLifecycleConfigurationInput{}
  1035  	}
  1036  
  1037  	output = &DeleteBucketLifecycleConfigurationOutput{}
  1038  	req = c.newRequest(op, input, output)
  1039  	// update account id or check if provided input for account id member matches
  1040  	// the account id present in ARN
  1041  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  1042  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1043  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  1044  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  1045  	return
  1046  }
  1047  
  1048  // DeleteBucketLifecycleConfiguration API operation for AWS S3 Control.
  1049  //
  1050  //
  1051  // This action deletes an Amazon S3 on Outposts bucket's lifecycle configuration.
  1052  // To delete an S3 bucket's lifecycle configuration, see DeleteBucketLifecycle
  1053  // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html)
  1054  // in the Amazon S3 API Reference.
  1055  //
  1056  // Deletes the lifecycle configuration from the specified Outposts bucket. Amazon
  1057  // S3 on Outposts removes all the lifecycle configuration rules in the lifecycle
  1058  // subresource associated with the bucket. Your objects never expire, and Amazon
  1059  // S3 on Outposts no longer automatically deletes any objects on the basis of
  1060  // rules contained in the deleted lifecycle configuration. For more information,
  1061  // see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
  1062  // in Amazon S3 User Guide.
  1063  //
  1064  // To use this action, you must have permission to perform the s3-outposts:DeleteLifecycleConfiguration
  1065  // action. By default, the bucket owner has this permission and the Outposts
  1066  // bucket owner can grant this permission to others.
  1067  //
  1068  // All Amazon S3 on Outposts REST API requests for this action require an additional
  1069  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
  1070  // Outposts endpoint hostname prefix instead of s3-control. For an example of
  1071  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
  1072  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
  1073  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html#API_control_DeleteBucketLifecycleConfiguration_Examples)
  1074  // section.
  1075  //
  1076  // For more information about object expiration, see Elements to Describe Lifecycle
  1077  // Actions (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions).
  1078  //
  1079  // Related actions include:
  1080  //
  1081  //    * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html)
  1082  //
  1083  //    * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html)
  1084  //
  1085  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1086  // with awserr.Error's Code and Message methods to get detailed information about
  1087  // the error.
  1088  //
  1089  // See the AWS API reference guide for AWS S3 Control's
  1090  // API operation DeleteBucketLifecycleConfiguration for usage and error information.
  1091  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketLifecycleConfiguration
  1092  func (c *S3Control) DeleteBucketLifecycleConfiguration(input *DeleteBucketLifecycleConfigurationInput) (*DeleteBucketLifecycleConfigurationOutput, error) {
  1093  	req, out := c.DeleteBucketLifecycleConfigurationRequest(input)
  1094  	return out, req.Send()
  1095  }
  1096  
  1097  // DeleteBucketLifecycleConfigurationWithContext is the same as DeleteBucketLifecycleConfiguration with the addition of
  1098  // the ability to pass a context and additional request options.
  1099  //
  1100  // See DeleteBucketLifecycleConfiguration for details on how to use this API operation.
  1101  //
  1102  // The context must be non-nil and will be used for request cancellation. If
  1103  // the context is nil a panic will occur. In the future the SDK may create
  1104  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1105  // for more information on using Contexts.
  1106  func (c *S3Control) DeleteBucketLifecycleConfigurationWithContext(ctx aws.Context, input *DeleteBucketLifecycleConfigurationInput, opts ...request.Option) (*DeleteBucketLifecycleConfigurationOutput, error) {
  1107  	req, out := c.DeleteBucketLifecycleConfigurationRequest(input)
  1108  	req.SetContext(ctx)
  1109  	req.ApplyOptions(opts...)
  1110  	return out, req.Send()
  1111  }
  1112  
  1113  const opDeleteBucketPolicy = "DeleteBucketPolicy"
  1114  
  1115  // DeleteBucketPolicyRequest generates a "aws/request.Request" representing the
  1116  // client's request for the DeleteBucketPolicy operation. The "output" return
  1117  // value will be populated with the request's response once the request completes
  1118  // successfully.
  1119  //
  1120  // Use "Send" method on the returned Request to send the API call to the service.
  1121  // the "output" return value is not valid until after Send returns without error.
  1122  //
  1123  // See DeleteBucketPolicy for more information on using the DeleteBucketPolicy
  1124  // API call, and error handling.
  1125  //
  1126  // This method is useful when you want to inject custom logic or configuration
  1127  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1128  //
  1129  //
  1130  //    // Example sending a request using the DeleteBucketPolicyRequest method.
  1131  //    req, resp := client.DeleteBucketPolicyRequest(params)
  1132  //
  1133  //    err := req.Send()
  1134  //    if err == nil { // resp is now filled
  1135  //        fmt.Println(resp)
  1136  //    }
  1137  //
  1138  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketPolicy
  1139  func (c *S3Control) DeleteBucketPolicyRequest(input *DeleteBucketPolicyInput) (req *request.Request, output *DeleteBucketPolicyOutput) {
  1140  	op := &request.Operation{
  1141  		Name:       opDeleteBucketPolicy,
  1142  		HTTPMethod: "DELETE",
  1143  		HTTPPath:   "/v20180820/bucket/{name}/policy",
  1144  	}
  1145  
  1146  	if input == nil {
  1147  		input = &DeleteBucketPolicyInput{}
  1148  	}
  1149  
  1150  	output = &DeleteBucketPolicyOutput{}
  1151  	req = c.newRequest(op, input, output)
  1152  	// update account id or check if provided input for account id member matches
  1153  	// the account id present in ARN
  1154  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  1155  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1156  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  1157  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  1158  	return
  1159  }
  1160  
  1161  // DeleteBucketPolicy API operation for AWS S3 Control.
  1162  //
  1163  //
  1164  // This action deletes an Amazon S3 on Outposts bucket policy. To delete an
  1165  // S3 bucket policy, see DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html)
  1166  // in the Amazon S3 API Reference.
  1167  //
  1168  // This implementation of the DELETE action uses the policy subresource to delete
  1169  // the policy of a specified Amazon S3 on Outposts bucket. If you are using
  1170  // an identity other than the root user of the Amazon Web Services account that
  1171  // owns the bucket, the calling identity must have the s3-outposts:DeleteBucketPolicy
  1172  // permissions on the specified Outposts bucket and belong to the bucket owner's
  1173  // account to use this action. For more information, see Using Amazon S3 on
  1174  // Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
  1175  // in Amazon S3 User Guide.
  1176  //
  1177  // If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403
  1178  // Access Denied error. If you have the correct permissions, but you're not
  1179  // using an identity that belongs to the bucket owner's account, Amazon S3 returns
  1180  // a 405 Method Not Allowed error.
  1181  //
  1182  // As a security precaution, the root user of the Amazon Web Services account
  1183  // that owns a bucket can always use this action, even if the policy explicitly
  1184  // denies the root user the ability to perform this action.
  1185  //
  1186  // For more information about bucket policies, see Using Bucket Policies and
  1187  // User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html).
  1188  //
  1189  // All Amazon S3 on Outposts REST API requests for this action require an additional
  1190  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
  1191  // Outposts endpoint hostname prefix instead of s3-control. For an example of
  1192  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
  1193  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
  1194  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html#API_control_DeleteBucketPolicy_Examples)
  1195  // section.
  1196  //
  1197  // The following actions are related to DeleteBucketPolicy:
  1198  //
  1199  //    * GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html)
  1200  //
  1201  //    * PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html)
  1202  //
  1203  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1204  // with awserr.Error's Code and Message methods to get detailed information about
  1205  // the error.
  1206  //
  1207  // See the AWS API reference guide for AWS S3 Control's
  1208  // API operation DeleteBucketPolicy for usage and error information.
  1209  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketPolicy
  1210  func (c *S3Control) DeleteBucketPolicy(input *DeleteBucketPolicyInput) (*DeleteBucketPolicyOutput, error) {
  1211  	req, out := c.DeleteBucketPolicyRequest(input)
  1212  	return out, req.Send()
  1213  }
  1214  
  1215  // DeleteBucketPolicyWithContext is the same as DeleteBucketPolicy with the addition of
  1216  // the ability to pass a context and additional request options.
  1217  //
  1218  // See DeleteBucketPolicy for details on how to use this API operation.
  1219  //
  1220  // The context must be non-nil and will be used for request cancellation. If
  1221  // the context is nil a panic will occur. In the future the SDK may create
  1222  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1223  // for more information on using Contexts.
  1224  func (c *S3Control) DeleteBucketPolicyWithContext(ctx aws.Context, input *DeleteBucketPolicyInput, opts ...request.Option) (*DeleteBucketPolicyOutput, error) {
  1225  	req, out := c.DeleteBucketPolicyRequest(input)
  1226  	req.SetContext(ctx)
  1227  	req.ApplyOptions(opts...)
  1228  	return out, req.Send()
  1229  }
  1230  
  1231  const opDeleteBucketTagging = "DeleteBucketTagging"
  1232  
  1233  // DeleteBucketTaggingRequest generates a "aws/request.Request" representing the
  1234  // client's request for the DeleteBucketTagging operation. The "output" return
  1235  // value will be populated with the request's response once the request completes
  1236  // successfully.
  1237  //
  1238  // Use "Send" method on the returned Request to send the API call to the service.
  1239  // the "output" return value is not valid until after Send returns without error.
  1240  //
  1241  // See DeleteBucketTagging for more information on using the DeleteBucketTagging
  1242  // API call, and error handling.
  1243  //
  1244  // This method is useful when you want to inject custom logic or configuration
  1245  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1246  //
  1247  //
  1248  //    // Example sending a request using the DeleteBucketTaggingRequest method.
  1249  //    req, resp := client.DeleteBucketTaggingRequest(params)
  1250  //
  1251  //    err := req.Send()
  1252  //    if err == nil { // resp is now filled
  1253  //        fmt.Println(resp)
  1254  //    }
  1255  //
  1256  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketTagging
  1257  func (c *S3Control) DeleteBucketTaggingRequest(input *DeleteBucketTaggingInput) (req *request.Request, output *DeleteBucketTaggingOutput) {
  1258  	op := &request.Operation{
  1259  		Name:       opDeleteBucketTagging,
  1260  		HTTPMethod: "DELETE",
  1261  		HTTPPath:   "/v20180820/bucket/{name}/tagging",
  1262  	}
  1263  
  1264  	if input == nil {
  1265  		input = &DeleteBucketTaggingInput{}
  1266  	}
  1267  
  1268  	output = &DeleteBucketTaggingOutput{}
  1269  	req = c.newRequest(op, input, output)
  1270  	// update account id or check if provided input for account id member matches
  1271  	// the account id present in ARN
  1272  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  1273  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1274  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  1275  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  1276  	return
  1277  }
  1278  
  1279  // DeleteBucketTagging API operation for AWS S3 Control.
  1280  //
  1281  //
  1282  // This action deletes an Amazon S3 on Outposts bucket's tags. To delete an
  1283  // S3 bucket tags, see DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html)
  1284  // in the Amazon S3 API Reference.
  1285  //
  1286  // Deletes the tags from the Outposts bucket. For more information, see Using
  1287  // Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
  1288  // in Amazon S3 User Guide.
  1289  //
  1290  // To use this action, you must have permission to perform the PutBucketTagging
  1291  // action. By default, the bucket owner has this permission and can grant this
  1292  // permission to others.
  1293  //
  1294  // All Amazon S3 on Outposts REST API requests for this action require an additional
  1295  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
  1296  // Outposts endpoint hostname prefix instead of s3-control. For an example of
  1297  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
  1298  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
  1299  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html#API_control_DeleteBucketTagging_Examples)
  1300  // section.
  1301  //
  1302  // The following actions are related to DeleteBucketTagging:
  1303  //
  1304  //    * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html)
  1305  //
  1306  //    * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html)
  1307  //
  1308  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1309  // with awserr.Error's Code and Message methods to get detailed information about
  1310  // the error.
  1311  //
  1312  // See the AWS API reference guide for AWS S3 Control's
  1313  // API operation DeleteBucketTagging for usage and error information.
  1314  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketTagging
  1315  func (c *S3Control) DeleteBucketTagging(input *DeleteBucketTaggingInput) (*DeleteBucketTaggingOutput, error) {
  1316  	req, out := c.DeleteBucketTaggingRequest(input)
  1317  	return out, req.Send()
  1318  }
  1319  
  1320  // DeleteBucketTaggingWithContext is the same as DeleteBucketTagging with the addition of
  1321  // the ability to pass a context and additional request options.
  1322  //
  1323  // See DeleteBucketTagging for details on how to use this API operation.
  1324  //
  1325  // The context must be non-nil and will be used for request cancellation. If
  1326  // the context is nil a panic will occur. In the future the SDK may create
  1327  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1328  // for more information on using Contexts.
  1329  func (c *S3Control) DeleteBucketTaggingWithContext(ctx aws.Context, input *DeleteBucketTaggingInput, opts ...request.Option) (*DeleteBucketTaggingOutput, error) {
  1330  	req, out := c.DeleteBucketTaggingRequest(input)
  1331  	req.SetContext(ctx)
  1332  	req.ApplyOptions(opts...)
  1333  	return out, req.Send()
  1334  }
  1335  
  1336  const opDeleteJobTagging = "DeleteJobTagging"
  1337  
  1338  // DeleteJobTaggingRequest generates a "aws/request.Request" representing the
  1339  // client's request for the DeleteJobTagging operation. The "output" return
  1340  // value will be populated with the request's response once the request completes
  1341  // successfully.
  1342  //
  1343  // Use "Send" method on the returned Request to send the API call to the service.
  1344  // the "output" return value is not valid until after Send returns without error.
  1345  //
  1346  // See DeleteJobTagging for more information on using the DeleteJobTagging
  1347  // API call, and error handling.
  1348  //
  1349  // This method is useful when you want to inject custom logic or configuration
  1350  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1351  //
  1352  //
  1353  //    // Example sending a request using the DeleteJobTaggingRequest method.
  1354  //    req, resp := client.DeleteJobTaggingRequest(params)
  1355  //
  1356  //    err := req.Send()
  1357  //    if err == nil { // resp is now filled
  1358  //        fmt.Println(resp)
  1359  //    }
  1360  //
  1361  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTagging
  1362  func (c *S3Control) DeleteJobTaggingRequest(input *DeleteJobTaggingInput) (req *request.Request, output *DeleteJobTaggingOutput) {
  1363  	op := &request.Operation{
  1364  		Name:       opDeleteJobTagging,
  1365  		HTTPMethod: "DELETE",
  1366  		HTTPPath:   "/v20180820/jobs/{id}/tagging",
  1367  	}
  1368  
  1369  	if input == nil {
  1370  		input = &DeleteJobTaggingInput{}
  1371  	}
  1372  
  1373  	output = &DeleteJobTaggingOutput{}
  1374  	req = c.newRequest(op, input, output)
  1375  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1376  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  1377  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  1378  	return
  1379  }
  1380  
  1381  // DeleteJobTagging API operation for AWS S3 Control.
  1382  //
  1383  // Removes the entire tag set from the specified S3 Batch Operations job. To
  1384  // use this operation, you must have permission to perform the s3:DeleteJobTagging
  1385  // action. For more information, see Controlling access and labeling jobs using
  1386  // tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags)
  1387  // in the Amazon S3 User Guide.
  1388  //
  1389  // Related actions include:
  1390  //
  1391  //    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
  1392  //
  1393  //    * GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html)
  1394  //
  1395  //    * PutJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html)
  1396  //
  1397  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1398  // with awserr.Error's Code and Message methods to get detailed information about
  1399  // the error.
  1400  //
  1401  // See the AWS API reference guide for AWS S3 Control's
  1402  // API operation DeleteJobTagging for usage and error information.
  1403  //
  1404  // Returned Error Codes:
  1405  //   * ErrCodeInternalServiceException "InternalServiceException"
  1406  //
  1407  //   * ErrCodeTooManyRequestsException "TooManyRequestsException"
  1408  //
  1409  //   * ErrCodeNotFoundException "NotFoundException"
  1410  //
  1411  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTagging
  1412  func (c *S3Control) DeleteJobTagging(input *DeleteJobTaggingInput) (*DeleteJobTaggingOutput, error) {
  1413  	req, out := c.DeleteJobTaggingRequest(input)
  1414  	return out, req.Send()
  1415  }
  1416  
  1417  // DeleteJobTaggingWithContext is the same as DeleteJobTagging with the addition of
  1418  // the ability to pass a context and additional request options.
  1419  //
  1420  // See DeleteJobTagging for details on how to use this API operation.
  1421  //
  1422  // The context must be non-nil and will be used for request cancellation. If
  1423  // the context is nil a panic will occur. In the future the SDK may create
  1424  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1425  // for more information on using Contexts.
  1426  func (c *S3Control) DeleteJobTaggingWithContext(ctx aws.Context, input *DeleteJobTaggingInput, opts ...request.Option) (*DeleteJobTaggingOutput, error) {
  1427  	req, out := c.DeleteJobTaggingRequest(input)
  1428  	req.SetContext(ctx)
  1429  	req.ApplyOptions(opts...)
  1430  	return out, req.Send()
  1431  }
  1432  
  1433  const opDeleteMultiRegionAccessPoint = "DeleteMultiRegionAccessPoint"
  1434  
  1435  // DeleteMultiRegionAccessPointRequest generates a "aws/request.Request" representing the
  1436  // client's request for the DeleteMultiRegionAccessPoint operation. The "output" return
  1437  // value will be populated with the request's response once the request completes
  1438  // successfully.
  1439  //
  1440  // Use "Send" method on the returned Request to send the API call to the service.
  1441  // the "output" return value is not valid until after Send returns without error.
  1442  //
  1443  // See DeleteMultiRegionAccessPoint for more information on using the DeleteMultiRegionAccessPoint
  1444  // API call, and error handling.
  1445  //
  1446  // This method is useful when you want to inject custom logic or configuration
  1447  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1448  //
  1449  //
  1450  //    // Example sending a request using the DeleteMultiRegionAccessPointRequest method.
  1451  //    req, resp := client.DeleteMultiRegionAccessPointRequest(params)
  1452  //
  1453  //    err := req.Send()
  1454  //    if err == nil { // resp is now filled
  1455  //        fmt.Println(resp)
  1456  //    }
  1457  //
  1458  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteMultiRegionAccessPoint
  1459  func (c *S3Control) DeleteMultiRegionAccessPointRequest(input *DeleteMultiRegionAccessPointInput) (req *request.Request, output *DeleteMultiRegionAccessPointOutput) {
  1460  	op := &request.Operation{
  1461  		Name:       opDeleteMultiRegionAccessPoint,
  1462  		HTTPMethod: "POST",
  1463  		HTTPPath:   "/v20180820/async-requests/mrap/delete",
  1464  	}
  1465  
  1466  	if input == nil {
  1467  		input = &DeleteMultiRegionAccessPointInput{}
  1468  	}
  1469  
  1470  	output = &DeleteMultiRegionAccessPointOutput{}
  1471  	req = c.newRequest(op, input, output)
  1472  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  1473  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  1474  	req.Handlers.Build.PushBackNamed(request.NamedHandler{
  1475  		Name: "contentMd5Handler",
  1476  		Fn:   checksum.AddBodyContentMD5Handler,
  1477  	})
  1478  	return
  1479  }
  1480  
  1481  // DeleteMultiRegionAccessPoint API operation for AWS S3 Control.
  1482  //
  1483  // Deletes a Multi-Region Access Point. This action does not delete the buckets
  1484  // associated with the Multi-Region Access Point, only the Multi-Region Access
  1485  // Point itself.
  1486  //
  1487  // This action will always be routed to the US West (Oregon) Region. For more
  1488  // information about the restrictions around managing Multi-Region Access Points,
  1489  // see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
  1490  // in the Amazon S3 User Guide.
  1491  //
  1492  // This request is asynchronous, meaning that you might receive a response before
  1493  // the command has completed. When this request provides a response, it provides
  1494  // a token that you can use to monitor the status of the request with DescribeMultiRegionAccessPointOperation.
  1495  //
  1496  // The following actions are related to DeleteMultiRegionAccessPoint:
  1497  //
  1498  //    * CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)
  1499  //
  1500  //    * DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
  1501  //
  1502  //    * GetMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html)
  1503  //
  1504  //    * ListMultiRegionAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html)
  1505  //
  1506  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1507  // with awserr.Error's Code and Message methods to get detailed information about
  1508  // the error.
  1509  //
  1510  // See the AWS API reference guide for AWS S3 Control's
  1511  // API operation DeleteMultiRegionAccessPoint for usage and error information.
  1512  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteMultiRegionAccessPoint
  1513  func (c *S3Control) DeleteMultiRegionAccessPoint(input *DeleteMultiRegionAccessPointInput) (*DeleteMultiRegionAccessPointOutput, error) {
  1514  	req, out := c.DeleteMultiRegionAccessPointRequest(input)
  1515  	return out, req.Send()
  1516  }
  1517  
  1518  // DeleteMultiRegionAccessPointWithContext is the same as DeleteMultiRegionAccessPoint with the addition of
  1519  // the ability to pass a context and additional request options.
  1520  //
  1521  // See DeleteMultiRegionAccessPoint for details on how to use this API operation.
  1522  //
  1523  // The context must be non-nil and will be used for request cancellation. If
  1524  // the context is nil a panic will occur. In the future the SDK may create
  1525  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1526  // for more information on using Contexts.
  1527  func (c *S3Control) DeleteMultiRegionAccessPointWithContext(ctx aws.Context, input *DeleteMultiRegionAccessPointInput, opts ...request.Option) (*DeleteMultiRegionAccessPointOutput, error) {
  1528  	req, out := c.DeleteMultiRegionAccessPointRequest(input)
  1529  	req.SetContext(ctx)
  1530  	req.ApplyOptions(opts...)
  1531  	return out, req.Send()
  1532  }
  1533  
  1534  const opDeletePublicAccessBlock = "DeletePublicAccessBlock"
  1535  
  1536  // DeletePublicAccessBlockRequest generates a "aws/request.Request" representing the
  1537  // client's request for the DeletePublicAccessBlock operation. The "output" return
  1538  // value will be populated with the request's response once the request completes
  1539  // successfully.
  1540  //
  1541  // Use "Send" method on the returned Request to send the API call to the service.
  1542  // the "output" return value is not valid until after Send returns without error.
  1543  //
  1544  // See DeletePublicAccessBlock for more information on using the DeletePublicAccessBlock
  1545  // API call, and error handling.
  1546  //
  1547  // This method is useful when you want to inject custom logic or configuration
  1548  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1549  //
  1550  //
  1551  //    // Example sending a request using the DeletePublicAccessBlockRequest method.
  1552  //    req, resp := client.DeletePublicAccessBlockRequest(params)
  1553  //
  1554  //    err := req.Send()
  1555  //    if err == nil { // resp is now filled
  1556  //        fmt.Println(resp)
  1557  //    }
  1558  //
  1559  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlock
  1560  func (c *S3Control) DeletePublicAccessBlockRequest(input *DeletePublicAccessBlockInput) (req *request.Request, output *DeletePublicAccessBlockOutput) {
  1561  	op := &request.Operation{
  1562  		Name:       opDeletePublicAccessBlock,
  1563  		HTTPMethod: "DELETE",
  1564  		HTTPPath:   "/v20180820/configuration/publicAccessBlock",
  1565  	}
  1566  
  1567  	if input == nil {
  1568  		input = &DeletePublicAccessBlockInput{}
  1569  	}
  1570  
  1571  	output = &DeletePublicAccessBlockOutput{}
  1572  	req = c.newRequest(op, input, output)
  1573  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1574  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  1575  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  1576  	return
  1577  }
  1578  
  1579  // DeletePublicAccessBlock API operation for AWS S3 Control.
  1580  //
  1581  // Removes the PublicAccessBlock configuration for an Amazon Web Services account.
  1582  // For more information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).
  1583  //
  1584  // Related actions include:
  1585  //
  1586  //    * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html)
  1587  //
  1588  //    * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html)
  1589  //
  1590  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1591  // with awserr.Error's Code and Message methods to get detailed information about
  1592  // the error.
  1593  //
  1594  // See the AWS API reference guide for AWS S3 Control's
  1595  // API operation DeletePublicAccessBlock for usage and error information.
  1596  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlock
  1597  func (c *S3Control) DeletePublicAccessBlock(input *DeletePublicAccessBlockInput) (*DeletePublicAccessBlockOutput, error) {
  1598  	req, out := c.DeletePublicAccessBlockRequest(input)
  1599  	return out, req.Send()
  1600  }
  1601  
  1602  // DeletePublicAccessBlockWithContext is the same as DeletePublicAccessBlock with the addition of
  1603  // the ability to pass a context and additional request options.
  1604  //
  1605  // See DeletePublicAccessBlock for details on how to use this API operation.
  1606  //
  1607  // The context must be non-nil and will be used for request cancellation. If
  1608  // the context is nil a panic will occur. In the future the SDK may create
  1609  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1610  // for more information on using Contexts.
  1611  func (c *S3Control) DeletePublicAccessBlockWithContext(ctx aws.Context, input *DeletePublicAccessBlockInput, opts ...request.Option) (*DeletePublicAccessBlockOutput, error) {
  1612  	req, out := c.DeletePublicAccessBlockRequest(input)
  1613  	req.SetContext(ctx)
  1614  	req.ApplyOptions(opts...)
  1615  	return out, req.Send()
  1616  }
  1617  
  1618  const opDeleteStorageLensConfiguration = "DeleteStorageLensConfiguration"
  1619  
  1620  // DeleteStorageLensConfigurationRequest generates a "aws/request.Request" representing the
  1621  // client's request for the DeleteStorageLensConfiguration operation. The "output" return
  1622  // value will be populated with the request's response once the request completes
  1623  // successfully.
  1624  //
  1625  // Use "Send" method on the returned Request to send the API call to the service.
  1626  // the "output" return value is not valid until after Send returns without error.
  1627  //
  1628  // See DeleteStorageLensConfiguration for more information on using the DeleteStorageLensConfiguration
  1629  // API call, and error handling.
  1630  //
  1631  // This method is useful when you want to inject custom logic or configuration
  1632  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1633  //
  1634  //
  1635  //    // Example sending a request using the DeleteStorageLensConfigurationRequest method.
  1636  //    req, resp := client.DeleteStorageLensConfigurationRequest(params)
  1637  //
  1638  //    err := req.Send()
  1639  //    if err == nil { // resp is now filled
  1640  //        fmt.Println(resp)
  1641  //    }
  1642  //
  1643  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfiguration
  1644  func (c *S3Control) DeleteStorageLensConfigurationRequest(input *DeleteStorageLensConfigurationInput) (req *request.Request, output *DeleteStorageLensConfigurationOutput) {
  1645  	op := &request.Operation{
  1646  		Name:       opDeleteStorageLensConfiguration,
  1647  		HTTPMethod: "DELETE",
  1648  		HTTPPath:   "/v20180820/storagelens/{storagelensid}",
  1649  	}
  1650  
  1651  	if input == nil {
  1652  		input = &DeleteStorageLensConfigurationInput{}
  1653  	}
  1654  
  1655  	output = &DeleteStorageLensConfigurationOutput{}
  1656  	req = c.newRequest(op, input, output)
  1657  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1658  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  1659  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  1660  	return
  1661  }
  1662  
  1663  // DeleteStorageLensConfiguration API operation for AWS S3 Control.
  1664  //
  1665  // Deletes the Amazon S3 Storage Lens configuration. For more information about
  1666  // S3 Storage Lens, see Assessing your storage activity and usage with Amazon
  1667  // S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
  1668  // in the Amazon S3 User Guide.
  1669  //
  1670  // To use this action, you must have permission to perform the s3:DeleteStorageLensConfiguration
  1671  // action. For more information, see Setting permissions to use Amazon S3 Storage
  1672  // Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
  1673  // in the Amazon S3 User Guide.
  1674  //
  1675  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1676  // with awserr.Error's Code and Message methods to get detailed information about
  1677  // the error.
  1678  //
  1679  // See the AWS API reference guide for AWS S3 Control's
  1680  // API operation DeleteStorageLensConfiguration for usage and error information.
  1681  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfiguration
  1682  func (c *S3Control) DeleteStorageLensConfiguration(input *DeleteStorageLensConfigurationInput) (*DeleteStorageLensConfigurationOutput, error) {
  1683  	req, out := c.DeleteStorageLensConfigurationRequest(input)
  1684  	return out, req.Send()
  1685  }
  1686  
  1687  // DeleteStorageLensConfigurationWithContext is the same as DeleteStorageLensConfiguration with the addition of
  1688  // the ability to pass a context and additional request options.
  1689  //
  1690  // See DeleteStorageLensConfiguration for details on how to use this API operation.
  1691  //
  1692  // The context must be non-nil and will be used for request cancellation. If
  1693  // the context is nil a panic will occur. In the future the SDK may create
  1694  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1695  // for more information on using Contexts.
  1696  func (c *S3Control) DeleteStorageLensConfigurationWithContext(ctx aws.Context, input *DeleteStorageLensConfigurationInput, opts ...request.Option) (*DeleteStorageLensConfigurationOutput, error) {
  1697  	req, out := c.DeleteStorageLensConfigurationRequest(input)
  1698  	req.SetContext(ctx)
  1699  	req.ApplyOptions(opts...)
  1700  	return out, req.Send()
  1701  }
  1702  
  1703  const opDeleteStorageLensConfigurationTagging = "DeleteStorageLensConfigurationTagging"
  1704  
  1705  // DeleteStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the
  1706  // client's request for the DeleteStorageLensConfigurationTagging operation. The "output" return
  1707  // value will be populated with the request's response once the request completes
  1708  // successfully.
  1709  //
  1710  // Use "Send" method on the returned Request to send the API call to the service.
  1711  // the "output" return value is not valid until after Send returns without error.
  1712  //
  1713  // See DeleteStorageLensConfigurationTagging for more information on using the DeleteStorageLensConfigurationTagging
  1714  // API call, and error handling.
  1715  //
  1716  // This method is useful when you want to inject custom logic or configuration
  1717  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1718  //
  1719  //
  1720  //    // Example sending a request using the DeleteStorageLensConfigurationTaggingRequest method.
  1721  //    req, resp := client.DeleteStorageLensConfigurationTaggingRequest(params)
  1722  //
  1723  //    err := req.Send()
  1724  //    if err == nil { // resp is now filled
  1725  //        fmt.Println(resp)
  1726  //    }
  1727  //
  1728  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationTagging
  1729  func (c *S3Control) DeleteStorageLensConfigurationTaggingRequest(input *DeleteStorageLensConfigurationTaggingInput) (req *request.Request, output *DeleteStorageLensConfigurationTaggingOutput) {
  1730  	op := &request.Operation{
  1731  		Name:       opDeleteStorageLensConfigurationTagging,
  1732  		HTTPMethod: "DELETE",
  1733  		HTTPPath:   "/v20180820/storagelens/{storagelensid}/tagging",
  1734  	}
  1735  
  1736  	if input == nil {
  1737  		input = &DeleteStorageLensConfigurationTaggingInput{}
  1738  	}
  1739  
  1740  	output = &DeleteStorageLensConfigurationTaggingOutput{}
  1741  	req = c.newRequest(op, input, output)
  1742  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1743  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  1744  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  1745  	return
  1746  }
  1747  
  1748  // DeleteStorageLensConfigurationTagging API operation for AWS S3 Control.
  1749  //
  1750  // Deletes the Amazon S3 Storage Lens configuration tags. For more information
  1751  // about S3 Storage Lens, see Assessing your storage activity and usage with
  1752  // Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
  1753  // in the Amazon S3 User Guide.
  1754  //
  1755  // To use this action, you must have permission to perform the s3:DeleteStorageLensConfigurationTagging
  1756  // action. For more information, see Setting permissions to use Amazon S3 Storage
  1757  // Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
  1758  // in the Amazon S3 User Guide.
  1759  //
  1760  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1761  // with awserr.Error's Code and Message methods to get detailed information about
  1762  // the error.
  1763  //
  1764  // See the AWS API reference guide for AWS S3 Control's
  1765  // API operation DeleteStorageLensConfigurationTagging for usage and error information.
  1766  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteStorageLensConfigurationTagging
  1767  func (c *S3Control) DeleteStorageLensConfigurationTagging(input *DeleteStorageLensConfigurationTaggingInput) (*DeleteStorageLensConfigurationTaggingOutput, error) {
  1768  	req, out := c.DeleteStorageLensConfigurationTaggingRequest(input)
  1769  	return out, req.Send()
  1770  }
  1771  
  1772  // DeleteStorageLensConfigurationTaggingWithContext is the same as DeleteStorageLensConfigurationTagging with the addition of
  1773  // the ability to pass a context and additional request options.
  1774  //
  1775  // See DeleteStorageLensConfigurationTagging for details on how to use this API operation.
  1776  //
  1777  // The context must be non-nil and will be used for request cancellation. If
  1778  // the context is nil a panic will occur. In the future the SDK may create
  1779  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1780  // for more information on using Contexts.
  1781  func (c *S3Control) DeleteStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *DeleteStorageLensConfigurationTaggingInput, opts ...request.Option) (*DeleteStorageLensConfigurationTaggingOutput, error) {
  1782  	req, out := c.DeleteStorageLensConfigurationTaggingRequest(input)
  1783  	req.SetContext(ctx)
  1784  	req.ApplyOptions(opts...)
  1785  	return out, req.Send()
  1786  }
  1787  
  1788  const opDescribeJob = "DescribeJob"
  1789  
  1790  // DescribeJobRequest generates a "aws/request.Request" representing the
  1791  // client's request for the DescribeJob operation. The "output" return
  1792  // value will be populated with the request's response once the request completes
  1793  // successfully.
  1794  //
  1795  // Use "Send" method on the returned Request to send the API call to the service.
  1796  // the "output" return value is not valid until after Send returns without error.
  1797  //
  1798  // See DescribeJob for more information on using the DescribeJob
  1799  // API call, and error handling.
  1800  //
  1801  // This method is useful when you want to inject custom logic or configuration
  1802  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1803  //
  1804  //
  1805  //    // Example sending a request using the DescribeJobRequest method.
  1806  //    req, resp := client.DescribeJobRequest(params)
  1807  //
  1808  //    err := req.Send()
  1809  //    if err == nil { // resp is now filled
  1810  //        fmt.Println(resp)
  1811  //    }
  1812  //
  1813  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJob
  1814  func (c *S3Control) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
  1815  	op := &request.Operation{
  1816  		Name:       opDescribeJob,
  1817  		HTTPMethod: "GET",
  1818  		HTTPPath:   "/v20180820/jobs/{id}",
  1819  	}
  1820  
  1821  	if input == nil {
  1822  		input = &DescribeJobInput{}
  1823  	}
  1824  
  1825  	output = &DescribeJobOutput{}
  1826  	req = c.newRequest(op, input, output)
  1827  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  1828  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  1829  	return
  1830  }
  1831  
  1832  // DescribeJob API operation for AWS S3 Control.
  1833  //
  1834  // Retrieves the configuration parameters and status for a Batch Operations
  1835  // job. For more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
  1836  // in the Amazon S3 User Guide.
  1837  //
  1838  // Related actions include:
  1839  //
  1840  //    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
  1841  //
  1842  //    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
  1843  //
  1844  //    * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html)
  1845  //
  1846  //    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
  1847  //
  1848  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1849  // with awserr.Error's Code and Message methods to get detailed information about
  1850  // the error.
  1851  //
  1852  // See the AWS API reference guide for AWS S3 Control's
  1853  // API operation DescribeJob for usage and error information.
  1854  //
  1855  // Returned Error Codes:
  1856  //   * ErrCodeBadRequestException "BadRequestException"
  1857  //
  1858  //   * ErrCodeTooManyRequestsException "TooManyRequestsException"
  1859  //
  1860  //   * ErrCodeNotFoundException "NotFoundException"
  1861  //
  1862  //   * ErrCodeInternalServiceException "InternalServiceException"
  1863  //
  1864  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJob
  1865  func (c *S3Control) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
  1866  	req, out := c.DescribeJobRequest(input)
  1867  	return out, req.Send()
  1868  }
  1869  
  1870  // DescribeJobWithContext is the same as DescribeJob with the addition of
  1871  // the ability to pass a context and additional request options.
  1872  //
  1873  // See DescribeJob for details on how to use this API operation.
  1874  //
  1875  // The context must be non-nil and will be used for request cancellation. If
  1876  // the context is nil a panic will occur. In the future the SDK may create
  1877  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1878  // for more information on using Contexts.
  1879  func (c *S3Control) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) {
  1880  	req, out := c.DescribeJobRequest(input)
  1881  	req.SetContext(ctx)
  1882  	req.ApplyOptions(opts...)
  1883  	return out, req.Send()
  1884  }
  1885  
  1886  const opDescribeMultiRegionAccessPointOperation = "DescribeMultiRegionAccessPointOperation"
  1887  
  1888  // DescribeMultiRegionAccessPointOperationRequest generates a "aws/request.Request" representing the
  1889  // client's request for the DescribeMultiRegionAccessPointOperation operation. The "output" return
  1890  // value will be populated with the request's response once the request completes
  1891  // successfully.
  1892  //
  1893  // Use "Send" method on the returned Request to send the API call to the service.
  1894  // the "output" return value is not valid until after Send returns without error.
  1895  //
  1896  // See DescribeMultiRegionAccessPointOperation for more information on using the DescribeMultiRegionAccessPointOperation
  1897  // API call, and error handling.
  1898  //
  1899  // This method is useful when you want to inject custom logic or configuration
  1900  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1901  //
  1902  //
  1903  //    // Example sending a request using the DescribeMultiRegionAccessPointOperationRequest method.
  1904  //    req, resp := client.DescribeMultiRegionAccessPointOperationRequest(params)
  1905  //
  1906  //    err := req.Send()
  1907  //    if err == nil { // resp is now filled
  1908  //        fmt.Println(resp)
  1909  //    }
  1910  //
  1911  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeMultiRegionAccessPointOperation
  1912  func (c *S3Control) DescribeMultiRegionAccessPointOperationRequest(input *DescribeMultiRegionAccessPointOperationInput) (req *request.Request, output *DescribeMultiRegionAccessPointOperationOutput) {
  1913  	op := &request.Operation{
  1914  		Name:       opDescribeMultiRegionAccessPointOperation,
  1915  		HTTPMethod: "GET",
  1916  		HTTPPath:   "/v20180820/async-requests/mrap/{request_token+}",
  1917  	}
  1918  
  1919  	if input == nil {
  1920  		input = &DescribeMultiRegionAccessPointOperationInput{}
  1921  	}
  1922  
  1923  	output = &DescribeMultiRegionAccessPointOperationOutput{}
  1924  	req = c.newRequest(op, input, output)
  1925  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  1926  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  1927  	req.Handlers.Build.PushBackNamed(request.NamedHandler{
  1928  		Name: "contentMd5Handler",
  1929  		Fn:   checksum.AddBodyContentMD5Handler,
  1930  	})
  1931  	return
  1932  }
  1933  
  1934  // DescribeMultiRegionAccessPointOperation API operation for AWS S3 Control.
  1935  //
  1936  // Retrieves the status of an asynchronous request to manage a Multi-Region
  1937  // Access Point. For more information about managing Multi-Region Access Points
  1938  // and how asynchronous requests work, see Managing Multi-Region Access Points
  1939  // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
  1940  // in the Amazon S3 User Guide.
  1941  //
  1942  // The following actions are related to GetMultiRegionAccessPoint:
  1943  //
  1944  //    * CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)
  1945  //
  1946  //    * DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)
  1947  //
  1948  //    * GetMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html)
  1949  //
  1950  //    * ListMultiRegionAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html)
  1951  //
  1952  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1953  // with awserr.Error's Code and Message methods to get detailed information about
  1954  // the error.
  1955  //
  1956  // See the AWS API reference guide for AWS S3 Control's
  1957  // API operation DescribeMultiRegionAccessPointOperation for usage and error information.
  1958  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeMultiRegionAccessPointOperation
  1959  func (c *S3Control) DescribeMultiRegionAccessPointOperation(input *DescribeMultiRegionAccessPointOperationInput) (*DescribeMultiRegionAccessPointOperationOutput, error) {
  1960  	req, out := c.DescribeMultiRegionAccessPointOperationRequest(input)
  1961  	return out, req.Send()
  1962  }
  1963  
  1964  // DescribeMultiRegionAccessPointOperationWithContext is the same as DescribeMultiRegionAccessPointOperation with the addition of
  1965  // the ability to pass a context and additional request options.
  1966  //
  1967  // See DescribeMultiRegionAccessPointOperation for details on how to use this API operation.
  1968  //
  1969  // The context must be non-nil and will be used for request cancellation. If
  1970  // the context is nil a panic will occur. In the future the SDK may create
  1971  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1972  // for more information on using Contexts.
  1973  func (c *S3Control) DescribeMultiRegionAccessPointOperationWithContext(ctx aws.Context, input *DescribeMultiRegionAccessPointOperationInput, opts ...request.Option) (*DescribeMultiRegionAccessPointOperationOutput, error) {
  1974  	req, out := c.DescribeMultiRegionAccessPointOperationRequest(input)
  1975  	req.SetContext(ctx)
  1976  	req.ApplyOptions(opts...)
  1977  	return out, req.Send()
  1978  }
  1979  
  1980  const opGetAccessPoint = "GetAccessPoint"
  1981  
  1982  // GetAccessPointRequest generates a "aws/request.Request" representing the
  1983  // client's request for the GetAccessPoint operation. The "output" return
  1984  // value will be populated with the request's response once the request completes
  1985  // successfully.
  1986  //
  1987  // Use "Send" method on the returned Request to send the API call to the service.
  1988  // the "output" return value is not valid until after Send returns without error.
  1989  //
  1990  // See GetAccessPoint for more information on using the GetAccessPoint
  1991  // API call, and error handling.
  1992  //
  1993  // This method is useful when you want to inject custom logic or configuration
  1994  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1995  //
  1996  //
  1997  //    // Example sending a request using the GetAccessPointRequest method.
  1998  //    req, resp := client.GetAccessPointRequest(params)
  1999  //
  2000  //    err := req.Send()
  2001  //    if err == nil { // resp is now filled
  2002  //        fmt.Println(resp)
  2003  //    }
  2004  //
  2005  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint
  2006  func (c *S3Control) GetAccessPointRequest(input *GetAccessPointInput) (req *request.Request, output *GetAccessPointOutput) {
  2007  	op := &request.Operation{
  2008  		Name:       opGetAccessPoint,
  2009  		HTTPMethod: "GET",
  2010  		HTTPPath:   "/v20180820/accesspoint/{name}",
  2011  	}
  2012  
  2013  	if input == nil {
  2014  		input = &GetAccessPointInput{}
  2015  	}
  2016  
  2017  	output = &GetAccessPointOutput{}
  2018  	req = c.newRequest(op, input, output)
  2019  	// update account id or check if provided input for account id member matches
  2020  	// the account id present in ARN
  2021  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  2022  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  2023  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  2024  	return
  2025  }
  2026  
  2027  // GetAccessPoint API operation for AWS S3 Control.
  2028  //
  2029  // Returns configuration information about the specified access point.
  2030  //
  2031  // All Amazon S3 on Outposts REST API requests for this action require an additional
  2032  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
  2033  // Outposts endpoint hostname prefix instead of s3-control. For an example of
  2034  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
  2035  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
  2036  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples)
  2037  // section.
  2038  //
  2039  // The following actions are related to GetAccessPoint:
  2040  //
  2041  //    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
  2042  //
  2043  //    * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)
  2044  //
  2045  //    * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)
  2046  //
  2047  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2048  // with awserr.Error's Code and Message methods to get detailed information about
  2049  // the error.
  2050  //
  2051  // See the AWS API reference guide for AWS S3 Control's
  2052  // API operation GetAccessPoint for usage and error information.
  2053  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint
  2054  func (c *S3Control) GetAccessPoint(input *GetAccessPointInput) (*GetAccessPointOutput, error) {
  2055  	req, out := c.GetAccessPointRequest(input)
  2056  	return out, req.Send()
  2057  }
  2058  
  2059  // GetAccessPointWithContext is the same as GetAccessPoint with the addition of
  2060  // the ability to pass a context and additional request options.
  2061  //
  2062  // See GetAccessPoint for details on how to use this API operation.
  2063  //
  2064  // The context must be non-nil and will be used for request cancellation. If
  2065  // the context is nil a panic will occur. In the future the SDK may create
  2066  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2067  // for more information on using Contexts.
  2068  func (c *S3Control) GetAccessPointWithContext(ctx aws.Context, input *GetAccessPointInput, opts ...request.Option) (*GetAccessPointOutput, error) {
  2069  	req, out := c.GetAccessPointRequest(input)
  2070  	req.SetContext(ctx)
  2071  	req.ApplyOptions(opts...)
  2072  	return out, req.Send()
  2073  }
  2074  
  2075  const opGetAccessPointConfigurationForObjectLambda = "GetAccessPointConfigurationForObjectLambda"
  2076  
  2077  // GetAccessPointConfigurationForObjectLambdaRequest generates a "aws/request.Request" representing the
  2078  // client's request for the GetAccessPointConfigurationForObjectLambda operation. The "output" return
  2079  // value will be populated with the request's response once the request completes
  2080  // successfully.
  2081  //
  2082  // Use "Send" method on the returned Request to send the API call to the service.
  2083  // the "output" return value is not valid until after Send returns without error.
  2084  //
  2085  // See GetAccessPointConfigurationForObjectLambda for more information on using the GetAccessPointConfigurationForObjectLambda
  2086  // API call, and error handling.
  2087  //
  2088  // This method is useful when you want to inject custom logic or configuration
  2089  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2090  //
  2091  //
  2092  //    // Example sending a request using the GetAccessPointConfigurationForObjectLambdaRequest method.
  2093  //    req, resp := client.GetAccessPointConfigurationForObjectLambdaRequest(params)
  2094  //
  2095  //    err := req.Send()
  2096  //    if err == nil { // resp is now filled
  2097  //        fmt.Println(resp)
  2098  //    }
  2099  //
  2100  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointConfigurationForObjectLambda
  2101  func (c *S3Control) GetAccessPointConfigurationForObjectLambdaRequest(input *GetAccessPointConfigurationForObjectLambdaInput) (req *request.Request, output *GetAccessPointConfigurationForObjectLambdaOutput) {
  2102  	op := &request.Operation{
  2103  		Name:       opGetAccessPointConfigurationForObjectLambda,
  2104  		HTTPMethod: "GET",
  2105  		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/configuration",
  2106  	}
  2107  
  2108  	if input == nil {
  2109  		input = &GetAccessPointConfigurationForObjectLambdaInput{}
  2110  	}
  2111  
  2112  	output = &GetAccessPointConfigurationForObjectLambdaOutput{}
  2113  	req = c.newRequest(op, input, output)
  2114  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  2115  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  2116  	return
  2117  }
  2118  
  2119  // GetAccessPointConfigurationForObjectLambda API operation for AWS S3 Control.
  2120  //
  2121  // Returns configuration for an Object Lambda Access Point.
  2122  //
  2123  // The following actions are related to GetAccessPointConfigurationForObjectLambda:
  2124  //
  2125  //    * PutAccessPointConfigurationForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointConfigurationForObjectLambda.html)
  2126  //
  2127  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2128  // with awserr.Error's Code and Message methods to get detailed information about
  2129  // the error.
  2130  //
  2131  // See the AWS API reference guide for AWS S3 Control's
  2132  // API operation GetAccessPointConfigurationForObjectLambda for usage and error information.
  2133  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointConfigurationForObjectLambda
  2134  func (c *S3Control) GetAccessPointConfigurationForObjectLambda(input *GetAccessPointConfigurationForObjectLambdaInput) (*GetAccessPointConfigurationForObjectLambdaOutput, error) {
  2135  	req, out := c.GetAccessPointConfigurationForObjectLambdaRequest(input)
  2136  	return out, req.Send()
  2137  }
  2138  
  2139  // GetAccessPointConfigurationForObjectLambdaWithContext is the same as GetAccessPointConfigurationForObjectLambda with the addition of
  2140  // the ability to pass a context and additional request options.
  2141  //
  2142  // See GetAccessPointConfigurationForObjectLambda for details on how to use this API operation.
  2143  //
  2144  // The context must be non-nil and will be used for request cancellation. If
  2145  // the context is nil a panic will occur. In the future the SDK may create
  2146  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2147  // for more information on using Contexts.
  2148  func (c *S3Control) GetAccessPointConfigurationForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointConfigurationForObjectLambdaInput, opts ...request.Option) (*GetAccessPointConfigurationForObjectLambdaOutput, error) {
  2149  	req, out := c.GetAccessPointConfigurationForObjectLambdaRequest(input)
  2150  	req.SetContext(ctx)
  2151  	req.ApplyOptions(opts...)
  2152  	return out, req.Send()
  2153  }
  2154  
  2155  const opGetAccessPointForObjectLambda = "GetAccessPointForObjectLambda"
  2156  
  2157  // GetAccessPointForObjectLambdaRequest generates a "aws/request.Request" representing the
  2158  // client's request for the GetAccessPointForObjectLambda operation. The "output" return
  2159  // value will be populated with the request's response once the request completes
  2160  // successfully.
  2161  //
  2162  // Use "Send" method on the returned Request to send the API call to the service.
  2163  // the "output" return value is not valid until after Send returns without error.
  2164  //
  2165  // See GetAccessPointForObjectLambda for more information on using the GetAccessPointForObjectLambda
  2166  // API call, and error handling.
  2167  //
  2168  // This method is useful when you want to inject custom logic or configuration
  2169  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2170  //
  2171  //
  2172  //    // Example sending a request using the GetAccessPointForObjectLambdaRequest method.
  2173  //    req, resp := client.GetAccessPointForObjectLambdaRequest(params)
  2174  //
  2175  //    err := req.Send()
  2176  //    if err == nil { // resp is now filled
  2177  //        fmt.Println(resp)
  2178  //    }
  2179  //
  2180  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointForObjectLambda
  2181  func (c *S3Control) GetAccessPointForObjectLambdaRequest(input *GetAccessPointForObjectLambdaInput) (req *request.Request, output *GetAccessPointForObjectLambdaOutput) {
  2182  	op := &request.Operation{
  2183  		Name:       opGetAccessPointForObjectLambda,
  2184  		HTTPMethod: "GET",
  2185  		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}",
  2186  	}
  2187  
  2188  	if input == nil {
  2189  		input = &GetAccessPointForObjectLambdaInput{}
  2190  	}
  2191  
  2192  	output = &GetAccessPointForObjectLambdaOutput{}
  2193  	req = c.newRequest(op, input, output)
  2194  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  2195  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  2196  	return
  2197  }
  2198  
  2199  // GetAccessPointForObjectLambda API operation for AWS S3 Control.
  2200  //
  2201  // Returns configuration information about the specified Object Lambda Access
  2202  // Point
  2203  //
  2204  // The following actions are related to GetAccessPointForObjectLambda:
  2205  //
  2206  //    * CreateAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html)
  2207  //
  2208  //    * DeleteAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html)
  2209  //
  2210  //    * ListAccessPointsForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html)
  2211  //
  2212  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2213  // with awserr.Error's Code and Message methods to get detailed information about
  2214  // the error.
  2215  //
  2216  // See the AWS API reference guide for AWS S3 Control's
  2217  // API operation GetAccessPointForObjectLambda for usage and error information.
  2218  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointForObjectLambda
  2219  func (c *S3Control) GetAccessPointForObjectLambda(input *GetAccessPointForObjectLambdaInput) (*GetAccessPointForObjectLambdaOutput, error) {
  2220  	req, out := c.GetAccessPointForObjectLambdaRequest(input)
  2221  	return out, req.Send()
  2222  }
  2223  
  2224  // GetAccessPointForObjectLambdaWithContext is the same as GetAccessPointForObjectLambda with the addition of
  2225  // the ability to pass a context and additional request options.
  2226  //
  2227  // See GetAccessPointForObjectLambda for details on how to use this API operation.
  2228  //
  2229  // The context must be non-nil and will be used for request cancellation. If
  2230  // the context is nil a panic will occur. In the future the SDK may create
  2231  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2232  // for more information on using Contexts.
  2233  func (c *S3Control) GetAccessPointForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointForObjectLambdaInput, opts ...request.Option) (*GetAccessPointForObjectLambdaOutput, error) {
  2234  	req, out := c.GetAccessPointForObjectLambdaRequest(input)
  2235  	req.SetContext(ctx)
  2236  	req.ApplyOptions(opts...)
  2237  	return out, req.Send()
  2238  }
  2239  
  2240  const opGetAccessPointPolicy = "GetAccessPointPolicy"
  2241  
  2242  // GetAccessPointPolicyRequest generates a "aws/request.Request" representing the
  2243  // client's request for the GetAccessPointPolicy operation. The "output" return
  2244  // value will be populated with the request's response once the request completes
  2245  // successfully.
  2246  //
  2247  // Use "Send" method on the returned Request to send the API call to the service.
  2248  // the "output" return value is not valid until after Send returns without error.
  2249  //
  2250  // See GetAccessPointPolicy for more information on using the GetAccessPointPolicy
  2251  // API call, and error handling.
  2252  //
  2253  // This method is useful when you want to inject custom logic or configuration
  2254  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2255  //
  2256  //
  2257  //    // Example sending a request using the GetAccessPointPolicyRequest method.
  2258  //    req, resp := client.GetAccessPointPolicyRequest(params)
  2259  //
  2260  //    err := req.Send()
  2261  //    if err == nil { // resp is now filled
  2262  //        fmt.Println(resp)
  2263  //    }
  2264  //
  2265  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy
  2266  func (c *S3Control) GetAccessPointPolicyRequest(input *GetAccessPointPolicyInput) (req *request.Request, output *GetAccessPointPolicyOutput) {
  2267  	op := &request.Operation{
  2268  		Name:       opGetAccessPointPolicy,
  2269  		HTTPMethod: "GET",
  2270  		HTTPPath:   "/v20180820/accesspoint/{name}/policy",
  2271  	}
  2272  
  2273  	if input == nil {
  2274  		input = &GetAccessPointPolicyInput{}
  2275  	}
  2276  
  2277  	output = &GetAccessPointPolicyOutput{}
  2278  	req = c.newRequest(op, input, output)
  2279  	// update account id or check if provided input for account id member matches
  2280  	// the account id present in ARN
  2281  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  2282  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  2283  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  2284  	return
  2285  }
  2286  
  2287  // GetAccessPointPolicy API operation for AWS S3 Control.
  2288  //
  2289  // Returns the access point policy associated with the specified access point.
  2290  //
  2291  // The following actions are related to GetAccessPointPolicy:
  2292  //
  2293  //    * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)
  2294  //
  2295  //    * DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html)
  2296  //
  2297  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2298  // with awserr.Error's Code and Message methods to get detailed information about
  2299  // the error.
  2300  //
  2301  // See the AWS API reference guide for AWS S3 Control's
  2302  // API operation GetAccessPointPolicy for usage and error information.
  2303  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy
  2304  func (c *S3Control) GetAccessPointPolicy(input *GetAccessPointPolicyInput) (*GetAccessPointPolicyOutput, error) {
  2305  	req, out := c.GetAccessPointPolicyRequest(input)
  2306  	return out, req.Send()
  2307  }
  2308  
  2309  // GetAccessPointPolicyWithContext is the same as GetAccessPointPolicy with the addition of
  2310  // the ability to pass a context and additional request options.
  2311  //
  2312  // See GetAccessPointPolicy for details on how to use this API operation.
  2313  //
  2314  // The context must be non-nil and will be used for request cancellation. If
  2315  // the context is nil a panic will occur. In the future the SDK may create
  2316  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2317  // for more information on using Contexts.
  2318  func (c *S3Control) GetAccessPointPolicyWithContext(ctx aws.Context, input *GetAccessPointPolicyInput, opts ...request.Option) (*GetAccessPointPolicyOutput, error) {
  2319  	req, out := c.GetAccessPointPolicyRequest(input)
  2320  	req.SetContext(ctx)
  2321  	req.ApplyOptions(opts...)
  2322  	return out, req.Send()
  2323  }
  2324  
  2325  const opGetAccessPointPolicyForObjectLambda = "GetAccessPointPolicyForObjectLambda"
  2326  
  2327  // GetAccessPointPolicyForObjectLambdaRequest generates a "aws/request.Request" representing the
  2328  // client's request for the GetAccessPointPolicyForObjectLambda operation. The "output" return
  2329  // value will be populated with the request's response once the request completes
  2330  // successfully.
  2331  //
  2332  // Use "Send" method on the returned Request to send the API call to the service.
  2333  // the "output" return value is not valid until after Send returns without error.
  2334  //
  2335  // See GetAccessPointPolicyForObjectLambda for more information on using the GetAccessPointPolicyForObjectLambda
  2336  // API call, and error handling.
  2337  //
  2338  // This method is useful when you want to inject custom logic or configuration
  2339  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2340  //
  2341  //
  2342  //    // Example sending a request using the GetAccessPointPolicyForObjectLambdaRequest method.
  2343  //    req, resp := client.GetAccessPointPolicyForObjectLambdaRequest(params)
  2344  //
  2345  //    err := req.Send()
  2346  //    if err == nil { // resp is now filled
  2347  //        fmt.Println(resp)
  2348  //    }
  2349  //
  2350  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyForObjectLambda
  2351  func (c *S3Control) GetAccessPointPolicyForObjectLambdaRequest(input *GetAccessPointPolicyForObjectLambdaInput) (req *request.Request, output *GetAccessPointPolicyForObjectLambdaOutput) {
  2352  	op := &request.Operation{
  2353  		Name:       opGetAccessPointPolicyForObjectLambda,
  2354  		HTTPMethod: "GET",
  2355  		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/policy",
  2356  	}
  2357  
  2358  	if input == nil {
  2359  		input = &GetAccessPointPolicyForObjectLambdaInput{}
  2360  	}
  2361  
  2362  	output = &GetAccessPointPolicyForObjectLambdaOutput{}
  2363  	req = c.newRequest(op, input, output)
  2364  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  2365  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  2366  	return
  2367  }
  2368  
  2369  // GetAccessPointPolicyForObjectLambda API operation for AWS S3 Control.
  2370  //
  2371  // Returns the resource policy for an Object Lambda Access Point.
  2372  //
  2373  // The following actions are related to GetAccessPointPolicyForObjectLambda:
  2374  //
  2375  //    * DeleteAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html)
  2376  //
  2377  //    * PutAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicyForObjectLambda.html)
  2378  //
  2379  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2380  // with awserr.Error's Code and Message methods to get detailed information about
  2381  // the error.
  2382  //
  2383  // See the AWS API reference guide for AWS S3 Control's
  2384  // API operation GetAccessPointPolicyForObjectLambda for usage and error information.
  2385  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyForObjectLambda
  2386  func (c *S3Control) GetAccessPointPolicyForObjectLambda(input *GetAccessPointPolicyForObjectLambdaInput) (*GetAccessPointPolicyForObjectLambdaOutput, error) {
  2387  	req, out := c.GetAccessPointPolicyForObjectLambdaRequest(input)
  2388  	return out, req.Send()
  2389  }
  2390  
  2391  // GetAccessPointPolicyForObjectLambdaWithContext is the same as GetAccessPointPolicyForObjectLambda with the addition of
  2392  // the ability to pass a context and additional request options.
  2393  //
  2394  // See GetAccessPointPolicyForObjectLambda for details on how to use this API operation.
  2395  //
  2396  // The context must be non-nil and will be used for request cancellation. If
  2397  // the context is nil a panic will occur. In the future the SDK may create
  2398  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2399  // for more information on using Contexts.
  2400  func (c *S3Control) GetAccessPointPolicyForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointPolicyForObjectLambdaInput, opts ...request.Option) (*GetAccessPointPolicyForObjectLambdaOutput, error) {
  2401  	req, out := c.GetAccessPointPolicyForObjectLambdaRequest(input)
  2402  	req.SetContext(ctx)
  2403  	req.ApplyOptions(opts...)
  2404  	return out, req.Send()
  2405  }
  2406  
  2407  const opGetAccessPointPolicyStatus = "GetAccessPointPolicyStatus"
  2408  
  2409  // GetAccessPointPolicyStatusRequest generates a "aws/request.Request" representing the
  2410  // client's request for the GetAccessPointPolicyStatus operation. The "output" return
  2411  // value will be populated with the request's response once the request completes
  2412  // successfully.
  2413  //
  2414  // Use "Send" method on the returned Request to send the API call to the service.
  2415  // the "output" return value is not valid until after Send returns without error.
  2416  //
  2417  // See GetAccessPointPolicyStatus for more information on using the GetAccessPointPolicyStatus
  2418  // API call, and error handling.
  2419  //
  2420  // This method is useful when you want to inject custom logic or configuration
  2421  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2422  //
  2423  //
  2424  //    // Example sending a request using the GetAccessPointPolicyStatusRequest method.
  2425  //    req, resp := client.GetAccessPointPolicyStatusRequest(params)
  2426  //
  2427  //    err := req.Send()
  2428  //    if err == nil { // resp is now filled
  2429  //        fmt.Println(resp)
  2430  //    }
  2431  //
  2432  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus
  2433  func (c *S3Control) GetAccessPointPolicyStatusRequest(input *GetAccessPointPolicyStatusInput) (req *request.Request, output *GetAccessPointPolicyStatusOutput) {
  2434  	op := &request.Operation{
  2435  		Name:       opGetAccessPointPolicyStatus,
  2436  		HTTPMethod: "GET",
  2437  		HTTPPath:   "/v20180820/accesspoint/{name}/policyStatus",
  2438  	}
  2439  
  2440  	if input == nil {
  2441  		input = &GetAccessPointPolicyStatusInput{}
  2442  	}
  2443  
  2444  	output = &GetAccessPointPolicyStatusOutput{}
  2445  	req = c.newRequest(op, input, output)
  2446  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  2447  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  2448  	return
  2449  }
  2450  
  2451  // GetAccessPointPolicyStatus API operation for AWS S3 Control.
  2452  //
  2453  // Indicates whether the specified access point currently has a policy that
  2454  // allows public access. For more information about public access through access
  2455  // points, see Managing Data Access with Amazon S3 access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)
  2456  // in the Amazon S3 User Guide.
  2457  //
  2458  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2459  // with awserr.Error's Code and Message methods to get detailed information about
  2460  // the error.
  2461  //
  2462  // See the AWS API reference guide for AWS S3 Control's
  2463  // API operation GetAccessPointPolicyStatus for usage and error information.
  2464  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus
  2465  func (c *S3Control) GetAccessPointPolicyStatus(input *GetAccessPointPolicyStatusInput) (*GetAccessPointPolicyStatusOutput, error) {
  2466  	req, out := c.GetAccessPointPolicyStatusRequest(input)
  2467  	return out, req.Send()
  2468  }
  2469  
  2470  // GetAccessPointPolicyStatusWithContext is the same as GetAccessPointPolicyStatus with the addition of
  2471  // the ability to pass a context and additional request options.
  2472  //
  2473  // See GetAccessPointPolicyStatus for details on how to use this API operation.
  2474  //
  2475  // The context must be non-nil and will be used for request cancellation. If
  2476  // the context is nil a panic will occur. In the future the SDK may create
  2477  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2478  // for more information on using Contexts.
  2479  func (c *S3Control) GetAccessPointPolicyStatusWithContext(ctx aws.Context, input *GetAccessPointPolicyStatusInput, opts ...request.Option) (*GetAccessPointPolicyStatusOutput, error) {
  2480  	req, out := c.GetAccessPointPolicyStatusRequest(input)
  2481  	req.SetContext(ctx)
  2482  	req.ApplyOptions(opts...)
  2483  	return out, req.Send()
  2484  }
  2485  
  2486  const opGetAccessPointPolicyStatusForObjectLambda = "GetAccessPointPolicyStatusForObjectLambda"
  2487  
  2488  // GetAccessPointPolicyStatusForObjectLambdaRequest generates a "aws/request.Request" representing the
  2489  // client's request for the GetAccessPointPolicyStatusForObjectLambda operation. The "output" return
  2490  // value will be populated with the request's response once the request completes
  2491  // successfully.
  2492  //
  2493  // Use "Send" method on the returned Request to send the API call to the service.
  2494  // the "output" return value is not valid until after Send returns without error.
  2495  //
  2496  // See GetAccessPointPolicyStatusForObjectLambda for more information on using the GetAccessPointPolicyStatusForObjectLambda
  2497  // API call, and error handling.
  2498  //
  2499  // This method is useful when you want to inject custom logic or configuration
  2500  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2501  //
  2502  //
  2503  //    // Example sending a request using the GetAccessPointPolicyStatusForObjectLambdaRequest method.
  2504  //    req, resp := client.GetAccessPointPolicyStatusForObjectLambdaRequest(params)
  2505  //
  2506  //    err := req.Send()
  2507  //    if err == nil { // resp is now filled
  2508  //        fmt.Println(resp)
  2509  //    }
  2510  //
  2511  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusForObjectLambda
  2512  func (c *S3Control) GetAccessPointPolicyStatusForObjectLambdaRequest(input *GetAccessPointPolicyStatusForObjectLambdaInput) (req *request.Request, output *GetAccessPointPolicyStatusForObjectLambdaOutput) {
  2513  	op := &request.Operation{
  2514  		Name:       opGetAccessPointPolicyStatusForObjectLambda,
  2515  		HTTPMethod: "GET",
  2516  		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/policyStatus",
  2517  	}
  2518  
  2519  	if input == nil {
  2520  		input = &GetAccessPointPolicyStatusForObjectLambdaInput{}
  2521  	}
  2522  
  2523  	output = &GetAccessPointPolicyStatusForObjectLambdaOutput{}
  2524  	req = c.newRequest(op, input, output)
  2525  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  2526  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  2527  	return
  2528  }
  2529  
  2530  // GetAccessPointPolicyStatusForObjectLambda API operation for AWS S3 Control.
  2531  //
  2532  // Returns the status of the resource policy associated with an Object Lambda
  2533  // Access Point.
  2534  //
  2535  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2536  // with awserr.Error's Code and Message methods to get detailed information about
  2537  // the error.
  2538  //
  2539  // See the AWS API reference guide for AWS S3 Control's
  2540  // API operation GetAccessPointPolicyStatusForObjectLambda for usage and error information.
  2541  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusForObjectLambda
  2542  func (c *S3Control) GetAccessPointPolicyStatusForObjectLambda(input *GetAccessPointPolicyStatusForObjectLambdaInput) (*GetAccessPointPolicyStatusForObjectLambdaOutput, error) {
  2543  	req, out := c.GetAccessPointPolicyStatusForObjectLambdaRequest(input)
  2544  	return out, req.Send()
  2545  }
  2546  
  2547  // GetAccessPointPolicyStatusForObjectLambdaWithContext is the same as GetAccessPointPolicyStatusForObjectLambda with the addition of
  2548  // the ability to pass a context and additional request options.
  2549  //
  2550  // See GetAccessPointPolicyStatusForObjectLambda for details on how to use this API operation.
  2551  //
  2552  // The context must be non-nil and will be used for request cancellation. If
  2553  // the context is nil a panic will occur. In the future the SDK may create
  2554  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2555  // for more information on using Contexts.
  2556  func (c *S3Control) GetAccessPointPolicyStatusForObjectLambdaWithContext(ctx aws.Context, input *GetAccessPointPolicyStatusForObjectLambdaInput, opts ...request.Option) (*GetAccessPointPolicyStatusForObjectLambdaOutput, error) {
  2557  	req, out := c.GetAccessPointPolicyStatusForObjectLambdaRequest(input)
  2558  	req.SetContext(ctx)
  2559  	req.ApplyOptions(opts...)
  2560  	return out, req.Send()
  2561  }
  2562  
  2563  const opGetBucket = "GetBucket"
  2564  
  2565  // GetBucketRequest generates a "aws/request.Request" representing the
  2566  // client's request for the GetBucket operation. The "output" return
  2567  // value will be populated with the request's response once the request completes
  2568  // successfully.
  2569  //
  2570  // Use "Send" method on the returned Request to send the API call to the service.
  2571  // the "output" return value is not valid until after Send returns without error.
  2572  //
  2573  // See GetBucket for more information on using the GetBucket
  2574  // API call, and error handling.
  2575  //
  2576  // This method is useful when you want to inject custom logic or configuration
  2577  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2578  //
  2579  //
  2580  //    // Example sending a request using the GetBucketRequest method.
  2581  //    req, resp := client.GetBucketRequest(params)
  2582  //
  2583  //    err := req.Send()
  2584  //    if err == nil { // resp is now filled
  2585  //        fmt.Println(resp)
  2586  //    }
  2587  //
  2588  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket
  2589  func (c *S3Control) GetBucketRequest(input *GetBucketInput) (req *request.Request, output *GetBucketOutput) {
  2590  	op := &request.Operation{
  2591  		Name:       opGetBucket,
  2592  		HTTPMethod: "GET",
  2593  		HTTPPath:   "/v20180820/bucket/{name}",
  2594  	}
  2595  
  2596  	if input == nil {
  2597  		input = &GetBucketInput{}
  2598  	}
  2599  
  2600  	output = &GetBucketOutput{}
  2601  	req = c.newRequest(op, input, output)
  2602  	// update account id or check if provided input for account id member matches
  2603  	// the account id present in ARN
  2604  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  2605  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  2606  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  2607  	return
  2608  }
  2609  
  2610  // GetBucket API operation for AWS S3 Control.
  2611  //
  2612  // Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon
  2613  // S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
  2614  // in the Amazon S3 User Guide.
  2615  //
  2616  // If you are using an identity other than the root user of the Amazon Web Services
  2617  // account that owns the Outposts bucket, the calling identity must have the
  2618  // s3-outposts:GetBucket permissions on the specified Outposts bucket and belong
  2619  // to the Outposts bucket owner's account in order to use this action. Only
  2620  // users from Outposts bucket owner account with the right permissions can perform
  2621  // actions on an Outposts bucket.
  2622  //
  2623  // If you don't have s3-outposts:GetBucket permissions or you're not using an
  2624  // identity that belongs to the bucket owner's account, Amazon S3 returns a
  2625  // 403 Access Denied error.
  2626  //
  2627  // The following actions are related to GetBucket for Amazon S3 on Outposts:
  2628  //
  2629  // All Amazon S3 on Outposts REST API requests for this action require an additional
  2630  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
  2631  // Outposts endpoint hostname prefix instead of s3-control. For an example of
  2632  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
  2633  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
  2634  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html#API_control_GetBucket_Examples)
  2635  // section.
  2636  //
  2637  //    * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
  2638  //
  2639  //    * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html)
  2640  //
  2641  //    * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html)
  2642  //
  2643  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2644  // with awserr.Error's Code and Message methods to get detailed information about
  2645  // the error.
  2646  //
  2647  // See the AWS API reference guide for AWS S3 Control's
  2648  // API operation GetBucket for usage and error information.
  2649  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket
  2650  func (c *S3Control) GetBucket(input *GetBucketInput) (*GetBucketOutput, error) {
  2651  	req, out := c.GetBucketRequest(input)
  2652  	return out, req.Send()
  2653  }
  2654  
  2655  // GetBucketWithContext is the same as GetBucket with the addition of
  2656  // the ability to pass a context and additional request options.
  2657  //
  2658  // See GetBucket for details on how to use this API operation.
  2659  //
  2660  // The context must be non-nil and will be used for request cancellation. If
  2661  // the context is nil a panic will occur. In the future the SDK may create
  2662  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2663  // for more information on using Contexts.
  2664  func (c *S3Control) GetBucketWithContext(ctx aws.Context, input *GetBucketInput, opts ...request.Option) (*GetBucketOutput, error) {
  2665  	req, out := c.GetBucketRequest(input)
  2666  	req.SetContext(ctx)
  2667  	req.ApplyOptions(opts...)
  2668  	return out, req.Send()
  2669  }
  2670  
  2671  const opGetBucketLifecycleConfiguration = "GetBucketLifecycleConfiguration"
  2672  
  2673  // GetBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
  2674  // client's request for the GetBucketLifecycleConfiguration operation. The "output" return
  2675  // value will be populated with the request's response once the request completes
  2676  // successfully.
  2677  //
  2678  // Use "Send" method on the returned Request to send the API call to the service.
  2679  // the "output" return value is not valid until after Send returns without error.
  2680  //
  2681  // See GetBucketLifecycleConfiguration for more information on using the GetBucketLifecycleConfiguration
  2682  // API call, and error handling.
  2683  //
  2684  // This method is useful when you want to inject custom logic or configuration
  2685  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2686  //
  2687  //
  2688  //    // Example sending a request using the GetBucketLifecycleConfigurationRequest method.
  2689  //    req, resp := client.GetBucketLifecycleConfigurationRequest(params)
  2690  //
  2691  //    err := req.Send()
  2692  //    if err == nil { // resp is now filled
  2693  //        fmt.Println(resp)
  2694  //    }
  2695  //
  2696  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration
  2697  func (c *S3Control) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleConfigurationInput) (req *request.Request, output *GetBucketLifecycleConfigurationOutput) {
  2698  	op := &request.Operation{
  2699  		Name:       opGetBucketLifecycleConfiguration,
  2700  		HTTPMethod: "GET",
  2701  		HTTPPath:   "/v20180820/bucket/{name}/lifecycleconfiguration",
  2702  	}
  2703  
  2704  	if input == nil {
  2705  		input = &GetBucketLifecycleConfigurationInput{}
  2706  	}
  2707  
  2708  	output = &GetBucketLifecycleConfigurationOutput{}
  2709  	req = c.newRequest(op, input, output)
  2710  	// update account id or check if provided input for account id member matches
  2711  	// the account id present in ARN
  2712  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  2713  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  2714  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  2715  	return
  2716  }
  2717  
  2718  // GetBucketLifecycleConfiguration API operation for AWS S3 Control.
  2719  //
  2720  //
  2721  // This action gets an Amazon S3 on Outposts bucket's lifecycle configuration.
  2722  // To get an S3 bucket's lifecycle configuration, see GetBucketLifecycleConfiguration
  2723  // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html)
  2724  // in the Amazon S3 API Reference.
  2725  //
  2726  // Returns the lifecycle configuration information set on the Outposts bucket.
  2727  // For more information, see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
  2728  // and for information about lifecycle configuration, see Object Lifecycle Management
  2729  // (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)
  2730  // in Amazon S3 User Guide.
  2731  //
  2732  // To use this action, you must have permission to perform the s3-outposts:GetLifecycleConfiguration
  2733  // action. The Outposts bucket owner has this permission, by default. The bucket
  2734  // owner can grant this permission to others. For more information about permissions,
  2735  // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
  2736  // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html).
  2737  //
  2738  // All Amazon S3 on Outposts REST API requests for this action require an additional
  2739  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
  2740  // Outposts endpoint hostname prefix instead of s3-control. For an example of
  2741  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
  2742  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
  2743  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html#API_control_GetBucketLifecycleConfiguration_Examples)
  2744  // section.
  2745  //
  2746  // GetBucketLifecycleConfiguration has the following special error:
  2747  //
  2748  //    * Error code: NoSuchLifecycleConfiguration Description: The lifecycle
  2749  //    configuration does not exist. HTTP Status Code: 404 Not Found SOAP Fault
  2750  //    Code Prefix: Client
  2751  //
  2752  // The following actions are related to GetBucketLifecycleConfiguration:
  2753  //
  2754  //    * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html)
  2755  //
  2756  //    * DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html)
  2757  //
  2758  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2759  // with awserr.Error's Code and Message methods to get detailed information about
  2760  // the error.
  2761  //
  2762  // See the AWS API reference guide for AWS S3 Control's
  2763  // API operation GetBucketLifecycleConfiguration for usage and error information.
  2764  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration
  2765  func (c *S3Control) GetBucketLifecycleConfiguration(input *GetBucketLifecycleConfigurationInput) (*GetBucketLifecycleConfigurationOutput, error) {
  2766  	req, out := c.GetBucketLifecycleConfigurationRequest(input)
  2767  	return out, req.Send()
  2768  }
  2769  
  2770  // GetBucketLifecycleConfigurationWithContext is the same as GetBucketLifecycleConfiguration with the addition of
  2771  // the ability to pass a context and additional request options.
  2772  //
  2773  // See GetBucketLifecycleConfiguration for details on how to use this API operation.
  2774  //
  2775  // The context must be non-nil and will be used for request cancellation. If
  2776  // the context is nil a panic will occur. In the future the SDK may create
  2777  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2778  // for more information on using Contexts.
  2779  func (c *S3Control) GetBucketLifecycleConfigurationWithContext(ctx aws.Context, input *GetBucketLifecycleConfigurationInput, opts ...request.Option) (*GetBucketLifecycleConfigurationOutput, error) {
  2780  	req, out := c.GetBucketLifecycleConfigurationRequest(input)
  2781  	req.SetContext(ctx)
  2782  	req.ApplyOptions(opts...)
  2783  	return out, req.Send()
  2784  }
  2785  
  2786  const opGetBucketPolicy = "GetBucketPolicy"
  2787  
  2788  // GetBucketPolicyRequest generates a "aws/request.Request" representing the
  2789  // client's request for the GetBucketPolicy operation. The "output" return
  2790  // value will be populated with the request's response once the request completes
  2791  // successfully.
  2792  //
  2793  // Use "Send" method on the returned Request to send the API call to the service.
  2794  // the "output" return value is not valid until after Send returns without error.
  2795  //
  2796  // See GetBucketPolicy for more information on using the GetBucketPolicy
  2797  // API call, and error handling.
  2798  //
  2799  // This method is useful when you want to inject custom logic or configuration
  2800  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2801  //
  2802  //
  2803  //    // Example sending a request using the GetBucketPolicyRequest method.
  2804  //    req, resp := client.GetBucketPolicyRequest(params)
  2805  //
  2806  //    err := req.Send()
  2807  //    if err == nil { // resp is now filled
  2808  //        fmt.Println(resp)
  2809  //    }
  2810  //
  2811  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy
  2812  func (c *S3Control) GetBucketPolicyRequest(input *GetBucketPolicyInput) (req *request.Request, output *GetBucketPolicyOutput) {
  2813  	op := &request.Operation{
  2814  		Name:       opGetBucketPolicy,
  2815  		HTTPMethod: "GET",
  2816  		HTTPPath:   "/v20180820/bucket/{name}/policy",
  2817  	}
  2818  
  2819  	if input == nil {
  2820  		input = &GetBucketPolicyInput{}
  2821  	}
  2822  
  2823  	output = &GetBucketPolicyOutput{}
  2824  	req = c.newRequest(op, input, output)
  2825  	// update account id or check if provided input for account id member matches
  2826  	// the account id present in ARN
  2827  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  2828  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  2829  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  2830  	return
  2831  }
  2832  
  2833  // GetBucketPolicy API operation for AWS S3 Control.
  2834  //
  2835  //
  2836  // This action gets a bucket policy for an Amazon S3 on Outposts bucket. To
  2837  // get a policy for an S3 bucket, see GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html)
  2838  // in the Amazon S3 API Reference.
  2839  //
  2840  // Returns the policy of a specified Outposts bucket. For more information,
  2841  // see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
  2842  // in the Amazon S3 User Guide.
  2843  //
  2844  // If you are using an identity other than the root user of the Amazon Web Services
  2845  // account that owns the bucket, the calling identity must have the GetBucketPolicy
  2846  // permissions on the specified bucket and belong to the bucket owner's account
  2847  // in order to use this action.
  2848  //
  2849  // Only users from Outposts bucket owner account with the right permissions
  2850  // can perform actions on an Outposts bucket. If you don't have s3-outposts:GetBucketPolicy
  2851  // permissions or you're not using an identity that belongs to the bucket owner's
  2852  // account, Amazon S3 returns a 403 Access Denied error.
  2853  //
  2854  // As a security precaution, the root user of the Amazon Web Services account
  2855  // that owns a bucket can always use this action, even if the policy explicitly
  2856  // denies the root user the ability to perform this action.
  2857  //
  2858  // For more information about bucket policies, see Using Bucket Policies and
  2859  // User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html).
  2860  //
  2861  // All Amazon S3 on Outposts REST API requests for this action require an additional
  2862  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
  2863  // Outposts endpoint hostname prefix instead of s3-control. For an example of
  2864  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
  2865  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
  2866  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html#API_control_GetBucketPolicy_Examples)
  2867  // section.
  2868  //
  2869  // The following actions are related to GetBucketPolicy:
  2870  //
  2871  //    * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
  2872  //
  2873  //    * PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html)
  2874  //
  2875  //    * DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html)
  2876  //
  2877  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2878  // with awserr.Error's Code and Message methods to get detailed information about
  2879  // the error.
  2880  //
  2881  // See the AWS API reference guide for AWS S3 Control's
  2882  // API operation GetBucketPolicy for usage and error information.
  2883  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy
  2884  func (c *S3Control) GetBucketPolicy(input *GetBucketPolicyInput) (*GetBucketPolicyOutput, error) {
  2885  	req, out := c.GetBucketPolicyRequest(input)
  2886  	return out, req.Send()
  2887  }
  2888  
  2889  // GetBucketPolicyWithContext is the same as GetBucketPolicy with the addition of
  2890  // the ability to pass a context and additional request options.
  2891  //
  2892  // See GetBucketPolicy for details on how to use this API operation.
  2893  //
  2894  // The context must be non-nil and will be used for request cancellation. If
  2895  // the context is nil a panic will occur. In the future the SDK may create
  2896  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2897  // for more information on using Contexts.
  2898  func (c *S3Control) GetBucketPolicyWithContext(ctx aws.Context, input *GetBucketPolicyInput, opts ...request.Option) (*GetBucketPolicyOutput, error) {
  2899  	req, out := c.GetBucketPolicyRequest(input)
  2900  	req.SetContext(ctx)
  2901  	req.ApplyOptions(opts...)
  2902  	return out, req.Send()
  2903  }
  2904  
  2905  const opGetBucketTagging = "GetBucketTagging"
  2906  
  2907  // GetBucketTaggingRequest generates a "aws/request.Request" representing the
  2908  // client's request for the GetBucketTagging operation. The "output" return
  2909  // value will be populated with the request's response once the request completes
  2910  // successfully.
  2911  //
  2912  // Use "Send" method on the returned Request to send the API call to the service.
  2913  // the "output" return value is not valid until after Send returns without error.
  2914  //
  2915  // See GetBucketTagging for more information on using the GetBucketTagging
  2916  // API call, and error handling.
  2917  //
  2918  // This method is useful when you want to inject custom logic or configuration
  2919  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2920  //
  2921  //
  2922  //    // Example sending a request using the GetBucketTaggingRequest method.
  2923  //    req, resp := client.GetBucketTaggingRequest(params)
  2924  //
  2925  //    err := req.Send()
  2926  //    if err == nil { // resp is now filled
  2927  //        fmt.Println(resp)
  2928  //    }
  2929  //
  2930  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging
  2931  func (c *S3Control) GetBucketTaggingRequest(input *GetBucketTaggingInput) (req *request.Request, output *GetBucketTaggingOutput) {
  2932  	op := &request.Operation{
  2933  		Name:       opGetBucketTagging,
  2934  		HTTPMethod: "GET",
  2935  		HTTPPath:   "/v20180820/bucket/{name}/tagging",
  2936  	}
  2937  
  2938  	if input == nil {
  2939  		input = &GetBucketTaggingInput{}
  2940  	}
  2941  
  2942  	output = &GetBucketTaggingOutput{}
  2943  	req = c.newRequest(op, input, output)
  2944  	// update account id or check if provided input for account id member matches
  2945  	// the account id present in ARN
  2946  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  2947  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  2948  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  2949  	return
  2950  }
  2951  
  2952  // GetBucketTagging API operation for AWS S3 Control.
  2953  //
  2954  //
  2955  // This action gets an Amazon S3 on Outposts bucket's tags. To get an S3 bucket
  2956  // tags, see GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html)
  2957  // in the Amazon S3 API Reference.
  2958  //
  2959  // Returns the tag set associated with the Outposts bucket. For more information,
  2960  // see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
  2961  // in the Amazon S3 User Guide.
  2962  //
  2963  // To use this action, you must have permission to perform the GetBucketTagging
  2964  // action. By default, the bucket owner has this permission and can grant this
  2965  // permission to others.
  2966  //
  2967  // GetBucketTagging has the following special error:
  2968  //
  2969  //    * Error code: NoSuchTagSetError Description: There is no tag set associated
  2970  //    with the bucket.
  2971  //
  2972  // All Amazon S3 on Outposts REST API requests for this action require an additional
  2973  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
  2974  // Outposts endpoint hostname prefix instead of s3-control. For an example of
  2975  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
  2976  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
  2977  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html#API_control_GetBucketTagging_Examples)
  2978  // section.
  2979  //
  2980  // The following actions are related to GetBucketTagging:
  2981  //
  2982  //    * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html)
  2983  //
  2984  //    * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html)
  2985  //
  2986  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2987  // with awserr.Error's Code and Message methods to get detailed information about
  2988  // the error.
  2989  //
  2990  // See the AWS API reference guide for AWS S3 Control's
  2991  // API operation GetBucketTagging for usage and error information.
  2992  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging
  2993  func (c *S3Control) GetBucketTagging(input *GetBucketTaggingInput) (*GetBucketTaggingOutput, error) {
  2994  	req, out := c.GetBucketTaggingRequest(input)
  2995  	return out, req.Send()
  2996  }
  2997  
  2998  // GetBucketTaggingWithContext is the same as GetBucketTagging with the addition of
  2999  // the ability to pass a context and additional request options.
  3000  //
  3001  // See GetBucketTagging for details on how to use this API operation.
  3002  //
  3003  // The context must be non-nil and will be used for request cancellation. If
  3004  // the context is nil a panic will occur. In the future the SDK may create
  3005  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3006  // for more information on using Contexts.
  3007  func (c *S3Control) GetBucketTaggingWithContext(ctx aws.Context, input *GetBucketTaggingInput, opts ...request.Option) (*GetBucketTaggingOutput, error) {
  3008  	req, out := c.GetBucketTaggingRequest(input)
  3009  	req.SetContext(ctx)
  3010  	req.ApplyOptions(opts...)
  3011  	return out, req.Send()
  3012  }
  3013  
  3014  const opGetJobTagging = "GetJobTagging"
  3015  
  3016  // GetJobTaggingRequest generates a "aws/request.Request" representing the
  3017  // client's request for the GetJobTagging operation. The "output" return
  3018  // value will be populated with the request's response once the request completes
  3019  // successfully.
  3020  //
  3021  // Use "Send" method on the returned Request to send the API call to the service.
  3022  // the "output" return value is not valid until after Send returns without error.
  3023  //
  3024  // See GetJobTagging for more information on using the GetJobTagging
  3025  // API call, and error handling.
  3026  //
  3027  // This method is useful when you want to inject custom logic or configuration
  3028  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3029  //
  3030  //
  3031  //    // Example sending a request using the GetJobTaggingRequest method.
  3032  //    req, resp := client.GetJobTaggingRequest(params)
  3033  //
  3034  //    err := req.Send()
  3035  //    if err == nil { // resp is now filled
  3036  //        fmt.Println(resp)
  3037  //    }
  3038  //
  3039  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging
  3040  func (c *S3Control) GetJobTaggingRequest(input *GetJobTaggingInput) (req *request.Request, output *GetJobTaggingOutput) {
  3041  	op := &request.Operation{
  3042  		Name:       opGetJobTagging,
  3043  		HTTPMethod: "GET",
  3044  		HTTPPath:   "/v20180820/jobs/{id}/tagging",
  3045  	}
  3046  
  3047  	if input == nil {
  3048  		input = &GetJobTaggingInput{}
  3049  	}
  3050  
  3051  	output = &GetJobTaggingOutput{}
  3052  	req = c.newRequest(op, input, output)
  3053  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  3054  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  3055  	return
  3056  }
  3057  
  3058  // GetJobTagging API operation for AWS S3 Control.
  3059  //
  3060  // Returns the tags on an S3 Batch Operations job. To use this operation, you
  3061  // must have permission to perform the s3:GetJobTagging action. For more information,
  3062  // see Controlling access and labeling jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags)
  3063  // in the Amazon S3 User Guide.
  3064  //
  3065  // Related actions include:
  3066  //
  3067  //    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
  3068  //
  3069  //    * PutJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html)
  3070  //
  3071  //    * DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
  3072  //
  3073  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3074  // with awserr.Error's Code and Message methods to get detailed information about
  3075  // the error.
  3076  //
  3077  // See the AWS API reference guide for AWS S3 Control's
  3078  // API operation GetJobTagging for usage and error information.
  3079  //
  3080  // Returned Error Codes:
  3081  //   * ErrCodeInternalServiceException "InternalServiceException"
  3082  //
  3083  //   * ErrCodeTooManyRequestsException "TooManyRequestsException"
  3084  //
  3085  //   * ErrCodeNotFoundException "NotFoundException"
  3086  //
  3087  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging
  3088  func (c *S3Control) GetJobTagging(input *GetJobTaggingInput) (*GetJobTaggingOutput, error) {
  3089  	req, out := c.GetJobTaggingRequest(input)
  3090  	return out, req.Send()
  3091  }
  3092  
  3093  // GetJobTaggingWithContext is the same as GetJobTagging with the addition of
  3094  // the ability to pass a context and additional request options.
  3095  //
  3096  // See GetJobTagging for details on how to use this API operation.
  3097  //
  3098  // The context must be non-nil and will be used for request cancellation. If
  3099  // the context is nil a panic will occur. In the future the SDK may create
  3100  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3101  // for more information on using Contexts.
  3102  func (c *S3Control) GetJobTaggingWithContext(ctx aws.Context, input *GetJobTaggingInput, opts ...request.Option) (*GetJobTaggingOutput, error) {
  3103  	req, out := c.GetJobTaggingRequest(input)
  3104  	req.SetContext(ctx)
  3105  	req.ApplyOptions(opts...)
  3106  	return out, req.Send()
  3107  }
  3108  
  3109  const opGetMultiRegionAccessPoint = "GetMultiRegionAccessPoint"
  3110  
  3111  // GetMultiRegionAccessPointRequest generates a "aws/request.Request" representing the
  3112  // client's request for the GetMultiRegionAccessPoint operation. The "output" return
  3113  // value will be populated with the request's response once the request completes
  3114  // successfully.
  3115  //
  3116  // Use "Send" method on the returned Request to send the API call to the service.
  3117  // the "output" return value is not valid until after Send returns without error.
  3118  //
  3119  // See GetMultiRegionAccessPoint for more information on using the GetMultiRegionAccessPoint
  3120  // API call, and error handling.
  3121  //
  3122  // This method is useful when you want to inject custom logic or configuration
  3123  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3124  //
  3125  //
  3126  //    // Example sending a request using the GetMultiRegionAccessPointRequest method.
  3127  //    req, resp := client.GetMultiRegionAccessPointRequest(params)
  3128  //
  3129  //    err := req.Send()
  3130  //    if err == nil { // resp is now filled
  3131  //        fmt.Println(resp)
  3132  //    }
  3133  //
  3134  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPoint
  3135  func (c *S3Control) GetMultiRegionAccessPointRequest(input *GetMultiRegionAccessPointInput) (req *request.Request, output *GetMultiRegionAccessPointOutput) {
  3136  	op := &request.Operation{
  3137  		Name:       opGetMultiRegionAccessPoint,
  3138  		HTTPMethod: "GET",
  3139  		HTTPPath:   "/v20180820/mrap/instances/{name}",
  3140  	}
  3141  
  3142  	if input == nil {
  3143  		input = &GetMultiRegionAccessPointInput{}
  3144  	}
  3145  
  3146  	output = &GetMultiRegionAccessPointOutput{}
  3147  	req = c.newRequest(op, input, output)
  3148  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  3149  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  3150  	req.Handlers.Build.PushBackNamed(request.NamedHandler{
  3151  		Name: "contentMd5Handler",
  3152  		Fn:   checksum.AddBodyContentMD5Handler,
  3153  	})
  3154  	return
  3155  }
  3156  
  3157  // GetMultiRegionAccessPoint API operation for AWS S3 Control.
  3158  //
  3159  // Returns configuration information about the specified Multi-Region Access
  3160  // Point.
  3161  //
  3162  // This action will always be routed to the US West (Oregon) Region. For more
  3163  // information about the restrictions around managing Multi-Region Access Points,
  3164  // see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
  3165  // in the Amazon S3 User Guide.
  3166  //
  3167  // The following actions are related to GetMultiRegionAccessPoint:
  3168  //
  3169  //    * CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)
  3170  //
  3171  //    * DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)
  3172  //
  3173  //    * DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
  3174  //
  3175  //    * ListMultiRegionAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html)
  3176  //
  3177  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3178  // with awserr.Error's Code and Message methods to get detailed information about
  3179  // the error.
  3180  //
  3181  // See the AWS API reference guide for AWS S3 Control's
  3182  // API operation GetMultiRegionAccessPoint for usage and error information.
  3183  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPoint
  3184  func (c *S3Control) GetMultiRegionAccessPoint(input *GetMultiRegionAccessPointInput) (*GetMultiRegionAccessPointOutput, error) {
  3185  	req, out := c.GetMultiRegionAccessPointRequest(input)
  3186  	return out, req.Send()
  3187  }
  3188  
  3189  // GetMultiRegionAccessPointWithContext is the same as GetMultiRegionAccessPoint with the addition of
  3190  // the ability to pass a context and additional request options.
  3191  //
  3192  // See GetMultiRegionAccessPoint for details on how to use this API operation.
  3193  //
  3194  // The context must be non-nil and will be used for request cancellation. If
  3195  // the context is nil a panic will occur. In the future the SDK may create
  3196  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3197  // for more information on using Contexts.
  3198  func (c *S3Control) GetMultiRegionAccessPointWithContext(ctx aws.Context, input *GetMultiRegionAccessPointInput, opts ...request.Option) (*GetMultiRegionAccessPointOutput, error) {
  3199  	req, out := c.GetMultiRegionAccessPointRequest(input)
  3200  	req.SetContext(ctx)
  3201  	req.ApplyOptions(opts...)
  3202  	return out, req.Send()
  3203  }
  3204  
  3205  const opGetMultiRegionAccessPointPolicy = "GetMultiRegionAccessPointPolicy"
  3206  
  3207  // GetMultiRegionAccessPointPolicyRequest generates a "aws/request.Request" representing the
  3208  // client's request for the GetMultiRegionAccessPointPolicy operation. The "output" return
  3209  // value will be populated with the request's response once the request completes
  3210  // successfully.
  3211  //
  3212  // Use "Send" method on the returned Request to send the API call to the service.
  3213  // the "output" return value is not valid until after Send returns without error.
  3214  //
  3215  // See GetMultiRegionAccessPointPolicy for more information on using the GetMultiRegionAccessPointPolicy
  3216  // API call, and error handling.
  3217  //
  3218  // This method is useful when you want to inject custom logic or configuration
  3219  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3220  //
  3221  //
  3222  //    // Example sending a request using the GetMultiRegionAccessPointPolicyRequest method.
  3223  //    req, resp := client.GetMultiRegionAccessPointPolicyRequest(params)
  3224  //
  3225  //    err := req.Send()
  3226  //    if err == nil { // resp is now filled
  3227  //        fmt.Println(resp)
  3228  //    }
  3229  //
  3230  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicy
  3231  func (c *S3Control) GetMultiRegionAccessPointPolicyRequest(input *GetMultiRegionAccessPointPolicyInput) (req *request.Request, output *GetMultiRegionAccessPointPolicyOutput) {
  3232  	op := &request.Operation{
  3233  		Name:       opGetMultiRegionAccessPointPolicy,
  3234  		HTTPMethod: "GET",
  3235  		HTTPPath:   "/v20180820/mrap/instances/{name}/policy",
  3236  	}
  3237  
  3238  	if input == nil {
  3239  		input = &GetMultiRegionAccessPointPolicyInput{}
  3240  	}
  3241  
  3242  	output = &GetMultiRegionAccessPointPolicyOutput{}
  3243  	req = c.newRequest(op, input, output)
  3244  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  3245  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  3246  	req.Handlers.Build.PushBackNamed(request.NamedHandler{
  3247  		Name: "contentMd5Handler",
  3248  		Fn:   checksum.AddBodyContentMD5Handler,
  3249  	})
  3250  	return
  3251  }
  3252  
  3253  // GetMultiRegionAccessPointPolicy API operation for AWS S3 Control.
  3254  //
  3255  // Returns the access control policy of the specified Multi-Region Access Point.
  3256  //
  3257  // This action will always be routed to the US West (Oregon) Region. For more
  3258  // information about the restrictions around managing Multi-Region Access Points,
  3259  // see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
  3260  // in the Amazon S3 User Guide.
  3261  //
  3262  // The following actions are related to GetMultiRegionAccessPointPolicy:
  3263  //
  3264  //    * GetMultiRegionAccessPointPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html)
  3265  //
  3266  //    * PutMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html)
  3267  //
  3268  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3269  // with awserr.Error's Code and Message methods to get detailed information about
  3270  // the error.
  3271  //
  3272  // See the AWS API reference guide for AWS S3 Control's
  3273  // API operation GetMultiRegionAccessPointPolicy for usage and error information.
  3274  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicy
  3275  func (c *S3Control) GetMultiRegionAccessPointPolicy(input *GetMultiRegionAccessPointPolicyInput) (*GetMultiRegionAccessPointPolicyOutput, error) {
  3276  	req, out := c.GetMultiRegionAccessPointPolicyRequest(input)
  3277  	return out, req.Send()
  3278  }
  3279  
  3280  // GetMultiRegionAccessPointPolicyWithContext is the same as GetMultiRegionAccessPointPolicy with the addition of
  3281  // the ability to pass a context and additional request options.
  3282  //
  3283  // See GetMultiRegionAccessPointPolicy for details on how to use this API operation.
  3284  //
  3285  // The context must be non-nil and will be used for request cancellation. If
  3286  // the context is nil a panic will occur. In the future the SDK may create
  3287  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3288  // for more information on using Contexts.
  3289  func (c *S3Control) GetMultiRegionAccessPointPolicyWithContext(ctx aws.Context, input *GetMultiRegionAccessPointPolicyInput, opts ...request.Option) (*GetMultiRegionAccessPointPolicyOutput, error) {
  3290  	req, out := c.GetMultiRegionAccessPointPolicyRequest(input)
  3291  	req.SetContext(ctx)
  3292  	req.ApplyOptions(opts...)
  3293  	return out, req.Send()
  3294  }
  3295  
  3296  const opGetMultiRegionAccessPointPolicyStatus = "GetMultiRegionAccessPointPolicyStatus"
  3297  
  3298  // GetMultiRegionAccessPointPolicyStatusRequest generates a "aws/request.Request" representing the
  3299  // client's request for the GetMultiRegionAccessPointPolicyStatus operation. The "output" return
  3300  // value will be populated with the request's response once the request completes
  3301  // successfully.
  3302  //
  3303  // Use "Send" method on the returned Request to send the API call to the service.
  3304  // the "output" return value is not valid until after Send returns without error.
  3305  //
  3306  // See GetMultiRegionAccessPointPolicyStatus for more information on using the GetMultiRegionAccessPointPolicyStatus
  3307  // API call, and error handling.
  3308  //
  3309  // This method is useful when you want to inject custom logic or configuration
  3310  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3311  //
  3312  //
  3313  //    // Example sending a request using the GetMultiRegionAccessPointPolicyStatusRequest method.
  3314  //    req, resp := client.GetMultiRegionAccessPointPolicyStatusRequest(params)
  3315  //
  3316  //    err := req.Send()
  3317  //    if err == nil { // resp is now filled
  3318  //        fmt.Println(resp)
  3319  //    }
  3320  //
  3321  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicyStatus
  3322  func (c *S3Control) GetMultiRegionAccessPointPolicyStatusRequest(input *GetMultiRegionAccessPointPolicyStatusInput) (req *request.Request, output *GetMultiRegionAccessPointPolicyStatusOutput) {
  3323  	op := &request.Operation{
  3324  		Name:       opGetMultiRegionAccessPointPolicyStatus,
  3325  		HTTPMethod: "GET",
  3326  		HTTPPath:   "/v20180820/mrap/instances/{name}/policystatus",
  3327  	}
  3328  
  3329  	if input == nil {
  3330  		input = &GetMultiRegionAccessPointPolicyStatusInput{}
  3331  	}
  3332  
  3333  	output = &GetMultiRegionAccessPointPolicyStatusOutput{}
  3334  	req = c.newRequest(op, input, output)
  3335  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  3336  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  3337  	req.Handlers.Build.PushBackNamed(request.NamedHandler{
  3338  		Name: "contentMd5Handler",
  3339  		Fn:   checksum.AddBodyContentMD5Handler,
  3340  	})
  3341  	return
  3342  }
  3343  
  3344  // GetMultiRegionAccessPointPolicyStatus API operation for AWS S3 Control.
  3345  //
  3346  // Indicates whether the specified Multi-Region Access Point has an access control
  3347  // policy that allows public access.
  3348  //
  3349  // This action will always be routed to the US West (Oregon) Region. For more
  3350  // information about the restrictions around managing Multi-Region Access Points,
  3351  // see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
  3352  // in the Amazon S3 User Guide.
  3353  //
  3354  // The following actions are related to GetMultiRegionAccessPointPolicyStatus:
  3355  //
  3356  //    * GetMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html)
  3357  //
  3358  //    * PutMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html)
  3359  //
  3360  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3361  // with awserr.Error's Code and Message methods to get detailed information about
  3362  // the error.
  3363  //
  3364  // See the AWS API reference guide for AWS S3 Control's
  3365  // API operation GetMultiRegionAccessPointPolicyStatus for usage and error information.
  3366  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetMultiRegionAccessPointPolicyStatus
  3367  func (c *S3Control) GetMultiRegionAccessPointPolicyStatus(input *GetMultiRegionAccessPointPolicyStatusInput) (*GetMultiRegionAccessPointPolicyStatusOutput, error) {
  3368  	req, out := c.GetMultiRegionAccessPointPolicyStatusRequest(input)
  3369  	return out, req.Send()
  3370  }
  3371  
  3372  // GetMultiRegionAccessPointPolicyStatusWithContext is the same as GetMultiRegionAccessPointPolicyStatus with the addition of
  3373  // the ability to pass a context and additional request options.
  3374  //
  3375  // See GetMultiRegionAccessPointPolicyStatus for details on how to use this API operation.
  3376  //
  3377  // The context must be non-nil and will be used for request cancellation. If
  3378  // the context is nil a panic will occur. In the future the SDK may create
  3379  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3380  // for more information on using Contexts.
  3381  func (c *S3Control) GetMultiRegionAccessPointPolicyStatusWithContext(ctx aws.Context, input *GetMultiRegionAccessPointPolicyStatusInput, opts ...request.Option) (*GetMultiRegionAccessPointPolicyStatusOutput, error) {
  3382  	req, out := c.GetMultiRegionAccessPointPolicyStatusRequest(input)
  3383  	req.SetContext(ctx)
  3384  	req.ApplyOptions(opts...)
  3385  	return out, req.Send()
  3386  }
  3387  
  3388  const opGetPublicAccessBlock = "GetPublicAccessBlock"
  3389  
  3390  // GetPublicAccessBlockRequest generates a "aws/request.Request" representing the
  3391  // client's request for the GetPublicAccessBlock operation. The "output" return
  3392  // value will be populated with the request's response once the request completes
  3393  // successfully.
  3394  //
  3395  // Use "Send" method on the returned Request to send the API call to the service.
  3396  // the "output" return value is not valid until after Send returns without error.
  3397  //
  3398  // See GetPublicAccessBlock for more information on using the GetPublicAccessBlock
  3399  // API call, and error handling.
  3400  //
  3401  // This method is useful when you want to inject custom logic or configuration
  3402  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3403  //
  3404  //
  3405  //    // Example sending a request using the GetPublicAccessBlockRequest method.
  3406  //    req, resp := client.GetPublicAccessBlockRequest(params)
  3407  //
  3408  //    err := req.Send()
  3409  //    if err == nil { // resp is now filled
  3410  //        fmt.Println(resp)
  3411  //    }
  3412  //
  3413  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock
  3414  func (c *S3Control) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput) (req *request.Request, output *GetPublicAccessBlockOutput) {
  3415  	op := &request.Operation{
  3416  		Name:       opGetPublicAccessBlock,
  3417  		HTTPMethod: "GET",
  3418  		HTTPPath:   "/v20180820/configuration/publicAccessBlock",
  3419  	}
  3420  
  3421  	if input == nil {
  3422  		input = &GetPublicAccessBlockInput{}
  3423  	}
  3424  
  3425  	output = &GetPublicAccessBlockOutput{}
  3426  	req = c.newRequest(op, input, output)
  3427  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  3428  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  3429  	return
  3430  }
  3431  
  3432  // GetPublicAccessBlock API operation for AWS S3 Control.
  3433  //
  3434  // Retrieves the PublicAccessBlock configuration for an Amazon Web Services
  3435  // account. For more information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).
  3436  //
  3437  // Related actions include:
  3438  //
  3439  //    * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html)
  3440  //
  3441  //    * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html)
  3442  //
  3443  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3444  // with awserr.Error's Code and Message methods to get detailed information about
  3445  // the error.
  3446  //
  3447  // See the AWS API reference guide for AWS S3 Control's
  3448  // API operation GetPublicAccessBlock for usage and error information.
  3449  //
  3450  // Returned Error Codes:
  3451  //   * ErrCodeNoSuchPublicAccessBlockConfiguration "NoSuchPublicAccessBlockConfiguration"
  3452  //   Amazon S3 throws this exception if you make a GetPublicAccessBlock request
  3453  //   against an account that doesn't have a PublicAccessBlockConfiguration set.
  3454  //
  3455  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock
  3456  func (c *S3Control) GetPublicAccessBlock(input *GetPublicAccessBlockInput) (*GetPublicAccessBlockOutput, error) {
  3457  	req, out := c.GetPublicAccessBlockRequest(input)
  3458  	return out, req.Send()
  3459  }
  3460  
  3461  // GetPublicAccessBlockWithContext is the same as GetPublicAccessBlock with the addition of
  3462  // the ability to pass a context and additional request options.
  3463  //
  3464  // See GetPublicAccessBlock for details on how to use this API operation.
  3465  //
  3466  // The context must be non-nil and will be used for request cancellation. If
  3467  // the context is nil a panic will occur. In the future the SDK may create
  3468  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3469  // for more information on using Contexts.
  3470  func (c *S3Control) GetPublicAccessBlockWithContext(ctx aws.Context, input *GetPublicAccessBlockInput, opts ...request.Option) (*GetPublicAccessBlockOutput, error) {
  3471  	req, out := c.GetPublicAccessBlockRequest(input)
  3472  	req.SetContext(ctx)
  3473  	req.ApplyOptions(opts...)
  3474  	return out, req.Send()
  3475  }
  3476  
  3477  const opGetStorageLensConfiguration = "GetStorageLensConfiguration"
  3478  
  3479  // GetStorageLensConfigurationRequest generates a "aws/request.Request" representing the
  3480  // client's request for the GetStorageLensConfiguration operation. The "output" return
  3481  // value will be populated with the request's response once the request completes
  3482  // successfully.
  3483  //
  3484  // Use "Send" method on the returned Request to send the API call to the service.
  3485  // the "output" return value is not valid until after Send returns without error.
  3486  //
  3487  // See GetStorageLensConfiguration for more information on using the GetStorageLensConfiguration
  3488  // API call, and error handling.
  3489  //
  3490  // This method is useful when you want to inject custom logic or configuration
  3491  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3492  //
  3493  //
  3494  //    // Example sending a request using the GetStorageLensConfigurationRequest method.
  3495  //    req, resp := client.GetStorageLensConfigurationRequest(params)
  3496  //
  3497  //    err := req.Send()
  3498  //    if err == nil { // resp is now filled
  3499  //        fmt.Println(resp)
  3500  //    }
  3501  //
  3502  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfiguration
  3503  func (c *S3Control) GetStorageLensConfigurationRequest(input *GetStorageLensConfigurationInput) (req *request.Request, output *GetStorageLensConfigurationOutput) {
  3504  	op := &request.Operation{
  3505  		Name:       opGetStorageLensConfiguration,
  3506  		HTTPMethod: "GET",
  3507  		HTTPPath:   "/v20180820/storagelens/{storagelensid}",
  3508  	}
  3509  
  3510  	if input == nil {
  3511  		input = &GetStorageLensConfigurationInput{}
  3512  	}
  3513  
  3514  	output = &GetStorageLensConfigurationOutput{}
  3515  	req = c.newRequest(op, input, output)
  3516  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  3517  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  3518  	return
  3519  }
  3520  
  3521  // GetStorageLensConfiguration API operation for AWS S3 Control.
  3522  //
  3523  // Gets the Amazon S3 Storage Lens configuration. For more information, see
  3524  // Assessing your storage activity and usage with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
  3525  // in the Amazon S3 User Guide.
  3526  //
  3527  // To use this action, you must have permission to perform the s3:GetStorageLensConfiguration
  3528  // action. For more information, see Setting permissions to use Amazon S3 Storage
  3529  // Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
  3530  // in the Amazon S3 User Guide.
  3531  //
  3532  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3533  // with awserr.Error's Code and Message methods to get detailed information about
  3534  // the error.
  3535  //
  3536  // See the AWS API reference guide for AWS S3 Control's
  3537  // API operation GetStorageLensConfiguration for usage and error information.
  3538  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfiguration
  3539  func (c *S3Control) GetStorageLensConfiguration(input *GetStorageLensConfigurationInput) (*GetStorageLensConfigurationOutput, error) {
  3540  	req, out := c.GetStorageLensConfigurationRequest(input)
  3541  	return out, req.Send()
  3542  }
  3543  
  3544  // GetStorageLensConfigurationWithContext is the same as GetStorageLensConfiguration with the addition of
  3545  // the ability to pass a context and additional request options.
  3546  //
  3547  // See GetStorageLensConfiguration for details on how to use this API operation.
  3548  //
  3549  // The context must be non-nil and will be used for request cancellation. If
  3550  // the context is nil a panic will occur. In the future the SDK may create
  3551  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3552  // for more information on using Contexts.
  3553  func (c *S3Control) GetStorageLensConfigurationWithContext(ctx aws.Context, input *GetStorageLensConfigurationInput, opts ...request.Option) (*GetStorageLensConfigurationOutput, error) {
  3554  	req, out := c.GetStorageLensConfigurationRequest(input)
  3555  	req.SetContext(ctx)
  3556  	req.ApplyOptions(opts...)
  3557  	return out, req.Send()
  3558  }
  3559  
  3560  const opGetStorageLensConfigurationTagging = "GetStorageLensConfigurationTagging"
  3561  
  3562  // GetStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the
  3563  // client's request for the GetStorageLensConfigurationTagging operation. The "output" return
  3564  // value will be populated with the request's response once the request completes
  3565  // successfully.
  3566  //
  3567  // Use "Send" method on the returned Request to send the API call to the service.
  3568  // the "output" return value is not valid until after Send returns without error.
  3569  //
  3570  // See GetStorageLensConfigurationTagging for more information on using the GetStorageLensConfigurationTagging
  3571  // API call, and error handling.
  3572  //
  3573  // This method is useful when you want to inject custom logic or configuration
  3574  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3575  //
  3576  //
  3577  //    // Example sending a request using the GetStorageLensConfigurationTaggingRequest method.
  3578  //    req, resp := client.GetStorageLensConfigurationTaggingRequest(params)
  3579  //
  3580  //    err := req.Send()
  3581  //    if err == nil { // resp is now filled
  3582  //        fmt.Println(resp)
  3583  //    }
  3584  //
  3585  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTagging
  3586  func (c *S3Control) GetStorageLensConfigurationTaggingRequest(input *GetStorageLensConfigurationTaggingInput) (req *request.Request, output *GetStorageLensConfigurationTaggingOutput) {
  3587  	op := &request.Operation{
  3588  		Name:       opGetStorageLensConfigurationTagging,
  3589  		HTTPMethod: "GET",
  3590  		HTTPPath:   "/v20180820/storagelens/{storagelensid}/tagging",
  3591  	}
  3592  
  3593  	if input == nil {
  3594  		input = &GetStorageLensConfigurationTaggingInput{}
  3595  	}
  3596  
  3597  	output = &GetStorageLensConfigurationTaggingOutput{}
  3598  	req = c.newRequest(op, input, output)
  3599  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  3600  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  3601  	return
  3602  }
  3603  
  3604  // GetStorageLensConfigurationTagging API operation for AWS S3 Control.
  3605  //
  3606  // Gets the tags of Amazon S3 Storage Lens configuration. For more information
  3607  // about S3 Storage Lens, see Assessing your storage activity and usage with
  3608  // Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
  3609  // in the Amazon S3 User Guide.
  3610  //
  3611  // To use this action, you must have permission to perform the s3:GetStorageLensConfigurationTagging
  3612  // action. For more information, see Setting permissions to use Amazon S3 Storage
  3613  // Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
  3614  // in the Amazon S3 User Guide.
  3615  //
  3616  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3617  // with awserr.Error's Code and Message methods to get detailed information about
  3618  // the error.
  3619  //
  3620  // See the AWS API reference guide for AWS S3 Control's
  3621  // API operation GetStorageLensConfigurationTagging for usage and error information.
  3622  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetStorageLensConfigurationTagging
  3623  func (c *S3Control) GetStorageLensConfigurationTagging(input *GetStorageLensConfigurationTaggingInput) (*GetStorageLensConfigurationTaggingOutput, error) {
  3624  	req, out := c.GetStorageLensConfigurationTaggingRequest(input)
  3625  	return out, req.Send()
  3626  }
  3627  
  3628  // GetStorageLensConfigurationTaggingWithContext is the same as GetStorageLensConfigurationTagging with the addition of
  3629  // the ability to pass a context and additional request options.
  3630  //
  3631  // See GetStorageLensConfigurationTagging for details on how to use this API operation.
  3632  //
  3633  // The context must be non-nil and will be used for request cancellation. If
  3634  // the context is nil a panic will occur. In the future the SDK may create
  3635  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3636  // for more information on using Contexts.
  3637  func (c *S3Control) GetStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *GetStorageLensConfigurationTaggingInput, opts ...request.Option) (*GetStorageLensConfigurationTaggingOutput, error) {
  3638  	req, out := c.GetStorageLensConfigurationTaggingRequest(input)
  3639  	req.SetContext(ctx)
  3640  	req.ApplyOptions(opts...)
  3641  	return out, req.Send()
  3642  }
  3643  
  3644  const opListAccessPoints = "ListAccessPoints"
  3645  
  3646  // ListAccessPointsRequest generates a "aws/request.Request" representing the
  3647  // client's request for the ListAccessPoints operation. The "output" return
  3648  // value will be populated with the request's response once the request completes
  3649  // successfully.
  3650  //
  3651  // Use "Send" method on the returned Request to send the API call to the service.
  3652  // the "output" return value is not valid until after Send returns without error.
  3653  //
  3654  // See ListAccessPoints for more information on using the ListAccessPoints
  3655  // API call, and error handling.
  3656  //
  3657  // This method is useful when you want to inject custom logic or configuration
  3658  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3659  //
  3660  //
  3661  //    // Example sending a request using the ListAccessPointsRequest method.
  3662  //    req, resp := client.ListAccessPointsRequest(params)
  3663  //
  3664  //    err := req.Send()
  3665  //    if err == nil { // resp is now filled
  3666  //        fmt.Println(resp)
  3667  //    }
  3668  //
  3669  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints
  3670  func (c *S3Control) ListAccessPointsRequest(input *ListAccessPointsInput) (req *request.Request, output *ListAccessPointsOutput) {
  3671  	op := &request.Operation{
  3672  		Name:       opListAccessPoints,
  3673  		HTTPMethod: "GET",
  3674  		HTTPPath:   "/v20180820/accesspoint",
  3675  		Paginator: &request.Paginator{
  3676  			InputTokens:     []string{"NextToken"},
  3677  			OutputTokens:    []string{"NextToken"},
  3678  			LimitToken:      "MaxResults",
  3679  			TruncationToken: "",
  3680  		},
  3681  	}
  3682  
  3683  	if input == nil {
  3684  		input = &ListAccessPointsInput{}
  3685  	}
  3686  
  3687  	output = &ListAccessPointsOutput{}
  3688  	req = c.newRequest(op, input, output)
  3689  	// update account id or check if provided input for account id member matches
  3690  	// the account id present in ARN
  3691  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  3692  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  3693  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  3694  	return
  3695  }
  3696  
  3697  // ListAccessPoints API operation for AWS S3 Control.
  3698  //
  3699  // Returns a list of the access points currently associated with the specified
  3700  // bucket. You can retrieve up to 1000 access points per call. If the specified
  3701  // bucket has more than 1,000 access points (or the number specified in maxResults,
  3702  // whichever is less), the response will include a continuation token that you
  3703  // can use to list the additional access points.
  3704  //
  3705  // All Amazon S3 on Outposts REST API requests for this action require an additional
  3706  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
  3707  // Outposts endpoint hostname prefix instead of s3-control. For an example of
  3708  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
  3709  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
  3710  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples)
  3711  // section.
  3712  //
  3713  // The following actions are related to ListAccessPoints:
  3714  //
  3715  //    * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)
  3716  //
  3717  //    * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)
  3718  //
  3719  //    * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)
  3720  //
  3721  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3722  // with awserr.Error's Code and Message methods to get detailed information about
  3723  // the error.
  3724  //
  3725  // See the AWS API reference guide for AWS S3 Control's
  3726  // API operation ListAccessPoints for usage and error information.
  3727  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints
  3728  func (c *S3Control) ListAccessPoints(input *ListAccessPointsInput) (*ListAccessPointsOutput, error) {
  3729  	req, out := c.ListAccessPointsRequest(input)
  3730  	return out, req.Send()
  3731  }
  3732  
  3733  // ListAccessPointsWithContext is the same as ListAccessPoints with the addition of
  3734  // the ability to pass a context and additional request options.
  3735  //
  3736  // See ListAccessPoints for details on how to use this API operation.
  3737  //
  3738  // The context must be non-nil and will be used for request cancellation. If
  3739  // the context is nil a panic will occur. In the future the SDK may create
  3740  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3741  // for more information on using Contexts.
  3742  func (c *S3Control) ListAccessPointsWithContext(ctx aws.Context, input *ListAccessPointsInput, opts ...request.Option) (*ListAccessPointsOutput, error) {
  3743  	req, out := c.ListAccessPointsRequest(input)
  3744  	req.SetContext(ctx)
  3745  	req.ApplyOptions(opts...)
  3746  	return out, req.Send()
  3747  }
  3748  
  3749  // ListAccessPointsPages iterates over the pages of a ListAccessPoints operation,
  3750  // calling the "fn" function with the response data for each page. To stop
  3751  // iterating, return false from the fn function.
  3752  //
  3753  // See ListAccessPoints method for more information on how to use this operation.
  3754  //
  3755  // Note: This operation can generate multiple requests to a service.
  3756  //
  3757  //    // Example iterating over at most 3 pages of a ListAccessPoints operation.
  3758  //    pageNum := 0
  3759  //    err := client.ListAccessPointsPages(params,
  3760  //        func(page *s3control.ListAccessPointsOutput, lastPage bool) bool {
  3761  //            pageNum++
  3762  //            fmt.Println(page)
  3763  //            return pageNum <= 3
  3764  //        })
  3765  //
  3766  func (c *S3Control) ListAccessPointsPages(input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool) error {
  3767  	return c.ListAccessPointsPagesWithContext(aws.BackgroundContext(), input, fn)
  3768  }
  3769  
  3770  // ListAccessPointsPagesWithContext same as ListAccessPointsPages except
  3771  // it takes a Context and allows setting request options on the pages.
  3772  //
  3773  // The context must be non-nil and will be used for request cancellation. If
  3774  // the context is nil a panic will occur. In the future the SDK may create
  3775  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3776  // for more information on using Contexts.
  3777  func (c *S3Control) ListAccessPointsPagesWithContext(ctx aws.Context, input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool, opts ...request.Option) error {
  3778  	p := request.Pagination{
  3779  		NewRequest: func() (*request.Request, error) {
  3780  			var inCpy *ListAccessPointsInput
  3781  			if input != nil {
  3782  				tmp := *input
  3783  				inCpy = &tmp
  3784  			}
  3785  			req, _ := c.ListAccessPointsRequest(inCpy)
  3786  			req.SetContext(ctx)
  3787  			req.ApplyOptions(opts...)
  3788  			return req, nil
  3789  		},
  3790  	}
  3791  
  3792  	for p.Next() {
  3793  		if !fn(p.Page().(*ListAccessPointsOutput), !p.HasNextPage()) {
  3794  			break
  3795  		}
  3796  	}
  3797  
  3798  	return p.Err()
  3799  }
  3800  
  3801  const opListAccessPointsForObjectLambda = "ListAccessPointsForObjectLambda"
  3802  
  3803  // ListAccessPointsForObjectLambdaRequest generates a "aws/request.Request" representing the
  3804  // client's request for the ListAccessPointsForObjectLambda operation. The "output" return
  3805  // value will be populated with the request's response once the request completes
  3806  // successfully.
  3807  //
  3808  // Use "Send" method on the returned Request to send the API call to the service.
  3809  // the "output" return value is not valid until after Send returns without error.
  3810  //
  3811  // See ListAccessPointsForObjectLambda for more information on using the ListAccessPointsForObjectLambda
  3812  // API call, and error handling.
  3813  //
  3814  // This method is useful when you want to inject custom logic or configuration
  3815  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3816  //
  3817  //
  3818  //    // Example sending a request using the ListAccessPointsForObjectLambdaRequest method.
  3819  //    req, resp := client.ListAccessPointsForObjectLambdaRequest(params)
  3820  //
  3821  //    err := req.Send()
  3822  //    if err == nil { // resp is now filled
  3823  //        fmt.Println(resp)
  3824  //    }
  3825  //
  3826  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsForObjectLambda
  3827  func (c *S3Control) ListAccessPointsForObjectLambdaRequest(input *ListAccessPointsForObjectLambdaInput) (req *request.Request, output *ListAccessPointsForObjectLambdaOutput) {
  3828  	op := &request.Operation{
  3829  		Name:       opListAccessPointsForObjectLambda,
  3830  		HTTPMethod: "GET",
  3831  		HTTPPath:   "/v20180820/accesspointforobjectlambda",
  3832  		Paginator: &request.Paginator{
  3833  			InputTokens:     []string{"NextToken"},
  3834  			OutputTokens:    []string{"NextToken"},
  3835  			LimitToken:      "MaxResults",
  3836  			TruncationToken: "",
  3837  		},
  3838  	}
  3839  
  3840  	if input == nil {
  3841  		input = &ListAccessPointsForObjectLambdaInput{}
  3842  	}
  3843  
  3844  	output = &ListAccessPointsForObjectLambdaOutput{}
  3845  	req = c.newRequest(op, input, output)
  3846  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  3847  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  3848  	return
  3849  }
  3850  
  3851  // ListAccessPointsForObjectLambda API operation for AWS S3 Control.
  3852  //
  3853  // Returns a list of the access points associated with the Object Lambda Access
  3854  // Point. You can retrieve up to 1000 access points per call. If there are more
  3855  // than 1,000 access points (or the number specified in maxResults, whichever
  3856  // is less), the response will include a continuation token that you can use
  3857  // to list the additional access points.
  3858  //
  3859  // The following actions are related to ListAccessPointsForObjectLambda:
  3860  //
  3861  //    * CreateAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html)
  3862  //
  3863  //    * DeleteAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html)
  3864  //
  3865  //    * GetAccessPointForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointForObjectLambda.html)
  3866  //
  3867  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3868  // with awserr.Error's Code and Message methods to get detailed information about
  3869  // the error.
  3870  //
  3871  // See the AWS API reference guide for AWS S3 Control's
  3872  // API operation ListAccessPointsForObjectLambda for usage and error information.
  3873  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsForObjectLambda
  3874  func (c *S3Control) ListAccessPointsForObjectLambda(input *ListAccessPointsForObjectLambdaInput) (*ListAccessPointsForObjectLambdaOutput, error) {
  3875  	req, out := c.ListAccessPointsForObjectLambdaRequest(input)
  3876  	return out, req.Send()
  3877  }
  3878  
  3879  // ListAccessPointsForObjectLambdaWithContext is the same as ListAccessPointsForObjectLambda with the addition of
  3880  // the ability to pass a context and additional request options.
  3881  //
  3882  // See ListAccessPointsForObjectLambda for details on how to use this API operation.
  3883  //
  3884  // The context must be non-nil and will be used for request cancellation. If
  3885  // the context is nil a panic will occur. In the future the SDK may create
  3886  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3887  // for more information on using Contexts.
  3888  func (c *S3Control) ListAccessPointsForObjectLambdaWithContext(ctx aws.Context, input *ListAccessPointsForObjectLambdaInput, opts ...request.Option) (*ListAccessPointsForObjectLambdaOutput, error) {
  3889  	req, out := c.ListAccessPointsForObjectLambdaRequest(input)
  3890  	req.SetContext(ctx)
  3891  	req.ApplyOptions(opts...)
  3892  	return out, req.Send()
  3893  }
  3894  
  3895  // ListAccessPointsForObjectLambdaPages iterates over the pages of a ListAccessPointsForObjectLambda operation,
  3896  // calling the "fn" function with the response data for each page. To stop
  3897  // iterating, return false from the fn function.
  3898  //
  3899  // See ListAccessPointsForObjectLambda method for more information on how to use this operation.
  3900  //
  3901  // Note: This operation can generate multiple requests to a service.
  3902  //
  3903  //    // Example iterating over at most 3 pages of a ListAccessPointsForObjectLambda operation.
  3904  //    pageNum := 0
  3905  //    err := client.ListAccessPointsForObjectLambdaPages(params,
  3906  //        func(page *s3control.ListAccessPointsForObjectLambdaOutput, lastPage bool) bool {
  3907  //            pageNum++
  3908  //            fmt.Println(page)
  3909  //            return pageNum <= 3
  3910  //        })
  3911  //
  3912  func (c *S3Control) ListAccessPointsForObjectLambdaPages(input *ListAccessPointsForObjectLambdaInput, fn func(*ListAccessPointsForObjectLambdaOutput, bool) bool) error {
  3913  	return c.ListAccessPointsForObjectLambdaPagesWithContext(aws.BackgroundContext(), input, fn)
  3914  }
  3915  
  3916  // ListAccessPointsForObjectLambdaPagesWithContext same as ListAccessPointsForObjectLambdaPages except
  3917  // it takes a Context and allows setting request options on the pages.
  3918  //
  3919  // The context must be non-nil and will be used for request cancellation. If
  3920  // the context is nil a panic will occur. In the future the SDK may create
  3921  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3922  // for more information on using Contexts.
  3923  func (c *S3Control) ListAccessPointsForObjectLambdaPagesWithContext(ctx aws.Context, input *ListAccessPointsForObjectLambdaInput, fn func(*ListAccessPointsForObjectLambdaOutput, bool) bool, opts ...request.Option) error {
  3924  	p := request.Pagination{
  3925  		NewRequest: func() (*request.Request, error) {
  3926  			var inCpy *ListAccessPointsForObjectLambdaInput
  3927  			if input != nil {
  3928  				tmp := *input
  3929  				inCpy = &tmp
  3930  			}
  3931  			req, _ := c.ListAccessPointsForObjectLambdaRequest(inCpy)
  3932  			req.SetContext(ctx)
  3933  			req.ApplyOptions(opts...)
  3934  			return req, nil
  3935  		},
  3936  	}
  3937  
  3938  	for p.Next() {
  3939  		if !fn(p.Page().(*ListAccessPointsForObjectLambdaOutput), !p.HasNextPage()) {
  3940  			break
  3941  		}
  3942  	}
  3943  
  3944  	return p.Err()
  3945  }
  3946  
  3947  const opListJobs = "ListJobs"
  3948  
  3949  // ListJobsRequest generates a "aws/request.Request" representing the
  3950  // client's request for the ListJobs operation. The "output" return
  3951  // value will be populated with the request's response once the request completes
  3952  // successfully.
  3953  //
  3954  // Use "Send" method on the returned Request to send the API call to the service.
  3955  // the "output" return value is not valid until after Send returns without error.
  3956  //
  3957  // See ListJobs for more information on using the ListJobs
  3958  // API call, and error handling.
  3959  //
  3960  // This method is useful when you want to inject custom logic or configuration
  3961  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3962  //
  3963  //
  3964  //    // Example sending a request using the ListJobsRequest method.
  3965  //    req, resp := client.ListJobsRequest(params)
  3966  //
  3967  //    err := req.Send()
  3968  //    if err == nil { // resp is now filled
  3969  //        fmt.Println(resp)
  3970  //    }
  3971  //
  3972  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs
  3973  func (c *S3Control) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
  3974  	op := &request.Operation{
  3975  		Name:       opListJobs,
  3976  		HTTPMethod: "GET",
  3977  		HTTPPath:   "/v20180820/jobs",
  3978  		Paginator: &request.Paginator{
  3979  			InputTokens:     []string{"NextToken"},
  3980  			OutputTokens:    []string{"NextToken"},
  3981  			LimitToken:      "MaxResults",
  3982  			TruncationToken: "",
  3983  		},
  3984  	}
  3985  
  3986  	if input == nil {
  3987  		input = &ListJobsInput{}
  3988  	}
  3989  
  3990  	output = &ListJobsOutput{}
  3991  	req = c.newRequest(op, input, output)
  3992  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  3993  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  3994  	return
  3995  }
  3996  
  3997  // ListJobs API operation for AWS S3 Control.
  3998  //
  3999  // Lists current S3 Batch Operations jobs and jobs that have ended within the
  4000  // last 30 days for the Amazon Web Services account making the request. For
  4001  // more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
  4002  // in the Amazon S3 User Guide.
  4003  //
  4004  // Related actions include:
  4005  //
  4006  //    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
  4007  //
  4008  //    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
  4009  //
  4010  //    * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html)
  4011  //
  4012  //    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
  4013  //
  4014  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4015  // with awserr.Error's Code and Message methods to get detailed information about
  4016  // the error.
  4017  //
  4018  // See the AWS API reference guide for AWS S3 Control's
  4019  // API operation ListJobs for usage and error information.
  4020  //
  4021  // Returned Error Codes:
  4022  //   * ErrCodeInvalidRequestException "InvalidRequestException"
  4023  //
  4024  //   * ErrCodeInternalServiceException "InternalServiceException"
  4025  //
  4026  //   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
  4027  //
  4028  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs
  4029  func (c *S3Control) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
  4030  	req, out := c.ListJobsRequest(input)
  4031  	return out, req.Send()
  4032  }
  4033  
  4034  // ListJobsWithContext is the same as ListJobs with the addition of
  4035  // the ability to pass a context and additional request options.
  4036  //
  4037  // See ListJobs for details on how to use this API operation.
  4038  //
  4039  // The context must be non-nil and will be used for request cancellation. If
  4040  // the context is nil a panic will occur. In the future the SDK may create
  4041  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4042  // for more information on using Contexts.
  4043  func (c *S3Control) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
  4044  	req, out := c.ListJobsRequest(input)
  4045  	req.SetContext(ctx)
  4046  	req.ApplyOptions(opts...)
  4047  	return out, req.Send()
  4048  }
  4049  
  4050  // ListJobsPages iterates over the pages of a ListJobs operation,
  4051  // calling the "fn" function with the response data for each page. To stop
  4052  // iterating, return false from the fn function.
  4053  //
  4054  // See ListJobs method for more information on how to use this operation.
  4055  //
  4056  // Note: This operation can generate multiple requests to a service.
  4057  //
  4058  //    // Example iterating over at most 3 pages of a ListJobs operation.
  4059  //    pageNum := 0
  4060  //    err := client.ListJobsPages(params,
  4061  //        func(page *s3control.ListJobsOutput, lastPage bool) bool {
  4062  //            pageNum++
  4063  //            fmt.Println(page)
  4064  //            return pageNum <= 3
  4065  //        })
  4066  //
  4067  func (c *S3Control) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
  4068  	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
  4069  }
  4070  
  4071  // ListJobsPagesWithContext same as ListJobsPages except
  4072  // it takes a Context and allows setting request options on the pages.
  4073  //
  4074  // The context must be non-nil and will be used for request cancellation. If
  4075  // the context is nil a panic will occur. In the future the SDK may create
  4076  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4077  // for more information on using Contexts.
  4078  func (c *S3Control) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
  4079  	p := request.Pagination{
  4080  		NewRequest: func() (*request.Request, error) {
  4081  			var inCpy *ListJobsInput
  4082  			if input != nil {
  4083  				tmp := *input
  4084  				inCpy = &tmp
  4085  			}
  4086  			req, _ := c.ListJobsRequest(inCpy)
  4087  			req.SetContext(ctx)
  4088  			req.ApplyOptions(opts...)
  4089  			return req, nil
  4090  		},
  4091  	}
  4092  
  4093  	for p.Next() {
  4094  		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
  4095  			break
  4096  		}
  4097  	}
  4098  
  4099  	return p.Err()
  4100  }
  4101  
  4102  const opListMultiRegionAccessPoints = "ListMultiRegionAccessPoints"
  4103  
  4104  // ListMultiRegionAccessPointsRequest generates a "aws/request.Request" representing the
  4105  // client's request for the ListMultiRegionAccessPoints operation. The "output" return
  4106  // value will be populated with the request's response once the request completes
  4107  // successfully.
  4108  //
  4109  // Use "Send" method on the returned Request to send the API call to the service.
  4110  // the "output" return value is not valid until after Send returns without error.
  4111  //
  4112  // See ListMultiRegionAccessPoints for more information on using the ListMultiRegionAccessPoints
  4113  // API call, and error handling.
  4114  //
  4115  // This method is useful when you want to inject custom logic or configuration
  4116  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4117  //
  4118  //
  4119  //    // Example sending a request using the ListMultiRegionAccessPointsRequest method.
  4120  //    req, resp := client.ListMultiRegionAccessPointsRequest(params)
  4121  //
  4122  //    err := req.Send()
  4123  //    if err == nil { // resp is now filled
  4124  //        fmt.Println(resp)
  4125  //    }
  4126  //
  4127  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListMultiRegionAccessPoints
  4128  func (c *S3Control) ListMultiRegionAccessPointsRequest(input *ListMultiRegionAccessPointsInput) (req *request.Request, output *ListMultiRegionAccessPointsOutput) {
  4129  	op := &request.Operation{
  4130  		Name:       opListMultiRegionAccessPoints,
  4131  		HTTPMethod: "GET",
  4132  		HTTPPath:   "/v20180820/mrap/instances",
  4133  		Paginator: &request.Paginator{
  4134  			InputTokens:     []string{"NextToken"},
  4135  			OutputTokens:    []string{"NextToken"},
  4136  			LimitToken:      "MaxResults",
  4137  			TruncationToken: "",
  4138  		},
  4139  	}
  4140  
  4141  	if input == nil {
  4142  		input = &ListMultiRegionAccessPointsInput{}
  4143  	}
  4144  
  4145  	output = &ListMultiRegionAccessPointsOutput{}
  4146  	req = c.newRequest(op, input, output)
  4147  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  4148  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  4149  	req.Handlers.Build.PushBackNamed(request.NamedHandler{
  4150  		Name: "contentMd5Handler",
  4151  		Fn:   checksum.AddBodyContentMD5Handler,
  4152  	})
  4153  	return
  4154  }
  4155  
  4156  // ListMultiRegionAccessPoints API operation for AWS S3 Control.
  4157  //
  4158  // Returns a list of the Multi-Region Access Points currently associated with
  4159  // the specified Amazon Web Services account. Each call can return up to 100
  4160  // Multi-Region Access Points, the maximum number of Multi-Region Access Points
  4161  // that can be associated with a single account.
  4162  //
  4163  // This action will always be routed to the US West (Oregon) Region. For more
  4164  // information about the restrictions around managing Multi-Region Access Points,
  4165  // see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
  4166  // in the Amazon S3 User Guide.
  4167  //
  4168  // The following actions are related to ListMultiRegionAccessPoint:
  4169  //
  4170  //    * CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)
  4171  //
  4172  //    * DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)
  4173  //
  4174  //    * DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
  4175  //
  4176  //    * GetMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html)
  4177  //
  4178  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4179  // with awserr.Error's Code and Message methods to get detailed information about
  4180  // the error.
  4181  //
  4182  // See the AWS API reference guide for AWS S3 Control's
  4183  // API operation ListMultiRegionAccessPoints for usage and error information.
  4184  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListMultiRegionAccessPoints
  4185  func (c *S3Control) ListMultiRegionAccessPoints(input *ListMultiRegionAccessPointsInput) (*ListMultiRegionAccessPointsOutput, error) {
  4186  	req, out := c.ListMultiRegionAccessPointsRequest(input)
  4187  	return out, req.Send()
  4188  }
  4189  
  4190  // ListMultiRegionAccessPointsWithContext is the same as ListMultiRegionAccessPoints with the addition of
  4191  // the ability to pass a context and additional request options.
  4192  //
  4193  // See ListMultiRegionAccessPoints for details on how to use this API operation.
  4194  //
  4195  // The context must be non-nil and will be used for request cancellation. If
  4196  // the context is nil a panic will occur. In the future the SDK may create
  4197  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4198  // for more information on using Contexts.
  4199  func (c *S3Control) ListMultiRegionAccessPointsWithContext(ctx aws.Context, input *ListMultiRegionAccessPointsInput, opts ...request.Option) (*ListMultiRegionAccessPointsOutput, error) {
  4200  	req, out := c.ListMultiRegionAccessPointsRequest(input)
  4201  	req.SetContext(ctx)
  4202  	req.ApplyOptions(opts...)
  4203  	return out, req.Send()
  4204  }
  4205  
  4206  // ListMultiRegionAccessPointsPages iterates over the pages of a ListMultiRegionAccessPoints operation,
  4207  // calling the "fn" function with the response data for each page. To stop
  4208  // iterating, return false from the fn function.
  4209  //
  4210  // See ListMultiRegionAccessPoints method for more information on how to use this operation.
  4211  //
  4212  // Note: This operation can generate multiple requests to a service.
  4213  //
  4214  //    // Example iterating over at most 3 pages of a ListMultiRegionAccessPoints operation.
  4215  //    pageNum := 0
  4216  //    err := client.ListMultiRegionAccessPointsPages(params,
  4217  //        func(page *s3control.ListMultiRegionAccessPointsOutput, lastPage bool) bool {
  4218  //            pageNum++
  4219  //            fmt.Println(page)
  4220  //            return pageNum <= 3
  4221  //        })
  4222  //
  4223  func (c *S3Control) ListMultiRegionAccessPointsPages(input *ListMultiRegionAccessPointsInput, fn func(*ListMultiRegionAccessPointsOutput, bool) bool) error {
  4224  	return c.ListMultiRegionAccessPointsPagesWithContext(aws.BackgroundContext(), input, fn)
  4225  }
  4226  
  4227  // ListMultiRegionAccessPointsPagesWithContext same as ListMultiRegionAccessPointsPages except
  4228  // it takes a Context and allows setting request options on the pages.
  4229  //
  4230  // The context must be non-nil and will be used for request cancellation. If
  4231  // the context is nil a panic will occur. In the future the SDK may create
  4232  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4233  // for more information on using Contexts.
  4234  func (c *S3Control) ListMultiRegionAccessPointsPagesWithContext(ctx aws.Context, input *ListMultiRegionAccessPointsInput, fn func(*ListMultiRegionAccessPointsOutput, bool) bool, opts ...request.Option) error {
  4235  	p := request.Pagination{
  4236  		NewRequest: func() (*request.Request, error) {
  4237  			var inCpy *ListMultiRegionAccessPointsInput
  4238  			if input != nil {
  4239  				tmp := *input
  4240  				inCpy = &tmp
  4241  			}
  4242  			req, _ := c.ListMultiRegionAccessPointsRequest(inCpy)
  4243  			req.SetContext(ctx)
  4244  			req.ApplyOptions(opts...)
  4245  			return req, nil
  4246  		},
  4247  	}
  4248  
  4249  	for p.Next() {
  4250  		if !fn(p.Page().(*ListMultiRegionAccessPointsOutput), !p.HasNextPage()) {
  4251  			break
  4252  		}
  4253  	}
  4254  
  4255  	return p.Err()
  4256  }
  4257  
  4258  const opListRegionalBuckets = "ListRegionalBuckets"
  4259  
  4260  // ListRegionalBucketsRequest generates a "aws/request.Request" representing the
  4261  // client's request for the ListRegionalBuckets operation. The "output" return
  4262  // value will be populated with the request's response once the request completes
  4263  // successfully.
  4264  //
  4265  // Use "Send" method on the returned Request to send the API call to the service.
  4266  // the "output" return value is not valid until after Send returns without error.
  4267  //
  4268  // See ListRegionalBuckets for more information on using the ListRegionalBuckets
  4269  // API call, and error handling.
  4270  //
  4271  // This method is useful when you want to inject custom logic or configuration
  4272  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4273  //
  4274  //
  4275  //    // Example sending a request using the ListRegionalBucketsRequest method.
  4276  //    req, resp := client.ListRegionalBucketsRequest(params)
  4277  //
  4278  //    err := req.Send()
  4279  //    if err == nil { // resp is now filled
  4280  //        fmt.Println(resp)
  4281  //    }
  4282  //
  4283  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets
  4284  func (c *S3Control) ListRegionalBucketsRequest(input *ListRegionalBucketsInput) (req *request.Request, output *ListRegionalBucketsOutput) {
  4285  	op := &request.Operation{
  4286  		Name:       opListRegionalBuckets,
  4287  		HTTPMethod: "GET",
  4288  		HTTPPath:   "/v20180820/bucket",
  4289  		Paginator: &request.Paginator{
  4290  			InputTokens:     []string{"NextToken"},
  4291  			OutputTokens:    []string{"NextToken"},
  4292  			LimitToken:      "MaxResults",
  4293  			TruncationToken: "",
  4294  		},
  4295  	}
  4296  
  4297  	if input == nil {
  4298  		input = &ListRegionalBucketsInput{}
  4299  	}
  4300  
  4301  	output = &ListRegionalBucketsOutput{}
  4302  	req = c.newRequest(op, input, output)
  4303  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  4304  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  4305  	return
  4306  }
  4307  
  4308  // ListRegionalBuckets API operation for AWS S3 Control.
  4309  //
  4310  // Returns a list of all Outposts buckets in an Outpost that are owned by the
  4311  // authenticated sender of the request. For more information, see Using Amazon
  4312  // S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
  4313  // in the Amazon S3 User Guide.
  4314  //
  4315  // For an example of the request syntax for Amazon S3 on Outposts that uses
  4316  // the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your
  4317  // request, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListRegionalBuckets.html#API_control_ListRegionalBuckets_Examples)
  4318  // section.
  4319  //
  4320  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4321  // with awserr.Error's Code and Message methods to get detailed information about
  4322  // the error.
  4323  //
  4324  // See the AWS API reference guide for AWS S3 Control's
  4325  // API operation ListRegionalBuckets for usage and error information.
  4326  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets
  4327  func (c *S3Control) ListRegionalBuckets(input *ListRegionalBucketsInput) (*ListRegionalBucketsOutput, error) {
  4328  	req, out := c.ListRegionalBucketsRequest(input)
  4329  	return out, req.Send()
  4330  }
  4331  
  4332  // ListRegionalBucketsWithContext is the same as ListRegionalBuckets with the addition of
  4333  // the ability to pass a context and additional request options.
  4334  //
  4335  // See ListRegionalBuckets for details on how to use this API operation.
  4336  //
  4337  // The context must be non-nil and will be used for request cancellation. If
  4338  // the context is nil a panic will occur. In the future the SDK may create
  4339  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4340  // for more information on using Contexts.
  4341  func (c *S3Control) ListRegionalBucketsWithContext(ctx aws.Context, input *ListRegionalBucketsInput, opts ...request.Option) (*ListRegionalBucketsOutput, error) {
  4342  	req, out := c.ListRegionalBucketsRequest(input)
  4343  	req.SetContext(ctx)
  4344  	req.ApplyOptions(opts...)
  4345  	return out, req.Send()
  4346  }
  4347  
  4348  // ListRegionalBucketsPages iterates over the pages of a ListRegionalBuckets operation,
  4349  // calling the "fn" function with the response data for each page. To stop
  4350  // iterating, return false from the fn function.
  4351  //
  4352  // See ListRegionalBuckets method for more information on how to use this operation.
  4353  //
  4354  // Note: This operation can generate multiple requests to a service.
  4355  //
  4356  //    // Example iterating over at most 3 pages of a ListRegionalBuckets operation.
  4357  //    pageNum := 0
  4358  //    err := client.ListRegionalBucketsPages(params,
  4359  //        func(page *s3control.ListRegionalBucketsOutput, lastPage bool) bool {
  4360  //            pageNum++
  4361  //            fmt.Println(page)
  4362  //            return pageNum <= 3
  4363  //        })
  4364  //
  4365  func (c *S3Control) ListRegionalBucketsPages(input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool) error {
  4366  	return c.ListRegionalBucketsPagesWithContext(aws.BackgroundContext(), input, fn)
  4367  }
  4368  
  4369  // ListRegionalBucketsPagesWithContext same as ListRegionalBucketsPages except
  4370  // it takes a Context and allows setting request options on the pages.
  4371  //
  4372  // The context must be non-nil and will be used for request cancellation. If
  4373  // the context is nil a panic will occur. In the future the SDK may create
  4374  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4375  // for more information on using Contexts.
  4376  func (c *S3Control) ListRegionalBucketsPagesWithContext(ctx aws.Context, input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool, opts ...request.Option) error {
  4377  	p := request.Pagination{
  4378  		NewRequest: func() (*request.Request, error) {
  4379  			var inCpy *ListRegionalBucketsInput
  4380  			if input != nil {
  4381  				tmp := *input
  4382  				inCpy = &tmp
  4383  			}
  4384  			req, _ := c.ListRegionalBucketsRequest(inCpy)
  4385  			req.SetContext(ctx)
  4386  			req.ApplyOptions(opts...)
  4387  			return req, nil
  4388  		},
  4389  	}
  4390  
  4391  	for p.Next() {
  4392  		if !fn(p.Page().(*ListRegionalBucketsOutput), !p.HasNextPage()) {
  4393  			break
  4394  		}
  4395  	}
  4396  
  4397  	return p.Err()
  4398  }
  4399  
  4400  const opListStorageLensConfigurations = "ListStorageLensConfigurations"
  4401  
  4402  // ListStorageLensConfigurationsRequest generates a "aws/request.Request" representing the
  4403  // client's request for the ListStorageLensConfigurations operation. The "output" return
  4404  // value will be populated with the request's response once the request completes
  4405  // successfully.
  4406  //
  4407  // Use "Send" method on the returned Request to send the API call to the service.
  4408  // the "output" return value is not valid until after Send returns without error.
  4409  //
  4410  // See ListStorageLensConfigurations for more information on using the ListStorageLensConfigurations
  4411  // API call, and error handling.
  4412  //
  4413  // This method is useful when you want to inject custom logic or configuration
  4414  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4415  //
  4416  //
  4417  //    // Example sending a request using the ListStorageLensConfigurationsRequest method.
  4418  //    req, resp := client.ListStorageLensConfigurationsRequest(params)
  4419  //
  4420  //    err := req.Send()
  4421  //    if err == nil { // resp is now filled
  4422  //        fmt.Println(resp)
  4423  //    }
  4424  //
  4425  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurations
  4426  func (c *S3Control) ListStorageLensConfigurationsRequest(input *ListStorageLensConfigurationsInput) (req *request.Request, output *ListStorageLensConfigurationsOutput) {
  4427  	op := &request.Operation{
  4428  		Name:       opListStorageLensConfigurations,
  4429  		HTTPMethod: "GET",
  4430  		HTTPPath:   "/v20180820/storagelens",
  4431  		Paginator: &request.Paginator{
  4432  			InputTokens:     []string{"NextToken"},
  4433  			OutputTokens:    []string{"NextToken"},
  4434  			LimitToken:      "",
  4435  			TruncationToken: "",
  4436  		},
  4437  	}
  4438  
  4439  	if input == nil {
  4440  		input = &ListStorageLensConfigurationsInput{}
  4441  	}
  4442  
  4443  	output = &ListStorageLensConfigurationsOutput{}
  4444  	req = c.newRequest(op, input, output)
  4445  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  4446  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  4447  	return
  4448  }
  4449  
  4450  // ListStorageLensConfigurations API operation for AWS S3 Control.
  4451  //
  4452  // Gets a list of Amazon S3 Storage Lens configurations. For more information
  4453  // about S3 Storage Lens, see Assessing your storage activity and usage with
  4454  // Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
  4455  // in the Amazon S3 User Guide.
  4456  //
  4457  // To use this action, you must have permission to perform the s3:ListStorageLensConfigurations
  4458  // action. For more information, see Setting permissions to use Amazon S3 Storage
  4459  // Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
  4460  // in the Amazon S3 User Guide.
  4461  //
  4462  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4463  // with awserr.Error's Code and Message methods to get detailed information about
  4464  // the error.
  4465  //
  4466  // See the AWS API reference guide for AWS S3 Control's
  4467  // API operation ListStorageLensConfigurations for usage and error information.
  4468  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListStorageLensConfigurations
  4469  func (c *S3Control) ListStorageLensConfigurations(input *ListStorageLensConfigurationsInput) (*ListStorageLensConfigurationsOutput, error) {
  4470  	req, out := c.ListStorageLensConfigurationsRequest(input)
  4471  	return out, req.Send()
  4472  }
  4473  
  4474  // ListStorageLensConfigurationsWithContext is the same as ListStorageLensConfigurations with the addition of
  4475  // the ability to pass a context and additional request options.
  4476  //
  4477  // See ListStorageLensConfigurations for details on how to use this API operation.
  4478  //
  4479  // The context must be non-nil and will be used for request cancellation. If
  4480  // the context is nil a panic will occur. In the future the SDK may create
  4481  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4482  // for more information on using Contexts.
  4483  func (c *S3Control) ListStorageLensConfigurationsWithContext(ctx aws.Context, input *ListStorageLensConfigurationsInput, opts ...request.Option) (*ListStorageLensConfigurationsOutput, error) {
  4484  	req, out := c.ListStorageLensConfigurationsRequest(input)
  4485  	req.SetContext(ctx)
  4486  	req.ApplyOptions(opts...)
  4487  	return out, req.Send()
  4488  }
  4489  
  4490  // ListStorageLensConfigurationsPages iterates over the pages of a ListStorageLensConfigurations operation,
  4491  // calling the "fn" function with the response data for each page. To stop
  4492  // iterating, return false from the fn function.
  4493  //
  4494  // See ListStorageLensConfigurations method for more information on how to use this operation.
  4495  //
  4496  // Note: This operation can generate multiple requests to a service.
  4497  //
  4498  //    // Example iterating over at most 3 pages of a ListStorageLensConfigurations operation.
  4499  //    pageNum := 0
  4500  //    err := client.ListStorageLensConfigurationsPages(params,
  4501  //        func(page *s3control.ListStorageLensConfigurationsOutput, lastPage bool) bool {
  4502  //            pageNum++
  4503  //            fmt.Println(page)
  4504  //            return pageNum <= 3
  4505  //        })
  4506  //
  4507  func (c *S3Control) ListStorageLensConfigurationsPages(input *ListStorageLensConfigurationsInput, fn func(*ListStorageLensConfigurationsOutput, bool) bool) error {
  4508  	return c.ListStorageLensConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
  4509  }
  4510  
  4511  // ListStorageLensConfigurationsPagesWithContext same as ListStorageLensConfigurationsPages except
  4512  // it takes a Context and allows setting request options on the pages.
  4513  //
  4514  // The context must be non-nil and will be used for request cancellation. If
  4515  // the context is nil a panic will occur. In the future the SDK may create
  4516  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4517  // for more information on using Contexts.
  4518  func (c *S3Control) ListStorageLensConfigurationsPagesWithContext(ctx aws.Context, input *ListStorageLensConfigurationsInput, fn func(*ListStorageLensConfigurationsOutput, bool) bool, opts ...request.Option) error {
  4519  	p := request.Pagination{
  4520  		NewRequest: func() (*request.Request, error) {
  4521  			var inCpy *ListStorageLensConfigurationsInput
  4522  			if input != nil {
  4523  				tmp := *input
  4524  				inCpy = &tmp
  4525  			}
  4526  			req, _ := c.ListStorageLensConfigurationsRequest(inCpy)
  4527  			req.SetContext(ctx)
  4528  			req.ApplyOptions(opts...)
  4529  			return req, nil
  4530  		},
  4531  	}
  4532  
  4533  	for p.Next() {
  4534  		if !fn(p.Page().(*ListStorageLensConfigurationsOutput), !p.HasNextPage()) {
  4535  			break
  4536  		}
  4537  	}
  4538  
  4539  	return p.Err()
  4540  }
  4541  
  4542  const opPutAccessPointConfigurationForObjectLambda = "PutAccessPointConfigurationForObjectLambda"
  4543  
  4544  // PutAccessPointConfigurationForObjectLambdaRequest generates a "aws/request.Request" representing the
  4545  // client's request for the PutAccessPointConfigurationForObjectLambda operation. The "output" return
  4546  // value will be populated with the request's response once the request completes
  4547  // successfully.
  4548  //
  4549  // Use "Send" method on the returned Request to send the API call to the service.
  4550  // the "output" return value is not valid until after Send returns without error.
  4551  //
  4552  // See PutAccessPointConfigurationForObjectLambda for more information on using the PutAccessPointConfigurationForObjectLambda
  4553  // API call, and error handling.
  4554  //
  4555  // This method is useful when you want to inject custom logic or configuration
  4556  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4557  //
  4558  //
  4559  //    // Example sending a request using the PutAccessPointConfigurationForObjectLambdaRequest method.
  4560  //    req, resp := client.PutAccessPointConfigurationForObjectLambdaRequest(params)
  4561  //
  4562  //    err := req.Send()
  4563  //    if err == nil { // resp is now filled
  4564  //        fmt.Println(resp)
  4565  //    }
  4566  //
  4567  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointConfigurationForObjectLambda
  4568  func (c *S3Control) PutAccessPointConfigurationForObjectLambdaRequest(input *PutAccessPointConfigurationForObjectLambdaInput) (req *request.Request, output *PutAccessPointConfigurationForObjectLambdaOutput) {
  4569  	op := &request.Operation{
  4570  		Name:       opPutAccessPointConfigurationForObjectLambda,
  4571  		HTTPMethod: "PUT",
  4572  		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/configuration",
  4573  	}
  4574  
  4575  	if input == nil {
  4576  		input = &PutAccessPointConfigurationForObjectLambdaInput{}
  4577  	}
  4578  
  4579  	output = &PutAccessPointConfigurationForObjectLambdaOutput{}
  4580  	req = c.newRequest(op, input, output)
  4581  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4582  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  4583  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  4584  	return
  4585  }
  4586  
  4587  // PutAccessPointConfigurationForObjectLambda API operation for AWS S3 Control.
  4588  //
  4589  // Replaces configuration for an Object Lambda Access Point.
  4590  //
  4591  // The following actions are related to PutAccessPointConfigurationForObjectLambda:
  4592  //
  4593  //    * GetAccessPointConfigurationForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointConfigurationForObjectLambda.html)
  4594  //
  4595  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4596  // with awserr.Error's Code and Message methods to get detailed information about
  4597  // the error.
  4598  //
  4599  // See the AWS API reference guide for AWS S3 Control's
  4600  // API operation PutAccessPointConfigurationForObjectLambda for usage and error information.
  4601  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointConfigurationForObjectLambda
  4602  func (c *S3Control) PutAccessPointConfigurationForObjectLambda(input *PutAccessPointConfigurationForObjectLambdaInput) (*PutAccessPointConfigurationForObjectLambdaOutput, error) {
  4603  	req, out := c.PutAccessPointConfigurationForObjectLambdaRequest(input)
  4604  	return out, req.Send()
  4605  }
  4606  
  4607  // PutAccessPointConfigurationForObjectLambdaWithContext is the same as PutAccessPointConfigurationForObjectLambda with the addition of
  4608  // the ability to pass a context and additional request options.
  4609  //
  4610  // See PutAccessPointConfigurationForObjectLambda for details on how to use this API operation.
  4611  //
  4612  // The context must be non-nil and will be used for request cancellation. If
  4613  // the context is nil a panic will occur. In the future the SDK may create
  4614  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4615  // for more information on using Contexts.
  4616  func (c *S3Control) PutAccessPointConfigurationForObjectLambdaWithContext(ctx aws.Context, input *PutAccessPointConfigurationForObjectLambdaInput, opts ...request.Option) (*PutAccessPointConfigurationForObjectLambdaOutput, error) {
  4617  	req, out := c.PutAccessPointConfigurationForObjectLambdaRequest(input)
  4618  	req.SetContext(ctx)
  4619  	req.ApplyOptions(opts...)
  4620  	return out, req.Send()
  4621  }
  4622  
  4623  const opPutAccessPointPolicy = "PutAccessPointPolicy"
  4624  
  4625  // PutAccessPointPolicyRequest generates a "aws/request.Request" representing the
  4626  // client's request for the PutAccessPointPolicy operation. The "output" return
  4627  // value will be populated with the request's response once the request completes
  4628  // successfully.
  4629  //
  4630  // Use "Send" method on the returned Request to send the API call to the service.
  4631  // the "output" return value is not valid until after Send returns without error.
  4632  //
  4633  // See PutAccessPointPolicy for more information on using the PutAccessPointPolicy
  4634  // API call, and error handling.
  4635  //
  4636  // This method is useful when you want to inject custom logic or configuration
  4637  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4638  //
  4639  //
  4640  //    // Example sending a request using the PutAccessPointPolicyRequest method.
  4641  //    req, resp := client.PutAccessPointPolicyRequest(params)
  4642  //
  4643  //    err := req.Send()
  4644  //    if err == nil { // resp is now filled
  4645  //        fmt.Println(resp)
  4646  //    }
  4647  //
  4648  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy
  4649  func (c *S3Control) PutAccessPointPolicyRequest(input *PutAccessPointPolicyInput) (req *request.Request, output *PutAccessPointPolicyOutput) {
  4650  	op := &request.Operation{
  4651  		Name:       opPutAccessPointPolicy,
  4652  		HTTPMethod: "PUT",
  4653  		HTTPPath:   "/v20180820/accesspoint/{name}/policy",
  4654  	}
  4655  
  4656  	if input == nil {
  4657  		input = &PutAccessPointPolicyInput{}
  4658  	}
  4659  
  4660  	output = &PutAccessPointPolicyOutput{}
  4661  	req = c.newRequest(op, input, output)
  4662  	// update account id or check if provided input for account id member matches
  4663  	// the account id present in ARN
  4664  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  4665  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4666  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  4667  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  4668  	return
  4669  }
  4670  
  4671  // PutAccessPointPolicy API operation for AWS S3 Control.
  4672  //
  4673  // Associates an access policy with the specified access point. Each access
  4674  // point can have only one policy, so a request made to this API replaces any
  4675  // existing policy associated with the specified access point.
  4676  //
  4677  // All Amazon S3 on Outposts REST API requests for this action require an additional
  4678  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
  4679  // Outposts endpoint hostname prefix instead of s3-control. For an example of
  4680  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
  4681  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
  4682  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html#API_control_PutAccessPointPolicy_Examples)
  4683  // section.
  4684  //
  4685  // The following actions are related to PutAccessPointPolicy:
  4686  //
  4687  //    * GetAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html)
  4688  //
  4689  //    * DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html)
  4690  //
  4691  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4692  // with awserr.Error's Code and Message methods to get detailed information about
  4693  // the error.
  4694  //
  4695  // See the AWS API reference guide for AWS S3 Control's
  4696  // API operation PutAccessPointPolicy for usage and error information.
  4697  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy
  4698  func (c *S3Control) PutAccessPointPolicy(input *PutAccessPointPolicyInput) (*PutAccessPointPolicyOutput, error) {
  4699  	req, out := c.PutAccessPointPolicyRequest(input)
  4700  	return out, req.Send()
  4701  }
  4702  
  4703  // PutAccessPointPolicyWithContext is the same as PutAccessPointPolicy with the addition of
  4704  // the ability to pass a context and additional request options.
  4705  //
  4706  // See PutAccessPointPolicy for details on how to use this API operation.
  4707  //
  4708  // The context must be non-nil and will be used for request cancellation. If
  4709  // the context is nil a panic will occur. In the future the SDK may create
  4710  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4711  // for more information on using Contexts.
  4712  func (c *S3Control) PutAccessPointPolicyWithContext(ctx aws.Context, input *PutAccessPointPolicyInput, opts ...request.Option) (*PutAccessPointPolicyOutput, error) {
  4713  	req, out := c.PutAccessPointPolicyRequest(input)
  4714  	req.SetContext(ctx)
  4715  	req.ApplyOptions(opts...)
  4716  	return out, req.Send()
  4717  }
  4718  
  4719  const opPutAccessPointPolicyForObjectLambda = "PutAccessPointPolicyForObjectLambda"
  4720  
  4721  // PutAccessPointPolicyForObjectLambdaRequest generates a "aws/request.Request" representing the
  4722  // client's request for the PutAccessPointPolicyForObjectLambda operation. The "output" return
  4723  // value will be populated with the request's response once the request completes
  4724  // successfully.
  4725  //
  4726  // Use "Send" method on the returned Request to send the API call to the service.
  4727  // the "output" return value is not valid until after Send returns without error.
  4728  //
  4729  // See PutAccessPointPolicyForObjectLambda for more information on using the PutAccessPointPolicyForObjectLambda
  4730  // API call, and error handling.
  4731  //
  4732  // This method is useful when you want to inject custom logic or configuration
  4733  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4734  //
  4735  //
  4736  //    // Example sending a request using the PutAccessPointPolicyForObjectLambdaRequest method.
  4737  //    req, resp := client.PutAccessPointPolicyForObjectLambdaRequest(params)
  4738  //
  4739  //    err := req.Send()
  4740  //    if err == nil { // resp is now filled
  4741  //        fmt.Println(resp)
  4742  //    }
  4743  //
  4744  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicyForObjectLambda
  4745  func (c *S3Control) PutAccessPointPolicyForObjectLambdaRequest(input *PutAccessPointPolicyForObjectLambdaInput) (req *request.Request, output *PutAccessPointPolicyForObjectLambdaOutput) {
  4746  	op := &request.Operation{
  4747  		Name:       opPutAccessPointPolicyForObjectLambda,
  4748  		HTTPMethod: "PUT",
  4749  		HTTPPath:   "/v20180820/accesspointforobjectlambda/{name}/policy",
  4750  	}
  4751  
  4752  	if input == nil {
  4753  		input = &PutAccessPointPolicyForObjectLambdaInput{}
  4754  	}
  4755  
  4756  	output = &PutAccessPointPolicyForObjectLambdaOutput{}
  4757  	req = c.newRequest(op, input, output)
  4758  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4759  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  4760  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  4761  	return
  4762  }
  4763  
  4764  // PutAccessPointPolicyForObjectLambda API operation for AWS S3 Control.
  4765  //
  4766  // Creates or replaces resource policy for an Object Lambda Access Point. For
  4767  // an example policy, see Creating Object Lambda Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-create.html#olap-create-cli)
  4768  // in the Amazon S3 User Guide.
  4769  //
  4770  // The following actions are related to PutAccessPointPolicyForObjectLambda:
  4771  //
  4772  //    * DeleteAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html)
  4773  //
  4774  //    * GetAccessPointPolicyForObjectLambda (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyForObjectLambda.html)
  4775  //
  4776  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4777  // with awserr.Error's Code and Message methods to get detailed information about
  4778  // the error.
  4779  //
  4780  // See the AWS API reference guide for AWS S3 Control's
  4781  // API operation PutAccessPointPolicyForObjectLambda for usage and error information.
  4782  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicyForObjectLambda
  4783  func (c *S3Control) PutAccessPointPolicyForObjectLambda(input *PutAccessPointPolicyForObjectLambdaInput) (*PutAccessPointPolicyForObjectLambdaOutput, error) {
  4784  	req, out := c.PutAccessPointPolicyForObjectLambdaRequest(input)
  4785  	return out, req.Send()
  4786  }
  4787  
  4788  // PutAccessPointPolicyForObjectLambdaWithContext is the same as PutAccessPointPolicyForObjectLambda with the addition of
  4789  // the ability to pass a context and additional request options.
  4790  //
  4791  // See PutAccessPointPolicyForObjectLambda for details on how to use this API operation.
  4792  //
  4793  // The context must be non-nil and will be used for request cancellation. If
  4794  // the context is nil a panic will occur. In the future the SDK may create
  4795  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4796  // for more information on using Contexts.
  4797  func (c *S3Control) PutAccessPointPolicyForObjectLambdaWithContext(ctx aws.Context, input *PutAccessPointPolicyForObjectLambdaInput, opts ...request.Option) (*PutAccessPointPolicyForObjectLambdaOutput, error) {
  4798  	req, out := c.PutAccessPointPolicyForObjectLambdaRequest(input)
  4799  	req.SetContext(ctx)
  4800  	req.ApplyOptions(opts...)
  4801  	return out, req.Send()
  4802  }
  4803  
  4804  const opPutBucketLifecycleConfiguration = "PutBucketLifecycleConfiguration"
  4805  
  4806  // PutBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
  4807  // client's request for the PutBucketLifecycleConfiguration operation. The "output" return
  4808  // value will be populated with the request's response once the request completes
  4809  // successfully.
  4810  //
  4811  // Use "Send" method on the returned Request to send the API call to the service.
  4812  // the "output" return value is not valid until after Send returns without error.
  4813  //
  4814  // See PutBucketLifecycleConfiguration for more information on using the PutBucketLifecycleConfiguration
  4815  // API call, and error handling.
  4816  //
  4817  // This method is useful when you want to inject custom logic or configuration
  4818  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4819  //
  4820  //
  4821  //    // Example sending a request using the PutBucketLifecycleConfigurationRequest method.
  4822  //    req, resp := client.PutBucketLifecycleConfigurationRequest(params)
  4823  //
  4824  //    err := req.Send()
  4825  //    if err == nil { // resp is now filled
  4826  //        fmt.Println(resp)
  4827  //    }
  4828  //
  4829  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration
  4830  func (c *S3Control) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleConfigurationInput) (req *request.Request, output *PutBucketLifecycleConfigurationOutput) {
  4831  	op := &request.Operation{
  4832  		Name:       opPutBucketLifecycleConfiguration,
  4833  		HTTPMethod: "PUT",
  4834  		HTTPPath:   "/v20180820/bucket/{name}/lifecycleconfiguration",
  4835  	}
  4836  
  4837  	if input == nil {
  4838  		input = &PutBucketLifecycleConfigurationInput{}
  4839  	}
  4840  
  4841  	output = &PutBucketLifecycleConfigurationOutput{}
  4842  	req = c.newRequest(op, input, output)
  4843  	// update account id or check if provided input for account id member matches
  4844  	// the account id present in ARN
  4845  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  4846  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4847  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  4848  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  4849  	req.Handlers.Build.PushBackNamed(request.NamedHandler{
  4850  		Name: "contentMd5Handler",
  4851  		Fn:   checksum.AddBodyContentMD5Handler,
  4852  	})
  4853  	return
  4854  }
  4855  
  4856  // PutBucketLifecycleConfiguration API operation for AWS S3 Control.
  4857  //
  4858  //
  4859  // This action puts a lifecycle configuration to an Amazon S3 on Outposts bucket.
  4860  // To put a lifecycle configuration to an S3 bucket, see PutBucketLifecycleConfiguration
  4861  // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)
  4862  // in the Amazon S3 API Reference.
  4863  //
  4864  // Creates a new lifecycle configuration for the S3 on Outposts bucket or replaces
  4865  // an existing lifecycle configuration. Outposts buckets only support lifecycle
  4866  // configurations that delete/expire objects after a certain period of time
  4867  // and abort incomplete multipart uploads.
  4868  //
  4869  // All Amazon S3 on Outposts REST API requests for this action require an additional
  4870  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
  4871  // Outposts endpoint hostname prefix instead of s3-control. For an example of
  4872  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
  4873  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
  4874  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html#API_control_PutBucketLifecycleConfiguration_Examples)
  4875  // section.
  4876  //
  4877  // The following actions are related to PutBucketLifecycleConfiguration:
  4878  //
  4879  //    * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html)
  4880  //
  4881  //    * DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html)
  4882  //
  4883  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4884  // with awserr.Error's Code and Message methods to get detailed information about
  4885  // the error.
  4886  //
  4887  // See the AWS API reference guide for AWS S3 Control's
  4888  // API operation PutBucketLifecycleConfiguration for usage and error information.
  4889  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration
  4890  func (c *S3Control) PutBucketLifecycleConfiguration(input *PutBucketLifecycleConfigurationInput) (*PutBucketLifecycleConfigurationOutput, error) {
  4891  	req, out := c.PutBucketLifecycleConfigurationRequest(input)
  4892  	return out, req.Send()
  4893  }
  4894  
  4895  // PutBucketLifecycleConfigurationWithContext is the same as PutBucketLifecycleConfiguration with the addition of
  4896  // the ability to pass a context and additional request options.
  4897  //
  4898  // See PutBucketLifecycleConfiguration for details on how to use this API operation.
  4899  //
  4900  // The context must be non-nil and will be used for request cancellation. If
  4901  // the context is nil a panic will occur. In the future the SDK may create
  4902  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4903  // for more information on using Contexts.
  4904  func (c *S3Control) PutBucketLifecycleConfigurationWithContext(ctx aws.Context, input *PutBucketLifecycleConfigurationInput, opts ...request.Option) (*PutBucketLifecycleConfigurationOutput, error) {
  4905  	req, out := c.PutBucketLifecycleConfigurationRequest(input)
  4906  	req.SetContext(ctx)
  4907  	req.ApplyOptions(opts...)
  4908  	return out, req.Send()
  4909  }
  4910  
  4911  const opPutBucketPolicy = "PutBucketPolicy"
  4912  
  4913  // PutBucketPolicyRequest generates a "aws/request.Request" representing the
  4914  // client's request for the PutBucketPolicy operation. The "output" return
  4915  // value will be populated with the request's response once the request completes
  4916  // successfully.
  4917  //
  4918  // Use "Send" method on the returned Request to send the API call to the service.
  4919  // the "output" return value is not valid until after Send returns without error.
  4920  //
  4921  // See PutBucketPolicy for more information on using the PutBucketPolicy
  4922  // API call, and error handling.
  4923  //
  4924  // This method is useful when you want to inject custom logic or configuration
  4925  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4926  //
  4927  //
  4928  //    // Example sending a request using the PutBucketPolicyRequest method.
  4929  //    req, resp := client.PutBucketPolicyRequest(params)
  4930  //
  4931  //    err := req.Send()
  4932  //    if err == nil { // resp is now filled
  4933  //        fmt.Println(resp)
  4934  //    }
  4935  //
  4936  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy
  4937  func (c *S3Control) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.Request, output *PutBucketPolicyOutput) {
  4938  	op := &request.Operation{
  4939  		Name:       opPutBucketPolicy,
  4940  		HTTPMethod: "PUT",
  4941  		HTTPPath:   "/v20180820/bucket/{name}/policy",
  4942  	}
  4943  
  4944  	if input == nil {
  4945  		input = &PutBucketPolicyInput{}
  4946  	}
  4947  
  4948  	output = &PutBucketPolicyOutput{}
  4949  	req = c.newRequest(op, input, output)
  4950  	// update account id or check if provided input for account id member matches
  4951  	// the account id present in ARN
  4952  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  4953  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4954  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  4955  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  4956  	req.Handlers.Build.PushBackNamed(request.NamedHandler{
  4957  		Name: "contentMd5Handler",
  4958  		Fn:   checksum.AddBodyContentMD5Handler,
  4959  	})
  4960  	return
  4961  }
  4962  
  4963  // PutBucketPolicy API operation for AWS S3 Control.
  4964  //
  4965  //
  4966  // This action puts a bucket policy to an Amazon S3 on Outposts bucket. To put
  4967  // a policy on an S3 bucket, see PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html)
  4968  // in the Amazon S3 API Reference.
  4969  //
  4970  // Applies an Amazon S3 bucket policy to an Outposts bucket. For more information,
  4971  // see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
  4972  // in the Amazon S3 User Guide.
  4973  //
  4974  // If you are using an identity other than the root user of the Amazon Web Services
  4975  // account that owns the Outposts bucket, the calling identity must have the
  4976  // PutBucketPolicy permissions on the specified Outposts bucket and belong to
  4977  // the bucket owner's account in order to use this action.
  4978  //
  4979  // If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access
  4980  // Denied error. If you have the correct permissions, but you're not using an
  4981  // identity that belongs to the bucket owner's account, Amazon S3 returns a
  4982  // 405 Method Not Allowed error.
  4983  //
  4984  // As a security precaution, the root user of the Amazon Web Services account
  4985  // that owns a bucket can always use this action, even if the policy explicitly
  4986  // denies the root user the ability to perform this action.
  4987  //
  4988  // For more information about bucket policies, see Using Bucket Policies and
  4989  // User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html).
  4990  //
  4991  // All Amazon S3 on Outposts REST API requests for this action require an additional
  4992  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
  4993  // Outposts endpoint hostname prefix instead of s3-control. For an example of
  4994  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
  4995  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
  4996  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html#API_control_PutBucketPolicy_Examples)
  4997  // section.
  4998  //
  4999  // The following actions are related to PutBucketPolicy:
  5000  //
  5001  //    * GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html)
  5002  //
  5003  //    * DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html)
  5004  //
  5005  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5006  // with awserr.Error's Code and Message methods to get detailed information about
  5007  // the error.
  5008  //
  5009  // See the AWS API reference guide for AWS S3 Control's
  5010  // API operation PutBucketPolicy for usage and error information.
  5011  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy
  5012  func (c *S3Control) PutBucketPolicy(input *PutBucketPolicyInput) (*PutBucketPolicyOutput, error) {
  5013  	req, out := c.PutBucketPolicyRequest(input)
  5014  	return out, req.Send()
  5015  }
  5016  
  5017  // PutBucketPolicyWithContext is the same as PutBucketPolicy with the addition of
  5018  // the ability to pass a context and additional request options.
  5019  //
  5020  // See PutBucketPolicy for details on how to use this API operation.
  5021  //
  5022  // The context must be non-nil and will be used for request cancellation. If
  5023  // the context is nil a panic will occur. In the future the SDK may create
  5024  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5025  // for more information on using Contexts.
  5026  func (c *S3Control) PutBucketPolicyWithContext(ctx aws.Context, input *PutBucketPolicyInput, opts ...request.Option) (*PutBucketPolicyOutput, error) {
  5027  	req, out := c.PutBucketPolicyRequest(input)
  5028  	req.SetContext(ctx)
  5029  	req.ApplyOptions(opts...)
  5030  	return out, req.Send()
  5031  }
  5032  
  5033  const opPutBucketTagging = "PutBucketTagging"
  5034  
  5035  // PutBucketTaggingRequest generates a "aws/request.Request" representing the
  5036  // client's request for the PutBucketTagging operation. The "output" return
  5037  // value will be populated with the request's response once the request completes
  5038  // successfully.
  5039  //
  5040  // Use "Send" method on the returned Request to send the API call to the service.
  5041  // the "output" return value is not valid until after Send returns without error.
  5042  //
  5043  // See PutBucketTagging for more information on using the PutBucketTagging
  5044  // API call, and error handling.
  5045  //
  5046  // This method is useful when you want to inject custom logic or configuration
  5047  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5048  //
  5049  //
  5050  //    // Example sending a request using the PutBucketTaggingRequest method.
  5051  //    req, resp := client.PutBucketTaggingRequest(params)
  5052  //
  5053  //    err := req.Send()
  5054  //    if err == nil { // resp is now filled
  5055  //        fmt.Println(resp)
  5056  //    }
  5057  //
  5058  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging
  5059  func (c *S3Control) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request.Request, output *PutBucketTaggingOutput) {
  5060  	op := &request.Operation{
  5061  		Name:       opPutBucketTagging,
  5062  		HTTPMethod: "PUT",
  5063  		HTTPPath:   "/v20180820/bucket/{name}/tagging",
  5064  	}
  5065  
  5066  	if input == nil {
  5067  		input = &PutBucketTaggingInput{}
  5068  	}
  5069  
  5070  	output = &PutBucketTaggingOutput{}
  5071  	req = c.newRequest(op, input, output)
  5072  	// update account id or check if provided input for account id member matches
  5073  	// the account id present in ARN
  5074  	req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler)
  5075  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5076  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  5077  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  5078  	req.Handlers.Build.PushBackNamed(request.NamedHandler{
  5079  		Name: "contentMd5Handler",
  5080  		Fn:   checksum.AddBodyContentMD5Handler,
  5081  	})
  5082  	return
  5083  }
  5084  
  5085  // PutBucketTagging API operation for AWS S3 Control.
  5086  //
  5087  //
  5088  // This action puts tags on an Amazon S3 on Outposts bucket. To put tags on
  5089  // an S3 bucket, see PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html)
  5090  // in the Amazon S3 API Reference.
  5091  //
  5092  // Sets the tags for an S3 on Outposts bucket. For more information, see Using
  5093  // Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)
  5094  // in the Amazon S3 User Guide.
  5095  //
  5096  // Use tags to organize your Amazon Web Services bill to reflect your own cost
  5097  // structure. To do this, sign up to get your Amazon Web Services account bill
  5098  // with tag key values included. Then, to see the cost of combined resources,
  5099  // organize your billing information according to resources with the same tag
  5100  // key values. For example, you can tag several resources with a specific application
  5101  // name, and then organize your billing information to see the total cost of
  5102  // that application across several services. For more information, see Cost
  5103  // allocation and tagging (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html).
  5104  //
  5105  // Within a bucket, if you add a tag that has the same key as an existing tag,
  5106  // the new value overwrites the old value. For more information, see Using cost
  5107  // allocation in Amazon S3 bucket tags (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html).
  5108  //
  5109  // To use this action, you must have permissions to perform the s3-outposts:PutBucketTagging
  5110  // action. The Outposts bucket owner has this permission by default and can
  5111  // grant this permission to others. For more information about permissions,
  5112  // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources)
  5113  // and Managing access permissions to your Amazon S3 resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html).
  5114  //
  5115  // PutBucketTagging has the following special errors:
  5116  //
  5117  //    * Error code: InvalidTagError Description: The tag provided was not a
  5118  //    valid tag. This error can occur if the tag did not pass input validation.
  5119  //    For information about tag restrictions, see User-Defined Tag Restrictions
  5120  //    (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html)
  5121  //    and Amazon Web Services-Generated Cost Allocation Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html).
  5122  //
  5123  //    * Error code: MalformedXMLError Description: The XML provided does not
  5124  //    match the schema.
  5125  //
  5126  //    * Error code: OperationAbortedError Description: A conflicting conditional
  5127  //    action is currently in progress against this resource. Try again.
  5128  //
  5129  //    * Error code: InternalError Description: The service was unable to apply
  5130  //    the provided tag to the bucket.
  5131  //
  5132  // All Amazon S3 on Outposts REST API requests for this action require an additional
  5133  // parameter of x-amz-outpost-id to be passed with the request and an S3 on
  5134  // Outposts endpoint hostname prefix instead of s3-control. For an example of
  5135  // the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts
  5136  // endpoint hostname prefix and the x-amz-outpost-id derived using the access
  5137  // point ARN, see the Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html#API_control_PutBucketTagging_Examples)
  5138  // section.
  5139  //
  5140  // The following actions are related to PutBucketTagging:
  5141  //
  5142  //    * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html)
  5143  //
  5144  //    * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html)
  5145  //
  5146  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5147  // with awserr.Error's Code and Message methods to get detailed information about
  5148  // the error.
  5149  //
  5150  // See the AWS API reference guide for AWS S3 Control's
  5151  // API operation PutBucketTagging for usage and error information.
  5152  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging
  5153  func (c *S3Control) PutBucketTagging(input *PutBucketTaggingInput) (*PutBucketTaggingOutput, error) {
  5154  	req, out := c.PutBucketTaggingRequest(input)
  5155  	return out, req.Send()
  5156  }
  5157  
  5158  // PutBucketTaggingWithContext is the same as PutBucketTagging with the addition of
  5159  // the ability to pass a context and additional request options.
  5160  //
  5161  // See PutBucketTagging for details on how to use this API operation.
  5162  //
  5163  // The context must be non-nil and will be used for request cancellation. If
  5164  // the context is nil a panic will occur. In the future the SDK may create
  5165  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5166  // for more information on using Contexts.
  5167  func (c *S3Control) PutBucketTaggingWithContext(ctx aws.Context, input *PutBucketTaggingInput, opts ...request.Option) (*PutBucketTaggingOutput, error) {
  5168  	req, out := c.PutBucketTaggingRequest(input)
  5169  	req.SetContext(ctx)
  5170  	req.ApplyOptions(opts...)
  5171  	return out, req.Send()
  5172  }
  5173  
  5174  const opPutJobTagging = "PutJobTagging"
  5175  
  5176  // PutJobTaggingRequest generates a "aws/request.Request" representing the
  5177  // client's request for the PutJobTagging operation. The "output" return
  5178  // value will be populated with the request's response once the request completes
  5179  // successfully.
  5180  //
  5181  // Use "Send" method on the returned Request to send the API call to the service.
  5182  // the "output" return value is not valid until after Send returns without error.
  5183  //
  5184  // See PutJobTagging for more information on using the PutJobTagging
  5185  // API call, and error handling.
  5186  //
  5187  // This method is useful when you want to inject custom logic or configuration
  5188  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5189  //
  5190  //
  5191  //    // Example sending a request using the PutJobTaggingRequest method.
  5192  //    req, resp := client.PutJobTaggingRequest(params)
  5193  //
  5194  //    err := req.Send()
  5195  //    if err == nil { // resp is now filled
  5196  //        fmt.Println(resp)
  5197  //    }
  5198  //
  5199  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging
  5200  func (c *S3Control) PutJobTaggingRequest(input *PutJobTaggingInput) (req *request.Request, output *PutJobTaggingOutput) {
  5201  	op := &request.Operation{
  5202  		Name:       opPutJobTagging,
  5203  		HTTPMethod: "PUT",
  5204  		HTTPPath:   "/v20180820/jobs/{id}/tagging",
  5205  	}
  5206  
  5207  	if input == nil {
  5208  		input = &PutJobTaggingInput{}
  5209  	}
  5210  
  5211  	output = &PutJobTaggingOutput{}
  5212  	req = c.newRequest(op, input, output)
  5213  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5214  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  5215  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  5216  	return
  5217  }
  5218  
  5219  // PutJobTagging API operation for AWS S3 Control.
  5220  //
  5221  // Sets the supplied tag-set on an S3 Batch Operations job.
  5222  //
  5223  // A tag is a key-value pair. You can associate S3 Batch Operations tags with
  5224  // any job by sending a PUT request against the tagging subresource that is
  5225  // associated with the job. To modify the existing tag set, you can either replace
  5226  // the existing tag set entirely, or make changes within the existing tag set
  5227  // by retrieving the existing tag set using GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html),
  5228  // modify that tag set, and use this action to replace the tag set with the
  5229  // one you modified. For more information, see Controlling access and labeling
  5230  // jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags)
  5231  // in the Amazon S3 User Guide.
  5232  //
  5233  //    * If you send this request with an empty tag set, Amazon S3 deletes the
  5234  //    existing tag set on the Batch Operations job. If you use this method,
  5235  //    you are charged for a Tier 1 Request (PUT). For more information, see
  5236  //    Amazon S3 pricing (http://aws.amazon.com/s3/pricing/).
  5237  //
  5238  //    * For deleting existing tags for your Batch Operations job, a DeleteJobTagging
  5239  //    (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
  5240  //    request is preferred because it achieves the same result without incurring
  5241  //    charges.
  5242  //
  5243  //    * A few things to consider about using tags: Amazon S3 limits the maximum
  5244  //    number of tags to 50 tags per job. You can associate up to 50 tags with
  5245  //    a job as long as they have unique tag keys. A tag key can be up to 128
  5246  //    Unicode characters in length, and tag values can be up to 256 Unicode
  5247  //    characters in length. The key and values are case sensitive. For tagging-related
  5248  //    restrictions related to characters and encodings, see User-Defined Tag
  5249  //    Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html)
  5250  //    in the Billing and Cost Management User Guide.
  5251  //
  5252  // To use this action, you must have permission to perform the s3:PutJobTagging
  5253  // action.
  5254  //
  5255  // Related actions include:
  5256  //
  5257  //    * CreatJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
  5258  //
  5259  //    * GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html)
  5260  //
  5261  //    * DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)
  5262  //
  5263  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5264  // with awserr.Error's Code and Message methods to get detailed information about
  5265  // the error.
  5266  //
  5267  // See the AWS API reference guide for AWS S3 Control's
  5268  // API operation PutJobTagging for usage and error information.
  5269  //
  5270  // Returned Error Codes:
  5271  //   * ErrCodeInternalServiceException "InternalServiceException"
  5272  //
  5273  //   * ErrCodeTooManyRequestsException "TooManyRequestsException"
  5274  //
  5275  //   * ErrCodeNotFoundException "NotFoundException"
  5276  //
  5277  //   * ErrCodeTooManyTagsException "TooManyTagsException"
  5278  //   Amazon S3 throws this exception if you have too many tags in your tag set.
  5279  //
  5280  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging
  5281  func (c *S3Control) PutJobTagging(input *PutJobTaggingInput) (*PutJobTaggingOutput, error) {
  5282  	req, out := c.PutJobTaggingRequest(input)
  5283  	return out, req.Send()
  5284  }
  5285  
  5286  // PutJobTaggingWithContext is the same as PutJobTagging with the addition of
  5287  // the ability to pass a context and additional request options.
  5288  //
  5289  // See PutJobTagging for details on how to use this API operation.
  5290  //
  5291  // The context must be non-nil and will be used for request cancellation. If
  5292  // the context is nil a panic will occur. In the future the SDK may create
  5293  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5294  // for more information on using Contexts.
  5295  func (c *S3Control) PutJobTaggingWithContext(ctx aws.Context, input *PutJobTaggingInput, opts ...request.Option) (*PutJobTaggingOutput, error) {
  5296  	req, out := c.PutJobTaggingRequest(input)
  5297  	req.SetContext(ctx)
  5298  	req.ApplyOptions(opts...)
  5299  	return out, req.Send()
  5300  }
  5301  
  5302  const opPutMultiRegionAccessPointPolicy = "PutMultiRegionAccessPointPolicy"
  5303  
  5304  // PutMultiRegionAccessPointPolicyRequest generates a "aws/request.Request" representing the
  5305  // client's request for the PutMultiRegionAccessPointPolicy operation. The "output" return
  5306  // value will be populated with the request's response once the request completes
  5307  // successfully.
  5308  //
  5309  // Use "Send" method on the returned Request to send the API call to the service.
  5310  // the "output" return value is not valid until after Send returns without error.
  5311  //
  5312  // See PutMultiRegionAccessPointPolicy for more information on using the PutMultiRegionAccessPointPolicy
  5313  // API call, and error handling.
  5314  //
  5315  // This method is useful when you want to inject custom logic or configuration
  5316  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5317  //
  5318  //
  5319  //    // Example sending a request using the PutMultiRegionAccessPointPolicyRequest method.
  5320  //    req, resp := client.PutMultiRegionAccessPointPolicyRequest(params)
  5321  //
  5322  //    err := req.Send()
  5323  //    if err == nil { // resp is now filled
  5324  //        fmt.Println(resp)
  5325  //    }
  5326  //
  5327  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutMultiRegionAccessPointPolicy
  5328  func (c *S3Control) PutMultiRegionAccessPointPolicyRequest(input *PutMultiRegionAccessPointPolicyInput) (req *request.Request, output *PutMultiRegionAccessPointPolicyOutput) {
  5329  	op := &request.Operation{
  5330  		Name:       opPutMultiRegionAccessPointPolicy,
  5331  		HTTPMethod: "POST",
  5332  		HTTPPath:   "/v20180820/async-requests/mrap/put-policy",
  5333  	}
  5334  
  5335  	if input == nil {
  5336  		input = &PutMultiRegionAccessPointPolicyInput{}
  5337  	}
  5338  
  5339  	output = &PutMultiRegionAccessPointPolicyOutput{}
  5340  	req = c.newRequest(op, input, output)
  5341  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  5342  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  5343  	req.Handlers.Build.PushBackNamed(request.NamedHandler{
  5344  		Name: "contentMd5Handler",
  5345  		Fn:   checksum.AddBodyContentMD5Handler,
  5346  	})
  5347  	return
  5348  }
  5349  
  5350  // PutMultiRegionAccessPointPolicy API operation for AWS S3 Control.
  5351  //
  5352  // Associates an access control policy with the specified Multi-Region Access
  5353  // Point. Each Multi-Region Access Point can have only one policy, so a request
  5354  // made to this action replaces any existing policy that is associated with
  5355  // the specified Multi-Region Access Point.
  5356  //
  5357  // This action will always be routed to the US West (Oregon) Region. For more
  5358  // information about the restrictions around managing Multi-Region Access Points,
  5359  // see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManagingMultiRegionAccessPoints.html)
  5360  // in the Amazon S3 User Guide.
  5361  //
  5362  // The following actions are related to PutMultiRegionAccessPointPolicy:
  5363  //
  5364  //    * GetMultiRegionAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html)
  5365  //
  5366  //    * GetMultiRegionAccessPointPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html)
  5367  //
  5368  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5369  // with awserr.Error's Code and Message methods to get detailed information about
  5370  // the error.
  5371  //
  5372  // See the AWS API reference guide for AWS S3 Control's
  5373  // API operation PutMultiRegionAccessPointPolicy for usage and error information.
  5374  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutMultiRegionAccessPointPolicy
  5375  func (c *S3Control) PutMultiRegionAccessPointPolicy(input *PutMultiRegionAccessPointPolicyInput) (*PutMultiRegionAccessPointPolicyOutput, error) {
  5376  	req, out := c.PutMultiRegionAccessPointPolicyRequest(input)
  5377  	return out, req.Send()
  5378  }
  5379  
  5380  // PutMultiRegionAccessPointPolicyWithContext is the same as PutMultiRegionAccessPointPolicy with the addition of
  5381  // the ability to pass a context and additional request options.
  5382  //
  5383  // See PutMultiRegionAccessPointPolicy for details on how to use this API operation.
  5384  //
  5385  // The context must be non-nil and will be used for request cancellation. If
  5386  // the context is nil a panic will occur. In the future the SDK may create
  5387  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5388  // for more information on using Contexts.
  5389  func (c *S3Control) PutMultiRegionAccessPointPolicyWithContext(ctx aws.Context, input *PutMultiRegionAccessPointPolicyInput, opts ...request.Option) (*PutMultiRegionAccessPointPolicyOutput, error) {
  5390  	req, out := c.PutMultiRegionAccessPointPolicyRequest(input)
  5391  	req.SetContext(ctx)
  5392  	req.ApplyOptions(opts...)
  5393  	return out, req.Send()
  5394  }
  5395  
  5396  const opPutPublicAccessBlock = "PutPublicAccessBlock"
  5397  
  5398  // PutPublicAccessBlockRequest generates a "aws/request.Request" representing the
  5399  // client's request for the PutPublicAccessBlock operation. The "output" return
  5400  // value will be populated with the request's response once the request completes
  5401  // successfully.
  5402  //
  5403  // Use "Send" method on the returned Request to send the API call to the service.
  5404  // the "output" return value is not valid until after Send returns without error.
  5405  //
  5406  // See PutPublicAccessBlock for more information on using the PutPublicAccessBlock
  5407  // API call, and error handling.
  5408  //
  5409  // This method is useful when you want to inject custom logic or configuration
  5410  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5411  //
  5412  //
  5413  //    // Example sending a request using the PutPublicAccessBlockRequest method.
  5414  //    req, resp := client.PutPublicAccessBlockRequest(params)
  5415  //
  5416  //    err := req.Send()
  5417  //    if err == nil { // resp is now filled
  5418  //        fmt.Println(resp)
  5419  //    }
  5420  //
  5421  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock
  5422  func (c *S3Control) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req *request.Request, output *PutPublicAccessBlockOutput) {
  5423  	op := &request.Operation{
  5424  		Name:       opPutPublicAccessBlock,
  5425  		HTTPMethod: "PUT",
  5426  		HTTPPath:   "/v20180820/configuration/publicAccessBlock",
  5427  	}
  5428  
  5429  	if input == nil {
  5430  		input = &PutPublicAccessBlockInput{}
  5431  	}
  5432  
  5433  	output = &PutPublicAccessBlockOutput{}
  5434  	req = c.newRequest(op, input, output)
  5435  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5436  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  5437  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  5438  	return
  5439  }
  5440  
  5441  // PutPublicAccessBlock API operation for AWS S3 Control.
  5442  //
  5443  // Creates or modifies the PublicAccessBlock configuration for an Amazon Web
  5444  // Services account. For more information, see Using Amazon S3 block public
  5445  // access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).
  5446  //
  5447  // Related actions include:
  5448  //
  5449  //    * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html)
  5450  //
  5451  //    * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html)
  5452  //
  5453  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5454  // with awserr.Error's Code and Message methods to get detailed information about
  5455  // the error.
  5456  //
  5457  // See the AWS API reference guide for AWS S3 Control's
  5458  // API operation PutPublicAccessBlock for usage and error information.
  5459  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock
  5460  func (c *S3Control) PutPublicAccessBlock(input *PutPublicAccessBlockInput) (*PutPublicAccessBlockOutput, error) {
  5461  	req, out := c.PutPublicAccessBlockRequest(input)
  5462  	return out, req.Send()
  5463  }
  5464  
  5465  // PutPublicAccessBlockWithContext is the same as PutPublicAccessBlock with the addition of
  5466  // the ability to pass a context and additional request options.
  5467  //
  5468  // See PutPublicAccessBlock for details on how to use this API operation.
  5469  //
  5470  // The context must be non-nil and will be used for request cancellation. If
  5471  // the context is nil a panic will occur. In the future the SDK may create
  5472  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5473  // for more information on using Contexts.
  5474  func (c *S3Control) PutPublicAccessBlockWithContext(ctx aws.Context, input *PutPublicAccessBlockInput, opts ...request.Option) (*PutPublicAccessBlockOutput, error) {
  5475  	req, out := c.PutPublicAccessBlockRequest(input)
  5476  	req.SetContext(ctx)
  5477  	req.ApplyOptions(opts...)
  5478  	return out, req.Send()
  5479  }
  5480  
  5481  const opPutStorageLensConfiguration = "PutStorageLensConfiguration"
  5482  
  5483  // PutStorageLensConfigurationRequest generates a "aws/request.Request" representing the
  5484  // client's request for the PutStorageLensConfiguration operation. The "output" return
  5485  // value will be populated with the request's response once the request completes
  5486  // successfully.
  5487  //
  5488  // Use "Send" method on the returned Request to send the API call to the service.
  5489  // the "output" return value is not valid until after Send returns without error.
  5490  //
  5491  // See PutStorageLensConfiguration for more information on using the PutStorageLensConfiguration
  5492  // API call, and error handling.
  5493  //
  5494  // This method is useful when you want to inject custom logic or configuration
  5495  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5496  //
  5497  //
  5498  //    // Example sending a request using the PutStorageLensConfigurationRequest method.
  5499  //    req, resp := client.PutStorageLensConfigurationRequest(params)
  5500  //
  5501  //    err := req.Send()
  5502  //    if err == nil { // resp is now filled
  5503  //        fmt.Println(resp)
  5504  //    }
  5505  //
  5506  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration
  5507  func (c *S3Control) PutStorageLensConfigurationRequest(input *PutStorageLensConfigurationInput) (req *request.Request, output *PutStorageLensConfigurationOutput) {
  5508  	op := &request.Operation{
  5509  		Name:       opPutStorageLensConfiguration,
  5510  		HTTPMethod: "PUT",
  5511  		HTTPPath:   "/v20180820/storagelens/{storagelensid}",
  5512  	}
  5513  
  5514  	if input == nil {
  5515  		input = &PutStorageLensConfigurationInput{}
  5516  	}
  5517  
  5518  	output = &PutStorageLensConfigurationOutput{}
  5519  	req = c.newRequest(op, input, output)
  5520  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5521  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  5522  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  5523  	return
  5524  }
  5525  
  5526  // PutStorageLensConfiguration API operation for AWS S3 Control.
  5527  //
  5528  // Puts an Amazon S3 Storage Lens configuration. For more information about
  5529  // S3 Storage Lens, see Working with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
  5530  // in the Amazon S3 User Guide.
  5531  //
  5532  // To use this action, you must have permission to perform the s3:PutStorageLensConfiguration
  5533  // action. For more information, see Setting permissions to use Amazon S3 Storage
  5534  // Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
  5535  // in the Amazon S3 User Guide.
  5536  //
  5537  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5538  // with awserr.Error's Code and Message methods to get detailed information about
  5539  // the error.
  5540  //
  5541  // See the AWS API reference guide for AWS S3 Control's
  5542  // API operation PutStorageLensConfiguration for usage and error information.
  5543  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfiguration
  5544  func (c *S3Control) PutStorageLensConfiguration(input *PutStorageLensConfigurationInput) (*PutStorageLensConfigurationOutput, error) {
  5545  	req, out := c.PutStorageLensConfigurationRequest(input)
  5546  	return out, req.Send()
  5547  }
  5548  
  5549  // PutStorageLensConfigurationWithContext is the same as PutStorageLensConfiguration with the addition of
  5550  // the ability to pass a context and additional request options.
  5551  //
  5552  // See PutStorageLensConfiguration for details on how to use this API operation.
  5553  //
  5554  // The context must be non-nil and will be used for request cancellation. If
  5555  // the context is nil a panic will occur. In the future the SDK may create
  5556  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5557  // for more information on using Contexts.
  5558  func (c *S3Control) PutStorageLensConfigurationWithContext(ctx aws.Context, input *PutStorageLensConfigurationInput, opts ...request.Option) (*PutStorageLensConfigurationOutput, error) {
  5559  	req, out := c.PutStorageLensConfigurationRequest(input)
  5560  	req.SetContext(ctx)
  5561  	req.ApplyOptions(opts...)
  5562  	return out, req.Send()
  5563  }
  5564  
  5565  const opPutStorageLensConfigurationTagging = "PutStorageLensConfigurationTagging"
  5566  
  5567  // PutStorageLensConfigurationTaggingRequest generates a "aws/request.Request" representing the
  5568  // client's request for the PutStorageLensConfigurationTagging operation. The "output" return
  5569  // value will be populated with the request's response once the request completes
  5570  // successfully.
  5571  //
  5572  // Use "Send" method on the returned Request to send the API call to the service.
  5573  // the "output" return value is not valid until after Send returns without error.
  5574  //
  5575  // See PutStorageLensConfigurationTagging for more information on using the PutStorageLensConfigurationTagging
  5576  // API call, and error handling.
  5577  //
  5578  // This method is useful when you want to inject custom logic or configuration
  5579  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5580  //
  5581  //
  5582  //    // Example sending a request using the PutStorageLensConfigurationTaggingRequest method.
  5583  //    req, resp := client.PutStorageLensConfigurationTaggingRequest(params)
  5584  //
  5585  //    err := req.Send()
  5586  //    if err == nil { // resp is now filled
  5587  //        fmt.Println(resp)
  5588  //    }
  5589  //
  5590  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging
  5591  func (c *S3Control) PutStorageLensConfigurationTaggingRequest(input *PutStorageLensConfigurationTaggingInput) (req *request.Request, output *PutStorageLensConfigurationTaggingOutput) {
  5592  	op := &request.Operation{
  5593  		Name:       opPutStorageLensConfigurationTagging,
  5594  		HTTPMethod: "PUT",
  5595  		HTTPPath:   "/v20180820/storagelens/{storagelensid}/tagging",
  5596  	}
  5597  
  5598  	if input == nil {
  5599  		input = &PutStorageLensConfigurationTaggingInput{}
  5600  	}
  5601  
  5602  	output = &PutStorageLensConfigurationTaggingOutput{}
  5603  	req = c.newRequest(op, input, output)
  5604  	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5605  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  5606  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  5607  	return
  5608  }
  5609  
  5610  // PutStorageLensConfigurationTagging API operation for AWS S3 Control.
  5611  //
  5612  // Put or replace tags on an existing Amazon S3 Storage Lens configuration.
  5613  // For more information about S3 Storage Lens, see Assessing your storage activity
  5614  // and usage with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html)
  5615  // in the Amazon S3 User Guide.
  5616  //
  5617  // To use this action, you must have permission to perform the s3:PutStorageLensConfigurationTagging
  5618  // action. For more information, see Setting permissions to use Amazon S3 Storage
  5619  // Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens_iam_permissions.html)
  5620  // in the Amazon S3 User Guide.
  5621  //
  5622  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5623  // with awserr.Error's Code and Message methods to get detailed information about
  5624  // the error.
  5625  //
  5626  // See the AWS API reference guide for AWS S3 Control's
  5627  // API operation PutStorageLensConfigurationTagging for usage and error information.
  5628  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutStorageLensConfigurationTagging
  5629  func (c *S3Control) PutStorageLensConfigurationTagging(input *PutStorageLensConfigurationTaggingInput) (*PutStorageLensConfigurationTaggingOutput, error) {
  5630  	req, out := c.PutStorageLensConfigurationTaggingRequest(input)
  5631  	return out, req.Send()
  5632  }
  5633  
  5634  // PutStorageLensConfigurationTaggingWithContext is the same as PutStorageLensConfigurationTagging with the addition of
  5635  // the ability to pass a context and additional request options.
  5636  //
  5637  // See PutStorageLensConfigurationTagging for details on how to use this API operation.
  5638  //
  5639  // The context must be non-nil and will be used for request cancellation. If
  5640  // the context is nil a panic will occur. In the future the SDK may create
  5641  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5642  // for more information on using Contexts.
  5643  func (c *S3Control) PutStorageLensConfigurationTaggingWithContext(ctx aws.Context, input *PutStorageLensConfigurationTaggingInput, opts ...request.Option) (*PutStorageLensConfigurationTaggingOutput, error) {
  5644  	req, out := c.PutStorageLensConfigurationTaggingRequest(input)
  5645  	req.SetContext(ctx)
  5646  	req.ApplyOptions(opts...)
  5647  	return out, req.Send()
  5648  }
  5649  
  5650  const opUpdateJobPriority = "UpdateJobPriority"
  5651  
  5652  // UpdateJobPriorityRequest generates a "aws/request.Request" representing the
  5653  // client's request for the UpdateJobPriority operation. The "output" return
  5654  // value will be populated with the request's response once the request completes
  5655  // successfully.
  5656  //
  5657  // Use "Send" method on the returned Request to send the API call to the service.
  5658  // the "output" return value is not valid until after Send returns without error.
  5659  //
  5660  // See UpdateJobPriority for more information on using the UpdateJobPriority
  5661  // API call, and error handling.
  5662  //
  5663  // This method is useful when you want to inject custom logic or configuration
  5664  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5665  //
  5666  //
  5667  //    // Example sending a request using the UpdateJobPriorityRequest method.
  5668  //    req, resp := client.UpdateJobPriorityRequest(params)
  5669  //
  5670  //    err := req.Send()
  5671  //    if err == nil { // resp is now filled
  5672  //        fmt.Println(resp)
  5673  //    }
  5674  //
  5675  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority
  5676  func (c *S3Control) UpdateJobPriorityRequest(input *UpdateJobPriorityInput) (req *request.Request, output *UpdateJobPriorityOutput) {
  5677  	op := &request.Operation{
  5678  		Name:       opUpdateJobPriority,
  5679  		HTTPMethod: "POST",
  5680  		HTTPPath:   "/v20180820/jobs/{id}/priority",
  5681  	}
  5682  
  5683  	if input == nil {
  5684  		input = &UpdateJobPriorityInput{}
  5685  	}
  5686  
  5687  	output = &UpdateJobPriorityOutput{}
  5688  	req = c.newRequest(op, input, output)
  5689  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  5690  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  5691  	return
  5692  }
  5693  
  5694  // UpdateJobPriority API operation for AWS S3 Control.
  5695  //
  5696  // Updates an existing S3 Batch Operations job's priority. For more information,
  5697  // see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
  5698  // in the Amazon S3 User Guide.
  5699  //
  5700  // Related actions include:
  5701  //
  5702  //    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
  5703  //
  5704  //    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
  5705  //
  5706  //    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
  5707  //
  5708  //    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
  5709  //
  5710  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5711  // with awserr.Error's Code and Message methods to get detailed information about
  5712  // the error.
  5713  //
  5714  // See the AWS API reference guide for AWS S3 Control's
  5715  // API operation UpdateJobPriority for usage and error information.
  5716  //
  5717  // Returned Error Codes:
  5718  //   * ErrCodeBadRequestException "BadRequestException"
  5719  //
  5720  //   * ErrCodeTooManyRequestsException "TooManyRequestsException"
  5721  //
  5722  //   * ErrCodeNotFoundException "NotFoundException"
  5723  //
  5724  //   * ErrCodeInternalServiceException "InternalServiceException"
  5725  //
  5726  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority
  5727  func (c *S3Control) UpdateJobPriority(input *UpdateJobPriorityInput) (*UpdateJobPriorityOutput, error) {
  5728  	req, out := c.UpdateJobPriorityRequest(input)
  5729  	return out, req.Send()
  5730  }
  5731  
  5732  // UpdateJobPriorityWithContext is the same as UpdateJobPriority with the addition of
  5733  // the ability to pass a context and additional request options.
  5734  //
  5735  // See UpdateJobPriority for details on how to use this API operation.
  5736  //
  5737  // The context must be non-nil and will be used for request cancellation. If
  5738  // the context is nil a panic will occur. In the future the SDK may create
  5739  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5740  // for more information on using Contexts.
  5741  func (c *S3Control) UpdateJobPriorityWithContext(ctx aws.Context, input *UpdateJobPriorityInput, opts ...request.Option) (*UpdateJobPriorityOutput, error) {
  5742  	req, out := c.UpdateJobPriorityRequest(input)
  5743  	req.SetContext(ctx)
  5744  	req.ApplyOptions(opts...)
  5745  	return out, req.Send()
  5746  }
  5747  
  5748  const opUpdateJobStatus = "UpdateJobStatus"
  5749  
  5750  // UpdateJobStatusRequest generates a "aws/request.Request" representing the
  5751  // client's request for the UpdateJobStatus operation. The "output" return
  5752  // value will be populated with the request's response once the request completes
  5753  // successfully.
  5754  //
  5755  // Use "Send" method on the returned Request to send the API call to the service.
  5756  // the "output" return value is not valid until after Send returns without error.
  5757  //
  5758  // See UpdateJobStatus for more information on using the UpdateJobStatus
  5759  // API call, and error handling.
  5760  //
  5761  // This method is useful when you want to inject custom logic or configuration
  5762  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5763  //
  5764  //
  5765  //    // Example sending a request using the UpdateJobStatusRequest method.
  5766  //    req, resp := client.UpdateJobStatusRequest(params)
  5767  //
  5768  //    err := req.Send()
  5769  //    if err == nil { // resp is now filled
  5770  //        fmt.Println(resp)
  5771  //    }
  5772  //
  5773  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus
  5774  func (c *S3Control) UpdateJobStatusRequest(input *UpdateJobStatusInput) (req *request.Request, output *UpdateJobStatusOutput) {
  5775  	op := &request.Operation{
  5776  		Name:       opUpdateJobStatus,
  5777  		HTTPMethod: "POST",
  5778  		HTTPPath:   "/v20180820/jobs/{id}/status",
  5779  	}
  5780  
  5781  	if input == nil {
  5782  		input = &UpdateJobStatusInput{}
  5783  	}
  5784  
  5785  	output = &UpdateJobStatusOutput{}
  5786  	req = c.newRequest(op, input, output)
  5787  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels))
  5788  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  5789  	return
  5790  }
  5791  
  5792  // UpdateJobStatus API operation for AWS S3 Control.
  5793  //
  5794  // Updates the status for the specified job. Use this action to confirm that
  5795  // you want to run a job or to cancel an existing job. For more information,
  5796  // see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html)
  5797  // in the Amazon S3 User Guide.
  5798  //
  5799  // Related actions include:
  5800  //
  5801  //    * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)
  5802  //
  5803  //    * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)
  5804  //
  5805  //    * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)
  5806  //
  5807  //    * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)
  5808  //
  5809  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5810  // with awserr.Error's Code and Message methods to get detailed information about
  5811  // the error.
  5812  //
  5813  // See the AWS API reference guide for AWS S3 Control's
  5814  // API operation UpdateJobStatus for usage and error information.
  5815  //
  5816  // Returned Error Codes:
  5817  //   * ErrCodeBadRequestException "BadRequestException"
  5818  //
  5819  //   * ErrCodeTooManyRequestsException "TooManyRequestsException"
  5820  //
  5821  //   * ErrCodeNotFoundException "NotFoundException"
  5822  //
  5823  //   * ErrCodeJobStatusException "JobStatusException"
  5824  //
  5825  //   * ErrCodeInternalServiceException "InternalServiceException"
  5826  //
  5827  // See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus
  5828  func (c *S3Control) UpdateJobStatus(input *UpdateJobStatusInput) (*UpdateJobStatusOutput, error) {
  5829  	req, out := c.UpdateJobStatusRequest(input)
  5830  	return out, req.Send()
  5831  }
  5832  
  5833  // UpdateJobStatusWithContext is the same as UpdateJobStatus with the addition of
  5834  // the ability to pass a context and additional request options.
  5835  //
  5836  // See UpdateJobStatus for details on how to use this API operation.
  5837  //
  5838  // The context must be non-nil and will be used for request cancellation. If
  5839  // the context is nil a panic will occur. In the future the SDK may create
  5840  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5841  // for more information on using Contexts.
  5842  func (c *S3Control) UpdateJobStatusWithContext(ctx aws.Context, input *UpdateJobStatusInput, opts ...request.Option) (*UpdateJobStatusOutput, error) {
  5843  	req, out := c.UpdateJobStatusRequest(input)
  5844  	req.SetContext(ctx)
  5845  	req.ApplyOptions(opts...)
  5846  	return out, req.Send()
  5847  }
  5848  
  5849  // The container for abort incomplete multipart upload
  5850  type AbortIncompleteMultipartUpload struct {
  5851  	_ struct{} `type:"structure"`
  5852  
  5853  	// Specifies the number of days after which Amazon S3 aborts an incomplete multipart
  5854  	// upload to the Outposts bucket.
  5855  	DaysAfterInitiation *int64 `type:"integer"`
  5856  }
  5857  
  5858  // String returns the string representation.
  5859  //
  5860  // API parameter values that are decorated as "sensitive" in the API will not
  5861  // be included in the string output. The member name will be present, but the
  5862  // value will be replaced with "sensitive".
  5863  func (s AbortIncompleteMultipartUpload) String() string {
  5864  	return awsutil.Prettify(s)
  5865  }
  5866  
  5867  // GoString returns the string representation.
  5868  //
  5869  // API parameter values that are decorated as "sensitive" in the API will not
  5870  // be included in the string output. The member name will be present, but the
  5871  // value will be replaced with "sensitive".
  5872  func (s AbortIncompleteMultipartUpload) GoString() string {
  5873  	return s.String()
  5874  }
  5875  
  5876  // SetDaysAfterInitiation sets the DaysAfterInitiation field's value.
  5877  func (s *AbortIncompleteMultipartUpload) SetDaysAfterInitiation(v int64) *AbortIncompleteMultipartUpload {
  5878  	s.DaysAfterInitiation = &v
  5879  	return s
  5880  }
  5881  
  5882  // An access point used to access a bucket.
  5883  type AccessPoint struct {
  5884  	_ struct{} `type:"structure"`
  5885  
  5886  	// The ARN for the access point.
  5887  	AccessPointArn *string `min:"4" type:"string"`
  5888  
  5889  	// The name or alias of the access point.
  5890  	Alias *string `type:"string"`
  5891  
  5892  	// The name of the bucket associated with this access point.
  5893  	//
  5894  	// Bucket is a required field
  5895  	Bucket *string `min:"3" type:"string" required:"true"`
  5896  
  5897  	// The name of this access point.
  5898  	//
  5899  	// Name is a required field
  5900  	Name *string `min:"3" type:"string" required:"true"`
  5901  
  5902  	// Indicates whether this access point allows access from the public internet.
  5903  	// If VpcConfiguration is specified for this access point, then NetworkOrigin
  5904  	// is VPC, and the access point doesn't allow access from the public internet.
  5905  	// Otherwise, NetworkOrigin is Internet, and the access point allows access
  5906  	// from the public internet, subject to the access point and bucket access policies.
  5907  	//
  5908  	// NetworkOrigin is a required field
  5909  	NetworkOrigin *string `type:"string" required:"true" enum:"NetworkOrigin"`
  5910  
  5911  	// The virtual private cloud (VPC) configuration for this access point, if one
  5912  	// exists.
  5913  	//
  5914  	// This element is empty if this access point is an Amazon S3 on Outposts access
  5915  	// point that is used by other Amazon Web Services.
  5916  	VpcConfiguration *VpcConfiguration `type:"structure"`
  5917  }
  5918  
  5919  // String returns the string representation.
  5920  //
  5921  // API parameter values that are decorated as "sensitive" in the API will not
  5922  // be included in the string output. The member name will be present, but the
  5923  // value will be replaced with "sensitive".
  5924  func (s AccessPoint) String() string {
  5925  	return awsutil.Prettify(s)
  5926  }
  5927  
  5928  // GoString returns the string representation.
  5929  //
  5930  // API parameter values that are decorated as "sensitive" in the API will not
  5931  // be included in the string output. The member name will be present, but the
  5932  // value will be replaced with "sensitive".
  5933  func (s AccessPoint) GoString() string {
  5934  	return s.String()
  5935  }
  5936  
  5937  // SetAccessPointArn sets the AccessPointArn field's value.
  5938  func (s *AccessPoint) SetAccessPointArn(v string) *AccessPoint {
  5939  	s.AccessPointArn = &v
  5940  	return s
  5941  }
  5942  
  5943  // SetAlias sets the Alias field's value.
  5944  func (s *AccessPoint) SetAlias(v string) *AccessPoint {
  5945  	s.Alias = &v
  5946  	return s
  5947  }
  5948  
  5949  // SetBucket sets the Bucket field's value.
  5950  func (s *AccessPoint) SetBucket(v string) *AccessPoint {
  5951  	s.Bucket = &v
  5952  	return s
  5953  }
  5954  
  5955  // SetName sets the Name field's value.
  5956  func (s *AccessPoint) SetName(v string) *AccessPoint {
  5957  	s.Name = &v
  5958  	return s
  5959  }
  5960  
  5961  // SetNetworkOrigin sets the NetworkOrigin field's value.
  5962  func (s *AccessPoint) SetNetworkOrigin(v string) *AccessPoint {
  5963  	s.NetworkOrigin = &v
  5964  	return s
  5965  }
  5966  
  5967  // SetVpcConfiguration sets the VpcConfiguration field's value.
  5968  func (s *AccessPoint) SetVpcConfiguration(v *VpcConfiguration) *AccessPoint {
  5969  	s.VpcConfiguration = v
  5970  	return s
  5971  }
  5972  
  5973  // A container for the account level Amazon S3 Storage Lens configuration.
  5974  type AccountLevel struct {
  5975  	_ struct{} `type:"structure"`
  5976  
  5977  	// A container for the S3 Storage Lens activity metrics.
  5978  	ActivityMetrics *ActivityMetrics `type:"structure"`
  5979  
  5980  	// A container for the S3 Storage Lens bucket-level configuration.
  5981  	//
  5982  	// BucketLevel is a required field
  5983  	BucketLevel *BucketLevel `type:"structure" required:"true"`
  5984  }
  5985  
  5986  // String returns the string representation.
  5987  //
  5988  // API parameter values that are decorated as "sensitive" in the API will not
  5989  // be included in the string output. The member name will be present, but the
  5990  // value will be replaced with "sensitive".
  5991  func (s AccountLevel) String() string {
  5992  	return awsutil.Prettify(s)
  5993  }
  5994  
  5995  // GoString returns the string representation.
  5996  //
  5997  // API parameter values that are decorated as "sensitive" in the API will not
  5998  // be included in the string output. The member name will be present, but the
  5999  // value will be replaced with "sensitive".
  6000  func (s AccountLevel) GoString() string {
  6001  	return s.String()
  6002  }
  6003  
  6004  // Validate inspects the fields of the type to determine if they are valid.
  6005  func (s *AccountLevel) Validate() error {
  6006  	invalidParams := request.ErrInvalidParams{Context: "AccountLevel"}
  6007  	if s.BucketLevel == nil {
  6008  		invalidParams.Add(request.NewErrParamRequired("BucketLevel"))
  6009  	}
  6010  	if s.BucketLevel != nil {
  6011  		if err := s.BucketLevel.Validate(); err != nil {
  6012  			invalidParams.AddNested("BucketLevel", err.(request.ErrInvalidParams))
  6013  		}
  6014  	}
  6015  
  6016  	if invalidParams.Len() > 0 {
  6017  		return invalidParams
  6018  	}
  6019  	return nil
  6020  }
  6021  
  6022  // SetActivityMetrics sets the ActivityMetrics field's value.
  6023  func (s *AccountLevel) SetActivityMetrics(v *ActivityMetrics) *AccountLevel {
  6024  	s.ActivityMetrics = v
  6025  	return s
  6026  }
  6027  
  6028  // SetBucketLevel sets the BucketLevel field's value.
  6029  func (s *AccountLevel) SetBucketLevel(v *BucketLevel) *AccountLevel {
  6030  	s.BucketLevel = v
  6031  	return s
  6032  }
  6033  
  6034  // A container for the activity metrics.
  6035  type ActivityMetrics struct {
  6036  	_ struct{} `type:"structure"`
  6037  
  6038  	// A container for whether the activity metrics are enabled.
  6039  	IsEnabled *bool `type:"boolean"`
  6040  }
  6041  
  6042  // String returns the string representation.
  6043  //
  6044  // API parameter values that are decorated as "sensitive" in the API will not
  6045  // be included in the string output. The member name will be present, but the
  6046  // value will be replaced with "sensitive".
  6047  func (s ActivityMetrics) String() string {
  6048  	return awsutil.Prettify(s)
  6049  }
  6050  
  6051  // GoString returns the string representation.
  6052  //
  6053  // API parameter values that are decorated as "sensitive" in the API will not
  6054  // be included in the string output. The member name will be present, but the
  6055  // value will be replaced with "sensitive".
  6056  func (s ActivityMetrics) GoString() string {
  6057  	return s.String()
  6058  }
  6059  
  6060  // SetIsEnabled sets the IsEnabled field's value.
  6061  func (s *ActivityMetrics) SetIsEnabled(v bool) *ActivityMetrics {
  6062  	s.IsEnabled = &v
  6063  	return s
  6064  }
  6065  
  6066  // Error details for the failed asynchronous operation.
  6067  type AsyncErrorDetails struct {
  6068  	_ struct{} `type:"structure"`
  6069  
  6070  	// A string that uniquely identifies the error condition.
  6071  	Code *string `type:"string"`
  6072  
  6073  	// A generic descritpion of the error condition in English.
  6074  	Message *string `type:"string"`
  6075  
  6076  	// The ID of the request associated with the error.
  6077  	RequestId *string `type:"string"`
  6078  
  6079  	// The identifier of the resource associated with the error.
  6080  	Resource *string `type:"string"`
  6081  }
  6082  
  6083  // String returns the string representation.
  6084  //
  6085  // API parameter values that are decorated as "sensitive" in the API will not
  6086  // be included in the string output. The member name will be present, but the
  6087  // value will be replaced with "sensitive".
  6088  func (s AsyncErrorDetails) String() string {
  6089  	return awsutil.Prettify(s)
  6090  }
  6091  
  6092  // GoString returns the string representation.
  6093  //
  6094  // API parameter values that are decorated as "sensitive" in the API will not
  6095  // be included in the string output. The member name will be present, but the
  6096  // value will be replaced with "sensitive".
  6097  func (s AsyncErrorDetails) GoString() string {
  6098  	return s.String()
  6099  }
  6100  
  6101  // SetCode sets the Code field's value.
  6102  func (s *AsyncErrorDetails) SetCode(v string) *AsyncErrorDetails {
  6103  	s.Code = &v
  6104  	return s
  6105  }
  6106  
  6107  // SetMessage sets the Message field's value.
  6108  func (s *AsyncErrorDetails) SetMessage(v string) *AsyncErrorDetails {
  6109  	s.Message = &v
  6110  	return s
  6111  }
  6112  
  6113  // SetRequestId sets the RequestId field's value.
  6114  func (s *AsyncErrorDetails) SetRequestId(v string) *AsyncErrorDetails {
  6115  	s.RequestId = &v
  6116  	return s
  6117  }
  6118  
  6119  // SetResource sets the Resource field's value.
  6120  func (s *AsyncErrorDetails) SetResource(v string) *AsyncErrorDetails {
  6121  	s.Resource = &v
  6122  	return s
  6123  }
  6124  
  6125  // A container for the information about an asynchronous operation.
  6126  type AsyncOperation struct {
  6127  	_ struct{} `type:"structure"`
  6128  
  6129  	// The time that the request was sent to the service.
  6130  	CreationTime *time.Time `type:"timestamp"`
  6131  
  6132  	// The specific operation for the asynchronous request.
  6133  	Operation *string `type:"string" enum:"AsyncOperationName"`
  6134  
  6135  	// The parameters associated with the request.
  6136  	RequestParameters *AsyncRequestParameters `type:"structure"`
  6137  
  6138  	// The current status of the request.
  6139  	RequestStatus *string `type:"string"`
  6140  
  6141  	// The request token associated with the request.
  6142  	RequestTokenARN *string `min:"1" type:"string"`
  6143  
  6144  	// The details of the response.
  6145  	ResponseDetails *AsyncResponseDetails `type:"structure"`
  6146  }
  6147  
  6148  // String returns the string representation.
  6149  //
  6150  // API parameter values that are decorated as "sensitive" in the API will not
  6151  // be included in the string output. The member name will be present, but the
  6152  // value will be replaced with "sensitive".
  6153  func (s AsyncOperation) String() string {
  6154  	return awsutil.Prettify(s)
  6155  }
  6156  
  6157  // GoString returns the string representation.
  6158  //
  6159  // API parameter values that are decorated as "sensitive" in the API will not
  6160  // be included in the string output. The member name will be present, but the
  6161  // value will be replaced with "sensitive".
  6162  func (s AsyncOperation) GoString() string {
  6163  	return s.String()
  6164  }
  6165  
  6166  // SetCreationTime sets the CreationTime field's value.
  6167  func (s *AsyncOperation) SetCreationTime(v time.Time) *AsyncOperation {
  6168  	s.CreationTime = &v
  6169  	return s
  6170  }
  6171  
  6172  // SetOperation sets the Operation field's value.
  6173  func (s *AsyncOperation) SetOperation(v string) *AsyncOperation {
  6174  	s.Operation = &v
  6175  	return s
  6176  }
  6177  
  6178  // SetRequestParameters sets the RequestParameters field's value.
  6179  func (s *AsyncOperation) SetRequestParameters(v *AsyncRequestParameters) *AsyncOperation {
  6180  	s.RequestParameters = v
  6181  	return s
  6182  }
  6183  
  6184  // SetRequestStatus sets the RequestStatus field's value.
  6185  func (s *AsyncOperation) SetRequestStatus(v string) *AsyncOperation {
  6186  	s.RequestStatus = &v
  6187  	return s
  6188  }
  6189  
  6190  // SetRequestTokenARN sets the RequestTokenARN field's value.
  6191  func (s *AsyncOperation) SetRequestTokenARN(v string) *AsyncOperation {
  6192  	s.RequestTokenARN = &v
  6193  	return s
  6194  }
  6195  
  6196  // SetResponseDetails sets the ResponseDetails field's value.
  6197  func (s *AsyncOperation) SetResponseDetails(v *AsyncResponseDetails) *AsyncOperation {
  6198  	s.ResponseDetails = v
  6199  	return s
  6200  }
  6201  
  6202  // A container for the request parameters associated with an asynchronous request.
  6203  type AsyncRequestParameters struct {
  6204  	_ struct{} `type:"structure"`
  6205  
  6206  	// A container of the parameters for a CreateMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)
  6207  	// request.
  6208  	CreateMultiRegionAccessPointRequest *CreateMultiRegionAccessPointInput_ `type:"structure"`
  6209  
  6210  	// A container of the parameters for a DeleteMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)
  6211  	// request.
  6212  	DeleteMultiRegionAccessPointRequest *DeleteMultiRegionAccessPointInput_ `type:"structure"`
  6213  
  6214  	// A container of the parameters for a PutMultiRegionAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPoint.html)
  6215  	// request.
  6216  	PutMultiRegionAccessPointPolicyRequest *PutMultiRegionAccessPointPolicyInput_ `type:"structure"`
  6217  }
  6218  
  6219  // String returns the string representation.
  6220  //
  6221  // API parameter values that are decorated as "sensitive" in the API will not
  6222  // be included in the string output. The member name will be present, but the
  6223  // value will be replaced with "sensitive".
  6224  func (s AsyncRequestParameters) String() string {
  6225  	return awsutil.Prettify(s)
  6226  }
  6227  
  6228  // GoString returns the string representation.
  6229  //
  6230  // API parameter values that are decorated as "sensitive" in the API will not
  6231  // be included in the string output. The member name will be present, but the
  6232  // value will be replaced with "sensitive".
  6233  func (s AsyncRequestParameters) GoString() string {
  6234  	return s.String()
  6235  }
  6236  
  6237  // SetCreateMultiRegionAccessPointRequest sets the CreateMultiRegionAccessPointRequest field's value.
  6238  func (s *AsyncRequestParameters) SetCreateMultiRegionAccessPointRequest(v *CreateMultiRegionAccessPointInput_) *AsyncRequestParameters {
  6239  	s.CreateMultiRegionAccessPointRequest = v
  6240  	return s
  6241  }
  6242  
  6243  // SetDeleteMultiRegionAccessPointRequest sets the DeleteMultiRegionAccessPointRequest field's value.
  6244  func (s *AsyncRequestParameters) SetDeleteMultiRegionAccessPointRequest(v *DeleteMultiRegionAccessPointInput_) *AsyncRequestParameters {
  6245  	s.DeleteMultiRegionAccessPointRequest = v
  6246  	return s
  6247  }
  6248  
  6249  // SetPutMultiRegionAccessPointPolicyRequest sets the PutMultiRegionAccessPointPolicyRequest field's value.
  6250  func (s *AsyncRequestParameters) SetPutMultiRegionAccessPointPolicyRequest(v *PutMultiRegionAccessPointPolicyInput_) *AsyncRequestParameters {
  6251  	s.PutMultiRegionAccessPointPolicyRequest = v
  6252  	return s
  6253  }
  6254  
  6255  // A container for the response details that are returned when querying about
  6256  // an asynchronous request.
  6257  type AsyncResponseDetails struct {
  6258  	_ struct{} `type:"structure"`
  6259  
  6260  	// Error details for an asynchronous request.
  6261  	ErrorDetails *AsyncErrorDetails `type:"structure"`
  6262  
  6263  	// The details for the Multi-Region Access Point.
  6264  	MultiRegionAccessPointDetails *MultiRegionAccessPointsAsyncResponse `type:"structure"`
  6265  }
  6266  
  6267  // String returns the string representation.
  6268  //
  6269  // API parameter values that are decorated as "sensitive" in the API will not
  6270  // be included in the string output. The member name will be present, but the
  6271  // value will be replaced with "sensitive".
  6272  func (s AsyncResponseDetails) String() string {
  6273  	return awsutil.Prettify(s)
  6274  }
  6275  
  6276  // GoString returns the string representation.
  6277  //
  6278  // API parameter values that are decorated as "sensitive" in the API will not
  6279  // be included in the string output. The member name will be present, but the
  6280  // value will be replaced with "sensitive".
  6281  func (s AsyncResponseDetails) GoString() string {
  6282  	return s.String()
  6283  }
  6284  
  6285  // SetErrorDetails sets the ErrorDetails field's value.
  6286  func (s *AsyncResponseDetails) SetErrorDetails(v *AsyncErrorDetails) *AsyncResponseDetails {
  6287  	s.ErrorDetails = v
  6288  	return s
  6289  }
  6290  
  6291  // SetMultiRegionAccessPointDetails sets the MultiRegionAccessPointDetails field's value.
  6292  func (s *AsyncResponseDetails) SetMultiRegionAccessPointDetails(v *MultiRegionAccessPointsAsyncResponse) *AsyncResponseDetails {
  6293  	s.MultiRegionAccessPointDetails = v
  6294  	return s
  6295  }
  6296  
  6297  // Lambda function used to transform objects through an Object Lambda Access
  6298  // Point.
  6299  type AwsLambdaTransformation struct {
  6300  	_ struct{} `type:"structure"`
  6301  
  6302  	// The Amazon Resource Name (ARN) of the Lambda function.
  6303  	//
  6304  	// FunctionArn is a required field
  6305  	FunctionArn *string `min:"1" type:"string" required:"true"`
  6306  
  6307  	// Additional JSON that provides supplemental data to the Lambda function used
  6308  	// to transform objects.
  6309  	FunctionPayload *string `type:"string"`
  6310  }
  6311  
  6312  // String returns the string representation.
  6313  //
  6314  // API parameter values that are decorated as "sensitive" in the API will not
  6315  // be included in the string output. The member name will be present, but the
  6316  // value will be replaced with "sensitive".
  6317  func (s AwsLambdaTransformation) String() string {
  6318  	return awsutil.Prettify(s)
  6319  }
  6320  
  6321  // GoString returns the string representation.
  6322  //
  6323  // API parameter values that are decorated as "sensitive" in the API will not
  6324  // be included in the string output. The member name will be present, but the
  6325  // value will be replaced with "sensitive".
  6326  func (s AwsLambdaTransformation) GoString() string {
  6327  	return s.String()
  6328  }
  6329  
  6330  // Validate inspects the fields of the type to determine if they are valid.
  6331  func (s *AwsLambdaTransformation) Validate() error {
  6332  	invalidParams := request.ErrInvalidParams{Context: "AwsLambdaTransformation"}
  6333  	if s.FunctionArn == nil {
  6334  		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
  6335  	}
  6336  	if s.FunctionArn != nil && len(*s.FunctionArn) < 1 {
  6337  		invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1))
  6338  	}
  6339  
  6340  	if invalidParams.Len() > 0 {
  6341  		return invalidParams
  6342  	}
  6343  	return nil
  6344  }
  6345  
  6346  // SetFunctionArn sets the FunctionArn field's value.
  6347  func (s *AwsLambdaTransformation) SetFunctionArn(v string) *AwsLambdaTransformation {
  6348  	s.FunctionArn = &v
  6349  	return s
  6350  }
  6351  
  6352  // SetFunctionPayload sets the FunctionPayload field's value.
  6353  func (s *AwsLambdaTransformation) SetFunctionPayload(v string) *AwsLambdaTransformation {
  6354  	s.FunctionPayload = &v
  6355  	return s
  6356  }
  6357  
  6358  // A container for the bucket-level configuration.
  6359  type BucketLevel struct {
  6360  	_ struct{} `type:"structure"`
  6361  
  6362  	// A container for the bucket-level activity metrics for Amazon S3 Storage Lens
  6363  	ActivityMetrics *ActivityMetrics `type:"structure"`
  6364  
  6365  	// A container for the bucket-level prefix-level metrics for S3 Storage Lens
  6366  	PrefixLevel *PrefixLevel `type:"structure"`
  6367  }
  6368  
  6369  // String returns the string representation.
  6370  //
  6371  // API parameter values that are decorated as "sensitive" in the API will not
  6372  // be included in the string output. The member name will be present, but the
  6373  // value will be replaced with "sensitive".
  6374  func (s BucketLevel) String() string {
  6375  	return awsutil.Prettify(s)
  6376  }
  6377  
  6378  // GoString returns the string representation.
  6379  //
  6380  // API parameter values that are decorated as "sensitive" in the API will not
  6381  // be included in the string output. The member name will be present, but the
  6382  // value will be replaced with "sensitive".
  6383  func (s BucketLevel) GoString() string {
  6384  	return s.String()
  6385  }
  6386  
  6387  // Validate inspects the fields of the type to determine if they are valid.
  6388  func (s *BucketLevel) Validate() error {
  6389  	invalidParams := request.ErrInvalidParams{Context: "BucketLevel"}
  6390  	if s.PrefixLevel != nil {
  6391  		if err := s.PrefixLevel.Validate(); err != nil {
  6392  			invalidParams.AddNested("PrefixLevel", err.(request.ErrInvalidParams))
  6393  		}
  6394  	}
  6395  
  6396  	if invalidParams.Len() > 0 {
  6397  		return invalidParams
  6398  	}
  6399  	return nil
  6400  }
  6401  
  6402  // SetActivityMetrics sets the ActivityMetrics field's value.
  6403  func (s *BucketLevel) SetActivityMetrics(v *ActivityMetrics) *BucketLevel {
  6404  	s.ActivityMetrics = v
  6405  	return s
  6406  }
  6407  
  6408  // SetPrefixLevel sets the PrefixLevel field's value.
  6409  func (s *BucketLevel) SetPrefixLevel(v *PrefixLevel) *BucketLevel {
  6410  	s.PrefixLevel = v
  6411  	return s
  6412  }
  6413  
  6414  type CreateAccessPointForObjectLambdaInput struct {
  6415  	_ struct{} `locationName:"CreateAccessPointForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
  6416  
  6417  	// The Amazon Web Services account ID for owner of the specified Object Lambda
  6418  	// Access Point.
  6419  	//
  6420  	// AccountId is a required field
  6421  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  6422  
  6423  	// Object Lambda Access Point configuration as a JSON document.
  6424  	//
  6425  	// Configuration is a required field
  6426  	Configuration *ObjectLambdaConfiguration `type:"structure" required:"true"`
  6427  
  6428  	// The name you want to assign to this Object Lambda Access Point.
  6429  	//
  6430  	// Name is a required field
  6431  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  6432  }
  6433  
  6434  // String returns the string representation.
  6435  //
  6436  // API parameter values that are decorated as "sensitive" in the API will not
  6437  // be included in the string output. The member name will be present, but the
  6438  // value will be replaced with "sensitive".
  6439  func (s CreateAccessPointForObjectLambdaInput) String() string {
  6440  	return awsutil.Prettify(s)
  6441  }
  6442  
  6443  // GoString returns the string representation.
  6444  //
  6445  // API parameter values that are decorated as "sensitive" in the API will not
  6446  // be included in the string output. The member name will be present, but the
  6447  // value will be replaced with "sensitive".
  6448  func (s CreateAccessPointForObjectLambdaInput) GoString() string {
  6449  	return s.String()
  6450  }
  6451  
  6452  // Validate inspects the fields of the type to determine if they are valid.
  6453  func (s *CreateAccessPointForObjectLambdaInput) Validate() error {
  6454  	invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointForObjectLambdaInput"}
  6455  	if s.AccountId == nil {
  6456  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  6457  	}
  6458  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  6459  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  6460  	}
  6461  	if s.Configuration == nil {
  6462  		invalidParams.Add(request.NewErrParamRequired("Configuration"))
  6463  	}
  6464  	if s.Name == nil {
  6465  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6466  	}
  6467  	if s.Name != nil && len(*s.Name) < 3 {
  6468  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
  6469  	}
  6470  	if s.Configuration != nil {
  6471  		if err := s.Configuration.Validate(); err != nil {
  6472  			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
  6473  		}
  6474  	}
  6475  
  6476  	if invalidParams.Len() > 0 {
  6477  		return invalidParams
  6478  	}
  6479  	return nil
  6480  }
  6481  
  6482  // SetAccountId sets the AccountId field's value.
  6483  func (s *CreateAccessPointForObjectLambdaInput) SetAccountId(v string) *CreateAccessPointForObjectLambdaInput {
  6484  	s.AccountId = &v
  6485  	return s
  6486  }
  6487  
  6488  // SetConfiguration sets the Configuration field's value.
  6489  func (s *CreateAccessPointForObjectLambdaInput) SetConfiguration(v *ObjectLambdaConfiguration) *CreateAccessPointForObjectLambdaInput {
  6490  	s.Configuration = v
  6491  	return s
  6492  }
  6493  
  6494  // SetName sets the Name field's value.
  6495  func (s *CreateAccessPointForObjectLambdaInput) SetName(v string) *CreateAccessPointForObjectLambdaInput {
  6496  	s.Name = &v
  6497  	return s
  6498  }
  6499  
  6500  func (s *CreateAccessPointForObjectLambdaInput) hostLabels() map[string]string {
  6501  	return map[string]string{
  6502  		"AccountId": aws.StringValue(s.AccountId),
  6503  	}
  6504  }
  6505  
  6506  type CreateAccessPointForObjectLambdaOutput struct {
  6507  	_ struct{} `type:"structure"`
  6508  
  6509  	// Specifies the ARN for the Object Lambda Access Point.
  6510  	ObjectLambdaAccessPointArn *string `min:"1" type:"string"`
  6511  }
  6512  
  6513  // String returns the string representation.
  6514  //
  6515  // API parameter values that are decorated as "sensitive" in the API will not
  6516  // be included in the string output. The member name will be present, but the
  6517  // value will be replaced with "sensitive".
  6518  func (s CreateAccessPointForObjectLambdaOutput) String() string {
  6519  	return awsutil.Prettify(s)
  6520  }
  6521  
  6522  // GoString returns the string representation.
  6523  //
  6524  // API parameter values that are decorated as "sensitive" in the API will not
  6525  // be included in the string output. The member name will be present, but the
  6526  // value will be replaced with "sensitive".
  6527  func (s CreateAccessPointForObjectLambdaOutput) GoString() string {
  6528  	return s.String()
  6529  }
  6530  
  6531  // SetObjectLambdaAccessPointArn sets the ObjectLambdaAccessPointArn field's value.
  6532  func (s *CreateAccessPointForObjectLambdaOutput) SetObjectLambdaAccessPointArn(v string) *CreateAccessPointForObjectLambdaOutput {
  6533  	s.ObjectLambdaAccessPointArn = &v
  6534  	return s
  6535  }
  6536  
  6537  type CreateAccessPointInput struct {
  6538  	_ struct{} `locationName:"CreateAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
  6539  
  6540  	// The Amazon Web Services account ID for the owner of the bucket for which
  6541  	// you want to create an access point.
  6542  	//
  6543  	// AccountId is a required field
  6544  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  6545  
  6546  	// The name of the bucket that you want to associate this access point with.
  6547  	//
  6548  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
  6549  	// must specify the name and the x-amz-outpost-id as well.
  6550  	//
  6551  	// For using this parameter with S3 on Outposts with the Amazon Web Services
  6552  	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
  6553  	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
  6554  	// For example, to access the bucket reports through outpost my-outpost owned
  6555  	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
  6556  	// The value must be URL encoded.
  6557  	//
  6558  	// Bucket is a required field
  6559  	Bucket *string `min:"3" type:"string" required:"true"`
  6560  
  6561  	// The name you want to assign to this access point.
  6562  	//
  6563  	// Name is a required field
  6564  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  6565  
  6566  	// The PublicAccessBlock configuration that you want to apply to the access
  6567  	// point.
  6568  	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
  6569  
  6570  	// If you include this field, Amazon S3 restricts access to this access point
  6571  	// to requests from the specified virtual private cloud (VPC).
  6572  	//
  6573  	// This is required for creating an access point for Amazon S3 on Outposts buckets.
  6574  	VpcConfiguration *VpcConfiguration `type:"structure"`
  6575  }
  6576  
  6577  // String returns the string representation.
  6578  //
  6579  // API parameter values that are decorated as "sensitive" in the API will not
  6580  // be included in the string output. The member name will be present, but the
  6581  // value will be replaced with "sensitive".
  6582  func (s CreateAccessPointInput) String() string {
  6583  	return awsutil.Prettify(s)
  6584  }
  6585  
  6586  // GoString returns the string representation.
  6587  //
  6588  // API parameter values that are decorated as "sensitive" in the API will not
  6589  // be included in the string output. The member name will be present, but the
  6590  // value will be replaced with "sensitive".
  6591  func (s CreateAccessPointInput) GoString() string {
  6592  	return s.String()
  6593  }
  6594  
  6595  // Validate inspects the fields of the type to determine if they are valid.
  6596  func (s *CreateAccessPointInput) Validate() error {
  6597  	invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointInput"}
  6598  	if s.AccountId == nil {
  6599  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  6600  	}
  6601  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  6602  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  6603  	}
  6604  	if s.Bucket == nil {
  6605  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
  6606  	}
  6607  	if s.Bucket != nil && len(*s.Bucket) < 3 {
  6608  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
  6609  	}
  6610  	if s.Name == nil {
  6611  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6612  	}
  6613  	if s.Name != nil && len(*s.Name) < 3 {
  6614  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
  6615  	}
  6616  	if s.VpcConfiguration != nil {
  6617  		if err := s.VpcConfiguration.Validate(); err != nil {
  6618  			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
  6619  		}
  6620  	}
  6621  
  6622  	if invalidParams.Len() > 0 {
  6623  		return invalidParams
  6624  	}
  6625  	return nil
  6626  }
  6627  
  6628  // SetAccountId sets the AccountId field's value.
  6629  func (s *CreateAccessPointInput) SetAccountId(v string) *CreateAccessPointInput {
  6630  	s.AccountId = &v
  6631  	return s
  6632  }
  6633  
  6634  // SetBucket sets the Bucket field's value.
  6635  func (s *CreateAccessPointInput) SetBucket(v string) *CreateAccessPointInput {
  6636  	s.Bucket = &v
  6637  	return s
  6638  }
  6639  
  6640  // SetName sets the Name field's value.
  6641  func (s *CreateAccessPointInput) SetName(v string) *CreateAccessPointInput {
  6642  	s.Name = &v
  6643  	return s
  6644  }
  6645  
  6646  // SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
  6647  func (s *CreateAccessPointInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *CreateAccessPointInput {
  6648  	s.PublicAccessBlockConfiguration = v
  6649  	return s
  6650  }
  6651  
  6652  // SetVpcConfiguration sets the VpcConfiguration field's value.
  6653  func (s *CreateAccessPointInput) SetVpcConfiguration(v *VpcConfiguration) *CreateAccessPointInput {
  6654  	s.VpcConfiguration = v
  6655  	return s
  6656  }
  6657  
  6658  func (s *CreateAccessPointInput) hostLabels() map[string]string {
  6659  	return map[string]string{
  6660  		"AccountId": aws.StringValue(s.AccountId),
  6661  	}
  6662  }
  6663  
  6664  func (s *CreateAccessPointInput) getEndpointARN() (arn.Resource, error) {
  6665  	if s.Bucket == nil {
  6666  		return nil, fmt.Errorf("member Bucket is nil")
  6667  	}
  6668  	return parseEndpointARN(*s.Bucket)
  6669  }
  6670  
  6671  func (s *CreateAccessPointInput) hasEndpointARN() bool {
  6672  	if s.Bucket == nil {
  6673  		return false
  6674  	}
  6675  	return arn.IsARN(*s.Bucket)
  6676  }
  6677  
  6678  // updateArnableField updates the value of the input field that
  6679  // takes an ARN as an input. This method is useful to backfill
  6680  // the parsed resource name from ARN into the input member.
  6681  // It returns a pointer to a modified copy of input and an error.
  6682  // Note that original input is not modified.
  6683  func (s CreateAccessPointInput) updateArnableField(v string) (interface{}, error) {
  6684  	if s.Bucket == nil {
  6685  		return nil, fmt.Errorf("member Bucket is nil")
  6686  	}
  6687  	s.Bucket = aws.String(v)
  6688  	return &s, nil
  6689  }
  6690  
  6691  // updateAccountID returns a pointer to a modified copy of input,
  6692  // if account id is not provided, we update the account id in modified input
  6693  // if account id is provided, but doesn't match with the one in ARN, we throw an error
  6694  // if account id is not updated, we return nil. Note that original input is not modified.
  6695  func (s CreateAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
  6696  	if s.AccountId == nil {
  6697  		s.AccountId = aws.String(accountId)
  6698  		return &s, nil
  6699  	} else if *s.AccountId != accountId {
  6700  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
  6701  	}
  6702  	return nil, nil
  6703  }
  6704  
  6705  type CreateAccessPointOutput struct {
  6706  	_ struct{} `type:"structure"`
  6707  
  6708  	// The ARN of the access point.
  6709  	//
  6710  	// This is only supported by Amazon S3 on Outposts.
  6711  	AccessPointArn *string `min:"4" type:"string"`
  6712  
  6713  	// The name or alias of the access point.
  6714  	Alias *string `type:"string"`
  6715  }
  6716  
  6717  // String returns the string representation.
  6718  //
  6719  // API parameter values that are decorated as "sensitive" in the API will not
  6720  // be included in the string output. The member name will be present, but the
  6721  // value will be replaced with "sensitive".
  6722  func (s CreateAccessPointOutput) String() string {
  6723  	return awsutil.Prettify(s)
  6724  }
  6725  
  6726  // GoString returns the string representation.
  6727  //
  6728  // API parameter values that are decorated as "sensitive" in the API will not
  6729  // be included in the string output. The member name will be present, but the
  6730  // value will be replaced with "sensitive".
  6731  func (s CreateAccessPointOutput) GoString() string {
  6732  	return s.String()
  6733  }
  6734  
  6735  // SetAccessPointArn sets the AccessPointArn field's value.
  6736  func (s *CreateAccessPointOutput) SetAccessPointArn(v string) *CreateAccessPointOutput {
  6737  	s.AccessPointArn = &v
  6738  	return s
  6739  }
  6740  
  6741  // SetAlias sets the Alias field's value.
  6742  func (s *CreateAccessPointOutput) SetAlias(v string) *CreateAccessPointOutput {
  6743  	s.Alias = &v
  6744  	return s
  6745  }
  6746  
  6747  // The container for the bucket configuration.
  6748  //
  6749  // This is not supported by Amazon S3 on Outposts buckets.
  6750  type CreateBucketConfiguration struct {
  6751  	_ struct{} `type:"structure"`
  6752  
  6753  	// Specifies the Region where the bucket will be created. If you are creating
  6754  	// a bucket on the US East (N. Virginia) Region (us-east-1), you do not need
  6755  	// to specify the location.
  6756  	//
  6757  	// This is not supported by Amazon S3 on Outposts buckets.
  6758  	LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"`
  6759  }
  6760  
  6761  // String returns the string representation.
  6762  //
  6763  // API parameter values that are decorated as "sensitive" in the API will not
  6764  // be included in the string output. The member name will be present, but the
  6765  // value will be replaced with "sensitive".
  6766  func (s CreateBucketConfiguration) String() string {
  6767  	return awsutil.Prettify(s)
  6768  }
  6769  
  6770  // GoString returns the string representation.
  6771  //
  6772  // API parameter values that are decorated as "sensitive" in the API will not
  6773  // be included in the string output. The member name will be present, but the
  6774  // value will be replaced with "sensitive".
  6775  func (s CreateBucketConfiguration) GoString() string {
  6776  	return s.String()
  6777  }
  6778  
  6779  // SetLocationConstraint sets the LocationConstraint field's value.
  6780  func (s *CreateBucketConfiguration) SetLocationConstraint(v string) *CreateBucketConfiguration {
  6781  	s.LocationConstraint = &v
  6782  	return s
  6783  }
  6784  
  6785  type CreateBucketInput struct {
  6786  	_ struct{} `locationName:"CreateBucketRequest" type:"structure" payload:"CreateBucketConfiguration"`
  6787  
  6788  	// The canned ACL to apply to the bucket.
  6789  	//
  6790  	// This is not supported by Amazon S3 on Outposts buckets.
  6791  	ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"`
  6792  
  6793  	// The name of the bucket.
  6794  	//
  6795  	// Bucket is a required field
  6796  	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  6797  
  6798  	// The configuration information for the bucket.
  6799  	//
  6800  	// This is not supported by Amazon S3 on Outposts buckets.
  6801  	CreateBucketConfiguration *CreateBucketConfiguration `locationName:"CreateBucketConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
  6802  
  6803  	// Allows grantee the read, write, read ACP, and write ACP permissions on the
  6804  	// bucket.
  6805  	//
  6806  	// This is not supported by Amazon S3 on Outposts buckets.
  6807  	GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"`
  6808  
  6809  	// Allows grantee to list the objects in the bucket.
  6810  	//
  6811  	// This is not supported by Amazon S3 on Outposts buckets.
  6812  	GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"`
  6813  
  6814  	// Allows grantee to read the bucket ACL.
  6815  	//
  6816  	// This is not supported by Amazon S3 on Outposts buckets.
  6817  	GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"`
  6818  
  6819  	// Allows grantee to create, overwrite, and delete any object in the bucket.
  6820  	//
  6821  	// This is not supported by Amazon S3 on Outposts buckets.
  6822  	GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"`
  6823  
  6824  	// Allows grantee to write the ACL for the applicable bucket.
  6825  	//
  6826  	// This is not supported by Amazon S3 on Outposts buckets.
  6827  	GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"`
  6828  
  6829  	// Specifies whether you want S3 Object Lock to be enabled for the new bucket.
  6830  	//
  6831  	// This is not supported by Amazon S3 on Outposts buckets.
  6832  	ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"`
  6833  
  6834  	// The ID of the Outposts where the bucket is being created.
  6835  	//
  6836  	// This is required by Amazon S3 on Outposts buckets.
  6837  	OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"`
  6838  }
  6839  
  6840  // String returns the string representation.
  6841  //
  6842  // API parameter values that are decorated as "sensitive" in the API will not
  6843  // be included in the string output. The member name will be present, but the
  6844  // value will be replaced with "sensitive".
  6845  func (s CreateBucketInput) String() string {
  6846  	return awsutil.Prettify(s)
  6847  }
  6848  
  6849  // GoString returns the string representation.
  6850  //
  6851  // API parameter values that are decorated as "sensitive" in the API will not
  6852  // be included in the string output. The member name will be present, but the
  6853  // value will be replaced with "sensitive".
  6854  func (s CreateBucketInput) GoString() string {
  6855  	return s.String()
  6856  }
  6857  
  6858  // Validate inspects the fields of the type to determine if they are valid.
  6859  func (s *CreateBucketInput) Validate() error {
  6860  	invalidParams := request.ErrInvalidParams{Context: "CreateBucketInput"}
  6861  	if s.Bucket == nil {
  6862  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
  6863  	}
  6864  	if s.Bucket != nil && len(*s.Bucket) < 3 {
  6865  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
  6866  	}
  6867  	if s.OutpostId != nil && len(*s.OutpostId) < 1 {
  6868  		invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1))
  6869  	}
  6870  
  6871  	if invalidParams.Len() > 0 {
  6872  		return invalidParams
  6873  	}
  6874  	return nil
  6875  }
  6876  
  6877  // SetACL sets the ACL field's value.
  6878  func (s *CreateBucketInput) SetACL(v string) *CreateBucketInput {
  6879  	s.ACL = &v
  6880  	return s
  6881  }
  6882  
  6883  // SetBucket sets the Bucket field's value.
  6884  func (s *CreateBucketInput) SetBucket(v string) *CreateBucketInput {
  6885  	s.Bucket = &v
  6886  	return s
  6887  }
  6888  
  6889  // SetCreateBucketConfiguration sets the CreateBucketConfiguration field's value.
  6890  func (s *CreateBucketInput) SetCreateBucketConfiguration(v *CreateBucketConfiguration) *CreateBucketInput {
  6891  	s.CreateBucketConfiguration = v
  6892  	return s
  6893  }
  6894  
  6895  // SetGrantFullControl sets the GrantFullControl field's value.
  6896  func (s *CreateBucketInput) SetGrantFullControl(v string) *CreateBucketInput {
  6897  	s.GrantFullControl = &v
  6898  	return s
  6899  }
  6900  
  6901  // SetGrantRead sets the GrantRead field's value.
  6902  func (s *CreateBucketInput) SetGrantRead(v string) *CreateBucketInput {
  6903  	s.GrantRead = &v
  6904  	return s
  6905  }
  6906  
  6907  // SetGrantReadACP sets the GrantReadACP field's value.
  6908  func (s *CreateBucketInput) SetGrantReadACP(v string) *CreateBucketInput {
  6909  	s.GrantReadACP = &v
  6910  	return s
  6911  }
  6912  
  6913  // SetGrantWrite sets the GrantWrite field's value.
  6914  func (s *CreateBucketInput) SetGrantWrite(v string) *CreateBucketInput {
  6915  	s.GrantWrite = &v
  6916  	return s
  6917  }
  6918  
  6919  // SetGrantWriteACP sets the GrantWriteACP field's value.
  6920  func (s *CreateBucketInput) SetGrantWriteACP(v string) *CreateBucketInput {
  6921  	s.GrantWriteACP = &v
  6922  	return s
  6923  }
  6924  
  6925  // SetObjectLockEnabledForBucket sets the ObjectLockEnabledForBucket field's value.
  6926  func (s *CreateBucketInput) SetObjectLockEnabledForBucket(v bool) *CreateBucketInput {
  6927  	s.ObjectLockEnabledForBucket = &v
  6928  	return s
  6929  }
  6930  
  6931  // SetOutpostId sets the OutpostId field's value.
  6932  func (s *CreateBucketInput) SetOutpostId(v string) *CreateBucketInput {
  6933  	s.OutpostId = &v
  6934  	return s
  6935  }
  6936  
  6937  func (s *CreateBucketInput) getOutpostID() (string, error) {
  6938  	if s.OutpostId == nil {
  6939  		return "", fmt.Errorf("member OutpostId is nil")
  6940  	}
  6941  	return *s.OutpostId, nil
  6942  }
  6943  
  6944  func (s *CreateBucketInput) hasOutpostID() bool {
  6945  	if s.OutpostId == nil {
  6946  		return false
  6947  	}
  6948  	return true
  6949  }
  6950  
  6951  type CreateBucketOutput struct {
  6952  	_ struct{} `type:"structure"`
  6953  
  6954  	// The Amazon Resource Name (ARN) of the bucket.
  6955  	//
  6956  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
  6957  	// must specify the name and the x-amz-outpost-id as well.
  6958  	//
  6959  	// For using this parameter with S3 on Outposts with the Amazon Web Services
  6960  	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
  6961  	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
  6962  	// For example, to access the bucket reports through outpost my-outpost owned
  6963  	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
  6964  	// The value must be URL encoded.
  6965  	BucketArn *string `min:"4" type:"string"`
  6966  
  6967  	// The location of the bucket.
  6968  	Location *string `location:"header" locationName:"Location" type:"string"`
  6969  }
  6970  
  6971  // String returns the string representation.
  6972  //
  6973  // API parameter values that are decorated as "sensitive" in the API will not
  6974  // be included in the string output. The member name will be present, but the
  6975  // value will be replaced with "sensitive".
  6976  func (s CreateBucketOutput) String() string {
  6977  	return awsutil.Prettify(s)
  6978  }
  6979  
  6980  // GoString returns the string representation.
  6981  //
  6982  // API parameter values that are decorated as "sensitive" in the API will not
  6983  // be included in the string output. The member name will be present, but the
  6984  // value will be replaced with "sensitive".
  6985  func (s CreateBucketOutput) GoString() string {
  6986  	return s.String()
  6987  }
  6988  
  6989  // SetBucketArn sets the BucketArn field's value.
  6990  func (s *CreateBucketOutput) SetBucketArn(v string) *CreateBucketOutput {
  6991  	s.BucketArn = &v
  6992  	return s
  6993  }
  6994  
  6995  // SetLocation sets the Location field's value.
  6996  func (s *CreateBucketOutput) SetLocation(v string) *CreateBucketOutput {
  6997  	s.Location = &v
  6998  	return s
  6999  }
  7000  
  7001  type CreateJobInput struct {
  7002  	_ struct{} `locationName:"CreateJobRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
  7003  
  7004  	// The Amazon Web Services account ID that creates the job.
  7005  	//
  7006  	// AccountId is a required field
  7007  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  7008  
  7009  	// An idempotency token to ensure that you don't accidentally submit the same
  7010  	// request twice. You can use any string up to the maximum length.
  7011  	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
  7012  
  7013  	// Indicates whether confirmation is required before Amazon S3 runs the job.
  7014  	// Confirmation is only required for jobs created through the Amazon S3 console.
  7015  	ConfirmationRequired *bool `type:"boolean"`
  7016  
  7017  	// A description for this job. You can use any string within the permitted length.
  7018  	// Descriptions don't need to be unique and can be used for multiple jobs.
  7019  	Description *string `min:"1" type:"string"`
  7020  
  7021  	// Configuration parameters for the manifest.
  7022  	//
  7023  	// Manifest is a required field
  7024  	Manifest *JobManifest `type:"structure" required:"true"`
  7025  
  7026  	// The action that you want this job to perform on every object listed in the
  7027  	// manifest. For more information about the available actions, see Operations
  7028  	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-actions.html)
  7029  	// in the Amazon S3 User Guide.
  7030  	//
  7031  	// Operation is a required field
  7032  	Operation *JobOperation `type:"structure" required:"true"`
  7033  
  7034  	// The numerical priority for this job. Higher numbers indicate higher priority.
  7035  	//
  7036  	// Priority is a required field
  7037  	Priority *int64 `type:"integer" required:"true"`
  7038  
  7039  	// Configuration parameters for the optional job-completion report.
  7040  	//
  7041  	// Report is a required field
  7042  	Report *JobReport `type:"structure" required:"true"`
  7043  
  7044  	// The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
  7045  	// role that Batch Operations will use to run this job's action on every object
  7046  	// in the manifest.
  7047  	//
  7048  	// RoleArn is a required field
  7049  	RoleArn *string `min:"1" type:"string" required:"true"`
  7050  
  7051  	// A set of tags to associate with the S3 Batch Operations job. This is an optional
  7052  	// parameter.
  7053  	Tags []*S3Tag `type:"list"`
  7054  }
  7055  
  7056  // String returns the string representation.
  7057  //
  7058  // API parameter values that are decorated as "sensitive" in the API will not
  7059  // be included in the string output. The member name will be present, but the
  7060  // value will be replaced with "sensitive".
  7061  func (s CreateJobInput) String() string {
  7062  	return awsutil.Prettify(s)
  7063  }
  7064  
  7065  // GoString returns the string representation.
  7066  //
  7067  // API parameter values that are decorated as "sensitive" in the API will not
  7068  // be included in the string output. The member name will be present, but the
  7069  // value will be replaced with "sensitive".
  7070  func (s CreateJobInput) GoString() string {
  7071  	return s.String()
  7072  }
  7073  
  7074  // Validate inspects the fields of the type to determine if they are valid.
  7075  func (s *CreateJobInput) Validate() error {
  7076  	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
  7077  	if s.AccountId == nil {
  7078  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7079  	}
  7080  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  7081  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  7082  	}
  7083  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
  7084  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
  7085  	}
  7086  	if s.Description != nil && len(*s.Description) < 1 {
  7087  		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
  7088  	}
  7089  	if s.Manifest == nil {
  7090  		invalidParams.Add(request.NewErrParamRequired("Manifest"))
  7091  	}
  7092  	if s.Operation == nil {
  7093  		invalidParams.Add(request.NewErrParamRequired("Operation"))
  7094  	}
  7095  	if s.Priority == nil {
  7096  		invalidParams.Add(request.NewErrParamRequired("Priority"))
  7097  	}
  7098  	if s.Report == nil {
  7099  		invalidParams.Add(request.NewErrParamRequired("Report"))
  7100  	}
  7101  	if s.RoleArn == nil {
  7102  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
  7103  	}
  7104  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
  7105  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
  7106  	}
  7107  	if s.Manifest != nil {
  7108  		if err := s.Manifest.Validate(); err != nil {
  7109  			invalidParams.AddNested("Manifest", err.(request.ErrInvalidParams))
  7110  		}
  7111  	}
  7112  	if s.Operation != nil {
  7113  		if err := s.Operation.Validate(); err != nil {
  7114  			invalidParams.AddNested("Operation", err.(request.ErrInvalidParams))
  7115  		}
  7116  	}
  7117  	if s.Report != nil {
  7118  		if err := s.Report.Validate(); err != nil {
  7119  			invalidParams.AddNested("Report", err.(request.ErrInvalidParams))
  7120  		}
  7121  	}
  7122  	if s.Tags != nil {
  7123  		for i, v := range s.Tags {
  7124  			if v == nil {
  7125  				continue
  7126  			}
  7127  			if err := v.Validate(); err != nil {
  7128  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  7129  			}
  7130  		}
  7131  	}
  7132  
  7133  	if invalidParams.Len() > 0 {
  7134  		return invalidParams
  7135  	}
  7136  	return nil
  7137  }
  7138  
  7139  // SetAccountId sets the AccountId field's value.
  7140  func (s *CreateJobInput) SetAccountId(v string) *CreateJobInput {
  7141  	s.AccountId = &v
  7142  	return s
  7143  }
  7144  
  7145  // SetClientRequestToken sets the ClientRequestToken field's value.
  7146  func (s *CreateJobInput) SetClientRequestToken(v string) *CreateJobInput {
  7147  	s.ClientRequestToken = &v
  7148  	return s
  7149  }
  7150  
  7151  // SetConfirmationRequired sets the ConfirmationRequired field's value.
  7152  func (s *CreateJobInput) SetConfirmationRequired(v bool) *CreateJobInput {
  7153  	s.ConfirmationRequired = &v
  7154  	return s
  7155  }
  7156  
  7157  // SetDescription sets the Description field's value.
  7158  func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
  7159  	s.Description = &v
  7160  	return s
  7161  }
  7162  
  7163  // SetManifest sets the Manifest field's value.
  7164  func (s *CreateJobInput) SetManifest(v *JobManifest) *CreateJobInput {
  7165  	s.Manifest = v
  7166  	return s
  7167  }
  7168  
  7169  // SetOperation sets the Operation field's value.
  7170  func (s *CreateJobInput) SetOperation(v *JobOperation) *CreateJobInput {
  7171  	s.Operation = v
  7172  	return s
  7173  }
  7174  
  7175  // SetPriority sets the Priority field's value.
  7176  func (s *CreateJobInput) SetPriority(v int64) *CreateJobInput {
  7177  	s.Priority = &v
  7178  	return s
  7179  }
  7180  
  7181  // SetReport sets the Report field's value.
  7182  func (s *CreateJobInput) SetReport(v *JobReport) *CreateJobInput {
  7183  	s.Report = v
  7184  	return s
  7185  }
  7186  
  7187  // SetRoleArn sets the RoleArn field's value.
  7188  func (s *CreateJobInput) SetRoleArn(v string) *CreateJobInput {
  7189  	s.RoleArn = &v
  7190  	return s
  7191  }
  7192  
  7193  // SetTags sets the Tags field's value.
  7194  func (s *CreateJobInput) SetTags(v []*S3Tag) *CreateJobInput {
  7195  	s.Tags = v
  7196  	return s
  7197  }
  7198  
  7199  func (s *CreateJobInput) hostLabels() map[string]string {
  7200  	return map[string]string{
  7201  		"AccountId": aws.StringValue(s.AccountId),
  7202  	}
  7203  }
  7204  
  7205  type CreateJobOutput struct {
  7206  	_ struct{} `type:"structure"`
  7207  
  7208  	// The ID for this job. Amazon S3 generates this ID automatically and returns
  7209  	// it after a successful Create Job request.
  7210  	JobId *string `min:"5" type:"string"`
  7211  }
  7212  
  7213  // String returns the string representation.
  7214  //
  7215  // API parameter values that are decorated as "sensitive" in the API will not
  7216  // be included in the string output. The member name will be present, but the
  7217  // value will be replaced with "sensitive".
  7218  func (s CreateJobOutput) String() string {
  7219  	return awsutil.Prettify(s)
  7220  }
  7221  
  7222  // GoString returns the string representation.
  7223  //
  7224  // API parameter values that are decorated as "sensitive" in the API will not
  7225  // be included in the string output. The member name will be present, but the
  7226  // value will be replaced with "sensitive".
  7227  func (s CreateJobOutput) GoString() string {
  7228  	return s.String()
  7229  }
  7230  
  7231  // SetJobId sets the JobId field's value.
  7232  func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
  7233  	s.JobId = &v
  7234  	return s
  7235  }
  7236  
  7237  type CreateMultiRegionAccessPointInput struct {
  7238  	_ struct{} `locationName:"CreateMultiRegionAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
  7239  
  7240  	// The Amazon Web Services account ID for the owner of the Multi-Region Access
  7241  	// Point. The owner of the Multi-Region Access Point also must own the underlying
  7242  	// buckets.
  7243  	//
  7244  	// AccountId is a required field
  7245  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  7246  
  7247  	// An idempotency token used to identify the request and guarantee that requests
  7248  	// are unique.
  7249  	ClientToken *string `type:"string" idempotencyToken:"true"`
  7250  
  7251  	// A container element containing details about the Multi-Region Access Point.
  7252  	//
  7253  	// Details is a required field
  7254  	Details *CreateMultiRegionAccessPointInput_ `type:"structure" required:"true"`
  7255  }
  7256  
  7257  // String returns the string representation.
  7258  //
  7259  // API parameter values that are decorated as "sensitive" in the API will not
  7260  // be included in the string output. The member name will be present, but the
  7261  // value will be replaced with "sensitive".
  7262  func (s CreateMultiRegionAccessPointInput) String() string {
  7263  	return awsutil.Prettify(s)
  7264  }
  7265  
  7266  // GoString returns the string representation.
  7267  //
  7268  // API parameter values that are decorated as "sensitive" in the API will not
  7269  // be included in the string output. The member name will be present, but the
  7270  // value will be replaced with "sensitive".
  7271  func (s CreateMultiRegionAccessPointInput) GoString() string {
  7272  	return s.String()
  7273  }
  7274  
  7275  // Validate inspects the fields of the type to determine if they are valid.
  7276  func (s *CreateMultiRegionAccessPointInput) Validate() error {
  7277  	invalidParams := request.ErrInvalidParams{Context: "CreateMultiRegionAccessPointInput"}
  7278  	if s.AccountId == nil {
  7279  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7280  	}
  7281  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  7282  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  7283  	}
  7284  	if s.Details == nil {
  7285  		invalidParams.Add(request.NewErrParamRequired("Details"))
  7286  	}
  7287  	if s.Details != nil {
  7288  		if err := s.Details.Validate(); err != nil {
  7289  			invalidParams.AddNested("Details", err.(request.ErrInvalidParams))
  7290  		}
  7291  	}
  7292  
  7293  	if invalidParams.Len() > 0 {
  7294  		return invalidParams
  7295  	}
  7296  	return nil
  7297  }
  7298  
  7299  // SetAccountId sets the AccountId field's value.
  7300  func (s *CreateMultiRegionAccessPointInput) SetAccountId(v string) *CreateMultiRegionAccessPointInput {
  7301  	s.AccountId = &v
  7302  	return s
  7303  }
  7304  
  7305  // SetClientToken sets the ClientToken field's value.
  7306  func (s *CreateMultiRegionAccessPointInput) SetClientToken(v string) *CreateMultiRegionAccessPointInput {
  7307  	s.ClientToken = &v
  7308  	return s
  7309  }
  7310  
  7311  // SetDetails sets the Details field's value.
  7312  func (s *CreateMultiRegionAccessPointInput) SetDetails(v *CreateMultiRegionAccessPointInput_) *CreateMultiRegionAccessPointInput {
  7313  	s.Details = v
  7314  	return s
  7315  }
  7316  
  7317  func (s *CreateMultiRegionAccessPointInput) hostLabels() map[string]string {
  7318  	return map[string]string{
  7319  		"AccountId": aws.StringValue(s.AccountId),
  7320  	}
  7321  }
  7322  
  7323  // A container for the information associated with a CreateMultiRegionAccessPoint
  7324  // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)
  7325  // request.
  7326  type CreateMultiRegionAccessPointInput_ struct {
  7327  	_ struct{} `type:"structure"`
  7328  
  7329  	// The name of the Multi-Region Access Point associated with this request.
  7330  	//
  7331  	// Name is a required field
  7332  	Name *string `type:"string" required:"true"`
  7333  
  7334  	// The PublicAccessBlock configuration that you want to apply to this Amazon
  7335  	// S3 account. You can enable the configuration options in any combination.
  7336  	// For more information about when Amazon S3 considers a bucket or object public,
  7337  	// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
  7338  	// in the Amazon S3 User Guide.
  7339  	//
  7340  	// This is not supported for Amazon S3 on Outposts.
  7341  	PublicAccessBlock *PublicAccessBlockConfiguration `type:"structure"`
  7342  
  7343  	// The buckets in different Regions that are associated with the Multi-Region
  7344  	// Access Point.
  7345  	//
  7346  	// Regions is a required field
  7347  	Regions []*Region `locationNameList:"Region" type:"list" required:"true"`
  7348  }
  7349  
  7350  // String returns the string representation.
  7351  //
  7352  // API parameter values that are decorated as "sensitive" in the API will not
  7353  // be included in the string output. The member name will be present, but the
  7354  // value will be replaced with "sensitive".
  7355  func (s CreateMultiRegionAccessPointInput_) String() string {
  7356  	return awsutil.Prettify(s)
  7357  }
  7358  
  7359  // GoString returns the string representation.
  7360  //
  7361  // API parameter values that are decorated as "sensitive" in the API will not
  7362  // be included in the string output. The member name will be present, but the
  7363  // value will be replaced with "sensitive".
  7364  func (s CreateMultiRegionAccessPointInput_) GoString() string {
  7365  	return s.String()
  7366  }
  7367  
  7368  // Validate inspects the fields of the type to determine if they are valid.
  7369  func (s *CreateMultiRegionAccessPointInput_) Validate() error {
  7370  	invalidParams := request.ErrInvalidParams{Context: "CreateMultiRegionAccessPointInput_"}
  7371  	if s.Name == nil {
  7372  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7373  	}
  7374  	if s.Regions == nil {
  7375  		invalidParams.Add(request.NewErrParamRequired("Regions"))
  7376  	}
  7377  	if s.Regions != nil {
  7378  		for i, v := range s.Regions {
  7379  			if v == nil {
  7380  				continue
  7381  			}
  7382  			if err := v.Validate(); err != nil {
  7383  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Regions", i), err.(request.ErrInvalidParams))
  7384  			}
  7385  		}
  7386  	}
  7387  
  7388  	if invalidParams.Len() > 0 {
  7389  		return invalidParams
  7390  	}
  7391  	return nil
  7392  }
  7393  
  7394  // SetName sets the Name field's value.
  7395  func (s *CreateMultiRegionAccessPointInput_) SetName(v string) *CreateMultiRegionAccessPointInput_ {
  7396  	s.Name = &v
  7397  	return s
  7398  }
  7399  
  7400  // SetPublicAccessBlock sets the PublicAccessBlock field's value.
  7401  func (s *CreateMultiRegionAccessPointInput_) SetPublicAccessBlock(v *PublicAccessBlockConfiguration) *CreateMultiRegionAccessPointInput_ {
  7402  	s.PublicAccessBlock = v
  7403  	return s
  7404  }
  7405  
  7406  // SetRegions sets the Regions field's value.
  7407  func (s *CreateMultiRegionAccessPointInput_) SetRegions(v []*Region) *CreateMultiRegionAccessPointInput_ {
  7408  	s.Regions = v
  7409  	return s
  7410  }
  7411  
  7412  type CreateMultiRegionAccessPointOutput struct {
  7413  	_ struct{} `type:"structure"`
  7414  
  7415  	// The request token associated with the request. You can use this token with
  7416  	// DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
  7417  	// to determine the status of asynchronous requests.
  7418  	RequestTokenARN *string `min:"1" type:"string"`
  7419  }
  7420  
  7421  // String returns the string representation.
  7422  //
  7423  // API parameter values that are decorated as "sensitive" in the API will not
  7424  // be included in the string output. The member name will be present, but the
  7425  // value will be replaced with "sensitive".
  7426  func (s CreateMultiRegionAccessPointOutput) String() string {
  7427  	return awsutil.Prettify(s)
  7428  }
  7429  
  7430  // GoString returns the string representation.
  7431  //
  7432  // API parameter values that are decorated as "sensitive" in the API will not
  7433  // be included in the string output. The member name will be present, but the
  7434  // value will be replaced with "sensitive".
  7435  func (s CreateMultiRegionAccessPointOutput) GoString() string {
  7436  	return s.String()
  7437  }
  7438  
  7439  // SetRequestTokenARN sets the RequestTokenARN field's value.
  7440  func (s *CreateMultiRegionAccessPointOutput) SetRequestTokenARN(v string) *CreateMultiRegionAccessPointOutput {
  7441  	s.RequestTokenARN = &v
  7442  	return s
  7443  }
  7444  
  7445  type DeleteAccessPointForObjectLambdaInput struct {
  7446  	_ struct{} `locationName:"DeleteAccessPointForObjectLambdaRequest" type:"structure"`
  7447  
  7448  	// The account ID for the account that owns the specified Object Lambda Access
  7449  	// Point.
  7450  	//
  7451  	// AccountId is a required field
  7452  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  7453  
  7454  	// The name of the access point you want to delete.
  7455  	//
  7456  	// Name is a required field
  7457  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  7458  }
  7459  
  7460  // String returns the string representation.
  7461  //
  7462  // API parameter values that are decorated as "sensitive" in the API will not
  7463  // be included in the string output. The member name will be present, but the
  7464  // value will be replaced with "sensitive".
  7465  func (s DeleteAccessPointForObjectLambdaInput) String() string {
  7466  	return awsutil.Prettify(s)
  7467  }
  7468  
  7469  // GoString returns the string representation.
  7470  //
  7471  // API parameter values that are decorated as "sensitive" in the API will not
  7472  // be included in the string output. The member name will be present, but the
  7473  // value will be replaced with "sensitive".
  7474  func (s DeleteAccessPointForObjectLambdaInput) GoString() string {
  7475  	return s.String()
  7476  }
  7477  
  7478  // Validate inspects the fields of the type to determine if they are valid.
  7479  func (s *DeleteAccessPointForObjectLambdaInput) Validate() error {
  7480  	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointForObjectLambdaInput"}
  7481  	if s.AccountId == nil {
  7482  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7483  	}
  7484  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  7485  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  7486  	}
  7487  	if s.Name == nil {
  7488  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7489  	}
  7490  	if s.Name != nil && len(*s.Name) < 3 {
  7491  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
  7492  	}
  7493  
  7494  	if invalidParams.Len() > 0 {
  7495  		return invalidParams
  7496  	}
  7497  	return nil
  7498  }
  7499  
  7500  // SetAccountId sets the AccountId field's value.
  7501  func (s *DeleteAccessPointForObjectLambdaInput) SetAccountId(v string) *DeleteAccessPointForObjectLambdaInput {
  7502  	s.AccountId = &v
  7503  	return s
  7504  }
  7505  
  7506  // SetName sets the Name field's value.
  7507  func (s *DeleteAccessPointForObjectLambdaInput) SetName(v string) *DeleteAccessPointForObjectLambdaInput {
  7508  	s.Name = &v
  7509  	return s
  7510  }
  7511  
  7512  func (s *DeleteAccessPointForObjectLambdaInput) hostLabels() map[string]string {
  7513  	return map[string]string{
  7514  		"AccountId": aws.StringValue(s.AccountId),
  7515  	}
  7516  }
  7517  
  7518  type DeleteAccessPointForObjectLambdaOutput struct {
  7519  	_ struct{} `type:"structure"`
  7520  }
  7521  
  7522  // String returns the string representation.
  7523  //
  7524  // API parameter values that are decorated as "sensitive" in the API will not
  7525  // be included in the string output. The member name will be present, but the
  7526  // value will be replaced with "sensitive".
  7527  func (s DeleteAccessPointForObjectLambdaOutput) String() string {
  7528  	return awsutil.Prettify(s)
  7529  }
  7530  
  7531  // GoString returns the string representation.
  7532  //
  7533  // API parameter values that are decorated as "sensitive" in the API will not
  7534  // be included in the string output. The member name will be present, but the
  7535  // value will be replaced with "sensitive".
  7536  func (s DeleteAccessPointForObjectLambdaOutput) GoString() string {
  7537  	return s.String()
  7538  }
  7539  
  7540  type DeleteAccessPointInput struct {
  7541  	_ struct{} `locationName:"DeleteAccessPointRequest" type:"structure"`
  7542  
  7543  	// The account ID for the account that owns the specified access point.
  7544  	//
  7545  	// AccountId is a required field
  7546  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  7547  
  7548  	// The name of the access point you want to delete.
  7549  	//
  7550  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
  7551  	// must specify the name and the x-amz-outpost-id as well.
  7552  	//
  7553  	// For using this parameter with S3 on Outposts with the Amazon Web Services
  7554  	// SDK and CLI, you must specify the ARN of the access point accessed in the
  7555  	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
  7556  	// For example, to access the access point reports-ap through outpost my-outpost
  7557  	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
  7558  	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
  7559  	// The value must be URL encoded.
  7560  	//
  7561  	// Name is a required field
  7562  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  7563  }
  7564  
  7565  // String returns the string representation.
  7566  //
  7567  // API parameter values that are decorated as "sensitive" in the API will not
  7568  // be included in the string output. The member name will be present, but the
  7569  // value will be replaced with "sensitive".
  7570  func (s DeleteAccessPointInput) String() string {
  7571  	return awsutil.Prettify(s)
  7572  }
  7573  
  7574  // GoString returns the string representation.
  7575  //
  7576  // API parameter values that are decorated as "sensitive" in the API will not
  7577  // be included in the string output. The member name will be present, but the
  7578  // value will be replaced with "sensitive".
  7579  func (s DeleteAccessPointInput) GoString() string {
  7580  	return s.String()
  7581  }
  7582  
  7583  // Validate inspects the fields of the type to determine if they are valid.
  7584  func (s *DeleteAccessPointInput) Validate() error {
  7585  	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointInput"}
  7586  	if s.AccountId == nil {
  7587  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7588  	}
  7589  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  7590  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  7591  	}
  7592  	if s.Name == nil {
  7593  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7594  	}
  7595  	if s.Name != nil && len(*s.Name) < 3 {
  7596  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
  7597  	}
  7598  
  7599  	if invalidParams.Len() > 0 {
  7600  		return invalidParams
  7601  	}
  7602  	return nil
  7603  }
  7604  
  7605  // SetAccountId sets the AccountId field's value.
  7606  func (s *DeleteAccessPointInput) SetAccountId(v string) *DeleteAccessPointInput {
  7607  	s.AccountId = &v
  7608  	return s
  7609  }
  7610  
  7611  // SetName sets the Name field's value.
  7612  func (s *DeleteAccessPointInput) SetName(v string) *DeleteAccessPointInput {
  7613  	s.Name = &v
  7614  	return s
  7615  }
  7616  
  7617  func (s *DeleteAccessPointInput) hostLabels() map[string]string {
  7618  	return map[string]string{
  7619  		"AccountId": aws.StringValue(s.AccountId),
  7620  	}
  7621  }
  7622  
  7623  func (s *DeleteAccessPointInput) getEndpointARN() (arn.Resource, error) {
  7624  	if s.Name == nil {
  7625  		return nil, fmt.Errorf("member Name is nil")
  7626  	}
  7627  	return parseEndpointARN(*s.Name)
  7628  }
  7629  
  7630  func (s *DeleteAccessPointInput) hasEndpointARN() bool {
  7631  	if s.Name == nil {
  7632  		return false
  7633  	}
  7634  	return arn.IsARN(*s.Name)
  7635  }
  7636  
  7637  // updateArnableField updates the value of the input field that
  7638  // takes an ARN as an input. This method is useful to backfill
  7639  // the parsed resource name from ARN into the input member.
  7640  // It returns a pointer to a modified copy of input and an error.
  7641  // Note that original input is not modified.
  7642  func (s DeleteAccessPointInput) updateArnableField(v string) (interface{}, error) {
  7643  	if s.Name == nil {
  7644  		return nil, fmt.Errorf("member Name is nil")
  7645  	}
  7646  	s.Name = aws.String(v)
  7647  	return &s, nil
  7648  }
  7649  
  7650  // updateAccountID returns a pointer to a modified copy of input,
  7651  // if account id is not provided, we update the account id in modified input
  7652  // if account id is provided, but doesn't match with the one in ARN, we throw an error
  7653  // if account id is not updated, we return nil. Note that original input is not modified.
  7654  func (s DeleteAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
  7655  	if s.AccountId == nil {
  7656  		s.AccountId = aws.String(accountId)
  7657  		return &s, nil
  7658  	} else if *s.AccountId != accountId {
  7659  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
  7660  	}
  7661  	return nil, nil
  7662  }
  7663  
  7664  type DeleteAccessPointOutput struct {
  7665  	_ struct{} `type:"structure"`
  7666  }
  7667  
  7668  // String returns the string representation.
  7669  //
  7670  // API parameter values that are decorated as "sensitive" in the API will not
  7671  // be included in the string output. The member name will be present, but the
  7672  // value will be replaced with "sensitive".
  7673  func (s DeleteAccessPointOutput) String() string {
  7674  	return awsutil.Prettify(s)
  7675  }
  7676  
  7677  // GoString returns the string representation.
  7678  //
  7679  // API parameter values that are decorated as "sensitive" in the API will not
  7680  // be included in the string output. The member name will be present, but the
  7681  // value will be replaced with "sensitive".
  7682  func (s DeleteAccessPointOutput) GoString() string {
  7683  	return s.String()
  7684  }
  7685  
  7686  type DeleteAccessPointPolicyForObjectLambdaInput struct {
  7687  	_ struct{} `locationName:"DeleteAccessPointPolicyForObjectLambdaRequest" type:"structure"`
  7688  
  7689  	// The account ID for the account that owns the specified Object Lambda Access
  7690  	// Point.
  7691  	//
  7692  	// AccountId is a required field
  7693  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  7694  
  7695  	// The name of the Object Lambda Access Point you want to delete the policy
  7696  	// for.
  7697  	//
  7698  	// Name is a required field
  7699  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  7700  }
  7701  
  7702  // String returns the string representation.
  7703  //
  7704  // API parameter values that are decorated as "sensitive" in the API will not
  7705  // be included in the string output. The member name will be present, but the
  7706  // value will be replaced with "sensitive".
  7707  func (s DeleteAccessPointPolicyForObjectLambdaInput) String() string {
  7708  	return awsutil.Prettify(s)
  7709  }
  7710  
  7711  // GoString returns the string representation.
  7712  //
  7713  // API parameter values that are decorated as "sensitive" in the API will not
  7714  // be included in the string output. The member name will be present, but the
  7715  // value will be replaced with "sensitive".
  7716  func (s DeleteAccessPointPolicyForObjectLambdaInput) GoString() string {
  7717  	return s.String()
  7718  }
  7719  
  7720  // Validate inspects the fields of the type to determine if they are valid.
  7721  func (s *DeleteAccessPointPolicyForObjectLambdaInput) Validate() error {
  7722  	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyForObjectLambdaInput"}
  7723  	if s.AccountId == nil {
  7724  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7725  	}
  7726  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  7727  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  7728  	}
  7729  	if s.Name == nil {
  7730  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7731  	}
  7732  	if s.Name != nil && len(*s.Name) < 3 {
  7733  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
  7734  	}
  7735  
  7736  	if invalidParams.Len() > 0 {
  7737  		return invalidParams
  7738  	}
  7739  	return nil
  7740  }
  7741  
  7742  // SetAccountId sets the AccountId field's value.
  7743  func (s *DeleteAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *DeleteAccessPointPolicyForObjectLambdaInput {
  7744  	s.AccountId = &v
  7745  	return s
  7746  }
  7747  
  7748  // SetName sets the Name field's value.
  7749  func (s *DeleteAccessPointPolicyForObjectLambdaInput) SetName(v string) *DeleteAccessPointPolicyForObjectLambdaInput {
  7750  	s.Name = &v
  7751  	return s
  7752  }
  7753  
  7754  func (s *DeleteAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string {
  7755  	return map[string]string{
  7756  		"AccountId": aws.StringValue(s.AccountId),
  7757  	}
  7758  }
  7759  
  7760  type DeleteAccessPointPolicyForObjectLambdaOutput struct {
  7761  	_ struct{} `type:"structure"`
  7762  }
  7763  
  7764  // String returns the string representation.
  7765  //
  7766  // API parameter values that are decorated as "sensitive" in the API will not
  7767  // be included in the string output. The member name will be present, but the
  7768  // value will be replaced with "sensitive".
  7769  func (s DeleteAccessPointPolicyForObjectLambdaOutput) String() string {
  7770  	return awsutil.Prettify(s)
  7771  }
  7772  
  7773  // GoString returns the string representation.
  7774  //
  7775  // API parameter values that are decorated as "sensitive" in the API will not
  7776  // be included in the string output. The member name will be present, but the
  7777  // value will be replaced with "sensitive".
  7778  func (s DeleteAccessPointPolicyForObjectLambdaOutput) GoString() string {
  7779  	return s.String()
  7780  }
  7781  
  7782  type DeleteAccessPointPolicyInput struct {
  7783  	_ struct{} `locationName:"DeleteAccessPointPolicyRequest" type:"structure"`
  7784  
  7785  	// The account ID for the account that owns the specified access point.
  7786  	//
  7787  	// AccountId is a required field
  7788  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  7789  
  7790  	// The name of the access point whose policy you want to delete.
  7791  	//
  7792  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
  7793  	// must specify the name and the x-amz-outpost-id as well.
  7794  	//
  7795  	// For using this parameter with S3 on Outposts with the Amazon Web Services
  7796  	// SDK and CLI, you must specify the ARN of the access point accessed in the
  7797  	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
  7798  	// For example, to access the access point reports-ap through outpost my-outpost
  7799  	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
  7800  	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
  7801  	// The value must be URL encoded.
  7802  	//
  7803  	// Name is a required field
  7804  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  7805  }
  7806  
  7807  // String returns the string representation.
  7808  //
  7809  // API parameter values that are decorated as "sensitive" in the API will not
  7810  // be included in the string output. The member name will be present, but the
  7811  // value will be replaced with "sensitive".
  7812  func (s DeleteAccessPointPolicyInput) String() string {
  7813  	return awsutil.Prettify(s)
  7814  }
  7815  
  7816  // GoString returns the string representation.
  7817  //
  7818  // API parameter values that are decorated as "sensitive" in the API will not
  7819  // be included in the string output. The member name will be present, but the
  7820  // value will be replaced with "sensitive".
  7821  func (s DeleteAccessPointPolicyInput) GoString() string {
  7822  	return s.String()
  7823  }
  7824  
  7825  // Validate inspects the fields of the type to determine if they are valid.
  7826  func (s *DeleteAccessPointPolicyInput) Validate() error {
  7827  	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyInput"}
  7828  	if s.AccountId == nil {
  7829  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7830  	}
  7831  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  7832  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  7833  	}
  7834  	if s.Name == nil {
  7835  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7836  	}
  7837  	if s.Name != nil && len(*s.Name) < 3 {
  7838  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
  7839  	}
  7840  
  7841  	if invalidParams.Len() > 0 {
  7842  		return invalidParams
  7843  	}
  7844  	return nil
  7845  }
  7846  
  7847  // SetAccountId sets the AccountId field's value.
  7848  func (s *DeleteAccessPointPolicyInput) SetAccountId(v string) *DeleteAccessPointPolicyInput {
  7849  	s.AccountId = &v
  7850  	return s
  7851  }
  7852  
  7853  // SetName sets the Name field's value.
  7854  func (s *DeleteAccessPointPolicyInput) SetName(v string) *DeleteAccessPointPolicyInput {
  7855  	s.Name = &v
  7856  	return s
  7857  }
  7858  
  7859  func (s *DeleteAccessPointPolicyInput) hostLabels() map[string]string {
  7860  	return map[string]string{
  7861  		"AccountId": aws.StringValue(s.AccountId),
  7862  	}
  7863  }
  7864  
  7865  func (s *DeleteAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
  7866  	if s.Name == nil {
  7867  		return nil, fmt.Errorf("member Name is nil")
  7868  	}
  7869  	return parseEndpointARN(*s.Name)
  7870  }
  7871  
  7872  func (s *DeleteAccessPointPolicyInput) hasEndpointARN() bool {
  7873  	if s.Name == nil {
  7874  		return false
  7875  	}
  7876  	return arn.IsARN(*s.Name)
  7877  }
  7878  
  7879  // updateArnableField updates the value of the input field that
  7880  // takes an ARN as an input. This method is useful to backfill
  7881  // the parsed resource name from ARN into the input member.
  7882  // It returns a pointer to a modified copy of input and an error.
  7883  // Note that original input is not modified.
  7884  func (s DeleteAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
  7885  	if s.Name == nil {
  7886  		return nil, fmt.Errorf("member Name is nil")
  7887  	}
  7888  	s.Name = aws.String(v)
  7889  	return &s, nil
  7890  }
  7891  
  7892  // updateAccountID returns a pointer to a modified copy of input,
  7893  // if account id is not provided, we update the account id in modified input
  7894  // if account id is provided, but doesn't match with the one in ARN, we throw an error
  7895  // if account id is not updated, we return nil. Note that original input is not modified.
  7896  func (s DeleteAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
  7897  	if s.AccountId == nil {
  7898  		s.AccountId = aws.String(accountId)
  7899  		return &s, nil
  7900  	} else if *s.AccountId != accountId {
  7901  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
  7902  	}
  7903  	return nil, nil
  7904  }
  7905  
  7906  type DeleteAccessPointPolicyOutput struct {
  7907  	_ struct{} `type:"structure"`
  7908  }
  7909  
  7910  // String returns the string representation.
  7911  //
  7912  // API parameter values that are decorated as "sensitive" in the API will not
  7913  // be included in the string output. The member name will be present, but the
  7914  // value will be replaced with "sensitive".
  7915  func (s DeleteAccessPointPolicyOutput) String() string {
  7916  	return awsutil.Prettify(s)
  7917  }
  7918  
  7919  // GoString returns the string representation.
  7920  //
  7921  // API parameter values that are decorated as "sensitive" in the API will not
  7922  // be included in the string output. The member name will be present, but the
  7923  // value will be replaced with "sensitive".
  7924  func (s DeleteAccessPointPolicyOutput) GoString() string {
  7925  	return s.String()
  7926  }
  7927  
  7928  type DeleteBucketInput struct {
  7929  	_ struct{} `locationName:"DeleteBucketRequest" type:"structure"`
  7930  
  7931  	// The account ID that owns the Outposts bucket.
  7932  	//
  7933  	// AccountId is a required field
  7934  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  7935  
  7936  	// Specifies the bucket being deleted.
  7937  	//
  7938  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
  7939  	// must specify the name and the x-amz-outpost-id as well.
  7940  	//
  7941  	// For using this parameter with S3 on Outposts with the Amazon Web Services
  7942  	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
  7943  	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
  7944  	// For example, to access the bucket reports through outpost my-outpost owned
  7945  	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
  7946  	// The value must be URL encoded.
  7947  	//
  7948  	// Bucket is a required field
  7949  	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  7950  }
  7951  
  7952  // String returns the string representation.
  7953  //
  7954  // API parameter values that are decorated as "sensitive" in the API will not
  7955  // be included in the string output. The member name will be present, but the
  7956  // value will be replaced with "sensitive".
  7957  func (s DeleteBucketInput) String() string {
  7958  	return awsutil.Prettify(s)
  7959  }
  7960  
  7961  // GoString returns the string representation.
  7962  //
  7963  // API parameter values that are decorated as "sensitive" in the API will not
  7964  // be included in the string output. The member name will be present, but the
  7965  // value will be replaced with "sensitive".
  7966  func (s DeleteBucketInput) GoString() string {
  7967  	return s.String()
  7968  }
  7969  
  7970  // Validate inspects the fields of the type to determine if they are valid.
  7971  func (s *DeleteBucketInput) Validate() error {
  7972  	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketInput"}
  7973  	if s.AccountId == nil {
  7974  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7975  	}
  7976  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  7977  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  7978  	}
  7979  	if s.Bucket == nil {
  7980  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
  7981  	}
  7982  	if s.Bucket != nil && len(*s.Bucket) < 3 {
  7983  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
  7984  	}
  7985  
  7986  	if invalidParams.Len() > 0 {
  7987  		return invalidParams
  7988  	}
  7989  	return nil
  7990  }
  7991  
  7992  // SetAccountId sets the AccountId field's value.
  7993  func (s *DeleteBucketInput) SetAccountId(v string) *DeleteBucketInput {
  7994  	s.AccountId = &v
  7995  	return s
  7996  }
  7997  
  7998  // SetBucket sets the Bucket field's value.
  7999  func (s *DeleteBucketInput) SetBucket(v string) *DeleteBucketInput {
  8000  	s.Bucket = &v
  8001  	return s
  8002  }
  8003  
  8004  func (s *DeleteBucketInput) hostLabels() map[string]string {
  8005  	return map[string]string{
  8006  		"AccountId": aws.StringValue(s.AccountId),
  8007  	}
  8008  }
  8009  
  8010  func (s *DeleteBucketInput) getEndpointARN() (arn.Resource, error) {
  8011  	if s.Bucket == nil {
  8012  		return nil, fmt.Errorf("member Bucket is nil")
  8013  	}
  8014  	return parseEndpointARN(*s.Bucket)
  8015  }
  8016  
  8017  func (s *DeleteBucketInput) hasEndpointARN() bool {
  8018  	if s.Bucket == nil {
  8019  		return false
  8020  	}
  8021  	return arn.IsARN(*s.Bucket)
  8022  }
  8023  
  8024  // updateArnableField updates the value of the input field that
  8025  // takes an ARN as an input. This method is useful to backfill
  8026  // the parsed resource name from ARN into the input member.
  8027  // It returns a pointer to a modified copy of input and an error.
  8028  // Note that original input is not modified.
  8029  func (s DeleteBucketInput) updateArnableField(v string) (interface{}, error) {
  8030  	if s.Bucket == nil {
  8031  		return nil, fmt.Errorf("member Bucket is nil")
  8032  	}
  8033  	s.Bucket = aws.String(v)
  8034  	return &s, nil
  8035  }
  8036  
  8037  // updateAccountID returns a pointer to a modified copy of input,
  8038  // if account id is not provided, we update the account id in modified input
  8039  // if account id is provided, but doesn't match with the one in ARN, we throw an error
  8040  // if account id is not updated, we return nil. Note that original input is not modified.
  8041  func (s DeleteBucketInput) updateAccountID(accountId string) (interface{}, error) {
  8042  	if s.AccountId == nil {
  8043  		s.AccountId = aws.String(accountId)
  8044  		return &s, nil
  8045  	} else if *s.AccountId != accountId {
  8046  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
  8047  	}
  8048  	return nil, nil
  8049  }
  8050  
  8051  type DeleteBucketLifecycleConfigurationInput struct {
  8052  	_ struct{} `locationName:"DeleteBucketLifecycleConfigurationRequest" type:"structure"`
  8053  
  8054  	// The account ID of the lifecycle configuration to delete.
  8055  	//
  8056  	// AccountId is a required field
  8057  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  8058  
  8059  	// Specifies the bucket.
  8060  	//
  8061  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
  8062  	// must specify the name and the x-amz-outpost-id as well.
  8063  	//
  8064  	// For using this parameter with S3 on Outposts with the Amazon Web Services
  8065  	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
  8066  	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
  8067  	// For example, to access the bucket reports through outpost my-outpost owned
  8068  	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
  8069  	// The value must be URL encoded.
  8070  	//
  8071  	// Bucket is a required field
  8072  	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  8073  }
  8074  
  8075  // String returns the string representation.
  8076  //
  8077  // API parameter values that are decorated as "sensitive" in the API will not
  8078  // be included in the string output. The member name will be present, but the
  8079  // value will be replaced with "sensitive".
  8080  func (s DeleteBucketLifecycleConfigurationInput) String() string {
  8081  	return awsutil.Prettify(s)
  8082  }
  8083  
  8084  // GoString returns the string representation.
  8085  //
  8086  // API parameter values that are decorated as "sensitive" in the API will not
  8087  // be included in the string output. The member name will be present, but the
  8088  // value will be replaced with "sensitive".
  8089  func (s DeleteBucketLifecycleConfigurationInput) GoString() string {
  8090  	return s.String()
  8091  }
  8092  
  8093  // Validate inspects the fields of the type to determine if they are valid.
  8094  func (s *DeleteBucketLifecycleConfigurationInput) Validate() error {
  8095  	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketLifecycleConfigurationInput"}
  8096  	if s.AccountId == nil {
  8097  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  8098  	}
  8099  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  8100  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  8101  	}
  8102  	if s.Bucket == nil {
  8103  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
  8104  	}
  8105  	if s.Bucket != nil && len(*s.Bucket) < 3 {
  8106  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
  8107  	}
  8108  
  8109  	if invalidParams.Len() > 0 {
  8110  		return invalidParams
  8111  	}
  8112  	return nil
  8113  }
  8114  
  8115  // SetAccountId sets the AccountId field's value.
  8116  func (s *DeleteBucketLifecycleConfigurationInput) SetAccountId(v string) *DeleteBucketLifecycleConfigurationInput {
  8117  	s.AccountId = &v
  8118  	return s
  8119  }
  8120  
  8121  // SetBucket sets the Bucket field's value.
  8122  func (s *DeleteBucketLifecycleConfigurationInput) SetBucket(v string) *DeleteBucketLifecycleConfigurationInput {
  8123  	s.Bucket = &v
  8124  	return s
  8125  }
  8126  
  8127  func (s *DeleteBucketLifecycleConfigurationInput) hostLabels() map[string]string {
  8128  	return map[string]string{
  8129  		"AccountId": aws.StringValue(s.AccountId),
  8130  	}
  8131  }
  8132  
  8133  func (s *DeleteBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
  8134  	if s.Bucket == nil {
  8135  		return nil, fmt.Errorf("member Bucket is nil")
  8136  	}
  8137  	return parseEndpointARN(*s.Bucket)
  8138  }
  8139  
  8140  func (s *DeleteBucketLifecycleConfigurationInput) hasEndpointARN() bool {
  8141  	if s.Bucket == nil {
  8142  		return false
  8143  	}
  8144  	return arn.IsARN(*s.Bucket)
  8145  }
  8146  
  8147  // updateArnableField updates the value of the input field that
  8148  // takes an ARN as an input. This method is useful to backfill
  8149  // the parsed resource name from ARN into the input member.
  8150  // It returns a pointer to a modified copy of input and an error.
  8151  // Note that original input is not modified.
  8152  func (s DeleteBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
  8153  	if s.Bucket == nil {
  8154  		return nil, fmt.Errorf("member Bucket is nil")
  8155  	}
  8156  	s.Bucket = aws.String(v)
  8157  	return &s, nil
  8158  }
  8159  
  8160  // updateAccountID returns a pointer to a modified copy of input,
  8161  // if account id is not provided, we update the account id in modified input
  8162  // if account id is provided, but doesn't match with the one in ARN, we throw an error
  8163  // if account id is not updated, we return nil. Note that original input is not modified.
  8164  func (s DeleteBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
  8165  	if s.AccountId == nil {
  8166  		s.AccountId = aws.String(accountId)
  8167  		return &s, nil
  8168  	} else if *s.AccountId != accountId {
  8169  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
  8170  	}
  8171  	return nil, nil
  8172  }
  8173  
  8174  type DeleteBucketLifecycleConfigurationOutput struct {
  8175  	_ struct{} `type:"structure"`
  8176  }
  8177  
  8178  // String returns the string representation.
  8179  //
  8180  // API parameter values that are decorated as "sensitive" in the API will not
  8181  // be included in the string output. The member name will be present, but the
  8182  // value will be replaced with "sensitive".
  8183  func (s DeleteBucketLifecycleConfigurationOutput) String() string {
  8184  	return awsutil.Prettify(s)
  8185  }
  8186  
  8187  // GoString returns the string representation.
  8188  //
  8189  // API parameter values that are decorated as "sensitive" in the API will not
  8190  // be included in the string output. The member name will be present, but the
  8191  // value will be replaced with "sensitive".
  8192  func (s DeleteBucketLifecycleConfigurationOutput) GoString() string {
  8193  	return s.String()
  8194  }
  8195  
  8196  type DeleteBucketOutput struct {
  8197  	_ struct{} `type:"structure"`
  8198  }
  8199  
  8200  // String returns the string representation.
  8201  //
  8202  // API parameter values that are decorated as "sensitive" in the API will not
  8203  // be included in the string output. The member name will be present, but the
  8204  // value will be replaced with "sensitive".
  8205  func (s DeleteBucketOutput) String() string {
  8206  	return awsutil.Prettify(s)
  8207  }
  8208  
  8209  // GoString returns the string representation.
  8210  //
  8211  // API parameter values that are decorated as "sensitive" in the API will not
  8212  // be included in the string output. The member name will be present, but the
  8213  // value will be replaced with "sensitive".
  8214  func (s DeleteBucketOutput) GoString() string {
  8215  	return s.String()
  8216  }
  8217  
  8218  type DeleteBucketPolicyInput struct {
  8219  	_ struct{} `locationName:"DeleteBucketPolicyRequest" type:"structure"`
  8220  
  8221  	// The account ID of the Outposts bucket.
  8222  	//
  8223  	// AccountId is a required field
  8224  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  8225  
  8226  	// Specifies the bucket.
  8227  	//
  8228  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
  8229  	// must specify the name and the x-amz-outpost-id as well.
  8230  	//
  8231  	// For using this parameter with S3 on Outposts with the Amazon Web Services
  8232  	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
  8233  	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
  8234  	// For example, to access the bucket reports through outpost my-outpost owned
  8235  	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
  8236  	// The value must be URL encoded.
  8237  	//
  8238  	// Bucket is a required field
  8239  	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  8240  }
  8241  
  8242  // String returns the string representation.
  8243  //
  8244  // API parameter values that are decorated as "sensitive" in the API will not
  8245  // be included in the string output. The member name will be present, but the
  8246  // value will be replaced with "sensitive".
  8247  func (s DeleteBucketPolicyInput) String() string {
  8248  	return awsutil.Prettify(s)
  8249  }
  8250  
  8251  // GoString returns the string representation.
  8252  //
  8253  // API parameter values that are decorated as "sensitive" in the API will not
  8254  // be included in the string output. The member name will be present, but the
  8255  // value will be replaced with "sensitive".
  8256  func (s DeleteBucketPolicyInput) GoString() string {
  8257  	return s.String()
  8258  }
  8259  
  8260  // Validate inspects the fields of the type to determine if they are valid.
  8261  func (s *DeleteBucketPolicyInput) Validate() error {
  8262  	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketPolicyInput"}
  8263  	if s.AccountId == nil {
  8264  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  8265  	}
  8266  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  8267  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  8268  	}
  8269  	if s.Bucket == nil {
  8270  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
  8271  	}
  8272  	if s.Bucket != nil && len(*s.Bucket) < 3 {
  8273  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
  8274  	}
  8275  
  8276  	if invalidParams.Len() > 0 {
  8277  		return invalidParams
  8278  	}
  8279  	return nil
  8280  }
  8281  
  8282  // SetAccountId sets the AccountId field's value.
  8283  func (s *DeleteBucketPolicyInput) SetAccountId(v string) *DeleteBucketPolicyInput {
  8284  	s.AccountId = &v
  8285  	return s
  8286  }
  8287  
  8288  // SetBucket sets the Bucket field's value.
  8289  func (s *DeleteBucketPolicyInput) SetBucket(v string) *DeleteBucketPolicyInput {
  8290  	s.Bucket = &v
  8291  	return s
  8292  }
  8293  
  8294  func (s *DeleteBucketPolicyInput) hostLabels() map[string]string {
  8295  	return map[string]string{
  8296  		"AccountId": aws.StringValue(s.AccountId),
  8297  	}
  8298  }
  8299  
  8300  func (s *DeleteBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
  8301  	if s.Bucket == nil {
  8302  		return nil, fmt.Errorf("member Bucket is nil")
  8303  	}
  8304  	return parseEndpointARN(*s.Bucket)
  8305  }
  8306  
  8307  func (s *DeleteBucketPolicyInput) hasEndpointARN() bool {
  8308  	if s.Bucket == nil {
  8309  		return false
  8310  	}
  8311  	return arn.IsARN(*s.Bucket)
  8312  }
  8313  
  8314  // updateArnableField updates the value of the input field that
  8315  // takes an ARN as an input. This method is useful to backfill
  8316  // the parsed resource name from ARN into the input member.
  8317  // It returns a pointer to a modified copy of input and an error.
  8318  // Note that original input is not modified.
  8319  func (s DeleteBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
  8320  	if s.Bucket == nil {
  8321  		return nil, fmt.Errorf("member Bucket is nil")
  8322  	}
  8323  	s.Bucket = aws.String(v)
  8324  	return &s, nil
  8325  }
  8326  
  8327  // updateAccountID returns a pointer to a modified copy of input,
  8328  // if account id is not provided, we update the account id in modified input
  8329  // if account id is provided, but doesn't match with the one in ARN, we throw an error
  8330  // if account id is not updated, we return nil. Note that original input is not modified.
  8331  func (s DeleteBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
  8332  	if s.AccountId == nil {
  8333  		s.AccountId = aws.String(accountId)
  8334  		return &s, nil
  8335  	} else if *s.AccountId != accountId {
  8336  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
  8337  	}
  8338  	return nil, nil
  8339  }
  8340  
  8341  type DeleteBucketPolicyOutput struct {
  8342  	_ struct{} `type:"structure"`
  8343  }
  8344  
  8345  // String returns the string representation.
  8346  //
  8347  // API parameter values that are decorated as "sensitive" in the API will not
  8348  // be included in the string output. The member name will be present, but the
  8349  // value will be replaced with "sensitive".
  8350  func (s DeleteBucketPolicyOutput) String() string {
  8351  	return awsutil.Prettify(s)
  8352  }
  8353  
  8354  // GoString returns the string representation.
  8355  //
  8356  // API parameter values that are decorated as "sensitive" in the API will not
  8357  // be included in the string output. The member name will be present, but the
  8358  // value will be replaced with "sensitive".
  8359  func (s DeleteBucketPolicyOutput) GoString() string {
  8360  	return s.String()
  8361  }
  8362  
  8363  type DeleteBucketTaggingInput struct {
  8364  	_ struct{} `locationName:"DeleteBucketTaggingRequest" type:"structure"`
  8365  
  8366  	// The Amazon Web Services account ID of the Outposts bucket tag set to be removed.
  8367  	//
  8368  	// AccountId is a required field
  8369  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  8370  
  8371  	// The bucket ARN that has the tag set to be removed.
  8372  	//
  8373  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
  8374  	// must specify the name and the x-amz-outpost-id as well.
  8375  	//
  8376  	// For using this parameter with S3 on Outposts with the Amazon Web Services
  8377  	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
  8378  	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
  8379  	// For example, to access the bucket reports through outpost my-outpost owned
  8380  	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
  8381  	// The value must be URL encoded.
  8382  	//
  8383  	// Bucket is a required field
  8384  	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  8385  }
  8386  
  8387  // String returns the string representation.
  8388  //
  8389  // API parameter values that are decorated as "sensitive" in the API will not
  8390  // be included in the string output. The member name will be present, but the
  8391  // value will be replaced with "sensitive".
  8392  func (s DeleteBucketTaggingInput) String() string {
  8393  	return awsutil.Prettify(s)
  8394  }
  8395  
  8396  // GoString returns the string representation.
  8397  //
  8398  // API parameter values that are decorated as "sensitive" in the API will not
  8399  // be included in the string output. The member name will be present, but the
  8400  // value will be replaced with "sensitive".
  8401  func (s DeleteBucketTaggingInput) GoString() string {
  8402  	return s.String()
  8403  }
  8404  
  8405  // Validate inspects the fields of the type to determine if they are valid.
  8406  func (s *DeleteBucketTaggingInput) Validate() error {
  8407  	invalidParams := request.ErrInvalidParams{Context: "DeleteBucketTaggingInput"}
  8408  	if s.AccountId == nil {
  8409  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  8410  	}
  8411  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  8412  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  8413  	}
  8414  	if s.Bucket == nil {
  8415  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
  8416  	}
  8417  	if s.Bucket != nil && len(*s.Bucket) < 3 {
  8418  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
  8419  	}
  8420  
  8421  	if invalidParams.Len() > 0 {
  8422  		return invalidParams
  8423  	}
  8424  	return nil
  8425  }
  8426  
  8427  // SetAccountId sets the AccountId field's value.
  8428  func (s *DeleteBucketTaggingInput) SetAccountId(v string) *DeleteBucketTaggingInput {
  8429  	s.AccountId = &v
  8430  	return s
  8431  }
  8432  
  8433  // SetBucket sets the Bucket field's value.
  8434  func (s *DeleteBucketTaggingInput) SetBucket(v string) *DeleteBucketTaggingInput {
  8435  	s.Bucket = &v
  8436  	return s
  8437  }
  8438  
  8439  func (s *DeleteBucketTaggingInput) hostLabels() map[string]string {
  8440  	return map[string]string{
  8441  		"AccountId": aws.StringValue(s.AccountId),
  8442  	}
  8443  }
  8444  
  8445  func (s *DeleteBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
  8446  	if s.Bucket == nil {
  8447  		return nil, fmt.Errorf("member Bucket is nil")
  8448  	}
  8449  	return parseEndpointARN(*s.Bucket)
  8450  }
  8451  
  8452  func (s *DeleteBucketTaggingInput) hasEndpointARN() bool {
  8453  	if s.Bucket == nil {
  8454  		return false
  8455  	}
  8456  	return arn.IsARN(*s.Bucket)
  8457  }
  8458  
  8459  // updateArnableField updates the value of the input field that
  8460  // takes an ARN as an input. This method is useful to backfill
  8461  // the parsed resource name from ARN into the input member.
  8462  // It returns a pointer to a modified copy of input and an error.
  8463  // Note that original input is not modified.
  8464  func (s DeleteBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
  8465  	if s.Bucket == nil {
  8466  		return nil, fmt.Errorf("member Bucket is nil")
  8467  	}
  8468  	s.Bucket = aws.String(v)
  8469  	return &s, nil
  8470  }
  8471  
  8472  // updateAccountID returns a pointer to a modified copy of input,
  8473  // if account id is not provided, we update the account id in modified input
  8474  // if account id is provided, but doesn't match with the one in ARN, we throw an error
  8475  // if account id is not updated, we return nil. Note that original input is not modified.
  8476  func (s DeleteBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
  8477  	if s.AccountId == nil {
  8478  		s.AccountId = aws.String(accountId)
  8479  		return &s, nil
  8480  	} else if *s.AccountId != accountId {
  8481  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
  8482  	}
  8483  	return nil, nil
  8484  }
  8485  
  8486  type DeleteBucketTaggingOutput struct {
  8487  	_ struct{} `type:"structure"`
  8488  }
  8489  
  8490  // String returns the string representation.
  8491  //
  8492  // API parameter values that are decorated as "sensitive" in the API will not
  8493  // be included in the string output. The member name will be present, but the
  8494  // value will be replaced with "sensitive".
  8495  func (s DeleteBucketTaggingOutput) String() string {
  8496  	return awsutil.Prettify(s)
  8497  }
  8498  
  8499  // GoString returns the string representation.
  8500  //
  8501  // API parameter values that are decorated as "sensitive" in the API will not
  8502  // be included in the string output. The member name will be present, but the
  8503  // value will be replaced with "sensitive".
  8504  func (s DeleteBucketTaggingOutput) GoString() string {
  8505  	return s.String()
  8506  }
  8507  
  8508  type DeleteJobTaggingInput struct {
  8509  	_ struct{} `locationName:"DeleteJobTaggingRequest" type:"structure"`
  8510  
  8511  	// The Amazon Web Services account ID associated with the S3 Batch Operations
  8512  	// job.
  8513  	//
  8514  	// AccountId is a required field
  8515  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  8516  
  8517  	// The ID for the S3 Batch Operations job whose tags you want to delete.
  8518  	//
  8519  	// JobId is a required field
  8520  	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
  8521  }
  8522  
  8523  // String returns the string representation.
  8524  //
  8525  // API parameter values that are decorated as "sensitive" in the API will not
  8526  // be included in the string output. The member name will be present, but the
  8527  // value will be replaced with "sensitive".
  8528  func (s DeleteJobTaggingInput) String() string {
  8529  	return awsutil.Prettify(s)
  8530  }
  8531  
  8532  // GoString returns the string representation.
  8533  //
  8534  // API parameter values that are decorated as "sensitive" in the API will not
  8535  // be included in the string output. The member name will be present, but the
  8536  // value will be replaced with "sensitive".
  8537  func (s DeleteJobTaggingInput) GoString() string {
  8538  	return s.String()
  8539  }
  8540  
  8541  // Validate inspects the fields of the type to determine if they are valid.
  8542  func (s *DeleteJobTaggingInput) Validate() error {
  8543  	invalidParams := request.ErrInvalidParams{Context: "DeleteJobTaggingInput"}
  8544  	if s.AccountId == nil {
  8545  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  8546  	}
  8547  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  8548  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  8549  	}
  8550  	if s.JobId == nil {
  8551  		invalidParams.Add(request.NewErrParamRequired("JobId"))
  8552  	}
  8553  	if s.JobId != nil && len(*s.JobId) < 5 {
  8554  		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
  8555  	}
  8556  
  8557  	if invalidParams.Len() > 0 {
  8558  		return invalidParams
  8559  	}
  8560  	return nil
  8561  }
  8562  
  8563  // SetAccountId sets the AccountId field's value.
  8564  func (s *DeleteJobTaggingInput) SetAccountId(v string) *DeleteJobTaggingInput {
  8565  	s.AccountId = &v
  8566  	return s
  8567  }
  8568  
  8569  // SetJobId sets the JobId field's value.
  8570  func (s *DeleteJobTaggingInput) SetJobId(v string) *DeleteJobTaggingInput {
  8571  	s.JobId = &v
  8572  	return s
  8573  }
  8574  
  8575  func (s *DeleteJobTaggingInput) hostLabels() map[string]string {
  8576  	return map[string]string{
  8577  		"AccountId": aws.StringValue(s.AccountId),
  8578  	}
  8579  }
  8580  
  8581  type DeleteJobTaggingOutput struct {
  8582  	_ struct{} `type:"structure"`
  8583  }
  8584  
  8585  // String returns the string representation.
  8586  //
  8587  // API parameter values that are decorated as "sensitive" in the API will not
  8588  // be included in the string output. The member name will be present, but the
  8589  // value will be replaced with "sensitive".
  8590  func (s DeleteJobTaggingOutput) String() string {
  8591  	return awsutil.Prettify(s)
  8592  }
  8593  
  8594  // GoString returns the string representation.
  8595  //
  8596  // API parameter values that are decorated as "sensitive" in the API will not
  8597  // be included in the string output. The member name will be present, but the
  8598  // value will be replaced with "sensitive".
  8599  func (s DeleteJobTaggingOutput) GoString() string {
  8600  	return s.String()
  8601  }
  8602  
  8603  type DeleteMultiRegionAccessPointInput struct {
  8604  	_ struct{} `locationName:"DeleteMultiRegionAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
  8605  
  8606  	// The Amazon Web Services account ID for the owner of the Multi-Region Access
  8607  	// Point.
  8608  	//
  8609  	// AccountId is a required field
  8610  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  8611  
  8612  	// An idempotency token used to identify the request and guarantee that requests
  8613  	// are unique.
  8614  	ClientToken *string `type:"string" idempotencyToken:"true"`
  8615  
  8616  	// A container element containing details about the Multi-Region Access Point.
  8617  	//
  8618  	// Details is a required field
  8619  	Details *DeleteMultiRegionAccessPointInput_ `type:"structure" required:"true"`
  8620  }
  8621  
  8622  // String returns the string representation.
  8623  //
  8624  // API parameter values that are decorated as "sensitive" in the API will not
  8625  // be included in the string output. The member name will be present, but the
  8626  // value will be replaced with "sensitive".
  8627  func (s DeleteMultiRegionAccessPointInput) String() string {
  8628  	return awsutil.Prettify(s)
  8629  }
  8630  
  8631  // GoString returns the string representation.
  8632  //
  8633  // API parameter values that are decorated as "sensitive" in the API will not
  8634  // be included in the string output. The member name will be present, but the
  8635  // value will be replaced with "sensitive".
  8636  func (s DeleteMultiRegionAccessPointInput) GoString() string {
  8637  	return s.String()
  8638  }
  8639  
  8640  // Validate inspects the fields of the type to determine if they are valid.
  8641  func (s *DeleteMultiRegionAccessPointInput) Validate() error {
  8642  	invalidParams := request.ErrInvalidParams{Context: "DeleteMultiRegionAccessPointInput"}
  8643  	if s.AccountId == nil {
  8644  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  8645  	}
  8646  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  8647  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  8648  	}
  8649  	if s.Details == nil {
  8650  		invalidParams.Add(request.NewErrParamRequired("Details"))
  8651  	}
  8652  	if s.Details != nil {
  8653  		if err := s.Details.Validate(); err != nil {
  8654  			invalidParams.AddNested("Details", err.(request.ErrInvalidParams))
  8655  		}
  8656  	}
  8657  
  8658  	if invalidParams.Len() > 0 {
  8659  		return invalidParams
  8660  	}
  8661  	return nil
  8662  }
  8663  
  8664  // SetAccountId sets the AccountId field's value.
  8665  func (s *DeleteMultiRegionAccessPointInput) SetAccountId(v string) *DeleteMultiRegionAccessPointInput {
  8666  	s.AccountId = &v
  8667  	return s
  8668  }
  8669  
  8670  // SetClientToken sets the ClientToken field's value.
  8671  func (s *DeleteMultiRegionAccessPointInput) SetClientToken(v string) *DeleteMultiRegionAccessPointInput {
  8672  	s.ClientToken = &v
  8673  	return s
  8674  }
  8675  
  8676  // SetDetails sets the Details field's value.
  8677  func (s *DeleteMultiRegionAccessPointInput) SetDetails(v *DeleteMultiRegionAccessPointInput_) *DeleteMultiRegionAccessPointInput {
  8678  	s.Details = v
  8679  	return s
  8680  }
  8681  
  8682  func (s *DeleteMultiRegionAccessPointInput) hostLabels() map[string]string {
  8683  	return map[string]string{
  8684  		"AccountId": aws.StringValue(s.AccountId),
  8685  	}
  8686  }
  8687  
  8688  // A container for the information associated with a DeleteMultiRegionAccessPoint
  8689  // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)
  8690  // request.
  8691  type DeleteMultiRegionAccessPointInput_ struct {
  8692  	_ struct{} `type:"structure"`
  8693  
  8694  	// The name of the Multi-Region Access Point associated with this request.
  8695  	//
  8696  	// Name is a required field
  8697  	Name *string `type:"string" required:"true"`
  8698  }
  8699  
  8700  // String returns the string representation.
  8701  //
  8702  // API parameter values that are decorated as "sensitive" in the API will not
  8703  // be included in the string output. The member name will be present, but the
  8704  // value will be replaced with "sensitive".
  8705  func (s DeleteMultiRegionAccessPointInput_) String() string {
  8706  	return awsutil.Prettify(s)
  8707  }
  8708  
  8709  // GoString returns the string representation.
  8710  //
  8711  // API parameter values that are decorated as "sensitive" in the API will not
  8712  // be included in the string output. The member name will be present, but the
  8713  // value will be replaced with "sensitive".
  8714  func (s DeleteMultiRegionAccessPointInput_) GoString() string {
  8715  	return s.String()
  8716  }
  8717  
  8718  // Validate inspects the fields of the type to determine if they are valid.
  8719  func (s *DeleteMultiRegionAccessPointInput_) Validate() error {
  8720  	invalidParams := request.ErrInvalidParams{Context: "DeleteMultiRegionAccessPointInput_"}
  8721  	if s.Name == nil {
  8722  		invalidParams.Add(request.NewErrParamRequired("Name"))
  8723  	}
  8724  
  8725  	if invalidParams.Len() > 0 {
  8726  		return invalidParams
  8727  	}
  8728  	return nil
  8729  }
  8730  
  8731  // SetName sets the Name field's value.
  8732  func (s *DeleteMultiRegionAccessPointInput_) SetName(v string) *DeleteMultiRegionAccessPointInput_ {
  8733  	s.Name = &v
  8734  	return s
  8735  }
  8736  
  8737  type DeleteMultiRegionAccessPointOutput struct {
  8738  	_ struct{} `type:"structure"`
  8739  
  8740  	// The request token associated with the request. You can use this token with
  8741  	// DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
  8742  	// to determine the status of asynchronous requests.
  8743  	RequestTokenARN *string `min:"1" type:"string"`
  8744  }
  8745  
  8746  // String returns the string representation.
  8747  //
  8748  // API parameter values that are decorated as "sensitive" in the API will not
  8749  // be included in the string output. The member name will be present, but the
  8750  // value will be replaced with "sensitive".
  8751  func (s DeleteMultiRegionAccessPointOutput) String() string {
  8752  	return awsutil.Prettify(s)
  8753  }
  8754  
  8755  // GoString returns the string representation.
  8756  //
  8757  // API parameter values that are decorated as "sensitive" in the API will not
  8758  // be included in the string output. The member name will be present, but the
  8759  // value will be replaced with "sensitive".
  8760  func (s DeleteMultiRegionAccessPointOutput) GoString() string {
  8761  	return s.String()
  8762  }
  8763  
  8764  // SetRequestTokenARN sets the RequestTokenARN field's value.
  8765  func (s *DeleteMultiRegionAccessPointOutput) SetRequestTokenARN(v string) *DeleteMultiRegionAccessPointOutput {
  8766  	s.RequestTokenARN = &v
  8767  	return s
  8768  }
  8769  
  8770  type DeletePublicAccessBlockInput struct {
  8771  	_ struct{} `locationName:"DeletePublicAccessBlockRequest" type:"structure"`
  8772  
  8773  	// The account ID for the Amazon Web Services account whose PublicAccessBlock
  8774  	// configuration you want to remove.
  8775  	//
  8776  	// AccountId is a required field
  8777  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  8778  }
  8779  
  8780  // String returns the string representation.
  8781  //
  8782  // API parameter values that are decorated as "sensitive" in the API will not
  8783  // be included in the string output. The member name will be present, but the
  8784  // value will be replaced with "sensitive".
  8785  func (s DeletePublicAccessBlockInput) String() string {
  8786  	return awsutil.Prettify(s)
  8787  }
  8788  
  8789  // GoString returns the string representation.
  8790  //
  8791  // API parameter values that are decorated as "sensitive" in the API will not
  8792  // be included in the string output. The member name will be present, but the
  8793  // value will be replaced with "sensitive".
  8794  func (s DeletePublicAccessBlockInput) GoString() string {
  8795  	return s.String()
  8796  }
  8797  
  8798  // Validate inspects the fields of the type to determine if they are valid.
  8799  func (s *DeletePublicAccessBlockInput) Validate() error {
  8800  	invalidParams := request.ErrInvalidParams{Context: "DeletePublicAccessBlockInput"}
  8801  	if s.AccountId == nil {
  8802  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  8803  	}
  8804  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  8805  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  8806  	}
  8807  
  8808  	if invalidParams.Len() > 0 {
  8809  		return invalidParams
  8810  	}
  8811  	return nil
  8812  }
  8813  
  8814  // SetAccountId sets the AccountId field's value.
  8815  func (s *DeletePublicAccessBlockInput) SetAccountId(v string) *DeletePublicAccessBlockInput {
  8816  	s.AccountId = &v
  8817  	return s
  8818  }
  8819  
  8820  func (s *DeletePublicAccessBlockInput) hostLabels() map[string]string {
  8821  	return map[string]string{
  8822  		"AccountId": aws.StringValue(s.AccountId),
  8823  	}
  8824  }
  8825  
  8826  type DeletePublicAccessBlockOutput struct {
  8827  	_ struct{} `type:"structure"`
  8828  }
  8829  
  8830  // String returns the string representation.
  8831  //
  8832  // API parameter values that are decorated as "sensitive" in the API will not
  8833  // be included in the string output. The member name will be present, but the
  8834  // value will be replaced with "sensitive".
  8835  func (s DeletePublicAccessBlockOutput) String() string {
  8836  	return awsutil.Prettify(s)
  8837  }
  8838  
  8839  // GoString returns the string representation.
  8840  //
  8841  // API parameter values that are decorated as "sensitive" in the API will not
  8842  // be included in the string output. The member name will be present, but the
  8843  // value will be replaced with "sensitive".
  8844  func (s DeletePublicAccessBlockOutput) GoString() string {
  8845  	return s.String()
  8846  }
  8847  
  8848  type DeleteStorageLensConfigurationInput struct {
  8849  	_ struct{} `locationName:"DeleteStorageLensConfigurationRequest" type:"structure"`
  8850  
  8851  	// The account ID of the requester.
  8852  	//
  8853  	// AccountId is a required field
  8854  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  8855  
  8856  	// The ID of the S3 Storage Lens configuration.
  8857  	//
  8858  	// ConfigId is a required field
  8859  	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
  8860  }
  8861  
  8862  // String returns the string representation.
  8863  //
  8864  // API parameter values that are decorated as "sensitive" in the API will not
  8865  // be included in the string output. The member name will be present, but the
  8866  // value will be replaced with "sensitive".
  8867  func (s DeleteStorageLensConfigurationInput) String() string {
  8868  	return awsutil.Prettify(s)
  8869  }
  8870  
  8871  // GoString returns the string representation.
  8872  //
  8873  // API parameter values that are decorated as "sensitive" in the API will not
  8874  // be included in the string output. The member name will be present, but the
  8875  // value will be replaced with "sensitive".
  8876  func (s DeleteStorageLensConfigurationInput) GoString() string {
  8877  	return s.String()
  8878  }
  8879  
  8880  // Validate inspects the fields of the type to determine if they are valid.
  8881  func (s *DeleteStorageLensConfigurationInput) Validate() error {
  8882  	invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationInput"}
  8883  	if s.AccountId == nil {
  8884  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  8885  	}
  8886  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  8887  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  8888  	}
  8889  	if s.ConfigId == nil {
  8890  		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
  8891  	}
  8892  	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
  8893  		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
  8894  	}
  8895  
  8896  	if invalidParams.Len() > 0 {
  8897  		return invalidParams
  8898  	}
  8899  	return nil
  8900  }
  8901  
  8902  // SetAccountId sets the AccountId field's value.
  8903  func (s *DeleteStorageLensConfigurationInput) SetAccountId(v string) *DeleteStorageLensConfigurationInput {
  8904  	s.AccountId = &v
  8905  	return s
  8906  }
  8907  
  8908  // SetConfigId sets the ConfigId field's value.
  8909  func (s *DeleteStorageLensConfigurationInput) SetConfigId(v string) *DeleteStorageLensConfigurationInput {
  8910  	s.ConfigId = &v
  8911  	return s
  8912  }
  8913  
  8914  func (s *DeleteStorageLensConfigurationInput) hostLabels() map[string]string {
  8915  	return map[string]string{
  8916  		"AccountId": aws.StringValue(s.AccountId),
  8917  	}
  8918  }
  8919  
  8920  type DeleteStorageLensConfigurationOutput struct {
  8921  	_ struct{} `type:"structure"`
  8922  }
  8923  
  8924  // String returns the string representation.
  8925  //
  8926  // API parameter values that are decorated as "sensitive" in the API will not
  8927  // be included in the string output. The member name will be present, but the
  8928  // value will be replaced with "sensitive".
  8929  func (s DeleteStorageLensConfigurationOutput) String() string {
  8930  	return awsutil.Prettify(s)
  8931  }
  8932  
  8933  // GoString returns the string representation.
  8934  //
  8935  // API parameter values that are decorated as "sensitive" in the API will not
  8936  // be included in the string output. The member name will be present, but the
  8937  // value will be replaced with "sensitive".
  8938  func (s DeleteStorageLensConfigurationOutput) GoString() string {
  8939  	return s.String()
  8940  }
  8941  
  8942  type DeleteStorageLensConfigurationTaggingInput struct {
  8943  	_ struct{} `locationName:"DeleteStorageLensConfigurationTaggingRequest" type:"structure"`
  8944  
  8945  	// The account ID of the requester.
  8946  	//
  8947  	// AccountId is a required field
  8948  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  8949  
  8950  	// The ID of the S3 Storage Lens configuration.
  8951  	//
  8952  	// ConfigId is a required field
  8953  	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
  8954  }
  8955  
  8956  // String returns the string representation.
  8957  //
  8958  // API parameter values that are decorated as "sensitive" in the API will not
  8959  // be included in the string output. The member name will be present, but the
  8960  // value will be replaced with "sensitive".
  8961  func (s DeleteStorageLensConfigurationTaggingInput) String() string {
  8962  	return awsutil.Prettify(s)
  8963  }
  8964  
  8965  // GoString returns the string representation.
  8966  //
  8967  // API parameter values that are decorated as "sensitive" in the API will not
  8968  // be included in the string output. The member name will be present, but the
  8969  // value will be replaced with "sensitive".
  8970  func (s DeleteStorageLensConfigurationTaggingInput) GoString() string {
  8971  	return s.String()
  8972  }
  8973  
  8974  // Validate inspects the fields of the type to determine if they are valid.
  8975  func (s *DeleteStorageLensConfigurationTaggingInput) Validate() error {
  8976  	invalidParams := request.ErrInvalidParams{Context: "DeleteStorageLensConfigurationTaggingInput"}
  8977  	if s.AccountId == nil {
  8978  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  8979  	}
  8980  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  8981  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  8982  	}
  8983  	if s.ConfigId == nil {
  8984  		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
  8985  	}
  8986  	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
  8987  		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
  8988  	}
  8989  
  8990  	if invalidParams.Len() > 0 {
  8991  		return invalidParams
  8992  	}
  8993  	return nil
  8994  }
  8995  
  8996  // SetAccountId sets the AccountId field's value.
  8997  func (s *DeleteStorageLensConfigurationTaggingInput) SetAccountId(v string) *DeleteStorageLensConfigurationTaggingInput {
  8998  	s.AccountId = &v
  8999  	return s
  9000  }
  9001  
  9002  // SetConfigId sets the ConfigId field's value.
  9003  func (s *DeleteStorageLensConfigurationTaggingInput) SetConfigId(v string) *DeleteStorageLensConfigurationTaggingInput {
  9004  	s.ConfigId = &v
  9005  	return s
  9006  }
  9007  
  9008  func (s *DeleteStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
  9009  	return map[string]string{
  9010  		"AccountId": aws.StringValue(s.AccountId),
  9011  	}
  9012  }
  9013  
  9014  type DeleteStorageLensConfigurationTaggingOutput struct {
  9015  	_ struct{} `type:"structure"`
  9016  }
  9017  
  9018  // String returns the string representation.
  9019  //
  9020  // API parameter values that are decorated as "sensitive" in the API will not
  9021  // be included in the string output. The member name will be present, but the
  9022  // value will be replaced with "sensitive".
  9023  func (s DeleteStorageLensConfigurationTaggingOutput) String() string {
  9024  	return awsutil.Prettify(s)
  9025  }
  9026  
  9027  // GoString returns the string representation.
  9028  //
  9029  // API parameter values that are decorated as "sensitive" in the API will not
  9030  // be included in the string output. The member name will be present, but the
  9031  // value will be replaced with "sensitive".
  9032  func (s DeleteStorageLensConfigurationTaggingOutput) GoString() string {
  9033  	return s.String()
  9034  }
  9035  
  9036  type DescribeJobInput struct {
  9037  	_ struct{} `locationName:"DescribeJobRequest" type:"structure"`
  9038  
  9039  	// The Amazon Web Services account ID associated with the S3 Batch Operations
  9040  	// job.
  9041  	//
  9042  	// AccountId is a required field
  9043  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  9044  
  9045  	// The ID for the job whose information you want to retrieve.
  9046  	//
  9047  	// JobId is a required field
  9048  	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
  9049  }
  9050  
  9051  // String returns the string representation.
  9052  //
  9053  // API parameter values that are decorated as "sensitive" in the API will not
  9054  // be included in the string output. The member name will be present, but the
  9055  // value will be replaced with "sensitive".
  9056  func (s DescribeJobInput) String() string {
  9057  	return awsutil.Prettify(s)
  9058  }
  9059  
  9060  // GoString returns the string representation.
  9061  //
  9062  // API parameter values that are decorated as "sensitive" in the API will not
  9063  // be included in the string output. The member name will be present, but the
  9064  // value will be replaced with "sensitive".
  9065  func (s DescribeJobInput) GoString() string {
  9066  	return s.String()
  9067  }
  9068  
  9069  // Validate inspects the fields of the type to determine if they are valid.
  9070  func (s *DescribeJobInput) Validate() error {
  9071  	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
  9072  	if s.AccountId == nil {
  9073  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  9074  	}
  9075  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  9076  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  9077  	}
  9078  	if s.JobId == nil {
  9079  		invalidParams.Add(request.NewErrParamRequired("JobId"))
  9080  	}
  9081  	if s.JobId != nil && len(*s.JobId) < 5 {
  9082  		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
  9083  	}
  9084  
  9085  	if invalidParams.Len() > 0 {
  9086  		return invalidParams
  9087  	}
  9088  	return nil
  9089  }
  9090  
  9091  // SetAccountId sets the AccountId field's value.
  9092  func (s *DescribeJobInput) SetAccountId(v string) *DescribeJobInput {
  9093  	s.AccountId = &v
  9094  	return s
  9095  }
  9096  
  9097  // SetJobId sets the JobId field's value.
  9098  func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
  9099  	s.JobId = &v
  9100  	return s
  9101  }
  9102  
  9103  func (s *DescribeJobInput) hostLabels() map[string]string {
  9104  	return map[string]string{
  9105  		"AccountId": aws.StringValue(s.AccountId),
  9106  	}
  9107  }
  9108  
  9109  type DescribeJobOutput struct {
  9110  	_ struct{} `type:"structure"`
  9111  
  9112  	// Contains the configuration parameters and status for the job specified in
  9113  	// the Describe Job request.
  9114  	Job *JobDescriptor `type:"structure"`
  9115  }
  9116  
  9117  // String returns the string representation.
  9118  //
  9119  // API parameter values that are decorated as "sensitive" in the API will not
  9120  // be included in the string output. The member name will be present, but the
  9121  // value will be replaced with "sensitive".
  9122  func (s DescribeJobOutput) String() string {
  9123  	return awsutil.Prettify(s)
  9124  }
  9125  
  9126  // GoString returns the string representation.
  9127  //
  9128  // API parameter values that are decorated as "sensitive" in the API will not
  9129  // be included in the string output. The member name will be present, but the
  9130  // value will be replaced with "sensitive".
  9131  func (s DescribeJobOutput) GoString() string {
  9132  	return s.String()
  9133  }
  9134  
  9135  // SetJob sets the Job field's value.
  9136  func (s *DescribeJobOutput) SetJob(v *JobDescriptor) *DescribeJobOutput {
  9137  	s.Job = v
  9138  	return s
  9139  }
  9140  
  9141  type DescribeMultiRegionAccessPointOperationInput struct {
  9142  	_ struct{} `locationName:"DescribeMultiRegionAccessPointOperationRequest" type:"structure"`
  9143  
  9144  	// The Amazon Web Services account ID for the owner of the Multi-Region Access
  9145  	// Point.
  9146  	//
  9147  	// AccountId is a required field
  9148  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  9149  
  9150  	// The request token associated with the request you want to know about. This
  9151  	// request token is returned as part of the response when you make an asynchronous
  9152  	// request. You provide this token to query about the status of the asynchronous
  9153  	// action.
  9154  	//
  9155  	// RequestTokenARN is a required field
  9156  	RequestTokenARN *string `location:"uri" locationName:"request_token" min:"1" type:"string" required:"true"`
  9157  }
  9158  
  9159  // String returns the string representation.
  9160  //
  9161  // API parameter values that are decorated as "sensitive" in the API will not
  9162  // be included in the string output. The member name will be present, but the
  9163  // value will be replaced with "sensitive".
  9164  func (s DescribeMultiRegionAccessPointOperationInput) String() string {
  9165  	return awsutil.Prettify(s)
  9166  }
  9167  
  9168  // GoString returns the string representation.
  9169  //
  9170  // API parameter values that are decorated as "sensitive" in the API will not
  9171  // be included in the string output. The member name will be present, but the
  9172  // value will be replaced with "sensitive".
  9173  func (s DescribeMultiRegionAccessPointOperationInput) GoString() string {
  9174  	return s.String()
  9175  }
  9176  
  9177  // Validate inspects the fields of the type to determine if they are valid.
  9178  func (s *DescribeMultiRegionAccessPointOperationInput) Validate() error {
  9179  	invalidParams := request.ErrInvalidParams{Context: "DescribeMultiRegionAccessPointOperationInput"}
  9180  	if s.AccountId == nil {
  9181  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  9182  	}
  9183  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  9184  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  9185  	}
  9186  	if s.RequestTokenARN == nil {
  9187  		invalidParams.Add(request.NewErrParamRequired("RequestTokenARN"))
  9188  	}
  9189  	if s.RequestTokenARN != nil && len(*s.RequestTokenARN) < 1 {
  9190  		invalidParams.Add(request.NewErrParamMinLen("RequestTokenARN", 1))
  9191  	}
  9192  
  9193  	if invalidParams.Len() > 0 {
  9194  		return invalidParams
  9195  	}
  9196  	return nil
  9197  }
  9198  
  9199  // SetAccountId sets the AccountId field's value.
  9200  func (s *DescribeMultiRegionAccessPointOperationInput) SetAccountId(v string) *DescribeMultiRegionAccessPointOperationInput {
  9201  	s.AccountId = &v
  9202  	return s
  9203  }
  9204  
  9205  // SetRequestTokenARN sets the RequestTokenARN field's value.
  9206  func (s *DescribeMultiRegionAccessPointOperationInput) SetRequestTokenARN(v string) *DescribeMultiRegionAccessPointOperationInput {
  9207  	s.RequestTokenARN = &v
  9208  	return s
  9209  }
  9210  
  9211  func (s *DescribeMultiRegionAccessPointOperationInput) hostLabels() map[string]string {
  9212  	return map[string]string{
  9213  		"AccountId": aws.StringValue(s.AccountId),
  9214  	}
  9215  }
  9216  
  9217  type DescribeMultiRegionAccessPointOperationOutput struct {
  9218  	_ struct{} `type:"structure"`
  9219  
  9220  	// A container element containing the details of the asynchronous operation.
  9221  	AsyncOperation *AsyncOperation `type:"structure"`
  9222  }
  9223  
  9224  // String returns the string representation.
  9225  //
  9226  // API parameter values that are decorated as "sensitive" in the API will not
  9227  // be included in the string output. The member name will be present, but the
  9228  // value will be replaced with "sensitive".
  9229  func (s DescribeMultiRegionAccessPointOperationOutput) String() string {
  9230  	return awsutil.Prettify(s)
  9231  }
  9232  
  9233  // GoString returns the string representation.
  9234  //
  9235  // API parameter values that are decorated as "sensitive" in the API will not
  9236  // be included in the string output. The member name will be present, but the
  9237  // value will be replaced with "sensitive".
  9238  func (s DescribeMultiRegionAccessPointOperationOutput) GoString() string {
  9239  	return s.String()
  9240  }
  9241  
  9242  // SetAsyncOperation sets the AsyncOperation field's value.
  9243  func (s *DescribeMultiRegionAccessPointOperationOutput) SetAsyncOperation(v *AsyncOperation) *DescribeMultiRegionAccessPointOperationOutput {
  9244  	s.AsyncOperation = v
  9245  	return s
  9246  }
  9247  
  9248  // The last established access control policy for a Multi-Region Access Point.
  9249  //
  9250  // When you update the policy, the update is first listed as the proposed policy.
  9251  // After the update is finished and all Regions have been updated, the proposed
  9252  // policy is listed as the established policy. If both policies have the same
  9253  // version number, the proposed policy is the established policy.
  9254  type EstablishedMultiRegionAccessPointPolicy struct {
  9255  	_ struct{} `type:"structure"`
  9256  
  9257  	// The details of the last established policy.
  9258  	Policy *string `type:"string"`
  9259  }
  9260  
  9261  // String returns the string representation.
  9262  //
  9263  // API parameter values that are decorated as "sensitive" in the API will not
  9264  // be included in the string output. The member name will be present, but the
  9265  // value will be replaced with "sensitive".
  9266  func (s EstablishedMultiRegionAccessPointPolicy) String() string {
  9267  	return awsutil.Prettify(s)
  9268  }
  9269  
  9270  // GoString returns the string representation.
  9271  //
  9272  // API parameter values that are decorated as "sensitive" in the API will not
  9273  // be included in the string output. The member name will be present, but the
  9274  // value will be replaced with "sensitive".
  9275  func (s EstablishedMultiRegionAccessPointPolicy) GoString() string {
  9276  	return s.String()
  9277  }
  9278  
  9279  // SetPolicy sets the Policy field's value.
  9280  func (s *EstablishedMultiRegionAccessPointPolicy) SetPolicy(v string) *EstablishedMultiRegionAccessPointPolicy {
  9281  	s.Policy = &v
  9282  	return s
  9283  }
  9284  
  9285  // A container for what Amazon S3 Storage Lens will exclude.
  9286  type Exclude struct {
  9287  	_ struct{} `type:"structure"`
  9288  
  9289  	// A container for the S3 Storage Lens bucket excludes.
  9290  	Buckets []*string `locationNameList:"Arn" type:"list"`
  9291  
  9292  	// A container for the S3 Storage Lens Region excludes.
  9293  	Regions []*string `locationNameList:"Region" type:"list"`
  9294  }
  9295  
  9296  // String returns the string representation.
  9297  //
  9298  // API parameter values that are decorated as "sensitive" in the API will not
  9299  // be included in the string output. The member name will be present, but the
  9300  // value will be replaced with "sensitive".
  9301  func (s Exclude) String() string {
  9302  	return awsutil.Prettify(s)
  9303  }
  9304  
  9305  // GoString returns the string representation.
  9306  //
  9307  // API parameter values that are decorated as "sensitive" in the API will not
  9308  // be included in the string output. The member name will be present, but the
  9309  // value will be replaced with "sensitive".
  9310  func (s Exclude) GoString() string {
  9311  	return s.String()
  9312  }
  9313  
  9314  // SetBuckets sets the Buckets field's value.
  9315  func (s *Exclude) SetBuckets(v []*string) *Exclude {
  9316  	s.Buckets = v
  9317  	return s
  9318  }
  9319  
  9320  // SetRegions sets the Regions field's value.
  9321  func (s *Exclude) SetRegions(v []*string) *Exclude {
  9322  	s.Regions = v
  9323  	return s
  9324  }
  9325  
  9326  type GetAccessPointConfigurationForObjectLambdaInput struct {
  9327  	_ struct{} `locationName:"GetAccessPointConfigurationForObjectLambdaRequest" type:"structure"`
  9328  
  9329  	// The account ID for the account that owns the specified Object Lambda Access
  9330  	// Point.
  9331  	//
  9332  	// AccountId is a required field
  9333  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  9334  
  9335  	// The name of the Object Lambda Access Point you want to return the configuration
  9336  	// for.
  9337  	//
  9338  	// Name is a required field
  9339  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  9340  }
  9341  
  9342  // String returns the string representation.
  9343  //
  9344  // API parameter values that are decorated as "sensitive" in the API will not
  9345  // be included in the string output. The member name will be present, but the
  9346  // value will be replaced with "sensitive".
  9347  func (s GetAccessPointConfigurationForObjectLambdaInput) String() string {
  9348  	return awsutil.Prettify(s)
  9349  }
  9350  
  9351  // GoString returns the string representation.
  9352  //
  9353  // API parameter values that are decorated as "sensitive" in the API will not
  9354  // be included in the string output. The member name will be present, but the
  9355  // value will be replaced with "sensitive".
  9356  func (s GetAccessPointConfigurationForObjectLambdaInput) GoString() string {
  9357  	return s.String()
  9358  }
  9359  
  9360  // Validate inspects the fields of the type to determine if they are valid.
  9361  func (s *GetAccessPointConfigurationForObjectLambdaInput) Validate() error {
  9362  	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointConfigurationForObjectLambdaInput"}
  9363  	if s.AccountId == nil {
  9364  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  9365  	}
  9366  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  9367  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  9368  	}
  9369  	if s.Name == nil {
  9370  		invalidParams.Add(request.NewErrParamRequired("Name"))
  9371  	}
  9372  	if s.Name != nil && len(*s.Name) < 3 {
  9373  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
  9374  	}
  9375  
  9376  	if invalidParams.Len() > 0 {
  9377  		return invalidParams
  9378  	}
  9379  	return nil
  9380  }
  9381  
  9382  // SetAccountId sets the AccountId field's value.
  9383  func (s *GetAccessPointConfigurationForObjectLambdaInput) SetAccountId(v string) *GetAccessPointConfigurationForObjectLambdaInput {
  9384  	s.AccountId = &v
  9385  	return s
  9386  }
  9387  
  9388  // SetName sets the Name field's value.
  9389  func (s *GetAccessPointConfigurationForObjectLambdaInput) SetName(v string) *GetAccessPointConfigurationForObjectLambdaInput {
  9390  	s.Name = &v
  9391  	return s
  9392  }
  9393  
  9394  func (s *GetAccessPointConfigurationForObjectLambdaInput) hostLabels() map[string]string {
  9395  	return map[string]string{
  9396  		"AccountId": aws.StringValue(s.AccountId),
  9397  	}
  9398  }
  9399  
  9400  type GetAccessPointConfigurationForObjectLambdaOutput struct {
  9401  	_ struct{} `type:"structure"`
  9402  
  9403  	// Object Lambda Access Point configuration document.
  9404  	Configuration *ObjectLambdaConfiguration `type:"structure"`
  9405  }
  9406  
  9407  // String returns the string representation.
  9408  //
  9409  // API parameter values that are decorated as "sensitive" in the API will not
  9410  // be included in the string output. The member name will be present, but the
  9411  // value will be replaced with "sensitive".
  9412  func (s GetAccessPointConfigurationForObjectLambdaOutput) String() string {
  9413  	return awsutil.Prettify(s)
  9414  }
  9415  
  9416  // GoString returns the string representation.
  9417  //
  9418  // API parameter values that are decorated as "sensitive" in the API will not
  9419  // be included in the string output. The member name will be present, but the
  9420  // value will be replaced with "sensitive".
  9421  func (s GetAccessPointConfigurationForObjectLambdaOutput) GoString() string {
  9422  	return s.String()
  9423  }
  9424  
  9425  // SetConfiguration sets the Configuration field's value.
  9426  func (s *GetAccessPointConfigurationForObjectLambdaOutput) SetConfiguration(v *ObjectLambdaConfiguration) *GetAccessPointConfigurationForObjectLambdaOutput {
  9427  	s.Configuration = v
  9428  	return s
  9429  }
  9430  
  9431  type GetAccessPointForObjectLambdaInput struct {
  9432  	_ struct{} `locationName:"GetAccessPointForObjectLambdaRequest" type:"structure"`
  9433  
  9434  	// The account ID for the account that owns the specified Object Lambda Access
  9435  	// Point.
  9436  	//
  9437  	// AccountId is a required field
  9438  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  9439  
  9440  	// The name of the Object Lambda Access Point.
  9441  	//
  9442  	// Name is a required field
  9443  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  9444  }
  9445  
  9446  // String returns the string representation.
  9447  //
  9448  // API parameter values that are decorated as "sensitive" in the API will not
  9449  // be included in the string output. The member name will be present, but the
  9450  // value will be replaced with "sensitive".
  9451  func (s GetAccessPointForObjectLambdaInput) String() string {
  9452  	return awsutil.Prettify(s)
  9453  }
  9454  
  9455  // GoString returns the string representation.
  9456  //
  9457  // API parameter values that are decorated as "sensitive" in the API will not
  9458  // be included in the string output. The member name will be present, but the
  9459  // value will be replaced with "sensitive".
  9460  func (s GetAccessPointForObjectLambdaInput) GoString() string {
  9461  	return s.String()
  9462  }
  9463  
  9464  // Validate inspects the fields of the type to determine if they are valid.
  9465  func (s *GetAccessPointForObjectLambdaInput) Validate() error {
  9466  	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointForObjectLambdaInput"}
  9467  	if s.AccountId == nil {
  9468  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  9469  	}
  9470  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  9471  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  9472  	}
  9473  	if s.Name == nil {
  9474  		invalidParams.Add(request.NewErrParamRequired("Name"))
  9475  	}
  9476  	if s.Name != nil && len(*s.Name) < 3 {
  9477  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
  9478  	}
  9479  
  9480  	if invalidParams.Len() > 0 {
  9481  		return invalidParams
  9482  	}
  9483  	return nil
  9484  }
  9485  
  9486  // SetAccountId sets the AccountId field's value.
  9487  func (s *GetAccessPointForObjectLambdaInput) SetAccountId(v string) *GetAccessPointForObjectLambdaInput {
  9488  	s.AccountId = &v
  9489  	return s
  9490  }
  9491  
  9492  // SetName sets the Name field's value.
  9493  func (s *GetAccessPointForObjectLambdaInput) SetName(v string) *GetAccessPointForObjectLambdaInput {
  9494  	s.Name = &v
  9495  	return s
  9496  }
  9497  
  9498  func (s *GetAccessPointForObjectLambdaInput) hostLabels() map[string]string {
  9499  	return map[string]string{
  9500  		"AccountId": aws.StringValue(s.AccountId),
  9501  	}
  9502  }
  9503  
  9504  type GetAccessPointForObjectLambdaOutput struct {
  9505  	_ struct{} `type:"structure"`
  9506  
  9507  	// The date and time when the specified Object Lambda Access Point was created.
  9508  	CreationDate *time.Time `type:"timestamp"`
  9509  
  9510  	// The name of the Object Lambda Access Point.
  9511  	Name *string `min:"3" type:"string"`
  9512  
  9513  	// Configuration to block all public access. This setting is turned on and can
  9514  	// not be edited.
  9515  	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
  9516  }
  9517  
  9518  // String returns the string representation.
  9519  //
  9520  // API parameter values that are decorated as "sensitive" in the API will not
  9521  // be included in the string output. The member name will be present, but the
  9522  // value will be replaced with "sensitive".
  9523  func (s GetAccessPointForObjectLambdaOutput) String() string {
  9524  	return awsutil.Prettify(s)
  9525  }
  9526  
  9527  // GoString returns the string representation.
  9528  //
  9529  // API parameter values that are decorated as "sensitive" in the API will not
  9530  // be included in the string output. The member name will be present, but the
  9531  // value will be replaced with "sensitive".
  9532  func (s GetAccessPointForObjectLambdaOutput) GoString() string {
  9533  	return s.String()
  9534  }
  9535  
  9536  // SetCreationDate sets the CreationDate field's value.
  9537  func (s *GetAccessPointForObjectLambdaOutput) SetCreationDate(v time.Time) *GetAccessPointForObjectLambdaOutput {
  9538  	s.CreationDate = &v
  9539  	return s
  9540  }
  9541  
  9542  // SetName sets the Name field's value.
  9543  func (s *GetAccessPointForObjectLambdaOutput) SetName(v string) *GetAccessPointForObjectLambdaOutput {
  9544  	s.Name = &v
  9545  	return s
  9546  }
  9547  
  9548  // SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
  9549  func (s *GetAccessPointForObjectLambdaOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointForObjectLambdaOutput {
  9550  	s.PublicAccessBlockConfiguration = v
  9551  	return s
  9552  }
  9553  
  9554  type GetAccessPointInput struct {
  9555  	_ struct{} `locationName:"GetAccessPointRequest" type:"structure"`
  9556  
  9557  	// The account ID for the account that owns the specified access point.
  9558  	//
  9559  	// AccountId is a required field
  9560  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  9561  
  9562  	// The name of the access point whose configuration information you want to
  9563  	// retrieve.
  9564  	//
  9565  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
  9566  	// must specify the name and the x-amz-outpost-id as well.
  9567  	//
  9568  	// For using this parameter with S3 on Outposts with the Amazon Web Services
  9569  	// SDK and CLI, you must specify the ARN of the access point accessed in the
  9570  	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
  9571  	// For example, to access the access point reports-ap through outpost my-outpost
  9572  	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
  9573  	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
  9574  	// The value must be URL encoded.
  9575  	//
  9576  	// Name is a required field
  9577  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  9578  }
  9579  
  9580  // String returns the string representation.
  9581  //
  9582  // API parameter values that are decorated as "sensitive" in the API will not
  9583  // be included in the string output. The member name will be present, but the
  9584  // value will be replaced with "sensitive".
  9585  func (s GetAccessPointInput) String() string {
  9586  	return awsutil.Prettify(s)
  9587  }
  9588  
  9589  // GoString returns the string representation.
  9590  //
  9591  // API parameter values that are decorated as "sensitive" in the API will not
  9592  // be included in the string output. The member name will be present, but the
  9593  // value will be replaced with "sensitive".
  9594  func (s GetAccessPointInput) GoString() string {
  9595  	return s.String()
  9596  }
  9597  
  9598  // Validate inspects the fields of the type to determine if they are valid.
  9599  func (s *GetAccessPointInput) Validate() error {
  9600  	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointInput"}
  9601  	if s.AccountId == nil {
  9602  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  9603  	}
  9604  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  9605  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  9606  	}
  9607  	if s.Name == nil {
  9608  		invalidParams.Add(request.NewErrParamRequired("Name"))
  9609  	}
  9610  	if s.Name != nil && len(*s.Name) < 3 {
  9611  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
  9612  	}
  9613  
  9614  	if invalidParams.Len() > 0 {
  9615  		return invalidParams
  9616  	}
  9617  	return nil
  9618  }
  9619  
  9620  // SetAccountId sets the AccountId field's value.
  9621  func (s *GetAccessPointInput) SetAccountId(v string) *GetAccessPointInput {
  9622  	s.AccountId = &v
  9623  	return s
  9624  }
  9625  
  9626  // SetName sets the Name field's value.
  9627  func (s *GetAccessPointInput) SetName(v string) *GetAccessPointInput {
  9628  	s.Name = &v
  9629  	return s
  9630  }
  9631  
  9632  func (s *GetAccessPointInput) hostLabels() map[string]string {
  9633  	return map[string]string{
  9634  		"AccountId": aws.StringValue(s.AccountId),
  9635  	}
  9636  }
  9637  
  9638  func (s *GetAccessPointInput) getEndpointARN() (arn.Resource, error) {
  9639  	if s.Name == nil {
  9640  		return nil, fmt.Errorf("member Name is nil")
  9641  	}
  9642  	return parseEndpointARN(*s.Name)
  9643  }
  9644  
  9645  func (s *GetAccessPointInput) hasEndpointARN() bool {
  9646  	if s.Name == nil {
  9647  		return false
  9648  	}
  9649  	return arn.IsARN(*s.Name)
  9650  }
  9651  
  9652  // updateArnableField updates the value of the input field that
  9653  // takes an ARN as an input. This method is useful to backfill
  9654  // the parsed resource name from ARN into the input member.
  9655  // It returns a pointer to a modified copy of input and an error.
  9656  // Note that original input is not modified.
  9657  func (s GetAccessPointInput) updateArnableField(v string) (interface{}, error) {
  9658  	if s.Name == nil {
  9659  		return nil, fmt.Errorf("member Name is nil")
  9660  	}
  9661  	s.Name = aws.String(v)
  9662  	return &s, nil
  9663  }
  9664  
  9665  // updateAccountID returns a pointer to a modified copy of input,
  9666  // if account id is not provided, we update the account id in modified input
  9667  // if account id is provided, but doesn't match with the one in ARN, we throw an error
  9668  // if account id is not updated, we return nil. Note that original input is not modified.
  9669  func (s GetAccessPointInput) updateAccountID(accountId string) (interface{}, error) {
  9670  	if s.AccountId == nil {
  9671  		s.AccountId = aws.String(accountId)
  9672  		return &s, nil
  9673  	} else if *s.AccountId != accountId {
  9674  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
  9675  	}
  9676  	return nil, nil
  9677  }
  9678  
  9679  type GetAccessPointOutput struct {
  9680  	_ struct{} `type:"structure"`
  9681  
  9682  	// The ARN of the access point.
  9683  	AccessPointArn *string `min:"4" type:"string"`
  9684  
  9685  	// The name or alias of the access point.
  9686  	Alias *string `type:"string"`
  9687  
  9688  	// The name of the bucket associated with the specified access point.
  9689  	Bucket *string `min:"3" type:"string"`
  9690  
  9691  	// The date and time when the specified access point was created.
  9692  	CreationDate *time.Time `type:"timestamp"`
  9693  
  9694  	// The VPC endpoint for the access point.
  9695  	Endpoints map[string]*string `type:"map"`
  9696  
  9697  	// The name of the specified access point.
  9698  	Name *string `min:"3" type:"string"`
  9699  
  9700  	// Indicates whether this access point allows access from the public internet.
  9701  	// If VpcConfiguration is specified for this access point, then NetworkOrigin
  9702  	// is VPC, and the access point doesn't allow access from the public internet.
  9703  	// Otherwise, NetworkOrigin is Internet, and the access point allows access
  9704  	// from the public internet, subject to the access point and bucket access policies.
  9705  	//
  9706  	// This will always be true for an Amazon S3 on Outposts access point
  9707  	NetworkOrigin *string `type:"string" enum:"NetworkOrigin"`
  9708  
  9709  	// The PublicAccessBlock configuration that you want to apply to this Amazon
  9710  	// S3 account. You can enable the configuration options in any combination.
  9711  	// For more information about when Amazon S3 considers a bucket or object public,
  9712  	// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
  9713  	// in the Amazon S3 User Guide.
  9714  	//
  9715  	// This is not supported for Amazon S3 on Outposts.
  9716  	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
  9717  
  9718  	// Contains the virtual private cloud (VPC) configuration for the specified
  9719  	// access point.
  9720  	//
  9721  	// This element is empty if this access point is an Amazon S3 on Outposts access
  9722  	// point that is used by other Amazon Web Services.
  9723  	VpcConfiguration *VpcConfiguration `type:"structure"`
  9724  }
  9725  
  9726  // String returns the string representation.
  9727  //
  9728  // API parameter values that are decorated as "sensitive" in the API will not
  9729  // be included in the string output. The member name will be present, but the
  9730  // value will be replaced with "sensitive".
  9731  func (s GetAccessPointOutput) String() string {
  9732  	return awsutil.Prettify(s)
  9733  }
  9734  
  9735  // GoString returns the string representation.
  9736  //
  9737  // API parameter values that are decorated as "sensitive" in the API will not
  9738  // be included in the string output. The member name will be present, but the
  9739  // value will be replaced with "sensitive".
  9740  func (s GetAccessPointOutput) GoString() string {
  9741  	return s.String()
  9742  }
  9743  
  9744  // SetAccessPointArn sets the AccessPointArn field's value.
  9745  func (s *GetAccessPointOutput) SetAccessPointArn(v string) *GetAccessPointOutput {
  9746  	s.AccessPointArn = &v
  9747  	return s
  9748  }
  9749  
  9750  // SetAlias sets the Alias field's value.
  9751  func (s *GetAccessPointOutput) SetAlias(v string) *GetAccessPointOutput {
  9752  	s.Alias = &v
  9753  	return s
  9754  }
  9755  
  9756  // SetBucket sets the Bucket field's value.
  9757  func (s *GetAccessPointOutput) SetBucket(v string) *GetAccessPointOutput {
  9758  	s.Bucket = &v
  9759  	return s
  9760  }
  9761  
  9762  // SetCreationDate sets the CreationDate field's value.
  9763  func (s *GetAccessPointOutput) SetCreationDate(v time.Time) *GetAccessPointOutput {
  9764  	s.CreationDate = &v
  9765  	return s
  9766  }
  9767  
  9768  // SetEndpoints sets the Endpoints field's value.
  9769  func (s *GetAccessPointOutput) SetEndpoints(v map[string]*string) *GetAccessPointOutput {
  9770  	s.Endpoints = v
  9771  	return s
  9772  }
  9773  
  9774  // SetName sets the Name field's value.
  9775  func (s *GetAccessPointOutput) SetName(v string) *GetAccessPointOutput {
  9776  	s.Name = &v
  9777  	return s
  9778  }
  9779  
  9780  // SetNetworkOrigin sets the NetworkOrigin field's value.
  9781  func (s *GetAccessPointOutput) SetNetworkOrigin(v string) *GetAccessPointOutput {
  9782  	s.NetworkOrigin = &v
  9783  	return s
  9784  }
  9785  
  9786  // SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
  9787  func (s *GetAccessPointOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointOutput {
  9788  	s.PublicAccessBlockConfiguration = v
  9789  	return s
  9790  }
  9791  
  9792  // SetVpcConfiguration sets the VpcConfiguration field's value.
  9793  func (s *GetAccessPointOutput) SetVpcConfiguration(v *VpcConfiguration) *GetAccessPointOutput {
  9794  	s.VpcConfiguration = v
  9795  	return s
  9796  }
  9797  
  9798  type GetAccessPointPolicyForObjectLambdaInput struct {
  9799  	_ struct{} `locationName:"GetAccessPointPolicyForObjectLambdaRequest" type:"structure"`
  9800  
  9801  	// The account ID for the account that owns the specified Object Lambda Access
  9802  	// Point.
  9803  	//
  9804  	// AccountId is a required field
  9805  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  9806  
  9807  	// The name of the Object Lambda Access Point.
  9808  	//
  9809  	// Name is a required field
  9810  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  9811  }
  9812  
  9813  // String returns the string representation.
  9814  //
  9815  // API parameter values that are decorated as "sensitive" in the API will not
  9816  // be included in the string output. The member name will be present, but the
  9817  // value will be replaced with "sensitive".
  9818  func (s GetAccessPointPolicyForObjectLambdaInput) String() string {
  9819  	return awsutil.Prettify(s)
  9820  }
  9821  
  9822  // GoString returns the string representation.
  9823  //
  9824  // API parameter values that are decorated as "sensitive" in the API will not
  9825  // be included in the string output. The member name will be present, but the
  9826  // value will be replaced with "sensitive".
  9827  func (s GetAccessPointPolicyForObjectLambdaInput) GoString() string {
  9828  	return s.String()
  9829  }
  9830  
  9831  // Validate inspects the fields of the type to determine if they are valid.
  9832  func (s *GetAccessPointPolicyForObjectLambdaInput) Validate() error {
  9833  	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyForObjectLambdaInput"}
  9834  	if s.AccountId == nil {
  9835  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  9836  	}
  9837  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  9838  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  9839  	}
  9840  	if s.Name == nil {
  9841  		invalidParams.Add(request.NewErrParamRequired("Name"))
  9842  	}
  9843  	if s.Name != nil && len(*s.Name) < 3 {
  9844  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
  9845  	}
  9846  
  9847  	if invalidParams.Len() > 0 {
  9848  		return invalidParams
  9849  	}
  9850  	return nil
  9851  }
  9852  
  9853  // SetAccountId sets the AccountId field's value.
  9854  func (s *GetAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *GetAccessPointPolicyForObjectLambdaInput {
  9855  	s.AccountId = &v
  9856  	return s
  9857  }
  9858  
  9859  // SetName sets the Name field's value.
  9860  func (s *GetAccessPointPolicyForObjectLambdaInput) SetName(v string) *GetAccessPointPolicyForObjectLambdaInput {
  9861  	s.Name = &v
  9862  	return s
  9863  }
  9864  
  9865  func (s *GetAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string {
  9866  	return map[string]string{
  9867  		"AccountId": aws.StringValue(s.AccountId),
  9868  	}
  9869  }
  9870  
  9871  type GetAccessPointPolicyForObjectLambdaOutput struct {
  9872  	_ struct{} `type:"structure"`
  9873  
  9874  	// Object Lambda Access Point resource policy document.
  9875  	Policy *string `type:"string"`
  9876  }
  9877  
  9878  // String returns the string representation.
  9879  //
  9880  // API parameter values that are decorated as "sensitive" in the API will not
  9881  // be included in the string output. The member name will be present, but the
  9882  // value will be replaced with "sensitive".
  9883  func (s GetAccessPointPolicyForObjectLambdaOutput) String() string {
  9884  	return awsutil.Prettify(s)
  9885  }
  9886  
  9887  // GoString returns the string representation.
  9888  //
  9889  // API parameter values that are decorated as "sensitive" in the API will not
  9890  // be included in the string output. The member name will be present, but the
  9891  // value will be replaced with "sensitive".
  9892  func (s GetAccessPointPolicyForObjectLambdaOutput) GoString() string {
  9893  	return s.String()
  9894  }
  9895  
  9896  // SetPolicy sets the Policy field's value.
  9897  func (s *GetAccessPointPolicyForObjectLambdaOutput) SetPolicy(v string) *GetAccessPointPolicyForObjectLambdaOutput {
  9898  	s.Policy = &v
  9899  	return s
  9900  }
  9901  
  9902  type GetAccessPointPolicyInput struct {
  9903  	_ struct{} `locationName:"GetAccessPointPolicyRequest" type:"structure"`
  9904  
  9905  	// The account ID for the account that owns the specified access point.
  9906  	//
  9907  	// AccountId is a required field
  9908  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
  9909  
  9910  	// The name of the access point whose policy you want to retrieve.
  9911  	//
  9912  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
  9913  	// must specify the name and the x-amz-outpost-id as well.
  9914  	//
  9915  	// For using this parameter with S3 on Outposts with the Amazon Web Services
  9916  	// SDK and CLI, you must specify the ARN of the access point accessed in the
  9917  	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
  9918  	// For example, to access the access point reports-ap through outpost my-outpost
  9919  	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
  9920  	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
  9921  	// The value must be URL encoded.
  9922  	//
  9923  	// Name is a required field
  9924  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
  9925  }
  9926  
  9927  // String returns the string representation.
  9928  //
  9929  // API parameter values that are decorated as "sensitive" in the API will not
  9930  // be included in the string output. The member name will be present, but the
  9931  // value will be replaced with "sensitive".
  9932  func (s GetAccessPointPolicyInput) String() string {
  9933  	return awsutil.Prettify(s)
  9934  }
  9935  
  9936  // GoString returns the string representation.
  9937  //
  9938  // API parameter values that are decorated as "sensitive" in the API will not
  9939  // be included in the string output. The member name will be present, but the
  9940  // value will be replaced with "sensitive".
  9941  func (s GetAccessPointPolicyInput) GoString() string {
  9942  	return s.String()
  9943  }
  9944  
  9945  // Validate inspects the fields of the type to determine if they are valid.
  9946  func (s *GetAccessPointPolicyInput) Validate() error {
  9947  	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyInput"}
  9948  	if s.AccountId == nil {
  9949  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  9950  	}
  9951  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  9952  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  9953  	}
  9954  	if s.Name == nil {
  9955  		invalidParams.Add(request.NewErrParamRequired("Name"))
  9956  	}
  9957  	if s.Name != nil && len(*s.Name) < 3 {
  9958  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
  9959  	}
  9960  
  9961  	if invalidParams.Len() > 0 {
  9962  		return invalidParams
  9963  	}
  9964  	return nil
  9965  }
  9966  
  9967  // SetAccountId sets the AccountId field's value.
  9968  func (s *GetAccessPointPolicyInput) SetAccountId(v string) *GetAccessPointPolicyInput {
  9969  	s.AccountId = &v
  9970  	return s
  9971  }
  9972  
  9973  // SetName sets the Name field's value.
  9974  func (s *GetAccessPointPolicyInput) SetName(v string) *GetAccessPointPolicyInput {
  9975  	s.Name = &v
  9976  	return s
  9977  }
  9978  
  9979  func (s *GetAccessPointPolicyInput) hostLabels() map[string]string {
  9980  	return map[string]string{
  9981  		"AccountId": aws.StringValue(s.AccountId),
  9982  	}
  9983  }
  9984  
  9985  func (s *GetAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
  9986  	if s.Name == nil {
  9987  		return nil, fmt.Errorf("member Name is nil")
  9988  	}
  9989  	return parseEndpointARN(*s.Name)
  9990  }
  9991  
  9992  func (s *GetAccessPointPolicyInput) hasEndpointARN() bool {
  9993  	if s.Name == nil {
  9994  		return false
  9995  	}
  9996  	return arn.IsARN(*s.Name)
  9997  }
  9998  
  9999  // updateArnableField updates the value of the input field that
 10000  // takes an ARN as an input. This method is useful to backfill
 10001  // the parsed resource name from ARN into the input member.
 10002  // It returns a pointer to a modified copy of input and an error.
 10003  // Note that original input is not modified.
 10004  func (s GetAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
 10005  	if s.Name == nil {
 10006  		return nil, fmt.Errorf("member Name is nil")
 10007  	}
 10008  	s.Name = aws.String(v)
 10009  	return &s, nil
 10010  }
 10011  
 10012  // updateAccountID returns a pointer to a modified copy of input,
 10013  // if account id is not provided, we update the account id in modified input
 10014  // if account id is provided, but doesn't match with the one in ARN, we throw an error
 10015  // if account id is not updated, we return nil. Note that original input is not modified.
 10016  func (s GetAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
 10017  	if s.AccountId == nil {
 10018  		s.AccountId = aws.String(accountId)
 10019  		return &s, nil
 10020  	} else if *s.AccountId != accountId {
 10021  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
 10022  	}
 10023  	return nil, nil
 10024  }
 10025  
 10026  type GetAccessPointPolicyOutput struct {
 10027  	_ struct{} `type:"structure"`
 10028  
 10029  	// The access point policy associated with the specified access point.
 10030  	Policy *string `type:"string"`
 10031  }
 10032  
 10033  // String returns the string representation.
 10034  //
 10035  // API parameter values that are decorated as "sensitive" in the API will not
 10036  // be included in the string output. The member name will be present, but the
 10037  // value will be replaced with "sensitive".
 10038  func (s GetAccessPointPolicyOutput) String() string {
 10039  	return awsutil.Prettify(s)
 10040  }
 10041  
 10042  // GoString returns the string representation.
 10043  //
 10044  // API parameter values that are decorated as "sensitive" in the API will not
 10045  // be included in the string output. The member name will be present, but the
 10046  // value will be replaced with "sensitive".
 10047  func (s GetAccessPointPolicyOutput) GoString() string {
 10048  	return s.String()
 10049  }
 10050  
 10051  // SetPolicy sets the Policy field's value.
 10052  func (s *GetAccessPointPolicyOutput) SetPolicy(v string) *GetAccessPointPolicyOutput {
 10053  	s.Policy = &v
 10054  	return s
 10055  }
 10056  
 10057  type GetAccessPointPolicyStatusForObjectLambdaInput struct {
 10058  	_ struct{} `locationName:"GetAccessPointPolicyStatusForObjectLambdaRequest" type:"structure"`
 10059  
 10060  	// The account ID for the account that owns the specified Object Lambda Access
 10061  	// Point.
 10062  	//
 10063  	// AccountId is a required field
 10064  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 10065  
 10066  	// The name of the Object Lambda Access Point.
 10067  	//
 10068  	// Name is a required field
 10069  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
 10070  }
 10071  
 10072  // String returns the string representation.
 10073  //
 10074  // API parameter values that are decorated as "sensitive" in the API will not
 10075  // be included in the string output. The member name will be present, but the
 10076  // value will be replaced with "sensitive".
 10077  func (s GetAccessPointPolicyStatusForObjectLambdaInput) String() string {
 10078  	return awsutil.Prettify(s)
 10079  }
 10080  
 10081  // GoString returns the string representation.
 10082  //
 10083  // API parameter values that are decorated as "sensitive" in the API will not
 10084  // be included in the string output. The member name will be present, but the
 10085  // value will be replaced with "sensitive".
 10086  func (s GetAccessPointPolicyStatusForObjectLambdaInput) GoString() string {
 10087  	return s.String()
 10088  }
 10089  
 10090  // Validate inspects the fields of the type to determine if they are valid.
 10091  func (s *GetAccessPointPolicyStatusForObjectLambdaInput) Validate() error {
 10092  	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusForObjectLambdaInput"}
 10093  	if s.AccountId == nil {
 10094  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 10095  	}
 10096  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 10097  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 10098  	}
 10099  	if s.Name == nil {
 10100  		invalidParams.Add(request.NewErrParamRequired("Name"))
 10101  	}
 10102  	if s.Name != nil && len(*s.Name) < 3 {
 10103  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
 10104  	}
 10105  
 10106  	if invalidParams.Len() > 0 {
 10107  		return invalidParams
 10108  	}
 10109  	return nil
 10110  }
 10111  
 10112  // SetAccountId sets the AccountId field's value.
 10113  func (s *GetAccessPointPolicyStatusForObjectLambdaInput) SetAccountId(v string) *GetAccessPointPolicyStatusForObjectLambdaInput {
 10114  	s.AccountId = &v
 10115  	return s
 10116  }
 10117  
 10118  // SetName sets the Name field's value.
 10119  func (s *GetAccessPointPolicyStatusForObjectLambdaInput) SetName(v string) *GetAccessPointPolicyStatusForObjectLambdaInput {
 10120  	s.Name = &v
 10121  	return s
 10122  }
 10123  
 10124  func (s *GetAccessPointPolicyStatusForObjectLambdaInput) hostLabels() map[string]string {
 10125  	return map[string]string{
 10126  		"AccountId": aws.StringValue(s.AccountId),
 10127  	}
 10128  }
 10129  
 10130  type GetAccessPointPolicyStatusForObjectLambdaOutput struct {
 10131  	_ struct{} `type:"structure"`
 10132  
 10133  	// Indicates whether this access point policy is public. For more information
 10134  	// about how Amazon S3 evaluates policies to determine whether they are public,
 10135  	// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
 10136  	// in the Amazon S3 User Guide.
 10137  	PolicyStatus *PolicyStatus `type:"structure"`
 10138  }
 10139  
 10140  // String returns the string representation.
 10141  //
 10142  // API parameter values that are decorated as "sensitive" in the API will not
 10143  // be included in the string output. The member name will be present, but the
 10144  // value will be replaced with "sensitive".
 10145  func (s GetAccessPointPolicyStatusForObjectLambdaOutput) String() string {
 10146  	return awsutil.Prettify(s)
 10147  }
 10148  
 10149  // GoString returns the string representation.
 10150  //
 10151  // API parameter values that are decorated as "sensitive" in the API will not
 10152  // be included in the string output. The member name will be present, but the
 10153  // value will be replaced with "sensitive".
 10154  func (s GetAccessPointPolicyStatusForObjectLambdaOutput) GoString() string {
 10155  	return s.String()
 10156  }
 10157  
 10158  // SetPolicyStatus sets the PolicyStatus field's value.
 10159  func (s *GetAccessPointPolicyStatusForObjectLambdaOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusForObjectLambdaOutput {
 10160  	s.PolicyStatus = v
 10161  	return s
 10162  }
 10163  
 10164  type GetAccessPointPolicyStatusInput struct {
 10165  	_ struct{} `locationName:"GetAccessPointPolicyStatusRequest" type:"structure"`
 10166  
 10167  	// The account ID for the account that owns the specified access point.
 10168  	//
 10169  	// AccountId is a required field
 10170  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 10171  
 10172  	// The name of the access point whose policy status you want to retrieve.
 10173  	//
 10174  	// Name is a required field
 10175  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
 10176  }
 10177  
 10178  // String returns the string representation.
 10179  //
 10180  // API parameter values that are decorated as "sensitive" in the API will not
 10181  // be included in the string output. The member name will be present, but the
 10182  // value will be replaced with "sensitive".
 10183  func (s GetAccessPointPolicyStatusInput) String() string {
 10184  	return awsutil.Prettify(s)
 10185  }
 10186  
 10187  // GoString returns the string representation.
 10188  //
 10189  // API parameter values that are decorated as "sensitive" in the API will not
 10190  // be included in the string output. The member name will be present, but the
 10191  // value will be replaced with "sensitive".
 10192  func (s GetAccessPointPolicyStatusInput) GoString() string {
 10193  	return s.String()
 10194  }
 10195  
 10196  // Validate inspects the fields of the type to determine if they are valid.
 10197  func (s *GetAccessPointPolicyStatusInput) Validate() error {
 10198  	invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusInput"}
 10199  	if s.AccountId == nil {
 10200  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 10201  	}
 10202  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 10203  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 10204  	}
 10205  	if s.Name == nil {
 10206  		invalidParams.Add(request.NewErrParamRequired("Name"))
 10207  	}
 10208  	if s.Name != nil && len(*s.Name) < 3 {
 10209  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
 10210  	}
 10211  
 10212  	if invalidParams.Len() > 0 {
 10213  		return invalidParams
 10214  	}
 10215  	return nil
 10216  }
 10217  
 10218  // SetAccountId sets the AccountId field's value.
 10219  func (s *GetAccessPointPolicyStatusInput) SetAccountId(v string) *GetAccessPointPolicyStatusInput {
 10220  	s.AccountId = &v
 10221  	return s
 10222  }
 10223  
 10224  // SetName sets the Name field's value.
 10225  func (s *GetAccessPointPolicyStatusInput) SetName(v string) *GetAccessPointPolicyStatusInput {
 10226  	s.Name = &v
 10227  	return s
 10228  }
 10229  
 10230  func (s *GetAccessPointPolicyStatusInput) hostLabels() map[string]string {
 10231  	return map[string]string{
 10232  		"AccountId": aws.StringValue(s.AccountId),
 10233  	}
 10234  }
 10235  
 10236  type GetAccessPointPolicyStatusOutput struct {
 10237  	_ struct{} `type:"structure"`
 10238  
 10239  	// Indicates the current policy status of the specified access point.
 10240  	PolicyStatus *PolicyStatus `type:"structure"`
 10241  }
 10242  
 10243  // String returns the string representation.
 10244  //
 10245  // API parameter values that are decorated as "sensitive" in the API will not
 10246  // be included in the string output. The member name will be present, but the
 10247  // value will be replaced with "sensitive".
 10248  func (s GetAccessPointPolicyStatusOutput) String() string {
 10249  	return awsutil.Prettify(s)
 10250  }
 10251  
 10252  // GoString returns the string representation.
 10253  //
 10254  // API parameter values that are decorated as "sensitive" in the API will not
 10255  // be included in the string output. The member name will be present, but the
 10256  // value will be replaced with "sensitive".
 10257  func (s GetAccessPointPolicyStatusOutput) GoString() string {
 10258  	return s.String()
 10259  }
 10260  
 10261  // SetPolicyStatus sets the PolicyStatus field's value.
 10262  func (s *GetAccessPointPolicyStatusOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusOutput {
 10263  	s.PolicyStatus = v
 10264  	return s
 10265  }
 10266  
 10267  type GetBucketInput struct {
 10268  	_ struct{} `locationName:"GetBucketRequest" type:"structure"`
 10269  
 10270  	// The Amazon Web Services account ID of the Outposts bucket.
 10271  	//
 10272  	// AccountId is a required field
 10273  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 10274  
 10275  	// Specifies the bucket.
 10276  	//
 10277  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
 10278  	// must specify the name and the x-amz-outpost-id as well.
 10279  	//
 10280  	// For using this parameter with S3 on Outposts with the Amazon Web Services
 10281  	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
 10282  	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
 10283  	// For example, to access the bucket reports through outpost my-outpost owned
 10284  	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
 10285  	// The value must be URL encoded.
 10286  	//
 10287  	// Bucket is a required field
 10288  	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
 10289  }
 10290  
 10291  // String returns the string representation.
 10292  //
 10293  // API parameter values that are decorated as "sensitive" in the API will not
 10294  // be included in the string output. The member name will be present, but the
 10295  // value will be replaced with "sensitive".
 10296  func (s GetBucketInput) String() string {
 10297  	return awsutil.Prettify(s)
 10298  }
 10299  
 10300  // GoString returns the string representation.
 10301  //
 10302  // API parameter values that are decorated as "sensitive" in the API will not
 10303  // be included in the string output. The member name will be present, but the
 10304  // value will be replaced with "sensitive".
 10305  func (s GetBucketInput) GoString() string {
 10306  	return s.String()
 10307  }
 10308  
 10309  // Validate inspects the fields of the type to determine if they are valid.
 10310  func (s *GetBucketInput) Validate() error {
 10311  	invalidParams := request.ErrInvalidParams{Context: "GetBucketInput"}
 10312  	if s.AccountId == nil {
 10313  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 10314  	}
 10315  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 10316  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 10317  	}
 10318  	if s.Bucket == nil {
 10319  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
 10320  	}
 10321  	if s.Bucket != nil && len(*s.Bucket) < 3 {
 10322  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
 10323  	}
 10324  
 10325  	if invalidParams.Len() > 0 {
 10326  		return invalidParams
 10327  	}
 10328  	return nil
 10329  }
 10330  
 10331  // SetAccountId sets the AccountId field's value.
 10332  func (s *GetBucketInput) SetAccountId(v string) *GetBucketInput {
 10333  	s.AccountId = &v
 10334  	return s
 10335  }
 10336  
 10337  // SetBucket sets the Bucket field's value.
 10338  func (s *GetBucketInput) SetBucket(v string) *GetBucketInput {
 10339  	s.Bucket = &v
 10340  	return s
 10341  }
 10342  
 10343  func (s *GetBucketInput) hostLabels() map[string]string {
 10344  	return map[string]string{
 10345  		"AccountId": aws.StringValue(s.AccountId),
 10346  	}
 10347  }
 10348  
 10349  func (s *GetBucketInput) getEndpointARN() (arn.Resource, error) {
 10350  	if s.Bucket == nil {
 10351  		return nil, fmt.Errorf("member Bucket is nil")
 10352  	}
 10353  	return parseEndpointARN(*s.Bucket)
 10354  }
 10355  
 10356  func (s *GetBucketInput) hasEndpointARN() bool {
 10357  	if s.Bucket == nil {
 10358  		return false
 10359  	}
 10360  	return arn.IsARN(*s.Bucket)
 10361  }
 10362  
 10363  // updateArnableField updates the value of the input field that
 10364  // takes an ARN as an input. This method is useful to backfill
 10365  // the parsed resource name from ARN into the input member.
 10366  // It returns a pointer to a modified copy of input and an error.
 10367  // Note that original input is not modified.
 10368  func (s GetBucketInput) updateArnableField(v string) (interface{}, error) {
 10369  	if s.Bucket == nil {
 10370  		return nil, fmt.Errorf("member Bucket is nil")
 10371  	}
 10372  	s.Bucket = aws.String(v)
 10373  	return &s, nil
 10374  }
 10375  
 10376  // updateAccountID returns a pointer to a modified copy of input,
 10377  // if account id is not provided, we update the account id in modified input
 10378  // if account id is provided, but doesn't match with the one in ARN, we throw an error
 10379  // if account id is not updated, we return nil. Note that original input is not modified.
 10380  func (s GetBucketInput) updateAccountID(accountId string) (interface{}, error) {
 10381  	if s.AccountId == nil {
 10382  		s.AccountId = aws.String(accountId)
 10383  		return &s, nil
 10384  	} else if *s.AccountId != accountId {
 10385  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
 10386  	}
 10387  	return nil, nil
 10388  }
 10389  
 10390  type GetBucketLifecycleConfigurationInput struct {
 10391  	_ struct{} `locationName:"GetBucketLifecycleConfigurationRequest" type:"structure"`
 10392  
 10393  	// The Amazon Web Services account ID of the Outposts bucket.
 10394  	//
 10395  	// AccountId is a required field
 10396  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 10397  
 10398  	// The Amazon Resource Name (ARN) of the bucket.
 10399  	//
 10400  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
 10401  	// must specify the name and the x-amz-outpost-id as well.
 10402  	//
 10403  	// For using this parameter with S3 on Outposts with the Amazon Web Services
 10404  	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
 10405  	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
 10406  	// For example, to access the bucket reports through outpost my-outpost owned
 10407  	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
 10408  	// The value must be URL encoded.
 10409  	//
 10410  	// Bucket is a required field
 10411  	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
 10412  }
 10413  
 10414  // String returns the string representation.
 10415  //
 10416  // API parameter values that are decorated as "sensitive" in the API will not
 10417  // be included in the string output. The member name will be present, but the
 10418  // value will be replaced with "sensitive".
 10419  func (s GetBucketLifecycleConfigurationInput) String() string {
 10420  	return awsutil.Prettify(s)
 10421  }
 10422  
 10423  // GoString returns the string representation.
 10424  //
 10425  // API parameter values that are decorated as "sensitive" in the API will not
 10426  // be included in the string output. The member name will be present, but the
 10427  // value will be replaced with "sensitive".
 10428  func (s GetBucketLifecycleConfigurationInput) GoString() string {
 10429  	return s.String()
 10430  }
 10431  
 10432  // Validate inspects the fields of the type to determine if they are valid.
 10433  func (s *GetBucketLifecycleConfigurationInput) Validate() error {
 10434  	invalidParams := request.ErrInvalidParams{Context: "GetBucketLifecycleConfigurationInput"}
 10435  	if s.AccountId == nil {
 10436  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 10437  	}
 10438  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 10439  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 10440  	}
 10441  	if s.Bucket == nil {
 10442  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
 10443  	}
 10444  	if s.Bucket != nil && len(*s.Bucket) < 3 {
 10445  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
 10446  	}
 10447  
 10448  	if invalidParams.Len() > 0 {
 10449  		return invalidParams
 10450  	}
 10451  	return nil
 10452  }
 10453  
 10454  // SetAccountId sets the AccountId field's value.
 10455  func (s *GetBucketLifecycleConfigurationInput) SetAccountId(v string) *GetBucketLifecycleConfigurationInput {
 10456  	s.AccountId = &v
 10457  	return s
 10458  }
 10459  
 10460  // SetBucket sets the Bucket field's value.
 10461  func (s *GetBucketLifecycleConfigurationInput) SetBucket(v string) *GetBucketLifecycleConfigurationInput {
 10462  	s.Bucket = &v
 10463  	return s
 10464  }
 10465  
 10466  func (s *GetBucketLifecycleConfigurationInput) hostLabels() map[string]string {
 10467  	return map[string]string{
 10468  		"AccountId": aws.StringValue(s.AccountId),
 10469  	}
 10470  }
 10471  
 10472  func (s *GetBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
 10473  	if s.Bucket == nil {
 10474  		return nil, fmt.Errorf("member Bucket is nil")
 10475  	}
 10476  	return parseEndpointARN(*s.Bucket)
 10477  }
 10478  
 10479  func (s *GetBucketLifecycleConfigurationInput) hasEndpointARN() bool {
 10480  	if s.Bucket == nil {
 10481  		return false
 10482  	}
 10483  	return arn.IsARN(*s.Bucket)
 10484  }
 10485  
 10486  // updateArnableField updates the value of the input field that
 10487  // takes an ARN as an input. This method is useful to backfill
 10488  // the parsed resource name from ARN into the input member.
 10489  // It returns a pointer to a modified copy of input and an error.
 10490  // Note that original input is not modified.
 10491  func (s GetBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
 10492  	if s.Bucket == nil {
 10493  		return nil, fmt.Errorf("member Bucket is nil")
 10494  	}
 10495  	s.Bucket = aws.String(v)
 10496  	return &s, nil
 10497  }
 10498  
 10499  // updateAccountID returns a pointer to a modified copy of input,
 10500  // if account id is not provided, we update the account id in modified input
 10501  // if account id is provided, but doesn't match with the one in ARN, we throw an error
 10502  // if account id is not updated, we return nil. Note that original input is not modified.
 10503  func (s GetBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
 10504  	if s.AccountId == nil {
 10505  		s.AccountId = aws.String(accountId)
 10506  		return &s, nil
 10507  	} else if *s.AccountId != accountId {
 10508  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
 10509  	}
 10510  	return nil, nil
 10511  }
 10512  
 10513  type GetBucketLifecycleConfigurationOutput struct {
 10514  	_ struct{} `type:"structure"`
 10515  
 10516  	// Container for the lifecycle rule of the Outposts bucket.
 10517  	Rules []*LifecycleRule `locationNameList:"Rule" type:"list"`
 10518  }
 10519  
 10520  // String returns the string representation.
 10521  //
 10522  // API parameter values that are decorated as "sensitive" in the API will not
 10523  // be included in the string output. The member name will be present, but the
 10524  // value will be replaced with "sensitive".
 10525  func (s GetBucketLifecycleConfigurationOutput) String() string {
 10526  	return awsutil.Prettify(s)
 10527  }
 10528  
 10529  // GoString returns the string representation.
 10530  //
 10531  // API parameter values that are decorated as "sensitive" in the API will not
 10532  // be included in the string output. The member name will be present, but the
 10533  // value will be replaced with "sensitive".
 10534  func (s GetBucketLifecycleConfigurationOutput) GoString() string {
 10535  	return s.String()
 10536  }
 10537  
 10538  // SetRules sets the Rules field's value.
 10539  func (s *GetBucketLifecycleConfigurationOutput) SetRules(v []*LifecycleRule) *GetBucketLifecycleConfigurationOutput {
 10540  	s.Rules = v
 10541  	return s
 10542  }
 10543  
 10544  type GetBucketOutput struct {
 10545  	_ struct{} `type:"structure"`
 10546  
 10547  	// The Outposts bucket requested.
 10548  	Bucket *string `min:"3" type:"string"`
 10549  
 10550  	// The creation date of the Outposts bucket.
 10551  	CreationDate *time.Time `type:"timestamp"`
 10552  
 10553  	PublicAccessBlockEnabled *bool `type:"boolean"`
 10554  }
 10555  
 10556  // String returns the string representation.
 10557  //
 10558  // API parameter values that are decorated as "sensitive" in the API will not
 10559  // be included in the string output. The member name will be present, but the
 10560  // value will be replaced with "sensitive".
 10561  func (s GetBucketOutput) String() string {
 10562  	return awsutil.Prettify(s)
 10563  }
 10564  
 10565  // GoString returns the string representation.
 10566  //
 10567  // API parameter values that are decorated as "sensitive" in the API will not
 10568  // be included in the string output. The member name will be present, but the
 10569  // value will be replaced with "sensitive".
 10570  func (s GetBucketOutput) GoString() string {
 10571  	return s.String()
 10572  }
 10573  
 10574  // SetBucket sets the Bucket field's value.
 10575  func (s *GetBucketOutput) SetBucket(v string) *GetBucketOutput {
 10576  	s.Bucket = &v
 10577  	return s
 10578  }
 10579  
 10580  // SetCreationDate sets the CreationDate field's value.
 10581  func (s *GetBucketOutput) SetCreationDate(v time.Time) *GetBucketOutput {
 10582  	s.CreationDate = &v
 10583  	return s
 10584  }
 10585  
 10586  // SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value.
 10587  func (s *GetBucketOutput) SetPublicAccessBlockEnabled(v bool) *GetBucketOutput {
 10588  	s.PublicAccessBlockEnabled = &v
 10589  	return s
 10590  }
 10591  
 10592  type GetBucketPolicyInput struct {
 10593  	_ struct{} `locationName:"GetBucketPolicyRequest" type:"structure"`
 10594  
 10595  	// The Amazon Web Services account ID of the Outposts bucket.
 10596  	//
 10597  	// AccountId is a required field
 10598  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 10599  
 10600  	// Specifies the bucket.
 10601  	//
 10602  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
 10603  	// must specify the name and the x-amz-outpost-id as well.
 10604  	//
 10605  	// For using this parameter with S3 on Outposts with the Amazon Web Services
 10606  	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
 10607  	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
 10608  	// For example, to access the bucket reports through outpost my-outpost owned
 10609  	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
 10610  	// The value must be URL encoded.
 10611  	//
 10612  	// Bucket is a required field
 10613  	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
 10614  }
 10615  
 10616  // String returns the string representation.
 10617  //
 10618  // API parameter values that are decorated as "sensitive" in the API will not
 10619  // be included in the string output. The member name will be present, but the
 10620  // value will be replaced with "sensitive".
 10621  func (s GetBucketPolicyInput) String() string {
 10622  	return awsutil.Prettify(s)
 10623  }
 10624  
 10625  // GoString returns the string representation.
 10626  //
 10627  // API parameter values that are decorated as "sensitive" in the API will not
 10628  // be included in the string output. The member name will be present, but the
 10629  // value will be replaced with "sensitive".
 10630  func (s GetBucketPolicyInput) GoString() string {
 10631  	return s.String()
 10632  }
 10633  
 10634  // Validate inspects the fields of the type to determine if they are valid.
 10635  func (s *GetBucketPolicyInput) Validate() error {
 10636  	invalidParams := request.ErrInvalidParams{Context: "GetBucketPolicyInput"}
 10637  	if s.AccountId == nil {
 10638  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 10639  	}
 10640  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 10641  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 10642  	}
 10643  	if s.Bucket == nil {
 10644  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
 10645  	}
 10646  	if s.Bucket != nil && len(*s.Bucket) < 3 {
 10647  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
 10648  	}
 10649  
 10650  	if invalidParams.Len() > 0 {
 10651  		return invalidParams
 10652  	}
 10653  	return nil
 10654  }
 10655  
 10656  // SetAccountId sets the AccountId field's value.
 10657  func (s *GetBucketPolicyInput) SetAccountId(v string) *GetBucketPolicyInput {
 10658  	s.AccountId = &v
 10659  	return s
 10660  }
 10661  
 10662  // SetBucket sets the Bucket field's value.
 10663  func (s *GetBucketPolicyInput) SetBucket(v string) *GetBucketPolicyInput {
 10664  	s.Bucket = &v
 10665  	return s
 10666  }
 10667  
 10668  func (s *GetBucketPolicyInput) hostLabels() map[string]string {
 10669  	return map[string]string{
 10670  		"AccountId": aws.StringValue(s.AccountId),
 10671  	}
 10672  }
 10673  
 10674  func (s *GetBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
 10675  	if s.Bucket == nil {
 10676  		return nil, fmt.Errorf("member Bucket is nil")
 10677  	}
 10678  	return parseEndpointARN(*s.Bucket)
 10679  }
 10680  
 10681  func (s *GetBucketPolicyInput) hasEndpointARN() bool {
 10682  	if s.Bucket == nil {
 10683  		return false
 10684  	}
 10685  	return arn.IsARN(*s.Bucket)
 10686  }
 10687  
 10688  // updateArnableField updates the value of the input field that
 10689  // takes an ARN as an input. This method is useful to backfill
 10690  // the parsed resource name from ARN into the input member.
 10691  // It returns a pointer to a modified copy of input and an error.
 10692  // Note that original input is not modified.
 10693  func (s GetBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
 10694  	if s.Bucket == nil {
 10695  		return nil, fmt.Errorf("member Bucket is nil")
 10696  	}
 10697  	s.Bucket = aws.String(v)
 10698  	return &s, nil
 10699  }
 10700  
 10701  // updateAccountID returns a pointer to a modified copy of input,
 10702  // if account id is not provided, we update the account id in modified input
 10703  // if account id is provided, but doesn't match with the one in ARN, we throw an error
 10704  // if account id is not updated, we return nil. Note that original input is not modified.
 10705  func (s GetBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
 10706  	if s.AccountId == nil {
 10707  		s.AccountId = aws.String(accountId)
 10708  		return &s, nil
 10709  	} else if *s.AccountId != accountId {
 10710  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
 10711  	}
 10712  	return nil, nil
 10713  }
 10714  
 10715  type GetBucketPolicyOutput struct {
 10716  	_ struct{} `type:"structure"`
 10717  
 10718  	// The policy of the Outposts bucket.
 10719  	Policy *string `type:"string"`
 10720  }
 10721  
 10722  // String returns the string representation.
 10723  //
 10724  // API parameter values that are decorated as "sensitive" in the API will not
 10725  // be included in the string output. The member name will be present, but the
 10726  // value will be replaced with "sensitive".
 10727  func (s GetBucketPolicyOutput) String() string {
 10728  	return awsutil.Prettify(s)
 10729  }
 10730  
 10731  // GoString returns the string representation.
 10732  //
 10733  // API parameter values that are decorated as "sensitive" in the API will not
 10734  // be included in the string output. The member name will be present, but the
 10735  // value will be replaced with "sensitive".
 10736  func (s GetBucketPolicyOutput) GoString() string {
 10737  	return s.String()
 10738  }
 10739  
 10740  // SetPolicy sets the Policy field's value.
 10741  func (s *GetBucketPolicyOutput) SetPolicy(v string) *GetBucketPolicyOutput {
 10742  	s.Policy = &v
 10743  	return s
 10744  }
 10745  
 10746  type GetBucketTaggingInput struct {
 10747  	_ struct{} `locationName:"GetBucketTaggingRequest" type:"structure"`
 10748  
 10749  	// The Amazon Web Services account ID of the Outposts bucket.
 10750  	//
 10751  	// AccountId is a required field
 10752  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 10753  
 10754  	// Specifies the bucket.
 10755  	//
 10756  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
 10757  	// must specify the name and the x-amz-outpost-id as well.
 10758  	//
 10759  	// For using this parameter with S3 on Outposts with the Amazon Web Services
 10760  	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
 10761  	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
 10762  	// For example, to access the bucket reports through outpost my-outpost owned
 10763  	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
 10764  	// The value must be URL encoded.
 10765  	//
 10766  	// Bucket is a required field
 10767  	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
 10768  }
 10769  
 10770  // String returns the string representation.
 10771  //
 10772  // API parameter values that are decorated as "sensitive" in the API will not
 10773  // be included in the string output. The member name will be present, but the
 10774  // value will be replaced with "sensitive".
 10775  func (s GetBucketTaggingInput) String() string {
 10776  	return awsutil.Prettify(s)
 10777  }
 10778  
 10779  // GoString returns the string representation.
 10780  //
 10781  // API parameter values that are decorated as "sensitive" in the API will not
 10782  // be included in the string output. The member name will be present, but the
 10783  // value will be replaced with "sensitive".
 10784  func (s GetBucketTaggingInput) GoString() string {
 10785  	return s.String()
 10786  }
 10787  
 10788  // Validate inspects the fields of the type to determine if they are valid.
 10789  func (s *GetBucketTaggingInput) Validate() error {
 10790  	invalidParams := request.ErrInvalidParams{Context: "GetBucketTaggingInput"}
 10791  	if s.AccountId == nil {
 10792  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 10793  	}
 10794  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 10795  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 10796  	}
 10797  	if s.Bucket == nil {
 10798  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
 10799  	}
 10800  	if s.Bucket != nil && len(*s.Bucket) < 3 {
 10801  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
 10802  	}
 10803  
 10804  	if invalidParams.Len() > 0 {
 10805  		return invalidParams
 10806  	}
 10807  	return nil
 10808  }
 10809  
 10810  // SetAccountId sets the AccountId field's value.
 10811  func (s *GetBucketTaggingInput) SetAccountId(v string) *GetBucketTaggingInput {
 10812  	s.AccountId = &v
 10813  	return s
 10814  }
 10815  
 10816  // SetBucket sets the Bucket field's value.
 10817  func (s *GetBucketTaggingInput) SetBucket(v string) *GetBucketTaggingInput {
 10818  	s.Bucket = &v
 10819  	return s
 10820  }
 10821  
 10822  func (s *GetBucketTaggingInput) hostLabels() map[string]string {
 10823  	return map[string]string{
 10824  		"AccountId": aws.StringValue(s.AccountId),
 10825  	}
 10826  }
 10827  
 10828  func (s *GetBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
 10829  	if s.Bucket == nil {
 10830  		return nil, fmt.Errorf("member Bucket is nil")
 10831  	}
 10832  	return parseEndpointARN(*s.Bucket)
 10833  }
 10834  
 10835  func (s *GetBucketTaggingInput) hasEndpointARN() bool {
 10836  	if s.Bucket == nil {
 10837  		return false
 10838  	}
 10839  	return arn.IsARN(*s.Bucket)
 10840  }
 10841  
 10842  // updateArnableField updates the value of the input field that
 10843  // takes an ARN as an input. This method is useful to backfill
 10844  // the parsed resource name from ARN into the input member.
 10845  // It returns a pointer to a modified copy of input and an error.
 10846  // Note that original input is not modified.
 10847  func (s GetBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
 10848  	if s.Bucket == nil {
 10849  		return nil, fmt.Errorf("member Bucket is nil")
 10850  	}
 10851  	s.Bucket = aws.String(v)
 10852  	return &s, nil
 10853  }
 10854  
 10855  // updateAccountID returns a pointer to a modified copy of input,
 10856  // if account id is not provided, we update the account id in modified input
 10857  // if account id is provided, but doesn't match with the one in ARN, we throw an error
 10858  // if account id is not updated, we return nil. Note that original input is not modified.
 10859  func (s GetBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
 10860  	if s.AccountId == nil {
 10861  		s.AccountId = aws.String(accountId)
 10862  		return &s, nil
 10863  	} else if *s.AccountId != accountId {
 10864  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
 10865  	}
 10866  	return nil, nil
 10867  }
 10868  
 10869  type GetBucketTaggingOutput struct {
 10870  	_ struct{} `type:"structure"`
 10871  
 10872  	// The tags set of the Outposts bucket.
 10873  	//
 10874  	// TagSet is a required field
 10875  	TagSet []*S3Tag `type:"list" required:"true"`
 10876  }
 10877  
 10878  // String returns the string representation.
 10879  //
 10880  // API parameter values that are decorated as "sensitive" in the API will not
 10881  // be included in the string output. The member name will be present, but the
 10882  // value will be replaced with "sensitive".
 10883  func (s GetBucketTaggingOutput) String() string {
 10884  	return awsutil.Prettify(s)
 10885  }
 10886  
 10887  // GoString returns the string representation.
 10888  //
 10889  // API parameter values that are decorated as "sensitive" in the API will not
 10890  // be included in the string output. The member name will be present, but the
 10891  // value will be replaced with "sensitive".
 10892  func (s GetBucketTaggingOutput) GoString() string {
 10893  	return s.String()
 10894  }
 10895  
 10896  // SetTagSet sets the TagSet field's value.
 10897  func (s *GetBucketTaggingOutput) SetTagSet(v []*S3Tag) *GetBucketTaggingOutput {
 10898  	s.TagSet = v
 10899  	return s
 10900  }
 10901  
 10902  type GetJobTaggingInput struct {
 10903  	_ struct{} `locationName:"GetJobTaggingRequest" type:"structure"`
 10904  
 10905  	// The Amazon Web Services account ID associated with the S3 Batch Operations
 10906  	// job.
 10907  	//
 10908  	// AccountId is a required field
 10909  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 10910  
 10911  	// The ID for the S3 Batch Operations job whose tags you want to retrieve.
 10912  	//
 10913  	// JobId is a required field
 10914  	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
 10915  }
 10916  
 10917  // String returns the string representation.
 10918  //
 10919  // API parameter values that are decorated as "sensitive" in the API will not
 10920  // be included in the string output. The member name will be present, but the
 10921  // value will be replaced with "sensitive".
 10922  func (s GetJobTaggingInput) String() string {
 10923  	return awsutil.Prettify(s)
 10924  }
 10925  
 10926  // GoString returns the string representation.
 10927  //
 10928  // API parameter values that are decorated as "sensitive" in the API will not
 10929  // be included in the string output. The member name will be present, but the
 10930  // value will be replaced with "sensitive".
 10931  func (s GetJobTaggingInput) GoString() string {
 10932  	return s.String()
 10933  }
 10934  
 10935  // Validate inspects the fields of the type to determine if they are valid.
 10936  func (s *GetJobTaggingInput) Validate() error {
 10937  	invalidParams := request.ErrInvalidParams{Context: "GetJobTaggingInput"}
 10938  	if s.AccountId == nil {
 10939  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 10940  	}
 10941  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 10942  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 10943  	}
 10944  	if s.JobId == nil {
 10945  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 10946  	}
 10947  	if s.JobId != nil && len(*s.JobId) < 5 {
 10948  		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
 10949  	}
 10950  
 10951  	if invalidParams.Len() > 0 {
 10952  		return invalidParams
 10953  	}
 10954  	return nil
 10955  }
 10956  
 10957  // SetAccountId sets the AccountId field's value.
 10958  func (s *GetJobTaggingInput) SetAccountId(v string) *GetJobTaggingInput {
 10959  	s.AccountId = &v
 10960  	return s
 10961  }
 10962  
 10963  // SetJobId sets the JobId field's value.
 10964  func (s *GetJobTaggingInput) SetJobId(v string) *GetJobTaggingInput {
 10965  	s.JobId = &v
 10966  	return s
 10967  }
 10968  
 10969  func (s *GetJobTaggingInput) hostLabels() map[string]string {
 10970  	return map[string]string{
 10971  		"AccountId": aws.StringValue(s.AccountId),
 10972  	}
 10973  }
 10974  
 10975  type GetJobTaggingOutput struct {
 10976  	_ struct{} `type:"structure"`
 10977  
 10978  	// The set of tags associated with the S3 Batch Operations job.
 10979  	Tags []*S3Tag `type:"list"`
 10980  }
 10981  
 10982  // String returns the string representation.
 10983  //
 10984  // API parameter values that are decorated as "sensitive" in the API will not
 10985  // be included in the string output. The member name will be present, but the
 10986  // value will be replaced with "sensitive".
 10987  func (s GetJobTaggingOutput) String() string {
 10988  	return awsutil.Prettify(s)
 10989  }
 10990  
 10991  // GoString returns the string representation.
 10992  //
 10993  // API parameter values that are decorated as "sensitive" in the API will not
 10994  // be included in the string output. The member name will be present, but the
 10995  // value will be replaced with "sensitive".
 10996  func (s GetJobTaggingOutput) GoString() string {
 10997  	return s.String()
 10998  }
 10999  
 11000  // SetTags sets the Tags field's value.
 11001  func (s *GetJobTaggingOutput) SetTags(v []*S3Tag) *GetJobTaggingOutput {
 11002  	s.Tags = v
 11003  	return s
 11004  }
 11005  
 11006  type GetMultiRegionAccessPointInput struct {
 11007  	_ struct{} `locationName:"GetMultiRegionAccessPointRequest" type:"structure"`
 11008  
 11009  	// The Amazon Web Services account ID for the owner of the Multi-Region Access
 11010  	// Point.
 11011  	//
 11012  	// AccountId is a required field
 11013  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 11014  
 11015  	// The name of the Multi-Region Access Point whose configuration information
 11016  	// you want to receive. The name of the Multi-Region Access Point is different
 11017  	// from the alias. For more information about the distinction between the name
 11018  	// and the alias of an Multi-Region Access Point, see Managing Multi-Region
 11019  	// Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming)
 11020  	// in the Amazon S3 User Guide.
 11021  	//
 11022  	// Name is a required field
 11023  	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
 11024  }
 11025  
 11026  // String returns the string representation.
 11027  //
 11028  // API parameter values that are decorated as "sensitive" in the API will not
 11029  // be included in the string output. The member name will be present, but the
 11030  // value will be replaced with "sensitive".
 11031  func (s GetMultiRegionAccessPointInput) String() string {
 11032  	return awsutil.Prettify(s)
 11033  }
 11034  
 11035  // GoString returns the string representation.
 11036  //
 11037  // API parameter values that are decorated as "sensitive" in the API will not
 11038  // be included in the string output. The member name will be present, but the
 11039  // value will be replaced with "sensitive".
 11040  func (s GetMultiRegionAccessPointInput) GoString() string {
 11041  	return s.String()
 11042  }
 11043  
 11044  // Validate inspects the fields of the type to determine if they are valid.
 11045  func (s *GetMultiRegionAccessPointInput) Validate() error {
 11046  	invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointInput"}
 11047  	if s.AccountId == nil {
 11048  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 11049  	}
 11050  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 11051  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 11052  	}
 11053  	if s.Name == nil {
 11054  		invalidParams.Add(request.NewErrParamRequired("Name"))
 11055  	}
 11056  	if s.Name != nil && len(*s.Name) < 1 {
 11057  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 11058  	}
 11059  
 11060  	if invalidParams.Len() > 0 {
 11061  		return invalidParams
 11062  	}
 11063  	return nil
 11064  }
 11065  
 11066  // SetAccountId sets the AccountId field's value.
 11067  func (s *GetMultiRegionAccessPointInput) SetAccountId(v string) *GetMultiRegionAccessPointInput {
 11068  	s.AccountId = &v
 11069  	return s
 11070  }
 11071  
 11072  // SetName sets the Name field's value.
 11073  func (s *GetMultiRegionAccessPointInput) SetName(v string) *GetMultiRegionAccessPointInput {
 11074  	s.Name = &v
 11075  	return s
 11076  }
 11077  
 11078  func (s *GetMultiRegionAccessPointInput) hostLabels() map[string]string {
 11079  	return map[string]string{
 11080  		"AccountId": aws.StringValue(s.AccountId),
 11081  	}
 11082  }
 11083  
 11084  type GetMultiRegionAccessPointOutput struct {
 11085  	_ struct{} `type:"structure"`
 11086  
 11087  	// A container element containing the details of the requested Multi-Region
 11088  	// Access Point.
 11089  	AccessPoint *MultiRegionAccessPointReport `type:"structure"`
 11090  }
 11091  
 11092  // String returns the string representation.
 11093  //
 11094  // API parameter values that are decorated as "sensitive" in the API will not
 11095  // be included in the string output. The member name will be present, but the
 11096  // value will be replaced with "sensitive".
 11097  func (s GetMultiRegionAccessPointOutput) String() string {
 11098  	return awsutil.Prettify(s)
 11099  }
 11100  
 11101  // GoString returns the string representation.
 11102  //
 11103  // API parameter values that are decorated as "sensitive" in the API will not
 11104  // be included in the string output. The member name will be present, but the
 11105  // value will be replaced with "sensitive".
 11106  func (s GetMultiRegionAccessPointOutput) GoString() string {
 11107  	return s.String()
 11108  }
 11109  
 11110  // SetAccessPoint sets the AccessPoint field's value.
 11111  func (s *GetMultiRegionAccessPointOutput) SetAccessPoint(v *MultiRegionAccessPointReport) *GetMultiRegionAccessPointOutput {
 11112  	s.AccessPoint = v
 11113  	return s
 11114  }
 11115  
 11116  type GetMultiRegionAccessPointPolicyInput struct {
 11117  	_ struct{} `locationName:"GetMultiRegionAccessPointPolicyRequest" type:"structure"`
 11118  
 11119  	// The Amazon Web Services account ID for the owner of the Multi-Region Access
 11120  	// Point.
 11121  	//
 11122  	// AccountId is a required field
 11123  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 11124  
 11125  	// Specifies the Multi-Region Access Point. The name of the Multi-Region Access
 11126  	// Point is different from the alias. For more information about the distinction
 11127  	// between the name and the alias of an Multi-Region Access Point, see Managing
 11128  	// Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming)
 11129  	// in the Amazon S3 User Guide.
 11130  	//
 11131  	// Name is a required field
 11132  	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
 11133  }
 11134  
 11135  // String returns the string representation.
 11136  //
 11137  // API parameter values that are decorated as "sensitive" in the API will not
 11138  // be included in the string output. The member name will be present, but the
 11139  // value will be replaced with "sensitive".
 11140  func (s GetMultiRegionAccessPointPolicyInput) String() string {
 11141  	return awsutil.Prettify(s)
 11142  }
 11143  
 11144  // GoString returns the string representation.
 11145  //
 11146  // API parameter values that are decorated as "sensitive" in the API will not
 11147  // be included in the string output. The member name will be present, but the
 11148  // value will be replaced with "sensitive".
 11149  func (s GetMultiRegionAccessPointPolicyInput) GoString() string {
 11150  	return s.String()
 11151  }
 11152  
 11153  // Validate inspects the fields of the type to determine if they are valid.
 11154  func (s *GetMultiRegionAccessPointPolicyInput) Validate() error {
 11155  	invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointPolicyInput"}
 11156  	if s.AccountId == nil {
 11157  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 11158  	}
 11159  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 11160  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 11161  	}
 11162  	if s.Name == nil {
 11163  		invalidParams.Add(request.NewErrParamRequired("Name"))
 11164  	}
 11165  	if s.Name != nil && len(*s.Name) < 1 {
 11166  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 11167  	}
 11168  
 11169  	if invalidParams.Len() > 0 {
 11170  		return invalidParams
 11171  	}
 11172  	return nil
 11173  }
 11174  
 11175  // SetAccountId sets the AccountId field's value.
 11176  func (s *GetMultiRegionAccessPointPolicyInput) SetAccountId(v string) *GetMultiRegionAccessPointPolicyInput {
 11177  	s.AccountId = &v
 11178  	return s
 11179  }
 11180  
 11181  // SetName sets the Name field's value.
 11182  func (s *GetMultiRegionAccessPointPolicyInput) SetName(v string) *GetMultiRegionAccessPointPolicyInput {
 11183  	s.Name = &v
 11184  	return s
 11185  }
 11186  
 11187  func (s *GetMultiRegionAccessPointPolicyInput) hostLabels() map[string]string {
 11188  	return map[string]string{
 11189  		"AccountId": aws.StringValue(s.AccountId),
 11190  	}
 11191  }
 11192  
 11193  type GetMultiRegionAccessPointPolicyOutput struct {
 11194  	_ struct{} `type:"structure"`
 11195  
 11196  	// The policy associated with the specified Multi-Region Access Point.
 11197  	Policy *MultiRegionAccessPointPolicyDocument `type:"structure"`
 11198  }
 11199  
 11200  // String returns the string representation.
 11201  //
 11202  // API parameter values that are decorated as "sensitive" in the API will not
 11203  // be included in the string output. The member name will be present, but the
 11204  // value will be replaced with "sensitive".
 11205  func (s GetMultiRegionAccessPointPolicyOutput) String() string {
 11206  	return awsutil.Prettify(s)
 11207  }
 11208  
 11209  // GoString returns the string representation.
 11210  //
 11211  // API parameter values that are decorated as "sensitive" in the API will not
 11212  // be included in the string output. The member name will be present, but the
 11213  // value will be replaced with "sensitive".
 11214  func (s GetMultiRegionAccessPointPolicyOutput) GoString() string {
 11215  	return s.String()
 11216  }
 11217  
 11218  // SetPolicy sets the Policy field's value.
 11219  func (s *GetMultiRegionAccessPointPolicyOutput) SetPolicy(v *MultiRegionAccessPointPolicyDocument) *GetMultiRegionAccessPointPolicyOutput {
 11220  	s.Policy = v
 11221  	return s
 11222  }
 11223  
 11224  type GetMultiRegionAccessPointPolicyStatusInput struct {
 11225  	_ struct{} `locationName:"GetMultiRegionAccessPointPolicyStatusRequest" type:"structure"`
 11226  
 11227  	// The Amazon Web Services account ID for the owner of the Multi-Region Access
 11228  	// Point.
 11229  	//
 11230  	// AccountId is a required field
 11231  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 11232  
 11233  	// Specifies the Multi-Region Access Point. The name of the Multi-Region Access
 11234  	// Point is different from the alias. For more information about the distinction
 11235  	// between the name and the alias of an Multi-Region Access Point, see Managing
 11236  	// Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming)
 11237  	// in the Amazon S3 User Guide.
 11238  	//
 11239  	// Name is a required field
 11240  	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
 11241  }
 11242  
 11243  // String returns the string representation.
 11244  //
 11245  // API parameter values that are decorated as "sensitive" in the API will not
 11246  // be included in the string output. The member name will be present, but the
 11247  // value will be replaced with "sensitive".
 11248  func (s GetMultiRegionAccessPointPolicyStatusInput) String() string {
 11249  	return awsutil.Prettify(s)
 11250  }
 11251  
 11252  // GoString returns the string representation.
 11253  //
 11254  // API parameter values that are decorated as "sensitive" in the API will not
 11255  // be included in the string output. The member name will be present, but the
 11256  // value will be replaced with "sensitive".
 11257  func (s GetMultiRegionAccessPointPolicyStatusInput) GoString() string {
 11258  	return s.String()
 11259  }
 11260  
 11261  // Validate inspects the fields of the type to determine if they are valid.
 11262  func (s *GetMultiRegionAccessPointPolicyStatusInput) Validate() error {
 11263  	invalidParams := request.ErrInvalidParams{Context: "GetMultiRegionAccessPointPolicyStatusInput"}
 11264  	if s.AccountId == nil {
 11265  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 11266  	}
 11267  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 11268  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 11269  	}
 11270  	if s.Name == nil {
 11271  		invalidParams.Add(request.NewErrParamRequired("Name"))
 11272  	}
 11273  	if s.Name != nil && len(*s.Name) < 1 {
 11274  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 11275  	}
 11276  
 11277  	if invalidParams.Len() > 0 {
 11278  		return invalidParams
 11279  	}
 11280  	return nil
 11281  }
 11282  
 11283  // SetAccountId sets the AccountId field's value.
 11284  func (s *GetMultiRegionAccessPointPolicyStatusInput) SetAccountId(v string) *GetMultiRegionAccessPointPolicyStatusInput {
 11285  	s.AccountId = &v
 11286  	return s
 11287  }
 11288  
 11289  // SetName sets the Name field's value.
 11290  func (s *GetMultiRegionAccessPointPolicyStatusInput) SetName(v string) *GetMultiRegionAccessPointPolicyStatusInput {
 11291  	s.Name = &v
 11292  	return s
 11293  }
 11294  
 11295  func (s *GetMultiRegionAccessPointPolicyStatusInput) hostLabels() map[string]string {
 11296  	return map[string]string{
 11297  		"AccountId": aws.StringValue(s.AccountId),
 11298  	}
 11299  }
 11300  
 11301  type GetMultiRegionAccessPointPolicyStatusOutput struct {
 11302  	_ struct{} `type:"structure"`
 11303  
 11304  	// Indicates whether this access point policy is public. For more information
 11305  	// about how Amazon S3 evaluates policies to determine whether they are public,
 11306  	// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
 11307  	// in the Amazon S3 User Guide.
 11308  	Established *PolicyStatus `type:"structure"`
 11309  }
 11310  
 11311  // String returns the string representation.
 11312  //
 11313  // API parameter values that are decorated as "sensitive" in the API will not
 11314  // be included in the string output. The member name will be present, but the
 11315  // value will be replaced with "sensitive".
 11316  func (s GetMultiRegionAccessPointPolicyStatusOutput) String() string {
 11317  	return awsutil.Prettify(s)
 11318  }
 11319  
 11320  // GoString returns the string representation.
 11321  //
 11322  // API parameter values that are decorated as "sensitive" in the API will not
 11323  // be included in the string output. The member name will be present, but the
 11324  // value will be replaced with "sensitive".
 11325  func (s GetMultiRegionAccessPointPolicyStatusOutput) GoString() string {
 11326  	return s.String()
 11327  }
 11328  
 11329  // SetEstablished sets the Established field's value.
 11330  func (s *GetMultiRegionAccessPointPolicyStatusOutput) SetEstablished(v *PolicyStatus) *GetMultiRegionAccessPointPolicyStatusOutput {
 11331  	s.Established = v
 11332  	return s
 11333  }
 11334  
 11335  type GetPublicAccessBlockInput struct {
 11336  	_ struct{} `locationName:"GetPublicAccessBlockRequest" type:"structure"`
 11337  
 11338  	// The account ID for the Amazon Web Services account whose PublicAccessBlock
 11339  	// configuration you want to retrieve.
 11340  	//
 11341  	// AccountId is a required field
 11342  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 11343  }
 11344  
 11345  // String returns the string representation.
 11346  //
 11347  // API parameter values that are decorated as "sensitive" in the API will not
 11348  // be included in the string output. The member name will be present, but the
 11349  // value will be replaced with "sensitive".
 11350  func (s GetPublicAccessBlockInput) String() string {
 11351  	return awsutil.Prettify(s)
 11352  }
 11353  
 11354  // GoString returns the string representation.
 11355  //
 11356  // API parameter values that are decorated as "sensitive" in the API will not
 11357  // be included in the string output. The member name will be present, but the
 11358  // value will be replaced with "sensitive".
 11359  func (s GetPublicAccessBlockInput) GoString() string {
 11360  	return s.String()
 11361  }
 11362  
 11363  // Validate inspects the fields of the type to determine if they are valid.
 11364  func (s *GetPublicAccessBlockInput) Validate() error {
 11365  	invalidParams := request.ErrInvalidParams{Context: "GetPublicAccessBlockInput"}
 11366  	if s.AccountId == nil {
 11367  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 11368  	}
 11369  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 11370  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 11371  	}
 11372  
 11373  	if invalidParams.Len() > 0 {
 11374  		return invalidParams
 11375  	}
 11376  	return nil
 11377  }
 11378  
 11379  // SetAccountId sets the AccountId field's value.
 11380  func (s *GetPublicAccessBlockInput) SetAccountId(v string) *GetPublicAccessBlockInput {
 11381  	s.AccountId = &v
 11382  	return s
 11383  }
 11384  
 11385  func (s *GetPublicAccessBlockInput) hostLabels() map[string]string {
 11386  	return map[string]string{
 11387  		"AccountId": aws.StringValue(s.AccountId),
 11388  	}
 11389  }
 11390  
 11391  type GetPublicAccessBlockOutput struct {
 11392  	_ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"`
 11393  
 11394  	// The PublicAccessBlock configuration currently in effect for this Amazon Web
 11395  	// Services account.
 11396  	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
 11397  }
 11398  
 11399  // String returns the string representation.
 11400  //
 11401  // API parameter values that are decorated as "sensitive" in the API will not
 11402  // be included in the string output. The member name will be present, but the
 11403  // value will be replaced with "sensitive".
 11404  func (s GetPublicAccessBlockOutput) String() string {
 11405  	return awsutil.Prettify(s)
 11406  }
 11407  
 11408  // GoString returns the string representation.
 11409  //
 11410  // API parameter values that are decorated as "sensitive" in the API will not
 11411  // be included in the string output. The member name will be present, but the
 11412  // value will be replaced with "sensitive".
 11413  func (s GetPublicAccessBlockOutput) GoString() string {
 11414  	return s.String()
 11415  }
 11416  
 11417  // SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
 11418  func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetPublicAccessBlockOutput {
 11419  	s.PublicAccessBlockConfiguration = v
 11420  	return s
 11421  }
 11422  
 11423  type GetStorageLensConfigurationInput struct {
 11424  	_ struct{} `locationName:"GetStorageLensConfigurationRequest" type:"structure"`
 11425  
 11426  	// The account ID of the requester.
 11427  	//
 11428  	// AccountId is a required field
 11429  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 11430  
 11431  	// The ID of the Amazon S3 Storage Lens configuration.
 11432  	//
 11433  	// ConfigId is a required field
 11434  	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
 11435  }
 11436  
 11437  // String returns the string representation.
 11438  //
 11439  // API parameter values that are decorated as "sensitive" in the API will not
 11440  // be included in the string output. The member name will be present, but the
 11441  // value will be replaced with "sensitive".
 11442  func (s GetStorageLensConfigurationInput) String() string {
 11443  	return awsutil.Prettify(s)
 11444  }
 11445  
 11446  // GoString returns the string representation.
 11447  //
 11448  // API parameter values that are decorated as "sensitive" in the API will not
 11449  // be included in the string output. The member name will be present, but the
 11450  // value will be replaced with "sensitive".
 11451  func (s GetStorageLensConfigurationInput) GoString() string {
 11452  	return s.String()
 11453  }
 11454  
 11455  // Validate inspects the fields of the type to determine if they are valid.
 11456  func (s *GetStorageLensConfigurationInput) Validate() error {
 11457  	invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationInput"}
 11458  	if s.AccountId == nil {
 11459  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 11460  	}
 11461  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 11462  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 11463  	}
 11464  	if s.ConfigId == nil {
 11465  		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
 11466  	}
 11467  	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
 11468  		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
 11469  	}
 11470  
 11471  	if invalidParams.Len() > 0 {
 11472  		return invalidParams
 11473  	}
 11474  	return nil
 11475  }
 11476  
 11477  // SetAccountId sets the AccountId field's value.
 11478  func (s *GetStorageLensConfigurationInput) SetAccountId(v string) *GetStorageLensConfigurationInput {
 11479  	s.AccountId = &v
 11480  	return s
 11481  }
 11482  
 11483  // SetConfigId sets the ConfigId field's value.
 11484  func (s *GetStorageLensConfigurationInput) SetConfigId(v string) *GetStorageLensConfigurationInput {
 11485  	s.ConfigId = &v
 11486  	return s
 11487  }
 11488  
 11489  func (s *GetStorageLensConfigurationInput) hostLabels() map[string]string {
 11490  	return map[string]string{
 11491  		"AccountId": aws.StringValue(s.AccountId),
 11492  	}
 11493  }
 11494  
 11495  type GetStorageLensConfigurationOutput struct {
 11496  	_ struct{} `type:"structure" payload:"StorageLensConfiguration"`
 11497  
 11498  	// The S3 Storage Lens configuration requested.
 11499  	StorageLensConfiguration *StorageLensConfiguration `type:"structure"`
 11500  }
 11501  
 11502  // String returns the string representation.
 11503  //
 11504  // API parameter values that are decorated as "sensitive" in the API will not
 11505  // be included in the string output. The member name will be present, but the
 11506  // value will be replaced with "sensitive".
 11507  func (s GetStorageLensConfigurationOutput) String() string {
 11508  	return awsutil.Prettify(s)
 11509  }
 11510  
 11511  // GoString returns the string representation.
 11512  //
 11513  // API parameter values that are decorated as "sensitive" in the API will not
 11514  // be included in the string output. The member name will be present, but the
 11515  // value will be replaced with "sensitive".
 11516  func (s GetStorageLensConfigurationOutput) GoString() string {
 11517  	return s.String()
 11518  }
 11519  
 11520  // SetStorageLensConfiguration sets the StorageLensConfiguration field's value.
 11521  func (s *GetStorageLensConfigurationOutput) SetStorageLensConfiguration(v *StorageLensConfiguration) *GetStorageLensConfigurationOutput {
 11522  	s.StorageLensConfiguration = v
 11523  	return s
 11524  }
 11525  
 11526  type GetStorageLensConfigurationTaggingInput struct {
 11527  	_ struct{} `locationName:"GetStorageLensConfigurationTaggingRequest" type:"structure"`
 11528  
 11529  	// The account ID of the requester.
 11530  	//
 11531  	// AccountId is a required field
 11532  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 11533  
 11534  	// The ID of the Amazon S3 Storage Lens configuration.
 11535  	//
 11536  	// ConfigId is a required field
 11537  	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
 11538  }
 11539  
 11540  // String returns the string representation.
 11541  //
 11542  // API parameter values that are decorated as "sensitive" in the API will not
 11543  // be included in the string output. The member name will be present, but the
 11544  // value will be replaced with "sensitive".
 11545  func (s GetStorageLensConfigurationTaggingInput) String() string {
 11546  	return awsutil.Prettify(s)
 11547  }
 11548  
 11549  // GoString returns the string representation.
 11550  //
 11551  // API parameter values that are decorated as "sensitive" in the API will not
 11552  // be included in the string output. The member name will be present, but the
 11553  // value will be replaced with "sensitive".
 11554  func (s GetStorageLensConfigurationTaggingInput) GoString() string {
 11555  	return s.String()
 11556  }
 11557  
 11558  // Validate inspects the fields of the type to determine if they are valid.
 11559  func (s *GetStorageLensConfigurationTaggingInput) Validate() error {
 11560  	invalidParams := request.ErrInvalidParams{Context: "GetStorageLensConfigurationTaggingInput"}
 11561  	if s.AccountId == nil {
 11562  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 11563  	}
 11564  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 11565  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 11566  	}
 11567  	if s.ConfigId == nil {
 11568  		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
 11569  	}
 11570  	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
 11571  		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
 11572  	}
 11573  
 11574  	if invalidParams.Len() > 0 {
 11575  		return invalidParams
 11576  	}
 11577  	return nil
 11578  }
 11579  
 11580  // SetAccountId sets the AccountId field's value.
 11581  func (s *GetStorageLensConfigurationTaggingInput) SetAccountId(v string) *GetStorageLensConfigurationTaggingInput {
 11582  	s.AccountId = &v
 11583  	return s
 11584  }
 11585  
 11586  // SetConfigId sets the ConfigId field's value.
 11587  func (s *GetStorageLensConfigurationTaggingInput) SetConfigId(v string) *GetStorageLensConfigurationTaggingInput {
 11588  	s.ConfigId = &v
 11589  	return s
 11590  }
 11591  
 11592  func (s *GetStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
 11593  	return map[string]string{
 11594  		"AccountId": aws.StringValue(s.AccountId),
 11595  	}
 11596  }
 11597  
 11598  type GetStorageLensConfigurationTaggingOutput struct {
 11599  	_ struct{} `type:"structure"`
 11600  
 11601  	// The tags of S3 Storage Lens configuration requested.
 11602  	Tags []*StorageLensTag `locationNameList:"Tag" type:"list"`
 11603  }
 11604  
 11605  // String returns the string representation.
 11606  //
 11607  // API parameter values that are decorated as "sensitive" in the API will not
 11608  // be included in the string output. The member name will be present, but the
 11609  // value will be replaced with "sensitive".
 11610  func (s GetStorageLensConfigurationTaggingOutput) String() string {
 11611  	return awsutil.Prettify(s)
 11612  }
 11613  
 11614  // GoString returns the string representation.
 11615  //
 11616  // API parameter values that are decorated as "sensitive" in the API will not
 11617  // be included in the string output. The member name will be present, but the
 11618  // value will be replaced with "sensitive".
 11619  func (s GetStorageLensConfigurationTaggingOutput) GoString() string {
 11620  	return s.String()
 11621  }
 11622  
 11623  // SetTags sets the Tags field's value.
 11624  func (s *GetStorageLensConfigurationTaggingOutput) SetTags(v []*StorageLensTag) *GetStorageLensConfigurationTaggingOutput {
 11625  	s.Tags = v
 11626  	return s
 11627  }
 11628  
 11629  // A container for what Amazon S3 Storage Lens configuration includes.
 11630  type Include struct {
 11631  	_ struct{} `type:"structure"`
 11632  
 11633  	// A container for the S3 Storage Lens bucket includes.
 11634  	Buckets []*string `locationNameList:"Arn" type:"list"`
 11635  
 11636  	// A container for the S3 Storage Lens Region includes.
 11637  	Regions []*string `locationNameList:"Region" type:"list"`
 11638  }
 11639  
 11640  // String returns the string representation.
 11641  //
 11642  // API parameter values that are decorated as "sensitive" in the API will not
 11643  // be included in the string output. The member name will be present, but the
 11644  // value will be replaced with "sensitive".
 11645  func (s Include) String() string {
 11646  	return awsutil.Prettify(s)
 11647  }
 11648  
 11649  // GoString returns the string representation.
 11650  //
 11651  // API parameter values that are decorated as "sensitive" in the API will not
 11652  // be included in the string output. The member name will be present, but the
 11653  // value will be replaced with "sensitive".
 11654  func (s Include) GoString() string {
 11655  	return s.String()
 11656  }
 11657  
 11658  // SetBuckets sets the Buckets field's value.
 11659  func (s *Include) SetBuckets(v []*string) *Include {
 11660  	s.Buckets = v
 11661  	return s
 11662  }
 11663  
 11664  // SetRegions sets the Regions field's value.
 11665  func (s *Include) SetRegions(v []*string) *Include {
 11666  	s.Regions = v
 11667  	return s
 11668  }
 11669  
 11670  // A container element for the job configuration and status information returned
 11671  // by a Describe Job request.
 11672  type JobDescriptor struct {
 11673  	_ struct{} `type:"structure"`
 11674  
 11675  	// Indicates whether confirmation is required before Amazon S3 begins running
 11676  	// the specified job. Confirmation is required only for jobs created through
 11677  	// the Amazon S3 console.
 11678  	ConfirmationRequired *bool `type:"boolean"`
 11679  
 11680  	// A timestamp indicating when this job was created.
 11681  	CreationTime *time.Time `type:"timestamp"`
 11682  
 11683  	// The description for this job, if one was provided in this job's Create Job
 11684  	// request.
 11685  	Description *string `min:"1" type:"string"`
 11686  
 11687  	// If the specified job failed, this field contains information describing the
 11688  	// failure.
 11689  	FailureReasons []*JobFailure `type:"list"`
 11690  
 11691  	// The Amazon Resource Name (ARN) for this job.
 11692  	JobArn *string `min:"1" type:"string"`
 11693  
 11694  	// The ID for the specified job.
 11695  	JobId *string `min:"5" type:"string"`
 11696  
 11697  	// The configuration information for the specified job's manifest object.
 11698  	Manifest *JobManifest `type:"structure"`
 11699  
 11700  	// The operation that the specified job is configured to run on the objects
 11701  	// listed in the manifest.
 11702  	Operation *JobOperation `type:"structure"`
 11703  
 11704  	// The priority of the specified job.
 11705  	Priority *int64 `type:"integer"`
 11706  
 11707  	// Describes the total number of tasks that the specified job has run, the number
 11708  	// of tasks that succeeded, and the number of tasks that failed.
 11709  	ProgressSummary *JobProgressSummary `type:"structure"`
 11710  
 11711  	// Contains the configuration information for the job-completion report if you
 11712  	// requested one in the Create Job request.
 11713  	Report *JobReport `type:"structure"`
 11714  
 11715  	// The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
 11716  	// role assigned to run the tasks for this job.
 11717  	RoleArn *string `min:"1" type:"string"`
 11718  
 11719  	// The current status of the specified job.
 11720  	Status *string `type:"string" enum:"JobStatus"`
 11721  
 11722  	// The reason for updating the job.
 11723  	StatusUpdateReason *string `min:"1" type:"string"`
 11724  
 11725  	// The reason why the specified job was suspended. A job is only suspended if
 11726  	// you create it through the Amazon S3 console. When you create the job, it
 11727  	// enters the Suspended state to await confirmation before running. After you
 11728  	// confirm the job, it automatically exits the Suspended state.
 11729  	SuspendedCause *string `min:"1" type:"string"`
 11730  
 11731  	// The timestamp when this job was suspended, if it has been suspended.
 11732  	SuspendedDate *time.Time `type:"timestamp"`
 11733  
 11734  	// A timestamp indicating when this job terminated. A job's termination date
 11735  	// is the date and time when it succeeded, failed, or was canceled.
 11736  	TerminationDate *time.Time `type:"timestamp"`
 11737  }
 11738  
 11739  // String returns the string representation.
 11740  //
 11741  // API parameter values that are decorated as "sensitive" in the API will not
 11742  // be included in the string output. The member name will be present, but the
 11743  // value will be replaced with "sensitive".
 11744  func (s JobDescriptor) String() string {
 11745  	return awsutil.Prettify(s)
 11746  }
 11747  
 11748  // GoString returns the string representation.
 11749  //
 11750  // API parameter values that are decorated as "sensitive" in the API will not
 11751  // be included in the string output. The member name will be present, but the
 11752  // value will be replaced with "sensitive".
 11753  func (s JobDescriptor) GoString() string {
 11754  	return s.String()
 11755  }
 11756  
 11757  // SetConfirmationRequired sets the ConfirmationRequired field's value.
 11758  func (s *JobDescriptor) SetConfirmationRequired(v bool) *JobDescriptor {
 11759  	s.ConfirmationRequired = &v
 11760  	return s
 11761  }
 11762  
 11763  // SetCreationTime sets the CreationTime field's value.
 11764  func (s *JobDescriptor) SetCreationTime(v time.Time) *JobDescriptor {
 11765  	s.CreationTime = &v
 11766  	return s
 11767  }
 11768  
 11769  // SetDescription sets the Description field's value.
 11770  func (s *JobDescriptor) SetDescription(v string) *JobDescriptor {
 11771  	s.Description = &v
 11772  	return s
 11773  }
 11774  
 11775  // SetFailureReasons sets the FailureReasons field's value.
 11776  func (s *JobDescriptor) SetFailureReasons(v []*JobFailure) *JobDescriptor {
 11777  	s.FailureReasons = v
 11778  	return s
 11779  }
 11780  
 11781  // SetJobArn sets the JobArn field's value.
 11782  func (s *JobDescriptor) SetJobArn(v string) *JobDescriptor {
 11783  	s.JobArn = &v
 11784  	return s
 11785  }
 11786  
 11787  // SetJobId sets the JobId field's value.
 11788  func (s *JobDescriptor) SetJobId(v string) *JobDescriptor {
 11789  	s.JobId = &v
 11790  	return s
 11791  }
 11792  
 11793  // SetManifest sets the Manifest field's value.
 11794  func (s *JobDescriptor) SetManifest(v *JobManifest) *JobDescriptor {
 11795  	s.Manifest = v
 11796  	return s
 11797  }
 11798  
 11799  // SetOperation sets the Operation field's value.
 11800  func (s *JobDescriptor) SetOperation(v *JobOperation) *JobDescriptor {
 11801  	s.Operation = v
 11802  	return s
 11803  }
 11804  
 11805  // SetPriority sets the Priority field's value.
 11806  func (s *JobDescriptor) SetPriority(v int64) *JobDescriptor {
 11807  	s.Priority = &v
 11808  	return s
 11809  }
 11810  
 11811  // SetProgressSummary sets the ProgressSummary field's value.
 11812  func (s *JobDescriptor) SetProgressSummary(v *JobProgressSummary) *JobDescriptor {
 11813  	s.ProgressSummary = v
 11814  	return s
 11815  }
 11816  
 11817  // SetReport sets the Report field's value.
 11818  func (s *JobDescriptor) SetReport(v *JobReport) *JobDescriptor {
 11819  	s.Report = v
 11820  	return s
 11821  }
 11822  
 11823  // SetRoleArn sets the RoleArn field's value.
 11824  func (s *JobDescriptor) SetRoleArn(v string) *JobDescriptor {
 11825  	s.RoleArn = &v
 11826  	return s
 11827  }
 11828  
 11829  // SetStatus sets the Status field's value.
 11830  func (s *JobDescriptor) SetStatus(v string) *JobDescriptor {
 11831  	s.Status = &v
 11832  	return s
 11833  }
 11834  
 11835  // SetStatusUpdateReason sets the StatusUpdateReason field's value.
 11836  func (s *JobDescriptor) SetStatusUpdateReason(v string) *JobDescriptor {
 11837  	s.StatusUpdateReason = &v
 11838  	return s
 11839  }
 11840  
 11841  // SetSuspendedCause sets the SuspendedCause field's value.
 11842  func (s *JobDescriptor) SetSuspendedCause(v string) *JobDescriptor {
 11843  	s.SuspendedCause = &v
 11844  	return s
 11845  }
 11846  
 11847  // SetSuspendedDate sets the SuspendedDate field's value.
 11848  func (s *JobDescriptor) SetSuspendedDate(v time.Time) *JobDescriptor {
 11849  	s.SuspendedDate = &v
 11850  	return s
 11851  }
 11852  
 11853  // SetTerminationDate sets the TerminationDate field's value.
 11854  func (s *JobDescriptor) SetTerminationDate(v time.Time) *JobDescriptor {
 11855  	s.TerminationDate = &v
 11856  	return s
 11857  }
 11858  
 11859  // If this job failed, this element indicates why the job failed.
 11860  type JobFailure struct {
 11861  	_ struct{} `type:"structure"`
 11862  
 11863  	// The failure code, if any, for the specified job.
 11864  	FailureCode *string `min:"1" type:"string"`
 11865  
 11866  	// The failure reason, if any, for the specified job.
 11867  	FailureReason *string `min:"1" type:"string"`
 11868  }
 11869  
 11870  // String returns the string representation.
 11871  //
 11872  // API parameter values that are decorated as "sensitive" in the API will not
 11873  // be included in the string output. The member name will be present, but the
 11874  // value will be replaced with "sensitive".
 11875  func (s JobFailure) String() string {
 11876  	return awsutil.Prettify(s)
 11877  }
 11878  
 11879  // GoString returns the string representation.
 11880  //
 11881  // API parameter values that are decorated as "sensitive" in the API will not
 11882  // be included in the string output. The member name will be present, but the
 11883  // value will be replaced with "sensitive".
 11884  func (s JobFailure) GoString() string {
 11885  	return s.String()
 11886  }
 11887  
 11888  // SetFailureCode sets the FailureCode field's value.
 11889  func (s *JobFailure) SetFailureCode(v string) *JobFailure {
 11890  	s.FailureCode = &v
 11891  	return s
 11892  }
 11893  
 11894  // SetFailureReason sets the FailureReason field's value.
 11895  func (s *JobFailure) SetFailureReason(v string) *JobFailure {
 11896  	s.FailureReason = &v
 11897  	return s
 11898  }
 11899  
 11900  // Contains the configuration and status information for a single job retrieved
 11901  // as part of a job list.
 11902  type JobListDescriptor struct {
 11903  	_ struct{} `type:"structure"`
 11904  
 11905  	// A timestamp indicating when the specified job was created.
 11906  	CreationTime *time.Time `type:"timestamp"`
 11907  
 11908  	// The user-specified description that was included in the specified job's Create
 11909  	// Job request.
 11910  	Description *string `min:"1" type:"string"`
 11911  
 11912  	// The ID for the specified job.
 11913  	JobId *string `min:"5" type:"string"`
 11914  
 11915  	// The operation that the specified job is configured to run on every object
 11916  	// listed in the manifest.
 11917  	Operation *string `type:"string" enum:"OperationName"`
 11918  
 11919  	// The current priority for the specified job.
 11920  	Priority *int64 `type:"integer"`
 11921  
 11922  	// Describes the total number of tasks that the specified job has run, the number
 11923  	// of tasks that succeeded, and the number of tasks that failed.
 11924  	ProgressSummary *JobProgressSummary `type:"structure"`
 11925  
 11926  	// The specified job's current status.
 11927  	Status *string `type:"string" enum:"JobStatus"`
 11928  
 11929  	// A timestamp indicating when the specified job terminated. A job's termination
 11930  	// date is the date and time when it succeeded, failed, or was canceled.
 11931  	TerminationDate *time.Time `type:"timestamp"`
 11932  }
 11933  
 11934  // String returns the string representation.
 11935  //
 11936  // API parameter values that are decorated as "sensitive" in the API will not
 11937  // be included in the string output. The member name will be present, but the
 11938  // value will be replaced with "sensitive".
 11939  func (s JobListDescriptor) String() string {
 11940  	return awsutil.Prettify(s)
 11941  }
 11942  
 11943  // GoString returns the string representation.
 11944  //
 11945  // API parameter values that are decorated as "sensitive" in the API will not
 11946  // be included in the string output. The member name will be present, but the
 11947  // value will be replaced with "sensitive".
 11948  func (s JobListDescriptor) GoString() string {
 11949  	return s.String()
 11950  }
 11951  
 11952  // SetCreationTime sets the CreationTime field's value.
 11953  func (s *JobListDescriptor) SetCreationTime(v time.Time) *JobListDescriptor {
 11954  	s.CreationTime = &v
 11955  	return s
 11956  }
 11957  
 11958  // SetDescription sets the Description field's value.
 11959  func (s *JobListDescriptor) SetDescription(v string) *JobListDescriptor {
 11960  	s.Description = &v
 11961  	return s
 11962  }
 11963  
 11964  // SetJobId sets the JobId field's value.
 11965  func (s *JobListDescriptor) SetJobId(v string) *JobListDescriptor {
 11966  	s.JobId = &v
 11967  	return s
 11968  }
 11969  
 11970  // SetOperation sets the Operation field's value.
 11971  func (s *JobListDescriptor) SetOperation(v string) *JobListDescriptor {
 11972  	s.Operation = &v
 11973  	return s
 11974  }
 11975  
 11976  // SetPriority sets the Priority field's value.
 11977  func (s *JobListDescriptor) SetPriority(v int64) *JobListDescriptor {
 11978  	s.Priority = &v
 11979  	return s
 11980  }
 11981  
 11982  // SetProgressSummary sets the ProgressSummary field's value.
 11983  func (s *JobListDescriptor) SetProgressSummary(v *JobProgressSummary) *JobListDescriptor {
 11984  	s.ProgressSummary = v
 11985  	return s
 11986  }
 11987  
 11988  // SetStatus sets the Status field's value.
 11989  func (s *JobListDescriptor) SetStatus(v string) *JobListDescriptor {
 11990  	s.Status = &v
 11991  	return s
 11992  }
 11993  
 11994  // SetTerminationDate sets the TerminationDate field's value.
 11995  func (s *JobListDescriptor) SetTerminationDate(v time.Time) *JobListDescriptor {
 11996  	s.TerminationDate = &v
 11997  	return s
 11998  }
 11999  
 12000  // Contains the configuration information for a job's manifest.
 12001  type JobManifest struct {
 12002  	_ struct{} `type:"structure"`
 12003  
 12004  	// Contains the information required to locate the specified job's manifest.
 12005  	//
 12006  	// Location is a required field
 12007  	Location *JobManifestLocation `type:"structure" required:"true"`
 12008  
 12009  	// Describes the format of the specified job's manifest. If the manifest is
 12010  	// in CSV format, also describes the columns contained within the manifest.
 12011  	//
 12012  	// Spec is a required field
 12013  	Spec *JobManifestSpec `type:"structure" required:"true"`
 12014  }
 12015  
 12016  // String returns the string representation.
 12017  //
 12018  // API parameter values that are decorated as "sensitive" in the API will not
 12019  // be included in the string output. The member name will be present, but the
 12020  // value will be replaced with "sensitive".
 12021  func (s JobManifest) String() string {
 12022  	return awsutil.Prettify(s)
 12023  }
 12024  
 12025  // GoString returns the string representation.
 12026  //
 12027  // API parameter values that are decorated as "sensitive" in the API will not
 12028  // be included in the string output. The member name will be present, but the
 12029  // value will be replaced with "sensitive".
 12030  func (s JobManifest) GoString() string {
 12031  	return s.String()
 12032  }
 12033  
 12034  // Validate inspects the fields of the type to determine if they are valid.
 12035  func (s *JobManifest) Validate() error {
 12036  	invalidParams := request.ErrInvalidParams{Context: "JobManifest"}
 12037  	if s.Location == nil {
 12038  		invalidParams.Add(request.NewErrParamRequired("Location"))
 12039  	}
 12040  	if s.Spec == nil {
 12041  		invalidParams.Add(request.NewErrParamRequired("Spec"))
 12042  	}
 12043  	if s.Location != nil {
 12044  		if err := s.Location.Validate(); err != nil {
 12045  			invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
 12046  		}
 12047  	}
 12048  	if s.Spec != nil {
 12049  		if err := s.Spec.Validate(); err != nil {
 12050  			invalidParams.AddNested("Spec", err.(request.ErrInvalidParams))
 12051  		}
 12052  	}
 12053  
 12054  	if invalidParams.Len() > 0 {
 12055  		return invalidParams
 12056  	}
 12057  	return nil
 12058  }
 12059  
 12060  // SetLocation sets the Location field's value.
 12061  func (s *JobManifest) SetLocation(v *JobManifestLocation) *JobManifest {
 12062  	s.Location = v
 12063  	return s
 12064  }
 12065  
 12066  // SetSpec sets the Spec field's value.
 12067  func (s *JobManifest) SetSpec(v *JobManifestSpec) *JobManifest {
 12068  	s.Spec = v
 12069  	return s
 12070  }
 12071  
 12072  // Contains the information required to locate a manifest object.
 12073  type JobManifestLocation struct {
 12074  	_ struct{} `type:"structure"`
 12075  
 12076  	// The ETag for the specified manifest object.
 12077  	//
 12078  	// ETag is a required field
 12079  	ETag *string `min:"1" type:"string" required:"true"`
 12080  
 12081  	// The Amazon Resource Name (ARN) for a manifest object.
 12082  	//
 12083  	// Replacement must be made for object keys containing special characters (such
 12084  	// as carriage returns) when using XML requests. For more information, see XML
 12085  	// related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
 12086  	//
 12087  	// ObjectArn is a required field
 12088  	ObjectArn *string `min:"1" type:"string" required:"true"`
 12089  
 12090  	// The optional version ID to identify a specific version of the manifest object.
 12091  	ObjectVersionId *string `min:"1" type:"string"`
 12092  }
 12093  
 12094  // String returns the string representation.
 12095  //
 12096  // API parameter values that are decorated as "sensitive" in the API will not
 12097  // be included in the string output. The member name will be present, but the
 12098  // value will be replaced with "sensitive".
 12099  func (s JobManifestLocation) String() string {
 12100  	return awsutil.Prettify(s)
 12101  }
 12102  
 12103  // GoString returns the string representation.
 12104  //
 12105  // API parameter values that are decorated as "sensitive" in the API will not
 12106  // be included in the string output. The member name will be present, but the
 12107  // value will be replaced with "sensitive".
 12108  func (s JobManifestLocation) GoString() string {
 12109  	return s.String()
 12110  }
 12111  
 12112  // Validate inspects the fields of the type to determine if they are valid.
 12113  func (s *JobManifestLocation) Validate() error {
 12114  	invalidParams := request.ErrInvalidParams{Context: "JobManifestLocation"}
 12115  	if s.ETag == nil {
 12116  		invalidParams.Add(request.NewErrParamRequired("ETag"))
 12117  	}
 12118  	if s.ETag != nil && len(*s.ETag) < 1 {
 12119  		invalidParams.Add(request.NewErrParamMinLen("ETag", 1))
 12120  	}
 12121  	if s.ObjectArn == nil {
 12122  		invalidParams.Add(request.NewErrParamRequired("ObjectArn"))
 12123  	}
 12124  	if s.ObjectArn != nil && len(*s.ObjectArn) < 1 {
 12125  		invalidParams.Add(request.NewErrParamMinLen("ObjectArn", 1))
 12126  	}
 12127  	if s.ObjectVersionId != nil && len(*s.ObjectVersionId) < 1 {
 12128  		invalidParams.Add(request.NewErrParamMinLen("ObjectVersionId", 1))
 12129  	}
 12130  
 12131  	if invalidParams.Len() > 0 {
 12132  		return invalidParams
 12133  	}
 12134  	return nil
 12135  }
 12136  
 12137  // SetETag sets the ETag field's value.
 12138  func (s *JobManifestLocation) SetETag(v string) *JobManifestLocation {
 12139  	s.ETag = &v
 12140  	return s
 12141  }
 12142  
 12143  // SetObjectArn sets the ObjectArn field's value.
 12144  func (s *JobManifestLocation) SetObjectArn(v string) *JobManifestLocation {
 12145  	s.ObjectArn = &v
 12146  	return s
 12147  }
 12148  
 12149  // SetObjectVersionId sets the ObjectVersionId field's value.
 12150  func (s *JobManifestLocation) SetObjectVersionId(v string) *JobManifestLocation {
 12151  	s.ObjectVersionId = &v
 12152  	return s
 12153  }
 12154  
 12155  // Describes the format of a manifest. If the manifest is in CSV format, also
 12156  // describes the columns contained within the manifest.
 12157  type JobManifestSpec struct {
 12158  	_ struct{} `type:"structure"`
 12159  
 12160  	// If the specified manifest object is in the S3BatchOperations_CSV_20180820
 12161  	// format, this element describes which columns contain the required data.
 12162  	Fields []*string `type:"list"`
 12163  
 12164  	// Indicates which of the available formats the specified manifest uses.
 12165  	//
 12166  	// Format is a required field
 12167  	Format *string `type:"string" required:"true" enum:"JobManifestFormat"`
 12168  }
 12169  
 12170  // String returns the string representation.
 12171  //
 12172  // API parameter values that are decorated as "sensitive" in the API will not
 12173  // be included in the string output. The member name will be present, but the
 12174  // value will be replaced with "sensitive".
 12175  func (s JobManifestSpec) String() string {
 12176  	return awsutil.Prettify(s)
 12177  }
 12178  
 12179  // GoString returns the string representation.
 12180  //
 12181  // API parameter values that are decorated as "sensitive" in the API will not
 12182  // be included in the string output. The member name will be present, but the
 12183  // value will be replaced with "sensitive".
 12184  func (s JobManifestSpec) GoString() string {
 12185  	return s.String()
 12186  }
 12187  
 12188  // Validate inspects the fields of the type to determine if they are valid.
 12189  func (s *JobManifestSpec) Validate() error {
 12190  	invalidParams := request.ErrInvalidParams{Context: "JobManifestSpec"}
 12191  	if s.Format == nil {
 12192  		invalidParams.Add(request.NewErrParamRequired("Format"))
 12193  	}
 12194  
 12195  	if invalidParams.Len() > 0 {
 12196  		return invalidParams
 12197  	}
 12198  	return nil
 12199  }
 12200  
 12201  // SetFields sets the Fields field's value.
 12202  func (s *JobManifestSpec) SetFields(v []*string) *JobManifestSpec {
 12203  	s.Fields = v
 12204  	return s
 12205  }
 12206  
 12207  // SetFormat sets the Format field's value.
 12208  func (s *JobManifestSpec) SetFormat(v string) *JobManifestSpec {
 12209  	s.Format = &v
 12210  	return s
 12211  }
 12212  
 12213  // The operation that you want this job to perform on every object listed in
 12214  // the manifest. For more information about the available operations, see Operations
 12215  // (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html)
 12216  // in the Amazon S3 User Guide.
 12217  type JobOperation struct {
 12218  	_ struct{} `type:"structure"`
 12219  
 12220  	// Directs the specified job to invoke an Lambda function on every object in
 12221  	// the manifest.
 12222  	LambdaInvoke *LambdaInvokeOperation `type:"structure"`
 12223  
 12224  	// Directs the specified job to execute a DELETE Object tagging call on every
 12225  	// object in the manifest.
 12226  	S3DeleteObjectTagging *S3DeleteObjectTaggingOperation `type:"structure"`
 12227  
 12228  	// Directs the specified job to initiate restore requests for every archived
 12229  	// object in the manifest.
 12230  	S3InitiateRestoreObject *S3InitiateRestoreObjectOperation `type:"structure"`
 12231  
 12232  	// Directs the specified job to run a PUT Object acl call on every object in
 12233  	// the manifest.
 12234  	S3PutObjectAcl *S3SetObjectAclOperation `type:"structure"`
 12235  
 12236  	// Directs the specified job to run a PUT Copy object call on every object in
 12237  	// the manifest.
 12238  	S3PutObjectCopy *S3CopyObjectOperation `type:"structure"`
 12239  
 12240  	// Contains the configuration for an S3 Object Lock legal hold operation that
 12241  	// an S3 Batch Operations job passes every object to the underlying PutObjectLegalHold
 12242  	// API. For more information, see Using S3 Object Lock legal hold with S3 Batch
 12243  	// Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html)
 12244  	// in the Amazon S3 User Guide.
 12245  	S3PutObjectLegalHold *S3SetObjectLegalHoldOperation `type:"structure"`
 12246  
 12247  	// Contains the configuration parameters for the Object Lock retention action
 12248  	// for an S3 Batch Operations job. Batch Operations passes every object to the
 12249  	// underlying PutObjectRetention API. For more information, see Using S3 Object
 12250  	// Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
 12251  	// in the Amazon S3 User Guide.
 12252  	S3PutObjectRetention *S3SetObjectRetentionOperation `type:"structure"`
 12253  
 12254  	// Directs the specified job to run a PUT Object tagging call on every object
 12255  	// in the manifest.
 12256  	S3PutObjectTagging *S3SetObjectTaggingOperation `type:"structure"`
 12257  }
 12258  
 12259  // String returns the string representation.
 12260  //
 12261  // API parameter values that are decorated as "sensitive" in the API will not
 12262  // be included in the string output. The member name will be present, but the
 12263  // value will be replaced with "sensitive".
 12264  func (s JobOperation) String() string {
 12265  	return awsutil.Prettify(s)
 12266  }
 12267  
 12268  // GoString returns the string representation.
 12269  //
 12270  // API parameter values that are decorated as "sensitive" in the API will not
 12271  // be included in the string output. The member name will be present, but the
 12272  // value will be replaced with "sensitive".
 12273  func (s JobOperation) GoString() string {
 12274  	return s.String()
 12275  }
 12276  
 12277  // Validate inspects the fields of the type to determine if they are valid.
 12278  func (s *JobOperation) Validate() error {
 12279  	invalidParams := request.ErrInvalidParams{Context: "JobOperation"}
 12280  	if s.LambdaInvoke != nil {
 12281  		if err := s.LambdaInvoke.Validate(); err != nil {
 12282  			invalidParams.AddNested("LambdaInvoke", err.(request.ErrInvalidParams))
 12283  		}
 12284  	}
 12285  	if s.S3PutObjectAcl != nil {
 12286  		if err := s.S3PutObjectAcl.Validate(); err != nil {
 12287  			invalidParams.AddNested("S3PutObjectAcl", err.(request.ErrInvalidParams))
 12288  		}
 12289  	}
 12290  	if s.S3PutObjectCopy != nil {
 12291  		if err := s.S3PutObjectCopy.Validate(); err != nil {
 12292  			invalidParams.AddNested("S3PutObjectCopy", err.(request.ErrInvalidParams))
 12293  		}
 12294  	}
 12295  	if s.S3PutObjectLegalHold != nil {
 12296  		if err := s.S3PutObjectLegalHold.Validate(); err != nil {
 12297  			invalidParams.AddNested("S3PutObjectLegalHold", err.(request.ErrInvalidParams))
 12298  		}
 12299  	}
 12300  	if s.S3PutObjectRetention != nil {
 12301  		if err := s.S3PutObjectRetention.Validate(); err != nil {
 12302  			invalidParams.AddNested("S3PutObjectRetention", err.(request.ErrInvalidParams))
 12303  		}
 12304  	}
 12305  	if s.S3PutObjectTagging != nil {
 12306  		if err := s.S3PutObjectTagging.Validate(); err != nil {
 12307  			invalidParams.AddNested("S3PutObjectTagging", err.(request.ErrInvalidParams))
 12308  		}
 12309  	}
 12310  
 12311  	if invalidParams.Len() > 0 {
 12312  		return invalidParams
 12313  	}
 12314  	return nil
 12315  }
 12316  
 12317  // SetLambdaInvoke sets the LambdaInvoke field's value.
 12318  func (s *JobOperation) SetLambdaInvoke(v *LambdaInvokeOperation) *JobOperation {
 12319  	s.LambdaInvoke = v
 12320  	return s
 12321  }
 12322  
 12323  // SetS3DeleteObjectTagging sets the S3DeleteObjectTagging field's value.
 12324  func (s *JobOperation) SetS3DeleteObjectTagging(v *S3DeleteObjectTaggingOperation) *JobOperation {
 12325  	s.S3DeleteObjectTagging = v
 12326  	return s
 12327  }
 12328  
 12329  // SetS3InitiateRestoreObject sets the S3InitiateRestoreObject field's value.
 12330  func (s *JobOperation) SetS3InitiateRestoreObject(v *S3InitiateRestoreObjectOperation) *JobOperation {
 12331  	s.S3InitiateRestoreObject = v
 12332  	return s
 12333  }
 12334  
 12335  // SetS3PutObjectAcl sets the S3PutObjectAcl field's value.
 12336  func (s *JobOperation) SetS3PutObjectAcl(v *S3SetObjectAclOperation) *JobOperation {
 12337  	s.S3PutObjectAcl = v
 12338  	return s
 12339  }
 12340  
 12341  // SetS3PutObjectCopy sets the S3PutObjectCopy field's value.
 12342  func (s *JobOperation) SetS3PutObjectCopy(v *S3CopyObjectOperation) *JobOperation {
 12343  	s.S3PutObjectCopy = v
 12344  	return s
 12345  }
 12346  
 12347  // SetS3PutObjectLegalHold sets the S3PutObjectLegalHold field's value.
 12348  func (s *JobOperation) SetS3PutObjectLegalHold(v *S3SetObjectLegalHoldOperation) *JobOperation {
 12349  	s.S3PutObjectLegalHold = v
 12350  	return s
 12351  }
 12352  
 12353  // SetS3PutObjectRetention sets the S3PutObjectRetention field's value.
 12354  func (s *JobOperation) SetS3PutObjectRetention(v *S3SetObjectRetentionOperation) *JobOperation {
 12355  	s.S3PutObjectRetention = v
 12356  	return s
 12357  }
 12358  
 12359  // SetS3PutObjectTagging sets the S3PutObjectTagging field's value.
 12360  func (s *JobOperation) SetS3PutObjectTagging(v *S3SetObjectTaggingOperation) *JobOperation {
 12361  	s.S3PutObjectTagging = v
 12362  	return s
 12363  }
 12364  
 12365  // Describes the total number of tasks that the specified job has started, the
 12366  // number of tasks that succeeded, and the number of tasks that failed.
 12367  type JobProgressSummary struct {
 12368  	_ struct{} `type:"structure"`
 12369  
 12370  	NumberOfTasksFailed *int64 `type:"long"`
 12371  
 12372  	NumberOfTasksSucceeded *int64 `type:"long"`
 12373  
 12374  	TotalNumberOfTasks *int64 `type:"long"`
 12375  }
 12376  
 12377  // String returns the string representation.
 12378  //
 12379  // API parameter values that are decorated as "sensitive" in the API will not
 12380  // be included in the string output. The member name will be present, but the
 12381  // value will be replaced with "sensitive".
 12382  func (s JobProgressSummary) String() string {
 12383  	return awsutil.Prettify(s)
 12384  }
 12385  
 12386  // GoString returns the string representation.
 12387  //
 12388  // API parameter values that are decorated as "sensitive" in the API will not
 12389  // be included in the string output. The member name will be present, but the
 12390  // value will be replaced with "sensitive".
 12391  func (s JobProgressSummary) GoString() string {
 12392  	return s.String()
 12393  }
 12394  
 12395  // SetNumberOfTasksFailed sets the NumberOfTasksFailed field's value.
 12396  func (s *JobProgressSummary) SetNumberOfTasksFailed(v int64) *JobProgressSummary {
 12397  	s.NumberOfTasksFailed = &v
 12398  	return s
 12399  }
 12400  
 12401  // SetNumberOfTasksSucceeded sets the NumberOfTasksSucceeded field's value.
 12402  func (s *JobProgressSummary) SetNumberOfTasksSucceeded(v int64) *JobProgressSummary {
 12403  	s.NumberOfTasksSucceeded = &v
 12404  	return s
 12405  }
 12406  
 12407  // SetTotalNumberOfTasks sets the TotalNumberOfTasks field's value.
 12408  func (s *JobProgressSummary) SetTotalNumberOfTasks(v int64) *JobProgressSummary {
 12409  	s.TotalNumberOfTasks = &v
 12410  	return s
 12411  }
 12412  
 12413  // Contains the configuration parameters for a job-completion report.
 12414  type JobReport struct {
 12415  	_ struct{} `type:"structure"`
 12416  
 12417  	// The Amazon Resource Name (ARN) for the bucket where specified job-completion
 12418  	// report will be stored.
 12419  	Bucket *string `min:"1" type:"string"`
 12420  
 12421  	// Indicates whether the specified job will generate a job-completion report.
 12422  	//
 12423  	// Enabled is a required field
 12424  	Enabled *bool `type:"boolean" required:"true"`
 12425  
 12426  	// The format of the specified job-completion report.
 12427  	Format *string `type:"string" enum:"JobReportFormat"`
 12428  
 12429  	// An optional prefix to describe where in the specified bucket the job-completion
 12430  	// report will be stored. Amazon S3 stores the job-completion report at <prefix>/job-<job-id>/report.json.
 12431  	Prefix *string `min:"1" type:"string"`
 12432  
 12433  	// Indicates whether the job-completion report will include details of all tasks
 12434  	// or only failed tasks.
 12435  	ReportScope *string `type:"string" enum:"JobReportScope"`
 12436  }
 12437  
 12438  // String returns the string representation.
 12439  //
 12440  // API parameter values that are decorated as "sensitive" in the API will not
 12441  // be included in the string output. The member name will be present, but the
 12442  // value will be replaced with "sensitive".
 12443  func (s JobReport) String() string {
 12444  	return awsutil.Prettify(s)
 12445  }
 12446  
 12447  // GoString returns the string representation.
 12448  //
 12449  // API parameter values that are decorated as "sensitive" in the API will not
 12450  // be included in the string output. The member name will be present, but the
 12451  // value will be replaced with "sensitive".
 12452  func (s JobReport) GoString() string {
 12453  	return s.String()
 12454  }
 12455  
 12456  // Validate inspects the fields of the type to determine if they are valid.
 12457  func (s *JobReport) Validate() error {
 12458  	invalidParams := request.ErrInvalidParams{Context: "JobReport"}
 12459  	if s.Bucket != nil && len(*s.Bucket) < 1 {
 12460  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
 12461  	}
 12462  	if s.Enabled == nil {
 12463  		invalidParams.Add(request.NewErrParamRequired("Enabled"))
 12464  	}
 12465  	if s.Prefix != nil && len(*s.Prefix) < 1 {
 12466  		invalidParams.Add(request.NewErrParamMinLen("Prefix", 1))
 12467  	}
 12468  
 12469  	if invalidParams.Len() > 0 {
 12470  		return invalidParams
 12471  	}
 12472  	return nil
 12473  }
 12474  
 12475  // SetBucket sets the Bucket field's value.
 12476  func (s *JobReport) SetBucket(v string) *JobReport {
 12477  	s.Bucket = &v
 12478  	return s
 12479  }
 12480  
 12481  // SetEnabled sets the Enabled field's value.
 12482  func (s *JobReport) SetEnabled(v bool) *JobReport {
 12483  	s.Enabled = &v
 12484  	return s
 12485  }
 12486  
 12487  // SetFormat sets the Format field's value.
 12488  func (s *JobReport) SetFormat(v string) *JobReport {
 12489  	s.Format = &v
 12490  	return s
 12491  }
 12492  
 12493  // SetPrefix sets the Prefix field's value.
 12494  func (s *JobReport) SetPrefix(v string) *JobReport {
 12495  	s.Prefix = &v
 12496  	return s
 12497  }
 12498  
 12499  // SetReportScope sets the ReportScope field's value.
 12500  func (s *JobReport) SetReportScope(v string) *JobReport {
 12501  	s.ReportScope = &v
 12502  	return s
 12503  }
 12504  
 12505  // Contains the configuration parameters for a Lambda Invoke operation.
 12506  type LambdaInvokeOperation struct {
 12507  	_ struct{} `type:"structure"`
 12508  
 12509  	// The Amazon Resource Name (ARN) for the Lambda function that the specified
 12510  	// job will invoke on every object in the manifest.
 12511  	FunctionArn *string `min:"1" type:"string"`
 12512  }
 12513  
 12514  // String returns the string representation.
 12515  //
 12516  // API parameter values that are decorated as "sensitive" in the API will not
 12517  // be included in the string output. The member name will be present, but the
 12518  // value will be replaced with "sensitive".
 12519  func (s LambdaInvokeOperation) String() string {
 12520  	return awsutil.Prettify(s)
 12521  }
 12522  
 12523  // GoString returns the string representation.
 12524  //
 12525  // API parameter values that are decorated as "sensitive" in the API will not
 12526  // be included in the string output. The member name will be present, but the
 12527  // value will be replaced with "sensitive".
 12528  func (s LambdaInvokeOperation) GoString() string {
 12529  	return s.String()
 12530  }
 12531  
 12532  // Validate inspects the fields of the type to determine if they are valid.
 12533  func (s *LambdaInvokeOperation) Validate() error {
 12534  	invalidParams := request.ErrInvalidParams{Context: "LambdaInvokeOperation"}
 12535  	if s.FunctionArn != nil && len(*s.FunctionArn) < 1 {
 12536  		invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1))
 12537  	}
 12538  
 12539  	if invalidParams.Len() > 0 {
 12540  		return invalidParams
 12541  	}
 12542  	return nil
 12543  }
 12544  
 12545  // SetFunctionArn sets the FunctionArn field's value.
 12546  func (s *LambdaInvokeOperation) SetFunctionArn(v string) *LambdaInvokeOperation {
 12547  	s.FunctionArn = &v
 12548  	return s
 12549  }
 12550  
 12551  // The container for the Outposts bucket lifecycle configuration.
 12552  type LifecycleConfiguration struct {
 12553  	_ struct{} `type:"structure"`
 12554  
 12555  	// A lifecycle rule for individual objects in an Outposts bucket.
 12556  	Rules []*LifecycleRule `locationNameList:"Rule" type:"list"`
 12557  }
 12558  
 12559  // String returns the string representation.
 12560  //
 12561  // API parameter values that are decorated as "sensitive" in the API will not
 12562  // be included in the string output. The member name will be present, but the
 12563  // value will be replaced with "sensitive".
 12564  func (s LifecycleConfiguration) String() string {
 12565  	return awsutil.Prettify(s)
 12566  }
 12567  
 12568  // GoString returns the string representation.
 12569  //
 12570  // API parameter values that are decorated as "sensitive" in the API will not
 12571  // be included in the string output. The member name will be present, but the
 12572  // value will be replaced with "sensitive".
 12573  func (s LifecycleConfiguration) GoString() string {
 12574  	return s.String()
 12575  }
 12576  
 12577  // Validate inspects the fields of the type to determine if they are valid.
 12578  func (s *LifecycleConfiguration) Validate() error {
 12579  	invalidParams := request.ErrInvalidParams{Context: "LifecycleConfiguration"}
 12580  	if s.Rules != nil {
 12581  		for i, v := range s.Rules {
 12582  			if v == nil {
 12583  				continue
 12584  			}
 12585  			if err := v.Validate(); err != nil {
 12586  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
 12587  			}
 12588  		}
 12589  	}
 12590  
 12591  	if invalidParams.Len() > 0 {
 12592  		return invalidParams
 12593  	}
 12594  	return nil
 12595  }
 12596  
 12597  // SetRules sets the Rules field's value.
 12598  func (s *LifecycleConfiguration) SetRules(v []*LifecycleRule) *LifecycleConfiguration {
 12599  	s.Rules = v
 12600  	return s
 12601  }
 12602  
 12603  // The container of the Outposts bucket lifecycle expiration.
 12604  type LifecycleExpiration struct {
 12605  	_ struct{} `type:"structure"`
 12606  
 12607  	// Indicates at what date the object is to be deleted. Should be in GMT ISO
 12608  	// 8601 format.
 12609  	Date *time.Time `type:"timestamp"`
 12610  
 12611  	// Indicates the lifetime, in days, of the objects that are subject to the rule.
 12612  	// The value must be a non-zero positive integer.
 12613  	Days *int64 `type:"integer"`
 12614  
 12615  	// Indicates whether Amazon S3 will remove a delete marker with no noncurrent
 12616  	// versions. If set to true, the delete marker will be expired. If set to false,
 12617  	// the policy takes no action. This cannot be specified with Days or Date in
 12618  	// a Lifecycle Expiration Policy.
 12619  	ExpiredObjectDeleteMarker *bool `type:"boolean"`
 12620  }
 12621  
 12622  // String returns the string representation.
 12623  //
 12624  // API parameter values that are decorated as "sensitive" in the API will not
 12625  // be included in the string output. The member name will be present, but the
 12626  // value will be replaced with "sensitive".
 12627  func (s LifecycleExpiration) String() string {
 12628  	return awsutil.Prettify(s)
 12629  }
 12630  
 12631  // GoString returns the string representation.
 12632  //
 12633  // API parameter values that are decorated as "sensitive" in the API will not
 12634  // be included in the string output. The member name will be present, but the
 12635  // value will be replaced with "sensitive".
 12636  func (s LifecycleExpiration) GoString() string {
 12637  	return s.String()
 12638  }
 12639  
 12640  // SetDate sets the Date field's value.
 12641  func (s *LifecycleExpiration) SetDate(v time.Time) *LifecycleExpiration {
 12642  	s.Date = &v
 12643  	return s
 12644  }
 12645  
 12646  // SetDays sets the Days field's value.
 12647  func (s *LifecycleExpiration) SetDays(v int64) *LifecycleExpiration {
 12648  	s.Days = &v
 12649  	return s
 12650  }
 12651  
 12652  // SetExpiredObjectDeleteMarker sets the ExpiredObjectDeleteMarker field's value.
 12653  func (s *LifecycleExpiration) SetExpiredObjectDeleteMarker(v bool) *LifecycleExpiration {
 12654  	s.ExpiredObjectDeleteMarker = &v
 12655  	return s
 12656  }
 12657  
 12658  // The container for the Outposts bucket lifecycle rule.
 12659  type LifecycleRule struct {
 12660  	_ struct{} `type:"structure"`
 12661  
 12662  	// Specifies the days since the initiation of an incomplete multipart upload
 12663  	// that Amazon S3 waits before permanently removing all parts of the upload.
 12664  	// For more information, see Aborting Incomplete Multipart Uploads Using a Bucket
 12665  	// Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
 12666  	// in the Amazon S3 User Guide.
 12667  	AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"`
 12668  
 12669  	// Specifies the expiration for the lifecycle of the object in the form of date,
 12670  	// days and, whether the object has a delete marker.
 12671  	Expiration *LifecycleExpiration `type:"structure"`
 12672  
 12673  	// The container for the filter of lifecycle rule.
 12674  	Filter *LifecycleRuleFilter `type:"structure"`
 12675  
 12676  	// Unique identifier for the rule. The value cannot be longer than 255 characters.
 12677  	ID *string `type:"string"`
 12678  
 12679  	// The noncurrent version expiration of the lifecycle rule.
 12680  	//
 12681  	// This is not supported by Amazon S3 on Outposts buckets.
 12682  	NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"`
 12683  
 12684  	// Specifies the transition rule for the lifecycle rule that describes when
 12685  	// noncurrent objects transition to a specific storage class. If your bucket
 12686  	// is versioning-enabled (or versioning is suspended), you can set this action
 12687  	// to request that Amazon S3 transition noncurrent object versions to a specific
 12688  	// storage class at a set period in the object's lifetime.
 12689  	//
 12690  	// This is not supported by Amazon S3 on Outposts buckets.
 12691  	NoncurrentVersionTransitions []*NoncurrentVersionTransition `locationNameList:"NoncurrentVersionTransition" type:"list"`
 12692  
 12693  	// If 'Enabled', the rule is currently being applied. If 'Disabled', the rule
 12694  	// is not currently being applied.
 12695  	//
 12696  	// Status is a required field
 12697  	Status *string `type:"string" required:"true" enum:"ExpirationStatus"`
 12698  
 12699  	// Specifies when an Amazon S3 object transitions to a specified storage class.
 12700  	//
 12701  	// This is not supported by Amazon S3 on Outposts buckets.
 12702  	Transitions []*Transition `locationNameList:"Transition" type:"list"`
 12703  }
 12704  
 12705  // String returns the string representation.
 12706  //
 12707  // API parameter values that are decorated as "sensitive" in the API will not
 12708  // be included in the string output. The member name will be present, but the
 12709  // value will be replaced with "sensitive".
 12710  func (s LifecycleRule) String() string {
 12711  	return awsutil.Prettify(s)
 12712  }
 12713  
 12714  // GoString returns the string representation.
 12715  //
 12716  // API parameter values that are decorated as "sensitive" in the API will not
 12717  // be included in the string output. The member name will be present, but the
 12718  // value will be replaced with "sensitive".
 12719  func (s LifecycleRule) GoString() string {
 12720  	return s.String()
 12721  }
 12722  
 12723  // Validate inspects the fields of the type to determine if they are valid.
 12724  func (s *LifecycleRule) Validate() error {
 12725  	invalidParams := request.ErrInvalidParams{Context: "LifecycleRule"}
 12726  	if s.Status == nil {
 12727  		invalidParams.Add(request.NewErrParamRequired("Status"))
 12728  	}
 12729  	if s.Filter != nil {
 12730  		if err := s.Filter.Validate(); err != nil {
 12731  			invalidParams.AddNested("Filter", err.(request.ErrInvalidParams))
 12732  		}
 12733  	}
 12734  
 12735  	if invalidParams.Len() > 0 {
 12736  		return invalidParams
 12737  	}
 12738  	return nil
 12739  }
 12740  
 12741  // SetAbortIncompleteMultipartUpload sets the AbortIncompleteMultipartUpload field's value.
 12742  func (s *LifecycleRule) SetAbortIncompleteMultipartUpload(v *AbortIncompleteMultipartUpload) *LifecycleRule {
 12743  	s.AbortIncompleteMultipartUpload = v
 12744  	return s
 12745  }
 12746  
 12747  // SetExpiration sets the Expiration field's value.
 12748  func (s *LifecycleRule) SetExpiration(v *LifecycleExpiration) *LifecycleRule {
 12749  	s.Expiration = v
 12750  	return s
 12751  }
 12752  
 12753  // SetFilter sets the Filter field's value.
 12754  func (s *LifecycleRule) SetFilter(v *LifecycleRuleFilter) *LifecycleRule {
 12755  	s.Filter = v
 12756  	return s
 12757  }
 12758  
 12759  // SetID sets the ID field's value.
 12760  func (s *LifecycleRule) SetID(v string) *LifecycleRule {
 12761  	s.ID = &v
 12762  	return s
 12763  }
 12764  
 12765  // SetNoncurrentVersionExpiration sets the NoncurrentVersionExpiration field's value.
 12766  func (s *LifecycleRule) SetNoncurrentVersionExpiration(v *NoncurrentVersionExpiration) *LifecycleRule {
 12767  	s.NoncurrentVersionExpiration = v
 12768  	return s
 12769  }
 12770  
 12771  // SetNoncurrentVersionTransitions sets the NoncurrentVersionTransitions field's value.
 12772  func (s *LifecycleRule) SetNoncurrentVersionTransitions(v []*NoncurrentVersionTransition) *LifecycleRule {
 12773  	s.NoncurrentVersionTransitions = v
 12774  	return s
 12775  }
 12776  
 12777  // SetStatus sets the Status field's value.
 12778  func (s *LifecycleRule) SetStatus(v string) *LifecycleRule {
 12779  	s.Status = &v
 12780  	return s
 12781  }
 12782  
 12783  // SetTransitions sets the Transitions field's value.
 12784  func (s *LifecycleRule) SetTransitions(v []*Transition) *LifecycleRule {
 12785  	s.Transitions = v
 12786  	return s
 12787  }
 12788  
 12789  // The container for the Outposts bucket lifecycle rule and operator.
 12790  type LifecycleRuleAndOperator struct {
 12791  	_ struct{} `type:"structure"`
 12792  
 12793  	// Prefix identifying one or more objects to which the rule applies.
 12794  	Prefix *string `type:"string"`
 12795  
 12796  	// All of these tags must exist in the object's tag set in order for the rule
 12797  	// to apply.
 12798  	Tags []*S3Tag `type:"list"`
 12799  }
 12800  
 12801  // String returns the string representation.
 12802  //
 12803  // API parameter values that are decorated as "sensitive" in the API will not
 12804  // be included in the string output. The member name will be present, but the
 12805  // value will be replaced with "sensitive".
 12806  func (s LifecycleRuleAndOperator) String() string {
 12807  	return awsutil.Prettify(s)
 12808  }
 12809  
 12810  // GoString returns the string representation.
 12811  //
 12812  // API parameter values that are decorated as "sensitive" in the API will not
 12813  // be included in the string output. The member name will be present, but the
 12814  // value will be replaced with "sensitive".
 12815  func (s LifecycleRuleAndOperator) GoString() string {
 12816  	return s.String()
 12817  }
 12818  
 12819  // Validate inspects the fields of the type to determine if they are valid.
 12820  func (s *LifecycleRuleAndOperator) Validate() error {
 12821  	invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleAndOperator"}
 12822  	if s.Tags != nil {
 12823  		for i, v := range s.Tags {
 12824  			if v == nil {
 12825  				continue
 12826  			}
 12827  			if err := v.Validate(); err != nil {
 12828  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 12829  			}
 12830  		}
 12831  	}
 12832  
 12833  	if invalidParams.Len() > 0 {
 12834  		return invalidParams
 12835  	}
 12836  	return nil
 12837  }
 12838  
 12839  // SetPrefix sets the Prefix field's value.
 12840  func (s *LifecycleRuleAndOperator) SetPrefix(v string) *LifecycleRuleAndOperator {
 12841  	s.Prefix = &v
 12842  	return s
 12843  }
 12844  
 12845  // SetTags sets the Tags field's value.
 12846  func (s *LifecycleRuleAndOperator) SetTags(v []*S3Tag) *LifecycleRuleAndOperator {
 12847  	s.Tags = v
 12848  	return s
 12849  }
 12850  
 12851  // The container for the filter of the lifecycle rule.
 12852  type LifecycleRuleFilter struct {
 12853  	_ struct{} `type:"structure"`
 12854  
 12855  	// The container for the AND condition for the lifecycle rule.
 12856  	And *LifecycleRuleAndOperator `type:"structure"`
 12857  
 12858  	// Prefix identifying one or more objects to which the rule applies.
 12859  	//
 12860  	// Replacement must be made for object keys containing special characters (such
 12861  	// as carriage returns) when using XML requests. For more information, see XML
 12862  	// related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints).
 12863  	Prefix *string `type:"string"`
 12864  
 12865  	Tag *S3Tag `type:"structure"`
 12866  }
 12867  
 12868  // String returns the string representation.
 12869  //
 12870  // API parameter values that are decorated as "sensitive" in the API will not
 12871  // be included in the string output. The member name will be present, but the
 12872  // value will be replaced with "sensitive".
 12873  func (s LifecycleRuleFilter) String() string {
 12874  	return awsutil.Prettify(s)
 12875  }
 12876  
 12877  // GoString returns the string representation.
 12878  //
 12879  // API parameter values that are decorated as "sensitive" in the API will not
 12880  // be included in the string output. The member name will be present, but the
 12881  // value will be replaced with "sensitive".
 12882  func (s LifecycleRuleFilter) GoString() string {
 12883  	return s.String()
 12884  }
 12885  
 12886  // Validate inspects the fields of the type to determine if they are valid.
 12887  func (s *LifecycleRuleFilter) Validate() error {
 12888  	invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleFilter"}
 12889  	if s.And != nil {
 12890  		if err := s.And.Validate(); err != nil {
 12891  			invalidParams.AddNested("And", err.(request.ErrInvalidParams))
 12892  		}
 12893  	}
 12894  	if s.Tag != nil {
 12895  		if err := s.Tag.Validate(); err != nil {
 12896  			invalidParams.AddNested("Tag", err.(request.ErrInvalidParams))
 12897  		}
 12898  	}
 12899  
 12900  	if invalidParams.Len() > 0 {
 12901  		return invalidParams
 12902  	}
 12903  	return nil
 12904  }
 12905  
 12906  // SetAnd sets the And field's value.
 12907  func (s *LifecycleRuleFilter) SetAnd(v *LifecycleRuleAndOperator) *LifecycleRuleFilter {
 12908  	s.And = v
 12909  	return s
 12910  }
 12911  
 12912  // SetPrefix sets the Prefix field's value.
 12913  func (s *LifecycleRuleFilter) SetPrefix(v string) *LifecycleRuleFilter {
 12914  	s.Prefix = &v
 12915  	return s
 12916  }
 12917  
 12918  // SetTag sets the Tag field's value.
 12919  func (s *LifecycleRuleFilter) SetTag(v *S3Tag) *LifecycleRuleFilter {
 12920  	s.Tag = v
 12921  	return s
 12922  }
 12923  
 12924  type ListAccessPointsForObjectLambdaInput struct {
 12925  	_ struct{} `locationName:"ListAccessPointsForObjectLambdaRequest" type:"structure"`
 12926  
 12927  	// The account ID for the account that owns the specified Object Lambda Access
 12928  	// Point.
 12929  	//
 12930  	// AccountId is a required field
 12931  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 12932  
 12933  	// The maximum number of access points that you want to include in the list.
 12934  	// If there are more than this number of access points, then the response will
 12935  	// include a continuation token in the NextToken field that you can use to retrieve
 12936  	// the next page of access points.
 12937  	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
 12938  
 12939  	// If the list has more access points than can be returned in one call to this
 12940  	// API, this field contains a continuation token that you can provide in subsequent
 12941  	// calls to this API to retrieve additional access points.
 12942  	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
 12943  }
 12944  
 12945  // String returns the string representation.
 12946  //
 12947  // API parameter values that are decorated as "sensitive" in the API will not
 12948  // be included in the string output. The member name will be present, but the
 12949  // value will be replaced with "sensitive".
 12950  func (s ListAccessPointsForObjectLambdaInput) String() string {
 12951  	return awsutil.Prettify(s)
 12952  }
 12953  
 12954  // GoString returns the string representation.
 12955  //
 12956  // API parameter values that are decorated as "sensitive" in the API will not
 12957  // be included in the string output. The member name will be present, but the
 12958  // value will be replaced with "sensitive".
 12959  func (s ListAccessPointsForObjectLambdaInput) GoString() string {
 12960  	return s.String()
 12961  }
 12962  
 12963  // Validate inspects the fields of the type to determine if they are valid.
 12964  func (s *ListAccessPointsForObjectLambdaInput) Validate() error {
 12965  	invalidParams := request.ErrInvalidParams{Context: "ListAccessPointsForObjectLambdaInput"}
 12966  	if s.AccountId == nil {
 12967  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 12968  	}
 12969  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 12970  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 12971  	}
 12972  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 12973  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 12974  	}
 12975  
 12976  	if invalidParams.Len() > 0 {
 12977  		return invalidParams
 12978  	}
 12979  	return nil
 12980  }
 12981  
 12982  // SetAccountId sets the AccountId field's value.
 12983  func (s *ListAccessPointsForObjectLambdaInput) SetAccountId(v string) *ListAccessPointsForObjectLambdaInput {
 12984  	s.AccountId = &v
 12985  	return s
 12986  }
 12987  
 12988  // SetMaxResults sets the MaxResults field's value.
 12989  func (s *ListAccessPointsForObjectLambdaInput) SetMaxResults(v int64) *ListAccessPointsForObjectLambdaInput {
 12990  	s.MaxResults = &v
 12991  	return s
 12992  }
 12993  
 12994  // SetNextToken sets the NextToken field's value.
 12995  func (s *ListAccessPointsForObjectLambdaInput) SetNextToken(v string) *ListAccessPointsForObjectLambdaInput {
 12996  	s.NextToken = &v
 12997  	return s
 12998  }
 12999  
 13000  func (s *ListAccessPointsForObjectLambdaInput) hostLabels() map[string]string {
 13001  	return map[string]string{
 13002  		"AccountId": aws.StringValue(s.AccountId),
 13003  	}
 13004  }
 13005  
 13006  type ListAccessPointsForObjectLambdaOutput struct {
 13007  	_ struct{} `type:"structure"`
 13008  
 13009  	// If the list has more access points than can be returned in one call to this
 13010  	// API, this field contains a continuation token that you can provide in subsequent
 13011  	// calls to this API to retrieve additional access points.
 13012  	NextToken *string `min:"1" type:"string"`
 13013  
 13014  	// Returns list of Object Lambda Access Points.
 13015  	ObjectLambdaAccessPointList []*ObjectLambdaAccessPoint `locationNameList:"ObjectLambdaAccessPoint" type:"list"`
 13016  }
 13017  
 13018  // String returns the string representation.
 13019  //
 13020  // API parameter values that are decorated as "sensitive" in the API will not
 13021  // be included in the string output. The member name will be present, but the
 13022  // value will be replaced with "sensitive".
 13023  func (s ListAccessPointsForObjectLambdaOutput) String() string {
 13024  	return awsutil.Prettify(s)
 13025  }
 13026  
 13027  // GoString returns the string representation.
 13028  //
 13029  // API parameter values that are decorated as "sensitive" in the API will not
 13030  // be included in the string output. The member name will be present, but the
 13031  // value will be replaced with "sensitive".
 13032  func (s ListAccessPointsForObjectLambdaOutput) GoString() string {
 13033  	return s.String()
 13034  }
 13035  
 13036  // SetNextToken sets the NextToken field's value.
 13037  func (s *ListAccessPointsForObjectLambdaOutput) SetNextToken(v string) *ListAccessPointsForObjectLambdaOutput {
 13038  	s.NextToken = &v
 13039  	return s
 13040  }
 13041  
 13042  // SetObjectLambdaAccessPointList sets the ObjectLambdaAccessPointList field's value.
 13043  func (s *ListAccessPointsForObjectLambdaOutput) SetObjectLambdaAccessPointList(v []*ObjectLambdaAccessPoint) *ListAccessPointsForObjectLambdaOutput {
 13044  	s.ObjectLambdaAccessPointList = v
 13045  	return s
 13046  }
 13047  
 13048  type ListAccessPointsInput struct {
 13049  	_ struct{} `locationName:"ListAccessPointsRequest" type:"structure"`
 13050  
 13051  	// The Amazon Web Services account ID for owner of the bucket whose access points
 13052  	// you want to list.
 13053  	//
 13054  	// AccountId is a required field
 13055  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 13056  
 13057  	// The name of the bucket whose associated access points you want to list.
 13058  	//
 13059  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
 13060  	// must specify the name and the x-amz-outpost-id as well.
 13061  	//
 13062  	// For using this parameter with S3 on Outposts with the Amazon Web Services
 13063  	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
 13064  	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
 13065  	// For example, to access the bucket reports through outpost my-outpost owned
 13066  	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
 13067  	// The value must be URL encoded.
 13068  	Bucket *string `location:"querystring" locationName:"bucket" min:"3" type:"string"`
 13069  
 13070  	// The maximum number of access points that you want to include in the list.
 13071  	// If the specified bucket has more than this number of access points, then
 13072  	// the response will include a continuation token in the NextToken field that
 13073  	// you can use to retrieve the next page of access points.
 13074  	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
 13075  
 13076  	// A continuation token. If a previous call to ListAccessPoints returned a continuation
 13077  	// token in the NextToken field, then providing that value here causes Amazon
 13078  	// S3 to retrieve the next page of results.
 13079  	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
 13080  }
 13081  
 13082  // String returns the string representation.
 13083  //
 13084  // API parameter values that are decorated as "sensitive" in the API will not
 13085  // be included in the string output. The member name will be present, but the
 13086  // value will be replaced with "sensitive".
 13087  func (s ListAccessPointsInput) String() string {
 13088  	return awsutil.Prettify(s)
 13089  }
 13090  
 13091  // GoString returns the string representation.
 13092  //
 13093  // API parameter values that are decorated as "sensitive" in the API will not
 13094  // be included in the string output. The member name will be present, but the
 13095  // value will be replaced with "sensitive".
 13096  func (s ListAccessPointsInput) GoString() string {
 13097  	return s.String()
 13098  }
 13099  
 13100  // Validate inspects the fields of the type to determine if they are valid.
 13101  func (s *ListAccessPointsInput) Validate() error {
 13102  	invalidParams := request.ErrInvalidParams{Context: "ListAccessPointsInput"}
 13103  	if s.AccountId == nil {
 13104  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 13105  	}
 13106  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 13107  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 13108  	}
 13109  	if s.Bucket != nil && len(*s.Bucket) < 3 {
 13110  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
 13111  	}
 13112  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 13113  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 13114  	}
 13115  
 13116  	if invalidParams.Len() > 0 {
 13117  		return invalidParams
 13118  	}
 13119  	return nil
 13120  }
 13121  
 13122  // SetAccountId sets the AccountId field's value.
 13123  func (s *ListAccessPointsInput) SetAccountId(v string) *ListAccessPointsInput {
 13124  	s.AccountId = &v
 13125  	return s
 13126  }
 13127  
 13128  // SetBucket sets the Bucket field's value.
 13129  func (s *ListAccessPointsInput) SetBucket(v string) *ListAccessPointsInput {
 13130  	s.Bucket = &v
 13131  	return s
 13132  }
 13133  
 13134  // SetMaxResults sets the MaxResults field's value.
 13135  func (s *ListAccessPointsInput) SetMaxResults(v int64) *ListAccessPointsInput {
 13136  	s.MaxResults = &v
 13137  	return s
 13138  }
 13139  
 13140  // SetNextToken sets the NextToken field's value.
 13141  func (s *ListAccessPointsInput) SetNextToken(v string) *ListAccessPointsInput {
 13142  	s.NextToken = &v
 13143  	return s
 13144  }
 13145  
 13146  func (s *ListAccessPointsInput) hostLabels() map[string]string {
 13147  	return map[string]string{
 13148  		"AccountId": aws.StringValue(s.AccountId),
 13149  	}
 13150  }
 13151  
 13152  func (s *ListAccessPointsInput) getEndpointARN() (arn.Resource, error) {
 13153  	if s.Bucket == nil {
 13154  		return nil, fmt.Errorf("member Bucket is nil")
 13155  	}
 13156  	return parseEndpointARN(*s.Bucket)
 13157  }
 13158  
 13159  func (s *ListAccessPointsInput) hasEndpointARN() bool {
 13160  	if s.Bucket == nil {
 13161  		return false
 13162  	}
 13163  	return arn.IsARN(*s.Bucket)
 13164  }
 13165  
 13166  // updateArnableField updates the value of the input field that
 13167  // takes an ARN as an input. This method is useful to backfill
 13168  // the parsed resource name from ARN into the input member.
 13169  // It returns a pointer to a modified copy of input and an error.
 13170  // Note that original input is not modified.
 13171  func (s ListAccessPointsInput) updateArnableField(v string) (interface{}, error) {
 13172  	if s.Bucket == nil {
 13173  		return nil, fmt.Errorf("member Bucket is nil")
 13174  	}
 13175  	s.Bucket = aws.String(v)
 13176  	return &s, nil
 13177  }
 13178  
 13179  // updateAccountID returns a pointer to a modified copy of input,
 13180  // if account id is not provided, we update the account id in modified input
 13181  // if account id is provided, but doesn't match with the one in ARN, we throw an error
 13182  // if account id is not updated, we return nil. Note that original input is not modified.
 13183  func (s ListAccessPointsInput) updateAccountID(accountId string) (interface{}, error) {
 13184  	if s.AccountId == nil {
 13185  		s.AccountId = aws.String(accountId)
 13186  		return &s, nil
 13187  	} else if *s.AccountId != accountId {
 13188  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
 13189  	}
 13190  	return nil, nil
 13191  }
 13192  
 13193  type ListAccessPointsOutput struct {
 13194  	_ struct{} `type:"structure"`
 13195  
 13196  	// Contains identification and configuration information for one or more access
 13197  	// points associated with the specified bucket.
 13198  	AccessPointList []*AccessPoint `locationNameList:"AccessPoint" type:"list"`
 13199  
 13200  	// If the specified bucket has more access points than can be returned in one
 13201  	// call to this API, this field contains a continuation token that you can provide
 13202  	// in subsequent calls to this API to retrieve additional access points.
 13203  	NextToken *string `min:"1" type:"string"`
 13204  }
 13205  
 13206  // String returns the string representation.
 13207  //
 13208  // API parameter values that are decorated as "sensitive" in the API will not
 13209  // be included in the string output. The member name will be present, but the
 13210  // value will be replaced with "sensitive".
 13211  func (s ListAccessPointsOutput) String() string {
 13212  	return awsutil.Prettify(s)
 13213  }
 13214  
 13215  // GoString returns the string representation.
 13216  //
 13217  // API parameter values that are decorated as "sensitive" in the API will not
 13218  // be included in the string output. The member name will be present, but the
 13219  // value will be replaced with "sensitive".
 13220  func (s ListAccessPointsOutput) GoString() string {
 13221  	return s.String()
 13222  }
 13223  
 13224  // SetAccessPointList sets the AccessPointList field's value.
 13225  func (s *ListAccessPointsOutput) SetAccessPointList(v []*AccessPoint) *ListAccessPointsOutput {
 13226  	s.AccessPointList = v
 13227  	return s
 13228  }
 13229  
 13230  // SetNextToken sets the NextToken field's value.
 13231  func (s *ListAccessPointsOutput) SetNextToken(v string) *ListAccessPointsOutput {
 13232  	s.NextToken = &v
 13233  	return s
 13234  }
 13235  
 13236  type ListJobsInput struct {
 13237  	_ struct{} `locationName:"ListJobsRequest" type:"structure"`
 13238  
 13239  	// The Amazon Web Services account ID associated with the S3 Batch Operations
 13240  	// job.
 13241  	//
 13242  	// AccountId is a required field
 13243  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 13244  
 13245  	// The List Jobs request returns jobs that match the statuses listed in this
 13246  	// element.
 13247  	JobStatuses []*string `location:"querystring" locationName:"jobStatuses" type:"list"`
 13248  
 13249  	// The maximum number of jobs that Amazon S3 will include in the List Jobs response.
 13250  	// If there are more jobs than this number, the response will include a pagination
 13251  	// token in the NextToken field to enable you to retrieve the next page of results.
 13252  	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
 13253  
 13254  	// A pagination token to request the next page of results. Use the token that
 13255  	// Amazon S3 returned in the NextToken element of the ListJobsResult from the
 13256  	// previous List Jobs request.
 13257  	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
 13258  }
 13259  
 13260  // String returns the string representation.
 13261  //
 13262  // API parameter values that are decorated as "sensitive" in the API will not
 13263  // be included in the string output. The member name will be present, but the
 13264  // value will be replaced with "sensitive".
 13265  func (s ListJobsInput) String() string {
 13266  	return awsutil.Prettify(s)
 13267  }
 13268  
 13269  // GoString returns the string representation.
 13270  //
 13271  // API parameter values that are decorated as "sensitive" in the API will not
 13272  // be included in the string output. The member name will be present, but the
 13273  // value will be replaced with "sensitive".
 13274  func (s ListJobsInput) GoString() string {
 13275  	return s.String()
 13276  }
 13277  
 13278  // Validate inspects the fields of the type to determine if they are valid.
 13279  func (s *ListJobsInput) Validate() error {
 13280  	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
 13281  	if s.AccountId == nil {
 13282  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 13283  	}
 13284  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 13285  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 13286  	}
 13287  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 13288  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 13289  	}
 13290  
 13291  	if invalidParams.Len() > 0 {
 13292  		return invalidParams
 13293  	}
 13294  	return nil
 13295  }
 13296  
 13297  // SetAccountId sets the AccountId field's value.
 13298  func (s *ListJobsInput) SetAccountId(v string) *ListJobsInput {
 13299  	s.AccountId = &v
 13300  	return s
 13301  }
 13302  
 13303  // SetJobStatuses sets the JobStatuses field's value.
 13304  func (s *ListJobsInput) SetJobStatuses(v []*string) *ListJobsInput {
 13305  	s.JobStatuses = v
 13306  	return s
 13307  }
 13308  
 13309  // SetMaxResults sets the MaxResults field's value.
 13310  func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
 13311  	s.MaxResults = &v
 13312  	return s
 13313  }
 13314  
 13315  // SetNextToken sets the NextToken field's value.
 13316  func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
 13317  	s.NextToken = &v
 13318  	return s
 13319  }
 13320  
 13321  func (s *ListJobsInput) hostLabels() map[string]string {
 13322  	return map[string]string{
 13323  		"AccountId": aws.StringValue(s.AccountId),
 13324  	}
 13325  }
 13326  
 13327  type ListJobsOutput struct {
 13328  	_ struct{} `type:"structure"`
 13329  
 13330  	// The list of current jobs and jobs that have ended within the last 30 days.
 13331  	Jobs []*JobListDescriptor `type:"list"`
 13332  
 13333  	// If the List Jobs request produced more than the maximum number of results,
 13334  	// you can pass this value into a subsequent List Jobs request in order to retrieve
 13335  	// the next page of results.
 13336  	NextToken *string `min:"1" type:"string"`
 13337  }
 13338  
 13339  // String returns the string representation.
 13340  //
 13341  // API parameter values that are decorated as "sensitive" in the API will not
 13342  // be included in the string output. The member name will be present, but the
 13343  // value will be replaced with "sensitive".
 13344  func (s ListJobsOutput) String() string {
 13345  	return awsutil.Prettify(s)
 13346  }
 13347  
 13348  // GoString returns the string representation.
 13349  //
 13350  // API parameter values that are decorated as "sensitive" in the API will not
 13351  // be included in the string output. The member name will be present, but the
 13352  // value will be replaced with "sensitive".
 13353  func (s ListJobsOutput) GoString() string {
 13354  	return s.String()
 13355  }
 13356  
 13357  // SetJobs sets the Jobs field's value.
 13358  func (s *ListJobsOutput) SetJobs(v []*JobListDescriptor) *ListJobsOutput {
 13359  	s.Jobs = v
 13360  	return s
 13361  }
 13362  
 13363  // SetNextToken sets the NextToken field's value.
 13364  func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
 13365  	s.NextToken = &v
 13366  	return s
 13367  }
 13368  
 13369  type ListMultiRegionAccessPointsInput struct {
 13370  	_ struct{} `locationName:"ListMultiRegionAccessPointsRequest" type:"structure"`
 13371  
 13372  	// The Amazon Web Services account ID for the owner of the Multi-Region Access
 13373  	// Point.
 13374  	//
 13375  	// AccountId is a required field
 13376  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 13377  
 13378  	// Not currently used. Do not use this parameter.
 13379  	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
 13380  
 13381  	// Not currently used. Do not use this parameter.
 13382  	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
 13383  }
 13384  
 13385  // String returns the string representation.
 13386  //
 13387  // API parameter values that are decorated as "sensitive" in the API will not
 13388  // be included in the string output. The member name will be present, but the
 13389  // value will be replaced with "sensitive".
 13390  func (s ListMultiRegionAccessPointsInput) String() string {
 13391  	return awsutil.Prettify(s)
 13392  }
 13393  
 13394  // GoString returns the string representation.
 13395  //
 13396  // API parameter values that are decorated as "sensitive" in the API will not
 13397  // be included in the string output. The member name will be present, but the
 13398  // value will be replaced with "sensitive".
 13399  func (s ListMultiRegionAccessPointsInput) GoString() string {
 13400  	return s.String()
 13401  }
 13402  
 13403  // Validate inspects the fields of the type to determine if they are valid.
 13404  func (s *ListMultiRegionAccessPointsInput) Validate() error {
 13405  	invalidParams := request.ErrInvalidParams{Context: "ListMultiRegionAccessPointsInput"}
 13406  	if s.AccountId == nil {
 13407  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 13408  	}
 13409  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 13410  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 13411  	}
 13412  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 13413  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 13414  	}
 13415  
 13416  	if invalidParams.Len() > 0 {
 13417  		return invalidParams
 13418  	}
 13419  	return nil
 13420  }
 13421  
 13422  // SetAccountId sets the AccountId field's value.
 13423  func (s *ListMultiRegionAccessPointsInput) SetAccountId(v string) *ListMultiRegionAccessPointsInput {
 13424  	s.AccountId = &v
 13425  	return s
 13426  }
 13427  
 13428  // SetMaxResults sets the MaxResults field's value.
 13429  func (s *ListMultiRegionAccessPointsInput) SetMaxResults(v int64) *ListMultiRegionAccessPointsInput {
 13430  	s.MaxResults = &v
 13431  	return s
 13432  }
 13433  
 13434  // SetNextToken sets the NextToken field's value.
 13435  func (s *ListMultiRegionAccessPointsInput) SetNextToken(v string) *ListMultiRegionAccessPointsInput {
 13436  	s.NextToken = &v
 13437  	return s
 13438  }
 13439  
 13440  func (s *ListMultiRegionAccessPointsInput) hostLabels() map[string]string {
 13441  	return map[string]string{
 13442  		"AccountId": aws.StringValue(s.AccountId),
 13443  	}
 13444  }
 13445  
 13446  type ListMultiRegionAccessPointsOutput struct {
 13447  	_ struct{} `type:"structure"`
 13448  
 13449  	// The list of Multi-Region Access Points associated with the user.
 13450  	AccessPoints []*MultiRegionAccessPointReport `locationNameList:"AccessPoint" type:"list"`
 13451  
 13452  	// If the specified bucket has more Multi-Region Access Points than can be returned
 13453  	// in one call to this action, this field contains a continuation token. You
 13454  	// can use this token tin subsequent calls to this action to retrieve additional
 13455  	// Multi-Region Access Points.
 13456  	NextToken *string `min:"1" type:"string"`
 13457  }
 13458  
 13459  // String returns the string representation.
 13460  //
 13461  // API parameter values that are decorated as "sensitive" in the API will not
 13462  // be included in the string output. The member name will be present, but the
 13463  // value will be replaced with "sensitive".
 13464  func (s ListMultiRegionAccessPointsOutput) String() string {
 13465  	return awsutil.Prettify(s)
 13466  }
 13467  
 13468  // GoString returns the string representation.
 13469  //
 13470  // API parameter values that are decorated as "sensitive" in the API will not
 13471  // be included in the string output. The member name will be present, but the
 13472  // value will be replaced with "sensitive".
 13473  func (s ListMultiRegionAccessPointsOutput) GoString() string {
 13474  	return s.String()
 13475  }
 13476  
 13477  // SetAccessPoints sets the AccessPoints field's value.
 13478  func (s *ListMultiRegionAccessPointsOutput) SetAccessPoints(v []*MultiRegionAccessPointReport) *ListMultiRegionAccessPointsOutput {
 13479  	s.AccessPoints = v
 13480  	return s
 13481  }
 13482  
 13483  // SetNextToken sets the NextToken field's value.
 13484  func (s *ListMultiRegionAccessPointsOutput) SetNextToken(v string) *ListMultiRegionAccessPointsOutput {
 13485  	s.NextToken = &v
 13486  	return s
 13487  }
 13488  
 13489  type ListRegionalBucketsInput struct {
 13490  	_ struct{} `locationName:"ListRegionalBucketsRequest" type:"structure"`
 13491  
 13492  	// The Amazon Web Services account ID of the Outposts bucket.
 13493  	//
 13494  	// AccountId is a required field
 13495  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 13496  
 13497  	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
 13498  
 13499  	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
 13500  
 13501  	// The ID of the Outposts.
 13502  	//
 13503  	// This is required by Amazon S3 on Outposts buckets.
 13504  	OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"`
 13505  }
 13506  
 13507  // String returns the string representation.
 13508  //
 13509  // API parameter values that are decorated as "sensitive" in the API will not
 13510  // be included in the string output. The member name will be present, but the
 13511  // value will be replaced with "sensitive".
 13512  func (s ListRegionalBucketsInput) String() string {
 13513  	return awsutil.Prettify(s)
 13514  }
 13515  
 13516  // GoString returns the string representation.
 13517  //
 13518  // API parameter values that are decorated as "sensitive" in the API will not
 13519  // be included in the string output. The member name will be present, but the
 13520  // value will be replaced with "sensitive".
 13521  func (s ListRegionalBucketsInput) GoString() string {
 13522  	return s.String()
 13523  }
 13524  
 13525  // Validate inspects the fields of the type to determine if they are valid.
 13526  func (s *ListRegionalBucketsInput) Validate() error {
 13527  	invalidParams := request.ErrInvalidParams{Context: "ListRegionalBucketsInput"}
 13528  	if s.AccountId == nil {
 13529  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 13530  	}
 13531  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 13532  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 13533  	}
 13534  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 13535  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 13536  	}
 13537  	if s.OutpostId != nil && len(*s.OutpostId) < 1 {
 13538  		invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1))
 13539  	}
 13540  
 13541  	if invalidParams.Len() > 0 {
 13542  		return invalidParams
 13543  	}
 13544  	return nil
 13545  }
 13546  
 13547  // SetAccountId sets the AccountId field's value.
 13548  func (s *ListRegionalBucketsInput) SetAccountId(v string) *ListRegionalBucketsInput {
 13549  	s.AccountId = &v
 13550  	return s
 13551  }
 13552  
 13553  // SetMaxResults sets the MaxResults field's value.
 13554  func (s *ListRegionalBucketsInput) SetMaxResults(v int64) *ListRegionalBucketsInput {
 13555  	s.MaxResults = &v
 13556  	return s
 13557  }
 13558  
 13559  // SetNextToken sets the NextToken field's value.
 13560  func (s *ListRegionalBucketsInput) SetNextToken(v string) *ListRegionalBucketsInput {
 13561  	s.NextToken = &v
 13562  	return s
 13563  }
 13564  
 13565  // SetOutpostId sets the OutpostId field's value.
 13566  func (s *ListRegionalBucketsInput) SetOutpostId(v string) *ListRegionalBucketsInput {
 13567  	s.OutpostId = &v
 13568  	return s
 13569  }
 13570  
 13571  func (s *ListRegionalBucketsInput) hostLabels() map[string]string {
 13572  	return map[string]string{
 13573  		"AccountId": aws.StringValue(s.AccountId),
 13574  	}
 13575  }
 13576  
 13577  func (s *ListRegionalBucketsInput) getOutpostID() (string, error) {
 13578  	if s.OutpostId == nil {
 13579  		return "", fmt.Errorf("member OutpostId is nil")
 13580  	}
 13581  	return *s.OutpostId, nil
 13582  }
 13583  
 13584  func (s *ListRegionalBucketsInput) hasOutpostID() bool {
 13585  	if s.OutpostId == nil {
 13586  		return false
 13587  	}
 13588  	return true
 13589  }
 13590  
 13591  type ListRegionalBucketsOutput struct {
 13592  	_ struct{} `type:"structure"`
 13593  
 13594  	// NextToken is sent when isTruncated is true, which means there are more buckets
 13595  	// that can be listed. The next list requests to Amazon S3 can be continued
 13596  	// with this NextToken. NextToken is obfuscated and is not a real key.
 13597  	NextToken *string `min:"1" type:"string"`
 13598  
 13599  	RegionalBucketList []*RegionalBucket `locationNameList:"RegionalBucket" type:"list"`
 13600  }
 13601  
 13602  // String returns the string representation.
 13603  //
 13604  // API parameter values that are decorated as "sensitive" in the API will not
 13605  // be included in the string output. The member name will be present, but the
 13606  // value will be replaced with "sensitive".
 13607  func (s ListRegionalBucketsOutput) String() string {
 13608  	return awsutil.Prettify(s)
 13609  }
 13610  
 13611  // GoString returns the string representation.
 13612  //
 13613  // API parameter values that are decorated as "sensitive" in the API will not
 13614  // be included in the string output. The member name will be present, but the
 13615  // value will be replaced with "sensitive".
 13616  func (s ListRegionalBucketsOutput) GoString() string {
 13617  	return s.String()
 13618  }
 13619  
 13620  // SetNextToken sets the NextToken field's value.
 13621  func (s *ListRegionalBucketsOutput) SetNextToken(v string) *ListRegionalBucketsOutput {
 13622  	s.NextToken = &v
 13623  	return s
 13624  }
 13625  
 13626  // SetRegionalBucketList sets the RegionalBucketList field's value.
 13627  func (s *ListRegionalBucketsOutput) SetRegionalBucketList(v []*RegionalBucket) *ListRegionalBucketsOutput {
 13628  	s.RegionalBucketList = v
 13629  	return s
 13630  }
 13631  
 13632  // Part of ListStorageLensConfigurationResult. Each entry includes the description
 13633  // of the S3 Storage Lens configuration, its home Region, whether it is enabled,
 13634  // its Amazon Resource Name (ARN), and config ID.
 13635  type ListStorageLensConfigurationEntry struct {
 13636  	_ struct{} `type:"structure"`
 13637  
 13638  	// A container for the S3 Storage Lens home Region. Your metrics data is stored
 13639  	// and retained in your designated S3 Storage Lens home Region.
 13640  	//
 13641  	// HomeRegion is a required field
 13642  	HomeRegion *string `min:"5" type:"string" required:"true"`
 13643  
 13644  	// A container for the S3 Storage Lens configuration ID.
 13645  	//
 13646  	// Id is a required field
 13647  	Id *string `min:"1" type:"string" required:"true"`
 13648  
 13649  	// A container for whether the S3 Storage Lens configuration is enabled. This
 13650  	// property is required.
 13651  	IsEnabled *bool `type:"boolean"`
 13652  
 13653  	// The ARN of the S3 Storage Lens configuration. This property is read-only.
 13654  	//
 13655  	// StorageLensArn is a required field
 13656  	StorageLensArn *string `min:"1" type:"string" required:"true"`
 13657  }
 13658  
 13659  // String returns the string representation.
 13660  //
 13661  // API parameter values that are decorated as "sensitive" in the API will not
 13662  // be included in the string output. The member name will be present, but the
 13663  // value will be replaced with "sensitive".
 13664  func (s ListStorageLensConfigurationEntry) String() string {
 13665  	return awsutil.Prettify(s)
 13666  }
 13667  
 13668  // GoString returns the string representation.
 13669  //
 13670  // API parameter values that are decorated as "sensitive" in the API will not
 13671  // be included in the string output. The member name will be present, but the
 13672  // value will be replaced with "sensitive".
 13673  func (s ListStorageLensConfigurationEntry) GoString() string {
 13674  	return s.String()
 13675  }
 13676  
 13677  // SetHomeRegion sets the HomeRegion field's value.
 13678  func (s *ListStorageLensConfigurationEntry) SetHomeRegion(v string) *ListStorageLensConfigurationEntry {
 13679  	s.HomeRegion = &v
 13680  	return s
 13681  }
 13682  
 13683  // SetId sets the Id field's value.
 13684  func (s *ListStorageLensConfigurationEntry) SetId(v string) *ListStorageLensConfigurationEntry {
 13685  	s.Id = &v
 13686  	return s
 13687  }
 13688  
 13689  // SetIsEnabled sets the IsEnabled field's value.
 13690  func (s *ListStorageLensConfigurationEntry) SetIsEnabled(v bool) *ListStorageLensConfigurationEntry {
 13691  	s.IsEnabled = &v
 13692  	return s
 13693  }
 13694  
 13695  // SetStorageLensArn sets the StorageLensArn field's value.
 13696  func (s *ListStorageLensConfigurationEntry) SetStorageLensArn(v string) *ListStorageLensConfigurationEntry {
 13697  	s.StorageLensArn = &v
 13698  	return s
 13699  }
 13700  
 13701  type ListStorageLensConfigurationsInput struct {
 13702  	_ struct{} `locationName:"ListStorageLensConfigurationsRequest" type:"structure"`
 13703  
 13704  	// The account ID of the requester.
 13705  	//
 13706  	// AccountId is a required field
 13707  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 13708  
 13709  	// A pagination token to request the next page of results.
 13710  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
 13711  }
 13712  
 13713  // String returns the string representation.
 13714  //
 13715  // API parameter values that are decorated as "sensitive" in the API will not
 13716  // be included in the string output. The member name will be present, but the
 13717  // value will be replaced with "sensitive".
 13718  func (s ListStorageLensConfigurationsInput) String() string {
 13719  	return awsutil.Prettify(s)
 13720  }
 13721  
 13722  // GoString returns the string representation.
 13723  //
 13724  // API parameter values that are decorated as "sensitive" in the API will not
 13725  // be included in the string output. The member name will be present, but the
 13726  // value will be replaced with "sensitive".
 13727  func (s ListStorageLensConfigurationsInput) GoString() string {
 13728  	return s.String()
 13729  }
 13730  
 13731  // Validate inspects the fields of the type to determine if they are valid.
 13732  func (s *ListStorageLensConfigurationsInput) Validate() error {
 13733  	invalidParams := request.ErrInvalidParams{Context: "ListStorageLensConfigurationsInput"}
 13734  	if s.AccountId == nil {
 13735  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 13736  	}
 13737  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 13738  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 13739  	}
 13740  
 13741  	if invalidParams.Len() > 0 {
 13742  		return invalidParams
 13743  	}
 13744  	return nil
 13745  }
 13746  
 13747  // SetAccountId sets the AccountId field's value.
 13748  func (s *ListStorageLensConfigurationsInput) SetAccountId(v string) *ListStorageLensConfigurationsInput {
 13749  	s.AccountId = &v
 13750  	return s
 13751  }
 13752  
 13753  // SetNextToken sets the NextToken field's value.
 13754  func (s *ListStorageLensConfigurationsInput) SetNextToken(v string) *ListStorageLensConfigurationsInput {
 13755  	s.NextToken = &v
 13756  	return s
 13757  }
 13758  
 13759  func (s *ListStorageLensConfigurationsInput) hostLabels() map[string]string {
 13760  	return map[string]string{
 13761  		"AccountId": aws.StringValue(s.AccountId),
 13762  	}
 13763  }
 13764  
 13765  type ListStorageLensConfigurationsOutput struct {
 13766  	_ struct{} `type:"structure"`
 13767  
 13768  	// If the request produced more than the maximum number of S3 Storage Lens configuration
 13769  	// results, you can pass this value into a subsequent request to retrieve the
 13770  	// next page of results.
 13771  	NextToken *string `type:"string"`
 13772  
 13773  	// A list of S3 Storage Lens configurations.
 13774  	StorageLensConfigurationList []*ListStorageLensConfigurationEntry `locationNameList:"StorageLensConfiguration" type:"list" flattened:"true"`
 13775  }
 13776  
 13777  // String returns the string representation.
 13778  //
 13779  // API parameter values that are decorated as "sensitive" in the API will not
 13780  // be included in the string output. The member name will be present, but the
 13781  // value will be replaced with "sensitive".
 13782  func (s ListStorageLensConfigurationsOutput) String() string {
 13783  	return awsutil.Prettify(s)
 13784  }
 13785  
 13786  // GoString returns the string representation.
 13787  //
 13788  // API parameter values that are decorated as "sensitive" in the API will not
 13789  // be included in the string output. The member name will be present, but the
 13790  // value will be replaced with "sensitive".
 13791  func (s ListStorageLensConfigurationsOutput) GoString() string {
 13792  	return s.String()
 13793  }
 13794  
 13795  // SetNextToken sets the NextToken field's value.
 13796  func (s *ListStorageLensConfigurationsOutput) SetNextToken(v string) *ListStorageLensConfigurationsOutput {
 13797  	s.NextToken = &v
 13798  	return s
 13799  }
 13800  
 13801  // SetStorageLensConfigurationList sets the StorageLensConfigurationList field's value.
 13802  func (s *ListStorageLensConfigurationsOutput) SetStorageLensConfigurationList(v []*ListStorageLensConfigurationEntry) *ListStorageLensConfigurationsOutput {
 13803  	s.StorageLensConfigurationList = v
 13804  	return s
 13805  }
 13806  
 13807  // The Multi-Region Access Point access control policy.
 13808  //
 13809  // When you update the policy, the update is first listed as the proposed policy.
 13810  // After the update is finished and all Regions have been updated, the proposed
 13811  // policy is listed as the established policy. If both policies have the same
 13812  // version number, the proposed policy is the established policy.
 13813  type MultiRegionAccessPointPolicyDocument struct {
 13814  	_ struct{} `type:"structure"`
 13815  
 13816  	// The last established policy for the Multi-Region Access Point.
 13817  	Established *EstablishedMultiRegionAccessPointPolicy `type:"structure"`
 13818  
 13819  	// The proposed policy for the Multi-Region Access Point.
 13820  	Proposed *ProposedMultiRegionAccessPointPolicy `type:"structure"`
 13821  }
 13822  
 13823  // String returns the string representation.
 13824  //
 13825  // API parameter values that are decorated as "sensitive" in the API will not
 13826  // be included in the string output. The member name will be present, but the
 13827  // value will be replaced with "sensitive".
 13828  func (s MultiRegionAccessPointPolicyDocument) String() string {
 13829  	return awsutil.Prettify(s)
 13830  }
 13831  
 13832  // GoString returns the string representation.
 13833  //
 13834  // API parameter values that are decorated as "sensitive" in the API will not
 13835  // be included in the string output. The member name will be present, but the
 13836  // value will be replaced with "sensitive".
 13837  func (s MultiRegionAccessPointPolicyDocument) GoString() string {
 13838  	return s.String()
 13839  }
 13840  
 13841  // SetEstablished sets the Established field's value.
 13842  func (s *MultiRegionAccessPointPolicyDocument) SetEstablished(v *EstablishedMultiRegionAccessPointPolicy) *MultiRegionAccessPointPolicyDocument {
 13843  	s.Established = v
 13844  	return s
 13845  }
 13846  
 13847  // SetProposed sets the Proposed field's value.
 13848  func (s *MultiRegionAccessPointPolicyDocument) SetProposed(v *ProposedMultiRegionAccessPointPolicy) *MultiRegionAccessPointPolicyDocument {
 13849  	s.Proposed = v
 13850  	return s
 13851  }
 13852  
 13853  // Status information for a single Multi-Region Access Point Region.
 13854  type MultiRegionAccessPointRegionalResponse struct {
 13855  	_ struct{} `type:"structure"`
 13856  
 13857  	// The name of the Region in the Multi-Region Access Point.
 13858  	Name *string `min:"1" type:"string"`
 13859  
 13860  	// The current status of the Multi-Region Access Point in this Region.
 13861  	RequestStatus *string `type:"string"`
 13862  }
 13863  
 13864  // String returns the string representation.
 13865  //
 13866  // API parameter values that are decorated as "sensitive" in the API will not
 13867  // be included in the string output. The member name will be present, but the
 13868  // value will be replaced with "sensitive".
 13869  func (s MultiRegionAccessPointRegionalResponse) String() string {
 13870  	return awsutil.Prettify(s)
 13871  }
 13872  
 13873  // GoString returns the string representation.
 13874  //
 13875  // API parameter values that are decorated as "sensitive" in the API will not
 13876  // be included in the string output. The member name will be present, but the
 13877  // value will be replaced with "sensitive".
 13878  func (s MultiRegionAccessPointRegionalResponse) GoString() string {
 13879  	return s.String()
 13880  }
 13881  
 13882  // SetName sets the Name field's value.
 13883  func (s *MultiRegionAccessPointRegionalResponse) SetName(v string) *MultiRegionAccessPointRegionalResponse {
 13884  	s.Name = &v
 13885  	return s
 13886  }
 13887  
 13888  // SetRequestStatus sets the RequestStatus field's value.
 13889  func (s *MultiRegionAccessPointRegionalResponse) SetRequestStatus(v string) *MultiRegionAccessPointRegionalResponse {
 13890  	s.RequestStatus = &v
 13891  	return s
 13892  }
 13893  
 13894  // A collection of statuses for a Multi-Region Access Point in the various Regions
 13895  // it supports.
 13896  type MultiRegionAccessPointReport struct {
 13897  	_ struct{} `type:"structure"`
 13898  
 13899  	// The alias for the Multi-Region Access Point. For more information about the
 13900  	// distinction between the name and the alias of an Multi-Region Access Point,
 13901  	// see Managing Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html#multi-region-access-point-naming).
 13902  	Alias *string `type:"string"`
 13903  
 13904  	// When the Multi-Region Access Point create request was received.
 13905  	CreatedAt *time.Time `type:"timestamp"`
 13906  
 13907  	// The name of the Multi-Region Access Point.
 13908  	Name *string `type:"string"`
 13909  
 13910  	// The PublicAccessBlock configuration that you want to apply to this Amazon
 13911  	// S3 account. You can enable the configuration options in any combination.
 13912  	// For more information about when Amazon S3 considers a bucket or object public,
 13913  	// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
 13914  	// in the Amazon S3 User Guide.
 13915  	//
 13916  	// This is not supported for Amazon S3 on Outposts.
 13917  	PublicAccessBlock *PublicAccessBlockConfiguration `type:"structure"`
 13918  
 13919  	// A collection of the Regions and buckets associated with the Multi-Region
 13920  	// Access Point.
 13921  	Regions []*RegionReport `locationNameList:"Region" type:"list"`
 13922  
 13923  	// The current status of the Multi-Region Access Point.
 13924  	//
 13925  	// CREATING and DELETING are temporary states that exist while the request is
 13926  	// propogating and being completed. If a Multi-Region Access Point has a status
 13927  	// of PARTIALLY_CREATED, you can retry creation or send a request to delete
 13928  	// the Multi-Region Access Point. If a Multi-Region Access Point has a status
 13929  	// of PARTIALLY_DELETED, you can retry a delete request to finish the deletion
 13930  	// of the Multi-Region Access Point.
 13931  	Status *string `type:"string" enum:"MultiRegionAccessPointStatus"`
 13932  }
 13933  
 13934  // String returns the string representation.
 13935  //
 13936  // API parameter values that are decorated as "sensitive" in the API will not
 13937  // be included in the string output. The member name will be present, but the
 13938  // value will be replaced with "sensitive".
 13939  func (s MultiRegionAccessPointReport) String() string {
 13940  	return awsutil.Prettify(s)
 13941  }
 13942  
 13943  // GoString returns the string representation.
 13944  //
 13945  // API parameter values that are decorated as "sensitive" in the API will not
 13946  // be included in the string output. The member name will be present, but the
 13947  // value will be replaced with "sensitive".
 13948  func (s MultiRegionAccessPointReport) GoString() string {
 13949  	return s.String()
 13950  }
 13951  
 13952  // SetAlias sets the Alias field's value.
 13953  func (s *MultiRegionAccessPointReport) SetAlias(v string) *MultiRegionAccessPointReport {
 13954  	s.Alias = &v
 13955  	return s
 13956  }
 13957  
 13958  // SetCreatedAt sets the CreatedAt field's value.
 13959  func (s *MultiRegionAccessPointReport) SetCreatedAt(v time.Time) *MultiRegionAccessPointReport {
 13960  	s.CreatedAt = &v
 13961  	return s
 13962  }
 13963  
 13964  // SetName sets the Name field's value.
 13965  func (s *MultiRegionAccessPointReport) SetName(v string) *MultiRegionAccessPointReport {
 13966  	s.Name = &v
 13967  	return s
 13968  }
 13969  
 13970  // SetPublicAccessBlock sets the PublicAccessBlock field's value.
 13971  func (s *MultiRegionAccessPointReport) SetPublicAccessBlock(v *PublicAccessBlockConfiguration) *MultiRegionAccessPointReport {
 13972  	s.PublicAccessBlock = v
 13973  	return s
 13974  }
 13975  
 13976  // SetRegions sets the Regions field's value.
 13977  func (s *MultiRegionAccessPointReport) SetRegions(v []*RegionReport) *MultiRegionAccessPointReport {
 13978  	s.Regions = v
 13979  	return s
 13980  }
 13981  
 13982  // SetStatus sets the Status field's value.
 13983  func (s *MultiRegionAccessPointReport) SetStatus(v string) *MultiRegionAccessPointReport {
 13984  	s.Status = &v
 13985  	return s
 13986  }
 13987  
 13988  // The Multi-Region Access Point details that are returned when querying about
 13989  // an asynchronous request.
 13990  type MultiRegionAccessPointsAsyncResponse struct {
 13991  	_ struct{} `type:"structure"`
 13992  
 13993  	// A collection of status information for the different Regions that a Multi-Region
 13994  	// Access Point supports.
 13995  	Regions []*MultiRegionAccessPointRegionalResponse `locationNameList:"Region" type:"list"`
 13996  }
 13997  
 13998  // String returns the string representation.
 13999  //
 14000  // API parameter values that are decorated as "sensitive" in the API will not
 14001  // be included in the string output. The member name will be present, but the
 14002  // value will be replaced with "sensitive".
 14003  func (s MultiRegionAccessPointsAsyncResponse) String() string {
 14004  	return awsutil.Prettify(s)
 14005  }
 14006  
 14007  // GoString returns the string representation.
 14008  //
 14009  // API parameter values that are decorated as "sensitive" in the API will not
 14010  // be included in the string output. The member name will be present, but the
 14011  // value will be replaced with "sensitive".
 14012  func (s MultiRegionAccessPointsAsyncResponse) GoString() string {
 14013  	return s.String()
 14014  }
 14015  
 14016  // SetRegions sets the Regions field's value.
 14017  func (s *MultiRegionAccessPointsAsyncResponse) SetRegions(v []*MultiRegionAccessPointRegionalResponse) *MultiRegionAccessPointsAsyncResponse {
 14018  	s.Regions = v
 14019  	return s
 14020  }
 14021  
 14022  // The container of the noncurrent version expiration.
 14023  type NoncurrentVersionExpiration struct {
 14024  	_ struct{} `type:"structure"`
 14025  
 14026  	// Specifies the number of days an object is noncurrent before Amazon S3 can
 14027  	// perform the associated action. For information about the noncurrent days
 14028  	// calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
 14029  	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
 14030  	// in the Amazon S3 User Guide.
 14031  	NoncurrentDays *int64 `type:"integer"`
 14032  }
 14033  
 14034  // String returns the string representation.
 14035  //
 14036  // API parameter values that are decorated as "sensitive" in the API will not
 14037  // be included in the string output. The member name will be present, but the
 14038  // value will be replaced with "sensitive".
 14039  func (s NoncurrentVersionExpiration) String() string {
 14040  	return awsutil.Prettify(s)
 14041  }
 14042  
 14043  // GoString returns the string representation.
 14044  //
 14045  // API parameter values that are decorated as "sensitive" in the API will not
 14046  // be included in the string output. The member name will be present, but the
 14047  // value will be replaced with "sensitive".
 14048  func (s NoncurrentVersionExpiration) GoString() string {
 14049  	return s.String()
 14050  }
 14051  
 14052  // SetNoncurrentDays sets the NoncurrentDays field's value.
 14053  func (s *NoncurrentVersionExpiration) SetNoncurrentDays(v int64) *NoncurrentVersionExpiration {
 14054  	s.NoncurrentDays = &v
 14055  	return s
 14056  }
 14057  
 14058  // The container for the noncurrent version transition.
 14059  type NoncurrentVersionTransition struct {
 14060  	_ struct{} `type:"structure"`
 14061  
 14062  	// Specifies the number of days an object is noncurrent before Amazon S3 can
 14063  	// perform the associated action. For information about the noncurrent days
 14064  	// calculations, see How Amazon S3 Calculates How Long an Object Has Been Noncurrent
 14065  	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
 14066  	// in the Amazon S3 User Guide.
 14067  	NoncurrentDays *int64 `type:"integer"`
 14068  
 14069  	// The class of storage used to store the object.
 14070  	StorageClass *string `type:"string" enum:"TransitionStorageClass"`
 14071  }
 14072  
 14073  // String returns the string representation.
 14074  //
 14075  // API parameter values that are decorated as "sensitive" in the API will not
 14076  // be included in the string output. The member name will be present, but the
 14077  // value will be replaced with "sensitive".
 14078  func (s NoncurrentVersionTransition) String() string {
 14079  	return awsutil.Prettify(s)
 14080  }
 14081  
 14082  // GoString returns the string representation.
 14083  //
 14084  // API parameter values that are decorated as "sensitive" in the API will not
 14085  // be included in the string output. The member name will be present, but the
 14086  // value will be replaced with "sensitive".
 14087  func (s NoncurrentVersionTransition) GoString() string {
 14088  	return s.String()
 14089  }
 14090  
 14091  // SetNoncurrentDays sets the NoncurrentDays field's value.
 14092  func (s *NoncurrentVersionTransition) SetNoncurrentDays(v int64) *NoncurrentVersionTransition {
 14093  	s.NoncurrentDays = &v
 14094  	return s
 14095  }
 14096  
 14097  // SetStorageClass sets the StorageClass field's value.
 14098  func (s *NoncurrentVersionTransition) SetStorageClass(v string) *NoncurrentVersionTransition {
 14099  	s.StorageClass = &v
 14100  	return s
 14101  }
 14102  
 14103  // An access point with an attached Lambda function used to access transformed
 14104  // data from an Amazon S3 bucket.
 14105  type ObjectLambdaAccessPoint struct {
 14106  	_ struct{} `type:"structure"`
 14107  
 14108  	// The name of the Object Lambda Access Point.
 14109  	//
 14110  	// Name is a required field
 14111  	Name *string `min:"3" type:"string" required:"true"`
 14112  
 14113  	// Specifies the ARN for the Object Lambda Access Point.
 14114  	ObjectLambdaAccessPointArn *string `min:"1" type:"string"`
 14115  }
 14116  
 14117  // String returns the string representation.
 14118  //
 14119  // API parameter values that are decorated as "sensitive" in the API will not
 14120  // be included in the string output. The member name will be present, but the
 14121  // value will be replaced with "sensitive".
 14122  func (s ObjectLambdaAccessPoint) String() string {
 14123  	return awsutil.Prettify(s)
 14124  }
 14125  
 14126  // GoString returns the string representation.
 14127  //
 14128  // API parameter values that are decorated as "sensitive" in the API will not
 14129  // be included in the string output. The member name will be present, but the
 14130  // value will be replaced with "sensitive".
 14131  func (s ObjectLambdaAccessPoint) GoString() string {
 14132  	return s.String()
 14133  }
 14134  
 14135  // SetName sets the Name field's value.
 14136  func (s *ObjectLambdaAccessPoint) SetName(v string) *ObjectLambdaAccessPoint {
 14137  	s.Name = &v
 14138  	return s
 14139  }
 14140  
 14141  // SetObjectLambdaAccessPointArn sets the ObjectLambdaAccessPointArn field's value.
 14142  func (s *ObjectLambdaAccessPoint) SetObjectLambdaAccessPointArn(v string) *ObjectLambdaAccessPoint {
 14143  	s.ObjectLambdaAccessPointArn = &v
 14144  	return s
 14145  }
 14146  
 14147  // A configuration used when creating an Object Lambda Access Point.
 14148  type ObjectLambdaConfiguration struct {
 14149  	_ struct{} `type:"structure"`
 14150  
 14151  	// A container for allowed features. Valid inputs are GetObject-Range and GetObject-PartNumber.
 14152  	AllowedFeatures []*string `locationNameList:"AllowedFeature" type:"list"`
 14153  
 14154  	// A container for whether the CloudWatch metrics configuration is enabled.
 14155  	CloudWatchMetricsEnabled *bool `type:"boolean"`
 14156  
 14157  	// Standard access point associated with the Object Lambda Access Point.
 14158  	//
 14159  	// SupportingAccessPoint is a required field
 14160  	SupportingAccessPoint *string `min:"1" type:"string" required:"true"`
 14161  
 14162  	// A container for transformation configurations for an Object Lambda Access
 14163  	// Point.
 14164  	//
 14165  	// TransformationConfigurations is a required field
 14166  	TransformationConfigurations []*ObjectLambdaTransformationConfiguration `locationNameList:"TransformationConfiguration" type:"list" required:"true"`
 14167  }
 14168  
 14169  // String returns the string representation.
 14170  //
 14171  // API parameter values that are decorated as "sensitive" in the API will not
 14172  // be included in the string output. The member name will be present, but the
 14173  // value will be replaced with "sensitive".
 14174  func (s ObjectLambdaConfiguration) String() string {
 14175  	return awsutil.Prettify(s)
 14176  }
 14177  
 14178  // GoString returns the string representation.
 14179  //
 14180  // API parameter values that are decorated as "sensitive" in the API will not
 14181  // be included in the string output. The member name will be present, but the
 14182  // value will be replaced with "sensitive".
 14183  func (s ObjectLambdaConfiguration) GoString() string {
 14184  	return s.String()
 14185  }
 14186  
 14187  // Validate inspects the fields of the type to determine if they are valid.
 14188  func (s *ObjectLambdaConfiguration) Validate() error {
 14189  	invalidParams := request.ErrInvalidParams{Context: "ObjectLambdaConfiguration"}
 14190  	if s.SupportingAccessPoint == nil {
 14191  		invalidParams.Add(request.NewErrParamRequired("SupportingAccessPoint"))
 14192  	}
 14193  	if s.SupportingAccessPoint != nil && len(*s.SupportingAccessPoint) < 1 {
 14194  		invalidParams.Add(request.NewErrParamMinLen("SupportingAccessPoint", 1))
 14195  	}
 14196  	if s.TransformationConfigurations == nil {
 14197  		invalidParams.Add(request.NewErrParamRequired("TransformationConfigurations"))
 14198  	}
 14199  	if s.TransformationConfigurations != nil {
 14200  		for i, v := range s.TransformationConfigurations {
 14201  			if v == nil {
 14202  				continue
 14203  			}
 14204  			if err := v.Validate(); err != nil {
 14205  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TransformationConfigurations", i), err.(request.ErrInvalidParams))
 14206  			}
 14207  		}
 14208  	}
 14209  
 14210  	if invalidParams.Len() > 0 {
 14211  		return invalidParams
 14212  	}
 14213  	return nil
 14214  }
 14215  
 14216  // SetAllowedFeatures sets the AllowedFeatures field's value.
 14217  func (s *ObjectLambdaConfiguration) SetAllowedFeatures(v []*string) *ObjectLambdaConfiguration {
 14218  	s.AllowedFeatures = v
 14219  	return s
 14220  }
 14221  
 14222  // SetCloudWatchMetricsEnabled sets the CloudWatchMetricsEnabled field's value.
 14223  func (s *ObjectLambdaConfiguration) SetCloudWatchMetricsEnabled(v bool) *ObjectLambdaConfiguration {
 14224  	s.CloudWatchMetricsEnabled = &v
 14225  	return s
 14226  }
 14227  
 14228  // SetSupportingAccessPoint sets the SupportingAccessPoint field's value.
 14229  func (s *ObjectLambdaConfiguration) SetSupportingAccessPoint(v string) *ObjectLambdaConfiguration {
 14230  	s.SupportingAccessPoint = &v
 14231  	return s
 14232  }
 14233  
 14234  // SetTransformationConfigurations sets the TransformationConfigurations field's value.
 14235  func (s *ObjectLambdaConfiguration) SetTransformationConfigurations(v []*ObjectLambdaTransformationConfiguration) *ObjectLambdaConfiguration {
 14236  	s.TransformationConfigurations = v
 14237  	return s
 14238  }
 14239  
 14240  // A container for AwsLambdaTransformation.
 14241  type ObjectLambdaContentTransformation struct {
 14242  	_ struct{} `type:"structure"`
 14243  
 14244  	// A container for an Lambda function.
 14245  	AwsLambda *AwsLambdaTransformation `type:"structure"`
 14246  }
 14247  
 14248  // String returns the string representation.
 14249  //
 14250  // API parameter values that are decorated as "sensitive" in the API will not
 14251  // be included in the string output. The member name will be present, but the
 14252  // value will be replaced with "sensitive".
 14253  func (s ObjectLambdaContentTransformation) String() string {
 14254  	return awsutil.Prettify(s)
 14255  }
 14256  
 14257  // GoString returns the string representation.
 14258  //
 14259  // API parameter values that are decorated as "sensitive" in the API will not
 14260  // be included in the string output. The member name will be present, but the
 14261  // value will be replaced with "sensitive".
 14262  func (s ObjectLambdaContentTransformation) GoString() string {
 14263  	return s.String()
 14264  }
 14265  
 14266  // Validate inspects the fields of the type to determine if they are valid.
 14267  func (s *ObjectLambdaContentTransformation) Validate() error {
 14268  	invalidParams := request.ErrInvalidParams{Context: "ObjectLambdaContentTransformation"}
 14269  	if s.AwsLambda != nil {
 14270  		if err := s.AwsLambda.Validate(); err != nil {
 14271  			invalidParams.AddNested("AwsLambda", err.(request.ErrInvalidParams))
 14272  		}
 14273  	}
 14274  
 14275  	if invalidParams.Len() > 0 {
 14276  		return invalidParams
 14277  	}
 14278  	return nil
 14279  }
 14280  
 14281  // SetAwsLambda sets the AwsLambda field's value.
 14282  func (s *ObjectLambdaContentTransformation) SetAwsLambda(v *AwsLambdaTransformation) *ObjectLambdaContentTransformation {
 14283  	s.AwsLambda = v
 14284  	return s
 14285  }
 14286  
 14287  // A configuration used when creating an Object Lambda Access Point transformation.
 14288  type ObjectLambdaTransformationConfiguration struct {
 14289  	_ struct{} `type:"structure"`
 14290  
 14291  	// A container for the action of an Object Lambda Access Point configuration.
 14292  	// Valid input is GetObject.
 14293  	//
 14294  	// Actions is a required field
 14295  	Actions []*string `locationNameList:"Action" type:"list" required:"true"`
 14296  
 14297  	// A container for the content transformation of an Object Lambda Access Point
 14298  	// configuration.
 14299  	//
 14300  	// ContentTransformation is a required field
 14301  	ContentTransformation *ObjectLambdaContentTransformation `type:"structure" required:"true"`
 14302  }
 14303  
 14304  // String returns the string representation.
 14305  //
 14306  // API parameter values that are decorated as "sensitive" in the API will not
 14307  // be included in the string output. The member name will be present, but the
 14308  // value will be replaced with "sensitive".
 14309  func (s ObjectLambdaTransformationConfiguration) String() string {
 14310  	return awsutil.Prettify(s)
 14311  }
 14312  
 14313  // GoString returns the string representation.
 14314  //
 14315  // API parameter values that are decorated as "sensitive" in the API will not
 14316  // be included in the string output. The member name will be present, but the
 14317  // value will be replaced with "sensitive".
 14318  func (s ObjectLambdaTransformationConfiguration) GoString() string {
 14319  	return s.String()
 14320  }
 14321  
 14322  // Validate inspects the fields of the type to determine if they are valid.
 14323  func (s *ObjectLambdaTransformationConfiguration) Validate() error {
 14324  	invalidParams := request.ErrInvalidParams{Context: "ObjectLambdaTransformationConfiguration"}
 14325  	if s.Actions == nil {
 14326  		invalidParams.Add(request.NewErrParamRequired("Actions"))
 14327  	}
 14328  	if s.ContentTransformation == nil {
 14329  		invalidParams.Add(request.NewErrParamRequired("ContentTransformation"))
 14330  	}
 14331  	if s.ContentTransformation != nil {
 14332  		if err := s.ContentTransformation.Validate(); err != nil {
 14333  			invalidParams.AddNested("ContentTransformation", err.(request.ErrInvalidParams))
 14334  		}
 14335  	}
 14336  
 14337  	if invalidParams.Len() > 0 {
 14338  		return invalidParams
 14339  	}
 14340  	return nil
 14341  }
 14342  
 14343  // SetActions sets the Actions field's value.
 14344  func (s *ObjectLambdaTransformationConfiguration) SetActions(v []*string) *ObjectLambdaTransformationConfiguration {
 14345  	s.Actions = v
 14346  	return s
 14347  }
 14348  
 14349  // SetContentTransformation sets the ContentTransformation field's value.
 14350  func (s *ObjectLambdaTransformationConfiguration) SetContentTransformation(v *ObjectLambdaContentTransformation) *ObjectLambdaTransformationConfiguration {
 14351  	s.ContentTransformation = v
 14352  	return s
 14353  }
 14354  
 14355  // Indicates whether this access point policy is public. For more information
 14356  // about how Amazon S3 evaluates policies to determine whether they are public,
 14357  // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
 14358  // in the Amazon S3 User Guide.
 14359  type PolicyStatus struct {
 14360  	_ struct{} `type:"structure"`
 14361  
 14362  	IsPublic *bool `locationName:"IsPublic" type:"boolean"`
 14363  }
 14364  
 14365  // String returns the string representation.
 14366  //
 14367  // API parameter values that are decorated as "sensitive" in the API will not
 14368  // be included in the string output. The member name will be present, but the
 14369  // value will be replaced with "sensitive".
 14370  func (s PolicyStatus) String() string {
 14371  	return awsutil.Prettify(s)
 14372  }
 14373  
 14374  // GoString returns the string representation.
 14375  //
 14376  // API parameter values that are decorated as "sensitive" in the API will not
 14377  // be included in the string output. The member name will be present, but the
 14378  // value will be replaced with "sensitive".
 14379  func (s PolicyStatus) GoString() string {
 14380  	return s.String()
 14381  }
 14382  
 14383  // SetIsPublic sets the IsPublic field's value.
 14384  func (s *PolicyStatus) SetIsPublic(v bool) *PolicyStatus {
 14385  	s.IsPublic = &v
 14386  	return s
 14387  }
 14388  
 14389  // A container for the prefix-level configuration.
 14390  type PrefixLevel struct {
 14391  	_ struct{} `type:"structure"`
 14392  
 14393  	// A container for the prefix-level storage metrics for S3 Storage Lens.
 14394  	//
 14395  	// StorageMetrics is a required field
 14396  	StorageMetrics *PrefixLevelStorageMetrics `type:"structure" required:"true"`
 14397  }
 14398  
 14399  // String returns the string representation.
 14400  //
 14401  // API parameter values that are decorated as "sensitive" in the API will not
 14402  // be included in the string output. The member name will be present, but the
 14403  // value will be replaced with "sensitive".
 14404  func (s PrefixLevel) String() string {
 14405  	return awsutil.Prettify(s)
 14406  }
 14407  
 14408  // GoString returns the string representation.
 14409  //
 14410  // API parameter values that are decorated as "sensitive" in the API will not
 14411  // be included in the string output. The member name will be present, but the
 14412  // value will be replaced with "sensitive".
 14413  func (s PrefixLevel) GoString() string {
 14414  	return s.String()
 14415  }
 14416  
 14417  // Validate inspects the fields of the type to determine if they are valid.
 14418  func (s *PrefixLevel) Validate() error {
 14419  	invalidParams := request.ErrInvalidParams{Context: "PrefixLevel"}
 14420  	if s.StorageMetrics == nil {
 14421  		invalidParams.Add(request.NewErrParamRequired("StorageMetrics"))
 14422  	}
 14423  	if s.StorageMetrics != nil {
 14424  		if err := s.StorageMetrics.Validate(); err != nil {
 14425  			invalidParams.AddNested("StorageMetrics", err.(request.ErrInvalidParams))
 14426  		}
 14427  	}
 14428  
 14429  	if invalidParams.Len() > 0 {
 14430  		return invalidParams
 14431  	}
 14432  	return nil
 14433  }
 14434  
 14435  // SetStorageMetrics sets the StorageMetrics field's value.
 14436  func (s *PrefixLevel) SetStorageMetrics(v *PrefixLevelStorageMetrics) *PrefixLevel {
 14437  	s.StorageMetrics = v
 14438  	return s
 14439  }
 14440  
 14441  // A container for the prefix-level storage metrics for S3 Storage Lens.
 14442  type PrefixLevelStorageMetrics struct {
 14443  	_ struct{} `type:"structure"`
 14444  
 14445  	// A container for whether prefix-level storage metrics are enabled.
 14446  	IsEnabled *bool `type:"boolean"`
 14447  
 14448  	SelectionCriteria *SelectionCriteria `type:"structure"`
 14449  }
 14450  
 14451  // String returns the string representation.
 14452  //
 14453  // API parameter values that are decorated as "sensitive" in the API will not
 14454  // be included in the string output. The member name will be present, but the
 14455  // value will be replaced with "sensitive".
 14456  func (s PrefixLevelStorageMetrics) String() string {
 14457  	return awsutil.Prettify(s)
 14458  }
 14459  
 14460  // GoString returns the string representation.
 14461  //
 14462  // API parameter values that are decorated as "sensitive" in the API will not
 14463  // be included in the string output. The member name will be present, but the
 14464  // value will be replaced with "sensitive".
 14465  func (s PrefixLevelStorageMetrics) GoString() string {
 14466  	return s.String()
 14467  }
 14468  
 14469  // Validate inspects the fields of the type to determine if they are valid.
 14470  func (s *PrefixLevelStorageMetrics) Validate() error {
 14471  	invalidParams := request.ErrInvalidParams{Context: "PrefixLevelStorageMetrics"}
 14472  	if s.SelectionCriteria != nil {
 14473  		if err := s.SelectionCriteria.Validate(); err != nil {
 14474  			invalidParams.AddNested("SelectionCriteria", err.(request.ErrInvalidParams))
 14475  		}
 14476  	}
 14477  
 14478  	if invalidParams.Len() > 0 {
 14479  		return invalidParams
 14480  	}
 14481  	return nil
 14482  }
 14483  
 14484  // SetIsEnabled sets the IsEnabled field's value.
 14485  func (s *PrefixLevelStorageMetrics) SetIsEnabled(v bool) *PrefixLevelStorageMetrics {
 14486  	s.IsEnabled = &v
 14487  	return s
 14488  }
 14489  
 14490  // SetSelectionCriteria sets the SelectionCriteria field's value.
 14491  func (s *PrefixLevelStorageMetrics) SetSelectionCriteria(v *SelectionCriteria) *PrefixLevelStorageMetrics {
 14492  	s.SelectionCriteria = v
 14493  	return s
 14494  }
 14495  
 14496  // The proposed access control policy for the Multi-Region Access Point.
 14497  //
 14498  // When you update the policy, the update is first listed as the proposed policy.
 14499  // After the update is finished and all Regions have been updated, the proposed
 14500  // policy is listed as the established policy. If both policies have the same
 14501  // version number, the proposed policy is the established policy.
 14502  type ProposedMultiRegionAccessPointPolicy struct {
 14503  	_ struct{} `type:"structure"`
 14504  
 14505  	// The details of the proposed policy.
 14506  	Policy *string `type:"string"`
 14507  }
 14508  
 14509  // String returns the string representation.
 14510  //
 14511  // API parameter values that are decorated as "sensitive" in the API will not
 14512  // be included in the string output. The member name will be present, but the
 14513  // value will be replaced with "sensitive".
 14514  func (s ProposedMultiRegionAccessPointPolicy) String() string {
 14515  	return awsutil.Prettify(s)
 14516  }
 14517  
 14518  // GoString returns the string representation.
 14519  //
 14520  // API parameter values that are decorated as "sensitive" in the API will not
 14521  // be included in the string output. The member name will be present, but the
 14522  // value will be replaced with "sensitive".
 14523  func (s ProposedMultiRegionAccessPointPolicy) GoString() string {
 14524  	return s.String()
 14525  }
 14526  
 14527  // SetPolicy sets the Policy field's value.
 14528  func (s *ProposedMultiRegionAccessPointPolicy) SetPolicy(v string) *ProposedMultiRegionAccessPointPolicy {
 14529  	s.Policy = &v
 14530  	return s
 14531  }
 14532  
 14533  // The PublicAccessBlock configuration that you want to apply to this Amazon
 14534  // S3 account. You can enable the configuration options in any combination.
 14535  // For more information about when Amazon S3 considers a bucket or object public,
 14536  // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
 14537  // in the Amazon S3 User Guide.
 14538  //
 14539  // This is not supported for Amazon S3 on Outposts.
 14540  type PublicAccessBlockConfiguration struct {
 14541  	_ struct{} `type:"structure"`
 14542  
 14543  	// Specifies whether Amazon S3 should block public access control lists (ACLs)
 14544  	// for buckets in this account. Setting this element to TRUE causes the following
 14545  	// behavior:
 14546  	//
 14547  	//    * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is
 14548  	//    public.
 14549  	//
 14550  	//    * PUT Object calls fail if the request includes a public ACL.
 14551  	//
 14552  	//    * PUT Bucket calls fail if the request includes a public ACL.
 14553  	//
 14554  	// Enabling this setting doesn't affect existing policies or ACLs.
 14555  	//
 14556  	// This is not supported for Amazon S3 on Outposts.
 14557  	BlockPublicAcls *bool `locationName:"BlockPublicAcls" type:"boolean"`
 14558  
 14559  	// Specifies whether Amazon S3 should block public bucket policies for buckets
 14560  	// in this account. Setting this element to TRUE causes Amazon S3 to reject
 14561  	// calls to PUT Bucket policy if the specified bucket policy allows public access.
 14562  	//
 14563  	// Enabling this setting doesn't affect existing bucket policies.
 14564  	//
 14565  	// This is not supported for Amazon S3 on Outposts.
 14566  	BlockPublicPolicy *bool `locationName:"BlockPublicPolicy" type:"boolean"`
 14567  
 14568  	// Specifies whether Amazon S3 should ignore public ACLs for buckets in this
 14569  	// account. Setting this element to TRUE causes Amazon S3 to ignore all public
 14570  	// ACLs on buckets in this account and any objects that they contain.
 14571  	//
 14572  	// Enabling this setting doesn't affect the persistence of any existing ACLs
 14573  	// and doesn't prevent new public ACLs from being set.
 14574  	//
 14575  	// This is not supported for Amazon S3 on Outposts.
 14576  	IgnorePublicAcls *bool `locationName:"IgnorePublicAcls" type:"boolean"`
 14577  
 14578  	// Specifies whether Amazon S3 should restrict public bucket policies for buckets
 14579  	// in this account. Setting this element to TRUE restricts access to buckets
 14580  	// with public policies to only Amazon Web Service principals and authorized
 14581  	// users within this account.
 14582  	//
 14583  	// Enabling this setting doesn't affect previously stored bucket policies, except
 14584  	// that public and cross-account access within any public bucket policy, including
 14585  	// non-public delegation to specific accounts, is blocked.
 14586  	//
 14587  	// This is not supported for Amazon S3 on Outposts.
 14588  	RestrictPublicBuckets *bool `locationName:"RestrictPublicBuckets" type:"boolean"`
 14589  }
 14590  
 14591  // String returns the string representation.
 14592  //
 14593  // API parameter values that are decorated as "sensitive" in the API will not
 14594  // be included in the string output. The member name will be present, but the
 14595  // value will be replaced with "sensitive".
 14596  func (s PublicAccessBlockConfiguration) String() string {
 14597  	return awsutil.Prettify(s)
 14598  }
 14599  
 14600  // GoString returns the string representation.
 14601  //
 14602  // API parameter values that are decorated as "sensitive" in the API will not
 14603  // be included in the string output. The member name will be present, but the
 14604  // value will be replaced with "sensitive".
 14605  func (s PublicAccessBlockConfiguration) GoString() string {
 14606  	return s.String()
 14607  }
 14608  
 14609  // SetBlockPublicAcls sets the BlockPublicAcls field's value.
 14610  func (s *PublicAccessBlockConfiguration) SetBlockPublicAcls(v bool) *PublicAccessBlockConfiguration {
 14611  	s.BlockPublicAcls = &v
 14612  	return s
 14613  }
 14614  
 14615  // SetBlockPublicPolicy sets the BlockPublicPolicy field's value.
 14616  func (s *PublicAccessBlockConfiguration) SetBlockPublicPolicy(v bool) *PublicAccessBlockConfiguration {
 14617  	s.BlockPublicPolicy = &v
 14618  	return s
 14619  }
 14620  
 14621  // SetIgnorePublicAcls sets the IgnorePublicAcls field's value.
 14622  func (s *PublicAccessBlockConfiguration) SetIgnorePublicAcls(v bool) *PublicAccessBlockConfiguration {
 14623  	s.IgnorePublicAcls = &v
 14624  	return s
 14625  }
 14626  
 14627  // SetRestrictPublicBuckets sets the RestrictPublicBuckets field's value.
 14628  func (s *PublicAccessBlockConfiguration) SetRestrictPublicBuckets(v bool) *PublicAccessBlockConfiguration {
 14629  	s.RestrictPublicBuckets = &v
 14630  	return s
 14631  }
 14632  
 14633  type PutAccessPointConfigurationForObjectLambdaInput struct {
 14634  	_ struct{} `locationName:"PutAccessPointConfigurationForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
 14635  
 14636  	// The account ID for the account that owns the specified Object Lambda Access
 14637  	// Point.
 14638  	//
 14639  	// AccountId is a required field
 14640  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 14641  
 14642  	// Object Lambda Access Point configuration document.
 14643  	//
 14644  	// Configuration is a required field
 14645  	Configuration *ObjectLambdaConfiguration `type:"structure" required:"true"`
 14646  
 14647  	// The name of the Object Lambda Access Point.
 14648  	//
 14649  	// Name is a required field
 14650  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
 14651  }
 14652  
 14653  // String returns the string representation.
 14654  //
 14655  // API parameter values that are decorated as "sensitive" in the API will not
 14656  // be included in the string output. The member name will be present, but the
 14657  // value will be replaced with "sensitive".
 14658  func (s PutAccessPointConfigurationForObjectLambdaInput) String() string {
 14659  	return awsutil.Prettify(s)
 14660  }
 14661  
 14662  // GoString returns the string representation.
 14663  //
 14664  // API parameter values that are decorated as "sensitive" in the API will not
 14665  // be included in the string output. The member name will be present, but the
 14666  // value will be replaced with "sensitive".
 14667  func (s PutAccessPointConfigurationForObjectLambdaInput) GoString() string {
 14668  	return s.String()
 14669  }
 14670  
 14671  // Validate inspects the fields of the type to determine if they are valid.
 14672  func (s *PutAccessPointConfigurationForObjectLambdaInput) Validate() error {
 14673  	invalidParams := request.ErrInvalidParams{Context: "PutAccessPointConfigurationForObjectLambdaInput"}
 14674  	if s.AccountId == nil {
 14675  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 14676  	}
 14677  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 14678  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 14679  	}
 14680  	if s.Configuration == nil {
 14681  		invalidParams.Add(request.NewErrParamRequired("Configuration"))
 14682  	}
 14683  	if s.Name == nil {
 14684  		invalidParams.Add(request.NewErrParamRequired("Name"))
 14685  	}
 14686  	if s.Name != nil && len(*s.Name) < 3 {
 14687  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
 14688  	}
 14689  	if s.Configuration != nil {
 14690  		if err := s.Configuration.Validate(); err != nil {
 14691  			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
 14692  		}
 14693  	}
 14694  
 14695  	if invalidParams.Len() > 0 {
 14696  		return invalidParams
 14697  	}
 14698  	return nil
 14699  }
 14700  
 14701  // SetAccountId sets the AccountId field's value.
 14702  func (s *PutAccessPointConfigurationForObjectLambdaInput) SetAccountId(v string) *PutAccessPointConfigurationForObjectLambdaInput {
 14703  	s.AccountId = &v
 14704  	return s
 14705  }
 14706  
 14707  // SetConfiguration sets the Configuration field's value.
 14708  func (s *PutAccessPointConfigurationForObjectLambdaInput) SetConfiguration(v *ObjectLambdaConfiguration) *PutAccessPointConfigurationForObjectLambdaInput {
 14709  	s.Configuration = v
 14710  	return s
 14711  }
 14712  
 14713  // SetName sets the Name field's value.
 14714  func (s *PutAccessPointConfigurationForObjectLambdaInput) SetName(v string) *PutAccessPointConfigurationForObjectLambdaInput {
 14715  	s.Name = &v
 14716  	return s
 14717  }
 14718  
 14719  func (s *PutAccessPointConfigurationForObjectLambdaInput) hostLabels() map[string]string {
 14720  	return map[string]string{
 14721  		"AccountId": aws.StringValue(s.AccountId),
 14722  	}
 14723  }
 14724  
 14725  type PutAccessPointConfigurationForObjectLambdaOutput struct {
 14726  	_ struct{} `type:"structure"`
 14727  }
 14728  
 14729  // String returns the string representation.
 14730  //
 14731  // API parameter values that are decorated as "sensitive" in the API will not
 14732  // be included in the string output. The member name will be present, but the
 14733  // value will be replaced with "sensitive".
 14734  func (s PutAccessPointConfigurationForObjectLambdaOutput) String() string {
 14735  	return awsutil.Prettify(s)
 14736  }
 14737  
 14738  // GoString returns the string representation.
 14739  //
 14740  // API parameter values that are decorated as "sensitive" in the API will not
 14741  // be included in the string output. The member name will be present, but the
 14742  // value will be replaced with "sensitive".
 14743  func (s PutAccessPointConfigurationForObjectLambdaOutput) GoString() string {
 14744  	return s.String()
 14745  }
 14746  
 14747  type PutAccessPointPolicyForObjectLambdaInput struct {
 14748  	_ struct{} `locationName:"PutAccessPointPolicyForObjectLambdaRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
 14749  
 14750  	// The account ID for the account that owns the specified Object Lambda Access
 14751  	// Point.
 14752  	//
 14753  	// AccountId is a required field
 14754  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 14755  
 14756  	// The name of the Object Lambda Access Point.
 14757  	//
 14758  	// Name is a required field
 14759  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
 14760  
 14761  	// Object Lambda Access Point resource policy document.
 14762  	//
 14763  	// Policy is a required field
 14764  	Policy *string `type:"string" required:"true"`
 14765  }
 14766  
 14767  // String returns the string representation.
 14768  //
 14769  // API parameter values that are decorated as "sensitive" in the API will not
 14770  // be included in the string output. The member name will be present, but the
 14771  // value will be replaced with "sensitive".
 14772  func (s PutAccessPointPolicyForObjectLambdaInput) String() string {
 14773  	return awsutil.Prettify(s)
 14774  }
 14775  
 14776  // GoString returns the string representation.
 14777  //
 14778  // API parameter values that are decorated as "sensitive" in the API will not
 14779  // be included in the string output. The member name will be present, but the
 14780  // value will be replaced with "sensitive".
 14781  func (s PutAccessPointPolicyForObjectLambdaInput) GoString() string {
 14782  	return s.String()
 14783  }
 14784  
 14785  // Validate inspects the fields of the type to determine if they are valid.
 14786  func (s *PutAccessPointPolicyForObjectLambdaInput) Validate() error {
 14787  	invalidParams := request.ErrInvalidParams{Context: "PutAccessPointPolicyForObjectLambdaInput"}
 14788  	if s.AccountId == nil {
 14789  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 14790  	}
 14791  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 14792  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 14793  	}
 14794  	if s.Name == nil {
 14795  		invalidParams.Add(request.NewErrParamRequired("Name"))
 14796  	}
 14797  	if s.Name != nil && len(*s.Name) < 3 {
 14798  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
 14799  	}
 14800  	if s.Policy == nil {
 14801  		invalidParams.Add(request.NewErrParamRequired("Policy"))
 14802  	}
 14803  
 14804  	if invalidParams.Len() > 0 {
 14805  		return invalidParams
 14806  	}
 14807  	return nil
 14808  }
 14809  
 14810  // SetAccountId sets the AccountId field's value.
 14811  func (s *PutAccessPointPolicyForObjectLambdaInput) SetAccountId(v string) *PutAccessPointPolicyForObjectLambdaInput {
 14812  	s.AccountId = &v
 14813  	return s
 14814  }
 14815  
 14816  // SetName sets the Name field's value.
 14817  func (s *PutAccessPointPolicyForObjectLambdaInput) SetName(v string) *PutAccessPointPolicyForObjectLambdaInput {
 14818  	s.Name = &v
 14819  	return s
 14820  }
 14821  
 14822  // SetPolicy sets the Policy field's value.
 14823  func (s *PutAccessPointPolicyForObjectLambdaInput) SetPolicy(v string) *PutAccessPointPolicyForObjectLambdaInput {
 14824  	s.Policy = &v
 14825  	return s
 14826  }
 14827  
 14828  func (s *PutAccessPointPolicyForObjectLambdaInput) hostLabels() map[string]string {
 14829  	return map[string]string{
 14830  		"AccountId": aws.StringValue(s.AccountId),
 14831  	}
 14832  }
 14833  
 14834  type PutAccessPointPolicyForObjectLambdaOutput struct {
 14835  	_ struct{} `type:"structure"`
 14836  }
 14837  
 14838  // String returns the string representation.
 14839  //
 14840  // API parameter values that are decorated as "sensitive" in the API will not
 14841  // be included in the string output. The member name will be present, but the
 14842  // value will be replaced with "sensitive".
 14843  func (s PutAccessPointPolicyForObjectLambdaOutput) String() string {
 14844  	return awsutil.Prettify(s)
 14845  }
 14846  
 14847  // GoString returns the string representation.
 14848  //
 14849  // API parameter values that are decorated as "sensitive" in the API will not
 14850  // be included in the string output. The member name will be present, but the
 14851  // value will be replaced with "sensitive".
 14852  func (s PutAccessPointPolicyForObjectLambdaOutput) GoString() string {
 14853  	return s.String()
 14854  }
 14855  
 14856  type PutAccessPointPolicyInput struct {
 14857  	_ struct{} `locationName:"PutAccessPointPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
 14858  
 14859  	// The Amazon Web Services account ID for owner of the bucket associated with
 14860  	// the specified access point.
 14861  	//
 14862  	// AccountId is a required field
 14863  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 14864  
 14865  	// The name of the access point that you want to associate with the specified
 14866  	// policy.
 14867  	//
 14868  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
 14869  	// must specify the name and the x-amz-outpost-id as well.
 14870  	//
 14871  	// For using this parameter with S3 on Outposts with the Amazon Web Services
 14872  	// SDK and CLI, you must specify the ARN of the access point accessed in the
 14873  	// format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>.
 14874  	// For example, to access the access point reports-ap through outpost my-outpost
 14875  	// owned by account 123456789012 in Region us-west-2, use the URL encoding of
 14876  	// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap.
 14877  	// The value must be URL encoded.
 14878  	//
 14879  	// Name is a required field
 14880  	Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
 14881  
 14882  	// The policy that you want to apply to the specified access point. For more
 14883  	// information about access point policies, see Managing data access with Amazon
 14884  	// S3 access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)
 14885  	// in the Amazon S3 User Guide.
 14886  	//
 14887  	// Policy is a required field
 14888  	Policy *string `type:"string" required:"true"`
 14889  }
 14890  
 14891  // String returns the string representation.
 14892  //
 14893  // API parameter values that are decorated as "sensitive" in the API will not
 14894  // be included in the string output. The member name will be present, but the
 14895  // value will be replaced with "sensitive".
 14896  func (s PutAccessPointPolicyInput) String() string {
 14897  	return awsutil.Prettify(s)
 14898  }
 14899  
 14900  // GoString returns the string representation.
 14901  //
 14902  // API parameter values that are decorated as "sensitive" in the API will not
 14903  // be included in the string output. The member name will be present, but the
 14904  // value will be replaced with "sensitive".
 14905  func (s PutAccessPointPolicyInput) GoString() string {
 14906  	return s.String()
 14907  }
 14908  
 14909  // Validate inspects the fields of the type to determine if they are valid.
 14910  func (s *PutAccessPointPolicyInput) Validate() error {
 14911  	invalidParams := request.ErrInvalidParams{Context: "PutAccessPointPolicyInput"}
 14912  	if s.AccountId == nil {
 14913  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 14914  	}
 14915  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 14916  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 14917  	}
 14918  	if s.Name == nil {
 14919  		invalidParams.Add(request.NewErrParamRequired("Name"))
 14920  	}
 14921  	if s.Name != nil && len(*s.Name) < 3 {
 14922  		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
 14923  	}
 14924  	if s.Policy == nil {
 14925  		invalidParams.Add(request.NewErrParamRequired("Policy"))
 14926  	}
 14927  
 14928  	if invalidParams.Len() > 0 {
 14929  		return invalidParams
 14930  	}
 14931  	return nil
 14932  }
 14933  
 14934  // SetAccountId sets the AccountId field's value.
 14935  func (s *PutAccessPointPolicyInput) SetAccountId(v string) *PutAccessPointPolicyInput {
 14936  	s.AccountId = &v
 14937  	return s
 14938  }
 14939  
 14940  // SetName sets the Name field's value.
 14941  func (s *PutAccessPointPolicyInput) SetName(v string) *PutAccessPointPolicyInput {
 14942  	s.Name = &v
 14943  	return s
 14944  }
 14945  
 14946  // SetPolicy sets the Policy field's value.
 14947  func (s *PutAccessPointPolicyInput) SetPolicy(v string) *PutAccessPointPolicyInput {
 14948  	s.Policy = &v
 14949  	return s
 14950  }
 14951  
 14952  func (s *PutAccessPointPolicyInput) hostLabels() map[string]string {
 14953  	return map[string]string{
 14954  		"AccountId": aws.StringValue(s.AccountId),
 14955  	}
 14956  }
 14957  
 14958  func (s *PutAccessPointPolicyInput) getEndpointARN() (arn.Resource, error) {
 14959  	if s.Name == nil {
 14960  		return nil, fmt.Errorf("member Name is nil")
 14961  	}
 14962  	return parseEndpointARN(*s.Name)
 14963  }
 14964  
 14965  func (s *PutAccessPointPolicyInput) hasEndpointARN() bool {
 14966  	if s.Name == nil {
 14967  		return false
 14968  	}
 14969  	return arn.IsARN(*s.Name)
 14970  }
 14971  
 14972  // updateArnableField updates the value of the input field that
 14973  // takes an ARN as an input. This method is useful to backfill
 14974  // the parsed resource name from ARN into the input member.
 14975  // It returns a pointer to a modified copy of input and an error.
 14976  // Note that original input is not modified.
 14977  func (s PutAccessPointPolicyInput) updateArnableField(v string) (interface{}, error) {
 14978  	if s.Name == nil {
 14979  		return nil, fmt.Errorf("member Name is nil")
 14980  	}
 14981  	s.Name = aws.String(v)
 14982  	return &s, nil
 14983  }
 14984  
 14985  // updateAccountID returns a pointer to a modified copy of input,
 14986  // if account id is not provided, we update the account id in modified input
 14987  // if account id is provided, but doesn't match with the one in ARN, we throw an error
 14988  // if account id is not updated, we return nil. Note that original input is not modified.
 14989  func (s PutAccessPointPolicyInput) updateAccountID(accountId string) (interface{}, error) {
 14990  	if s.AccountId == nil {
 14991  		s.AccountId = aws.String(accountId)
 14992  		return &s, nil
 14993  	} else if *s.AccountId != accountId {
 14994  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
 14995  	}
 14996  	return nil, nil
 14997  }
 14998  
 14999  type PutAccessPointPolicyOutput struct {
 15000  	_ struct{} `type:"structure"`
 15001  }
 15002  
 15003  // String returns the string representation.
 15004  //
 15005  // API parameter values that are decorated as "sensitive" in the API will not
 15006  // be included in the string output. The member name will be present, but the
 15007  // value will be replaced with "sensitive".
 15008  func (s PutAccessPointPolicyOutput) String() string {
 15009  	return awsutil.Prettify(s)
 15010  }
 15011  
 15012  // GoString returns the string representation.
 15013  //
 15014  // API parameter values that are decorated as "sensitive" in the API will not
 15015  // be included in the string output. The member name will be present, but the
 15016  // value will be replaced with "sensitive".
 15017  func (s PutAccessPointPolicyOutput) GoString() string {
 15018  	return s.String()
 15019  }
 15020  
 15021  type PutBucketLifecycleConfigurationInput struct {
 15022  	_ struct{} `locationName:"PutBucketLifecycleConfigurationRequest" type:"structure" payload:"LifecycleConfiguration"`
 15023  
 15024  	// The Amazon Web Services account ID of the Outposts bucket.
 15025  	//
 15026  	// AccountId is a required field
 15027  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 15028  
 15029  	// The name of the bucket for which to set the configuration.
 15030  	//
 15031  	// Bucket is a required field
 15032  	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
 15033  
 15034  	// Container for lifecycle rules. You can add as many as 1,000 rules.
 15035  	LifecycleConfiguration *LifecycleConfiguration `locationName:"LifecycleConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
 15036  }
 15037  
 15038  // String returns the string representation.
 15039  //
 15040  // API parameter values that are decorated as "sensitive" in the API will not
 15041  // be included in the string output. The member name will be present, but the
 15042  // value will be replaced with "sensitive".
 15043  func (s PutBucketLifecycleConfigurationInput) String() string {
 15044  	return awsutil.Prettify(s)
 15045  }
 15046  
 15047  // GoString returns the string representation.
 15048  //
 15049  // API parameter values that are decorated as "sensitive" in the API will not
 15050  // be included in the string output. The member name will be present, but the
 15051  // value will be replaced with "sensitive".
 15052  func (s PutBucketLifecycleConfigurationInput) GoString() string {
 15053  	return s.String()
 15054  }
 15055  
 15056  // Validate inspects the fields of the type to determine if they are valid.
 15057  func (s *PutBucketLifecycleConfigurationInput) Validate() error {
 15058  	invalidParams := request.ErrInvalidParams{Context: "PutBucketLifecycleConfigurationInput"}
 15059  	if s.AccountId == nil {
 15060  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 15061  	}
 15062  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 15063  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 15064  	}
 15065  	if s.Bucket == nil {
 15066  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
 15067  	}
 15068  	if s.Bucket != nil && len(*s.Bucket) < 3 {
 15069  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
 15070  	}
 15071  	if s.LifecycleConfiguration != nil {
 15072  		if err := s.LifecycleConfiguration.Validate(); err != nil {
 15073  			invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams))
 15074  		}
 15075  	}
 15076  
 15077  	if invalidParams.Len() > 0 {
 15078  		return invalidParams
 15079  	}
 15080  	return nil
 15081  }
 15082  
 15083  // SetAccountId sets the AccountId field's value.
 15084  func (s *PutBucketLifecycleConfigurationInput) SetAccountId(v string) *PutBucketLifecycleConfigurationInput {
 15085  	s.AccountId = &v
 15086  	return s
 15087  }
 15088  
 15089  // SetBucket sets the Bucket field's value.
 15090  func (s *PutBucketLifecycleConfigurationInput) SetBucket(v string) *PutBucketLifecycleConfigurationInput {
 15091  	s.Bucket = &v
 15092  	return s
 15093  }
 15094  
 15095  // SetLifecycleConfiguration sets the LifecycleConfiguration field's value.
 15096  func (s *PutBucketLifecycleConfigurationInput) SetLifecycleConfiguration(v *LifecycleConfiguration) *PutBucketLifecycleConfigurationInput {
 15097  	s.LifecycleConfiguration = v
 15098  	return s
 15099  }
 15100  
 15101  func (s *PutBucketLifecycleConfigurationInput) hostLabels() map[string]string {
 15102  	return map[string]string{
 15103  		"AccountId": aws.StringValue(s.AccountId),
 15104  	}
 15105  }
 15106  
 15107  func (s *PutBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) {
 15108  	if s.Bucket == nil {
 15109  		return nil, fmt.Errorf("member Bucket is nil")
 15110  	}
 15111  	return parseEndpointARN(*s.Bucket)
 15112  }
 15113  
 15114  func (s *PutBucketLifecycleConfigurationInput) hasEndpointARN() bool {
 15115  	if s.Bucket == nil {
 15116  		return false
 15117  	}
 15118  	return arn.IsARN(*s.Bucket)
 15119  }
 15120  
 15121  // updateArnableField updates the value of the input field that
 15122  // takes an ARN as an input. This method is useful to backfill
 15123  // the parsed resource name from ARN into the input member.
 15124  // It returns a pointer to a modified copy of input and an error.
 15125  // Note that original input is not modified.
 15126  func (s PutBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) {
 15127  	if s.Bucket == nil {
 15128  		return nil, fmt.Errorf("member Bucket is nil")
 15129  	}
 15130  	s.Bucket = aws.String(v)
 15131  	return &s, nil
 15132  }
 15133  
 15134  // updateAccountID returns a pointer to a modified copy of input,
 15135  // if account id is not provided, we update the account id in modified input
 15136  // if account id is provided, but doesn't match with the one in ARN, we throw an error
 15137  // if account id is not updated, we return nil. Note that original input is not modified.
 15138  func (s PutBucketLifecycleConfigurationInput) updateAccountID(accountId string) (interface{}, error) {
 15139  	if s.AccountId == nil {
 15140  		s.AccountId = aws.String(accountId)
 15141  		return &s, nil
 15142  	} else if *s.AccountId != accountId {
 15143  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
 15144  	}
 15145  	return nil, nil
 15146  }
 15147  
 15148  type PutBucketLifecycleConfigurationOutput struct {
 15149  	_ struct{} `type:"structure"`
 15150  }
 15151  
 15152  // String returns the string representation.
 15153  //
 15154  // API parameter values that are decorated as "sensitive" in the API will not
 15155  // be included in the string output. The member name will be present, but the
 15156  // value will be replaced with "sensitive".
 15157  func (s PutBucketLifecycleConfigurationOutput) String() string {
 15158  	return awsutil.Prettify(s)
 15159  }
 15160  
 15161  // GoString returns the string representation.
 15162  //
 15163  // API parameter values that are decorated as "sensitive" in the API will not
 15164  // be included in the string output. The member name will be present, but the
 15165  // value will be replaced with "sensitive".
 15166  func (s PutBucketLifecycleConfigurationOutput) GoString() string {
 15167  	return s.String()
 15168  }
 15169  
 15170  type PutBucketPolicyInput struct {
 15171  	_ struct{} `locationName:"PutBucketPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
 15172  
 15173  	// The Amazon Web Services account ID of the Outposts bucket.
 15174  	//
 15175  	// AccountId is a required field
 15176  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 15177  
 15178  	// Specifies the bucket.
 15179  	//
 15180  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
 15181  	// must specify the name and the x-amz-outpost-id as well.
 15182  	//
 15183  	// For using this parameter with S3 on Outposts with the Amazon Web Services
 15184  	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
 15185  	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
 15186  	// For example, to access the bucket reports through outpost my-outpost owned
 15187  	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
 15188  	// The value must be URL encoded.
 15189  	//
 15190  	// Bucket is a required field
 15191  	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
 15192  
 15193  	// Set this parameter to true to confirm that you want to remove your permissions
 15194  	// to change this bucket policy in the future.
 15195  	//
 15196  	// This is not supported by Amazon S3 on Outposts buckets.
 15197  	ConfirmRemoveSelfBucketAccess *bool `location:"header" locationName:"x-amz-confirm-remove-self-bucket-access" type:"boolean"`
 15198  
 15199  	// The bucket policy as a JSON document.
 15200  	//
 15201  	// Policy is a required field
 15202  	Policy *string `type:"string" required:"true"`
 15203  }
 15204  
 15205  // String returns the string representation.
 15206  //
 15207  // API parameter values that are decorated as "sensitive" in the API will not
 15208  // be included in the string output. The member name will be present, but the
 15209  // value will be replaced with "sensitive".
 15210  func (s PutBucketPolicyInput) String() string {
 15211  	return awsutil.Prettify(s)
 15212  }
 15213  
 15214  // GoString returns the string representation.
 15215  //
 15216  // API parameter values that are decorated as "sensitive" in the API will not
 15217  // be included in the string output. The member name will be present, but the
 15218  // value will be replaced with "sensitive".
 15219  func (s PutBucketPolicyInput) GoString() string {
 15220  	return s.String()
 15221  }
 15222  
 15223  // Validate inspects the fields of the type to determine if they are valid.
 15224  func (s *PutBucketPolicyInput) Validate() error {
 15225  	invalidParams := request.ErrInvalidParams{Context: "PutBucketPolicyInput"}
 15226  	if s.AccountId == nil {
 15227  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 15228  	}
 15229  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 15230  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 15231  	}
 15232  	if s.Bucket == nil {
 15233  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
 15234  	}
 15235  	if s.Bucket != nil && len(*s.Bucket) < 3 {
 15236  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
 15237  	}
 15238  	if s.Policy == nil {
 15239  		invalidParams.Add(request.NewErrParamRequired("Policy"))
 15240  	}
 15241  
 15242  	if invalidParams.Len() > 0 {
 15243  		return invalidParams
 15244  	}
 15245  	return nil
 15246  }
 15247  
 15248  // SetAccountId sets the AccountId field's value.
 15249  func (s *PutBucketPolicyInput) SetAccountId(v string) *PutBucketPolicyInput {
 15250  	s.AccountId = &v
 15251  	return s
 15252  }
 15253  
 15254  // SetBucket sets the Bucket field's value.
 15255  func (s *PutBucketPolicyInput) SetBucket(v string) *PutBucketPolicyInput {
 15256  	s.Bucket = &v
 15257  	return s
 15258  }
 15259  
 15260  // SetConfirmRemoveSelfBucketAccess sets the ConfirmRemoveSelfBucketAccess field's value.
 15261  func (s *PutBucketPolicyInput) SetConfirmRemoveSelfBucketAccess(v bool) *PutBucketPolicyInput {
 15262  	s.ConfirmRemoveSelfBucketAccess = &v
 15263  	return s
 15264  }
 15265  
 15266  // SetPolicy sets the Policy field's value.
 15267  func (s *PutBucketPolicyInput) SetPolicy(v string) *PutBucketPolicyInput {
 15268  	s.Policy = &v
 15269  	return s
 15270  }
 15271  
 15272  func (s *PutBucketPolicyInput) hostLabels() map[string]string {
 15273  	return map[string]string{
 15274  		"AccountId": aws.StringValue(s.AccountId),
 15275  	}
 15276  }
 15277  
 15278  func (s *PutBucketPolicyInput) getEndpointARN() (arn.Resource, error) {
 15279  	if s.Bucket == nil {
 15280  		return nil, fmt.Errorf("member Bucket is nil")
 15281  	}
 15282  	return parseEndpointARN(*s.Bucket)
 15283  }
 15284  
 15285  func (s *PutBucketPolicyInput) hasEndpointARN() bool {
 15286  	if s.Bucket == nil {
 15287  		return false
 15288  	}
 15289  	return arn.IsARN(*s.Bucket)
 15290  }
 15291  
 15292  // updateArnableField updates the value of the input field that
 15293  // takes an ARN as an input. This method is useful to backfill
 15294  // the parsed resource name from ARN into the input member.
 15295  // It returns a pointer to a modified copy of input and an error.
 15296  // Note that original input is not modified.
 15297  func (s PutBucketPolicyInput) updateArnableField(v string) (interface{}, error) {
 15298  	if s.Bucket == nil {
 15299  		return nil, fmt.Errorf("member Bucket is nil")
 15300  	}
 15301  	s.Bucket = aws.String(v)
 15302  	return &s, nil
 15303  }
 15304  
 15305  // updateAccountID returns a pointer to a modified copy of input,
 15306  // if account id is not provided, we update the account id in modified input
 15307  // if account id is provided, but doesn't match with the one in ARN, we throw an error
 15308  // if account id is not updated, we return nil. Note that original input is not modified.
 15309  func (s PutBucketPolicyInput) updateAccountID(accountId string) (interface{}, error) {
 15310  	if s.AccountId == nil {
 15311  		s.AccountId = aws.String(accountId)
 15312  		return &s, nil
 15313  	} else if *s.AccountId != accountId {
 15314  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
 15315  	}
 15316  	return nil, nil
 15317  }
 15318  
 15319  type PutBucketPolicyOutput struct {
 15320  	_ struct{} `type:"structure"`
 15321  }
 15322  
 15323  // String returns the string representation.
 15324  //
 15325  // API parameter values that are decorated as "sensitive" in the API will not
 15326  // be included in the string output. The member name will be present, but the
 15327  // value will be replaced with "sensitive".
 15328  func (s PutBucketPolicyOutput) String() string {
 15329  	return awsutil.Prettify(s)
 15330  }
 15331  
 15332  // GoString returns the string representation.
 15333  //
 15334  // API parameter values that are decorated as "sensitive" in the API will not
 15335  // be included in the string output. The member name will be present, but the
 15336  // value will be replaced with "sensitive".
 15337  func (s PutBucketPolicyOutput) GoString() string {
 15338  	return s.String()
 15339  }
 15340  
 15341  type PutBucketTaggingInput struct {
 15342  	_ struct{} `locationName:"PutBucketTaggingRequest" type:"structure" payload:"Tagging"`
 15343  
 15344  	// The Amazon Web Services account ID of the Outposts bucket.
 15345  	//
 15346  	// AccountId is a required field
 15347  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 15348  
 15349  	// The Amazon Resource Name (ARN) of the bucket.
 15350  	//
 15351  	// For using this parameter with Amazon S3 on Outposts with the REST API, you
 15352  	// must specify the name and the x-amz-outpost-id as well.
 15353  	//
 15354  	// For using this parameter with S3 on Outposts with the Amazon Web Services
 15355  	// SDK and CLI, you must specify the ARN of the bucket accessed in the format
 15356  	// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
 15357  	// For example, to access the bucket reports through outpost my-outpost owned
 15358  	// by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
 15359  	// The value must be URL encoded.
 15360  	//
 15361  	// Bucket is a required field
 15362  	Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"`
 15363  
 15364  	// Tagging is a required field
 15365  	Tagging *Tagging `locationName:"Tagging" type:"structure" required:"true" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
 15366  }
 15367  
 15368  // String returns the string representation.
 15369  //
 15370  // API parameter values that are decorated as "sensitive" in the API will not
 15371  // be included in the string output. The member name will be present, but the
 15372  // value will be replaced with "sensitive".
 15373  func (s PutBucketTaggingInput) String() string {
 15374  	return awsutil.Prettify(s)
 15375  }
 15376  
 15377  // GoString returns the string representation.
 15378  //
 15379  // API parameter values that are decorated as "sensitive" in the API will not
 15380  // be included in the string output. The member name will be present, but the
 15381  // value will be replaced with "sensitive".
 15382  func (s PutBucketTaggingInput) GoString() string {
 15383  	return s.String()
 15384  }
 15385  
 15386  // Validate inspects the fields of the type to determine if they are valid.
 15387  func (s *PutBucketTaggingInput) Validate() error {
 15388  	invalidParams := request.ErrInvalidParams{Context: "PutBucketTaggingInput"}
 15389  	if s.AccountId == nil {
 15390  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 15391  	}
 15392  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 15393  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 15394  	}
 15395  	if s.Bucket == nil {
 15396  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
 15397  	}
 15398  	if s.Bucket != nil && len(*s.Bucket) < 3 {
 15399  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
 15400  	}
 15401  	if s.Tagging == nil {
 15402  		invalidParams.Add(request.NewErrParamRequired("Tagging"))
 15403  	}
 15404  	if s.Tagging != nil {
 15405  		if err := s.Tagging.Validate(); err != nil {
 15406  			invalidParams.AddNested("Tagging", err.(request.ErrInvalidParams))
 15407  		}
 15408  	}
 15409  
 15410  	if invalidParams.Len() > 0 {
 15411  		return invalidParams
 15412  	}
 15413  	return nil
 15414  }
 15415  
 15416  // SetAccountId sets the AccountId field's value.
 15417  func (s *PutBucketTaggingInput) SetAccountId(v string) *PutBucketTaggingInput {
 15418  	s.AccountId = &v
 15419  	return s
 15420  }
 15421  
 15422  // SetBucket sets the Bucket field's value.
 15423  func (s *PutBucketTaggingInput) SetBucket(v string) *PutBucketTaggingInput {
 15424  	s.Bucket = &v
 15425  	return s
 15426  }
 15427  
 15428  // SetTagging sets the Tagging field's value.
 15429  func (s *PutBucketTaggingInput) SetTagging(v *Tagging) *PutBucketTaggingInput {
 15430  	s.Tagging = v
 15431  	return s
 15432  }
 15433  
 15434  func (s *PutBucketTaggingInput) hostLabels() map[string]string {
 15435  	return map[string]string{
 15436  		"AccountId": aws.StringValue(s.AccountId),
 15437  	}
 15438  }
 15439  
 15440  func (s *PutBucketTaggingInput) getEndpointARN() (arn.Resource, error) {
 15441  	if s.Bucket == nil {
 15442  		return nil, fmt.Errorf("member Bucket is nil")
 15443  	}
 15444  	return parseEndpointARN(*s.Bucket)
 15445  }
 15446  
 15447  func (s *PutBucketTaggingInput) hasEndpointARN() bool {
 15448  	if s.Bucket == nil {
 15449  		return false
 15450  	}
 15451  	return arn.IsARN(*s.Bucket)
 15452  }
 15453  
 15454  // updateArnableField updates the value of the input field that
 15455  // takes an ARN as an input. This method is useful to backfill
 15456  // the parsed resource name from ARN into the input member.
 15457  // It returns a pointer to a modified copy of input and an error.
 15458  // Note that original input is not modified.
 15459  func (s PutBucketTaggingInput) updateArnableField(v string) (interface{}, error) {
 15460  	if s.Bucket == nil {
 15461  		return nil, fmt.Errorf("member Bucket is nil")
 15462  	}
 15463  	s.Bucket = aws.String(v)
 15464  	return &s, nil
 15465  }
 15466  
 15467  // updateAccountID returns a pointer to a modified copy of input,
 15468  // if account id is not provided, we update the account id in modified input
 15469  // if account id is provided, but doesn't match with the one in ARN, we throw an error
 15470  // if account id is not updated, we return nil. Note that original input is not modified.
 15471  func (s PutBucketTaggingInput) updateAccountID(accountId string) (interface{}, error) {
 15472  	if s.AccountId == nil {
 15473  		s.AccountId = aws.String(accountId)
 15474  		return &s, nil
 15475  	} else if *s.AccountId != accountId {
 15476  		return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
 15477  	}
 15478  	return nil, nil
 15479  }
 15480  
 15481  type PutBucketTaggingOutput struct {
 15482  	_ struct{} `type:"structure"`
 15483  }
 15484  
 15485  // String returns the string representation.
 15486  //
 15487  // API parameter values that are decorated as "sensitive" in the API will not
 15488  // be included in the string output. The member name will be present, but the
 15489  // value will be replaced with "sensitive".
 15490  func (s PutBucketTaggingOutput) String() string {
 15491  	return awsutil.Prettify(s)
 15492  }
 15493  
 15494  // GoString returns the string representation.
 15495  //
 15496  // API parameter values that are decorated as "sensitive" in the API will not
 15497  // be included in the string output. The member name will be present, but the
 15498  // value will be replaced with "sensitive".
 15499  func (s PutBucketTaggingOutput) GoString() string {
 15500  	return s.String()
 15501  }
 15502  
 15503  type PutJobTaggingInput struct {
 15504  	_ struct{} `locationName:"PutJobTaggingRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
 15505  
 15506  	// The Amazon Web Services account ID associated with the S3 Batch Operations
 15507  	// job.
 15508  	//
 15509  	// AccountId is a required field
 15510  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 15511  
 15512  	// The ID for the S3 Batch Operations job whose tags you want to replace.
 15513  	//
 15514  	// JobId is a required field
 15515  	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
 15516  
 15517  	// The set of tags to associate with the S3 Batch Operations job.
 15518  	//
 15519  	// Tags is a required field
 15520  	Tags []*S3Tag `type:"list" required:"true"`
 15521  }
 15522  
 15523  // String returns the string representation.
 15524  //
 15525  // API parameter values that are decorated as "sensitive" in the API will not
 15526  // be included in the string output. The member name will be present, but the
 15527  // value will be replaced with "sensitive".
 15528  func (s PutJobTaggingInput) String() string {
 15529  	return awsutil.Prettify(s)
 15530  }
 15531  
 15532  // GoString returns the string representation.
 15533  //
 15534  // API parameter values that are decorated as "sensitive" in the API will not
 15535  // be included in the string output. The member name will be present, but the
 15536  // value will be replaced with "sensitive".
 15537  func (s PutJobTaggingInput) GoString() string {
 15538  	return s.String()
 15539  }
 15540  
 15541  // Validate inspects the fields of the type to determine if they are valid.
 15542  func (s *PutJobTaggingInput) Validate() error {
 15543  	invalidParams := request.ErrInvalidParams{Context: "PutJobTaggingInput"}
 15544  	if s.AccountId == nil {
 15545  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 15546  	}
 15547  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 15548  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 15549  	}
 15550  	if s.JobId == nil {
 15551  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 15552  	}
 15553  	if s.JobId != nil && len(*s.JobId) < 5 {
 15554  		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
 15555  	}
 15556  	if s.Tags == nil {
 15557  		invalidParams.Add(request.NewErrParamRequired("Tags"))
 15558  	}
 15559  	if s.Tags != nil {
 15560  		for i, v := range s.Tags {
 15561  			if v == nil {
 15562  				continue
 15563  			}
 15564  			if err := v.Validate(); err != nil {
 15565  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 15566  			}
 15567  		}
 15568  	}
 15569  
 15570  	if invalidParams.Len() > 0 {
 15571  		return invalidParams
 15572  	}
 15573  	return nil
 15574  }
 15575  
 15576  // SetAccountId sets the AccountId field's value.
 15577  func (s *PutJobTaggingInput) SetAccountId(v string) *PutJobTaggingInput {
 15578  	s.AccountId = &v
 15579  	return s
 15580  }
 15581  
 15582  // SetJobId sets the JobId field's value.
 15583  func (s *PutJobTaggingInput) SetJobId(v string) *PutJobTaggingInput {
 15584  	s.JobId = &v
 15585  	return s
 15586  }
 15587  
 15588  // SetTags sets the Tags field's value.
 15589  func (s *PutJobTaggingInput) SetTags(v []*S3Tag) *PutJobTaggingInput {
 15590  	s.Tags = v
 15591  	return s
 15592  }
 15593  
 15594  func (s *PutJobTaggingInput) hostLabels() map[string]string {
 15595  	return map[string]string{
 15596  		"AccountId": aws.StringValue(s.AccountId),
 15597  	}
 15598  }
 15599  
 15600  type PutJobTaggingOutput struct {
 15601  	_ struct{} `type:"structure"`
 15602  }
 15603  
 15604  // String returns the string representation.
 15605  //
 15606  // API parameter values that are decorated as "sensitive" in the API will not
 15607  // be included in the string output. The member name will be present, but the
 15608  // value will be replaced with "sensitive".
 15609  func (s PutJobTaggingOutput) String() string {
 15610  	return awsutil.Prettify(s)
 15611  }
 15612  
 15613  // GoString returns the string representation.
 15614  //
 15615  // API parameter values that are decorated as "sensitive" in the API will not
 15616  // be included in the string output. The member name will be present, but the
 15617  // value will be replaced with "sensitive".
 15618  func (s PutJobTaggingOutput) GoString() string {
 15619  	return s.String()
 15620  }
 15621  
 15622  type PutMultiRegionAccessPointPolicyInput struct {
 15623  	_ struct{} `locationName:"PutMultiRegionAccessPointPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
 15624  
 15625  	// The Amazon Web Services account ID for the owner of the Multi-Region Access
 15626  	// Point.
 15627  	//
 15628  	// AccountId is a required field
 15629  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 15630  
 15631  	// An idempotency token used to identify the request and guarantee that requests
 15632  	// are unique.
 15633  	ClientToken *string `type:"string" idempotencyToken:"true"`
 15634  
 15635  	// A container element containing the details of the policy for the Multi-Region
 15636  	// Access Point.
 15637  	//
 15638  	// Details is a required field
 15639  	Details *PutMultiRegionAccessPointPolicyInput_ `type:"structure" required:"true"`
 15640  }
 15641  
 15642  // String returns the string representation.
 15643  //
 15644  // API parameter values that are decorated as "sensitive" in the API will not
 15645  // be included in the string output. The member name will be present, but the
 15646  // value will be replaced with "sensitive".
 15647  func (s PutMultiRegionAccessPointPolicyInput) String() string {
 15648  	return awsutil.Prettify(s)
 15649  }
 15650  
 15651  // GoString returns the string representation.
 15652  //
 15653  // API parameter values that are decorated as "sensitive" in the API will not
 15654  // be included in the string output. The member name will be present, but the
 15655  // value will be replaced with "sensitive".
 15656  func (s PutMultiRegionAccessPointPolicyInput) GoString() string {
 15657  	return s.String()
 15658  }
 15659  
 15660  // Validate inspects the fields of the type to determine if they are valid.
 15661  func (s *PutMultiRegionAccessPointPolicyInput) Validate() error {
 15662  	invalidParams := request.ErrInvalidParams{Context: "PutMultiRegionAccessPointPolicyInput"}
 15663  	if s.AccountId == nil {
 15664  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 15665  	}
 15666  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 15667  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 15668  	}
 15669  	if s.Details == nil {
 15670  		invalidParams.Add(request.NewErrParamRequired("Details"))
 15671  	}
 15672  	if s.Details != nil {
 15673  		if err := s.Details.Validate(); err != nil {
 15674  			invalidParams.AddNested("Details", err.(request.ErrInvalidParams))
 15675  		}
 15676  	}
 15677  
 15678  	if invalidParams.Len() > 0 {
 15679  		return invalidParams
 15680  	}
 15681  	return nil
 15682  }
 15683  
 15684  // SetAccountId sets the AccountId field's value.
 15685  func (s *PutMultiRegionAccessPointPolicyInput) SetAccountId(v string) *PutMultiRegionAccessPointPolicyInput {
 15686  	s.AccountId = &v
 15687  	return s
 15688  }
 15689  
 15690  // SetClientToken sets the ClientToken field's value.
 15691  func (s *PutMultiRegionAccessPointPolicyInput) SetClientToken(v string) *PutMultiRegionAccessPointPolicyInput {
 15692  	s.ClientToken = &v
 15693  	return s
 15694  }
 15695  
 15696  // SetDetails sets the Details field's value.
 15697  func (s *PutMultiRegionAccessPointPolicyInput) SetDetails(v *PutMultiRegionAccessPointPolicyInput_) *PutMultiRegionAccessPointPolicyInput {
 15698  	s.Details = v
 15699  	return s
 15700  }
 15701  
 15702  func (s *PutMultiRegionAccessPointPolicyInput) hostLabels() map[string]string {
 15703  	return map[string]string{
 15704  		"AccountId": aws.StringValue(s.AccountId),
 15705  	}
 15706  }
 15707  
 15708  // A container for the information associated with a PutMultiRegionAccessPoint
 15709  // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPoint.html)
 15710  // request.
 15711  type PutMultiRegionAccessPointPolicyInput_ struct {
 15712  	_ struct{} `type:"structure"`
 15713  
 15714  	// The name of the Multi-Region Access Point associated with the request.
 15715  	//
 15716  	// Name is a required field
 15717  	Name *string `type:"string" required:"true"`
 15718  
 15719  	// The policy details for the PutMultiRegionAccessPoint request.
 15720  	//
 15721  	// Policy is a required field
 15722  	Policy *string `type:"string" required:"true"`
 15723  }
 15724  
 15725  // String returns the string representation.
 15726  //
 15727  // API parameter values that are decorated as "sensitive" in the API will not
 15728  // be included in the string output. The member name will be present, but the
 15729  // value will be replaced with "sensitive".
 15730  func (s PutMultiRegionAccessPointPolicyInput_) String() string {
 15731  	return awsutil.Prettify(s)
 15732  }
 15733  
 15734  // GoString returns the string representation.
 15735  //
 15736  // API parameter values that are decorated as "sensitive" in the API will not
 15737  // be included in the string output. The member name will be present, but the
 15738  // value will be replaced with "sensitive".
 15739  func (s PutMultiRegionAccessPointPolicyInput_) GoString() string {
 15740  	return s.String()
 15741  }
 15742  
 15743  // Validate inspects the fields of the type to determine if they are valid.
 15744  func (s *PutMultiRegionAccessPointPolicyInput_) Validate() error {
 15745  	invalidParams := request.ErrInvalidParams{Context: "PutMultiRegionAccessPointPolicyInput_"}
 15746  	if s.Name == nil {
 15747  		invalidParams.Add(request.NewErrParamRequired("Name"))
 15748  	}
 15749  	if s.Policy == nil {
 15750  		invalidParams.Add(request.NewErrParamRequired("Policy"))
 15751  	}
 15752  
 15753  	if invalidParams.Len() > 0 {
 15754  		return invalidParams
 15755  	}
 15756  	return nil
 15757  }
 15758  
 15759  // SetName sets the Name field's value.
 15760  func (s *PutMultiRegionAccessPointPolicyInput_) SetName(v string) *PutMultiRegionAccessPointPolicyInput_ {
 15761  	s.Name = &v
 15762  	return s
 15763  }
 15764  
 15765  // SetPolicy sets the Policy field's value.
 15766  func (s *PutMultiRegionAccessPointPolicyInput_) SetPolicy(v string) *PutMultiRegionAccessPointPolicyInput_ {
 15767  	s.Policy = &v
 15768  	return s
 15769  }
 15770  
 15771  type PutMultiRegionAccessPointPolicyOutput struct {
 15772  	_ struct{} `type:"structure"`
 15773  
 15774  	// The request token associated with the request. You can use this token with
 15775  	// DescribeMultiRegionAccessPointOperation (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)
 15776  	// to determine the status of asynchronous requests.
 15777  	RequestTokenARN *string `min:"1" type:"string"`
 15778  }
 15779  
 15780  // String returns the string representation.
 15781  //
 15782  // API parameter values that are decorated as "sensitive" in the API will not
 15783  // be included in the string output. The member name will be present, but the
 15784  // value will be replaced with "sensitive".
 15785  func (s PutMultiRegionAccessPointPolicyOutput) String() string {
 15786  	return awsutil.Prettify(s)
 15787  }
 15788  
 15789  // GoString returns the string representation.
 15790  //
 15791  // API parameter values that are decorated as "sensitive" in the API will not
 15792  // be included in the string output. The member name will be present, but the
 15793  // value will be replaced with "sensitive".
 15794  func (s PutMultiRegionAccessPointPolicyOutput) GoString() string {
 15795  	return s.String()
 15796  }
 15797  
 15798  // SetRequestTokenARN sets the RequestTokenARN field's value.
 15799  func (s *PutMultiRegionAccessPointPolicyOutput) SetRequestTokenARN(v string) *PutMultiRegionAccessPointPolicyOutput {
 15800  	s.RequestTokenARN = &v
 15801  	return s
 15802  }
 15803  
 15804  type PutPublicAccessBlockInput struct {
 15805  	_ struct{} `locationName:"PutPublicAccessBlockRequest" type:"structure" payload:"PublicAccessBlockConfiguration"`
 15806  
 15807  	// The account ID for the Amazon Web Services account whose PublicAccessBlock
 15808  	// configuration you want to set.
 15809  	//
 15810  	// AccountId is a required field
 15811  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 15812  
 15813  	// The PublicAccessBlock configuration that you want to apply to the specified
 15814  	// Amazon Web Services account.
 15815  	//
 15816  	// PublicAccessBlockConfiguration is a required field
 15817  	PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `locationName:"PublicAccessBlockConfiguration" type:"structure" required:"true" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
 15818  }
 15819  
 15820  // String returns the string representation.
 15821  //
 15822  // API parameter values that are decorated as "sensitive" in the API will not
 15823  // be included in the string output. The member name will be present, but the
 15824  // value will be replaced with "sensitive".
 15825  func (s PutPublicAccessBlockInput) String() string {
 15826  	return awsutil.Prettify(s)
 15827  }
 15828  
 15829  // GoString returns the string representation.
 15830  //
 15831  // API parameter values that are decorated as "sensitive" in the API will not
 15832  // be included in the string output. The member name will be present, but the
 15833  // value will be replaced with "sensitive".
 15834  func (s PutPublicAccessBlockInput) GoString() string {
 15835  	return s.String()
 15836  }
 15837  
 15838  // Validate inspects the fields of the type to determine if they are valid.
 15839  func (s *PutPublicAccessBlockInput) Validate() error {
 15840  	invalidParams := request.ErrInvalidParams{Context: "PutPublicAccessBlockInput"}
 15841  	if s.AccountId == nil {
 15842  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 15843  	}
 15844  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 15845  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 15846  	}
 15847  	if s.PublicAccessBlockConfiguration == nil {
 15848  		invalidParams.Add(request.NewErrParamRequired("PublicAccessBlockConfiguration"))
 15849  	}
 15850  
 15851  	if invalidParams.Len() > 0 {
 15852  		return invalidParams
 15853  	}
 15854  	return nil
 15855  }
 15856  
 15857  // SetAccountId sets the AccountId field's value.
 15858  func (s *PutPublicAccessBlockInput) SetAccountId(v string) *PutPublicAccessBlockInput {
 15859  	s.AccountId = &v
 15860  	return s
 15861  }
 15862  
 15863  // SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
 15864  func (s *PutPublicAccessBlockInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *PutPublicAccessBlockInput {
 15865  	s.PublicAccessBlockConfiguration = v
 15866  	return s
 15867  }
 15868  
 15869  func (s *PutPublicAccessBlockInput) hostLabels() map[string]string {
 15870  	return map[string]string{
 15871  		"AccountId": aws.StringValue(s.AccountId),
 15872  	}
 15873  }
 15874  
 15875  type PutPublicAccessBlockOutput struct {
 15876  	_ struct{} `type:"structure"`
 15877  }
 15878  
 15879  // String returns the string representation.
 15880  //
 15881  // API parameter values that are decorated as "sensitive" in the API will not
 15882  // be included in the string output. The member name will be present, but the
 15883  // value will be replaced with "sensitive".
 15884  func (s PutPublicAccessBlockOutput) String() string {
 15885  	return awsutil.Prettify(s)
 15886  }
 15887  
 15888  // GoString returns the string representation.
 15889  //
 15890  // API parameter values that are decorated as "sensitive" in the API will not
 15891  // be included in the string output. The member name will be present, but the
 15892  // value will be replaced with "sensitive".
 15893  func (s PutPublicAccessBlockOutput) GoString() string {
 15894  	return s.String()
 15895  }
 15896  
 15897  type PutStorageLensConfigurationInput struct {
 15898  	_ struct{} `locationName:"PutStorageLensConfigurationRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
 15899  
 15900  	// The account ID of the requester.
 15901  	//
 15902  	// AccountId is a required field
 15903  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 15904  
 15905  	// The ID of the S3 Storage Lens configuration.
 15906  	//
 15907  	// ConfigId is a required field
 15908  	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
 15909  
 15910  	// The S3 Storage Lens configuration.
 15911  	//
 15912  	// StorageLensConfiguration is a required field
 15913  	StorageLensConfiguration *StorageLensConfiguration `type:"structure" required:"true"`
 15914  
 15915  	// The tag set of the S3 Storage Lens configuration.
 15916  	//
 15917  	// You can set up to a maximum of 50 tags.
 15918  	Tags []*StorageLensTag `locationNameList:"Tag" type:"list"`
 15919  }
 15920  
 15921  // String returns the string representation.
 15922  //
 15923  // API parameter values that are decorated as "sensitive" in the API will not
 15924  // be included in the string output. The member name will be present, but the
 15925  // value will be replaced with "sensitive".
 15926  func (s PutStorageLensConfigurationInput) String() string {
 15927  	return awsutil.Prettify(s)
 15928  }
 15929  
 15930  // GoString returns the string representation.
 15931  //
 15932  // API parameter values that are decorated as "sensitive" in the API will not
 15933  // be included in the string output. The member name will be present, but the
 15934  // value will be replaced with "sensitive".
 15935  func (s PutStorageLensConfigurationInput) GoString() string {
 15936  	return s.String()
 15937  }
 15938  
 15939  // Validate inspects the fields of the type to determine if they are valid.
 15940  func (s *PutStorageLensConfigurationInput) Validate() error {
 15941  	invalidParams := request.ErrInvalidParams{Context: "PutStorageLensConfigurationInput"}
 15942  	if s.AccountId == nil {
 15943  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 15944  	}
 15945  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 15946  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 15947  	}
 15948  	if s.ConfigId == nil {
 15949  		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
 15950  	}
 15951  	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
 15952  		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
 15953  	}
 15954  	if s.StorageLensConfiguration == nil {
 15955  		invalidParams.Add(request.NewErrParamRequired("StorageLensConfiguration"))
 15956  	}
 15957  	if s.StorageLensConfiguration != nil {
 15958  		if err := s.StorageLensConfiguration.Validate(); err != nil {
 15959  			invalidParams.AddNested("StorageLensConfiguration", err.(request.ErrInvalidParams))
 15960  		}
 15961  	}
 15962  	if s.Tags != nil {
 15963  		for i, v := range s.Tags {
 15964  			if v == nil {
 15965  				continue
 15966  			}
 15967  			if err := v.Validate(); err != nil {
 15968  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 15969  			}
 15970  		}
 15971  	}
 15972  
 15973  	if invalidParams.Len() > 0 {
 15974  		return invalidParams
 15975  	}
 15976  	return nil
 15977  }
 15978  
 15979  // SetAccountId sets the AccountId field's value.
 15980  func (s *PutStorageLensConfigurationInput) SetAccountId(v string) *PutStorageLensConfigurationInput {
 15981  	s.AccountId = &v
 15982  	return s
 15983  }
 15984  
 15985  // SetConfigId sets the ConfigId field's value.
 15986  func (s *PutStorageLensConfigurationInput) SetConfigId(v string) *PutStorageLensConfigurationInput {
 15987  	s.ConfigId = &v
 15988  	return s
 15989  }
 15990  
 15991  // SetStorageLensConfiguration sets the StorageLensConfiguration field's value.
 15992  func (s *PutStorageLensConfigurationInput) SetStorageLensConfiguration(v *StorageLensConfiguration) *PutStorageLensConfigurationInput {
 15993  	s.StorageLensConfiguration = v
 15994  	return s
 15995  }
 15996  
 15997  // SetTags sets the Tags field's value.
 15998  func (s *PutStorageLensConfigurationInput) SetTags(v []*StorageLensTag) *PutStorageLensConfigurationInput {
 15999  	s.Tags = v
 16000  	return s
 16001  }
 16002  
 16003  func (s *PutStorageLensConfigurationInput) hostLabels() map[string]string {
 16004  	return map[string]string{
 16005  		"AccountId": aws.StringValue(s.AccountId),
 16006  	}
 16007  }
 16008  
 16009  type PutStorageLensConfigurationOutput struct {
 16010  	_ struct{} `type:"structure"`
 16011  }
 16012  
 16013  // String returns the string representation.
 16014  //
 16015  // API parameter values that are decorated as "sensitive" in the API will not
 16016  // be included in the string output. The member name will be present, but the
 16017  // value will be replaced with "sensitive".
 16018  func (s PutStorageLensConfigurationOutput) String() string {
 16019  	return awsutil.Prettify(s)
 16020  }
 16021  
 16022  // GoString returns the string representation.
 16023  //
 16024  // API parameter values that are decorated as "sensitive" in the API will not
 16025  // be included in the string output. The member name will be present, but the
 16026  // value will be replaced with "sensitive".
 16027  func (s PutStorageLensConfigurationOutput) GoString() string {
 16028  	return s.String()
 16029  }
 16030  
 16031  type PutStorageLensConfigurationTaggingInput struct {
 16032  	_ struct{} `locationName:"PutStorageLensConfigurationTaggingRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"`
 16033  
 16034  	// The account ID of the requester.
 16035  	//
 16036  	// AccountId is a required field
 16037  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 16038  
 16039  	// The ID of the S3 Storage Lens configuration.
 16040  	//
 16041  	// ConfigId is a required field
 16042  	ConfigId *string `location:"uri" locationName:"storagelensid" min:"1" type:"string" required:"true"`
 16043  
 16044  	// The tag set of the S3 Storage Lens configuration.
 16045  	//
 16046  	// You can set up to a maximum of 50 tags.
 16047  	//
 16048  	// Tags is a required field
 16049  	Tags []*StorageLensTag `locationNameList:"Tag" type:"list" required:"true"`
 16050  }
 16051  
 16052  // String returns the string representation.
 16053  //
 16054  // API parameter values that are decorated as "sensitive" in the API will not
 16055  // be included in the string output. The member name will be present, but the
 16056  // value will be replaced with "sensitive".
 16057  func (s PutStorageLensConfigurationTaggingInput) String() string {
 16058  	return awsutil.Prettify(s)
 16059  }
 16060  
 16061  // GoString returns the string representation.
 16062  //
 16063  // API parameter values that are decorated as "sensitive" in the API will not
 16064  // be included in the string output. The member name will be present, but the
 16065  // value will be replaced with "sensitive".
 16066  func (s PutStorageLensConfigurationTaggingInput) GoString() string {
 16067  	return s.String()
 16068  }
 16069  
 16070  // Validate inspects the fields of the type to determine if they are valid.
 16071  func (s *PutStorageLensConfigurationTaggingInput) Validate() error {
 16072  	invalidParams := request.ErrInvalidParams{Context: "PutStorageLensConfigurationTaggingInput"}
 16073  	if s.AccountId == nil {
 16074  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 16075  	}
 16076  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 16077  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 16078  	}
 16079  	if s.ConfigId == nil {
 16080  		invalidParams.Add(request.NewErrParamRequired("ConfigId"))
 16081  	}
 16082  	if s.ConfigId != nil && len(*s.ConfigId) < 1 {
 16083  		invalidParams.Add(request.NewErrParamMinLen("ConfigId", 1))
 16084  	}
 16085  	if s.Tags == nil {
 16086  		invalidParams.Add(request.NewErrParamRequired("Tags"))
 16087  	}
 16088  	if s.Tags != nil {
 16089  		for i, v := range s.Tags {
 16090  			if v == nil {
 16091  				continue
 16092  			}
 16093  			if err := v.Validate(); err != nil {
 16094  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 16095  			}
 16096  		}
 16097  	}
 16098  
 16099  	if invalidParams.Len() > 0 {
 16100  		return invalidParams
 16101  	}
 16102  	return nil
 16103  }
 16104  
 16105  // SetAccountId sets the AccountId field's value.
 16106  func (s *PutStorageLensConfigurationTaggingInput) SetAccountId(v string) *PutStorageLensConfigurationTaggingInput {
 16107  	s.AccountId = &v
 16108  	return s
 16109  }
 16110  
 16111  // SetConfigId sets the ConfigId field's value.
 16112  func (s *PutStorageLensConfigurationTaggingInput) SetConfigId(v string) *PutStorageLensConfigurationTaggingInput {
 16113  	s.ConfigId = &v
 16114  	return s
 16115  }
 16116  
 16117  // SetTags sets the Tags field's value.
 16118  func (s *PutStorageLensConfigurationTaggingInput) SetTags(v []*StorageLensTag) *PutStorageLensConfigurationTaggingInput {
 16119  	s.Tags = v
 16120  	return s
 16121  }
 16122  
 16123  func (s *PutStorageLensConfigurationTaggingInput) hostLabels() map[string]string {
 16124  	return map[string]string{
 16125  		"AccountId": aws.StringValue(s.AccountId),
 16126  	}
 16127  }
 16128  
 16129  type PutStorageLensConfigurationTaggingOutput struct {
 16130  	_ struct{} `type:"structure"`
 16131  }
 16132  
 16133  // String returns the string representation.
 16134  //
 16135  // API parameter values that are decorated as "sensitive" in the API will not
 16136  // be included in the string output. The member name will be present, but the
 16137  // value will be replaced with "sensitive".
 16138  func (s PutStorageLensConfigurationTaggingOutput) String() string {
 16139  	return awsutil.Prettify(s)
 16140  }
 16141  
 16142  // GoString returns the string representation.
 16143  //
 16144  // API parameter values that are decorated as "sensitive" in the API will not
 16145  // be included in the string output. The member name will be present, but the
 16146  // value will be replaced with "sensitive".
 16147  func (s PutStorageLensConfigurationTaggingOutput) GoString() string {
 16148  	return s.String()
 16149  }
 16150  
 16151  // A Region that supports a Multi-Region Access Point as well as the associated
 16152  // bucket for the Region.
 16153  type Region struct {
 16154  	_ struct{} `type:"structure"`
 16155  
 16156  	// The name of the associated bucket for the Region.
 16157  	//
 16158  	// Bucket is a required field
 16159  	Bucket *string `min:"3" type:"string" required:"true"`
 16160  }
 16161  
 16162  // String returns the string representation.
 16163  //
 16164  // API parameter values that are decorated as "sensitive" in the API will not
 16165  // be included in the string output. The member name will be present, but the
 16166  // value will be replaced with "sensitive".
 16167  func (s Region) String() string {
 16168  	return awsutil.Prettify(s)
 16169  }
 16170  
 16171  // GoString returns the string representation.
 16172  //
 16173  // API parameter values that are decorated as "sensitive" in the API will not
 16174  // be included in the string output. The member name will be present, but the
 16175  // value will be replaced with "sensitive".
 16176  func (s Region) GoString() string {
 16177  	return s.String()
 16178  }
 16179  
 16180  // Validate inspects the fields of the type to determine if they are valid.
 16181  func (s *Region) Validate() error {
 16182  	invalidParams := request.ErrInvalidParams{Context: "Region"}
 16183  	if s.Bucket == nil {
 16184  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
 16185  	}
 16186  	if s.Bucket != nil && len(*s.Bucket) < 3 {
 16187  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
 16188  	}
 16189  
 16190  	if invalidParams.Len() > 0 {
 16191  		return invalidParams
 16192  	}
 16193  	return nil
 16194  }
 16195  
 16196  // SetBucket sets the Bucket field's value.
 16197  func (s *Region) SetBucket(v string) *Region {
 16198  	s.Bucket = &v
 16199  	return s
 16200  }
 16201  
 16202  // A combination of a bucket and Region that's part of a Multi-Region Access
 16203  // Point.
 16204  type RegionReport struct {
 16205  	_ struct{} `type:"structure"`
 16206  
 16207  	// The name of the bucket.
 16208  	Bucket *string `min:"3" type:"string"`
 16209  
 16210  	// The name of the Region.
 16211  	Region *string `min:"1" type:"string"`
 16212  }
 16213  
 16214  // String returns the string representation.
 16215  //
 16216  // API parameter values that are decorated as "sensitive" in the API will not
 16217  // be included in the string output. The member name will be present, but the
 16218  // value will be replaced with "sensitive".
 16219  func (s RegionReport) String() string {
 16220  	return awsutil.Prettify(s)
 16221  }
 16222  
 16223  // GoString returns the string representation.
 16224  //
 16225  // API parameter values that are decorated as "sensitive" in the API will not
 16226  // be included in the string output. The member name will be present, but the
 16227  // value will be replaced with "sensitive".
 16228  func (s RegionReport) GoString() string {
 16229  	return s.String()
 16230  }
 16231  
 16232  // SetBucket sets the Bucket field's value.
 16233  func (s *RegionReport) SetBucket(v string) *RegionReport {
 16234  	s.Bucket = &v
 16235  	return s
 16236  }
 16237  
 16238  // SetRegion sets the Region field's value.
 16239  func (s *RegionReport) SetRegion(v string) *RegionReport {
 16240  	s.Region = &v
 16241  	return s
 16242  }
 16243  
 16244  // The container for the regional bucket.
 16245  type RegionalBucket struct {
 16246  	_ struct{} `type:"structure"`
 16247  
 16248  	// Bucket is a required field
 16249  	Bucket *string `min:"3" type:"string" required:"true"`
 16250  
 16251  	// The Amazon Resource Name (ARN) for the regional bucket.
 16252  	BucketArn *string `min:"4" type:"string"`
 16253  
 16254  	// The creation date of the regional bucket
 16255  	//
 16256  	// CreationDate is a required field
 16257  	CreationDate *time.Time `type:"timestamp" required:"true"`
 16258  
 16259  	// The Outposts ID of the regional bucket.
 16260  	OutpostId *string `min:"1" type:"string"`
 16261  
 16262  	// PublicAccessBlockEnabled is a required field
 16263  	PublicAccessBlockEnabled *bool `type:"boolean" required:"true"`
 16264  }
 16265  
 16266  // String returns the string representation.
 16267  //
 16268  // API parameter values that are decorated as "sensitive" in the API will not
 16269  // be included in the string output. The member name will be present, but the
 16270  // value will be replaced with "sensitive".
 16271  func (s RegionalBucket) String() string {
 16272  	return awsutil.Prettify(s)
 16273  }
 16274  
 16275  // GoString returns the string representation.
 16276  //
 16277  // API parameter values that are decorated as "sensitive" in the API will not
 16278  // be included in the string output. The member name will be present, but the
 16279  // value will be replaced with "sensitive".
 16280  func (s RegionalBucket) GoString() string {
 16281  	return s.String()
 16282  }
 16283  
 16284  // SetBucket sets the Bucket field's value.
 16285  func (s *RegionalBucket) SetBucket(v string) *RegionalBucket {
 16286  	s.Bucket = &v
 16287  	return s
 16288  }
 16289  
 16290  // SetBucketArn sets the BucketArn field's value.
 16291  func (s *RegionalBucket) SetBucketArn(v string) *RegionalBucket {
 16292  	s.BucketArn = &v
 16293  	return s
 16294  }
 16295  
 16296  // SetCreationDate sets the CreationDate field's value.
 16297  func (s *RegionalBucket) SetCreationDate(v time.Time) *RegionalBucket {
 16298  	s.CreationDate = &v
 16299  	return s
 16300  }
 16301  
 16302  // SetOutpostId sets the OutpostId field's value.
 16303  func (s *RegionalBucket) SetOutpostId(v string) *RegionalBucket {
 16304  	s.OutpostId = &v
 16305  	return s
 16306  }
 16307  
 16308  // SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value.
 16309  func (s *RegionalBucket) SetPublicAccessBlockEnabled(v bool) *RegionalBucket {
 16310  	s.PublicAccessBlockEnabled = &v
 16311  	return s
 16312  }
 16313  
 16314  type S3AccessControlList struct {
 16315  	_ struct{} `type:"structure"`
 16316  
 16317  	Grants []*S3Grant `type:"list"`
 16318  
 16319  	// Owner is a required field
 16320  	Owner *S3ObjectOwner `type:"structure" required:"true"`
 16321  }
 16322  
 16323  // String returns the string representation.
 16324  //
 16325  // API parameter values that are decorated as "sensitive" in the API will not
 16326  // be included in the string output. The member name will be present, but the
 16327  // value will be replaced with "sensitive".
 16328  func (s S3AccessControlList) String() string {
 16329  	return awsutil.Prettify(s)
 16330  }
 16331  
 16332  // GoString returns the string representation.
 16333  //
 16334  // API parameter values that are decorated as "sensitive" in the API will not
 16335  // be included in the string output. The member name will be present, but the
 16336  // value will be replaced with "sensitive".
 16337  func (s S3AccessControlList) GoString() string {
 16338  	return s.String()
 16339  }
 16340  
 16341  // Validate inspects the fields of the type to determine if they are valid.
 16342  func (s *S3AccessControlList) Validate() error {
 16343  	invalidParams := request.ErrInvalidParams{Context: "S3AccessControlList"}
 16344  	if s.Owner == nil {
 16345  		invalidParams.Add(request.NewErrParamRequired("Owner"))
 16346  	}
 16347  	if s.Grants != nil {
 16348  		for i, v := range s.Grants {
 16349  			if v == nil {
 16350  				continue
 16351  			}
 16352  			if err := v.Validate(); err != nil {
 16353  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Grants", i), err.(request.ErrInvalidParams))
 16354  			}
 16355  		}
 16356  	}
 16357  	if s.Owner != nil {
 16358  		if err := s.Owner.Validate(); err != nil {
 16359  			invalidParams.AddNested("Owner", err.(request.ErrInvalidParams))
 16360  		}
 16361  	}
 16362  
 16363  	if invalidParams.Len() > 0 {
 16364  		return invalidParams
 16365  	}
 16366  	return nil
 16367  }
 16368  
 16369  // SetGrants sets the Grants field's value.
 16370  func (s *S3AccessControlList) SetGrants(v []*S3Grant) *S3AccessControlList {
 16371  	s.Grants = v
 16372  	return s
 16373  }
 16374  
 16375  // SetOwner sets the Owner field's value.
 16376  func (s *S3AccessControlList) SetOwner(v *S3ObjectOwner) *S3AccessControlList {
 16377  	s.Owner = v
 16378  	return s
 16379  }
 16380  
 16381  type S3AccessControlPolicy struct {
 16382  	_ struct{} `type:"structure"`
 16383  
 16384  	AccessControlList *S3AccessControlList `type:"structure"`
 16385  
 16386  	CannedAccessControlList *string `type:"string" enum:"S3CannedAccessControlList"`
 16387  }
 16388  
 16389  // String returns the string representation.
 16390  //
 16391  // API parameter values that are decorated as "sensitive" in the API will not
 16392  // be included in the string output. The member name will be present, but the
 16393  // value will be replaced with "sensitive".
 16394  func (s S3AccessControlPolicy) String() string {
 16395  	return awsutil.Prettify(s)
 16396  }
 16397  
 16398  // GoString returns the string representation.
 16399  //
 16400  // API parameter values that are decorated as "sensitive" in the API will not
 16401  // be included in the string output. The member name will be present, but the
 16402  // value will be replaced with "sensitive".
 16403  func (s S3AccessControlPolicy) GoString() string {
 16404  	return s.String()
 16405  }
 16406  
 16407  // Validate inspects the fields of the type to determine if they are valid.
 16408  func (s *S3AccessControlPolicy) Validate() error {
 16409  	invalidParams := request.ErrInvalidParams{Context: "S3AccessControlPolicy"}
 16410  	if s.AccessControlList != nil {
 16411  		if err := s.AccessControlList.Validate(); err != nil {
 16412  			invalidParams.AddNested("AccessControlList", err.(request.ErrInvalidParams))
 16413  		}
 16414  	}
 16415  
 16416  	if invalidParams.Len() > 0 {
 16417  		return invalidParams
 16418  	}
 16419  	return nil
 16420  }
 16421  
 16422  // SetAccessControlList sets the AccessControlList field's value.
 16423  func (s *S3AccessControlPolicy) SetAccessControlList(v *S3AccessControlList) *S3AccessControlPolicy {
 16424  	s.AccessControlList = v
 16425  	return s
 16426  }
 16427  
 16428  // SetCannedAccessControlList sets the CannedAccessControlList field's value.
 16429  func (s *S3AccessControlPolicy) SetCannedAccessControlList(v string) *S3AccessControlPolicy {
 16430  	s.CannedAccessControlList = &v
 16431  	return s
 16432  }
 16433  
 16434  // A container for the bucket where the Amazon S3 Storage Lens metrics export
 16435  // files are located.
 16436  type S3BucketDestination struct {
 16437  	_ struct{} `type:"structure"`
 16438  
 16439  	// The account ID of the owner of the S3 Storage Lens metrics export bucket.
 16440  	//
 16441  	// AccountId is a required field
 16442  	AccountId *string `type:"string" required:"true"`
 16443  
 16444  	// The Amazon Resource Name (ARN) of the bucket. This property is read-only
 16445  	// and follows the following format: arn:aws:s3:us-east-1:example-account-id:bucket/your-destination-bucket-name
 16446  	//
 16447  	// Arn is a required field
 16448  	Arn *string `min:"1" type:"string" required:"true"`
 16449  
 16450  	// The container for the type encryption of the metrics exports in this bucket.
 16451  	Encryption *StorageLensDataExportEncryption `type:"structure"`
 16452  
 16453  	// Format is a required field
 16454  	Format *string `type:"string" required:"true" enum:"Format"`
 16455  
 16456  	// The schema version of the export file.
 16457  	//
 16458  	// OutputSchemaVersion is a required field
 16459  	OutputSchemaVersion *string `type:"string" required:"true" enum:"OutputSchemaVersion"`
 16460  
 16461  	// The prefix of the destination bucket where the metrics export will be delivered.
 16462  	Prefix *string `type:"string"`
 16463  }
 16464  
 16465  // String returns the string representation.
 16466  //
 16467  // API parameter values that are decorated as "sensitive" in the API will not
 16468  // be included in the string output. The member name will be present, but the
 16469  // value will be replaced with "sensitive".
 16470  func (s S3BucketDestination) String() string {
 16471  	return awsutil.Prettify(s)
 16472  }
 16473  
 16474  // GoString returns the string representation.
 16475  //
 16476  // API parameter values that are decorated as "sensitive" in the API will not
 16477  // be included in the string output. The member name will be present, but the
 16478  // value will be replaced with "sensitive".
 16479  func (s S3BucketDestination) GoString() string {
 16480  	return s.String()
 16481  }
 16482  
 16483  // Validate inspects the fields of the type to determine if they are valid.
 16484  func (s *S3BucketDestination) Validate() error {
 16485  	invalidParams := request.ErrInvalidParams{Context: "S3BucketDestination"}
 16486  	if s.AccountId == nil {
 16487  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 16488  	}
 16489  	if s.Arn == nil {
 16490  		invalidParams.Add(request.NewErrParamRequired("Arn"))
 16491  	}
 16492  	if s.Arn != nil && len(*s.Arn) < 1 {
 16493  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
 16494  	}
 16495  	if s.Format == nil {
 16496  		invalidParams.Add(request.NewErrParamRequired("Format"))
 16497  	}
 16498  	if s.OutputSchemaVersion == nil {
 16499  		invalidParams.Add(request.NewErrParamRequired("OutputSchemaVersion"))
 16500  	}
 16501  	if s.Encryption != nil {
 16502  		if err := s.Encryption.Validate(); err != nil {
 16503  			invalidParams.AddNested("Encryption", err.(request.ErrInvalidParams))
 16504  		}
 16505  	}
 16506  
 16507  	if invalidParams.Len() > 0 {
 16508  		return invalidParams
 16509  	}
 16510  	return nil
 16511  }
 16512  
 16513  // SetAccountId sets the AccountId field's value.
 16514  func (s *S3BucketDestination) SetAccountId(v string) *S3BucketDestination {
 16515  	s.AccountId = &v
 16516  	return s
 16517  }
 16518  
 16519  // SetArn sets the Arn field's value.
 16520  func (s *S3BucketDestination) SetArn(v string) *S3BucketDestination {
 16521  	s.Arn = &v
 16522  	return s
 16523  }
 16524  
 16525  // SetEncryption sets the Encryption field's value.
 16526  func (s *S3BucketDestination) SetEncryption(v *StorageLensDataExportEncryption) *S3BucketDestination {
 16527  	s.Encryption = v
 16528  	return s
 16529  }
 16530  
 16531  // SetFormat sets the Format field's value.
 16532  func (s *S3BucketDestination) SetFormat(v string) *S3BucketDestination {
 16533  	s.Format = &v
 16534  	return s
 16535  }
 16536  
 16537  // SetOutputSchemaVersion sets the OutputSchemaVersion field's value.
 16538  func (s *S3BucketDestination) SetOutputSchemaVersion(v string) *S3BucketDestination {
 16539  	s.OutputSchemaVersion = &v
 16540  	return s
 16541  }
 16542  
 16543  // SetPrefix sets the Prefix field's value.
 16544  func (s *S3BucketDestination) SetPrefix(v string) *S3BucketDestination {
 16545  	s.Prefix = &v
 16546  	return s
 16547  }
 16548  
 16549  // Contains the configuration parameters for a PUT Copy object operation. S3
 16550  // Batch Operations passes every object to the underlying PUT Copy object API.
 16551  // For more information about the parameters for this operation, see PUT Object
 16552  // - Copy (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html).
 16553  type S3CopyObjectOperation struct {
 16554  	_ struct{} `type:"structure"`
 16555  
 16556  	AccessControlGrants []*S3Grant `type:"list"`
 16557  
 16558  	// Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption
 16559  	// with server-side encryption using Amazon Web Services KMS (SSE-KMS). Setting
 16560  	// this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption
 16561  	// with SSE-KMS.
 16562  	//
 16563  	// Specifying this header with an object action doesn’t affect bucket-level
 16564  	// settings for S3 Bucket Key.
 16565  	BucketKeyEnabled *bool `type:"boolean"`
 16566  
 16567  	CannedAccessControlList *string `type:"string" enum:"S3CannedAccessControlList"`
 16568  
 16569  	MetadataDirective *string `type:"string" enum:"S3MetadataDirective"`
 16570  
 16571  	ModifiedSinceConstraint *time.Time `type:"timestamp"`
 16572  
 16573  	NewObjectMetadata *S3ObjectMetadata `type:"structure"`
 16574  
 16575  	NewObjectTagging []*S3Tag `type:"list"`
 16576  
 16577  	// The legal hold status to be applied to all objects in the Batch Operations
 16578  	// job.
 16579  	ObjectLockLegalHoldStatus *string `type:"string" enum:"S3ObjectLockLegalHoldStatus"`
 16580  
 16581  	// The retention mode to be applied to all objects in the Batch Operations job.
 16582  	ObjectLockMode *string `type:"string" enum:"S3ObjectLockMode"`
 16583  
 16584  	// The date when the applied object retention configuration expires on all objects
 16585  	// in the Batch Operations job.
 16586  	ObjectLockRetainUntilDate *time.Time `type:"timestamp"`
 16587  
 16588  	// Specifies an optional metadata property for website redirects, x-amz-website-redirect-location.
 16589  	// Allows webpage redirects if the object is accessed through a website endpoint.
 16590  	RedirectLocation *string `min:"1" type:"string"`
 16591  
 16592  	RequesterPays *bool `type:"boolean"`
 16593  
 16594  	SSEAwsKmsKeyId *string `min:"1" type:"string"`
 16595  
 16596  	StorageClass *string `type:"string" enum:"S3StorageClass"`
 16597  
 16598  	// Specifies the folder prefix into which you would like the objects to be copied.
 16599  	// For example, to copy objects into a folder named "Folder1" in the destination
 16600  	// bucket, set the TargetKeyPrefix to "Folder1/".
 16601  	TargetKeyPrefix *string `min:"1" type:"string"`
 16602  
 16603  	// Specifies the destination bucket ARN for the batch copy operation. For example,
 16604  	// to copy objects to a bucket named "destinationBucket", set the TargetResource
 16605  	// to "arn:aws:s3:::destinationBucket".
 16606  	TargetResource *string `min:"1" type:"string"`
 16607  
 16608  	UnModifiedSinceConstraint *time.Time `type:"timestamp"`
 16609  }
 16610  
 16611  // String returns the string representation.
 16612  //
 16613  // API parameter values that are decorated as "sensitive" in the API will not
 16614  // be included in the string output. The member name will be present, but the
 16615  // value will be replaced with "sensitive".
 16616  func (s S3CopyObjectOperation) String() string {
 16617  	return awsutil.Prettify(s)
 16618  }
 16619  
 16620  // GoString returns the string representation.
 16621  //
 16622  // API parameter values that are decorated as "sensitive" in the API will not
 16623  // be included in the string output. The member name will be present, but the
 16624  // value will be replaced with "sensitive".
 16625  func (s S3CopyObjectOperation) GoString() string {
 16626  	return s.String()
 16627  }
 16628  
 16629  // Validate inspects the fields of the type to determine if they are valid.
 16630  func (s *S3CopyObjectOperation) Validate() error {
 16631  	invalidParams := request.ErrInvalidParams{Context: "S3CopyObjectOperation"}
 16632  	if s.RedirectLocation != nil && len(*s.RedirectLocation) < 1 {
 16633  		invalidParams.Add(request.NewErrParamMinLen("RedirectLocation", 1))
 16634  	}
 16635  	if s.SSEAwsKmsKeyId != nil && len(*s.SSEAwsKmsKeyId) < 1 {
 16636  		invalidParams.Add(request.NewErrParamMinLen("SSEAwsKmsKeyId", 1))
 16637  	}
 16638  	if s.TargetKeyPrefix != nil && len(*s.TargetKeyPrefix) < 1 {
 16639  		invalidParams.Add(request.NewErrParamMinLen("TargetKeyPrefix", 1))
 16640  	}
 16641  	if s.TargetResource != nil && len(*s.TargetResource) < 1 {
 16642  		invalidParams.Add(request.NewErrParamMinLen("TargetResource", 1))
 16643  	}
 16644  	if s.AccessControlGrants != nil {
 16645  		for i, v := range s.AccessControlGrants {
 16646  			if v == nil {
 16647  				continue
 16648  			}
 16649  			if err := v.Validate(); err != nil {
 16650  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessControlGrants", i), err.(request.ErrInvalidParams))
 16651  			}
 16652  		}
 16653  	}
 16654  	if s.NewObjectMetadata != nil {
 16655  		if err := s.NewObjectMetadata.Validate(); err != nil {
 16656  			invalidParams.AddNested("NewObjectMetadata", err.(request.ErrInvalidParams))
 16657  		}
 16658  	}
 16659  	if s.NewObjectTagging != nil {
 16660  		for i, v := range s.NewObjectTagging {
 16661  			if v == nil {
 16662  				continue
 16663  			}
 16664  			if err := v.Validate(); err != nil {
 16665  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NewObjectTagging", i), err.(request.ErrInvalidParams))
 16666  			}
 16667  		}
 16668  	}
 16669  
 16670  	if invalidParams.Len() > 0 {
 16671  		return invalidParams
 16672  	}
 16673  	return nil
 16674  }
 16675  
 16676  // SetAccessControlGrants sets the AccessControlGrants field's value.
 16677  func (s *S3CopyObjectOperation) SetAccessControlGrants(v []*S3Grant) *S3CopyObjectOperation {
 16678  	s.AccessControlGrants = v
 16679  	return s
 16680  }
 16681  
 16682  // SetBucketKeyEnabled sets the BucketKeyEnabled field's value.
 16683  func (s *S3CopyObjectOperation) SetBucketKeyEnabled(v bool) *S3CopyObjectOperation {
 16684  	s.BucketKeyEnabled = &v
 16685  	return s
 16686  }
 16687  
 16688  // SetCannedAccessControlList sets the CannedAccessControlList field's value.
 16689  func (s *S3CopyObjectOperation) SetCannedAccessControlList(v string) *S3CopyObjectOperation {
 16690  	s.CannedAccessControlList = &v
 16691  	return s
 16692  }
 16693  
 16694  // SetMetadataDirective sets the MetadataDirective field's value.
 16695  func (s *S3CopyObjectOperation) SetMetadataDirective(v string) *S3CopyObjectOperation {
 16696  	s.MetadataDirective = &v
 16697  	return s
 16698  }
 16699  
 16700  // SetModifiedSinceConstraint sets the ModifiedSinceConstraint field's value.
 16701  func (s *S3CopyObjectOperation) SetModifiedSinceConstraint(v time.Time) *S3CopyObjectOperation {
 16702  	s.ModifiedSinceConstraint = &v
 16703  	return s
 16704  }
 16705  
 16706  // SetNewObjectMetadata sets the NewObjectMetadata field's value.
 16707  func (s *S3CopyObjectOperation) SetNewObjectMetadata(v *S3ObjectMetadata) *S3CopyObjectOperation {
 16708  	s.NewObjectMetadata = v
 16709  	return s
 16710  }
 16711  
 16712  // SetNewObjectTagging sets the NewObjectTagging field's value.
 16713  func (s *S3CopyObjectOperation) SetNewObjectTagging(v []*S3Tag) *S3CopyObjectOperation {
 16714  	s.NewObjectTagging = v
 16715  	return s
 16716  }
 16717  
 16718  // SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
 16719  func (s *S3CopyObjectOperation) SetObjectLockLegalHoldStatus(v string) *S3CopyObjectOperation {
 16720  	s.ObjectLockLegalHoldStatus = &v
 16721  	return s
 16722  }
 16723  
 16724  // SetObjectLockMode sets the ObjectLockMode field's value.
 16725  func (s *S3CopyObjectOperation) SetObjectLockMode(v string) *S3CopyObjectOperation {
 16726  	s.ObjectLockMode = &v
 16727  	return s
 16728  }
 16729  
 16730  // SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
 16731  func (s *S3CopyObjectOperation) SetObjectLockRetainUntilDate(v time.Time) *S3CopyObjectOperation {
 16732  	s.ObjectLockRetainUntilDate = &v
 16733  	return s
 16734  }
 16735  
 16736  // SetRedirectLocation sets the RedirectLocation field's value.
 16737  func (s *S3CopyObjectOperation) SetRedirectLocation(v string) *S3CopyObjectOperation {
 16738  	s.RedirectLocation = &v
 16739  	return s
 16740  }
 16741  
 16742  // SetRequesterPays sets the RequesterPays field's value.
 16743  func (s *S3CopyObjectOperation) SetRequesterPays(v bool) *S3CopyObjectOperation {
 16744  	s.RequesterPays = &v
 16745  	return s
 16746  }
 16747  
 16748  // SetSSEAwsKmsKeyId sets the SSEAwsKmsKeyId field's value.
 16749  func (s *S3CopyObjectOperation) SetSSEAwsKmsKeyId(v string) *S3CopyObjectOperation {
 16750  	s.SSEAwsKmsKeyId = &v
 16751  	return s
 16752  }
 16753  
 16754  // SetStorageClass sets the StorageClass field's value.
 16755  func (s *S3CopyObjectOperation) SetStorageClass(v string) *S3CopyObjectOperation {
 16756  	s.StorageClass = &v
 16757  	return s
 16758  }
 16759  
 16760  // SetTargetKeyPrefix sets the TargetKeyPrefix field's value.
 16761  func (s *S3CopyObjectOperation) SetTargetKeyPrefix(v string) *S3CopyObjectOperation {
 16762  	s.TargetKeyPrefix = &v
 16763  	return s
 16764  }
 16765  
 16766  // SetTargetResource sets the TargetResource field's value.
 16767  func (s *S3CopyObjectOperation) SetTargetResource(v string) *S3CopyObjectOperation {
 16768  	s.TargetResource = &v
 16769  	return s
 16770  }
 16771  
 16772  // SetUnModifiedSinceConstraint sets the UnModifiedSinceConstraint field's value.
 16773  func (s *S3CopyObjectOperation) SetUnModifiedSinceConstraint(v time.Time) *S3CopyObjectOperation {
 16774  	s.UnModifiedSinceConstraint = &v
 16775  	return s
 16776  }
 16777  
 16778  // Contains no configuration parameters because the DELETE Object tagging API
 16779  // only accepts the bucket name and key name as parameters, which are defined
 16780  // in the job's manifest.
 16781  type S3DeleteObjectTaggingOperation struct {
 16782  	_ struct{} `type:"structure"`
 16783  }
 16784  
 16785  // String returns the string representation.
 16786  //
 16787  // API parameter values that are decorated as "sensitive" in the API will not
 16788  // be included in the string output. The member name will be present, but the
 16789  // value will be replaced with "sensitive".
 16790  func (s S3DeleteObjectTaggingOperation) String() string {
 16791  	return awsutil.Prettify(s)
 16792  }
 16793  
 16794  // GoString returns the string representation.
 16795  //
 16796  // API parameter values that are decorated as "sensitive" in the API will not
 16797  // be included in the string output. The member name will be present, but the
 16798  // value will be replaced with "sensitive".
 16799  func (s S3DeleteObjectTaggingOperation) GoString() string {
 16800  	return s.String()
 16801  }
 16802  
 16803  type S3Grant struct {
 16804  	_ struct{} `type:"structure"`
 16805  
 16806  	Grantee *S3Grantee `type:"structure"`
 16807  
 16808  	Permission *string `type:"string" enum:"S3Permission"`
 16809  }
 16810  
 16811  // String returns the string representation.
 16812  //
 16813  // API parameter values that are decorated as "sensitive" in the API will not
 16814  // be included in the string output. The member name will be present, but the
 16815  // value will be replaced with "sensitive".
 16816  func (s S3Grant) String() string {
 16817  	return awsutil.Prettify(s)
 16818  }
 16819  
 16820  // GoString returns the string representation.
 16821  //
 16822  // API parameter values that are decorated as "sensitive" in the API will not
 16823  // be included in the string output. The member name will be present, but the
 16824  // value will be replaced with "sensitive".
 16825  func (s S3Grant) GoString() string {
 16826  	return s.String()
 16827  }
 16828  
 16829  // Validate inspects the fields of the type to determine if they are valid.
 16830  func (s *S3Grant) Validate() error {
 16831  	invalidParams := request.ErrInvalidParams{Context: "S3Grant"}
 16832  	if s.Grantee != nil {
 16833  		if err := s.Grantee.Validate(); err != nil {
 16834  			invalidParams.AddNested("Grantee", err.(request.ErrInvalidParams))
 16835  		}
 16836  	}
 16837  
 16838  	if invalidParams.Len() > 0 {
 16839  		return invalidParams
 16840  	}
 16841  	return nil
 16842  }
 16843  
 16844  // SetGrantee sets the Grantee field's value.
 16845  func (s *S3Grant) SetGrantee(v *S3Grantee) *S3Grant {
 16846  	s.Grantee = v
 16847  	return s
 16848  }
 16849  
 16850  // SetPermission sets the Permission field's value.
 16851  func (s *S3Grant) SetPermission(v string) *S3Grant {
 16852  	s.Permission = &v
 16853  	return s
 16854  }
 16855  
 16856  type S3Grantee struct {
 16857  	_ struct{} `type:"structure"`
 16858  
 16859  	DisplayName *string `min:"1" type:"string"`
 16860  
 16861  	Identifier *string `min:"1" type:"string"`
 16862  
 16863  	TypeIdentifier *string `type:"string" enum:"S3GranteeTypeIdentifier"`
 16864  }
 16865  
 16866  // String returns the string representation.
 16867  //
 16868  // API parameter values that are decorated as "sensitive" in the API will not
 16869  // be included in the string output. The member name will be present, but the
 16870  // value will be replaced with "sensitive".
 16871  func (s S3Grantee) String() string {
 16872  	return awsutil.Prettify(s)
 16873  }
 16874  
 16875  // GoString returns the string representation.
 16876  //
 16877  // API parameter values that are decorated as "sensitive" in the API will not
 16878  // be included in the string output. The member name will be present, but the
 16879  // value will be replaced with "sensitive".
 16880  func (s S3Grantee) GoString() string {
 16881  	return s.String()
 16882  }
 16883  
 16884  // Validate inspects the fields of the type to determine if they are valid.
 16885  func (s *S3Grantee) Validate() error {
 16886  	invalidParams := request.ErrInvalidParams{Context: "S3Grantee"}
 16887  	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
 16888  		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
 16889  	}
 16890  	if s.Identifier != nil && len(*s.Identifier) < 1 {
 16891  		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
 16892  	}
 16893  
 16894  	if invalidParams.Len() > 0 {
 16895  		return invalidParams
 16896  	}
 16897  	return nil
 16898  }
 16899  
 16900  // SetDisplayName sets the DisplayName field's value.
 16901  func (s *S3Grantee) SetDisplayName(v string) *S3Grantee {
 16902  	s.DisplayName = &v
 16903  	return s
 16904  }
 16905  
 16906  // SetIdentifier sets the Identifier field's value.
 16907  func (s *S3Grantee) SetIdentifier(v string) *S3Grantee {
 16908  	s.Identifier = &v
 16909  	return s
 16910  }
 16911  
 16912  // SetTypeIdentifier sets the TypeIdentifier field's value.
 16913  func (s *S3Grantee) SetTypeIdentifier(v string) *S3Grantee {
 16914  	s.TypeIdentifier = &v
 16915  	return s
 16916  }
 16917  
 16918  // Contains the configuration parameters for an S3 Initiate Restore Object job.
 16919  // S3 Batch Operations passes every object to the underlying POST Object restore
 16920  // API. For more information about the parameters for this operation, see RestoreObject
 16921  // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOSTrestore.html#RESTObjectPOSTrestore-restore-request).
 16922  type S3InitiateRestoreObjectOperation struct {
 16923  	_ struct{} `type:"structure"`
 16924  
 16925  	// This argument specifies how long the S3 Glacier or S3 Glacier Deep Archive
 16926  	// object remains available in Amazon S3. S3 Initiate Restore Object jobs that
 16927  	// target S3 Glacier and S3 Glacier Deep Archive objects require ExpirationInDays
 16928  	// set to 1 or greater.
 16929  	//
 16930  	// Conversely, do not set ExpirationInDays when creating S3 Initiate Restore
 16931  	// Object jobs that target S3 Intelligent-Tiering Archive Access and Deep Archive
 16932  	// Access tier objects. Objects in S3 Intelligent-Tiering archive access tiers
 16933  	// are not subject to restore expiry, so specifying ExpirationInDays results
 16934  	// in restore request failure.
 16935  	//
 16936  	// S3 Batch Operations jobs can operate either on S3 Glacier and S3 Glacier
 16937  	// Deep Archive storage class objects or on S3 Intelligent-Tiering Archive Access
 16938  	// and Deep Archive Access storage tier objects, but not both types in the same
 16939  	// job. If you need to restore objects of both types you must create separate
 16940  	// Batch Operations jobs.
 16941  	ExpirationInDays *int64 `type:"integer"`
 16942  
 16943  	// S3 Batch Operations supports STANDARD and BULK retrieval tiers, but not the
 16944  	// EXPEDITED retrieval tier.
 16945  	GlacierJobTier *string `type:"string" enum:"S3GlacierJobTier"`
 16946  }
 16947  
 16948  // String returns the string representation.
 16949  //
 16950  // API parameter values that are decorated as "sensitive" in the API will not
 16951  // be included in the string output. The member name will be present, but the
 16952  // value will be replaced with "sensitive".
 16953  func (s S3InitiateRestoreObjectOperation) String() string {
 16954  	return awsutil.Prettify(s)
 16955  }
 16956  
 16957  // GoString returns the string representation.
 16958  //
 16959  // API parameter values that are decorated as "sensitive" in the API will not
 16960  // be included in the string output. The member name will be present, but the
 16961  // value will be replaced with "sensitive".
 16962  func (s S3InitiateRestoreObjectOperation) GoString() string {
 16963  	return s.String()
 16964  }
 16965  
 16966  // SetExpirationInDays sets the ExpirationInDays field's value.
 16967  func (s *S3InitiateRestoreObjectOperation) SetExpirationInDays(v int64) *S3InitiateRestoreObjectOperation {
 16968  	s.ExpirationInDays = &v
 16969  	return s
 16970  }
 16971  
 16972  // SetGlacierJobTier sets the GlacierJobTier field's value.
 16973  func (s *S3InitiateRestoreObjectOperation) SetGlacierJobTier(v string) *S3InitiateRestoreObjectOperation {
 16974  	s.GlacierJobTier = &v
 16975  	return s
 16976  }
 16977  
 16978  // Whether S3 Object Lock legal hold will be applied to objects in an S3 Batch
 16979  // Operations job.
 16980  type S3ObjectLockLegalHold struct {
 16981  	_ struct{} `type:"structure"`
 16982  
 16983  	// The Object Lock legal hold status to be applied to all objects in the Batch
 16984  	// Operations job.
 16985  	//
 16986  	// Status is a required field
 16987  	Status *string `type:"string" required:"true" enum:"S3ObjectLockLegalHoldStatus"`
 16988  }
 16989  
 16990  // String returns the string representation.
 16991  //
 16992  // API parameter values that are decorated as "sensitive" in the API will not
 16993  // be included in the string output. The member name will be present, but the
 16994  // value will be replaced with "sensitive".
 16995  func (s S3ObjectLockLegalHold) String() string {
 16996  	return awsutil.Prettify(s)
 16997  }
 16998  
 16999  // GoString returns the string representation.
 17000  //
 17001  // API parameter values that are decorated as "sensitive" in the API will not
 17002  // be included in the string output. The member name will be present, but the
 17003  // value will be replaced with "sensitive".
 17004  func (s S3ObjectLockLegalHold) GoString() string {
 17005  	return s.String()
 17006  }
 17007  
 17008  // Validate inspects the fields of the type to determine if they are valid.
 17009  func (s *S3ObjectLockLegalHold) Validate() error {
 17010  	invalidParams := request.ErrInvalidParams{Context: "S3ObjectLockLegalHold"}
 17011  	if s.Status == nil {
 17012  		invalidParams.Add(request.NewErrParamRequired("Status"))
 17013  	}
 17014  
 17015  	if invalidParams.Len() > 0 {
 17016  		return invalidParams
 17017  	}
 17018  	return nil
 17019  }
 17020  
 17021  // SetStatus sets the Status field's value.
 17022  func (s *S3ObjectLockLegalHold) SetStatus(v string) *S3ObjectLockLegalHold {
 17023  	s.Status = &v
 17024  	return s
 17025  }
 17026  
 17027  type S3ObjectMetadata struct {
 17028  	_ struct{} `type:"structure"`
 17029  
 17030  	CacheControl *string `min:"1" type:"string"`
 17031  
 17032  	ContentDisposition *string `min:"1" type:"string"`
 17033  
 17034  	ContentEncoding *string `min:"1" type:"string"`
 17035  
 17036  	ContentLanguage *string `min:"1" type:"string"`
 17037  
 17038  	ContentLength *int64 `type:"long"`
 17039  
 17040  	ContentMD5 *string `min:"1" type:"string"`
 17041  
 17042  	ContentType *string `min:"1" type:"string"`
 17043  
 17044  	HttpExpiresDate *time.Time `type:"timestamp"`
 17045  
 17046  	RequesterCharged *bool `type:"boolean"`
 17047  
 17048  	SSEAlgorithm *string `type:"string" enum:"S3SSEAlgorithm"`
 17049  
 17050  	UserMetadata map[string]*string `type:"map"`
 17051  }
 17052  
 17053  // String returns the string representation.
 17054  //
 17055  // API parameter values that are decorated as "sensitive" in the API will not
 17056  // be included in the string output. The member name will be present, but the
 17057  // value will be replaced with "sensitive".
 17058  func (s S3ObjectMetadata) String() string {
 17059  	return awsutil.Prettify(s)
 17060  }
 17061  
 17062  // GoString returns the string representation.
 17063  //
 17064  // API parameter values that are decorated as "sensitive" in the API will not
 17065  // be included in the string output. The member name will be present, but the
 17066  // value will be replaced with "sensitive".
 17067  func (s S3ObjectMetadata) GoString() string {
 17068  	return s.String()
 17069  }
 17070  
 17071  // Validate inspects the fields of the type to determine if they are valid.
 17072  func (s *S3ObjectMetadata) Validate() error {
 17073  	invalidParams := request.ErrInvalidParams{Context: "S3ObjectMetadata"}
 17074  	if s.CacheControl != nil && len(*s.CacheControl) < 1 {
 17075  		invalidParams.Add(request.NewErrParamMinLen("CacheControl", 1))
 17076  	}
 17077  	if s.ContentDisposition != nil && len(*s.ContentDisposition) < 1 {
 17078  		invalidParams.Add(request.NewErrParamMinLen("ContentDisposition", 1))
 17079  	}
 17080  	if s.ContentEncoding != nil && len(*s.ContentEncoding) < 1 {
 17081  		invalidParams.Add(request.NewErrParamMinLen("ContentEncoding", 1))
 17082  	}
 17083  	if s.ContentLanguage != nil && len(*s.ContentLanguage) < 1 {
 17084  		invalidParams.Add(request.NewErrParamMinLen("ContentLanguage", 1))
 17085  	}
 17086  	if s.ContentMD5 != nil && len(*s.ContentMD5) < 1 {
 17087  		invalidParams.Add(request.NewErrParamMinLen("ContentMD5", 1))
 17088  	}
 17089  	if s.ContentType != nil && len(*s.ContentType) < 1 {
 17090  		invalidParams.Add(request.NewErrParamMinLen("ContentType", 1))
 17091  	}
 17092  
 17093  	if invalidParams.Len() > 0 {
 17094  		return invalidParams
 17095  	}
 17096  	return nil
 17097  }
 17098  
 17099  // SetCacheControl sets the CacheControl field's value.
 17100  func (s *S3ObjectMetadata) SetCacheControl(v string) *S3ObjectMetadata {
 17101  	s.CacheControl = &v
 17102  	return s
 17103  }
 17104  
 17105  // SetContentDisposition sets the ContentDisposition field's value.
 17106  func (s *S3ObjectMetadata) SetContentDisposition(v string) *S3ObjectMetadata {
 17107  	s.ContentDisposition = &v
 17108  	return s
 17109  }
 17110  
 17111  // SetContentEncoding sets the ContentEncoding field's value.
 17112  func (s *S3ObjectMetadata) SetContentEncoding(v string) *S3ObjectMetadata {
 17113  	s.ContentEncoding = &v
 17114  	return s
 17115  }
 17116  
 17117  // SetContentLanguage sets the ContentLanguage field's value.
 17118  func (s *S3ObjectMetadata) SetContentLanguage(v string) *S3ObjectMetadata {
 17119  	s.ContentLanguage = &v
 17120  	return s
 17121  }
 17122  
 17123  // SetContentLength sets the ContentLength field's value.
 17124  func (s *S3ObjectMetadata) SetContentLength(v int64) *S3ObjectMetadata {
 17125  	s.ContentLength = &v
 17126  	return s
 17127  }
 17128  
 17129  // SetContentMD5 sets the ContentMD5 field's value.
 17130  func (s *S3ObjectMetadata) SetContentMD5(v string) *S3ObjectMetadata {
 17131  	s.ContentMD5 = &v
 17132  	return s
 17133  }
 17134  
 17135  // SetContentType sets the ContentType field's value.
 17136  func (s *S3ObjectMetadata) SetContentType(v string) *S3ObjectMetadata {
 17137  	s.ContentType = &v
 17138  	return s
 17139  }
 17140  
 17141  // SetHttpExpiresDate sets the HttpExpiresDate field's value.
 17142  func (s *S3ObjectMetadata) SetHttpExpiresDate(v time.Time) *S3ObjectMetadata {
 17143  	s.HttpExpiresDate = &v
 17144  	return s
 17145  }
 17146  
 17147  // SetRequesterCharged sets the RequesterCharged field's value.
 17148  func (s *S3ObjectMetadata) SetRequesterCharged(v bool) *S3ObjectMetadata {
 17149  	s.RequesterCharged = &v
 17150  	return s
 17151  }
 17152  
 17153  // SetSSEAlgorithm sets the SSEAlgorithm field's value.
 17154  func (s *S3ObjectMetadata) SetSSEAlgorithm(v string) *S3ObjectMetadata {
 17155  	s.SSEAlgorithm = &v
 17156  	return s
 17157  }
 17158  
 17159  // SetUserMetadata sets the UserMetadata field's value.
 17160  func (s *S3ObjectMetadata) SetUserMetadata(v map[string]*string) *S3ObjectMetadata {
 17161  	s.UserMetadata = v
 17162  	return s
 17163  }
 17164  
 17165  type S3ObjectOwner struct {
 17166  	_ struct{} `type:"structure"`
 17167  
 17168  	DisplayName *string `min:"1" type:"string"`
 17169  
 17170  	ID *string `min:"1" type:"string"`
 17171  }
 17172  
 17173  // String returns the string representation.
 17174  //
 17175  // API parameter values that are decorated as "sensitive" in the API will not
 17176  // be included in the string output. The member name will be present, but the
 17177  // value will be replaced with "sensitive".
 17178  func (s S3ObjectOwner) String() string {
 17179  	return awsutil.Prettify(s)
 17180  }
 17181  
 17182  // GoString returns the string representation.
 17183  //
 17184  // API parameter values that are decorated as "sensitive" in the API will not
 17185  // be included in the string output. The member name will be present, but the
 17186  // value will be replaced with "sensitive".
 17187  func (s S3ObjectOwner) GoString() string {
 17188  	return s.String()
 17189  }
 17190  
 17191  // Validate inspects the fields of the type to determine if they are valid.
 17192  func (s *S3ObjectOwner) Validate() error {
 17193  	invalidParams := request.ErrInvalidParams{Context: "S3ObjectOwner"}
 17194  	if s.DisplayName != nil && len(*s.DisplayName) < 1 {
 17195  		invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1))
 17196  	}
 17197  	if s.ID != nil && len(*s.ID) < 1 {
 17198  		invalidParams.Add(request.NewErrParamMinLen("ID", 1))
 17199  	}
 17200  
 17201  	if invalidParams.Len() > 0 {
 17202  		return invalidParams
 17203  	}
 17204  	return nil
 17205  }
 17206  
 17207  // SetDisplayName sets the DisplayName field's value.
 17208  func (s *S3ObjectOwner) SetDisplayName(v string) *S3ObjectOwner {
 17209  	s.DisplayName = &v
 17210  	return s
 17211  }
 17212  
 17213  // SetID sets the ID field's value.
 17214  func (s *S3ObjectOwner) SetID(v string) *S3ObjectOwner {
 17215  	s.ID = &v
 17216  	return s
 17217  }
 17218  
 17219  // Contains the S3 Object Lock retention mode to be applied to all objects in
 17220  // the S3 Batch Operations job. If you don't provide Mode and RetainUntilDate
 17221  // data types in your operation, you will remove the retention from your objects.
 17222  // For more information, see Using S3 Object Lock retention with S3 Batch Operations
 17223  // (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
 17224  // in the Amazon S3 User Guide.
 17225  type S3Retention struct {
 17226  	_ struct{} `type:"structure"`
 17227  
 17228  	// The Object Lock retention mode to be applied to all objects in the Batch
 17229  	// Operations job.
 17230  	Mode *string `type:"string" enum:"S3ObjectLockRetentionMode"`
 17231  
 17232  	// The date when the applied Object Lock retention will expire on all objects
 17233  	// set by the Batch Operations job.
 17234  	RetainUntilDate *time.Time `type:"timestamp"`
 17235  }
 17236  
 17237  // String returns the string representation.
 17238  //
 17239  // API parameter values that are decorated as "sensitive" in the API will not
 17240  // be included in the string output. The member name will be present, but the
 17241  // value will be replaced with "sensitive".
 17242  func (s S3Retention) String() string {
 17243  	return awsutil.Prettify(s)
 17244  }
 17245  
 17246  // GoString returns the string representation.
 17247  //
 17248  // API parameter values that are decorated as "sensitive" in the API will not
 17249  // be included in the string output. The member name will be present, but the
 17250  // value will be replaced with "sensitive".
 17251  func (s S3Retention) GoString() string {
 17252  	return s.String()
 17253  }
 17254  
 17255  // SetMode sets the Mode field's value.
 17256  func (s *S3Retention) SetMode(v string) *S3Retention {
 17257  	s.Mode = &v
 17258  	return s
 17259  }
 17260  
 17261  // SetRetainUntilDate sets the RetainUntilDate field's value.
 17262  func (s *S3Retention) SetRetainUntilDate(v time.Time) *S3Retention {
 17263  	s.RetainUntilDate = &v
 17264  	return s
 17265  }
 17266  
 17267  // Contains the configuration parameters for a Set Object ACL operation. S3
 17268  // Batch Operations passes every object to the underlying PUT Object acl API.
 17269  // For more information about the parameters for this operation, see PUT Object
 17270  // acl (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTacl.html).
 17271  type S3SetObjectAclOperation struct {
 17272  	_ struct{} `type:"structure"`
 17273  
 17274  	AccessControlPolicy *S3AccessControlPolicy `type:"structure"`
 17275  }
 17276  
 17277  // String returns the string representation.
 17278  //
 17279  // API parameter values that are decorated as "sensitive" in the API will not
 17280  // be included in the string output. The member name will be present, but the
 17281  // value will be replaced with "sensitive".
 17282  func (s S3SetObjectAclOperation) String() string {
 17283  	return awsutil.Prettify(s)
 17284  }
 17285  
 17286  // GoString returns the string representation.
 17287  //
 17288  // API parameter values that are decorated as "sensitive" in the API will not
 17289  // be included in the string output. The member name will be present, but the
 17290  // value will be replaced with "sensitive".
 17291  func (s S3SetObjectAclOperation) GoString() string {
 17292  	return s.String()
 17293  }
 17294  
 17295  // Validate inspects the fields of the type to determine if they are valid.
 17296  func (s *S3SetObjectAclOperation) Validate() error {
 17297  	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectAclOperation"}
 17298  	if s.AccessControlPolicy != nil {
 17299  		if err := s.AccessControlPolicy.Validate(); err != nil {
 17300  			invalidParams.AddNested("AccessControlPolicy", err.(request.ErrInvalidParams))
 17301  		}
 17302  	}
 17303  
 17304  	if invalidParams.Len() > 0 {
 17305  		return invalidParams
 17306  	}
 17307  	return nil
 17308  }
 17309  
 17310  // SetAccessControlPolicy sets the AccessControlPolicy field's value.
 17311  func (s *S3SetObjectAclOperation) SetAccessControlPolicy(v *S3AccessControlPolicy) *S3SetObjectAclOperation {
 17312  	s.AccessControlPolicy = v
 17313  	return s
 17314  }
 17315  
 17316  // Contains the configuration for an S3 Object Lock legal hold operation that
 17317  // an S3 Batch Operations job passes every object to the underlying PutObjectLegalHold
 17318  // API. For more information, see Using S3 Object Lock legal hold with S3 Batch
 17319  // Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html)
 17320  // in the Amazon S3 User Guide.
 17321  type S3SetObjectLegalHoldOperation struct {
 17322  	_ struct{} `type:"structure"`
 17323  
 17324  	// Contains the Object Lock legal hold status to be applied to all objects in
 17325  	// the Batch Operations job.
 17326  	//
 17327  	// LegalHold is a required field
 17328  	LegalHold *S3ObjectLockLegalHold `type:"structure" required:"true"`
 17329  }
 17330  
 17331  // String returns the string representation.
 17332  //
 17333  // API parameter values that are decorated as "sensitive" in the API will not
 17334  // be included in the string output. The member name will be present, but the
 17335  // value will be replaced with "sensitive".
 17336  func (s S3SetObjectLegalHoldOperation) String() string {
 17337  	return awsutil.Prettify(s)
 17338  }
 17339  
 17340  // GoString returns the string representation.
 17341  //
 17342  // API parameter values that are decorated as "sensitive" in the API will not
 17343  // be included in the string output. The member name will be present, but the
 17344  // value will be replaced with "sensitive".
 17345  func (s S3SetObjectLegalHoldOperation) GoString() string {
 17346  	return s.String()
 17347  }
 17348  
 17349  // Validate inspects the fields of the type to determine if they are valid.
 17350  func (s *S3SetObjectLegalHoldOperation) Validate() error {
 17351  	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectLegalHoldOperation"}
 17352  	if s.LegalHold == nil {
 17353  		invalidParams.Add(request.NewErrParamRequired("LegalHold"))
 17354  	}
 17355  	if s.LegalHold != nil {
 17356  		if err := s.LegalHold.Validate(); err != nil {
 17357  			invalidParams.AddNested("LegalHold", err.(request.ErrInvalidParams))
 17358  		}
 17359  	}
 17360  
 17361  	if invalidParams.Len() > 0 {
 17362  		return invalidParams
 17363  	}
 17364  	return nil
 17365  }
 17366  
 17367  // SetLegalHold sets the LegalHold field's value.
 17368  func (s *S3SetObjectLegalHoldOperation) SetLegalHold(v *S3ObjectLockLegalHold) *S3SetObjectLegalHoldOperation {
 17369  	s.LegalHold = v
 17370  	return s
 17371  }
 17372  
 17373  // Contains the configuration parameters for the Object Lock retention action
 17374  // for an S3 Batch Operations job. Batch Operations passes every object to the
 17375  // underlying PutObjectRetention API. For more information, see Using S3 Object
 17376  // Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
 17377  // in the Amazon S3 User Guide.
 17378  type S3SetObjectRetentionOperation struct {
 17379  	_ struct{} `type:"structure"`
 17380  
 17381  	// Indicates if the action should be applied to objects in the Batch Operations
 17382  	// job even if they have Object Lock GOVERNANCE type in place.
 17383  	BypassGovernanceRetention *bool `type:"boolean"`
 17384  
 17385  	// Contains the Object Lock retention mode to be applied to all objects in the
 17386  	// Batch Operations job. For more information, see Using S3 Object Lock retention
 17387  	// with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html)
 17388  	// in the Amazon S3 User Guide.
 17389  	//
 17390  	// Retention is a required field
 17391  	Retention *S3Retention `type:"structure" required:"true"`
 17392  }
 17393  
 17394  // String returns the string representation.
 17395  //
 17396  // API parameter values that are decorated as "sensitive" in the API will not
 17397  // be included in the string output. The member name will be present, but the
 17398  // value will be replaced with "sensitive".
 17399  func (s S3SetObjectRetentionOperation) String() string {
 17400  	return awsutil.Prettify(s)
 17401  }
 17402  
 17403  // GoString returns the string representation.
 17404  //
 17405  // API parameter values that are decorated as "sensitive" in the API will not
 17406  // be included in the string output. The member name will be present, but the
 17407  // value will be replaced with "sensitive".
 17408  func (s S3SetObjectRetentionOperation) GoString() string {
 17409  	return s.String()
 17410  }
 17411  
 17412  // Validate inspects the fields of the type to determine if they are valid.
 17413  func (s *S3SetObjectRetentionOperation) Validate() error {
 17414  	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectRetentionOperation"}
 17415  	if s.Retention == nil {
 17416  		invalidParams.Add(request.NewErrParamRequired("Retention"))
 17417  	}
 17418  
 17419  	if invalidParams.Len() > 0 {
 17420  		return invalidParams
 17421  	}
 17422  	return nil
 17423  }
 17424  
 17425  // SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
 17426  func (s *S3SetObjectRetentionOperation) SetBypassGovernanceRetention(v bool) *S3SetObjectRetentionOperation {
 17427  	s.BypassGovernanceRetention = &v
 17428  	return s
 17429  }
 17430  
 17431  // SetRetention sets the Retention field's value.
 17432  func (s *S3SetObjectRetentionOperation) SetRetention(v *S3Retention) *S3SetObjectRetentionOperation {
 17433  	s.Retention = v
 17434  	return s
 17435  }
 17436  
 17437  // Contains the configuration parameters for a Set Object Tagging operation.
 17438  // S3 Batch Operations passes every object to the underlying PUT Object tagging
 17439  // API. For more information about the parameters for this operation, see PUT
 17440  // Object tagging (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTtagging.html).
 17441  type S3SetObjectTaggingOperation struct {
 17442  	_ struct{} `type:"structure"`
 17443  
 17444  	TagSet []*S3Tag `type:"list"`
 17445  }
 17446  
 17447  // String returns the string representation.
 17448  //
 17449  // API parameter values that are decorated as "sensitive" in the API will not
 17450  // be included in the string output. The member name will be present, but the
 17451  // value will be replaced with "sensitive".
 17452  func (s S3SetObjectTaggingOperation) String() string {
 17453  	return awsutil.Prettify(s)
 17454  }
 17455  
 17456  // GoString returns the string representation.
 17457  //
 17458  // API parameter values that are decorated as "sensitive" in the API will not
 17459  // be included in the string output. The member name will be present, but the
 17460  // value will be replaced with "sensitive".
 17461  func (s S3SetObjectTaggingOperation) GoString() string {
 17462  	return s.String()
 17463  }
 17464  
 17465  // Validate inspects the fields of the type to determine if they are valid.
 17466  func (s *S3SetObjectTaggingOperation) Validate() error {
 17467  	invalidParams := request.ErrInvalidParams{Context: "S3SetObjectTaggingOperation"}
 17468  	if s.TagSet != nil {
 17469  		for i, v := range s.TagSet {
 17470  			if v == nil {
 17471  				continue
 17472  			}
 17473  			if err := v.Validate(); err != nil {
 17474  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSet", i), err.(request.ErrInvalidParams))
 17475  			}
 17476  		}
 17477  	}
 17478  
 17479  	if invalidParams.Len() > 0 {
 17480  		return invalidParams
 17481  	}
 17482  	return nil
 17483  }
 17484  
 17485  // SetTagSet sets the TagSet field's value.
 17486  func (s *S3SetObjectTaggingOperation) SetTagSet(v []*S3Tag) *S3SetObjectTaggingOperation {
 17487  	s.TagSet = v
 17488  	return s
 17489  }
 17490  
 17491  type S3Tag struct {
 17492  	_ struct{} `type:"structure"`
 17493  
 17494  	// Key is a required field
 17495  	Key *string `min:"1" type:"string" required:"true"`
 17496  
 17497  	// Value is a required field
 17498  	Value *string `type:"string" required:"true"`
 17499  }
 17500  
 17501  // String returns the string representation.
 17502  //
 17503  // API parameter values that are decorated as "sensitive" in the API will not
 17504  // be included in the string output. The member name will be present, but the
 17505  // value will be replaced with "sensitive".
 17506  func (s S3Tag) String() string {
 17507  	return awsutil.Prettify(s)
 17508  }
 17509  
 17510  // GoString returns the string representation.
 17511  //
 17512  // API parameter values that are decorated as "sensitive" in the API will not
 17513  // be included in the string output. The member name will be present, but the
 17514  // value will be replaced with "sensitive".
 17515  func (s S3Tag) GoString() string {
 17516  	return s.String()
 17517  }
 17518  
 17519  // Validate inspects the fields of the type to determine if they are valid.
 17520  func (s *S3Tag) Validate() error {
 17521  	invalidParams := request.ErrInvalidParams{Context: "S3Tag"}
 17522  	if s.Key == nil {
 17523  		invalidParams.Add(request.NewErrParamRequired("Key"))
 17524  	}
 17525  	if s.Key != nil && len(*s.Key) < 1 {
 17526  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 17527  	}
 17528  	if s.Value == nil {
 17529  		invalidParams.Add(request.NewErrParamRequired("Value"))
 17530  	}
 17531  
 17532  	if invalidParams.Len() > 0 {
 17533  		return invalidParams
 17534  	}
 17535  	return nil
 17536  }
 17537  
 17538  // SetKey sets the Key field's value.
 17539  func (s *S3Tag) SetKey(v string) *S3Tag {
 17540  	s.Key = &v
 17541  	return s
 17542  }
 17543  
 17544  // SetValue sets the Value field's value.
 17545  func (s *S3Tag) SetValue(v string) *S3Tag {
 17546  	s.Value = &v
 17547  	return s
 17548  }
 17549  
 17550  type SSEKMS struct {
 17551  	_ struct{} `locationName:"SSE-KMS" type:"structure"`
 17552  
 17553  	// A container for the ARN of the SSE-KMS encryption. This property is read-only
 17554  	// and follows the following format: arn:aws:kms:us-east-1:example-account-id:key/example-9a73-4afc-8d29-8f5900cef44e
 17555  	//
 17556  	// KeyId is a required field
 17557  	KeyId *string `type:"string" required:"true"`
 17558  }
 17559  
 17560  // String returns the string representation.
 17561  //
 17562  // API parameter values that are decorated as "sensitive" in the API will not
 17563  // be included in the string output. The member name will be present, but the
 17564  // value will be replaced with "sensitive".
 17565  func (s SSEKMS) String() string {
 17566  	return awsutil.Prettify(s)
 17567  }
 17568  
 17569  // GoString returns the string representation.
 17570  //
 17571  // API parameter values that are decorated as "sensitive" in the API will not
 17572  // be included in the string output. The member name will be present, but the
 17573  // value will be replaced with "sensitive".
 17574  func (s SSEKMS) GoString() string {
 17575  	return s.String()
 17576  }
 17577  
 17578  // Validate inspects the fields of the type to determine if they are valid.
 17579  func (s *SSEKMS) Validate() error {
 17580  	invalidParams := request.ErrInvalidParams{Context: "SSEKMS"}
 17581  	if s.KeyId == nil {
 17582  		invalidParams.Add(request.NewErrParamRequired("KeyId"))
 17583  	}
 17584  
 17585  	if invalidParams.Len() > 0 {
 17586  		return invalidParams
 17587  	}
 17588  	return nil
 17589  }
 17590  
 17591  // SetKeyId sets the KeyId field's value.
 17592  func (s *SSEKMS) SetKeyId(v string) *SSEKMS {
 17593  	s.KeyId = &v
 17594  	return s
 17595  }
 17596  
 17597  type SSES3 struct {
 17598  	_ struct{} `locationName:"SSE-S3" type:"structure"`
 17599  }
 17600  
 17601  // String returns the string representation.
 17602  //
 17603  // API parameter values that are decorated as "sensitive" in the API will not
 17604  // be included in the string output. The member name will be present, but the
 17605  // value will be replaced with "sensitive".
 17606  func (s SSES3) String() string {
 17607  	return awsutil.Prettify(s)
 17608  }
 17609  
 17610  // GoString returns the string representation.
 17611  //
 17612  // API parameter values that are decorated as "sensitive" in the API will not
 17613  // be included in the string output. The member name will be present, but the
 17614  // value will be replaced with "sensitive".
 17615  func (s SSES3) GoString() string {
 17616  	return s.String()
 17617  }
 17618  
 17619  type SelectionCriteria struct {
 17620  	_ struct{} `type:"structure"`
 17621  
 17622  	// A container for the delimiter of the selection criteria being used.
 17623  	Delimiter *string `type:"string"`
 17624  
 17625  	// The max depth of the selection criteria
 17626  	MaxDepth *int64 `min:"1" type:"integer"`
 17627  
 17628  	// The minimum number of storage bytes percentage whose metrics will be selected.
 17629  	//
 17630  	// You must choose a value greater than or equal to 1.0.
 17631  	MinStorageBytesPercentage *float64 `min:"0.1" type:"double"`
 17632  }
 17633  
 17634  // String returns the string representation.
 17635  //
 17636  // API parameter values that are decorated as "sensitive" in the API will not
 17637  // be included in the string output. The member name will be present, but the
 17638  // value will be replaced with "sensitive".
 17639  func (s SelectionCriteria) String() string {
 17640  	return awsutil.Prettify(s)
 17641  }
 17642  
 17643  // GoString returns the string representation.
 17644  //
 17645  // API parameter values that are decorated as "sensitive" in the API will not
 17646  // be included in the string output. The member name will be present, but the
 17647  // value will be replaced with "sensitive".
 17648  func (s SelectionCriteria) GoString() string {
 17649  	return s.String()
 17650  }
 17651  
 17652  // Validate inspects the fields of the type to determine if they are valid.
 17653  func (s *SelectionCriteria) Validate() error {
 17654  	invalidParams := request.ErrInvalidParams{Context: "SelectionCriteria"}
 17655  	if s.MaxDepth != nil && *s.MaxDepth < 1 {
 17656  		invalidParams.Add(request.NewErrParamMinValue("MaxDepth", 1))
 17657  	}
 17658  	if s.MinStorageBytesPercentage != nil && *s.MinStorageBytesPercentage < 0.1 {
 17659  		invalidParams.Add(request.NewErrParamMinValue("MinStorageBytesPercentage", 0.1))
 17660  	}
 17661  
 17662  	if invalidParams.Len() > 0 {
 17663  		return invalidParams
 17664  	}
 17665  	return nil
 17666  }
 17667  
 17668  // SetDelimiter sets the Delimiter field's value.
 17669  func (s *SelectionCriteria) SetDelimiter(v string) *SelectionCriteria {
 17670  	s.Delimiter = &v
 17671  	return s
 17672  }
 17673  
 17674  // SetMaxDepth sets the MaxDepth field's value.
 17675  func (s *SelectionCriteria) SetMaxDepth(v int64) *SelectionCriteria {
 17676  	s.MaxDepth = &v
 17677  	return s
 17678  }
 17679  
 17680  // SetMinStorageBytesPercentage sets the MinStorageBytesPercentage field's value.
 17681  func (s *SelectionCriteria) SetMinStorageBytesPercentage(v float64) *SelectionCriteria {
 17682  	s.MinStorageBytesPercentage = &v
 17683  	return s
 17684  }
 17685  
 17686  // The Amazon Web Services organization for your S3 Storage Lens.
 17687  type StorageLensAwsOrg struct {
 17688  	_ struct{} `type:"structure"`
 17689  
 17690  	// A container for the Amazon Resource Name (ARN) of the Amazon Web Services
 17691  	// organization. This property is read-only and follows the following format:
 17692  	// arn:aws:organizations:us-east-1:example-account-id:organization/o-ex2l495dck
 17693  	//
 17694  	// Arn is a required field
 17695  	Arn *string `min:"1" type:"string" required:"true"`
 17696  }
 17697  
 17698  // String returns the string representation.
 17699  //
 17700  // API parameter values that are decorated as "sensitive" in the API will not
 17701  // be included in the string output. The member name will be present, but the
 17702  // value will be replaced with "sensitive".
 17703  func (s StorageLensAwsOrg) String() string {
 17704  	return awsutil.Prettify(s)
 17705  }
 17706  
 17707  // GoString returns the string representation.
 17708  //
 17709  // API parameter values that are decorated as "sensitive" in the API will not
 17710  // be included in the string output. The member name will be present, but the
 17711  // value will be replaced with "sensitive".
 17712  func (s StorageLensAwsOrg) GoString() string {
 17713  	return s.String()
 17714  }
 17715  
 17716  // Validate inspects the fields of the type to determine if they are valid.
 17717  func (s *StorageLensAwsOrg) Validate() error {
 17718  	invalidParams := request.ErrInvalidParams{Context: "StorageLensAwsOrg"}
 17719  	if s.Arn == nil {
 17720  		invalidParams.Add(request.NewErrParamRequired("Arn"))
 17721  	}
 17722  	if s.Arn != nil && len(*s.Arn) < 1 {
 17723  		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
 17724  	}
 17725  
 17726  	if invalidParams.Len() > 0 {
 17727  		return invalidParams
 17728  	}
 17729  	return nil
 17730  }
 17731  
 17732  // SetArn sets the Arn field's value.
 17733  func (s *StorageLensAwsOrg) SetArn(v string) *StorageLensAwsOrg {
 17734  	s.Arn = &v
 17735  	return s
 17736  }
 17737  
 17738  // A container for the Amazon S3 Storage Lens configuration.
 17739  type StorageLensConfiguration struct {
 17740  	_ struct{} `type:"structure"`
 17741  
 17742  	// A container for all the account-level configurations of your S3 Storage Lens
 17743  	// configuration.
 17744  	//
 17745  	// AccountLevel is a required field
 17746  	AccountLevel *AccountLevel `type:"structure" required:"true"`
 17747  
 17748  	// A container for the Amazon Web Services organization for this S3 Storage
 17749  	// Lens configuration.
 17750  	AwsOrg *StorageLensAwsOrg `type:"structure"`
 17751  
 17752  	// A container to specify the properties of your S3 Storage Lens metrics export
 17753  	// including, the destination, schema and format.
 17754  	DataExport *StorageLensDataExport `type:"structure"`
 17755  
 17756  	// A container for what is excluded in this configuration. This container can
 17757  	// only be valid if there is no Include container submitted, and it's not empty.
 17758  	Exclude *Exclude `type:"structure"`
 17759  
 17760  	// A container for the Amazon S3 Storage Lens configuration ID.
 17761  	//
 17762  	// Id is a required field
 17763  	Id *string `min:"1" type:"string" required:"true"`
 17764  
 17765  	// A container for what is included in this configuration. This container can
 17766  	// only be valid if there is no Exclude container submitted, and it's not empty.
 17767  	Include *Include `type:"structure"`
 17768  
 17769  	// A container for whether the S3 Storage Lens configuration is enabled.
 17770  	//
 17771  	// IsEnabled is a required field
 17772  	IsEnabled *bool `type:"boolean" required:"true"`
 17773  
 17774  	// The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This
 17775  	// property is read-only and follows the following format: arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name
 17776  	StorageLensArn *string `min:"1" type:"string"`
 17777  }
 17778  
 17779  // String returns the string representation.
 17780  //
 17781  // API parameter values that are decorated as "sensitive" in the API will not
 17782  // be included in the string output. The member name will be present, but the
 17783  // value will be replaced with "sensitive".
 17784  func (s StorageLensConfiguration) String() string {
 17785  	return awsutil.Prettify(s)
 17786  }
 17787  
 17788  // GoString returns the string representation.
 17789  //
 17790  // API parameter values that are decorated as "sensitive" in the API will not
 17791  // be included in the string output. The member name will be present, but the
 17792  // value will be replaced with "sensitive".
 17793  func (s StorageLensConfiguration) GoString() string {
 17794  	return s.String()
 17795  }
 17796  
 17797  // Validate inspects the fields of the type to determine if they are valid.
 17798  func (s *StorageLensConfiguration) Validate() error {
 17799  	invalidParams := request.ErrInvalidParams{Context: "StorageLensConfiguration"}
 17800  	if s.AccountLevel == nil {
 17801  		invalidParams.Add(request.NewErrParamRequired("AccountLevel"))
 17802  	}
 17803  	if s.Id == nil {
 17804  		invalidParams.Add(request.NewErrParamRequired("Id"))
 17805  	}
 17806  	if s.Id != nil && len(*s.Id) < 1 {
 17807  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
 17808  	}
 17809  	if s.IsEnabled == nil {
 17810  		invalidParams.Add(request.NewErrParamRequired("IsEnabled"))
 17811  	}
 17812  	if s.StorageLensArn != nil && len(*s.StorageLensArn) < 1 {
 17813  		invalidParams.Add(request.NewErrParamMinLen("StorageLensArn", 1))
 17814  	}
 17815  	if s.AccountLevel != nil {
 17816  		if err := s.AccountLevel.Validate(); err != nil {
 17817  			invalidParams.AddNested("AccountLevel", err.(request.ErrInvalidParams))
 17818  		}
 17819  	}
 17820  	if s.AwsOrg != nil {
 17821  		if err := s.AwsOrg.Validate(); err != nil {
 17822  			invalidParams.AddNested("AwsOrg", err.(request.ErrInvalidParams))
 17823  		}
 17824  	}
 17825  	if s.DataExport != nil {
 17826  		if err := s.DataExport.Validate(); err != nil {
 17827  			invalidParams.AddNested("DataExport", err.(request.ErrInvalidParams))
 17828  		}
 17829  	}
 17830  
 17831  	if invalidParams.Len() > 0 {
 17832  		return invalidParams
 17833  	}
 17834  	return nil
 17835  }
 17836  
 17837  // SetAccountLevel sets the AccountLevel field's value.
 17838  func (s *StorageLensConfiguration) SetAccountLevel(v *AccountLevel) *StorageLensConfiguration {
 17839  	s.AccountLevel = v
 17840  	return s
 17841  }
 17842  
 17843  // SetAwsOrg sets the AwsOrg field's value.
 17844  func (s *StorageLensConfiguration) SetAwsOrg(v *StorageLensAwsOrg) *StorageLensConfiguration {
 17845  	s.AwsOrg = v
 17846  	return s
 17847  }
 17848  
 17849  // SetDataExport sets the DataExport field's value.
 17850  func (s *StorageLensConfiguration) SetDataExport(v *StorageLensDataExport) *StorageLensConfiguration {
 17851  	s.DataExport = v
 17852  	return s
 17853  }
 17854  
 17855  // SetExclude sets the Exclude field's value.
 17856  func (s *StorageLensConfiguration) SetExclude(v *Exclude) *StorageLensConfiguration {
 17857  	s.Exclude = v
 17858  	return s
 17859  }
 17860  
 17861  // SetId sets the Id field's value.
 17862  func (s *StorageLensConfiguration) SetId(v string) *StorageLensConfiguration {
 17863  	s.Id = &v
 17864  	return s
 17865  }
 17866  
 17867  // SetInclude sets the Include field's value.
 17868  func (s *StorageLensConfiguration) SetInclude(v *Include) *StorageLensConfiguration {
 17869  	s.Include = v
 17870  	return s
 17871  }
 17872  
 17873  // SetIsEnabled sets the IsEnabled field's value.
 17874  func (s *StorageLensConfiguration) SetIsEnabled(v bool) *StorageLensConfiguration {
 17875  	s.IsEnabled = &v
 17876  	return s
 17877  }
 17878  
 17879  // SetStorageLensArn sets the StorageLensArn field's value.
 17880  func (s *StorageLensConfiguration) SetStorageLensArn(v string) *StorageLensConfiguration {
 17881  	s.StorageLensArn = &v
 17882  	return s
 17883  }
 17884  
 17885  // A container to specify the properties of your S3 Storage Lens metrics export,
 17886  // including the destination, schema, and format.
 17887  type StorageLensDataExport struct {
 17888  	_ struct{} `type:"structure"`
 17889  
 17890  	// A container for the bucket where the S3 Storage Lens metrics export will
 17891  	// be located.
 17892  	//
 17893  	// This bucket must be located in the same Region as the storage lens configuration.
 17894  	//
 17895  	// S3BucketDestination is a required field
 17896  	S3BucketDestination *S3BucketDestination `type:"structure" required:"true"`
 17897  }
 17898  
 17899  // String returns the string representation.
 17900  //
 17901  // API parameter values that are decorated as "sensitive" in the API will not
 17902  // be included in the string output. The member name will be present, but the
 17903  // value will be replaced with "sensitive".
 17904  func (s StorageLensDataExport) String() string {
 17905  	return awsutil.Prettify(s)
 17906  }
 17907  
 17908  // GoString returns the string representation.
 17909  //
 17910  // API parameter values that are decorated as "sensitive" in the API will not
 17911  // be included in the string output. The member name will be present, but the
 17912  // value will be replaced with "sensitive".
 17913  func (s StorageLensDataExport) GoString() string {
 17914  	return s.String()
 17915  }
 17916  
 17917  // Validate inspects the fields of the type to determine if they are valid.
 17918  func (s *StorageLensDataExport) Validate() error {
 17919  	invalidParams := request.ErrInvalidParams{Context: "StorageLensDataExport"}
 17920  	if s.S3BucketDestination == nil {
 17921  		invalidParams.Add(request.NewErrParamRequired("S3BucketDestination"))
 17922  	}
 17923  	if s.S3BucketDestination != nil {
 17924  		if err := s.S3BucketDestination.Validate(); err != nil {
 17925  			invalidParams.AddNested("S3BucketDestination", err.(request.ErrInvalidParams))
 17926  		}
 17927  	}
 17928  
 17929  	if invalidParams.Len() > 0 {
 17930  		return invalidParams
 17931  	}
 17932  	return nil
 17933  }
 17934  
 17935  // SetS3BucketDestination sets the S3BucketDestination field's value.
 17936  func (s *StorageLensDataExport) SetS3BucketDestination(v *S3BucketDestination) *StorageLensDataExport {
 17937  	s.S3BucketDestination = v
 17938  	return s
 17939  }
 17940  
 17941  // A container for the encryption of the S3 Storage Lens metrics exports.
 17942  type StorageLensDataExportEncryption struct {
 17943  	_ struct{} `type:"structure"`
 17944  
 17945  	SSEKMS *SSEKMS `locationName:"SSE-KMS" type:"structure"`
 17946  
 17947  	SSES3 *SSES3 `locationName:"SSE-S3" type:"structure"`
 17948  }
 17949  
 17950  // String returns the string representation.
 17951  //
 17952  // API parameter values that are decorated as "sensitive" in the API will not
 17953  // be included in the string output. The member name will be present, but the
 17954  // value will be replaced with "sensitive".
 17955  func (s StorageLensDataExportEncryption) String() string {
 17956  	return awsutil.Prettify(s)
 17957  }
 17958  
 17959  // GoString returns the string representation.
 17960  //
 17961  // API parameter values that are decorated as "sensitive" in the API will not
 17962  // be included in the string output. The member name will be present, but the
 17963  // value will be replaced with "sensitive".
 17964  func (s StorageLensDataExportEncryption) GoString() string {
 17965  	return s.String()
 17966  }
 17967  
 17968  // Validate inspects the fields of the type to determine if they are valid.
 17969  func (s *StorageLensDataExportEncryption) Validate() error {
 17970  	invalidParams := request.ErrInvalidParams{Context: "StorageLensDataExportEncryption"}
 17971  	if s.SSEKMS != nil {
 17972  		if err := s.SSEKMS.Validate(); err != nil {
 17973  			invalidParams.AddNested("SSEKMS", err.(request.ErrInvalidParams))
 17974  		}
 17975  	}
 17976  
 17977  	if invalidParams.Len() > 0 {
 17978  		return invalidParams
 17979  	}
 17980  	return nil
 17981  }
 17982  
 17983  // SetSSEKMS sets the SSEKMS field's value.
 17984  func (s *StorageLensDataExportEncryption) SetSSEKMS(v *SSEKMS) *StorageLensDataExportEncryption {
 17985  	s.SSEKMS = v
 17986  	return s
 17987  }
 17988  
 17989  // SetSSES3 sets the SSES3 field's value.
 17990  func (s *StorageLensDataExportEncryption) SetSSES3(v *SSES3) *StorageLensDataExportEncryption {
 17991  	s.SSES3 = v
 17992  	return s
 17993  }
 17994  
 17995  type StorageLensTag struct {
 17996  	_ struct{} `type:"structure"`
 17997  
 17998  	// Key is a required field
 17999  	Key *string `min:"1" type:"string" required:"true"`
 18000  
 18001  	// Value is a required field
 18002  	Value *string `type:"string" required:"true"`
 18003  }
 18004  
 18005  // String returns the string representation.
 18006  //
 18007  // API parameter values that are decorated as "sensitive" in the API will not
 18008  // be included in the string output. The member name will be present, but the
 18009  // value will be replaced with "sensitive".
 18010  func (s StorageLensTag) String() string {
 18011  	return awsutil.Prettify(s)
 18012  }
 18013  
 18014  // GoString returns the string representation.
 18015  //
 18016  // API parameter values that are decorated as "sensitive" in the API will not
 18017  // be included in the string output. The member name will be present, but the
 18018  // value will be replaced with "sensitive".
 18019  func (s StorageLensTag) GoString() string {
 18020  	return s.String()
 18021  }
 18022  
 18023  // Validate inspects the fields of the type to determine if they are valid.
 18024  func (s *StorageLensTag) Validate() error {
 18025  	invalidParams := request.ErrInvalidParams{Context: "StorageLensTag"}
 18026  	if s.Key == nil {
 18027  		invalidParams.Add(request.NewErrParamRequired("Key"))
 18028  	}
 18029  	if s.Key != nil && len(*s.Key) < 1 {
 18030  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 18031  	}
 18032  	if s.Value == nil {
 18033  		invalidParams.Add(request.NewErrParamRequired("Value"))
 18034  	}
 18035  
 18036  	if invalidParams.Len() > 0 {
 18037  		return invalidParams
 18038  	}
 18039  	return nil
 18040  }
 18041  
 18042  // SetKey sets the Key field's value.
 18043  func (s *StorageLensTag) SetKey(v string) *StorageLensTag {
 18044  	s.Key = &v
 18045  	return s
 18046  }
 18047  
 18048  // SetValue sets the Value field's value.
 18049  func (s *StorageLensTag) SetValue(v string) *StorageLensTag {
 18050  	s.Value = &v
 18051  	return s
 18052  }
 18053  
 18054  type Tagging struct {
 18055  	_ struct{} `type:"structure"`
 18056  
 18057  	// A collection for a set of tags.
 18058  	//
 18059  	// TagSet is a required field
 18060  	TagSet []*S3Tag `type:"list" required:"true"`
 18061  }
 18062  
 18063  // String returns the string representation.
 18064  //
 18065  // API parameter values that are decorated as "sensitive" in the API will not
 18066  // be included in the string output. The member name will be present, but the
 18067  // value will be replaced with "sensitive".
 18068  func (s Tagging) String() string {
 18069  	return awsutil.Prettify(s)
 18070  }
 18071  
 18072  // GoString returns the string representation.
 18073  //
 18074  // API parameter values that are decorated as "sensitive" in the API will not
 18075  // be included in the string output. The member name will be present, but the
 18076  // value will be replaced with "sensitive".
 18077  func (s Tagging) GoString() string {
 18078  	return s.String()
 18079  }
 18080  
 18081  // Validate inspects the fields of the type to determine if they are valid.
 18082  func (s *Tagging) Validate() error {
 18083  	invalidParams := request.ErrInvalidParams{Context: "Tagging"}
 18084  	if s.TagSet == nil {
 18085  		invalidParams.Add(request.NewErrParamRequired("TagSet"))
 18086  	}
 18087  	if s.TagSet != nil {
 18088  		for i, v := range s.TagSet {
 18089  			if v == nil {
 18090  				continue
 18091  			}
 18092  			if err := v.Validate(); err != nil {
 18093  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSet", i), err.(request.ErrInvalidParams))
 18094  			}
 18095  		}
 18096  	}
 18097  
 18098  	if invalidParams.Len() > 0 {
 18099  		return invalidParams
 18100  	}
 18101  	return nil
 18102  }
 18103  
 18104  // SetTagSet sets the TagSet field's value.
 18105  func (s *Tagging) SetTagSet(v []*S3Tag) *Tagging {
 18106  	s.TagSet = v
 18107  	return s
 18108  }
 18109  
 18110  // Specifies when an object transitions to a specified storage class. For more
 18111  // information about Amazon S3 Lifecycle configuration rules, see Transitioning
 18112  // objects using Amazon S3 Lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html)
 18113  // in the Amazon S3 User Guide.
 18114  type Transition struct {
 18115  	_ struct{} `type:"structure"`
 18116  
 18117  	// Indicates when objects are transitioned to the specified storage class. The
 18118  	// date value must be in ISO 8601 format. The time is always midnight UTC.
 18119  	Date *time.Time `type:"timestamp"`
 18120  
 18121  	// Indicates the number of days after creation when objects are transitioned
 18122  	// to the specified storage class. The value must be a positive integer.
 18123  	Days *int64 `type:"integer"`
 18124  
 18125  	// The storage class to which you want the object to transition.
 18126  	StorageClass *string `type:"string" enum:"TransitionStorageClass"`
 18127  }
 18128  
 18129  // String returns the string representation.
 18130  //
 18131  // API parameter values that are decorated as "sensitive" in the API will not
 18132  // be included in the string output. The member name will be present, but the
 18133  // value will be replaced with "sensitive".
 18134  func (s Transition) String() string {
 18135  	return awsutil.Prettify(s)
 18136  }
 18137  
 18138  // GoString returns the string representation.
 18139  //
 18140  // API parameter values that are decorated as "sensitive" in the API will not
 18141  // be included in the string output. The member name will be present, but the
 18142  // value will be replaced with "sensitive".
 18143  func (s Transition) GoString() string {
 18144  	return s.String()
 18145  }
 18146  
 18147  // SetDate sets the Date field's value.
 18148  func (s *Transition) SetDate(v time.Time) *Transition {
 18149  	s.Date = &v
 18150  	return s
 18151  }
 18152  
 18153  // SetDays sets the Days field's value.
 18154  func (s *Transition) SetDays(v int64) *Transition {
 18155  	s.Days = &v
 18156  	return s
 18157  }
 18158  
 18159  // SetStorageClass sets the StorageClass field's value.
 18160  func (s *Transition) SetStorageClass(v string) *Transition {
 18161  	s.StorageClass = &v
 18162  	return s
 18163  }
 18164  
 18165  type UpdateJobPriorityInput struct {
 18166  	_ struct{} `locationName:"UpdateJobPriorityRequest" type:"structure"`
 18167  
 18168  	// The Amazon Web Services account ID associated with the S3 Batch Operations
 18169  	// job.
 18170  	//
 18171  	// AccountId is a required field
 18172  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 18173  
 18174  	// The ID for the job whose priority you want to update.
 18175  	//
 18176  	// JobId is a required field
 18177  	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
 18178  
 18179  	// The priority you want to assign to this job.
 18180  	//
 18181  	// Priority is a required field
 18182  	Priority *int64 `location:"querystring" locationName:"priority" type:"integer" required:"true"`
 18183  }
 18184  
 18185  // String returns the string representation.
 18186  //
 18187  // API parameter values that are decorated as "sensitive" in the API will not
 18188  // be included in the string output. The member name will be present, but the
 18189  // value will be replaced with "sensitive".
 18190  func (s UpdateJobPriorityInput) String() string {
 18191  	return awsutil.Prettify(s)
 18192  }
 18193  
 18194  // GoString returns the string representation.
 18195  //
 18196  // API parameter values that are decorated as "sensitive" in the API will not
 18197  // be included in the string output. The member name will be present, but the
 18198  // value will be replaced with "sensitive".
 18199  func (s UpdateJobPriorityInput) GoString() string {
 18200  	return s.String()
 18201  }
 18202  
 18203  // Validate inspects the fields of the type to determine if they are valid.
 18204  func (s *UpdateJobPriorityInput) Validate() error {
 18205  	invalidParams := request.ErrInvalidParams{Context: "UpdateJobPriorityInput"}
 18206  	if s.AccountId == nil {
 18207  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 18208  	}
 18209  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 18210  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 18211  	}
 18212  	if s.JobId == nil {
 18213  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 18214  	}
 18215  	if s.JobId != nil && len(*s.JobId) < 5 {
 18216  		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
 18217  	}
 18218  	if s.Priority == nil {
 18219  		invalidParams.Add(request.NewErrParamRequired("Priority"))
 18220  	}
 18221  
 18222  	if invalidParams.Len() > 0 {
 18223  		return invalidParams
 18224  	}
 18225  	return nil
 18226  }
 18227  
 18228  // SetAccountId sets the AccountId field's value.
 18229  func (s *UpdateJobPriorityInput) SetAccountId(v string) *UpdateJobPriorityInput {
 18230  	s.AccountId = &v
 18231  	return s
 18232  }
 18233  
 18234  // SetJobId sets the JobId field's value.
 18235  func (s *UpdateJobPriorityInput) SetJobId(v string) *UpdateJobPriorityInput {
 18236  	s.JobId = &v
 18237  	return s
 18238  }
 18239  
 18240  // SetPriority sets the Priority field's value.
 18241  func (s *UpdateJobPriorityInput) SetPriority(v int64) *UpdateJobPriorityInput {
 18242  	s.Priority = &v
 18243  	return s
 18244  }
 18245  
 18246  func (s *UpdateJobPriorityInput) hostLabels() map[string]string {
 18247  	return map[string]string{
 18248  		"AccountId": aws.StringValue(s.AccountId),
 18249  	}
 18250  }
 18251  
 18252  type UpdateJobPriorityOutput struct {
 18253  	_ struct{} `type:"structure"`
 18254  
 18255  	// The ID for the job whose priority Amazon S3 updated.
 18256  	//
 18257  	// JobId is a required field
 18258  	JobId *string `min:"5" type:"string" required:"true"`
 18259  
 18260  	// The new priority assigned to the specified job.
 18261  	//
 18262  	// Priority is a required field
 18263  	Priority *int64 `type:"integer" required:"true"`
 18264  }
 18265  
 18266  // String returns the string representation.
 18267  //
 18268  // API parameter values that are decorated as "sensitive" in the API will not
 18269  // be included in the string output. The member name will be present, but the
 18270  // value will be replaced with "sensitive".
 18271  func (s UpdateJobPriorityOutput) String() string {
 18272  	return awsutil.Prettify(s)
 18273  }
 18274  
 18275  // GoString returns the string representation.
 18276  //
 18277  // API parameter values that are decorated as "sensitive" in the API will not
 18278  // be included in the string output. The member name will be present, but the
 18279  // value will be replaced with "sensitive".
 18280  func (s UpdateJobPriorityOutput) GoString() string {
 18281  	return s.String()
 18282  }
 18283  
 18284  // SetJobId sets the JobId field's value.
 18285  func (s *UpdateJobPriorityOutput) SetJobId(v string) *UpdateJobPriorityOutput {
 18286  	s.JobId = &v
 18287  	return s
 18288  }
 18289  
 18290  // SetPriority sets the Priority field's value.
 18291  func (s *UpdateJobPriorityOutput) SetPriority(v int64) *UpdateJobPriorityOutput {
 18292  	s.Priority = &v
 18293  	return s
 18294  }
 18295  
 18296  type UpdateJobStatusInput struct {
 18297  	_ struct{} `locationName:"UpdateJobStatusRequest" type:"structure"`
 18298  
 18299  	// The Amazon Web Services account ID associated with the S3 Batch Operations
 18300  	// job.
 18301  	//
 18302  	// AccountId is a required field
 18303  	AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"`
 18304  
 18305  	// The ID of the job whose status you want to update.
 18306  	//
 18307  	// JobId is a required field
 18308  	JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"`
 18309  
 18310  	// The status that you want to move the specified job to.
 18311  	//
 18312  	// RequestedJobStatus is a required field
 18313  	RequestedJobStatus *string `location:"querystring" locationName:"requestedJobStatus" type:"string" required:"true" enum:"RequestedJobStatus"`
 18314  
 18315  	// A description of the reason why you want to change the specified job's status.
 18316  	// This field can be any string up to the maximum length.
 18317  	StatusUpdateReason *string `location:"querystring" locationName:"statusUpdateReason" min:"1" type:"string"`
 18318  }
 18319  
 18320  // String returns the string representation.
 18321  //
 18322  // API parameter values that are decorated as "sensitive" in the API will not
 18323  // be included in the string output. The member name will be present, but the
 18324  // value will be replaced with "sensitive".
 18325  func (s UpdateJobStatusInput) String() string {
 18326  	return awsutil.Prettify(s)
 18327  }
 18328  
 18329  // GoString returns the string representation.
 18330  //
 18331  // API parameter values that are decorated as "sensitive" in the API will not
 18332  // be included in the string output. The member name will be present, but the
 18333  // value will be replaced with "sensitive".
 18334  func (s UpdateJobStatusInput) GoString() string {
 18335  	return s.String()
 18336  }
 18337  
 18338  // Validate inspects the fields of the type to determine if they are valid.
 18339  func (s *UpdateJobStatusInput) Validate() error {
 18340  	invalidParams := request.ErrInvalidParams{Context: "UpdateJobStatusInput"}
 18341  	if s.AccountId == nil {
 18342  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
 18343  	}
 18344  	if s.AccountId != nil && len(*s.AccountId) < 1 {
 18345  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
 18346  	}
 18347  	if s.JobId == nil {
 18348  		invalidParams.Add(request.NewErrParamRequired("JobId"))
 18349  	}
 18350  	if s.JobId != nil && len(*s.JobId) < 5 {
 18351  		invalidParams.Add(request.NewErrParamMinLen("JobId", 5))
 18352  	}
 18353  	if s.RequestedJobStatus == nil {
 18354  		invalidParams.Add(request.NewErrParamRequired("RequestedJobStatus"))
 18355  	}
 18356  	if s.StatusUpdateReason != nil && len(*s.StatusUpdateReason) < 1 {
 18357  		invalidParams.Add(request.NewErrParamMinLen("StatusUpdateReason", 1))
 18358  	}
 18359  
 18360  	if invalidParams.Len() > 0 {
 18361  		return invalidParams
 18362  	}
 18363  	return nil
 18364  }
 18365  
 18366  // SetAccountId sets the AccountId field's value.
 18367  func (s *UpdateJobStatusInput) SetAccountId(v string) *UpdateJobStatusInput {
 18368  	s.AccountId = &v
 18369  	return s
 18370  }
 18371  
 18372  // SetJobId sets the JobId field's value.
 18373  func (s *UpdateJobStatusInput) SetJobId(v string) *UpdateJobStatusInput {
 18374  	s.JobId = &v
 18375  	return s
 18376  }
 18377  
 18378  // SetRequestedJobStatus sets the RequestedJobStatus field's value.
 18379  func (s *UpdateJobStatusInput) SetRequestedJobStatus(v string) *UpdateJobStatusInput {
 18380  	s.RequestedJobStatus = &v
 18381  	return s
 18382  }
 18383  
 18384  // SetStatusUpdateReason sets the StatusUpdateReason field's value.
 18385  func (s *UpdateJobStatusInput) SetStatusUpdateReason(v string) *UpdateJobStatusInput {
 18386  	s.StatusUpdateReason = &v
 18387  	return s
 18388  }
 18389  
 18390  func (s *UpdateJobStatusInput) hostLabels() map[string]string {
 18391  	return map[string]string{
 18392  		"AccountId": aws.StringValue(s.AccountId),
 18393  	}
 18394  }
 18395  
 18396  type UpdateJobStatusOutput struct {
 18397  	_ struct{} `type:"structure"`
 18398  
 18399  	// The ID for the job whose status was updated.
 18400  	JobId *string `min:"5" type:"string"`
 18401  
 18402  	// The current status for the specified job.
 18403  	Status *string `type:"string" enum:"JobStatus"`
 18404  
 18405  	// The reason that the specified job's status was updated.
 18406  	StatusUpdateReason *string `min:"1" type:"string"`
 18407  }
 18408  
 18409  // String returns the string representation.
 18410  //
 18411  // API parameter values that are decorated as "sensitive" in the API will not
 18412  // be included in the string output. The member name will be present, but the
 18413  // value will be replaced with "sensitive".
 18414  func (s UpdateJobStatusOutput) String() string {
 18415  	return awsutil.Prettify(s)
 18416  }
 18417  
 18418  // GoString returns the string representation.
 18419  //
 18420  // API parameter values that are decorated as "sensitive" in the API will not
 18421  // be included in the string output. The member name will be present, but the
 18422  // value will be replaced with "sensitive".
 18423  func (s UpdateJobStatusOutput) GoString() string {
 18424  	return s.String()
 18425  }
 18426  
 18427  // SetJobId sets the JobId field's value.
 18428  func (s *UpdateJobStatusOutput) SetJobId(v string) *UpdateJobStatusOutput {
 18429  	s.JobId = &v
 18430  	return s
 18431  }
 18432  
 18433  // SetStatus sets the Status field's value.
 18434  func (s *UpdateJobStatusOutput) SetStatus(v string) *UpdateJobStatusOutput {
 18435  	s.Status = &v
 18436  	return s
 18437  }
 18438  
 18439  // SetStatusUpdateReason sets the StatusUpdateReason field's value.
 18440  func (s *UpdateJobStatusOutput) SetStatusUpdateReason(v string) *UpdateJobStatusOutput {
 18441  	s.StatusUpdateReason = &v
 18442  	return s
 18443  }
 18444  
 18445  // The virtual private cloud (VPC) configuration for an access point.
 18446  type VpcConfiguration struct {
 18447  	_ struct{} `type:"structure"`
 18448  
 18449  	// If this field is specified, this access point will only allow connections
 18450  	// from the specified VPC ID.
 18451  	//
 18452  	// VpcId is a required field
 18453  	VpcId *string `min:"1" type:"string" required:"true"`
 18454  }
 18455  
 18456  // String returns the string representation.
 18457  //
 18458  // API parameter values that are decorated as "sensitive" in the API will not
 18459  // be included in the string output. The member name will be present, but the
 18460  // value will be replaced with "sensitive".
 18461  func (s VpcConfiguration) String() string {
 18462  	return awsutil.Prettify(s)
 18463  }
 18464  
 18465  // GoString returns the string representation.
 18466  //
 18467  // API parameter values that are decorated as "sensitive" in the API will not
 18468  // be included in the string output. The member name will be present, but the
 18469  // value will be replaced with "sensitive".
 18470  func (s VpcConfiguration) GoString() string {
 18471  	return s.String()
 18472  }
 18473  
 18474  // Validate inspects the fields of the type to determine if they are valid.
 18475  func (s *VpcConfiguration) Validate() error {
 18476  	invalidParams := request.ErrInvalidParams{Context: "VpcConfiguration"}
 18477  	if s.VpcId == nil {
 18478  		invalidParams.Add(request.NewErrParamRequired("VpcId"))
 18479  	}
 18480  	if s.VpcId != nil && len(*s.VpcId) < 1 {
 18481  		invalidParams.Add(request.NewErrParamMinLen("VpcId", 1))
 18482  	}
 18483  
 18484  	if invalidParams.Len() > 0 {
 18485  		return invalidParams
 18486  	}
 18487  	return nil
 18488  }
 18489  
 18490  // SetVpcId sets the VpcId field's value.
 18491  func (s *VpcConfiguration) SetVpcId(v string) *VpcConfiguration {
 18492  	s.VpcId = &v
 18493  	return s
 18494  }
 18495  
 18496  const (
 18497  	// AsyncOperationNameCreateMultiRegionAccessPoint is a AsyncOperationName enum value
 18498  	AsyncOperationNameCreateMultiRegionAccessPoint = "CreateMultiRegionAccessPoint"
 18499  
 18500  	// AsyncOperationNameDeleteMultiRegionAccessPoint is a AsyncOperationName enum value
 18501  	AsyncOperationNameDeleteMultiRegionAccessPoint = "DeleteMultiRegionAccessPoint"
 18502  
 18503  	// AsyncOperationNamePutMultiRegionAccessPointPolicy is a AsyncOperationName enum value
 18504  	AsyncOperationNamePutMultiRegionAccessPointPolicy = "PutMultiRegionAccessPointPolicy"
 18505  )
 18506  
 18507  // AsyncOperationName_Values returns all elements of the AsyncOperationName enum
 18508  func AsyncOperationName_Values() []string {
 18509  	return []string{
 18510  		AsyncOperationNameCreateMultiRegionAccessPoint,
 18511  		AsyncOperationNameDeleteMultiRegionAccessPoint,
 18512  		AsyncOperationNamePutMultiRegionAccessPointPolicy,
 18513  	}
 18514  }
 18515  
 18516  const (
 18517  	// BucketCannedACLPrivate is a BucketCannedACL enum value
 18518  	BucketCannedACLPrivate = "private"
 18519  
 18520  	// BucketCannedACLPublicRead is a BucketCannedACL enum value
 18521  	BucketCannedACLPublicRead = "public-read"
 18522  
 18523  	// BucketCannedACLPublicReadWrite is a BucketCannedACL enum value
 18524  	BucketCannedACLPublicReadWrite = "public-read-write"
 18525  
 18526  	// BucketCannedACLAuthenticatedRead is a BucketCannedACL enum value
 18527  	BucketCannedACLAuthenticatedRead = "authenticated-read"
 18528  )
 18529  
 18530  // BucketCannedACL_Values returns all elements of the BucketCannedACL enum
 18531  func BucketCannedACL_Values() []string {
 18532  	return []string{
 18533  		BucketCannedACLPrivate,
 18534  		BucketCannedACLPublicRead,
 18535  		BucketCannedACLPublicReadWrite,
 18536  		BucketCannedACLAuthenticatedRead,
 18537  	}
 18538  }
 18539  
 18540  const (
 18541  	// BucketLocationConstraintEu is a BucketLocationConstraint enum value
 18542  	BucketLocationConstraintEu = "EU"
 18543  
 18544  	// BucketLocationConstraintEuWest1 is a BucketLocationConstraint enum value
 18545  	BucketLocationConstraintEuWest1 = "eu-west-1"
 18546  
 18547  	// BucketLocationConstraintUsWest1 is a BucketLocationConstraint enum value
 18548  	BucketLocationConstraintUsWest1 = "us-west-1"
 18549  
 18550  	// BucketLocationConstraintUsWest2 is a BucketLocationConstraint enum value
 18551  	BucketLocationConstraintUsWest2 = "us-west-2"
 18552  
 18553  	// BucketLocationConstraintApSouth1 is a BucketLocationConstraint enum value
 18554  	BucketLocationConstraintApSouth1 = "ap-south-1"
 18555  
 18556  	// BucketLocationConstraintApSoutheast1 is a BucketLocationConstraint enum value
 18557  	BucketLocationConstraintApSoutheast1 = "ap-southeast-1"
 18558  
 18559  	// BucketLocationConstraintApSoutheast2 is a BucketLocationConstraint enum value
 18560  	BucketLocationConstraintApSoutheast2 = "ap-southeast-2"
 18561  
 18562  	// BucketLocationConstraintApNortheast1 is a BucketLocationConstraint enum value
 18563  	BucketLocationConstraintApNortheast1 = "ap-northeast-1"
 18564  
 18565  	// BucketLocationConstraintSaEast1 is a BucketLocationConstraint enum value
 18566  	BucketLocationConstraintSaEast1 = "sa-east-1"
 18567  
 18568  	// BucketLocationConstraintCnNorth1 is a BucketLocationConstraint enum value
 18569  	BucketLocationConstraintCnNorth1 = "cn-north-1"
 18570  
 18571  	// BucketLocationConstraintEuCentral1 is a BucketLocationConstraint enum value
 18572  	BucketLocationConstraintEuCentral1 = "eu-central-1"
 18573  )
 18574  
 18575  // BucketLocationConstraint_Values returns all elements of the BucketLocationConstraint enum
 18576  func BucketLocationConstraint_Values() []string {
 18577  	return []string{
 18578  		BucketLocationConstraintEu,
 18579  		BucketLocationConstraintEuWest1,
 18580  		BucketLocationConstraintUsWest1,
 18581  		BucketLocationConstraintUsWest2,
 18582  		BucketLocationConstraintApSouth1,
 18583  		BucketLocationConstraintApSoutheast1,
 18584  		BucketLocationConstraintApSoutheast2,
 18585  		BucketLocationConstraintApNortheast1,
 18586  		BucketLocationConstraintSaEast1,
 18587  		BucketLocationConstraintCnNorth1,
 18588  		BucketLocationConstraintEuCentral1,
 18589  	}
 18590  }
 18591  
 18592  const (
 18593  	// ExpirationStatusEnabled is a ExpirationStatus enum value
 18594  	ExpirationStatusEnabled = "Enabled"
 18595  
 18596  	// ExpirationStatusDisabled is a ExpirationStatus enum value
 18597  	ExpirationStatusDisabled = "Disabled"
 18598  )
 18599  
 18600  // ExpirationStatus_Values returns all elements of the ExpirationStatus enum
 18601  func ExpirationStatus_Values() []string {
 18602  	return []string{
 18603  		ExpirationStatusEnabled,
 18604  		ExpirationStatusDisabled,
 18605  	}
 18606  }
 18607  
 18608  const (
 18609  	// FormatCsv is a Format enum value
 18610  	FormatCsv = "CSV"
 18611  
 18612  	// FormatParquet is a Format enum value
 18613  	FormatParquet = "Parquet"
 18614  )
 18615  
 18616  // Format_Values returns all elements of the Format enum
 18617  func Format_Values() []string {
 18618  	return []string{
 18619  		FormatCsv,
 18620  		FormatParquet,
 18621  	}
 18622  }
 18623  
 18624  const (
 18625  	// JobManifestFieldNameIgnore is a JobManifestFieldName enum value
 18626  	JobManifestFieldNameIgnore = "Ignore"
 18627  
 18628  	// JobManifestFieldNameBucket is a JobManifestFieldName enum value
 18629  	JobManifestFieldNameBucket = "Bucket"
 18630  
 18631  	// JobManifestFieldNameKey is a JobManifestFieldName enum value
 18632  	JobManifestFieldNameKey = "Key"
 18633  
 18634  	// JobManifestFieldNameVersionId is a JobManifestFieldName enum value
 18635  	JobManifestFieldNameVersionId = "VersionId"
 18636  )
 18637  
 18638  // JobManifestFieldName_Values returns all elements of the JobManifestFieldName enum
 18639  func JobManifestFieldName_Values() []string {
 18640  	return []string{
 18641  		JobManifestFieldNameIgnore,
 18642  		JobManifestFieldNameBucket,
 18643  		JobManifestFieldNameKey,
 18644  		JobManifestFieldNameVersionId,
 18645  	}
 18646  }
 18647  
 18648  const (
 18649  	// JobManifestFormatS3batchOperationsCsv20180820 is a JobManifestFormat enum value
 18650  	JobManifestFormatS3batchOperationsCsv20180820 = "S3BatchOperations_CSV_20180820"
 18651  
 18652  	// JobManifestFormatS3inventoryReportCsv20161130 is a JobManifestFormat enum value
 18653  	JobManifestFormatS3inventoryReportCsv20161130 = "S3InventoryReport_CSV_20161130"
 18654  )
 18655  
 18656  // JobManifestFormat_Values returns all elements of the JobManifestFormat enum
 18657  func JobManifestFormat_Values() []string {
 18658  	return []string{
 18659  		JobManifestFormatS3batchOperationsCsv20180820,
 18660  		JobManifestFormatS3inventoryReportCsv20161130,
 18661  	}
 18662  }
 18663  
 18664  const (
 18665  	// JobReportFormatReportCsv20180820 is a JobReportFormat enum value
 18666  	JobReportFormatReportCsv20180820 = "Report_CSV_20180820"
 18667  )
 18668  
 18669  // JobReportFormat_Values returns all elements of the JobReportFormat enum
 18670  func JobReportFormat_Values() []string {
 18671  	return []string{
 18672  		JobReportFormatReportCsv20180820,
 18673  	}
 18674  }
 18675  
 18676  const (
 18677  	// JobReportScopeAllTasks is a JobReportScope enum value
 18678  	JobReportScopeAllTasks = "AllTasks"
 18679  
 18680  	// JobReportScopeFailedTasksOnly is a JobReportScope enum value
 18681  	JobReportScopeFailedTasksOnly = "FailedTasksOnly"
 18682  )
 18683  
 18684  // JobReportScope_Values returns all elements of the JobReportScope enum
 18685  func JobReportScope_Values() []string {
 18686  	return []string{
 18687  		JobReportScopeAllTasks,
 18688  		JobReportScopeFailedTasksOnly,
 18689  	}
 18690  }
 18691  
 18692  const (
 18693  	// JobStatusActive is a JobStatus enum value
 18694  	JobStatusActive = "Active"
 18695  
 18696  	// JobStatusCancelled is a JobStatus enum value
 18697  	JobStatusCancelled = "Cancelled"
 18698  
 18699  	// JobStatusCancelling is a JobStatus enum value
 18700  	JobStatusCancelling = "Cancelling"
 18701  
 18702  	// JobStatusComplete is a JobStatus enum value
 18703  	JobStatusComplete = "Complete"
 18704  
 18705  	// JobStatusCompleting is a JobStatus enum value
 18706  	JobStatusCompleting = "Completing"
 18707  
 18708  	// JobStatusFailed is a JobStatus enum value
 18709  	JobStatusFailed = "Failed"
 18710  
 18711  	// JobStatusFailing is a JobStatus enum value
 18712  	JobStatusFailing = "Failing"
 18713  
 18714  	// JobStatusNew is a JobStatus enum value
 18715  	JobStatusNew = "New"
 18716  
 18717  	// JobStatusPaused is a JobStatus enum value
 18718  	JobStatusPaused = "Paused"
 18719  
 18720  	// JobStatusPausing is a JobStatus enum value
 18721  	JobStatusPausing = "Pausing"
 18722  
 18723  	// JobStatusPreparing is a JobStatus enum value
 18724  	JobStatusPreparing = "Preparing"
 18725  
 18726  	// JobStatusReady is a JobStatus enum value
 18727  	JobStatusReady = "Ready"
 18728  
 18729  	// JobStatusSuspended is a JobStatus enum value
 18730  	JobStatusSuspended = "Suspended"
 18731  )
 18732  
 18733  // JobStatus_Values returns all elements of the JobStatus enum
 18734  func JobStatus_Values() []string {
 18735  	return []string{
 18736  		JobStatusActive,
 18737  		JobStatusCancelled,
 18738  		JobStatusCancelling,
 18739  		JobStatusComplete,
 18740  		JobStatusCompleting,
 18741  		JobStatusFailed,
 18742  		JobStatusFailing,
 18743  		JobStatusNew,
 18744  		JobStatusPaused,
 18745  		JobStatusPausing,
 18746  		JobStatusPreparing,
 18747  		JobStatusReady,
 18748  		JobStatusSuspended,
 18749  	}
 18750  }
 18751  
 18752  const (
 18753  	// MultiRegionAccessPointStatusReady is a MultiRegionAccessPointStatus enum value
 18754  	MultiRegionAccessPointStatusReady = "READY"
 18755  
 18756  	// MultiRegionAccessPointStatusInconsistentAcrossRegions is a MultiRegionAccessPointStatus enum value
 18757  	MultiRegionAccessPointStatusInconsistentAcrossRegions = "INCONSISTENT_ACROSS_REGIONS"
 18758  
 18759  	// MultiRegionAccessPointStatusCreating is a MultiRegionAccessPointStatus enum value
 18760  	MultiRegionAccessPointStatusCreating = "CREATING"
 18761  
 18762  	// MultiRegionAccessPointStatusPartiallyCreated is a MultiRegionAccessPointStatus enum value
 18763  	MultiRegionAccessPointStatusPartiallyCreated = "PARTIALLY_CREATED"
 18764  
 18765  	// MultiRegionAccessPointStatusPartiallyDeleted is a MultiRegionAccessPointStatus enum value
 18766  	MultiRegionAccessPointStatusPartiallyDeleted = "PARTIALLY_DELETED"
 18767  
 18768  	// MultiRegionAccessPointStatusDeleting is a MultiRegionAccessPointStatus enum value
 18769  	MultiRegionAccessPointStatusDeleting = "DELETING"
 18770  )
 18771  
 18772  // MultiRegionAccessPointStatus_Values returns all elements of the MultiRegionAccessPointStatus enum
 18773  func MultiRegionAccessPointStatus_Values() []string {
 18774  	return []string{
 18775  		MultiRegionAccessPointStatusReady,
 18776  		MultiRegionAccessPointStatusInconsistentAcrossRegions,
 18777  		MultiRegionAccessPointStatusCreating,
 18778  		MultiRegionAccessPointStatusPartiallyCreated,
 18779  		MultiRegionAccessPointStatusPartiallyDeleted,
 18780  		MultiRegionAccessPointStatusDeleting,
 18781  	}
 18782  }
 18783  
 18784  const (
 18785  	// NetworkOriginInternet is a NetworkOrigin enum value
 18786  	NetworkOriginInternet = "Internet"
 18787  
 18788  	// NetworkOriginVpc is a NetworkOrigin enum value
 18789  	NetworkOriginVpc = "VPC"
 18790  )
 18791  
 18792  // NetworkOrigin_Values returns all elements of the NetworkOrigin enum
 18793  func NetworkOrigin_Values() []string {
 18794  	return []string{
 18795  		NetworkOriginInternet,
 18796  		NetworkOriginVpc,
 18797  	}
 18798  }
 18799  
 18800  const (
 18801  	// ObjectLambdaAllowedFeatureGetObjectRange is a ObjectLambdaAllowedFeature enum value
 18802  	ObjectLambdaAllowedFeatureGetObjectRange = "GetObject-Range"
 18803  
 18804  	// ObjectLambdaAllowedFeatureGetObjectPartNumber is a ObjectLambdaAllowedFeature enum value
 18805  	ObjectLambdaAllowedFeatureGetObjectPartNumber = "GetObject-PartNumber"
 18806  )
 18807  
 18808  // ObjectLambdaAllowedFeature_Values returns all elements of the ObjectLambdaAllowedFeature enum
 18809  func ObjectLambdaAllowedFeature_Values() []string {
 18810  	return []string{
 18811  		ObjectLambdaAllowedFeatureGetObjectRange,
 18812  		ObjectLambdaAllowedFeatureGetObjectPartNumber,
 18813  	}
 18814  }
 18815  
 18816  const (
 18817  	// ObjectLambdaTransformationConfigurationActionGetObject is a ObjectLambdaTransformationConfigurationAction enum value
 18818  	ObjectLambdaTransformationConfigurationActionGetObject = "GetObject"
 18819  )
 18820  
 18821  // ObjectLambdaTransformationConfigurationAction_Values returns all elements of the ObjectLambdaTransformationConfigurationAction enum
 18822  func ObjectLambdaTransformationConfigurationAction_Values() []string {
 18823  	return []string{
 18824  		ObjectLambdaTransformationConfigurationActionGetObject,
 18825  	}
 18826  }
 18827  
 18828  const (
 18829  	// OperationNameLambdaInvoke is a OperationName enum value
 18830  	OperationNameLambdaInvoke = "LambdaInvoke"
 18831  
 18832  	// OperationNameS3putObjectCopy is a OperationName enum value
 18833  	OperationNameS3putObjectCopy = "S3PutObjectCopy"
 18834  
 18835  	// OperationNameS3putObjectAcl is a OperationName enum value
 18836  	OperationNameS3putObjectAcl = "S3PutObjectAcl"
 18837  
 18838  	// OperationNameS3putObjectTagging is a OperationName enum value
 18839  	OperationNameS3putObjectTagging = "S3PutObjectTagging"
 18840  
 18841  	// OperationNameS3deleteObjectTagging is a OperationName enum value
 18842  	OperationNameS3deleteObjectTagging = "S3DeleteObjectTagging"
 18843  
 18844  	// OperationNameS3initiateRestoreObject is a OperationName enum value
 18845  	OperationNameS3initiateRestoreObject = "S3InitiateRestoreObject"
 18846  
 18847  	// OperationNameS3putObjectLegalHold is a OperationName enum value
 18848  	OperationNameS3putObjectLegalHold = "S3PutObjectLegalHold"
 18849  
 18850  	// OperationNameS3putObjectRetention is a OperationName enum value
 18851  	OperationNameS3putObjectRetention = "S3PutObjectRetention"
 18852  )
 18853  
 18854  // OperationName_Values returns all elements of the OperationName enum
 18855  func OperationName_Values() []string {
 18856  	return []string{
 18857  		OperationNameLambdaInvoke,
 18858  		OperationNameS3putObjectCopy,
 18859  		OperationNameS3putObjectAcl,
 18860  		OperationNameS3putObjectTagging,
 18861  		OperationNameS3deleteObjectTagging,
 18862  		OperationNameS3initiateRestoreObject,
 18863  		OperationNameS3putObjectLegalHold,
 18864  		OperationNameS3putObjectRetention,
 18865  	}
 18866  }
 18867  
 18868  const (
 18869  	// OutputSchemaVersionV1 is a OutputSchemaVersion enum value
 18870  	OutputSchemaVersionV1 = "V_1"
 18871  )
 18872  
 18873  // OutputSchemaVersion_Values returns all elements of the OutputSchemaVersion enum
 18874  func OutputSchemaVersion_Values() []string {
 18875  	return []string{
 18876  		OutputSchemaVersionV1,
 18877  	}
 18878  }
 18879  
 18880  const (
 18881  	// RequestedJobStatusCancelled is a RequestedJobStatus enum value
 18882  	RequestedJobStatusCancelled = "Cancelled"
 18883  
 18884  	// RequestedJobStatusReady is a RequestedJobStatus enum value
 18885  	RequestedJobStatusReady = "Ready"
 18886  )
 18887  
 18888  // RequestedJobStatus_Values returns all elements of the RequestedJobStatus enum
 18889  func RequestedJobStatus_Values() []string {
 18890  	return []string{
 18891  		RequestedJobStatusCancelled,
 18892  		RequestedJobStatusReady,
 18893  	}
 18894  }
 18895  
 18896  const (
 18897  	// S3CannedAccessControlListPrivate is a S3CannedAccessControlList enum value
 18898  	S3CannedAccessControlListPrivate = "private"
 18899  
 18900  	// S3CannedAccessControlListPublicRead is a S3CannedAccessControlList enum value
 18901  	S3CannedAccessControlListPublicRead = "public-read"
 18902  
 18903  	// S3CannedAccessControlListPublicReadWrite is a S3CannedAccessControlList enum value
 18904  	S3CannedAccessControlListPublicReadWrite = "public-read-write"
 18905  
 18906  	// S3CannedAccessControlListAwsExecRead is a S3CannedAccessControlList enum value
 18907  	S3CannedAccessControlListAwsExecRead = "aws-exec-read"
 18908  
 18909  	// S3CannedAccessControlListAuthenticatedRead is a S3CannedAccessControlList enum value
 18910  	S3CannedAccessControlListAuthenticatedRead = "authenticated-read"
 18911  
 18912  	// S3CannedAccessControlListBucketOwnerRead is a S3CannedAccessControlList enum value
 18913  	S3CannedAccessControlListBucketOwnerRead = "bucket-owner-read"
 18914  
 18915  	// S3CannedAccessControlListBucketOwnerFullControl is a S3CannedAccessControlList enum value
 18916  	S3CannedAccessControlListBucketOwnerFullControl = "bucket-owner-full-control"
 18917  )
 18918  
 18919  // S3CannedAccessControlList_Values returns all elements of the S3CannedAccessControlList enum
 18920  func S3CannedAccessControlList_Values() []string {
 18921  	return []string{
 18922  		S3CannedAccessControlListPrivate,
 18923  		S3CannedAccessControlListPublicRead,
 18924  		S3CannedAccessControlListPublicReadWrite,
 18925  		S3CannedAccessControlListAwsExecRead,
 18926  		S3CannedAccessControlListAuthenticatedRead,
 18927  		S3CannedAccessControlListBucketOwnerRead,
 18928  		S3CannedAccessControlListBucketOwnerFullControl,
 18929  	}
 18930  }
 18931  
 18932  const (
 18933  	// S3GlacierJobTierBulk is a S3GlacierJobTier enum value
 18934  	S3GlacierJobTierBulk = "BULK"
 18935  
 18936  	// S3GlacierJobTierStandard is a S3GlacierJobTier enum value
 18937  	S3GlacierJobTierStandard = "STANDARD"
 18938  )
 18939  
 18940  // S3GlacierJobTier_Values returns all elements of the S3GlacierJobTier enum
 18941  func S3GlacierJobTier_Values() []string {
 18942  	return []string{
 18943  		S3GlacierJobTierBulk,
 18944  		S3GlacierJobTierStandard,
 18945  	}
 18946  }
 18947  
 18948  const (
 18949  	// S3GranteeTypeIdentifierId is a S3GranteeTypeIdentifier enum value
 18950  	S3GranteeTypeIdentifierId = "id"
 18951  
 18952  	// S3GranteeTypeIdentifierEmailAddress is a S3GranteeTypeIdentifier enum value
 18953  	S3GranteeTypeIdentifierEmailAddress = "emailAddress"
 18954  
 18955  	// S3GranteeTypeIdentifierUri is a S3GranteeTypeIdentifier enum value
 18956  	S3GranteeTypeIdentifierUri = "uri"
 18957  )
 18958  
 18959  // S3GranteeTypeIdentifier_Values returns all elements of the S3GranteeTypeIdentifier enum
 18960  func S3GranteeTypeIdentifier_Values() []string {
 18961  	return []string{
 18962  		S3GranteeTypeIdentifierId,
 18963  		S3GranteeTypeIdentifierEmailAddress,
 18964  		S3GranteeTypeIdentifierUri,
 18965  	}
 18966  }
 18967  
 18968  const (
 18969  	// S3MetadataDirectiveCopy is a S3MetadataDirective enum value
 18970  	S3MetadataDirectiveCopy = "COPY"
 18971  
 18972  	// S3MetadataDirectiveReplace is a S3MetadataDirective enum value
 18973  	S3MetadataDirectiveReplace = "REPLACE"
 18974  )
 18975  
 18976  // S3MetadataDirective_Values returns all elements of the S3MetadataDirective enum
 18977  func S3MetadataDirective_Values() []string {
 18978  	return []string{
 18979  		S3MetadataDirectiveCopy,
 18980  		S3MetadataDirectiveReplace,
 18981  	}
 18982  }
 18983  
 18984  const (
 18985  	// S3ObjectLockLegalHoldStatusOff is a S3ObjectLockLegalHoldStatus enum value
 18986  	S3ObjectLockLegalHoldStatusOff = "OFF"
 18987  
 18988  	// S3ObjectLockLegalHoldStatusOn is a S3ObjectLockLegalHoldStatus enum value
 18989  	S3ObjectLockLegalHoldStatusOn = "ON"
 18990  )
 18991  
 18992  // S3ObjectLockLegalHoldStatus_Values returns all elements of the S3ObjectLockLegalHoldStatus enum
 18993  func S3ObjectLockLegalHoldStatus_Values() []string {
 18994  	return []string{
 18995  		S3ObjectLockLegalHoldStatusOff,
 18996  		S3ObjectLockLegalHoldStatusOn,
 18997  	}
 18998  }
 18999  
 19000  const (
 19001  	// S3ObjectLockModeCompliance is a S3ObjectLockMode enum value
 19002  	S3ObjectLockModeCompliance = "COMPLIANCE"
 19003  
 19004  	// S3ObjectLockModeGovernance is a S3ObjectLockMode enum value
 19005  	S3ObjectLockModeGovernance = "GOVERNANCE"
 19006  )
 19007  
 19008  // S3ObjectLockMode_Values returns all elements of the S3ObjectLockMode enum
 19009  func S3ObjectLockMode_Values() []string {
 19010  	return []string{
 19011  		S3ObjectLockModeCompliance,
 19012  		S3ObjectLockModeGovernance,
 19013  	}
 19014  }
 19015  
 19016  const (
 19017  	// S3ObjectLockRetentionModeCompliance is a S3ObjectLockRetentionMode enum value
 19018  	S3ObjectLockRetentionModeCompliance = "COMPLIANCE"
 19019  
 19020  	// S3ObjectLockRetentionModeGovernance is a S3ObjectLockRetentionMode enum value
 19021  	S3ObjectLockRetentionModeGovernance = "GOVERNANCE"
 19022  )
 19023  
 19024  // S3ObjectLockRetentionMode_Values returns all elements of the S3ObjectLockRetentionMode enum
 19025  func S3ObjectLockRetentionMode_Values() []string {
 19026  	return []string{
 19027  		S3ObjectLockRetentionModeCompliance,
 19028  		S3ObjectLockRetentionModeGovernance,
 19029  	}
 19030  }
 19031  
 19032  const (
 19033  	// S3PermissionFullControl is a S3Permission enum value
 19034  	S3PermissionFullControl = "FULL_CONTROL"
 19035  
 19036  	// S3PermissionRead is a S3Permission enum value
 19037  	S3PermissionRead = "READ"
 19038  
 19039  	// S3PermissionWrite is a S3Permission enum value
 19040  	S3PermissionWrite = "WRITE"
 19041  
 19042  	// S3PermissionReadAcp is a S3Permission enum value
 19043  	S3PermissionReadAcp = "READ_ACP"
 19044  
 19045  	// S3PermissionWriteAcp is a S3Permission enum value
 19046  	S3PermissionWriteAcp = "WRITE_ACP"
 19047  )
 19048  
 19049  // S3Permission_Values returns all elements of the S3Permission enum
 19050  func S3Permission_Values() []string {
 19051  	return []string{
 19052  		S3PermissionFullControl,
 19053  		S3PermissionRead,
 19054  		S3PermissionWrite,
 19055  		S3PermissionReadAcp,
 19056  		S3PermissionWriteAcp,
 19057  	}
 19058  }
 19059  
 19060  const (
 19061  	// S3SSEAlgorithmAes256 is a S3SSEAlgorithm enum value
 19062  	S3SSEAlgorithmAes256 = "AES256"
 19063  
 19064  	// S3SSEAlgorithmKms is a S3SSEAlgorithm enum value
 19065  	S3SSEAlgorithmKms = "KMS"
 19066  )
 19067  
 19068  // S3SSEAlgorithm_Values returns all elements of the S3SSEAlgorithm enum
 19069  func S3SSEAlgorithm_Values() []string {
 19070  	return []string{
 19071  		S3SSEAlgorithmAes256,
 19072  		S3SSEAlgorithmKms,
 19073  	}
 19074  }
 19075  
 19076  const (
 19077  	// S3StorageClassStandard is a S3StorageClass enum value
 19078  	S3StorageClassStandard = "STANDARD"
 19079  
 19080  	// S3StorageClassStandardIa is a S3StorageClass enum value
 19081  	S3StorageClassStandardIa = "STANDARD_IA"
 19082  
 19083  	// S3StorageClassOnezoneIa is a S3StorageClass enum value
 19084  	S3StorageClassOnezoneIa = "ONEZONE_IA"
 19085  
 19086  	// S3StorageClassGlacier is a S3StorageClass enum value
 19087  	S3StorageClassGlacier = "GLACIER"
 19088  
 19089  	// S3StorageClassIntelligentTiering is a S3StorageClass enum value
 19090  	S3StorageClassIntelligentTiering = "INTELLIGENT_TIERING"
 19091  
 19092  	// S3StorageClassDeepArchive is a S3StorageClass enum value
 19093  	S3StorageClassDeepArchive = "DEEP_ARCHIVE"
 19094  )
 19095  
 19096  // S3StorageClass_Values returns all elements of the S3StorageClass enum
 19097  func S3StorageClass_Values() []string {
 19098  	return []string{
 19099  		S3StorageClassStandard,
 19100  		S3StorageClassStandardIa,
 19101  		S3StorageClassOnezoneIa,
 19102  		S3StorageClassGlacier,
 19103  		S3StorageClassIntelligentTiering,
 19104  		S3StorageClassDeepArchive,
 19105  	}
 19106  }
 19107  
 19108  const (
 19109  	// TransitionStorageClassGlacier is a TransitionStorageClass enum value
 19110  	TransitionStorageClassGlacier = "GLACIER"
 19111  
 19112  	// TransitionStorageClassStandardIa is a TransitionStorageClass enum value
 19113  	TransitionStorageClassStandardIa = "STANDARD_IA"
 19114  
 19115  	// TransitionStorageClassOnezoneIa is a TransitionStorageClass enum value
 19116  	TransitionStorageClassOnezoneIa = "ONEZONE_IA"
 19117  
 19118  	// TransitionStorageClassIntelligentTiering is a TransitionStorageClass enum value
 19119  	TransitionStorageClassIntelligentTiering = "INTELLIGENT_TIERING"
 19120  
 19121  	// TransitionStorageClassDeepArchive is a TransitionStorageClass enum value
 19122  	TransitionStorageClassDeepArchive = "DEEP_ARCHIVE"
 19123  )
 19124  
 19125  // TransitionStorageClass_Values returns all elements of the TransitionStorageClass enum
 19126  func TransitionStorageClass_Values() []string {
 19127  	return []string{
 19128  		TransitionStorageClassGlacier,
 19129  		TransitionStorageClassStandardIa,
 19130  		TransitionStorageClassOnezoneIa,
 19131  		TransitionStorageClassIntelligentTiering,
 19132  		TransitionStorageClassDeepArchive,
 19133  	}
 19134  }