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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package accessanalyzer
     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/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/restjson"
    14  )
    15  
    16  const opApplyArchiveRule = "ApplyArchiveRule"
    17  
    18  // ApplyArchiveRuleRequest generates a "aws/request.Request" representing the
    19  // client's request for the ApplyArchiveRule operation. The "output" return
    20  // value will be populated with the request's response once the request completes
    21  // successfully.
    22  //
    23  // Use "Send" method on the returned Request to send the API call to the service.
    24  // the "output" return value is not valid until after Send returns without error.
    25  //
    26  // See ApplyArchiveRule for more information on using the ApplyArchiveRule
    27  // API call, and error handling.
    28  //
    29  // This method is useful when you want to inject custom logic or configuration
    30  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
    31  //
    32  //
    33  //    // Example sending a request using the ApplyArchiveRuleRequest method.
    34  //    req, resp := client.ApplyArchiveRuleRequest(params)
    35  //
    36  //    err := req.Send()
    37  //    if err == nil { // resp is now filled
    38  //        fmt.Println(resp)
    39  //    }
    40  //
    41  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ApplyArchiveRule
    42  func (c *AccessAnalyzer) ApplyArchiveRuleRequest(input *ApplyArchiveRuleInput) (req *request.Request, output *ApplyArchiveRuleOutput) {
    43  	op := &request.Operation{
    44  		Name:       opApplyArchiveRule,
    45  		HTTPMethod: "PUT",
    46  		HTTPPath:   "/archive-rule",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &ApplyArchiveRuleInput{}
    51  	}
    52  
    53  	output = &ApplyArchiveRuleOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
    56  	return
    57  }
    58  
    59  // ApplyArchiveRule API operation for Access Analyzer.
    60  //
    61  // Retroactively applies the archive rule to existing findings that meet the
    62  // archive rule criteria.
    63  //
    64  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    65  // with awserr.Error's Code and Message methods to get detailed information about
    66  // the error.
    67  //
    68  // See the AWS API reference guide for Access Analyzer's
    69  // API operation ApplyArchiveRule for usage and error information.
    70  //
    71  // Returned Error Types:
    72  //   * ResourceNotFoundException
    73  //   The specified resource could not be found.
    74  //
    75  //   * ValidationException
    76  //   Validation exception error.
    77  //
    78  //   * InternalServerException
    79  //   Internal server error.
    80  //
    81  //   * ThrottlingException
    82  //   Throttling limit exceeded error.
    83  //
    84  //   * AccessDeniedException
    85  //   You do not have sufficient access to perform this action.
    86  //
    87  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ApplyArchiveRule
    88  func (c *AccessAnalyzer) ApplyArchiveRule(input *ApplyArchiveRuleInput) (*ApplyArchiveRuleOutput, error) {
    89  	req, out := c.ApplyArchiveRuleRequest(input)
    90  	return out, req.Send()
    91  }
    92  
    93  // ApplyArchiveRuleWithContext is the same as ApplyArchiveRule with the addition of
    94  // the ability to pass a context and additional request options.
    95  //
    96  // See ApplyArchiveRule for details on how to use this API operation.
    97  //
    98  // The context must be non-nil and will be used for request cancellation. If
    99  // the context is nil a panic will occur. In the future the SDK may create
   100  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   101  // for more information on using Contexts.
   102  func (c *AccessAnalyzer) ApplyArchiveRuleWithContext(ctx aws.Context, input *ApplyArchiveRuleInput, opts ...request.Option) (*ApplyArchiveRuleOutput, error) {
   103  	req, out := c.ApplyArchiveRuleRequest(input)
   104  	req.SetContext(ctx)
   105  	req.ApplyOptions(opts...)
   106  	return out, req.Send()
   107  }
   108  
   109  const opCancelPolicyGeneration = "CancelPolicyGeneration"
   110  
   111  // CancelPolicyGenerationRequest generates a "aws/request.Request" representing the
   112  // client's request for the CancelPolicyGeneration operation. The "output" return
   113  // value will be populated with the request's response once the request completes
   114  // successfully.
   115  //
   116  // Use "Send" method on the returned Request to send the API call to the service.
   117  // the "output" return value is not valid until after Send returns without error.
   118  //
   119  // See CancelPolicyGeneration for more information on using the CancelPolicyGeneration
   120  // API call, and error handling.
   121  //
   122  // This method is useful when you want to inject custom logic or configuration
   123  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   124  //
   125  //
   126  //    // Example sending a request using the CancelPolicyGenerationRequest method.
   127  //    req, resp := client.CancelPolicyGenerationRequest(params)
   128  //
   129  //    err := req.Send()
   130  //    if err == nil { // resp is now filled
   131  //        fmt.Println(resp)
   132  //    }
   133  //
   134  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CancelPolicyGeneration
   135  func (c *AccessAnalyzer) CancelPolicyGenerationRequest(input *CancelPolicyGenerationInput) (req *request.Request, output *CancelPolicyGenerationOutput) {
   136  	op := &request.Operation{
   137  		Name:       opCancelPolicyGeneration,
   138  		HTTPMethod: "PUT",
   139  		HTTPPath:   "/policy/generation/{jobId}",
   140  	}
   141  
   142  	if input == nil {
   143  		input = &CancelPolicyGenerationInput{}
   144  	}
   145  
   146  	output = &CancelPolicyGenerationOutput{}
   147  	req = c.newRequest(op, input, output)
   148  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   149  	return
   150  }
   151  
   152  // CancelPolicyGeneration API operation for Access Analyzer.
   153  //
   154  // Cancels the requested policy generation.
   155  //
   156  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   157  // with awserr.Error's Code and Message methods to get detailed information about
   158  // the error.
   159  //
   160  // See the AWS API reference guide for Access Analyzer's
   161  // API operation CancelPolicyGeneration for usage and error information.
   162  //
   163  // Returned Error Types:
   164  //   * ValidationException
   165  //   Validation exception error.
   166  //
   167  //   * InternalServerException
   168  //   Internal server error.
   169  //
   170  //   * ThrottlingException
   171  //   Throttling limit exceeded error.
   172  //
   173  //   * AccessDeniedException
   174  //   You do not have sufficient access to perform this action.
   175  //
   176  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CancelPolicyGeneration
   177  func (c *AccessAnalyzer) CancelPolicyGeneration(input *CancelPolicyGenerationInput) (*CancelPolicyGenerationOutput, error) {
   178  	req, out := c.CancelPolicyGenerationRequest(input)
   179  	return out, req.Send()
   180  }
   181  
   182  // CancelPolicyGenerationWithContext is the same as CancelPolicyGeneration with the addition of
   183  // the ability to pass a context and additional request options.
   184  //
   185  // See CancelPolicyGeneration for details on how to use this API operation.
   186  //
   187  // The context must be non-nil and will be used for request cancellation. If
   188  // the context is nil a panic will occur. In the future the SDK may create
   189  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   190  // for more information on using Contexts.
   191  func (c *AccessAnalyzer) CancelPolicyGenerationWithContext(ctx aws.Context, input *CancelPolicyGenerationInput, opts ...request.Option) (*CancelPolicyGenerationOutput, error) {
   192  	req, out := c.CancelPolicyGenerationRequest(input)
   193  	req.SetContext(ctx)
   194  	req.ApplyOptions(opts...)
   195  	return out, req.Send()
   196  }
   197  
   198  const opCreateAccessPreview = "CreateAccessPreview"
   199  
   200  // CreateAccessPreviewRequest generates a "aws/request.Request" representing the
   201  // client's request for the CreateAccessPreview operation. The "output" return
   202  // value will be populated with the request's response once the request completes
   203  // successfully.
   204  //
   205  // Use "Send" method on the returned Request to send the API call to the service.
   206  // the "output" return value is not valid until after Send returns without error.
   207  //
   208  // See CreateAccessPreview for more information on using the CreateAccessPreview
   209  // API call, and error handling.
   210  //
   211  // This method is useful when you want to inject custom logic or configuration
   212  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   213  //
   214  //
   215  //    // Example sending a request using the CreateAccessPreviewRequest method.
   216  //    req, resp := client.CreateAccessPreviewRequest(params)
   217  //
   218  //    err := req.Send()
   219  //    if err == nil { // resp is now filled
   220  //        fmt.Println(resp)
   221  //    }
   222  //
   223  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CreateAccessPreview
   224  func (c *AccessAnalyzer) CreateAccessPreviewRequest(input *CreateAccessPreviewInput) (req *request.Request, output *CreateAccessPreviewOutput) {
   225  	op := &request.Operation{
   226  		Name:       opCreateAccessPreview,
   227  		HTTPMethod: "PUT",
   228  		HTTPPath:   "/access-preview",
   229  	}
   230  
   231  	if input == nil {
   232  		input = &CreateAccessPreviewInput{}
   233  	}
   234  
   235  	output = &CreateAccessPreviewOutput{}
   236  	req = c.newRequest(op, input, output)
   237  	return
   238  }
   239  
   240  // CreateAccessPreview API operation for Access Analyzer.
   241  //
   242  // Creates an access preview that allows you to preview IAM Access Analyzer
   243  // findings for your resource before deploying resource permissions.
   244  //
   245  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   246  // with awserr.Error's Code and Message methods to get detailed information about
   247  // the error.
   248  //
   249  // See the AWS API reference guide for Access Analyzer's
   250  // API operation CreateAccessPreview for usage and error information.
   251  //
   252  // Returned Error Types:
   253  //   * ResourceNotFoundException
   254  //   The specified resource could not be found.
   255  //
   256  //   * ConflictException
   257  //   A conflict exception error.
   258  //
   259  //   * ValidationException
   260  //   Validation exception error.
   261  //
   262  //   * InternalServerException
   263  //   Internal server error.
   264  //
   265  //   * ServiceQuotaExceededException
   266  //   Service quote met error.
   267  //
   268  //   * ThrottlingException
   269  //   Throttling limit exceeded error.
   270  //
   271  //   * AccessDeniedException
   272  //   You do not have sufficient access to perform this action.
   273  //
   274  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CreateAccessPreview
   275  func (c *AccessAnalyzer) CreateAccessPreview(input *CreateAccessPreviewInput) (*CreateAccessPreviewOutput, error) {
   276  	req, out := c.CreateAccessPreviewRequest(input)
   277  	return out, req.Send()
   278  }
   279  
   280  // CreateAccessPreviewWithContext is the same as CreateAccessPreview with the addition of
   281  // the ability to pass a context and additional request options.
   282  //
   283  // See CreateAccessPreview for details on how to use this API operation.
   284  //
   285  // The context must be non-nil and will be used for request cancellation. If
   286  // the context is nil a panic will occur. In the future the SDK may create
   287  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   288  // for more information on using Contexts.
   289  func (c *AccessAnalyzer) CreateAccessPreviewWithContext(ctx aws.Context, input *CreateAccessPreviewInput, opts ...request.Option) (*CreateAccessPreviewOutput, error) {
   290  	req, out := c.CreateAccessPreviewRequest(input)
   291  	req.SetContext(ctx)
   292  	req.ApplyOptions(opts...)
   293  	return out, req.Send()
   294  }
   295  
   296  const opCreateAnalyzer = "CreateAnalyzer"
   297  
   298  // CreateAnalyzerRequest generates a "aws/request.Request" representing the
   299  // client's request for the CreateAnalyzer operation. The "output" return
   300  // value will be populated with the request's response once the request completes
   301  // successfully.
   302  //
   303  // Use "Send" method on the returned Request to send the API call to the service.
   304  // the "output" return value is not valid until after Send returns without error.
   305  //
   306  // See CreateAnalyzer for more information on using the CreateAnalyzer
   307  // API call, and error handling.
   308  //
   309  // This method is useful when you want to inject custom logic or configuration
   310  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   311  //
   312  //
   313  //    // Example sending a request using the CreateAnalyzerRequest method.
   314  //    req, resp := client.CreateAnalyzerRequest(params)
   315  //
   316  //    err := req.Send()
   317  //    if err == nil { // resp is now filled
   318  //        fmt.Println(resp)
   319  //    }
   320  //
   321  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CreateAnalyzer
   322  func (c *AccessAnalyzer) CreateAnalyzerRequest(input *CreateAnalyzerInput) (req *request.Request, output *CreateAnalyzerOutput) {
   323  	op := &request.Operation{
   324  		Name:       opCreateAnalyzer,
   325  		HTTPMethod: "PUT",
   326  		HTTPPath:   "/analyzer",
   327  	}
   328  
   329  	if input == nil {
   330  		input = &CreateAnalyzerInput{}
   331  	}
   332  
   333  	output = &CreateAnalyzerOutput{}
   334  	req = c.newRequest(op, input, output)
   335  	return
   336  }
   337  
   338  // CreateAnalyzer API operation for Access Analyzer.
   339  //
   340  // Creates an analyzer for your account.
   341  //
   342  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   343  // with awserr.Error's Code and Message methods to get detailed information about
   344  // the error.
   345  //
   346  // See the AWS API reference guide for Access Analyzer's
   347  // API operation CreateAnalyzer for usage and error information.
   348  //
   349  // Returned Error Types:
   350  //   * ConflictException
   351  //   A conflict exception error.
   352  //
   353  //   * ValidationException
   354  //   Validation exception error.
   355  //
   356  //   * InternalServerException
   357  //   Internal server error.
   358  //
   359  //   * ServiceQuotaExceededException
   360  //   Service quote met error.
   361  //
   362  //   * ThrottlingException
   363  //   Throttling limit exceeded error.
   364  //
   365  //   * AccessDeniedException
   366  //   You do not have sufficient access to perform this action.
   367  //
   368  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CreateAnalyzer
   369  func (c *AccessAnalyzer) CreateAnalyzer(input *CreateAnalyzerInput) (*CreateAnalyzerOutput, error) {
   370  	req, out := c.CreateAnalyzerRequest(input)
   371  	return out, req.Send()
   372  }
   373  
   374  // CreateAnalyzerWithContext is the same as CreateAnalyzer with the addition of
   375  // the ability to pass a context and additional request options.
   376  //
   377  // See CreateAnalyzer for details on how to use this API operation.
   378  //
   379  // The context must be non-nil and will be used for request cancellation. If
   380  // the context is nil a panic will occur. In the future the SDK may create
   381  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   382  // for more information on using Contexts.
   383  func (c *AccessAnalyzer) CreateAnalyzerWithContext(ctx aws.Context, input *CreateAnalyzerInput, opts ...request.Option) (*CreateAnalyzerOutput, error) {
   384  	req, out := c.CreateAnalyzerRequest(input)
   385  	req.SetContext(ctx)
   386  	req.ApplyOptions(opts...)
   387  	return out, req.Send()
   388  }
   389  
   390  const opCreateArchiveRule = "CreateArchiveRule"
   391  
   392  // CreateArchiveRuleRequest generates a "aws/request.Request" representing the
   393  // client's request for the CreateArchiveRule operation. The "output" return
   394  // value will be populated with the request's response once the request completes
   395  // successfully.
   396  //
   397  // Use "Send" method on the returned Request to send the API call to the service.
   398  // the "output" return value is not valid until after Send returns without error.
   399  //
   400  // See CreateArchiveRule for more information on using the CreateArchiveRule
   401  // API call, and error handling.
   402  //
   403  // This method is useful when you want to inject custom logic or configuration
   404  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   405  //
   406  //
   407  //    // Example sending a request using the CreateArchiveRuleRequest method.
   408  //    req, resp := client.CreateArchiveRuleRequest(params)
   409  //
   410  //    err := req.Send()
   411  //    if err == nil { // resp is now filled
   412  //        fmt.Println(resp)
   413  //    }
   414  //
   415  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CreateArchiveRule
   416  func (c *AccessAnalyzer) CreateArchiveRuleRequest(input *CreateArchiveRuleInput) (req *request.Request, output *CreateArchiveRuleOutput) {
   417  	op := &request.Operation{
   418  		Name:       opCreateArchiveRule,
   419  		HTTPMethod: "PUT",
   420  		HTTPPath:   "/analyzer/{analyzerName}/archive-rule",
   421  	}
   422  
   423  	if input == nil {
   424  		input = &CreateArchiveRuleInput{}
   425  	}
   426  
   427  	output = &CreateArchiveRuleOutput{}
   428  	req = c.newRequest(op, input, output)
   429  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   430  	return
   431  }
   432  
   433  // CreateArchiveRule API operation for Access Analyzer.
   434  //
   435  // Creates an archive rule for the specified analyzer. Archive rules automatically
   436  // archive new findings that meet the criteria you define when you create the
   437  // rule.
   438  //
   439  // To learn about filter keys that you can use to create an archive rule, see
   440  // IAM Access Analyzer filter keys (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html)
   441  // in the IAM User Guide.
   442  //
   443  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   444  // with awserr.Error's Code and Message methods to get detailed information about
   445  // the error.
   446  //
   447  // See the AWS API reference guide for Access Analyzer's
   448  // API operation CreateArchiveRule for usage and error information.
   449  //
   450  // Returned Error Types:
   451  //   * ResourceNotFoundException
   452  //   The specified resource could not be found.
   453  //
   454  //   * ConflictException
   455  //   A conflict exception error.
   456  //
   457  //   * ValidationException
   458  //   Validation exception error.
   459  //
   460  //   * InternalServerException
   461  //   Internal server error.
   462  //
   463  //   * ServiceQuotaExceededException
   464  //   Service quote met error.
   465  //
   466  //   * ThrottlingException
   467  //   Throttling limit exceeded error.
   468  //
   469  //   * AccessDeniedException
   470  //   You do not have sufficient access to perform this action.
   471  //
   472  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CreateArchiveRule
   473  func (c *AccessAnalyzer) CreateArchiveRule(input *CreateArchiveRuleInput) (*CreateArchiveRuleOutput, error) {
   474  	req, out := c.CreateArchiveRuleRequest(input)
   475  	return out, req.Send()
   476  }
   477  
   478  // CreateArchiveRuleWithContext is the same as CreateArchiveRule with the addition of
   479  // the ability to pass a context and additional request options.
   480  //
   481  // See CreateArchiveRule for details on how to use this API operation.
   482  //
   483  // The context must be non-nil and will be used for request cancellation. If
   484  // the context is nil a panic will occur. In the future the SDK may create
   485  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   486  // for more information on using Contexts.
   487  func (c *AccessAnalyzer) CreateArchiveRuleWithContext(ctx aws.Context, input *CreateArchiveRuleInput, opts ...request.Option) (*CreateArchiveRuleOutput, error) {
   488  	req, out := c.CreateArchiveRuleRequest(input)
   489  	req.SetContext(ctx)
   490  	req.ApplyOptions(opts...)
   491  	return out, req.Send()
   492  }
   493  
   494  const opDeleteAnalyzer = "DeleteAnalyzer"
   495  
   496  // DeleteAnalyzerRequest generates a "aws/request.Request" representing the
   497  // client's request for the DeleteAnalyzer operation. The "output" return
   498  // value will be populated with the request's response once the request completes
   499  // successfully.
   500  //
   501  // Use "Send" method on the returned Request to send the API call to the service.
   502  // the "output" return value is not valid until after Send returns without error.
   503  //
   504  // See DeleteAnalyzer for more information on using the DeleteAnalyzer
   505  // API call, and error handling.
   506  //
   507  // This method is useful when you want to inject custom logic or configuration
   508  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   509  //
   510  //
   511  //    // Example sending a request using the DeleteAnalyzerRequest method.
   512  //    req, resp := client.DeleteAnalyzerRequest(params)
   513  //
   514  //    err := req.Send()
   515  //    if err == nil { // resp is now filled
   516  //        fmt.Println(resp)
   517  //    }
   518  //
   519  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/DeleteAnalyzer
   520  func (c *AccessAnalyzer) DeleteAnalyzerRequest(input *DeleteAnalyzerInput) (req *request.Request, output *DeleteAnalyzerOutput) {
   521  	op := &request.Operation{
   522  		Name:       opDeleteAnalyzer,
   523  		HTTPMethod: "DELETE",
   524  		HTTPPath:   "/analyzer/{analyzerName}",
   525  	}
   526  
   527  	if input == nil {
   528  		input = &DeleteAnalyzerInput{}
   529  	}
   530  
   531  	output = &DeleteAnalyzerOutput{}
   532  	req = c.newRequest(op, input, output)
   533  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   534  	return
   535  }
   536  
   537  // DeleteAnalyzer API operation for Access Analyzer.
   538  //
   539  // Deletes the specified analyzer. When you delete an analyzer, IAM Access Analyzer
   540  // is disabled for the account or organization in the current or specific Region.
   541  // All findings that were generated by the analyzer are deleted. You cannot
   542  // undo this action.
   543  //
   544  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   545  // with awserr.Error's Code and Message methods to get detailed information about
   546  // the error.
   547  //
   548  // See the AWS API reference guide for Access Analyzer's
   549  // API operation DeleteAnalyzer for usage and error information.
   550  //
   551  // Returned Error Types:
   552  //   * ResourceNotFoundException
   553  //   The specified resource could not be found.
   554  //
   555  //   * ValidationException
   556  //   Validation exception error.
   557  //
   558  //   * InternalServerException
   559  //   Internal server error.
   560  //
   561  //   * ThrottlingException
   562  //   Throttling limit exceeded error.
   563  //
   564  //   * AccessDeniedException
   565  //   You do not have sufficient access to perform this action.
   566  //
   567  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/DeleteAnalyzer
   568  func (c *AccessAnalyzer) DeleteAnalyzer(input *DeleteAnalyzerInput) (*DeleteAnalyzerOutput, error) {
   569  	req, out := c.DeleteAnalyzerRequest(input)
   570  	return out, req.Send()
   571  }
   572  
   573  // DeleteAnalyzerWithContext is the same as DeleteAnalyzer with the addition of
   574  // the ability to pass a context and additional request options.
   575  //
   576  // See DeleteAnalyzer for details on how to use this API operation.
   577  //
   578  // The context must be non-nil and will be used for request cancellation. If
   579  // the context is nil a panic will occur. In the future the SDK may create
   580  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   581  // for more information on using Contexts.
   582  func (c *AccessAnalyzer) DeleteAnalyzerWithContext(ctx aws.Context, input *DeleteAnalyzerInput, opts ...request.Option) (*DeleteAnalyzerOutput, error) {
   583  	req, out := c.DeleteAnalyzerRequest(input)
   584  	req.SetContext(ctx)
   585  	req.ApplyOptions(opts...)
   586  	return out, req.Send()
   587  }
   588  
   589  const opDeleteArchiveRule = "DeleteArchiveRule"
   590  
   591  // DeleteArchiveRuleRequest generates a "aws/request.Request" representing the
   592  // client's request for the DeleteArchiveRule operation. The "output" return
   593  // value will be populated with the request's response once the request completes
   594  // successfully.
   595  //
   596  // Use "Send" method on the returned Request to send the API call to the service.
   597  // the "output" return value is not valid until after Send returns without error.
   598  //
   599  // See DeleteArchiveRule for more information on using the DeleteArchiveRule
   600  // API call, and error handling.
   601  //
   602  // This method is useful when you want to inject custom logic or configuration
   603  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   604  //
   605  //
   606  //    // Example sending a request using the DeleteArchiveRuleRequest method.
   607  //    req, resp := client.DeleteArchiveRuleRequest(params)
   608  //
   609  //    err := req.Send()
   610  //    if err == nil { // resp is now filled
   611  //        fmt.Println(resp)
   612  //    }
   613  //
   614  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/DeleteArchiveRule
   615  func (c *AccessAnalyzer) DeleteArchiveRuleRequest(input *DeleteArchiveRuleInput) (req *request.Request, output *DeleteArchiveRuleOutput) {
   616  	op := &request.Operation{
   617  		Name:       opDeleteArchiveRule,
   618  		HTTPMethod: "DELETE",
   619  		HTTPPath:   "/analyzer/{analyzerName}/archive-rule/{ruleName}",
   620  	}
   621  
   622  	if input == nil {
   623  		input = &DeleteArchiveRuleInput{}
   624  	}
   625  
   626  	output = &DeleteArchiveRuleOutput{}
   627  	req = c.newRequest(op, input, output)
   628  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   629  	return
   630  }
   631  
   632  // DeleteArchiveRule API operation for Access Analyzer.
   633  //
   634  // Deletes the specified archive rule.
   635  //
   636  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   637  // with awserr.Error's Code and Message methods to get detailed information about
   638  // the error.
   639  //
   640  // See the AWS API reference guide for Access Analyzer's
   641  // API operation DeleteArchiveRule for usage and error information.
   642  //
   643  // Returned Error Types:
   644  //   * ResourceNotFoundException
   645  //   The specified resource could not be found.
   646  //
   647  //   * ValidationException
   648  //   Validation exception error.
   649  //
   650  //   * InternalServerException
   651  //   Internal server error.
   652  //
   653  //   * ThrottlingException
   654  //   Throttling limit exceeded error.
   655  //
   656  //   * AccessDeniedException
   657  //   You do not have sufficient access to perform this action.
   658  //
   659  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/DeleteArchiveRule
   660  func (c *AccessAnalyzer) DeleteArchiveRule(input *DeleteArchiveRuleInput) (*DeleteArchiveRuleOutput, error) {
   661  	req, out := c.DeleteArchiveRuleRequest(input)
   662  	return out, req.Send()
   663  }
   664  
   665  // DeleteArchiveRuleWithContext is the same as DeleteArchiveRule with the addition of
   666  // the ability to pass a context and additional request options.
   667  //
   668  // See DeleteArchiveRule for details on how to use this API operation.
   669  //
   670  // The context must be non-nil and will be used for request cancellation. If
   671  // the context is nil a panic will occur. In the future the SDK may create
   672  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   673  // for more information on using Contexts.
   674  func (c *AccessAnalyzer) DeleteArchiveRuleWithContext(ctx aws.Context, input *DeleteArchiveRuleInput, opts ...request.Option) (*DeleteArchiveRuleOutput, error) {
   675  	req, out := c.DeleteArchiveRuleRequest(input)
   676  	req.SetContext(ctx)
   677  	req.ApplyOptions(opts...)
   678  	return out, req.Send()
   679  }
   680  
   681  const opGetAccessPreview = "GetAccessPreview"
   682  
   683  // GetAccessPreviewRequest generates a "aws/request.Request" representing the
   684  // client's request for the GetAccessPreview operation. The "output" return
   685  // value will be populated with the request's response once the request completes
   686  // successfully.
   687  //
   688  // Use "Send" method on the returned Request to send the API call to the service.
   689  // the "output" return value is not valid until after Send returns without error.
   690  //
   691  // See GetAccessPreview for more information on using the GetAccessPreview
   692  // API call, and error handling.
   693  //
   694  // This method is useful when you want to inject custom logic or configuration
   695  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   696  //
   697  //
   698  //    // Example sending a request using the GetAccessPreviewRequest method.
   699  //    req, resp := client.GetAccessPreviewRequest(params)
   700  //
   701  //    err := req.Send()
   702  //    if err == nil { // resp is now filled
   703  //        fmt.Println(resp)
   704  //    }
   705  //
   706  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetAccessPreview
   707  func (c *AccessAnalyzer) GetAccessPreviewRequest(input *GetAccessPreviewInput) (req *request.Request, output *GetAccessPreviewOutput) {
   708  	op := &request.Operation{
   709  		Name:       opGetAccessPreview,
   710  		HTTPMethod: "GET",
   711  		HTTPPath:   "/access-preview/{accessPreviewId}",
   712  	}
   713  
   714  	if input == nil {
   715  		input = &GetAccessPreviewInput{}
   716  	}
   717  
   718  	output = &GetAccessPreviewOutput{}
   719  	req = c.newRequest(op, input, output)
   720  	return
   721  }
   722  
   723  // GetAccessPreview API operation for Access Analyzer.
   724  //
   725  // Retrieves information about an access preview for the specified analyzer.
   726  //
   727  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   728  // with awserr.Error's Code and Message methods to get detailed information about
   729  // the error.
   730  //
   731  // See the AWS API reference guide for Access Analyzer's
   732  // API operation GetAccessPreview for usage and error information.
   733  //
   734  // Returned Error Types:
   735  //   * ResourceNotFoundException
   736  //   The specified resource could not be found.
   737  //
   738  //   * ValidationException
   739  //   Validation exception error.
   740  //
   741  //   * InternalServerException
   742  //   Internal server error.
   743  //
   744  //   * ThrottlingException
   745  //   Throttling limit exceeded error.
   746  //
   747  //   * AccessDeniedException
   748  //   You do not have sufficient access to perform this action.
   749  //
   750  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetAccessPreview
   751  func (c *AccessAnalyzer) GetAccessPreview(input *GetAccessPreviewInput) (*GetAccessPreviewOutput, error) {
   752  	req, out := c.GetAccessPreviewRequest(input)
   753  	return out, req.Send()
   754  }
   755  
   756  // GetAccessPreviewWithContext is the same as GetAccessPreview with the addition of
   757  // the ability to pass a context and additional request options.
   758  //
   759  // See GetAccessPreview for details on how to use this API operation.
   760  //
   761  // The context must be non-nil and will be used for request cancellation. If
   762  // the context is nil a panic will occur. In the future the SDK may create
   763  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   764  // for more information on using Contexts.
   765  func (c *AccessAnalyzer) GetAccessPreviewWithContext(ctx aws.Context, input *GetAccessPreviewInput, opts ...request.Option) (*GetAccessPreviewOutput, error) {
   766  	req, out := c.GetAccessPreviewRequest(input)
   767  	req.SetContext(ctx)
   768  	req.ApplyOptions(opts...)
   769  	return out, req.Send()
   770  }
   771  
   772  const opGetAnalyzedResource = "GetAnalyzedResource"
   773  
   774  // GetAnalyzedResourceRequest generates a "aws/request.Request" representing the
   775  // client's request for the GetAnalyzedResource operation. The "output" return
   776  // value will be populated with the request's response once the request completes
   777  // successfully.
   778  //
   779  // Use "Send" method on the returned Request to send the API call to the service.
   780  // the "output" return value is not valid until after Send returns without error.
   781  //
   782  // See GetAnalyzedResource for more information on using the GetAnalyzedResource
   783  // API call, and error handling.
   784  //
   785  // This method is useful when you want to inject custom logic or configuration
   786  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   787  //
   788  //
   789  //    // Example sending a request using the GetAnalyzedResourceRequest method.
   790  //    req, resp := client.GetAnalyzedResourceRequest(params)
   791  //
   792  //    err := req.Send()
   793  //    if err == nil { // resp is now filled
   794  //        fmt.Println(resp)
   795  //    }
   796  //
   797  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetAnalyzedResource
   798  func (c *AccessAnalyzer) GetAnalyzedResourceRequest(input *GetAnalyzedResourceInput) (req *request.Request, output *GetAnalyzedResourceOutput) {
   799  	op := &request.Operation{
   800  		Name:       opGetAnalyzedResource,
   801  		HTTPMethod: "GET",
   802  		HTTPPath:   "/analyzed-resource",
   803  	}
   804  
   805  	if input == nil {
   806  		input = &GetAnalyzedResourceInput{}
   807  	}
   808  
   809  	output = &GetAnalyzedResourceOutput{}
   810  	req = c.newRequest(op, input, output)
   811  	return
   812  }
   813  
   814  // GetAnalyzedResource API operation for Access Analyzer.
   815  //
   816  // Retrieves information about a resource that was analyzed.
   817  //
   818  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   819  // with awserr.Error's Code and Message methods to get detailed information about
   820  // the error.
   821  //
   822  // See the AWS API reference guide for Access Analyzer's
   823  // API operation GetAnalyzedResource for usage and error information.
   824  //
   825  // Returned Error Types:
   826  //   * ResourceNotFoundException
   827  //   The specified resource could not be found.
   828  //
   829  //   * ValidationException
   830  //   Validation exception error.
   831  //
   832  //   * InternalServerException
   833  //   Internal server error.
   834  //
   835  //   * ThrottlingException
   836  //   Throttling limit exceeded error.
   837  //
   838  //   * AccessDeniedException
   839  //   You do not have sufficient access to perform this action.
   840  //
   841  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetAnalyzedResource
   842  func (c *AccessAnalyzer) GetAnalyzedResource(input *GetAnalyzedResourceInput) (*GetAnalyzedResourceOutput, error) {
   843  	req, out := c.GetAnalyzedResourceRequest(input)
   844  	return out, req.Send()
   845  }
   846  
   847  // GetAnalyzedResourceWithContext is the same as GetAnalyzedResource with the addition of
   848  // the ability to pass a context and additional request options.
   849  //
   850  // See GetAnalyzedResource for details on how to use this API operation.
   851  //
   852  // The context must be non-nil and will be used for request cancellation. If
   853  // the context is nil a panic will occur. In the future the SDK may create
   854  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   855  // for more information on using Contexts.
   856  func (c *AccessAnalyzer) GetAnalyzedResourceWithContext(ctx aws.Context, input *GetAnalyzedResourceInput, opts ...request.Option) (*GetAnalyzedResourceOutput, error) {
   857  	req, out := c.GetAnalyzedResourceRequest(input)
   858  	req.SetContext(ctx)
   859  	req.ApplyOptions(opts...)
   860  	return out, req.Send()
   861  }
   862  
   863  const opGetAnalyzer = "GetAnalyzer"
   864  
   865  // GetAnalyzerRequest generates a "aws/request.Request" representing the
   866  // client's request for the GetAnalyzer operation. The "output" return
   867  // value will be populated with the request's response once the request completes
   868  // successfully.
   869  //
   870  // Use "Send" method on the returned Request to send the API call to the service.
   871  // the "output" return value is not valid until after Send returns without error.
   872  //
   873  // See GetAnalyzer for more information on using the GetAnalyzer
   874  // API call, and error handling.
   875  //
   876  // This method is useful when you want to inject custom logic or configuration
   877  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   878  //
   879  //
   880  //    // Example sending a request using the GetAnalyzerRequest method.
   881  //    req, resp := client.GetAnalyzerRequest(params)
   882  //
   883  //    err := req.Send()
   884  //    if err == nil { // resp is now filled
   885  //        fmt.Println(resp)
   886  //    }
   887  //
   888  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetAnalyzer
   889  func (c *AccessAnalyzer) GetAnalyzerRequest(input *GetAnalyzerInput) (req *request.Request, output *GetAnalyzerOutput) {
   890  	op := &request.Operation{
   891  		Name:       opGetAnalyzer,
   892  		HTTPMethod: "GET",
   893  		HTTPPath:   "/analyzer/{analyzerName}",
   894  	}
   895  
   896  	if input == nil {
   897  		input = &GetAnalyzerInput{}
   898  	}
   899  
   900  	output = &GetAnalyzerOutput{}
   901  	req = c.newRequest(op, input, output)
   902  	return
   903  }
   904  
   905  // GetAnalyzer API operation for Access Analyzer.
   906  //
   907  // Retrieves information about the specified analyzer.
   908  //
   909  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   910  // with awserr.Error's Code and Message methods to get detailed information about
   911  // the error.
   912  //
   913  // See the AWS API reference guide for Access Analyzer's
   914  // API operation GetAnalyzer for usage and error information.
   915  //
   916  // Returned Error Types:
   917  //   * ResourceNotFoundException
   918  //   The specified resource could not be found.
   919  //
   920  //   * ValidationException
   921  //   Validation exception error.
   922  //
   923  //   * InternalServerException
   924  //   Internal server error.
   925  //
   926  //   * ThrottlingException
   927  //   Throttling limit exceeded error.
   928  //
   929  //   * AccessDeniedException
   930  //   You do not have sufficient access to perform this action.
   931  //
   932  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetAnalyzer
   933  func (c *AccessAnalyzer) GetAnalyzer(input *GetAnalyzerInput) (*GetAnalyzerOutput, error) {
   934  	req, out := c.GetAnalyzerRequest(input)
   935  	return out, req.Send()
   936  }
   937  
   938  // GetAnalyzerWithContext is the same as GetAnalyzer with the addition of
   939  // the ability to pass a context and additional request options.
   940  //
   941  // See GetAnalyzer for details on how to use this API operation.
   942  //
   943  // The context must be non-nil and will be used for request cancellation. If
   944  // the context is nil a panic will occur. In the future the SDK may create
   945  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   946  // for more information on using Contexts.
   947  func (c *AccessAnalyzer) GetAnalyzerWithContext(ctx aws.Context, input *GetAnalyzerInput, opts ...request.Option) (*GetAnalyzerOutput, error) {
   948  	req, out := c.GetAnalyzerRequest(input)
   949  	req.SetContext(ctx)
   950  	req.ApplyOptions(opts...)
   951  	return out, req.Send()
   952  }
   953  
   954  const opGetArchiveRule = "GetArchiveRule"
   955  
   956  // GetArchiveRuleRequest generates a "aws/request.Request" representing the
   957  // client's request for the GetArchiveRule operation. The "output" return
   958  // value will be populated with the request's response once the request completes
   959  // successfully.
   960  //
   961  // Use "Send" method on the returned Request to send the API call to the service.
   962  // the "output" return value is not valid until after Send returns without error.
   963  //
   964  // See GetArchiveRule for more information on using the GetArchiveRule
   965  // API call, and error handling.
   966  //
   967  // This method is useful when you want to inject custom logic or configuration
   968  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   969  //
   970  //
   971  //    // Example sending a request using the GetArchiveRuleRequest method.
   972  //    req, resp := client.GetArchiveRuleRequest(params)
   973  //
   974  //    err := req.Send()
   975  //    if err == nil { // resp is now filled
   976  //        fmt.Println(resp)
   977  //    }
   978  //
   979  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetArchiveRule
   980  func (c *AccessAnalyzer) GetArchiveRuleRequest(input *GetArchiveRuleInput) (req *request.Request, output *GetArchiveRuleOutput) {
   981  	op := &request.Operation{
   982  		Name:       opGetArchiveRule,
   983  		HTTPMethod: "GET",
   984  		HTTPPath:   "/analyzer/{analyzerName}/archive-rule/{ruleName}",
   985  	}
   986  
   987  	if input == nil {
   988  		input = &GetArchiveRuleInput{}
   989  	}
   990  
   991  	output = &GetArchiveRuleOutput{}
   992  	req = c.newRequest(op, input, output)
   993  	return
   994  }
   995  
   996  // GetArchiveRule API operation for Access Analyzer.
   997  //
   998  // Retrieves information about an archive rule.
   999  //
  1000  // To learn about filter keys that you can use to create an archive rule, see
  1001  // IAM Access Analyzer filter keys (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html)
  1002  // in the IAM User Guide.
  1003  //
  1004  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1005  // with awserr.Error's Code and Message methods to get detailed information about
  1006  // the error.
  1007  //
  1008  // See the AWS API reference guide for Access Analyzer's
  1009  // API operation GetArchiveRule for usage and error information.
  1010  //
  1011  // Returned Error Types:
  1012  //   * ResourceNotFoundException
  1013  //   The specified resource could not be found.
  1014  //
  1015  //   * ValidationException
  1016  //   Validation exception error.
  1017  //
  1018  //   * InternalServerException
  1019  //   Internal server error.
  1020  //
  1021  //   * ThrottlingException
  1022  //   Throttling limit exceeded error.
  1023  //
  1024  //   * AccessDeniedException
  1025  //   You do not have sufficient access to perform this action.
  1026  //
  1027  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetArchiveRule
  1028  func (c *AccessAnalyzer) GetArchiveRule(input *GetArchiveRuleInput) (*GetArchiveRuleOutput, error) {
  1029  	req, out := c.GetArchiveRuleRequest(input)
  1030  	return out, req.Send()
  1031  }
  1032  
  1033  // GetArchiveRuleWithContext is the same as GetArchiveRule with the addition of
  1034  // the ability to pass a context and additional request options.
  1035  //
  1036  // See GetArchiveRule for details on how to use this API operation.
  1037  //
  1038  // The context must be non-nil and will be used for request cancellation. If
  1039  // the context is nil a panic will occur. In the future the SDK may create
  1040  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1041  // for more information on using Contexts.
  1042  func (c *AccessAnalyzer) GetArchiveRuleWithContext(ctx aws.Context, input *GetArchiveRuleInput, opts ...request.Option) (*GetArchiveRuleOutput, error) {
  1043  	req, out := c.GetArchiveRuleRequest(input)
  1044  	req.SetContext(ctx)
  1045  	req.ApplyOptions(opts...)
  1046  	return out, req.Send()
  1047  }
  1048  
  1049  const opGetFinding = "GetFinding"
  1050  
  1051  // GetFindingRequest generates a "aws/request.Request" representing the
  1052  // client's request for the GetFinding operation. The "output" return
  1053  // value will be populated with the request's response once the request completes
  1054  // successfully.
  1055  //
  1056  // Use "Send" method on the returned Request to send the API call to the service.
  1057  // the "output" return value is not valid until after Send returns without error.
  1058  //
  1059  // See GetFinding for more information on using the GetFinding
  1060  // API call, and error handling.
  1061  //
  1062  // This method is useful when you want to inject custom logic or configuration
  1063  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1064  //
  1065  //
  1066  //    // Example sending a request using the GetFindingRequest method.
  1067  //    req, resp := client.GetFindingRequest(params)
  1068  //
  1069  //    err := req.Send()
  1070  //    if err == nil { // resp is now filled
  1071  //        fmt.Println(resp)
  1072  //    }
  1073  //
  1074  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetFinding
  1075  func (c *AccessAnalyzer) GetFindingRequest(input *GetFindingInput) (req *request.Request, output *GetFindingOutput) {
  1076  	op := &request.Operation{
  1077  		Name:       opGetFinding,
  1078  		HTTPMethod: "GET",
  1079  		HTTPPath:   "/finding/{id}",
  1080  	}
  1081  
  1082  	if input == nil {
  1083  		input = &GetFindingInput{}
  1084  	}
  1085  
  1086  	output = &GetFindingOutput{}
  1087  	req = c.newRequest(op, input, output)
  1088  	return
  1089  }
  1090  
  1091  // GetFinding API operation for Access Analyzer.
  1092  //
  1093  // Retrieves information about the specified finding.
  1094  //
  1095  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1096  // with awserr.Error's Code and Message methods to get detailed information about
  1097  // the error.
  1098  //
  1099  // See the AWS API reference guide for Access Analyzer's
  1100  // API operation GetFinding for usage and error information.
  1101  //
  1102  // Returned Error Types:
  1103  //   * ResourceNotFoundException
  1104  //   The specified resource could not be found.
  1105  //
  1106  //   * ValidationException
  1107  //   Validation exception error.
  1108  //
  1109  //   * InternalServerException
  1110  //   Internal server error.
  1111  //
  1112  //   * ThrottlingException
  1113  //   Throttling limit exceeded error.
  1114  //
  1115  //   * AccessDeniedException
  1116  //   You do not have sufficient access to perform this action.
  1117  //
  1118  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetFinding
  1119  func (c *AccessAnalyzer) GetFinding(input *GetFindingInput) (*GetFindingOutput, error) {
  1120  	req, out := c.GetFindingRequest(input)
  1121  	return out, req.Send()
  1122  }
  1123  
  1124  // GetFindingWithContext is the same as GetFinding with the addition of
  1125  // the ability to pass a context and additional request options.
  1126  //
  1127  // See GetFinding for details on how to use this API operation.
  1128  //
  1129  // The context must be non-nil and will be used for request cancellation. If
  1130  // the context is nil a panic will occur. In the future the SDK may create
  1131  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1132  // for more information on using Contexts.
  1133  func (c *AccessAnalyzer) GetFindingWithContext(ctx aws.Context, input *GetFindingInput, opts ...request.Option) (*GetFindingOutput, error) {
  1134  	req, out := c.GetFindingRequest(input)
  1135  	req.SetContext(ctx)
  1136  	req.ApplyOptions(opts...)
  1137  	return out, req.Send()
  1138  }
  1139  
  1140  const opGetGeneratedPolicy = "GetGeneratedPolicy"
  1141  
  1142  // GetGeneratedPolicyRequest generates a "aws/request.Request" representing the
  1143  // client's request for the GetGeneratedPolicy operation. The "output" return
  1144  // value will be populated with the request's response once the request completes
  1145  // successfully.
  1146  //
  1147  // Use "Send" method on the returned Request to send the API call to the service.
  1148  // the "output" return value is not valid until after Send returns without error.
  1149  //
  1150  // See GetGeneratedPolicy for more information on using the GetGeneratedPolicy
  1151  // API call, and error handling.
  1152  //
  1153  // This method is useful when you want to inject custom logic or configuration
  1154  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1155  //
  1156  //
  1157  //    // Example sending a request using the GetGeneratedPolicyRequest method.
  1158  //    req, resp := client.GetGeneratedPolicyRequest(params)
  1159  //
  1160  //    err := req.Send()
  1161  //    if err == nil { // resp is now filled
  1162  //        fmt.Println(resp)
  1163  //    }
  1164  //
  1165  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetGeneratedPolicy
  1166  func (c *AccessAnalyzer) GetGeneratedPolicyRequest(input *GetGeneratedPolicyInput) (req *request.Request, output *GetGeneratedPolicyOutput) {
  1167  	op := &request.Operation{
  1168  		Name:       opGetGeneratedPolicy,
  1169  		HTTPMethod: "GET",
  1170  		HTTPPath:   "/policy/generation/{jobId}",
  1171  	}
  1172  
  1173  	if input == nil {
  1174  		input = &GetGeneratedPolicyInput{}
  1175  	}
  1176  
  1177  	output = &GetGeneratedPolicyOutput{}
  1178  	req = c.newRequest(op, input, output)
  1179  	return
  1180  }
  1181  
  1182  // GetGeneratedPolicy API operation for Access Analyzer.
  1183  //
  1184  // Retrieves the policy that was generated using StartPolicyGeneration.
  1185  //
  1186  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1187  // with awserr.Error's Code and Message methods to get detailed information about
  1188  // the error.
  1189  //
  1190  // See the AWS API reference guide for Access Analyzer's
  1191  // API operation GetGeneratedPolicy for usage and error information.
  1192  //
  1193  // Returned Error Types:
  1194  //   * ValidationException
  1195  //   Validation exception error.
  1196  //
  1197  //   * InternalServerException
  1198  //   Internal server error.
  1199  //
  1200  //   * ThrottlingException
  1201  //   Throttling limit exceeded error.
  1202  //
  1203  //   * AccessDeniedException
  1204  //   You do not have sufficient access to perform this action.
  1205  //
  1206  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetGeneratedPolicy
  1207  func (c *AccessAnalyzer) GetGeneratedPolicy(input *GetGeneratedPolicyInput) (*GetGeneratedPolicyOutput, error) {
  1208  	req, out := c.GetGeneratedPolicyRequest(input)
  1209  	return out, req.Send()
  1210  }
  1211  
  1212  // GetGeneratedPolicyWithContext is the same as GetGeneratedPolicy with the addition of
  1213  // the ability to pass a context and additional request options.
  1214  //
  1215  // See GetGeneratedPolicy for details on how to use this API operation.
  1216  //
  1217  // The context must be non-nil and will be used for request cancellation. If
  1218  // the context is nil a panic will occur. In the future the SDK may create
  1219  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1220  // for more information on using Contexts.
  1221  func (c *AccessAnalyzer) GetGeneratedPolicyWithContext(ctx aws.Context, input *GetGeneratedPolicyInput, opts ...request.Option) (*GetGeneratedPolicyOutput, error) {
  1222  	req, out := c.GetGeneratedPolicyRequest(input)
  1223  	req.SetContext(ctx)
  1224  	req.ApplyOptions(opts...)
  1225  	return out, req.Send()
  1226  }
  1227  
  1228  const opListAccessPreviewFindings = "ListAccessPreviewFindings"
  1229  
  1230  // ListAccessPreviewFindingsRequest generates a "aws/request.Request" representing the
  1231  // client's request for the ListAccessPreviewFindings operation. The "output" return
  1232  // value will be populated with the request's response once the request completes
  1233  // successfully.
  1234  //
  1235  // Use "Send" method on the returned Request to send the API call to the service.
  1236  // the "output" return value is not valid until after Send returns without error.
  1237  //
  1238  // See ListAccessPreviewFindings for more information on using the ListAccessPreviewFindings
  1239  // API call, and error handling.
  1240  //
  1241  // This method is useful when you want to inject custom logic or configuration
  1242  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1243  //
  1244  //
  1245  //    // Example sending a request using the ListAccessPreviewFindingsRequest method.
  1246  //    req, resp := client.ListAccessPreviewFindingsRequest(params)
  1247  //
  1248  //    err := req.Send()
  1249  //    if err == nil { // resp is now filled
  1250  //        fmt.Println(resp)
  1251  //    }
  1252  //
  1253  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAccessPreviewFindings
  1254  func (c *AccessAnalyzer) ListAccessPreviewFindingsRequest(input *ListAccessPreviewFindingsInput) (req *request.Request, output *ListAccessPreviewFindingsOutput) {
  1255  	op := &request.Operation{
  1256  		Name:       opListAccessPreviewFindings,
  1257  		HTTPMethod: "POST",
  1258  		HTTPPath:   "/access-preview/{accessPreviewId}",
  1259  		Paginator: &request.Paginator{
  1260  			InputTokens:     []string{"nextToken"},
  1261  			OutputTokens:    []string{"nextToken"},
  1262  			LimitToken:      "maxResults",
  1263  			TruncationToken: "",
  1264  		},
  1265  	}
  1266  
  1267  	if input == nil {
  1268  		input = &ListAccessPreviewFindingsInput{}
  1269  	}
  1270  
  1271  	output = &ListAccessPreviewFindingsOutput{}
  1272  	req = c.newRequest(op, input, output)
  1273  	return
  1274  }
  1275  
  1276  // ListAccessPreviewFindings API operation for Access Analyzer.
  1277  //
  1278  // Retrieves a list of access preview findings generated by the specified access
  1279  // preview.
  1280  //
  1281  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1282  // with awserr.Error's Code and Message methods to get detailed information about
  1283  // the error.
  1284  //
  1285  // See the AWS API reference guide for Access Analyzer's
  1286  // API operation ListAccessPreviewFindings for usage and error information.
  1287  //
  1288  // Returned Error Types:
  1289  //   * ResourceNotFoundException
  1290  //   The specified resource could not be found.
  1291  //
  1292  //   * ConflictException
  1293  //   A conflict exception error.
  1294  //
  1295  //   * ValidationException
  1296  //   Validation exception error.
  1297  //
  1298  //   * InternalServerException
  1299  //   Internal server error.
  1300  //
  1301  //   * ThrottlingException
  1302  //   Throttling limit exceeded error.
  1303  //
  1304  //   * AccessDeniedException
  1305  //   You do not have sufficient access to perform this action.
  1306  //
  1307  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAccessPreviewFindings
  1308  func (c *AccessAnalyzer) ListAccessPreviewFindings(input *ListAccessPreviewFindingsInput) (*ListAccessPreviewFindingsOutput, error) {
  1309  	req, out := c.ListAccessPreviewFindingsRequest(input)
  1310  	return out, req.Send()
  1311  }
  1312  
  1313  // ListAccessPreviewFindingsWithContext is the same as ListAccessPreviewFindings with the addition of
  1314  // the ability to pass a context and additional request options.
  1315  //
  1316  // See ListAccessPreviewFindings for details on how to use this API operation.
  1317  //
  1318  // The context must be non-nil and will be used for request cancellation. If
  1319  // the context is nil a panic will occur. In the future the SDK may create
  1320  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1321  // for more information on using Contexts.
  1322  func (c *AccessAnalyzer) ListAccessPreviewFindingsWithContext(ctx aws.Context, input *ListAccessPreviewFindingsInput, opts ...request.Option) (*ListAccessPreviewFindingsOutput, error) {
  1323  	req, out := c.ListAccessPreviewFindingsRequest(input)
  1324  	req.SetContext(ctx)
  1325  	req.ApplyOptions(opts...)
  1326  	return out, req.Send()
  1327  }
  1328  
  1329  // ListAccessPreviewFindingsPages iterates over the pages of a ListAccessPreviewFindings operation,
  1330  // calling the "fn" function with the response data for each page. To stop
  1331  // iterating, return false from the fn function.
  1332  //
  1333  // See ListAccessPreviewFindings method for more information on how to use this operation.
  1334  //
  1335  // Note: This operation can generate multiple requests to a service.
  1336  //
  1337  //    // Example iterating over at most 3 pages of a ListAccessPreviewFindings operation.
  1338  //    pageNum := 0
  1339  //    err := client.ListAccessPreviewFindingsPages(params,
  1340  //        func(page *accessanalyzer.ListAccessPreviewFindingsOutput, lastPage bool) bool {
  1341  //            pageNum++
  1342  //            fmt.Println(page)
  1343  //            return pageNum <= 3
  1344  //        })
  1345  //
  1346  func (c *AccessAnalyzer) ListAccessPreviewFindingsPages(input *ListAccessPreviewFindingsInput, fn func(*ListAccessPreviewFindingsOutput, bool) bool) error {
  1347  	return c.ListAccessPreviewFindingsPagesWithContext(aws.BackgroundContext(), input, fn)
  1348  }
  1349  
  1350  // ListAccessPreviewFindingsPagesWithContext same as ListAccessPreviewFindingsPages except
  1351  // it takes a Context and allows setting request options on the pages.
  1352  //
  1353  // The context must be non-nil and will be used for request cancellation. If
  1354  // the context is nil a panic will occur. In the future the SDK may create
  1355  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1356  // for more information on using Contexts.
  1357  func (c *AccessAnalyzer) ListAccessPreviewFindingsPagesWithContext(ctx aws.Context, input *ListAccessPreviewFindingsInput, fn func(*ListAccessPreviewFindingsOutput, bool) bool, opts ...request.Option) error {
  1358  	p := request.Pagination{
  1359  		NewRequest: func() (*request.Request, error) {
  1360  			var inCpy *ListAccessPreviewFindingsInput
  1361  			if input != nil {
  1362  				tmp := *input
  1363  				inCpy = &tmp
  1364  			}
  1365  			req, _ := c.ListAccessPreviewFindingsRequest(inCpy)
  1366  			req.SetContext(ctx)
  1367  			req.ApplyOptions(opts...)
  1368  			return req, nil
  1369  		},
  1370  	}
  1371  
  1372  	for p.Next() {
  1373  		if !fn(p.Page().(*ListAccessPreviewFindingsOutput), !p.HasNextPage()) {
  1374  			break
  1375  		}
  1376  	}
  1377  
  1378  	return p.Err()
  1379  }
  1380  
  1381  const opListAccessPreviews = "ListAccessPreviews"
  1382  
  1383  // ListAccessPreviewsRequest generates a "aws/request.Request" representing the
  1384  // client's request for the ListAccessPreviews operation. The "output" return
  1385  // value will be populated with the request's response once the request completes
  1386  // successfully.
  1387  //
  1388  // Use "Send" method on the returned Request to send the API call to the service.
  1389  // the "output" return value is not valid until after Send returns without error.
  1390  //
  1391  // See ListAccessPreviews for more information on using the ListAccessPreviews
  1392  // API call, and error handling.
  1393  //
  1394  // This method is useful when you want to inject custom logic or configuration
  1395  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1396  //
  1397  //
  1398  //    // Example sending a request using the ListAccessPreviewsRequest method.
  1399  //    req, resp := client.ListAccessPreviewsRequest(params)
  1400  //
  1401  //    err := req.Send()
  1402  //    if err == nil { // resp is now filled
  1403  //        fmt.Println(resp)
  1404  //    }
  1405  //
  1406  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAccessPreviews
  1407  func (c *AccessAnalyzer) ListAccessPreviewsRequest(input *ListAccessPreviewsInput) (req *request.Request, output *ListAccessPreviewsOutput) {
  1408  	op := &request.Operation{
  1409  		Name:       opListAccessPreviews,
  1410  		HTTPMethod: "GET",
  1411  		HTTPPath:   "/access-preview",
  1412  		Paginator: &request.Paginator{
  1413  			InputTokens:     []string{"nextToken"},
  1414  			OutputTokens:    []string{"nextToken"},
  1415  			LimitToken:      "maxResults",
  1416  			TruncationToken: "",
  1417  		},
  1418  	}
  1419  
  1420  	if input == nil {
  1421  		input = &ListAccessPreviewsInput{}
  1422  	}
  1423  
  1424  	output = &ListAccessPreviewsOutput{}
  1425  	req = c.newRequest(op, input, output)
  1426  	return
  1427  }
  1428  
  1429  // ListAccessPreviews API operation for Access Analyzer.
  1430  //
  1431  // Retrieves a list of access previews for the specified analyzer.
  1432  //
  1433  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1434  // with awserr.Error's Code and Message methods to get detailed information about
  1435  // the error.
  1436  //
  1437  // See the AWS API reference guide for Access Analyzer's
  1438  // API operation ListAccessPreviews for usage and error information.
  1439  //
  1440  // Returned Error Types:
  1441  //   * ResourceNotFoundException
  1442  //   The specified resource could not be found.
  1443  //
  1444  //   * ValidationException
  1445  //   Validation exception error.
  1446  //
  1447  //   * InternalServerException
  1448  //   Internal server error.
  1449  //
  1450  //   * ThrottlingException
  1451  //   Throttling limit exceeded error.
  1452  //
  1453  //   * AccessDeniedException
  1454  //   You do not have sufficient access to perform this action.
  1455  //
  1456  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAccessPreviews
  1457  func (c *AccessAnalyzer) ListAccessPreviews(input *ListAccessPreviewsInput) (*ListAccessPreviewsOutput, error) {
  1458  	req, out := c.ListAccessPreviewsRequest(input)
  1459  	return out, req.Send()
  1460  }
  1461  
  1462  // ListAccessPreviewsWithContext is the same as ListAccessPreviews with the addition of
  1463  // the ability to pass a context and additional request options.
  1464  //
  1465  // See ListAccessPreviews for details on how to use this API operation.
  1466  //
  1467  // The context must be non-nil and will be used for request cancellation. If
  1468  // the context is nil a panic will occur. In the future the SDK may create
  1469  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1470  // for more information on using Contexts.
  1471  func (c *AccessAnalyzer) ListAccessPreviewsWithContext(ctx aws.Context, input *ListAccessPreviewsInput, opts ...request.Option) (*ListAccessPreviewsOutput, error) {
  1472  	req, out := c.ListAccessPreviewsRequest(input)
  1473  	req.SetContext(ctx)
  1474  	req.ApplyOptions(opts...)
  1475  	return out, req.Send()
  1476  }
  1477  
  1478  // ListAccessPreviewsPages iterates over the pages of a ListAccessPreviews operation,
  1479  // calling the "fn" function with the response data for each page. To stop
  1480  // iterating, return false from the fn function.
  1481  //
  1482  // See ListAccessPreviews method for more information on how to use this operation.
  1483  //
  1484  // Note: This operation can generate multiple requests to a service.
  1485  //
  1486  //    // Example iterating over at most 3 pages of a ListAccessPreviews operation.
  1487  //    pageNum := 0
  1488  //    err := client.ListAccessPreviewsPages(params,
  1489  //        func(page *accessanalyzer.ListAccessPreviewsOutput, lastPage bool) bool {
  1490  //            pageNum++
  1491  //            fmt.Println(page)
  1492  //            return pageNum <= 3
  1493  //        })
  1494  //
  1495  func (c *AccessAnalyzer) ListAccessPreviewsPages(input *ListAccessPreviewsInput, fn func(*ListAccessPreviewsOutput, bool) bool) error {
  1496  	return c.ListAccessPreviewsPagesWithContext(aws.BackgroundContext(), input, fn)
  1497  }
  1498  
  1499  // ListAccessPreviewsPagesWithContext same as ListAccessPreviewsPages except
  1500  // it takes a Context and allows setting request options on the pages.
  1501  //
  1502  // The context must be non-nil and will be used for request cancellation. If
  1503  // the context is nil a panic will occur. In the future the SDK may create
  1504  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1505  // for more information on using Contexts.
  1506  func (c *AccessAnalyzer) ListAccessPreviewsPagesWithContext(ctx aws.Context, input *ListAccessPreviewsInput, fn func(*ListAccessPreviewsOutput, bool) bool, opts ...request.Option) error {
  1507  	p := request.Pagination{
  1508  		NewRequest: func() (*request.Request, error) {
  1509  			var inCpy *ListAccessPreviewsInput
  1510  			if input != nil {
  1511  				tmp := *input
  1512  				inCpy = &tmp
  1513  			}
  1514  			req, _ := c.ListAccessPreviewsRequest(inCpy)
  1515  			req.SetContext(ctx)
  1516  			req.ApplyOptions(opts...)
  1517  			return req, nil
  1518  		},
  1519  	}
  1520  
  1521  	for p.Next() {
  1522  		if !fn(p.Page().(*ListAccessPreviewsOutput), !p.HasNextPage()) {
  1523  			break
  1524  		}
  1525  	}
  1526  
  1527  	return p.Err()
  1528  }
  1529  
  1530  const opListAnalyzedResources = "ListAnalyzedResources"
  1531  
  1532  // ListAnalyzedResourcesRequest generates a "aws/request.Request" representing the
  1533  // client's request for the ListAnalyzedResources operation. The "output" return
  1534  // value will be populated with the request's response once the request completes
  1535  // successfully.
  1536  //
  1537  // Use "Send" method on the returned Request to send the API call to the service.
  1538  // the "output" return value is not valid until after Send returns without error.
  1539  //
  1540  // See ListAnalyzedResources for more information on using the ListAnalyzedResources
  1541  // API call, and error handling.
  1542  //
  1543  // This method is useful when you want to inject custom logic or configuration
  1544  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1545  //
  1546  //
  1547  //    // Example sending a request using the ListAnalyzedResourcesRequest method.
  1548  //    req, resp := client.ListAnalyzedResourcesRequest(params)
  1549  //
  1550  //    err := req.Send()
  1551  //    if err == nil { // resp is now filled
  1552  //        fmt.Println(resp)
  1553  //    }
  1554  //
  1555  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAnalyzedResources
  1556  func (c *AccessAnalyzer) ListAnalyzedResourcesRequest(input *ListAnalyzedResourcesInput) (req *request.Request, output *ListAnalyzedResourcesOutput) {
  1557  	op := &request.Operation{
  1558  		Name:       opListAnalyzedResources,
  1559  		HTTPMethod: "POST",
  1560  		HTTPPath:   "/analyzed-resource",
  1561  		Paginator: &request.Paginator{
  1562  			InputTokens:     []string{"nextToken"},
  1563  			OutputTokens:    []string{"nextToken"},
  1564  			LimitToken:      "maxResults",
  1565  			TruncationToken: "",
  1566  		},
  1567  	}
  1568  
  1569  	if input == nil {
  1570  		input = &ListAnalyzedResourcesInput{}
  1571  	}
  1572  
  1573  	output = &ListAnalyzedResourcesOutput{}
  1574  	req = c.newRequest(op, input, output)
  1575  	return
  1576  }
  1577  
  1578  // ListAnalyzedResources API operation for Access Analyzer.
  1579  //
  1580  // Retrieves a list of resources of the specified type that have been analyzed
  1581  // by the specified analyzer..
  1582  //
  1583  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1584  // with awserr.Error's Code and Message methods to get detailed information about
  1585  // the error.
  1586  //
  1587  // See the AWS API reference guide for Access Analyzer's
  1588  // API operation ListAnalyzedResources for usage and error information.
  1589  //
  1590  // Returned Error Types:
  1591  //   * ResourceNotFoundException
  1592  //   The specified resource could not be found.
  1593  //
  1594  //   * ValidationException
  1595  //   Validation exception error.
  1596  //
  1597  //   * InternalServerException
  1598  //   Internal server error.
  1599  //
  1600  //   * ThrottlingException
  1601  //   Throttling limit exceeded error.
  1602  //
  1603  //   * AccessDeniedException
  1604  //   You do not have sufficient access to perform this action.
  1605  //
  1606  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAnalyzedResources
  1607  func (c *AccessAnalyzer) ListAnalyzedResources(input *ListAnalyzedResourcesInput) (*ListAnalyzedResourcesOutput, error) {
  1608  	req, out := c.ListAnalyzedResourcesRequest(input)
  1609  	return out, req.Send()
  1610  }
  1611  
  1612  // ListAnalyzedResourcesWithContext is the same as ListAnalyzedResources with the addition of
  1613  // the ability to pass a context and additional request options.
  1614  //
  1615  // See ListAnalyzedResources for details on how to use this API operation.
  1616  //
  1617  // The context must be non-nil and will be used for request cancellation. If
  1618  // the context is nil a panic will occur. In the future the SDK may create
  1619  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1620  // for more information on using Contexts.
  1621  func (c *AccessAnalyzer) ListAnalyzedResourcesWithContext(ctx aws.Context, input *ListAnalyzedResourcesInput, opts ...request.Option) (*ListAnalyzedResourcesOutput, error) {
  1622  	req, out := c.ListAnalyzedResourcesRequest(input)
  1623  	req.SetContext(ctx)
  1624  	req.ApplyOptions(opts...)
  1625  	return out, req.Send()
  1626  }
  1627  
  1628  // ListAnalyzedResourcesPages iterates over the pages of a ListAnalyzedResources operation,
  1629  // calling the "fn" function with the response data for each page. To stop
  1630  // iterating, return false from the fn function.
  1631  //
  1632  // See ListAnalyzedResources method for more information on how to use this operation.
  1633  //
  1634  // Note: This operation can generate multiple requests to a service.
  1635  //
  1636  //    // Example iterating over at most 3 pages of a ListAnalyzedResources operation.
  1637  //    pageNum := 0
  1638  //    err := client.ListAnalyzedResourcesPages(params,
  1639  //        func(page *accessanalyzer.ListAnalyzedResourcesOutput, lastPage bool) bool {
  1640  //            pageNum++
  1641  //            fmt.Println(page)
  1642  //            return pageNum <= 3
  1643  //        })
  1644  //
  1645  func (c *AccessAnalyzer) ListAnalyzedResourcesPages(input *ListAnalyzedResourcesInput, fn func(*ListAnalyzedResourcesOutput, bool) bool) error {
  1646  	return c.ListAnalyzedResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
  1647  }
  1648  
  1649  // ListAnalyzedResourcesPagesWithContext same as ListAnalyzedResourcesPages except
  1650  // it takes a Context and allows setting request options on the pages.
  1651  //
  1652  // The context must be non-nil and will be used for request cancellation. If
  1653  // the context is nil a panic will occur. In the future the SDK may create
  1654  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1655  // for more information on using Contexts.
  1656  func (c *AccessAnalyzer) ListAnalyzedResourcesPagesWithContext(ctx aws.Context, input *ListAnalyzedResourcesInput, fn func(*ListAnalyzedResourcesOutput, bool) bool, opts ...request.Option) error {
  1657  	p := request.Pagination{
  1658  		NewRequest: func() (*request.Request, error) {
  1659  			var inCpy *ListAnalyzedResourcesInput
  1660  			if input != nil {
  1661  				tmp := *input
  1662  				inCpy = &tmp
  1663  			}
  1664  			req, _ := c.ListAnalyzedResourcesRequest(inCpy)
  1665  			req.SetContext(ctx)
  1666  			req.ApplyOptions(opts...)
  1667  			return req, nil
  1668  		},
  1669  	}
  1670  
  1671  	for p.Next() {
  1672  		if !fn(p.Page().(*ListAnalyzedResourcesOutput), !p.HasNextPage()) {
  1673  			break
  1674  		}
  1675  	}
  1676  
  1677  	return p.Err()
  1678  }
  1679  
  1680  const opListAnalyzers = "ListAnalyzers"
  1681  
  1682  // ListAnalyzersRequest generates a "aws/request.Request" representing the
  1683  // client's request for the ListAnalyzers operation. The "output" return
  1684  // value will be populated with the request's response once the request completes
  1685  // successfully.
  1686  //
  1687  // Use "Send" method on the returned Request to send the API call to the service.
  1688  // the "output" return value is not valid until after Send returns without error.
  1689  //
  1690  // See ListAnalyzers for more information on using the ListAnalyzers
  1691  // API call, and error handling.
  1692  //
  1693  // This method is useful when you want to inject custom logic or configuration
  1694  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1695  //
  1696  //
  1697  //    // Example sending a request using the ListAnalyzersRequest method.
  1698  //    req, resp := client.ListAnalyzersRequest(params)
  1699  //
  1700  //    err := req.Send()
  1701  //    if err == nil { // resp is now filled
  1702  //        fmt.Println(resp)
  1703  //    }
  1704  //
  1705  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAnalyzers
  1706  func (c *AccessAnalyzer) ListAnalyzersRequest(input *ListAnalyzersInput) (req *request.Request, output *ListAnalyzersOutput) {
  1707  	op := &request.Operation{
  1708  		Name:       opListAnalyzers,
  1709  		HTTPMethod: "GET",
  1710  		HTTPPath:   "/analyzer",
  1711  		Paginator: &request.Paginator{
  1712  			InputTokens:     []string{"nextToken"},
  1713  			OutputTokens:    []string{"nextToken"},
  1714  			LimitToken:      "maxResults",
  1715  			TruncationToken: "",
  1716  		},
  1717  	}
  1718  
  1719  	if input == nil {
  1720  		input = &ListAnalyzersInput{}
  1721  	}
  1722  
  1723  	output = &ListAnalyzersOutput{}
  1724  	req = c.newRequest(op, input, output)
  1725  	return
  1726  }
  1727  
  1728  // ListAnalyzers API operation for Access Analyzer.
  1729  //
  1730  // Retrieves a list of analyzers.
  1731  //
  1732  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1733  // with awserr.Error's Code and Message methods to get detailed information about
  1734  // the error.
  1735  //
  1736  // See the AWS API reference guide for Access Analyzer's
  1737  // API operation ListAnalyzers for usage and error information.
  1738  //
  1739  // Returned Error Types:
  1740  //   * ValidationException
  1741  //   Validation exception error.
  1742  //
  1743  //   * InternalServerException
  1744  //   Internal server error.
  1745  //
  1746  //   * ThrottlingException
  1747  //   Throttling limit exceeded error.
  1748  //
  1749  //   * AccessDeniedException
  1750  //   You do not have sufficient access to perform this action.
  1751  //
  1752  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAnalyzers
  1753  func (c *AccessAnalyzer) ListAnalyzers(input *ListAnalyzersInput) (*ListAnalyzersOutput, error) {
  1754  	req, out := c.ListAnalyzersRequest(input)
  1755  	return out, req.Send()
  1756  }
  1757  
  1758  // ListAnalyzersWithContext is the same as ListAnalyzers with the addition of
  1759  // the ability to pass a context and additional request options.
  1760  //
  1761  // See ListAnalyzers for details on how to use this API operation.
  1762  //
  1763  // The context must be non-nil and will be used for request cancellation. If
  1764  // the context is nil a panic will occur. In the future the SDK may create
  1765  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1766  // for more information on using Contexts.
  1767  func (c *AccessAnalyzer) ListAnalyzersWithContext(ctx aws.Context, input *ListAnalyzersInput, opts ...request.Option) (*ListAnalyzersOutput, error) {
  1768  	req, out := c.ListAnalyzersRequest(input)
  1769  	req.SetContext(ctx)
  1770  	req.ApplyOptions(opts...)
  1771  	return out, req.Send()
  1772  }
  1773  
  1774  // ListAnalyzersPages iterates over the pages of a ListAnalyzers operation,
  1775  // calling the "fn" function with the response data for each page. To stop
  1776  // iterating, return false from the fn function.
  1777  //
  1778  // See ListAnalyzers method for more information on how to use this operation.
  1779  //
  1780  // Note: This operation can generate multiple requests to a service.
  1781  //
  1782  //    // Example iterating over at most 3 pages of a ListAnalyzers operation.
  1783  //    pageNum := 0
  1784  //    err := client.ListAnalyzersPages(params,
  1785  //        func(page *accessanalyzer.ListAnalyzersOutput, lastPage bool) bool {
  1786  //            pageNum++
  1787  //            fmt.Println(page)
  1788  //            return pageNum <= 3
  1789  //        })
  1790  //
  1791  func (c *AccessAnalyzer) ListAnalyzersPages(input *ListAnalyzersInput, fn func(*ListAnalyzersOutput, bool) bool) error {
  1792  	return c.ListAnalyzersPagesWithContext(aws.BackgroundContext(), input, fn)
  1793  }
  1794  
  1795  // ListAnalyzersPagesWithContext same as ListAnalyzersPages except
  1796  // it takes a Context and allows setting request options on the pages.
  1797  //
  1798  // The context must be non-nil and will be used for request cancellation. If
  1799  // the context is nil a panic will occur. In the future the SDK may create
  1800  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1801  // for more information on using Contexts.
  1802  func (c *AccessAnalyzer) ListAnalyzersPagesWithContext(ctx aws.Context, input *ListAnalyzersInput, fn func(*ListAnalyzersOutput, bool) bool, opts ...request.Option) error {
  1803  	p := request.Pagination{
  1804  		NewRequest: func() (*request.Request, error) {
  1805  			var inCpy *ListAnalyzersInput
  1806  			if input != nil {
  1807  				tmp := *input
  1808  				inCpy = &tmp
  1809  			}
  1810  			req, _ := c.ListAnalyzersRequest(inCpy)
  1811  			req.SetContext(ctx)
  1812  			req.ApplyOptions(opts...)
  1813  			return req, nil
  1814  		},
  1815  	}
  1816  
  1817  	for p.Next() {
  1818  		if !fn(p.Page().(*ListAnalyzersOutput), !p.HasNextPage()) {
  1819  			break
  1820  		}
  1821  	}
  1822  
  1823  	return p.Err()
  1824  }
  1825  
  1826  const opListArchiveRules = "ListArchiveRules"
  1827  
  1828  // ListArchiveRulesRequest generates a "aws/request.Request" representing the
  1829  // client's request for the ListArchiveRules operation. The "output" return
  1830  // value will be populated with the request's response once the request completes
  1831  // successfully.
  1832  //
  1833  // Use "Send" method on the returned Request to send the API call to the service.
  1834  // the "output" return value is not valid until after Send returns without error.
  1835  //
  1836  // See ListArchiveRules for more information on using the ListArchiveRules
  1837  // API call, and error handling.
  1838  //
  1839  // This method is useful when you want to inject custom logic or configuration
  1840  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1841  //
  1842  //
  1843  //    // Example sending a request using the ListArchiveRulesRequest method.
  1844  //    req, resp := client.ListArchiveRulesRequest(params)
  1845  //
  1846  //    err := req.Send()
  1847  //    if err == nil { // resp is now filled
  1848  //        fmt.Println(resp)
  1849  //    }
  1850  //
  1851  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListArchiveRules
  1852  func (c *AccessAnalyzer) ListArchiveRulesRequest(input *ListArchiveRulesInput) (req *request.Request, output *ListArchiveRulesOutput) {
  1853  	op := &request.Operation{
  1854  		Name:       opListArchiveRules,
  1855  		HTTPMethod: "GET",
  1856  		HTTPPath:   "/analyzer/{analyzerName}/archive-rule",
  1857  		Paginator: &request.Paginator{
  1858  			InputTokens:     []string{"nextToken"},
  1859  			OutputTokens:    []string{"nextToken"},
  1860  			LimitToken:      "maxResults",
  1861  			TruncationToken: "",
  1862  		},
  1863  	}
  1864  
  1865  	if input == nil {
  1866  		input = &ListArchiveRulesInput{}
  1867  	}
  1868  
  1869  	output = &ListArchiveRulesOutput{}
  1870  	req = c.newRequest(op, input, output)
  1871  	return
  1872  }
  1873  
  1874  // ListArchiveRules API operation for Access Analyzer.
  1875  //
  1876  // Retrieves a list of archive rules created for the specified analyzer.
  1877  //
  1878  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1879  // with awserr.Error's Code and Message methods to get detailed information about
  1880  // the error.
  1881  //
  1882  // See the AWS API reference guide for Access Analyzer's
  1883  // API operation ListArchiveRules for usage and error information.
  1884  //
  1885  // Returned Error Types:
  1886  //   * ValidationException
  1887  //   Validation exception error.
  1888  //
  1889  //   * InternalServerException
  1890  //   Internal server error.
  1891  //
  1892  //   * ThrottlingException
  1893  //   Throttling limit exceeded error.
  1894  //
  1895  //   * AccessDeniedException
  1896  //   You do not have sufficient access to perform this action.
  1897  //
  1898  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListArchiveRules
  1899  func (c *AccessAnalyzer) ListArchiveRules(input *ListArchiveRulesInput) (*ListArchiveRulesOutput, error) {
  1900  	req, out := c.ListArchiveRulesRequest(input)
  1901  	return out, req.Send()
  1902  }
  1903  
  1904  // ListArchiveRulesWithContext is the same as ListArchiveRules with the addition of
  1905  // the ability to pass a context and additional request options.
  1906  //
  1907  // See ListArchiveRules for details on how to use this API operation.
  1908  //
  1909  // The context must be non-nil and will be used for request cancellation. If
  1910  // the context is nil a panic will occur. In the future the SDK may create
  1911  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1912  // for more information on using Contexts.
  1913  func (c *AccessAnalyzer) ListArchiveRulesWithContext(ctx aws.Context, input *ListArchiveRulesInput, opts ...request.Option) (*ListArchiveRulesOutput, error) {
  1914  	req, out := c.ListArchiveRulesRequest(input)
  1915  	req.SetContext(ctx)
  1916  	req.ApplyOptions(opts...)
  1917  	return out, req.Send()
  1918  }
  1919  
  1920  // ListArchiveRulesPages iterates over the pages of a ListArchiveRules operation,
  1921  // calling the "fn" function with the response data for each page. To stop
  1922  // iterating, return false from the fn function.
  1923  //
  1924  // See ListArchiveRules method for more information on how to use this operation.
  1925  //
  1926  // Note: This operation can generate multiple requests to a service.
  1927  //
  1928  //    // Example iterating over at most 3 pages of a ListArchiveRules operation.
  1929  //    pageNum := 0
  1930  //    err := client.ListArchiveRulesPages(params,
  1931  //        func(page *accessanalyzer.ListArchiveRulesOutput, lastPage bool) bool {
  1932  //            pageNum++
  1933  //            fmt.Println(page)
  1934  //            return pageNum <= 3
  1935  //        })
  1936  //
  1937  func (c *AccessAnalyzer) ListArchiveRulesPages(input *ListArchiveRulesInput, fn func(*ListArchiveRulesOutput, bool) bool) error {
  1938  	return c.ListArchiveRulesPagesWithContext(aws.BackgroundContext(), input, fn)
  1939  }
  1940  
  1941  // ListArchiveRulesPagesWithContext same as ListArchiveRulesPages except
  1942  // it takes a Context and allows setting request options on the pages.
  1943  //
  1944  // The context must be non-nil and will be used for request cancellation. If
  1945  // the context is nil a panic will occur. In the future the SDK may create
  1946  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1947  // for more information on using Contexts.
  1948  func (c *AccessAnalyzer) ListArchiveRulesPagesWithContext(ctx aws.Context, input *ListArchiveRulesInput, fn func(*ListArchiveRulesOutput, bool) bool, opts ...request.Option) error {
  1949  	p := request.Pagination{
  1950  		NewRequest: func() (*request.Request, error) {
  1951  			var inCpy *ListArchiveRulesInput
  1952  			if input != nil {
  1953  				tmp := *input
  1954  				inCpy = &tmp
  1955  			}
  1956  			req, _ := c.ListArchiveRulesRequest(inCpy)
  1957  			req.SetContext(ctx)
  1958  			req.ApplyOptions(opts...)
  1959  			return req, nil
  1960  		},
  1961  	}
  1962  
  1963  	for p.Next() {
  1964  		if !fn(p.Page().(*ListArchiveRulesOutput), !p.HasNextPage()) {
  1965  			break
  1966  		}
  1967  	}
  1968  
  1969  	return p.Err()
  1970  }
  1971  
  1972  const opListFindings = "ListFindings"
  1973  
  1974  // ListFindingsRequest generates a "aws/request.Request" representing the
  1975  // client's request for the ListFindings operation. The "output" return
  1976  // value will be populated with the request's response once the request completes
  1977  // successfully.
  1978  //
  1979  // Use "Send" method on the returned Request to send the API call to the service.
  1980  // the "output" return value is not valid until after Send returns without error.
  1981  //
  1982  // See ListFindings for more information on using the ListFindings
  1983  // API call, and error handling.
  1984  //
  1985  // This method is useful when you want to inject custom logic or configuration
  1986  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1987  //
  1988  //
  1989  //    // Example sending a request using the ListFindingsRequest method.
  1990  //    req, resp := client.ListFindingsRequest(params)
  1991  //
  1992  //    err := req.Send()
  1993  //    if err == nil { // resp is now filled
  1994  //        fmt.Println(resp)
  1995  //    }
  1996  //
  1997  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListFindings
  1998  func (c *AccessAnalyzer) ListFindingsRequest(input *ListFindingsInput) (req *request.Request, output *ListFindingsOutput) {
  1999  	op := &request.Operation{
  2000  		Name:       opListFindings,
  2001  		HTTPMethod: "POST",
  2002  		HTTPPath:   "/finding",
  2003  		Paginator: &request.Paginator{
  2004  			InputTokens:     []string{"nextToken"},
  2005  			OutputTokens:    []string{"nextToken"},
  2006  			LimitToken:      "maxResults",
  2007  			TruncationToken: "",
  2008  		},
  2009  	}
  2010  
  2011  	if input == nil {
  2012  		input = &ListFindingsInput{}
  2013  	}
  2014  
  2015  	output = &ListFindingsOutput{}
  2016  	req = c.newRequest(op, input, output)
  2017  	return
  2018  }
  2019  
  2020  // ListFindings API operation for Access Analyzer.
  2021  //
  2022  // Retrieves a list of findings generated by the specified analyzer.
  2023  //
  2024  // To learn about filter keys that you can use to retrieve a list of findings,
  2025  // see IAM Access Analyzer filter keys (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html)
  2026  // in the IAM User Guide.
  2027  //
  2028  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2029  // with awserr.Error's Code and Message methods to get detailed information about
  2030  // the error.
  2031  //
  2032  // See the AWS API reference guide for Access Analyzer's
  2033  // API operation ListFindings for usage and error information.
  2034  //
  2035  // Returned Error Types:
  2036  //   * ResourceNotFoundException
  2037  //   The specified resource could not be found.
  2038  //
  2039  //   * ValidationException
  2040  //   Validation exception error.
  2041  //
  2042  //   * InternalServerException
  2043  //   Internal server error.
  2044  //
  2045  //   * ThrottlingException
  2046  //   Throttling limit exceeded error.
  2047  //
  2048  //   * AccessDeniedException
  2049  //   You do not have sufficient access to perform this action.
  2050  //
  2051  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListFindings
  2052  func (c *AccessAnalyzer) ListFindings(input *ListFindingsInput) (*ListFindingsOutput, error) {
  2053  	req, out := c.ListFindingsRequest(input)
  2054  	return out, req.Send()
  2055  }
  2056  
  2057  // ListFindingsWithContext is the same as ListFindings with the addition of
  2058  // the ability to pass a context and additional request options.
  2059  //
  2060  // See ListFindings for details on how to use this API operation.
  2061  //
  2062  // The context must be non-nil and will be used for request cancellation. If
  2063  // the context is nil a panic will occur. In the future the SDK may create
  2064  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2065  // for more information on using Contexts.
  2066  func (c *AccessAnalyzer) ListFindingsWithContext(ctx aws.Context, input *ListFindingsInput, opts ...request.Option) (*ListFindingsOutput, error) {
  2067  	req, out := c.ListFindingsRequest(input)
  2068  	req.SetContext(ctx)
  2069  	req.ApplyOptions(opts...)
  2070  	return out, req.Send()
  2071  }
  2072  
  2073  // ListFindingsPages iterates over the pages of a ListFindings operation,
  2074  // calling the "fn" function with the response data for each page. To stop
  2075  // iterating, return false from the fn function.
  2076  //
  2077  // See ListFindings method for more information on how to use this operation.
  2078  //
  2079  // Note: This operation can generate multiple requests to a service.
  2080  //
  2081  //    // Example iterating over at most 3 pages of a ListFindings operation.
  2082  //    pageNum := 0
  2083  //    err := client.ListFindingsPages(params,
  2084  //        func(page *accessanalyzer.ListFindingsOutput, lastPage bool) bool {
  2085  //            pageNum++
  2086  //            fmt.Println(page)
  2087  //            return pageNum <= 3
  2088  //        })
  2089  //
  2090  func (c *AccessAnalyzer) ListFindingsPages(input *ListFindingsInput, fn func(*ListFindingsOutput, bool) bool) error {
  2091  	return c.ListFindingsPagesWithContext(aws.BackgroundContext(), input, fn)
  2092  }
  2093  
  2094  // ListFindingsPagesWithContext same as ListFindingsPages except
  2095  // it takes a Context and allows setting request options on the pages.
  2096  //
  2097  // The context must be non-nil and will be used for request cancellation. If
  2098  // the context is nil a panic will occur. In the future the SDK may create
  2099  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2100  // for more information on using Contexts.
  2101  func (c *AccessAnalyzer) ListFindingsPagesWithContext(ctx aws.Context, input *ListFindingsInput, fn func(*ListFindingsOutput, bool) bool, opts ...request.Option) error {
  2102  	p := request.Pagination{
  2103  		NewRequest: func() (*request.Request, error) {
  2104  			var inCpy *ListFindingsInput
  2105  			if input != nil {
  2106  				tmp := *input
  2107  				inCpy = &tmp
  2108  			}
  2109  			req, _ := c.ListFindingsRequest(inCpy)
  2110  			req.SetContext(ctx)
  2111  			req.ApplyOptions(opts...)
  2112  			return req, nil
  2113  		},
  2114  	}
  2115  
  2116  	for p.Next() {
  2117  		if !fn(p.Page().(*ListFindingsOutput), !p.HasNextPage()) {
  2118  			break
  2119  		}
  2120  	}
  2121  
  2122  	return p.Err()
  2123  }
  2124  
  2125  const opListPolicyGenerations = "ListPolicyGenerations"
  2126  
  2127  // ListPolicyGenerationsRequest generates a "aws/request.Request" representing the
  2128  // client's request for the ListPolicyGenerations operation. The "output" return
  2129  // value will be populated with the request's response once the request completes
  2130  // successfully.
  2131  //
  2132  // Use "Send" method on the returned Request to send the API call to the service.
  2133  // the "output" return value is not valid until after Send returns without error.
  2134  //
  2135  // See ListPolicyGenerations for more information on using the ListPolicyGenerations
  2136  // API call, and error handling.
  2137  //
  2138  // This method is useful when you want to inject custom logic or configuration
  2139  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2140  //
  2141  //
  2142  //    // Example sending a request using the ListPolicyGenerationsRequest method.
  2143  //    req, resp := client.ListPolicyGenerationsRequest(params)
  2144  //
  2145  //    err := req.Send()
  2146  //    if err == nil { // resp is now filled
  2147  //        fmt.Println(resp)
  2148  //    }
  2149  //
  2150  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListPolicyGenerations
  2151  func (c *AccessAnalyzer) ListPolicyGenerationsRequest(input *ListPolicyGenerationsInput) (req *request.Request, output *ListPolicyGenerationsOutput) {
  2152  	op := &request.Operation{
  2153  		Name:       opListPolicyGenerations,
  2154  		HTTPMethod: "GET",
  2155  		HTTPPath:   "/policy/generation",
  2156  		Paginator: &request.Paginator{
  2157  			InputTokens:     []string{"nextToken"},
  2158  			OutputTokens:    []string{"nextToken"},
  2159  			LimitToken:      "maxResults",
  2160  			TruncationToken: "",
  2161  		},
  2162  	}
  2163  
  2164  	if input == nil {
  2165  		input = &ListPolicyGenerationsInput{}
  2166  	}
  2167  
  2168  	output = &ListPolicyGenerationsOutput{}
  2169  	req = c.newRequest(op, input, output)
  2170  	return
  2171  }
  2172  
  2173  // ListPolicyGenerations API operation for Access Analyzer.
  2174  //
  2175  // Lists all of the policy generations requested in the last seven days.
  2176  //
  2177  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2178  // with awserr.Error's Code and Message methods to get detailed information about
  2179  // the error.
  2180  //
  2181  // See the AWS API reference guide for Access Analyzer's
  2182  // API operation ListPolicyGenerations for usage and error information.
  2183  //
  2184  // Returned Error Types:
  2185  //   * ValidationException
  2186  //   Validation exception error.
  2187  //
  2188  //   * InternalServerException
  2189  //   Internal server error.
  2190  //
  2191  //   * ThrottlingException
  2192  //   Throttling limit exceeded error.
  2193  //
  2194  //   * AccessDeniedException
  2195  //   You do not have sufficient access to perform this action.
  2196  //
  2197  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListPolicyGenerations
  2198  func (c *AccessAnalyzer) ListPolicyGenerations(input *ListPolicyGenerationsInput) (*ListPolicyGenerationsOutput, error) {
  2199  	req, out := c.ListPolicyGenerationsRequest(input)
  2200  	return out, req.Send()
  2201  }
  2202  
  2203  // ListPolicyGenerationsWithContext is the same as ListPolicyGenerations with the addition of
  2204  // the ability to pass a context and additional request options.
  2205  //
  2206  // See ListPolicyGenerations for details on how to use this API operation.
  2207  //
  2208  // The context must be non-nil and will be used for request cancellation. If
  2209  // the context is nil a panic will occur. In the future the SDK may create
  2210  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2211  // for more information on using Contexts.
  2212  func (c *AccessAnalyzer) ListPolicyGenerationsWithContext(ctx aws.Context, input *ListPolicyGenerationsInput, opts ...request.Option) (*ListPolicyGenerationsOutput, error) {
  2213  	req, out := c.ListPolicyGenerationsRequest(input)
  2214  	req.SetContext(ctx)
  2215  	req.ApplyOptions(opts...)
  2216  	return out, req.Send()
  2217  }
  2218  
  2219  // ListPolicyGenerationsPages iterates over the pages of a ListPolicyGenerations operation,
  2220  // calling the "fn" function with the response data for each page. To stop
  2221  // iterating, return false from the fn function.
  2222  //
  2223  // See ListPolicyGenerations method for more information on how to use this operation.
  2224  //
  2225  // Note: This operation can generate multiple requests to a service.
  2226  //
  2227  //    // Example iterating over at most 3 pages of a ListPolicyGenerations operation.
  2228  //    pageNum := 0
  2229  //    err := client.ListPolicyGenerationsPages(params,
  2230  //        func(page *accessanalyzer.ListPolicyGenerationsOutput, lastPage bool) bool {
  2231  //            pageNum++
  2232  //            fmt.Println(page)
  2233  //            return pageNum <= 3
  2234  //        })
  2235  //
  2236  func (c *AccessAnalyzer) ListPolicyGenerationsPages(input *ListPolicyGenerationsInput, fn func(*ListPolicyGenerationsOutput, bool) bool) error {
  2237  	return c.ListPolicyGenerationsPagesWithContext(aws.BackgroundContext(), input, fn)
  2238  }
  2239  
  2240  // ListPolicyGenerationsPagesWithContext same as ListPolicyGenerationsPages except
  2241  // it takes a Context and allows setting request options on the pages.
  2242  //
  2243  // The context must be non-nil and will be used for request cancellation. If
  2244  // the context is nil a panic will occur. In the future the SDK may create
  2245  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2246  // for more information on using Contexts.
  2247  func (c *AccessAnalyzer) ListPolicyGenerationsPagesWithContext(ctx aws.Context, input *ListPolicyGenerationsInput, fn func(*ListPolicyGenerationsOutput, bool) bool, opts ...request.Option) error {
  2248  	p := request.Pagination{
  2249  		NewRequest: func() (*request.Request, error) {
  2250  			var inCpy *ListPolicyGenerationsInput
  2251  			if input != nil {
  2252  				tmp := *input
  2253  				inCpy = &tmp
  2254  			}
  2255  			req, _ := c.ListPolicyGenerationsRequest(inCpy)
  2256  			req.SetContext(ctx)
  2257  			req.ApplyOptions(opts...)
  2258  			return req, nil
  2259  		},
  2260  	}
  2261  
  2262  	for p.Next() {
  2263  		if !fn(p.Page().(*ListPolicyGenerationsOutput), !p.HasNextPage()) {
  2264  			break
  2265  		}
  2266  	}
  2267  
  2268  	return p.Err()
  2269  }
  2270  
  2271  const opListTagsForResource = "ListTagsForResource"
  2272  
  2273  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  2274  // client's request for the ListTagsForResource operation. The "output" return
  2275  // value will be populated with the request's response once the request completes
  2276  // successfully.
  2277  //
  2278  // Use "Send" method on the returned Request to send the API call to the service.
  2279  // the "output" return value is not valid until after Send returns without error.
  2280  //
  2281  // See ListTagsForResource for more information on using the ListTagsForResource
  2282  // API call, and error handling.
  2283  //
  2284  // This method is useful when you want to inject custom logic or configuration
  2285  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2286  //
  2287  //
  2288  //    // Example sending a request using the ListTagsForResourceRequest method.
  2289  //    req, resp := client.ListTagsForResourceRequest(params)
  2290  //
  2291  //    err := req.Send()
  2292  //    if err == nil { // resp is now filled
  2293  //        fmt.Println(resp)
  2294  //    }
  2295  //
  2296  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListTagsForResource
  2297  func (c *AccessAnalyzer) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  2298  	op := &request.Operation{
  2299  		Name:       opListTagsForResource,
  2300  		HTTPMethod: "GET",
  2301  		HTTPPath:   "/tags/{resourceArn}",
  2302  	}
  2303  
  2304  	if input == nil {
  2305  		input = &ListTagsForResourceInput{}
  2306  	}
  2307  
  2308  	output = &ListTagsForResourceOutput{}
  2309  	req = c.newRequest(op, input, output)
  2310  	return
  2311  }
  2312  
  2313  // ListTagsForResource API operation for Access Analyzer.
  2314  //
  2315  // Retrieves a list of tags applied to the specified resource.
  2316  //
  2317  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2318  // with awserr.Error's Code and Message methods to get detailed information about
  2319  // the error.
  2320  //
  2321  // See the AWS API reference guide for Access Analyzer's
  2322  // API operation ListTagsForResource for usage and error information.
  2323  //
  2324  // Returned Error Types:
  2325  //   * ResourceNotFoundException
  2326  //   The specified resource could not be found.
  2327  //
  2328  //   * ValidationException
  2329  //   Validation exception error.
  2330  //
  2331  //   * InternalServerException
  2332  //   Internal server error.
  2333  //
  2334  //   * ThrottlingException
  2335  //   Throttling limit exceeded error.
  2336  //
  2337  //   * AccessDeniedException
  2338  //   You do not have sufficient access to perform this action.
  2339  //
  2340  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListTagsForResource
  2341  func (c *AccessAnalyzer) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  2342  	req, out := c.ListTagsForResourceRequest(input)
  2343  	return out, req.Send()
  2344  }
  2345  
  2346  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  2347  // the ability to pass a context and additional request options.
  2348  //
  2349  // See ListTagsForResource for details on how to use this API operation.
  2350  //
  2351  // The context must be non-nil and will be used for request cancellation. If
  2352  // the context is nil a panic will occur. In the future the SDK may create
  2353  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2354  // for more information on using Contexts.
  2355  func (c *AccessAnalyzer) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  2356  	req, out := c.ListTagsForResourceRequest(input)
  2357  	req.SetContext(ctx)
  2358  	req.ApplyOptions(opts...)
  2359  	return out, req.Send()
  2360  }
  2361  
  2362  const opStartPolicyGeneration = "StartPolicyGeneration"
  2363  
  2364  // StartPolicyGenerationRequest generates a "aws/request.Request" representing the
  2365  // client's request for the StartPolicyGeneration operation. The "output" return
  2366  // value will be populated with the request's response once the request completes
  2367  // successfully.
  2368  //
  2369  // Use "Send" method on the returned Request to send the API call to the service.
  2370  // the "output" return value is not valid until after Send returns without error.
  2371  //
  2372  // See StartPolicyGeneration for more information on using the StartPolicyGeneration
  2373  // API call, and error handling.
  2374  //
  2375  // This method is useful when you want to inject custom logic or configuration
  2376  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2377  //
  2378  //
  2379  //    // Example sending a request using the StartPolicyGenerationRequest method.
  2380  //    req, resp := client.StartPolicyGenerationRequest(params)
  2381  //
  2382  //    err := req.Send()
  2383  //    if err == nil { // resp is now filled
  2384  //        fmt.Println(resp)
  2385  //    }
  2386  //
  2387  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/StartPolicyGeneration
  2388  func (c *AccessAnalyzer) StartPolicyGenerationRequest(input *StartPolicyGenerationInput) (req *request.Request, output *StartPolicyGenerationOutput) {
  2389  	op := &request.Operation{
  2390  		Name:       opStartPolicyGeneration,
  2391  		HTTPMethod: "PUT",
  2392  		HTTPPath:   "/policy/generation",
  2393  	}
  2394  
  2395  	if input == nil {
  2396  		input = &StartPolicyGenerationInput{}
  2397  	}
  2398  
  2399  	output = &StartPolicyGenerationOutput{}
  2400  	req = c.newRequest(op, input, output)
  2401  	return
  2402  }
  2403  
  2404  // StartPolicyGeneration API operation for Access Analyzer.
  2405  //
  2406  // Starts the policy generation request.
  2407  //
  2408  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2409  // with awserr.Error's Code and Message methods to get detailed information about
  2410  // the error.
  2411  //
  2412  // See the AWS API reference guide for Access Analyzer's
  2413  // API operation StartPolicyGeneration for usage and error information.
  2414  //
  2415  // Returned Error Types:
  2416  //   * ConflictException
  2417  //   A conflict exception error.
  2418  //
  2419  //   * ValidationException
  2420  //   Validation exception error.
  2421  //
  2422  //   * InternalServerException
  2423  //   Internal server error.
  2424  //
  2425  //   * ServiceQuotaExceededException
  2426  //   Service quote met error.
  2427  //
  2428  //   * ThrottlingException
  2429  //   Throttling limit exceeded error.
  2430  //
  2431  //   * AccessDeniedException
  2432  //   You do not have sufficient access to perform this action.
  2433  //
  2434  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/StartPolicyGeneration
  2435  func (c *AccessAnalyzer) StartPolicyGeneration(input *StartPolicyGenerationInput) (*StartPolicyGenerationOutput, error) {
  2436  	req, out := c.StartPolicyGenerationRequest(input)
  2437  	return out, req.Send()
  2438  }
  2439  
  2440  // StartPolicyGenerationWithContext is the same as StartPolicyGeneration with the addition of
  2441  // the ability to pass a context and additional request options.
  2442  //
  2443  // See StartPolicyGeneration for details on how to use this API operation.
  2444  //
  2445  // The context must be non-nil and will be used for request cancellation. If
  2446  // the context is nil a panic will occur. In the future the SDK may create
  2447  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2448  // for more information on using Contexts.
  2449  func (c *AccessAnalyzer) StartPolicyGenerationWithContext(ctx aws.Context, input *StartPolicyGenerationInput, opts ...request.Option) (*StartPolicyGenerationOutput, error) {
  2450  	req, out := c.StartPolicyGenerationRequest(input)
  2451  	req.SetContext(ctx)
  2452  	req.ApplyOptions(opts...)
  2453  	return out, req.Send()
  2454  }
  2455  
  2456  const opStartResourceScan = "StartResourceScan"
  2457  
  2458  // StartResourceScanRequest generates a "aws/request.Request" representing the
  2459  // client's request for the StartResourceScan operation. The "output" return
  2460  // value will be populated with the request's response once the request completes
  2461  // successfully.
  2462  //
  2463  // Use "Send" method on the returned Request to send the API call to the service.
  2464  // the "output" return value is not valid until after Send returns without error.
  2465  //
  2466  // See StartResourceScan for more information on using the StartResourceScan
  2467  // API call, and error handling.
  2468  //
  2469  // This method is useful when you want to inject custom logic or configuration
  2470  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2471  //
  2472  //
  2473  //    // Example sending a request using the StartResourceScanRequest method.
  2474  //    req, resp := client.StartResourceScanRequest(params)
  2475  //
  2476  //    err := req.Send()
  2477  //    if err == nil { // resp is now filled
  2478  //        fmt.Println(resp)
  2479  //    }
  2480  //
  2481  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/StartResourceScan
  2482  func (c *AccessAnalyzer) StartResourceScanRequest(input *StartResourceScanInput) (req *request.Request, output *StartResourceScanOutput) {
  2483  	op := &request.Operation{
  2484  		Name:       opStartResourceScan,
  2485  		HTTPMethod: "POST",
  2486  		HTTPPath:   "/resource/scan",
  2487  	}
  2488  
  2489  	if input == nil {
  2490  		input = &StartResourceScanInput{}
  2491  	}
  2492  
  2493  	output = &StartResourceScanOutput{}
  2494  	req = c.newRequest(op, input, output)
  2495  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2496  	return
  2497  }
  2498  
  2499  // StartResourceScan API operation for Access Analyzer.
  2500  //
  2501  // Immediately starts a scan of the policies applied to the specified resource.
  2502  //
  2503  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2504  // with awserr.Error's Code and Message methods to get detailed information about
  2505  // the error.
  2506  //
  2507  // See the AWS API reference guide for Access Analyzer's
  2508  // API operation StartResourceScan for usage and error information.
  2509  //
  2510  // Returned Error Types:
  2511  //   * ResourceNotFoundException
  2512  //   The specified resource could not be found.
  2513  //
  2514  //   * ValidationException
  2515  //   Validation exception error.
  2516  //
  2517  //   * InternalServerException
  2518  //   Internal server error.
  2519  //
  2520  //   * ThrottlingException
  2521  //   Throttling limit exceeded error.
  2522  //
  2523  //   * AccessDeniedException
  2524  //   You do not have sufficient access to perform this action.
  2525  //
  2526  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/StartResourceScan
  2527  func (c *AccessAnalyzer) StartResourceScan(input *StartResourceScanInput) (*StartResourceScanOutput, error) {
  2528  	req, out := c.StartResourceScanRequest(input)
  2529  	return out, req.Send()
  2530  }
  2531  
  2532  // StartResourceScanWithContext is the same as StartResourceScan with the addition of
  2533  // the ability to pass a context and additional request options.
  2534  //
  2535  // See StartResourceScan for details on how to use this API operation.
  2536  //
  2537  // The context must be non-nil and will be used for request cancellation. If
  2538  // the context is nil a panic will occur. In the future the SDK may create
  2539  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2540  // for more information on using Contexts.
  2541  func (c *AccessAnalyzer) StartResourceScanWithContext(ctx aws.Context, input *StartResourceScanInput, opts ...request.Option) (*StartResourceScanOutput, error) {
  2542  	req, out := c.StartResourceScanRequest(input)
  2543  	req.SetContext(ctx)
  2544  	req.ApplyOptions(opts...)
  2545  	return out, req.Send()
  2546  }
  2547  
  2548  const opTagResource = "TagResource"
  2549  
  2550  // TagResourceRequest generates a "aws/request.Request" representing the
  2551  // client's request for the TagResource operation. The "output" return
  2552  // value will be populated with the request's response once the request completes
  2553  // successfully.
  2554  //
  2555  // Use "Send" method on the returned Request to send the API call to the service.
  2556  // the "output" return value is not valid until after Send returns without error.
  2557  //
  2558  // See TagResource for more information on using the TagResource
  2559  // API call, and error handling.
  2560  //
  2561  // This method is useful when you want to inject custom logic or configuration
  2562  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2563  //
  2564  //
  2565  //    // Example sending a request using the TagResourceRequest method.
  2566  //    req, resp := client.TagResourceRequest(params)
  2567  //
  2568  //    err := req.Send()
  2569  //    if err == nil { // resp is now filled
  2570  //        fmt.Println(resp)
  2571  //    }
  2572  //
  2573  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/TagResource
  2574  func (c *AccessAnalyzer) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  2575  	op := &request.Operation{
  2576  		Name:       opTagResource,
  2577  		HTTPMethod: "POST",
  2578  		HTTPPath:   "/tags/{resourceArn}",
  2579  	}
  2580  
  2581  	if input == nil {
  2582  		input = &TagResourceInput{}
  2583  	}
  2584  
  2585  	output = &TagResourceOutput{}
  2586  	req = c.newRequest(op, input, output)
  2587  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2588  	return
  2589  }
  2590  
  2591  // TagResource API operation for Access Analyzer.
  2592  //
  2593  // Adds a tag to the specified resource.
  2594  //
  2595  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2596  // with awserr.Error's Code and Message methods to get detailed information about
  2597  // the error.
  2598  //
  2599  // See the AWS API reference guide for Access Analyzer's
  2600  // API operation TagResource for usage and error information.
  2601  //
  2602  // Returned Error Types:
  2603  //   * ResourceNotFoundException
  2604  //   The specified resource could not be found.
  2605  //
  2606  //   * ValidationException
  2607  //   Validation exception error.
  2608  //
  2609  //   * InternalServerException
  2610  //   Internal server error.
  2611  //
  2612  //   * ThrottlingException
  2613  //   Throttling limit exceeded error.
  2614  //
  2615  //   * AccessDeniedException
  2616  //   You do not have sufficient access to perform this action.
  2617  //
  2618  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/TagResource
  2619  func (c *AccessAnalyzer) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  2620  	req, out := c.TagResourceRequest(input)
  2621  	return out, req.Send()
  2622  }
  2623  
  2624  // TagResourceWithContext is the same as TagResource with the addition of
  2625  // the ability to pass a context and additional request options.
  2626  //
  2627  // See TagResource for details on how to use this API operation.
  2628  //
  2629  // The context must be non-nil and will be used for request cancellation. If
  2630  // the context is nil a panic will occur. In the future the SDK may create
  2631  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2632  // for more information on using Contexts.
  2633  func (c *AccessAnalyzer) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  2634  	req, out := c.TagResourceRequest(input)
  2635  	req.SetContext(ctx)
  2636  	req.ApplyOptions(opts...)
  2637  	return out, req.Send()
  2638  }
  2639  
  2640  const opUntagResource = "UntagResource"
  2641  
  2642  // UntagResourceRequest generates a "aws/request.Request" representing the
  2643  // client's request for the UntagResource operation. The "output" return
  2644  // value will be populated with the request's response once the request completes
  2645  // successfully.
  2646  //
  2647  // Use "Send" method on the returned Request to send the API call to the service.
  2648  // the "output" return value is not valid until after Send returns without error.
  2649  //
  2650  // See UntagResource for more information on using the UntagResource
  2651  // API call, and error handling.
  2652  //
  2653  // This method is useful when you want to inject custom logic or configuration
  2654  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2655  //
  2656  //
  2657  //    // Example sending a request using the UntagResourceRequest method.
  2658  //    req, resp := client.UntagResourceRequest(params)
  2659  //
  2660  //    err := req.Send()
  2661  //    if err == nil { // resp is now filled
  2662  //        fmt.Println(resp)
  2663  //    }
  2664  //
  2665  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UntagResource
  2666  func (c *AccessAnalyzer) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  2667  	op := &request.Operation{
  2668  		Name:       opUntagResource,
  2669  		HTTPMethod: "DELETE",
  2670  		HTTPPath:   "/tags/{resourceArn}",
  2671  	}
  2672  
  2673  	if input == nil {
  2674  		input = &UntagResourceInput{}
  2675  	}
  2676  
  2677  	output = &UntagResourceOutput{}
  2678  	req = c.newRequest(op, input, output)
  2679  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2680  	return
  2681  }
  2682  
  2683  // UntagResource API operation for Access Analyzer.
  2684  //
  2685  // Removes a tag from the specified resource.
  2686  //
  2687  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2688  // with awserr.Error's Code and Message methods to get detailed information about
  2689  // the error.
  2690  //
  2691  // See the AWS API reference guide for Access Analyzer's
  2692  // API operation UntagResource for usage and error information.
  2693  //
  2694  // Returned Error Types:
  2695  //   * ResourceNotFoundException
  2696  //   The specified resource could not be found.
  2697  //
  2698  //   * ValidationException
  2699  //   Validation exception error.
  2700  //
  2701  //   * InternalServerException
  2702  //   Internal server error.
  2703  //
  2704  //   * ThrottlingException
  2705  //   Throttling limit exceeded error.
  2706  //
  2707  //   * AccessDeniedException
  2708  //   You do not have sufficient access to perform this action.
  2709  //
  2710  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UntagResource
  2711  func (c *AccessAnalyzer) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  2712  	req, out := c.UntagResourceRequest(input)
  2713  	return out, req.Send()
  2714  }
  2715  
  2716  // UntagResourceWithContext is the same as UntagResource with the addition of
  2717  // the ability to pass a context and additional request options.
  2718  //
  2719  // See UntagResource for details on how to use this API operation.
  2720  //
  2721  // The context must be non-nil and will be used for request cancellation. If
  2722  // the context is nil a panic will occur. In the future the SDK may create
  2723  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2724  // for more information on using Contexts.
  2725  func (c *AccessAnalyzer) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  2726  	req, out := c.UntagResourceRequest(input)
  2727  	req.SetContext(ctx)
  2728  	req.ApplyOptions(opts...)
  2729  	return out, req.Send()
  2730  }
  2731  
  2732  const opUpdateArchiveRule = "UpdateArchiveRule"
  2733  
  2734  // UpdateArchiveRuleRequest generates a "aws/request.Request" representing the
  2735  // client's request for the UpdateArchiveRule operation. The "output" return
  2736  // value will be populated with the request's response once the request completes
  2737  // successfully.
  2738  //
  2739  // Use "Send" method on the returned Request to send the API call to the service.
  2740  // the "output" return value is not valid until after Send returns without error.
  2741  //
  2742  // See UpdateArchiveRule for more information on using the UpdateArchiveRule
  2743  // API call, and error handling.
  2744  //
  2745  // This method is useful when you want to inject custom logic or configuration
  2746  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2747  //
  2748  //
  2749  //    // Example sending a request using the UpdateArchiveRuleRequest method.
  2750  //    req, resp := client.UpdateArchiveRuleRequest(params)
  2751  //
  2752  //    err := req.Send()
  2753  //    if err == nil { // resp is now filled
  2754  //        fmt.Println(resp)
  2755  //    }
  2756  //
  2757  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UpdateArchiveRule
  2758  func (c *AccessAnalyzer) UpdateArchiveRuleRequest(input *UpdateArchiveRuleInput) (req *request.Request, output *UpdateArchiveRuleOutput) {
  2759  	op := &request.Operation{
  2760  		Name:       opUpdateArchiveRule,
  2761  		HTTPMethod: "PUT",
  2762  		HTTPPath:   "/analyzer/{analyzerName}/archive-rule/{ruleName}",
  2763  	}
  2764  
  2765  	if input == nil {
  2766  		input = &UpdateArchiveRuleInput{}
  2767  	}
  2768  
  2769  	output = &UpdateArchiveRuleOutput{}
  2770  	req = c.newRequest(op, input, output)
  2771  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2772  	return
  2773  }
  2774  
  2775  // UpdateArchiveRule API operation for Access Analyzer.
  2776  //
  2777  // Updates the criteria and values for the specified archive rule.
  2778  //
  2779  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2780  // with awserr.Error's Code and Message methods to get detailed information about
  2781  // the error.
  2782  //
  2783  // See the AWS API reference guide for Access Analyzer's
  2784  // API operation UpdateArchiveRule for usage and error information.
  2785  //
  2786  // Returned Error Types:
  2787  //   * ResourceNotFoundException
  2788  //   The specified resource could not be found.
  2789  //
  2790  //   * ValidationException
  2791  //   Validation exception error.
  2792  //
  2793  //   * InternalServerException
  2794  //   Internal server error.
  2795  //
  2796  //   * ThrottlingException
  2797  //   Throttling limit exceeded error.
  2798  //
  2799  //   * AccessDeniedException
  2800  //   You do not have sufficient access to perform this action.
  2801  //
  2802  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UpdateArchiveRule
  2803  func (c *AccessAnalyzer) UpdateArchiveRule(input *UpdateArchiveRuleInput) (*UpdateArchiveRuleOutput, error) {
  2804  	req, out := c.UpdateArchiveRuleRequest(input)
  2805  	return out, req.Send()
  2806  }
  2807  
  2808  // UpdateArchiveRuleWithContext is the same as UpdateArchiveRule with the addition of
  2809  // the ability to pass a context and additional request options.
  2810  //
  2811  // See UpdateArchiveRule for details on how to use this API operation.
  2812  //
  2813  // The context must be non-nil and will be used for request cancellation. If
  2814  // the context is nil a panic will occur. In the future the SDK may create
  2815  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2816  // for more information on using Contexts.
  2817  func (c *AccessAnalyzer) UpdateArchiveRuleWithContext(ctx aws.Context, input *UpdateArchiveRuleInput, opts ...request.Option) (*UpdateArchiveRuleOutput, error) {
  2818  	req, out := c.UpdateArchiveRuleRequest(input)
  2819  	req.SetContext(ctx)
  2820  	req.ApplyOptions(opts...)
  2821  	return out, req.Send()
  2822  }
  2823  
  2824  const opUpdateFindings = "UpdateFindings"
  2825  
  2826  // UpdateFindingsRequest generates a "aws/request.Request" representing the
  2827  // client's request for the UpdateFindings operation. The "output" return
  2828  // value will be populated with the request's response once the request completes
  2829  // successfully.
  2830  //
  2831  // Use "Send" method on the returned Request to send the API call to the service.
  2832  // the "output" return value is not valid until after Send returns without error.
  2833  //
  2834  // See UpdateFindings for more information on using the UpdateFindings
  2835  // API call, and error handling.
  2836  //
  2837  // This method is useful when you want to inject custom logic or configuration
  2838  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2839  //
  2840  //
  2841  //    // Example sending a request using the UpdateFindingsRequest method.
  2842  //    req, resp := client.UpdateFindingsRequest(params)
  2843  //
  2844  //    err := req.Send()
  2845  //    if err == nil { // resp is now filled
  2846  //        fmt.Println(resp)
  2847  //    }
  2848  //
  2849  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UpdateFindings
  2850  func (c *AccessAnalyzer) UpdateFindingsRequest(input *UpdateFindingsInput) (req *request.Request, output *UpdateFindingsOutput) {
  2851  	op := &request.Operation{
  2852  		Name:       opUpdateFindings,
  2853  		HTTPMethod: "PUT",
  2854  		HTTPPath:   "/finding",
  2855  	}
  2856  
  2857  	if input == nil {
  2858  		input = &UpdateFindingsInput{}
  2859  	}
  2860  
  2861  	output = &UpdateFindingsOutput{}
  2862  	req = c.newRequest(op, input, output)
  2863  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2864  	return
  2865  }
  2866  
  2867  // UpdateFindings API operation for Access Analyzer.
  2868  //
  2869  // Updates the status for the specified findings.
  2870  //
  2871  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2872  // with awserr.Error's Code and Message methods to get detailed information about
  2873  // the error.
  2874  //
  2875  // See the AWS API reference guide for Access Analyzer's
  2876  // API operation UpdateFindings for usage and error information.
  2877  //
  2878  // Returned Error Types:
  2879  //   * ResourceNotFoundException
  2880  //   The specified resource could not be found.
  2881  //
  2882  //   * ValidationException
  2883  //   Validation exception error.
  2884  //
  2885  //   * InternalServerException
  2886  //   Internal server error.
  2887  //
  2888  //   * ThrottlingException
  2889  //   Throttling limit exceeded error.
  2890  //
  2891  //   * AccessDeniedException
  2892  //   You do not have sufficient access to perform this action.
  2893  //
  2894  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UpdateFindings
  2895  func (c *AccessAnalyzer) UpdateFindings(input *UpdateFindingsInput) (*UpdateFindingsOutput, error) {
  2896  	req, out := c.UpdateFindingsRequest(input)
  2897  	return out, req.Send()
  2898  }
  2899  
  2900  // UpdateFindingsWithContext is the same as UpdateFindings with the addition of
  2901  // the ability to pass a context and additional request options.
  2902  //
  2903  // See UpdateFindings for details on how to use this API operation.
  2904  //
  2905  // The context must be non-nil and will be used for request cancellation. If
  2906  // the context is nil a panic will occur. In the future the SDK may create
  2907  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2908  // for more information on using Contexts.
  2909  func (c *AccessAnalyzer) UpdateFindingsWithContext(ctx aws.Context, input *UpdateFindingsInput, opts ...request.Option) (*UpdateFindingsOutput, error) {
  2910  	req, out := c.UpdateFindingsRequest(input)
  2911  	req.SetContext(ctx)
  2912  	req.ApplyOptions(opts...)
  2913  	return out, req.Send()
  2914  }
  2915  
  2916  const opValidatePolicy = "ValidatePolicy"
  2917  
  2918  // ValidatePolicyRequest generates a "aws/request.Request" representing the
  2919  // client's request for the ValidatePolicy operation. The "output" return
  2920  // value will be populated with the request's response once the request completes
  2921  // successfully.
  2922  //
  2923  // Use "Send" method on the returned Request to send the API call to the service.
  2924  // the "output" return value is not valid until after Send returns without error.
  2925  //
  2926  // See ValidatePolicy for more information on using the ValidatePolicy
  2927  // API call, and error handling.
  2928  //
  2929  // This method is useful when you want to inject custom logic or configuration
  2930  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2931  //
  2932  //
  2933  //    // Example sending a request using the ValidatePolicyRequest method.
  2934  //    req, resp := client.ValidatePolicyRequest(params)
  2935  //
  2936  //    err := req.Send()
  2937  //    if err == nil { // resp is now filled
  2938  //        fmt.Println(resp)
  2939  //    }
  2940  //
  2941  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ValidatePolicy
  2942  func (c *AccessAnalyzer) ValidatePolicyRequest(input *ValidatePolicyInput) (req *request.Request, output *ValidatePolicyOutput) {
  2943  	op := &request.Operation{
  2944  		Name:       opValidatePolicy,
  2945  		HTTPMethod: "POST",
  2946  		HTTPPath:   "/policy/validation",
  2947  		Paginator: &request.Paginator{
  2948  			InputTokens:     []string{"nextToken"},
  2949  			OutputTokens:    []string{"nextToken"},
  2950  			LimitToken:      "maxResults",
  2951  			TruncationToken: "",
  2952  		},
  2953  	}
  2954  
  2955  	if input == nil {
  2956  		input = &ValidatePolicyInput{}
  2957  	}
  2958  
  2959  	output = &ValidatePolicyOutput{}
  2960  	req = c.newRequest(op, input, output)
  2961  	return
  2962  }
  2963  
  2964  // ValidatePolicy API operation for Access Analyzer.
  2965  //
  2966  // Requests the validation of a policy and returns a list of findings. The findings
  2967  // help you identify issues and provide actionable recommendations to resolve
  2968  // the issue and enable you to author functional policies that meet security
  2969  // best practices.
  2970  //
  2971  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2972  // with awserr.Error's Code and Message methods to get detailed information about
  2973  // the error.
  2974  //
  2975  // See the AWS API reference guide for Access Analyzer's
  2976  // API operation ValidatePolicy for usage and error information.
  2977  //
  2978  // Returned Error Types:
  2979  //   * ValidationException
  2980  //   Validation exception error.
  2981  //
  2982  //   * InternalServerException
  2983  //   Internal server error.
  2984  //
  2985  //   * ThrottlingException
  2986  //   Throttling limit exceeded error.
  2987  //
  2988  //   * AccessDeniedException
  2989  //   You do not have sufficient access to perform this action.
  2990  //
  2991  // See also, https://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ValidatePolicy
  2992  func (c *AccessAnalyzer) ValidatePolicy(input *ValidatePolicyInput) (*ValidatePolicyOutput, error) {
  2993  	req, out := c.ValidatePolicyRequest(input)
  2994  	return out, req.Send()
  2995  }
  2996  
  2997  // ValidatePolicyWithContext is the same as ValidatePolicy with the addition of
  2998  // the ability to pass a context and additional request options.
  2999  //
  3000  // See ValidatePolicy for details on how to use this API operation.
  3001  //
  3002  // The context must be non-nil and will be used for request cancellation. If
  3003  // the context is nil a panic will occur. In the future the SDK may create
  3004  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3005  // for more information on using Contexts.
  3006  func (c *AccessAnalyzer) ValidatePolicyWithContext(ctx aws.Context, input *ValidatePolicyInput, opts ...request.Option) (*ValidatePolicyOutput, error) {
  3007  	req, out := c.ValidatePolicyRequest(input)
  3008  	req.SetContext(ctx)
  3009  	req.ApplyOptions(opts...)
  3010  	return out, req.Send()
  3011  }
  3012  
  3013  // ValidatePolicyPages iterates over the pages of a ValidatePolicy operation,
  3014  // calling the "fn" function with the response data for each page. To stop
  3015  // iterating, return false from the fn function.
  3016  //
  3017  // See ValidatePolicy method for more information on how to use this operation.
  3018  //
  3019  // Note: This operation can generate multiple requests to a service.
  3020  //
  3021  //    // Example iterating over at most 3 pages of a ValidatePolicy operation.
  3022  //    pageNum := 0
  3023  //    err := client.ValidatePolicyPages(params,
  3024  //        func(page *accessanalyzer.ValidatePolicyOutput, lastPage bool) bool {
  3025  //            pageNum++
  3026  //            fmt.Println(page)
  3027  //            return pageNum <= 3
  3028  //        })
  3029  //
  3030  func (c *AccessAnalyzer) ValidatePolicyPages(input *ValidatePolicyInput, fn func(*ValidatePolicyOutput, bool) bool) error {
  3031  	return c.ValidatePolicyPagesWithContext(aws.BackgroundContext(), input, fn)
  3032  }
  3033  
  3034  // ValidatePolicyPagesWithContext same as ValidatePolicyPages except
  3035  // it takes a Context and allows setting request options on the pages.
  3036  //
  3037  // The context must be non-nil and will be used for request cancellation. If
  3038  // the context is nil a panic will occur. In the future the SDK may create
  3039  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3040  // for more information on using Contexts.
  3041  func (c *AccessAnalyzer) ValidatePolicyPagesWithContext(ctx aws.Context, input *ValidatePolicyInput, fn func(*ValidatePolicyOutput, bool) bool, opts ...request.Option) error {
  3042  	p := request.Pagination{
  3043  		NewRequest: func() (*request.Request, error) {
  3044  			var inCpy *ValidatePolicyInput
  3045  			if input != nil {
  3046  				tmp := *input
  3047  				inCpy = &tmp
  3048  			}
  3049  			req, _ := c.ValidatePolicyRequest(inCpy)
  3050  			req.SetContext(ctx)
  3051  			req.ApplyOptions(opts...)
  3052  			return req, nil
  3053  		},
  3054  	}
  3055  
  3056  	for p.Next() {
  3057  		if !fn(p.Page().(*ValidatePolicyOutput), !p.HasNextPage()) {
  3058  			break
  3059  		}
  3060  	}
  3061  
  3062  	return p.Err()
  3063  }
  3064  
  3065  // You do not have sufficient access to perform this action.
  3066  type AccessDeniedException struct {
  3067  	_            struct{}                  `type:"structure"`
  3068  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3069  
  3070  	Message_ *string `locationName:"message" type:"string"`
  3071  }
  3072  
  3073  // String returns the string representation.
  3074  //
  3075  // API parameter values that are decorated as "sensitive" in the API will not
  3076  // be included in the string output. The member name will be present, but the
  3077  // value will be replaced with "sensitive".
  3078  func (s AccessDeniedException) String() string {
  3079  	return awsutil.Prettify(s)
  3080  }
  3081  
  3082  // GoString returns the string representation.
  3083  //
  3084  // API parameter values that are decorated as "sensitive" in the API will not
  3085  // be included in the string output. The member name will be present, but the
  3086  // value will be replaced with "sensitive".
  3087  func (s AccessDeniedException) GoString() string {
  3088  	return s.String()
  3089  }
  3090  
  3091  func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
  3092  	return &AccessDeniedException{
  3093  		RespMetadata: v,
  3094  	}
  3095  }
  3096  
  3097  // Code returns the exception type name.
  3098  func (s *AccessDeniedException) Code() string {
  3099  	return "AccessDeniedException"
  3100  }
  3101  
  3102  // Message returns the exception's message.
  3103  func (s *AccessDeniedException) Message() string {
  3104  	if s.Message_ != nil {
  3105  		return *s.Message_
  3106  	}
  3107  	return ""
  3108  }
  3109  
  3110  // OrigErr always returns nil, satisfies awserr.Error interface.
  3111  func (s *AccessDeniedException) OrigErr() error {
  3112  	return nil
  3113  }
  3114  
  3115  func (s *AccessDeniedException) Error() string {
  3116  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3117  }
  3118  
  3119  // Status code returns the HTTP status code for the request's response error.
  3120  func (s *AccessDeniedException) StatusCode() int {
  3121  	return s.RespMetadata.StatusCode
  3122  }
  3123  
  3124  // RequestID returns the service's response RequestID for request.
  3125  func (s *AccessDeniedException) RequestID() string {
  3126  	return s.RespMetadata.RequestID
  3127  }
  3128  
  3129  // Contains information about an access preview.
  3130  type AccessPreview struct {
  3131  	_ struct{} `type:"structure"`
  3132  
  3133  	// The ARN of the analyzer used to generate the access preview.
  3134  	//
  3135  	// AnalyzerArn is a required field
  3136  	AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"`
  3137  
  3138  	// A map of resource ARNs for the proposed resource configuration.
  3139  	//
  3140  	// Configurations is a required field
  3141  	Configurations map[string]*Configuration `locationName:"configurations" type:"map" required:"true"`
  3142  
  3143  	// The time at which the access preview was created.
  3144  	//
  3145  	// CreatedAt is a required field
  3146  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  3147  
  3148  	// The unique ID for the access preview.
  3149  	//
  3150  	// Id is a required field
  3151  	Id *string `locationName:"id" type:"string" required:"true"`
  3152  
  3153  	// The status of the access preview.
  3154  	//
  3155  	//    * Creating - The access preview creation is in progress.
  3156  	//
  3157  	//    * Completed - The access preview is complete. You can preview findings
  3158  	//    for external access to the resource.
  3159  	//
  3160  	//    * Failed - The access preview creation has failed.
  3161  	//
  3162  	// Status is a required field
  3163  	Status *string `locationName:"status" type:"string" required:"true" enum:"AccessPreviewStatus"`
  3164  
  3165  	// Provides more details about the current status of the access preview.
  3166  	//
  3167  	// For example, if the creation of the access preview fails, a Failed status
  3168  	// is returned. This failure can be due to an internal issue with the analysis
  3169  	// or due to an invalid resource configuration.
  3170  	StatusReason *AccessPreviewStatusReason `locationName:"statusReason" type:"structure"`
  3171  }
  3172  
  3173  // String returns the string representation.
  3174  //
  3175  // API parameter values that are decorated as "sensitive" in the API will not
  3176  // be included in the string output. The member name will be present, but the
  3177  // value will be replaced with "sensitive".
  3178  func (s AccessPreview) String() string {
  3179  	return awsutil.Prettify(s)
  3180  }
  3181  
  3182  // GoString returns the string representation.
  3183  //
  3184  // API parameter values that are decorated as "sensitive" in the API will not
  3185  // be included in the string output. The member name will be present, but the
  3186  // value will be replaced with "sensitive".
  3187  func (s AccessPreview) GoString() string {
  3188  	return s.String()
  3189  }
  3190  
  3191  // SetAnalyzerArn sets the AnalyzerArn field's value.
  3192  func (s *AccessPreview) SetAnalyzerArn(v string) *AccessPreview {
  3193  	s.AnalyzerArn = &v
  3194  	return s
  3195  }
  3196  
  3197  // SetConfigurations sets the Configurations field's value.
  3198  func (s *AccessPreview) SetConfigurations(v map[string]*Configuration) *AccessPreview {
  3199  	s.Configurations = v
  3200  	return s
  3201  }
  3202  
  3203  // SetCreatedAt sets the CreatedAt field's value.
  3204  func (s *AccessPreview) SetCreatedAt(v time.Time) *AccessPreview {
  3205  	s.CreatedAt = &v
  3206  	return s
  3207  }
  3208  
  3209  // SetId sets the Id field's value.
  3210  func (s *AccessPreview) SetId(v string) *AccessPreview {
  3211  	s.Id = &v
  3212  	return s
  3213  }
  3214  
  3215  // SetStatus sets the Status field's value.
  3216  func (s *AccessPreview) SetStatus(v string) *AccessPreview {
  3217  	s.Status = &v
  3218  	return s
  3219  }
  3220  
  3221  // SetStatusReason sets the StatusReason field's value.
  3222  func (s *AccessPreview) SetStatusReason(v *AccessPreviewStatusReason) *AccessPreview {
  3223  	s.StatusReason = v
  3224  	return s
  3225  }
  3226  
  3227  // An access preview finding generated by the access preview.
  3228  type AccessPreviewFinding struct {
  3229  	_ struct{} `type:"structure"`
  3230  
  3231  	// The action in the analyzed policy statement that an external principal has
  3232  	// permission to perform.
  3233  	Action []*string `locationName:"action" type:"list"`
  3234  
  3235  	// Provides context on how the access preview finding compares to existing access
  3236  	// identified in IAM Access Analyzer.
  3237  	//
  3238  	//    * New - The finding is for newly-introduced access.
  3239  	//
  3240  	//    * Unchanged - The preview finding is an existing finding that would remain
  3241  	//    unchanged.
  3242  	//
  3243  	//    * Changed - The preview finding is an existing finding with a change in
  3244  	//    status.
  3245  	//
  3246  	// For example, a Changed finding with preview status Resolved and existing
  3247  	// status Active indicates the existing Active finding would become Resolved
  3248  	// as a result of the proposed permissions change.
  3249  	//
  3250  	// ChangeType is a required field
  3251  	ChangeType *string `locationName:"changeType" type:"string" required:"true" enum:"FindingChangeType"`
  3252  
  3253  	// The condition in the analyzed policy statement that resulted in a finding.
  3254  	Condition map[string]*string `locationName:"condition" type:"map"`
  3255  
  3256  	// The time at which the access preview finding was created.
  3257  	//
  3258  	// CreatedAt is a required field
  3259  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  3260  
  3261  	// An error.
  3262  	Error *string `locationName:"error" type:"string"`
  3263  
  3264  	// The existing ID of the finding in IAM Access Analyzer, provided only for
  3265  	// existing findings.
  3266  	ExistingFindingId *string `locationName:"existingFindingId" type:"string"`
  3267  
  3268  	// The existing status of the finding, provided only for existing findings.
  3269  	ExistingFindingStatus *string `locationName:"existingFindingStatus" type:"string" enum:"FindingStatus"`
  3270  
  3271  	// The ID of the access preview finding. This ID uniquely identifies the element
  3272  	// in the list of access preview findings and is not related to the finding
  3273  	// ID in Access Analyzer.
  3274  	//
  3275  	// Id is a required field
  3276  	Id *string `locationName:"id" type:"string" required:"true"`
  3277  
  3278  	// Indicates whether the policy that generated the finding allows public access
  3279  	// to the resource.
  3280  	IsPublic *bool `locationName:"isPublic" type:"boolean"`
  3281  
  3282  	// The external principal that has access to a resource within the zone of trust.
  3283  	Principal map[string]*string `locationName:"principal" type:"map"`
  3284  
  3285  	// The resource that an external principal has access to. This is the resource
  3286  	// associated with the access preview.
  3287  	Resource *string `locationName:"resource" type:"string"`
  3288  
  3289  	// The Amazon Web Services account ID that owns the resource. For most Amazon
  3290  	// Web Services resources, the owning account is the account in which the resource
  3291  	// was created.
  3292  	//
  3293  	// ResourceOwnerAccount is a required field
  3294  	ResourceOwnerAccount *string `locationName:"resourceOwnerAccount" type:"string" required:"true"`
  3295  
  3296  	// The type of the resource that can be accessed in the finding.
  3297  	//
  3298  	// ResourceType is a required field
  3299  	ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
  3300  
  3301  	// The sources of the finding. This indicates how the access that generated
  3302  	// the finding is granted. It is populated for Amazon S3 bucket findings.
  3303  	Sources []*FindingSource `locationName:"sources" type:"list"`
  3304  
  3305  	// The preview status of the finding. This is what the status of the finding
  3306  	// would be after permissions deployment. For example, a Changed finding with
  3307  	// preview status Resolved and existing status Active indicates the existing
  3308  	// Active finding would become Resolved as a result of the proposed permissions
  3309  	// change.
  3310  	//
  3311  	// Status is a required field
  3312  	Status *string `locationName:"status" type:"string" required:"true" enum:"FindingStatus"`
  3313  }
  3314  
  3315  // String returns the string representation.
  3316  //
  3317  // API parameter values that are decorated as "sensitive" in the API will not
  3318  // be included in the string output. The member name will be present, but the
  3319  // value will be replaced with "sensitive".
  3320  func (s AccessPreviewFinding) String() string {
  3321  	return awsutil.Prettify(s)
  3322  }
  3323  
  3324  // GoString returns the string representation.
  3325  //
  3326  // API parameter values that are decorated as "sensitive" in the API will not
  3327  // be included in the string output. The member name will be present, but the
  3328  // value will be replaced with "sensitive".
  3329  func (s AccessPreviewFinding) GoString() string {
  3330  	return s.String()
  3331  }
  3332  
  3333  // SetAction sets the Action field's value.
  3334  func (s *AccessPreviewFinding) SetAction(v []*string) *AccessPreviewFinding {
  3335  	s.Action = v
  3336  	return s
  3337  }
  3338  
  3339  // SetChangeType sets the ChangeType field's value.
  3340  func (s *AccessPreviewFinding) SetChangeType(v string) *AccessPreviewFinding {
  3341  	s.ChangeType = &v
  3342  	return s
  3343  }
  3344  
  3345  // SetCondition sets the Condition field's value.
  3346  func (s *AccessPreviewFinding) SetCondition(v map[string]*string) *AccessPreviewFinding {
  3347  	s.Condition = v
  3348  	return s
  3349  }
  3350  
  3351  // SetCreatedAt sets the CreatedAt field's value.
  3352  func (s *AccessPreviewFinding) SetCreatedAt(v time.Time) *AccessPreviewFinding {
  3353  	s.CreatedAt = &v
  3354  	return s
  3355  }
  3356  
  3357  // SetError sets the Error field's value.
  3358  func (s *AccessPreviewFinding) SetError(v string) *AccessPreviewFinding {
  3359  	s.Error = &v
  3360  	return s
  3361  }
  3362  
  3363  // SetExistingFindingId sets the ExistingFindingId field's value.
  3364  func (s *AccessPreviewFinding) SetExistingFindingId(v string) *AccessPreviewFinding {
  3365  	s.ExistingFindingId = &v
  3366  	return s
  3367  }
  3368  
  3369  // SetExistingFindingStatus sets the ExistingFindingStatus field's value.
  3370  func (s *AccessPreviewFinding) SetExistingFindingStatus(v string) *AccessPreviewFinding {
  3371  	s.ExistingFindingStatus = &v
  3372  	return s
  3373  }
  3374  
  3375  // SetId sets the Id field's value.
  3376  func (s *AccessPreviewFinding) SetId(v string) *AccessPreviewFinding {
  3377  	s.Id = &v
  3378  	return s
  3379  }
  3380  
  3381  // SetIsPublic sets the IsPublic field's value.
  3382  func (s *AccessPreviewFinding) SetIsPublic(v bool) *AccessPreviewFinding {
  3383  	s.IsPublic = &v
  3384  	return s
  3385  }
  3386  
  3387  // SetPrincipal sets the Principal field's value.
  3388  func (s *AccessPreviewFinding) SetPrincipal(v map[string]*string) *AccessPreviewFinding {
  3389  	s.Principal = v
  3390  	return s
  3391  }
  3392  
  3393  // SetResource sets the Resource field's value.
  3394  func (s *AccessPreviewFinding) SetResource(v string) *AccessPreviewFinding {
  3395  	s.Resource = &v
  3396  	return s
  3397  }
  3398  
  3399  // SetResourceOwnerAccount sets the ResourceOwnerAccount field's value.
  3400  func (s *AccessPreviewFinding) SetResourceOwnerAccount(v string) *AccessPreviewFinding {
  3401  	s.ResourceOwnerAccount = &v
  3402  	return s
  3403  }
  3404  
  3405  // SetResourceType sets the ResourceType field's value.
  3406  func (s *AccessPreviewFinding) SetResourceType(v string) *AccessPreviewFinding {
  3407  	s.ResourceType = &v
  3408  	return s
  3409  }
  3410  
  3411  // SetSources sets the Sources field's value.
  3412  func (s *AccessPreviewFinding) SetSources(v []*FindingSource) *AccessPreviewFinding {
  3413  	s.Sources = v
  3414  	return s
  3415  }
  3416  
  3417  // SetStatus sets the Status field's value.
  3418  func (s *AccessPreviewFinding) SetStatus(v string) *AccessPreviewFinding {
  3419  	s.Status = &v
  3420  	return s
  3421  }
  3422  
  3423  // Provides more details about the current status of the access preview. For
  3424  // example, if the creation of the access preview fails, a Failed status is
  3425  // returned. This failure can be due to an internal issue with the analysis
  3426  // or due to an invalid proposed resource configuration.
  3427  type AccessPreviewStatusReason struct {
  3428  	_ struct{} `type:"structure"`
  3429  
  3430  	// The reason code for the current status of the access preview.
  3431  	//
  3432  	// Code is a required field
  3433  	Code *string `locationName:"code" type:"string" required:"true" enum:"AccessPreviewStatusReasonCode"`
  3434  }
  3435  
  3436  // String returns the string representation.
  3437  //
  3438  // API parameter values that are decorated as "sensitive" in the API will not
  3439  // be included in the string output. The member name will be present, but the
  3440  // value will be replaced with "sensitive".
  3441  func (s AccessPreviewStatusReason) String() string {
  3442  	return awsutil.Prettify(s)
  3443  }
  3444  
  3445  // GoString returns the string representation.
  3446  //
  3447  // API parameter values that are decorated as "sensitive" in the API will not
  3448  // be included in the string output. The member name will be present, but the
  3449  // value will be replaced with "sensitive".
  3450  func (s AccessPreviewStatusReason) GoString() string {
  3451  	return s.String()
  3452  }
  3453  
  3454  // SetCode sets the Code field's value.
  3455  func (s *AccessPreviewStatusReason) SetCode(v string) *AccessPreviewStatusReason {
  3456  	s.Code = &v
  3457  	return s
  3458  }
  3459  
  3460  // Contains a summary of information about an access preview.
  3461  type AccessPreviewSummary struct {
  3462  	_ struct{} `type:"structure"`
  3463  
  3464  	// The ARN of the analyzer used to generate the access preview.
  3465  	//
  3466  	// AnalyzerArn is a required field
  3467  	AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"`
  3468  
  3469  	// The time at which the access preview was created.
  3470  	//
  3471  	// CreatedAt is a required field
  3472  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  3473  
  3474  	// The unique ID for the access preview.
  3475  	//
  3476  	// Id is a required field
  3477  	Id *string `locationName:"id" type:"string" required:"true"`
  3478  
  3479  	// The status of the access preview.
  3480  	//
  3481  	//    * Creating - The access preview creation is in progress.
  3482  	//
  3483  	//    * Completed - The access preview is complete and previews the findings
  3484  	//    for external access to the resource.
  3485  	//
  3486  	//    * Failed - The access preview creation has failed.
  3487  	//
  3488  	// Status is a required field
  3489  	Status *string `locationName:"status" type:"string" required:"true" enum:"AccessPreviewStatus"`
  3490  
  3491  	// Provides more details about the current status of the access preview. For
  3492  	// example, if the creation of the access preview fails, a Failed status is
  3493  	// returned. This failure can be due to an internal issue with the analysis
  3494  	// or due to an invalid proposed resource configuration.
  3495  	StatusReason *AccessPreviewStatusReason `locationName:"statusReason" type:"structure"`
  3496  }
  3497  
  3498  // String returns the string representation.
  3499  //
  3500  // API parameter values that are decorated as "sensitive" in the API will not
  3501  // be included in the string output. The member name will be present, but the
  3502  // value will be replaced with "sensitive".
  3503  func (s AccessPreviewSummary) String() string {
  3504  	return awsutil.Prettify(s)
  3505  }
  3506  
  3507  // GoString returns the string representation.
  3508  //
  3509  // API parameter values that are decorated as "sensitive" in the API will not
  3510  // be included in the string output. The member name will be present, but the
  3511  // value will be replaced with "sensitive".
  3512  func (s AccessPreviewSummary) GoString() string {
  3513  	return s.String()
  3514  }
  3515  
  3516  // SetAnalyzerArn sets the AnalyzerArn field's value.
  3517  func (s *AccessPreviewSummary) SetAnalyzerArn(v string) *AccessPreviewSummary {
  3518  	s.AnalyzerArn = &v
  3519  	return s
  3520  }
  3521  
  3522  // SetCreatedAt sets the CreatedAt field's value.
  3523  func (s *AccessPreviewSummary) SetCreatedAt(v time.Time) *AccessPreviewSummary {
  3524  	s.CreatedAt = &v
  3525  	return s
  3526  }
  3527  
  3528  // SetId sets the Id field's value.
  3529  func (s *AccessPreviewSummary) SetId(v string) *AccessPreviewSummary {
  3530  	s.Id = &v
  3531  	return s
  3532  }
  3533  
  3534  // SetStatus sets the Status field's value.
  3535  func (s *AccessPreviewSummary) SetStatus(v string) *AccessPreviewSummary {
  3536  	s.Status = &v
  3537  	return s
  3538  }
  3539  
  3540  // SetStatusReason sets the StatusReason field's value.
  3541  func (s *AccessPreviewSummary) SetStatusReason(v *AccessPreviewStatusReason) *AccessPreviewSummary {
  3542  	s.StatusReason = v
  3543  	return s
  3544  }
  3545  
  3546  // You specify each grantee as a type-value pair using one of these types. You
  3547  // can specify only one type of grantee. For more information, see PutBucketAcl
  3548  // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAcl.html).
  3549  type AclGrantee struct {
  3550  	_ struct{} `type:"structure"`
  3551  
  3552  	// The value specified is the canonical user ID of an Amazon Web Services account.
  3553  	Id *string `locationName:"id" type:"string"`
  3554  
  3555  	// Used for granting permissions to a predefined group.
  3556  	Uri *string `locationName:"uri" type:"string"`
  3557  }
  3558  
  3559  // String returns the string representation.
  3560  //
  3561  // API parameter values that are decorated as "sensitive" in the API will not
  3562  // be included in the string output. The member name will be present, but the
  3563  // value will be replaced with "sensitive".
  3564  func (s AclGrantee) String() string {
  3565  	return awsutil.Prettify(s)
  3566  }
  3567  
  3568  // GoString returns the string representation.
  3569  //
  3570  // API parameter values that are decorated as "sensitive" in the API will not
  3571  // be included in the string output. The member name will be present, but the
  3572  // value will be replaced with "sensitive".
  3573  func (s AclGrantee) GoString() string {
  3574  	return s.String()
  3575  }
  3576  
  3577  // SetId sets the Id field's value.
  3578  func (s *AclGrantee) SetId(v string) *AclGrantee {
  3579  	s.Id = &v
  3580  	return s
  3581  }
  3582  
  3583  // SetUri sets the Uri field's value.
  3584  func (s *AclGrantee) SetUri(v string) *AclGrantee {
  3585  	s.Uri = &v
  3586  	return s
  3587  }
  3588  
  3589  // Contains details about the analyzed resource.
  3590  type AnalyzedResource struct {
  3591  	_ struct{} `type:"structure"`
  3592  
  3593  	// The actions that an external principal is granted permission to use by the
  3594  	// policy that generated the finding.
  3595  	Actions []*string `locationName:"actions" type:"list"`
  3596  
  3597  	// The time at which the resource was analyzed.
  3598  	//
  3599  	// AnalyzedAt is a required field
  3600  	AnalyzedAt *time.Time `locationName:"analyzedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  3601  
  3602  	// The time at which the finding was created.
  3603  	//
  3604  	// CreatedAt is a required field
  3605  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  3606  
  3607  	// An error message.
  3608  	Error *string `locationName:"error" type:"string"`
  3609  
  3610  	// Indicates whether the policy that generated the finding grants public access
  3611  	// to the resource.
  3612  	//
  3613  	// IsPublic is a required field
  3614  	IsPublic *bool `locationName:"isPublic" type:"boolean" required:"true"`
  3615  
  3616  	// The ARN of the resource that was analyzed.
  3617  	//
  3618  	// ResourceArn is a required field
  3619  	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
  3620  
  3621  	// The Amazon Web Services account ID that owns the resource.
  3622  	//
  3623  	// ResourceOwnerAccount is a required field
  3624  	ResourceOwnerAccount *string `locationName:"resourceOwnerAccount" type:"string" required:"true"`
  3625  
  3626  	// The type of the resource that was analyzed.
  3627  	//
  3628  	// ResourceType is a required field
  3629  	ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
  3630  
  3631  	// Indicates how the access that generated the finding is granted. This is populated
  3632  	// for Amazon S3 bucket findings.
  3633  	SharedVia []*string `locationName:"sharedVia" type:"list"`
  3634  
  3635  	// The current status of the finding generated from the analyzed resource.
  3636  	Status *string `locationName:"status" type:"string" enum:"FindingStatus"`
  3637  
  3638  	// The time at which the finding was updated.
  3639  	//
  3640  	// UpdatedAt is a required field
  3641  	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  3642  }
  3643  
  3644  // String returns the string representation.
  3645  //
  3646  // API parameter values that are decorated as "sensitive" in the API will not
  3647  // be included in the string output. The member name will be present, but the
  3648  // value will be replaced with "sensitive".
  3649  func (s AnalyzedResource) String() string {
  3650  	return awsutil.Prettify(s)
  3651  }
  3652  
  3653  // GoString returns the string representation.
  3654  //
  3655  // API parameter values that are decorated as "sensitive" in the API will not
  3656  // be included in the string output. The member name will be present, but the
  3657  // value will be replaced with "sensitive".
  3658  func (s AnalyzedResource) GoString() string {
  3659  	return s.String()
  3660  }
  3661  
  3662  // SetActions sets the Actions field's value.
  3663  func (s *AnalyzedResource) SetActions(v []*string) *AnalyzedResource {
  3664  	s.Actions = v
  3665  	return s
  3666  }
  3667  
  3668  // SetAnalyzedAt sets the AnalyzedAt field's value.
  3669  func (s *AnalyzedResource) SetAnalyzedAt(v time.Time) *AnalyzedResource {
  3670  	s.AnalyzedAt = &v
  3671  	return s
  3672  }
  3673  
  3674  // SetCreatedAt sets the CreatedAt field's value.
  3675  func (s *AnalyzedResource) SetCreatedAt(v time.Time) *AnalyzedResource {
  3676  	s.CreatedAt = &v
  3677  	return s
  3678  }
  3679  
  3680  // SetError sets the Error field's value.
  3681  func (s *AnalyzedResource) SetError(v string) *AnalyzedResource {
  3682  	s.Error = &v
  3683  	return s
  3684  }
  3685  
  3686  // SetIsPublic sets the IsPublic field's value.
  3687  func (s *AnalyzedResource) SetIsPublic(v bool) *AnalyzedResource {
  3688  	s.IsPublic = &v
  3689  	return s
  3690  }
  3691  
  3692  // SetResourceArn sets the ResourceArn field's value.
  3693  func (s *AnalyzedResource) SetResourceArn(v string) *AnalyzedResource {
  3694  	s.ResourceArn = &v
  3695  	return s
  3696  }
  3697  
  3698  // SetResourceOwnerAccount sets the ResourceOwnerAccount field's value.
  3699  func (s *AnalyzedResource) SetResourceOwnerAccount(v string) *AnalyzedResource {
  3700  	s.ResourceOwnerAccount = &v
  3701  	return s
  3702  }
  3703  
  3704  // SetResourceType sets the ResourceType field's value.
  3705  func (s *AnalyzedResource) SetResourceType(v string) *AnalyzedResource {
  3706  	s.ResourceType = &v
  3707  	return s
  3708  }
  3709  
  3710  // SetSharedVia sets the SharedVia field's value.
  3711  func (s *AnalyzedResource) SetSharedVia(v []*string) *AnalyzedResource {
  3712  	s.SharedVia = v
  3713  	return s
  3714  }
  3715  
  3716  // SetStatus sets the Status field's value.
  3717  func (s *AnalyzedResource) SetStatus(v string) *AnalyzedResource {
  3718  	s.Status = &v
  3719  	return s
  3720  }
  3721  
  3722  // SetUpdatedAt sets the UpdatedAt field's value.
  3723  func (s *AnalyzedResource) SetUpdatedAt(v time.Time) *AnalyzedResource {
  3724  	s.UpdatedAt = &v
  3725  	return s
  3726  }
  3727  
  3728  // Contains the ARN of the analyzed resource.
  3729  type AnalyzedResourceSummary struct {
  3730  	_ struct{} `type:"structure"`
  3731  
  3732  	// The ARN of the analyzed resource.
  3733  	//
  3734  	// ResourceArn is a required field
  3735  	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
  3736  
  3737  	// The Amazon Web Services account ID that owns the resource.
  3738  	//
  3739  	// ResourceOwnerAccount is a required field
  3740  	ResourceOwnerAccount *string `locationName:"resourceOwnerAccount" type:"string" required:"true"`
  3741  
  3742  	// The type of resource that was analyzed.
  3743  	//
  3744  	// ResourceType is a required field
  3745  	ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
  3746  }
  3747  
  3748  // String returns the string representation.
  3749  //
  3750  // API parameter values that are decorated as "sensitive" in the API will not
  3751  // be included in the string output. The member name will be present, but the
  3752  // value will be replaced with "sensitive".
  3753  func (s AnalyzedResourceSummary) String() string {
  3754  	return awsutil.Prettify(s)
  3755  }
  3756  
  3757  // GoString returns the string representation.
  3758  //
  3759  // API parameter values that are decorated as "sensitive" in the API will not
  3760  // be included in the string output. The member name will be present, but the
  3761  // value will be replaced with "sensitive".
  3762  func (s AnalyzedResourceSummary) GoString() string {
  3763  	return s.String()
  3764  }
  3765  
  3766  // SetResourceArn sets the ResourceArn field's value.
  3767  func (s *AnalyzedResourceSummary) SetResourceArn(v string) *AnalyzedResourceSummary {
  3768  	s.ResourceArn = &v
  3769  	return s
  3770  }
  3771  
  3772  // SetResourceOwnerAccount sets the ResourceOwnerAccount field's value.
  3773  func (s *AnalyzedResourceSummary) SetResourceOwnerAccount(v string) *AnalyzedResourceSummary {
  3774  	s.ResourceOwnerAccount = &v
  3775  	return s
  3776  }
  3777  
  3778  // SetResourceType sets the ResourceType field's value.
  3779  func (s *AnalyzedResourceSummary) SetResourceType(v string) *AnalyzedResourceSummary {
  3780  	s.ResourceType = &v
  3781  	return s
  3782  }
  3783  
  3784  // Contains information about the analyzer.
  3785  type AnalyzerSummary struct {
  3786  	_ struct{} `type:"structure"`
  3787  
  3788  	// The ARN of the analyzer.
  3789  	//
  3790  	// Arn is a required field
  3791  	Arn *string `locationName:"arn" type:"string" required:"true"`
  3792  
  3793  	// A timestamp for the time at which the analyzer was created.
  3794  	//
  3795  	// CreatedAt is a required field
  3796  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  3797  
  3798  	// The resource that was most recently analyzed by the analyzer.
  3799  	LastResourceAnalyzed *string `locationName:"lastResourceAnalyzed" type:"string"`
  3800  
  3801  	// The time at which the most recently analyzed resource was analyzed.
  3802  	LastResourceAnalyzedAt *time.Time `locationName:"lastResourceAnalyzedAt" type:"timestamp" timestampFormat:"iso8601"`
  3803  
  3804  	// The name of the analyzer.
  3805  	//
  3806  	// Name is a required field
  3807  	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
  3808  
  3809  	// The status of the analyzer. An Active analyzer successfully monitors supported
  3810  	// resources and generates new findings. The analyzer is Disabled when a user
  3811  	// action, such as removing trusted access for Identity and Access Management
  3812  	// Access Analyzer from Organizations, causes the analyzer to stop generating
  3813  	// new findings. The status is Creating when the analyzer creation is in progress
  3814  	// and Failed when the analyzer creation has failed.
  3815  	//
  3816  	// Status is a required field
  3817  	Status *string `locationName:"status" type:"string" required:"true" enum:"AnalyzerStatus"`
  3818  
  3819  	// The statusReason provides more details about the current status of the analyzer.
  3820  	// For example, if the creation for the analyzer fails, a Failed status is returned.
  3821  	// For an analyzer with organization as the type, this failure can be due to
  3822  	// an issue with creating the service-linked roles required in the member accounts
  3823  	// of the Amazon Web Services organization.
  3824  	StatusReason *StatusReason `locationName:"statusReason" type:"structure"`
  3825  
  3826  	// The tags added to the analyzer.
  3827  	Tags map[string]*string `locationName:"tags" type:"map"`
  3828  
  3829  	// The type of analyzer, which corresponds to the zone of trust chosen for the
  3830  	// analyzer.
  3831  	//
  3832  	// Type is a required field
  3833  	Type *string `locationName:"type" type:"string" required:"true" enum:"Type"`
  3834  }
  3835  
  3836  // String returns the string representation.
  3837  //
  3838  // API parameter values that are decorated as "sensitive" in the API will not
  3839  // be included in the string output. The member name will be present, but the
  3840  // value will be replaced with "sensitive".
  3841  func (s AnalyzerSummary) String() string {
  3842  	return awsutil.Prettify(s)
  3843  }
  3844  
  3845  // GoString returns the string representation.
  3846  //
  3847  // API parameter values that are decorated as "sensitive" in the API will not
  3848  // be included in the string output. The member name will be present, but the
  3849  // value will be replaced with "sensitive".
  3850  func (s AnalyzerSummary) GoString() string {
  3851  	return s.String()
  3852  }
  3853  
  3854  // SetArn sets the Arn field's value.
  3855  func (s *AnalyzerSummary) SetArn(v string) *AnalyzerSummary {
  3856  	s.Arn = &v
  3857  	return s
  3858  }
  3859  
  3860  // SetCreatedAt sets the CreatedAt field's value.
  3861  func (s *AnalyzerSummary) SetCreatedAt(v time.Time) *AnalyzerSummary {
  3862  	s.CreatedAt = &v
  3863  	return s
  3864  }
  3865  
  3866  // SetLastResourceAnalyzed sets the LastResourceAnalyzed field's value.
  3867  func (s *AnalyzerSummary) SetLastResourceAnalyzed(v string) *AnalyzerSummary {
  3868  	s.LastResourceAnalyzed = &v
  3869  	return s
  3870  }
  3871  
  3872  // SetLastResourceAnalyzedAt sets the LastResourceAnalyzedAt field's value.
  3873  func (s *AnalyzerSummary) SetLastResourceAnalyzedAt(v time.Time) *AnalyzerSummary {
  3874  	s.LastResourceAnalyzedAt = &v
  3875  	return s
  3876  }
  3877  
  3878  // SetName sets the Name field's value.
  3879  func (s *AnalyzerSummary) SetName(v string) *AnalyzerSummary {
  3880  	s.Name = &v
  3881  	return s
  3882  }
  3883  
  3884  // SetStatus sets the Status field's value.
  3885  func (s *AnalyzerSummary) SetStatus(v string) *AnalyzerSummary {
  3886  	s.Status = &v
  3887  	return s
  3888  }
  3889  
  3890  // SetStatusReason sets the StatusReason field's value.
  3891  func (s *AnalyzerSummary) SetStatusReason(v *StatusReason) *AnalyzerSummary {
  3892  	s.StatusReason = v
  3893  	return s
  3894  }
  3895  
  3896  // SetTags sets the Tags field's value.
  3897  func (s *AnalyzerSummary) SetTags(v map[string]*string) *AnalyzerSummary {
  3898  	s.Tags = v
  3899  	return s
  3900  }
  3901  
  3902  // SetType sets the Type field's value.
  3903  func (s *AnalyzerSummary) SetType(v string) *AnalyzerSummary {
  3904  	s.Type = &v
  3905  	return s
  3906  }
  3907  
  3908  // Retroactively applies an archive rule.
  3909  type ApplyArchiveRuleInput struct {
  3910  	_ struct{} `type:"structure"`
  3911  
  3912  	// The Amazon resource name (ARN) of the analyzer.
  3913  	//
  3914  	// AnalyzerArn is a required field
  3915  	AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"`
  3916  
  3917  	// A client token.
  3918  	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
  3919  
  3920  	// The name of the rule to apply.
  3921  	//
  3922  	// RuleName is a required field
  3923  	RuleName *string `locationName:"ruleName" min:"1" type:"string" required:"true"`
  3924  }
  3925  
  3926  // String returns the string representation.
  3927  //
  3928  // API parameter values that are decorated as "sensitive" in the API will not
  3929  // be included in the string output. The member name will be present, but the
  3930  // value will be replaced with "sensitive".
  3931  func (s ApplyArchiveRuleInput) String() string {
  3932  	return awsutil.Prettify(s)
  3933  }
  3934  
  3935  // GoString returns the string representation.
  3936  //
  3937  // API parameter values that are decorated as "sensitive" in the API will not
  3938  // be included in the string output. The member name will be present, but the
  3939  // value will be replaced with "sensitive".
  3940  func (s ApplyArchiveRuleInput) GoString() string {
  3941  	return s.String()
  3942  }
  3943  
  3944  // Validate inspects the fields of the type to determine if they are valid.
  3945  func (s *ApplyArchiveRuleInput) Validate() error {
  3946  	invalidParams := request.ErrInvalidParams{Context: "ApplyArchiveRuleInput"}
  3947  	if s.AnalyzerArn == nil {
  3948  		invalidParams.Add(request.NewErrParamRequired("AnalyzerArn"))
  3949  	}
  3950  	if s.RuleName == nil {
  3951  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
  3952  	}
  3953  	if s.RuleName != nil && len(*s.RuleName) < 1 {
  3954  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
  3955  	}
  3956  
  3957  	if invalidParams.Len() > 0 {
  3958  		return invalidParams
  3959  	}
  3960  	return nil
  3961  }
  3962  
  3963  // SetAnalyzerArn sets the AnalyzerArn field's value.
  3964  func (s *ApplyArchiveRuleInput) SetAnalyzerArn(v string) *ApplyArchiveRuleInput {
  3965  	s.AnalyzerArn = &v
  3966  	return s
  3967  }
  3968  
  3969  // SetClientToken sets the ClientToken field's value.
  3970  func (s *ApplyArchiveRuleInput) SetClientToken(v string) *ApplyArchiveRuleInput {
  3971  	s.ClientToken = &v
  3972  	return s
  3973  }
  3974  
  3975  // SetRuleName sets the RuleName field's value.
  3976  func (s *ApplyArchiveRuleInput) SetRuleName(v string) *ApplyArchiveRuleInput {
  3977  	s.RuleName = &v
  3978  	return s
  3979  }
  3980  
  3981  type ApplyArchiveRuleOutput struct {
  3982  	_ struct{} `type:"structure" nopayload:"true"`
  3983  }
  3984  
  3985  // String returns the string representation.
  3986  //
  3987  // API parameter values that are decorated as "sensitive" in the API will not
  3988  // be included in the string output. The member name will be present, but the
  3989  // value will be replaced with "sensitive".
  3990  func (s ApplyArchiveRuleOutput) String() string {
  3991  	return awsutil.Prettify(s)
  3992  }
  3993  
  3994  // GoString returns the string representation.
  3995  //
  3996  // API parameter values that are decorated as "sensitive" in the API will not
  3997  // be included in the string output. The member name will be present, but the
  3998  // value will be replaced with "sensitive".
  3999  func (s ApplyArchiveRuleOutput) GoString() string {
  4000  	return s.String()
  4001  }
  4002  
  4003  // Contains information about an archive rule.
  4004  type ArchiveRuleSummary struct {
  4005  	_ struct{} `type:"structure"`
  4006  
  4007  	// The time at which the archive rule was created.
  4008  	//
  4009  	// CreatedAt is a required field
  4010  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  4011  
  4012  	// A filter used to define the archive rule.
  4013  	//
  4014  	// Filter is a required field
  4015  	Filter map[string]*Criterion `locationName:"filter" type:"map" required:"true"`
  4016  
  4017  	// The name of the archive rule.
  4018  	//
  4019  	// RuleName is a required field
  4020  	RuleName *string `locationName:"ruleName" min:"1" type:"string" required:"true"`
  4021  
  4022  	// The time at which the archive rule was last updated.
  4023  	//
  4024  	// UpdatedAt is a required field
  4025  	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  4026  }
  4027  
  4028  // String returns the string representation.
  4029  //
  4030  // API parameter values that are decorated as "sensitive" in the API will not
  4031  // be included in the string output. The member name will be present, but the
  4032  // value will be replaced with "sensitive".
  4033  func (s ArchiveRuleSummary) String() string {
  4034  	return awsutil.Prettify(s)
  4035  }
  4036  
  4037  // GoString returns the string representation.
  4038  //
  4039  // API parameter values that are decorated as "sensitive" in the API will not
  4040  // be included in the string output. The member name will be present, but the
  4041  // value will be replaced with "sensitive".
  4042  func (s ArchiveRuleSummary) GoString() string {
  4043  	return s.String()
  4044  }
  4045  
  4046  // SetCreatedAt sets the CreatedAt field's value.
  4047  func (s *ArchiveRuleSummary) SetCreatedAt(v time.Time) *ArchiveRuleSummary {
  4048  	s.CreatedAt = &v
  4049  	return s
  4050  }
  4051  
  4052  // SetFilter sets the Filter field's value.
  4053  func (s *ArchiveRuleSummary) SetFilter(v map[string]*Criterion) *ArchiveRuleSummary {
  4054  	s.Filter = v
  4055  	return s
  4056  }
  4057  
  4058  // SetRuleName sets the RuleName field's value.
  4059  func (s *ArchiveRuleSummary) SetRuleName(v string) *ArchiveRuleSummary {
  4060  	s.RuleName = &v
  4061  	return s
  4062  }
  4063  
  4064  // SetUpdatedAt sets the UpdatedAt field's value.
  4065  func (s *ArchiveRuleSummary) SetUpdatedAt(v time.Time) *ArchiveRuleSummary {
  4066  	s.UpdatedAt = &v
  4067  	return s
  4068  }
  4069  
  4070  type CancelPolicyGenerationInput struct {
  4071  	_ struct{} `type:"structure" nopayload:"true"`
  4072  
  4073  	// The JobId that is returned by the StartPolicyGeneration operation. The JobId
  4074  	// can be used with GetGeneratedPolicy to retrieve the generated policies or
  4075  	// used with CancelPolicyGeneration to cancel the policy generation request.
  4076  	//
  4077  	// JobId is a required field
  4078  	JobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`
  4079  }
  4080  
  4081  // String returns the string representation.
  4082  //
  4083  // API parameter values that are decorated as "sensitive" in the API will not
  4084  // be included in the string output. The member name will be present, but the
  4085  // value will be replaced with "sensitive".
  4086  func (s CancelPolicyGenerationInput) String() string {
  4087  	return awsutil.Prettify(s)
  4088  }
  4089  
  4090  // GoString returns the string representation.
  4091  //
  4092  // API parameter values that are decorated as "sensitive" in the API will not
  4093  // be included in the string output. The member name will be present, but the
  4094  // value will be replaced with "sensitive".
  4095  func (s CancelPolicyGenerationInput) GoString() string {
  4096  	return s.String()
  4097  }
  4098  
  4099  // Validate inspects the fields of the type to determine if they are valid.
  4100  func (s *CancelPolicyGenerationInput) Validate() error {
  4101  	invalidParams := request.ErrInvalidParams{Context: "CancelPolicyGenerationInput"}
  4102  	if s.JobId == nil {
  4103  		invalidParams.Add(request.NewErrParamRequired("JobId"))
  4104  	}
  4105  	if s.JobId != nil && len(*s.JobId) < 1 {
  4106  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
  4107  	}
  4108  
  4109  	if invalidParams.Len() > 0 {
  4110  		return invalidParams
  4111  	}
  4112  	return nil
  4113  }
  4114  
  4115  // SetJobId sets the JobId field's value.
  4116  func (s *CancelPolicyGenerationInput) SetJobId(v string) *CancelPolicyGenerationInput {
  4117  	s.JobId = &v
  4118  	return s
  4119  }
  4120  
  4121  type CancelPolicyGenerationOutput struct {
  4122  	_ struct{} `type:"structure" nopayload:"true"`
  4123  }
  4124  
  4125  // String returns the string representation.
  4126  //
  4127  // API parameter values that are decorated as "sensitive" in the API will not
  4128  // be included in the string output. The member name will be present, but the
  4129  // value will be replaced with "sensitive".
  4130  func (s CancelPolicyGenerationOutput) String() string {
  4131  	return awsutil.Prettify(s)
  4132  }
  4133  
  4134  // GoString returns the string representation.
  4135  //
  4136  // API parameter values that are decorated as "sensitive" in the API will not
  4137  // be included in the string output. The member name will be present, but the
  4138  // value will be replaced with "sensitive".
  4139  func (s CancelPolicyGenerationOutput) GoString() string {
  4140  	return s.String()
  4141  }
  4142  
  4143  // Contains information about CloudTrail access.
  4144  type CloudTrailDetails struct {
  4145  	_ struct{} `type:"structure"`
  4146  
  4147  	// The ARN of the service role that IAM Access Analyzer uses to access your
  4148  	// CloudTrail trail and service last accessed information.
  4149  	//
  4150  	// AccessRole is a required field
  4151  	AccessRole *string `locationName:"accessRole" type:"string" required:"true"`
  4152  
  4153  	// The end of the time range for which IAM Access Analyzer reviews your CloudTrail
  4154  	// events. Events with a timestamp after this time are not considered to generate
  4155  	// a policy. If this is not included in the request, the default value is the
  4156  	// current time.
  4157  	EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"`
  4158  
  4159  	// The start of the time range for which IAM Access Analyzer reviews your CloudTrail
  4160  	// events. Events with a timestamp before this time are not considered to generate
  4161  	// a policy.
  4162  	//
  4163  	// StartTime is a required field
  4164  	StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  4165  
  4166  	// A Trail object that contains settings for a trail.
  4167  	//
  4168  	// Trails is a required field
  4169  	Trails []*Trail `locationName:"trails" type:"list" required:"true"`
  4170  }
  4171  
  4172  // String returns the string representation.
  4173  //
  4174  // API parameter values that are decorated as "sensitive" in the API will not
  4175  // be included in the string output. The member name will be present, but the
  4176  // value will be replaced with "sensitive".
  4177  func (s CloudTrailDetails) String() string {
  4178  	return awsutil.Prettify(s)
  4179  }
  4180  
  4181  // GoString returns the string representation.
  4182  //
  4183  // API parameter values that are decorated as "sensitive" in the API will not
  4184  // be included in the string output. The member name will be present, but the
  4185  // value will be replaced with "sensitive".
  4186  func (s CloudTrailDetails) GoString() string {
  4187  	return s.String()
  4188  }
  4189  
  4190  // Validate inspects the fields of the type to determine if they are valid.
  4191  func (s *CloudTrailDetails) Validate() error {
  4192  	invalidParams := request.ErrInvalidParams{Context: "CloudTrailDetails"}
  4193  	if s.AccessRole == nil {
  4194  		invalidParams.Add(request.NewErrParamRequired("AccessRole"))
  4195  	}
  4196  	if s.StartTime == nil {
  4197  		invalidParams.Add(request.NewErrParamRequired("StartTime"))
  4198  	}
  4199  	if s.Trails == nil {
  4200  		invalidParams.Add(request.NewErrParamRequired("Trails"))
  4201  	}
  4202  	if s.Trails != nil {
  4203  		for i, v := range s.Trails {
  4204  			if v == nil {
  4205  				continue
  4206  			}
  4207  			if err := v.Validate(); err != nil {
  4208  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Trails", i), err.(request.ErrInvalidParams))
  4209  			}
  4210  		}
  4211  	}
  4212  
  4213  	if invalidParams.Len() > 0 {
  4214  		return invalidParams
  4215  	}
  4216  	return nil
  4217  }
  4218  
  4219  // SetAccessRole sets the AccessRole field's value.
  4220  func (s *CloudTrailDetails) SetAccessRole(v string) *CloudTrailDetails {
  4221  	s.AccessRole = &v
  4222  	return s
  4223  }
  4224  
  4225  // SetEndTime sets the EndTime field's value.
  4226  func (s *CloudTrailDetails) SetEndTime(v time.Time) *CloudTrailDetails {
  4227  	s.EndTime = &v
  4228  	return s
  4229  }
  4230  
  4231  // SetStartTime sets the StartTime field's value.
  4232  func (s *CloudTrailDetails) SetStartTime(v time.Time) *CloudTrailDetails {
  4233  	s.StartTime = &v
  4234  	return s
  4235  }
  4236  
  4237  // SetTrails sets the Trails field's value.
  4238  func (s *CloudTrailDetails) SetTrails(v []*Trail) *CloudTrailDetails {
  4239  	s.Trails = v
  4240  	return s
  4241  }
  4242  
  4243  // Contains information about CloudTrail access.
  4244  type CloudTrailProperties struct {
  4245  	_ struct{} `type:"structure"`
  4246  
  4247  	// The end of the time range for which IAM Access Analyzer reviews your CloudTrail
  4248  	// events. Events with a timestamp after this time are not considered to generate
  4249  	// a policy. If this is not included in the request, the default value is the
  4250  	// current time.
  4251  	//
  4252  	// EndTime is a required field
  4253  	EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  4254  
  4255  	// The start of the time range for which IAM Access Analyzer reviews your CloudTrail
  4256  	// events. Events with a timestamp before this time are not considered to generate
  4257  	// a policy.
  4258  	//
  4259  	// StartTime is a required field
  4260  	StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  4261  
  4262  	// A TrailProperties object that contains settings for trail properties.
  4263  	//
  4264  	// TrailProperties is a required field
  4265  	TrailProperties []*TrailProperties `locationName:"trailProperties" type:"list" required:"true"`
  4266  }
  4267  
  4268  // String returns the string representation.
  4269  //
  4270  // API parameter values that are decorated as "sensitive" in the API will not
  4271  // be included in the string output. The member name will be present, but the
  4272  // value will be replaced with "sensitive".
  4273  func (s CloudTrailProperties) String() string {
  4274  	return awsutil.Prettify(s)
  4275  }
  4276  
  4277  // GoString returns the string representation.
  4278  //
  4279  // API parameter values that are decorated as "sensitive" in the API will not
  4280  // be included in the string output. The member name will be present, but the
  4281  // value will be replaced with "sensitive".
  4282  func (s CloudTrailProperties) GoString() string {
  4283  	return s.String()
  4284  }
  4285  
  4286  // SetEndTime sets the EndTime field's value.
  4287  func (s *CloudTrailProperties) SetEndTime(v time.Time) *CloudTrailProperties {
  4288  	s.EndTime = &v
  4289  	return s
  4290  }
  4291  
  4292  // SetStartTime sets the StartTime field's value.
  4293  func (s *CloudTrailProperties) SetStartTime(v time.Time) *CloudTrailProperties {
  4294  	s.StartTime = &v
  4295  	return s
  4296  }
  4297  
  4298  // SetTrailProperties sets the TrailProperties field's value.
  4299  func (s *CloudTrailProperties) SetTrailProperties(v []*TrailProperties) *CloudTrailProperties {
  4300  	s.TrailProperties = v
  4301  	return s
  4302  }
  4303  
  4304  // Access control configuration structures for your resource. You specify the
  4305  // configuration as a type-value pair. You can specify only one type of access
  4306  // control configuration.
  4307  type Configuration struct {
  4308  	_ struct{} `type:"structure"`
  4309  
  4310  	// The access control configuration is for an IAM role.
  4311  	IamRole *IamRoleConfiguration `locationName:"iamRole" type:"structure"`
  4312  
  4313  	// The access control configuration is for a KMS key.
  4314  	KmsKey *KmsKeyConfiguration `locationName:"kmsKey" type:"structure"`
  4315  
  4316  	// The access control configuration is for an Amazon S3 Bucket.
  4317  	S3Bucket *S3BucketConfiguration `locationName:"s3Bucket" type:"structure"`
  4318  
  4319  	// The access control configuration is for a Secrets Manager secret.
  4320  	SecretsManagerSecret *SecretsManagerSecretConfiguration `locationName:"secretsManagerSecret" type:"structure"`
  4321  
  4322  	// The access control configuration is for an Amazon SQS queue.
  4323  	SqsQueue *SqsQueueConfiguration `locationName:"sqsQueue" type:"structure"`
  4324  }
  4325  
  4326  // String returns the string representation.
  4327  //
  4328  // API parameter values that are decorated as "sensitive" in the API will not
  4329  // be included in the string output. The member name will be present, but the
  4330  // value will be replaced with "sensitive".
  4331  func (s Configuration) String() string {
  4332  	return awsutil.Prettify(s)
  4333  }
  4334  
  4335  // GoString returns the string representation.
  4336  //
  4337  // API parameter values that are decorated as "sensitive" in the API will not
  4338  // be included in the string output. The member name will be present, but the
  4339  // value will be replaced with "sensitive".
  4340  func (s Configuration) GoString() string {
  4341  	return s.String()
  4342  }
  4343  
  4344  // Validate inspects the fields of the type to determine if they are valid.
  4345  func (s *Configuration) Validate() error {
  4346  	invalidParams := request.ErrInvalidParams{Context: "Configuration"}
  4347  	if s.KmsKey != nil {
  4348  		if err := s.KmsKey.Validate(); err != nil {
  4349  			invalidParams.AddNested("KmsKey", err.(request.ErrInvalidParams))
  4350  		}
  4351  	}
  4352  	if s.S3Bucket != nil {
  4353  		if err := s.S3Bucket.Validate(); err != nil {
  4354  			invalidParams.AddNested("S3Bucket", err.(request.ErrInvalidParams))
  4355  		}
  4356  	}
  4357  
  4358  	if invalidParams.Len() > 0 {
  4359  		return invalidParams
  4360  	}
  4361  	return nil
  4362  }
  4363  
  4364  // SetIamRole sets the IamRole field's value.
  4365  func (s *Configuration) SetIamRole(v *IamRoleConfiguration) *Configuration {
  4366  	s.IamRole = v
  4367  	return s
  4368  }
  4369  
  4370  // SetKmsKey sets the KmsKey field's value.
  4371  func (s *Configuration) SetKmsKey(v *KmsKeyConfiguration) *Configuration {
  4372  	s.KmsKey = v
  4373  	return s
  4374  }
  4375  
  4376  // SetS3Bucket sets the S3Bucket field's value.
  4377  func (s *Configuration) SetS3Bucket(v *S3BucketConfiguration) *Configuration {
  4378  	s.S3Bucket = v
  4379  	return s
  4380  }
  4381  
  4382  // SetSecretsManagerSecret sets the SecretsManagerSecret field's value.
  4383  func (s *Configuration) SetSecretsManagerSecret(v *SecretsManagerSecretConfiguration) *Configuration {
  4384  	s.SecretsManagerSecret = v
  4385  	return s
  4386  }
  4387  
  4388  // SetSqsQueue sets the SqsQueue field's value.
  4389  func (s *Configuration) SetSqsQueue(v *SqsQueueConfiguration) *Configuration {
  4390  	s.SqsQueue = v
  4391  	return s
  4392  }
  4393  
  4394  // A conflict exception error.
  4395  type ConflictException struct {
  4396  	_            struct{}                  `type:"structure"`
  4397  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4398  
  4399  	Message_ *string `locationName:"message" type:"string"`
  4400  
  4401  	// The ID of the resource.
  4402  	//
  4403  	// ResourceId is a required field
  4404  	ResourceId *string `locationName:"resourceId" type:"string" required:"true"`
  4405  
  4406  	// The resource type.
  4407  	//
  4408  	// ResourceType is a required field
  4409  	ResourceType *string `locationName:"resourceType" type:"string" required:"true"`
  4410  }
  4411  
  4412  // String returns the string representation.
  4413  //
  4414  // API parameter values that are decorated as "sensitive" in the API will not
  4415  // be included in the string output. The member name will be present, but the
  4416  // value will be replaced with "sensitive".
  4417  func (s ConflictException) String() string {
  4418  	return awsutil.Prettify(s)
  4419  }
  4420  
  4421  // GoString returns the string representation.
  4422  //
  4423  // API parameter values that are decorated as "sensitive" in the API will not
  4424  // be included in the string output. The member name will be present, but the
  4425  // value will be replaced with "sensitive".
  4426  func (s ConflictException) GoString() string {
  4427  	return s.String()
  4428  }
  4429  
  4430  func newErrorConflictException(v protocol.ResponseMetadata) error {
  4431  	return &ConflictException{
  4432  		RespMetadata: v,
  4433  	}
  4434  }
  4435  
  4436  // Code returns the exception type name.
  4437  func (s *ConflictException) Code() string {
  4438  	return "ConflictException"
  4439  }
  4440  
  4441  // Message returns the exception's message.
  4442  func (s *ConflictException) Message() string {
  4443  	if s.Message_ != nil {
  4444  		return *s.Message_
  4445  	}
  4446  	return ""
  4447  }
  4448  
  4449  // OrigErr always returns nil, satisfies awserr.Error interface.
  4450  func (s *ConflictException) OrigErr() error {
  4451  	return nil
  4452  }
  4453  
  4454  func (s *ConflictException) Error() string {
  4455  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  4456  }
  4457  
  4458  // Status code returns the HTTP status code for the request's response error.
  4459  func (s *ConflictException) StatusCode() int {
  4460  	return s.RespMetadata.StatusCode
  4461  }
  4462  
  4463  // RequestID returns the service's response RequestID for request.
  4464  func (s *ConflictException) RequestID() string {
  4465  	return s.RespMetadata.RequestID
  4466  }
  4467  
  4468  type CreateAccessPreviewInput struct {
  4469  	_ struct{} `type:"structure"`
  4470  
  4471  	// The ARN of the account analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources)
  4472  	// used to generate the access preview. You can only create an access preview
  4473  	// for analyzers with an Account type and Active status.
  4474  	//
  4475  	// AnalyzerArn is a required field
  4476  	AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"`
  4477  
  4478  	// A client token.
  4479  	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
  4480  
  4481  	// Access control configuration for your resource that is used to generate the
  4482  	// access preview. The access preview includes findings for external access
  4483  	// allowed to the resource with the proposed access control configuration. The
  4484  	// configuration must contain exactly one element.
  4485  	//
  4486  	// Configurations is a required field
  4487  	Configurations map[string]*Configuration `locationName:"configurations" type:"map" required:"true"`
  4488  }
  4489  
  4490  // String returns the string representation.
  4491  //
  4492  // API parameter values that are decorated as "sensitive" in the API will not
  4493  // be included in the string output. The member name will be present, but the
  4494  // value will be replaced with "sensitive".
  4495  func (s CreateAccessPreviewInput) String() string {
  4496  	return awsutil.Prettify(s)
  4497  }
  4498  
  4499  // GoString returns the string representation.
  4500  //
  4501  // API parameter values that are decorated as "sensitive" in the API will not
  4502  // be included in the string output. The member name will be present, but the
  4503  // value will be replaced with "sensitive".
  4504  func (s CreateAccessPreviewInput) GoString() string {
  4505  	return s.String()
  4506  }
  4507  
  4508  // Validate inspects the fields of the type to determine if they are valid.
  4509  func (s *CreateAccessPreviewInput) Validate() error {
  4510  	invalidParams := request.ErrInvalidParams{Context: "CreateAccessPreviewInput"}
  4511  	if s.AnalyzerArn == nil {
  4512  		invalidParams.Add(request.NewErrParamRequired("AnalyzerArn"))
  4513  	}
  4514  	if s.Configurations == nil {
  4515  		invalidParams.Add(request.NewErrParamRequired("Configurations"))
  4516  	}
  4517  	if s.Configurations != nil {
  4518  		for i, v := range s.Configurations {
  4519  			if v == nil {
  4520  				continue
  4521  			}
  4522  			if err := v.Validate(); err != nil {
  4523  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Configurations", i), err.(request.ErrInvalidParams))
  4524  			}
  4525  		}
  4526  	}
  4527  
  4528  	if invalidParams.Len() > 0 {
  4529  		return invalidParams
  4530  	}
  4531  	return nil
  4532  }
  4533  
  4534  // SetAnalyzerArn sets the AnalyzerArn field's value.
  4535  func (s *CreateAccessPreviewInput) SetAnalyzerArn(v string) *CreateAccessPreviewInput {
  4536  	s.AnalyzerArn = &v
  4537  	return s
  4538  }
  4539  
  4540  // SetClientToken sets the ClientToken field's value.
  4541  func (s *CreateAccessPreviewInput) SetClientToken(v string) *CreateAccessPreviewInput {
  4542  	s.ClientToken = &v
  4543  	return s
  4544  }
  4545  
  4546  // SetConfigurations sets the Configurations field's value.
  4547  func (s *CreateAccessPreviewInput) SetConfigurations(v map[string]*Configuration) *CreateAccessPreviewInput {
  4548  	s.Configurations = v
  4549  	return s
  4550  }
  4551  
  4552  type CreateAccessPreviewOutput struct {
  4553  	_ struct{} `type:"structure"`
  4554  
  4555  	// The unique ID for the access preview.
  4556  	//
  4557  	// Id is a required field
  4558  	Id *string `locationName:"id" type:"string" required:"true"`
  4559  }
  4560  
  4561  // String returns the string representation.
  4562  //
  4563  // API parameter values that are decorated as "sensitive" in the API will not
  4564  // be included in the string output. The member name will be present, but the
  4565  // value will be replaced with "sensitive".
  4566  func (s CreateAccessPreviewOutput) String() string {
  4567  	return awsutil.Prettify(s)
  4568  }
  4569  
  4570  // GoString returns the string representation.
  4571  //
  4572  // API parameter values that are decorated as "sensitive" in the API will not
  4573  // be included in the string output. The member name will be present, but the
  4574  // value will be replaced with "sensitive".
  4575  func (s CreateAccessPreviewOutput) GoString() string {
  4576  	return s.String()
  4577  }
  4578  
  4579  // SetId sets the Id field's value.
  4580  func (s *CreateAccessPreviewOutput) SetId(v string) *CreateAccessPreviewOutput {
  4581  	s.Id = &v
  4582  	return s
  4583  }
  4584  
  4585  // Creates an analyzer.
  4586  type CreateAnalyzerInput struct {
  4587  	_ struct{} `type:"structure"`
  4588  
  4589  	// The name of the analyzer to create.
  4590  	//
  4591  	// AnalyzerName is a required field
  4592  	AnalyzerName *string `locationName:"analyzerName" min:"1" type:"string" required:"true"`
  4593  
  4594  	// Specifies the archive rules to add for the analyzer. Archive rules automatically
  4595  	// archive findings that meet the criteria you define for the rule.
  4596  	ArchiveRules []*InlineArchiveRule `locationName:"archiveRules" type:"list"`
  4597  
  4598  	// A client token.
  4599  	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
  4600  
  4601  	// The tags to apply to the analyzer.
  4602  	Tags map[string]*string `locationName:"tags" type:"map"`
  4603  
  4604  	// The type of analyzer to create. Only ACCOUNT and ORGANIZATION analyzers are
  4605  	// supported. You can create only one analyzer per account per Region. You can
  4606  	// create up to 5 analyzers per organization per Region.
  4607  	//
  4608  	// Type is a required field
  4609  	Type *string `locationName:"type" type:"string" required:"true" enum:"Type"`
  4610  }
  4611  
  4612  // String returns the string representation.
  4613  //
  4614  // API parameter values that are decorated as "sensitive" in the API will not
  4615  // be included in the string output. The member name will be present, but the
  4616  // value will be replaced with "sensitive".
  4617  func (s CreateAnalyzerInput) String() string {
  4618  	return awsutil.Prettify(s)
  4619  }
  4620  
  4621  // GoString returns the string representation.
  4622  //
  4623  // API parameter values that are decorated as "sensitive" in the API will not
  4624  // be included in the string output. The member name will be present, but the
  4625  // value will be replaced with "sensitive".
  4626  func (s CreateAnalyzerInput) GoString() string {
  4627  	return s.String()
  4628  }
  4629  
  4630  // Validate inspects the fields of the type to determine if they are valid.
  4631  func (s *CreateAnalyzerInput) Validate() error {
  4632  	invalidParams := request.ErrInvalidParams{Context: "CreateAnalyzerInput"}
  4633  	if s.AnalyzerName == nil {
  4634  		invalidParams.Add(request.NewErrParamRequired("AnalyzerName"))
  4635  	}
  4636  	if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 {
  4637  		invalidParams.Add(request.NewErrParamMinLen("AnalyzerName", 1))
  4638  	}
  4639  	if s.Type == nil {
  4640  		invalidParams.Add(request.NewErrParamRequired("Type"))
  4641  	}
  4642  	if s.ArchiveRules != nil {
  4643  		for i, v := range s.ArchiveRules {
  4644  			if v == nil {
  4645  				continue
  4646  			}
  4647  			if err := v.Validate(); err != nil {
  4648  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ArchiveRules", i), err.(request.ErrInvalidParams))
  4649  			}
  4650  		}
  4651  	}
  4652  
  4653  	if invalidParams.Len() > 0 {
  4654  		return invalidParams
  4655  	}
  4656  	return nil
  4657  }
  4658  
  4659  // SetAnalyzerName sets the AnalyzerName field's value.
  4660  func (s *CreateAnalyzerInput) SetAnalyzerName(v string) *CreateAnalyzerInput {
  4661  	s.AnalyzerName = &v
  4662  	return s
  4663  }
  4664  
  4665  // SetArchiveRules sets the ArchiveRules field's value.
  4666  func (s *CreateAnalyzerInput) SetArchiveRules(v []*InlineArchiveRule) *CreateAnalyzerInput {
  4667  	s.ArchiveRules = v
  4668  	return s
  4669  }
  4670  
  4671  // SetClientToken sets the ClientToken field's value.
  4672  func (s *CreateAnalyzerInput) SetClientToken(v string) *CreateAnalyzerInput {
  4673  	s.ClientToken = &v
  4674  	return s
  4675  }
  4676  
  4677  // SetTags sets the Tags field's value.
  4678  func (s *CreateAnalyzerInput) SetTags(v map[string]*string) *CreateAnalyzerInput {
  4679  	s.Tags = v
  4680  	return s
  4681  }
  4682  
  4683  // SetType sets the Type field's value.
  4684  func (s *CreateAnalyzerInput) SetType(v string) *CreateAnalyzerInput {
  4685  	s.Type = &v
  4686  	return s
  4687  }
  4688  
  4689  // The response to the request to create an analyzer.
  4690  type CreateAnalyzerOutput struct {
  4691  	_ struct{} `type:"structure"`
  4692  
  4693  	// The ARN of the analyzer that was created by the request.
  4694  	Arn *string `locationName:"arn" type:"string"`
  4695  }
  4696  
  4697  // String returns the string representation.
  4698  //
  4699  // API parameter values that are decorated as "sensitive" in the API will not
  4700  // be included in the string output. The member name will be present, but the
  4701  // value will be replaced with "sensitive".
  4702  func (s CreateAnalyzerOutput) String() string {
  4703  	return awsutil.Prettify(s)
  4704  }
  4705  
  4706  // GoString returns the string representation.
  4707  //
  4708  // API parameter values that are decorated as "sensitive" in the API will not
  4709  // be included in the string output. The member name will be present, but the
  4710  // value will be replaced with "sensitive".
  4711  func (s CreateAnalyzerOutput) GoString() string {
  4712  	return s.String()
  4713  }
  4714  
  4715  // SetArn sets the Arn field's value.
  4716  func (s *CreateAnalyzerOutput) SetArn(v string) *CreateAnalyzerOutput {
  4717  	s.Arn = &v
  4718  	return s
  4719  }
  4720  
  4721  // Creates an archive rule.
  4722  type CreateArchiveRuleInput struct {
  4723  	_ struct{} `type:"structure"`
  4724  
  4725  	// The name of the created analyzer.
  4726  	//
  4727  	// AnalyzerName is a required field
  4728  	AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"`
  4729  
  4730  	// A client token.
  4731  	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
  4732  
  4733  	// The criteria for the rule.
  4734  	//
  4735  	// Filter is a required field
  4736  	Filter map[string]*Criterion `locationName:"filter" type:"map" required:"true"`
  4737  
  4738  	// The name of the rule to create.
  4739  	//
  4740  	// RuleName is a required field
  4741  	RuleName *string `locationName:"ruleName" min:"1" type:"string" required:"true"`
  4742  }
  4743  
  4744  // String returns the string representation.
  4745  //
  4746  // API parameter values that are decorated as "sensitive" in the API will not
  4747  // be included in the string output. The member name will be present, but the
  4748  // value will be replaced with "sensitive".
  4749  func (s CreateArchiveRuleInput) String() string {
  4750  	return awsutil.Prettify(s)
  4751  }
  4752  
  4753  // GoString returns the string representation.
  4754  //
  4755  // API parameter values that are decorated as "sensitive" in the API will not
  4756  // be included in the string output. The member name will be present, but the
  4757  // value will be replaced with "sensitive".
  4758  func (s CreateArchiveRuleInput) GoString() string {
  4759  	return s.String()
  4760  }
  4761  
  4762  // Validate inspects the fields of the type to determine if they are valid.
  4763  func (s *CreateArchiveRuleInput) Validate() error {
  4764  	invalidParams := request.ErrInvalidParams{Context: "CreateArchiveRuleInput"}
  4765  	if s.AnalyzerName == nil {
  4766  		invalidParams.Add(request.NewErrParamRequired("AnalyzerName"))
  4767  	}
  4768  	if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 {
  4769  		invalidParams.Add(request.NewErrParamMinLen("AnalyzerName", 1))
  4770  	}
  4771  	if s.Filter == nil {
  4772  		invalidParams.Add(request.NewErrParamRequired("Filter"))
  4773  	}
  4774  	if s.RuleName == nil {
  4775  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
  4776  	}
  4777  	if s.RuleName != nil && len(*s.RuleName) < 1 {
  4778  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
  4779  	}
  4780  	if s.Filter != nil {
  4781  		for i, v := range s.Filter {
  4782  			if v == nil {
  4783  				continue
  4784  			}
  4785  			if err := v.Validate(); err != nil {
  4786  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filter", i), err.(request.ErrInvalidParams))
  4787  			}
  4788  		}
  4789  	}
  4790  
  4791  	if invalidParams.Len() > 0 {
  4792  		return invalidParams
  4793  	}
  4794  	return nil
  4795  }
  4796  
  4797  // SetAnalyzerName sets the AnalyzerName field's value.
  4798  func (s *CreateArchiveRuleInput) SetAnalyzerName(v string) *CreateArchiveRuleInput {
  4799  	s.AnalyzerName = &v
  4800  	return s
  4801  }
  4802  
  4803  // SetClientToken sets the ClientToken field's value.
  4804  func (s *CreateArchiveRuleInput) SetClientToken(v string) *CreateArchiveRuleInput {
  4805  	s.ClientToken = &v
  4806  	return s
  4807  }
  4808  
  4809  // SetFilter sets the Filter field's value.
  4810  func (s *CreateArchiveRuleInput) SetFilter(v map[string]*Criterion) *CreateArchiveRuleInput {
  4811  	s.Filter = v
  4812  	return s
  4813  }
  4814  
  4815  // SetRuleName sets the RuleName field's value.
  4816  func (s *CreateArchiveRuleInput) SetRuleName(v string) *CreateArchiveRuleInput {
  4817  	s.RuleName = &v
  4818  	return s
  4819  }
  4820  
  4821  type CreateArchiveRuleOutput struct {
  4822  	_ struct{} `type:"structure" nopayload:"true"`
  4823  }
  4824  
  4825  // String returns the string representation.
  4826  //
  4827  // API parameter values that are decorated as "sensitive" in the API will not
  4828  // be included in the string output. The member name will be present, but the
  4829  // value will be replaced with "sensitive".
  4830  func (s CreateArchiveRuleOutput) String() string {
  4831  	return awsutil.Prettify(s)
  4832  }
  4833  
  4834  // GoString returns the string representation.
  4835  //
  4836  // API parameter values that are decorated as "sensitive" in the API will not
  4837  // be included in the string output. The member name will be present, but the
  4838  // value will be replaced with "sensitive".
  4839  func (s CreateArchiveRuleOutput) GoString() string {
  4840  	return s.String()
  4841  }
  4842  
  4843  // The criteria to use in the filter that defines the archive rule.
  4844  type Criterion struct {
  4845  	_ struct{} `type:"structure"`
  4846  
  4847  	// A "contains" operator to match for the filter used to create the rule.
  4848  	Contains []*string `locationName:"contains" min:"1" type:"list"`
  4849  
  4850  	// An "equals" operator to match for the filter used to create the rule.
  4851  	Eq []*string `locationName:"eq" min:"1" type:"list"`
  4852  
  4853  	// An "exists" operator to match for the filter used to create the rule.
  4854  	Exists *bool `locationName:"exists" type:"boolean"`
  4855  
  4856  	// A "not equals" operator to match for the filter used to create the rule.
  4857  	Neq []*string `locationName:"neq" min:"1" type:"list"`
  4858  }
  4859  
  4860  // String returns the string representation.
  4861  //
  4862  // API parameter values that are decorated as "sensitive" in the API will not
  4863  // be included in the string output. The member name will be present, but the
  4864  // value will be replaced with "sensitive".
  4865  func (s Criterion) String() string {
  4866  	return awsutil.Prettify(s)
  4867  }
  4868  
  4869  // GoString returns the string representation.
  4870  //
  4871  // API parameter values that are decorated as "sensitive" in the API will not
  4872  // be included in the string output. The member name will be present, but the
  4873  // value will be replaced with "sensitive".
  4874  func (s Criterion) GoString() string {
  4875  	return s.String()
  4876  }
  4877  
  4878  // Validate inspects the fields of the type to determine if they are valid.
  4879  func (s *Criterion) Validate() error {
  4880  	invalidParams := request.ErrInvalidParams{Context: "Criterion"}
  4881  	if s.Contains != nil && len(s.Contains) < 1 {
  4882  		invalidParams.Add(request.NewErrParamMinLen("Contains", 1))
  4883  	}
  4884  	if s.Eq != nil && len(s.Eq) < 1 {
  4885  		invalidParams.Add(request.NewErrParamMinLen("Eq", 1))
  4886  	}
  4887  	if s.Neq != nil && len(s.Neq) < 1 {
  4888  		invalidParams.Add(request.NewErrParamMinLen("Neq", 1))
  4889  	}
  4890  
  4891  	if invalidParams.Len() > 0 {
  4892  		return invalidParams
  4893  	}
  4894  	return nil
  4895  }
  4896  
  4897  // SetContains sets the Contains field's value.
  4898  func (s *Criterion) SetContains(v []*string) *Criterion {
  4899  	s.Contains = v
  4900  	return s
  4901  }
  4902  
  4903  // SetEq sets the Eq field's value.
  4904  func (s *Criterion) SetEq(v []*string) *Criterion {
  4905  	s.Eq = v
  4906  	return s
  4907  }
  4908  
  4909  // SetExists sets the Exists field's value.
  4910  func (s *Criterion) SetExists(v bool) *Criterion {
  4911  	s.Exists = &v
  4912  	return s
  4913  }
  4914  
  4915  // SetNeq sets the Neq field's value.
  4916  func (s *Criterion) SetNeq(v []*string) *Criterion {
  4917  	s.Neq = v
  4918  	return s
  4919  }
  4920  
  4921  // Deletes an analyzer.
  4922  type DeleteAnalyzerInput struct {
  4923  	_ struct{} `type:"structure" nopayload:"true"`
  4924  
  4925  	// The name of the analyzer to delete.
  4926  	//
  4927  	// AnalyzerName is a required field
  4928  	AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"`
  4929  
  4930  	// A client token.
  4931  	ClientToken *string `location:"querystring" locationName:"clientToken" type:"string" idempotencyToken:"true"`
  4932  }
  4933  
  4934  // String returns the string representation.
  4935  //
  4936  // API parameter values that are decorated as "sensitive" in the API will not
  4937  // be included in the string output. The member name will be present, but the
  4938  // value will be replaced with "sensitive".
  4939  func (s DeleteAnalyzerInput) String() string {
  4940  	return awsutil.Prettify(s)
  4941  }
  4942  
  4943  // GoString returns the string representation.
  4944  //
  4945  // API parameter values that are decorated as "sensitive" in the API will not
  4946  // be included in the string output. The member name will be present, but the
  4947  // value will be replaced with "sensitive".
  4948  func (s DeleteAnalyzerInput) GoString() string {
  4949  	return s.String()
  4950  }
  4951  
  4952  // Validate inspects the fields of the type to determine if they are valid.
  4953  func (s *DeleteAnalyzerInput) Validate() error {
  4954  	invalidParams := request.ErrInvalidParams{Context: "DeleteAnalyzerInput"}
  4955  	if s.AnalyzerName == nil {
  4956  		invalidParams.Add(request.NewErrParamRequired("AnalyzerName"))
  4957  	}
  4958  	if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 {
  4959  		invalidParams.Add(request.NewErrParamMinLen("AnalyzerName", 1))
  4960  	}
  4961  
  4962  	if invalidParams.Len() > 0 {
  4963  		return invalidParams
  4964  	}
  4965  	return nil
  4966  }
  4967  
  4968  // SetAnalyzerName sets the AnalyzerName field's value.
  4969  func (s *DeleteAnalyzerInput) SetAnalyzerName(v string) *DeleteAnalyzerInput {
  4970  	s.AnalyzerName = &v
  4971  	return s
  4972  }
  4973  
  4974  // SetClientToken sets the ClientToken field's value.
  4975  func (s *DeleteAnalyzerInput) SetClientToken(v string) *DeleteAnalyzerInput {
  4976  	s.ClientToken = &v
  4977  	return s
  4978  }
  4979  
  4980  type DeleteAnalyzerOutput struct {
  4981  	_ struct{} `type:"structure" nopayload:"true"`
  4982  }
  4983  
  4984  // String returns the string representation.
  4985  //
  4986  // API parameter values that are decorated as "sensitive" in the API will not
  4987  // be included in the string output. The member name will be present, but the
  4988  // value will be replaced with "sensitive".
  4989  func (s DeleteAnalyzerOutput) String() string {
  4990  	return awsutil.Prettify(s)
  4991  }
  4992  
  4993  // GoString returns the string representation.
  4994  //
  4995  // API parameter values that are decorated as "sensitive" in the API will not
  4996  // be included in the string output. The member name will be present, but the
  4997  // value will be replaced with "sensitive".
  4998  func (s DeleteAnalyzerOutput) GoString() string {
  4999  	return s.String()
  5000  }
  5001  
  5002  // Deletes an archive rule.
  5003  type DeleteArchiveRuleInput struct {
  5004  	_ struct{} `type:"structure" nopayload:"true"`
  5005  
  5006  	// The name of the analyzer that associated with the archive rule to delete.
  5007  	//
  5008  	// AnalyzerName is a required field
  5009  	AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"`
  5010  
  5011  	// A client token.
  5012  	ClientToken *string `location:"querystring" locationName:"clientToken" type:"string" idempotencyToken:"true"`
  5013  
  5014  	// The name of the rule to delete.
  5015  	//
  5016  	// RuleName is a required field
  5017  	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
  5018  }
  5019  
  5020  // String returns the string representation.
  5021  //
  5022  // API parameter values that are decorated as "sensitive" in the API will not
  5023  // be included in the string output. The member name will be present, but the
  5024  // value will be replaced with "sensitive".
  5025  func (s DeleteArchiveRuleInput) String() string {
  5026  	return awsutil.Prettify(s)
  5027  }
  5028  
  5029  // GoString returns the string representation.
  5030  //
  5031  // API parameter values that are decorated as "sensitive" in the API will not
  5032  // be included in the string output. The member name will be present, but the
  5033  // value will be replaced with "sensitive".
  5034  func (s DeleteArchiveRuleInput) GoString() string {
  5035  	return s.String()
  5036  }
  5037  
  5038  // Validate inspects the fields of the type to determine if they are valid.
  5039  func (s *DeleteArchiveRuleInput) Validate() error {
  5040  	invalidParams := request.ErrInvalidParams{Context: "DeleteArchiveRuleInput"}
  5041  	if s.AnalyzerName == nil {
  5042  		invalidParams.Add(request.NewErrParamRequired("AnalyzerName"))
  5043  	}
  5044  	if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 {
  5045  		invalidParams.Add(request.NewErrParamMinLen("AnalyzerName", 1))
  5046  	}
  5047  	if s.RuleName == nil {
  5048  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
  5049  	}
  5050  	if s.RuleName != nil && len(*s.RuleName) < 1 {
  5051  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
  5052  	}
  5053  
  5054  	if invalidParams.Len() > 0 {
  5055  		return invalidParams
  5056  	}
  5057  	return nil
  5058  }
  5059  
  5060  // SetAnalyzerName sets the AnalyzerName field's value.
  5061  func (s *DeleteArchiveRuleInput) SetAnalyzerName(v string) *DeleteArchiveRuleInput {
  5062  	s.AnalyzerName = &v
  5063  	return s
  5064  }
  5065  
  5066  // SetClientToken sets the ClientToken field's value.
  5067  func (s *DeleteArchiveRuleInput) SetClientToken(v string) *DeleteArchiveRuleInput {
  5068  	s.ClientToken = &v
  5069  	return s
  5070  }
  5071  
  5072  // SetRuleName sets the RuleName field's value.
  5073  func (s *DeleteArchiveRuleInput) SetRuleName(v string) *DeleteArchiveRuleInput {
  5074  	s.RuleName = &v
  5075  	return s
  5076  }
  5077  
  5078  type DeleteArchiveRuleOutput struct {
  5079  	_ struct{} `type:"structure" nopayload:"true"`
  5080  }
  5081  
  5082  // String returns the string representation.
  5083  //
  5084  // API parameter values that are decorated as "sensitive" in the API will not
  5085  // be included in the string output. The member name will be present, but the
  5086  // value will be replaced with "sensitive".
  5087  func (s DeleteArchiveRuleOutput) String() string {
  5088  	return awsutil.Prettify(s)
  5089  }
  5090  
  5091  // GoString returns the string representation.
  5092  //
  5093  // API parameter values that are decorated as "sensitive" in the API will not
  5094  // be included in the string output. The member name will be present, but the
  5095  // value will be replaced with "sensitive".
  5096  func (s DeleteArchiveRuleOutput) GoString() string {
  5097  	return s.String()
  5098  }
  5099  
  5100  // Contains information about a finding.
  5101  type Finding struct {
  5102  	_ struct{} `type:"structure"`
  5103  
  5104  	// The action in the analyzed policy statement that an external principal has
  5105  	// permission to use.
  5106  	Action []*string `locationName:"action" type:"list"`
  5107  
  5108  	// The time at which the resource was analyzed.
  5109  	//
  5110  	// AnalyzedAt is a required field
  5111  	AnalyzedAt *time.Time `locationName:"analyzedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  5112  
  5113  	// The condition in the analyzed policy statement that resulted in a finding.
  5114  	//
  5115  	// Condition is a required field
  5116  	Condition map[string]*string `locationName:"condition" type:"map" required:"true"`
  5117  
  5118  	// The time at which the finding was generated.
  5119  	//
  5120  	// CreatedAt is a required field
  5121  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  5122  
  5123  	// An error.
  5124  	Error *string `locationName:"error" type:"string"`
  5125  
  5126  	// The ID of the finding.
  5127  	//
  5128  	// Id is a required field
  5129  	Id *string `locationName:"id" type:"string" required:"true"`
  5130  
  5131  	// Indicates whether the policy that generated the finding allows public access
  5132  	// to the resource.
  5133  	IsPublic *bool `locationName:"isPublic" type:"boolean"`
  5134  
  5135  	// The external principal that access to a resource within the zone of trust.
  5136  	Principal map[string]*string `locationName:"principal" type:"map"`
  5137  
  5138  	// The resource that an external principal has access to.
  5139  	Resource *string `locationName:"resource" type:"string"`
  5140  
  5141  	// The Amazon Web Services account ID that owns the resource.
  5142  	//
  5143  	// ResourceOwnerAccount is a required field
  5144  	ResourceOwnerAccount *string `locationName:"resourceOwnerAccount" type:"string" required:"true"`
  5145  
  5146  	// The type of the resource identified in the finding.
  5147  	//
  5148  	// ResourceType is a required field
  5149  	ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
  5150  
  5151  	// The sources of the finding. This indicates how the access that generated
  5152  	// the finding is granted. It is populated for Amazon S3 bucket findings.
  5153  	Sources []*FindingSource `locationName:"sources" type:"list"`
  5154  
  5155  	// The current status of the finding.
  5156  	//
  5157  	// Status is a required field
  5158  	Status *string `locationName:"status" type:"string" required:"true" enum:"FindingStatus"`
  5159  
  5160  	// The time at which the finding was updated.
  5161  	//
  5162  	// UpdatedAt is a required field
  5163  	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  5164  }
  5165  
  5166  // String returns the string representation.
  5167  //
  5168  // API parameter values that are decorated as "sensitive" in the API will not
  5169  // be included in the string output. The member name will be present, but the
  5170  // value will be replaced with "sensitive".
  5171  func (s Finding) String() string {
  5172  	return awsutil.Prettify(s)
  5173  }
  5174  
  5175  // GoString returns the string representation.
  5176  //
  5177  // API parameter values that are decorated as "sensitive" in the API will not
  5178  // be included in the string output. The member name will be present, but the
  5179  // value will be replaced with "sensitive".
  5180  func (s Finding) GoString() string {
  5181  	return s.String()
  5182  }
  5183  
  5184  // SetAction sets the Action field's value.
  5185  func (s *Finding) SetAction(v []*string) *Finding {
  5186  	s.Action = v
  5187  	return s
  5188  }
  5189  
  5190  // SetAnalyzedAt sets the AnalyzedAt field's value.
  5191  func (s *Finding) SetAnalyzedAt(v time.Time) *Finding {
  5192  	s.AnalyzedAt = &v
  5193  	return s
  5194  }
  5195  
  5196  // SetCondition sets the Condition field's value.
  5197  func (s *Finding) SetCondition(v map[string]*string) *Finding {
  5198  	s.Condition = v
  5199  	return s
  5200  }
  5201  
  5202  // SetCreatedAt sets the CreatedAt field's value.
  5203  func (s *Finding) SetCreatedAt(v time.Time) *Finding {
  5204  	s.CreatedAt = &v
  5205  	return s
  5206  }
  5207  
  5208  // SetError sets the Error field's value.
  5209  func (s *Finding) SetError(v string) *Finding {
  5210  	s.Error = &v
  5211  	return s
  5212  }
  5213  
  5214  // SetId sets the Id field's value.
  5215  func (s *Finding) SetId(v string) *Finding {
  5216  	s.Id = &v
  5217  	return s
  5218  }
  5219  
  5220  // SetIsPublic sets the IsPublic field's value.
  5221  func (s *Finding) SetIsPublic(v bool) *Finding {
  5222  	s.IsPublic = &v
  5223  	return s
  5224  }
  5225  
  5226  // SetPrincipal sets the Principal field's value.
  5227  func (s *Finding) SetPrincipal(v map[string]*string) *Finding {
  5228  	s.Principal = v
  5229  	return s
  5230  }
  5231  
  5232  // SetResource sets the Resource field's value.
  5233  func (s *Finding) SetResource(v string) *Finding {
  5234  	s.Resource = &v
  5235  	return s
  5236  }
  5237  
  5238  // SetResourceOwnerAccount sets the ResourceOwnerAccount field's value.
  5239  func (s *Finding) SetResourceOwnerAccount(v string) *Finding {
  5240  	s.ResourceOwnerAccount = &v
  5241  	return s
  5242  }
  5243  
  5244  // SetResourceType sets the ResourceType field's value.
  5245  func (s *Finding) SetResourceType(v string) *Finding {
  5246  	s.ResourceType = &v
  5247  	return s
  5248  }
  5249  
  5250  // SetSources sets the Sources field's value.
  5251  func (s *Finding) SetSources(v []*FindingSource) *Finding {
  5252  	s.Sources = v
  5253  	return s
  5254  }
  5255  
  5256  // SetStatus sets the Status field's value.
  5257  func (s *Finding) SetStatus(v string) *Finding {
  5258  	s.Status = &v
  5259  	return s
  5260  }
  5261  
  5262  // SetUpdatedAt sets the UpdatedAt field's value.
  5263  func (s *Finding) SetUpdatedAt(v time.Time) *Finding {
  5264  	s.UpdatedAt = &v
  5265  	return s
  5266  }
  5267  
  5268  // The source of the finding. This indicates how the access that generated the
  5269  // finding is granted. It is populated for Amazon S3 bucket findings.
  5270  type FindingSource struct {
  5271  	_ struct{} `type:"structure"`
  5272  
  5273  	// Includes details about how the access that generated the finding is granted.
  5274  	// This is populated for Amazon S3 bucket findings.
  5275  	Detail *FindingSourceDetail `locationName:"detail" type:"structure"`
  5276  
  5277  	// Indicates the type of access that generated the finding.
  5278  	//
  5279  	// Type is a required field
  5280  	Type *string `locationName:"type" type:"string" required:"true" enum:"FindingSourceType"`
  5281  }
  5282  
  5283  // String returns the string representation.
  5284  //
  5285  // API parameter values that are decorated as "sensitive" in the API will not
  5286  // be included in the string output. The member name will be present, but the
  5287  // value will be replaced with "sensitive".
  5288  func (s FindingSource) String() string {
  5289  	return awsutil.Prettify(s)
  5290  }
  5291  
  5292  // GoString returns the string representation.
  5293  //
  5294  // API parameter values that are decorated as "sensitive" in the API will not
  5295  // be included in the string output. The member name will be present, but the
  5296  // value will be replaced with "sensitive".
  5297  func (s FindingSource) GoString() string {
  5298  	return s.String()
  5299  }
  5300  
  5301  // SetDetail sets the Detail field's value.
  5302  func (s *FindingSource) SetDetail(v *FindingSourceDetail) *FindingSource {
  5303  	s.Detail = v
  5304  	return s
  5305  }
  5306  
  5307  // SetType sets the Type field's value.
  5308  func (s *FindingSource) SetType(v string) *FindingSource {
  5309  	s.Type = &v
  5310  	return s
  5311  }
  5312  
  5313  // Includes details about how the access that generated the finding is granted.
  5314  // This is populated for Amazon S3 bucket findings.
  5315  type FindingSourceDetail struct {
  5316  	_ struct{} `type:"structure"`
  5317  
  5318  	// The ARN of the access point that generated the finding. The ARN format depends
  5319  	// on whether the ARN represents an access point or a multi-region access point.
  5320  	AccessPointArn *string `locationName:"accessPointArn" type:"string"`
  5321  }
  5322  
  5323  // String returns the string representation.
  5324  //
  5325  // API parameter values that are decorated as "sensitive" in the API will not
  5326  // be included in the string output. The member name will be present, but the
  5327  // value will be replaced with "sensitive".
  5328  func (s FindingSourceDetail) String() string {
  5329  	return awsutil.Prettify(s)
  5330  }
  5331  
  5332  // GoString returns the string representation.
  5333  //
  5334  // API parameter values that are decorated as "sensitive" in the API will not
  5335  // be included in the string output. The member name will be present, but the
  5336  // value will be replaced with "sensitive".
  5337  func (s FindingSourceDetail) GoString() string {
  5338  	return s.String()
  5339  }
  5340  
  5341  // SetAccessPointArn sets the AccessPointArn field's value.
  5342  func (s *FindingSourceDetail) SetAccessPointArn(v string) *FindingSourceDetail {
  5343  	s.AccessPointArn = &v
  5344  	return s
  5345  }
  5346  
  5347  // Contains information about a finding.
  5348  type FindingSummary struct {
  5349  	_ struct{} `type:"structure"`
  5350  
  5351  	// The action in the analyzed policy statement that an external principal has
  5352  	// permission to use.
  5353  	Action []*string `locationName:"action" type:"list"`
  5354  
  5355  	// The time at which the resource-based policy that generated the finding was
  5356  	// analyzed.
  5357  	//
  5358  	// AnalyzedAt is a required field
  5359  	AnalyzedAt *time.Time `locationName:"analyzedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  5360  
  5361  	// The condition in the analyzed policy statement that resulted in a finding.
  5362  	//
  5363  	// Condition is a required field
  5364  	Condition map[string]*string `locationName:"condition" type:"map" required:"true"`
  5365  
  5366  	// The time at which the finding was created.
  5367  	//
  5368  	// CreatedAt is a required field
  5369  	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  5370  
  5371  	// The error that resulted in an Error finding.
  5372  	Error *string `locationName:"error" type:"string"`
  5373  
  5374  	// The ID of the finding.
  5375  	//
  5376  	// Id is a required field
  5377  	Id *string `locationName:"id" type:"string" required:"true"`
  5378  
  5379  	// Indicates whether the finding reports a resource that has a policy that allows
  5380  	// public access.
  5381  	IsPublic *bool `locationName:"isPublic" type:"boolean"`
  5382  
  5383  	// The external principal that has access to a resource within the zone of trust.
  5384  	Principal map[string]*string `locationName:"principal" type:"map"`
  5385  
  5386  	// The resource that the external principal has access to.
  5387  	Resource *string `locationName:"resource" type:"string"`
  5388  
  5389  	// The Amazon Web Services account ID that owns the resource.
  5390  	//
  5391  	// ResourceOwnerAccount is a required field
  5392  	ResourceOwnerAccount *string `locationName:"resourceOwnerAccount" type:"string" required:"true"`
  5393  
  5394  	// The type of the resource that the external principal has access to.
  5395  	//
  5396  	// ResourceType is a required field
  5397  	ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
  5398  
  5399  	// The sources of the finding. This indicates how the access that generated
  5400  	// the finding is granted. It is populated for Amazon S3 bucket findings.
  5401  	Sources []*FindingSource `locationName:"sources" type:"list"`
  5402  
  5403  	// The status of the finding.
  5404  	//
  5405  	// Status is a required field
  5406  	Status *string `locationName:"status" type:"string" required:"true" enum:"FindingStatus"`
  5407  
  5408  	// The time at which the finding was most recently updated.
  5409  	//
  5410  	// UpdatedAt is a required field
  5411  	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  5412  }
  5413  
  5414  // String returns the string representation.
  5415  //
  5416  // API parameter values that are decorated as "sensitive" in the API will not
  5417  // be included in the string output. The member name will be present, but the
  5418  // value will be replaced with "sensitive".
  5419  func (s FindingSummary) String() string {
  5420  	return awsutil.Prettify(s)
  5421  }
  5422  
  5423  // GoString returns the string representation.
  5424  //
  5425  // API parameter values that are decorated as "sensitive" in the API will not
  5426  // be included in the string output. The member name will be present, but the
  5427  // value will be replaced with "sensitive".
  5428  func (s FindingSummary) GoString() string {
  5429  	return s.String()
  5430  }
  5431  
  5432  // SetAction sets the Action field's value.
  5433  func (s *FindingSummary) SetAction(v []*string) *FindingSummary {
  5434  	s.Action = v
  5435  	return s
  5436  }
  5437  
  5438  // SetAnalyzedAt sets the AnalyzedAt field's value.
  5439  func (s *FindingSummary) SetAnalyzedAt(v time.Time) *FindingSummary {
  5440  	s.AnalyzedAt = &v
  5441  	return s
  5442  }
  5443  
  5444  // SetCondition sets the Condition field's value.
  5445  func (s *FindingSummary) SetCondition(v map[string]*string) *FindingSummary {
  5446  	s.Condition = v
  5447  	return s
  5448  }
  5449  
  5450  // SetCreatedAt sets the CreatedAt field's value.
  5451  func (s *FindingSummary) SetCreatedAt(v time.Time) *FindingSummary {
  5452  	s.CreatedAt = &v
  5453  	return s
  5454  }
  5455  
  5456  // SetError sets the Error field's value.
  5457  func (s *FindingSummary) SetError(v string) *FindingSummary {
  5458  	s.Error = &v
  5459  	return s
  5460  }
  5461  
  5462  // SetId sets the Id field's value.
  5463  func (s *FindingSummary) SetId(v string) *FindingSummary {
  5464  	s.Id = &v
  5465  	return s
  5466  }
  5467  
  5468  // SetIsPublic sets the IsPublic field's value.
  5469  func (s *FindingSummary) SetIsPublic(v bool) *FindingSummary {
  5470  	s.IsPublic = &v
  5471  	return s
  5472  }
  5473  
  5474  // SetPrincipal sets the Principal field's value.
  5475  func (s *FindingSummary) SetPrincipal(v map[string]*string) *FindingSummary {
  5476  	s.Principal = v
  5477  	return s
  5478  }
  5479  
  5480  // SetResource sets the Resource field's value.
  5481  func (s *FindingSummary) SetResource(v string) *FindingSummary {
  5482  	s.Resource = &v
  5483  	return s
  5484  }
  5485  
  5486  // SetResourceOwnerAccount sets the ResourceOwnerAccount field's value.
  5487  func (s *FindingSummary) SetResourceOwnerAccount(v string) *FindingSummary {
  5488  	s.ResourceOwnerAccount = &v
  5489  	return s
  5490  }
  5491  
  5492  // SetResourceType sets the ResourceType field's value.
  5493  func (s *FindingSummary) SetResourceType(v string) *FindingSummary {
  5494  	s.ResourceType = &v
  5495  	return s
  5496  }
  5497  
  5498  // SetSources sets the Sources field's value.
  5499  func (s *FindingSummary) SetSources(v []*FindingSource) *FindingSummary {
  5500  	s.Sources = v
  5501  	return s
  5502  }
  5503  
  5504  // SetStatus sets the Status field's value.
  5505  func (s *FindingSummary) SetStatus(v string) *FindingSummary {
  5506  	s.Status = &v
  5507  	return s
  5508  }
  5509  
  5510  // SetUpdatedAt sets the UpdatedAt field's value.
  5511  func (s *FindingSummary) SetUpdatedAt(v time.Time) *FindingSummary {
  5512  	s.UpdatedAt = &v
  5513  	return s
  5514  }
  5515  
  5516  // Contains the text for the generated policy.
  5517  type GeneratedPolicy struct {
  5518  	_ struct{} `type:"structure"`
  5519  
  5520  	// The text to use as the content for the new policy. The policy is created
  5521  	// using the CreatePolicy (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html)
  5522  	// action.
  5523  	//
  5524  	// Policy is a required field
  5525  	Policy *string `locationName:"policy" type:"string" required:"true"`
  5526  }
  5527  
  5528  // String returns the string representation.
  5529  //
  5530  // API parameter values that are decorated as "sensitive" in the API will not
  5531  // be included in the string output. The member name will be present, but the
  5532  // value will be replaced with "sensitive".
  5533  func (s GeneratedPolicy) String() string {
  5534  	return awsutil.Prettify(s)
  5535  }
  5536  
  5537  // GoString returns the string representation.
  5538  //
  5539  // API parameter values that are decorated as "sensitive" in the API will not
  5540  // be included in the string output. The member name will be present, but the
  5541  // value will be replaced with "sensitive".
  5542  func (s GeneratedPolicy) GoString() string {
  5543  	return s.String()
  5544  }
  5545  
  5546  // SetPolicy sets the Policy field's value.
  5547  func (s *GeneratedPolicy) SetPolicy(v string) *GeneratedPolicy {
  5548  	s.Policy = &v
  5549  	return s
  5550  }
  5551  
  5552  // Contains the generated policy details.
  5553  type GeneratedPolicyProperties struct {
  5554  	_ struct{} `type:"structure"`
  5555  
  5556  	// Lists details about the Trail used to generated policy.
  5557  	CloudTrailProperties *CloudTrailProperties `locationName:"cloudTrailProperties" type:"structure"`
  5558  
  5559  	// This value is set to true if the generated policy contains all possible actions
  5560  	// for a service that IAM Access Analyzer identified from the CloudTrail trail
  5561  	// that you specified, and false otherwise.
  5562  	IsComplete *bool `locationName:"isComplete" type:"boolean"`
  5563  
  5564  	// The ARN of the IAM entity (user or role) for which you are generating a policy.
  5565  	//
  5566  	// PrincipalArn is a required field
  5567  	PrincipalArn *string `locationName:"principalArn" type:"string" required:"true"`
  5568  }
  5569  
  5570  // String returns the string representation.
  5571  //
  5572  // API parameter values that are decorated as "sensitive" in the API will not
  5573  // be included in the string output. The member name will be present, but the
  5574  // value will be replaced with "sensitive".
  5575  func (s GeneratedPolicyProperties) String() string {
  5576  	return awsutil.Prettify(s)
  5577  }
  5578  
  5579  // GoString returns the string representation.
  5580  //
  5581  // API parameter values that are decorated as "sensitive" in the API will not
  5582  // be included in the string output. The member name will be present, but the
  5583  // value will be replaced with "sensitive".
  5584  func (s GeneratedPolicyProperties) GoString() string {
  5585  	return s.String()
  5586  }
  5587  
  5588  // SetCloudTrailProperties sets the CloudTrailProperties field's value.
  5589  func (s *GeneratedPolicyProperties) SetCloudTrailProperties(v *CloudTrailProperties) *GeneratedPolicyProperties {
  5590  	s.CloudTrailProperties = v
  5591  	return s
  5592  }
  5593  
  5594  // SetIsComplete sets the IsComplete field's value.
  5595  func (s *GeneratedPolicyProperties) SetIsComplete(v bool) *GeneratedPolicyProperties {
  5596  	s.IsComplete = &v
  5597  	return s
  5598  }
  5599  
  5600  // SetPrincipalArn sets the PrincipalArn field's value.
  5601  func (s *GeneratedPolicyProperties) SetPrincipalArn(v string) *GeneratedPolicyProperties {
  5602  	s.PrincipalArn = &v
  5603  	return s
  5604  }
  5605  
  5606  // Contains the text for the generated policy and its details.
  5607  type GeneratedPolicyResult struct {
  5608  	_ struct{} `type:"structure"`
  5609  
  5610  	// The text to use as the content for the new policy. The policy is created
  5611  	// using the CreatePolicy (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html)
  5612  	// action.
  5613  	GeneratedPolicies []*GeneratedPolicy `locationName:"generatedPolicies" type:"list"`
  5614  
  5615  	// A GeneratedPolicyProperties object that contains properties of the generated
  5616  	// policy.
  5617  	//
  5618  	// Properties is a required field
  5619  	Properties *GeneratedPolicyProperties `locationName:"properties" type:"structure" required:"true"`
  5620  }
  5621  
  5622  // String returns the string representation.
  5623  //
  5624  // API parameter values that are decorated as "sensitive" in the API will not
  5625  // be included in the string output. The member name will be present, but the
  5626  // value will be replaced with "sensitive".
  5627  func (s GeneratedPolicyResult) String() string {
  5628  	return awsutil.Prettify(s)
  5629  }
  5630  
  5631  // GoString returns the string representation.
  5632  //
  5633  // API parameter values that are decorated as "sensitive" in the API will not
  5634  // be included in the string output. The member name will be present, but the
  5635  // value will be replaced with "sensitive".
  5636  func (s GeneratedPolicyResult) GoString() string {
  5637  	return s.String()
  5638  }
  5639  
  5640  // SetGeneratedPolicies sets the GeneratedPolicies field's value.
  5641  func (s *GeneratedPolicyResult) SetGeneratedPolicies(v []*GeneratedPolicy) *GeneratedPolicyResult {
  5642  	s.GeneratedPolicies = v
  5643  	return s
  5644  }
  5645  
  5646  // SetProperties sets the Properties field's value.
  5647  func (s *GeneratedPolicyResult) SetProperties(v *GeneratedPolicyProperties) *GeneratedPolicyResult {
  5648  	s.Properties = v
  5649  	return s
  5650  }
  5651  
  5652  type GetAccessPreviewInput struct {
  5653  	_ struct{} `type:"structure" nopayload:"true"`
  5654  
  5655  	// The unique ID for the access preview.
  5656  	//
  5657  	// AccessPreviewId is a required field
  5658  	AccessPreviewId *string `location:"uri" locationName:"accessPreviewId" type:"string" required:"true"`
  5659  
  5660  	// The ARN of the analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources)
  5661  	// used to generate the access preview.
  5662  	//
  5663  	// AnalyzerArn is a required field
  5664  	AnalyzerArn *string `location:"querystring" locationName:"analyzerArn" type:"string" required:"true"`
  5665  }
  5666  
  5667  // String returns the string representation.
  5668  //
  5669  // API parameter values that are decorated as "sensitive" in the API will not
  5670  // be included in the string output. The member name will be present, but the
  5671  // value will be replaced with "sensitive".
  5672  func (s GetAccessPreviewInput) String() string {
  5673  	return awsutil.Prettify(s)
  5674  }
  5675  
  5676  // GoString returns the string representation.
  5677  //
  5678  // API parameter values that are decorated as "sensitive" in the API will not
  5679  // be included in the string output. The member name will be present, but the
  5680  // value will be replaced with "sensitive".
  5681  func (s GetAccessPreviewInput) GoString() string {
  5682  	return s.String()
  5683  }
  5684  
  5685  // Validate inspects the fields of the type to determine if they are valid.
  5686  func (s *GetAccessPreviewInput) Validate() error {
  5687  	invalidParams := request.ErrInvalidParams{Context: "GetAccessPreviewInput"}
  5688  	if s.AccessPreviewId == nil {
  5689  		invalidParams.Add(request.NewErrParamRequired("AccessPreviewId"))
  5690  	}
  5691  	if s.AccessPreviewId != nil && len(*s.AccessPreviewId) < 1 {
  5692  		invalidParams.Add(request.NewErrParamMinLen("AccessPreviewId", 1))
  5693  	}
  5694  	if s.AnalyzerArn == nil {
  5695  		invalidParams.Add(request.NewErrParamRequired("AnalyzerArn"))
  5696  	}
  5697  
  5698  	if invalidParams.Len() > 0 {
  5699  		return invalidParams
  5700  	}
  5701  	return nil
  5702  }
  5703  
  5704  // SetAccessPreviewId sets the AccessPreviewId field's value.
  5705  func (s *GetAccessPreviewInput) SetAccessPreviewId(v string) *GetAccessPreviewInput {
  5706  	s.AccessPreviewId = &v
  5707  	return s
  5708  }
  5709  
  5710  // SetAnalyzerArn sets the AnalyzerArn field's value.
  5711  func (s *GetAccessPreviewInput) SetAnalyzerArn(v string) *GetAccessPreviewInput {
  5712  	s.AnalyzerArn = &v
  5713  	return s
  5714  }
  5715  
  5716  type GetAccessPreviewOutput struct {
  5717  	_ struct{} `type:"structure"`
  5718  
  5719  	// An object that contains information about the access preview.
  5720  	//
  5721  	// AccessPreview is a required field
  5722  	AccessPreview *AccessPreview `locationName:"accessPreview" type:"structure" required:"true"`
  5723  }
  5724  
  5725  // String returns the string representation.
  5726  //
  5727  // API parameter values that are decorated as "sensitive" in the API will not
  5728  // be included in the string output. The member name will be present, but the
  5729  // value will be replaced with "sensitive".
  5730  func (s GetAccessPreviewOutput) String() string {
  5731  	return awsutil.Prettify(s)
  5732  }
  5733  
  5734  // GoString returns the string representation.
  5735  //
  5736  // API parameter values that are decorated as "sensitive" in the API will not
  5737  // be included in the string output. The member name will be present, but the
  5738  // value will be replaced with "sensitive".
  5739  func (s GetAccessPreviewOutput) GoString() string {
  5740  	return s.String()
  5741  }
  5742  
  5743  // SetAccessPreview sets the AccessPreview field's value.
  5744  func (s *GetAccessPreviewOutput) SetAccessPreview(v *AccessPreview) *GetAccessPreviewOutput {
  5745  	s.AccessPreview = v
  5746  	return s
  5747  }
  5748  
  5749  // Retrieves an analyzed resource.
  5750  type GetAnalyzedResourceInput struct {
  5751  	_ struct{} `type:"structure" nopayload:"true"`
  5752  
  5753  	// The ARN of the analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources)
  5754  	// to retrieve information from.
  5755  	//
  5756  	// AnalyzerArn is a required field
  5757  	AnalyzerArn *string `location:"querystring" locationName:"analyzerArn" type:"string" required:"true"`
  5758  
  5759  	// The ARN of the resource to retrieve information about.
  5760  	//
  5761  	// ResourceArn is a required field
  5762  	ResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string" required:"true"`
  5763  }
  5764  
  5765  // String returns the string representation.
  5766  //
  5767  // API parameter values that are decorated as "sensitive" in the API will not
  5768  // be included in the string output. The member name will be present, but the
  5769  // value will be replaced with "sensitive".
  5770  func (s GetAnalyzedResourceInput) String() string {
  5771  	return awsutil.Prettify(s)
  5772  }
  5773  
  5774  // GoString returns the string representation.
  5775  //
  5776  // API parameter values that are decorated as "sensitive" in the API will not
  5777  // be included in the string output. The member name will be present, but the
  5778  // value will be replaced with "sensitive".
  5779  func (s GetAnalyzedResourceInput) GoString() string {
  5780  	return s.String()
  5781  }
  5782  
  5783  // Validate inspects the fields of the type to determine if they are valid.
  5784  func (s *GetAnalyzedResourceInput) Validate() error {
  5785  	invalidParams := request.ErrInvalidParams{Context: "GetAnalyzedResourceInput"}
  5786  	if s.AnalyzerArn == nil {
  5787  		invalidParams.Add(request.NewErrParamRequired("AnalyzerArn"))
  5788  	}
  5789  	if s.ResourceArn == nil {
  5790  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  5791  	}
  5792  
  5793  	if invalidParams.Len() > 0 {
  5794  		return invalidParams
  5795  	}
  5796  	return nil
  5797  }
  5798  
  5799  // SetAnalyzerArn sets the AnalyzerArn field's value.
  5800  func (s *GetAnalyzedResourceInput) SetAnalyzerArn(v string) *GetAnalyzedResourceInput {
  5801  	s.AnalyzerArn = &v
  5802  	return s
  5803  }
  5804  
  5805  // SetResourceArn sets the ResourceArn field's value.
  5806  func (s *GetAnalyzedResourceInput) SetResourceArn(v string) *GetAnalyzedResourceInput {
  5807  	s.ResourceArn = &v
  5808  	return s
  5809  }
  5810  
  5811  // The response to the request.
  5812  type GetAnalyzedResourceOutput struct {
  5813  	_ struct{} `type:"structure"`
  5814  
  5815  	// An AnalyzedResource object that contains information that IAM Access Analyzer
  5816  	// found when it analyzed the resource.
  5817  	Resource *AnalyzedResource `locationName:"resource" type:"structure"`
  5818  }
  5819  
  5820  // String returns the string representation.
  5821  //
  5822  // API parameter values that are decorated as "sensitive" in the API will not
  5823  // be included in the string output. The member name will be present, but the
  5824  // value will be replaced with "sensitive".
  5825  func (s GetAnalyzedResourceOutput) String() string {
  5826  	return awsutil.Prettify(s)
  5827  }
  5828  
  5829  // GoString returns the string representation.
  5830  //
  5831  // API parameter values that are decorated as "sensitive" in the API will not
  5832  // be included in the string output. The member name will be present, but the
  5833  // value will be replaced with "sensitive".
  5834  func (s GetAnalyzedResourceOutput) GoString() string {
  5835  	return s.String()
  5836  }
  5837  
  5838  // SetResource sets the Resource field's value.
  5839  func (s *GetAnalyzedResourceOutput) SetResource(v *AnalyzedResource) *GetAnalyzedResourceOutput {
  5840  	s.Resource = v
  5841  	return s
  5842  }
  5843  
  5844  // Retrieves an analyzer.
  5845  type GetAnalyzerInput struct {
  5846  	_ struct{} `type:"structure" nopayload:"true"`
  5847  
  5848  	// The name of the analyzer retrieved.
  5849  	//
  5850  	// AnalyzerName is a required field
  5851  	AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"`
  5852  }
  5853  
  5854  // String returns the string representation.
  5855  //
  5856  // API parameter values that are decorated as "sensitive" in the API will not
  5857  // be included in the string output. The member name will be present, but the
  5858  // value will be replaced with "sensitive".
  5859  func (s GetAnalyzerInput) String() string {
  5860  	return awsutil.Prettify(s)
  5861  }
  5862  
  5863  // GoString returns the string representation.
  5864  //
  5865  // API parameter values that are decorated as "sensitive" in the API will not
  5866  // be included in the string output. The member name will be present, but the
  5867  // value will be replaced with "sensitive".
  5868  func (s GetAnalyzerInput) GoString() string {
  5869  	return s.String()
  5870  }
  5871  
  5872  // Validate inspects the fields of the type to determine if they are valid.
  5873  func (s *GetAnalyzerInput) Validate() error {
  5874  	invalidParams := request.ErrInvalidParams{Context: "GetAnalyzerInput"}
  5875  	if s.AnalyzerName == nil {
  5876  		invalidParams.Add(request.NewErrParamRequired("AnalyzerName"))
  5877  	}
  5878  	if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 {
  5879  		invalidParams.Add(request.NewErrParamMinLen("AnalyzerName", 1))
  5880  	}
  5881  
  5882  	if invalidParams.Len() > 0 {
  5883  		return invalidParams
  5884  	}
  5885  	return nil
  5886  }
  5887  
  5888  // SetAnalyzerName sets the AnalyzerName field's value.
  5889  func (s *GetAnalyzerInput) SetAnalyzerName(v string) *GetAnalyzerInput {
  5890  	s.AnalyzerName = &v
  5891  	return s
  5892  }
  5893  
  5894  // The response to the request.
  5895  type GetAnalyzerOutput struct {
  5896  	_ struct{} `type:"structure"`
  5897  
  5898  	// An AnalyzerSummary object that contains information about the analyzer.
  5899  	//
  5900  	// Analyzer is a required field
  5901  	Analyzer *AnalyzerSummary `locationName:"analyzer" type:"structure" required:"true"`
  5902  }
  5903  
  5904  // String returns the string representation.
  5905  //
  5906  // API parameter values that are decorated as "sensitive" in the API will not
  5907  // be included in the string output. The member name will be present, but the
  5908  // value will be replaced with "sensitive".
  5909  func (s GetAnalyzerOutput) String() string {
  5910  	return awsutil.Prettify(s)
  5911  }
  5912  
  5913  // GoString returns the string representation.
  5914  //
  5915  // API parameter values that are decorated as "sensitive" in the API will not
  5916  // be included in the string output. The member name will be present, but the
  5917  // value will be replaced with "sensitive".
  5918  func (s GetAnalyzerOutput) GoString() string {
  5919  	return s.String()
  5920  }
  5921  
  5922  // SetAnalyzer sets the Analyzer field's value.
  5923  func (s *GetAnalyzerOutput) SetAnalyzer(v *AnalyzerSummary) *GetAnalyzerOutput {
  5924  	s.Analyzer = v
  5925  	return s
  5926  }
  5927  
  5928  // Retrieves an archive rule.
  5929  type GetArchiveRuleInput struct {
  5930  	_ struct{} `type:"structure" nopayload:"true"`
  5931  
  5932  	// The name of the analyzer to retrieve rules from.
  5933  	//
  5934  	// AnalyzerName is a required field
  5935  	AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"`
  5936  
  5937  	// The name of the rule to retrieve.
  5938  	//
  5939  	// RuleName is a required field
  5940  	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
  5941  }
  5942  
  5943  // String returns the string representation.
  5944  //
  5945  // API parameter values that are decorated as "sensitive" in the API will not
  5946  // be included in the string output. The member name will be present, but the
  5947  // value will be replaced with "sensitive".
  5948  func (s GetArchiveRuleInput) String() string {
  5949  	return awsutil.Prettify(s)
  5950  }
  5951  
  5952  // GoString returns the string representation.
  5953  //
  5954  // API parameter values that are decorated as "sensitive" in the API will not
  5955  // be included in the string output. The member name will be present, but the
  5956  // value will be replaced with "sensitive".
  5957  func (s GetArchiveRuleInput) GoString() string {
  5958  	return s.String()
  5959  }
  5960  
  5961  // Validate inspects the fields of the type to determine if they are valid.
  5962  func (s *GetArchiveRuleInput) Validate() error {
  5963  	invalidParams := request.ErrInvalidParams{Context: "GetArchiveRuleInput"}
  5964  	if s.AnalyzerName == nil {
  5965  		invalidParams.Add(request.NewErrParamRequired("AnalyzerName"))
  5966  	}
  5967  	if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 {
  5968  		invalidParams.Add(request.NewErrParamMinLen("AnalyzerName", 1))
  5969  	}
  5970  	if s.RuleName == nil {
  5971  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
  5972  	}
  5973  	if s.RuleName != nil && len(*s.RuleName) < 1 {
  5974  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
  5975  	}
  5976  
  5977  	if invalidParams.Len() > 0 {
  5978  		return invalidParams
  5979  	}
  5980  	return nil
  5981  }
  5982  
  5983  // SetAnalyzerName sets the AnalyzerName field's value.
  5984  func (s *GetArchiveRuleInput) SetAnalyzerName(v string) *GetArchiveRuleInput {
  5985  	s.AnalyzerName = &v
  5986  	return s
  5987  }
  5988  
  5989  // SetRuleName sets the RuleName field's value.
  5990  func (s *GetArchiveRuleInput) SetRuleName(v string) *GetArchiveRuleInput {
  5991  	s.RuleName = &v
  5992  	return s
  5993  }
  5994  
  5995  // The response to the request.
  5996  type GetArchiveRuleOutput struct {
  5997  	_ struct{} `type:"structure"`
  5998  
  5999  	// Contains information about an archive rule.
  6000  	//
  6001  	// ArchiveRule is a required field
  6002  	ArchiveRule *ArchiveRuleSummary `locationName:"archiveRule" type:"structure" required:"true"`
  6003  }
  6004  
  6005  // String returns the string representation.
  6006  //
  6007  // API parameter values that are decorated as "sensitive" in the API will not
  6008  // be included in the string output. The member name will be present, but the
  6009  // value will be replaced with "sensitive".
  6010  func (s GetArchiveRuleOutput) String() string {
  6011  	return awsutil.Prettify(s)
  6012  }
  6013  
  6014  // GoString returns the string representation.
  6015  //
  6016  // API parameter values that are decorated as "sensitive" in the API will not
  6017  // be included in the string output. The member name will be present, but the
  6018  // value will be replaced with "sensitive".
  6019  func (s GetArchiveRuleOutput) GoString() string {
  6020  	return s.String()
  6021  }
  6022  
  6023  // SetArchiveRule sets the ArchiveRule field's value.
  6024  func (s *GetArchiveRuleOutput) SetArchiveRule(v *ArchiveRuleSummary) *GetArchiveRuleOutput {
  6025  	s.ArchiveRule = v
  6026  	return s
  6027  }
  6028  
  6029  // Retrieves a finding.
  6030  type GetFindingInput struct {
  6031  	_ struct{} `type:"structure" nopayload:"true"`
  6032  
  6033  	// The ARN of the analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources)
  6034  	// that generated the finding.
  6035  	//
  6036  	// AnalyzerArn is a required field
  6037  	AnalyzerArn *string `location:"querystring" locationName:"analyzerArn" type:"string" required:"true"`
  6038  
  6039  	// The ID of the finding to retrieve.
  6040  	//
  6041  	// Id is a required field
  6042  	Id *string `location:"uri" locationName:"id" type:"string" required:"true"`
  6043  }
  6044  
  6045  // String returns the string representation.
  6046  //
  6047  // API parameter values that are decorated as "sensitive" in the API will not
  6048  // be included in the string output. The member name will be present, but the
  6049  // value will be replaced with "sensitive".
  6050  func (s GetFindingInput) String() string {
  6051  	return awsutil.Prettify(s)
  6052  }
  6053  
  6054  // GoString returns the string representation.
  6055  //
  6056  // API parameter values that are decorated as "sensitive" in the API will not
  6057  // be included in the string output. The member name will be present, but the
  6058  // value will be replaced with "sensitive".
  6059  func (s GetFindingInput) GoString() string {
  6060  	return s.String()
  6061  }
  6062  
  6063  // Validate inspects the fields of the type to determine if they are valid.
  6064  func (s *GetFindingInput) Validate() error {
  6065  	invalidParams := request.ErrInvalidParams{Context: "GetFindingInput"}
  6066  	if s.AnalyzerArn == nil {
  6067  		invalidParams.Add(request.NewErrParamRequired("AnalyzerArn"))
  6068  	}
  6069  	if s.Id == nil {
  6070  		invalidParams.Add(request.NewErrParamRequired("Id"))
  6071  	}
  6072  	if s.Id != nil && len(*s.Id) < 1 {
  6073  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
  6074  	}
  6075  
  6076  	if invalidParams.Len() > 0 {
  6077  		return invalidParams
  6078  	}
  6079  	return nil
  6080  }
  6081  
  6082  // SetAnalyzerArn sets the AnalyzerArn field's value.
  6083  func (s *GetFindingInput) SetAnalyzerArn(v string) *GetFindingInput {
  6084  	s.AnalyzerArn = &v
  6085  	return s
  6086  }
  6087  
  6088  // SetId sets the Id field's value.
  6089  func (s *GetFindingInput) SetId(v string) *GetFindingInput {
  6090  	s.Id = &v
  6091  	return s
  6092  }
  6093  
  6094  // The response to the request.
  6095  type GetFindingOutput struct {
  6096  	_ struct{} `type:"structure"`
  6097  
  6098  	// A finding object that contains finding details.
  6099  	Finding *Finding `locationName:"finding" type:"structure"`
  6100  }
  6101  
  6102  // String returns the string representation.
  6103  //
  6104  // API parameter values that are decorated as "sensitive" in the API will not
  6105  // be included in the string output. The member name will be present, but the
  6106  // value will be replaced with "sensitive".
  6107  func (s GetFindingOutput) String() string {
  6108  	return awsutil.Prettify(s)
  6109  }
  6110  
  6111  // GoString returns the string representation.
  6112  //
  6113  // API parameter values that are decorated as "sensitive" in the API will not
  6114  // be included in the string output. The member name will be present, but the
  6115  // value will be replaced with "sensitive".
  6116  func (s GetFindingOutput) GoString() string {
  6117  	return s.String()
  6118  }
  6119  
  6120  // SetFinding sets the Finding field's value.
  6121  func (s *GetFindingOutput) SetFinding(v *Finding) *GetFindingOutput {
  6122  	s.Finding = v
  6123  	return s
  6124  }
  6125  
  6126  type GetGeneratedPolicyInput struct {
  6127  	_ struct{} `type:"structure" nopayload:"true"`
  6128  
  6129  	// The level of detail that you want to generate. You can specify whether to
  6130  	// generate policies with placeholders for resource ARNs for actions that support
  6131  	// resource level granularity in policies.
  6132  	//
  6133  	// For example, in the resource section of a policy, you can receive a placeholder
  6134  	// such as "Resource":"arn:aws:s3:::${BucketName}" instead of "*".
  6135  	IncludeResourcePlaceholders *bool `location:"querystring" locationName:"includeResourcePlaceholders" type:"boolean"`
  6136  
  6137  	// The level of detail that you want to generate. You can specify whether to
  6138  	// generate service-level policies.
  6139  	//
  6140  	// IAM Access Analyzer uses iam:servicelastaccessed to identify services that
  6141  	// have been used recently to create this service-level template.
  6142  	IncludeServiceLevelTemplate *bool `location:"querystring" locationName:"includeServiceLevelTemplate" type:"boolean"`
  6143  
  6144  	// The JobId that is returned by the StartPolicyGeneration operation. The JobId
  6145  	// can be used with GetGeneratedPolicy to retrieve the generated policies or
  6146  	// used with CancelPolicyGeneration to cancel the policy generation request.
  6147  	//
  6148  	// JobId is a required field
  6149  	JobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`
  6150  }
  6151  
  6152  // String returns the string representation.
  6153  //
  6154  // API parameter values that are decorated as "sensitive" in the API will not
  6155  // be included in the string output. The member name will be present, but the
  6156  // value will be replaced with "sensitive".
  6157  func (s GetGeneratedPolicyInput) String() string {
  6158  	return awsutil.Prettify(s)
  6159  }
  6160  
  6161  // GoString returns the string representation.
  6162  //
  6163  // API parameter values that are decorated as "sensitive" in the API will not
  6164  // be included in the string output. The member name will be present, but the
  6165  // value will be replaced with "sensitive".
  6166  func (s GetGeneratedPolicyInput) GoString() string {
  6167  	return s.String()
  6168  }
  6169  
  6170  // Validate inspects the fields of the type to determine if they are valid.
  6171  func (s *GetGeneratedPolicyInput) Validate() error {
  6172  	invalidParams := request.ErrInvalidParams{Context: "GetGeneratedPolicyInput"}
  6173  	if s.JobId == nil {
  6174  		invalidParams.Add(request.NewErrParamRequired("JobId"))
  6175  	}
  6176  	if s.JobId != nil && len(*s.JobId) < 1 {
  6177  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
  6178  	}
  6179  
  6180  	if invalidParams.Len() > 0 {
  6181  		return invalidParams
  6182  	}
  6183  	return nil
  6184  }
  6185  
  6186  // SetIncludeResourcePlaceholders sets the IncludeResourcePlaceholders field's value.
  6187  func (s *GetGeneratedPolicyInput) SetIncludeResourcePlaceholders(v bool) *GetGeneratedPolicyInput {
  6188  	s.IncludeResourcePlaceholders = &v
  6189  	return s
  6190  }
  6191  
  6192  // SetIncludeServiceLevelTemplate sets the IncludeServiceLevelTemplate field's value.
  6193  func (s *GetGeneratedPolicyInput) SetIncludeServiceLevelTemplate(v bool) *GetGeneratedPolicyInput {
  6194  	s.IncludeServiceLevelTemplate = &v
  6195  	return s
  6196  }
  6197  
  6198  // SetJobId sets the JobId field's value.
  6199  func (s *GetGeneratedPolicyInput) SetJobId(v string) *GetGeneratedPolicyInput {
  6200  	s.JobId = &v
  6201  	return s
  6202  }
  6203  
  6204  type GetGeneratedPolicyOutput struct {
  6205  	_ struct{} `type:"structure"`
  6206  
  6207  	// A GeneratedPolicyResult object that contains the generated policies and associated
  6208  	// details.
  6209  	//
  6210  	// GeneratedPolicyResult is a required field
  6211  	GeneratedPolicyResult *GeneratedPolicyResult `locationName:"generatedPolicyResult" type:"structure" required:"true"`
  6212  
  6213  	// A GeneratedPolicyDetails object that contains details about the generated
  6214  	// policy.
  6215  	//
  6216  	// JobDetails is a required field
  6217  	JobDetails *JobDetails `locationName:"jobDetails" type:"structure" required:"true"`
  6218  }
  6219  
  6220  // String returns the string representation.
  6221  //
  6222  // API parameter values that are decorated as "sensitive" in the API will not
  6223  // be included in the string output. The member name will be present, but the
  6224  // value will be replaced with "sensitive".
  6225  func (s GetGeneratedPolicyOutput) String() string {
  6226  	return awsutil.Prettify(s)
  6227  }
  6228  
  6229  // GoString returns the string representation.
  6230  //
  6231  // API parameter values that are decorated as "sensitive" in the API will not
  6232  // be included in the string output. The member name will be present, but the
  6233  // value will be replaced with "sensitive".
  6234  func (s GetGeneratedPolicyOutput) GoString() string {
  6235  	return s.String()
  6236  }
  6237  
  6238  // SetGeneratedPolicyResult sets the GeneratedPolicyResult field's value.
  6239  func (s *GetGeneratedPolicyOutput) SetGeneratedPolicyResult(v *GeneratedPolicyResult) *GetGeneratedPolicyOutput {
  6240  	s.GeneratedPolicyResult = v
  6241  	return s
  6242  }
  6243  
  6244  // SetJobDetails sets the JobDetails field's value.
  6245  func (s *GetGeneratedPolicyOutput) SetJobDetails(v *JobDetails) *GetGeneratedPolicyOutput {
  6246  	s.JobDetails = v
  6247  	return s
  6248  }
  6249  
  6250  // The proposed access control configuration for an IAM role. You can propose
  6251  // a configuration for a new IAM role or an existing IAM role that you own by
  6252  // specifying the trust policy. If the configuration is for a new IAM role,
  6253  // you must specify the trust policy. If the configuration is for an existing
  6254  // IAM role that you own and you do not propose the trust policy, the access
  6255  // preview uses the existing trust policy for the role. The proposed trust policy
  6256  // cannot be an empty string. For more information about role trust policy limits,
  6257  // see IAM and STS quotas (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
  6258  type IamRoleConfiguration struct {
  6259  	_ struct{} `type:"structure"`
  6260  
  6261  	// The proposed trust policy for the IAM role.
  6262  	TrustPolicy *string `locationName:"trustPolicy" type:"string"`
  6263  }
  6264  
  6265  // String returns the string representation.
  6266  //
  6267  // API parameter values that are decorated as "sensitive" in the API will not
  6268  // be included in the string output. The member name will be present, but the
  6269  // value will be replaced with "sensitive".
  6270  func (s IamRoleConfiguration) String() string {
  6271  	return awsutil.Prettify(s)
  6272  }
  6273  
  6274  // GoString returns the string representation.
  6275  //
  6276  // API parameter values that are decorated as "sensitive" in the API will not
  6277  // be included in the string output. The member name will be present, but the
  6278  // value will be replaced with "sensitive".
  6279  func (s IamRoleConfiguration) GoString() string {
  6280  	return s.String()
  6281  }
  6282  
  6283  // SetTrustPolicy sets the TrustPolicy field's value.
  6284  func (s *IamRoleConfiguration) SetTrustPolicy(v string) *IamRoleConfiguration {
  6285  	s.TrustPolicy = &v
  6286  	return s
  6287  }
  6288  
  6289  // An criterion statement in an archive rule. Each archive rule may have multiple
  6290  // criteria.
  6291  type InlineArchiveRule struct {
  6292  	_ struct{} `type:"structure"`
  6293  
  6294  	// The condition and values for a criterion.
  6295  	//
  6296  	// Filter is a required field
  6297  	Filter map[string]*Criterion `locationName:"filter" type:"map" required:"true"`
  6298  
  6299  	// The name of the rule.
  6300  	//
  6301  	// RuleName is a required field
  6302  	RuleName *string `locationName:"ruleName" min:"1" type:"string" required:"true"`
  6303  }
  6304  
  6305  // String returns the string representation.
  6306  //
  6307  // API parameter values that are decorated as "sensitive" in the API will not
  6308  // be included in the string output. The member name will be present, but the
  6309  // value will be replaced with "sensitive".
  6310  func (s InlineArchiveRule) String() string {
  6311  	return awsutil.Prettify(s)
  6312  }
  6313  
  6314  // GoString returns the string representation.
  6315  //
  6316  // API parameter values that are decorated as "sensitive" in the API will not
  6317  // be included in the string output. The member name will be present, but the
  6318  // value will be replaced with "sensitive".
  6319  func (s InlineArchiveRule) GoString() string {
  6320  	return s.String()
  6321  }
  6322  
  6323  // Validate inspects the fields of the type to determine if they are valid.
  6324  func (s *InlineArchiveRule) Validate() error {
  6325  	invalidParams := request.ErrInvalidParams{Context: "InlineArchiveRule"}
  6326  	if s.Filter == nil {
  6327  		invalidParams.Add(request.NewErrParamRequired("Filter"))
  6328  	}
  6329  	if s.RuleName == nil {
  6330  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
  6331  	}
  6332  	if s.RuleName != nil && len(*s.RuleName) < 1 {
  6333  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
  6334  	}
  6335  	if s.Filter != nil {
  6336  		for i, v := range s.Filter {
  6337  			if v == nil {
  6338  				continue
  6339  			}
  6340  			if err := v.Validate(); err != nil {
  6341  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filter", i), err.(request.ErrInvalidParams))
  6342  			}
  6343  		}
  6344  	}
  6345  
  6346  	if invalidParams.Len() > 0 {
  6347  		return invalidParams
  6348  	}
  6349  	return nil
  6350  }
  6351  
  6352  // SetFilter sets the Filter field's value.
  6353  func (s *InlineArchiveRule) SetFilter(v map[string]*Criterion) *InlineArchiveRule {
  6354  	s.Filter = v
  6355  	return s
  6356  }
  6357  
  6358  // SetRuleName sets the RuleName field's value.
  6359  func (s *InlineArchiveRule) SetRuleName(v string) *InlineArchiveRule {
  6360  	s.RuleName = &v
  6361  	return s
  6362  }
  6363  
  6364  // Internal server error.
  6365  type InternalServerException struct {
  6366  	_            struct{}                  `type:"structure"`
  6367  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6368  
  6369  	Message_ *string `locationName:"message" type:"string"`
  6370  
  6371  	// The seconds to wait to retry.
  6372  	RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"`
  6373  }
  6374  
  6375  // String returns the string representation.
  6376  //
  6377  // API parameter values that are decorated as "sensitive" in the API will not
  6378  // be included in the string output. The member name will be present, but the
  6379  // value will be replaced with "sensitive".
  6380  func (s InternalServerException) String() string {
  6381  	return awsutil.Prettify(s)
  6382  }
  6383  
  6384  // GoString returns the string representation.
  6385  //
  6386  // API parameter values that are decorated as "sensitive" in the API will not
  6387  // be included in the string output. The member name will be present, but the
  6388  // value will be replaced with "sensitive".
  6389  func (s InternalServerException) GoString() string {
  6390  	return s.String()
  6391  }
  6392  
  6393  func newErrorInternalServerException(v protocol.ResponseMetadata) error {
  6394  	return &InternalServerException{
  6395  		RespMetadata: v,
  6396  	}
  6397  }
  6398  
  6399  // Code returns the exception type name.
  6400  func (s *InternalServerException) Code() string {
  6401  	return "InternalServerException"
  6402  }
  6403  
  6404  // Message returns the exception's message.
  6405  func (s *InternalServerException) Message() string {
  6406  	if s.Message_ != nil {
  6407  		return *s.Message_
  6408  	}
  6409  	return ""
  6410  }
  6411  
  6412  // OrigErr always returns nil, satisfies awserr.Error interface.
  6413  func (s *InternalServerException) OrigErr() error {
  6414  	return nil
  6415  }
  6416  
  6417  func (s *InternalServerException) Error() string {
  6418  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  6419  }
  6420  
  6421  // Status code returns the HTTP status code for the request's response error.
  6422  func (s *InternalServerException) StatusCode() int {
  6423  	return s.RespMetadata.StatusCode
  6424  }
  6425  
  6426  // RequestID returns the service's response RequestID for request.
  6427  func (s *InternalServerException) RequestID() string {
  6428  	return s.RespMetadata.RequestID
  6429  }
  6430  
  6431  // This configuration sets the network origin for the Amazon S3 access point
  6432  // or multi-region access point to Internet.
  6433  type InternetConfiguration struct {
  6434  	_ struct{} `type:"structure" nopayload:"true"`
  6435  }
  6436  
  6437  // String returns the string representation.
  6438  //
  6439  // API parameter values that are decorated as "sensitive" in the API will not
  6440  // be included in the string output. The member name will be present, but the
  6441  // value will be replaced with "sensitive".
  6442  func (s InternetConfiguration) String() string {
  6443  	return awsutil.Prettify(s)
  6444  }
  6445  
  6446  // GoString returns the string representation.
  6447  //
  6448  // API parameter values that are decorated as "sensitive" in the API will not
  6449  // be included in the string output. The member name will be present, but the
  6450  // value will be replaced with "sensitive".
  6451  func (s InternetConfiguration) GoString() string {
  6452  	return s.String()
  6453  }
  6454  
  6455  // Contains details about the policy generation request.
  6456  type JobDetails struct {
  6457  	_ struct{} `type:"structure"`
  6458  
  6459  	// A timestamp of when the job was completed.
  6460  	CompletedOn *time.Time `locationName:"completedOn" type:"timestamp" timestampFormat:"iso8601"`
  6461  
  6462  	// The job error for the policy generation request.
  6463  	JobError *JobError `locationName:"jobError" type:"structure"`
  6464  
  6465  	// The JobId that is returned by the StartPolicyGeneration operation. The JobId
  6466  	// can be used with GetGeneratedPolicy to retrieve the generated policies or
  6467  	// used with CancelPolicyGeneration to cancel the policy generation request.
  6468  	//
  6469  	// JobId is a required field
  6470  	JobId *string `locationName:"jobId" type:"string" required:"true"`
  6471  
  6472  	// A timestamp of when the job was started.
  6473  	//
  6474  	// StartedOn is a required field
  6475  	StartedOn *time.Time `locationName:"startedOn" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  6476  
  6477  	// The status of the job request.
  6478  	//
  6479  	// Status is a required field
  6480  	Status *string `locationName:"status" type:"string" required:"true" enum:"JobStatus"`
  6481  }
  6482  
  6483  // String returns the string representation.
  6484  //
  6485  // API parameter values that are decorated as "sensitive" in the API will not
  6486  // be included in the string output. The member name will be present, but the
  6487  // value will be replaced with "sensitive".
  6488  func (s JobDetails) String() string {
  6489  	return awsutil.Prettify(s)
  6490  }
  6491  
  6492  // GoString returns the string representation.
  6493  //
  6494  // API parameter values that are decorated as "sensitive" in the API will not
  6495  // be included in the string output. The member name will be present, but the
  6496  // value will be replaced with "sensitive".
  6497  func (s JobDetails) GoString() string {
  6498  	return s.String()
  6499  }
  6500  
  6501  // SetCompletedOn sets the CompletedOn field's value.
  6502  func (s *JobDetails) SetCompletedOn(v time.Time) *JobDetails {
  6503  	s.CompletedOn = &v
  6504  	return s
  6505  }
  6506  
  6507  // SetJobError sets the JobError field's value.
  6508  func (s *JobDetails) SetJobError(v *JobError) *JobDetails {
  6509  	s.JobError = v
  6510  	return s
  6511  }
  6512  
  6513  // SetJobId sets the JobId field's value.
  6514  func (s *JobDetails) SetJobId(v string) *JobDetails {
  6515  	s.JobId = &v
  6516  	return s
  6517  }
  6518  
  6519  // SetStartedOn sets the StartedOn field's value.
  6520  func (s *JobDetails) SetStartedOn(v time.Time) *JobDetails {
  6521  	s.StartedOn = &v
  6522  	return s
  6523  }
  6524  
  6525  // SetStatus sets the Status field's value.
  6526  func (s *JobDetails) SetStatus(v string) *JobDetails {
  6527  	s.Status = &v
  6528  	return s
  6529  }
  6530  
  6531  // Contains the details about the policy generation error.
  6532  type JobError struct {
  6533  	_ struct{} `type:"structure"`
  6534  
  6535  	// The job error code.
  6536  	//
  6537  	// Code is a required field
  6538  	Code *string `locationName:"code" type:"string" required:"true" enum:"JobErrorCode"`
  6539  
  6540  	// Specific information about the error. For example, which service quota was
  6541  	// exceeded or which resource was not found.
  6542  	//
  6543  	// Message is a required field
  6544  	Message *string `locationName:"message" type:"string" required:"true"`
  6545  }
  6546  
  6547  // String returns the string representation.
  6548  //
  6549  // API parameter values that are decorated as "sensitive" in the API will not
  6550  // be included in the string output. The member name will be present, but the
  6551  // value will be replaced with "sensitive".
  6552  func (s JobError) String() string {
  6553  	return awsutil.Prettify(s)
  6554  }
  6555  
  6556  // GoString returns the string representation.
  6557  //
  6558  // API parameter values that are decorated as "sensitive" in the API will not
  6559  // be included in the string output. The member name will be present, but the
  6560  // value will be replaced with "sensitive".
  6561  func (s JobError) GoString() string {
  6562  	return s.String()
  6563  }
  6564  
  6565  // SetCode sets the Code field's value.
  6566  func (s *JobError) SetCode(v string) *JobError {
  6567  	s.Code = &v
  6568  	return s
  6569  }
  6570  
  6571  // SetMessage sets the Message field's value.
  6572  func (s *JobError) SetMessage(v string) *JobError {
  6573  	s.Message = &v
  6574  	return s
  6575  }
  6576  
  6577  // A proposed grant configuration for a KMS key. For more information, see CreateGrant
  6578  // (https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html).
  6579  type KmsGrantConfiguration struct {
  6580  	_ struct{} `type:"structure"`
  6581  
  6582  	// Use this structure to propose allowing cryptographic operations (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations)
  6583  	// in the grant only when the operation request includes the specified encryption
  6584  	// context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context).
  6585  	Constraints *KmsGrantConstraints `locationName:"constraints" type:"structure"`
  6586  
  6587  	// The principal that is given permission to perform the operations that the
  6588  	// grant permits.
  6589  	//
  6590  	// GranteePrincipal is a required field
  6591  	GranteePrincipal *string `locationName:"granteePrincipal" type:"string" required:"true"`
  6592  
  6593  	// The Amazon Web Services account under which the grant was issued. The account
  6594  	// is used to propose KMS grants issued by accounts other than the owner of
  6595  	// the key.
  6596  	//
  6597  	// IssuingAccount is a required field
  6598  	IssuingAccount *string `locationName:"issuingAccount" type:"string" required:"true"`
  6599  
  6600  	// A list of operations that the grant permits.
  6601  	//
  6602  	// Operations is a required field
  6603  	Operations []*string `locationName:"operations" type:"list" required:"true"`
  6604  
  6605  	// The principal that is given permission to retire the grant by using RetireGrant
  6606  	// (https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)
  6607  	// operation.
  6608  	RetiringPrincipal *string `locationName:"retiringPrincipal" type:"string"`
  6609  }
  6610  
  6611  // String returns the string representation.
  6612  //
  6613  // API parameter values that are decorated as "sensitive" in the API will not
  6614  // be included in the string output. The member name will be present, but the
  6615  // value will be replaced with "sensitive".
  6616  func (s KmsGrantConfiguration) String() string {
  6617  	return awsutil.Prettify(s)
  6618  }
  6619  
  6620  // GoString returns the string representation.
  6621  //
  6622  // API parameter values that are decorated as "sensitive" in the API will not
  6623  // be included in the string output. The member name will be present, but the
  6624  // value will be replaced with "sensitive".
  6625  func (s KmsGrantConfiguration) GoString() string {
  6626  	return s.String()
  6627  }
  6628  
  6629  // Validate inspects the fields of the type to determine if they are valid.
  6630  func (s *KmsGrantConfiguration) Validate() error {
  6631  	invalidParams := request.ErrInvalidParams{Context: "KmsGrantConfiguration"}
  6632  	if s.GranteePrincipal == nil {
  6633  		invalidParams.Add(request.NewErrParamRequired("GranteePrincipal"))
  6634  	}
  6635  	if s.IssuingAccount == nil {
  6636  		invalidParams.Add(request.NewErrParamRequired("IssuingAccount"))
  6637  	}
  6638  	if s.Operations == nil {
  6639  		invalidParams.Add(request.NewErrParamRequired("Operations"))
  6640  	}
  6641  
  6642  	if invalidParams.Len() > 0 {
  6643  		return invalidParams
  6644  	}
  6645  	return nil
  6646  }
  6647  
  6648  // SetConstraints sets the Constraints field's value.
  6649  func (s *KmsGrantConfiguration) SetConstraints(v *KmsGrantConstraints) *KmsGrantConfiguration {
  6650  	s.Constraints = v
  6651  	return s
  6652  }
  6653  
  6654  // SetGranteePrincipal sets the GranteePrincipal field's value.
  6655  func (s *KmsGrantConfiguration) SetGranteePrincipal(v string) *KmsGrantConfiguration {
  6656  	s.GranteePrincipal = &v
  6657  	return s
  6658  }
  6659  
  6660  // SetIssuingAccount sets the IssuingAccount field's value.
  6661  func (s *KmsGrantConfiguration) SetIssuingAccount(v string) *KmsGrantConfiguration {
  6662  	s.IssuingAccount = &v
  6663  	return s
  6664  }
  6665  
  6666  // SetOperations sets the Operations field's value.
  6667  func (s *KmsGrantConfiguration) SetOperations(v []*string) *KmsGrantConfiguration {
  6668  	s.Operations = v
  6669  	return s
  6670  }
  6671  
  6672  // SetRetiringPrincipal sets the RetiringPrincipal field's value.
  6673  func (s *KmsGrantConfiguration) SetRetiringPrincipal(v string) *KmsGrantConfiguration {
  6674  	s.RetiringPrincipal = &v
  6675  	return s
  6676  }
  6677  
  6678  // Use this structure to propose allowing cryptographic operations (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations)
  6679  // in the grant only when the operation request includes the specified encryption
  6680  // context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context).
  6681  // You can specify only one type of encryption context. An empty map is treated
  6682  // as not specified. For more information, see GrantConstraints (https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html).
  6683  type KmsGrantConstraints struct {
  6684  	_ struct{} `type:"structure"`
  6685  
  6686  	// A list of key-value pairs that must match the encryption context in the cryptographic
  6687  	// operation (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations)
  6688  	// request. The grant allows the operation only when the encryption context
  6689  	// in the request is the same as the encryption context specified in this constraint.
  6690  	EncryptionContextEquals map[string]*string `locationName:"encryptionContextEquals" type:"map"`
  6691  
  6692  	// A list of key-value pairs that must be included in the encryption context
  6693  	// of the cryptographic operation (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations)
  6694  	// request. The grant allows the cryptographic operation only when the encryption
  6695  	// context in the request includes the key-value pairs specified in this constraint,
  6696  	// although it can include additional key-value pairs.
  6697  	EncryptionContextSubset map[string]*string `locationName:"encryptionContextSubset" type:"map"`
  6698  }
  6699  
  6700  // String returns the string representation.
  6701  //
  6702  // API parameter values that are decorated as "sensitive" in the API will not
  6703  // be included in the string output. The member name will be present, but the
  6704  // value will be replaced with "sensitive".
  6705  func (s KmsGrantConstraints) String() string {
  6706  	return awsutil.Prettify(s)
  6707  }
  6708  
  6709  // GoString returns the string representation.
  6710  //
  6711  // API parameter values that are decorated as "sensitive" in the API will not
  6712  // be included in the string output. The member name will be present, but the
  6713  // value will be replaced with "sensitive".
  6714  func (s KmsGrantConstraints) GoString() string {
  6715  	return s.String()
  6716  }
  6717  
  6718  // SetEncryptionContextEquals sets the EncryptionContextEquals field's value.
  6719  func (s *KmsGrantConstraints) SetEncryptionContextEquals(v map[string]*string) *KmsGrantConstraints {
  6720  	s.EncryptionContextEquals = v
  6721  	return s
  6722  }
  6723  
  6724  // SetEncryptionContextSubset sets the EncryptionContextSubset field's value.
  6725  func (s *KmsGrantConstraints) SetEncryptionContextSubset(v map[string]*string) *KmsGrantConstraints {
  6726  	s.EncryptionContextSubset = v
  6727  	return s
  6728  }
  6729  
  6730  // Proposed access control configuration for a KMS key. You can propose a configuration
  6731  // for a new KMS key or an existing KMS key that you own by specifying the key
  6732  // policy and KMS grant configuration. If the configuration is for an existing
  6733  // key and you do not specify the key policy, the access preview uses the existing
  6734  // policy for the key. If the access preview is for a new resource and you do
  6735  // not specify the key policy, then the access preview uses the default key
  6736  // policy. The proposed key policy cannot be an empty string. For more information,
  6737  // see Default key policy (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default).
  6738  // For more information about key policy limits, see Resource quotas (https://docs.aws.amazon.com/kms/latest/developerguide/resource-limits.html).
  6739  type KmsKeyConfiguration struct {
  6740  	_ struct{} `type:"structure"`
  6741  
  6742  	// A list of proposed grant configurations for the KMS key. If the proposed
  6743  	// grant configuration is for an existing key, the access preview uses the proposed
  6744  	// list of grant configurations in place of the existing grants. Otherwise,
  6745  	// the access preview uses the existing grants for the key.
  6746  	Grants []*KmsGrantConfiguration `locationName:"grants" type:"list"`
  6747  
  6748  	// Resource policy configuration for the KMS key. The only valid value for the
  6749  	// name of the key policy is default. For more information, see Default key
  6750  	// policy (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default).
  6751  	KeyPolicies map[string]*string `locationName:"keyPolicies" type:"map"`
  6752  }
  6753  
  6754  // String returns the string representation.
  6755  //
  6756  // API parameter values that are decorated as "sensitive" in the API will not
  6757  // be included in the string output. The member name will be present, but the
  6758  // value will be replaced with "sensitive".
  6759  func (s KmsKeyConfiguration) String() string {
  6760  	return awsutil.Prettify(s)
  6761  }
  6762  
  6763  // GoString returns the string representation.
  6764  //
  6765  // API parameter values that are decorated as "sensitive" in the API will not
  6766  // be included in the string output. The member name will be present, but the
  6767  // value will be replaced with "sensitive".
  6768  func (s KmsKeyConfiguration) GoString() string {
  6769  	return s.String()
  6770  }
  6771  
  6772  // Validate inspects the fields of the type to determine if they are valid.
  6773  func (s *KmsKeyConfiguration) Validate() error {
  6774  	invalidParams := request.ErrInvalidParams{Context: "KmsKeyConfiguration"}
  6775  	if s.Grants != nil {
  6776  		for i, v := range s.Grants {
  6777  			if v == nil {
  6778  				continue
  6779  			}
  6780  			if err := v.Validate(); err != nil {
  6781  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Grants", i), err.(request.ErrInvalidParams))
  6782  			}
  6783  		}
  6784  	}
  6785  
  6786  	if invalidParams.Len() > 0 {
  6787  		return invalidParams
  6788  	}
  6789  	return nil
  6790  }
  6791  
  6792  // SetGrants sets the Grants field's value.
  6793  func (s *KmsKeyConfiguration) SetGrants(v []*KmsGrantConfiguration) *KmsKeyConfiguration {
  6794  	s.Grants = v
  6795  	return s
  6796  }
  6797  
  6798  // SetKeyPolicies sets the KeyPolicies field's value.
  6799  func (s *KmsKeyConfiguration) SetKeyPolicies(v map[string]*string) *KmsKeyConfiguration {
  6800  	s.KeyPolicies = v
  6801  	return s
  6802  }
  6803  
  6804  type ListAccessPreviewFindingsInput struct {
  6805  	_ struct{} `type:"structure"`
  6806  
  6807  	// The unique ID for the access preview.
  6808  	//
  6809  	// AccessPreviewId is a required field
  6810  	AccessPreviewId *string `location:"uri" locationName:"accessPreviewId" type:"string" required:"true"`
  6811  
  6812  	// The ARN of the analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources)
  6813  	// used to generate the access.
  6814  	//
  6815  	// AnalyzerArn is a required field
  6816  	AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"`
  6817  
  6818  	// Criteria to filter the returned findings.
  6819  	Filter map[string]*Criterion `locationName:"filter" type:"map"`
  6820  
  6821  	// The maximum number of results to return in the response.
  6822  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
  6823  
  6824  	// A token used for pagination of results returned.
  6825  	NextToken *string `locationName:"nextToken" type:"string"`
  6826  }
  6827  
  6828  // String returns the string representation.
  6829  //
  6830  // API parameter values that are decorated as "sensitive" in the API will not
  6831  // be included in the string output. The member name will be present, but the
  6832  // value will be replaced with "sensitive".
  6833  func (s ListAccessPreviewFindingsInput) String() string {
  6834  	return awsutil.Prettify(s)
  6835  }
  6836  
  6837  // GoString returns the string representation.
  6838  //
  6839  // API parameter values that are decorated as "sensitive" in the API will not
  6840  // be included in the string output. The member name will be present, but the
  6841  // value will be replaced with "sensitive".
  6842  func (s ListAccessPreviewFindingsInput) GoString() string {
  6843  	return s.String()
  6844  }
  6845  
  6846  // Validate inspects the fields of the type to determine if they are valid.
  6847  func (s *ListAccessPreviewFindingsInput) Validate() error {
  6848  	invalidParams := request.ErrInvalidParams{Context: "ListAccessPreviewFindingsInput"}
  6849  	if s.AccessPreviewId == nil {
  6850  		invalidParams.Add(request.NewErrParamRequired("AccessPreviewId"))
  6851  	}
  6852  	if s.AccessPreviewId != nil && len(*s.AccessPreviewId) < 1 {
  6853  		invalidParams.Add(request.NewErrParamMinLen("AccessPreviewId", 1))
  6854  	}
  6855  	if s.AnalyzerArn == nil {
  6856  		invalidParams.Add(request.NewErrParamRequired("AnalyzerArn"))
  6857  	}
  6858  	if s.Filter != nil {
  6859  		for i, v := range s.Filter {
  6860  			if v == nil {
  6861  				continue
  6862  			}
  6863  			if err := v.Validate(); err != nil {
  6864  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filter", i), err.(request.ErrInvalidParams))
  6865  			}
  6866  		}
  6867  	}
  6868  
  6869  	if invalidParams.Len() > 0 {
  6870  		return invalidParams
  6871  	}
  6872  	return nil
  6873  }
  6874  
  6875  // SetAccessPreviewId sets the AccessPreviewId field's value.
  6876  func (s *ListAccessPreviewFindingsInput) SetAccessPreviewId(v string) *ListAccessPreviewFindingsInput {
  6877  	s.AccessPreviewId = &v
  6878  	return s
  6879  }
  6880  
  6881  // SetAnalyzerArn sets the AnalyzerArn field's value.
  6882  func (s *ListAccessPreviewFindingsInput) SetAnalyzerArn(v string) *ListAccessPreviewFindingsInput {
  6883  	s.AnalyzerArn = &v
  6884  	return s
  6885  }
  6886  
  6887  // SetFilter sets the Filter field's value.
  6888  func (s *ListAccessPreviewFindingsInput) SetFilter(v map[string]*Criterion) *ListAccessPreviewFindingsInput {
  6889  	s.Filter = v
  6890  	return s
  6891  }
  6892  
  6893  // SetMaxResults sets the MaxResults field's value.
  6894  func (s *ListAccessPreviewFindingsInput) SetMaxResults(v int64) *ListAccessPreviewFindingsInput {
  6895  	s.MaxResults = &v
  6896  	return s
  6897  }
  6898  
  6899  // SetNextToken sets the NextToken field's value.
  6900  func (s *ListAccessPreviewFindingsInput) SetNextToken(v string) *ListAccessPreviewFindingsInput {
  6901  	s.NextToken = &v
  6902  	return s
  6903  }
  6904  
  6905  type ListAccessPreviewFindingsOutput struct {
  6906  	_ struct{} `type:"structure"`
  6907  
  6908  	// A list of access preview findings that match the specified filter criteria.
  6909  	//
  6910  	// Findings is a required field
  6911  	Findings []*AccessPreviewFinding `locationName:"findings" type:"list" required:"true"`
  6912  
  6913  	// A token used for pagination of results returned.
  6914  	NextToken *string `locationName:"nextToken" type:"string"`
  6915  }
  6916  
  6917  // String returns the string representation.
  6918  //
  6919  // API parameter values that are decorated as "sensitive" in the API will not
  6920  // be included in the string output. The member name will be present, but the
  6921  // value will be replaced with "sensitive".
  6922  func (s ListAccessPreviewFindingsOutput) String() string {
  6923  	return awsutil.Prettify(s)
  6924  }
  6925  
  6926  // GoString returns the string representation.
  6927  //
  6928  // API parameter values that are decorated as "sensitive" in the API will not
  6929  // be included in the string output. The member name will be present, but the
  6930  // value will be replaced with "sensitive".
  6931  func (s ListAccessPreviewFindingsOutput) GoString() string {
  6932  	return s.String()
  6933  }
  6934  
  6935  // SetFindings sets the Findings field's value.
  6936  func (s *ListAccessPreviewFindingsOutput) SetFindings(v []*AccessPreviewFinding) *ListAccessPreviewFindingsOutput {
  6937  	s.Findings = v
  6938  	return s
  6939  }
  6940  
  6941  // SetNextToken sets the NextToken field's value.
  6942  func (s *ListAccessPreviewFindingsOutput) SetNextToken(v string) *ListAccessPreviewFindingsOutput {
  6943  	s.NextToken = &v
  6944  	return s
  6945  }
  6946  
  6947  type ListAccessPreviewsInput struct {
  6948  	_ struct{} `type:"structure" nopayload:"true"`
  6949  
  6950  	// The ARN of the analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources)
  6951  	// used to generate the access preview.
  6952  	//
  6953  	// AnalyzerArn is a required field
  6954  	AnalyzerArn *string `location:"querystring" locationName:"analyzerArn" type:"string" required:"true"`
  6955  
  6956  	// The maximum number of results to return in the response.
  6957  	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
  6958  
  6959  	// A token used for pagination of results returned.
  6960  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  6961  }
  6962  
  6963  // String returns the string representation.
  6964  //
  6965  // API parameter values that are decorated as "sensitive" in the API will not
  6966  // be included in the string output. The member name will be present, but the
  6967  // value will be replaced with "sensitive".
  6968  func (s ListAccessPreviewsInput) String() string {
  6969  	return awsutil.Prettify(s)
  6970  }
  6971  
  6972  // GoString returns the string representation.
  6973  //
  6974  // API parameter values that are decorated as "sensitive" in the API will not
  6975  // be included in the string output. The member name will be present, but the
  6976  // value will be replaced with "sensitive".
  6977  func (s ListAccessPreviewsInput) GoString() string {
  6978  	return s.String()
  6979  }
  6980  
  6981  // Validate inspects the fields of the type to determine if they are valid.
  6982  func (s *ListAccessPreviewsInput) Validate() error {
  6983  	invalidParams := request.ErrInvalidParams{Context: "ListAccessPreviewsInput"}
  6984  	if s.AnalyzerArn == nil {
  6985  		invalidParams.Add(request.NewErrParamRequired("AnalyzerArn"))
  6986  	}
  6987  
  6988  	if invalidParams.Len() > 0 {
  6989  		return invalidParams
  6990  	}
  6991  	return nil
  6992  }
  6993  
  6994  // SetAnalyzerArn sets the AnalyzerArn field's value.
  6995  func (s *ListAccessPreviewsInput) SetAnalyzerArn(v string) *ListAccessPreviewsInput {
  6996  	s.AnalyzerArn = &v
  6997  	return s
  6998  }
  6999  
  7000  // SetMaxResults sets the MaxResults field's value.
  7001  func (s *ListAccessPreviewsInput) SetMaxResults(v int64) *ListAccessPreviewsInput {
  7002  	s.MaxResults = &v
  7003  	return s
  7004  }
  7005  
  7006  // SetNextToken sets the NextToken field's value.
  7007  func (s *ListAccessPreviewsInput) SetNextToken(v string) *ListAccessPreviewsInput {
  7008  	s.NextToken = &v
  7009  	return s
  7010  }
  7011  
  7012  type ListAccessPreviewsOutput struct {
  7013  	_ struct{} `type:"structure"`
  7014  
  7015  	// A list of access previews retrieved for the analyzer.
  7016  	//
  7017  	// AccessPreviews is a required field
  7018  	AccessPreviews []*AccessPreviewSummary `locationName:"accessPreviews" type:"list" required:"true"`
  7019  
  7020  	// A token used for pagination of results returned.
  7021  	NextToken *string `locationName:"nextToken" type:"string"`
  7022  }
  7023  
  7024  // String returns the string representation.
  7025  //
  7026  // API parameter values that are decorated as "sensitive" in the API will not
  7027  // be included in the string output. The member name will be present, but the
  7028  // value will be replaced with "sensitive".
  7029  func (s ListAccessPreviewsOutput) String() string {
  7030  	return awsutil.Prettify(s)
  7031  }
  7032  
  7033  // GoString returns the string representation.
  7034  //
  7035  // API parameter values that are decorated as "sensitive" in the API will not
  7036  // be included in the string output. The member name will be present, but the
  7037  // value will be replaced with "sensitive".
  7038  func (s ListAccessPreviewsOutput) GoString() string {
  7039  	return s.String()
  7040  }
  7041  
  7042  // SetAccessPreviews sets the AccessPreviews field's value.
  7043  func (s *ListAccessPreviewsOutput) SetAccessPreviews(v []*AccessPreviewSummary) *ListAccessPreviewsOutput {
  7044  	s.AccessPreviews = v
  7045  	return s
  7046  }
  7047  
  7048  // SetNextToken sets the NextToken field's value.
  7049  func (s *ListAccessPreviewsOutput) SetNextToken(v string) *ListAccessPreviewsOutput {
  7050  	s.NextToken = &v
  7051  	return s
  7052  }
  7053  
  7054  // Retrieves a list of resources that have been analyzed.
  7055  type ListAnalyzedResourcesInput struct {
  7056  	_ struct{} `type:"structure"`
  7057  
  7058  	// The ARN of the analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources)
  7059  	// to retrieve a list of analyzed resources from.
  7060  	//
  7061  	// AnalyzerArn is a required field
  7062  	AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"`
  7063  
  7064  	// The maximum number of results to return in the response.
  7065  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
  7066  
  7067  	// A token used for pagination of results returned.
  7068  	NextToken *string `locationName:"nextToken" type:"string"`
  7069  
  7070  	// The type of resource.
  7071  	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
  7072  }
  7073  
  7074  // String returns the string representation.
  7075  //
  7076  // API parameter values that are decorated as "sensitive" in the API will not
  7077  // be included in the string output. The member name will be present, but the
  7078  // value will be replaced with "sensitive".
  7079  func (s ListAnalyzedResourcesInput) String() string {
  7080  	return awsutil.Prettify(s)
  7081  }
  7082  
  7083  // GoString returns the string representation.
  7084  //
  7085  // API parameter values that are decorated as "sensitive" in the API will not
  7086  // be included in the string output. The member name will be present, but the
  7087  // value will be replaced with "sensitive".
  7088  func (s ListAnalyzedResourcesInput) GoString() string {
  7089  	return s.String()
  7090  }
  7091  
  7092  // Validate inspects the fields of the type to determine if they are valid.
  7093  func (s *ListAnalyzedResourcesInput) Validate() error {
  7094  	invalidParams := request.ErrInvalidParams{Context: "ListAnalyzedResourcesInput"}
  7095  	if s.AnalyzerArn == nil {
  7096  		invalidParams.Add(request.NewErrParamRequired("AnalyzerArn"))
  7097  	}
  7098  
  7099  	if invalidParams.Len() > 0 {
  7100  		return invalidParams
  7101  	}
  7102  	return nil
  7103  }
  7104  
  7105  // SetAnalyzerArn sets the AnalyzerArn field's value.
  7106  func (s *ListAnalyzedResourcesInput) SetAnalyzerArn(v string) *ListAnalyzedResourcesInput {
  7107  	s.AnalyzerArn = &v
  7108  	return s
  7109  }
  7110  
  7111  // SetMaxResults sets the MaxResults field's value.
  7112  func (s *ListAnalyzedResourcesInput) SetMaxResults(v int64) *ListAnalyzedResourcesInput {
  7113  	s.MaxResults = &v
  7114  	return s
  7115  }
  7116  
  7117  // SetNextToken sets the NextToken field's value.
  7118  func (s *ListAnalyzedResourcesInput) SetNextToken(v string) *ListAnalyzedResourcesInput {
  7119  	s.NextToken = &v
  7120  	return s
  7121  }
  7122  
  7123  // SetResourceType sets the ResourceType field's value.
  7124  func (s *ListAnalyzedResourcesInput) SetResourceType(v string) *ListAnalyzedResourcesInput {
  7125  	s.ResourceType = &v
  7126  	return s
  7127  }
  7128  
  7129  // The response to the request.
  7130  type ListAnalyzedResourcesOutput struct {
  7131  	_ struct{} `type:"structure"`
  7132  
  7133  	// A list of resources that were analyzed.
  7134  	//
  7135  	// AnalyzedResources is a required field
  7136  	AnalyzedResources []*AnalyzedResourceSummary `locationName:"analyzedResources" type:"list" required:"true"`
  7137  
  7138  	// A token used for pagination of results returned.
  7139  	NextToken *string `locationName:"nextToken" type:"string"`
  7140  }
  7141  
  7142  // String returns the string representation.
  7143  //
  7144  // API parameter values that are decorated as "sensitive" in the API will not
  7145  // be included in the string output. The member name will be present, but the
  7146  // value will be replaced with "sensitive".
  7147  func (s ListAnalyzedResourcesOutput) String() string {
  7148  	return awsutil.Prettify(s)
  7149  }
  7150  
  7151  // GoString returns the string representation.
  7152  //
  7153  // API parameter values that are decorated as "sensitive" in the API will not
  7154  // be included in the string output. The member name will be present, but the
  7155  // value will be replaced with "sensitive".
  7156  func (s ListAnalyzedResourcesOutput) GoString() string {
  7157  	return s.String()
  7158  }
  7159  
  7160  // SetAnalyzedResources sets the AnalyzedResources field's value.
  7161  func (s *ListAnalyzedResourcesOutput) SetAnalyzedResources(v []*AnalyzedResourceSummary) *ListAnalyzedResourcesOutput {
  7162  	s.AnalyzedResources = v
  7163  	return s
  7164  }
  7165  
  7166  // SetNextToken sets the NextToken field's value.
  7167  func (s *ListAnalyzedResourcesOutput) SetNextToken(v string) *ListAnalyzedResourcesOutput {
  7168  	s.NextToken = &v
  7169  	return s
  7170  }
  7171  
  7172  // Retrieves a list of analyzers.
  7173  type ListAnalyzersInput struct {
  7174  	_ struct{} `type:"structure" nopayload:"true"`
  7175  
  7176  	// The maximum number of results to return in the response.
  7177  	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
  7178  
  7179  	// A token used for pagination of results returned.
  7180  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  7181  
  7182  	// The type of analyzer.
  7183  	Type *string `location:"querystring" locationName:"type" type:"string" enum:"Type"`
  7184  }
  7185  
  7186  // String returns the string representation.
  7187  //
  7188  // API parameter values that are decorated as "sensitive" in the API will not
  7189  // be included in the string output. The member name will be present, but the
  7190  // value will be replaced with "sensitive".
  7191  func (s ListAnalyzersInput) String() string {
  7192  	return awsutil.Prettify(s)
  7193  }
  7194  
  7195  // GoString returns the string representation.
  7196  //
  7197  // API parameter values that are decorated as "sensitive" in the API will not
  7198  // be included in the string output. The member name will be present, but the
  7199  // value will be replaced with "sensitive".
  7200  func (s ListAnalyzersInput) GoString() string {
  7201  	return s.String()
  7202  }
  7203  
  7204  // SetMaxResults sets the MaxResults field's value.
  7205  func (s *ListAnalyzersInput) SetMaxResults(v int64) *ListAnalyzersInput {
  7206  	s.MaxResults = &v
  7207  	return s
  7208  }
  7209  
  7210  // SetNextToken sets the NextToken field's value.
  7211  func (s *ListAnalyzersInput) SetNextToken(v string) *ListAnalyzersInput {
  7212  	s.NextToken = &v
  7213  	return s
  7214  }
  7215  
  7216  // SetType sets the Type field's value.
  7217  func (s *ListAnalyzersInput) SetType(v string) *ListAnalyzersInput {
  7218  	s.Type = &v
  7219  	return s
  7220  }
  7221  
  7222  // The response to the request.
  7223  type ListAnalyzersOutput struct {
  7224  	_ struct{} `type:"structure"`
  7225  
  7226  	// The analyzers retrieved.
  7227  	//
  7228  	// Analyzers is a required field
  7229  	Analyzers []*AnalyzerSummary `locationName:"analyzers" type:"list" required:"true"`
  7230  
  7231  	// A token used for pagination of results returned.
  7232  	NextToken *string `locationName:"nextToken" type:"string"`
  7233  }
  7234  
  7235  // String returns the string representation.
  7236  //
  7237  // API parameter values that are decorated as "sensitive" in the API will not
  7238  // be included in the string output. The member name will be present, but the
  7239  // value will be replaced with "sensitive".
  7240  func (s ListAnalyzersOutput) String() string {
  7241  	return awsutil.Prettify(s)
  7242  }
  7243  
  7244  // GoString returns the string representation.
  7245  //
  7246  // API parameter values that are decorated as "sensitive" in the API will not
  7247  // be included in the string output. The member name will be present, but the
  7248  // value will be replaced with "sensitive".
  7249  func (s ListAnalyzersOutput) GoString() string {
  7250  	return s.String()
  7251  }
  7252  
  7253  // SetAnalyzers sets the Analyzers field's value.
  7254  func (s *ListAnalyzersOutput) SetAnalyzers(v []*AnalyzerSummary) *ListAnalyzersOutput {
  7255  	s.Analyzers = v
  7256  	return s
  7257  }
  7258  
  7259  // SetNextToken sets the NextToken field's value.
  7260  func (s *ListAnalyzersOutput) SetNextToken(v string) *ListAnalyzersOutput {
  7261  	s.NextToken = &v
  7262  	return s
  7263  }
  7264  
  7265  // Retrieves a list of archive rules created for the specified analyzer.
  7266  type ListArchiveRulesInput struct {
  7267  	_ struct{} `type:"structure" nopayload:"true"`
  7268  
  7269  	// The name of the analyzer to retrieve rules from.
  7270  	//
  7271  	// AnalyzerName is a required field
  7272  	AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"`
  7273  
  7274  	// The maximum number of results to return in the request.
  7275  	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
  7276  
  7277  	// A token used for pagination of results returned.
  7278  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  7279  }
  7280  
  7281  // String returns the string representation.
  7282  //
  7283  // API parameter values that are decorated as "sensitive" in the API will not
  7284  // be included in the string output. The member name will be present, but the
  7285  // value will be replaced with "sensitive".
  7286  func (s ListArchiveRulesInput) String() string {
  7287  	return awsutil.Prettify(s)
  7288  }
  7289  
  7290  // GoString returns the string representation.
  7291  //
  7292  // API parameter values that are decorated as "sensitive" in the API will not
  7293  // be included in the string output. The member name will be present, but the
  7294  // value will be replaced with "sensitive".
  7295  func (s ListArchiveRulesInput) GoString() string {
  7296  	return s.String()
  7297  }
  7298  
  7299  // Validate inspects the fields of the type to determine if they are valid.
  7300  func (s *ListArchiveRulesInput) Validate() error {
  7301  	invalidParams := request.ErrInvalidParams{Context: "ListArchiveRulesInput"}
  7302  	if s.AnalyzerName == nil {
  7303  		invalidParams.Add(request.NewErrParamRequired("AnalyzerName"))
  7304  	}
  7305  	if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 {
  7306  		invalidParams.Add(request.NewErrParamMinLen("AnalyzerName", 1))
  7307  	}
  7308  
  7309  	if invalidParams.Len() > 0 {
  7310  		return invalidParams
  7311  	}
  7312  	return nil
  7313  }
  7314  
  7315  // SetAnalyzerName sets the AnalyzerName field's value.
  7316  func (s *ListArchiveRulesInput) SetAnalyzerName(v string) *ListArchiveRulesInput {
  7317  	s.AnalyzerName = &v
  7318  	return s
  7319  }
  7320  
  7321  // SetMaxResults sets the MaxResults field's value.
  7322  func (s *ListArchiveRulesInput) SetMaxResults(v int64) *ListArchiveRulesInput {
  7323  	s.MaxResults = &v
  7324  	return s
  7325  }
  7326  
  7327  // SetNextToken sets the NextToken field's value.
  7328  func (s *ListArchiveRulesInput) SetNextToken(v string) *ListArchiveRulesInput {
  7329  	s.NextToken = &v
  7330  	return s
  7331  }
  7332  
  7333  // The response to the request.
  7334  type ListArchiveRulesOutput struct {
  7335  	_ struct{} `type:"structure"`
  7336  
  7337  	// A list of archive rules created for the specified analyzer.
  7338  	//
  7339  	// ArchiveRules is a required field
  7340  	ArchiveRules []*ArchiveRuleSummary `locationName:"archiveRules" type:"list" required:"true"`
  7341  
  7342  	// A token used for pagination of results returned.
  7343  	NextToken *string `locationName:"nextToken" type:"string"`
  7344  }
  7345  
  7346  // String returns the string representation.
  7347  //
  7348  // API parameter values that are decorated as "sensitive" in the API will not
  7349  // be included in the string output. The member name will be present, but the
  7350  // value will be replaced with "sensitive".
  7351  func (s ListArchiveRulesOutput) String() string {
  7352  	return awsutil.Prettify(s)
  7353  }
  7354  
  7355  // GoString returns the string representation.
  7356  //
  7357  // API parameter values that are decorated as "sensitive" in the API will not
  7358  // be included in the string output. The member name will be present, but the
  7359  // value will be replaced with "sensitive".
  7360  func (s ListArchiveRulesOutput) GoString() string {
  7361  	return s.String()
  7362  }
  7363  
  7364  // SetArchiveRules sets the ArchiveRules field's value.
  7365  func (s *ListArchiveRulesOutput) SetArchiveRules(v []*ArchiveRuleSummary) *ListArchiveRulesOutput {
  7366  	s.ArchiveRules = v
  7367  	return s
  7368  }
  7369  
  7370  // SetNextToken sets the NextToken field's value.
  7371  func (s *ListArchiveRulesOutput) SetNextToken(v string) *ListArchiveRulesOutput {
  7372  	s.NextToken = &v
  7373  	return s
  7374  }
  7375  
  7376  // Retrieves a list of findings generated by the specified analyzer.
  7377  type ListFindingsInput struct {
  7378  	_ struct{} `type:"structure"`
  7379  
  7380  	// The ARN of the analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources)
  7381  	// to retrieve findings from.
  7382  	//
  7383  	// AnalyzerArn is a required field
  7384  	AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"`
  7385  
  7386  	// A filter to match for the findings to return.
  7387  	Filter map[string]*Criterion `locationName:"filter" type:"map"`
  7388  
  7389  	// The maximum number of results to return in the response.
  7390  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
  7391  
  7392  	// A token used for pagination of results returned.
  7393  	NextToken *string `locationName:"nextToken" type:"string"`
  7394  
  7395  	// The sort order for the findings returned.
  7396  	Sort *SortCriteria `locationName:"sort" type:"structure"`
  7397  }
  7398  
  7399  // String returns the string representation.
  7400  //
  7401  // API parameter values that are decorated as "sensitive" in the API will not
  7402  // be included in the string output. The member name will be present, but the
  7403  // value will be replaced with "sensitive".
  7404  func (s ListFindingsInput) String() string {
  7405  	return awsutil.Prettify(s)
  7406  }
  7407  
  7408  // GoString returns the string representation.
  7409  //
  7410  // API parameter values that are decorated as "sensitive" in the API will not
  7411  // be included in the string output. The member name will be present, but the
  7412  // value will be replaced with "sensitive".
  7413  func (s ListFindingsInput) GoString() string {
  7414  	return s.String()
  7415  }
  7416  
  7417  // Validate inspects the fields of the type to determine if they are valid.
  7418  func (s *ListFindingsInput) Validate() error {
  7419  	invalidParams := request.ErrInvalidParams{Context: "ListFindingsInput"}
  7420  	if s.AnalyzerArn == nil {
  7421  		invalidParams.Add(request.NewErrParamRequired("AnalyzerArn"))
  7422  	}
  7423  	if s.Filter != nil {
  7424  		for i, v := range s.Filter {
  7425  			if v == nil {
  7426  				continue
  7427  			}
  7428  			if err := v.Validate(); err != nil {
  7429  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filter", i), err.(request.ErrInvalidParams))
  7430  			}
  7431  		}
  7432  	}
  7433  
  7434  	if invalidParams.Len() > 0 {
  7435  		return invalidParams
  7436  	}
  7437  	return nil
  7438  }
  7439  
  7440  // SetAnalyzerArn sets the AnalyzerArn field's value.
  7441  func (s *ListFindingsInput) SetAnalyzerArn(v string) *ListFindingsInput {
  7442  	s.AnalyzerArn = &v
  7443  	return s
  7444  }
  7445  
  7446  // SetFilter sets the Filter field's value.
  7447  func (s *ListFindingsInput) SetFilter(v map[string]*Criterion) *ListFindingsInput {
  7448  	s.Filter = v
  7449  	return s
  7450  }
  7451  
  7452  // SetMaxResults sets the MaxResults field's value.
  7453  func (s *ListFindingsInput) SetMaxResults(v int64) *ListFindingsInput {
  7454  	s.MaxResults = &v
  7455  	return s
  7456  }
  7457  
  7458  // SetNextToken sets the NextToken field's value.
  7459  func (s *ListFindingsInput) SetNextToken(v string) *ListFindingsInput {
  7460  	s.NextToken = &v
  7461  	return s
  7462  }
  7463  
  7464  // SetSort sets the Sort field's value.
  7465  func (s *ListFindingsInput) SetSort(v *SortCriteria) *ListFindingsInput {
  7466  	s.Sort = v
  7467  	return s
  7468  }
  7469  
  7470  // The response to the request.
  7471  type ListFindingsOutput struct {
  7472  	_ struct{} `type:"structure"`
  7473  
  7474  	// A list of findings retrieved from the analyzer that match the filter criteria
  7475  	// specified, if any.
  7476  	//
  7477  	// Findings is a required field
  7478  	Findings []*FindingSummary `locationName:"findings" type:"list" required:"true"`
  7479  
  7480  	// A token used for pagination of results returned.
  7481  	NextToken *string `locationName:"nextToken" type:"string"`
  7482  }
  7483  
  7484  // String returns the string representation.
  7485  //
  7486  // API parameter values that are decorated as "sensitive" in the API will not
  7487  // be included in the string output. The member name will be present, but the
  7488  // value will be replaced with "sensitive".
  7489  func (s ListFindingsOutput) String() string {
  7490  	return awsutil.Prettify(s)
  7491  }
  7492  
  7493  // GoString returns the string representation.
  7494  //
  7495  // API parameter values that are decorated as "sensitive" in the API will not
  7496  // be included in the string output. The member name will be present, but the
  7497  // value will be replaced with "sensitive".
  7498  func (s ListFindingsOutput) GoString() string {
  7499  	return s.String()
  7500  }
  7501  
  7502  // SetFindings sets the Findings field's value.
  7503  func (s *ListFindingsOutput) SetFindings(v []*FindingSummary) *ListFindingsOutput {
  7504  	s.Findings = v
  7505  	return s
  7506  }
  7507  
  7508  // SetNextToken sets the NextToken field's value.
  7509  func (s *ListFindingsOutput) SetNextToken(v string) *ListFindingsOutput {
  7510  	s.NextToken = &v
  7511  	return s
  7512  }
  7513  
  7514  type ListPolicyGenerationsInput struct {
  7515  	_ struct{} `type:"structure" nopayload:"true"`
  7516  
  7517  	// The maximum number of results to return in the response.
  7518  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  7519  
  7520  	// A token used for pagination of results returned.
  7521  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  7522  
  7523  	// The ARN of the IAM entity (user or role) for which you are generating a policy.
  7524  	// Use this with ListGeneratedPolicies to filter the results to only include
  7525  	// results for a specific principal.
  7526  	PrincipalArn *string `location:"querystring" locationName:"principalArn" type:"string"`
  7527  }
  7528  
  7529  // String returns the string representation.
  7530  //
  7531  // API parameter values that are decorated as "sensitive" in the API will not
  7532  // be included in the string output. The member name will be present, but the
  7533  // value will be replaced with "sensitive".
  7534  func (s ListPolicyGenerationsInput) String() string {
  7535  	return awsutil.Prettify(s)
  7536  }
  7537  
  7538  // GoString returns the string representation.
  7539  //
  7540  // API parameter values that are decorated as "sensitive" in the API will not
  7541  // be included in the string output. The member name will be present, but the
  7542  // value will be replaced with "sensitive".
  7543  func (s ListPolicyGenerationsInput) GoString() string {
  7544  	return s.String()
  7545  }
  7546  
  7547  // Validate inspects the fields of the type to determine if they are valid.
  7548  func (s *ListPolicyGenerationsInput) Validate() error {
  7549  	invalidParams := request.ErrInvalidParams{Context: "ListPolicyGenerationsInput"}
  7550  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7551  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7552  	}
  7553  
  7554  	if invalidParams.Len() > 0 {
  7555  		return invalidParams
  7556  	}
  7557  	return nil
  7558  }
  7559  
  7560  // SetMaxResults sets the MaxResults field's value.
  7561  func (s *ListPolicyGenerationsInput) SetMaxResults(v int64) *ListPolicyGenerationsInput {
  7562  	s.MaxResults = &v
  7563  	return s
  7564  }
  7565  
  7566  // SetNextToken sets the NextToken field's value.
  7567  func (s *ListPolicyGenerationsInput) SetNextToken(v string) *ListPolicyGenerationsInput {
  7568  	s.NextToken = &v
  7569  	return s
  7570  }
  7571  
  7572  // SetPrincipalArn sets the PrincipalArn field's value.
  7573  func (s *ListPolicyGenerationsInput) SetPrincipalArn(v string) *ListPolicyGenerationsInput {
  7574  	s.PrincipalArn = &v
  7575  	return s
  7576  }
  7577  
  7578  type ListPolicyGenerationsOutput struct {
  7579  	_ struct{} `type:"structure"`
  7580  
  7581  	// A token used for pagination of results returned.
  7582  	NextToken *string `locationName:"nextToken" type:"string"`
  7583  
  7584  	// A PolicyGeneration object that contains details about the generated policy.
  7585  	//
  7586  	// PolicyGenerations is a required field
  7587  	PolicyGenerations []*PolicyGeneration `locationName:"policyGenerations" type:"list" required:"true"`
  7588  }
  7589  
  7590  // String returns the string representation.
  7591  //
  7592  // API parameter values that are decorated as "sensitive" in the API will not
  7593  // be included in the string output. The member name will be present, but the
  7594  // value will be replaced with "sensitive".
  7595  func (s ListPolicyGenerationsOutput) String() string {
  7596  	return awsutil.Prettify(s)
  7597  }
  7598  
  7599  // GoString returns the string representation.
  7600  //
  7601  // API parameter values that are decorated as "sensitive" in the API will not
  7602  // be included in the string output. The member name will be present, but the
  7603  // value will be replaced with "sensitive".
  7604  func (s ListPolicyGenerationsOutput) GoString() string {
  7605  	return s.String()
  7606  }
  7607  
  7608  // SetNextToken sets the NextToken field's value.
  7609  func (s *ListPolicyGenerationsOutput) SetNextToken(v string) *ListPolicyGenerationsOutput {
  7610  	s.NextToken = &v
  7611  	return s
  7612  }
  7613  
  7614  // SetPolicyGenerations sets the PolicyGenerations field's value.
  7615  func (s *ListPolicyGenerationsOutput) SetPolicyGenerations(v []*PolicyGeneration) *ListPolicyGenerationsOutput {
  7616  	s.PolicyGenerations = v
  7617  	return s
  7618  }
  7619  
  7620  // Retrieves a list of tags applied to the specified resource.
  7621  type ListTagsForResourceInput struct {
  7622  	_ struct{} `type:"structure" nopayload:"true"`
  7623  
  7624  	// The ARN of the resource to retrieve tags from.
  7625  	//
  7626  	// ResourceArn is a required field
  7627  	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
  7628  }
  7629  
  7630  // String returns the string representation.
  7631  //
  7632  // API parameter values that are decorated as "sensitive" in the API will not
  7633  // be included in the string output. The member name will be present, but the
  7634  // value will be replaced with "sensitive".
  7635  func (s ListTagsForResourceInput) String() string {
  7636  	return awsutil.Prettify(s)
  7637  }
  7638  
  7639  // GoString returns the string representation.
  7640  //
  7641  // API parameter values that are decorated as "sensitive" in the API will not
  7642  // be included in the string output. The member name will be present, but the
  7643  // value will be replaced with "sensitive".
  7644  func (s ListTagsForResourceInput) GoString() string {
  7645  	return s.String()
  7646  }
  7647  
  7648  // Validate inspects the fields of the type to determine if they are valid.
  7649  func (s *ListTagsForResourceInput) Validate() error {
  7650  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
  7651  	if s.ResourceArn == nil {
  7652  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  7653  	}
  7654  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
  7655  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
  7656  	}
  7657  
  7658  	if invalidParams.Len() > 0 {
  7659  		return invalidParams
  7660  	}
  7661  	return nil
  7662  }
  7663  
  7664  // SetResourceArn sets the ResourceArn field's value.
  7665  func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
  7666  	s.ResourceArn = &v
  7667  	return s
  7668  }
  7669  
  7670  // The response to the request.
  7671  type ListTagsForResourceOutput struct {
  7672  	_ struct{} `type:"structure"`
  7673  
  7674  	// The tags that are applied to the specified resource.
  7675  	Tags map[string]*string `locationName:"tags" type:"map"`
  7676  }
  7677  
  7678  // String returns the string representation.
  7679  //
  7680  // API parameter values that are decorated as "sensitive" in the API will not
  7681  // be included in the string output. The member name will be present, but the
  7682  // value will be replaced with "sensitive".
  7683  func (s ListTagsForResourceOutput) String() string {
  7684  	return awsutil.Prettify(s)
  7685  }
  7686  
  7687  // GoString returns the string representation.
  7688  //
  7689  // API parameter values that are decorated as "sensitive" in the API will not
  7690  // be included in the string output. The member name will be present, but the
  7691  // value will be replaced with "sensitive".
  7692  func (s ListTagsForResourceOutput) GoString() string {
  7693  	return s.String()
  7694  }
  7695  
  7696  // SetTags sets the Tags field's value.
  7697  func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
  7698  	s.Tags = v
  7699  	return s
  7700  }
  7701  
  7702  // A location in a policy that is represented as a path through the JSON representation
  7703  // and a corresponding span.
  7704  type Location struct {
  7705  	_ struct{} `type:"structure"`
  7706  
  7707  	// A path in a policy, represented as a sequence of path elements.
  7708  	//
  7709  	// Path is a required field
  7710  	Path []*PathElement `locationName:"path" type:"list" required:"true"`
  7711  
  7712  	// A span in a policy.
  7713  	//
  7714  	// Span is a required field
  7715  	Span *Span `locationName:"span" type:"structure" required:"true"`
  7716  }
  7717  
  7718  // String returns the string representation.
  7719  //
  7720  // API parameter values that are decorated as "sensitive" in the API will not
  7721  // be included in the string output. The member name will be present, but the
  7722  // value will be replaced with "sensitive".
  7723  func (s Location) String() string {
  7724  	return awsutil.Prettify(s)
  7725  }
  7726  
  7727  // GoString returns the string representation.
  7728  //
  7729  // API parameter values that are decorated as "sensitive" in the API will not
  7730  // be included in the string output. The member name will be present, but the
  7731  // value will be replaced with "sensitive".
  7732  func (s Location) GoString() string {
  7733  	return s.String()
  7734  }
  7735  
  7736  // SetPath sets the Path field's value.
  7737  func (s *Location) SetPath(v []*PathElement) *Location {
  7738  	s.Path = v
  7739  	return s
  7740  }
  7741  
  7742  // SetSpan sets the Span field's value.
  7743  func (s *Location) SetSpan(v *Span) *Location {
  7744  	s.Span = v
  7745  	return s
  7746  }
  7747  
  7748  // The proposed InternetConfiguration or VpcConfiguration to apply to the Amazon
  7749  // S3 access point. VpcConfiguration does not apply to multi-region access points.
  7750  // You can make the access point accessible from the internet, or you can specify
  7751  // that all requests made through that access point must originate from a specific
  7752  // virtual private cloud (VPC). You can specify only one type of network configuration.
  7753  // For more information, see Creating access points (https://docs.aws.amazon.com/AmazonS3/latest/dev/creating-access-points.html).
  7754  type NetworkOriginConfiguration struct {
  7755  	_ struct{} `type:"structure"`
  7756  
  7757  	// The configuration for the Amazon S3 access point or multi-region access point
  7758  	// with an Internet origin.
  7759  	InternetConfiguration *InternetConfiguration `locationName:"internetConfiguration" type:"structure"`
  7760  
  7761  	// The proposed virtual private cloud (VPC) configuration for the Amazon S3
  7762  	// access point. VPC configuration does not apply to multi-region access points.
  7763  	// For more information, see VpcConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_VpcConfiguration.html).
  7764  	VpcConfiguration *VpcConfiguration `locationName:"vpcConfiguration" type:"structure"`
  7765  }
  7766  
  7767  // String returns the string representation.
  7768  //
  7769  // API parameter values that are decorated as "sensitive" in the API will not
  7770  // be included in the string output. The member name will be present, but the
  7771  // value will be replaced with "sensitive".
  7772  func (s NetworkOriginConfiguration) String() string {
  7773  	return awsutil.Prettify(s)
  7774  }
  7775  
  7776  // GoString returns the string representation.
  7777  //
  7778  // API parameter values that are decorated as "sensitive" in the API will not
  7779  // be included in the string output. The member name will be present, but the
  7780  // value will be replaced with "sensitive".
  7781  func (s NetworkOriginConfiguration) GoString() string {
  7782  	return s.String()
  7783  }
  7784  
  7785  // Validate inspects the fields of the type to determine if they are valid.
  7786  func (s *NetworkOriginConfiguration) Validate() error {
  7787  	invalidParams := request.ErrInvalidParams{Context: "NetworkOriginConfiguration"}
  7788  	if s.VpcConfiguration != nil {
  7789  		if err := s.VpcConfiguration.Validate(); err != nil {
  7790  			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
  7791  		}
  7792  	}
  7793  
  7794  	if invalidParams.Len() > 0 {
  7795  		return invalidParams
  7796  	}
  7797  	return nil
  7798  }
  7799  
  7800  // SetInternetConfiguration sets the InternetConfiguration field's value.
  7801  func (s *NetworkOriginConfiguration) SetInternetConfiguration(v *InternetConfiguration) *NetworkOriginConfiguration {
  7802  	s.InternetConfiguration = v
  7803  	return s
  7804  }
  7805  
  7806  // SetVpcConfiguration sets the VpcConfiguration field's value.
  7807  func (s *NetworkOriginConfiguration) SetVpcConfiguration(v *VpcConfiguration) *NetworkOriginConfiguration {
  7808  	s.VpcConfiguration = v
  7809  	return s
  7810  }
  7811  
  7812  // A single element in a path through the JSON representation of a policy.
  7813  type PathElement struct {
  7814  	_ struct{} `type:"structure"`
  7815  
  7816  	// Refers to an index in a JSON array.
  7817  	Index *int64 `locationName:"index" type:"integer"`
  7818  
  7819  	// Refers to a key in a JSON object.
  7820  	Key *string `locationName:"key" type:"string"`
  7821  
  7822  	// Refers to a substring of a literal string in a JSON object.
  7823  	Substring *Substring `locationName:"substring" type:"structure"`
  7824  
  7825  	// Refers to the value associated with a given key in a JSON object.
  7826  	Value *string `locationName:"value" type:"string"`
  7827  }
  7828  
  7829  // String returns the string representation.
  7830  //
  7831  // API parameter values that are decorated as "sensitive" in the API will not
  7832  // be included in the string output. The member name will be present, but the
  7833  // value will be replaced with "sensitive".
  7834  func (s PathElement) String() string {
  7835  	return awsutil.Prettify(s)
  7836  }
  7837  
  7838  // GoString returns the string representation.
  7839  //
  7840  // API parameter values that are decorated as "sensitive" in the API will not
  7841  // be included in the string output. The member name will be present, but the
  7842  // value will be replaced with "sensitive".
  7843  func (s PathElement) GoString() string {
  7844  	return s.String()
  7845  }
  7846  
  7847  // SetIndex sets the Index field's value.
  7848  func (s *PathElement) SetIndex(v int64) *PathElement {
  7849  	s.Index = &v
  7850  	return s
  7851  }
  7852  
  7853  // SetKey sets the Key field's value.
  7854  func (s *PathElement) SetKey(v string) *PathElement {
  7855  	s.Key = &v
  7856  	return s
  7857  }
  7858  
  7859  // SetSubstring sets the Substring field's value.
  7860  func (s *PathElement) SetSubstring(v *Substring) *PathElement {
  7861  	s.Substring = v
  7862  	return s
  7863  }
  7864  
  7865  // SetValue sets the Value field's value.
  7866  func (s *PathElement) SetValue(v string) *PathElement {
  7867  	s.Value = &v
  7868  	return s
  7869  }
  7870  
  7871  // Contains details about the policy generation status and properties.
  7872  type PolicyGeneration struct {
  7873  	_ struct{} `type:"structure"`
  7874  
  7875  	// A timestamp of when the policy generation was completed.
  7876  	CompletedOn *time.Time `locationName:"completedOn" type:"timestamp" timestampFormat:"iso8601"`
  7877  
  7878  	// The JobId that is returned by the StartPolicyGeneration operation. The JobId
  7879  	// can be used with GetGeneratedPolicy to retrieve the generated policies or
  7880  	// used with CancelPolicyGeneration to cancel the policy generation request.
  7881  	//
  7882  	// JobId is a required field
  7883  	JobId *string `locationName:"jobId" type:"string" required:"true"`
  7884  
  7885  	// The ARN of the IAM entity (user or role) for which you are generating a policy.
  7886  	//
  7887  	// PrincipalArn is a required field
  7888  	PrincipalArn *string `locationName:"principalArn" type:"string" required:"true"`
  7889  
  7890  	// A timestamp of when the policy generation started.
  7891  	//
  7892  	// StartedOn is a required field
  7893  	StartedOn *time.Time `locationName:"startedOn" type:"timestamp" timestampFormat:"iso8601" required:"true"`
  7894  
  7895  	// The status of the policy generation request.
  7896  	//
  7897  	// Status is a required field
  7898  	Status *string `locationName:"status" type:"string" required:"true" enum:"JobStatus"`
  7899  }
  7900  
  7901  // String returns the string representation.
  7902  //
  7903  // API parameter values that are decorated as "sensitive" in the API will not
  7904  // be included in the string output. The member name will be present, but the
  7905  // value will be replaced with "sensitive".
  7906  func (s PolicyGeneration) String() string {
  7907  	return awsutil.Prettify(s)
  7908  }
  7909  
  7910  // GoString 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 PolicyGeneration) GoString() string {
  7916  	return s.String()
  7917  }
  7918  
  7919  // SetCompletedOn sets the CompletedOn field's value.
  7920  func (s *PolicyGeneration) SetCompletedOn(v time.Time) *PolicyGeneration {
  7921  	s.CompletedOn = &v
  7922  	return s
  7923  }
  7924  
  7925  // SetJobId sets the JobId field's value.
  7926  func (s *PolicyGeneration) SetJobId(v string) *PolicyGeneration {
  7927  	s.JobId = &v
  7928  	return s
  7929  }
  7930  
  7931  // SetPrincipalArn sets the PrincipalArn field's value.
  7932  func (s *PolicyGeneration) SetPrincipalArn(v string) *PolicyGeneration {
  7933  	s.PrincipalArn = &v
  7934  	return s
  7935  }
  7936  
  7937  // SetStartedOn sets the StartedOn field's value.
  7938  func (s *PolicyGeneration) SetStartedOn(v time.Time) *PolicyGeneration {
  7939  	s.StartedOn = &v
  7940  	return s
  7941  }
  7942  
  7943  // SetStatus sets the Status field's value.
  7944  func (s *PolicyGeneration) SetStatus(v string) *PolicyGeneration {
  7945  	s.Status = &v
  7946  	return s
  7947  }
  7948  
  7949  // Contains the ARN details about the IAM entity for which the policy is generated.
  7950  type PolicyGenerationDetails struct {
  7951  	_ struct{} `type:"structure"`
  7952  
  7953  	// The ARN of the IAM entity (user or role) for which you are generating a policy.
  7954  	//
  7955  	// PrincipalArn is a required field
  7956  	PrincipalArn *string `locationName:"principalArn" type:"string" required:"true"`
  7957  }
  7958  
  7959  // String returns the string representation.
  7960  //
  7961  // API parameter values that are decorated as "sensitive" in the API will not
  7962  // be included in the string output. The member name will be present, but the
  7963  // value will be replaced with "sensitive".
  7964  func (s PolicyGenerationDetails) String() string {
  7965  	return awsutil.Prettify(s)
  7966  }
  7967  
  7968  // GoString returns the string representation.
  7969  //
  7970  // API parameter values that are decorated as "sensitive" in the API will not
  7971  // be included in the string output. The member name will be present, but the
  7972  // value will be replaced with "sensitive".
  7973  func (s PolicyGenerationDetails) GoString() string {
  7974  	return s.String()
  7975  }
  7976  
  7977  // Validate inspects the fields of the type to determine if they are valid.
  7978  func (s *PolicyGenerationDetails) Validate() error {
  7979  	invalidParams := request.ErrInvalidParams{Context: "PolicyGenerationDetails"}
  7980  	if s.PrincipalArn == nil {
  7981  		invalidParams.Add(request.NewErrParamRequired("PrincipalArn"))
  7982  	}
  7983  
  7984  	if invalidParams.Len() > 0 {
  7985  		return invalidParams
  7986  	}
  7987  	return nil
  7988  }
  7989  
  7990  // SetPrincipalArn sets the PrincipalArn field's value.
  7991  func (s *PolicyGenerationDetails) SetPrincipalArn(v string) *PolicyGenerationDetails {
  7992  	s.PrincipalArn = &v
  7993  	return s
  7994  }
  7995  
  7996  // A position in a policy.
  7997  type Position struct {
  7998  	_ struct{} `type:"structure"`
  7999  
  8000  	// The column of the position, starting from 0.
  8001  	//
  8002  	// Column is a required field
  8003  	Column *int64 `locationName:"column" type:"integer" required:"true"`
  8004  
  8005  	// The line of the position, starting from 1.
  8006  	//
  8007  	// Line is a required field
  8008  	Line *int64 `locationName:"line" type:"integer" required:"true"`
  8009  
  8010  	// The offset within the policy that corresponds to the position, starting from
  8011  	// 0.
  8012  	//
  8013  	// Offset is a required field
  8014  	Offset *int64 `locationName:"offset" type:"integer" required:"true"`
  8015  }
  8016  
  8017  // String returns the string representation.
  8018  //
  8019  // API parameter values that are decorated as "sensitive" in the API will not
  8020  // be included in the string output. The member name will be present, but the
  8021  // value will be replaced with "sensitive".
  8022  func (s Position) String() string {
  8023  	return awsutil.Prettify(s)
  8024  }
  8025  
  8026  // GoString returns the string representation.
  8027  //
  8028  // API parameter values that are decorated as "sensitive" in the API will not
  8029  // be included in the string output. The member name will be present, but the
  8030  // value will be replaced with "sensitive".
  8031  func (s Position) GoString() string {
  8032  	return s.String()
  8033  }
  8034  
  8035  // SetColumn sets the Column field's value.
  8036  func (s *Position) SetColumn(v int64) *Position {
  8037  	s.Column = &v
  8038  	return s
  8039  }
  8040  
  8041  // SetLine sets the Line field's value.
  8042  func (s *Position) SetLine(v int64) *Position {
  8043  	s.Line = &v
  8044  	return s
  8045  }
  8046  
  8047  // SetOffset sets the Offset field's value.
  8048  func (s *Position) SetOffset(v int64) *Position {
  8049  	s.Offset = &v
  8050  	return s
  8051  }
  8052  
  8053  // The specified resource could not be found.
  8054  type ResourceNotFoundException struct {
  8055  	_            struct{}                  `type:"structure"`
  8056  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8057  
  8058  	Message_ *string `locationName:"message" type:"string"`
  8059  
  8060  	// The ID of the resource.
  8061  	//
  8062  	// ResourceId is a required field
  8063  	ResourceId *string `locationName:"resourceId" type:"string" required:"true"`
  8064  
  8065  	// The type of the resource.
  8066  	//
  8067  	// ResourceType is a required field
  8068  	ResourceType *string `locationName:"resourceType" type:"string" required:"true"`
  8069  }
  8070  
  8071  // String returns the string representation.
  8072  //
  8073  // API parameter values that are decorated as "sensitive" in the API will not
  8074  // be included in the string output. The member name will be present, but the
  8075  // value will be replaced with "sensitive".
  8076  func (s ResourceNotFoundException) String() string {
  8077  	return awsutil.Prettify(s)
  8078  }
  8079  
  8080  // GoString returns the string representation.
  8081  //
  8082  // API parameter values that are decorated as "sensitive" in the API will not
  8083  // be included in the string output. The member name will be present, but the
  8084  // value will be replaced with "sensitive".
  8085  func (s ResourceNotFoundException) GoString() string {
  8086  	return s.String()
  8087  }
  8088  
  8089  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  8090  	return &ResourceNotFoundException{
  8091  		RespMetadata: v,
  8092  	}
  8093  }
  8094  
  8095  // Code returns the exception type name.
  8096  func (s *ResourceNotFoundException) Code() string {
  8097  	return "ResourceNotFoundException"
  8098  }
  8099  
  8100  // Message returns the exception's message.
  8101  func (s *ResourceNotFoundException) Message() string {
  8102  	if s.Message_ != nil {
  8103  		return *s.Message_
  8104  	}
  8105  	return ""
  8106  }
  8107  
  8108  // OrigErr always returns nil, satisfies awserr.Error interface.
  8109  func (s *ResourceNotFoundException) OrigErr() error {
  8110  	return nil
  8111  }
  8112  
  8113  func (s *ResourceNotFoundException) Error() string {
  8114  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  8115  }
  8116  
  8117  // Status code returns the HTTP status code for the request's response error.
  8118  func (s *ResourceNotFoundException) StatusCode() int {
  8119  	return s.RespMetadata.StatusCode
  8120  }
  8121  
  8122  // RequestID returns the service's response RequestID for request.
  8123  func (s *ResourceNotFoundException) RequestID() string {
  8124  	return s.RespMetadata.RequestID
  8125  }
  8126  
  8127  // The configuration for an Amazon S3 access point or multi-region access point
  8128  // for the bucket. You can propose up to 10 access points or multi-region access
  8129  // points per bucket. If the proposed Amazon S3 access point configuration is
  8130  // for an existing bucket, the access preview uses the proposed access point
  8131  // configuration in place of the existing access points. To propose an access
  8132  // point without a policy, you can provide an empty string as the access point
  8133  // policy. For more information, see Creating access points (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonS3/latest/dev/creating-access-points.html).
  8134  // For more information about access point policy limits, see Access points
  8135  // restrictions and limitations (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points-restrictions-limitations.html).
  8136  type S3AccessPointConfiguration struct {
  8137  	_ struct{} `type:"structure"`
  8138  
  8139  	// The access point or multi-region access point policy.
  8140  	AccessPointPolicy *string `locationName:"accessPointPolicy" type:"string"`
  8141  
  8142  	// The proposed Internet and VpcConfiguration to apply to this Amazon S3 access
  8143  	// point. VpcConfiguration does not apply to multi-region access points. If
  8144  	// the access preview is for a new resource and neither is specified, the access
  8145  	// preview uses Internet for the network origin. If the access preview is for
  8146  	// an existing resource and neither is specified, the access preview uses the
  8147  	// exiting network origin.
  8148  	NetworkOrigin *NetworkOriginConfiguration `locationName:"networkOrigin" type:"structure"`
  8149  
  8150  	// The proposed S3PublicAccessBlock configuration to apply to this Amazon S3
  8151  	// access point or multi-region access point.
  8152  	PublicAccessBlock *S3PublicAccessBlockConfiguration `locationName:"publicAccessBlock" type:"structure"`
  8153  }
  8154  
  8155  // String returns the string representation.
  8156  //
  8157  // API parameter values that are decorated as "sensitive" in the API will not
  8158  // be included in the string output. The member name will be present, but the
  8159  // value will be replaced with "sensitive".
  8160  func (s S3AccessPointConfiguration) String() string {
  8161  	return awsutil.Prettify(s)
  8162  }
  8163  
  8164  // GoString returns the string representation.
  8165  //
  8166  // API parameter values that are decorated as "sensitive" in the API will not
  8167  // be included in the string output. The member name will be present, but the
  8168  // value will be replaced with "sensitive".
  8169  func (s S3AccessPointConfiguration) GoString() string {
  8170  	return s.String()
  8171  }
  8172  
  8173  // Validate inspects the fields of the type to determine if they are valid.
  8174  func (s *S3AccessPointConfiguration) Validate() error {
  8175  	invalidParams := request.ErrInvalidParams{Context: "S3AccessPointConfiguration"}
  8176  	if s.NetworkOrigin != nil {
  8177  		if err := s.NetworkOrigin.Validate(); err != nil {
  8178  			invalidParams.AddNested("NetworkOrigin", err.(request.ErrInvalidParams))
  8179  		}
  8180  	}
  8181  	if s.PublicAccessBlock != nil {
  8182  		if err := s.PublicAccessBlock.Validate(); err != nil {
  8183  			invalidParams.AddNested("PublicAccessBlock", err.(request.ErrInvalidParams))
  8184  		}
  8185  	}
  8186  
  8187  	if invalidParams.Len() > 0 {
  8188  		return invalidParams
  8189  	}
  8190  	return nil
  8191  }
  8192  
  8193  // SetAccessPointPolicy sets the AccessPointPolicy field's value.
  8194  func (s *S3AccessPointConfiguration) SetAccessPointPolicy(v string) *S3AccessPointConfiguration {
  8195  	s.AccessPointPolicy = &v
  8196  	return s
  8197  }
  8198  
  8199  // SetNetworkOrigin sets the NetworkOrigin field's value.
  8200  func (s *S3AccessPointConfiguration) SetNetworkOrigin(v *NetworkOriginConfiguration) *S3AccessPointConfiguration {
  8201  	s.NetworkOrigin = v
  8202  	return s
  8203  }
  8204  
  8205  // SetPublicAccessBlock sets the PublicAccessBlock field's value.
  8206  func (s *S3AccessPointConfiguration) SetPublicAccessBlock(v *S3PublicAccessBlockConfiguration) *S3AccessPointConfiguration {
  8207  	s.PublicAccessBlock = v
  8208  	return s
  8209  }
  8210  
  8211  // A proposed access control list grant configuration for an Amazon S3 bucket.
  8212  // For more information, see How to Specify an ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#setting-acls).
  8213  type S3BucketAclGrantConfiguration struct {
  8214  	_ struct{} `type:"structure"`
  8215  
  8216  	// The grantee to whom you’re assigning access rights.
  8217  	//
  8218  	// Grantee is a required field
  8219  	Grantee *AclGrantee `locationName:"grantee" type:"structure" required:"true"`
  8220  
  8221  	// The permissions being granted.
  8222  	//
  8223  	// Permission is a required field
  8224  	Permission *string `locationName:"permission" type:"string" required:"true" enum:"AclPermission"`
  8225  }
  8226  
  8227  // String returns the string representation.
  8228  //
  8229  // API parameter values that are decorated as "sensitive" in the API will not
  8230  // be included in the string output. The member name will be present, but the
  8231  // value will be replaced with "sensitive".
  8232  func (s S3BucketAclGrantConfiguration) String() string {
  8233  	return awsutil.Prettify(s)
  8234  }
  8235  
  8236  // GoString returns the string representation.
  8237  //
  8238  // API parameter values that are decorated as "sensitive" in the API will not
  8239  // be included in the string output. The member name will be present, but the
  8240  // value will be replaced with "sensitive".
  8241  func (s S3BucketAclGrantConfiguration) GoString() string {
  8242  	return s.String()
  8243  }
  8244  
  8245  // Validate inspects the fields of the type to determine if they are valid.
  8246  func (s *S3BucketAclGrantConfiguration) Validate() error {
  8247  	invalidParams := request.ErrInvalidParams{Context: "S3BucketAclGrantConfiguration"}
  8248  	if s.Grantee == nil {
  8249  		invalidParams.Add(request.NewErrParamRequired("Grantee"))
  8250  	}
  8251  	if s.Permission == nil {
  8252  		invalidParams.Add(request.NewErrParamRequired("Permission"))
  8253  	}
  8254  
  8255  	if invalidParams.Len() > 0 {
  8256  		return invalidParams
  8257  	}
  8258  	return nil
  8259  }
  8260  
  8261  // SetGrantee sets the Grantee field's value.
  8262  func (s *S3BucketAclGrantConfiguration) SetGrantee(v *AclGrantee) *S3BucketAclGrantConfiguration {
  8263  	s.Grantee = v
  8264  	return s
  8265  }
  8266  
  8267  // SetPermission sets the Permission field's value.
  8268  func (s *S3BucketAclGrantConfiguration) SetPermission(v string) *S3BucketAclGrantConfiguration {
  8269  	s.Permission = &v
  8270  	return s
  8271  }
  8272  
  8273  // Proposed access control configuration for an Amazon S3 bucket. You can propose
  8274  // a configuration for a new Amazon S3 bucket or an existing Amazon S3 bucket
  8275  // that you own by specifying the Amazon S3 bucket policy, bucket ACLs, bucket
  8276  // BPA settings, Amazon S3 access points, and multi-region access points attached
  8277  // to the bucket. If the configuration is for an existing Amazon S3 bucket and
  8278  // you do not specify the Amazon S3 bucket policy, the access preview uses the
  8279  // existing policy attached to the bucket. If the access preview is for a new
  8280  // resource and you do not specify the Amazon S3 bucket policy, the access preview
  8281  // assumes a bucket without a policy. To propose deletion of an existing bucket
  8282  // policy, you can specify an empty string. For more information about bucket
  8283  // policy limits, see Bucket Policy Examples (https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html).
  8284  type S3BucketConfiguration struct {
  8285  	_ struct{} `type:"structure"`
  8286  
  8287  	// The configuration of Amazon S3 access points or multi-region access points
  8288  	// for the bucket. You can propose up to 10 new access points per bucket.
  8289  	AccessPoints map[string]*S3AccessPointConfiguration `locationName:"accessPoints" type:"map"`
  8290  
  8291  	// The proposed list of ACL grants for the Amazon S3 bucket. You can propose
  8292  	// up to 100 ACL grants per bucket. If the proposed grant configuration is for
  8293  	// an existing bucket, the access preview uses the proposed list of grant configurations
  8294  	// in place of the existing grants. Otherwise, the access preview uses the existing
  8295  	// grants for the bucket.
  8296  	BucketAclGrants []*S3BucketAclGrantConfiguration `locationName:"bucketAclGrants" type:"list"`
  8297  
  8298  	// The proposed bucket policy for the Amazon S3 bucket.
  8299  	BucketPolicy *string `locationName:"bucketPolicy" type:"string"`
  8300  
  8301  	// The proposed block public access configuration for the Amazon S3 bucket.
  8302  	BucketPublicAccessBlock *S3PublicAccessBlockConfiguration `locationName:"bucketPublicAccessBlock" type:"structure"`
  8303  }
  8304  
  8305  // String returns the string representation.
  8306  //
  8307  // API parameter values that are decorated as "sensitive" in the API will not
  8308  // be included in the string output. The member name will be present, but the
  8309  // value will be replaced with "sensitive".
  8310  func (s S3BucketConfiguration) String() string {
  8311  	return awsutil.Prettify(s)
  8312  }
  8313  
  8314  // GoString returns the string representation.
  8315  //
  8316  // API parameter values that are decorated as "sensitive" in the API will not
  8317  // be included in the string output. The member name will be present, but the
  8318  // value will be replaced with "sensitive".
  8319  func (s S3BucketConfiguration) GoString() string {
  8320  	return s.String()
  8321  }
  8322  
  8323  // Validate inspects the fields of the type to determine if they are valid.
  8324  func (s *S3BucketConfiguration) Validate() error {
  8325  	invalidParams := request.ErrInvalidParams{Context: "S3BucketConfiguration"}
  8326  	if s.AccessPoints != nil {
  8327  		for i, v := range s.AccessPoints {
  8328  			if v == nil {
  8329  				continue
  8330  			}
  8331  			if err := v.Validate(); err != nil {
  8332  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessPoints", i), err.(request.ErrInvalidParams))
  8333  			}
  8334  		}
  8335  	}
  8336  	if s.BucketAclGrants != nil {
  8337  		for i, v := range s.BucketAclGrants {
  8338  			if v == nil {
  8339  				continue
  8340  			}
  8341  			if err := v.Validate(); err != nil {
  8342  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BucketAclGrants", i), err.(request.ErrInvalidParams))
  8343  			}
  8344  		}
  8345  	}
  8346  	if s.BucketPublicAccessBlock != nil {
  8347  		if err := s.BucketPublicAccessBlock.Validate(); err != nil {
  8348  			invalidParams.AddNested("BucketPublicAccessBlock", err.(request.ErrInvalidParams))
  8349  		}
  8350  	}
  8351  
  8352  	if invalidParams.Len() > 0 {
  8353  		return invalidParams
  8354  	}
  8355  	return nil
  8356  }
  8357  
  8358  // SetAccessPoints sets the AccessPoints field's value.
  8359  func (s *S3BucketConfiguration) SetAccessPoints(v map[string]*S3AccessPointConfiguration) *S3BucketConfiguration {
  8360  	s.AccessPoints = v
  8361  	return s
  8362  }
  8363  
  8364  // SetBucketAclGrants sets the BucketAclGrants field's value.
  8365  func (s *S3BucketConfiguration) SetBucketAclGrants(v []*S3BucketAclGrantConfiguration) *S3BucketConfiguration {
  8366  	s.BucketAclGrants = v
  8367  	return s
  8368  }
  8369  
  8370  // SetBucketPolicy sets the BucketPolicy field's value.
  8371  func (s *S3BucketConfiguration) SetBucketPolicy(v string) *S3BucketConfiguration {
  8372  	s.BucketPolicy = &v
  8373  	return s
  8374  }
  8375  
  8376  // SetBucketPublicAccessBlock sets the BucketPublicAccessBlock field's value.
  8377  func (s *S3BucketConfiguration) SetBucketPublicAccessBlock(v *S3PublicAccessBlockConfiguration) *S3BucketConfiguration {
  8378  	s.BucketPublicAccessBlock = v
  8379  	return s
  8380  }
  8381  
  8382  // The PublicAccessBlock configuration to apply to this Amazon S3 bucket. If
  8383  // the proposed configuration is for an existing Amazon S3 bucket and the configuration
  8384  // is not specified, the access preview uses the existing setting. If the proposed
  8385  // configuration is for a new bucket and the configuration is not specified,
  8386  // the access preview uses false. If the proposed configuration is for a new
  8387  // access point or multi-region access point and the access point BPA configuration
  8388  // is not specified, the access preview uses true. For more information, see
  8389  // PublicAccessBlockConfiguration (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html).
  8390  type S3PublicAccessBlockConfiguration struct {
  8391  	_ struct{} `type:"structure"`
  8392  
  8393  	// Specifies whether Amazon S3 should ignore public ACLs for this bucket and
  8394  	// objects in this bucket.
  8395  	//
  8396  	// IgnorePublicAcls is a required field
  8397  	IgnorePublicAcls *bool `locationName:"ignorePublicAcls" type:"boolean" required:"true"`
  8398  
  8399  	// Specifies whether Amazon S3 should restrict public bucket policies for this
  8400  	// bucket.
  8401  	//
  8402  	// RestrictPublicBuckets is a required field
  8403  	RestrictPublicBuckets *bool `locationName:"restrictPublicBuckets" type:"boolean" required:"true"`
  8404  }
  8405  
  8406  // String returns the string representation.
  8407  //
  8408  // API parameter values that are decorated as "sensitive" in the API will not
  8409  // be included in the string output. The member name will be present, but the
  8410  // value will be replaced with "sensitive".
  8411  func (s S3PublicAccessBlockConfiguration) String() string {
  8412  	return awsutil.Prettify(s)
  8413  }
  8414  
  8415  // GoString returns the string representation.
  8416  //
  8417  // API parameter values that are decorated as "sensitive" in the API will not
  8418  // be included in the string output. The member name will be present, but the
  8419  // value will be replaced with "sensitive".
  8420  func (s S3PublicAccessBlockConfiguration) GoString() string {
  8421  	return s.String()
  8422  }
  8423  
  8424  // Validate inspects the fields of the type to determine if they are valid.
  8425  func (s *S3PublicAccessBlockConfiguration) Validate() error {
  8426  	invalidParams := request.ErrInvalidParams{Context: "S3PublicAccessBlockConfiguration"}
  8427  	if s.IgnorePublicAcls == nil {
  8428  		invalidParams.Add(request.NewErrParamRequired("IgnorePublicAcls"))
  8429  	}
  8430  	if s.RestrictPublicBuckets == nil {
  8431  		invalidParams.Add(request.NewErrParamRequired("RestrictPublicBuckets"))
  8432  	}
  8433  
  8434  	if invalidParams.Len() > 0 {
  8435  		return invalidParams
  8436  	}
  8437  	return nil
  8438  }
  8439  
  8440  // SetIgnorePublicAcls sets the IgnorePublicAcls field's value.
  8441  func (s *S3PublicAccessBlockConfiguration) SetIgnorePublicAcls(v bool) *S3PublicAccessBlockConfiguration {
  8442  	s.IgnorePublicAcls = &v
  8443  	return s
  8444  }
  8445  
  8446  // SetRestrictPublicBuckets sets the RestrictPublicBuckets field's value.
  8447  func (s *S3PublicAccessBlockConfiguration) SetRestrictPublicBuckets(v bool) *S3PublicAccessBlockConfiguration {
  8448  	s.RestrictPublicBuckets = &v
  8449  	return s
  8450  }
  8451  
  8452  // The configuration for a Secrets Manager secret. For more information, see
  8453  // CreateSecret (https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html).
  8454  //
  8455  // You can propose a configuration for a new secret or an existing secret that
  8456  // you own by specifying the secret policy and optional KMS encryption key.
  8457  // If the configuration is for an existing secret and you do not specify the
  8458  // secret policy, the access preview uses the existing policy for the secret.
  8459  // If the access preview is for a new resource and you do not specify the policy,
  8460  // the access preview assumes a secret without a policy. To propose deletion
  8461  // of an existing policy, you can specify an empty string. If the proposed configuration
  8462  // is for a new secret and you do not specify the KMS key ID, the access preview
  8463  // uses the default CMK of the Amazon Web Services account. If you specify an
  8464  // empty string for the KMS key ID, the access preview uses the default CMK
  8465  // of the Amazon Web Services account. For more information about secret policy
  8466  // limits, see Quotas for Secrets Manager. (https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_limits.html).
  8467  type SecretsManagerSecretConfiguration struct {
  8468  	_ struct{} `type:"structure"`
  8469  
  8470  	// The proposed ARN, key ID, or alias of the KMS customer master key (CMK).
  8471  	KmsKeyId *string `locationName:"kmsKeyId" type:"string"`
  8472  
  8473  	// The proposed resource policy defining who can access or manage the secret.
  8474  	SecretPolicy *string `locationName:"secretPolicy" type:"string"`
  8475  }
  8476  
  8477  // String returns the string representation.
  8478  //
  8479  // API parameter values that are decorated as "sensitive" in the API will not
  8480  // be included in the string output. The member name will be present, but the
  8481  // value will be replaced with "sensitive".
  8482  func (s SecretsManagerSecretConfiguration) String() string {
  8483  	return awsutil.Prettify(s)
  8484  }
  8485  
  8486  // GoString returns the string representation.
  8487  //
  8488  // API parameter values that are decorated as "sensitive" in the API will not
  8489  // be included in the string output. The member name will be present, but the
  8490  // value will be replaced with "sensitive".
  8491  func (s SecretsManagerSecretConfiguration) GoString() string {
  8492  	return s.String()
  8493  }
  8494  
  8495  // SetKmsKeyId sets the KmsKeyId field's value.
  8496  func (s *SecretsManagerSecretConfiguration) SetKmsKeyId(v string) *SecretsManagerSecretConfiguration {
  8497  	s.KmsKeyId = &v
  8498  	return s
  8499  }
  8500  
  8501  // SetSecretPolicy sets the SecretPolicy field's value.
  8502  func (s *SecretsManagerSecretConfiguration) SetSecretPolicy(v string) *SecretsManagerSecretConfiguration {
  8503  	s.SecretPolicy = &v
  8504  	return s
  8505  }
  8506  
  8507  // Service quote met error.
  8508  type ServiceQuotaExceededException struct {
  8509  	_            struct{}                  `type:"structure"`
  8510  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8511  
  8512  	Message_ *string `locationName:"message" type:"string"`
  8513  
  8514  	// The resource ID.
  8515  	//
  8516  	// ResourceId is a required field
  8517  	ResourceId *string `locationName:"resourceId" type:"string" required:"true"`
  8518  
  8519  	// The resource type.
  8520  	//
  8521  	// ResourceType is a required field
  8522  	ResourceType *string `locationName:"resourceType" type:"string" required:"true"`
  8523  }
  8524  
  8525  // String returns the string representation.
  8526  //
  8527  // API parameter values that are decorated as "sensitive" in the API will not
  8528  // be included in the string output. The member name will be present, but the
  8529  // value will be replaced with "sensitive".
  8530  func (s ServiceQuotaExceededException) String() string {
  8531  	return awsutil.Prettify(s)
  8532  }
  8533  
  8534  // GoString returns the string representation.
  8535  //
  8536  // API parameter values that are decorated as "sensitive" in the API will not
  8537  // be included in the string output. The member name will be present, but the
  8538  // value will be replaced with "sensitive".
  8539  func (s ServiceQuotaExceededException) GoString() string {
  8540  	return s.String()
  8541  }
  8542  
  8543  func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
  8544  	return &ServiceQuotaExceededException{
  8545  		RespMetadata: v,
  8546  	}
  8547  }
  8548  
  8549  // Code returns the exception type name.
  8550  func (s *ServiceQuotaExceededException) Code() string {
  8551  	return "ServiceQuotaExceededException"
  8552  }
  8553  
  8554  // Message returns the exception's message.
  8555  func (s *ServiceQuotaExceededException) Message() string {
  8556  	if s.Message_ != nil {
  8557  		return *s.Message_
  8558  	}
  8559  	return ""
  8560  }
  8561  
  8562  // OrigErr always returns nil, satisfies awserr.Error interface.
  8563  func (s *ServiceQuotaExceededException) OrigErr() error {
  8564  	return nil
  8565  }
  8566  
  8567  func (s *ServiceQuotaExceededException) Error() string {
  8568  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  8569  }
  8570  
  8571  // Status code returns the HTTP status code for the request's response error.
  8572  func (s *ServiceQuotaExceededException) StatusCode() int {
  8573  	return s.RespMetadata.StatusCode
  8574  }
  8575  
  8576  // RequestID returns the service's response RequestID for request.
  8577  func (s *ServiceQuotaExceededException) RequestID() string {
  8578  	return s.RespMetadata.RequestID
  8579  }
  8580  
  8581  // The criteria used to sort.
  8582  type SortCriteria struct {
  8583  	_ struct{} `type:"structure"`
  8584  
  8585  	// The name of the attribute to sort on.
  8586  	AttributeName *string `locationName:"attributeName" type:"string"`
  8587  
  8588  	// The sort order, ascending or descending.
  8589  	OrderBy *string `locationName:"orderBy" type:"string" enum:"OrderBy"`
  8590  }
  8591  
  8592  // String returns the string representation.
  8593  //
  8594  // API parameter values that are decorated as "sensitive" in the API will not
  8595  // be included in the string output. The member name will be present, but the
  8596  // value will be replaced with "sensitive".
  8597  func (s SortCriteria) String() string {
  8598  	return awsutil.Prettify(s)
  8599  }
  8600  
  8601  // GoString returns the string representation.
  8602  //
  8603  // API parameter values that are decorated as "sensitive" in the API will not
  8604  // be included in the string output. The member name will be present, but the
  8605  // value will be replaced with "sensitive".
  8606  func (s SortCriteria) GoString() string {
  8607  	return s.String()
  8608  }
  8609  
  8610  // SetAttributeName sets the AttributeName field's value.
  8611  func (s *SortCriteria) SetAttributeName(v string) *SortCriteria {
  8612  	s.AttributeName = &v
  8613  	return s
  8614  }
  8615  
  8616  // SetOrderBy sets the OrderBy field's value.
  8617  func (s *SortCriteria) SetOrderBy(v string) *SortCriteria {
  8618  	s.OrderBy = &v
  8619  	return s
  8620  }
  8621  
  8622  // A span in a policy. The span consists of a start position (inclusive) and
  8623  // end position (exclusive).
  8624  type Span struct {
  8625  	_ struct{} `type:"structure"`
  8626  
  8627  	// The end position of the span (exclusive).
  8628  	//
  8629  	// End is a required field
  8630  	End *Position `locationName:"end" type:"structure" required:"true"`
  8631  
  8632  	// The start position of the span (inclusive).
  8633  	//
  8634  	// Start is a required field
  8635  	Start *Position `locationName:"start" type:"structure" required:"true"`
  8636  }
  8637  
  8638  // String returns the string representation.
  8639  //
  8640  // API parameter values that are decorated as "sensitive" in the API will not
  8641  // be included in the string output. The member name will be present, but the
  8642  // value will be replaced with "sensitive".
  8643  func (s Span) String() string {
  8644  	return awsutil.Prettify(s)
  8645  }
  8646  
  8647  // GoString returns the string representation.
  8648  //
  8649  // API parameter values that are decorated as "sensitive" in the API will not
  8650  // be included in the string output. The member name will be present, but the
  8651  // value will be replaced with "sensitive".
  8652  func (s Span) GoString() string {
  8653  	return s.String()
  8654  }
  8655  
  8656  // SetEnd sets the End field's value.
  8657  func (s *Span) SetEnd(v *Position) *Span {
  8658  	s.End = v
  8659  	return s
  8660  }
  8661  
  8662  // SetStart sets the Start field's value.
  8663  func (s *Span) SetStart(v *Position) *Span {
  8664  	s.Start = v
  8665  	return s
  8666  }
  8667  
  8668  // The proposed access control configuration for an Amazon SQS queue. You can
  8669  // propose a configuration for a new Amazon SQS queue or an existing Amazon
  8670  // SQS queue that you own by specifying the Amazon SQS policy. If the configuration
  8671  // is for an existing Amazon SQS queue and you do not specify the Amazon SQS
  8672  // policy, the access preview uses the existing Amazon SQS policy for the queue.
  8673  // If the access preview is for a new resource and you do not specify the policy,
  8674  // the access preview assumes an Amazon SQS queue without a policy. To propose
  8675  // deletion of an existing Amazon SQS queue policy, you can specify an empty
  8676  // string for the Amazon SQS policy. For more information about Amazon SQS policy
  8677  // limits, see Quotas related to policies (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-policies.html).
  8678  type SqsQueueConfiguration struct {
  8679  	_ struct{} `type:"structure"`
  8680  
  8681  	// The proposed resource policy for the Amazon SQS queue.
  8682  	QueuePolicy *string `locationName:"queuePolicy" type:"string"`
  8683  }
  8684  
  8685  // String returns the string representation.
  8686  //
  8687  // API parameter values that are decorated as "sensitive" in the API will not
  8688  // be included in the string output. The member name will be present, but the
  8689  // value will be replaced with "sensitive".
  8690  func (s SqsQueueConfiguration) String() string {
  8691  	return awsutil.Prettify(s)
  8692  }
  8693  
  8694  // GoString returns the string representation.
  8695  //
  8696  // API parameter values that are decorated as "sensitive" in the API will not
  8697  // be included in the string output. The member name will be present, but the
  8698  // value will be replaced with "sensitive".
  8699  func (s SqsQueueConfiguration) GoString() string {
  8700  	return s.String()
  8701  }
  8702  
  8703  // SetQueuePolicy sets the QueuePolicy field's value.
  8704  func (s *SqsQueueConfiguration) SetQueuePolicy(v string) *SqsQueueConfiguration {
  8705  	s.QueuePolicy = &v
  8706  	return s
  8707  }
  8708  
  8709  type StartPolicyGenerationInput struct {
  8710  	_ struct{} `type:"structure"`
  8711  
  8712  	// A unique, case-sensitive identifier that you provide to ensure the idempotency
  8713  	// of the request. Idempotency ensures that an API request completes only once.
  8714  	// With an idempotent request, if the original request completes successfully,
  8715  	// the subsequent retries with the same client token return the result from
  8716  	// the original successful request and they have no additional effect.
  8717  	//
  8718  	// If you do not specify a client token, one is automatically generated by the
  8719  	// Amazon Web Services SDK.
  8720  	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
  8721  
  8722  	// A CloudTrailDetails object that contains details about a Trail that you want
  8723  	// to analyze to generate policies.
  8724  	CloudTrailDetails *CloudTrailDetails `locationName:"cloudTrailDetails" type:"structure"`
  8725  
  8726  	// Contains the ARN of the IAM entity (user or role) for which you are generating
  8727  	// a policy.
  8728  	//
  8729  	// PolicyGenerationDetails is a required field
  8730  	PolicyGenerationDetails *PolicyGenerationDetails `locationName:"policyGenerationDetails" type:"structure" required:"true"`
  8731  }
  8732  
  8733  // String returns the string representation.
  8734  //
  8735  // API parameter values that are decorated as "sensitive" in the API will not
  8736  // be included in the string output. The member name will be present, but the
  8737  // value will be replaced with "sensitive".
  8738  func (s StartPolicyGenerationInput) String() string {
  8739  	return awsutil.Prettify(s)
  8740  }
  8741  
  8742  // GoString returns the string representation.
  8743  //
  8744  // API parameter values that are decorated as "sensitive" in the API will not
  8745  // be included in the string output. The member name will be present, but the
  8746  // value will be replaced with "sensitive".
  8747  func (s StartPolicyGenerationInput) GoString() string {
  8748  	return s.String()
  8749  }
  8750  
  8751  // Validate inspects the fields of the type to determine if they are valid.
  8752  func (s *StartPolicyGenerationInput) Validate() error {
  8753  	invalidParams := request.ErrInvalidParams{Context: "StartPolicyGenerationInput"}
  8754  	if s.PolicyGenerationDetails == nil {
  8755  		invalidParams.Add(request.NewErrParamRequired("PolicyGenerationDetails"))
  8756  	}
  8757  	if s.CloudTrailDetails != nil {
  8758  		if err := s.CloudTrailDetails.Validate(); err != nil {
  8759  			invalidParams.AddNested("CloudTrailDetails", err.(request.ErrInvalidParams))
  8760  		}
  8761  	}
  8762  	if s.PolicyGenerationDetails != nil {
  8763  		if err := s.PolicyGenerationDetails.Validate(); err != nil {
  8764  			invalidParams.AddNested("PolicyGenerationDetails", err.(request.ErrInvalidParams))
  8765  		}
  8766  	}
  8767  
  8768  	if invalidParams.Len() > 0 {
  8769  		return invalidParams
  8770  	}
  8771  	return nil
  8772  }
  8773  
  8774  // SetClientToken sets the ClientToken field's value.
  8775  func (s *StartPolicyGenerationInput) SetClientToken(v string) *StartPolicyGenerationInput {
  8776  	s.ClientToken = &v
  8777  	return s
  8778  }
  8779  
  8780  // SetCloudTrailDetails sets the CloudTrailDetails field's value.
  8781  func (s *StartPolicyGenerationInput) SetCloudTrailDetails(v *CloudTrailDetails) *StartPolicyGenerationInput {
  8782  	s.CloudTrailDetails = v
  8783  	return s
  8784  }
  8785  
  8786  // SetPolicyGenerationDetails sets the PolicyGenerationDetails field's value.
  8787  func (s *StartPolicyGenerationInput) SetPolicyGenerationDetails(v *PolicyGenerationDetails) *StartPolicyGenerationInput {
  8788  	s.PolicyGenerationDetails = v
  8789  	return s
  8790  }
  8791  
  8792  type StartPolicyGenerationOutput struct {
  8793  	_ struct{} `type:"structure"`
  8794  
  8795  	// The JobId that is returned by the StartPolicyGeneration operation. The JobId
  8796  	// can be used with GetGeneratedPolicy to retrieve the generated policies or
  8797  	// used with CancelPolicyGeneration to cancel the policy generation request.
  8798  	//
  8799  	// JobId is a required field
  8800  	JobId *string `locationName:"jobId" type:"string" required:"true"`
  8801  }
  8802  
  8803  // String returns the string representation.
  8804  //
  8805  // API parameter values that are decorated as "sensitive" in the API will not
  8806  // be included in the string output. The member name will be present, but the
  8807  // value will be replaced with "sensitive".
  8808  func (s StartPolicyGenerationOutput) String() string {
  8809  	return awsutil.Prettify(s)
  8810  }
  8811  
  8812  // GoString returns the string representation.
  8813  //
  8814  // API parameter values that are decorated as "sensitive" in the API will not
  8815  // be included in the string output. The member name will be present, but the
  8816  // value will be replaced with "sensitive".
  8817  func (s StartPolicyGenerationOutput) GoString() string {
  8818  	return s.String()
  8819  }
  8820  
  8821  // SetJobId sets the JobId field's value.
  8822  func (s *StartPolicyGenerationOutput) SetJobId(v string) *StartPolicyGenerationOutput {
  8823  	s.JobId = &v
  8824  	return s
  8825  }
  8826  
  8827  // Starts a scan of the policies applied to the specified resource.
  8828  type StartResourceScanInput struct {
  8829  	_ struct{} `type:"structure"`
  8830  
  8831  	// The ARN of the analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources)
  8832  	// to use to scan the policies applied to the specified resource.
  8833  	//
  8834  	// AnalyzerArn is a required field
  8835  	AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"`
  8836  
  8837  	// The ARN of the resource to scan.
  8838  	//
  8839  	// ResourceArn is a required field
  8840  	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
  8841  }
  8842  
  8843  // String returns the string representation.
  8844  //
  8845  // API parameter values that are decorated as "sensitive" in the API will not
  8846  // be included in the string output. The member name will be present, but the
  8847  // value will be replaced with "sensitive".
  8848  func (s StartResourceScanInput) String() string {
  8849  	return awsutil.Prettify(s)
  8850  }
  8851  
  8852  // GoString returns the string representation.
  8853  //
  8854  // API parameter values that are decorated as "sensitive" in the API will not
  8855  // be included in the string output. The member name will be present, but the
  8856  // value will be replaced with "sensitive".
  8857  func (s StartResourceScanInput) GoString() string {
  8858  	return s.String()
  8859  }
  8860  
  8861  // Validate inspects the fields of the type to determine if they are valid.
  8862  func (s *StartResourceScanInput) Validate() error {
  8863  	invalidParams := request.ErrInvalidParams{Context: "StartResourceScanInput"}
  8864  	if s.AnalyzerArn == nil {
  8865  		invalidParams.Add(request.NewErrParamRequired("AnalyzerArn"))
  8866  	}
  8867  	if s.ResourceArn == nil {
  8868  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  8869  	}
  8870  
  8871  	if invalidParams.Len() > 0 {
  8872  		return invalidParams
  8873  	}
  8874  	return nil
  8875  }
  8876  
  8877  // SetAnalyzerArn sets the AnalyzerArn field's value.
  8878  func (s *StartResourceScanInput) SetAnalyzerArn(v string) *StartResourceScanInput {
  8879  	s.AnalyzerArn = &v
  8880  	return s
  8881  }
  8882  
  8883  // SetResourceArn sets the ResourceArn field's value.
  8884  func (s *StartResourceScanInput) SetResourceArn(v string) *StartResourceScanInput {
  8885  	s.ResourceArn = &v
  8886  	return s
  8887  }
  8888  
  8889  type StartResourceScanOutput struct {
  8890  	_ struct{} `type:"structure" nopayload:"true"`
  8891  }
  8892  
  8893  // String returns the string representation.
  8894  //
  8895  // API parameter values that are decorated as "sensitive" in the API will not
  8896  // be included in the string output. The member name will be present, but the
  8897  // value will be replaced with "sensitive".
  8898  func (s StartResourceScanOutput) String() string {
  8899  	return awsutil.Prettify(s)
  8900  }
  8901  
  8902  // GoString returns the string representation.
  8903  //
  8904  // API parameter values that are decorated as "sensitive" in the API will not
  8905  // be included in the string output. The member name will be present, but the
  8906  // value will be replaced with "sensitive".
  8907  func (s StartResourceScanOutput) GoString() string {
  8908  	return s.String()
  8909  }
  8910  
  8911  // Provides more details about the current status of the analyzer. For example,
  8912  // if the creation for the analyzer fails, a Failed status is returned. For
  8913  // an analyzer with organization as the type, this failure can be due to an
  8914  // issue with creating the service-linked roles required in the member accounts
  8915  // of the Amazon Web Services organization.
  8916  type StatusReason struct {
  8917  	_ struct{} `type:"structure"`
  8918  
  8919  	// The reason code for the current status of the analyzer.
  8920  	//
  8921  	// Code is a required field
  8922  	Code *string `locationName:"code" type:"string" required:"true" enum:"ReasonCode"`
  8923  }
  8924  
  8925  // String returns the string representation.
  8926  //
  8927  // API parameter values that are decorated as "sensitive" in the API will not
  8928  // be included in the string output. The member name will be present, but the
  8929  // value will be replaced with "sensitive".
  8930  func (s StatusReason) String() string {
  8931  	return awsutil.Prettify(s)
  8932  }
  8933  
  8934  // GoString returns the string representation.
  8935  //
  8936  // API parameter values that are decorated as "sensitive" in the API will not
  8937  // be included in the string output. The member name will be present, but the
  8938  // value will be replaced with "sensitive".
  8939  func (s StatusReason) GoString() string {
  8940  	return s.String()
  8941  }
  8942  
  8943  // SetCode sets the Code field's value.
  8944  func (s *StatusReason) SetCode(v string) *StatusReason {
  8945  	s.Code = &v
  8946  	return s
  8947  }
  8948  
  8949  // A reference to a substring of a literal string in a JSON document.
  8950  type Substring struct {
  8951  	_ struct{} `type:"structure"`
  8952  
  8953  	// The length of the substring.
  8954  	//
  8955  	// Length is a required field
  8956  	Length *int64 `locationName:"length" type:"integer" required:"true"`
  8957  
  8958  	// The start index of the substring, starting from 0.
  8959  	//
  8960  	// Start is a required field
  8961  	Start *int64 `locationName:"start" type:"integer" required:"true"`
  8962  }
  8963  
  8964  // String returns the string representation.
  8965  //
  8966  // API parameter values that are decorated as "sensitive" in the API will not
  8967  // be included in the string output. The member name will be present, but the
  8968  // value will be replaced with "sensitive".
  8969  func (s Substring) String() string {
  8970  	return awsutil.Prettify(s)
  8971  }
  8972  
  8973  // GoString returns the string representation.
  8974  //
  8975  // API parameter values that are decorated as "sensitive" in the API will not
  8976  // be included in the string output. The member name will be present, but the
  8977  // value will be replaced with "sensitive".
  8978  func (s Substring) GoString() string {
  8979  	return s.String()
  8980  }
  8981  
  8982  // SetLength sets the Length field's value.
  8983  func (s *Substring) SetLength(v int64) *Substring {
  8984  	s.Length = &v
  8985  	return s
  8986  }
  8987  
  8988  // SetStart sets the Start field's value.
  8989  func (s *Substring) SetStart(v int64) *Substring {
  8990  	s.Start = &v
  8991  	return s
  8992  }
  8993  
  8994  // Adds a tag to the specified resource.
  8995  type TagResourceInput struct {
  8996  	_ struct{} `type:"structure"`
  8997  
  8998  	// The ARN of the resource to add the tag to.
  8999  	//
  9000  	// ResourceArn is a required field
  9001  	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
  9002  
  9003  	// The tags to add to the resource.
  9004  	//
  9005  	// Tags is a required field
  9006  	Tags map[string]*string `locationName:"tags" type:"map" required:"true"`
  9007  }
  9008  
  9009  // String returns the string representation.
  9010  //
  9011  // API parameter values that are decorated as "sensitive" in the API will not
  9012  // be included in the string output. The member name will be present, but the
  9013  // value will be replaced with "sensitive".
  9014  func (s TagResourceInput) String() string {
  9015  	return awsutil.Prettify(s)
  9016  }
  9017  
  9018  // GoString 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 TagResourceInput) GoString() string {
  9024  	return s.String()
  9025  }
  9026  
  9027  // Validate inspects the fields of the type to determine if they are valid.
  9028  func (s *TagResourceInput) Validate() error {
  9029  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
  9030  	if s.ResourceArn == nil {
  9031  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  9032  	}
  9033  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
  9034  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
  9035  	}
  9036  	if s.Tags == nil {
  9037  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  9038  	}
  9039  
  9040  	if invalidParams.Len() > 0 {
  9041  		return invalidParams
  9042  	}
  9043  	return nil
  9044  }
  9045  
  9046  // SetResourceArn sets the ResourceArn field's value.
  9047  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
  9048  	s.ResourceArn = &v
  9049  	return s
  9050  }
  9051  
  9052  // SetTags sets the Tags field's value.
  9053  func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
  9054  	s.Tags = v
  9055  	return s
  9056  }
  9057  
  9058  // The response to the request.
  9059  type TagResourceOutput struct {
  9060  	_ struct{} `type:"structure" nopayload:"true"`
  9061  }
  9062  
  9063  // String returns the string representation.
  9064  //
  9065  // API parameter values that are decorated as "sensitive" in the API will not
  9066  // be included in the string output. The member name will be present, but the
  9067  // value will be replaced with "sensitive".
  9068  func (s TagResourceOutput) String() string {
  9069  	return awsutil.Prettify(s)
  9070  }
  9071  
  9072  // GoString returns the string representation.
  9073  //
  9074  // API parameter values that are decorated as "sensitive" in the API will not
  9075  // be included in the string output. The member name will be present, but the
  9076  // value will be replaced with "sensitive".
  9077  func (s TagResourceOutput) GoString() string {
  9078  	return s.String()
  9079  }
  9080  
  9081  // Throttling limit exceeded error.
  9082  type ThrottlingException struct {
  9083  	_            struct{}                  `type:"structure"`
  9084  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  9085  
  9086  	Message_ *string `locationName:"message" type:"string"`
  9087  
  9088  	// The seconds to wait to retry.
  9089  	RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"`
  9090  }
  9091  
  9092  // String returns the string representation.
  9093  //
  9094  // API parameter values that are decorated as "sensitive" in the API will not
  9095  // be included in the string output. The member name will be present, but the
  9096  // value will be replaced with "sensitive".
  9097  func (s ThrottlingException) String() string {
  9098  	return awsutil.Prettify(s)
  9099  }
  9100  
  9101  // GoString returns the string representation.
  9102  //
  9103  // API parameter values that are decorated as "sensitive" in the API will not
  9104  // be included in the string output. The member name will be present, but the
  9105  // value will be replaced with "sensitive".
  9106  func (s ThrottlingException) GoString() string {
  9107  	return s.String()
  9108  }
  9109  
  9110  func newErrorThrottlingException(v protocol.ResponseMetadata) error {
  9111  	return &ThrottlingException{
  9112  		RespMetadata: v,
  9113  	}
  9114  }
  9115  
  9116  // Code returns the exception type name.
  9117  func (s *ThrottlingException) Code() string {
  9118  	return "ThrottlingException"
  9119  }
  9120  
  9121  // Message returns the exception's message.
  9122  func (s *ThrottlingException) Message() string {
  9123  	if s.Message_ != nil {
  9124  		return *s.Message_
  9125  	}
  9126  	return ""
  9127  }
  9128  
  9129  // OrigErr always returns nil, satisfies awserr.Error interface.
  9130  func (s *ThrottlingException) OrigErr() error {
  9131  	return nil
  9132  }
  9133  
  9134  func (s *ThrottlingException) Error() string {
  9135  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  9136  }
  9137  
  9138  // Status code returns the HTTP status code for the request's response error.
  9139  func (s *ThrottlingException) StatusCode() int {
  9140  	return s.RespMetadata.StatusCode
  9141  }
  9142  
  9143  // RequestID returns the service's response RequestID for request.
  9144  func (s *ThrottlingException) RequestID() string {
  9145  	return s.RespMetadata.RequestID
  9146  }
  9147  
  9148  // Contains details about the CloudTrail trail being analyzed to generate a
  9149  // policy.
  9150  type Trail struct {
  9151  	_ struct{} `type:"structure"`
  9152  
  9153  	// Possible values are true or false. If set to true, IAM Access Analyzer retrieves
  9154  	// CloudTrail data from all regions to analyze and generate a policy.
  9155  	AllRegions *bool `locationName:"allRegions" type:"boolean"`
  9156  
  9157  	// Specifies the ARN of the trail. The format of a trail ARN is arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail.
  9158  	//
  9159  	// CloudTrailArn is a required field
  9160  	CloudTrailArn *string `locationName:"cloudTrailArn" type:"string" required:"true"`
  9161  
  9162  	// A list of regions to get CloudTrail data from and analyze to generate a policy.
  9163  	Regions []*string `locationName:"regions" type:"list"`
  9164  }
  9165  
  9166  // String returns the string representation.
  9167  //
  9168  // API parameter values that are decorated as "sensitive" in the API will not
  9169  // be included in the string output. The member name will be present, but the
  9170  // value will be replaced with "sensitive".
  9171  func (s Trail) String() string {
  9172  	return awsutil.Prettify(s)
  9173  }
  9174  
  9175  // GoString returns the string representation.
  9176  //
  9177  // API parameter values that are decorated as "sensitive" in the API will not
  9178  // be included in the string output. The member name will be present, but the
  9179  // value will be replaced with "sensitive".
  9180  func (s Trail) GoString() string {
  9181  	return s.String()
  9182  }
  9183  
  9184  // Validate inspects the fields of the type to determine if they are valid.
  9185  func (s *Trail) Validate() error {
  9186  	invalidParams := request.ErrInvalidParams{Context: "Trail"}
  9187  	if s.CloudTrailArn == nil {
  9188  		invalidParams.Add(request.NewErrParamRequired("CloudTrailArn"))
  9189  	}
  9190  
  9191  	if invalidParams.Len() > 0 {
  9192  		return invalidParams
  9193  	}
  9194  	return nil
  9195  }
  9196  
  9197  // SetAllRegions sets the AllRegions field's value.
  9198  func (s *Trail) SetAllRegions(v bool) *Trail {
  9199  	s.AllRegions = &v
  9200  	return s
  9201  }
  9202  
  9203  // SetCloudTrailArn sets the CloudTrailArn field's value.
  9204  func (s *Trail) SetCloudTrailArn(v string) *Trail {
  9205  	s.CloudTrailArn = &v
  9206  	return s
  9207  }
  9208  
  9209  // SetRegions sets the Regions field's value.
  9210  func (s *Trail) SetRegions(v []*string) *Trail {
  9211  	s.Regions = v
  9212  	return s
  9213  }
  9214  
  9215  // Contains details about the CloudTrail trail being analyzed to generate a
  9216  // policy.
  9217  type TrailProperties struct {
  9218  	_ struct{} `type:"structure"`
  9219  
  9220  	// Possible values are true or false. If set to true, IAM Access Analyzer retrieves
  9221  	// CloudTrail data from all regions to analyze and generate a policy.
  9222  	AllRegions *bool `locationName:"allRegions" type:"boolean"`
  9223  
  9224  	// Specifies the ARN of the trail. The format of a trail ARN is arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail.
  9225  	//
  9226  	// CloudTrailArn is a required field
  9227  	CloudTrailArn *string `locationName:"cloudTrailArn" type:"string" required:"true"`
  9228  
  9229  	// A list of regions to get CloudTrail data from and analyze to generate a policy.
  9230  	Regions []*string `locationName:"regions" type:"list"`
  9231  }
  9232  
  9233  // String 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 TrailProperties) String() string {
  9239  	return awsutil.Prettify(s)
  9240  }
  9241  
  9242  // GoString returns the string representation.
  9243  //
  9244  // API parameter values that are decorated as "sensitive" in the API will not
  9245  // be included in the string output. The member name will be present, but the
  9246  // value will be replaced with "sensitive".
  9247  func (s TrailProperties) GoString() string {
  9248  	return s.String()
  9249  }
  9250  
  9251  // SetAllRegions sets the AllRegions field's value.
  9252  func (s *TrailProperties) SetAllRegions(v bool) *TrailProperties {
  9253  	s.AllRegions = &v
  9254  	return s
  9255  }
  9256  
  9257  // SetCloudTrailArn sets the CloudTrailArn field's value.
  9258  func (s *TrailProperties) SetCloudTrailArn(v string) *TrailProperties {
  9259  	s.CloudTrailArn = &v
  9260  	return s
  9261  }
  9262  
  9263  // SetRegions sets the Regions field's value.
  9264  func (s *TrailProperties) SetRegions(v []*string) *TrailProperties {
  9265  	s.Regions = v
  9266  	return s
  9267  }
  9268  
  9269  // Removes a tag from the specified resource.
  9270  type UntagResourceInput struct {
  9271  	_ struct{} `type:"structure" nopayload:"true"`
  9272  
  9273  	// The ARN of the resource to remove the tag from.
  9274  	//
  9275  	// ResourceArn is a required field
  9276  	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
  9277  
  9278  	// The key for the tag to add.
  9279  	//
  9280  	// TagKeys is a required field
  9281  	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
  9282  }
  9283  
  9284  // String returns the string representation.
  9285  //
  9286  // API parameter values that are decorated as "sensitive" in the API will not
  9287  // be included in the string output. The member name will be present, but the
  9288  // value will be replaced with "sensitive".
  9289  func (s UntagResourceInput) String() string {
  9290  	return awsutil.Prettify(s)
  9291  }
  9292  
  9293  // GoString returns the string representation.
  9294  //
  9295  // API parameter values that are decorated as "sensitive" in the API will not
  9296  // be included in the string output. The member name will be present, but the
  9297  // value will be replaced with "sensitive".
  9298  func (s UntagResourceInput) GoString() string {
  9299  	return s.String()
  9300  }
  9301  
  9302  // Validate inspects the fields of the type to determine if they are valid.
  9303  func (s *UntagResourceInput) Validate() error {
  9304  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
  9305  	if s.ResourceArn == nil {
  9306  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  9307  	}
  9308  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
  9309  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
  9310  	}
  9311  	if s.TagKeys == nil {
  9312  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
  9313  	}
  9314  
  9315  	if invalidParams.Len() > 0 {
  9316  		return invalidParams
  9317  	}
  9318  	return nil
  9319  }
  9320  
  9321  // SetResourceArn sets the ResourceArn field's value.
  9322  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
  9323  	s.ResourceArn = &v
  9324  	return s
  9325  }
  9326  
  9327  // SetTagKeys sets the TagKeys field's value.
  9328  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
  9329  	s.TagKeys = v
  9330  	return s
  9331  }
  9332  
  9333  // The response to the request.
  9334  type UntagResourceOutput struct {
  9335  	_ struct{} `type:"structure" nopayload:"true"`
  9336  }
  9337  
  9338  // String returns the string representation.
  9339  //
  9340  // API parameter values that are decorated as "sensitive" in the API will not
  9341  // be included in the string output. The member name will be present, but the
  9342  // value will be replaced with "sensitive".
  9343  func (s UntagResourceOutput) String() string {
  9344  	return awsutil.Prettify(s)
  9345  }
  9346  
  9347  // GoString returns the string representation.
  9348  //
  9349  // API parameter values that are decorated as "sensitive" in the API will not
  9350  // be included in the string output. The member name will be present, but the
  9351  // value will be replaced with "sensitive".
  9352  func (s UntagResourceOutput) GoString() string {
  9353  	return s.String()
  9354  }
  9355  
  9356  // Updates the specified archive rule.
  9357  type UpdateArchiveRuleInput struct {
  9358  	_ struct{} `type:"structure"`
  9359  
  9360  	// The name of the analyzer to update the archive rules for.
  9361  	//
  9362  	// AnalyzerName is a required field
  9363  	AnalyzerName *string `location:"uri" locationName:"analyzerName" min:"1" type:"string" required:"true"`
  9364  
  9365  	// A client token.
  9366  	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
  9367  
  9368  	// A filter to match for the rules to update. Only rules that match the filter
  9369  	// are updated.
  9370  	//
  9371  	// Filter is a required field
  9372  	Filter map[string]*Criterion `locationName:"filter" type:"map" required:"true"`
  9373  
  9374  	// The name of the rule to update.
  9375  	//
  9376  	// RuleName is a required field
  9377  	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
  9378  }
  9379  
  9380  // String returns the string representation.
  9381  //
  9382  // API parameter values that are decorated as "sensitive" in the API will not
  9383  // be included in the string output. The member name will be present, but the
  9384  // value will be replaced with "sensitive".
  9385  func (s UpdateArchiveRuleInput) String() string {
  9386  	return awsutil.Prettify(s)
  9387  }
  9388  
  9389  // GoString returns the string representation.
  9390  //
  9391  // API parameter values that are decorated as "sensitive" in the API will not
  9392  // be included in the string output. The member name will be present, but the
  9393  // value will be replaced with "sensitive".
  9394  func (s UpdateArchiveRuleInput) GoString() string {
  9395  	return s.String()
  9396  }
  9397  
  9398  // Validate inspects the fields of the type to determine if they are valid.
  9399  func (s *UpdateArchiveRuleInput) Validate() error {
  9400  	invalidParams := request.ErrInvalidParams{Context: "UpdateArchiveRuleInput"}
  9401  	if s.AnalyzerName == nil {
  9402  		invalidParams.Add(request.NewErrParamRequired("AnalyzerName"))
  9403  	}
  9404  	if s.AnalyzerName != nil && len(*s.AnalyzerName) < 1 {
  9405  		invalidParams.Add(request.NewErrParamMinLen("AnalyzerName", 1))
  9406  	}
  9407  	if s.Filter == nil {
  9408  		invalidParams.Add(request.NewErrParamRequired("Filter"))
  9409  	}
  9410  	if s.RuleName == nil {
  9411  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
  9412  	}
  9413  	if s.RuleName != nil && len(*s.RuleName) < 1 {
  9414  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
  9415  	}
  9416  	if s.Filter != nil {
  9417  		for i, v := range s.Filter {
  9418  			if v == nil {
  9419  				continue
  9420  			}
  9421  			if err := v.Validate(); err != nil {
  9422  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filter", i), err.(request.ErrInvalidParams))
  9423  			}
  9424  		}
  9425  	}
  9426  
  9427  	if invalidParams.Len() > 0 {
  9428  		return invalidParams
  9429  	}
  9430  	return nil
  9431  }
  9432  
  9433  // SetAnalyzerName sets the AnalyzerName field's value.
  9434  func (s *UpdateArchiveRuleInput) SetAnalyzerName(v string) *UpdateArchiveRuleInput {
  9435  	s.AnalyzerName = &v
  9436  	return s
  9437  }
  9438  
  9439  // SetClientToken sets the ClientToken field's value.
  9440  func (s *UpdateArchiveRuleInput) SetClientToken(v string) *UpdateArchiveRuleInput {
  9441  	s.ClientToken = &v
  9442  	return s
  9443  }
  9444  
  9445  // SetFilter sets the Filter field's value.
  9446  func (s *UpdateArchiveRuleInput) SetFilter(v map[string]*Criterion) *UpdateArchiveRuleInput {
  9447  	s.Filter = v
  9448  	return s
  9449  }
  9450  
  9451  // SetRuleName sets the RuleName field's value.
  9452  func (s *UpdateArchiveRuleInput) SetRuleName(v string) *UpdateArchiveRuleInput {
  9453  	s.RuleName = &v
  9454  	return s
  9455  }
  9456  
  9457  type UpdateArchiveRuleOutput struct {
  9458  	_ struct{} `type:"structure" nopayload:"true"`
  9459  }
  9460  
  9461  // String returns the string representation.
  9462  //
  9463  // API parameter values that are decorated as "sensitive" in the API will not
  9464  // be included in the string output. The member name will be present, but the
  9465  // value will be replaced with "sensitive".
  9466  func (s UpdateArchiveRuleOutput) String() string {
  9467  	return awsutil.Prettify(s)
  9468  }
  9469  
  9470  // GoString returns the string representation.
  9471  //
  9472  // API parameter values that are decorated as "sensitive" in the API will not
  9473  // be included in the string output. The member name will be present, but the
  9474  // value will be replaced with "sensitive".
  9475  func (s UpdateArchiveRuleOutput) GoString() string {
  9476  	return s.String()
  9477  }
  9478  
  9479  // Updates findings with the new values provided in the request.
  9480  type UpdateFindingsInput struct {
  9481  	_ struct{} `type:"structure"`
  9482  
  9483  	// The ARN of the analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources)
  9484  	// that generated the findings to update.
  9485  	//
  9486  	// AnalyzerArn is a required field
  9487  	AnalyzerArn *string `locationName:"analyzerArn" type:"string" required:"true"`
  9488  
  9489  	// A client token.
  9490  	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`
  9491  
  9492  	// The IDs of the findings to update.
  9493  	Ids []*string `locationName:"ids" type:"list"`
  9494  
  9495  	// The ARN of the resource identified in the finding.
  9496  	ResourceArn *string `locationName:"resourceArn" type:"string"`
  9497  
  9498  	// The state represents the action to take to update the finding Status. Use
  9499  	// ARCHIVE to change an Active finding to an Archived finding. Use ACTIVE to
  9500  	// change an Archived finding to an Active finding.
  9501  	//
  9502  	// Status is a required field
  9503  	Status *string `locationName:"status" type:"string" required:"true" enum:"FindingStatusUpdate"`
  9504  }
  9505  
  9506  // String returns the string representation.
  9507  //
  9508  // API parameter values that are decorated as "sensitive" in the API will not
  9509  // be included in the string output. The member name will be present, but the
  9510  // value will be replaced with "sensitive".
  9511  func (s UpdateFindingsInput) String() string {
  9512  	return awsutil.Prettify(s)
  9513  }
  9514  
  9515  // GoString returns the string representation.
  9516  //
  9517  // API parameter values that are decorated as "sensitive" in the API will not
  9518  // be included in the string output. The member name will be present, but the
  9519  // value will be replaced with "sensitive".
  9520  func (s UpdateFindingsInput) GoString() string {
  9521  	return s.String()
  9522  }
  9523  
  9524  // Validate inspects the fields of the type to determine if they are valid.
  9525  func (s *UpdateFindingsInput) Validate() error {
  9526  	invalidParams := request.ErrInvalidParams{Context: "UpdateFindingsInput"}
  9527  	if s.AnalyzerArn == nil {
  9528  		invalidParams.Add(request.NewErrParamRequired("AnalyzerArn"))
  9529  	}
  9530  	if s.Status == nil {
  9531  		invalidParams.Add(request.NewErrParamRequired("Status"))
  9532  	}
  9533  
  9534  	if invalidParams.Len() > 0 {
  9535  		return invalidParams
  9536  	}
  9537  	return nil
  9538  }
  9539  
  9540  // SetAnalyzerArn sets the AnalyzerArn field's value.
  9541  func (s *UpdateFindingsInput) SetAnalyzerArn(v string) *UpdateFindingsInput {
  9542  	s.AnalyzerArn = &v
  9543  	return s
  9544  }
  9545  
  9546  // SetClientToken sets the ClientToken field's value.
  9547  func (s *UpdateFindingsInput) SetClientToken(v string) *UpdateFindingsInput {
  9548  	s.ClientToken = &v
  9549  	return s
  9550  }
  9551  
  9552  // SetIds sets the Ids field's value.
  9553  func (s *UpdateFindingsInput) SetIds(v []*string) *UpdateFindingsInput {
  9554  	s.Ids = v
  9555  	return s
  9556  }
  9557  
  9558  // SetResourceArn sets the ResourceArn field's value.
  9559  func (s *UpdateFindingsInput) SetResourceArn(v string) *UpdateFindingsInput {
  9560  	s.ResourceArn = &v
  9561  	return s
  9562  }
  9563  
  9564  // SetStatus sets the Status field's value.
  9565  func (s *UpdateFindingsInput) SetStatus(v string) *UpdateFindingsInput {
  9566  	s.Status = &v
  9567  	return s
  9568  }
  9569  
  9570  type UpdateFindingsOutput struct {
  9571  	_ struct{} `type:"structure" nopayload:"true"`
  9572  }
  9573  
  9574  // String returns the string representation.
  9575  //
  9576  // API parameter values that are decorated as "sensitive" in the API will not
  9577  // be included in the string output. The member name will be present, but the
  9578  // value will be replaced with "sensitive".
  9579  func (s UpdateFindingsOutput) String() string {
  9580  	return awsutil.Prettify(s)
  9581  }
  9582  
  9583  // GoString returns the string representation.
  9584  //
  9585  // API parameter values that are decorated as "sensitive" in the API will not
  9586  // be included in the string output. The member name will be present, but the
  9587  // value will be replaced with "sensitive".
  9588  func (s UpdateFindingsOutput) GoString() string {
  9589  	return s.String()
  9590  }
  9591  
  9592  // A finding in a policy. Each finding is an actionable recommendation that
  9593  // can be used to improve the policy.
  9594  type ValidatePolicyFinding struct {
  9595  	_ struct{} `type:"structure"`
  9596  
  9597  	// A localized message that explains the finding and provides guidance on how
  9598  	// to address it.
  9599  	//
  9600  	// FindingDetails is a required field
  9601  	FindingDetails *string `locationName:"findingDetails" type:"string" required:"true"`
  9602  
  9603  	// The impact of the finding.
  9604  	//
  9605  	// Security warnings report when the policy allows access that we consider overly
  9606  	// permissive.
  9607  	//
  9608  	// Errors report when a part of the policy is not functional.
  9609  	//
  9610  	// Warnings report non-security issues when a policy does not conform to policy
  9611  	// writing best practices.
  9612  	//
  9613  	// Suggestions recommend stylistic improvements in the policy that do not impact
  9614  	// access.
  9615  	//
  9616  	// FindingType is a required field
  9617  	FindingType *string `locationName:"findingType" type:"string" required:"true" enum:"ValidatePolicyFindingType"`
  9618  
  9619  	// The issue code provides an identifier of the issue associated with this finding.
  9620  	//
  9621  	// IssueCode is a required field
  9622  	IssueCode *string `locationName:"issueCode" type:"string" required:"true"`
  9623  
  9624  	// A link to additional documentation about the type of finding.
  9625  	//
  9626  	// LearnMoreLink is a required field
  9627  	LearnMoreLink *string `locationName:"learnMoreLink" type:"string" required:"true"`
  9628  
  9629  	// The list of locations in the policy document that are related to the finding.
  9630  	// The issue code provides a summary of an issue identified by the finding.
  9631  	//
  9632  	// Locations is a required field
  9633  	Locations []*Location `locationName:"locations" type:"list" required:"true"`
  9634  }
  9635  
  9636  // String returns the string representation.
  9637  //
  9638  // API parameter values that are decorated as "sensitive" in the API will not
  9639  // be included in the string output. The member name will be present, but the
  9640  // value will be replaced with "sensitive".
  9641  func (s ValidatePolicyFinding) String() string {
  9642  	return awsutil.Prettify(s)
  9643  }
  9644  
  9645  // GoString returns the string representation.
  9646  //
  9647  // API parameter values that are decorated as "sensitive" in the API will not
  9648  // be included in the string output. The member name will be present, but the
  9649  // value will be replaced with "sensitive".
  9650  func (s ValidatePolicyFinding) GoString() string {
  9651  	return s.String()
  9652  }
  9653  
  9654  // SetFindingDetails sets the FindingDetails field's value.
  9655  func (s *ValidatePolicyFinding) SetFindingDetails(v string) *ValidatePolicyFinding {
  9656  	s.FindingDetails = &v
  9657  	return s
  9658  }
  9659  
  9660  // SetFindingType sets the FindingType field's value.
  9661  func (s *ValidatePolicyFinding) SetFindingType(v string) *ValidatePolicyFinding {
  9662  	s.FindingType = &v
  9663  	return s
  9664  }
  9665  
  9666  // SetIssueCode sets the IssueCode field's value.
  9667  func (s *ValidatePolicyFinding) SetIssueCode(v string) *ValidatePolicyFinding {
  9668  	s.IssueCode = &v
  9669  	return s
  9670  }
  9671  
  9672  // SetLearnMoreLink sets the LearnMoreLink field's value.
  9673  func (s *ValidatePolicyFinding) SetLearnMoreLink(v string) *ValidatePolicyFinding {
  9674  	s.LearnMoreLink = &v
  9675  	return s
  9676  }
  9677  
  9678  // SetLocations sets the Locations field's value.
  9679  func (s *ValidatePolicyFinding) SetLocations(v []*Location) *ValidatePolicyFinding {
  9680  	s.Locations = v
  9681  	return s
  9682  }
  9683  
  9684  type ValidatePolicyInput struct {
  9685  	_ struct{} `type:"structure"`
  9686  
  9687  	// The locale to use for localizing the findings.
  9688  	Locale *string `locationName:"locale" type:"string" enum:"Locale"`
  9689  
  9690  	// The maximum number of results to return in the response.
  9691  	MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"`
  9692  
  9693  	// A token used for pagination of results returned.
  9694  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  9695  
  9696  	// The JSON policy document to use as the content for the policy.
  9697  	//
  9698  	// PolicyDocument is a required field
  9699  	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
  9700  
  9701  	// The type of policy to validate. Identity policies grant permissions to IAM
  9702  	// principals. Identity policies include managed and inline policies for IAM
  9703  	// roles, users, and groups. They also include service-control policies (SCPs)
  9704  	// that are attached to an Amazon Web Services organization, organizational
  9705  	// unit (OU), or an account.
  9706  	//
  9707  	// Resource policies grant permissions on Amazon Web Services resources. Resource
  9708  	// policies include trust policies for IAM roles and bucket policies for Amazon
  9709  	// S3 buckets. You can provide a generic input such as identity policy or resource
  9710  	// policy or a specific input such as managed policy or Amazon S3 bucket policy.
  9711  	//
  9712  	// PolicyType is a required field
  9713  	PolicyType *string `locationName:"policyType" type:"string" required:"true" enum:"PolicyType"`
  9714  }
  9715  
  9716  // String returns the string representation.
  9717  //
  9718  // API parameter values that are decorated as "sensitive" in the API will not
  9719  // be included in the string output. The member name will be present, but the
  9720  // value will be replaced with "sensitive".
  9721  func (s ValidatePolicyInput) String() string {
  9722  	return awsutil.Prettify(s)
  9723  }
  9724  
  9725  // GoString returns the string representation.
  9726  //
  9727  // API parameter values that are decorated as "sensitive" in the API will not
  9728  // be included in the string output. The member name will be present, but the
  9729  // value will be replaced with "sensitive".
  9730  func (s ValidatePolicyInput) GoString() string {
  9731  	return s.String()
  9732  }
  9733  
  9734  // Validate inspects the fields of the type to determine if they are valid.
  9735  func (s *ValidatePolicyInput) Validate() error {
  9736  	invalidParams := request.ErrInvalidParams{Context: "ValidatePolicyInput"}
  9737  	if s.PolicyDocument == nil {
  9738  		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
  9739  	}
  9740  	if s.PolicyType == nil {
  9741  		invalidParams.Add(request.NewErrParamRequired("PolicyType"))
  9742  	}
  9743  
  9744  	if invalidParams.Len() > 0 {
  9745  		return invalidParams
  9746  	}
  9747  	return nil
  9748  }
  9749  
  9750  // SetLocale sets the Locale field's value.
  9751  func (s *ValidatePolicyInput) SetLocale(v string) *ValidatePolicyInput {
  9752  	s.Locale = &v
  9753  	return s
  9754  }
  9755  
  9756  // SetMaxResults sets the MaxResults field's value.
  9757  func (s *ValidatePolicyInput) SetMaxResults(v int64) *ValidatePolicyInput {
  9758  	s.MaxResults = &v
  9759  	return s
  9760  }
  9761  
  9762  // SetNextToken sets the NextToken field's value.
  9763  func (s *ValidatePolicyInput) SetNextToken(v string) *ValidatePolicyInput {
  9764  	s.NextToken = &v
  9765  	return s
  9766  }
  9767  
  9768  // SetPolicyDocument sets the PolicyDocument field's value.
  9769  func (s *ValidatePolicyInput) SetPolicyDocument(v string) *ValidatePolicyInput {
  9770  	s.PolicyDocument = &v
  9771  	return s
  9772  }
  9773  
  9774  // SetPolicyType sets the PolicyType field's value.
  9775  func (s *ValidatePolicyInput) SetPolicyType(v string) *ValidatePolicyInput {
  9776  	s.PolicyType = &v
  9777  	return s
  9778  }
  9779  
  9780  type ValidatePolicyOutput struct {
  9781  	_ struct{} `type:"structure"`
  9782  
  9783  	// The list of findings in a policy returned by IAM Access Analyzer based on
  9784  	// its suite of policy checks.
  9785  	//
  9786  	// Findings is a required field
  9787  	Findings []*ValidatePolicyFinding `locationName:"findings" type:"list" required:"true"`
  9788  
  9789  	// A token used for pagination of results returned.
  9790  	NextToken *string `locationName:"nextToken" type:"string"`
  9791  }
  9792  
  9793  // String returns the string representation.
  9794  //
  9795  // API parameter values that are decorated as "sensitive" in the API will not
  9796  // be included in the string output. The member name will be present, but the
  9797  // value will be replaced with "sensitive".
  9798  func (s ValidatePolicyOutput) String() string {
  9799  	return awsutil.Prettify(s)
  9800  }
  9801  
  9802  // GoString returns the string representation.
  9803  //
  9804  // API parameter values that are decorated as "sensitive" in the API will not
  9805  // be included in the string output. The member name will be present, but the
  9806  // value will be replaced with "sensitive".
  9807  func (s ValidatePolicyOutput) GoString() string {
  9808  	return s.String()
  9809  }
  9810  
  9811  // SetFindings sets the Findings field's value.
  9812  func (s *ValidatePolicyOutput) SetFindings(v []*ValidatePolicyFinding) *ValidatePolicyOutput {
  9813  	s.Findings = v
  9814  	return s
  9815  }
  9816  
  9817  // SetNextToken sets the NextToken field's value.
  9818  func (s *ValidatePolicyOutput) SetNextToken(v string) *ValidatePolicyOutput {
  9819  	s.NextToken = &v
  9820  	return s
  9821  }
  9822  
  9823  // Validation exception error.
  9824  type ValidationException struct {
  9825  	_            struct{}                  `type:"structure"`
  9826  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  9827  
  9828  	// A list of fields that didn't validate.
  9829  	FieldList []*ValidationExceptionField `locationName:"fieldList" type:"list"`
  9830  
  9831  	Message_ *string `locationName:"message" type:"string"`
  9832  
  9833  	// The reason for the exception.
  9834  	//
  9835  	// Reason is a required field
  9836  	Reason *string `locationName:"reason" type:"string" required:"true" enum:"ValidationExceptionReason"`
  9837  }
  9838  
  9839  // String returns the string representation.
  9840  //
  9841  // API parameter values that are decorated as "sensitive" in the API will not
  9842  // be included in the string output. The member name will be present, but the
  9843  // value will be replaced with "sensitive".
  9844  func (s ValidationException) String() string {
  9845  	return awsutil.Prettify(s)
  9846  }
  9847  
  9848  // GoString returns the string representation.
  9849  //
  9850  // API parameter values that are decorated as "sensitive" in the API will not
  9851  // be included in the string output. The member name will be present, but the
  9852  // value will be replaced with "sensitive".
  9853  func (s ValidationException) GoString() string {
  9854  	return s.String()
  9855  }
  9856  
  9857  func newErrorValidationException(v protocol.ResponseMetadata) error {
  9858  	return &ValidationException{
  9859  		RespMetadata: v,
  9860  	}
  9861  }
  9862  
  9863  // Code returns the exception type name.
  9864  func (s *ValidationException) Code() string {
  9865  	return "ValidationException"
  9866  }
  9867  
  9868  // Message returns the exception's message.
  9869  func (s *ValidationException) Message() string {
  9870  	if s.Message_ != nil {
  9871  		return *s.Message_
  9872  	}
  9873  	return ""
  9874  }
  9875  
  9876  // OrigErr always returns nil, satisfies awserr.Error interface.
  9877  func (s *ValidationException) OrigErr() error {
  9878  	return nil
  9879  }
  9880  
  9881  func (s *ValidationException) Error() string {
  9882  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  9883  }
  9884  
  9885  // Status code returns the HTTP status code for the request's response error.
  9886  func (s *ValidationException) StatusCode() int {
  9887  	return s.RespMetadata.StatusCode
  9888  }
  9889  
  9890  // RequestID returns the service's response RequestID for request.
  9891  func (s *ValidationException) RequestID() string {
  9892  	return s.RespMetadata.RequestID
  9893  }
  9894  
  9895  // Contains information about a validation exception.
  9896  type ValidationExceptionField struct {
  9897  	_ struct{} `type:"structure"`
  9898  
  9899  	// A message about the validation exception.
  9900  	//
  9901  	// Message is a required field
  9902  	Message *string `locationName:"message" type:"string" required:"true"`
  9903  
  9904  	// The name of the validation exception.
  9905  	//
  9906  	// Name is a required field
  9907  	Name *string `locationName:"name" type:"string" required:"true"`
  9908  }
  9909  
  9910  // String returns the string representation.
  9911  //
  9912  // API parameter values that are decorated as "sensitive" in the API will not
  9913  // be included in the string output. The member name will be present, but the
  9914  // value will be replaced with "sensitive".
  9915  func (s ValidationExceptionField) String() string {
  9916  	return awsutil.Prettify(s)
  9917  }
  9918  
  9919  // GoString returns the string representation.
  9920  //
  9921  // API parameter values that are decorated as "sensitive" in the API will not
  9922  // be included in the string output. The member name will be present, but the
  9923  // value will be replaced with "sensitive".
  9924  func (s ValidationExceptionField) GoString() string {
  9925  	return s.String()
  9926  }
  9927  
  9928  // SetMessage sets the Message field's value.
  9929  func (s *ValidationExceptionField) SetMessage(v string) *ValidationExceptionField {
  9930  	s.Message = &v
  9931  	return s
  9932  }
  9933  
  9934  // SetName sets the Name field's value.
  9935  func (s *ValidationExceptionField) SetName(v string) *ValidationExceptionField {
  9936  	s.Name = &v
  9937  	return s
  9938  }
  9939  
  9940  // The proposed virtual private cloud (VPC) configuration for the Amazon S3
  9941  // access point. VPC configuration does not apply to multi-region access points.
  9942  // For more information, see VpcConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_VpcConfiguration.html).
  9943  type VpcConfiguration struct {
  9944  	_ struct{} `type:"structure"`
  9945  
  9946  	// If this field is specified, this access point will only allow connections
  9947  	// from the specified VPC ID.
  9948  	//
  9949  	// VpcId is a required field
  9950  	VpcId *string `locationName:"vpcId" type:"string" required:"true"`
  9951  }
  9952  
  9953  // String returns the string representation.
  9954  //
  9955  // API parameter values that are decorated as "sensitive" in the API will not
  9956  // be included in the string output. The member name will be present, but the
  9957  // value will be replaced with "sensitive".
  9958  func (s VpcConfiguration) String() string {
  9959  	return awsutil.Prettify(s)
  9960  }
  9961  
  9962  // GoString returns the string representation.
  9963  //
  9964  // API parameter values that are decorated as "sensitive" in the API will not
  9965  // be included in the string output. The member name will be present, but the
  9966  // value will be replaced with "sensitive".
  9967  func (s VpcConfiguration) GoString() string {
  9968  	return s.String()
  9969  }
  9970  
  9971  // Validate inspects the fields of the type to determine if they are valid.
  9972  func (s *VpcConfiguration) Validate() error {
  9973  	invalidParams := request.ErrInvalidParams{Context: "VpcConfiguration"}
  9974  	if s.VpcId == nil {
  9975  		invalidParams.Add(request.NewErrParamRequired("VpcId"))
  9976  	}
  9977  
  9978  	if invalidParams.Len() > 0 {
  9979  		return invalidParams
  9980  	}
  9981  	return nil
  9982  }
  9983  
  9984  // SetVpcId sets the VpcId field's value.
  9985  func (s *VpcConfiguration) SetVpcId(v string) *VpcConfiguration {
  9986  	s.VpcId = &v
  9987  	return s
  9988  }
  9989  
  9990  const (
  9991  	// AccessPreviewStatusCompleted is a AccessPreviewStatus enum value
  9992  	AccessPreviewStatusCompleted = "COMPLETED"
  9993  
  9994  	// AccessPreviewStatusCreating is a AccessPreviewStatus enum value
  9995  	AccessPreviewStatusCreating = "CREATING"
  9996  
  9997  	// AccessPreviewStatusFailed is a AccessPreviewStatus enum value
  9998  	AccessPreviewStatusFailed = "FAILED"
  9999  )
 10000  
 10001  // AccessPreviewStatus_Values returns all elements of the AccessPreviewStatus enum
 10002  func AccessPreviewStatus_Values() []string {
 10003  	return []string{
 10004  		AccessPreviewStatusCompleted,
 10005  		AccessPreviewStatusCreating,
 10006  		AccessPreviewStatusFailed,
 10007  	}
 10008  }
 10009  
 10010  const (
 10011  	// AccessPreviewStatusReasonCodeInternalError is a AccessPreviewStatusReasonCode enum value
 10012  	AccessPreviewStatusReasonCodeInternalError = "INTERNAL_ERROR"
 10013  
 10014  	// AccessPreviewStatusReasonCodeInvalidConfiguration is a AccessPreviewStatusReasonCode enum value
 10015  	AccessPreviewStatusReasonCodeInvalidConfiguration = "INVALID_CONFIGURATION"
 10016  )
 10017  
 10018  // AccessPreviewStatusReasonCode_Values returns all elements of the AccessPreviewStatusReasonCode enum
 10019  func AccessPreviewStatusReasonCode_Values() []string {
 10020  	return []string{
 10021  		AccessPreviewStatusReasonCodeInternalError,
 10022  		AccessPreviewStatusReasonCodeInvalidConfiguration,
 10023  	}
 10024  }
 10025  
 10026  const (
 10027  	// AclPermissionRead is a AclPermission enum value
 10028  	AclPermissionRead = "READ"
 10029  
 10030  	// AclPermissionWrite is a AclPermission enum value
 10031  	AclPermissionWrite = "WRITE"
 10032  
 10033  	// AclPermissionReadAcp is a AclPermission enum value
 10034  	AclPermissionReadAcp = "READ_ACP"
 10035  
 10036  	// AclPermissionWriteAcp is a AclPermission enum value
 10037  	AclPermissionWriteAcp = "WRITE_ACP"
 10038  
 10039  	// AclPermissionFullControl is a AclPermission enum value
 10040  	AclPermissionFullControl = "FULL_CONTROL"
 10041  )
 10042  
 10043  // AclPermission_Values returns all elements of the AclPermission enum
 10044  func AclPermission_Values() []string {
 10045  	return []string{
 10046  		AclPermissionRead,
 10047  		AclPermissionWrite,
 10048  		AclPermissionReadAcp,
 10049  		AclPermissionWriteAcp,
 10050  		AclPermissionFullControl,
 10051  	}
 10052  }
 10053  
 10054  const (
 10055  	// AnalyzerStatusActive is a AnalyzerStatus enum value
 10056  	AnalyzerStatusActive = "ACTIVE"
 10057  
 10058  	// AnalyzerStatusCreating is a AnalyzerStatus enum value
 10059  	AnalyzerStatusCreating = "CREATING"
 10060  
 10061  	// AnalyzerStatusDisabled is a AnalyzerStatus enum value
 10062  	AnalyzerStatusDisabled = "DISABLED"
 10063  
 10064  	// AnalyzerStatusFailed is a AnalyzerStatus enum value
 10065  	AnalyzerStatusFailed = "FAILED"
 10066  )
 10067  
 10068  // AnalyzerStatus_Values returns all elements of the AnalyzerStatus enum
 10069  func AnalyzerStatus_Values() []string {
 10070  	return []string{
 10071  		AnalyzerStatusActive,
 10072  		AnalyzerStatusCreating,
 10073  		AnalyzerStatusDisabled,
 10074  		AnalyzerStatusFailed,
 10075  	}
 10076  }
 10077  
 10078  const (
 10079  	// FindingChangeTypeChanged is a FindingChangeType enum value
 10080  	FindingChangeTypeChanged = "CHANGED"
 10081  
 10082  	// FindingChangeTypeNew is a FindingChangeType enum value
 10083  	FindingChangeTypeNew = "NEW"
 10084  
 10085  	// FindingChangeTypeUnchanged is a FindingChangeType enum value
 10086  	FindingChangeTypeUnchanged = "UNCHANGED"
 10087  )
 10088  
 10089  // FindingChangeType_Values returns all elements of the FindingChangeType enum
 10090  func FindingChangeType_Values() []string {
 10091  	return []string{
 10092  		FindingChangeTypeChanged,
 10093  		FindingChangeTypeNew,
 10094  		FindingChangeTypeUnchanged,
 10095  	}
 10096  }
 10097  
 10098  const (
 10099  	// FindingSourceTypePolicy is a FindingSourceType enum value
 10100  	FindingSourceTypePolicy = "POLICY"
 10101  
 10102  	// FindingSourceTypeBucketAcl is a FindingSourceType enum value
 10103  	FindingSourceTypeBucketAcl = "BUCKET_ACL"
 10104  
 10105  	// FindingSourceTypeS3AccessPoint is a FindingSourceType enum value
 10106  	FindingSourceTypeS3AccessPoint = "S3_ACCESS_POINT"
 10107  )
 10108  
 10109  // FindingSourceType_Values returns all elements of the FindingSourceType enum
 10110  func FindingSourceType_Values() []string {
 10111  	return []string{
 10112  		FindingSourceTypePolicy,
 10113  		FindingSourceTypeBucketAcl,
 10114  		FindingSourceTypeS3AccessPoint,
 10115  	}
 10116  }
 10117  
 10118  const (
 10119  	// FindingStatusActive is a FindingStatus enum value
 10120  	FindingStatusActive = "ACTIVE"
 10121  
 10122  	// FindingStatusArchived is a FindingStatus enum value
 10123  	FindingStatusArchived = "ARCHIVED"
 10124  
 10125  	// FindingStatusResolved is a FindingStatus enum value
 10126  	FindingStatusResolved = "RESOLVED"
 10127  )
 10128  
 10129  // FindingStatus_Values returns all elements of the FindingStatus enum
 10130  func FindingStatus_Values() []string {
 10131  	return []string{
 10132  		FindingStatusActive,
 10133  		FindingStatusArchived,
 10134  		FindingStatusResolved,
 10135  	}
 10136  }
 10137  
 10138  const (
 10139  	// FindingStatusUpdateActive is a FindingStatusUpdate enum value
 10140  	FindingStatusUpdateActive = "ACTIVE"
 10141  
 10142  	// FindingStatusUpdateArchived is a FindingStatusUpdate enum value
 10143  	FindingStatusUpdateArchived = "ARCHIVED"
 10144  )
 10145  
 10146  // FindingStatusUpdate_Values returns all elements of the FindingStatusUpdate enum
 10147  func FindingStatusUpdate_Values() []string {
 10148  	return []string{
 10149  		FindingStatusUpdateActive,
 10150  		FindingStatusUpdateArchived,
 10151  	}
 10152  }
 10153  
 10154  const (
 10155  	// JobErrorCodeAuthorizationError is a JobErrorCode enum value
 10156  	JobErrorCodeAuthorizationError = "AUTHORIZATION_ERROR"
 10157  
 10158  	// JobErrorCodeResourceNotFoundError is a JobErrorCode enum value
 10159  	JobErrorCodeResourceNotFoundError = "RESOURCE_NOT_FOUND_ERROR"
 10160  
 10161  	// JobErrorCodeServiceQuotaExceededError is a JobErrorCode enum value
 10162  	JobErrorCodeServiceQuotaExceededError = "SERVICE_QUOTA_EXCEEDED_ERROR"
 10163  
 10164  	// JobErrorCodeServiceError is a JobErrorCode enum value
 10165  	JobErrorCodeServiceError = "SERVICE_ERROR"
 10166  )
 10167  
 10168  // JobErrorCode_Values returns all elements of the JobErrorCode enum
 10169  func JobErrorCode_Values() []string {
 10170  	return []string{
 10171  		JobErrorCodeAuthorizationError,
 10172  		JobErrorCodeResourceNotFoundError,
 10173  		JobErrorCodeServiceQuotaExceededError,
 10174  		JobErrorCodeServiceError,
 10175  	}
 10176  }
 10177  
 10178  const (
 10179  	// JobStatusInProgress is a JobStatus enum value
 10180  	JobStatusInProgress = "IN_PROGRESS"
 10181  
 10182  	// JobStatusSucceeded is a JobStatus enum value
 10183  	JobStatusSucceeded = "SUCCEEDED"
 10184  
 10185  	// JobStatusFailed is a JobStatus enum value
 10186  	JobStatusFailed = "FAILED"
 10187  
 10188  	// JobStatusCanceled is a JobStatus enum value
 10189  	JobStatusCanceled = "CANCELED"
 10190  )
 10191  
 10192  // JobStatus_Values returns all elements of the JobStatus enum
 10193  func JobStatus_Values() []string {
 10194  	return []string{
 10195  		JobStatusInProgress,
 10196  		JobStatusSucceeded,
 10197  		JobStatusFailed,
 10198  		JobStatusCanceled,
 10199  	}
 10200  }
 10201  
 10202  const (
 10203  	// KmsGrantOperationCreateGrant is a KmsGrantOperation enum value
 10204  	KmsGrantOperationCreateGrant = "CreateGrant"
 10205  
 10206  	// KmsGrantOperationDecrypt is a KmsGrantOperation enum value
 10207  	KmsGrantOperationDecrypt = "Decrypt"
 10208  
 10209  	// KmsGrantOperationDescribeKey is a KmsGrantOperation enum value
 10210  	KmsGrantOperationDescribeKey = "DescribeKey"
 10211  
 10212  	// KmsGrantOperationEncrypt is a KmsGrantOperation enum value
 10213  	KmsGrantOperationEncrypt = "Encrypt"
 10214  
 10215  	// KmsGrantOperationGenerateDataKey is a KmsGrantOperation enum value
 10216  	KmsGrantOperationGenerateDataKey = "GenerateDataKey"
 10217  
 10218  	// KmsGrantOperationGenerateDataKeyPair is a KmsGrantOperation enum value
 10219  	KmsGrantOperationGenerateDataKeyPair = "GenerateDataKeyPair"
 10220  
 10221  	// KmsGrantOperationGenerateDataKeyPairWithoutPlaintext is a KmsGrantOperation enum value
 10222  	KmsGrantOperationGenerateDataKeyPairWithoutPlaintext = "GenerateDataKeyPairWithoutPlaintext"
 10223  
 10224  	// KmsGrantOperationGenerateDataKeyWithoutPlaintext is a KmsGrantOperation enum value
 10225  	KmsGrantOperationGenerateDataKeyWithoutPlaintext = "GenerateDataKeyWithoutPlaintext"
 10226  
 10227  	// KmsGrantOperationGetPublicKey is a KmsGrantOperation enum value
 10228  	KmsGrantOperationGetPublicKey = "GetPublicKey"
 10229  
 10230  	// KmsGrantOperationReEncryptFrom is a KmsGrantOperation enum value
 10231  	KmsGrantOperationReEncryptFrom = "ReEncryptFrom"
 10232  
 10233  	// KmsGrantOperationReEncryptTo is a KmsGrantOperation enum value
 10234  	KmsGrantOperationReEncryptTo = "ReEncryptTo"
 10235  
 10236  	// KmsGrantOperationRetireGrant is a KmsGrantOperation enum value
 10237  	KmsGrantOperationRetireGrant = "RetireGrant"
 10238  
 10239  	// KmsGrantOperationSign is a KmsGrantOperation enum value
 10240  	KmsGrantOperationSign = "Sign"
 10241  
 10242  	// KmsGrantOperationVerify is a KmsGrantOperation enum value
 10243  	KmsGrantOperationVerify = "Verify"
 10244  )
 10245  
 10246  // KmsGrantOperation_Values returns all elements of the KmsGrantOperation enum
 10247  func KmsGrantOperation_Values() []string {
 10248  	return []string{
 10249  		KmsGrantOperationCreateGrant,
 10250  		KmsGrantOperationDecrypt,
 10251  		KmsGrantOperationDescribeKey,
 10252  		KmsGrantOperationEncrypt,
 10253  		KmsGrantOperationGenerateDataKey,
 10254  		KmsGrantOperationGenerateDataKeyPair,
 10255  		KmsGrantOperationGenerateDataKeyPairWithoutPlaintext,
 10256  		KmsGrantOperationGenerateDataKeyWithoutPlaintext,
 10257  		KmsGrantOperationGetPublicKey,
 10258  		KmsGrantOperationReEncryptFrom,
 10259  		KmsGrantOperationReEncryptTo,
 10260  		KmsGrantOperationRetireGrant,
 10261  		KmsGrantOperationSign,
 10262  		KmsGrantOperationVerify,
 10263  	}
 10264  }
 10265  
 10266  const (
 10267  	// LocaleDe is a Locale enum value
 10268  	LocaleDe = "DE"
 10269  
 10270  	// LocaleEn is a Locale enum value
 10271  	LocaleEn = "EN"
 10272  
 10273  	// LocaleEs is a Locale enum value
 10274  	LocaleEs = "ES"
 10275  
 10276  	// LocaleFr is a Locale enum value
 10277  	LocaleFr = "FR"
 10278  
 10279  	// LocaleIt is a Locale enum value
 10280  	LocaleIt = "IT"
 10281  
 10282  	// LocaleJa is a Locale enum value
 10283  	LocaleJa = "JA"
 10284  
 10285  	// LocaleKo is a Locale enum value
 10286  	LocaleKo = "KO"
 10287  
 10288  	// LocalePtBr is a Locale enum value
 10289  	LocalePtBr = "PT_BR"
 10290  
 10291  	// LocaleZhCn is a Locale enum value
 10292  	LocaleZhCn = "ZH_CN"
 10293  
 10294  	// LocaleZhTw is a Locale enum value
 10295  	LocaleZhTw = "ZH_TW"
 10296  )
 10297  
 10298  // Locale_Values returns all elements of the Locale enum
 10299  func Locale_Values() []string {
 10300  	return []string{
 10301  		LocaleDe,
 10302  		LocaleEn,
 10303  		LocaleEs,
 10304  		LocaleFr,
 10305  		LocaleIt,
 10306  		LocaleJa,
 10307  		LocaleKo,
 10308  		LocalePtBr,
 10309  		LocaleZhCn,
 10310  		LocaleZhTw,
 10311  	}
 10312  }
 10313  
 10314  const (
 10315  	// OrderByAsc is a OrderBy enum value
 10316  	OrderByAsc = "ASC"
 10317  
 10318  	// OrderByDesc is a OrderBy enum value
 10319  	OrderByDesc = "DESC"
 10320  )
 10321  
 10322  // OrderBy_Values returns all elements of the OrderBy enum
 10323  func OrderBy_Values() []string {
 10324  	return []string{
 10325  		OrderByAsc,
 10326  		OrderByDesc,
 10327  	}
 10328  }
 10329  
 10330  const (
 10331  	// PolicyTypeIdentityPolicy is a PolicyType enum value
 10332  	PolicyTypeIdentityPolicy = "IDENTITY_POLICY"
 10333  
 10334  	// PolicyTypeResourcePolicy is a PolicyType enum value
 10335  	PolicyTypeResourcePolicy = "RESOURCE_POLICY"
 10336  
 10337  	// PolicyTypeServiceControlPolicy is a PolicyType enum value
 10338  	PolicyTypeServiceControlPolicy = "SERVICE_CONTROL_POLICY"
 10339  )
 10340  
 10341  // PolicyType_Values returns all elements of the PolicyType enum
 10342  func PolicyType_Values() []string {
 10343  	return []string{
 10344  		PolicyTypeIdentityPolicy,
 10345  		PolicyTypeResourcePolicy,
 10346  		PolicyTypeServiceControlPolicy,
 10347  	}
 10348  }
 10349  
 10350  const (
 10351  	// ReasonCodeAwsServiceAccessDisabled is a ReasonCode enum value
 10352  	ReasonCodeAwsServiceAccessDisabled = "AWS_SERVICE_ACCESS_DISABLED"
 10353  
 10354  	// ReasonCodeDelegatedAdministratorDeregistered is a ReasonCode enum value
 10355  	ReasonCodeDelegatedAdministratorDeregistered = "DELEGATED_ADMINISTRATOR_DEREGISTERED"
 10356  
 10357  	// ReasonCodeOrganizationDeleted is a ReasonCode enum value
 10358  	ReasonCodeOrganizationDeleted = "ORGANIZATION_DELETED"
 10359  
 10360  	// ReasonCodeServiceLinkedRoleCreationFailed is a ReasonCode enum value
 10361  	ReasonCodeServiceLinkedRoleCreationFailed = "SERVICE_LINKED_ROLE_CREATION_FAILED"
 10362  )
 10363  
 10364  // ReasonCode_Values returns all elements of the ReasonCode enum
 10365  func ReasonCode_Values() []string {
 10366  	return []string{
 10367  		ReasonCodeAwsServiceAccessDisabled,
 10368  		ReasonCodeDelegatedAdministratorDeregistered,
 10369  		ReasonCodeOrganizationDeleted,
 10370  		ReasonCodeServiceLinkedRoleCreationFailed,
 10371  	}
 10372  }
 10373  
 10374  const (
 10375  	// ResourceTypeAwsS3Bucket is a ResourceType enum value
 10376  	ResourceTypeAwsS3Bucket = "AWS::S3::Bucket"
 10377  
 10378  	// ResourceTypeAwsIamRole is a ResourceType enum value
 10379  	ResourceTypeAwsIamRole = "AWS::IAM::Role"
 10380  
 10381  	// ResourceTypeAwsSqsQueue is a ResourceType enum value
 10382  	ResourceTypeAwsSqsQueue = "AWS::SQS::Queue"
 10383  
 10384  	// ResourceTypeAwsLambdaFunction is a ResourceType enum value
 10385  	ResourceTypeAwsLambdaFunction = "AWS::Lambda::Function"
 10386  
 10387  	// ResourceTypeAwsLambdaLayerVersion is a ResourceType enum value
 10388  	ResourceTypeAwsLambdaLayerVersion = "AWS::Lambda::LayerVersion"
 10389  
 10390  	// ResourceTypeAwsKmsKey is a ResourceType enum value
 10391  	ResourceTypeAwsKmsKey = "AWS::KMS::Key"
 10392  
 10393  	// ResourceTypeAwsSecretsManagerSecret is a ResourceType enum value
 10394  	ResourceTypeAwsSecretsManagerSecret = "AWS::SecretsManager::Secret"
 10395  )
 10396  
 10397  // ResourceType_Values returns all elements of the ResourceType enum
 10398  func ResourceType_Values() []string {
 10399  	return []string{
 10400  		ResourceTypeAwsS3Bucket,
 10401  		ResourceTypeAwsIamRole,
 10402  		ResourceTypeAwsSqsQueue,
 10403  		ResourceTypeAwsLambdaFunction,
 10404  		ResourceTypeAwsLambdaLayerVersion,
 10405  		ResourceTypeAwsKmsKey,
 10406  		ResourceTypeAwsSecretsManagerSecret,
 10407  	}
 10408  }
 10409  
 10410  const (
 10411  	// TypeAccount is a Type enum value
 10412  	TypeAccount = "ACCOUNT"
 10413  
 10414  	// TypeOrganization is a Type enum value
 10415  	TypeOrganization = "ORGANIZATION"
 10416  )
 10417  
 10418  // Type_Values returns all elements of the Type enum
 10419  func Type_Values() []string {
 10420  	return []string{
 10421  		TypeAccount,
 10422  		TypeOrganization,
 10423  	}
 10424  }
 10425  
 10426  const (
 10427  	// ValidatePolicyFindingTypeError is a ValidatePolicyFindingType enum value
 10428  	ValidatePolicyFindingTypeError = "ERROR"
 10429  
 10430  	// ValidatePolicyFindingTypeSecurityWarning is a ValidatePolicyFindingType enum value
 10431  	ValidatePolicyFindingTypeSecurityWarning = "SECURITY_WARNING"
 10432  
 10433  	// ValidatePolicyFindingTypeSuggestion is a ValidatePolicyFindingType enum value
 10434  	ValidatePolicyFindingTypeSuggestion = "SUGGESTION"
 10435  
 10436  	// ValidatePolicyFindingTypeWarning is a ValidatePolicyFindingType enum value
 10437  	ValidatePolicyFindingTypeWarning = "WARNING"
 10438  )
 10439  
 10440  // ValidatePolicyFindingType_Values returns all elements of the ValidatePolicyFindingType enum
 10441  func ValidatePolicyFindingType_Values() []string {
 10442  	return []string{
 10443  		ValidatePolicyFindingTypeError,
 10444  		ValidatePolicyFindingTypeSecurityWarning,
 10445  		ValidatePolicyFindingTypeSuggestion,
 10446  		ValidatePolicyFindingTypeWarning,
 10447  	}
 10448  }
 10449  
 10450  const (
 10451  	// ValidationExceptionReasonUnknownOperation is a ValidationExceptionReason enum value
 10452  	ValidationExceptionReasonUnknownOperation = "unknownOperation"
 10453  
 10454  	// ValidationExceptionReasonCannotParse is a ValidationExceptionReason enum value
 10455  	ValidationExceptionReasonCannotParse = "cannotParse"
 10456  
 10457  	// ValidationExceptionReasonFieldValidationFailed is a ValidationExceptionReason enum value
 10458  	ValidationExceptionReasonFieldValidationFailed = "fieldValidationFailed"
 10459  
 10460  	// ValidationExceptionReasonOther is a ValidationExceptionReason enum value
 10461  	ValidationExceptionReasonOther = "other"
 10462  )
 10463  
 10464  // ValidationExceptionReason_Values returns all elements of the ValidationExceptionReason enum
 10465  func ValidationExceptionReason_Values() []string {
 10466  	return []string{
 10467  		ValidationExceptionReasonUnknownOperation,
 10468  		ValidationExceptionReasonCannotParse,
 10469  		ValidationExceptionReasonFieldValidationFailed,
 10470  		ValidationExceptionReasonOther,
 10471  	}
 10472  }