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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package lakeformation
     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/jsonrpc"
    14  )
    15  
    16  const opAddLFTagsToResource = "AddLFTagsToResource"
    17  
    18  // AddLFTagsToResourceRequest generates a "aws/request.Request" representing the
    19  // client's request for the AddLFTagsToResource 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 AddLFTagsToResource for more information on using the AddLFTagsToResource
    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 AddLFTagsToResourceRequest method.
    34  //    req, resp := client.AddLFTagsToResourceRequest(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/lakeformation-2017-03-31/AddLFTagsToResource
    42  func (c *LakeFormation) AddLFTagsToResourceRequest(input *AddLFTagsToResourceInput) (req *request.Request, output *AddLFTagsToResourceOutput) {
    43  	op := &request.Operation{
    44  		Name:       opAddLFTagsToResource,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &AddLFTagsToResourceInput{}
    51  	}
    52  
    53  	output = &AddLFTagsToResourceOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // AddLFTagsToResource API operation for AWS Lake Formation.
    59  //
    60  // Attaches one or more tags to an existing resource.
    61  //
    62  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    63  // with awserr.Error's Code and Message methods to get detailed information about
    64  // the error.
    65  //
    66  // See the AWS API reference guide for AWS Lake Formation's
    67  // API operation AddLFTagsToResource for usage and error information.
    68  //
    69  // Returned Error Types:
    70  //   * EntityNotFoundException
    71  //   A specified entity does not exist
    72  //
    73  //   * InvalidInputException
    74  //   The input provided was not valid.
    75  //
    76  //   * InternalServiceException
    77  //   An internal service error occurred.
    78  //
    79  //   * OperationTimeoutException
    80  //   The operation timed out.
    81  //
    82  //   * AccessDeniedException
    83  //   Access to a resource was denied.
    84  //
    85  //   * ConcurrentModificationException
    86  //   Two processes are trying to modify a resource simultaneously.
    87  //
    88  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/AddLFTagsToResource
    89  func (c *LakeFormation) AddLFTagsToResource(input *AddLFTagsToResourceInput) (*AddLFTagsToResourceOutput, error) {
    90  	req, out := c.AddLFTagsToResourceRequest(input)
    91  	return out, req.Send()
    92  }
    93  
    94  // AddLFTagsToResourceWithContext is the same as AddLFTagsToResource with the addition of
    95  // the ability to pass a context and additional request options.
    96  //
    97  // See AddLFTagsToResource for details on how to use this API operation.
    98  //
    99  // The context must be non-nil and will be used for request cancellation. If
   100  // the context is nil a panic will occur. In the future the SDK may create
   101  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   102  // for more information on using Contexts.
   103  func (c *LakeFormation) AddLFTagsToResourceWithContext(ctx aws.Context, input *AddLFTagsToResourceInput, opts ...request.Option) (*AddLFTagsToResourceOutput, error) {
   104  	req, out := c.AddLFTagsToResourceRequest(input)
   105  	req.SetContext(ctx)
   106  	req.ApplyOptions(opts...)
   107  	return out, req.Send()
   108  }
   109  
   110  const opBatchGrantPermissions = "BatchGrantPermissions"
   111  
   112  // BatchGrantPermissionsRequest generates a "aws/request.Request" representing the
   113  // client's request for the BatchGrantPermissions operation. The "output" return
   114  // value will be populated with the request's response once the request completes
   115  // successfully.
   116  //
   117  // Use "Send" method on the returned Request to send the API call to the service.
   118  // the "output" return value is not valid until after Send returns without error.
   119  //
   120  // See BatchGrantPermissions for more information on using the BatchGrantPermissions
   121  // API call, and error handling.
   122  //
   123  // This method is useful when you want to inject custom logic or configuration
   124  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   125  //
   126  //
   127  //    // Example sending a request using the BatchGrantPermissionsRequest method.
   128  //    req, resp := client.BatchGrantPermissionsRequest(params)
   129  //
   130  //    err := req.Send()
   131  //    if err == nil { // resp is now filled
   132  //        fmt.Println(resp)
   133  //    }
   134  //
   135  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/BatchGrantPermissions
   136  func (c *LakeFormation) BatchGrantPermissionsRequest(input *BatchGrantPermissionsInput) (req *request.Request, output *BatchGrantPermissionsOutput) {
   137  	op := &request.Operation{
   138  		Name:       opBatchGrantPermissions,
   139  		HTTPMethod: "POST",
   140  		HTTPPath:   "/",
   141  	}
   142  
   143  	if input == nil {
   144  		input = &BatchGrantPermissionsInput{}
   145  	}
   146  
   147  	output = &BatchGrantPermissionsOutput{}
   148  	req = c.newRequest(op, input, output)
   149  	return
   150  }
   151  
   152  // BatchGrantPermissions API operation for AWS Lake Formation.
   153  //
   154  // Batch operation to grant permissions to the principal.
   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 AWS Lake Formation's
   161  // API operation BatchGrantPermissions for usage and error information.
   162  //
   163  // Returned Error Types:
   164  //   * InvalidInputException
   165  //   The input provided was not valid.
   166  //
   167  //   * OperationTimeoutException
   168  //   The operation timed out.
   169  //
   170  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/BatchGrantPermissions
   171  func (c *LakeFormation) BatchGrantPermissions(input *BatchGrantPermissionsInput) (*BatchGrantPermissionsOutput, error) {
   172  	req, out := c.BatchGrantPermissionsRequest(input)
   173  	return out, req.Send()
   174  }
   175  
   176  // BatchGrantPermissionsWithContext is the same as BatchGrantPermissions with the addition of
   177  // the ability to pass a context and additional request options.
   178  //
   179  // See BatchGrantPermissions for details on how to use this API operation.
   180  //
   181  // The context must be non-nil and will be used for request cancellation. If
   182  // the context is nil a panic will occur. In the future the SDK may create
   183  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   184  // for more information on using Contexts.
   185  func (c *LakeFormation) BatchGrantPermissionsWithContext(ctx aws.Context, input *BatchGrantPermissionsInput, opts ...request.Option) (*BatchGrantPermissionsOutput, error) {
   186  	req, out := c.BatchGrantPermissionsRequest(input)
   187  	req.SetContext(ctx)
   188  	req.ApplyOptions(opts...)
   189  	return out, req.Send()
   190  }
   191  
   192  const opBatchRevokePermissions = "BatchRevokePermissions"
   193  
   194  // BatchRevokePermissionsRequest generates a "aws/request.Request" representing the
   195  // client's request for the BatchRevokePermissions operation. The "output" return
   196  // value will be populated with the request's response once the request completes
   197  // successfully.
   198  //
   199  // Use "Send" method on the returned Request to send the API call to the service.
   200  // the "output" return value is not valid until after Send returns without error.
   201  //
   202  // See BatchRevokePermissions for more information on using the BatchRevokePermissions
   203  // API call, and error handling.
   204  //
   205  // This method is useful when you want to inject custom logic or configuration
   206  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   207  //
   208  //
   209  //    // Example sending a request using the BatchRevokePermissionsRequest method.
   210  //    req, resp := client.BatchRevokePermissionsRequest(params)
   211  //
   212  //    err := req.Send()
   213  //    if err == nil { // resp is now filled
   214  //        fmt.Println(resp)
   215  //    }
   216  //
   217  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/BatchRevokePermissions
   218  func (c *LakeFormation) BatchRevokePermissionsRequest(input *BatchRevokePermissionsInput) (req *request.Request, output *BatchRevokePermissionsOutput) {
   219  	op := &request.Operation{
   220  		Name:       opBatchRevokePermissions,
   221  		HTTPMethod: "POST",
   222  		HTTPPath:   "/",
   223  	}
   224  
   225  	if input == nil {
   226  		input = &BatchRevokePermissionsInput{}
   227  	}
   228  
   229  	output = &BatchRevokePermissionsOutput{}
   230  	req = c.newRequest(op, input, output)
   231  	return
   232  }
   233  
   234  // BatchRevokePermissions API operation for AWS Lake Formation.
   235  //
   236  // Batch operation to revoke permissions from the principal.
   237  //
   238  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   239  // with awserr.Error's Code and Message methods to get detailed information about
   240  // the error.
   241  //
   242  // See the AWS API reference guide for AWS Lake Formation's
   243  // API operation BatchRevokePermissions for usage and error information.
   244  //
   245  // Returned Error Types:
   246  //   * InvalidInputException
   247  //   The input provided was not valid.
   248  //
   249  //   * OperationTimeoutException
   250  //   The operation timed out.
   251  //
   252  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/BatchRevokePermissions
   253  func (c *LakeFormation) BatchRevokePermissions(input *BatchRevokePermissionsInput) (*BatchRevokePermissionsOutput, error) {
   254  	req, out := c.BatchRevokePermissionsRequest(input)
   255  	return out, req.Send()
   256  }
   257  
   258  // BatchRevokePermissionsWithContext is the same as BatchRevokePermissions with the addition of
   259  // the ability to pass a context and additional request options.
   260  //
   261  // See BatchRevokePermissions for details on how to use this API operation.
   262  //
   263  // The context must be non-nil and will be used for request cancellation. If
   264  // the context is nil a panic will occur. In the future the SDK may create
   265  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   266  // for more information on using Contexts.
   267  func (c *LakeFormation) BatchRevokePermissionsWithContext(ctx aws.Context, input *BatchRevokePermissionsInput, opts ...request.Option) (*BatchRevokePermissionsOutput, error) {
   268  	req, out := c.BatchRevokePermissionsRequest(input)
   269  	req.SetContext(ctx)
   270  	req.ApplyOptions(opts...)
   271  	return out, req.Send()
   272  }
   273  
   274  const opCreateLFTag = "CreateLFTag"
   275  
   276  // CreateLFTagRequest generates a "aws/request.Request" representing the
   277  // client's request for the CreateLFTag operation. The "output" return
   278  // value will be populated with the request's response once the request completes
   279  // successfully.
   280  //
   281  // Use "Send" method on the returned Request to send the API call to the service.
   282  // the "output" return value is not valid until after Send returns without error.
   283  //
   284  // See CreateLFTag for more information on using the CreateLFTag
   285  // API call, and error handling.
   286  //
   287  // This method is useful when you want to inject custom logic or configuration
   288  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   289  //
   290  //
   291  //    // Example sending a request using the CreateLFTagRequest method.
   292  //    req, resp := client.CreateLFTagRequest(params)
   293  //
   294  //    err := req.Send()
   295  //    if err == nil { // resp is now filled
   296  //        fmt.Println(resp)
   297  //    }
   298  //
   299  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/CreateLFTag
   300  func (c *LakeFormation) CreateLFTagRequest(input *CreateLFTagInput) (req *request.Request, output *CreateLFTagOutput) {
   301  	op := &request.Operation{
   302  		Name:       opCreateLFTag,
   303  		HTTPMethod: "POST",
   304  		HTTPPath:   "/",
   305  	}
   306  
   307  	if input == nil {
   308  		input = &CreateLFTagInput{}
   309  	}
   310  
   311  	output = &CreateLFTagOutput{}
   312  	req = c.newRequest(op, input, output)
   313  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   314  	return
   315  }
   316  
   317  // CreateLFTag API operation for AWS Lake Formation.
   318  //
   319  // Creates a tag with the specified name and values.
   320  //
   321  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   322  // with awserr.Error's Code and Message methods to get detailed information about
   323  // the error.
   324  //
   325  // See the AWS API reference guide for AWS Lake Formation's
   326  // API operation CreateLFTag for usage and error information.
   327  //
   328  // Returned Error Types:
   329  //   * EntityNotFoundException
   330  //   A specified entity does not exist
   331  //
   332  //   * InvalidInputException
   333  //   The input provided was not valid.
   334  //
   335  //   * ResourceNumberLimitExceededException
   336  //   A resource numerical limit was exceeded.
   337  //
   338  //   * InternalServiceException
   339  //   An internal service error occurred.
   340  //
   341  //   * OperationTimeoutException
   342  //   The operation timed out.
   343  //
   344  //   * AccessDeniedException
   345  //   Access to a resource was denied.
   346  //
   347  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/CreateLFTag
   348  func (c *LakeFormation) CreateLFTag(input *CreateLFTagInput) (*CreateLFTagOutput, error) {
   349  	req, out := c.CreateLFTagRequest(input)
   350  	return out, req.Send()
   351  }
   352  
   353  // CreateLFTagWithContext is the same as CreateLFTag with the addition of
   354  // the ability to pass a context and additional request options.
   355  //
   356  // See CreateLFTag for details on how to use this API operation.
   357  //
   358  // The context must be non-nil and will be used for request cancellation. If
   359  // the context is nil a panic will occur. In the future the SDK may create
   360  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   361  // for more information on using Contexts.
   362  func (c *LakeFormation) CreateLFTagWithContext(ctx aws.Context, input *CreateLFTagInput, opts ...request.Option) (*CreateLFTagOutput, error) {
   363  	req, out := c.CreateLFTagRequest(input)
   364  	req.SetContext(ctx)
   365  	req.ApplyOptions(opts...)
   366  	return out, req.Send()
   367  }
   368  
   369  const opDeleteLFTag = "DeleteLFTag"
   370  
   371  // DeleteLFTagRequest generates a "aws/request.Request" representing the
   372  // client's request for the DeleteLFTag operation. The "output" return
   373  // value will be populated with the request's response once the request completes
   374  // successfully.
   375  //
   376  // Use "Send" method on the returned Request to send the API call to the service.
   377  // the "output" return value is not valid until after Send returns without error.
   378  //
   379  // See DeleteLFTag for more information on using the DeleteLFTag
   380  // API call, and error handling.
   381  //
   382  // This method is useful when you want to inject custom logic or configuration
   383  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   384  //
   385  //
   386  //    // Example sending a request using the DeleteLFTagRequest method.
   387  //    req, resp := client.DeleteLFTagRequest(params)
   388  //
   389  //    err := req.Send()
   390  //    if err == nil { // resp is now filled
   391  //        fmt.Println(resp)
   392  //    }
   393  //
   394  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DeleteLFTag
   395  func (c *LakeFormation) DeleteLFTagRequest(input *DeleteLFTagInput) (req *request.Request, output *DeleteLFTagOutput) {
   396  	op := &request.Operation{
   397  		Name:       opDeleteLFTag,
   398  		HTTPMethod: "POST",
   399  		HTTPPath:   "/",
   400  	}
   401  
   402  	if input == nil {
   403  		input = &DeleteLFTagInput{}
   404  	}
   405  
   406  	output = &DeleteLFTagOutput{}
   407  	req = c.newRequest(op, input, output)
   408  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   409  	return
   410  }
   411  
   412  // DeleteLFTag API operation for AWS Lake Formation.
   413  //
   414  // Deletes the specified tag key name. If the attribute key does not exist or
   415  // the tag does not exist, then the operation will not do anything. If the attribute
   416  // key exists, then the operation checks if any resources are tagged with this
   417  // attribute key, if yes, the API throws a 400 Exception with the message "Delete
   418  // not allowed" as the tag key is still attached with resources. You can consider
   419  // untagging resources with this tag key.
   420  //
   421  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   422  // with awserr.Error's Code and Message methods to get detailed information about
   423  // the error.
   424  //
   425  // See the AWS API reference guide for AWS Lake Formation's
   426  // API operation DeleteLFTag for usage and error information.
   427  //
   428  // Returned Error Types:
   429  //   * EntityNotFoundException
   430  //   A specified entity does not exist
   431  //
   432  //   * InvalidInputException
   433  //   The input provided was not valid.
   434  //
   435  //   * InternalServiceException
   436  //   An internal service error occurred.
   437  //
   438  //   * OperationTimeoutException
   439  //   The operation timed out.
   440  //
   441  //   * AccessDeniedException
   442  //   Access to a resource was denied.
   443  //
   444  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DeleteLFTag
   445  func (c *LakeFormation) DeleteLFTag(input *DeleteLFTagInput) (*DeleteLFTagOutput, error) {
   446  	req, out := c.DeleteLFTagRequest(input)
   447  	return out, req.Send()
   448  }
   449  
   450  // DeleteLFTagWithContext is the same as DeleteLFTag with the addition of
   451  // the ability to pass a context and additional request options.
   452  //
   453  // See DeleteLFTag for details on how to use this API operation.
   454  //
   455  // The context must be non-nil and will be used for request cancellation. If
   456  // the context is nil a panic will occur. In the future the SDK may create
   457  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   458  // for more information on using Contexts.
   459  func (c *LakeFormation) DeleteLFTagWithContext(ctx aws.Context, input *DeleteLFTagInput, opts ...request.Option) (*DeleteLFTagOutput, error) {
   460  	req, out := c.DeleteLFTagRequest(input)
   461  	req.SetContext(ctx)
   462  	req.ApplyOptions(opts...)
   463  	return out, req.Send()
   464  }
   465  
   466  const opDeregisterResource = "DeregisterResource"
   467  
   468  // DeregisterResourceRequest generates a "aws/request.Request" representing the
   469  // client's request for the DeregisterResource operation. The "output" return
   470  // value will be populated with the request's response once the request completes
   471  // successfully.
   472  //
   473  // Use "Send" method on the returned Request to send the API call to the service.
   474  // the "output" return value is not valid until after Send returns without error.
   475  //
   476  // See DeregisterResource for more information on using the DeregisterResource
   477  // API call, and error handling.
   478  //
   479  // This method is useful when you want to inject custom logic or configuration
   480  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   481  //
   482  //
   483  //    // Example sending a request using the DeregisterResourceRequest method.
   484  //    req, resp := client.DeregisterResourceRequest(params)
   485  //
   486  //    err := req.Send()
   487  //    if err == nil { // resp is now filled
   488  //        fmt.Println(resp)
   489  //    }
   490  //
   491  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DeregisterResource
   492  func (c *LakeFormation) DeregisterResourceRequest(input *DeregisterResourceInput) (req *request.Request, output *DeregisterResourceOutput) {
   493  	op := &request.Operation{
   494  		Name:       opDeregisterResource,
   495  		HTTPMethod: "POST",
   496  		HTTPPath:   "/",
   497  	}
   498  
   499  	if input == nil {
   500  		input = &DeregisterResourceInput{}
   501  	}
   502  
   503  	output = &DeregisterResourceOutput{}
   504  	req = c.newRequest(op, input, output)
   505  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   506  	return
   507  }
   508  
   509  // DeregisterResource API operation for AWS Lake Formation.
   510  //
   511  // Deregisters the resource as managed by the Data Catalog.
   512  //
   513  // When you deregister a path, Lake Formation removes the path from the inline
   514  // policy attached to your service-linked role.
   515  //
   516  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   517  // with awserr.Error's Code and Message methods to get detailed information about
   518  // the error.
   519  //
   520  // See the AWS API reference guide for AWS Lake Formation's
   521  // API operation DeregisterResource for usage and error information.
   522  //
   523  // Returned Error Types:
   524  //   * InvalidInputException
   525  //   The input provided was not valid.
   526  //
   527  //   * InternalServiceException
   528  //   An internal service error occurred.
   529  //
   530  //   * OperationTimeoutException
   531  //   The operation timed out.
   532  //
   533  //   * EntityNotFoundException
   534  //   A specified entity does not exist
   535  //
   536  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DeregisterResource
   537  func (c *LakeFormation) DeregisterResource(input *DeregisterResourceInput) (*DeregisterResourceOutput, error) {
   538  	req, out := c.DeregisterResourceRequest(input)
   539  	return out, req.Send()
   540  }
   541  
   542  // DeregisterResourceWithContext is the same as DeregisterResource with the addition of
   543  // the ability to pass a context and additional request options.
   544  //
   545  // See DeregisterResource for details on how to use this API operation.
   546  //
   547  // The context must be non-nil and will be used for request cancellation. If
   548  // the context is nil a panic will occur. In the future the SDK may create
   549  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   550  // for more information on using Contexts.
   551  func (c *LakeFormation) DeregisterResourceWithContext(ctx aws.Context, input *DeregisterResourceInput, opts ...request.Option) (*DeregisterResourceOutput, error) {
   552  	req, out := c.DeregisterResourceRequest(input)
   553  	req.SetContext(ctx)
   554  	req.ApplyOptions(opts...)
   555  	return out, req.Send()
   556  }
   557  
   558  const opDescribeResource = "DescribeResource"
   559  
   560  // DescribeResourceRequest generates a "aws/request.Request" representing the
   561  // client's request for the DescribeResource operation. The "output" return
   562  // value will be populated with the request's response once the request completes
   563  // successfully.
   564  //
   565  // Use "Send" method on the returned Request to send the API call to the service.
   566  // the "output" return value is not valid until after Send returns without error.
   567  //
   568  // See DescribeResource for more information on using the DescribeResource
   569  // API call, and error handling.
   570  //
   571  // This method is useful when you want to inject custom logic or configuration
   572  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   573  //
   574  //
   575  //    // Example sending a request using the DescribeResourceRequest method.
   576  //    req, resp := client.DescribeResourceRequest(params)
   577  //
   578  //    err := req.Send()
   579  //    if err == nil { // resp is now filled
   580  //        fmt.Println(resp)
   581  //    }
   582  //
   583  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DescribeResource
   584  func (c *LakeFormation) DescribeResourceRequest(input *DescribeResourceInput) (req *request.Request, output *DescribeResourceOutput) {
   585  	op := &request.Operation{
   586  		Name:       opDescribeResource,
   587  		HTTPMethod: "POST",
   588  		HTTPPath:   "/",
   589  	}
   590  
   591  	if input == nil {
   592  		input = &DescribeResourceInput{}
   593  	}
   594  
   595  	output = &DescribeResourceOutput{}
   596  	req = c.newRequest(op, input, output)
   597  	return
   598  }
   599  
   600  // DescribeResource API operation for AWS Lake Formation.
   601  //
   602  // Retrieves the current data access role for the given resource registered
   603  // in AWS Lake Formation.
   604  //
   605  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   606  // with awserr.Error's Code and Message methods to get detailed information about
   607  // the error.
   608  //
   609  // See the AWS API reference guide for AWS Lake Formation's
   610  // API operation DescribeResource for usage and error information.
   611  //
   612  // Returned Error Types:
   613  //   * InvalidInputException
   614  //   The input provided was not valid.
   615  //
   616  //   * InternalServiceException
   617  //   An internal service error occurred.
   618  //
   619  //   * OperationTimeoutException
   620  //   The operation timed out.
   621  //
   622  //   * EntityNotFoundException
   623  //   A specified entity does not exist
   624  //
   625  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DescribeResource
   626  func (c *LakeFormation) DescribeResource(input *DescribeResourceInput) (*DescribeResourceOutput, error) {
   627  	req, out := c.DescribeResourceRequest(input)
   628  	return out, req.Send()
   629  }
   630  
   631  // DescribeResourceWithContext is the same as DescribeResource with the addition of
   632  // the ability to pass a context and additional request options.
   633  //
   634  // See DescribeResource for details on how to use this API operation.
   635  //
   636  // The context must be non-nil and will be used for request cancellation. If
   637  // the context is nil a panic will occur. In the future the SDK may create
   638  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   639  // for more information on using Contexts.
   640  func (c *LakeFormation) DescribeResourceWithContext(ctx aws.Context, input *DescribeResourceInput, opts ...request.Option) (*DescribeResourceOutput, error) {
   641  	req, out := c.DescribeResourceRequest(input)
   642  	req.SetContext(ctx)
   643  	req.ApplyOptions(opts...)
   644  	return out, req.Send()
   645  }
   646  
   647  const opGetDataLakeSettings = "GetDataLakeSettings"
   648  
   649  // GetDataLakeSettingsRequest generates a "aws/request.Request" representing the
   650  // client's request for the GetDataLakeSettings operation. The "output" return
   651  // value will be populated with the request's response once the request completes
   652  // successfully.
   653  //
   654  // Use "Send" method on the returned Request to send the API call to the service.
   655  // the "output" return value is not valid until after Send returns without error.
   656  //
   657  // See GetDataLakeSettings for more information on using the GetDataLakeSettings
   658  // API call, and error handling.
   659  //
   660  // This method is useful when you want to inject custom logic or configuration
   661  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   662  //
   663  //
   664  //    // Example sending a request using the GetDataLakeSettingsRequest method.
   665  //    req, resp := client.GetDataLakeSettingsRequest(params)
   666  //
   667  //    err := req.Send()
   668  //    if err == nil { // resp is now filled
   669  //        fmt.Println(resp)
   670  //    }
   671  //
   672  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetDataLakeSettings
   673  func (c *LakeFormation) GetDataLakeSettingsRequest(input *GetDataLakeSettingsInput) (req *request.Request, output *GetDataLakeSettingsOutput) {
   674  	op := &request.Operation{
   675  		Name:       opGetDataLakeSettings,
   676  		HTTPMethod: "POST",
   677  		HTTPPath:   "/",
   678  	}
   679  
   680  	if input == nil {
   681  		input = &GetDataLakeSettingsInput{}
   682  	}
   683  
   684  	output = &GetDataLakeSettingsOutput{}
   685  	req = c.newRequest(op, input, output)
   686  	return
   687  }
   688  
   689  // GetDataLakeSettings API operation for AWS Lake Formation.
   690  //
   691  // Retrieves the list of the data lake administrators of a Lake Formation-managed
   692  // data lake.
   693  //
   694  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   695  // with awserr.Error's Code and Message methods to get detailed information about
   696  // the error.
   697  //
   698  // See the AWS API reference guide for AWS Lake Formation's
   699  // API operation GetDataLakeSettings for usage and error information.
   700  //
   701  // Returned Error Types:
   702  //   * InternalServiceException
   703  //   An internal service error occurred.
   704  //
   705  //   * InvalidInputException
   706  //   The input provided was not valid.
   707  //
   708  //   * EntityNotFoundException
   709  //   A specified entity does not exist
   710  //
   711  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetDataLakeSettings
   712  func (c *LakeFormation) GetDataLakeSettings(input *GetDataLakeSettingsInput) (*GetDataLakeSettingsOutput, error) {
   713  	req, out := c.GetDataLakeSettingsRequest(input)
   714  	return out, req.Send()
   715  }
   716  
   717  // GetDataLakeSettingsWithContext is the same as GetDataLakeSettings with the addition of
   718  // the ability to pass a context and additional request options.
   719  //
   720  // See GetDataLakeSettings for details on how to use this API operation.
   721  //
   722  // The context must be non-nil and will be used for request cancellation. If
   723  // the context is nil a panic will occur. In the future the SDK may create
   724  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   725  // for more information on using Contexts.
   726  func (c *LakeFormation) GetDataLakeSettingsWithContext(ctx aws.Context, input *GetDataLakeSettingsInput, opts ...request.Option) (*GetDataLakeSettingsOutput, error) {
   727  	req, out := c.GetDataLakeSettingsRequest(input)
   728  	req.SetContext(ctx)
   729  	req.ApplyOptions(opts...)
   730  	return out, req.Send()
   731  }
   732  
   733  const opGetEffectivePermissionsForPath = "GetEffectivePermissionsForPath"
   734  
   735  // GetEffectivePermissionsForPathRequest generates a "aws/request.Request" representing the
   736  // client's request for the GetEffectivePermissionsForPath operation. The "output" return
   737  // value will be populated with the request's response once the request completes
   738  // successfully.
   739  //
   740  // Use "Send" method on the returned Request to send the API call to the service.
   741  // the "output" return value is not valid until after Send returns without error.
   742  //
   743  // See GetEffectivePermissionsForPath for more information on using the GetEffectivePermissionsForPath
   744  // API call, and error handling.
   745  //
   746  // This method is useful when you want to inject custom logic or configuration
   747  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   748  //
   749  //
   750  //    // Example sending a request using the GetEffectivePermissionsForPathRequest method.
   751  //    req, resp := client.GetEffectivePermissionsForPathRequest(params)
   752  //
   753  //    err := req.Send()
   754  //    if err == nil { // resp is now filled
   755  //        fmt.Println(resp)
   756  //    }
   757  //
   758  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetEffectivePermissionsForPath
   759  func (c *LakeFormation) GetEffectivePermissionsForPathRequest(input *GetEffectivePermissionsForPathInput) (req *request.Request, output *GetEffectivePermissionsForPathOutput) {
   760  	op := &request.Operation{
   761  		Name:       opGetEffectivePermissionsForPath,
   762  		HTTPMethod: "POST",
   763  		HTTPPath:   "/",
   764  		Paginator: &request.Paginator{
   765  			InputTokens:     []string{"NextToken"},
   766  			OutputTokens:    []string{"NextToken"},
   767  			LimitToken:      "MaxResults",
   768  			TruncationToken: "",
   769  		},
   770  	}
   771  
   772  	if input == nil {
   773  		input = &GetEffectivePermissionsForPathInput{}
   774  	}
   775  
   776  	output = &GetEffectivePermissionsForPathOutput{}
   777  	req = c.newRequest(op, input, output)
   778  	return
   779  }
   780  
   781  // GetEffectivePermissionsForPath API operation for AWS Lake Formation.
   782  //
   783  // Returns the Lake Formation permissions for a specified table or database
   784  // resource located at a path in Amazon S3. GetEffectivePermissionsForPath will
   785  // not return databases and tables if the catalog is encrypted.
   786  //
   787  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   788  // with awserr.Error's Code and Message methods to get detailed information about
   789  // the error.
   790  //
   791  // See the AWS API reference guide for AWS Lake Formation's
   792  // API operation GetEffectivePermissionsForPath for usage and error information.
   793  //
   794  // Returned Error Types:
   795  //   * InvalidInputException
   796  //   The input provided was not valid.
   797  //
   798  //   * EntityNotFoundException
   799  //   A specified entity does not exist
   800  //
   801  //   * OperationTimeoutException
   802  //   The operation timed out.
   803  //
   804  //   * InternalServiceException
   805  //   An internal service error occurred.
   806  //
   807  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetEffectivePermissionsForPath
   808  func (c *LakeFormation) GetEffectivePermissionsForPath(input *GetEffectivePermissionsForPathInput) (*GetEffectivePermissionsForPathOutput, error) {
   809  	req, out := c.GetEffectivePermissionsForPathRequest(input)
   810  	return out, req.Send()
   811  }
   812  
   813  // GetEffectivePermissionsForPathWithContext is the same as GetEffectivePermissionsForPath with the addition of
   814  // the ability to pass a context and additional request options.
   815  //
   816  // See GetEffectivePermissionsForPath for details on how to use this API operation.
   817  //
   818  // The context must be non-nil and will be used for request cancellation. If
   819  // the context is nil a panic will occur. In the future the SDK may create
   820  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   821  // for more information on using Contexts.
   822  func (c *LakeFormation) GetEffectivePermissionsForPathWithContext(ctx aws.Context, input *GetEffectivePermissionsForPathInput, opts ...request.Option) (*GetEffectivePermissionsForPathOutput, error) {
   823  	req, out := c.GetEffectivePermissionsForPathRequest(input)
   824  	req.SetContext(ctx)
   825  	req.ApplyOptions(opts...)
   826  	return out, req.Send()
   827  }
   828  
   829  // GetEffectivePermissionsForPathPages iterates over the pages of a GetEffectivePermissionsForPath operation,
   830  // calling the "fn" function with the response data for each page. To stop
   831  // iterating, return false from the fn function.
   832  //
   833  // See GetEffectivePermissionsForPath method for more information on how to use this operation.
   834  //
   835  // Note: This operation can generate multiple requests to a service.
   836  //
   837  //    // Example iterating over at most 3 pages of a GetEffectivePermissionsForPath operation.
   838  //    pageNum := 0
   839  //    err := client.GetEffectivePermissionsForPathPages(params,
   840  //        func(page *lakeformation.GetEffectivePermissionsForPathOutput, lastPage bool) bool {
   841  //            pageNum++
   842  //            fmt.Println(page)
   843  //            return pageNum <= 3
   844  //        })
   845  //
   846  func (c *LakeFormation) GetEffectivePermissionsForPathPages(input *GetEffectivePermissionsForPathInput, fn func(*GetEffectivePermissionsForPathOutput, bool) bool) error {
   847  	return c.GetEffectivePermissionsForPathPagesWithContext(aws.BackgroundContext(), input, fn)
   848  }
   849  
   850  // GetEffectivePermissionsForPathPagesWithContext same as GetEffectivePermissionsForPathPages except
   851  // it takes a Context and allows setting request options on the pages.
   852  //
   853  // The context must be non-nil and will be used for request cancellation. If
   854  // the context is nil a panic will occur. In the future the SDK may create
   855  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   856  // for more information on using Contexts.
   857  func (c *LakeFormation) GetEffectivePermissionsForPathPagesWithContext(ctx aws.Context, input *GetEffectivePermissionsForPathInput, fn func(*GetEffectivePermissionsForPathOutput, bool) bool, opts ...request.Option) error {
   858  	p := request.Pagination{
   859  		NewRequest: func() (*request.Request, error) {
   860  			var inCpy *GetEffectivePermissionsForPathInput
   861  			if input != nil {
   862  				tmp := *input
   863  				inCpy = &tmp
   864  			}
   865  			req, _ := c.GetEffectivePermissionsForPathRequest(inCpy)
   866  			req.SetContext(ctx)
   867  			req.ApplyOptions(opts...)
   868  			return req, nil
   869  		},
   870  	}
   871  
   872  	for p.Next() {
   873  		if !fn(p.Page().(*GetEffectivePermissionsForPathOutput), !p.HasNextPage()) {
   874  			break
   875  		}
   876  	}
   877  
   878  	return p.Err()
   879  }
   880  
   881  const opGetLFTag = "GetLFTag"
   882  
   883  // GetLFTagRequest generates a "aws/request.Request" representing the
   884  // client's request for the GetLFTag operation. The "output" return
   885  // value will be populated with the request's response once the request completes
   886  // successfully.
   887  //
   888  // Use "Send" method on the returned Request to send the API call to the service.
   889  // the "output" return value is not valid until after Send returns without error.
   890  //
   891  // See GetLFTag for more information on using the GetLFTag
   892  // API call, and error handling.
   893  //
   894  // This method is useful when you want to inject custom logic or configuration
   895  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   896  //
   897  //
   898  //    // Example sending a request using the GetLFTagRequest method.
   899  //    req, resp := client.GetLFTagRequest(params)
   900  //
   901  //    err := req.Send()
   902  //    if err == nil { // resp is now filled
   903  //        fmt.Println(resp)
   904  //    }
   905  //
   906  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetLFTag
   907  func (c *LakeFormation) GetLFTagRequest(input *GetLFTagInput) (req *request.Request, output *GetLFTagOutput) {
   908  	op := &request.Operation{
   909  		Name:       opGetLFTag,
   910  		HTTPMethod: "POST",
   911  		HTTPPath:   "/",
   912  	}
   913  
   914  	if input == nil {
   915  		input = &GetLFTagInput{}
   916  	}
   917  
   918  	output = &GetLFTagOutput{}
   919  	req = c.newRequest(op, input, output)
   920  	return
   921  }
   922  
   923  // GetLFTag API operation for AWS Lake Formation.
   924  //
   925  // Returns a tag definition.
   926  //
   927  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   928  // with awserr.Error's Code and Message methods to get detailed information about
   929  // the error.
   930  //
   931  // See the AWS API reference guide for AWS Lake Formation's
   932  // API operation GetLFTag for usage and error information.
   933  //
   934  // Returned Error Types:
   935  //   * EntityNotFoundException
   936  //   A specified entity does not exist
   937  //
   938  //   * InvalidInputException
   939  //   The input provided was not valid.
   940  //
   941  //   * InternalServiceException
   942  //   An internal service error occurred.
   943  //
   944  //   * OperationTimeoutException
   945  //   The operation timed out.
   946  //
   947  //   * AccessDeniedException
   948  //   Access to a resource was denied.
   949  //
   950  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetLFTag
   951  func (c *LakeFormation) GetLFTag(input *GetLFTagInput) (*GetLFTagOutput, error) {
   952  	req, out := c.GetLFTagRequest(input)
   953  	return out, req.Send()
   954  }
   955  
   956  // GetLFTagWithContext is the same as GetLFTag with the addition of
   957  // the ability to pass a context and additional request options.
   958  //
   959  // See GetLFTag for details on how to use this API operation.
   960  //
   961  // The context must be non-nil and will be used for request cancellation. If
   962  // the context is nil a panic will occur. In the future the SDK may create
   963  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   964  // for more information on using Contexts.
   965  func (c *LakeFormation) GetLFTagWithContext(ctx aws.Context, input *GetLFTagInput, opts ...request.Option) (*GetLFTagOutput, error) {
   966  	req, out := c.GetLFTagRequest(input)
   967  	req.SetContext(ctx)
   968  	req.ApplyOptions(opts...)
   969  	return out, req.Send()
   970  }
   971  
   972  const opGetResourceLFTags = "GetResourceLFTags"
   973  
   974  // GetResourceLFTagsRequest generates a "aws/request.Request" representing the
   975  // client's request for the GetResourceLFTags operation. The "output" return
   976  // value will be populated with the request's response once the request completes
   977  // successfully.
   978  //
   979  // Use "Send" method on the returned Request to send the API call to the service.
   980  // the "output" return value is not valid until after Send returns without error.
   981  //
   982  // See GetResourceLFTags for more information on using the GetResourceLFTags
   983  // API call, and error handling.
   984  //
   985  // This method is useful when you want to inject custom logic or configuration
   986  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   987  //
   988  //
   989  //    // Example sending a request using the GetResourceLFTagsRequest method.
   990  //    req, resp := client.GetResourceLFTagsRequest(params)
   991  //
   992  //    err := req.Send()
   993  //    if err == nil { // resp is now filled
   994  //        fmt.Println(resp)
   995  //    }
   996  //
   997  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetResourceLFTags
   998  func (c *LakeFormation) GetResourceLFTagsRequest(input *GetResourceLFTagsInput) (req *request.Request, output *GetResourceLFTagsOutput) {
   999  	op := &request.Operation{
  1000  		Name:       opGetResourceLFTags,
  1001  		HTTPMethod: "POST",
  1002  		HTTPPath:   "/",
  1003  	}
  1004  
  1005  	if input == nil {
  1006  		input = &GetResourceLFTagsInput{}
  1007  	}
  1008  
  1009  	output = &GetResourceLFTagsOutput{}
  1010  	req = c.newRequest(op, input, output)
  1011  	return
  1012  }
  1013  
  1014  // GetResourceLFTags API operation for AWS Lake Formation.
  1015  //
  1016  // Returns the tags applied to a resource.
  1017  //
  1018  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1019  // with awserr.Error's Code and Message methods to get detailed information about
  1020  // the error.
  1021  //
  1022  // See the AWS API reference guide for AWS Lake Formation's
  1023  // API operation GetResourceLFTags for usage and error information.
  1024  //
  1025  // Returned Error Types:
  1026  //   * EntityNotFoundException
  1027  //   A specified entity does not exist
  1028  //
  1029  //   * InvalidInputException
  1030  //   The input provided was not valid.
  1031  //
  1032  //   * InternalServiceException
  1033  //   An internal service error occurred.
  1034  //
  1035  //   * OperationTimeoutException
  1036  //   The operation timed out.
  1037  //
  1038  //   * GlueEncryptionException
  1039  //   An encryption operation failed.
  1040  //
  1041  //   * AccessDeniedException
  1042  //   Access to a resource was denied.
  1043  //
  1044  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetResourceLFTags
  1045  func (c *LakeFormation) GetResourceLFTags(input *GetResourceLFTagsInput) (*GetResourceLFTagsOutput, error) {
  1046  	req, out := c.GetResourceLFTagsRequest(input)
  1047  	return out, req.Send()
  1048  }
  1049  
  1050  // GetResourceLFTagsWithContext is the same as GetResourceLFTags with the addition of
  1051  // the ability to pass a context and additional request options.
  1052  //
  1053  // See GetResourceLFTags for details on how to use this API operation.
  1054  //
  1055  // The context must be non-nil and will be used for request cancellation. If
  1056  // the context is nil a panic will occur. In the future the SDK may create
  1057  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1058  // for more information on using Contexts.
  1059  func (c *LakeFormation) GetResourceLFTagsWithContext(ctx aws.Context, input *GetResourceLFTagsInput, opts ...request.Option) (*GetResourceLFTagsOutput, error) {
  1060  	req, out := c.GetResourceLFTagsRequest(input)
  1061  	req.SetContext(ctx)
  1062  	req.ApplyOptions(opts...)
  1063  	return out, req.Send()
  1064  }
  1065  
  1066  const opGrantPermissions = "GrantPermissions"
  1067  
  1068  // GrantPermissionsRequest generates a "aws/request.Request" representing the
  1069  // client's request for the GrantPermissions operation. The "output" return
  1070  // value will be populated with the request's response once the request completes
  1071  // successfully.
  1072  //
  1073  // Use "Send" method on the returned Request to send the API call to the service.
  1074  // the "output" return value is not valid until after Send returns without error.
  1075  //
  1076  // See GrantPermissions for more information on using the GrantPermissions
  1077  // API call, and error handling.
  1078  //
  1079  // This method is useful when you want to inject custom logic or configuration
  1080  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1081  //
  1082  //
  1083  //    // Example sending a request using the GrantPermissionsRequest method.
  1084  //    req, resp := client.GrantPermissionsRequest(params)
  1085  //
  1086  //    err := req.Send()
  1087  //    if err == nil { // resp is now filled
  1088  //        fmt.Println(resp)
  1089  //    }
  1090  //
  1091  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GrantPermissions
  1092  func (c *LakeFormation) GrantPermissionsRequest(input *GrantPermissionsInput) (req *request.Request, output *GrantPermissionsOutput) {
  1093  	op := &request.Operation{
  1094  		Name:       opGrantPermissions,
  1095  		HTTPMethod: "POST",
  1096  		HTTPPath:   "/",
  1097  	}
  1098  
  1099  	if input == nil {
  1100  		input = &GrantPermissionsInput{}
  1101  	}
  1102  
  1103  	output = &GrantPermissionsOutput{}
  1104  	req = c.newRequest(op, input, output)
  1105  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1106  	return
  1107  }
  1108  
  1109  // GrantPermissions API operation for AWS Lake Formation.
  1110  //
  1111  // Grants permissions to the principal to access metadata in the Data Catalog
  1112  // and data organized in underlying data storage such as Amazon S3.
  1113  //
  1114  // For information about permissions, see Security and Access Control to Metadata
  1115  // and Data (https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html).
  1116  //
  1117  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1118  // with awserr.Error's Code and Message methods to get detailed information about
  1119  // the error.
  1120  //
  1121  // See the AWS API reference guide for AWS Lake Formation's
  1122  // API operation GrantPermissions for usage and error information.
  1123  //
  1124  // Returned Error Types:
  1125  //   * ConcurrentModificationException
  1126  //   Two processes are trying to modify a resource simultaneously.
  1127  //
  1128  //   * EntityNotFoundException
  1129  //   A specified entity does not exist
  1130  //
  1131  //   * InvalidInputException
  1132  //   The input provided was not valid.
  1133  //
  1134  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GrantPermissions
  1135  func (c *LakeFormation) GrantPermissions(input *GrantPermissionsInput) (*GrantPermissionsOutput, error) {
  1136  	req, out := c.GrantPermissionsRequest(input)
  1137  	return out, req.Send()
  1138  }
  1139  
  1140  // GrantPermissionsWithContext is the same as GrantPermissions with the addition of
  1141  // the ability to pass a context and additional request options.
  1142  //
  1143  // See GrantPermissions for details on how to use this API operation.
  1144  //
  1145  // The context must be non-nil and will be used for request cancellation. If
  1146  // the context is nil a panic will occur. In the future the SDK may create
  1147  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1148  // for more information on using Contexts.
  1149  func (c *LakeFormation) GrantPermissionsWithContext(ctx aws.Context, input *GrantPermissionsInput, opts ...request.Option) (*GrantPermissionsOutput, error) {
  1150  	req, out := c.GrantPermissionsRequest(input)
  1151  	req.SetContext(ctx)
  1152  	req.ApplyOptions(opts...)
  1153  	return out, req.Send()
  1154  }
  1155  
  1156  const opListLFTags = "ListLFTags"
  1157  
  1158  // ListLFTagsRequest generates a "aws/request.Request" representing the
  1159  // client's request for the ListLFTags operation. The "output" return
  1160  // value will be populated with the request's response once the request completes
  1161  // successfully.
  1162  //
  1163  // Use "Send" method on the returned Request to send the API call to the service.
  1164  // the "output" return value is not valid until after Send returns without error.
  1165  //
  1166  // See ListLFTags for more information on using the ListLFTags
  1167  // API call, and error handling.
  1168  //
  1169  // This method is useful when you want to inject custom logic or configuration
  1170  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1171  //
  1172  //
  1173  //    // Example sending a request using the ListLFTagsRequest method.
  1174  //    req, resp := client.ListLFTagsRequest(params)
  1175  //
  1176  //    err := req.Send()
  1177  //    if err == nil { // resp is now filled
  1178  //        fmt.Println(resp)
  1179  //    }
  1180  //
  1181  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListLFTags
  1182  func (c *LakeFormation) ListLFTagsRequest(input *ListLFTagsInput) (req *request.Request, output *ListLFTagsOutput) {
  1183  	op := &request.Operation{
  1184  		Name:       opListLFTags,
  1185  		HTTPMethod: "POST",
  1186  		HTTPPath:   "/",
  1187  	}
  1188  
  1189  	if input == nil {
  1190  		input = &ListLFTagsInput{}
  1191  	}
  1192  
  1193  	output = &ListLFTagsOutput{}
  1194  	req = c.newRequest(op, input, output)
  1195  	return
  1196  }
  1197  
  1198  // ListLFTags API operation for AWS Lake Formation.
  1199  //
  1200  // Lists tags that the requester has permission to view.
  1201  //
  1202  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1203  // with awserr.Error's Code and Message methods to get detailed information about
  1204  // the error.
  1205  //
  1206  // See the AWS API reference guide for AWS Lake Formation's
  1207  // API operation ListLFTags for usage and error information.
  1208  //
  1209  // Returned Error Types:
  1210  //   * EntityNotFoundException
  1211  //   A specified entity does not exist
  1212  //
  1213  //   * InvalidInputException
  1214  //   The input provided was not valid.
  1215  //
  1216  //   * InternalServiceException
  1217  //   An internal service error occurred.
  1218  //
  1219  //   * OperationTimeoutException
  1220  //   The operation timed out.
  1221  //
  1222  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListLFTags
  1223  func (c *LakeFormation) ListLFTags(input *ListLFTagsInput) (*ListLFTagsOutput, error) {
  1224  	req, out := c.ListLFTagsRequest(input)
  1225  	return out, req.Send()
  1226  }
  1227  
  1228  // ListLFTagsWithContext is the same as ListLFTags with the addition of
  1229  // the ability to pass a context and additional request options.
  1230  //
  1231  // See ListLFTags for details on how to use this API operation.
  1232  //
  1233  // The context must be non-nil and will be used for request cancellation. If
  1234  // the context is nil a panic will occur. In the future the SDK may create
  1235  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1236  // for more information on using Contexts.
  1237  func (c *LakeFormation) ListLFTagsWithContext(ctx aws.Context, input *ListLFTagsInput, opts ...request.Option) (*ListLFTagsOutput, error) {
  1238  	req, out := c.ListLFTagsRequest(input)
  1239  	req.SetContext(ctx)
  1240  	req.ApplyOptions(opts...)
  1241  	return out, req.Send()
  1242  }
  1243  
  1244  const opListPermissions = "ListPermissions"
  1245  
  1246  // ListPermissionsRequest generates a "aws/request.Request" representing the
  1247  // client's request for the ListPermissions operation. The "output" return
  1248  // value will be populated with the request's response once the request completes
  1249  // successfully.
  1250  //
  1251  // Use "Send" method on the returned Request to send the API call to the service.
  1252  // the "output" return value is not valid until after Send returns without error.
  1253  //
  1254  // See ListPermissions for more information on using the ListPermissions
  1255  // API call, and error handling.
  1256  //
  1257  // This method is useful when you want to inject custom logic or configuration
  1258  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1259  //
  1260  //
  1261  //    // Example sending a request using the ListPermissionsRequest method.
  1262  //    req, resp := client.ListPermissionsRequest(params)
  1263  //
  1264  //    err := req.Send()
  1265  //    if err == nil { // resp is now filled
  1266  //        fmt.Println(resp)
  1267  //    }
  1268  //
  1269  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListPermissions
  1270  func (c *LakeFormation) ListPermissionsRequest(input *ListPermissionsInput) (req *request.Request, output *ListPermissionsOutput) {
  1271  	op := &request.Operation{
  1272  		Name:       opListPermissions,
  1273  		HTTPMethod: "POST",
  1274  		HTTPPath:   "/",
  1275  		Paginator: &request.Paginator{
  1276  			InputTokens:     []string{"NextToken"},
  1277  			OutputTokens:    []string{"NextToken"},
  1278  			LimitToken:      "MaxResults",
  1279  			TruncationToken: "",
  1280  		},
  1281  	}
  1282  
  1283  	if input == nil {
  1284  		input = &ListPermissionsInput{}
  1285  	}
  1286  
  1287  	output = &ListPermissionsOutput{}
  1288  	req = c.newRequest(op, input, output)
  1289  	return
  1290  }
  1291  
  1292  // ListPermissions API operation for AWS Lake Formation.
  1293  //
  1294  // Returns a list of the principal permissions on the resource, filtered by
  1295  // the permissions of the caller. For example, if you are granted an ALTER permission,
  1296  // you are able to see only the principal permissions for ALTER.
  1297  //
  1298  // This operation returns only those permissions that have been explicitly granted.
  1299  //
  1300  // For information about permissions, see Security and Access Control to Metadata
  1301  // and Data (https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html).
  1302  //
  1303  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1304  // with awserr.Error's Code and Message methods to get detailed information about
  1305  // the error.
  1306  //
  1307  // See the AWS API reference guide for AWS Lake Formation's
  1308  // API operation ListPermissions for usage and error information.
  1309  //
  1310  // Returned Error Types:
  1311  //   * InvalidInputException
  1312  //   The input provided was not valid.
  1313  //
  1314  //   * OperationTimeoutException
  1315  //   The operation timed out.
  1316  //
  1317  //   * InternalServiceException
  1318  //   An internal service error occurred.
  1319  //
  1320  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListPermissions
  1321  func (c *LakeFormation) ListPermissions(input *ListPermissionsInput) (*ListPermissionsOutput, error) {
  1322  	req, out := c.ListPermissionsRequest(input)
  1323  	return out, req.Send()
  1324  }
  1325  
  1326  // ListPermissionsWithContext is the same as ListPermissions with the addition of
  1327  // the ability to pass a context and additional request options.
  1328  //
  1329  // See ListPermissions for details on how to use this API operation.
  1330  //
  1331  // The context must be non-nil and will be used for request cancellation. If
  1332  // the context is nil a panic will occur. In the future the SDK may create
  1333  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1334  // for more information on using Contexts.
  1335  func (c *LakeFormation) ListPermissionsWithContext(ctx aws.Context, input *ListPermissionsInput, opts ...request.Option) (*ListPermissionsOutput, error) {
  1336  	req, out := c.ListPermissionsRequest(input)
  1337  	req.SetContext(ctx)
  1338  	req.ApplyOptions(opts...)
  1339  	return out, req.Send()
  1340  }
  1341  
  1342  // ListPermissionsPages iterates over the pages of a ListPermissions operation,
  1343  // calling the "fn" function with the response data for each page. To stop
  1344  // iterating, return false from the fn function.
  1345  //
  1346  // See ListPermissions method for more information on how to use this operation.
  1347  //
  1348  // Note: This operation can generate multiple requests to a service.
  1349  //
  1350  //    // Example iterating over at most 3 pages of a ListPermissions operation.
  1351  //    pageNum := 0
  1352  //    err := client.ListPermissionsPages(params,
  1353  //        func(page *lakeformation.ListPermissionsOutput, lastPage bool) bool {
  1354  //            pageNum++
  1355  //            fmt.Println(page)
  1356  //            return pageNum <= 3
  1357  //        })
  1358  //
  1359  func (c *LakeFormation) ListPermissionsPages(input *ListPermissionsInput, fn func(*ListPermissionsOutput, bool) bool) error {
  1360  	return c.ListPermissionsPagesWithContext(aws.BackgroundContext(), input, fn)
  1361  }
  1362  
  1363  // ListPermissionsPagesWithContext same as ListPermissionsPages except
  1364  // it takes a Context and allows setting request options on the pages.
  1365  //
  1366  // The context must be non-nil and will be used for request cancellation. If
  1367  // the context is nil a panic will occur. In the future the SDK may create
  1368  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1369  // for more information on using Contexts.
  1370  func (c *LakeFormation) ListPermissionsPagesWithContext(ctx aws.Context, input *ListPermissionsInput, fn func(*ListPermissionsOutput, bool) bool, opts ...request.Option) error {
  1371  	p := request.Pagination{
  1372  		NewRequest: func() (*request.Request, error) {
  1373  			var inCpy *ListPermissionsInput
  1374  			if input != nil {
  1375  				tmp := *input
  1376  				inCpy = &tmp
  1377  			}
  1378  			req, _ := c.ListPermissionsRequest(inCpy)
  1379  			req.SetContext(ctx)
  1380  			req.ApplyOptions(opts...)
  1381  			return req, nil
  1382  		},
  1383  	}
  1384  
  1385  	for p.Next() {
  1386  		if !fn(p.Page().(*ListPermissionsOutput), !p.HasNextPage()) {
  1387  			break
  1388  		}
  1389  	}
  1390  
  1391  	return p.Err()
  1392  }
  1393  
  1394  const opListResources = "ListResources"
  1395  
  1396  // ListResourcesRequest generates a "aws/request.Request" representing the
  1397  // client's request for the ListResources operation. The "output" return
  1398  // value will be populated with the request's response once the request completes
  1399  // successfully.
  1400  //
  1401  // Use "Send" method on the returned Request to send the API call to the service.
  1402  // the "output" return value is not valid until after Send returns without error.
  1403  //
  1404  // See ListResources for more information on using the ListResources
  1405  // API call, and error handling.
  1406  //
  1407  // This method is useful when you want to inject custom logic or configuration
  1408  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1409  //
  1410  //
  1411  //    // Example sending a request using the ListResourcesRequest method.
  1412  //    req, resp := client.ListResourcesRequest(params)
  1413  //
  1414  //    err := req.Send()
  1415  //    if err == nil { // resp is now filled
  1416  //        fmt.Println(resp)
  1417  //    }
  1418  //
  1419  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListResources
  1420  func (c *LakeFormation) ListResourcesRequest(input *ListResourcesInput) (req *request.Request, output *ListResourcesOutput) {
  1421  	op := &request.Operation{
  1422  		Name:       opListResources,
  1423  		HTTPMethod: "POST",
  1424  		HTTPPath:   "/",
  1425  		Paginator: &request.Paginator{
  1426  			InputTokens:     []string{"NextToken"},
  1427  			OutputTokens:    []string{"NextToken"},
  1428  			LimitToken:      "MaxResults",
  1429  			TruncationToken: "",
  1430  		},
  1431  	}
  1432  
  1433  	if input == nil {
  1434  		input = &ListResourcesInput{}
  1435  	}
  1436  
  1437  	output = &ListResourcesOutput{}
  1438  	req = c.newRequest(op, input, output)
  1439  	return
  1440  }
  1441  
  1442  // ListResources API operation for AWS Lake Formation.
  1443  //
  1444  // Lists the resources registered to be managed by the Data Catalog.
  1445  //
  1446  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1447  // with awserr.Error's Code and Message methods to get detailed information about
  1448  // the error.
  1449  //
  1450  // See the AWS API reference guide for AWS Lake Formation's
  1451  // API operation ListResources for usage and error information.
  1452  //
  1453  // Returned Error Types:
  1454  //   * InvalidInputException
  1455  //   The input provided was not valid.
  1456  //
  1457  //   * InternalServiceException
  1458  //   An internal service error occurred.
  1459  //
  1460  //   * OperationTimeoutException
  1461  //   The operation timed out.
  1462  //
  1463  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListResources
  1464  func (c *LakeFormation) ListResources(input *ListResourcesInput) (*ListResourcesOutput, error) {
  1465  	req, out := c.ListResourcesRequest(input)
  1466  	return out, req.Send()
  1467  }
  1468  
  1469  // ListResourcesWithContext is the same as ListResources with the addition of
  1470  // the ability to pass a context and additional request options.
  1471  //
  1472  // See ListResources for details on how to use this API operation.
  1473  //
  1474  // The context must be non-nil and will be used for request cancellation. If
  1475  // the context is nil a panic will occur. In the future the SDK may create
  1476  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1477  // for more information on using Contexts.
  1478  func (c *LakeFormation) ListResourcesWithContext(ctx aws.Context, input *ListResourcesInput, opts ...request.Option) (*ListResourcesOutput, error) {
  1479  	req, out := c.ListResourcesRequest(input)
  1480  	req.SetContext(ctx)
  1481  	req.ApplyOptions(opts...)
  1482  	return out, req.Send()
  1483  }
  1484  
  1485  // ListResourcesPages iterates over the pages of a ListResources operation,
  1486  // calling the "fn" function with the response data for each page. To stop
  1487  // iterating, return false from the fn function.
  1488  //
  1489  // See ListResources method for more information on how to use this operation.
  1490  //
  1491  // Note: This operation can generate multiple requests to a service.
  1492  //
  1493  //    // Example iterating over at most 3 pages of a ListResources operation.
  1494  //    pageNum := 0
  1495  //    err := client.ListResourcesPages(params,
  1496  //        func(page *lakeformation.ListResourcesOutput, lastPage bool) bool {
  1497  //            pageNum++
  1498  //            fmt.Println(page)
  1499  //            return pageNum <= 3
  1500  //        })
  1501  //
  1502  func (c *LakeFormation) ListResourcesPages(input *ListResourcesInput, fn func(*ListResourcesOutput, bool) bool) error {
  1503  	return c.ListResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
  1504  }
  1505  
  1506  // ListResourcesPagesWithContext same as ListResourcesPages except
  1507  // it takes a Context and allows setting request options on the pages.
  1508  //
  1509  // The context must be non-nil and will be used for request cancellation. If
  1510  // the context is nil a panic will occur. In the future the SDK may create
  1511  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1512  // for more information on using Contexts.
  1513  func (c *LakeFormation) ListResourcesPagesWithContext(ctx aws.Context, input *ListResourcesInput, fn func(*ListResourcesOutput, bool) bool, opts ...request.Option) error {
  1514  	p := request.Pagination{
  1515  		NewRequest: func() (*request.Request, error) {
  1516  			var inCpy *ListResourcesInput
  1517  			if input != nil {
  1518  				tmp := *input
  1519  				inCpy = &tmp
  1520  			}
  1521  			req, _ := c.ListResourcesRequest(inCpy)
  1522  			req.SetContext(ctx)
  1523  			req.ApplyOptions(opts...)
  1524  			return req, nil
  1525  		},
  1526  	}
  1527  
  1528  	for p.Next() {
  1529  		if !fn(p.Page().(*ListResourcesOutput), !p.HasNextPage()) {
  1530  			break
  1531  		}
  1532  	}
  1533  
  1534  	return p.Err()
  1535  }
  1536  
  1537  const opPutDataLakeSettings = "PutDataLakeSettings"
  1538  
  1539  // PutDataLakeSettingsRequest generates a "aws/request.Request" representing the
  1540  // client's request for the PutDataLakeSettings operation. The "output" return
  1541  // value will be populated with the request's response once the request completes
  1542  // successfully.
  1543  //
  1544  // Use "Send" method on the returned Request to send the API call to the service.
  1545  // the "output" return value is not valid until after Send returns without error.
  1546  //
  1547  // See PutDataLakeSettings for more information on using the PutDataLakeSettings
  1548  // API call, and error handling.
  1549  //
  1550  // This method is useful when you want to inject custom logic or configuration
  1551  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1552  //
  1553  //
  1554  //    // Example sending a request using the PutDataLakeSettingsRequest method.
  1555  //    req, resp := client.PutDataLakeSettingsRequest(params)
  1556  //
  1557  //    err := req.Send()
  1558  //    if err == nil { // resp is now filled
  1559  //        fmt.Println(resp)
  1560  //    }
  1561  //
  1562  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/PutDataLakeSettings
  1563  func (c *LakeFormation) PutDataLakeSettingsRequest(input *PutDataLakeSettingsInput) (req *request.Request, output *PutDataLakeSettingsOutput) {
  1564  	op := &request.Operation{
  1565  		Name:       opPutDataLakeSettings,
  1566  		HTTPMethod: "POST",
  1567  		HTTPPath:   "/",
  1568  	}
  1569  
  1570  	if input == nil {
  1571  		input = &PutDataLakeSettingsInput{}
  1572  	}
  1573  
  1574  	output = &PutDataLakeSettingsOutput{}
  1575  	req = c.newRequest(op, input, output)
  1576  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1577  	return
  1578  }
  1579  
  1580  // PutDataLakeSettings API operation for AWS Lake Formation.
  1581  //
  1582  // Sets the list of data lake administrators who have admin privileges on all
  1583  // resources managed by Lake Formation. For more information on admin privileges,
  1584  // see Granting Lake Formation Permissions (https://docs.aws.amazon.com/lake-formation/latest/dg/lake-formation-permissions.html).
  1585  //
  1586  // This API replaces the current list of data lake admins with the new list
  1587  // being passed. To add an admin, fetch the current list and add the new admin
  1588  // to that list and pass that list in this API.
  1589  //
  1590  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1591  // with awserr.Error's Code and Message methods to get detailed information about
  1592  // the error.
  1593  //
  1594  // See the AWS API reference guide for AWS Lake Formation's
  1595  // API operation PutDataLakeSettings for usage and error information.
  1596  //
  1597  // Returned Error Types:
  1598  //   * InternalServiceException
  1599  //   An internal service error occurred.
  1600  //
  1601  //   * InvalidInputException
  1602  //   The input provided was not valid.
  1603  //
  1604  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/PutDataLakeSettings
  1605  func (c *LakeFormation) PutDataLakeSettings(input *PutDataLakeSettingsInput) (*PutDataLakeSettingsOutput, error) {
  1606  	req, out := c.PutDataLakeSettingsRequest(input)
  1607  	return out, req.Send()
  1608  }
  1609  
  1610  // PutDataLakeSettingsWithContext is the same as PutDataLakeSettings with the addition of
  1611  // the ability to pass a context and additional request options.
  1612  //
  1613  // See PutDataLakeSettings for details on how to use this API operation.
  1614  //
  1615  // The context must be non-nil and will be used for request cancellation. If
  1616  // the context is nil a panic will occur. In the future the SDK may create
  1617  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1618  // for more information on using Contexts.
  1619  func (c *LakeFormation) PutDataLakeSettingsWithContext(ctx aws.Context, input *PutDataLakeSettingsInput, opts ...request.Option) (*PutDataLakeSettingsOutput, error) {
  1620  	req, out := c.PutDataLakeSettingsRequest(input)
  1621  	req.SetContext(ctx)
  1622  	req.ApplyOptions(opts...)
  1623  	return out, req.Send()
  1624  }
  1625  
  1626  const opRegisterResource = "RegisterResource"
  1627  
  1628  // RegisterResourceRequest generates a "aws/request.Request" representing the
  1629  // client's request for the RegisterResource operation. The "output" return
  1630  // value will be populated with the request's response once the request completes
  1631  // successfully.
  1632  //
  1633  // Use "Send" method on the returned Request to send the API call to the service.
  1634  // the "output" return value is not valid until after Send returns without error.
  1635  //
  1636  // See RegisterResource for more information on using the RegisterResource
  1637  // API call, and error handling.
  1638  //
  1639  // This method is useful when you want to inject custom logic or configuration
  1640  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1641  //
  1642  //
  1643  //    // Example sending a request using the RegisterResourceRequest method.
  1644  //    req, resp := client.RegisterResourceRequest(params)
  1645  //
  1646  //    err := req.Send()
  1647  //    if err == nil { // resp is now filled
  1648  //        fmt.Println(resp)
  1649  //    }
  1650  //
  1651  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/RegisterResource
  1652  func (c *LakeFormation) RegisterResourceRequest(input *RegisterResourceInput) (req *request.Request, output *RegisterResourceOutput) {
  1653  	op := &request.Operation{
  1654  		Name:       opRegisterResource,
  1655  		HTTPMethod: "POST",
  1656  		HTTPPath:   "/",
  1657  	}
  1658  
  1659  	if input == nil {
  1660  		input = &RegisterResourceInput{}
  1661  	}
  1662  
  1663  	output = &RegisterResourceOutput{}
  1664  	req = c.newRequest(op, input, output)
  1665  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1666  	return
  1667  }
  1668  
  1669  // RegisterResource API operation for AWS Lake Formation.
  1670  //
  1671  // Registers the resource as managed by the Data Catalog.
  1672  //
  1673  // To add or update data, Lake Formation needs read/write access to the chosen
  1674  // Amazon S3 path. Choose a role that you know has permission to do this, or
  1675  // choose the AWSServiceRoleForLakeFormationDataAccess service-linked role.
  1676  // When you register the first Amazon S3 path, the service-linked role and a
  1677  // new inline policy are created on your behalf. Lake Formation adds the first
  1678  // path to the inline policy and attaches it to the service-linked role. When
  1679  // you register subsequent paths, Lake Formation adds the path to the existing
  1680  // policy.
  1681  //
  1682  // The following request registers a new location and gives AWS Lake Formation
  1683  // permission to use the service-linked role to access that location.
  1684  //
  1685  // ResourceArn = arn:aws:s3:::my-bucket UseServiceLinkedRole = true
  1686  //
  1687  // If UseServiceLinkedRole is not set to true, you must provide or set the RoleArn:
  1688  //
  1689  // arn:aws:iam::12345:role/my-data-access-role
  1690  //
  1691  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1692  // with awserr.Error's Code and Message methods to get detailed information about
  1693  // the error.
  1694  //
  1695  // See the AWS API reference guide for AWS Lake Formation's
  1696  // API operation RegisterResource for usage and error information.
  1697  //
  1698  // Returned Error Types:
  1699  //   * InvalidInputException
  1700  //   The input provided was not valid.
  1701  //
  1702  //   * InternalServiceException
  1703  //   An internal service error occurred.
  1704  //
  1705  //   * OperationTimeoutException
  1706  //   The operation timed out.
  1707  //
  1708  //   * AlreadyExistsException
  1709  //   A resource to be created or added already exists.
  1710  //
  1711  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/RegisterResource
  1712  func (c *LakeFormation) RegisterResource(input *RegisterResourceInput) (*RegisterResourceOutput, error) {
  1713  	req, out := c.RegisterResourceRequest(input)
  1714  	return out, req.Send()
  1715  }
  1716  
  1717  // RegisterResourceWithContext is the same as RegisterResource with the addition of
  1718  // the ability to pass a context and additional request options.
  1719  //
  1720  // See RegisterResource for details on how to use this API operation.
  1721  //
  1722  // The context must be non-nil and will be used for request cancellation. If
  1723  // the context is nil a panic will occur. In the future the SDK may create
  1724  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1725  // for more information on using Contexts.
  1726  func (c *LakeFormation) RegisterResourceWithContext(ctx aws.Context, input *RegisterResourceInput, opts ...request.Option) (*RegisterResourceOutput, error) {
  1727  	req, out := c.RegisterResourceRequest(input)
  1728  	req.SetContext(ctx)
  1729  	req.ApplyOptions(opts...)
  1730  	return out, req.Send()
  1731  }
  1732  
  1733  const opRemoveLFTagsFromResource = "RemoveLFTagsFromResource"
  1734  
  1735  // RemoveLFTagsFromResourceRequest generates a "aws/request.Request" representing the
  1736  // client's request for the RemoveLFTagsFromResource operation. The "output" return
  1737  // value will be populated with the request's response once the request completes
  1738  // successfully.
  1739  //
  1740  // Use "Send" method on the returned Request to send the API call to the service.
  1741  // the "output" return value is not valid until after Send returns without error.
  1742  //
  1743  // See RemoveLFTagsFromResource for more information on using the RemoveLFTagsFromResource
  1744  // API call, and error handling.
  1745  //
  1746  // This method is useful when you want to inject custom logic or configuration
  1747  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1748  //
  1749  //
  1750  //    // Example sending a request using the RemoveLFTagsFromResourceRequest method.
  1751  //    req, resp := client.RemoveLFTagsFromResourceRequest(params)
  1752  //
  1753  //    err := req.Send()
  1754  //    if err == nil { // resp is now filled
  1755  //        fmt.Println(resp)
  1756  //    }
  1757  //
  1758  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/RemoveLFTagsFromResource
  1759  func (c *LakeFormation) RemoveLFTagsFromResourceRequest(input *RemoveLFTagsFromResourceInput) (req *request.Request, output *RemoveLFTagsFromResourceOutput) {
  1760  	op := &request.Operation{
  1761  		Name:       opRemoveLFTagsFromResource,
  1762  		HTTPMethod: "POST",
  1763  		HTTPPath:   "/",
  1764  	}
  1765  
  1766  	if input == nil {
  1767  		input = &RemoveLFTagsFromResourceInput{}
  1768  	}
  1769  
  1770  	output = &RemoveLFTagsFromResourceOutput{}
  1771  	req = c.newRequest(op, input, output)
  1772  	return
  1773  }
  1774  
  1775  // RemoveLFTagsFromResource API operation for AWS Lake Formation.
  1776  //
  1777  // Removes a tag from the resource. Only database, table, or tableWithColumns
  1778  // resource are allowed. To tag columns, use the column inclusion list in tableWithColumns
  1779  // to specify column input.
  1780  //
  1781  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1782  // with awserr.Error's Code and Message methods to get detailed information about
  1783  // the error.
  1784  //
  1785  // See the AWS API reference guide for AWS Lake Formation's
  1786  // API operation RemoveLFTagsFromResource for usage and error information.
  1787  //
  1788  // Returned Error Types:
  1789  //   * EntityNotFoundException
  1790  //   A specified entity does not exist
  1791  //
  1792  //   * InvalidInputException
  1793  //   The input provided was not valid.
  1794  //
  1795  //   * InternalServiceException
  1796  //   An internal service error occurred.
  1797  //
  1798  //   * OperationTimeoutException
  1799  //   The operation timed out.
  1800  //
  1801  //   * GlueEncryptionException
  1802  //   An encryption operation failed.
  1803  //
  1804  //   * AccessDeniedException
  1805  //   Access to a resource was denied.
  1806  //
  1807  //   * ConcurrentModificationException
  1808  //   Two processes are trying to modify a resource simultaneously.
  1809  //
  1810  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/RemoveLFTagsFromResource
  1811  func (c *LakeFormation) RemoveLFTagsFromResource(input *RemoveLFTagsFromResourceInput) (*RemoveLFTagsFromResourceOutput, error) {
  1812  	req, out := c.RemoveLFTagsFromResourceRequest(input)
  1813  	return out, req.Send()
  1814  }
  1815  
  1816  // RemoveLFTagsFromResourceWithContext is the same as RemoveLFTagsFromResource with the addition of
  1817  // the ability to pass a context and additional request options.
  1818  //
  1819  // See RemoveLFTagsFromResource for details on how to use this API operation.
  1820  //
  1821  // The context must be non-nil and will be used for request cancellation. If
  1822  // the context is nil a panic will occur. In the future the SDK may create
  1823  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1824  // for more information on using Contexts.
  1825  func (c *LakeFormation) RemoveLFTagsFromResourceWithContext(ctx aws.Context, input *RemoveLFTagsFromResourceInput, opts ...request.Option) (*RemoveLFTagsFromResourceOutput, error) {
  1826  	req, out := c.RemoveLFTagsFromResourceRequest(input)
  1827  	req.SetContext(ctx)
  1828  	req.ApplyOptions(opts...)
  1829  	return out, req.Send()
  1830  }
  1831  
  1832  const opRevokePermissions = "RevokePermissions"
  1833  
  1834  // RevokePermissionsRequest generates a "aws/request.Request" representing the
  1835  // client's request for the RevokePermissions operation. The "output" return
  1836  // value will be populated with the request's response once the request completes
  1837  // successfully.
  1838  //
  1839  // Use "Send" method on the returned Request to send the API call to the service.
  1840  // the "output" return value is not valid until after Send returns without error.
  1841  //
  1842  // See RevokePermissions for more information on using the RevokePermissions
  1843  // API call, and error handling.
  1844  //
  1845  // This method is useful when you want to inject custom logic or configuration
  1846  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1847  //
  1848  //
  1849  //    // Example sending a request using the RevokePermissionsRequest method.
  1850  //    req, resp := client.RevokePermissionsRequest(params)
  1851  //
  1852  //    err := req.Send()
  1853  //    if err == nil { // resp is now filled
  1854  //        fmt.Println(resp)
  1855  //    }
  1856  //
  1857  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/RevokePermissions
  1858  func (c *LakeFormation) RevokePermissionsRequest(input *RevokePermissionsInput) (req *request.Request, output *RevokePermissionsOutput) {
  1859  	op := &request.Operation{
  1860  		Name:       opRevokePermissions,
  1861  		HTTPMethod: "POST",
  1862  		HTTPPath:   "/",
  1863  	}
  1864  
  1865  	if input == nil {
  1866  		input = &RevokePermissionsInput{}
  1867  	}
  1868  
  1869  	output = &RevokePermissionsOutput{}
  1870  	req = c.newRequest(op, input, output)
  1871  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1872  	return
  1873  }
  1874  
  1875  // RevokePermissions API operation for AWS Lake Formation.
  1876  //
  1877  // Revokes permissions to the principal to access metadata in the Data Catalog
  1878  // and data organized in underlying data storage such as Amazon S3.
  1879  //
  1880  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1881  // with awserr.Error's Code and Message methods to get detailed information about
  1882  // the error.
  1883  //
  1884  // See the AWS API reference guide for AWS Lake Formation's
  1885  // API operation RevokePermissions for usage and error information.
  1886  //
  1887  // Returned Error Types:
  1888  //   * ConcurrentModificationException
  1889  //   Two processes are trying to modify a resource simultaneously.
  1890  //
  1891  //   * EntityNotFoundException
  1892  //   A specified entity does not exist
  1893  //
  1894  //   * InvalidInputException
  1895  //   The input provided was not valid.
  1896  //
  1897  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/RevokePermissions
  1898  func (c *LakeFormation) RevokePermissions(input *RevokePermissionsInput) (*RevokePermissionsOutput, error) {
  1899  	req, out := c.RevokePermissionsRequest(input)
  1900  	return out, req.Send()
  1901  }
  1902  
  1903  // RevokePermissionsWithContext is the same as RevokePermissions with the addition of
  1904  // the ability to pass a context and additional request options.
  1905  //
  1906  // See RevokePermissions for details on how to use this API operation.
  1907  //
  1908  // The context must be non-nil and will be used for request cancellation. If
  1909  // the context is nil a panic will occur. In the future the SDK may create
  1910  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1911  // for more information on using Contexts.
  1912  func (c *LakeFormation) RevokePermissionsWithContext(ctx aws.Context, input *RevokePermissionsInput, opts ...request.Option) (*RevokePermissionsOutput, error) {
  1913  	req, out := c.RevokePermissionsRequest(input)
  1914  	req.SetContext(ctx)
  1915  	req.ApplyOptions(opts...)
  1916  	return out, req.Send()
  1917  }
  1918  
  1919  const opSearchDatabasesByLFTags = "SearchDatabasesByLFTags"
  1920  
  1921  // SearchDatabasesByLFTagsRequest generates a "aws/request.Request" representing the
  1922  // client's request for the SearchDatabasesByLFTags operation. The "output" return
  1923  // value will be populated with the request's response once the request completes
  1924  // successfully.
  1925  //
  1926  // Use "Send" method on the returned Request to send the API call to the service.
  1927  // the "output" return value is not valid until after Send returns without error.
  1928  //
  1929  // See SearchDatabasesByLFTags for more information on using the SearchDatabasesByLFTags
  1930  // API call, and error handling.
  1931  //
  1932  // This method is useful when you want to inject custom logic or configuration
  1933  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1934  //
  1935  //
  1936  //    // Example sending a request using the SearchDatabasesByLFTagsRequest method.
  1937  //    req, resp := client.SearchDatabasesByLFTagsRequest(params)
  1938  //
  1939  //    err := req.Send()
  1940  //    if err == nil { // resp is now filled
  1941  //        fmt.Println(resp)
  1942  //    }
  1943  //
  1944  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/SearchDatabasesByLFTags
  1945  func (c *LakeFormation) SearchDatabasesByLFTagsRequest(input *SearchDatabasesByLFTagsInput) (req *request.Request, output *SearchDatabasesByLFTagsOutput) {
  1946  	op := &request.Operation{
  1947  		Name:       opSearchDatabasesByLFTags,
  1948  		HTTPMethod: "POST",
  1949  		HTTPPath:   "/",
  1950  	}
  1951  
  1952  	if input == nil {
  1953  		input = &SearchDatabasesByLFTagsInput{}
  1954  	}
  1955  
  1956  	output = &SearchDatabasesByLFTagsOutput{}
  1957  	req = c.newRequest(op, input, output)
  1958  	return
  1959  }
  1960  
  1961  // SearchDatabasesByLFTags API operation for AWS Lake Formation.
  1962  //
  1963  // This operation allows a search on DATABASE resources by TagCondition. This
  1964  // operation is used by admins who want to grant user permissions on certain
  1965  // TagConditions. Before making a grant, the admin can use SearchDatabasesByTags
  1966  // to find all resources where the given TagConditions are valid to verify whether
  1967  // the returned resources can be shared.
  1968  //
  1969  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1970  // with awserr.Error's Code and Message methods to get detailed information about
  1971  // the error.
  1972  //
  1973  // See the AWS API reference guide for AWS Lake Formation's
  1974  // API operation SearchDatabasesByLFTags for usage and error information.
  1975  //
  1976  // Returned Error Types:
  1977  //   * EntityNotFoundException
  1978  //   A specified entity does not exist
  1979  //
  1980  //   * InternalServiceException
  1981  //   An internal service error occurred.
  1982  //
  1983  //   * InvalidInputException
  1984  //   The input provided was not valid.
  1985  //
  1986  //   * OperationTimeoutException
  1987  //   The operation timed out.
  1988  //
  1989  //   * GlueEncryptionException
  1990  //   An encryption operation failed.
  1991  //
  1992  //   * AccessDeniedException
  1993  //   Access to a resource was denied.
  1994  //
  1995  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/SearchDatabasesByLFTags
  1996  func (c *LakeFormation) SearchDatabasesByLFTags(input *SearchDatabasesByLFTagsInput) (*SearchDatabasesByLFTagsOutput, error) {
  1997  	req, out := c.SearchDatabasesByLFTagsRequest(input)
  1998  	return out, req.Send()
  1999  }
  2000  
  2001  // SearchDatabasesByLFTagsWithContext is the same as SearchDatabasesByLFTags with the addition of
  2002  // the ability to pass a context and additional request options.
  2003  //
  2004  // See SearchDatabasesByLFTags for details on how to use this API operation.
  2005  //
  2006  // The context must be non-nil and will be used for request cancellation. If
  2007  // the context is nil a panic will occur. In the future the SDK may create
  2008  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2009  // for more information on using Contexts.
  2010  func (c *LakeFormation) SearchDatabasesByLFTagsWithContext(ctx aws.Context, input *SearchDatabasesByLFTagsInput, opts ...request.Option) (*SearchDatabasesByLFTagsOutput, error) {
  2011  	req, out := c.SearchDatabasesByLFTagsRequest(input)
  2012  	req.SetContext(ctx)
  2013  	req.ApplyOptions(opts...)
  2014  	return out, req.Send()
  2015  }
  2016  
  2017  const opSearchTablesByLFTags = "SearchTablesByLFTags"
  2018  
  2019  // SearchTablesByLFTagsRequest generates a "aws/request.Request" representing the
  2020  // client's request for the SearchTablesByLFTags operation. The "output" return
  2021  // value will be populated with the request's response once the request completes
  2022  // successfully.
  2023  //
  2024  // Use "Send" method on the returned Request to send the API call to the service.
  2025  // the "output" return value is not valid until after Send returns without error.
  2026  //
  2027  // See SearchTablesByLFTags for more information on using the SearchTablesByLFTags
  2028  // API call, and error handling.
  2029  //
  2030  // This method is useful when you want to inject custom logic or configuration
  2031  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2032  //
  2033  //
  2034  //    // Example sending a request using the SearchTablesByLFTagsRequest method.
  2035  //    req, resp := client.SearchTablesByLFTagsRequest(params)
  2036  //
  2037  //    err := req.Send()
  2038  //    if err == nil { // resp is now filled
  2039  //        fmt.Println(resp)
  2040  //    }
  2041  //
  2042  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/SearchTablesByLFTags
  2043  func (c *LakeFormation) SearchTablesByLFTagsRequest(input *SearchTablesByLFTagsInput) (req *request.Request, output *SearchTablesByLFTagsOutput) {
  2044  	op := &request.Operation{
  2045  		Name:       opSearchTablesByLFTags,
  2046  		HTTPMethod: "POST",
  2047  		HTTPPath:   "/",
  2048  	}
  2049  
  2050  	if input == nil {
  2051  		input = &SearchTablesByLFTagsInput{}
  2052  	}
  2053  
  2054  	output = &SearchTablesByLFTagsOutput{}
  2055  	req = c.newRequest(op, input, output)
  2056  	return
  2057  }
  2058  
  2059  // SearchTablesByLFTags API operation for AWS Lake Formation.
  2060  //
  2061  // This operation allows a search on TABLE resources by LFTags. This will be
  2062  // used by admins who want to grant user permissions on certain LFTags. Before
  2063  // making a grant, the admin can use SearchTablesByLFTags to find all resources
  2064  // where the given LFTags are valid to verify whether the returned resources
  2065  // can be shared.
  2066  //
  2067  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2068  // with awserr.Error's Code and Message methods to get detailed information about
  2069  // the error.
  2070  //
  2071  // See the AWS API reference guide for AWS Lake Formation's
  2072  // API operation SearchTablesByLFTags for usage and error information.
  2073  //
  2074  // Returned Error Types:
  2075  //   * EntityNotFoundException
  2076  //   A specified entity does not exist
  2077  //
  2078  //   * InternalServiceException
  2079  //   An internal service error occurred.
  2080  //
  2081  //   * InvalidInputException
  2082  //   The input provided was not valid.
  2083  //
  2084  //   * OperationTimeoutException
  2085  //   The operation timed out.
  2086  //
  2087  //   * GlueEncryptionException
  2088  //   An encryption operation failed.
  2089  //
  2090  //   * AccessDeniedException
  2091  //   Access to a resource was denied.
  2092  //
  2093  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/SearchTablesByLFTags
  2094  func (c *LakeFormation) SearchTablesByLFTags(input *SearchTablesByLFTagsInput) (*SearchTablesByLFTagsOutput, error) {
  2095  	req, out := c.SearchTablesByLFTagsRequest(input)
  2096  	return out, req.Send()
  2097  }
  2098  
  2099  // SearchTablesByLFTagsWithContext is the same as SearchTablesByLFTags with the addition of
  2100  // the ability to pass a context and additional request options.
  2101  //
  2102  // See SearchTablesByLFTags for details on how to use this API operation.
  2103  //
  2104  // The context must be non-nil and will be used for request cancellation. If
  2105  // the context is nil a panic will occur. In the future the SDK may create
  2106  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2107  // for more information on using Contexts.
  2108  func (c *LakeFormation) SearchTablesByLFTagsWithContext(ctx aws.Context, input *SearchTablesByLFTagsInput, opts ...request.Option) (*SearchTablesByLFTagsOutput, error) {
  2109  	req, out := c.SearchTablesByLFTagsRequest(input)
  2110  	req.SetContext(ctx)
  2111  	req.ApplyOptions(opts...)
  2112  	return out, req.Send()
  2113  }
  2114  
  2115  const opUpdateLFTag = "UpdateLFTag"
  2116  
  2117  // UpdateLFTagRequest generates a "aws/request.Request" representing the
  2118  // client's request for the UpdateLFTag operation. The "output" return
  2119  // value will be populated with the request's response once the request completes
  2120  // successfully.
  2121  //
  2122  // Use "Send" method on the returned Request to send the API call to the service.
  2123  // the "output" return value is not valid until after Send returns without error.
  2124  //
  2125  // See UpdateLFTag for more information on using the UpdateLFTag
  2126  // API call, and error handling.
  2127  //
  2128  // This method is useful when you want to inject custom logic or configuration
  2129  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2130  //
  2131  //
  2132  //    // Example sending a request using the UpdateLFTagRequest method.
  2133  //    req, resp := client.UpdateLFTagRequest(params)
  2134  //
  2135  //    err := req.Send()
  2136  //    if err == nil { // resp is now filled
  2137  //        fmt.Println(resp)
  2138  //    }
  2139  //
  2140  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/UpdateLFTag
  2141  func (c *LakeFormation) UpdateLFTagRequest(input *UpdateLFTagInput) (req *request.Request, output *UpdateLFTagOutput) {
  2142  	op := &request.Operation{
  2143  		Name:       opUpdateLFTag,
  2144  		HTTPMethod: "POST",
  2145  		HTTPPath:   "/",
  2146  	}
  2147  
  2148  	if input == nil {
  2149  		input = &UpdateLFTagInput{}
  2150  	}
  2151  
  2152  	output = &UpdateLFTagOutput{}
  2153  	req = c.newRequest(op, input, output)
  2154  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2155  	return
  2156  }
  2157  
  2158  // UpdateLFTag API operation for AWS Lake Formation.
  2159  //
  2160  // Updates the list of possible values for the specified tag key. If the tag
  2161  // does not exist, the operation throws an EntityNotFoundException. The values
  2162  // in the delete key values will be deleted from list of possible values. If
  2163  // any value in the delete key values is attached to a resource, then API errors
  2164  // out with a 400 Exception - "Update not allowed". Untag the attribute before
  2165  // deleting the tag key's value.
  2166  //
  2167  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2168  // with awserr.Error's Code and Message methods to get detailed information about
  2169  // the error.
  2170  //
  2171  // See the AWS API reference guide for AWS Lake Formation's
  2172  // API operation UpdateLFTag for usage and error information.
  2173  //
  2174  // Returned Error Types:
  2175  //   * EntityNotFoundException
  2176  //   A specified entity does not exist
  2177  //
  2178  //   * InvalidInputException
  2179  //   The input provided was not valid.
  2180  //
  2181  //   * InternalServiceException
  2182  //   An internal service error occurred.
  2183  //
  2184  //   * OperationTimeoutException
  2185  //   The operation timed out.
  2186  //
  2187  //   * ConcurrentModificationException
  2188  //   Two processes are trying to modify a resource simultaneously.
  2189  //
  2190  //   * AccessDeniedException
  2191  //   Access to a resource was denied.
  2192  //
  2193  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/UpdateLFTag
  2194  func (c *LakeFormation) UpdateLFTag(input *UpdateLFTagInput) (*UpdateLFTagOutput, error) {
  2195  	req, out := c.UpdateLFTagRequest(input)
  2196  	return out, req.Send()
  2197  }
  2198  
  2199  // UpdateLFTagWithContext is the same as UpdateLFTag with the addition of
  2200  // the ability to pass a context and additional request options.
  2201  //
  2202  // See UpdateLFTag for details on how to use this API operation.
  2203  //
  2204  // The context must be non-nil and will be used for request cancellation. If
  2205  // the context is nil a panic will occur. In the future the SDK may create
  2206  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2207  // for more information on using Contexts.
  2208  func (c *LakeFormation) UpdateLFTagWithContext(ctx aws.Context, input *UpdateLFTagInput, opts ...request.Option) (*UpdateLFTagOutput, error) {
  2209  	req, out := c.UpdateLFTagRequest(input)
  2210  	req.SetContext(ctx)
  2211  	req.ApplyOptions(opts...)
  2212  	return out, req.Send()
  2213  }
  2214  
  2215  const opUpdateResource = "UpdateResource"
  2216  
  2217  // UpdateResourceRequest generates a "aws/request.Request" representing the
  2218  // client's request for the UpdateResource operation. The "output" return
  2219  // value will be populated with the request's response once the request completes
  2220  // successfully.
  2221  //
  2222  // Use "Send" method on the returned Request to send the API call to the service.
  2223  // the "output" return value is not valid until after Send returns without error.
  2224  //
  2225  // See UpdateResource for more information on using the UpdateResource
  2226  // API call, and error handling.
  2227  //
  2228  // This method is useful when you want to inject custom logic or configuration
  2229  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2230  //
  2231  //
  2232  //    // Example sending a request using the UpdateResourceRequest method.
  2233  //    req, resp := client.UpdateResourceRequest(params)
  2234  //
  2235  //    err := req.Send()
  2236  //    if err == nil { // resp is now filled
  2237  //        fmt.Println(resp)
  2238  //    }
  2239  //
  2240  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/UpdateResource
  2241  func (c *LakeFormation) UpdateResourceRequest(input *UpdateResourceInput) (req *request.Request, output *UpdateResourceOutput) {
  2242  	op := &request.Operation{
  2243  		Name:       opUpdateResource,
  2244  		HTTPMethod: "POST",
  2245  		HTTPPath:   "/",
  2246  	}
  2247  
  2248  	if input == nil {
  2249  		input = &UpdateResourceInput{}
  2250  	}
  2251  
  2252  	output = &UpdateResourceOutput{}
  2253  	req = c.newRequest(op, input, output)
  2254  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2255  	return
  2256  }
  2257  
  2258  // UpdateResource API operation for AWS Lake Formation.
  2259  //
  2260  // Updates the data access role used for vending access to the given (registered)
  2261  // resource in AWS Lake Formation.
  2262  //
  2263  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2264  // with awserr.Error's Code and Message methods to get detailed information about
  2265  // the error.
  2266  //
  2267  // See the AWS API reference guide for AWS Lake Formation's
  2268  // API operation UpdateResource for usage and error information.
  2269  //
  2270  // Returned Error Types:
  2271  //   * InvalidInputException
  2272  //   The input provided was not valid.
  2273  //
  2274  //   * InternalServiceException
  2275  //   An internal service error occurred.
  2276  //
  2277  //   * OperationTimeoutException
  2278  //   The operation timed out.
  2279  //
  2280  //   * EntityNotFoundException
  2281  //   A specified entity does not exist
  2282  //
  2283  // See also, https://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/UpdateResource
  2284  func (c *LakeFormation) UpdateResource(input *UpdateResourceInput) (*UpdateResourceOutput, error) {
  2285  	req, out := c.UpdateResourceRequest(input)
  2286  	return out, req.Send()
  2287  }
  2288  
  2289  // UpdateResourceWithContext is the same as UpdateResource with the addition of
  2290  // the ability to pass a context and additional request options.
  2291  //
  2292  // See UpdateResource for details on how to use this API operation.
  2293  //
  2294  // The context must be non-nil and will be used for request cancellation. If
  2295  // the context is nil a panic will occur. In the future the SDK may create
  2296  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2297  // for more information on using Contexts.
  2298  func (c *LakeFormation) UpdateResourceWithContext(ctx aws.Context, input *UpdateResourceInput, opts ...request.Option) (*UpdateResourceOutput, error) {
  2299  	req, out := c.UpdateResourceRequest(input)
  2300  	req.SetContext(ctx)
  2301  	req.ApplyOptions(opts...)
  2302  	return out, req.Send()
  2303  }
  2304  
  2305  // Access to a resource was denied.
  2306  type AccessDeniedException struct {
  2307  	_            struct{}                  `type:"structure"`
  2308  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  2309  
  2310  	// A message describing the problem.
  2311  	Message_ *string `locationName:"Message" type:"string"`
  2312  }
  2313  
  2314  // String returns the string representation.
  2315  //
  2316  // API parameter values that are decorated as "sensitive" in the API will not
  2317  // be included in the string output. The member name will be present, but the
  2318  // value will be replaced with "sensitive".
  2319  func (s AccessDeniedException) String() string {
  2320  	return awsutil.Prettify(s)
  2321  }
  2322  
  2323  // GoString returns the string representation.
  2324  //
  2325  // API parameter values that are decorated as "sensitive" in the API will not
  2326  // be included in the string output. The member name will be present, but the
  2327  // value will be replaced with "sensitive".
  2328  func (s AccessDeniedException) GoString() string {
  2329  	return s.String()
  2330  }
  2331  
  2332  func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
  2333  	return &AccessDeniedException{
  2334  		RespMetadata: v,
  2335  	}
  2336  }
  2337  
  2338  // Code returns the exception type name.
  2339  func (s *AccessDeniedException) Code() string {
  2340  	return "AccessDeniedException"
  2341  }
  2342  
  2343  // Message returns the exception's message.
  2344  func (s *AccessDeniedException) Message() string {
  2345  	if s.Message_ != nil {
  2346  		return *s.Message_
  2347  	}
  2348  	return ""
  2349  }
  2350  
  2351  // OrigErr always returns nil, satisfies awserr.Error interface.
  2352  func (s *AccessDeniedException) OrigErr() error {
  2353  	return nil
  2354  }
  2355  
  2356  func (s *AccessDeniedException) Error() string {
  2357  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  2358  }
  2359  
  2360  // Status code returns the HTTP status code for the request's response error.
  2361  func (s *AccessDeniedException) StatusCode() int {
  2362  	return s.RespMetadata.StatusCode
  2363  }
  2364  
  2365  // RequestID returns the service's response RequestID for request.
  2366  func (s *AccessDeniedException) RequestID() string {
  2367  	return s.RespMetadata.RequestID
  2368  }
  2369  
  2370  type AddLFTagsToResourceInput struct {
  2371  	_ struct{} `type:"structure"`
  2372  
  2373  	// The identifier for the Data Catalog. By default, the account ID. The Data
  2374  	// Catalog is the persistent metadata store. It contains database definitions,
  2375  	// table definitions, and other control information to manage your AWS Lake
  2376  	// Formation environment.
  2377  	CatalogId *string `min:"1" type:"string"`
  2378  
  2379  	// The tags to attach to the resource.
  2380  	//
  2381  	// LFTags is a required field
  2382  	LFTags []*LFTagPair `min:"1" type:"list" required:"true"`
  2383  
  2384  	// The resource to which to attach a tag.
  2385  	//
  2386  	// Resource is a required field
  2387  	Resource *Resource `type:"structure" required:"true"`
  2388  }
  2389  
  2390  // String returns the string representation.
  2391  //
  2392  // API parameter values that are decorated as "sensitive" in the API will not
  2393  // be included in the string output. The member name will be present, but the
  2394  // value will be replaced with "sensitive".
  2395  func (s AddLFTagsToResourceInput) String() string {
  2396  	return awsutil.Prettify(s)
  2397  }
  2398  
  2399  // GoString returns the string representation.
  2400  //
  2401  // API parameter values that are decorated as "sensitive" in the API will not
  2402  // be included in the string output. The member name will be present, but the
  2403  // value will be replaced with "sensitive".
  2404  func (s AddLFTagsToResourceInput) GoString() string {
  2405  	return s.String()
  2406  }
  2407  
  2408  // Validate inspects the fields of the type to determine if they are valid.
  2409  func (s *AddLFTagsToResourceInput) Validate() error {
  2410  	invalidParams := request.ErrInvalidParams{Context: "AddLFTagsToResourceInput"}
  2411  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  2412  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  2413  	}
  2414  	if s.LFTags == nil {
  2415  		invalidParams.Add(request.NewErrParamRequired("LFTags"))
  2416  	}
  2417  	if s.LFTags != nil && len(s.LFTags) < 1 {
  2418  		invalidParams.Add(request.NewErrParamMinLen("LFTags", 1))
  2419  	}
  2420  	if s.Resource == nil {
  2421  		invalidParams.Add(request.NewErrParamRequired("Resource"))
  2422  	}
  2423  	if s.LFTags != nil {
  2424  		for i, v := range s.LFTags {
  2425  			if v == nil {
  2426  				continue
  2427  			}
  2428  			if err := v.Validate(); err != nil {
  2429  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LFTags", i), err.(request.ErrInvalidParams))
  2430  			}
  2431  		}
  2432  	}
  2433  	if s.Resource != nil {
  2434  		if err := s.Resource.Validate(); err != nil {
  2435  			invalidParams.AddNested("Resource", err.(request.ErrInvalidParams))
  2436  		}
  2437  	}
  2438  
  2439  	if invalidParams.Len() > 0 {
  2440  		return invalidParams
  2441  	}
  2442  	return nil
  2443  }
  2444  
  2445  // SetCatalogId sets the CatalogId field's value.
  2446  func (s *AddLFTagsToResourceInput) SetCatalogId(v string) *AddLFTagsToResourceInput {
  2447  	s.CatalogId = &v
  2448  	return s
  2449  }
  2450  
  2451  // SetLFTags sets the LFTags field's value.
  2452  func (s *AddLFTagsToResourceInput) SetLFTags(v []*LFTagPair) *AddLFTagsToResourceInput {
  2453  	s.LFTags = v
  2454  	return s
  2455  }
  2456  
  2457  // SetResource sets the Resource field's value.
  2458  func (s *AddLFTagsToResourceInput) SetResource(v *Resource) *AddLFTagsToResourceInput {
  2459  	s.Resource = v
  2460  	return s
  2461  }
  2462  
  2463  type AddLFTagsToResourceOutput struct {
  2464  	_ struct{} `type:"structure"`
  2465  
  2466  	// A list of failures to tag the resource.
  2467  	Failures []*LFTagError `type:"list"`
  2468  }
  2469  
  2470  // String returns the string representation.
  2471  //
  2472  // API parameter values that are decorated as "sensitive" in the API will not
  2473  // be included in the string output. The member name will be present, but the
  2474  // value will be replaced with "sensitive".
  2475  func (s AddLFTagsToResourceOutput) String() string {
  2476  	return awsutil.Prettify(s)
  2477  }
  2478  
  2479  // GoString returns the string representation.
  2480  //
  2481  // API parameter values that are decorated as "sensitive" in the API will not
  2482  // be included in the string output. The member name will be present, but the
  2483  // value will be replaced with "sensitive".
  2484  func (s AddLFTagsToResourceOutput) GoString() string {
  2485  	return s.String()
  2486  }
  2487  
  2488  // SetFailures sets the Failures field's value.
  2489  func (s *AddLFTagsToResourceOutput) SetFailures(v []*LFTagError) *AddLFTagsToResourceOutput {
  2490  	s.Failures = v
  2491  	return s
  2492  }
  2493  
  2494  // A resource to be created or added already exists.
  2495  type AlreadyExistsException struct {
  2496  	_            struct{}                  `type:"structure"`
  2497  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  2498  
  2499  	// A message describing the problem.
  2500  	Message_ *string `locationName:"Message" type:"string"`
  2501  }
  2502  
  2503  // String returns the string representation.
  2504  //
  2505  // API parameter values that are decorated as "sensitive" in the API will not
  2506  // be included in the string output. The member name will be present, but the
  2507  // value will be replaced with "sensitive".
  2508  func (s AlreadyExistsException) String() string {
  2509  	return awsutil.Prettify(s)
  2510  }
  2511  
  2512  // GoString returns the string representation.
  2513  //
  2514  // API parameter values that are decorated as "sensitive" in the API will not
  2515  // be included in the string output. The member name will be present, but the
  2516  // value will be replaced with "sensitive".
  2517  func (s AlreadyExistsException) GoString() string {
  2518  	return s.String()
  2519  }
  2520  
  2521  func newErrorAlreadyExistsException(v protocol.ResponseMetadata) error {
  2522  	return &AlreadyExistsException{
  2523  		RespMetadata: v,
  2524  	}
  2525  }
  2526  
  2527  // Code returns the exception type name.
  2528  func (s *AlreadyExistsException) Code() string {
  2529  	return "AlreadyExistsException"
  2530  }
  2531  
  2532  // Message returns the exception's message.
  2533  func (s *AlreadyExistsException) Message() string {
  2534  	if s.Message_ != nil {
  2535  		return *s.Message_
  2536  	}
  2537  	return ""
  2538  }
  2539  
  2540  // OrigErr always returns nil, satisfies awserr.Error interface.
  2541  func (s *AlreadyExistsException) OrigErr() error {
  2542  	return nil
  2543  }
  2544  
  2545  func (s *AlreadyExistsException) Error() string {
  2546  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  2547  }
  2548  
  2549  // Status code returns the HTTP status code for the request's response error.
  2550  func (s *AlreadyExistsException) StatusCode() int {
  2551  	return s.RespMetadata.StatusCode
  2552  }
  2553  
  2554  // RequestID returns the service's response RequestID for request.
  2555  func (s *AlreadyExistsException) RequestID() string {
  2556  	return s.RespMetadata.RequestID
  2557  }
  2558  
  2559  type BatchGrantPermissionsInput struct {
  2560  	_ struct{} `type:"structure"`
  2561  
  2562  	// The identifier for the Data Catalog. By default, the account ID. The Data
  2563  	// Catalog is the persistent metadata store. It contains database definitions,
  2564  	// table definitions, and other control information to manage your AWS Lake
  2565  	// Formation environment.
  2566  	CatalogId *string `min:"1" type:"string"`
  2567  
  2568  	// A list of up to 20 entries for resource permissions to be granted by batch
  2569  	// operation to the principal.
  2570  	//
  2571  	// Entries is a required field
  2572  	Entries []*BatchPermissionsRequestEntry `type:"list" required:"true"`
  2573  }
  2574  
  2575  // String returns the string representation.
  2576  //
  2577  // API parameter values that are decorated as "sensitive" in the API will not
  2578  // be included in the string output. The member name will be present, but the
  2579  // value will be replaced with "sensitive".
  2580  func (s BatchGrantPermissionsInput) String() string {
  2581  	return awsutil.Prettify(s)
  2582  }
  2583  
  2584  // GoString returns the string representation.
  2585  //
  2586  // API parameter values that are decorated as "sensitive" in the API will not
  2587  // be included in the string output. The member name will be present, but the
  2588  // value will be replaced with "sensitive".
  2589  func (s BatchGrantPermissionsInput) GoString() string {
  2590  	return s.String()
  2591  }
  2592  
  2593  // Validate inspects the fields of the type to determine if they are valid.
  2594  func (s *BatchGrantPermissionsInput) Validate() error {
  2595  	invalidParams := request.ErrInvalidParams{Context: "BatchGrantPermissionsInput"}
  2596  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  2597  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  2598  	}
  2599  	if s.Entries == nil {
  2600  		invalidParams.Add(request.NewErrParamRequired("Entries"))
  2601  	}
  2602  	if s.Entries != nil {
  2603  		for i, v := range s.Entries {
  2604  			if v == nil {
  2605  				continue
  2606  			}
  2607  			if err := v.Validate(); err != nil {
  2608  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(request.ErrInvalidParams))
  2609  			}
  2610  		}
  2611  	}
  2612  
  2613  	if invalidParams.Len() > 0 {
  2614  		return invalidParams
  2615  	}
  2616  	return nil
  2617  }
  2618  
  2619  // SetCatalogId sets the CatalogId field's value.
  2620  func (s *BatchGrantPermissionsInput) SetCatalogId(v string) *BatchGrantPermissionsInput {
  2621  	s.CatalogId = &v
  2622  	return s
  2623  }
  2624  
  2625  // SetEntries sets the Entries field's value.
  2626  func (s *BatchGrantPermissionsInput) SetEntries(v []*BatchPermissionsRequestEntry) *BatchGrantPermissionsInput {
  2627  	s.Entries = v
  2628  	return s
  2629  }
  2630  
  2631  type BatchGrantPermissionsOutput struct {
  2632  	_ struct{} `type:"structure"`
  2633  
  2634  	// A list of failures to grant permissions to the resources.
  2635  	Failures []*BatchPermissionsFailureEntry `type:"list"`
  2636  }
  2637  
  2638  // String returns the string representation.
  2639  //
  2640  // API parameter values that are decorated as "sensitive" in the API will not
  2641  // be included in the string output. The member name will be present, but the
  2642  // value will be replaced with "sensitive".
  2643  func (s BatchGrantPermissionsOutput) String() string {
  2644  	return awsutil.Prettify(s)
  2645  }
  2646  
  2647  // GoString returns the string representation.
  2648  //
  2649  // API parameter values that are decorated as "sensitive" in the API will not
  2650  // be included in the string output. The member name will be present, but the
  2651  // value will be replaced with "sensitive".
  2652  func (s BatchGrantPermissionsOutput) GoString() string {
  2653  	return s.String()
  2654  }
  2655  
  2656  // SetFailures sets the Failures field's value.
  2657  func (s *BatchGrantPermissionsOutput) SetFailures(v []*BatchPermissionsFailureEntry) *BatchGrantPermissionsOutput {
  2658  	s.Failures = v
  2659  	return s
  2660  }
  2661  
  2662  // A list of failures when performing a batch grant or batch revoke operation.
  2663  type BatchPermissionsFailureEntry struct {
  2664  	_ struct{} `type:"structure"`
  2665  
  2666  	// An error message that applies to the failure of the entry.
  2667  	Error *ErrorDetail `type:"structure"`
  2668  
  2669  	// An identifier for an entry of the batch request.
  2670  	RequestEntry *BatchPermissionsRequestEntry `type:"structure"`
  2671  }
  2672  
  2673  // String returns the string representation.
  2674  //
  2675  // API parameter values that are decorated as "sensitive" in the API will not
  2676  // be included in the string output. The member name will be present, but the
  2677  // value will be replaced with "sensitive".
  2678  func (s BatchPermissionsFailureEntry) String() string {
  2679  	return awsutil.Prettify(s)
  2680  }
  2681  
  2682  // GoString returns the string representation.
  2683  //
  2684  // API parameter values that are decorated as "sensitive" in the API will not
  2685  // be included in the string output. The member name will be present, but the
  2686  // value will be replaced with "sensitive".
  2687  func (s BatchPermissionsFailureEntry) GoString() string {
  2688  	return s.String()
  2689  }
  2690  
  2691  // SetError sets the Error field's value.
  2692  func (s *BatchPermissionsFailureEntry) SetError(v *ErrorDetail) *BatchPermissionsFailureEntry {
  2693  	s.Error = v
  2694  	return s
  2695  }
  2696  
  2697  // SetRequestEntry sets the RequestEntry field's value.
  2698  func (s *BatchPermissionsFailureEntry) SetRequestEntry(v *BatchPermissionsRequestEntry) *BatchPermissionsFailureEntry {
  2699  	s.RequestEntry = v
  2700  	return s
  2701  }
  2702  
  2703  // A permission to a resource granted by batch operation to the principal.
  2704  type BatchPermissionsRequestEntry struct {
  2705  	_ struct{} `type:"structure"`
  2706  
  2707  	// A unique identifier for the batch permissions request entry.
  2708  	//
  2709  	// Id is a required field
  2710  	Id *string `min:"1" type:"string" required:"true"`
  2711  
  2712  	// The permissions to be granted.
  2713  	Permissions []*string `type:"list"`
  2714  
  2715  	// Indicates if the option to pass permissions is granted.
  2716  	PermissionsWithGrantOption []*string `type:"list"`
  2717  
  2718  	// The principal to be granted a permission.
  2719  	Principal *DataLakePrincipal `type:"structure"`
  2720  
  2721  	// The resource to which the principal is to be granted a permission.
  2722  	Resource *Resource `type:"structure"`
  2723  }
  2724  
  2725  // String returns the string representation.
  2726  //
  2727  // API parameter values that are decorated as "sensitive" in the API will not
  2728  // be included in the string output. The member name will be present, but the
  2729  // value will be replaced with "sensitive".
  2730  func (s BatchPermissionsRequestEntry) String() string {
  2731  	return awsutil.Prettify(s)
  2732  }
  2733  
  2734  // GoString returns the string representation.
  2735  //
  2736  // API parameter values that are decorated as "sensitive" in the API will not
  2737  // be included in the string output. The member name will be present, but the
  2738  // value will be replaced with "sensitive".
  2739  func (s BatchPermissionsRequestEntry) GoString() string {
  2740  	return s.String()
  2741  }
  2742  
  2743  // Validate inspects the fields of the type to determine if they are valid.
  2744  func (s *BatchPermissionsRequestEntry) Validate() error {
  2745  	invalidParams := request.ErrInvalidParams{Context: "BatchPermissionsRequestEntry"}
  2746  	if s.Id == nil {
  2747  		invalidParams.Add(request.NewErrParamRequired("Id"))
  2748  	}
  2749  	if s.Id != nil && len(*s.Id) < 1 {
  2750  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
  2751  	}
  2752  	if s.Principal != nil {
  2753  		if err := s.Principal.Validate(); err != nil {
  2754  			invalidParams.AddNested("Principal", err.(request.ErrInvalidParams))
  2755  		}
  2756  	}
  2757  	if s.Resource != nil {
  2758  		if err := s.Resource.Validate(); err != nil {
  2759  			invalidParams.AddNested("Resource", err.(request.ErrInvalidParams))
  2760  		}
  2761  	}
  2762  
  2763  	if invalidParams.Len() > 0 {
  2764  		return invalidParams
  2765  	}
  2766  	return nil
  2767  }
  2768  
  2769  // SetId sets the Id field's value.
  2770  func (s *BatchPermissionsRequestEntry) SetId(v string) *BatchPermissionsRequestEntry {
  2771  	s.Id = &v
  2772  	return s
  2773  }
  2774  
  2775  // SetPermissions sets the Permissions field's value.
  2776  func (s *BatchPermissionsRequestEntry) SetPermissions(v []*string) *BatchPermissionsRequestEntry {
  2777  	s.Permissions = v
  2778  	return s
  2779  }
  2780  
  2781  // SetPermissionsWithGrantOption sets the PermissionsWithGrantOption field's value.
  2782  func (s *BatchPermissionsRequestEntry) SetPermissionsWithGrantOption(v []*string) *BatchPermissionsRequestEntry {
  2783  	s.PermissionsWithGrantOption = v
  2784  	return s
  2785  }
  2786  
  2787  // SetPrincipal sets the Principal field's value.
  2788  func (s *BatchPermissionsRequestEntry) SetPrincipal(v *DataLakePrincipal) *BatchPermissionsRequestEntry {
  2789  	s.Principal = v
  2790  	return s
  2791  }
  2792  
  2793  // SetResource sets the Resource field's value.
  2794  func (s *BatchPermissionsRequestEntry) SetResource(v *Resource) *BatchPermissionsRequestEntry {
  2795  	s.Resource = v
  2796  	return s
  2797  }
  2798  
  2799  type BatchRevokePermissionsInput struct {
  2800  	_ struct{} `type:"structure"`
  2801  
  2802  	// The identifier for the Data Catalog. By default, the account ID. The Data
  2803  	// Catalog is the persistent metadata store. It contains database definitions,
  2804  	// table definitions, and other control information to manage your AWS Lake
  2805  	// Formation environment.
  2806  	CatalogId *string `min:"1" type:"string"`
  2807  
  2808  	// A list of up to 20 entries for resource permissions to be revoked by batch
  2809  	// operation to the principal.
  2810  	//
  2811  	// Entries is a required field
  2812  	Entries []*BatchPermissionsRequestEntry `type:"list" required:"true"`
  2813  }
  2814  
  2815  // String returns the string representation.
  2816  //
  2817  // API parameter values that are decorated as "sensitive" in the API will not
  2818  // be included in the string output. The member name will be present, but the
  2819  // value will be replaced with "sensitive".
  2820  func (s BatchRevokePermissionsInput) String() string {
  2821  	return awsutil.Prettify(s)
  2822  }
  2823  
  2824  // GoString returns the string representation.
  2825  //
  2826  // API parameter values that are decorated as "sensitive" in the API will not
  2827  // be included in the string output. The member name will be present, but the
  2828  // value will be replaced with "sensitive".
  2829  func (s BatchRevokePermissionsInput) GoString() string {
  2830  	return s.String()
  2831  }
  2832  
  2833  // Validate inspects the fields of the type to determine if they are valid.
  2834  func (s *BatchRevokePermissionsInput) Validate() error {
  2835  	invalidParams := request.ErrInvalidParams{Context: "BatchRevokePermissionsInput"}
  2836  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  2837  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  2838  	}
  2839  	if s.Entries == nil {
  2840  		invalidParams.Add(request.NewErrParamRequired("Entries"))
  2841  	}
  2842  	if s.Entries != nil {
  2843  		for i, v := range s.Entries {
  2844  			if v == nil {
  2845  				continue
  2846  			}
  2847  			if err := v.Validate(); err != nil {
  2848  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(request.ErrInvalidParams))
  2849  			}
  2850  		}
  2851  	}
  2852  
  2853  	if invalidParams.Len() > 0 {
  2854  		return invalidParams
  2855  	}
  2856  	return nil
  2857  }
  2858  
  2859  // SetCatalogId sets the CatalogId field's value.
  2860  func (s *BatchRevokePermissionsInput) SetCatalogId(v string) *BatchRevokePermissionsInput {
  2861  	s.CatalogId = &v
  2862  	return s
  2863  }
  2864  
  2865  // SetEntries sets the Entries field's value.
  2866  func (s *BatchRevokePermissionsInput) SetEntries(v []*BatchPermissionsRequestEntry) *BatchRevokePermissionsInput {
  2867  	s.Entries = v
  2868  	return s
  2869  }
  2870  
  2871  type BatchRevokePermissionsOutput struct {
  2872  	_ struct{} `type:"structure"`
  2873  
  2874  	// A list of failures to revoke permissions to the resources.
  2875  	Failures []*BatchPermissionsFailureEntry `type:"list"`
  2876  }
  2877  
  2878  // String returns the string representation.
  2879  //
  2880  // API parameter values that are decorated as "sensitive" in the API will not
  2881  // be included in the string output. The member name will be present, but the
  2882  // value will be replaced with "sensitive".
  2883  func (s BatchRevokePermissionsOutput) String() string {
  2884  	return awsutil.Prettify(s)
  2885  }
  2886  
  2887  // GoString returns the string representation.
  2888  //
  2889  // API parameter values that are decorated as "sensitive" in the API will not
  2890  // be included in the string output. The member name will be present, but the
  2891  // value will be replaced with "sensitive".
  2892  func (s BatchRevokePermissionsOutput) GoString() string {
  2893  	return s.String()
  2894  }
  2895  
  2896  // SetFailures sets the Failures field's value.
  2897  func (s *BatchRevokePermissionsOutput) SetFailures(v []*BatchPermissionsFailureEntry) *BatchRevokePermissionsOutput {
  2898  	s.Failures = v
  2899  	return s
  2900  }
  2901  
  2902  // A structure for the catalog object.
  2903  type CatalogResource struct {
  2904  	_ struct{} `type:"structure"`
  2905  }
  2906  
  2907  // String returns the string representation.
  2908  //
  2909  // API parameter values that are decorated as "sensitive" in the API will not
  2910  // be included in the string output. The member name will be present, but the
  2911  // value will be replaced with "sensitive".
  2912  func (s CatalogResource) String() string {
  2913  	return awsutil.Prettify(s)
  2914  }
  2915  
  2916  // GoString returns the string representation.
  2917  //
  2918  // API parameter values that are decorated as "sensitive" in the API will not
  2919  // be included in the string output. The member name will be present, but the
  2920  // value will be replaced with "sensitive".
  2921  func (s CatalogResource) GoString() string {
  2922  	return s.String()
  2923  }
  2924  
  2925  // A structure containing the name of a column resource and the tags attached
  2926  // to it.
  2927  type ColumnLFTag struct {
  2928  	_ struct{} `type:"structure"`
  2929  
  2930  	// The tags attached to a column resource.
  2931  	LFTags []*LFTagPair `min:"1" type:"list"`
  2932  
  2933  	// The name of a column resource.
  2934  	Name *string `min:"1" type:"string"`
  2935  }
  2936  
  2937  // String returns the string representation.
  2938  //
  2939  // API parameter values that are decorated as "sensitive" in the API will not
  2940  // be included in the string output. The member name will be present, but the
  2941  // value will be replaced with "sensitive".
  2942  func (s ColumnLFTag) String() string {
  2943  	return awsutil.Prettify(s)
  2944  }
  2945  
  2946  // GoString returns the string representation.
  2947  //
  2948  // API parameter values that are decorated as "sensitive" in the API will not
  2949  // be included in the string output. The member name will be present, but the
  2950  // value will be replaced with "sensitive".
  2951  func (s ColumnLFTag) GoString() string {
  2952  	return s.String()
  2953  }
  2954  
  2955  // SetLFTags sets the LFTags field's value.
  2956  func (s *ColumnLFTag) SetLFTags(v []*LFTagPair) *ColumnLFTag {
  2957  	s.LFTags = v
  2958  	return s
  2959  }
  2960  
  2961  // SetName sets the Name field's value.
  2962  func (s *ColumnLFTag) SetName(v string) *ColumnLFTag {
  2963  	s.Name = &v
  2964  	return s
  2965  }
  2966  
  2967  // A wildcard object, consisting of an optional list of excluded column names
  2968  // or indexes.
  2969  type ColumnWildcard struct {
  2970  	_ struct{} `type:"structure"`
  2971  
  2972  	// Excludes column names. Any column with this name will be excluded.
  2973  	ExcludedColumnNames []*string `type:"list"`
  2974  }
  2975  
  2976  // String returns the string representation.
  2977  //
  2978  // API parameter values that are decorated as "sensitive" in the API will not
  2979  // be included in the string output. The member name will be present, but the
  2980  // value will be replaced with "sensitive".
  2981  func (s ColumnWildcard) String() string {
  2982  	return awsutil.Prettify(s)
  2983  }
  2984  
  2985  // GoString returns the string representation.
  2986  //
  2987  // API parameter values that are decorated as "sensitive" in the API will not
  2988  // be included in the string output. The member name will be present, but the
  2989  // value will be replaced with "sensitive".
  2990  func (s ColumnWildcard) GoString() string {
  2991  	return s.String()
  2992  }
  2993  
  2994  // SetExcludedColumnNames sets the ExcludedColumnNames field's value.
  2995  func (s *ColumnWildcard) SetExcludedColumnNames(v []*string) *ColumnWildcard {
  2996  	s.ExcludedColumnNames = v
  2997  	return s
  2998  }
  2999  
  3000  // Two processes are trying to modify a resource simultaneously.
  3001  type ConcurrentModificationException struct {
  3002  	_            struct{}                  `type:"structure"`
  3003  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3004  
  3005  	// A message describing the problem.
  3006  	Message_ *string `locationName:"Message" type:"string"`
  3007  }
  3008  
  3009  // String returns the string representation.
  3010  //
  3011  // API parameter values that are decorated as "sensitive" in the API will not
  3012  // be included in the string output. The member name will be present, but the
  3013  // value will be replaced with "sensitive".
  3014  func (s ConcurrentModificationException) String() string {
  3015  	return awsutil.Prettify(s)
  3016  }
  3017  
  3018  // GoString returns the string representation.
  3019  //
  3020  // API parameter values that are decorated as "sensitive" in the API will not
  3021  // be included in the string output. The member name will be present, but the
  3022  // value will be replaced with "sensitive".
  3023  func (s ConcurrentModificationException) GoString() string {
  3024  	return s.String()
  3025  }
  3026  
  3027  func newErrorConcurrentModificationException(v protocol.ResponseMetadata) error {
  3028  	return &ConcurrentModificationException{
  3029  		RespMetadata: v,
  3030  	}
  3031  }
  3032  
  3033  // Code returns the exception type name.
  3034  func (s *ConcurrentModificationException) Code() string {
  3035  	return "ConcurrentModificationException"
  3036  }
  3037  
  3038  // Message returns the exception's message.
  3039  func (s *ConcurrentModificationException) Message() string {
  3040  	if s.Message_ != nil {
  3041  		return *s.Message_
  3042  	}
  3043  	return ""
  3044  }
  3045  
  3046  // OrigErr always returns nil, satisfies awserr.Error interface.
  3047  func (s *ConcurrentModificationException) OrigErr() error {
  3048  	return nil
  3049  }
  3050  
  3051  func (s *ConcurrentModificationException) Error() string {
  3052  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3053  }
  3054  
  3055  // Status code returns the HTTP status code for the request's response error.
  3056  func (s *ConcurrentModificationException) StatusCode() int {
  3057  	return s.RespMetadata.StatusCode
  3058  }
  3059  
  3060  // RequestID returns the service's response RequestID for request.
  3061  func (s *ConcurrentModificationException) RequestID() string {
  3062  	return s.RespMetadata.RequestID
  3063  }
  3064  
  3065  type CreateLFTagInput struct {
  3066  	_ struct{} `type:"structure"`
  3067  
  3068  	// The identifier for the Data Catalog. By default, the account ID. The Data
  3069  	// Catalog is the persistent metadata store. It contains database definitions,
  3070  	// table definitions, and other control information to manage your AWS Lake
  3071  	// Formation environment.
  3072  	CatalogId *string `min:"1" type:"string"`
  3073  
  3074  	// The key-name for the tag.
  3075  	//
  3076  	// TagKey is a required field
  3077  	TagKey *string `min:"1" type:"string" required:"true"`
  3078  
  3079  	// A list of possible values an attribute can take.
  3080  	//
  3081  	// TagValues is a required field
  3082  	TagValues []*string `min:"1" type:"list" required:"true"`
  3083  }
  3084  
  3085  // String returns the string representation.
  3086  //
  3087  // API parameter values that are decorated as "sensitive" in the API will not
  3088  // be included in the string output. The member name will be present, but the
  3089  // value will be replaced with "sensitive".
  3090  func (s CreateLFTagInput) String() string {
  3091  	return awsutil.Prettify(s)
  3092  }
  3093  
  3094  // GoString returns the string representation.
  3095  //
  3096  // API parameter values that are decorated as "sensitive" in the API will not
  3097  // be included in the string output. The member name will be present, but the
  3098  // value will be replaced with "sensitive".
  3099  func (s CreateLFTagInput) GoString() string {
  3100  	return s.String()
  3101  }
  3102  
  3103  // Validate inspects the fields of the type to determine if they are valid.
  3104  func (s *CreateLFTagInput) Validate() error {
  3105  	invalidParams := request.ErrInvalidParams{Context: "CreateLFTagInput"}
  3106  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  3107  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  3108  	}
  3109  	if s.TagKey == nil {
  3110  		invalidParams.Add(request.NewErrParamRequired("TagKey"))
  3111  	}
  3112  	if s.TagKey != nil && len(*s.TagKey) < 1 {
  3113  		invalidParams.Add(request.NewErrParamMinLen("TagKey", 1))
  3114  	}
  3115  	if s.TagValues == nil {
  3116  		invalidParams.Add(request.NewErrParamRequired("TagValues"))
  3117  	}
  3118  	if s.TagValues != nil && len(s.TagValues) < 1 {
  3119  		invalidParams.Add(request.NewErrParamMinLen("TagValues", 1))
  3120  	}
  3121  
  3122  	if invalidParams.Len() > 0 {
  3123  		return invalidParams
  3124  	}
  3125  	return nil
  3126  }
  3127  
  3128  // SetCatalogId sets the CatalogId field's value.
  3129  func (s *CreateLFTagInput) SetCatalogId(v string) *CreateLFTagInput {
  3130  	s.CatalogId = &v
  3131  	return s
  3132  }
  3133  
  3134  // SetTagKey sets the TagKey field's value.
  3135  func (s *CreateLFTagInput) SetTagKey(v string) *CreateLFTagInput {
  3136  	s.TagKey = &v
  3137  	return s
  3138  }
  3139  
  3140  // SetTagValues sets the TagValues field's value.
  3141  func (s *CreateLFTagInput) SetTagValues(v []*string) *CreateLFTagInput {
  3142  	s.TagValues = v
  3143  	return s
  3144  }
  3145  
  3146  type CreateLFTagOutput struct {
  3147  	_ struct{} `type:"structure"`
  3148  }
  3149  
  3150  // String returns the string representation.
  3151  //
  3152  // API parameter values that are decorated as "sensitive" in the API will not
  3153  // be included in the string output. The member name will be present, but the
  3154  // value will be replaced with "sensitive".
  3155  func (s CreateLFTagOutput) String() string {
  3156  	return awsutil.Prettify(s)
  3157  }
  3158  
  3159  // GoString returns the string representation.
  3160  //
  3161  // API parameter values that are decorated as "sensitive" in the API will not
  3162  // be included in the string output. The member name will be present, but the
  3163  // value will be replaced with "sensitive".
  3164  func (s CreateLFTagOutput) GoString() string {
  3165  	return s.String()
  3166  }
  3167  
  3168  // The AWS Lake Formation principal. Supported principals are IAM users or IAM
  3169  // roles.
  3170  type DataLakePrincipal struct {
  3171  	_ struct{} `type:"structure"`
  3172  
  3173  	// An identifier for the AWS Lake Formation principal.
  3174  	DataLakePrincipalIdentifier *string `min:"1" type:"string"`
  3175  }
  3176  
  3177  // String returns the string representation.
  3178  //
  3179  // API parameter values that are decorated as "sensitive" in the API will not
  3180  // be included in the string output. The member name will be present, but the
  3181  // value will be replaced with "sensitive".
  3182  func (s DataLakePrincipal) String() string {
  3183  	return awsutil.Prettify(s)
  3184  }
  3185  
  3186  // GoString returns the string representation.
  3187  //
  3188  // API parameter values that are decorated as "sensitive" in the API will not
  3189  // be included in the string output. The member name will be present, but the
  3190  // value will be replaced with "sensitive".
  3191  func (s DataLakePrincipal) GoString() string {
  3192  	return s.String()
  3193  }
  3194  
  3195  // Validate inspects the fields of the type to determine if they are valid.
  3196  func (s *DataLakePrincipal) Validate() error {
  3197  	invalidParams := request.ErrInvalidParams{Context: "DataLakePrincipal"}
  3198  	if s.DataLakePrincipalIdentifier != nil && len(*s.DataLakePrincipalIdentifier) < 1 {
  3199  		invalidParams.Add(request.NewErrParamMinLen("DataLakePrincipalIdentifier", 1))
  3200  	}
  3201  
  3202  	if invalidParams.Len() > 0 {
  3203  		return invalidParams
  3204  	}
  3205  	return nil
  3206  }
  3207  
  3208  // SetDataLakePrincipalIdentifier sets the DataLakePrincipalIdentifier field's value.
  3209  func (s *DataLakePrincipal) SetDataLakePrincipalIdentifier(v string) *DataLakePrincipal {
  3210  	s.DataLakePrincipalIdentifier = &v
  3211  	return s
  3212  }
  3213  
  3214  // A structure representing a list of AWS Lake Formation principals designated
  3215  // as data lake administrators and lists of principal permission entries for
  3216  // default create database and default create table permissions.
  3217  type DataLakeSettings struct {
  3218  	_ struct{} `type:"structure"`
  3219  
  3220  	// A structure representing a list of up to three principal permissions entries
  3221  	// for default create database permissions.
  3222  	CreateDatabaseDefaultPermissions []*PrincipalPermissions `type:"list"`
  3223  
  3224  	// A structure representing a list of up to three principal permissions entries
  3225  	// for default create table permissions.
  3226  	CreateTableDefaultPermissions []*PrincipalPermissions `type:"list"`
  3227  
  3228  	// A list of AWS Lake Formation principals. Supported principals are IAM users
  3229  	// or IAM roles.
  3230  	DataLakeAdmins []*DataLakePrincipal `type:"list"`
  3231  
  3232  	// A list of the resource-owning account IDs that the caller's account can use
  3233  	// to share their user access details (user ARNs). The user ARNs can be logged
  3234  	// in the resource owner's AWS CloudTrail log.
  3235  	//
  3236  	// You may want to specify this property when you are in a high-trust boundary,
  3237  	// such as the same team or company.
  3238  	TrustedResourceOwners []*string `type:"list"`
  3239  }
  3240  
  3241  // String returns the string representation.
  3242  //
  3243  // API parameter values that are decorated as "sensitive" in the API will not
  3244  // be included in the string output. The member name will be present, but the
  3245  // value will be replaced with "sensitive".
  3246  func (s DataLakeSettings) String() string {
  3247  	return awsutil.Prettify(s)
  3248  }
  3249  
  3250  // GoString returns the string representation.
  3251  //
  3252  // API parameter values that are decorated as "sensitive" in the API will not
  3253  // be included in the string output. The member name will be present, but the
  3254  // value will be replaced with "sensitive".
  3255  func (s DataLakeSettings) GoString() string {
  3256  	return s.String()
  3257  }
  3258  
  3259  // Validate inspects the fields of the type to determine if they are valid.
  3260  func (s *DataLakeSettings) Validate() error {
  3261  	invalidParams := request.ErrInvalidParams{Context: "DataLakeSettings"}
  3262  	if s.CreateDatabaseDefaultPermissions != nil {
  3263  		for i, v := range s.CreateDatabaseDefaultPermissions {
  3264  			if v == nil {
  3265  				continue
  3266  			}
  3267  			if err := v.Validate(); err != nil {
  3268  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CreateDatabaseDefaultPermissions", i), err.(request.ErrInvalidParams))
  3269  			}
  3270  		}
  3271  	}
  3272  	if s.CreateTableDefaultPermissions != nil {
  3273  		for i, v := range s.CreateTableDefaultPermissions {
  3274  			if v == nil {
  3275  				continue
  3276  			}
  3277  			if err := v.Validate(); err != nil {
  3278  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CreateTableDefaultPermissions", i), err.(request.ErrInvalidParams))
  3279  			}
  3280  		}
  3281  	}
  3282  	if s.DataLakeAdmins != nil {
  3283  		for i, v := range s.DataLakeAdmins {
  3284  			if v == nil {
  3285  				continue
  3286  			}
  3287  			if err := v.Validate(); err != nil {
  3288  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DataLakeAdmins", i), err.(request.ErrInvalidParams))
  3289  			}
  3290  		}
  3291  	}
  3292  
  3293  	if invalidParams.Len() > 0 {
  3294  		return invalidParams
  3295  	}
  3296  	return nil
  3297  }
  3298  
  3299  // SetCreateDatabaseDefaultPermissions sets the CreateDatabaseDefaultPermissions field's value.
  3300  func (s *DataLakeSettings) SetCreateDatabaseDefaultPermissions(v []*PrincipalPermissions) *DataLakeSettings {
  3301  	s.CreateDatabaseDefaultPermissions = v
  3302  	return s
  3303  }
  3304  
  3305  // SetCreateTableDefaultPermissions sets the CreateTableDefaultPermissions field's value.
  3306  func (s *DataLakeSettings) SetCreateTableDefaultPermissions(v []*PrincipalPermissions) *DataLakeSettings {
  3307  	s.CreateTableDefaultPermissions = v
  3308  	return s
  3309  }
  3310  
  3311  // SetDataLakeAdmins sets the DataLakeAdmins field's value.
  3312  func (s *DataLakeSettings) SetDataLakeAdmins(v []*DataLakePrincipal) *DataLakeSettings {
  3313  	s.DataLakeAdmins = v
  3314  	return s
  3315  }
  3316  
  3317  // SetTrustedResourceOwners sets the TrustedResourceOwners field's value.
  3318  func (s *DataLakeSettings) SetTrustedResourceOwners(v []*string) *DataLakeSettings {
  3319  	s.TrustedResourceOwners = v
  3320  	return s
  3321  }
  3322  
  3323  // A structure for a data location object where permissions are granted or revoked.
  3324  type DataLocationResource struct {
  3325  	_ struct{} `type:"structure"`
  3326  
  3327  	// The identifier for the Data Catalog where the location is registered with
  3328  	// AWS Lake Formation. By default, it is the account ID of the caller.
  3329  	CatalogId *string `min:"1" type:"string"`
  3330  
  3331  	// The Amazon Resource Name (ARN) that uniquely identifies the data location
  3332  	// resource.
  3333  	//
  3334  	// ResourceArn is a required field
  3335  	ResourceArn *string `type:"string" required:"true"`
  3336  }
  3337  
  3338  // String returns the string representation.
  3339  //
  3340  // API parameter values that are decorated as "sensitive" in the API will not
  3341  // be included in the string output. The member name will be present, but the
  3342  // value will be replaced with "sensitive".
  3343  func (s DataLocationResource) String() string {
  3344  	return awsutil.Prettify(s)
  3345  }
  3346  
  3347  // GoString returns the string representation.
  3348  //
  3349  // API parameter values that are decorated as "sensitive" in the API will not
  3350  // be included in the string output. The member name will be present, but the
  3351  // value will be replaced with "sensitive".
  3352  func (s DataLocationResource) GoString() string {
  3353  	return s.String()
  3354  }
  3355  
  3356  // Validate inspects the fields of the type to determine if they are valid.
  3357  func (s *DataLocationResource) Validate() error {
  3358  	invalidParams := request.ErrInvalidParams{Context: "DataLocationResource"}
  3359  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  3360  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  3361  	}
  3362  	if s.ResourceArn == nil {
  3363  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  3364  	}
  3365  
  3366  	if invalidParams.Len() > 0 {
  3367  		return invalidParams
  3368  	}
  3369  	return nil
  3370  }
  3371  
  3372  // SetCatalogId sets the CatalogId field's value.
  3373  func (s *DataLocationResource) SetCatalogId(v string) *DataLocationResource {
  3374  	s.CatalogId = &v
  3375  	return s
  3376  }
  3377  
  3378  // SetResourceArn sets the ResourceArn field's value.
  3379  func (s *DataLocationResource) SetResourceArn(v string) *DataLocationResource {
  3380  	s.ResourceArn = &v
  3381  	return s
  3382  }
  3383  
  3384  // A structure for the database object.
  3385  type DatabaseResource struct {
  3386  	_ struct{} `type:"structure"`
  3387  
  3388  	// The identifier for the Data Catalog. By default, it is the account ID of
  3389  	// the caller.
  3390  	CatalogId *string `min:"1" type:"string"`
  3391  
  3392  	// The name of the database resource. Unique to the Data Catalog.
  3393  	//
  3394  	// Name is a required field
  3395  	Name *string `min:"1" type:"string" required:"true"`
  3396  }
  3397  
  3398  // String returns the string representation.
  3399  //
  3400  // API parameter values that are decorated as "sensitive" in the API will not
  3401  // be included in the string output. The member name will be present, but the
  3402  // value will be replaced with "sensitive".
  3403  func (s DatabaseResource) String() string {
  3404  	return awsutil.Prettify(s)
  3405  }
  3406  
  3407  // GoString returns the string representation.
  3408  //
  3409  // API parameter values that are decorated as "sensitive" in the API will not
  3410  // be included in the string output. The member name will be present, but the
  3411  // value will be replaced with "sensitive".
  3412  func (s DatabaseResource) GoString() string {
  3413  	return s.String()
  3414  }
  3415  
  3416  // Validate inspects the fields of the type to determine if they are valid.
  3417  func (s *DatabaseResource) Validate() error {
  3418  	invalidParams := request.ErrInvalidParams{Context: "DatabaseResource"}
  3419  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  3420  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  3421  	}
  3422  	if s.Name == nil {
  3423  		invalidParams.Add(request.NewErrParamRequired("Name"))
  3424  	}
  3425  	if s.Name != nil && len(*s.Name) < 1 {
  3426  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  3427  	}
  3428  
  3429  	if invalidParams.Len() > 0 {
  3430  		return invalidParams
  3431  	}
  3432  	return nil
  3433  }
  3434  
  3435  // SetCatalogId sets the CatalogId field's value.
  3436  func (s *DatabaseResource) SetCatalogId(v string) *DatabaseResource {
  3437  	s.CatalogId = &v
  3438  	return s
  3439  }
  3440  
  3441  // SetName sets the Name field's value.
  3442  func (s *DatabaseResource) SetName(v string) *DatabaseResource {
  3443  	s.Name = &v
  3444  	return s
  3445  }
  3446  
  3447  type DeleteLFTagInput struct {
  3448  	_ struct{} `type:"structure"`
  3449  
  3450  	// The identifier for the Data Catalog. By default, the account ID. The Data
  3451  	// Catalog is the persistent metadata store. It contains database definitions,
  3452  	// table definitions, and other control information to manage your AWS Lake
  3453  	// Formation environment.
  3454  	CatalogId *string `min:"1" type:"string"`
  3455  
  3456  	// The key-name for the tag to delete.
  3457  	//
  3458  	// TagKey is a required field
  3459  	TagKey *string `min:"1" type:"string" required:"true"`
  3460  }
  3461  
  3462  // String returns the string representation.
  3463  //
  3464  // API parameter values that are decorated as "sensitive" in the API will not
  3465  // be included in the string output. The member name will be present, but the
  3466  // value will be replaced with "sensitive".
  3467  func (s DeleteLFTagInput) String() string {
  3468  	return awsutil.Prettify(s)
  3469  }
  3470  
  3471  // GoString returns the string representation.
  3472  //
  3473  // API parameter values that are decorated as "sensitive" in the API will not
  3474  // be included in the string output. The member name will be present, but the
  3475  // value will be replaced with "sensitive".
  3476  func (s DeleteLFTagInput) GoString() string {
  3477  	return s.String()
  3478  }
  3479  
  3480  // Validate inspects the fields of the type to determine if they are valid.
  3481  func (s *DeleteLFTagInput) Validate() error {
  3482  	invalidParams := request.ErrInvalidParams{Context: "DeleteLFTagInput"}
  3483  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  3484  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  3485  	}
  3486  	if s.TagKey == nil {
  3487  		invalidParams.Add(request.NewErrParamRequired("TagKey"))
  3488  	}
  3489  	if s.TagKey != nil && len(*s.TagKey) < 1 {
  3490  		invalidParams.Add(request.NewErrParamMinLen("TagKey", 1))
  3491  	}
  3492  
  3493  	if invalidParams.Len() > 0 {
  3494  		return invalidParams
  3495  	}
  3496  	return nil
  3497  }
  3498  
  3499  // SetCatalogId sets the CatalogId field's value.
  3500  func (s *DeleteLFTagInput) SetCatalogId(v string) *DeleteLFTagInput {
  3501  	s.CatalogId = &v
  3502  	return s
  3503  }
  3504  
  3505  // SetTagKey sets the TagKey field's value.
  3506  func (s *DeleteLFTagInput) SetTagKey(v string) *DeleteLFTagInput {
  3507  	s.TagKey = &v
  3508  	return s
  3509  }
  3510  
  3511  type DeleteLFTagOutput struct {
  3512  	_ struct{} `type:"structure"`
  3513  }
  3514  
  3515  // String returns the string representation.
  3516  //
  3517  // API parameter values that are decorated as "sensitive" in the API will not
  3518  // be included in the string output. The member name will be present, but the
  3519  // value will be replaced with "sensitive".
  3520  func (s DeleteLFTagOutput) String() string {
  3521  	return awsutil.Prettify(s)
  3522  }
  3523  
  3524  // GoString returns the string representation.
  3525  //
  3526  // API parameter values that are decorated as "sensitive" in the API will not
  3527  // be included in the string output. The member name will be present, but the
  3528  // value will be replaced with "sensitive".
  3529  func (s DeleteLFTagOutput) GoString() string {
  3530  	return s.String()
  3531  }
  3532  
  3533  type DeregisterResourceInput struct {
  3534  	_ struct{} `type:"structure"`
  3535  
  3536  	// The Amazon Resource Name (ARN) of the resource that you want to deregister.
  3537  	//
  3538  	// ResourceArn is a required field
  3539  	ResourceArn *string `type:"string" required:"true"`
  3540  }
  3541  
  3542  // String returns the string representation.
  3543  //
  3544  // API parameter values that are decorated as "sensitive" in the API will not
  3545  // be included in the string output. The member name will be present, but the
  3546  // value will be replaced with "sensitive".
  3547  func (s DeregisterResourceInput) String() string {
  3548  	return awsutil.Prettify(s)
  3549  }
  3550  
  3551  // GoString returns the string representation.
  3552  //
  3553  // API parameter values that are decorated as "sensitive" in the API will not
  3554  // be included in the string output. The member name will be present, but the
  3555  // value will be replaced with "sensitive".
  3556  func (s DeregisterResourceInput) GoString() string {
  3557  	return s.String()
  3558  }
  3559  
  3560  // Validate inspects the fields of the type to determine if they are valid.
  3561  func (s *DeregisterResourceInput) Validate() error {
  3562  	invalidParams := request.ErrInvalidParams{Context: "DeregisterResourceInput"}
  3563  	if s.ResourceArn == nil {
  3564  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  3565  	}
  3566  
  3567  	if invalidParams.Len() > 0 {
  3568  		return invalidParams
  3569  	}
  3570  	return nil
  3571  }
  3572  
  3573  // SetResourceArn sets the ResourceArn field's value.
  3574  func (s *DeregisterResourceInput) SetResourceArn(v string) *DeregisterResourceInput {
  3575  	s.ResourceArn = &v
  3576  	return s
  3577  }
  3578  
  3579  type DeregisterResourceOutput struct {
  3580  	_ struct{} `type:"structure"`
  3581  }
  3582  
  3583  // String returns the string representation.
  3584  //
  3585  // API parameter values that are decorated as "sensitive" in the API will not
  3586  // be included in the string output. The member name will be present, but the
  3587  // value will be replaced with "sensitive".
  3588  func (s DeregisterResourceOutput) String() string {
  3589  	return awsutil.Prettify(s)
  3590  }
  3591  
  3592  // GoString returns the string representation.
  3593  //
  3594  // API parameter values that are decorated as "sensitive" in the API will not
  3595  // be included in the string output. The member name will be present, but the
  3596  // value will be replaced with "sensitive".
  3597  func (s DeregisterResourceOutput) GoString() string {
  3598  	return s.String()
  3599  }
  3600  
  3601  type DescribeResourceInput struct {
  3602  	_ struct{} `type:"structure"`
  3603  
  3604  	// The resource ARN.
  3605  	//
  3606  	// ResourceArn is a required field
  3607  	ResourceArn *string `type:"string" required:"true"`
  3608  }
  3609  
  3610  // String returns the string representation.
  3611  //
  3612  // API parameter values that are decorated as "sensitive" in the API will not
  3613  // be included in the string output. The member name will be present, but the
  3614  // value will be replaced with "sensitive".
  3615  func (s DescribeResourceInput) String() string {
  3616  	return awsutil.Prettify(s)
  3617  }
  3618  
  3619  // GoString returns the string representation.
  3620  //
  3621  // API parameter values that are decorated as "sensitive" in the API will not
  3622  // be included in the string output. The member name will be present, but the
  3623  // value will be replaced with "sensitive".
  3624  func (s DescribeResourceInput) GoString() string {
  3625  	return s.String()
  3626  }
  3627  
  3628  // Validate inspects the fields of the type to determine if they are valid.
  3629  func (s *DescribeResourceInput) Validate() error {
  3630  	invalidParams := request.ErrInvalidParams{Context: "DescribeResourceInput"}
  3631  	if s.ResourceArn == nil {
  3632  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  3633  	}
  3634  
  3635  	if invalidParams.Len() > 0 {
  3636  		return invalidParams
  3637  	}
  3638  	return nil
  3639  }
  3640  
  3641  // SetResourceArn sets the ResourceArn field's value.
  3642  func (s *DescribeResourceInput) SetResourceArn(v string) *DescribeResourceInput {
  3643  	s.ResourceArn = &v
  3644  	return s
  3645  }
  3646  
  3647  type DescribeResourceOutput struct {
  3648  	_ struct{} `type:"structure"`
  3649  
  3650  	// A structure containing information about an AWS Lake Formation resource.
  3651  	ResourceInfo *ResourceInfo `type:"structure"`
  3652  }
  3653  
  3654  // String returns the string representation.
  3655  //
  3656  // API parameter values that are decorated as "sensitive" in the API will not
  3657  // be included in the string output. The member name will be present, but the
  3658  // value will be replaced with "sensitive".
  3659  func (s DescribeResourceOutput) String() string {
  3660  	return awsutil.Prettify(s)
  3661  }
  3662  
  3663  // GoString returns the string representation.
  3664  //
  3665  // API parameter values that are decorated as "sensitive" in the API will not
  3666  // be included in the string output. The member name will be present, but the
  3667  // value will be replaced with "sensitive".
  3668  func (s DescribeResourceOutput) GoString() string {
  3669  	return s.String()
  3670  }
  3671  
  3672  // SetResourceInfo sets the ResourceInfo field's value.
  3673  func (s *DescribeResourceOutput) SetResourceInfo(v *ResourceInfo) *DescribeResourceOutput {
  3674  	s.ResourceInfo = v
  3675  	return s
  3676  }
  3677  
  3678  // A structure containing the additional details to be returned in the AdditionalDetails
  3679  // attribute of PrincipalResourcePermissions.
  3680  //
  3681  // If a catalog resource is shared through AWS Resource Access Manager (AWS
  3682  // RAM), then there will exist a corresponding RAM resource share ARN.
  3683  type DetailsMap struct {
  3684  	_ struct{} `type:"structure"`
  3685  
  3686  	// A resource share ARN for a catalog resource shared through AWS Resource Access
  3687  	// Manager (AWS RAM).
  3688  	ResourceShare []*string `type:"list"`
  3689  }
  3690  
  3691  // String returns the string representation.
  3692  //
  3693  // API parameter values that are decorated as "sensitive" in the API will not
  3694  // be included in the string output. The member name will be present, but the
  3695  // value will be replaced with "sensitive".
  3696  func (s DetailsMap) String() string {
  3697  	return awsutil.Prettify(s)
  3698  }
  3699  
  3700  // GoString returns the string representation.
  3701  //
  3702  // API parameter values that are decorated as "sensitive" in the API will not
  3703  // be included in the string output. The member name will be present, but the
  3704  // value will be replaced with "sensitive".
  3705  func (s DetailsMap) GoString() string {
  3706  	return s.String()
  3707  }
  3708  
  3709  // SetResourceShare sets the ResourceShare field's value.
  3710  func (s *DetailsMap) SetResourceShare(v []*string) *DetailsMap {
  3711  	s.ResourceShare = v
  3712  	return s
  3713  }
  3714  
  3715  // A specified entity does not exist
  3716  type EntityNotFoundException struct {
  3717  	_            struct{}                  `type:"structure"`
  3718  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3719  
  3720  	// A message describing the problem.
  3721  	Message_ *string `locationName:"Message" type:"string"`
  3722  }
  3723  
  3724  // String returns the string representation.
  3725  //
  3726  // API parameter values that are decorated as "sensitive" in the API will not
  3727  // be included in the string output. The member name will be present, but the
  3728  // value will be replaced with "sensitive".
  3729  func (s EntityNotFoundException) String() string {
  3730  	return awsutil.Prettify(s)
  3731  }
  3732  
  3733  // GoString returns the string representation.
  3734  //
  3735  // API parameter values that are decorated as "sensitive" in the API will not
  3736  // be included in the string output. The member name will be present, but the
  3737  // value will be replaced with "sensitive".
  3738  func (s EntityNotFoundException) GoString() string {
  3739  	return s.String()
  3740  }
  3741  
  3742  func newErrorEntityNotFoundException(v protocol.ResponseMetadata) error {
  3743  	return &EntityNotFoundException{
  3744  		RespMetadata: v,
  3745  	}
  3746  }
  3747  
  3748  // Code returns the exception type name.
  3749  func (s *EntityNotFoundException) Code() string {
  3750  	return "EntityNotFoundException"
  3751  }
  3752  
  3753  // Message returns the exception's message.
  3754  func (s *EntityNotFoundException) Message() string {
  3755  	if s.Message_ != nil {
  3756  		return *s.Message_
  3757  	}
  3758  	return ""
  3759  }
  3760  
  3761  // OrigErr always returns nil, satisfies awserr.Error interface.
  3762  func (s *EntityNotFoundException) OrigErr() error {
  3763  	return nil
  3764  }
  3765  
  3766  func (s *EntityNotFoundException) Error() string {
  3767  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3768  }
  3769  
  3770  // Status code returns the HTTP status code for the request's response error.
  3771  func (s *EntityNotFoundException) StatusCode() int {
  3772  	return s.RespMetadata.StatusCode
  3773  }
  3774  
  3775  // RequestID returns the service's response RequestID for request.
  3776  func (s *EntityNotFoundException) RequestID() string {
  3777  	return s.RespMetadata.RequestID
  3778  }
  3779  
  3780  // Contains details about an error.
  3781  type ErrorDetail struct {
  3782  	_ struct{} `type:"structure"`
  3783  
  3784  	// The code associated with this error.
  3785  	ErrorCode *string `min:"1" type:"string"`
  3786  
  3787  	// A message describing the error.
  3788  	ErrorMessage *string `type:"string"`
  3789  }
  3790  
  3791  // String returns the string representation.
  3792  //
  3793  // API parameter values that are decorated as "sensitive" in the API will not
  3794  // be included in the string output. The member name will be present, but the
  3795  // value will be replaced with "sensitive".
  3796  func (s ErrorDetail) String() string {
  3797  	return awsutil.Prettify(s)
  3798  }
  3799  
  3800  // GoString returns the string representation.
  3801  //
  3802  // API parameter values that are decorated as "sensitive" in the API will not
  3803  // be included in the string output. The member name will be present, but the
  3804  // value will be replaced with "sensitive".
  3805  func (s ErrorDetail) GoString() string {
  3806  	return s.String()
  3807  }
  3808  
  3809  // SetErrorCode sets the ErrorCode field's value.
  3810  func (s *ErrorDetail) SetErrorCode(v string) *ErrorDetail {
  3811  	s.ErrorCode = &v
  3812  	return s
  3813  }
  3814  
  3815  // SetErrorMessage sets the ErrorMessage field's value.
  3816  func (s *ErrorDetail) SetErrorMessage(v string) *ErrorDetail {
  3817  	s.ErrorMessage = &v
  3818  	return s
  3819  }
  3820  
  3821  // This structure describes the filtering of columns in a table based on a filter
  3822  // condition.
  3823  type FilterCondition struct {
  3824  	_ struct{} `type:"structure"`
  3825  
  3826  	// The comparison operator used in the filter condition.
  3827  	ComparisonOperator *string `type:"string" enum:"ComparisonOperator"`
  3828  
  3829  	// The field to filter in the filter condition.
  3830  	Field *string `type:"string" enum:"FieldNameString"`
  3831  
  3832  	// A string with values used in evaluating the filter condition.
  3833  	StringValueList []*string `type:"list"`
  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 FilterCondition) 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 FilterCondition) GoString() string {
  3851  	return s.String()
  3852  }
  3853  
  3854  // SetComparisonOperator sets the ComparisonOperator field's value.
  3855  func (s *FilterCondition) SetComparisonOperator(v string) *FilterCondition {
  3856  	s.ComparisonOperator = &v
  3857  	return s
  3858  }
  3859  
  3860  // SetField sets the Field field's value.
  3861  func (s *FilterCondition) SetField(v string) *FilterCondition {
  3862  	s.Field = &v
  3863  	return s
  3864  }
  3865  
  3866  // SetStringValueList sets the StringValueList field's value.
  3867  func (s *FilterCondition) SetStringValueList(v []*string) *FilterCondition {
  3868  	s.StringValueList = v
  3869  	return s
  3870  }
  3871  
  3872  type GetDataLakeSettingsInput struct {
  3873  	_ struct{} `type:"structure"`
  3874  
  3875  	// The identifier for the Data Catalog. By default, the account ID. The Data
  3876  	// Catalog is the persistent metadata store. It contains database definitions,
  3877  	// table definitions, and other control information to manage your AWS Lake
  3878  	// Formation environment.
  3879  	CatalogId *string `min:"1" type:"string"`
  3880  }
  3881  
  3882  // String returns the string representation.
  3883  //
  3884  // API parameter values that are decorated as "sensitive" in the API will not
  3885  // be included in the string output. The member name will be present, but the
  3886  // value will be replaced with "sensitive".
  3887  func (s GetDataLakeSettingsInput) String() string {
  3888  	return awsutil.Prettify(s)
  3889  }
  3890  
  3891  // GoString returns the string representation.
  3892  //
  3893  // API parameter values that are decorated as "sensitive" in the API will not
  3894  // be included in the string output. The member name will be present, but the
  3895  // value will be replaced with "sensitive".
  3896  func (s GetDataLakeSettingsInput) GoString() string {
  3897  	return s.String()
  3898  }
  3899  
  3900  // Validate inspects the fields of the type to determine if they are valid.
  3901  func (s *GetDataLakeSettingsInput) Validate() error {
  3902  	invalidParams := request.ErrInvalidParams{Context: "GetDataLakeSettingsInput"}
  3903  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  3904  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  3905  	}
  3906  
  3907  	if invalidParams.Len() > 0 {
  3908  		return invalidParams
  3909  	}
  3910  	return nil
  3911  }
  3912  
  3913  // SetCatalogId sets the CatalogId field's value.
  3914  func (s *GetDataLakeSettingsInput) SetCatalogId(v string) *GetDataLakeSettingsInput {
  3915  	s.CatalogId = &v
  3916  	return s
  3917  }
  3918  
  3919  type GetDataLakeSettingsOutput struct {
  3920  	_ struct{} `type:"structure"`
  3921  
  3922  	// A structure representing a list of AWS Lake Formation principals designated
  3923  	// as data lake administrators.
  3924  	DataLakeSettings *DataLakeSettings `type:"structure"`
  3925  }
  3926  
  3927  // String returns the string representation.
  3928  //
  3929  // API parameter values that are decorated as "sensitive" in the API will not
  3930  // be included in the string output. The member name will be present, but the
  3931  // value will be replaced with "sensitive".
  3932  func (s GetDataLakeSettingsOutput) String() string {
  3933  	return awsutil.Prettify(s)
  3934  }
  3935  
  3936  // GoString returns the string representation.
  3937  //
  3938  // API parameter values that are decorated as "sensitive" in the API will not
  3939  // be included in the string output. The member name will be present, but the
  3940  // value will be replaced with "sensitive".
  3941  func (s GetDataLakeSettingsOutput) GoString() string {
  3942  	return s.String()
  3943  }
  3944  
  3945  // SetDataLakeSettings sets the DataLakeSettings field's value.
  3946  func (s *GetDataLakeSettingsOutput) SetDataLakeSettings(v *DataLakeSettings) *GetDataLakeSettingsOutput {
  3947  	s.DataLakeSettings = v
  3948  	return s
  3949  }
  3950  
  3951  type GetEffectivePermissionsForPathInput struct {
  3952  	_ struct{} `type:"structure"`
  3953  
  3954  	// The identifier for the Data Catalog. By default, the account ID. The Data
  3955  	// Catalog is the persistent metadata store. It contains database definitions,
  3956  	// table definitions, and other control information to manage your AWS Lake
  3957  	// Formation environment.
  3958  	CatalogId *string `min:"1" type:"string"`
  3959  
  3960  	// The maximum number of results to return.
  3961  	MaxResults *int64 `min:"1" type:"integer"`
  3962  
  3963  	// A continuation token, if this is not the first call to retrieve this list.
  3964  	NextToken *string `type:"string"`
  3965  
  3966  	// The Amazon Resource Name (ARN) of the resource for which you want to get
  3967  	// permissions.
  3968  	//
  3969  	// ResourceArn is a required field
  3970  	ResourceArn *string `type:"string" required:"true"`
  3971  }
  3972  
  3973  // String returns the string representation.
  3974  //
  3975  // API parameter values that are decorated as "sensitive" in the API will not
  3976  // be included in the string output. The member name will be present, but the
  3977  // value will be replaced with "sensitive".
  3978  func (s GetEffectivePermissionsForPathInput) String() string {
  3979  	return awsutil.Prettify(s)
  3980  }
  3981  
  3982  // GoString returns the string representation.
  3983  //
  3984  // API parameter values that are decorated as "sensitive" in the API will not
  3985  // be included in the string output. The member name will be present, but the
  3986  // value will be replaced with "sensitive".
  3987  func (s GetEffectivePermissionsForPathInput) GoString() string {
  3988  	return s.String()
  3989  }
  3990  
  3991  // Validate inspects the fields of the type to determine if they are valid.
  3992  func (s *GetEffectivePermissionsForPathInput) Validate() error {
  3993  	invalidParams := request.ErrInvalidParams{Context: "GetEffectivePermissionsForPathInput"}
  3994  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  3995  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  3996  	}
  3997  	if s.MaxResults != nil && *s.MaxResults < 1 {
  3998  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  3999  	}
  4000  	if s.ResourceArn == nil {
  4001  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  4002  	}
  4003  
  4004  	if invalidParams.Len() > 0 {
  4005  		return invalidParams
  4006  	}
  4007  	return nil
  4008  }
  4009  
  4010  // SetCatalogId sets the CatalogId field's value.
  4011  func (s *GetEffectivePermissionsForPathInput) SetCatalogId(v string) *GetEffectivePermissionsForPathInput {
  4012  	s.CatalogId = &v
  4013  	return s
  4014  }
  4015  
  4016  // SetMaxResults sets the MaxResults field's value.
  4017  func (s *GetEffectivePermissionsForPathInput) SetMaxResults(v int64) *GetEffectivePermissionsForPathInput {
  4018  	s.MaxResults = &v
  4019  	return s
  4020  }
  4021  
  4022  // SetNextToken sets the NextToken field's value.
  4023  func (s *GetEffectivePermissionsForPathInput) SetNextToken(v string) *GetEffectivePermissionsForPathInput {
  4024  	s.NextToken = &v
  4025  	return s
  4026  }
  4027  
  4028  // SetResourceArn sets the ResourceArn field's value.
  4029  func (s *GetEffectivePermissionsForPathInput) SetResourceArn(v string) *GetEffectivePermissionsForPathInput {
  4030  	s.ResourceArn = &v
  4031  	return s
  4032  }
  4033  
  4034  type GetEffectivePermissionsForPathOutput struct {
  4035  	_ struct{} `type:"structure"`
  4036  
  4037  	// A continuation token, if this is not the first call to retrieve this list.
  4038  	NextToken *string `type:"string"`
  4039  
  4040  	// A list of the permissions for the specified table or database resource located
  4041  	// at the path in Amazon S3.
  4042  	Permissions []*PrincipalResourcePermissions `type:"list"`
  4043  }
  4044  
  4045  // String returns the string representation.
  4046  //
  4047  // API parameter values that are decorated as "sensitive" in the API will not
  4048  // be included in the string output. The member name will be present, but the
  4049  // value will be replaced with "sensitive".
  4050  func (s GetEffectivePermissionsForPathOutput) String() string {
  4051  	return awsutil.Prettify(s)
  4052  }
  4053  
  4054  // GoString returns the string representation.
  4055  //
  4056  // API parameter values that are decorated as "sensitive" in the API will not
  4057  // be included in the string output. The member name will be present, but the
  4058  // value will be replaced with "sensitive".
  4059  func (s GetEffectivePermissionsForPathOutput) GoString() string {
  4060  	return s.String()
  4061  }
  4062  
  4063  // SetNextToken sets the NextToken field's value.
  4064  func (s *GetEffectivePermissionsForPathOutput) SetNextToken(v string) *GetEffectivePermissionsForPathOutput {
  4065  	s.NextToken = &v
  4066  	return s
  4067  }
  4068  
  4069  // SetPermissions sets the Permissions field's value.
  4070  func (s *GetEffectivePermissionsForPathOutput) SetPermissions(v []*PrincipalResourcePermissions) *GetEffectivePermissionsForPathOutput {
  4071  	s.Permissions = v
  4072  	return s
  4073  }
  4074  
  4075  type GetLFTagInput struct {
  4076  	_ struct{} `type:"structure"`
  4077  
  4078  	// The identifier for the Data Catalog. By default, the account ID. The Data
  4079  	// Catalog is the persistent metadata store. It contains database definitions,
  4080  	// table definitions, and other control information to manage your AWS Lake
  4081  	// Formation environment.
  4082  	CatalogId *string `min:"1" type:"string"`
  4083  
  4084  	// The key-name for the tag.
  4085  	//
  4086  	// TagKey is a required field
  4087  	TagKey *string `min:"1" type:"string" required:"true"`
  4088  }
  4089  
  4090  // String 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 GetLFTagInput) String() string {
  4096  	return awsutil.Prettify(s)
  4097  }
  4098  
  4099  // GoString returns the string representation.
  4100  //
  4101  // API parameter values that are decorated as "sensitive" in the API will not
  4102  // be included in the string output. The member name will be present, but the
  4103  // value will be replaced with "sensitive".
  4104  func (s GetLFTagInput) GoString() string {
  4105  	return s.String()
  4106  }
  4107  
  4108  // Validate inspects the fields of the type to determine if they are valid.
  4109  func (s *GetLFTagInput) Validate() error {
  4110  	invalidParams := request.ErrInvalidParams{Context: "GetLFTagInput"}
  4111  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  4112  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  4113  	}
  4114  	if s.TagKey == nil {
  4115  		invalidParams.Add(request.NewErrParamRequired("TagKey"))
  4116  	}
  4117  	if s.TagKey != nil && len(*s.TagKey) < 1 {
  4118  		invalidParams.Add(request.NewErrParamMinLen("TagKey", 1))
  4119  	}
  4120  
  4121  	if invalidParams.Len() > 0 {
  4122  		return invalidParams
  4123  	}
  4124  	return nil
  4125  }
  4126  
  4127  // SetCatalogId sets the CatalogId field's value.
  4128  func (s *GetLFTagInput) SetCatalogId(v string) *GetLFTagInput {
  4129  	s.CatalogId = &v
  4130  	return s
  4131  }
  4132  
  4133  // SetTagKey sets the TagKey field's value.
  4134  func (s *GetLFTagInput) SetTagKey(v string) *GetLFTagInput {
  4135  	s.TagKey = &v
  4136  	return s
  4137  }
  4138  
  4139  type GetLFTagOutput struct {
  4140  	_ struct{} `type:"structure"`
  4141  
  4142  	// The identifier for the Data Catalog. By default, the account ID. The Data
  4143  	// Catalog is the persistent metadata store. It contains database definitions,
  4144  	// table definitions, and other control information to manage your AWS Lake
  4145  	// Formation environment.
  4146  	CatalogId *string `min:"1" type:"string"`
  4147  
  4148  	// The key-name for the tag.
  4149  	TagKey *string `min:"1" type:"string"`
  4150  
  4151  	// A list of possible values an attribute can take.
  4152  	TagValues []*string `min:"1" type:"list"`
  4153  }
  4154  
  4155  // String returns the string representation.
  4156  //
  4157  // API parameter values that are decorated as "sensitive" in the API will not
  4158  // be included in the string output. The member name will be present, but the
  4159  // value will be replaced with "sensitive".
  4160  func (s GetLFTagOutput) String() string {
  4161  	return awsutil.Prettify(s)
  4162  }
  4163  
  4164  // GoString returns the string representation.
  4165  //
  4166  // API parameter values that are decorated as "sensitive" in the API will not
  4167  // be included in the string output. The member name will be present, but the
  4168  // value will be replaced with "sensitive".
  4169  func (s GetLFTagOutput) GoString() string {
  4170  	return s.String()
  4171  }
  4172  
  4173  // SetCatalogId sets the CatalogId field's value.
  4174  func (s *GetLFTagOutput) SetCatalogId(v string) *GetLFTagOutput {
  4175  	s.CatalogId = &v
  4176  	return s
  4177  }
  4178  
  4179  // SetTagKey sets the TagKey field's value.
  4180  func (s *GetLFTagOutput) SetTagKey(v string) *GetLFTagOutput {
  4181  	s.TagKey = &v
  4182  	return s
  4183  }
  4184  
  4185  // SetTagValues sets the TagValues field's value.
  4186  func (s *GetLFTagOutput) SetTagValues(v []*string) *GetLFTagOutput {
  4187  	s.TagValues = v
  4188  	return s
  4189  }
  4190  
  4191  type GetResourceLFTagsInput struct {
  4192  	_ struct{} `type:"structure"`
  4193  
  4194  	// The identifier for the Data Catalog. By default, the account ID. The Data
  4195  	// Catalog is the persistent metadata store. It contains database definitions,
  4196  	// table definitions, and other control information to manage your AWS Lake
  4197  	// Formation environment.
  4198  	CatalogId *string `min:"1" type:"string"`
  4199  
  4200  	// The resource for which you want to return tags.
  4201  	//
  4202  	// Resource is a required field
  4203  	Resource *Resource `type:"structure" required:"true"`
  4204  
  4205  	// Indicates whether to show the assigned tags.
  4206  	ShowAssignedLFTags *bool `type:"boolean"`
  4207  }
  4208  
  4209  // String returns the string representation.
  4210  //
  4211  // API parameter values that are decorated as "sensitive" in the API will not
  4212  // be included in the string output. The member name will be present, but the
  4213  // value will be replaced with "sensitive".
  4214  func (s GetResourceLFTagsInput) String() string {
  4215  	return awsutil.Prettify(s)
  4216  }
  4217  
  4218  // GoString returns the string representation.
  4219  //
  4220  // API parameter values that are decorated as "sensitive" in the API will not
  4221  // be included in the string output. The member name will be present, but the
  4222  // value will be replaced with "sensitive".
  4223  func (s GetResourceLFTagsInput) GoString() string {
  4224  	return s.String()
  4225  }
  4226  
  4227  // Validate inspects the fields of the type to determine if they are valid.
  4228  func (s *GetResourceLFTagsInput) Validate() error {
  4229  	invalidParams := request.ErrInvalidParams{Context: "GetResourceLFTagsInput"}
  4230  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  4231  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  4232  	}
  4233  	if s.Resource == nil {
  4234  		invalidParams.Add(request.NewErrParamRequired("Resource"))
  4235  	}
  4236  	if s.Resource != nil {
  4237  		if err := s.Resource.Validate(); err != nil {
  4238  			invalidParams.AddNested("Resource", err.(request.ErrInvalidParams))
  4239  		}
  4240  	}
  4241  
  4242  	if invalidParams.Len() > 0 {
  4243  		return invalidParams
  4244  	}
  4245  	return nil
  4246  }
  4247  
  4248  // SetCatalogId sets the CatalogId field's value.
  4249  func (s *GetResourceLFTagsInput) SetCatalogId(v string) *GetResourceLFTagsInput {
  4250  	s.CatalogId = &v
  4251  	return s
  4252  }
  4253  
  4254  // SetResource sets the Resource field's value.
  4255  func (s *GetResourceLFTagsInput) SetResource(v *Resource) *GetResourceLFTagsInput {
  4256  	s.Resource = v
  4257  	return s
  4258  }
  4259  
  4260  // SetShowAssignedLFTags sets the ShowAssignedLFTags field's value.
  4261  func (s *GetResourceLFTagsInput) SetShowAssignedLFTags(v bool) *GetResourceLFTagsInput {
  4262  	s.ShowAssignedLFTags = &v
  4263  	return s
  4264  }
  4265  
  4266  type GetResourceLFTagsOutput struct {
  4267  	_ struct{} `type:"structure"`
  4268  
  4269  	// A list of tags applied to a database resource.
  4270  	LFTagOnDatabase []*LFTagPair `min:"1" type:"list"`
  4271  
  4272  	// A list of tags applied to a column resource.
  4273  	LFTagsOnColumns []*ColumnLFTag `type:"list"`
  4274  
  4275  	// A list of tags applied to a table resource.
  4276  	LFTagsOnTable []*LFTagPair `min:"1" type:"list"`
  4277  }
  4278  
  4279  // String returns the string representation.
  4280  //
  4281  // API parameter values that are decorated as "sensitive" in the API will not
  4282  // be included in the string output. The member name will be present, but the
  4283  // value will be replaced with "sensitive".
  4284  func (s GetResourceLFTagsOutput) String() string {
  4285  	return awsutil.Prettify(s)
  4286  }
  4287  
  4288  // GoString returns the string representation.
  4289  //
  4290  // API parameter values that are decorated as "sensitive" in the API will not
  4291  // be included in the string output. The member name will be present, but the
  4292  // value will be replaced with "sensitive".
  4293  func (s GetResourceLFTagsOutput) GoString() string {
  4294  	return s.String()
  4295  }
  4296  
  4297  // SetLFTagOnDatabase sets the LFTagOnDatabase field's value.
  4298  func (s *GetResourceLFTagsOutput) SetLFTagOnDatabase(v []*LFTagPair) *GetResourceLFTagsOutput {
  4299  	s.LFTagOnDatabase = v
  4300  	return s
  4301  }
  4302  
  4303  // SetLFTagsOnColumns sets the LFTagsOnColumns field's value.
  4304  func (s *GetResourceLFTagsOutput) SetLFTagsOnColumns(v []*ColumnLFTag) *GetResourceLFTagsOutput {
  4305  	s.LFTagsOnColumns = v
  4306  	return s
  4307  }
  4308  
  4309  // SetLFTagsOnTable sets the LFTagsOnTable field's value.
  4310  func (s *GetResourceLFTagsOutput) SetLFTagsOnTable(v []*LFTagPair) *GetResourceLFTagsOutput {
  4311  	s.LFTagsOnTable = v
  4312  	return s
  4313  }
  4314  
  4315  // An encryption operation failed.
  4316  type GlueEncryptionException struct {
  4317  	_            struct{}                  `type:"structure"`
  4318  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4319  
  4320  	// A message describing the problem.
  4321  	Message_ *string `locationName:"Message" type:"string"`
  4322  }
  4323  
  4324  // String returns the string representation.
  4325  //
  4326  // API parameter values that are decorated as "sensitive" in the API will not
  4327  // be included in the string output. The member name will be present, but the
  4328  // value will be replaced with "sensitive".
  4329  func (s GlueEncryptionException) String() string {
  4330  	return awsutil.Prettify(s)
  4331  }
  4332  
  4333  // GoString returns the string representation.
  4334  //
  4335  // API parameter values that are decorated as "sensitive" in the API will not
  4336  // be included in the string output. The member name will be present, but the
  4337  // value will be replaced with "sensitive".
  4338  func (s GlueEncryptionException) GoString() string {
  4339  	return s.String()
  4340  }
  4341  
  4342  func newErrorGlueEncryptionException(v protocol.ResponseMetadata) error {
  4343  	return &GlueEncryptionException{
  4344  		RespMetadata: v,
  4345  	}
  4346  }
  4347  
  4348  // Code returns the exception type name.
  4349  func (s *GlueEncryptionException) Code() string {
  4350  	return "GlueEncryptionException"
  4351  }
  4352  
  4353  // Message returns the exception's message.
  4354  func (s *GlueEncryptionException) Message() string {
  4355  	if s.Message_ != nil {
  4356  		return *s.Message_
  4357  	}
  4358  	return ""
  4359  }
  4360  
  4361  // OrigErr always returns nil, satisfies awserr.Error interface.
  4362  func (s *GlueEncryptionException) OrigErr() error {
  4363  	return nil
  4364  }
  4365  
  4366  func (s *GlueEncryptionException) Error() string {
  4367  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4368  }
  4369  
  4370  // Status code returns the HTTP status code for the request's response error.
  4371  func (s *GlueEncryptionException) StatusCode() int {
  4372  	return s.RespMetadata.StatusCode
  4373  }
  4374  
  4375  // RequestID returns the service's response RequestID for request.
  4376  func (s *GlueEncryptionException) RequestID() string {
  4377  	return s.RespMetadata.RequestID
  4378  }
  4379  
  4380  type GrantPermissionsInput struct {
  4381  	_ struct{} `type:"structure"`
  4382  
  4383  	// The identifier for the Data Catalog. By default, the account ID. The Data
  4384  	// Catalog is the persistent metadata store. It contains database definitions,
  4385  	// table definitions, and other control information to manage your AWS Lake
  4386  	// Formation environment.
  4387  	CatalogId *string `min:"1" type:"string"`
  4388  
  4389  	// The permissions granted to the principal on the resource. AWS Lake Formation
  4390  	// defines privileges to grant and revoke access to metadata in the Data Catalog
  4391  	// and data organized in underlying data storage such as Amazon S3. AWS Lake
  4392  	// Formation requires that each principal be authorized to perform a specific
  4393  	// task on AWS Lake Formation resources.
  4394  	//
  4395  	// Permissions is a required field
  4396  	Permissions []*string `type:"list" required:"true"`
  4397  
  4398  	// Indicates a list of the granted permissions that the principal may pass to
  4399  	// other users. These permissions may only be a subset of the permissions granted
  4400  	// in the Privileges.
  4401  	PermissionsWithGrantOption []*string `type:"list"`
  4402  
  4403  	// The principal to be granted the permissions on the resource. Supported principals
  4404  	// are IAM users or IAM roles, and they are defined by their principal type
  4405  	// and their ARN.
  4406  	//
  4407  	// Note that if you define a resource with a particular ARN, then later delete,
  4408  	// and recreate a resource with that same ARN, the resource maintains the permissions
  4409  	// already granted.
  4410  	//
  4411  	// Principal is a required field
  4412  	Principal *DataLakePrincipal `type:"structure" required:"true"`
  4413  
  4414  	// The resource to which permissions are to be granted. Resources in AWS Lake
  4415  	// Formation are the Data Catalog, databases, and tables.
  4416  	//
  4417  	// Resource is a required field
  4418  	Resource *Resource `type:"structure" required:"true"`
  4419  }
  4420  
  4421  // String 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 GrantPermissionsInput) String() string {
  4427  	return awsutil.Prettify(s)
  4428  }
  4429  
  4430  // GoString returns the string representation.
  4431  //
  4432  // API parameter values that are decorated as "sensitive" in the API will not
  4433  // be included in the string output. The member name will be present, but the
  4434  // value will be replaced with "sensitive".
  4435  func (s GrantPermissionsInput) GoString() string {
  4436  	return s.String()
  4437  }
  4438  
  4439  // Validate inspects the fields of the type to determine if they are valid.
  4440  func (s *GrantPermissionsInput) Validate() error {
  4441  	invalidParams := request.ErrInvalidParams{Context: "GrantPermissionsInput"}
  4442  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  4443  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  4444  	}
  4445  	if s.Permissions == nil {
  4446  		invalidParams.Add(request.NewErrParamRequired("Permissions"))
  4447  	}
  4448  	if s.Principal == nil {
  4449  		invalidParams.Add(request.NewErrParamRequired("Principal"))
  4450  	}
  4451  	if s.Resource == nil {
  4452  		invalidParams.Add(request.NewErrParamRequired("Resource"))
  4453  	}
  4454  	if s.Principal != nil {
  4455  		if err := s.Principal.Validate(); err != nil {
  4456  			invalidParams.AddNested("Principal", err.(request.ErrInvalidParams))
  4457  		}
  4458  	}
  4459  	if s.Resource != nil {
  4460  		if err := s.Resource.Validate(); err != nil {
  4461  			invalidParams.AddNested("Resource", err.(request.ErrInvalidParams))
  4462  		}
  4463  	}
  4464  
  4465  	if invalidParams.Len() > 0 {
  4466  		return invalidParams
  4467  	}
  4468  	return nil
  4469  }
  4470  
  4471  // SetCatalogId sets the CatalogId field's value.
  4472  func (s *GrantPermissionsInput) SetCatalogId(v string) *GrantPermissionsInput {
  4473  	s.CatalogId = &v
  4474  	return s
  4475  }
  4476  
  4477  // SetPermissions sets the Permissions field's value.
  4478  func (s *GrantPermissionsInput) SetPermissions(v []*string) *GrantPermissionsInput {
  4479  	s.Permissions = v
  4480  	return s
  4481  }
  4482  
  4483  // SetPermissionsWithGrantOption sets the PermissionsWithGrantOption field's value.
  4484  func (s *GrantPermissionsInput) SetPermissionsWithGrantOption(v []*string) *GrantPermissionsInput {
  4485  	s.PermissionsWithGrantOption = v
  4486  	return s
  4487  }
  4488  
  4489  // SetPrincipal sets the Principal field's value.
  4490  func (s *GrantPermissionsInput) SetPrincipal(v *DataLakePrincipal) *GrantPermissionsInput {
  4491  	s.Principal = v
  4492  	return s
  4493  }
  4494  
  4495  // SetResource sets the Resource field's value.
  4496  func (s *GrantPermissionsInput) SetResource(v *Resource) *GrantPermissionsInput {
  4497  	s.Resource = v
  4498  	return s
  4499  }
  4500  
  4501  type GrantPermissionsOutput struct {
  4502  	_ struct{} `type:"structure"`
  4503  }
  4504  
  4505  // String returns the string representation.
  4506  //
  4507  // API parameter values that are decorated as "sensitive" in the API will not
  4508  // be included in the string output. The member name will be present, but the
  4509  // value will be replaced with "sensitive".
  4510  func (s GrantPermissionsOutput) String() string {
  4511  	return awsutil.Prettify(s)
  4512  }
  4513  
  4514  // GoString returns the string representation.
  4515  //
  4516  // API parameter values that are decorated as "sensitive" in the API will not
  4517  // be included in the string output. The member name will be present, but the
  4518  // value will be replaced with "sensitive".
  4519  func (s GrantPermissionsOutput) GoString() string {
  4520  	return s.String()
  4521  }
  4522  
  4523  // An internal service error occurred.
  4524  type InternalServiceException struct {
  4525  	_            struct{}                  `type:"structure"`
  4526  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4527  
  4528  	// A message describing the problem.
  4529  	Message_ *string `locationName:"Message" type:"string"`
  4530  }
  4531  
  4532  // String returns the string representation.
  4533  //
  4534  // API parameter values that are decorated as "sensitive" in the API will not
  4535  // be included in the string output. The member name will be present, but the
  4536  // value will be replaced with "sensitive".
  4537  func (s InternalServiceException) String() string {
  4538  	return awsutil.Prettify(s)
  4539  }
  4540  
  4541  // GoString returns the string representation.
  4542  //
  4543  // API parameter values that are decorated as "sensitive" in the API will not
  4544  // be included in the string output. The member name will be present, but the
  4545  // value will be replaced with "sensitive".
  4546  func (s InternalServiceException) GoString() string {
  4547  	return s.String()
  4548  }
  4549  
  4550  func newErrorInternalServiceException(v protocol.ResponseMetadata) error {
  4551  	return &InternalServiceException{
  4552  		RespMetadata: v,
  4553  	}
  4554  }
  4555  
  4556  // Code returns the exception type name.
  4557  func (s *InternalServiceException) Code() string {
  4558  	return "InternalServiceException"
  4559  }
  4560  
  4561  // Message returns the exception's message.
  4562  func (s *InternalServiceException) Message() string {
  4563  	if s.Message_ != nil {
  4564  		return *s.Message_
  4565  	}
  4566  	return ""
  4567  }
  4568  
  4569  // OrigErr always returns nil, satisfies awserr.Error interface.
  4570  func (s *InternalServiceException) OrigErr() error {
  4571  	return nil
  4572  }
  4573  
  4574  func (s *InternalServiceException) Error() string {
  4575  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4576  }
  4577  
  4578  // Status code returns the HTTP status code for the request's response error.
  4579  func (s *InternalServiceException) StatusCode() int {
  4580  	return s.RespMetadata.StatusCode
  4581  }
  4582  
  4583  // RequestID returns the service's response RequestID for request.
  4584  func (s *InternalServiceException) RequestID() string {
  4585  	return s.RespMetadata.RequestID
  4586  }
  4587  
  4588  // The input provided was not valid.
  4589  type InvalidInputException struct {
  4590  	_            struct{}                  `type:"structure"`
  4591  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4592  
  4593  	// A message describing the problem.
  4594  	Message_ *string `locationName:"Message" type:"string"`
  4595  }
  4596  
  4597  // String returns the string representation.
  4598  //
  4599  // API parameter values that are decorated as "sensitive" in the API will not
  4600  // be included in the string output. The member name will be present, but the
  4601  // value will be replaced with "sensitive".
  4602  func (s InvalidInputException) String() string {
  4603  	return awsutil.Prettify(s)
  4604  }
  4605  
  4606  // GoString returns the string representation.
  4607  //
  4608  // API parameter values that are decorated as "sensitive" in the API will not
  4609  // be included in the string output. The member name will be present, but the
  4610  // value will be replaced with "sensitive".
  4611  func (s InvalidInputException) GoString() string {
  4612  	return s.String()
  4613  }
  4614  
  4615  func newErrorInvalidInputException(v protocol.ResponseMetadata) error {
  4616  	return &InvalidInputException{
  4617  		RespMetadata: v,
  4618  	}
  4619  }
  4620  
  4621  // Code returns the exception type name.
  4622  func (s *InvalidInputException) Code() string {
  4623  	return "InvalidInputException"
  4624  }
  4625  
  4626  // Message returns the exception's message.
  4627  func (s *InvalidInputException) Message() string {
  4628  	if s.Message_ != nil {
  4629  		return *s.Message_
  4630  	}
  4631  	return ""
  4632  }
  4633  
  4634  // OrigErr always returns nil, satisfies awserr.Error interface.
  4635  func (s *InvalidInputException) OrigErr() error {
  4636  	return nil
  4637  }
  4638  
  4639  func (s *InvalidInputException) Error() string {
  4640  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4641  }
  4642  
  4643  // Status code returns the HTTP status code for the request's response error.
  4644  func (s *InvalidInputException) StatusCode() int {
  4645  	return s.RespMetadata.StatusCode
  4646  }
  4647  
  4648  // RequestID returns the service's response RequestID for request.
  4649  func (s *InvalidInputException) RequestID() string {
  4650  	return s.RespMetadata.RequestID
  4651  }
  4652  
  4653  // A structure that allows an admin to grant user permissions on certain conditions.
  4654  // For example, granting a role access to all columns not tagged 'PII' of tables
  4655  // tagged 'Prod'.
  4656  type LFTag struct {
  4657  	_ struct{} `type:"structure"`
  4658  
  4659  	// The key-name for the tag.
  4660  	//
  4661  	// TagKey is a required field
  4662  	TagKey *string `min:"1" type:"string" required:"true"`
  4663  
  4664  	// A list of possible values an attribute can take.
  4665  	//
  4666  	// TagValues is a required field
  4667  	TagValues []*string `min:"1" type:"list" required:"true"`
  4668  }
  4669  
  4670  // String returns the string representation.
  4671  //
  4672  // API parameter values that are decorated as "sensitive" in the API will not
  4673  // be included in the string output. The member name will be present, but the
  4674  // value will be replaced with "sensitive".
  4675  func (s LFTag) String() string {
  4676  	return awsutil.Prettify(s)
  4677  }
  4678  
  4679  // GoString returns the string representation.
  4680  //
  4681  // API parameter values that are decorated as "sensitive" in the API will not
  4682  // be included in the string output. The member name will be present, but the
  4683  // value will be replaced with "sensitive".
  4684  func (s LFTag) GoString() string {
  4685  	return s.String()
  4686  }
  4687  
  4688  // Validate inspects the fields of the type to determine if they are valid.
  4689  func (s *LFTag) Validate() error {
  4690  	invalidParams := request.ErrInvalidParams{Context: "LFTag"}
  4691  	if s.TagKey == nil {
  4692  		invalidParams.Add(request.NewErrParamRequired("TagKey"))
  4693  	}
  4694  	if s.TagKey != nil && len(*s.TagKey) < 1 {
  4695  		invalidParams.Add(request.NewErrParamMinLen("TagKey", 1))
  4696  	}
  4697  	if s.TagValues == nil {
  4698  		invalidParams.Add(request.NewErrParamRequired("TagValues"))
  4699  	}
  4700  	if s.TagValues != nil && len(s.TagValues) < 1 {
  4701  		invalidParams.Add(request.NewErrParamMinLen("TagValues", 1))
  4702  	}
  4703  
  4704  	if invalidParams.Len() > 0 {
  4705  		return invalidParams
  4706  	}
  4707  	return nil
  4708  }
  4709  
  4710  // SetTagKey sets the TagKey field's value.
  4711  func (s *LFTag) SetTagKey(v string) *LFTag {
  4712  	s.TagKey = &v
  4713  	return s
  4714  }
  4715  
  4716  // SetTagValues sets the TagValues field's value.
  4717  func (s *LFTag) SetTagValues(v []*string) *LFTag {
  4718  	s.TagValues = v
  4719  	return s
  4720  }
  4721  
  4722  // A structure containing an error related to a TagResource or UnTagResource
  4723  // operation.
  4724  type LFTagError struct {
  4725  	_ struct{} `type:"structure"`
  4726  
  4727  	// An error that occurred with the attachment or detachment of the tag.
  4728  	Error *ErrorDetail `type:"structure"`
  4729  
  4730  	// The key-name of the tag.
  4731  	LFTag *LFTagPair `type:"structure"`
  4732  }
  4733  
  4734  // String returns the string representation.
  4735  //
  4736  // API parameter values that are decorated as "sensitive" in the API will not
  4737  // be included in the string output. The member name will be present, but the
  4738  // value will be replaced with "sensitive".
  4739  func (s LFTagError) String() string {
  4740  	return awsutil.Prettify(s)
  4741  }
  4742  
  4743  // GoString returns the string representation.
  4744  //
  4745  // API parameter values that are decorated as "sensitive" in the API will not
  4746  // be included in the string output. The member name will be present, but the
  4747  // value will be replaced with "sensitive".
  4748  func (s LFTagError) GoString() string {
  4749  	return s.String()
  4750  }
  4751  
  4752  // SetError sets the Error field's value.
  4753  func (s *LFTagError) SetError(v *ErrorDetail) *LFTagError {
  4754  	s.Error = v
  4755  	return s
  4756  }
  4757  
  4758  // SetLFTag sets the LFTag field's value.
  4759  func (s *LFTagError) SetLFTag(v *LFTagPair) *LFTagError {
  4760  	s.LFTag = v
  4761  	return s
  4762  }
  4763  
  4764  // A structure containing a tag key and values for a resource.
  4765  type LFTagKeyResource struct {
  4766  	_ struct{} `type:"structure"`
  4767  
  4768  	// The identifier for the Data Catalog. By default, the account ID. The Data
  4769  	// Catalog is the persistent metadata store. It contains database definitions,
  4770  	// table definitions, and other control information to manage your AWS Lake
  4771  	// Formation environment.
  4772  	CatalogId *string `min:"1" type:"string"`
  4773  
  4774  	// The key-name for the tag.
  4775  	//
  4776  	// TagKey is a required field
  4777  	TagKey *string `min:"1" type:"string" required:"true"`
  4778  
  4779  	// A list of possible values an attribute can take.
  4780  	//
  4781  	// TagValues is a required field
  4782  	TagValues []*string `min:"1" type:"list" required:"true"`
  4783  }
  4784  
  4785  // String returns the string representation.
  4786  //
  4787  // API parameter values that are decorated as "sensitive" in the API will not
  4788  // be included in the string output. The member name will be present, but the
  4789  // value will be replaced with "sensitive".
  4790  func (s LFTagKeyResource) String() string {
  4791  	return awsutil.Prettify(s)
  4792  }
  4793  
  4794  // GoString returns the string representation.
  4795  //
  4796  // API parameter values that are decorated as "sensitive" in the API will not
  4797  // be included in the string output. The member name will be present, but the
  4798  // value will be replaced with "sensitive".
  4799  func (s LFTagKeyResource) GoString() string {
  4800  	return s.String()
  4801  }
  4802  
  4803  // Validate inspects the fields of the type to determine if they are valid.
  4804  func (s *LFTagKeyResource) Validate() error {
  4805  	invalidParams := request.ErrInvalidParams{Context: "LFTagKeyResource"}
  4806  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  4807  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  4808  	}
  4809  	if s.TagKey == nil {
  4810  		invalidParams.Add(request.NewErrParamRequired("TagKey"))
  4811  	}
  4812  	if s.TagKey != nil && len(*s.TagKey) < 1 {
  4813  		invalidParams.Add(request.NewErrParamMinLen("TagKey", 1))
  4814  	}
  4815  	if s.TagValues == nil {
  4816  		invalidParams.Add(request.NewErrParamRequired("TagValues"))
  4817  	}
  4818  	if s.TagValues != nil && len(s.TagValues) < 1 {
  4819  		invalidParams.Add(request.NewErrParamMinLen("TagValues", 1))
  4820  	}
  4821  
  4822  	if invalidParams.Len() > 0 {
  4823  		return invalidParams
  4824  	}
  4825  	return nil
  4826  }
  4827  
  4828  // SetCatalogId sets the CatalogId field's value.
  4829  func (s *LFTagKeyResource) SetCatalogId(v string) *LFTagKeyResource {
  4830  	s.CatalogId = &v
  4831  	return s
  4832  }
  4833  
  4834  // SetTagKey sets the TagKey field's value.
  4835  func (s *LFTagKeyResource) SetTagKey(v string) *LFTagKeyResource {
  4836  	s.TagKey = &v
  4837  	return s
  4838  }
  4839  
  4840  // SetTagValues sets the TagValues field's value.
  4841  func (s *LFTagKeyResource) SetTagValues(v []*string) *LFTagKeyResource {
  4842  	s.TagValues = v
  4843  	return s
  4844  }
  4845  
  4846  // A structure containing a tag key-value pair.
  4847  type LFTagPair struct {
  4848  	_ struct{} `type:"structure"`
  4849  
  4850  	// The identifier for the Data Catalog. By default, the account ID. The Data
  4851  	// Catalog is the persistent metadata store. It contains database definitions,
  4852  	// table definitions, and other control information to manage your AWS Lake
  4853  	// Formation environment.
  4854  	CatalogId *string `min:"1" type:"string"`
  4855  
  4856  	// The key-name for the tag.
  4857  	//
  4858  	// TagKey is a required field
  4859  	TagKey *string `min:"1" type:"string" required:"true"`
  4860  
  4861  	// A list of possible values an attribute can take.
  4862  	//
  4863  	// TagValues is a required field
  4864  	TagValues []*string `min:"1" type:"list" required:"true"`
  4865  }
  4866  
  4867  // String returns the string representation.
  4868  //
  4869  // API parameter values that are decorated as "sensitive" in the API will not
  4870  // be included in the string output. The member name will be present, but the
  4871  // value will be replaced with "sensitive".
  4872  func (s LFTagPair) String() string {
  4873  	return awsutil.Prettify(s)
  4874  }
  4875  
  4876  // GoString returns the string representation.
  4877  //
  4878  // API parameter values that are decorated as "sensitive" in the API will not
  4879  // be included in the string output. The member name will be present, but the
  4880  // value will be replaced with "sensitive".
  4881  func (s LFTagPair) GoString() string {
  4882  	return s.String()
  4883  }
  4884  
  4885  // Validate inspects the fields of the type to determine if they are valid.
  4886  func (s *LFTagPair) Validate() error {
  4887  	invalidParams := request.ErrInvalidParams{Context: "LFTagPair"}
  4888  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  4889  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  4890  	}
  4891  	if s.TagKey == nil {
  4892  		invalidParams.Add(request.NewErrParamRequired("TagKey"))
  4893  	}
  4894  	if s.TagKey != nil && len(*s.TagKey) < 1 {
  4895  		invalidParams.Add(request.NewErrParamMinLen("TagKey", 1))
  4896  	}
  4897  	if s.TagValues == nil {
  4898  		invalidParams.Add(request.NewErrParamRequired("TagValues"))
  4899  	}
  4900  	if s.TagValues != nil && len(s.TagValues) < 1 {
  4901  		invalidParams.Add(request.NewErrParamMinLen("TagValues", 1))
  4902  	}
  4903  
  4904  	if invalidParams.Len() > 0 {
  4905  		return invalidParams
  4906  	}
  4907  	return nil
  4908  }
  4909  
  4910  // SetCatalogId sets the CatalogId field's value.
  4911  func (s *LFTagPair) SetCatalogId(v string) *LFTagPair {
  4912  	s.CatalogId = &v
  4913  	return s
  4914  }
  4915  
  4916  // SetTagKey sets the TagKey field's value.
  4917  func (s *LFTagPair) SetTagKey(v string) *LFTagPair {
  4918  	s.TagKey = &v
  4919  	return s
  4920  }
  4921  
  4922  // SetTagValues sets the TagValues field's value.
  4923  func (s *LFTagPair) SetTagValues(v []*string) *LFTagPair {
  4924  	s.TagValues = v
  4925  	return s
  4926  }
  4927  
  4928  // A structure containing a list of tag conditions that apply to a resource's
  4929  // tag policy.
  4930  type LFTagPolicyResource struct {
  4931  	_ struct{} `type:"structure"`
  4932  
  4933  	// The identifier for the Data Catalog. By default, the account ID. The Data
  4934  	// Catalog is the persistent metadata store. It contains database definitions,
  4935  	// table definitions, and other control information to manage your AWS Lake
  4936  	// Formation environment.
  4937  	CatalogId *string `min:"1" type:"string"`
  4938  
  4939  	// A list of tag conditions that apply to the resource's tag policy.
  4940  	//
  4941  	// Expression is a required field
  4942  	Expression []*LFTag `min:"1" type:"list" required:"true"`
  4943  
  4944  	// The resource type for which the tag policy applies.
  4945  	//
  4946  	// ResourceType is a required field
  4947  	ResourceType *string `type:"string" required:"true" enum:"ResourceType"`
  4948  }
  4949  
  4950  // String returns the string representation.
  4951  //
  4952  // API parameter values that are decorated as "sensitive" in the API will not
  4953  // be included in the string output. The member name will be present, but the
  4954  // value will be replaced with "sensitive".
  4955  func (s LFTagPolicyResource) String() string {
  4956  	return awsutil.Prettify(s)
  4957  }
  4958  
  4959  // GoString returns the string representation.
  4960  //
  4961  // API parameter values that are decorated as "sensitive" in the API will not
  4962  // be included in the string output. The member name will be present, but the
  4963  // value will be replaced with "sensitive".
  4964  func (s LFTagPolicyResource) GoString() string {
  4965  	return s.String()
  4966  }
  4967  
  4968  // Validate inspects the fields of the type to determine if they are valid.
  4969  func (s *LFTagPolicyResource) Validate() error {
  4970  	invalidParams := request.ErrInvalidParams{Context: "LFTagPolicyResource"}
  4971  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  4972  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  4973  	}
  4974  	if s.Expression == nil {
  4975  		invalidParams.Add(request.NewErrParamRequired("Expression"))
  4976  	}
  4977  	if s.Expression != nil && len(s.Expression) < 1 {
  4978  		invalidParams.Add(request.NewErrParamMinLen("Expression", 1))
  4979  	}
  4980  	if s.ResourceType == nil {
  4981  		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
  4982  	}
  4983  	if s.Expression != nil {
  4984  		for i, v := range s.Expression {
  4985  			if v == nil {
  4986  				continue
  4987  			}
  4988  			if err := v.Validate(); err != nil {
  4989  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Expression", i), err.(request.ErrInvalidParams))
  4990  			}
  4991  		}
  4992  	}
  4993  
  4994  	if invalidParams.Len() > 0 {
  4995  		return invalidParams
  4996  	}
  4997  	return nil
  4998  }
  4999  
  5000  // SetCatalogId sets the CatalogId field's value.
  5001  func (s *LFTagPolicyResource) SetCatalogId(v string) *LFTagPolicyResource {
  5002  	s.CatalogId = &v
  5003  	return s
  5004  }
  5005  
  5006  // SetExpression sets the Expression field's value.
  5007  func (s *LFTagPolicyResource) SetExpression(v []*LFTag) *LFTagPolicyResource {
  5008  	s.Expression = v
  5009  	return s
  5010  }
  5011  
  5012  // SetResourceType sets the ResourceType field's value.
  5013  func (s *LFTagPolicyResource) SetResourceType(v string) *LFTagPolicyResource {
  5014  	s.ResourceType = &v
  5015  	return s
  5016  }
  5017  
  5018  type ListLFTagsInput struct {
  5019  	_ struct{} `type:"structure"`
  5020  
  5021  	// The identifier for the Data Catalog. By default, the account ID. The Data
  5022  	// Catalog is the persistent metadata store. It contains database definitions,
  5023  	// table definitions, and other control information to manage your AWS Lake
  5024  	// Formation environment.
  5025  	CatalogId *string `min:"1" type:"string"`
  5026  
  5027  	// The maximum number of results to return.
  5028  	MaxResults *int64 `min:"1" type:"integer"`
  5029  
  5030  	// A continuation token, if this is not the first call to retrieve this list.
  5031  	NextToken *string `type:"string"`
  5032  
  5033  	// If resource share type is ALL, returns both in-account tags and shared tags
  5034  	// that the requester has permission to view. If resource share type is FOREIGN,
  5035  	// returns all share tags that the requester can view. If no resource share
  5036  	// type is passed, lists tags in the given catalog ID that the requester has
  5037  	// permission to view.
  5038  	ResourceShareType *string `type:"string" enum:"ResourceShareType"`
  5039  }
  5040  
  5041  // String returns the string representation.
  5042  //
  5043  // API parameter values that are decorated as "sensitive" in the API will not
  5044  // be included in the string output. The member name will be present, but the
  5045  // value will be replaced with "sensitive".
  5046  func (s ListLFTagsInput) String() string {
  5047  	return awsutil.Prettify(s)
  5048  }
  5049  
  5050  // GoString returns the string representation.
  5051  //
  5052  // API parameter values that are decorated as "sensitive" in the API will not
  5053  // be included in the string output. The member name will be present, but the
  5054  // value will be replaced with "sensitive".
  5055  func (s ListLFTagsInput) GoString() string {
  5056  	return s.String()
  5057  }
  5058  
  5059  // Validate inspects the fields of the type to determine if they are valid.
  5060  func (s *ListLFTagsInput) Validate() error {
  5061  	invalidParams := request.ErrInvalidParams{Context: "ListLFTagsInput"}
  5062  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  5063  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  5064  	}
  5065  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5066  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5067  	}
  5068  
  5069  	if invalidParams.Len() > 0 {
  5070  		return invalidParams
  5071  	}
  5072  	return nil
  5073  }
  5074  
  5075  // SetCatalogId sets the CatalogId field's value.
  5076  func (s *ListLFTagsInput) SetCatalogId(v string) *ListLFTagsInput {
  5077  	s.CatalogId = &v
  5078  	return s
  5079  }
  5080  
  5081  // SetMaxResults sets the MaxResults field's value.
  5082  func (s *ListLFTagsInput) SetMaxResults(v int64) *ListLFTagsInput {
  5083  	s.MaxResults = &v
  5084  	return s
  5085  }
  5086  
  5087  // SetNextToken sets the NextToken field's value.
  5088  func (s *ListLFTagsInput) SetNextToken(v string) *ListLFTagsInput {
  5089  	s.NextToken = &v
  5090  	return s
  5091  }
  5092  
  5093  // SetResourceShareType sets the ResourceShareType field's value.
  5094  func (s *ListLFTagsInput) SetResourceShareType(v string) *ListLFTagsInput {
  5095  	s.ResourceShareType = &v
  5096  	return s
  5097  }
  5098  
  5099  type ListLFTagsOutput struct {
  5100  	_ struct{} `type:"structure"`
  5101  
  5102  	// A list of tags that the requested has permission to view.
  5103  	LFTags []*LFTagPair `min:"1" type:"list"`
  5104  
  5105  	// A continuation token, present if the current list segment is not the last.
  5106  	NextToken *string `type:"string"`
  5107  }
  5108  
  5109  // String returns the string representation.
  5110  //
  5111  // API parameter values that are decorated as "sensitive" in the API will not
  5112  // be included in the string output. The member name will be present, but the
  5113  // value will be replaced with "sensitive".
  5114  func (s ListLFTagsOutput) String() string {
  5115  	return awsutil.Prettify(s)
  5116  }
  5117  
  5118  // GoString returns the string representation.
  5119  //
  5120  // API parameter values that are decorated as "sensitive" in the API will not
  5121  // be included in the string output. The member name will be present, but the
  5122  // value will be replaced with "sensitive".
  5123  func (s ListLFTagsOutput) GoString() string {
  5124  	return s.String()
  5125  }
  5126  
  5127  // SetLFTags sets the LFTags field's value.
  5128  func (s *ListLFTagsOutput) SetLFTags(v []*LFTagPair) *ListLFTagsOutput {
  5129  	s.LFTags = v
  5130  	return s
  5131  }
  5132  
  5133  // SetNextToken sets the NextToken field's value.
  5134  func (s *ListLFTagsOutput) SetNextToken(v string) *ListLFTagsOutput {
  5135  	s.NextToken = &v
  5136  	return s
  5137  }
  5138  
  5139  type ListPermissionsInput struct {
  5140  	_ struct{} `type:"structure"`
  5141  
  5142  	// The identifier for the Data Catalog. By default, the account ID. The Data
  5143  	// Catalog is the persistent metadata store. It contains database definitions,
  5144  	// table definitions, and other control information to manage your AWS Lake
  5145  	// Formation environment.
  5146  	CatalogId *string `min:"1" type:"string"`
  5147  
  5148  	// The maximum number of results to return.
  5149  	MaxResults *int64 `min:"1" type:"integer"`
  5150  
  5151  	// A continuation token, if this is not the first call to retrieve this list.
  5152  	NextToken *string `type:"string"`
  5153  
  5154  	// Specifies a principal to filter the permissions returned.
  5155  	Principal *DataLakePrincipal `type:"structure"`
  5156  
  5157  	// A resource where you will get a list of the principal permissions.
  5158  	//
  5159  	// This operation does not support getting privileges on a table with columns.
  5160  	// Instead, call this operation on the table, and the operation returns the
  5161  	// table and the table w columns.
  5162  	Resource *Resource `type:"structure"`
  5163  
  5164  	// Specifies a resource type to filter the permissions returned.
  5165  	ResourceType *string `type:"string" enum:"DataLakeResourceType"`
  5166  }
  5167  
  5168  // String returns the string representation.
  5169  //
  5170  // API parameter values that are decorated as "sensitive" in the API will not
  5171  // be included in the string output. The member name will be present, but the
  5172  // value will be replaced with "sensitive".
  5173  func (s ListPermissionsInput) String() string {
  5174  	return awsutil.Prettify(s)
  5175  }
  5176  
  5177  // GoString returns the string representation.
  5178  //
  5179  // API parameter values that are decorated as "sensitive" in the API will not
  5180  // be included in the string output. The member name will be present, but the
  5181  // value will be replaced with "sensitive".
  5182  func (s ListPermissionsInput) GoString() string {
  5183  	return s.String()
  5184  }
  5185  
  5186  // Validate inspects the fields of the type to determine if they are valid.
  5187  func (s *ListPermissionsInput) Validate() error {
  5188  	invalidParams := request.ErrInvalidParams{Context: "ListPermissionsInput"}
  5189  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  5190  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  5191  	}
  5192  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5193  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5194  	}
  5195  	if s.Principal != nil {
  5196  		if err := s.Principal.Validate(); err != nil {
  5197  			invalidParams.AddNested("Principal", err.(request.ErrInvalidParams))
  5198  		}
  5199  	}
  5200  	if s.Resource != nil {
  5201  		if err := s.Resource.Validate(); err != nil {
  5202  			invalidParams.AddNested("Resource", err.(request.ErrInvalidParams))
  5203  		}
  5204  	}
  5205  
  5206  	if invalidParams.Len() > 0 {
  5207  		return invalidParams
  5208  	}
  5209  	return nil
  5210  }
  5211  
  5212  // SetCatalogId sets the CatalogId field's value.
  5213  func (s *ListPermissionsInput) SetCatalogId(v string) *ListPermissionsInput {
  5214  	s.CatalogId = &v
  5215  	return s
  5216  }
  5217  
  5218  // SetMaxResults sets the MaxResults field's value.
  5219  func (s *ListPermissionsInput) SetMaxResults(v int64) *ListPermissionsInput {
  5220  	s.MaxResults = &v
  5221  	return s
  5222  }
  5223  
  5224  // SetNextToken sets the NextToken field's value.
  5225  func (s *ListPermissionsInput) SetNextToken(v string) *ListPermissionsInput {
  5226  	s.NextToken = &v
  5227  	return s
  5228  }
  5229  
  5230  // SetPrincipal sets the Principal field's value.
  5231  func (s *ListPermissionsInput) SetPrincipal(v *DataLakePrincipal) *ListPermissionsInput {
  5232  	s.Principal = v
  5233  	return s
  5234  }
  5235  
  5236  // SetResource sets the Resource field's value.
  5237  func (s *ListPermissionsInput) SetResource(v *Resource) *ListPermissionsInput {
  5238  	s.Resource = v
  5239  	return s
  5240  }
  5241  
  5242  // SetResourceType sets the ResourceType field's value.
  5243  func (s *ListPermissionsInput) SetResourceType(v string) *ListPermissionsInput {
  5244  	s.ResourceType = &v
  5245  	return s
  5246  }
  5247  
  5248  type ListPermissionsOutput struct {
  5249  	_ struct{} `type:"structure"`
  5250  
  5251  	// A continuation token, if this is not the first call to retrieve this list.
  5252  	NextToken *string `type:"string"`
  5253  
  5254  	// A list of principals and their permissions on the resource for the specified
  5255  	// principal and resource types.
  5256  	PrincipalResourcePermissions []*PrincipalResourcePermissions `type:"list"`
  5257  }
  5258  
  5259  // String returns the string representation.
  5260  //
  5261  // API parameter values that are decorated as "sensitive" in the API will not
  5262  // be included in the string output. The member name will be present, but the
  5263  // value will be replaced with "sensitive".
  5264  func (s ListPermissionsOutput) String() string {
  5265  	return awsutil.Prettify(s)
  5266  }
  5267  
  5268  // GoString returns the string representation.
  5269  //
  5270  // API parameter values that are decorated as "sensitive" in the API will not
  5271  // be included in the string output. The member name will be present, but the
  5272  // value will be replaced with "sensitive".
  5273  func (s ListPermissionsOutput) GoString() string {
  5274  	return s.String()
  5275  }
  5276  
  5277  // SetNextToken sets the NextToken field's value.
  5278  func (s *ListPermissionsOutput) SetNextToken(v string) *ListPermissionsOutput {
  5279  	s.NextToken = &v
  5280  	return s
  5281  }
  5282  
  5283  // SetPrincipalResourcePermissions sets the PrincipalResourcePermissions field's value.
  5284  func (s *ListPermissionsOutput) SetPrincipalResourcePermissions(v []*PrincipalResourcePermissions) *ListPermissionsOutput {
  5285  	s.PrincipalResourcePermissions = v
  5286  	return s
  5287  }
  5288  
  5289  type ListResourcesInput struct {
  5290  	_ struct{} `type:"structure"`
  5291  
  5292  	// Any applicable row-level and/or column-level filtering conditions for the
  5293  	// resources.
  5294  	FilterConditionList []*FilterCondition `min:"1" type:"list"`
  5295  
  5296  	// The maximum number of resource results.
  5297  	MaxResults *int64 `min:"1" type:"integer"`
  5298  
  5299  	// A continuation token, if this is not the first call to retrieve these resources.
  5300  	NextToken *string `type:"string"`
  5301  }
  5302  
  5303  // String returns the string representation.
  5304  //
  5305  // API parameter values that are decorated as "sensitive" in the API will not
  5306  // be included in the string output. The member name will be present, but the
  5307  // value will be replaced with "sensitive".
  5308  func (s ListResourcesInput) String() string {
  5309  	return awsutil.Prettify(s)
  5310  }
  5311  
  5312  // GoString returns the string representation.
  5313  //
  5314  // API parameter values that are decorated as "sensitive" in the API will not
  5315  // be included in the string output. The member name will be present, but the
  5316  // value will be replaced with "sensitive".
  5317  func (s ListResourcesInput) GoString() string {
  5318  	return s.String()
  5319  }
  5320  
  5321  // Validate inspects the fields of the type to determine if they are valid.
  5322  func (s *ListResourcesInput) Validate() error {
  5323  	invalidParams := request.ErrInvalidParams{Context: "ListResourcesInput"}
  5324  	if s.FilterConditionList != nil && len(s.FilterConditionList) < 1 {
  5325  		invalidParams.Add(request.NewErrParamMinLen("FilterConditionList", 1))
  5326  	}
  5327  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5328  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5329  	}
  5330  
  5331  	if invalidParams.Len() > 0 {
  5332  		return invalidParams
  5333  	}
  5334  	return nil
  5335  }
  5336  
  5337  // SetFilterConditionList sets the FilterConditionList field's value.
  5338  func (s *ListResourcesInput) SetFilterConditionList(v []*FilterCondition) *ListResourcesInput {
  5339  	s.FilterConditionList = v
  5340  	return s
  5341  }
  5342  
  5343  // SetMaxResults sets the MaxResults field's value.
  5344  func (s *ListResourcesInput) SetMaxResults(v int64) *ListResourcesInput {
  5345  	s.MaxResults = &v
  5346  	return s
  5347  }
  5348  
  5349  // SetNextToken sets the NextToken field's value.
  5350  func (s *ListResourcesInput) SetNextToken(v string) *ListResourcesInput {
  5351  	s.NextToken = &v
  5352  	return s
  5353  }
  5354  
  5355  type ListResourcesOutput struct {
  5356  	_ struct{} `type:"structure"`
  5357  
  5358  	// A continuation token, if this is not the first call to retrieve these resources.
  5359  	NextToken *string `type:"string"`
  5360  
  5361  	// A summary of the data lake resources.
  5362  	ResourceInfoList []*ResourceInfo `type:"list"`
  5363  }
  5364  
  5365  // String returns the string representation.
  5366  //
  5367  // API parameter values that are decorated as "sensitive" in the API will not
  5368  // be included in the string output. The member name will be present, but the
  5369  // value will be replaced with "sensitive".
  5370  func (s ListResourcesOutput) String() string {
  5371  	return awsutil.Prettify(s)
  5372  }
  5373  
  5374  // GoString returns the string representation.
  5375  //
  5376  // API parameter values that are decorated as "sensitive" in the API will not
  5377  // be included in the string output. The member name will be present, but the
  5378  // value will be replaced with "sensitive".
  5379  func (s ListResourcesOutput) GoString() string {
  5380  	return s.String()
  5381  }
  5382  
  5383  // SetNextToken sets the NextToken field's value.
  5384  func (s *ListResourcesOutput) SetNextToken(v string) *ListResourcesOutput {
  5385  	s.NextToken = &v
  5386  	return s
  5387  }
  5388  
  5389  // SetResourceInfoList sets the ResourceInfoList field's value.
  5390  func (s *ListResourcesOutput) SetResourceInfoList(v []*ResourceInfo) *ListResourcesOutput {
  5391  	s.ResourceInfoList = v
  5392  	return s
  5393  }
  5394  
  5395  // The operation timed out.
  5396  type OperationTimeoutException struct {
  5397  	_            struct{}                  `type:"structure"`
  5398  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5399  
  5400  	// A message describing the problem.
  5401  	Message_ *string `locationName:"Message" type:"string"`
  5402  }
  5403  
  5404  // String returns the string representation.
  5405  //
  5406  // API parameter values that are decorated as "sensitive" in the API will not
  5407  // be included in the string output. The member name will be present, but the
  5408  // value will be replaced with "sensitive".
  5409  func (s OperationTimeoutException) String() string {
  5410  	return awsutil.Prettify(s)
  5411  }
  5412  
  5413  // GoString returns the string representation.
  5414  //
  5415  // API parameter values that are decorated as "sensitive" in the API will not
  5416  // be included in the string output. The member name will be present, but the
  5417  // value will be replaced with "sensitive".
  5418  func (s OperationTimeoutException) GoString() string {
  5419  	return s.String()
  5420  }
  5421  
  5422  func newErrorOperationTimeoutException(v protocol.ResponseMetadata) error {
  5423  	return &OperationTimeoutException{
  5424  		RespMetadata: v,
  5425  	}
  5426  }
  5427  
  5428  // Code returns the exception type name.
  5429  func (s *OperationTimeoutException) Code() string {
  5430  	return "OperationTimeoutException"
  5431  }
  5432  
  5433  // Message returns the exception's message.
  5434  func (s *OperationTimeoutException) Message() string {
  5435  	if s.Message_ != nil {
  5436  		return *s.Message_
  5437  	}
  5438  	return ""
  5439  }
  5440  
  5441  // OrigErr always returns nil, satisfies awserr.Error interface.
  5442  func (s *OperationTimeoutException) OrigErr() error {
  5443  	return nil
  5444  }
  5445  
  5446  func (s *OperationTimeoutException) Error() string {
  5447  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5448  }
  5449  
  5450  // Status code returns the HTTP status code for the request's response error.
  5451  func (s *OperationTimeoutException) StatusCode() int {
  5452  	return s.RespMetadata.StatusCode
  5453  }
  5454  
  5455  // RequestID returns the service's response RequestID for request.
  5456  func (s *OperationTimeoutException) RequestID() string {
  5457  	return s.RespMetadata.RequestID
  5458  }
  5459  
  5460  // Permissions granted to a principal.
  5461  type PrincipalPermissions struct {
  5462  	_ struct{} `type:"structure"`
  5463  
  5464  	// The permissions that are granted to the principal.
  5465  	Permissions []*string `type:"list"`
  5466  
  5467  	// The principal who is granted permissions.
  5468  	Principal *DataLakePrincipal `type:"structure"`
  5469  }
  5470  
  5471  // String returns the string representation.
  5472  //
  5473  // API parameter values that are decorated as "sensitive" in the API will not
  5474  // be included in the string output. The member name will be present, but the
  5475  // value will be replaced with "sensitive".
  5476  func (s PrincipalPermissions) String() string {
  5477  	return awsutil.Prettify(s)
  5478  }
  5479  
  5480  // GoString returns the string representation.
  5481  //
  5482  // API parameter values that are decorated as "sensitive" in the API will not
  5483  // be included in the string output. The member name will be present, but the
  5484  // value will be replaced with "sensitive".
  5485  func (s PrincipalPermissions) GoString() string {
  5486  	return s.String()
  5487  }
  5488  
  5489  // Validate inspects the fields of the type to determine if they are valid.
  5490  func (s *PrincipalPermissions) Validate() error {
  5491  	invalidParams := request.ErrInvalidParams{Context: "PrincipalPermissions"}
  5492  	if s.Principal != nil {
  5493  		if err := s.Principal.Validate(); err != nil {
  5494  			invalidParams.AddNested("Principal", err.(request.ErrInvalidParams))
  5495  		}
  5496  	}
  5497  
  5498  	if invalidParams.Len() > 0 {
  5499  		return invalidParams
  5500  	}
  5501  	return nil
  5502  }
  5503  
  5504  // SetPermissions sets the Permissions field's value.
  5505  func (s *PrincipalPermissions) SetPermissions(v []*string) *PrincipalPermissions {
  5506  	s.Permissions = v
  5507  	return s
  5508  }
  5509  
  5510  // SetPrincipal sets the Principal field's value.
  5511  func (s *PrincipalPermissions) SetPrincipal(v *DataLakePrincipal) *PrincipalPermissions {
  5512  	s.Principal = v
  5513  	return s
  5514  }
  5515  
  5516  // The permissions granted or revoked on a resource.
  5517  type PrincipalResourcePermissions struct {
  5518  	_ struct{} `type:"structure"`
  5519  
  5520  	// This attribute can be used to return any additional details of PrincipalResourcePermissions.
  5521  	// Currently returns only as a RAM resource share ARN.
  5522  	AdditionalDetails *DetailsMap `type:"structure"`
  5523  
  5524  	// The permissions to be granted or revoked on the resource.
  5525  	Permissions []*string `type:"list"`
  5526  
  5527  	// Indicates whether to grant the ability to grant permissions (as a subset
  5528  	// of permissions granted).
  5529  	PermissionsWithGrantOption []*string `type:"list"`
  5530  
  5531  	// The Data Lake principal to be granted or revoked permissions.
  5532  	Principal *DataLakePrincipal `type:"structure"`
  5533  
  5534  	// The resource where permissions are to be granted or revoked.
  5535  	Resource *Resource `type:"structure"`
  5536  }
  5537  
  5538  // String returns the string representation.
  5539  //
  5540  // API parameter values that are decorated as "sensitive" in the API will not
  5541  // be included in the string output. The member name will be present, but the
  5542  // value will be replaced with "sensitive".
  5543  func (s PrincipalResourcePermissions) String() string {
  5544  	return awsutil.Prettify(s)
  5545  }
  5546  
  5547  // GoString returns the string representation.
  5548  //
  5549  // API parameter values that are decorated as "sensitive" in the API will not
  5550  // be included in the string output. The member name will be present, but the
  5551  // value will be replaced with "sensitive".
  5552  func (s PrincipalResourcePermissions) GoString() string {
  5553  	return s.String()
  5554  }
  5555  
  5556  // SetAdditionalDetails sets the AdditionalDetails field's value.
  5557  func (s *PrincipalResourcePermissions) SetAdditionalDetails(v *DetailsMap) *PrincipalResourcePermissions {
  5558  	s.AdditionalDetails = v
  5559  	return s
  5560  }
  5561  
  5562  // SetPermissions sets the Permissions field's value.
  5563  func (s *PrincipalResourcePermissions) SetPermissions(v []*string) *PrincipalResourcePermissions {
  5564  	s.Permissions = v
  5565  	return s
  5566  }
  5567  
  5568  // SetPermissionsWithGrantOption sets the PermissionsWithGrantOption field's value.
  5569  func (s *PrincipalResourcePermissions) SetPermissionsWithGrantOption(v []*string) *PrincipalResourcePermissions {
  5570  	s.PermissionsWithGrantOption = v
  5571  	return s
  5572  }
  5573  
  5574  // SetPrincipal sets the Principal field's value.
  5575  func (s *PrincipalResourcePermissions) SetPrincipal(v *DataLakePrincipal) *PrincipalResourcePermissions {
  5576  	s.Principal = v
  5577  	return s
  5578  }
  5579  
  5580  // SetResource sets the Resource field's value.
  5581  func (s *PrincipalResourcePermissions) SetResource(v *Resource) *PrincipalResourcePermissions {
  5582  	s.Resource = v
  5583  	return s
  5584  }
  5585  
  5586  type PutDataLakeSettingsInput struct {
  5587  	_ struct{} `type:"structure"`
  5588  
  5589  	// The identifier for the Data Catalog. By default, the account ID. The Data
  5590  	// Catalog is the persistent metadata store. It contains database definitions,
  5591  	// table definitions, and other control information to manage your AWS Lake
  5592  	// Formation environment.
  5593  	CatalogId *string `min:"1" type:"string"`
  5594  
  5595  	// A structure representing a list of AWS Lake Formation principals designated
  5596  	// as data lake administrators.
  5597  	//
  5598  	// DataLakeSettings is a required field
  5599  	DataLakeSettings *DataLakeSettings `type:"structure" required:"true"`
  5600  }
  5601  
  5602  // String returns the string representation.
  5603  //
  5604  // API parameter values that are decorated as "sensitive" in the API will not
  5605  // be included in the string output. The member name will be present, but the
  5606  // value will be replaced with "sensitive".
  5607  func (s PutDataLakeSettingsInput) String() string {
  5608  	return awsutil.Prettify(s)
  5609  }
  5610  
  5611  // GoString returns the string representation.
  5612  //
  5613  // API parameter values that are decorated as "sensitive" in the API will not
  5614  // be included in the string output. The member name will be present, but the
  5615  // value will be replaced with "sensitive".
  5616  func (s PutDataLakeSettingsInput) GoString() string {
  5617  	return s.String()
  5618  }
  5619  
  5620  // Validate inspects the fields of the type to determine if they are valid.
  5621  func (s *PutDataLakeSettingsInput) Validate() error {
  5622  	invalidParams := request.ErrInvalidParams{Context: "PutDataLakeSettingsInput"}
  5623  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  5624  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  5625  	}
  5626  	if s.DataLakeSettings == nil {
  5627  		invalidParams.Add(request.NewErrParamRequired("DataLakeSettings"))
  5628  	}
  5629  	if s.DataLakeSettings != nil {
  5630  		if err := s.DataLakeSettings.Validate(); err != nil {
  5631  			invalidParams.AddNested("DataLakeSettings", err.(request.ErrInvalidParams))
  5632  		}
  5633  	}
  5634  
  5635  	if invalidParams.Len() > 0 {
  5636  		return invalidParams
  5637  	}
  5638  	return nil
  5639  }
  5640  
  5641  // SetCatalogId sets the CatalogId field's value.
  5642  func (s *PutDataLakeSettingsInput) SetCatalogId(v string) *PutDataLakeSettingsInput {
  5643  	s.CatalogId = &v
  5644  	return s
  5645  }
  5646  
  5647  // SetDataLakeSettings sets the DataLakeSettings field's value.
  5648  func (s *PutDataLakeSettingsInput) SetDataLakeSettings(v *DataLakeSettings) *PutDataLakeSettingsInput {
  5649  	s.DataLakeSettings = v
  5650  	return s
  5651  }
  5652  
  5653  type PutDataLakeSettingsOutput struct {
  5654  	_ struct{} `type:"structure"`
  5655  }
  5656  
  5657  // String returns the string representation.
  5658  //
  5659  // API parameter values that are decorated as "sensitive" in the API will not
  5660  // be included in the string output. The member name will be present, but the
  5661  // value will be replaced with "sensitive".
  5662  func (s PutDataLakeSettingsOutput) String() string {
  5663  	return awsutil.Prettify(s)
  5664  }
  5665  
  5666  // GoString returns the string representation.
  5667  //
  5668  // API parameter values that are decorated as "sensitive" in the API will not
  5669  // be included in the string output. The member name will be present, but the
  5670  // value will be replaced with "sensitive".
  5671  func (s PutDataLakeSettingsOutput) GoString() string {
  5672  	return s.String()
  5673  }
  5674  
  5675  type RegisterResourceInput struct {
  5676  	_ struct{} `type:"structure"`
  5677  
  5678  	// The Amazon Resource Name (ARN) of the resource that you want to register.
  5679  	//
  5680  	// ResourceArn is a required field
  5681  	ResourceArn *string `type:"string" required:"true"`
  5682  
  5683  	// The identifier for the role that registers the resource.
  5684  	RoleArn *string `type:"string"`
  5685  
  5686  	// Designates an AWS Identity and Access Management (IAM) service-linked role
  5687  	// by registering this role with the Data Catalog. A service-linked role is
  5688  	// a unique type of IAM role that is linked directly to Lake Formation.
  5689  	//
  5690  	// For more information, see Using Service-Linked Roles for Lake Formation (https://docs-aws.amazon.com/lake-formation/latest/dg/service-linked-roles.html).
  5691  	UseServiceLinkedRole *bool `type:"boolean"`
  5692  }
  5693  
  5694  // String returns the string representation.
  5695  //
  5696  // API parameter values that are decorated as "sensitive" in the API will not
  5697  // be included in the string output. The member name will be present, but the
  5698  // value will be replaced with "sensitive".
  5699  func (s RegisterResourceInput) String() string {
  5700  	return awsutil.Prettify(s)
  5701  }
  5702  
  5703  // GoString returns the string representation.
  5704  //
  5705  // API parameter values that are decorated as "sensitive" in the API will not
  5706  // be included in the string output. The member name will be present, but the
  5707  // value will be replaced with "sensitive".
  5708  func (s RegisterResourceInput) GoString() string {
  5709  	return s.String()
  5710  }
  5711  
  5712  // Validate inspects the fields of the type to determine if they are valid.
  5713  func (s *RegisterResourceInput) Validate() error {
  5714  	invalidParams := request.ErrInvalidParams{Context: "RegisterResourceInput"}
  5715  	if s.ResourceArn == nil {
  5716  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  5717  	}
  5718  
  5719  	if invalidParams.Len() > 0 {
  5720  		return invalidParams
  5721  	}
  5722  	return nil
  5723  }
  5724  
  5725  // SetResourceArn sets the ResourceArn field's value.
  5726  func (s *RegisterResourceInput) SetResourceArn(v string) *RegisterResourceInput {
  5727  	s.ResourceArn = &v
  5728  	return s
  5729  }
  5730  
  5731  // SetRoleArn sets the RoleArn field's value.
  5732  func (s *RegisterResourceInput) SetRoleArn(v string) *RegisterResourceInput {
  5733  	s.RoleArn = &v
  5734  	return s
  5735  }
  5736  
  5737  // SetUseServiceLinkedRole sets the UseServiceLinkedRole field's value.
  5738  func (s *RegisterResourceInput) SetUseServiceLinkedRole(v bool) *RegisterResourceInput {
  5739  	s.UseServiceLinkedRole = &v
  5740  	return s
  5741  }
  5742  
  5743  type RegisterResourceOutput struct {
  5744  	_ struct{} `type:"structure"`
  5745  }
  5746  
  5747  // String returns the string representation.
  5748  //
  5749  // API parameter values that are decorated as "sensitive" in the API will not
  5750  // be included in the string output. The member name will be present, but the
  5751  // value will be replaced with "sensitive".
  5752  func (s RegisterResourceOutput) String() string {
  5753  	return awsutil.Prettify(s)
  5754  }
  5755  
  5756  // GoString returns the string representation.
  5757  //
  5758  // API parameter values that are decorated as "sensitive" in the API will not
  5759  // be included in the string output. The member name will be present, but the
  5760  // value will be replaced with "sensitive".
  5761  func (s RegisterResourceOutput) GoString() string {
  5762  	return s.String()
  5763  }
  5764  
  5765  type RemoveLFTagsFromResourceInput struct {
  5766  	_ struct{} `type:"structure"`
  5767  
  5768  	// The identifier for the Data Catalog. By default, the account ID. The Data
  5769  	// Catalog is the persistent metadata store. It contains database definitions,
  5770  	// table definitions, and other control information to manage your AWS Lake
  5771  	// Formation environment.
  5772  	CatalogId *string `min:"1" type:"string"`
  5773  
  5774  	// The tags to be removed from the resource.
  5775  	//
  5776  	// LFTags is a required field
  5777  	LFTags []*LFTagPair `min:"1" type:"list" required:"true"`
  5778  
  5779  	// The resource where you want to remove a tag.
  5780  	//
  5781  	// Resource is a required field
  5782  	Resource *Resource `type:"structure" required:"true"`
  5783  }
  5784  
  5785  // String returns the string representation.
  5786  //
  5787  // API parameter values that are decorated as "sensitive" in the API will not
  5788  // be included in the string output. The member name will be present, but the
  5789  // value will be replaced with "sensitive".
  5790  func (s RemoveLFTagsFromResourceInput) String() string {
  5791  	return awsutil.Prettify(s)
  5792  }
  5793  
  5794  // GoString returns the string representation.
  5795  //
  5796  // API parameter values that are decorated as "sensitive" in the API will not
  5797  // be included in the string output. The member name will be present, but the
  5798  // value will be replaced with "sensitive".
  5799  func (s RemoveLFTagsFromResourceInput) GoString() string {
  5800  	return s.String()
  5801  }
  5802  
  5803  // Validate inspects the fields of the type to determine if they are valid.
  5804  func (s *RemoveLFTagsFromResourceInput) Validate() error {
  5805  	invalidParams := request.ErrInvalidParams{Context: "RemoveLFTagsFromResourceInput"}
  5806  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  5807  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  5808  	}
  5809  	if s.LFTags == nil {
  5810  		invalidParams.Add(request.NewErrParamRequired("LFTags"))
  5811  	}
  5812  	if s.LFTags != nil && len(s.LFTags) < 1 {
  5813  		invalidParams.Add(request.NewErrParamMinLen("LFTags", 1))
  5814  	}
  5815  	if s.Resource == nil {
  5816  		invalidParams.Add(request.NewErrParamRequired("Resource"))
  5817  	}
  5818  	if s.LFTags != nil {
  5819  		for i, v := range s.LFTags {
  5820  			if v == nil {
  5821  				continue
  5822  			}
  5823  			if err := v.Validate(); err != nil {
  5824  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LFTags", i), err.(request.ErrInvalidParams))
  5825  			}
  5826  		}
  5827  	}
  5828  	if s.Resource != nil {
  5829  		if err := s.Resource.Validate(); err != nil {
  5830  			invalidParams.AddNested("Resource", err.(request.ErrInvalidParams))
  5831  		}
  5832  	}
  5833  
  5834  	if invalidParams.Len() > 0 {
  5835  		return invalidParams
  5836  	}
  5837  	return nil
  5838  }
  5839  
  5840  // SetCatalogId sets the CatalogId field's value.
  5841  func (s *RemoveLFTagsFromResourceInput) SetCatalogId(v string) *RemoveLFTagsFromResourceInput {
  5842  	s.CatalogId = &v
  5843  	return s
  5844  }
  5845  
  5846  // SetLFTags sets the LFTags field's value.
  5847  func (s *RemoveLFTagsFromResourceInput) SetLFTags(v []*LFTagPair) *RemoveLFTagsFromResourceInput {
  5848  	s.LFTags = v
  5849  	return s
  5850  }
  5851  
  5852  // SetResource sets the Resource field's value.
  5853  func (s *RemoveLFTagsFromResourceInput) SetResource(v *Resource) *RemoveLFTagsFromResourceInput {
  5854  	s.Resource = v
  5855  	return s
  5856  }
  5857  
  5858  type RemoveLFTagsFromResourceOutput struct {
  5859  	_ struct{} `type:"structure"`
  5860  
  5861  	// A list of failures to untag a resource.
  5862  	Failures []*LFTagError `type:"list"`
  5863  }
  5864  
  5865  // String returns the string representation.
  5866  //
  5867  // API parameter values that are decorated as "sensitive" in the API will not
  5868  // be included in the string output. The member name will be present, but the
  5869  // value will be replaced with "sensitive".
  5870  func (s RemoveLFTagsFromResourceOutput) String() string {
  5871  	return awsutil.Prettify(s)
  5872  }
  5873  
  5874  // GoString returns the string representation.
  5875  //
  5876  // API parameter values that are decorated as "sensitive" in the API will not
  5877  // be included in the string output. The member name will be present, but the
  5878  // value will be replaced with "sensitive".
  5879  func (s RemoveLFTagsFromResourceOutput) GoString() string {
  5880  	return s.String()
  5881  }
  5882  
  5883  // SetFailures sets the Failures field's value.
  5884  func (s *RemoveLFTagsFromResourceOutput) SetFailures(v []*LFTagError) *RemoveLFTagsFromResourceOutput {
  5885  	s.Failures = v
  5886  	return s
  5887  }
  5888  
  5889  // A structure for the resource.
  5890  type Resource struct {
  5891  	_ struct{} `type:"structure"`
  5892  
  5893  	// The identifier for the Data Catalog. By default, the account ID. The Data
  5894  	// Catalog is the persistent metadata store. It contains database definitions,
  5895  	// table definitions, and other control information to manage your AWS Lake
  5896  	// Formation environment.
  5897  	Catalog *CatalogResource `type:"structure"`
  5898  
  5899  	// The location of an Amazon S3 path where permissions are granted or revoked.
  5900  	DataLocation *DataLocationResource `type:"structure"`
  5901  
  5902  	// The database for the resource. Unique to the Data Catalog. A database is
  5903  	// a set of associated table definitions organized into a logical group. You
  5904  	// can Grant and Revoke database permissions to a principal.
  5905  	Database *DatabaseResource `type:"structure"`
  5906  
  5907  	// The tag key and values attached to a resource.
  5908  	LFTag *LFTagKeyResource `type:"structure"`
  5909  
  5910  	// A list of tag conditions that define a resource's tag policy.
  5911  	LFTagPolicy *LFTagPolicyResource `type:"structure"`
  5912  
  5913  	// The table for the resource. A table is a metadata definition that represents
  5914  	// your data. You can Grant and Revoke table privileges to a principal.
  5915  	Table *TableResource `type:"structure"`
  5916  
  5917  	// The table with columns for the resource. A principal with permissions to
  5918  	// this resource can select metadata from the columns of a table in the Data
  5919  	// Catalog and the underlying data in Amazon S3.
  5920  	TableWithColumns *TableWithColumnsResource `type:"structure"`
  5921  }
  5922  
  5923  // String returns the string representation.
  5924  //
  5925  // API parameter values that are decorated as "sensitive" in the API will not
  5926  // be included in the string output. The member name will be present, but the
  5927  // value will be replaced with "sensitive".
  5928  func (s Resource) String() string {
  5929  	return awsutil.Prettify(s)
  5930  }
  5931  
  5932  // GoString returns the string representation.
  5933  //
  5934  // API parameter values that are decorated as "sensitive" in the API will not
  5935  // be included in the string output. The member name will be present, but the
  5936  // value will be replaced with "sensitive".
  5937  func (s Resource) GoString() string {
  5938  	return s.String()
  5939  }
  5940  
  5941  // Validate inspects the fields of the type to determine if they are valid.
  5942  func (s *Resource) Validate() error {
  5943  	invalidParams := request.ErrInvalidParams{Context: "Resource"}
  5944  	if s.DataLocation != nil {
  5945  		if err := s.DataLocation.Validate(); err != nil {
  5946  			invalidParams.AddNested("DataLocation", err.(request.ErrInvalidParams))
  5947  		}
  5948  	}
  5949  	if s.Database != nil {
  5950  		if err := s.Database.Validate(); err != nil {
  5951  			invalidParams.AddNested("Database", err.(request.ErrInvalidParams))
  5952  		}
  5953  	}
  5954  	if s.LFTag != nil {
  5955  		if err := s.LFTag.Validate(); err != nil {
  5956  			invalidParams.AddNested("LFTag", err.(request.ErrInvalidParams))
  5957  		}
  5958  	}
  5959  	if s.LFTagPolicy != nil {
  5960  		if err := s.LFTagPolicy.Validate(); err != nil {
  5961  			invalidParams.AddNested("LFTagPolicy", err.(request.ErrInvalidParams))
  5962  		}
  5963  	}
  5964  	if s.Table != nil {
  5965  		if err := s.Table.Validate(); err != nil {
  5966  			invalidParams.AddNested("Table", err.(request.ErrInvalidParams))
  5967  		}
  5968  	}
  5969  	if s.TableWithColumns != nil {
  5970  		if err := s.TableWithColumns.Validate(); err != nil {
  5971  			invalidParams.AddNested("TableWithColumns", err.(request.ErrInvalidParams))
  5972  		}
  5973  	}
  5974  
  5975  	if invalidParams.Len() > 0 {
  5976  		return invalidParams
  5977  	}
  5978  	return nil
  5979  }
  5980  
  5981  // SetCatalog sets the Catalog field's value.
  5982  func (s *Resource) SetCatalog(v *CatalogResource) *Resource {
  5983  	s.Catalog = v
  5984  	return s
  5985  }
  5986  
  5987  // SetDataLocation sets the DataLocation field's value.
  5988  func (s *Resource) SetDataLocation(v *DataLocationResource) *Resource {
  5989  	s.DataLocation = v
  5990  	return s
  5991  }
  5992  
  5993  // SetDatabase sets the Database field's value.
  5994  func (s *Resource) SetDatabase(v *DatabaseResource) *Resource {
  5995  	s.Database = v
  5996  	return s
  5997  }
  5998  
  5999  // SetLFTag sets the LFTag field's value.
  6000  func (s *Resource) SetLFTag(v *LFTagKeyResource) *Resource {
  6001  	s.LFTag = v
  6002  	return s
  6003  }
  6004  
  6005  // SetLFTagPolicy sets the LFTagPolicy field's value.
  6006  func (s *Resource) SetLFTagPolicy(v *LFTagPolicyResource) *Resource {
  6007  	s.LFTagPolicy = v
  6008  	return s
  6009  }
  6010  
  6011  // SetTable sets the Table field's value.
  6012  func (s *Resource) SetTable(v *TableResource) *Resource {
  6013  	s.Table = v
  6014  	return s
  6015  }
  6016  
  6017  // SetTableWithColumns sets the TableWithColumns field's value.
  6018  func (s *Resource) SetTableWithColumns(v *TableWithColumnsResource) *Resource {
  6019  	s.TableWithColumns = v
  6020  	return s
  6021  }
  6022  
  6023  // A structure containing information about an AWS Lake Formation resource.
  6024  type ResourceInfo struct {
  6025  	_ struct{} `type:"structure"`
  6026  
  6027  	// The date and time the resource was last modified.
  6028  	LastModified *time.Time `type:"timestamp"`
  6029  
  6030  	// The Amazon Resource Name (ARN) of the resource.
  6031  	ResourceArn *string `type:"string"`
  6032  
  6033  	// The IAM role that registered a resource.
  6034  	RoleArn *string `type:"string"`
  6035  }
  6036  
  6037  // String returns the string representation.
  6038  //
  6039  // API parameter values that are decorated as "sensitive" in the API will not
  6040  // be included in the string output. The member name will be present, but the
  6041  // value will be replaced with "sensitive".
  6042  func (s ResourceInfo) String() string {
  6043  	return awsutil.Prettify(s)
  6044  }
  6045  
  6046  // GoString returns the string representation.
  6047  //
  6048  // API parameter values that are decorated as "sensitive" in the API will not
  6049  // be included in the string output. The member name will be present, but the
  6050  // value will be replaced with "sensitive".
  6051  func (s ResourceInfo) GoString() string {
  6052  	return s.String()
  6053  }
  6054  
  6055  // SetLastModified sets the LastModified field's value.
  6056  func (s *ResourceInfo) SetLastModified(v time.Time) *ResourceInfo {
  6057  	s.LastModified = &v
  6058  	return s
  6059  }
  6060  
  6061  // SetResourceArn sets the ResourceArn field's value.
  6062  func (s *ResourceInfo) SetResourceArn(v string) *ResourceInfo {
  6063  	s.ResourceArn = &v
  6064  	return s
  6065  }
  6066  
  6067  // SetRoleArn sets the RoleArn field's value.
  6068  func (s *ResourceInfo) SetRoleArn(v string) *ResourceInfo {
  6069  	s.RoleArn = &v
  6070  	return s
  6071  }
  6072  
  6073  // A resource numerical limit was exceeded.
  6074  type ResourceNumberLimitExceededException struct {
  6075  	_            struct{}                  `type:"structure"`
  6076  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6077  
  6078  	// A message describing the problem.
  6079  	Message_ *string `locationName:"Message" type:"string"`
  6080  }
  6081  
  6082  // String returns the string representation.
  6083  //
  6084  // API parameter values that are decorated as "sensitive" in the API will not
  6085  // be included in the string output. The member name will be present, but the
  6086  // value will be replaced with "sensitive".
  6087  func (s ResourceNumberLimitExceededException) String() string {
  6088  	return awsutil.Prettify(s)
  6089  }
  6090  
  6091  // GoString returns the string representation.
  6092  //
  6093  // API parameter values that are decorated as "sensitive" in the API will not
  6094  // be included in the string output. The member name will be present, but the
  6095  // value will be replaced with "sensitive".
  6096  func (s ResourceNumberLimitExceededException) GoString() string {
  6097  	return s.String()
  6098  }
  6099  
  6100  func newErrorResourceNumberLimitExceededException(v protocol.ResponseMetadata) error {
  6101  	return &ResourceNumberLimitExceededException{
  6102  		RespMetadata: v,
  6103  	}
  6104  }
  6105  
  6106  // Code returns the exception type name.
  6107  func (s *ResourceNumberLimitExceededException) Code() string {
  6108  	return "ResourceNumberLimitExceededException"
  6109  }
  6110  
  6111  // Message returns the exception's message.
  6112  func (s *ResourceNumberLimitExceededException) Message() string {
  6113  	if s.Message_ != nil {
  6114  		return *s.Message_
  6115  	}
  6116  	return ""
  6117  }
  6118  
  6119  // OrigErr always returns nil, satisfies awserr.Error interface.
  6120  func (s *ResourceNumberLimitExceededException) OrigErr() error {
  6121  	return nil
  6122  }
  6123  
  6124  func (s *ResourceNumberLimitExceededException) Error() string {
  6125  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6126  }
  6127  
  6128  // Status code returns the HTTP status code for the request's response error.
  6129  func (s *ResourceNumberLimitExceededException) StatusCode() int {
  6130  	return s.RespMetadata.StatusCode
  6131  }
  6132  
  6133  // RequestID returns the service's response RequestID for request.
  6134  func (s *ResourceNumberLimitExceededException) RequestID() string {
  6135  	return s.RespMetadata.RequestID
  6136  }
  6137  
  6138  type RevokePermissionsInput struct {
  6139  	_ struct{} `type:"structure"`
  6140  
  6141  	// The identifier for the Data Catalog. By default, the account ID. The Data
  6142  	// Catalog is the persistent metadata store. It contains database definitions,
  6143  	// table definitions, and other control information to manage your AWS Lake
  6144  	// Formation environment.
  6145  	CatalogId *string `min:"1" type:"string"`
  6146  
  6147  	// The permissions revoked to the principal on the resource. For information
  6148  	// about permissions, see Security and Access Control to Metadata and Data (https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html).
  6149  	//
  6150  	// Permissions is a required field
  6151  	Permissions []*string `type:"list" required:"true"`
  6152  
  6153  	// Indicates a list of permissions for which to revoke the grant option allowing
  6154  	// the principal to pass permissions to other principals.
  6155  	PermissionsWithGrantOption []*string `type:"list"`
  6156  
  6157  	// The principal to be revoked permissions on the resource.
  6158  	//
  6159  	// Principal is a required field
  6160  	Principal *DataLakePrincipal `type:"structure" required:"true"`
  6161  
  6162  	// The resource to which permissions are to be revoked.
  6163  	//
  6164  	// Resource is a required field
  6165  	Resource *Resource `type:"structure" required:"true"`
  6166  }
  6167  
  6168  // String returns the string representation.
  6169  //
  6170  // API parameter values that are decorated as "sensitive" in the API will not
  6171  // be included in the string output. The member name will be present, but the
  6172  // value will be replaced with "sensitive".
  6173  func (s RevokePermissionsInput) String() string {
  6174  	return awsutil.Prettify(s)
  6175  }
  6176  
  6177  // GoString returns the string representation.
  6178  //
  6179  // API parameter values that are decorated as "sensitive" in the API will not
  6180  // be included in the string output. The member name will be present, but the
  6181  // value will be replaced with "sensitive".
  6182  func (s RevokePermissionsInput) GoString() string {
  6183  	return s.String()
  6184  }
  6185  
  6186  // Validate inspects the fields of the type to determine if they are valid.
  6187  func (s *RevokePermissionsInput) Validate() error {
  6188  	invalidParams := request.ErrInvalidParams{Context: "RevokePermissionsInput"}
  6189  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  6190  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  6191  	}
  6192  	if s.Permissions == nil {
  6193  		invalidParams.Add(request.NewErrParamRequired("Permissions"))
  6194  	}
  6195  	if s.Principal == nil {
  6196  		invalidParams.Add(request.NewErrParamRequired("Principal"))
  6197  	}
  6198  	if s.Resource == nil {
  6199  		invalidParams.Add(request.NewErrParamRequired("Resource"))
  6200  	}
  6201  	if s.Principal != nil {
  6202  		if err := s.Principal.Validate(); err != nil {
  6203  			invalidParams.AddNested("Principal", err.(request.ErrInvalidParams))
  6204  		}
  6205  	}
  6206  	if s.Resource != nil {
  6207  		if err := s.Resource.Validate(); err != nil {
  6208  			invalidParams.AddNested("Resource", err.(request.ErrInvalidParams))
  6209  		}
  6210  	}
  6211  
  6212  	if invalidParams.Len() > 0 {
  6213  		return invalidParams
  6214  	}
  6215  	return nil
  6216  }
  6217  
  6218  // SetCatalogId sets the CatalogId field's value.
  6219  func (s *RevokePermissionsInput) SetCatalogId(v string) *RevokePermissionsInput {
  6220  	s.CatalogId = &v
  6221  	return s
  6222  }
  6223  
  6224  // SetPermissions sets the Permissions field's value.
  6225  func (s *RevokePermissionsInput) SetPermissions(v []*string) *RevokePermissionsInput {
  6226  	s.Permissions = v
  6227  	return s
  6228  }
  6229  
  6230  // SetPermissionsWithGrantOption sets the PermissionsWithGrantOption field's value.
  6231  func (s *RevokePermissionsInput) SetPermissionsWithGrantOption(v []*string) *RevokePermissionsInput {
  6232  	s.PermissionsWithGrantOption = v
  6233  	return s
  6234  }
  6235  
  6236  // SetPrincipal sets the Principal field's value.
  6237  func (s *RevokePermissionsInput) SetPrincipal(v *DataLakePrincipal) *RevokePermissionsInput {
  6238  	s.Principal = v
  6239  	return s
  6240  }
  6241  
  6242  // SetResource sets the Resource field's value.
  6243  func (s *RevokePermissionsInput) SetResource(v *Resource) *RevokePermissionsInput {
  6244  	s.Resource = v
  6245  	return s
  6246  }
  6247  
  6248  type RevokePermissionsOutput struct {
  6249  	_ struct{} `type:"structure"`
  6250  }
  6251  
  6252  // String returns the string representation.
  6253  //
  6254  // API parameter values that are decorated as "sensitive" in the API will not
  6255  // be included in the string output. The member name will be present, but the
  6256  // value will be replaced with "sensitive".
  6257  func (s RevokePermissionsOutput) String() string {
  6258  	return awsutil.Prettify(s)
  6259  }
  6260  
  6261  // GoString returns the string representation.
  6262  //
  6263  // API parameter values that are decorated as "sensitive" in the API will not
  6264  // be included in the string output. The member name will be present, but the
  6265  // value will be replaced with "sensitive".
  6266  func (s RevokePermissionsOutput) GoString() string {
  6267  	return s.String()
  6268  }
  6269  
  6270  type SearchDatabasesByLFTagsInput struct {
  6271  	_ struct{} `type:"structure"`
  6272  
  6273  	// The identifier for the Data Catalog. By default, the account ID. The Data
  6274  	// Catalog is the persistent metadata store. It contains database definitions,
  6275  	// table definitions, and other control information to manage your AWS Lake
  6276  	// Formation environment.
  6277  	CatalogId *string `min:"1" type:"string"`
  6278  
  6279  	// A list of conditions (LFTag structures) to search for in database resources.
  6280  	//
  6281  	// Expression is a required field
  6282  	Expression []*LFTag `min:"1" type:"list" required:"true"`
  6283  
  6284  	// The maximum number of results to return.
  6285  	MaxResults *int64 `min:"1" type:"integer"`
  6286  
  6287  	// A continuation token, if this is not the first call to retrieve this list.
  6288  	NextToken *string `type:"string"`
  6289  }
  6290  
  6291  // String returns the string representation.
  6292  //
  6293  // API parameter values that are decorated as "sensitive" in the API will not
  6294  // be included in the string output. The member name will be present, but the
  6295  // value will be replaced with "sensitive".
  6296  func (s SearchDatabasesByLFTagsInput) String() string {
  6297  	return awsutil.Prettify(s)
  6298  }
  6299  
  6300  // GoString returns the string representation.
  6301  //
  6302  // API parameter values that are decorated as "sensitive" in the API will not
  6303  // be included in the string output. The member name will be present, but the
  6304  // value will be replaced with "sensitive".
  6305  func (s SearchDatabasesByLFTagsInput) GoString() string {
  6306  	return s.String()
  6307  }
  6308  
  6309  // Validate inspects the fields of the type to determine if they are valid.
  6310  func (s *SearchDatabasesByLFTagsInput) Validate() error {
  6311  	invalidParams := request.ErrInvalidParams{Context: "SearchDatabasesByLFTagsInput"}
  6312  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  6313  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  6314  	}
  6315  	if s.Expression == nil {
  6316  		invalidParams.Add(request.NewErrParamRequired("Expression"))
  6317  	}
  6318  	if s.Expression != nil && len(s.Expression) < 1 {
  6319  		invalidParams.Add(request.NewErrParamMinLen("Expression", 1))
  6320  	}
  6321  	if s.MaxResults != nil && *s.MaxResults < 1 {
  6322  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  6323  	}
  6324  	if s.Expression != nil {
  6325  		for i, v := range s.Expression {
  6326  			if v == nil {
  6327  				continue
  6328  			}
  6329  			if err := v.Validate(); err != nil {
  6330  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Expression", i), err.(request.ErrInvalidParams))
  6331  			}
  6332  		}
  6333  	}
  6334  
  6335  	if invalidParams.Len() > 0 {
  6336  		return invalidParams
  6337  	}
  6338  	return nil
  6339  }
  6340  
  6341  // SetCatalogId sets the CatalogId field's value.
  6342  func (s *SearchDatabasesByLFTagsInput) SetCatalogId(v string) *SearchDatabasesByLFTagsInput {
  6343  	s.CatalogId = &v
  6344  	return s
  6345  }
  6346  
  6347  // SetExpression sets the Expression field's value.
  6348  func (s *SearchDatabasesByLFTagsInput) SetExpression(v []*LFTag) *SearchDatabasesByLFTagsInput {
  6349  	s.Expression = v
  6350  	return s
  6351  }
  6352  
  6353  // SetMaxResults sets the MaxResults field's value.
  6354  func (s *SearchDatabasesByLFTagsInput) SetMaxResults(v int64) *SearchDatabasesByLFTagsInput {
  6355  	s.MaxResults = &v
  6356  	return s
  6357  }
  6358  
  6359  // SetNextToken sets the NextToken field's value.
  6360  func (s *SearchDatabasesByLFTagsInput) SetNextToken(v string) *SearchDatabasesByLFTagsInput {
  6361  	s.NextToken = &v
  6362  	return s
  6363  }
  6364  
  6365  type SearchDatabasesByLFTagsOutput struct {
  6366  	_ struct{} `type:"structure"`
  6367  
  6368  	// A list of databases that meet the tag conditions.
  6369  	DatabaseList []*TaggedDatabase `type:"list"`
  6370  
  6371  	// A continuation token, present if the current list segment is not the last.
  6372  	NextToken *string `type:"string"`
  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 SearchDatabasesByLFTagsOutput) 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 SearchDatabasesByLFTagsOutput) GoString() string {
  6390  	return s.String()
  6391  }
  6392  
  6393  // SetDatabaseList sets the DatabaseList field's value.
  6394  func (s *SearchDatabasesByLFTagsOutput) SetDatabaseList(v []*TaggedDatabase) *SearchDatabasesByLFTagsOutput {
  6395  	s.DatabaseList = v
  6396  	return s
  6397  }
  6398  
  6399  // SetNextToken sets the NextToken field's value.
  6400  func (s *SearchDatabasesByLFTagsOutput) SetNextToken(v string) *SearchDatabasesByLFTagsOutput {
  6401  	s.NextToken = &v
  6402  	return s
  6403  }
  6404  
  6405  type SearchTablesByLFTagsInput struct {
  6406  	_ struct{} `type:"structure"`
  6407  
  6408  	// The identifier for the Data Catalog. By default, the account ID. The Data
  6409  	// Catalog is the persistent metadata store. It contains database definitions,
  6410  	// table definitions, and other control information to manage your AWS Lake
  6411  	// Formation environment.
  6412  	CatalogId *string `min:"1" type:"string"`
  6413  
  6414  	// A list of conditions (LFTag structures) to search for in table resources.
  6415  	//
  6416  	// Expression is a required field
  6417  	Expression []*LFTag `min:"1" type:"list" required:"true"`
  6418  
  6419  	// The maximum number of results to return.
  6420  	MaxResults *int64 `min:"1" type:"integer"`
  6421  
  6422  	// A continuation token, if this is not the first call to retrieve this list.
  6423  	NextToken *string `type:"string"`
  6424  }
  6425  
  6426  // String returns the string representation.
  6427  //
  6428  // API parameter values that are decorated as "sensitive" in the API will not
  6429  // be included in the string output. The member name will be present, but the
  6430  // value will be replaced with "sensitive".
  6431  func (s SearchTablesByLFTagsInput) String() string {
  6432  	return awsutil.Prettify(s)
  6433  }
  6434  
  6435  // GoString returns the string representation.
  6436  //
  6437  // API parameter values that are decorated as "sensitive" in the API will not
  6438  // be included in the string output. The member name will be present, but the
  6439  // value will be replaced with "sensitive".
  6440  func (s SearchTablesByLFTagsInput) GoString() string {
  6441  	return s.String()
  6442  }
  6443  
  6444  // Validate inspects the fields of the type to determine if they are valid.
  6445  func (s *SearchTablesByLFTagsInput) Validate() error {
  6446  	invalidParams := request.ErrInvalidParams{Context: "SearchTablesByLFTagsInput"}
  6447  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  6448  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  6449  	}
  6450  	if s.Expression == nil {
  6451  		invalidParams.Add(request.NewErrParamRequired("Expression"))
  6452  	}
  6453  	if s.Expression != nil && len(s.Expression) < 1 {
  6454  		invalidParams.Add(request.NewErrParamMinLen("Expression", 1))
  6455  	}
  6456  	if s.MaxResults != nil && *s.MaxResults < 1 {
  6457  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  6458  	}
  6459  	if s.Expression != nil {
  6460  		for i, v := range s.Expression {
  6461  			if v == nil {
  6462  				continue
  6463  			}
  6464  			if err := v.Validate(); err != nil {
  6465  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Expression", i), err.(request.ErrInvalidParams))
  6466  			}
  6467  		}
  6468  	}
  6469  
  6470  	if invalidParams.Len() > 0 {
  6471  		return invalidParams
  6472  	}
  6473  	return nil
  6474  }
  6475  
  6476  // SetCatalogId sets the CatalogId field's value.
  6477  func (s *SearchTablesByLFTagsInput) SetCatalogId(v string) *SearchTablesByLFTagsInput {
  6478  	s.CatalogId = &v
  6479  	return s
  6480  }
  6481  
  6482  // SetExpression sets the Expression field's value.
  6483  func (s *SearchTablesByLFTagsInput) SetExpression(v []*LFTag) *SearchTablesByLFTagsInput {
  6484  	s.Expression = v
  6485  	return s
  6486  }
  6487  
  6488  // SetMaxResults sets the MaxResults field's value.
  6489  func (s *SearchTablesByLFTagsInput) SetMaxResults(v int64) *SearchTablesByLFTagsInput {
  6490  	s.MaxResults = &v
  6491  	return s
  6492  }
  6493  
  6494  // SetNextToken sets the NextToken field's value.
  6495  func (s *SearchTablesByLFTagsInput) SetNextToken(v string) *SearchTablesByLFTagsInput {
  6496  	s.NextToken = &v
  6497  	return s
  6498  }
  6499  
  6500  type SearchTablesByLFTagsOutput struct {
  6501  	_ struct{} `type:"structure"`
  6502  
  6503  	// A continuation token, present if the current list segment is not the last.
  6504  	NextToken *string `type:"string"`
  6505  
  6506  	// A list of tables that meet the tag conditions.
  6507  	TableList []*TaggedTable `type:"list"`
  6508  }
  6509  
  6510  // String returns the string representation.
  6511  //
  6512  // API parameter values that are decorated as "sensitive" in the API will not
  6513  // be included in the string output. The member name will be present, but the
  6514  // value will be replaced with "sensitive".
  6515  func (s SearchTablesByLFTagsOutput) String() string {
  6516  	return awsutil.Prettify(s)
  6517  }
  6518  
  6519  // GoString returns the string representation.
  6520  //
  6521  // API parameter values that are decorated as "sensitive" in the API will not
  6522  // be included in the string output. The member name will be present, but the
  6523  // value will be replaced with "sensitive".
  6524  func (s SearchTablesByLFTagsOutput) GoString() string {
  6525  	return s.String()
  6526  }
  6527  
  6528  // SetNextToken sets the NextToken field's value.
  6529  func (s *SearchTablesByLFTagsOutput) SetNextToken(v string) *SearchTablesByLFTagsOutput {
  6530  	s.NextToken = &v
  6531  	return s
  6532  }
  6533  
  6534  // SetTableList sets the TableList field's value.
  6535  func (s *SearchTablesByLFTagsOutput) SetTableList(v []*TaggedTable) *SearchTablesByLFTagsOutput {
  6536  	s.TableList = v
  6537  	return s
  6538  }
  6539  
  6540  // A structure for the table object. A table is a metadata definition that represents
  6541  // your data. You can Grant and Revoke table privileges to a principal.
  6542  type TableResource struct {
  6543  	_ struct{} `type:"structure"`
  6544  
  6545  	// The identifier for the Data Catalog. By default, it is the account ID of
  6546  	// the caller.
  6547  	CatalogId *string `min:"1" type:"string"`
  6548  
  6549  	// The name of the database for the table. Unique to a Data Catalog. A database
  6550  	// is a set of associated table definitions organized into a logical group.
  6551  	// You can Grant and Revoke database privileges to a principal.
  6552  	//
  6553  	// DatabaseName is a required field
  6554  	DatabaseName *string `min:"1" type:"string" required:"true"`
  6555  
  6556  	// The name of the table.
  6557  	Name *string `min:"1" type:"string"`
  6558  
  6559  	// A wildcard object representing every table under a database.
  6560  	//
  6561  	// At least one of TableResource$Name or TableResource$TableWildcard is required.
  6562  	TableWildcard *TableWildcard `type:"structure"`
  6563  }
  6564  
  6565  // String returns the string representation.
  6566  //
  6567  // API parameter values that are decorated as "sensitive" in the API will not
  6568  // be included in the string output. The member name will be present, but the
  6569  // value will be replaced with "sensitive".
  6570  func (s TableResource) String() string {
  6571  	return awsutil.Prettify(s)
  6572  }
  6573  
  6574  // GoString returns the string representation.
  6575  //
  6576  // API parameter values that are decorated as "sensitive" in the API will not
  6577  // be included in the string output. The member name will be present, but the
  6578  // value will be replaced with "sensitive".
  6579  func (s TableResource) GoString() string {
  6580  	return s.String()
  6581  }
  6582  
  6583  // Validate inspects the fields of the type to determine if they are valid.
  6584  func (s *TableResource) Validate() error {
  6585  	invalidParams := request.ErrInvalidParams{Context: "TableResource"}
  6586  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  6587  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  6588  	}
  6589  	if s.DatabaseName == nil {
  6590  		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
  6591  	}
  6592  	if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
  6593  		invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
  6594  	}
  6595  	if s.Name != nil && len(*s.Name) < 1 {
  6596  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6597  	}
  6598  
  6599  	if invalidParams.Len() > 0 {
  6600  		return invalidParams
  6601  	}
  6602  	return nil
  6603  }
  6604  
  6605  // SetCatalogId sets the CatalogId field's value.
  6606  func (s *TableResource) SetCatalogId(v string) *TableResource {
  6607  	s.CatalogId = &v
  6608  	return s
  6609  }
  6610  
  6611  // SetDatabaseName sets the DatabaseName field's value.
  6612  func (s *TableResource) SetDatabaseName(v string) *TableResource {
  6613  	s.DatabaseName = &v
  6614  	return s
  6615  }
  6616  
  6617  // SetName sets the Name field's value.
  6618  func (s *TableResource) SetName(v string) *TableResource {
  6619  	s.Name = &v
  6620  	return s
  6621  }
  6622  
  6623  // SetTableWildcard sets the TableWildcard field's value.
  6624  func (s *TableResource) SetTableWildcard(v *TableWildcard) *TableResource {
  6625  	s.TableWildcard = v
  6626  	return s
  6627  }
  6628  
  6629  // A wildcard object representing every table under a database.
  6630  type TableWildcard struct {
  6631  	_ struct{} `type:"structure"`
  6632  }
  6633  
  6634  // String returns the string representation.
  6635  //
  6636  // API parameter values that are decorated as "sensitive" in the API will not
  6637  // be included in the string output. The member name will be present, but the
  6638  // value will be replaced with "sensitive".
  6639  func (s TableWildcard) String() string {
  6640  	return awsutil.Prettify(s)
  6641  }
  6642  
  6643  // GoString returns the string representation.
  6644  //
  6645  // API parameter values that are decorated as "sensitive" in the API will not
  6646  // be included in the string output. The member name will be present, but the
  6647  // value will be replaced with "sensitive".
  6648  func (s TableWildcard) GoString() string {
  6649  	return s.String()
  6650  }
  6651  
  6652  // A structure for a table with columns object. This object is only used when
  6653  // granting a SELECT permission.
  6654  //
  6655  // This object must take a value for at least one of ColumnsNames, ColumnsIndexes,
  6656  // or ColumnsWildcard.
  6657  type TableWithColumnsResource struct {
  6658  	_ struct{} `type:"structure"`
  6659  
  6660  	// The identifier for the Data Catalog. By default, it is the account ID of
  6661  	// the caller.
  6662  	CatalogId *string `min:"1" type:"string"`
  6663  
  6664  	// The list of column names for the table. At least one of ColumnNames or ColumnWildcard
  6665  	// is required.
  6666  	ColumnNames []*string `type:"list"`
  6667  
  6668  	// A wildcard specified by a ColumnWildcard object. At least one of ColumnNames
  6669  	// or ColumnWildcard is required.
  6670  	ColumnWildcard *ColumnWildcard `type:"structure"`
  6671  
  6672  	// The name of the database for the table with columns resource. Unique to the
  6673  	// Data Catalog. A database is a set of associated table definitions organized
  6674  	// into a logical group. You can Grant and Revoke database privileges to a principal.
  6675  	//
  6676  	// DatabaseName is a required field
  6677  	DatabaseName *string `min:"1" type:"string" required:"true"`
  6678  
  6679  	// The name of the table resource. A table is a metadata definition that represents
  6680  	// your data. You can Grant and Revoke table privileges to a principal.
  6681  	//
  6682  	// Name is a required field
  6683  	Name *string `min:"1" type:"string" required:"true"`
  6684  }
  6685  
  6686  // String returns the string representation.
  6687  //
  6688  // API parameter values that are decorated as "sensitive" in the API will not
  6689  // be included in the string output. The member name will be present, but the
  6690  // value will be replaced with "sensitive".
  6691  func (s TableWithColumnsResource) String() string {
  6692  	return awsutil.Prettify(s)
  6693  }
  6694  
  6695  // GoString returns the string representation.
  6696  //
  6697  // API parameter values that are decorated as "sensitive" in the API will not
  6698  // be included in the string output. The member name will be present, but the
  6699  // value will be replaced with "sensitive".
  6700  func (s TableWithColumnsResource) GoString() string {
  6701  	return s.String()
  6702  }
  6703  
  6704  // Validate inspects the fields of the type to determine if they are valid.
  6705  func (s *TableWithColumnsResource) Validate() error {
  6706  	invalidParams := request.ErrInvalidParams{Context: "TableWithColumnsResource"}
  6707  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  6708  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  6709  	}
  6710  	if s.DatabaseName == nil {
  6711  		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
  6712  	}
  6713  	if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
  6714  		invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
  6715  	}
  6716  	if s.Name == nil {
  6717  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6718  	}
  6719  	if s.Name != nil && len(*s.Name) < 1 {
  6720  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6721  	}
  6722  
  6723  	if invalidParams.Len() > 0 {
  6724  		return invalidParams
  6725  	}
  6726  	return nil
  6727  }
  6728  
  6729  // SetCatalogId sets the CatalogId field's value.
  6730  func (s *TableWithColumnsResource) SetCatalogId(v string) *TableWithColumnsResource {
  6731  	s.CatalogId = &v
  6732  	return s
  6733  }
  6734  
  6735  // SetColumnNames sets the ColumnNames field's value.
  6736  func (s *TableWithColumnsResource) SetColumnNames(v []*string) *TableWithColumnsResource {
  6737  	s.ColumnNames = v
  6738  	return s
  6739  }
  6740  
  6741  // SetColumnWildcard sets the ColumnWildcard field's value.
  6742  func (s *TableWithColumnsResource) SetColumnWildcard(v *ColumnWildcard) *TableWithColumnsResource {
  6743  	s.ColumnWildcard = v
  6744  	return s
  6745  }
  6746  
  6747  // SetDatabaseName sets the DatabaseName field's value.
  6748  func (s *TableWithColumnsResource) SetDatabaseName(v string) *TableWithColumnsResource {
  6749  	s.DatabaseName = &v
  6750  	return s
  6751  }
  6752  
  6753  // SetName sets the Name field's value.
  6754  func (s *TableWithColumnsResource) SetName(v string) *TableWithColumnsResource {
  6755  	s.Name = &v
  6756  	return s
  6757  }
  6758  
  6759  // A structure describing a database resource with tags.
  6760  type TaggedDatabase struct {
  6761  	_ struct{} `type:"structure"`
  6762  
  6763  	// A database that has tags attached to it.
  6764  	Database *DatabaseResource `type:"structure"`
  6765  
  6766  	// A list of tags attached to the database.
  6767  	LFTags []*LFTagPair `min:"1" type:"list"`
  6768  }
  6769  
  6770  // String returns the string representation.
  6771  //
  6772  // API parameter values that are decorated as "sensitive" in the API will not
  6773  // be included in the string output. The member name will be present, but the
  6774  // value will be replaced with "sensitive".
  6775  func (s TaggedDatabase) String() string {
  6776  	return awsutil.Prettify(s)
  6777  }
  6778  
  6779  // GoString returns the string representation.
  6780  //
  6781  // API parameter values that are decorated as "sensitive" in the API will not
  6782  // be included in the string output. The member name will be present, but the
  6783  // value will be replaced with "sensitive".
  6784  func (s TaggedDatabase) GoString() string {
  6785  	return s.String()
  6786  }
  6787  
  6788  // SetDatabase sets the Database field's value.
  6789  func (s *TaggedDatabase) SetDatabase(v *DatabaseResource) *TaggedDatabase {
  6790  	s.Database = v
  6791  	return s
  6792  }
  6793  
  6794  // SetLFTags sets the LFTags field's value.
  6795  func (s *TaggedDatabase) SetLFTags(v []*LFTagPair) *TaggedDatabase {
  6796  	s.LFTags = v
  6797  	return s
  6798  }
  6799  
  6800  // A structure describing a table resource with tags.
  6801  type TaggedTable struct {
  6802  	_ struct{} `type:"structure"`
  6803  
  6804  	// A list of tags attached to the database where the table resides.
  6805  	LFTagOnDatabase []*LFTagPair `min:"1" type:"list"`
  6806  
  6807  	// A list of tags attached to columns in the table.
  6808  	LFTagsOnColumns []*ColumnLFTag `type:"list"`
  6809  
  6810  	// A list of tags attached to the table.
  6811  	LFTagsOnTable []*LFTagPair `min:"1" type:"list"`
  6812  
  6813  	// A table that has tags attached to it.
  6814  	Table *TableResource `type:"structure"`
  6815  }
  6816  
  6817  // String returns the string representation.
  6818  //
  6819  // API parameter values that are decorated as "sensitive" in the API will not
  6820  // be included in the string output. The member name will be present, but the
  6821  // value will be replaced with "sensitive".
  6822  func (s TaggedTable) String() string {
  6823  	return awsutil.Prettify(s)
  6824  }
  6825  
  6826  // GoString returns the string representation.
  6827  //
  6828  // API parameter values that are decorated as "sensitive" in the API will not
  6829  // be included in the string output. The member name will be present, but the
  6830  // value will be replaced with "sensitive".
  6831  func (s TaggedTable) GoString() string {
  6832  	return s.String()
  6833  }
  6834  
  6835  // SetLFTagOnDatabase sets the LFTagOnDatabase field's value.
  6836  func (s *TaggedTable) SetLFTagOnDatabase(v []*LFTagPair) *TaggedTable {
  6837  	s.LFTagOnDatabase = v
  6838  	return s
  6839  }
  6840  
  6841  // SetLFTagsOnColumns sets the LFTagsOnColumns field's value.
  6842  func (s *TaggedTable) SetLFTagsOnColumns(v []*ColumnLFTag) *TaggedTable {
  6843  	s.LFTagsOnColumns = v
  6844  	return s
  6845  }
  6846  
  6847  // SetLFTagsOnTable sets the LFTagsOnTable field's value.
  6848  func (s *TaggedTable) SetLFTagsOnTable(v []*LFTagPair) *TaggedTable {
  6849  	s.LFTagsOnTable = v
  6850  	return s
  6851  }
  6852  
  6853  // SetTable sets the Table field's value.
  6854  func (s *TaggedTable) SetTable(v *TableResource) *TaggedTable {
  6855  	s.Table = v
  6856  	return s
  6857  }
  6858  
  6859  type UpdateLFTagInput struct {
  6860  	_ struct{} `type:"structure"`
  6861  
  6862  	// The identifier for the Data Catalog. By default, the account ID. The Data
  6863  	// Catalog is the persistent metadata store. It contains database definitions,
  6864  	// table definitions, and other control information to manage your AWS Lake
  6865  	// Formation environment.
  6866  	CatalogId *string `min:"1" type:"string"`
  6867  
  6868  	// The key-name for the tag for which to add or delete values.
  6869  	//
  6870  	// TagKey is a required field
  6871  	TagKey *string `min:"1" type:"string" required:"true"`
  6872  
  6873  	// A list of tag values to add from the tag.
  6874  	TagValuesToAdd []*string `min:"1" type:"list"`
  6875  
  6876  	// A list of tag values to delete from the tag.
  6877  	TagValuesToDelete []*string `min:"1" type:"list"`
  6878  }
  6879  
  6880  // String returns the string representation.
  6881  //
  6882  // API parameter values that are decorated as "sensitive" in the API will not
  6883  // be included in the string output. The member name will be present, but the
  6884  // value will be replaced with "sensitive".
  6885  func (s UpdateLFTagInput) String() string {
  6886  	return awsutil.Prettify(s)
  6887  }
  6888  
  6889  // GoString returns the string representation.
  6890  //
  6891  // API parameter values that are decorated as "sensitive" in the API will not
  6892  // be included in the string output. The member name will be present, but the
  6893  // value will be replaced with "sensitive".
  6894  func (s UpdateLFTagInput) GoString() string {
  6895  	return s.String()
  6896  }
  6897  
  6898  // Validate inspects the fields of the type to determine if they are valid.
  6899  func (s *UpdateLFTagInput) Validate() error {
  6900  	invalidParams := request.ErrInvalidParams{Context: "UpdateLFTagInput"}
  6901  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  6902  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  6903  	}
  6904  	if s.TagKey == nil {
  6905  		invalidParams.Add(request.NewErrParamRequired("TagKey"))
  6906  	}
  6907  	if s.TagKey != nil && len(*s.TagKey) < 1 {
  6908  		invalidParams.Add(request.NewErrParamMinLen("TagKey", 1))
  6909  	}
  6910  	if s.TagValuesToAdd != nil && len(s.TagValuesToAdd) < 1 {
  6911  		invalidParams.Add(request.NewErrParamMinLen("TagValuesToAdd", 1))
  6912  	}
  6913  	if s.TagValuesToDelete != nil && len(s.TagValuesToDelete) < 1 {
  6914  		invalidParams.Add(request.NewErrParamMinLen("TagValuesToDelete", 1))
  6915  	}
  6916  
  6917  	if invalidParams.Len() > 0 {
  6918  		return invalidParams
  6919  	}
  6920  	return nil
  6921  }
  6922  
  6923  // SetCatalogId sets the CatalogId field's value.
  6924  func (s *UpdateLFTagInput) SetCatalogId(v string) *UpdateLFTagInput {
  6925  	s.CatalogId = &v
  6926  	return s
  6927  }
  6928  
  6929  // SetTagKey sets the TagKey field's value.
  6930  func (s *UpdateLFTagInput) SetTagKey(v string) *UpdateLFTagInput {
  6931  	s.TagKey = &v
  6932  	return s
  6933  }
  6934  
  6935  // SetTagValuesToAdd sets the TagValuesToAdd field's value.
  6936  func (s *UpdateLFTagInput) SetTagValuesToAdd(v []*string) *UpdateLFTagInput {
  6937  	s.TagValuesToAdd = v
  6938  	return s
  6939  }
  6940  
  6941  // SetTagValuesToDelete sets the TagValuesToDelete field's value.
  6942  func (s *UpdateLFTagInput) SetTagValuesToDelete(v []*string) *UpdateLFTagInput {
  6943  	s.TagValuesToDelete = v
  6944  	return s
  6945  }
  6946  
  6947  type UpdateLFTagOutput struct {
  6948  	_ struct{} `type:"structure"`
  6949  }
  6950  
  6951  // String returns the string representation.
  6952  //
  6953  // API parameter values that are decorated as "sensitive" in the API will not
  6954  // be included in the string output. The member name will be present, but the
  6955  // value will be replaced with "sensitive".
  6956  func (s UpdateLFTagOutput) String() string {
  6957  	return awsutil.Prettify(s)
  6958  }
  6959  
  6960  // GoString returns the string representation.
  6961  //
  6962  // API parameter values that are decorated as "sensitive" in the API will not
  6963  // be included in the string output. The member name will be present, but the
  6964  // value will be replaced with "sensitive".
  6965  func (s UpdateLFTagOutput) GoString() string {
  6966  	return s.String()
  6967  }
  6968  
  6969  type UpdateResourceInput struct {
  6970  	_ struct{} `type:"structure"`
  6971  
  6972  	// The resource ARN.
  6973  	//
  6974  	// ResourceArn is a required field
  6975  	ResourceArn *string `type:"string" required:"true"`
  6976  
  6977  	// The new role to use for the given resource registered in AWS Lake Formation.
  6978  	//
  6979  	// RoleArn is a required field
  6980  	RoleArn *string `type:"string" required:"true"`
  6981  }
  6982  
  6983  // String returns the string representation.
  6984  //
  6985  // API parameter values that are decorated as "sensitive" in the API will not
  6986  // be included in the string output. The member name will be present, but the
  6987  // value will be replaced with "sensitive".
  6988  func (s UpdateResourceInput) String() string {
  6989  	return awsutil.Prettify(s)
  6990  }
  6991  
  6992  // GoString returns the string representation.
  6993  //
  6994  // API parameter values that are decorated as "sensitive" in the API will not
  6995  // be included in the string output. The member name will be present, but the
  6996  // value will be replaced with "sensitive".
  6997  func (s UpdateResourceInput) GoString() string {
  6998  	return s.String()
  6999  }
  7000  
  7001  // Validate inspects the fields of the type to determine if they are valid.
  7002  func (s *UpdateResourceInput) Validate() error {
  7003  	invalidParams := request.ErrInvalidParams{Context: "UpdateResourceInput"}
  7004  	if s.ResourceArn == nil {
  7005  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  7006  	}
  7007  	if s.RoleArn == nil {
  7008  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
  7009  	}
  7010  
  7011  	if invalidParams.Len() > 0 {
  7012  		return invalidParams
  7013  	}
  7014  	return nil
  7015  }
  7016  
  7017  // SetResourceArn sets the ResourceArn field's value.
  7018  func (s *UpdateResourceInput) SetResourceArn(v string) *UpdateResourceInput {
  7019  	s.ResourceArn = &v
  7020  	return s
  7021  }
  7022  
  7023  // SetRoleArn sets the RoleArn field's value.
  7024  func (s *UpdateResourceInput) SetRoleArn(v string) *UpdateResourceInput {
  7025  	s.RoleArn = &v
  7026  	return s
  7027  }
  7028  
  7029  type UpdateResourceOutput struct {
  7030  	_ struct{} `type:"structure"`
  7031  }
  7032  
  7033  // String 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 UpdateResourceOutput) String() string {
  7039  	return awsutil.Prettify(s)
  7040  }
  7041  
  7042  // GoString returns the string representation.
  7043  //
  7044  // API parameter values that are decorated as "sensitive" in the API will not
  7045  // be included in the string output. The member name will be present, but the
  7046  // value will be replaced with "sensitive".
  7047  func (s UpdateResourceOutput) GoString() string {
  7048  	return s.String()
  7049  }
  7050  
  7051  const (
  7052  	// ComparisonOperatorEq is a ComparisonOperator enum value
  7053  	ComparisonOperatorEq = "EQ"
  7054  
  7055  	// ComparisonOperatorNe is a ComparisonOperator enum value
  7056  	ComparisonOperatorNe = "NE"
  7057  
  7058  	// ComparisonOperatorLe is a ComparisonOperator enum value
  7059  	ComparisonOperatorLe = "LE"
  7060  
  7061  	// ComparisonOperatorLt is a ComparisonOperator enum value
  7062  	ComparisonOperatorLt = "LT"
  7063  
  7064  	// ComparisonOperatorGe is a ComparisonOperator enum value
  7065  	ComparisonOperatorGe = "GE"
  7066  
  7067  	// ComparisonOperatorGt is a ComparisonOperator enum value
  7068  	ComparisonOperatorGt = "GT"
  7069  
  7070  	// ComparisonOperatorContains is a ComparisonOperator enum value
  7071  	ComparisonOperatorContains = "CONTAINS"
  7072  
  7073  	// ComparisonOperatorNotContains is a ComparisonOperator enum value
  7074  	ComparisonOperatorNotContains = "NOT_CONTAINS"
  7075  
  7076  	// ComparisonOperatorBeginsWith is a ComparisonOperator enum value
  7077  	ComparisonOperatorBeginsWith = "BEGINS_WITH"
  7078  
  7079  	// ComparisonOperatorIn is a ComparisonOperator enum value
  7080  	ComparisonOperatorIn = "IN"
  7081  
  7082  	// ComparisonOperatorBetween is a ComparisonOperator enum value
  7083  	ComparisonOperatorBetween = "BETWEEN"
  7084  )
  7085  
  7086  // ComparisonOperator_Values returns all elements of the ComparisonOperator enum
  7087  func ComparisonOperator_Values() []string {
  7088  	return []string{
  7089  		ComparisonOperatorEq,
  7090  		ComparisonOperatorNe,
  7091  		ComparisonOperatorLe,
  7092  		ComparisonOperatorLt,
  7093  		ComparisonOperatorGe,
  7094  		ComparisonOperatorGt,
  7095  		ComparisonOperatorContains,
  7096  		ComparisonOperatorNotContains,
  7097  		ComparisonOperatorBeginsWith,
  7098  		ComparisonOperatorIn,
  7099  		ComparisonOperatorBetween,
  7100  	}
  7101  }
  7102  
  7103  const (
  7104  	// DataLakeResourceTypeCatalog is a DataLakeResourceType enum value
  7105  	DataLakeResourceTypeCatalog = "CATALOG"
  7106  
  7107  	// DataLakeResourceTypeDatabase is a DataLakeResourceType enum value
  7108  	DataLakeResourceTypeDatabase = "DATABASE"
  7109  
  7110  	// DataLakeResourceTypeTable is a DataLakeResourceType enum value
  7111  	DataLakeResourceTypeTable = "TABLE"
  7112  
  7113  	// DataLakeResourceTypeDataLocation is a DataLakeResourceType enum value
  7114  	DataLakeResourceTypeDataLocation = "DATA_LOCATION"
  7115  
  7116  	// DataLakeResourceTypeLfTag is a DataLakeResourceType enum value
  7117  	DataLakeResourceTypeLfTag = "LF_TAG"
  7118  
  7119  	// DataLakeResourceTypeLfTagPolicy is a DataLakeResourceType enum value
  7120  	DataLakeResourceTypeLfTagPolicy = "LF_TAG_POLICY"
  7121  
  7122  	// DataLakeResourceTypeLfTagPolicyDatabase is a DataLakeResourceType enum value
  7123  	DataLakeResourceTypeLfTagPolicyDatabase = "LF_TAG_POLICY_DATABASE"
  7124  
  7125  	// DataLakeResourceTypeLfTagPolicyTable is a DataLakeResourceType enum value
  7126  	DataLakeResourceTypeLfTagPolicyTable = "LF_TAG_POLICY_TABLE"
  7127  )
  7128  
  7129  // DataLakeResourceType_Values returns all elements of the DataLakeResourceType enum
  7130  func DataLakeResourceType_Values() []string {
  7131  	return []string{
  7132  		DataLakeResourceTypeCatalog,
  7133  		DataLakeResourceTypeDatabase,
  7134  		DataLakeResourceTypeTable,
  7135  		DataLakeResourceTypeDataLocation,
  7136  		DataLakeResourceTypeLfTag,
  7137  		DataLakeResourceTypeLfTagPolicy,
  7138  		DataLakeResourceTypeLfTagPolicyDatabase,
  7139  		DataLakeResourceTypeLfTagPolicyTable,
  7140  	}
  7141  }
  7142  
  7143  const (
  7144  	// FieldNameStringResourceArn is a FieldNameString enum value
  7145  	FieldNameStringResourceArn = "RESOURCE_ARN"
  7146  
  7147  	// FieldNameStringRoleArn is a FieldNameString enum value
  7148  	FieldNameStringRoleArn = "ROLE_ARN"
  7149  
  7150  	// FieldNameStringLastModified is a FieldNameString enum value
  7151  	FieldNameStringLastModified = "LAST_MODIFIED"
  7152  )
  7153  
  7154  // FieldNameString_Values returns all elements of the FieldNameString enum
  7155  func FieldNameString_Values() []string {
  7156  	return []string{
  7157  		FieldNameStringResourceArn,
  7158  		FieldNameStringRoleArn,
  7159  		FieldNameStringLastModified,
  7160  	}
  7161  }
  7162  
  7163  const (
  7164  	// PermissionAll is a Permission enum value
  7165  	PermissionAll = "ALL"
  7166  
  7167  	// PermissionSelect is a Permission enum value
  7168  	PermissionSelect = "SELECT"
  7169  
  7170  	// PermissionAlter is a Permission enum value
  7171  	PermissionAlter = "ALTER"
  7172  
  7173  	// PermissionDrop is a Permission enum value
  7174  	PermissionDrop = "DROP"
  7175  
  7176  	// PermissionDelete is a Permission enum value
  7177  	PermissionDelete = "DELETE"
  7178  
  7179  	// PermissionInsert is a Permission enum value
  7180  	PermissionInsert = "INSERT"
  7181  
  7182  	// PermissionDescribe is a Permission enum value
  7183  	PermissionDescribe = "DESCRIBE"
  7184  
  7185  	// PermissionCreateDatabase is a Permission enum value
  7186  	PermissionCreateDatabase = "CREATE_DATABASE"
  7187  
  7188  	// PermissionCreateTable is a Permission enum value
  7189  	PermissionCreateTable = "CREATE_TABLE"
  7190  
  7191  	// PermissionDataLocationAccess is a Permission enum value
  7192  	PermissionDataLocationAccess = "DATA_LOCATION_ACCESS"
  7193  
  7194  	// PermissionCreateTag is a Permission enum value
  7195  	PermissionCreateTag = "CREATE_TAG"
  7196  
  7197  	// PermissionAlterTag is a Permission enum value
  7198  	PermissionAlterTag = "ALTER_TAG"
  7199  
  7200  	// PermissionDeleteTag is a Permission enum value
  7201  	PermissionDeleteTag = "DELETE_TAG"
  7202  
  7203  	// PermissionDescribeTag is a Permission enum value
  7204  	PermissionDescribeTag = "DESCRIBE_TAG"
  7205  
  7206  	// PermissionAssociateTag is a Permission enum value
  7207  	PermissionAssociateTag = "ASSOCIATE_TAG"
  7208  )
  7209  
  7210  // Permission_Values returns all elements of the Permission enum
  7211  func Permission_Values() []string {
  7212  	return []string{
  7213  		PermissionAll,
  7214  		PermissionSelect,
  7215  		PermissionAlter,
  7216  		PermissionDrop,
  7217  		PermissionDelete,
  7218  		PermissionInsert,
  7219  		PermissionDescribe,
  7220  		PermissionCreateDatabase,
  7221  		PermissionCreateTable,
  7222  		PermissionDataLocationAccess,
  7223  		PermissionCreateTag,
  7224  		PermissionAlterTag,
  7225  		PermissionDeleteTag,
  7226  		PermissionDescribeTag,
  7227  		PermissionAssociateTag,
  7228  	}
  7229  }
  7230  
  7231  const (
  7232  	// ResourceShareTypeForeign is a ResourceShareType enum value
  7233  	ResourceShareTypeForeign = "FOREIGN"
  7234  
  7235  	// ResourceShareTypeAll is a ResourceShareType enum value
  7236  	ResourceShareTypeAll = "ALL"
  7237  )
  7238  
  7239  // ResourceShareType_Values returns all elements of the ResourceShareType enum
  7240  func ResourceShareType_Values() []string {
  7241  	return []string{
  7242  		ResourceShareTypeForeign,
  7243  		ResourceShareTypeAll,
  7244  	}
  7245  }
  7246  
  7247  const (
  7248  	// ResourceTypeDatabase is a ResourceType enum value
  7249  	ResourceTypeDatabase = "DATABASE"
  7250  
  7251  	// ResourceTypeTable is a ResourceType enum value
  7252  	ResourceTypeTable = "TABLE"
  7253  )
  7254  
  7255  // ResourceType_Values returns all elements of the ResourceType enum
  7256  func ResourceType_Values() []string {
  7257  	return []string{
  7258  		ResourceTypeDatabase,
  7259  		ResourceTypeTable,
  7260  	}
  7261  }