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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package athena
     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 opBatchGetNamedQuery = "BatchGetNamedQuery"
    17  
    18  // BatchGetNamedQueryRequest generates a "aws/request.Request" representing the
    19  // client's request for the BatchGetNamedQuery 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 BatchGetNamedQuery for more information on using the BatchGetNamedQuery
    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 BatchGetNamedQueryRequest method.
    34  //    req, resp := client.BatchGetNamedQueryRequest(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/athena-2017-05-18/BatchGetNamedQuery
    42  func (c *Athena) BatchGetNamedQueryRequest(input *BatchGetNamedQueryInput) (req *request.Request, output *BatchGetNamedQueryOutput) {
    43  	op := &request.Operation{
    44  		Name:       opBatchGetNamedQuery,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &BatchGetNamedQueryInput{}
    51  	}
    52  
    53  	output = &BatchGetNamedQueryOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // BatchGetNamedQuery API operation for Amazon Athena.
    59  //
    60  // Returns the details of a single named query or a list of up to 50 queries,
    61  // which you provide as an array of query ID strings. Requires you to have access
    62  // to the workgroup in which the queries were saved. Use ListNamedQueriesInput
    63  // to get the list of named query IDs in the specified workgroup. If information
    64  // could not be retrieved for a submitted query ID, information about the query
    65  // ID submitted is listed under UnprocessedNamedQueryId. Named queries differ
    66  // from executed queries. Use BatchGetQueryExecutionInput to get details about
    67  // each unique query execution, and ListQueryExecutionsInput to get a list of
    68  // query execution IDs.
    69  //
    70  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    71  // with awserr.Error's Code and Message methods to get detailed information about
    72  // the error.
    73  //
    74  // See the AWS API reference guide for Amazon Athena's
    75  // API operation BatchGetNamedQuery for usage and error information.
    76  //
    77  // Returned Error Types:
    78  //   * InternalServerException
    79  //   Indicates a platform issue, which may be due to a transient condition or
    80  //   outage.
    81  //
    82  //   * InvalidRequestException
    83  //   Indicates that something is wrong with the input to the request. For example,
    84  //   a required parameter may be missing or out of range.
    85  //
    86  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/BatchGetNamedQuery
    87  func (c *Athena) BatchGetNamedQuery(input *BatchGetNamedQueryInput) (*BatchGetNamedQueryOutput, error) {
    88  	req, out := c.BatchGetNamedQueryRequest(input)
    89  	return out, req.Send()
    90  }
    91  
    92  // BatchGetNamedQueryWithContext is the same as BatchGetNamedQuery with the addition of
    93  // the ability to pass a context and additional request options.
    94  //
    95  // See BatchGetNamedQuery for details on how to use this API operation.
    96  //
    97  // The context must be non-nil and will be used for request cancellation. If
    98  // the context is nil a panic will occur. In the future the SDK may create
    99  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   100  // for more information on using Contexts.
   101  func (c *Athena) BatchGetNamedQueryWithContext(ctx aws.Context, input *BatchGetNamedQueryInput, opts ...request.Option) (*BatchGetNamedQueryOutput, error) {
   102  	req, out := c.BatchGetNamedQueryRequest(input)
   103  	req.SetContext(ctx)
   104  	req.ApplyOptions(opts...)
   105  	return out, req.Send()
   106  }
   107  
   108  const opBatchGetQueryExecution = "BatchGetQueryExecution"
   109  
   110  // BatchGetQueryExecutionRequest generates a "aws/request.Request" representing the
   111  // client's request for the BatchGetQueryExecution operation. The "output" return
   112  // value will be populated with the request's response once the request completes
   113  // successfully.
   114  //
   115  // Use "Send" method on the returned Request to send the API call to the service.
   116  // the "output" return value is not valid until after Send returns without error.
   117  //
   118  // See BatchGetQueryExecution for more information on using the BatchGetQueryExecution
   119  // API call, and error handling.
   120  //
   121  // This method is useful when you want to inject custom logic or configuration
   122  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   123  //
   124  //
   125  //    // Example sending a request using the BatchGetQueryExecutionRequest method.
   126  //    req, resp := client.BatchGetQueryExecutionRequest(params)
   127  //
   128  //    err := req.Send()
   129  //    if err == nil { // resp is now filled
   130  //        fmt.Println(resp)
   131  //    }
   132  //
   133  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/BatchGetQueryExecution
   134  func (c *Athena) BatchGetQueryExecutionRequest(input *BatchGetQueryExecutionInput) (req *request.Request, output *BatchGetQueryExecutionOutput) {
   135  	op := &request.Operation{
   136  		Name:       opBatchGetQueryExecution,
   137  		HTTPMethod: "POST",
   138  		HTTPPath:   "/",
   139  	}
   140  
   141  	if input == nil {
   142  		input = &BatchGetQueryExecutionInput{}
   143  	}
   144  
   145  	output = &BatchGetQueryExecutionOutput{}
   146  	req = c.newRequest(op, input, output)
   147  	return
   148  }
   149  
   150  // BatchGetQueryExecution API operation for Amazon Athena.
   151  //
   152  // Returns the details of a single query execution or a list of up to 50 query
   153  // executions, which you provide as an array of query execution ID strings.
   154  // Requires you to have access to the workgroup in which the queries ran. To
   155  // get a list of query execution IDs, use ListQueryExecutionsInput$WorkGroup.
   156  // Query executions differ from named (saved) queries. Use BatchGetNamedQueryInput
   157  // to get details about named queries.
   158  //
   159  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   160  // with awserr.Error's Code and Message methods to get detailed information about
   161  // the error.
   162  //
   163  // See the AWS API reference guide for Amazon Athena's
   164  // API operation BatchGetQueryExecution for usage and error information.
   165  //
   166  // Returned Error Types:
   167  //   * InternalServerException
   168  //   Indicates a platform issue, which may be due to a transient condition or
   169  //   outage.
   170  //
   171  //   * InvalidRequestException
   172  //   Indicates that something is wrong with the input to the request. For example,
   173  //   a required parameter may be missing or out of range.
   174  //
   175  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/BatchGetQueryExecution
   176  func (c *Athena) BatchGetQueryExecution(input *BatchGetQueryExecutionInput) (*BatchGetQueryExecutionOutput, error) {
   177  	req, out := c.BatchGetQueryExecutionRequest(input)
   178  	return out, req.Send()
   179  }
   180  
   181  // BatchGetQueryExecutionWithContext is the same as BatchGetQueryExecution with the addition of
   182  // the ability to pass a context and additional request options.
   183  //
   184  // See BatchGetQueryExecution for details on how to use this API operation.
   185  //
   186  // The context must be non-nil and will be used for request cancellation. If
   187  // the context is nil a panic will occur. In the future the SDK may create
   188  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   189  // for more information on using Contexts.
   190  func (c *Athena) BatchGetQueryExecutionWithContext(ctx aws.Context, input *BatchGetQueryExecutionInput, opts ...request.Option) (*BatchGetQueryExecutionOutput, error) {
   191  	req, out := c.BatchGetQueryExecutionRequest(input)
   192  	req.SetContext(ctx)
   193  	req.ApplyOptions(opts...)
   194  	return out, req.Send()
   195  }
   196  
   197  const opCreateDataCatalog = "CreateDataCatalog"
   198  
   199  // CreateDataCatalogRequest generates a "aws/request.Request" representing the
   200  // client's request for the CreateDataCatalog operation. The "output" return
   201  // value will be populated with the request's response once the request completes
   202  // successfully.
   203  //
   204  // Use "Send" method on the returned Request to send the API call to the service.
   205  // the "output" return value is not valid until after Send returns without error.
   206  //
   207  // See CreateDataCatalog for more information on using the CreateDataCatalog
   208  // API call, and error handling.
   209  //
   210  // This method is useful when you want to inject custom logic or configuration
   211  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   212  //
   213  //
   214  //    // Example sending a request using the CreateDataCatalogRequest method.
   215  //    req, resp := client.CreateDataCatalogRequest(params)
   216  //
   217  //    err := req.Send()
   218  //    if err == nil { // resp is now filled
   219  //        fmt.Println(resp)
   220  //    }
   221  //
   222  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreateDataCatalog
   223  func (c *Athena) CreateDataCatalogRequest(input *CreateDataCatalogInput) (req *request.Request, output *CreateDataCatalogOutput) {
   224  	op := &request.Operation{
   225  		Name:       opCreateDataCatalog,
   226  		HTTPMethod: "POST",
   227  		HTTPPath:   "/",
   228  	}
   229  
   230  	if input == nil {
   231  		input = &CreateDataCatalogInput{}
   232  	}
   233  
   234  	output = &CreateDataCatalogOutput{}
   235  	req = c.newRequest(op, input, output)
   236  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   237  	return
   238  }
   239  
   240  // CreateDataCatalog API operation for Amazon Athena.
   241  //
   242  // Creates (registers) a data catalog with the specified name and properties.
   243  // Catalogs created are visible to all users of the same Amazon Web Services
   244  // account.
   245  //
   246  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   247  // with awserr.Error's Code and Message methods to get detailed information about
   248  // the error.
   249  //
   250  // See the AWS API reference guide for Amazon Athena's
   251  // API operation CreateDataCatalog for usage and error information.
   252  //
   253  // Returned Error Types:
   254  //   * InternalServerException
   255  //   Indicates a platform issue, which may be due to a transient condition or
   256  //   outage.
   257  //
   258  //   * InvalidRequestException
   259  //   Indicates that something is wrong with the input to the request. For example,
   260  //   a required parameter may be missing or out of range.
   261  //
   262  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreateDataCatalog
   263  func (c *Athena) CreateDataCatalog(input *CreateDataCatalogInput) (*CreateDataCatalogOutput, error) {
   264  	req, out := c.CreateDataCatalogRequest(input)
   265  	return out, req.Send()
   266  }
   267  
   268  // CreateDataCatalogWithContext is the same as CreateDataCatalog with the addition of
   269  // the ability to pass a context and additional request options.
   270  //
   271  // See CreateDataCatalog for details on how to use this API operation.
   272  //
   273  // The context must be non-nil and will be used for request cancellation. If
   274  // the context is nil a panic will occur. In the future the SDK may create
   275  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   276  // for more information on using Contexts.
   277  func (c *Athena) CreateDataCatalogWithContext(ctx aws.Context, input *CreateDataCatalogInput, opts ...request.Option) (*CreateDataCatalogOutput, error) {
   278  	req, out := c.CreateDataCatalogRequest(input)
   279  	req.SetContext(ctx)
   280  	req.ApplyOptions(opts...)
   281  	return out, req.Send()
   282  }
   283  
   284  const opCreateNamedQuery = "CreateNamedQuery"
   285  
   286  // CreateNamedQueryRequest generates a "aws/request.Request" representing the
   287  // client's request for the CreateNamedQuery operation. The "output" return
   288  // value will be populated with the request's response once the request completes
   289  // successfully.
   290  //
   291  // Use "Send" method on the returned Request to send the API call to the service.
   292  // the "output" return value is not valid until after Send returns without error.
   293  //
   294  // See CreateNamedQuery for more information on using the CreateNamedQuery
   295  // API call, and error handling.
   296  //
   297  // This method is useful when you want to inject custom logic or configuration
   298  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   299  //
   300  //
   301  //    // Example sending a request using the CreateNamedQueryRequest method.
   302  //    req, resp := client.CreateNamedQueryRequest(params)
   303  //
   304  //    err := req.Send()
   305  //    if err == nil { // resp is now filled
   306  //        fmt.Println(resp)
   307  //    }
   308  //
   309  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreateNamedQuery
   310  func (c *Athena) CreateNamedQueryRequest(input *CreateNamedQueryInput) (req *request.Request, output *CreateNamedQueryOutput) {
   311  	op := &request.Operation{
   312  		Name:       opCreateNamedQuery,
   313  		HTTPMethod: "POST",
   314  		HTTPPath:   "/",
   315  	}
   316  
   317  	if input == nil {
   318  		input = &CreateNamedQueryInput{}
   319  	}
   320  
   321  	output = &CreateNamedQueryOutput{}
   322  	req = c.newRequest(op, input, output)
   323  	return
   324  }
   325  
   326  // CreateNamedQuery API operation for Amazon Athena.
   327  //
   328  // Creates a named query in the specified workgroup. Requires that you have
   329  // access to the workgroup.
   330  //
   331  // For code samples using the Amazon Web Services SDK for Java, see Examples
   332  // and Code Samples (http://docs.aws.amazon.com/athena/latest/ug/code-samples.html)
   333  // in the Amazon Athena User Guide.
   334  //
   335  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   336  // with awserr.Error's Code and Message methods to get detailed information about
   337  // the error.
   338  //
   339  // See the AWS API reference guide for Amazon Athena's
   340  // API operation CreateNamedQuery for usage and error information.
   341  //
   342  // Returned Error Types:
   343  //   * InternalServerException
   344  //   Indicates a platform issue, which may be due to a transient condition or
   345  //   outage.
   346  //
   347  //   * InvalidRequestException
   348  //   Indicates that something is wrong with the input to the request. For example,
   349  //   a required parameter may be missing or out of range.
   350  //
   351  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreateNamedQuery
   352  func (c *Athena) CreateNamedQuery(input *CreateNamedQueryInput) (*CreateNamedQueryOutput, error) {
   353  	req, out := c.CreateNamedQueryRequest(input)
   354  	return out, req.Send()
   355  }
   356  
   357  // CreateNamedQueryWithContext is the same as CreateNamedQuery with the addition of
   358  // the ability to pass a context and additional request options.
   359  //
   360  // See CreateNamedQuery for details on how to use this API operation.
   361  //
   362  // The context must be non-nil and will be used for request cancellation. If
   363  // the context is nil a panic will occur. In the future the SDK may create
   364  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   365  // for more information on using Contexts.
   366  func (c *Athena) CreateNamedQueryWithContext(ctx aws.Context, input *CreateNamedQueryInput, opts ...request.Option) (*CreateNamedQueryOutput, error) {
   367  	req, out := c.CreateNamedQueryRequest(input)
   368  	req.SetContext(ctx)
   369  	req.ApplyOptions(opts...)
   370  	return out, req.Send()
   371  }
   372  
   373  const opCreatePreparedStatement = "CreatePreparedStatement"
   374  
   375  // CreatePreparedStatementRequest generates a "aws/request.Request" representing the
   376  // client's request for the CreatePreparedStatement operation. The "output" return
   377  // value will be populated with the request's response once the request completes
   378  // successfully.
   379  //
   380  // Use "Send" method on the returned Request to send the API call to the service.
   381  // the "output" return value is not valid until after Send returns without error.
   382  //
   383  // See CreatePreparedStatement for more information on using the CreatePreparedStatement
   384  // API call, and error handling.
   385  //
   386  // This method is useful when you want to inject custom logic or configuration
   387  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   388  //
   389  //
   390  //    // Example sending a request using the CreatePreparedStatementRequest method.
   391  //    req, resp := client.CreatePreparedStatementRequest(params)
   392  //
   393  //    err := req.Send()
   394  //    if err == nil { // resp is now filled
   395  //        fmt.Println(resp)
   396  //    }
   397  //
   398  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreatePreparedStatement
   399  func (c *Athena) CreatePreparedStatementRequest(input *CreatePreparedStatementInput) (req *request.Request, output *CreatePreparedStatementOutput) {
   400  	op := &request.Operation{
   401  		Name:       opCreatePreparedStatement,
   402  		HTTPMethod: "POST",
   403  		HTTPPath:   "/",
   404  	}
   405  
   406  	if input == nil {
   407  		input = &CreatePreparedStatementInput{}
   408  	}
   409  
   410  	output = &CreatePreparedStatementOutput{}
   411  	req = c.newRequest(op, input, output)
   412  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   413  	return
   414  }
   415  
   416  // CreatePreparedStatement API operation for Amazon Athena.
   417  //
   418  // Creates a prepared statement for use with SQL queries in Athena.
   419  //
   420  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   421  // with awserr.Error's Code and Message methods to get detailed information about
   422  // the error.
   423  //
   424  // See the AWS API reference guide for Amazon Athena's
   425  // API operation CreatePreparedStatement for usage and error information.
   426  //
   427  // Returned Error Types:
   428  //   * InternalServerException
   429  //   Indicates a platform issue, which may be due to a transient condition or
   430  //   outage.
   431  //
   432  //   * InvalidRequestException
   433  //   Indicates that something is wrong with the input to the request. For example,
   434  //   a required parameter may be missing or out of range.
   435  //
   436  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreatePreparedStatement
   437  func (c *Athena) CreatePreparedStatement(input *CreatePreparedStatementInput) (*CreatePreparedStatementOutput, error) {
   438  	req, out := c.CreatePreparedStatementRequest(input)
   439  	return out, req.Send()
   440  }
   441  
   442  // CreatePreparedStatementWithContext is the same as CreatePreparedStatement with the addition of
   443  // the ability to pass a context and additional request options.
   444  //
   445  // See CreatePreparedStatement for details on how to use this API operation.
   446  //
   447  // The context must be non-nil and will be used for request cancellation. If
   448  // the context is nil a panic will occur. In the future the SDK may create
   449  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   450  // for more information on using Contexts.
   451  func (c *Athena) CreatePreparedStatementWithContext(ctx aws.Context, input *CreatePreparedStatementInput, opts ...request.Option) (*CreatePreparedStatementOutput, error) {
   452  	req, out := c.CreatePreparedStatementRequest(input)
   453  	req.SetContext(ctx)
   454  	req.ApplyOptions(opts...)
   455  	return out, req.Send()
   456  }
   457  
   458  const opCreateWorkGroup = "CreateWorkGroup"
   459  
   460  // CreateWorkGroupRequest generates a "aws/request.Request" representing the
   461  // client's request for the CreateWorkGroup operation. The "output" return
   462  // value will be populated with the request's response once the request completes
   463  // successfully.
   464  //
   465  // Use "Send" method on the returned Request to send the API call to the service.
   466  // the "output" return value is not valid until after Send returns without error.
   467  //
   468  // See CreateWorkGroup for more information on using the CreateWorkGroup
   469  // API call, and error handling.
   470  //
   471  // This method is useful when you want to inject custom logic or configuration
   472  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   473  //
   474  //
   475  //    // Example sending a request using the CreateWorkGroupRequest method.
   476  //    req, resp := client.CreateWorkGroupRequest(params)
   477  //
   478  //    err := req.Send()
   479  //    if err == nil { // resp is now filled
   480  //        fmt.Println(resp)
   481  //    }
   482  //
   483  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreateWorkGroup
   484  func (c *Athena) CreateWorkGroupRequest(input *CreateWorkGroupInput) (req *request.Request, output *CreateWorkGroupOutput) {
   485  	op := &request.Operation{
   486  		Name:       opCreateWorkGroup,
   487  		HTTPMethod: "POST",
   488  		HTTPPath:   "/",
   489  	}
   490  
   491  	if input == nil {
   492  		input = &CreateWorkGroupInput{}
   493  	}
   494  
   495  	output = &CreateWorkGroupOutput{}
   496  	req = c.newRequest(op, input, output)
   497  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   498  	return
   499  }
   500  
   501  // CreateWorkGroup API operation for Amazon Athena.
   502  //
   503  // Creates a workgroup with the specified name.
   504  //
   505  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   506  // with awserr.Error's Code and Message methods to get detailed information about
   507  // the error.
   508  //
   509  // See the AWS API reference guide for Amazon Athena's
   510  // API operation CreateWorkGroup for usage and error information.
   511  //
   512  // Returned Error Types:
   513  //   * InternalServerException
   514  //   Indicates a platform issue, which may be due to a transient condition or
   515  //   outage.
   516  //
   517  //   * InvalidRequestException
   518  //   Indicates that something is wrong with the input to the request. For example,
   519  //   a required parameter may be missing or out of range.
   520  //
   521  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreateWorkGroup
   522  func (c *Athena) CreateWorkGroup(input *CreateWorkGroupInput) (*CreateWorkGroupOutput, error) {
   523  	req, out := c.CreateWorkGroupRequest(input)
   524  	return out, req.Send()
   525  }
   526  
   527  // CreateWorkGroupWithContext is the same as CreateWorkGroup with the addition of
   528  // the ability to pass a context and additional request options.
   529  //
   530  // See CreateWorkGroup for details on how to use this API operation.
   531  //
   532  // The context must be non-nil and will be used for request cancellation. If
   533  // the context is nil a panic will occur. In the future the SDK may create
   534  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   535  // for more information on using Contexts.
   536  func (c *Athena) CreateWorkGroupWithContext(ctx aws.Context, input *CreateWorkGroupInput, opts ...request.Option) (*CreateWorkGroupOutput, error) {
   537  	req, out := c.CreateWorkGroupRequest(input)
   538  	req.SetContext(ctx)
   539  	req.ApplyOptions(opts...)
   540  	return out, req.Send()
   541  }
   542  
   543  const opDeleteDataCatalog = "DeleteDataCatalog"
   544  
   545  // DeleteDataCatalogRequest generates a "aws/request.Request" representing the
   546  // client's request for the DeleteDataCatalog operation. The "output" return
   547  // value will be populated with the request's response once the request completes
   548  // successfully.
   549  //
   550  // Use "Send" method on the returned Request to send the API call to the service.
   551  // the "output" return value is not valid until after Send returns without error.
   552  //
   553  // See DeleteDataCatalog for more information on using the DeleteDataCatalog
   554  // API call, and error handling.
   555  //
   556  // This method is useful when you want to inject custom logic or configuration
   557  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   558  //
   559  //
   560  //    // Example sending a request using the DeleteDataCatalogRequest method.
   561  //    req, resp := client.DeleteDataCatalogRequest(params)
   562  //
   563  //    err := req.Send()
   564  //    if err == nil { // resp is now filled
   565  //        fmt.Println(resp)
   566  //    }
   567  //
   568  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeleteDataCatalog
   569  func (c *Athena) DeleteDataCatalogRequest(input *DeleteDataCatalogInput) (req *request.Request, output *DeleteDataCatalogOutput) {
   570  	op := &request.Operation{
   571  		Name:       opDeleteDataCatalog,
   572  		HTTPMethod: "POST",
   573  		HTTPPath:   "/",
   574  	}
   575  
   576  	if input == nil {
   577  		input = &DeleteDataCatalogInput{}
   578  	}
   579  
   580  	output = &DeleteDataCatalogOutput{}
   581  	req = c.newRequest(op, input, output)
   582  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   583  	return
   584  }
   585  
   586  // DeleteDataCatalog API operation for Amazon Athena.
   587  //
   588  // Deletes a data catalog.
   589  //
   590  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   591  // with awserr.Error's Code and Message methods to get detailed information about
   592  // the error.
   593  //
   594  // See the AWS API reference guide for Amazon Athena's
   595  // API operation DeleteDataCatalog for usage and error information.
   596  //
   597  // Returned Error Types:
   598  //   * InternalServerException
   599  //   Indicates a platform issue, which may be due to a transient condition or
   600  //   outage.
   601  //
   602  //   * InvalidRequestException
   603  //   Indicates that something is wrong with the input to the request. For example,
   604  //   a required parameter may be missing or out of range.
   605  //
   606  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeleteDataCatalog
   607  func (c *Athena) DeleteDataCatalog(input *DeleteDataCatalogInput) (*DeleteDataCatalogOutput, error) {
   608  	req, out := c.DeleteDataCatalogRequest(input)
   609  	return out, req.Send()
   610  }
   611  
   612  // DeleteDataCatalogWithContext is the same as DeleteDataCatalog with the addition of
   613  // the ability to pass a context and additional request options.
   614  //
   615  // See DeleteDataCatalog for details on how to use this API operation.
   616  //
   617  // The context must be non-nil and will be used for request cancellation. If
   618  // the context is nil a panic will occur. In the future the SDK may create
   619  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   620  // for more information on using Contexts.
   621  func (c *Athena) DeleteDataCatalogWithContext(ctx aws.Context, input *DeleteDataCatalogInput, opts ...request.Option) (*DeleteDataCatalogOutput, error) {
   622  	req, out := c.DeleteDataCatalogRequest(input)
   623  	req.SetContext(ctx)
   624  	req.ApplyOptions(opts...)
   625  	return out, req.Send()
   626  }
   627  
   628  const opDeleteNamedQuery = "DeleteNamedQuery"
   629  
   630  // DeleteNamedQueryRequest generates a "aws/request.Request" representing the
   631  // client's request for the DeleteNamedQuery operation. The "output" return
   632  // value will be populated with the request's response once the request completes
   633  // successfully.
   634  //
   635  // Use "Send" method on the returned Request to send the API call to the service.
   636  // the "output" return value is not valid until after Send returns without error.
   637  //
   638  // See DeleteNamedQuery for more information on using the DeleteNamedQuery
   639  // API call, and error handling.
   640  //
   641  // This method is useful when you want to inject custom logic or configuration
   642  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   643  //
   644  //
   645  //    // Example sending a request using the DeleteNamedQueryRequest method.
   646  //    req, resp := client.DeleteNamedQueryRequest(params)
   647  //
   648  //    err := req.Send()
   649  //    if err == nil { // resp is now filled
   650  //        fmt.Println(resp)
   651  //    }
   652  //
   653  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeleteNamedQuery
   654  func (c *Athena) DeleteNamedQueryRequest(input *DeleteNamedQueryInput) (req *request.Request, output *DeleteNamedQueryOutput) {
   655  	op := &request.Operation{
   656  		Name:       opDeleteNamedQuery,
   657  		HTTPMethod: "POST",
   658  		HTTPPath:   "/",
   659  	}
   660  
   661  	if input == nil {
   662  		input = &DeleteNamedQueryInput{}
   663  	}
   664  
   665  	output = &DeleteNamedQueryOutput{}
   666  	req = c.newRequest(op, input, output)
   667  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   668  	return
   669  }
   670  
   671  // DeleteNamedQuery API operation for Amazon Athena.
   672  //
   673  // Deletes the named query if you have access to the workgroup in which the
   674  // query was saved.
   675  //
   676  // For code samples using the Amazon Web Services SDK for Java, see Examples
   677  // and Code Samples (http://docs.aws.amazon.com/athena/latest/ug/code-samples.html)
   678  // in the Amazon Athena User Guide.
   679  //
   680  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   681  // with awserr.Error's Code and Message methods to get detailed information about
   682  // the error.
   683  //
   684  // See the AWS API reference guide for Amazon Athena's
   685  // API operation DeleteNamedQuery for usage and error information.
   686  //
   687  // Returned Error Types:
   688  //   * InternalServerException
   689  //   Indicates a platform issue, which may be due to a transient condition or
   690  //   outage.
   691  //
   692  //   * InvalidRequestException
   693  //   Indicates that something is wrong with the input to the request. For example,
   694  //   a required parameter may be missing or out of range.
   695  //
   696  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeleteNamedQuery
   697  func (c *Athena) DeleteNamedQuery(input *DeleteNamedQueryInput) (*DeleteNamedQueryOutput, error) {
   698  	req, out := c.DeleteNamedQueryRequest(input)
   699  	return out, req.Send()
   700  }
   701  
   702  // DeleteNamedQueryWithContext is the same as DeleteNamedQuery with the addition of
   703  // the ability to pass a context and additional request options.
   704  //
   705  // See DeleteNamedQuery for details on how to use this API operation.
   706  //
   707  // The context must be non-nil and will be used for request cancellation. If
   708  // the context is nil a panic will occur. In the future the SDK may create
   709  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   710  // for more information on using Contexts.
   711  func (c *Athena) DeleteNamedQueryWithContext(ctx aws.Context, input *DeleteNamedQueryInput, opts ...request.Option) (*DeleteNamedQueryOutput, error) {
   712  	req, out := c.DeleteNamedQueryRequest(input)
   713  	req.SetContext(ctx)
   714  	req.ApplyOptions(opts...)
   715  	return out, req.Send()
   716  }
   717  
   718  const opDeletePreparedStatement = "DeletePreparedStatement"
   719  
   720  // DeletePreparedStatementRequest generates a "aws/request.Request" representing the
   721  // client's request for the DeletePreparedStatement operation. The "output" return
   722  // value will be populated with the request's response once the request completes
   723  // successfully.
   724  //
   725  // Use "Send" method on the returned Request to send the API call to the service.
   726  // the "output" return value is not valid until after Send returns without error.
   727  //
   728  // See DeletePreparedStatement for more information on using the DeletePreparedStatement
   729  // API call, and error handling.
   730  //
   731  // This method is useful when you want to inject custom logic or configuration
   732  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   733  //
   734  //
   735  //    // Example sending a request using the DeletePreparedStatementRequest method.
   736  //    req, resp := client.DeletePreparedStatementRequest(params)
   737  //
   738  //    err := req.Send()
   739  //    if err == nil { // resp is now filled
   740  //        fmt.Println(resp)
   741  //    }
   742  //
   743  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeletePreparedStatement
   744  func (c *Athena) DeletePreparedStatementRequest(input *DeletePreparedStatementInput) (req *request.Request, output *DeletePreparedStatementOutput) {
   745  	op := &request.Operation{
   746  		Name:       opDeletePreparedStatement,
   747  		HTTPMethod: "POST",
   748  		HTTPPath:   "/",
   749  	}
   750  
   751  	if input == nil {
   752  		input = &DeletePreparedStatementInput{}
   753  	}
   754  
   755  	output = &DeletePreparedStatementOutput{}
   756  	req = c.newRequest(op, input, output)
   757  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   758  	return
   759  }
   760  
   761  // DeletePreparedStatement API operation for Amazon Athena.
   762  //
   763  // Deletes the prepared statement with the specified name from the specified
   764  // workgroup.
   765  //
   766  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   767  // with awserr.Error's Code and Message methods to get detailed information about
   768  // the error.
   769  //
   770  // See the AWS API reference guide for Amazon Athena's
   771  // API operation DeletePreparedStatement for usage and error information.
   772  //
   773  // Returned Error Types:
   774  //   * InternalServerException
   775  //   Indicates a platform issue, which may be due to a transient condition or
   776  //   outage.
   777  //
   778  //   * InvalidRequestException
   779  //   Indicates that something is wrong with the input to the request. For example,
   780  //   a required parameter may be missing or out of range.
   781  //
   782  //   * ResourceNotFoundException
   783  //   A resource, such as a workgroup, was not found.
   784  //
   785  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeletePreparedStatement
   786  func (c *Athena) DeletePreparedStatement(input *DeletePreparedStatementInput) (*DeletePreparedStatementOutput, error) {
   787  	req, out := c.DeletePreparedStatementRequest(input)
   788  	return out, req.Send()
   789  }
   790  
   791  // DeletePreparedStatementWithContext is the same as DeletePreparedStatement with the addition of
   792  // the ability to pass a context and additional request options.
   793  //
   794  // See DeletePreparedStatement for details on how to use this API operation.
   795  //
   796  // The context must be non-nil and will be used for request cancellation. If
   797  // the context is nil a panic will occur. In the future the SDK may create
   798  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   799  // for more information on using Contexts.
   800  func (c *Athena) DeletePreparedStatementWithContext(ctx aws.Context, input *DeletePreparedStatementInput, opts ...request.Option) (*DeletePreparedStatementOutput, error) {
   801  	req, out := c.DeletePreparedStatementRequest(input)
   802  	req.SetContext(ctx)
   803  	req.ApplyOptions(opts...)
   804  	return out, req.Send()
   805  }
   806  
   807  const opDeleteWorkGroup = "DeleteWorkGroup"
   808  
   809  // DeleteWorkGroupRequest generates a "aws/request.Request" representing the
   810  // client's request for the DeleteWorkGroup operation. The "output" return
   811  // value will be populated with the request's response once the request completes
   812  // successfully.
   813  //
   814  // Use "Send" method on the returned Request to send the API call to the service.
   815  // the "output" return value is not valid until after Send returns without error.
   816  //
   817  // See DeleteWorkGroup for more information on using the DeleteWorkGroup
   818  // API call, and error handling.
   819  //
   820  // This method is useful when you want to inject custom logic or configuration
   821  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   822  //
   823  //
   824  //    // Example sending a request using the DeleteWorkGroupRequest method.
   825  //    req, resp := client.DeleteWorkGroupRequest(params)
   826  //
   827  //    err := req.Send()
   828  //    if err == nil { // resp is now filled
   829  //        fmt.Println(resp)
   830  //    }
   831  //
   832  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeleteWorkGroup
   833  func (c *Athena) DeleteWorkGroupRequest(input *DeleteWorkGroupInput) (req *request.Request, output *DeleteWorkGroupOutput) {
   834  	op := &request.Operation{
   835  		Name:       opDeleteWorkGroup,
   836  		HTTPMethod: "POST",
   837  		HTTPPath:   "/",
   838  	}
   839  
   840  	if input == nil {
   841  		input = &DeleteWorkGroupInput{}
   842  	}
   843  
   844  	output = &DeleteWorkGroupOutput{}
   845  	req = c.newRequest(op, input, output)
   846  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   847  	return
   848  }
   849  
   850  // DeleteWorkGroup API operation for Amazon Athena.
   851  //
   852  // Deletes the workgroup with the specified name. The primary workgroup cannot
   853  // be deleted.
   854  //
   855  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   856  // with awserr.Error's Code and Message methods to get detailed information about
   857  // the error.
   858  //
   859  // See the AWS API reference guide for Amazon Athena's
   860  // API operation DeleteWorkGroup for usage and error information.
   861  //
   862  // Returned Error Types:
   863  //   * InternalServerException
   864  //   Indicates a platform issue, which may be due to a transient condition or
   865  //   outage.
   866  //
   867  //   * InvalidRequestException
   868  //   Indicates that something is wrong with the input to the request. For example,
   869  //   a required parameter may be missing or out of range.
   870  //
   871  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeleteWorkGroup
   872  func (c *Athena) DeleteWorkGroup(input *DeleteWorkGroupInput) (*DeleteWorkGroupOutput, error) {
   873  	req, out := c.DeleteWorkGroupRequest(input)
   874  	return out, req.Send()
   875  }
   876  
   877  // DeleteWorkGroupWithContext is the same as DeleteWorkGroup with the addition of
   878  // the ability to pass a context and additional request options.
   879  //
   880  // See DeleteWorkGroup for details on how to use this API operation.
   881  //
   882  // The context must be non-nil and will be used for request cancellation. If
   883  // the context is nil a panic will occur. In the future the SDK may create
   884  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   885  // for more information on using Contexts.
   886  func (c *Athena) DeleteWorkGroupWithContext(ctx aws.Context, input *DeleteWorkGroupInput, opts ...request.Option) (*DeleteWorkGroupOutput, error) {
   887  	req, out := c.DeleteWorkGroupRequest(input)
   888  	req.SetContext(ctx)
   889  	req.ApplyOptions(opts...)
   890  	return out, req.Send()
   891  }
   892  
   893  const opGetDataCatalog = "GetDataCatalog"
   894  
   895  // GetDataCatalogRequest generates a "aws/request.Request" representing the
   896  // client's request for the GetDataCatalog operation. The "output" return
   897  // value will be populated with the request's response once the request completes
   898  // successfully.
   899  //
   900  // Use "Send" method on the returned Request to send the API call to the service.
   901  // the "output" return value is not valid until after Send returns without error.
   902  //
   903  // See GetDataCatalog for more information on using the GetDataCatalog
   904  // API call, and error handling.
   905  //
   906  // This method is useful when you want to inject custom logic or configuration
   907  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   908  //
   909  //
   910  //    // Example sending a request using the GetDataCatalogRequest method.
   911  //    req, resp := client.GetDataCatalogRequest(params)
   912  //
   913  //    err := req.Send()
   914  //    if err == nil { // resp is now filled
   915  //        fmt.Println(resp)
   916  //    }
   917  //
   918  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetDataCatalog
   919  func (c *Athena) GetDataCatalogRequest(input *GetDataCatalogInput) (req *request.Request, output *GetDataCatalogOutput) {
   920  	op := &request.Operation{
   921  		Name:       opGetDataCatalog,
   922  		HTTPMethod: "POST",
   923  		HTTPPath:   "/",
   924  	}
   925  
   926  	if input == nil {
   927  		input = &GetDataCatalogInput{}
   928  	}
   929  
   930  	output = &GetDataCatalogOutput{}
   931  	req = c.newRequest(op, input, output)
   932  	return
   933  }
   934  
   935  // GetDataCatalog API operation for Amazon Athena.
   936  //
   937  // Returns the specified data catalog.
   938  //
   939  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   940  // with awserr.Error's Code and Message methods to get detailed information about
   941  // the error.
   942  //
   943  // See the AWS API reference guide for Amazon Athena's
   944  // API operation GetDataCatalog for usage and error information.
   945  //
   946  // Returned Error Types:
   947  //   * InternalServerException
   948  //   Indicates a platform issue, which may be due to a transient condition or
   949  //   outage.
   950  //
   951  //   * InvalidRequestException
   952  //   Indicates that something is wrong with the input to the request. For example,
   953  //   a required parameter may be missing or out of range.
   954  //
   955  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetDataCatalog
   956  func (c *Athena) GetDataCatalog(input *GetDataCatalogInput) (*GetDataCatalogOutput, error) {
   957  	req, out := c.GetDataCatalogRequest(input)
   958  	return out, req.Send()
   959  }
   960  
   961  // GetDataCatalogWithContext is the same as GetDataCatalog with the addition of
   962  // the ability to pass a context and additional request options.
   963  //
   964  // See GetDataCatalog for details on how to use this API operation.
   965  //
   966  // The context must be non-nil and will be used for request cancellation. If
   967  // the context is nil a panic will occur. In the future the SDK may create
   968  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   969  // for more information on using Contexts.
   970  func (c *Athena) GetDataCatalogWithContext(ctx aws.Context, input *GetDataCatalogInput, opts ...request.Option) (*GetDataCatalogOutput, error) {
   971  	req, out := c.GetDataCatalogRequest(input)
   972  	req.SetContext(ctx)
   973  	req.ApplyOptions(opts...)
   974  	return out, req.Send()
   975  }
   976  
   977  const opGetDatabase = "GetDatabase"
   978  
   979  // GetDatabaseRequest generates a "aws/request.Request" representing the
   980  // client's request for the GetDatabase operation. The "output" return
   981  // value will be populated with the request's response once the request completes
   982  // successfully.
   983  //
   984  // Use "Send" method on the returned Request to send the API call to the service.
   985  // the "output" return value is not valid until after Send returns without error.
   986  //
   987  // See GetDatabase for more information on using the GetDatabase
   988  // API call, and error handling.
   989  //
   990  // This method is useful when you want to inject custom logic or configuration
   991  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   992  //
   993  //
   994  //    // Example sending a request using the GetDatabaseRequest method.
   995  //    req, resp := client.GetDatabaseRequest(params)
   996  //
   997  //    err := req.Send()
   998  //    if err == nil { // resp is now filled
   999  //        fmt.Println(resp)
  1000  //    }
  1001  //
  1002  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetDatabase
  1003  func (c *Athena) GetDatabaseRequest(input *GetDatabaseInput) (req *request.Request, output *GetDatabaseOutput) {
  1004  	op := &request.Operation{
  1005  		Name:       opGetDatabase,
  1006  		HTTPMethod: "POST",
  1007  		HTTPPath:   "/",
  1008  	}
  1009  
  1010  	if input == nil {
  1011  		input = &GetDatabaseInput{}
  1012  	}
  1013  
  1014  	output = &GetDatabaseOutput{}
  1015  	req = c.newRequest(op, input, output)
  1016  	return
  1017  }
  1018  
  1019  // GetDatabase API operation for Amazon Athena.
  1020  //
  1021  // Returns a database object for the specified database and data catalog.
  1022  //
  1023  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1024  // with awserr.Error's Code and Message methods to get detailed information about
  1025  // the error.
  1026  //
  1027  // See the AWS API reference guide for Amazon Athena's
  1028  // API operation GetDatabase for usage and error information.
  1029  //
  1030  // Returned Error Types:
  1031  //   * InternalServerException
  1032  //   Indicates a platform issue, which may be due to a transient condition or
  1033  //   outage.
  1034  //
  1035  //   * InvalidRequestException
  1036  //   Indicates that something is wrong with the input to the request. For example,
  1037  //   a required parameter may be missing or out of range.
  1038  //
  1039  //   * MetadataException
  1040  //   An exception that Athena received when it called a custom metastore. Occurs
  1041  //   if the error is not caused by user input (InvalidRequestException) or from
  1042  //   the Athena platform (InternalServerException). For example, if a user-created
  1043  //   Lambda function is missing permissions, the Lambda 4XX exception is returned
  1044  //   in a MetadataException.
  1045  //
  1046  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetDatabase
  1047  func (c *Athena) GetDatabase(input *GetDatabaseInput) (*GetDatabaseOutput, error) {
  1048  	req, out := c.GetDatabaseRequest(input)
  1049  	return out, req.Send()
  1050  }
  1051  
  1052  // GetDatabaseWithContext is the same as GetDatabase with the addition of
  1053  // the ability to pass a context and additional request options.
  1054  //
  1055  // See GetDatabase for details on how to use this API operation.
  1056  //
  1057  // The context must be non-nil and will be used for request cancellation. If
  1058  // the context is nil a panic will occur. In the future the SDK may create
  1059  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1060  // for more information on using Contexts.
  1061  func (c *Athena) GetDatabaseWithContext(ctx aws.Context, input *GetDatabaseInput, opts ...request.Option) (*GetDatabaseOutput, error) {
  1062  	req, out := c.GetDatabaseRequest(input)
  1063  	req.SetContext(ctx)
  1064  	req.ApplyOptions(opts...)
  1065  	return out, req.Send()
  1066  }
  1067  
  1068  const opGetNamedQuery = "GetNamedQuery"
  1069  
  1070  // GetNamedQueryRequest generates a "aws/request.Request" representing the
  1071  // client's request for the GetNamedQuery operation. The "output" return
  1072  // value will be populated with the request's response once the request completes
  1073  // successfully.
  1074  //
  1075  // Use "Send" method on the returned Request to send the API call to the service.
  1076  // the "output" return value is not valid until after Send returns without error.
  1077  //
  1078  // See GetNamedQuery for more information on using the GetNamedQuery
  1079  // API call, and error handling.
  1080  //
  1081  // This method is useful when you want to inject custom logic or configuration
  1082  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1083  //
  1084  //
  1085  //    // Example sending a request using the GetNamedQueryRequest method.
  1086  //    req, resp := client.GetNamedQueryRequest(params)
  1087  //
  1088  //    err := req.Send()
  1089  //    if err == nil { // resp is now filled
  1090  //        fmt.Println(resp)
  1091  //    }
  1092  //
  1093  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetNamedQuery
  1094  func (c *Athena) GetNamedQueryRequest(input *GetNamedQueryInput) (req *request.Request, output *GetNamedQueryOutput) {
  1095  	op := &request.Operation{
  1096  		Name:       opGetNamedQuery,
  1097  		HTTPMethod: "POST",
  1098  		HTTPPath:   "/",
  1099  	}
  1100  
  1101  	if input == nil {
  1102  		input = &GetNamedQueryInput{}
  1103  	}
  1104  
  1105  	output = &GetNamedQueryOutput{}
  1106  	req = c.newRequest(op, input, output)
  1107  	return
  1108  }
  1109  
  1110  // GetNamedQuery API operation for Amazon Athena.
  1111  //
  1112  // Returns information about a single query. Requires that you have access to
  1113  // the workgroup in which the query was saved.
  1114  //
  1115  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1116  // with awserr.Error's Code and Message methods to get detailed information about
  1117  // the error.
  1118  //
  1119  // See the AWS API reference guide for Amazon Athena's
  1120  // API operation GetNamedQuery for usage and error information.
  1121  //
  1122  // Returned Error Types:
  1123  //   * InternalServerException
  1124  //   Indicates a platform issue, which may be due to a transient condition or
  1125  //   outage.
  1126  //
  1127  //   * InvalidRequestException
  1128  //   Indicates that something is wrong with the input to the request. For example,
  1129  //   a required parameter may be missing or out of range.
  1130  //
  1131  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetNamedQuery
  1132  func (c *Athena) GetNamedQuery(input *GetNamedQueryInput) (*GetNamedQueryOutput, error) {
  1133  	req, out := c.GetNamedQueryRequest(input)
  1134  	return out, req.Send()
  1135  }
  1136  
  1137  // GetNamedQueryWithContext is the same as GetNamedQuery with the addition of
  1138  // the ability to pass a context and additional request options.
  1139  //
  1140  // See GetNamedQuery for details on how to use this API operation.
  1141  //
  1142  // The context must be non-nil and will be used for request cancellation. If
  1143  // the context is nil a panic will occur. In the future the SDK may create
  1144  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1145  // for more information on using Contexts.
  1146  func (c *Athena) GetNamedQueryWithContext(ctx aws.Context, input *GetNamedQueryInput, opts ...request.Option) (*GetNamedQueryOutput, error) {
  1147  	req, out := c.GetNamedQueryRequest(input)
  1148  	req.SetContext(ctx)
  1149  	req.ApplyOptions(opts...)
  1150  	return out, req.Send()
  1151  }
  1152  
  1153  const opGetPreparedStatement = "GetPreparedStatement"
  1154  
  1155  // GetPreparedStatementRequest generates a "aws/request.Request" representing the
  1156  // client's request for the GetPreparedStatement operation. The "output" return
  1157  // value will be populated with the request's response once the request completes
  1158  // successfully.
  1159  //
  1160  // Use "Send" method on the returned Request to send the API call to the service.
  1161  // the "output" return value is not valid until after Send returns without error.
  1162  //
  1163  // See GetPreparedStatement for more information on using the GetPreparedStatement
  1164  // API call, and error handling.
  1165  //
  1166  // This method is useful when you want to inject custom logic or configuration
  1167  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1168  //
  1169  //
  1170  //    // Example sending a request using the GetPreparedStatementRequest method.
  1171  //    req, resp := client.GetPreparedStatementRequest(params)
  1172  //
  1173  //    err := req.Send()
  1174  //    if err == nil { // resp is now filled
  1175  //        fmt.Println(resp)
  1176  //    }
  1177  //
  1178  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetPreparedStatement
  1179  func (c *Athena) GetPreparedStatementRequest(input *GetPreparedStatementInput) (req *request.Request, output *GetPreparedStatementOutput) {
  1180  	op := &request.Operation{
  1181  		Name:       opGetPreparedStatement,
  1182  		HTTPMethod: "POST",
  1183  		HTTPPath:   "/",
  1184  	}
  1185  
  1186  	if input == nil {
  1187  		input = &GetPreparedStatementInput{}
  1188  	}
  1189  
  1190  	output = &GetPreparedStatementOutput{}
  1191  	req = c.newRequest(op, input, output)
  1192  	return
  1193  }
  1194  
  1195  // GetPreparedStatement API operation for Amazon Athena.
  1196  //
  1197  // Retrieves the prepared statement with the specified name from the specified
  1198  // workgroup.
  1199  //
  1200  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1201  // with awserr.Error's Code and Message methods to get detailed information about
  1202  // the error.
  1203  //
  1204  // See the AWS API reference guide for Amazon Athena's
  1205  // API operation GetPreparedStatement for usage and error information.
  1206  //
  1207  // Returned Error Types:
  1208  //   * InternalServerException
  1209  //   Indicates a platform issue, which may be due to a transient condition or
  1210  //   outage.
  1211  //
  1212  //   * InvalidRequestException
  1213  //   Indicates that something is wrong with the input to the request. For example,
  1214  //   a required parameter may be missing or out of range.
  1215  //
  1216  //   * ResourceNotFoundException
  1217  //   A resource, such as a workgroup, was not found.
  1218  //
  1219  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetPreparedStatement
  1220  func (c *Athena) GetPreparedStatement(input *GetPreparedStatementInput) (*GetPreparedStatementOutput, error) {
  1221  	req, out := c.GetPreparedStatementRequest(input)
  1222  	return out, req.Send()
  1223  }
  1224  
  1225  // GetPreparedStatementWithContext is the same as GetPreparedStatement with the addition of
  1226  // the ability to pass a context and additional request options.
  1227  //
  1228  // See GetPreparedStatement for details on how to use this API operation.
  1229  //
  1230  // The context must be non-nil and will be used for request cancellation. If
  1231  // the context is nil a panic will occur. In the future the SDK may create
  1232  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1233  // for more information on using Contexts.
  1234  func (c *Athena) GetPreparedStatementWithContext(ctx aws.Context, input *GetPreparedStatementInput, opts ...request.Option) (*GetPreparedStatementOutput, error) {
  1235  	req, out := c.GetPreparedStatementRequest(input)
  1236  	req.SetContext(ctx)
  1237  	req.ApplyOptions(opts...)
  1238  	return out, req.Send()
  1239  }
  1240  
  1241  const opGetQueryExecution = "GetQueryExecution"
  1242  
  1243  // GetQueryExecutionRequest generates a "aws/request.Request" representing the
  1244  // client's request for the GetQueryExecution operation. The "output" return
  1245  // value will be populated with the request's response once the request completes
  1246  // successfully.
  1247  //
  1248  // Use "Send" method on the returned Request to send the API call to the service.
  1249  // the "output" return value is not valid until after Send returns without error.
  1250  //
  1251  // See GetQueryExecution for more information on using the GetQueryExecution
  1252  // API call, and error handling.
  1253  //
  1254  // This method is useful when you want to inject custom logic or configuration
  1255  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1256  //
  1257  //
  1258  //    // Example sending a request using the GetQueryExecutionRequest method.
  1259  //    req, resp := client.GetQueryExecutionRequest(params)
  1260  //
  1261  //    err := req.Send()
  1262  //    if err == nil { // resp is now filled
  1263  //        fmt.Println(resp)
  1264  //    }
  1265  //
  1266  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetQueryExecution
  1267  func (c *Athena) GetQueryExecutionRequest(input *GetQueryExecutionInput) (req *request.Request, output *GetQueryExecutionOutput) {
  1268  	op := &request.Operation{
  1269  		Name:       opGetQueryExecution,
  1270  		HTTPMethod: "POST",
  1271  		HTTPPath:   "/",
  1272  	}
  1273  
  1274  	if input == nil {
  1275  		input = &GetQueryExecutionInput{}
  1276  	}
  1277  
  1278  	output = &GetQueryExecutionOutput{}
  1279  	req = c.newRequest(op, input, output)
  1280  	return
  1281  }
  1282  
  1283  // GetQueryExecution API operation for Amazon Athena.
  1284  //
  1285  // Returns information about a single execution of a query if you have access
  1286  // to the workgroup in which the query ran. Each time a query executes, information
  1287  // about the query execution is saved with a unique ID.
  1288  //
  1289  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1290  // with awserr.Error's Code and Message methods to get detailed information about
  1291  // the error.
  1292  //
  1293  // See the AWS API reference guide for Amazon Athena's
  1294  // API operation GetQueryExecution for usage and error information.
  1295  //
  1296  // Returned Error Types:
  1297  //   * InternalServerException
  1298  //   Indicates a platform issue, which may be due to a transient condition or
  1299  //   outage.
  1300  //
  1301  //   * InvalidRequestException
  1302  //   Indicates that something is wrong with the input to the request. For example,
  1303  //   a required parameter may be missing or out of range.
  1304  //
  1305  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetQueryExecution
  1306  func (c *Athena) GetQueryExecution(input *GetQueryExecutionInput) (*GetQueryExecutionOutput, error) {
  1307  	req, out := c.GetQueryExecutionRequest(input)
  1308  	return out, req.Send()
  1309  }
  1310  
  1311  // GetQueryExecutionWithContext is the same as GetQueryExecution with the addition of
  1312  // the ability to pass a context and additional request options.
  1313  //
  1314  // See GetQueryExecution for details on how to use this API operation.
  1315  //
  1316  // The context must be non-nil and will be used for request cancellation. If
  1317  // the context is nil a panic will occur. In the future the SDK may create
  1318  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1319  // for more information on using Contexts.
  1320  func (c *Athena) GetQueryExecutionWithContext(ctx aws.Context, input *GetQueryExecutionInput, opts ...request.Option) (*GetQueryExecutionOutput, error) {
  1321  	req, out := c.GetQueryExecutionRequest(input)
  1322  	req.SetContext(ctx)
  1323  	req.ApplyOptions(opts...)
  1324  	return out, req.Send()
  1325  }
  1326  
  1327  const opGetQueryResults = "GetQueryResults"
  1328  
  1329  // GetQueryResultsRequest generates a "aws/request.Request" representing the
  1330  // client's request for the GetQueryResults operation. The "output" return
  1331  // value will be populated with the request's response once the request completes
  1332  // successfully.
  1333  //
  1334  // Use "Send" method on the returned Request to send the API call to the service.
  1335  // the "output" return value is not valid until after Send returns without error.
  1336  //
  1337  // See GetQueryResults for more information on using the GetQueryResults
  1338  // API call, and error handling.
  1339  //
  1340  // This method is useful when you want to inject custom logic or configuration
  1341  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1342  //
  1343  //
  1344  //    // Example sending a request using the GetQueryResultsRequest method.
  1345  //    req, resp := client.GetQueryResultsRequest(params)
  1346  //
  1347  //    err := req.Send()
  1348  //    if err == nil { // resp is now filled
  1349  //        fmt.Println(resp)
  1350  //    }
  1351  //
  1352  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetQueryResults
  1353  func (c *Athena) GetQueryResultsRequest(input *GetQueryResultsInput) (req *request.Request, output *GetQueryResultsOutput) {
  1354  	op := &request.Operation{
  1355  		Name:       opGetQueryResults,
  1356  		HTTPMethod: "POST",
  1357  		HTTPPath:   "/",
  1358  		Paginator: &request.Paginator{
  1359  			InputTokens:     []string{"NextToken"},
  1360  			OutputTokens:    []string{"NextToken"},
  1361  			LimitToken:      "MaxResults",
  1362  			TruncationToken: "",
  1363  		},
  1364  	}
  1365  
  1366  	if input == nil {
  1367  		input = &GetQueryResultsInput{}
  1368  	}
  1369  
  1370  	output = &GetQueryResultsOutput{}
  1371  	req = c.newRequest(op, input, output)
  1372  	return
  1373  }
  1374  
  1375  // GetQueryResults API operation for Amazon Athena.
  1376  //
  1377  // Streams the results of a single query execution specified by QueryExecutionId
  1378  // from the Athena query results location in Amazon S3. For more information,
  1379  // see Query Results (https://docs.aws.amazon.com/athena/latest/ug/querying.html)
  1380  // in the Amazon Athena User Guide. This request does not execute the query
  1381  // but returns results. Use StartQueryExecution to run a query.
  1382  //
  1383  // To stream query results successfully, the IAM principal with permission to
  1384  // call GetQueryResults also must have permissions to the Amazon S3 GetObject
  1385  // action for the Athena query results location.
  1386  //
  1387  // IAM principals with permission to the Amazon S3 GetObject action for the
  1388  // query results location are able to retrieve query results from Amazon S3
  1389  // even if permission to the GetQueryResults action is denied. To restrict user
  1390  // or role access, ensure that Amazon S3 permissions to the Athena query location
  1391  // are denied.
  1392  //
  1393  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1394  // with awserr.Error's Code and Message methods to get detailed information about
  1395  // the error.
  1396  //
  1397  // See the AWS API reference guide for Amazon Athena's
  1398  // API operation GetQueryResults for usage and error information.
  1399  //
  1400  // Returned Error Types:
  1401  //   * InternalServerException
  1402  //   Indicates a platform issue, which may be due to a transient condition or
  1403  //   outage.
  1404  //
  1405  //   * InvalidRequestException
  1406  //   Indicates that something is wrong with the input to the request. For example,
  1407  //   a required parameter may be missing or out of range.
  1408  //
  1409  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetQueryResults
  1410  func (c *Athena) GetQueryResults(input *GetQueryResultsInput) (*GetQueryResultsOutput, error) {
  1411  	req, out := c.GetQueryResultsRequest(input)
  1412  	return out, req.Send()
  1413  }
  1414  
  1415  // GetQueryResultsWithContext is the same as GetQueryResults with the addition of
  1416  // the ability to pass a context and additional request options.
  1417  //
  1418  // See GetQueryResults for details on how to use this API operation.
  1419  //
  1420  // The context must be non-nil and will be used for request cancellation. If
  1421  // the context is nil a panic will occur. In the future the SDK may create
  1422  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1423  // for more information on using Contexts.
  1424  func (c *Athena) GetQueryResultsWithContext(ctx aws.Context, input *GetQueryResultsInput, opts ...request.Option) (*GetQueryResultsOutput, error) {
  1425  	req, out := c.GetQueryResultsRequest(input)
  1426  	req.SetContext(ctx)
  1427  	req.ApplyOptions(opts...)
  1428  	return out, req.Send()
  1429  }
  1430  
  1431  // GetQueryResultsPages iterates over the pages of a GetQueryResults operation,
  1432  // calling the "fn" function with the response data for each page. To stop
  1433  // iterating, return false from the fn function.
  1434  //
  1435  // See GetQueryResults method for more information on how to use this operation.
  1436  //
  1437  // Note: This operation can generate multiple requests to a service.
  1438  //
  1439  //    // Example iterating over at most 3 pages of a GetQueryResults operation.
  1440  //    pageNum := 0
  1441  //    err := client.GetQueryResultsPages(params,
  1442  //        func(page *athena.GetQueryResultsOutput, lastPage bool) bool {
  1443  //            pageNum++
  1444  //            fmt.Println(page)
  1445  //            return pageNum <= 3
  1446  //        })
  1447  //
  1448  func (c *Athena) GetQueryResultsPages(input *GetQueryResultsInput, fn func(*GetQueryResultsOutput, bool) bool) error {
  1449  	return c.GetQueryResultsPagesWithContext(aws.BackgroundContext(), input, fn)
  1450  }
  1451  
  1452  // GetQueryResultsPagesWithContext same as GetQueryResultsPages except
  1453  // it takes a Context and allows setting request options on the pages.
  1454  //
  1455  // The context must be non-nil and will be used for request cancellation. If
  1456  // the context is nil a panic will occur. In the future the SDK may create
  1457  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1458  // for more information on using Contexts.
  1459  func (c *Athena) GetQueryResultsPagesWithContext(ctx aws.Context, input *GetQueryResultsInput, fn func(*GetQueryResultsOutput, bool) bool, opts ...request.Option) error {
  1460  	p := request.Pagination{
  1461  		NewRequest: func() (*request.Request, error) {
  1462  			var inCpy *GetQueryResultsInput
  1463  			if input != nil {
  1464  				tmp := *input
  1465  				inCpy = &tmp
  1466  			}
  1467  			req, _ := c.GetQueryResultsRequest(inCpy)
  1468  			req.SetContext(ctx)
  1469  			req.ApplyOptions(opts...)
  1470  			return req, nil
  1471  		},
  1472  	}
  1473  
  1474  	for p.Next() {
  1475  		if !fn(p.Page().(*GetQueryResultsOutput), !p.HasNextPage()) {
  1476  			break
  1477  		}
  1478  	}
  1479  
  1480  	return p.Err()
  1481  }
  1482  
  1483  const opGetTableMetadata = "GetTableMetadata"
  1484  
  1485  // GetTableMetadataRequest generates a "aws/request.Request" representing the
  1486  // client's request for the GetTableMetadata operation. The "output" return
  1487  // value will be populated with the request's response once the request completes
  1488  // successfully.
  1489  //
  1490  // Use "Send" method on the returned Request to send the API call to the service.
  1491  // the "output" return value is not valid until after Send returns without error.
  1492  //
  1493  // See GetTableMetadata for more information on using the GetTableMetadata
  1494  // API call, and error handling.
  1495  //
  1496  // This method is useful when you want to inject custom logic or configuration
  1497  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1498  //
  1499  //
  1500  //    // Example sending a request using the GetTableMetadataRequest method.
  1501  //    req, resp := client.GetTableMetadataRequest(params)
  1502  //
  1503  //    err := req.Send()
  1504  //    if err == nil { // resp is now filled
  1505  //        fmt.Println(resp)
  1506  //    }
  1507  //
  1508  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetTableMetadata
  1509  func (c *Athena) GetTableMetadataRequest(input *GetTableMetadataInput) (req *request.Request, output *GetTableMetadataOutput) {
  1510  	op := &request.Operation{
  1511  		Name:       opGetTableMetadata,
  1512  		HTTPMethod: "POST",
  1513  		HTTPPath:   "/",
  1514  	}
  1515  
  1516  	if input == nil {
  1517  		input = &GetTableMetadataInput{}
  1518  	}
  1519  
  1520  	output = &GetTableMetadataOutput{}
  1521  	req = c.newRequest(op, input, output)
  1522  	return
  1523  }
  1524  
  1525  // GetTableMetadata API operation for Amazon Athena.
  1526  //
  1527  // Returns table metadata for the specified catalog, database, and table.
  1528  //
  1529  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1530  // with awserr.Error's Code and Message methods to get detailed information about
  1531  // the error.
  1532  //
  1533  // See the AWS API reference guide for Amazon Athena's
  1534  // API operation GetTableMetadata for usage and error information.
  1535  //
  1536  // Returned Error Types:
  1537  //   * InternalServerException
  1538  //   Indicates a platform issue, which may be due to a transient condition or
  1539  //   outage.
  1540  //
  1541  //   * InvalidRequestException
  1542  //   Indicates that something is wrong with the input to the request. For example,
  1543  //   a required parameter may be missing or out of range.
  1544  //
  1545  //   * MetadataException
  1546  //   An exception that Athena received when it called a custom metastore. Occurs
  1547  //   if the error is not caused by user input (InvalidRequestException) or from
  1548  //   the Athena platform (InternalServerException). For example, if a user-created
  1549  //   Lambda function is missing permissions, the Lambda 4XX exception is returned
  1550  //   in a MetadataException.
  1551  //
  1552  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetTableMetadata
  1553  func (c *Athena) GetTableMetadata(input *GetTableMetadataInput) (*GetTableMetadataOutput, error) {
  1554  	req, out := c.GetTableMetadataRequest(input)
  1555  	return out, req.Send()
  1556  }
  1557  
  1558  // GetTableMetadataWithContext is the same as GetTableMetadata with the addition of
  1559  // the ability to pass a context and additional request options.
  1560  //
  1561  // See GetTableMetadata for details on how to use this API operation.
  1562  //
  1563  // The context must be non-nil and will be used for request cancellation. If
  1564  // the context is nil a panic will occur. In the future the SDK may create
  1565  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1566  // for more information on using Contexts.
  1567  func (c *Athena) GetTableMetadataWithContext(ctx aws.Context, input *GetTableMetadataInput, opts ...request.Option) (*GetTableMetadataOutput, error) {
  1568  	req, out := c.GetTableMetadataRequest(input)
  1569  	req.SetContext(ctx)
  1570  	req.ApplyOptions(opts...)
  1571  	return out, req.Send()
  1572  }
  1573  
  1574  const opGetWorkGroup = "GetWorkGroup"
  1575  
  1576  // GetWorkGroupRequest generates a "aws/request.Request" representing the
  1577  // client's request for the GetWorkGroup operation. The "output" return
  1578  // value will be populated with the request's response once the request completes
  1579  // successfully.
  1580  //
  1581  // Use "Send" method on the returned Request to send the API call to the service.
  1582  // the "output" return value is not valid until after Send returns without error.
  1583  //
  1584  // See GetWorkGroup for more information on using the GetWorkGroup
  1585  // API call, and error handling.
  1586  //
  1587  // This method is useful when you want to inject custom logic or configuration
  1588  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1589  //
  1590  //
  1591  //    // Example sending a request using the GetWorkGroupRequest method.
  1592  //    req, resp := client.GetWorkGroupRequest(params)
  1593  //
  1594  //    err := req.Send()
  1595  //    if err == nil { // resp is now filled
  1596  //        fmt.Println(resp)
  1597  //    }
  1598  //
  1599  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetWorkGroup
  1600  func (c *Athena) GetWorkGroupRequest(input *GetWorkGroupInput) (req *request.Request, output *GetWorkGroupOutput) {
  1601  	op := &request.Operation{
  1602  		Name:       opGetWorkGroup,
  1603  		HTTPMethod: "POST",
  1604  		HTTPPath:   "/",
  1605  	}
  1606  
  1607  	if input == nil {
  1608  		input = &GetWorkGroupInput{}
  1609  	}
  1610  
  1611  	output = &GetWorkGroupOutput{}
  1612  	req = c.newRequest(op, input, output)
  1613  	return
  1614  }
  1615  
  1616  // GetWorkGroup API operation for Amazon Athena.
  1617  //
  1618  // Returns information about the workgroup with the specified name.
  1619  //
  1620  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1621  // with awserr.Error's Code and Message methods to get detailed information about
  1622  // the error.
  1623  //
  1624  // See the AWS API reference guide for Amazon Athena's
  1625  // API operation GetWorkGroup for usage and error information.
  1626  //
  1627  // Returned Error Types:
  1628  //   * InternalServerException
  1629  //   Indicates a platform issue, which may be due to a transient condition or
  1630  //   outage.
  1631  //
  1632  //   * InvalidRequestException
  1633  //   Indicates that something is wrong with the input to the request. For example,
  1634  //   a required parameter may be missing or out of range.
  1635  //
  1636  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetWorkGroup
  1637  func (c *Athena) GetWorkGroup(input *GetWorkGroupInput) (*GetWorkGroupOutput, error) {
  1638  	req, out := c.GetWorkGroupRequest(input)
  1639  	return out, req.Send()
  1640  }
  1641  
  1642  // GetWorkGroupWithContext is the same as GetWorkGroup with the addition of
  1643  // the ability to pass a context and additional request options.
  1644  //
  1645  // See GetWorkGroup for details on how to use this API operation.
  1646  //
  1647  // The context must be non-nil and will be used for request cancellation. If
  1648  // the context is nil a panic will occur. In the future the SDK may create
  1649  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1650  // for more information on using Contexts.
  1651  func (c *Athena) GetWorkGroupWithContext(ctx aws.Context, input *GetWorkGroupInput, opts ...request.Option) (*GetWorkGroupOutput, error) {
  1652  	req, out := c.GetWorkGroupRequest(input)
  1653  	req.SetContext(ctx)
  1654  	req.ApplyOptions(opts...)
  1655  	return out, req.Send()
  1656  }
  1657  
  1658  const opListDataCatalogs = "ListDataCatalogs"
  1659  
  1660  // ListDataCatalogsRequest generates a "aws/request.Request" representing the
  1661  // client's request for the ListDataCatalogs operation. The "output" return
  1662  // value will be populated with the request's response once the request completes
  1663  // successfully.
  1664  //
  1665  // Use "Send" method on the returned Request to send the API call to the service.
  1666  // the "output" return value is not valid until after Send returns without error.
  1667  //
  1668  // See ListDataCatalogs for more information on using the ListDataCatalogs
  1669  // API call, and error handling.
  1670  //
  1671  // This method is useful when you want to inject custom logic or configuration
  1672  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1673  //
  1674  //
  1675  //    // Example sending a request using the ListDataCatalogsRequest method.
  1676  //    req, resp := client.ListDataCatalogsRequest(params)
  1677  //
  1678  //    err := req.Send()
  1679  //    if err == nil { // resp is now filled
  1680  //        fmt.Println(resp)
  1681  //    }
  1682  //
  1683  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListDataCatalogs
  1684  func (c *Athena) ListDataCatalogsRequest(input *ListDataCatalogsInput) (req *request.Request, output *ListDataCatalogsOutput) {
  1685  	op := &request.Operation{
  1686  		Name:       opListDataCatalogs,
  1687  		HTTPMethod: "POST",
  1688  		HTTPPath:   "/",
  1689  		Paginator: &request.Paginator{
  1690  			InputTokens:     []string{"NextToken"},
  1691  			OutputTokens:    []string{"NextToken"},
  1692  			LimitToken:      "MaxResults",
  1693  			TruncationToken: "",
  1694  		},
  1695  	}
  1696  
  1697  	if input == nil {
  1698  		input = &ListDataCatalogsInput{}
  1699  	}
  1700  
  1701  	output = &ListDataCatalogsOutput{}
  1702  	req = c.newRequest(op, input, output)
  1703  	return
  1704  }
  1705  
  1706  // ListDataCatalogs API operation for Amazon Athena.
  1707  //
  1708  // Lists the data catalogs in the current Amazon Web Services account.
  1709  //
  1710  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1711  // with awserr.Error's Code and Message methods to get detailed information about
  1712  // the error.
  1713  //
  1714  // See the AWS API reference guide for Amazon Athena's
  1715  // API operation ListDataCatalogs for usage and error information.
  1716  //
  1717  // Returned Error Types:
  1718  //   * InternalServerException
  1719  //   Indicates a platform issue, which may be due to a transient condition or
  1720  //   outage.
  1721  //
  1722  //   * InvalidRequestException
  1723  //   Indicates that something is wrong with the input to the request. For example,
  1724  //   a required parameter may be missing or out of range.
  1725  //
  1726  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListDataCatalogs
  1727  func (c *Athena) ListDataCatalogs(input *ListDataCatalogsInput) (*ListDataCatalogsOutput, error) {
  1728  	req, out := c.ListDataCatalogsRequest(input)
  1729  	return out, req.Send()
  1730  }
  1731  
  1732  // ListDataCatalogsWithContext is the same as ListDataCatalogs with the addition of
  1733  // the ability to pass a context and additional request options.
  1734  //
  1735  // See ListDataCatalogs for details on how to use this API operation.
  1736  //
  1737  // The context must be non-nil and will be used for request cancellation. If
  1738  // the context is nil a panic will occur. In the future the SDK may create
  1739  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1740  // for more information on using Contexts.
  1741  func (c *Athena) ListDataCatalogsWithContext(ctx aws.Context, input *ListDataCatalogsInput, opts ...request.Option) (*ListDataCatalogsOutput, error) {
  1742  	req, out := c.ListDataCatalogsRequest(input)
  1743  	req.SetContext(ctx)
  1744  	req.ApplyOptions(opts...)
  1745  	return out, req.Send()
  1746  }
  1747  
  1748  // ListDataCatalogsPages iterates over the pages of a ListDataCatalogs operation,
  1749  // calling the "fn" function with the response data for each page. To stop
  1750  // iterating, return false from the fn function.
  1751  //
  1752  // See ListDataCatalogs method for more information on how to use this operation.
  1753  //
  1754  // Note: This operation can generate multiple requests to a service.
  1755  //
  1756  //    // Example iterating over at most 3 pages of a ListDataCatalogs operation.
  1757  //    pageNum := 0
  1758  //    err := client.ListDataCatalogsPages(params,
  1759  //        func(page *athena.ListDataCatalogsOutput, lastPage bool) bool {
  1760  //            pageNum++
  1761  //            fmt.Println(page)
  1762  //            return pageNum <= 3
  1763  //        })
  1764  //
  1765  func (c *Athena) ListDataCatalogsPages(input *ListDataCatalogsInput, fn func(*ListDataCatalogsOutput, bool) bool) error {
  1766  	return c.ListDataCatalogsPagesWithContext(aws.BackgroundContext(), input, fn)
  1767  }
  1768  
  1769  // ListDataCatalogsPagesWithContext same as ListDataCatalogsPages except
  1770  // it takes a Context and allows setting request options on the pages.
  1771  //
  1772  // The context must be non-nil and will be used for request cancellation. If
  1773  // the context is nil a panic will occur. In the future the SDK may create
  1774  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1775  // for more information on using Contexts.
  1776  func (c *Athena) ListDataCatalogsPagesWithContext(ctx aws.Context, input *ListDataCatalogsInput, fn func(*ListDataCatalogsOutput, bool) bool, opts ...request.Option) error {
  1777  	p := request.Pagination{
  1778  		NewRequest: func() (*request.Request, error) {
  1779  			var inCpy *ListDataCatalogsInput
  1780  			if input != nil {
  1781  				tmp := *input
  1782  				inCpy = &tmp
  1783  			}
  1784  			req, _ := c.ListDataCatalogsRequest(inCpy)
  1785  			req.SetContext(ctx)
  1786  			req.ApplyOptions(opts...)
  1787  			return req, nil
  1788  		},
  1789  	}
  1790  
  1791  	for p.Next() {
  1792  		if !fn(p.Page().(*ListDataCatalogsOutput), !p.HasNextPage()) {
  1793  			break
  1794  		}
  1795  	}
  1796  
  1797  	return p.Err()
  1798  }
  1799  
  1800  const opListDatabases = "ListDatabases"
  1801  
  1802  // ListDatabasesRequest generates a "aws/request.Request" representing the
  1803  // client's request for the ListDatabases operation. The "output" return
  1804  // value will be populated with the request's response once the request completes
  1805  // successfully.
  1806  //
  1807  // Use "Send" method on the returned Request to send the API call to the service.
  1808  // the "output" return value is not valid until after Send returns without error.
  1809  //
  1810  // See ListDatabases for more information on using the ListDatabases
  1811  // API call, and error handling.
  1812  //
  1813  // This method is useful when you want to inject custom logic or configuration
  1814  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1815  //
  1816  //
  1817  //    // Example sending a request using the ListDatabasesRequest method.
  1818  //    req, resp := client.ListDatabasesRequest(params)
  1819  //
  1820  //    err := req.Send()
  1821  //    if err == nil { // resp is now filled
  1822  //        fmt.Println(resp)
  1823  //    }
  1824  //
  1825  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListDatabases
  1826  func (c *Athena) ListDatabasesRequest(input *ListDatabasesInput) (req *request.Request, output *ListDatabasesOutput) {
  1827  	op := &request.Operation{
  1828  		Name:       opListDatabases,
  1829  		HTTPMethod: "POST",
  1830  		HTTPPath:   "/",
  1831  		Paginator: &request.Paginator{
  1832  			InputTokens:     []string{"NextToken"},
  1833  			OutputTokens:    []string{"NextToken"},
  1834  			LimitToken:      "MaxResults",
  1835  			TruncationToken: "",
  1836  		},
  1837  	}
  1838  
  1839  	if input == nil {
  1840  		input = &ListDatabasesInput{}
  1841  	}
  1842  
  1843  	output = &ListDatabasesOutput{}
  1844  	req = c.newRequest(op, input, output)
  1845  	return
  1846  }
  1847  
  1848  // ListDatabases API operation for Amazon Athena.
  1849  //
  1850  // Lists the databases in the specified data catalog.
  1851  //
  1852  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1853  // with awserr.Error's Code and Message methods to get detailed information about
  1854  // the error.
  1855  //
  1856  // See the AWS API reference guide for Amazon Athena's
  1857  // API operation ListDatabases for usage and error information.
  1858  //
  1859  // Returned Error Types:
  1860  //   * InternalServerException
  1861  //   Indicates a platform issue, which may be due to a transient condition or
  1862  //   outage.
  1863  //
  1864  //   * InvalidRequestException
  1865  //   Indicates that something is wrong with the input to the request. For example,
  1866  //   a required parameter may be missing or out of range.
  1867  //
  1868  //   * MetadataException
  1869  //   An exception that Athena received when it called a custom metastore. Occurs
  1870  //   if the error is not caused by user input (InvalidRequestException) or from
  1871  //   the Athena platform (InternalServerException). For example, if a user-created
  1872  //   Lambda function is missing permissions, the Lambda 4XX exception is returned
  1873  //   in a MetadataException.
  1874  //
  1875  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListDatabases
  1876  func (c *Athena) ListDatabases(input *ListDatabasesInput) (*ListDatabasesOutput, error) {
  1877  	req, out := c.ListDatabasesRequest(input)
  1878  	return out, req.Send()
  1879  }
  1880  
  1881  // ListDatabasesWithContext is the same as ListDatabases with the addition of
  1882  // the ability to pass a context and additional request options.
  1883  //
  1884  // See ListDatabases for details on how to use this API operation.
  1885  //
  1886  // The context must be non-nil and will be used for request cancellation. If
  1887  // the context is nil a panic will occur. In the future the SDK may create
  1888  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1889  // for more information on using Contexts.
  1890  func (c *Athena) ListDatabasesWithContext(ctx aws.Context, input *ListDatabasesInput, opts ...request.Option) (*ListDatabasesOutput, error) {
  1891  	req, out := c.ListDatabasesRequest(input)
  1892  	req.SetContext(ctx)
  1893  	req.ApplyOptions(opts...)
  1894  	return out, req.Send()
  1895  }
  1896  
  1897  // ListDatabasesPages iterates over the pages of a ListDatabases operation,
  1898  // calling the "fn" function with the response data for each page. To stop
  1899  // iterating, return false from the fn function.
  1900  //
  1901  // See ListDatabases method for more information on how to use this operation.
  1902  //
  1903  // Note: This operation can generate multiple requests to a service.
  1904  //
  1905  //    // Example iterating over at most 3 pages of a ListDatabases operation.
  1906  //    pageNum := 0
  1907  //    err := client.ListDatabasesPages(params,
  1908  //        func(page *athena.ListDatabasesOutput, lastPage bool) bool {
  1909  //            pageNum++
  1910  //            fmt.Println(page)
  1911  //            return pageNum <= 3
  1912  //        })
  1913  //
  1914  func (c *Athena) ListDatabasesPages(input *ListDatabasesInput, fn func(*ListDatabasesOutput, bool) bool) error {
  1915  	return c.ListDatabasesPagesWithContext(aws.BackgroundContext(), input, fn)
  1916  }
  1917  
  1918  // ListDatabasesPagesWithContext same as ListDatabasesPages except
  1919  // it takes a Context and allows setting request options on the pages.
  1920  //
  1921  // The context must be non-nil and will be used for request cancellation. If
  1922  // the context is nil a panic will occur. In the future the SDK may create
  1923  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1924  // for more information on using Contexts.
  1925  func (c *Athena) ListDatabasesPagesWithContext(ctx aws.Context, input *ListDatabasesInput, fn func(*ListDatabasesOutput, bool) bool, opts ...request.Option) error {
  1926  	p := request.Pagination{
  1927  		NewRequest: func() (*request.Request, error) {
  1928  			var inCpy *ListDatabasesInput
  1929  			if input != nil {
  1930  				tmp := *input
  1931  				inCpy = &tmp
  1932  			}
  1933  			req, _ := c.ListDatabasesRequest(inCpy)
  1934  			req.SetContext(ctx)
  1935  			req.ApplyOptions(opts...)
  1936  			return req, nil
  1937  		},
  1938  	}
  1939  
  1940  	for p.Next() {
  1941  		if !fn(p.Page().(*ListDatabasesOutput), !p.HasNextPage()) {
  1942  			break
  1943  		}
  1944  	}
  1945  
  1946  	return p.Err()
  1947  }
  1948  
  1949  const opListEngineVersions = "ListEngineVersions"
  1950  
  1951  // ListEngineVersionsRequest generates a "aws/request.Request" representing the
  1952  // client's request for the ListEngineVersions operation. The "output" return
  1953  // value will be populated with the request's response once the request completes
  1954  // successfully.
  1955  //
  1956  // Use "Send" method on the returned Request to send the API call to the service.
  1957  // the "output" return value is not valid until after Send returns without error.
  1958  //
  1959  // See ListEngineVersions for more information on using the ListEngineVersions
  1960  // API call, and error handling.
  1961  //
  1962  // This method is useful when you want to inject custom logic or configuration
  1963  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1964  //
  1965  //
  1966  //    // Example sending a request using the ListEngineVersionsRequest method.
  1967  //    req, resp := client.ListEngineVersionsRequest(params)
  1968  //
  1969  //    err := req.Send()
  1970  //    if err == nil { // resp is now filled
  1971  //        fmt.Println(resp)
  1972  //    }
  1973  //
  1974  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListEngineVersions
  1975  func (c *Athena) ListEngineVersionsRequest(input *ListEngineVersionsInput) (req *request.Request, output *ListEngineVersionsOutput) {
  1976  	op := &request.Operation{
  1977  		Name:       opListEngineVersions,
  1978  		HTTPMethod: "POST",
  1979  		HTTPPath:   "/",
  1980  	}
  1981  
  1982  	if input == nil {
  1983  		input = &ListEngineVersionsInput{}
  1984  	}
  1985  
  1986  	output = &ListEngineVersionsOutput{}
  1987  	req = c.newRequest(op, input, output)
  1988  	return
  1989  }
  1990  
  1991  // ListEngineVersions API operation for Amazon Athena.
  1992  //
  1993  // Returns a list of engine versions that are available to choose from, including
  1994  // the Auto option.
  1995  //
  1996  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1997  // with awserr.Error's Code and Message methods to get detailed information about
  1998  // the error.
  1999  //
  2000  // See the AWS API reference guide for Amazon Athena's
  2001  // API operation ListEngineVersions for usage and error information.
  2002  //
  2003  // Returned Error Types:
  2004  //   * InternalServerException
  2005  //   Indicates a platform issue, which may be due to a transient condition or
  2006  //   outage.
  2007  //
  2008  //   * InvalidRequestException
  2009  //   Indicates that something is wrong with the input to the request. For example,
  2010  //   a required parameter may be missing or out of range.
  2011  //
  2012  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListEngineVersions
  2013  func (c *Athena) ListEngineVersions(input *ListEngineVersionsInput) (*ListEngineVersionsOutput, error) {
  2014  	req, out := c.ListEngineVersionsRequest(input)
  2015  	return out, req.Send()
  2016  }
  2017  
  2018  // ListEngineVersionsWithContext is the same as ListEngineVersions with the addition of
  2019  // the ability to pass a context and additional request options.
  2020  //
  2021  // See ListEngineVersions for details on how to use this API operation.
  2022  //
  2023  // The context must be non-nil and will be used for request cancellation. If
  2024  // the context is nil a panic will occur. In the future the SDK may create
  2025  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2026  // for more information on using Contexts.
  2027  func (c *Athena) ListEngineVersionsWithContext(ctx aws.Context, input *ListEngineVersionsInput, opts ...request.Option) (*ListEngineVersionsOutput, error) {
  2028  	req, out := c.ListEngineVersionsRequest(input)
  2029  	req.SetContext(ctx)
  2030  	req.ApplyOptions(opts...)
  2031  	return out, req.Send()
  2032  }
  2033  
  2034  const opListNamedQueries = "ListNamedQueries"
  2035  
  2036  // ListNamedQueriesRequest generates a "aws/request.Request" representing the
  2037  // client's request for the ListNamedQueries operation. The "output" return
  2038  // value will be populated with the request's response once the request completes
  2039  // successfully.
  2040  //
  2041  // Use "Send" method on the returned Request to send the API call to the service.
  2042  // the "output" return value is not valid until after Send returns without error.
  2043  //
  2044  // See ListNamedQueries for more information on using the ListNamedQueries
  2045  // API call, and error handling.
  2046  //
  2047  // This method is useful when you want to inject custom logic or configuration
  2048  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2049  //
  2050  //
  2051  //    // Example sending a request using the ListNamedQueriesRequest method.
  2052  //    req, resp := client.ListNamedQueriesRequest(params)
  2053  //
  2054  //    err := req.Send()
  2055  //    if err == nil { // resp is now filled
  2056  //        fmt.Println(resp)
  2057  //    }
  2058  //
  2059  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListNamedQueries
  2060  func (c *Athena) ListNamedQueriesRequest(input *ListNamedQueriesInput) (req *request.Request, output *ListNamedQueriesOutput) {
  2061  	op := &request.Operation{
  2062  		Name:       opListNamedQueries,
  2063  		HTTPMethod: "POST",
  2064  		HTTPPath:   "/",
  2065  		Paginator: &request.Paginator{
  2066  			InputTokens:     []string{"NextToken"},
  2067  			OutputTokens:    []string{"NextToken"},
  2068  			LimitToken:      "MaxResults",
  2069  			TruncationToken: "",
  2070  		},
  2071  	}
  2072  
  2073  	if input == nil {
  2074  		input = &ListNamedQueriesInput{}
  2075  	}
  2076  
  2077  	output = &ListNamedQueriesOutput{}
  2078  	req = c.newRequest(op, input, output)
  2079  	return
  2080  }
  2081  
  2082  // ListNamedQueries API operation for Amazon Athena.
  2083  //
  2084  // Provides a list of available query IDs only for queries saved in the specified
  2085  // workgroup. Requires that you have access to the specified workgroup. If a
  2086  // workgroup is not specified, lists the saved queries for the primary workgroup.
  2087  //
  2088  // For code samples using the Amazon Web Services SDK for Java, see Examples
  2089  // and Code Samples (http://docs.aws.amazon.com/athena/latest/ug/code-samples.html)
  2090  // in the Amazon Athena User Guide.
  2091  //
  2092  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2093  // with awserr.Error's Code and Message methods to get detailed information about
  2094  // the error.
  2095  //
  2096  // See the AWS API reference guide for Amazon Athena's
  2097  // API operation ListNamedQueries for usage and error information.
  2098  //
  2099  // Returned Error Types:
  2100  //   * InternalServerException
  2101  //   Indicates a platform issue, which may be due to a transient condition or
  2102  //   outage.
  2103  //
  2104  //   * InvalidRequestException
  2105  //   Indicates that something is wrong with the input to the request. For example,
  2106  //   a required parameter may be missing or out of range.
  2107  //
  2108  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListNamedQueries
  2109  func (c *Athena) ListNamedQueries(input *ListNamedQueriesInput) (*ListNamedQueriesOutput, error) {
  2110  	req, out := c.ListNamedQueriesRequest(input)
  2111  	return out, req.Send()
  2112  }
  2113  
  2114  // ListNamedQueriesWithContext is the same as ListNamedQueries with the addition of
  2115  // the ability to pass a context and additional request options.
  2116  //
  2117  // See ListNamedQueries for details on how to use this API operation.
  2118  //
  2119  // The context must be non-nil and will be used for request cancellation. If
  2120  // the context is nil a panic will occur. In the future the SDK may create
  2121  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2122  // for more information on using Contexts.
  2123  func (c *Athena) ListNamedQueriesWithContext(ctx aws.Context, input *ListNamedQueriesInput, opts ...request.Option) (*ListNamedQueriesOutput, error) {
  2124  	req, out := c.ListNamedQueriesRequest(input)
  2125  	req.SetContext(ctx)
  2126  	req.ApplyOptions(opts...)
  2127  	return out, req.Send()
  2128  }
  2129  
  2130  // ListNamedQueriesPages iterates over the pages of a ListNamedQueries operation,
  2131  // calling the "fn" function with the response data for each page. To stop
  2132  // iterating, return false from the fn function.
  2133  //
  2134  // See ListNamedQueries method for more information on how to use this operation.
  2135  //
  2136  // Note: This operation can generate multiple requests to a service.
  2137  //
  2138  //    // Example iterating over at most 3 pages of a ListNamedQueries operation.
  2139  //    pageNum := 0
  2140  //    err := client.ListNamedQueriesPages(params,
  2141  //        func(page *athena.ListNamedQueriesOutput, lastPage bool) bool {
  2142  //            pageNum++
  2143  //            fmt.Println(page)
  2144  //            return pageNum <= 3
  2145  //        })
  2146  //
  2147  func (c *Athena) ListNamedQueriesPages(input *ListNamedQueriesInput, fn func(*ListNamedQueriesOutput, bool) bool) error {
  2148  	return c.ListNamedQueriesPagesWithContext(aws.BackgroundContext(), input, fn)
  2149  }
  2150  
  2151  // ListNamedQueriesPagesWithContext same as ListNamedQueriesPages except
  2152  // it takes a Context and allows setting request options on the pages.
  2153  //
  2154  // The context must be non-nil and will be used for request cancellation. If
  2155  // the context is nil a panic will occur. In the future the SDK may create
  2156  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2157  // for more information on using Contexts.
  2158  func (c *Athena) ListNamedQueriesPagesWithContext(ctx aws.Context, input *ListNamedQueriesInput, fn func(*ListNamedQueriesOutput, bool) bool, opts ...request.Option) error {
  2159  	p := request.Pagination{
  2160  		NewRequest: func() (*request.Request, error) {
  2161  			var inCpy *ListNamedQueriesInput
  2162  			if input != nil {
  2163  				tmp := *input
  2164  				inCpy = &tmp
  2165  			}
  2166  			req, _ := c.ListNamedQueriesRequest(inCpy)
  2167  			req.SetContext(ctx)
  2168  			req.ApplyOptions(opts...)
  2169  			return req, nil
  2170  		},
  2171  	}
  2172  
  2173  	for p.Next() {
  2174  		if !fn(p.Page().(*ListNamedQueriesOutput), !p.HasNextPage()) {
  2175  			break
  2176  		}
  2177  	}
  2178  
  2179  	return p.Err()
  2180  }
  2181  
  2182  const opListPreparedStatements = "ListPreparedStatements"
  2183  
  2184  // ListPreparedStatementsRequest generates a "aws/request.Request" representing the
  2185  // client's request for the ListPreparedStatements operation. The "output" return
  2186  // value will be populated with the request's response once the request completes
  2187  // successfully.
  2188  //
  2189  // Use "Send" method on the returned Request to send the API call to the service.
  2190  // the "output" return value is not valid until after Send returns without error.
  2191  //
  2192  // See ListPreparedStatements for more information on using the ListPreparedStatements
  2193  // API call, and error handling.
  2194  //
  2195  // This method is useful when you want to inject custom logic or configuration
  2196  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2197  //
  2198  //
  2199  //    // Example sending a request using the ListPreparedStatementsRequest method.
  2200  //    req, resp := client.ListPreparedStatementsRequest(params)
  2201  //
  2202  //    err := req.Send()
  2203  //    if err == nil { // resp is now filled
  2204  //        fmt.Println(resp)
  2205  //    }
  2206  //
  2207  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListPreparedStatements
  2208  func (c *Athena) ListPreparedStatementsRequest(input *ListPreparedStatementsInput) (req *request.Request, output *ListPreparedStatementsOutput) {
  2209  	op := &request.Operation{
  2210  		Name:       opListPreparedStatements,
  2211  		HTTPMethod: "POST",
  2212  		HTTPPath:   "/",
  2213  		Paginator: &request.Paginator{
  2214  			InputTokens:     []string{"NextToken"},
  2215  			OutputTokens:    []string{"NextToken"},
  2216  			LimitToken:      "MaxResults",
  2217  			TruncationToken: "",
  2218  		},
  2219  	}
  2220  
  2221  	if input == nil {
  2222  		input = &ListPreparedStatementsInput{}
  2223  	}
  2224  
  2225  	output = &ListPreparedStatementsOutput{}
  2226  	req = c.newRequest(op, input, output)
  2227  	return
  2228  }
  2229  
  2230  // ListPreparedStatements API operation for Amazon Athena.
  2231  //
  2232  // Lists the prepared statements in the specfied workgroup.
  2233  //
  2234  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2235  // with awserr.Error's Code and Message methods to get detailed information about
  2236  // the error.
  2237  //
  2238  // See the AWS API reference guide for Amazon Athena's
  2239  // API operation ListPreparedStatements for usage and error information.
  2240  //
  2241  // Returned Error Types:
  2242  //   * InternalServerException
  2243  //   Indicates a platform issue, which may be due to a transient condition or
  2244  //   outage.
  2245  //
  2246  //   * InvalidRequestException
  2247  //   Indicates that something is wrong with the input to the request. For example,
  2248  //   a required parameter may be missing or out of range.
  2249  //
  2250  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListPreparedStatements
  2251  func (c *Athena) ListPreparedStatements(input *ListPreparedStatementsInput) (*ListPreparedStatementsOutput, error) {
  2252  	req, out := c.ListPreparedStatementsRequest(input)
  2253  	return out, req.Send()
  2254  }
  2255  
  2256  // ListPreparedStatementsWithContext is the same as ListPreparedStatements with the addition of
  2257  // the ability to pass a context and additional request options.
  2258  //
  2259  // See ListPreparedStatements for details on how to use this API operation.
  2260  //
  2261  // The context must be non-nil and will be used for request cancellation. If
  2262  // the context is nil a panic will occur. In the future the SDK may create
  2263  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2264  // for more information on using Contexts.
  2265  func (c *Athena) ListPreparedStatementsWithContext(ctx aws.Context, input *ListPreparedStatementsInput, opts ...request.Option) (*ListPreparedStatementsOutput, error) {
  2266  	req, out := c.ListPreparedStatementsRequest(input)
  2267  	req.SetContext(ctx)
  2268  	req.ApplyOptions(opts...)
  2269  	return out, req.Send()
  2270  }
  2271  
  2272  // ListPreparedStatementsPages iterates over the pages of a ListPreparedStatements operation,
  2273  // calling the "fn" function with the response data for each page. To stop
  2274  // iterating, return false from the fn function.
  2275  //
  2276  // See ListPreparedStatements method for more information on how to use this operation.
  2277  //
  2278  // Note: This operation can generate multiple requests to a service.
  2279  //
  2280  //    // Example iterating over at most 3 pages of a ListPreparedStatements operation.
  2281  //    pageNum := 0
  2282  //    err := client.ListPreparedStatementsPages(params,
  2283  //        func(page *athena.ListPreparedStatementsOutput, lastPage bool) bool {
  2284  //            pageNum++
  2285  //            fmt.Println(page)
  2286  //            return pageNum <= 3
  2287  //        })
  2288  //
  2289  func (c *Athena) ListPreparedStatementsPages(input *ListPreparedStatementsInput, fn func(*ListPreparedStatementsOutput, bool) bool) error {
  2290  	return c.ListPreparedStatementsPagesWithContext(aws.BackgroundContext(), input, fn)
  2291  }
  2292  
  2293  // ListPreparedStatementsPagesWithContext same as ListPreparedStatementsPages except
  2294  // it takes a Context and allows setting request options on the pages.
  2295  //
  2296  // The context must be non-nil and will be used for request cancellation. If
  2297  // the context is nil a panic will occur. In the future the SDK may create
  2298  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2299  // for more information on using Contexts.
  2300  func (c *Athena) ListPreparedStatementsPagesWithContext(ctx aws.Context, input *ListPreparedStatementsInput, fn func(*ListPreparedStatementsOutput, bool) bool, opts ...request.Option) error {
  2301  	p := request.Pagination{
  2302  		NewRequest: func() (*request.Request, error) {
  2303  			var inCpy *ListPreparedStatementsInput
  2304  			if input != nil {
  2305  				tmp := *input
  2306  				inCpy = &tmp
  2307  			}
  2308  			req, _ := c.ListPreparedStatementsRequest(inCpy)
  2309  			req.SetContext(ctx)
  2310  			req.ApplyOptions(opts...)
  2311  			return req, nil
  2312  		},
  2313  	}
  2314  
  2315  	for p.Next() {
  2316  		if !fn(p.Page().(*ListPreparedStatementsOutput), !p.HasNextPage()) {
  2317  			break
  2318  		}
  2319  	}
  2320  
  2321  	return p.Err()
  2322  }
  2323  
  2324  const opListQueryExecutions = "ListQueryExecutions"
  2325  
  2326  // ListQueryExecutionsRequest generates a "aws/request.Request" representing the
  2327  // client's request for the ListQueryExecutions operation. The "output" return
  2328  // value will be populated with the request's response once the request completes
  2329  // successfully.
  2330  //
  2331  // Use "Send" method on the returned Request to send the API call to the service.
  2332  // the "output" return value is not valid until after Send returns without error.
  2333  //
  2334  // See ListQueryExecutions for more information on using the ListQueryExecutions
  2335  // API call, and error handling.
  2336  //
  2337  // This method is useful when you want to inject custom logic or configuration
  2338  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2339  //
  2340  //
  2341  //    // Example sending a request using the ListQueryExecutionsRequest method.
  2342  //    req, resp := client.ListQueryExecutionsRequest(params)
  2343  //
  2344  //    err := req.Send()
  2345  //    if err == nil { // resp is now filled
  2346  //        fmt.Println(resp)
  2347  //    }
  2348  //
  2349  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListQueryExecutions
  2350  func (c *Athena) ListQueryExecutionsRequest(input *ListQueryExecutionsInput) (req *request.Request, output *ListQueryExecutionsOutput) {
  2351  	op := &request.Operation{
  2352  		Name:       opListQueryExecutions,
  2353  		HTTPMethod: "POST",
  2354  		HTTPPath:   "/",
  2355  		Paginator: &request.Paginator{
  2356  			InputTokens:     []string{"NextToken"},
  2357  			OutputTokens:    []string{"NextToken"},
  2358  			LimitToken:      "MaxResults",
  2359  			TruncationToken: "",
  2360  		},
  2361  	}
  2362  
  2363  	if input == nil {
  2364  		input = &ListQueryExecutionsInput{}
  2365  	}
  2366  
  2367  	output = &ListQueryExecutionsOutput{}
  2368  	req = c.newRequest(op, input, output)
  2369  	return
  2370  }
  2371  
  2372  // ListQueryExecutions API operation for Amazon Athena.
  2373  //
  2374  // Provides a list of available query execution IDs for the queries in the specified
  2375  // workgroup. If a workgroup is not specified, returns a list of query execution
  2376  // IDs for the primary workgroup. Requires you to have access to the workgroup
  2377  // in which the queries ran.
  2378  //
  2379  // For code samples using the Amazon Web Services SDK for Java, see Examples
  2380  // and Code Samples (http://docs.aws.amazon.com/athena/latest/ug/code-samples.html)
  2381  // in the Amazon Athena User Guide.
  2382  //
  2383  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2384  // with awserr.Error's Code and Message methods to get detailed information about
  2385  // the error.
  2386  //
  2387  // See the AWS API reference guide for Amazon Athena's
  2388  // API operation ListQueryExecutions for usage and error information.
  2389  //
  2390  // Returned Error Types:
  2391  //   * InternalServerException
  2392  //   Indicates a platform issue, which may be due to a transient condition or
  2393  //   outage.
  2394  //
  2395  //   * InvalidRequestException
  2396  //   Indicates that something is wrong with the input to the request. For example,
  2397  //   a required parameter may be missing or out of range.
  2398  //
  2399  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListQueryExecutions
  2400  func (c *Athena) ListQueryExecutions(input *ListQueryExecutionsInput) (*ListQueryExecutionsOutput, error) {
  2401  	req, out := c.ListQueryExecutionsRequest(input)
  2402  	return out, req.Send()
  2403  }
  2404  
  2405  // ListQueryExecutionsWithContext is the same as ListQueryExecutions with the addition of
  2406  // the ability to pass a context and additional request options.
  2407  //
  2408  // See ListQueryExecutions for details on how to use this API operation.
  2409  //
  2410  // The context must be non-nil and will be used for request cancellation. If
  2411  // the context is nil a panic will occur. In the future the SDK may create
  2412  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2413  // for more information on using Contexts.
  2414  func (c *Athena) ListQueryExecutionsWithContext(ctx aws.Context, input *ListQueryExecutionsInput, opts ...request.Option) (*ListQueryExecutionsOutput, error) {
  2415  	req, out := c.ListQueryExecutionsRequest(input)
  2416  	req.SetContext(ctx)
  2417  	req.ApplyOptions(opts...)
  2418  	return out, req.Send()
  2419  }
  2420  
  2421  // ListQueryExecutionsPages iterates over the pages of a ListQueryExecutions operation,
  2422  // calling the "fn" function with the response data for each page. To stop
  2423  // iterating, return false from the fn function.
  2424  //
  2425  // See ListQueryExecutions method for more information on how to use this operation.
  2426  //
  2427  // Note: This operation can generate multiple requests to a service.
  2428  //
  2429  //    // Example iterating over at most 3 pages of a ListQueryExecutions operation.
  2430  //    pageNum := 0
  2431  //    err := client.ListQueryExecutionsPages(params,
  2432  //        func(page *athena.ListQueryExecutionsOutput, lastPage bool) bool {
  2433  //            pageNum++
  2434  //            fmt.Println(page)
  2435  //            return pageNum <= 3
  2436  //        })
  2437  //
  2438  func (c *Athena) ListQueryExecutionsPages(input *ListQueryExecutionsInput, fn func(*ListQueryExecutionsOutput, bool) bool) error {
  2439  	return c.ListQueryExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
  2440  }
  2441  
  2442  // ListQueryExecutionsPagesWithContext same as ListQueryExecutionsPages except
  2443  // it takes a Context and allows setting request options on the pages.
  2444  //
  2445  // The context must be non-nil and will be used for request cancellation. If
  2446  // the context is nil a panic will occur. In the future the SDK may create
  2447  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2448  // for more information on using Contexts.
  2449  func (c *Athena) ListQueryExecutionsPagesWithContext(ctx aws.Context, input *ListQueryExecutionsInput, fn func(*ListQueryExecutionsOutput, bool) bool, opts ...request.Option) error {
  2450  	p := request.Pagination{
  2451  		NewRequest: func() (*request.Request, error) {
  2452  			var inCpy *ListQueryExecutionsInput
  2453  			if input != nil {
  2454  				tmp := *input
  2455  				inCpy = &tmp
  2456  			}
  2457  			req, _ := c.ListQueryExecutionsRequest(inCpy)
  2458  			req.SetContext(ctx)
  2459  			req.ApplyOptions(opts...)
  2460  			return req, nil
  2461  		},
  2462  	}
  2463  
  2464  	for p.Next() {
  2465  		if !fn(p.Page().(*ListQueryExecutionsOutput), !p.HasNextPage()) {
  2466  			break
  2467  		}
  2468  	}
  2469  
  2470  	return p.Err()
  2471  }
  2472  
  2473  const opListTableMetadata = "ListTableMetadata"
  2474  
  2475  // ListTableMetadataRequest generates a "aws/request.Request" representing the
  2476  // client's request for the ListTableMetadata operation. The "output" return
  2477  // value will be populated with the request's response once the request completes
  2478  // successfully.
  2479  //
  2480  // Use "Send" method on the returned Request to send the API call to the service.
  2481  // the "output" return value is not valid until after Send returns without error.
  2482  //
  2483  // See ListTableMetadata for more information on using the ListTableMetadata
  2484  // API call, and error handling.
  2485  //
  2486  // This method is useful when you want to inject custom logic or configuration
  2487  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2488  //
  2489  //
  2490  //    // Example sending a request using the ListTableMetadataRequest method.
  2491  //    req, resp := client.ListTableMetadataRequest(params)
  2492  //
  2493  //    err := req.Send()
  2494  //    if err == nil { // resp is now filled
  2495  //        fmt.Println(resp)
  2496  //    }
  2497  //
  2498  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListTableMetadata
  2499  func (c *Athena) ListTableMetadataRequest(input *ListTableMetadataInput) (req *request.Request, output *ListTableMetadataOutput) {
  2500  	op := &request.Operation{
  2501  		Name:       opListTableMetadata,
  2502  		HTTPMethod: "POST",
  2503  		HTTPPath:   "/",
  2504  		Paginator: &request.Paginator{
  2505  			InputTokens:     []string{"NextToken"},
  2506  			OutputTokens:    []string{"NextToken"},
  2507  			LimitToken:      "MaxResults",
  2508  			TruncationToken: "",
  2509  		},
  2510  	}
  2511  
  2512  	if input == nil {
  2513  		input = &ListTableMetadataInput{}
  2514  	}
  2515  
  2516  	output = &ListTableMetadataOutput{}
  2517  	req = c.newRequest(op, input, output)
  2518  	return
  2519  }
  2520  
  2521  // ListTableMetadata API operation for Amazon Athena.
  2522  //
  2523  // Lists the metadata for the tables in the specified data catalog database.
  2524  //
  2525  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2526  // with awserr.Error's Code and Message methods to get detailed information about
  2527  // the error.
  2528  //
  2529  // See the AWS API reference guide for Amazon Athena's
  2530  // API operation ListTableMetadata for usage and error information.
  2531  //
  2532  // Returned Error Types:
  2533  //   * InternalServerException
  2534  //   Indicates a platform issue, which may be due to a transient condition or
  2535  //   outage.
  2536  //
  2537  //   * InvalidRequestException
  2538  //   Indicates that something is wrong with the input to the request. For example,
  2539  //   a required parameter may be missing or out of range.
  2540  //
  2541  //   * MetadataException
  2542  //   An exception that Athena received when it called a custom metastore. Occurs
  2543  //   if the error is not caused by user input (InvalidRequestException) or from
  2544  //   the Athena platform (InternalServerException). For example, if a user-created
  2545  //   Lambda function is missing permissions, the Lambda 4XX exception is returned
  2546  //   in a MetadataException.
  2547  //
  2548  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListTableMetadata
  2549  func (c *Athena) ListTableMetadata(input *ListTableMetadataInput) (*ListTableMetadataOutput, error) {
  2550  	req, out := c.ListTableMetadataRequest(input)
  2551  	return out, req.Send()
  2552  }
  2553  
  2554  // ListTableMetadataWithContext is the same as ListTableMetadata with the addition of
  2555  // the ability to pass a context and additional request options.
  2556  //
  2557  // See ListTableMetadata for details on how to use this API operation.
  2558  //
  2559  // The context must be non-nil and will be used for request cancellation. If
  2560  // the context is nil a panic will occur. In the future the SDK may create
  2561  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2562  // for more information on using Contexts.
  2563  func (c *Athena) ListTableMetadataWithContext(ctx aws.Context, input *ListTableMetadataInput, opts ...request.Option) (*ListTableMetadataOutput, error) {
  2564  	req, out := c.ListTableMetadataRequest(input)
  2565  	req.SetContext(ctx)
  2566  	req.ApplyOptions(opts...)
  2567  	return out, req.Send()
  2568  }
  2569  
  2570  // ListTableMetadataPages iterates over the pages of a ListTableMetadata operation,
  2571  // calling the "fn" function with the response data for each page. To stop
  2572  // iterating, return false from the fn function.
  2573  //
  2574  // See ListTableMetadata method for more information on how to use this operation.
  2575  //
  2576  // Note: This operation can generate multiple requests to a service.
  2577  //
  2578  //    // Example iterating over at most 3 pages of a ListTableMetadata operation.
  2579  //    pageNum := 0
  2580  //    err := client.ListTableMetadataPages(params,
  2581  //        func(page *athena.ListTableMetadataOutput, lastPage bool) bool {
  2582  //            pageNum++
  2583  //            fmt.Println(page)
  2584  //            return pageNum <= 3
  2585  //        })
  2586  //
  2587  func (c *Athena) ListTableMetadataPages(input *ListTableMetadataInput, fn func(*ListTableMetadataOutput, bool) bool) error {
  2588  	return c.ListTableMetadataPagesWithContext(aws.BackgroundContext(), input, fn)
  2589  }
  2590  
  2591  // ListTableMetadataPagesWithContext same as ListTableMetadataPages except
  2592  // it takes a Context and allows setting request options on the pages.
  2593  //
  2594  // The context must be non-nil and will be used for request cancellation. If
  2595  // the context is nil a panic will occur. In the future the SDK may create
  2596  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2597  // for more information on using Contexts.
  2598  func (c *Athena) ListTableMetadataPagesWithContext(ctx aws.Context, input *ListTableMetadataInput, fn func(*ListTableMetadataOutput, bool) bool, opts ...request.Option) error {
  2599  	p := request.Pagination{
  2600  		NewRequest: func() (*request.Request, error) {
  2601  			var inCpy *ListTableMetadataInput
  2602  			if input != nil {
  2603  				tmp := *input
  2604  				inCpy = &tmp
  2605  			}
  2606  			req, _ := c.ListTableMetadataRequest(inCpy)
  2607  			req.SetContext(ctx)
  2608  			req.ApplyOptions(opts...)
  2609  			return req, nil
  2610  		},
  2611  	}
  2612  
  2613  	for p.Next() {
  2614  		if !fn(p.Page().(*ListTableMetadataOutput), !p.HasNextPage()) {
  2615  			break
  2616  		}
  2617  	}
  2618  
  2619  	return p.Err()
  2620  }
  2621  
  2622  const opListTagsForResource = "ListTagsForResource"
  2623  
  2624  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  2625  // client's request for the ListTagsForResource operation. The "output" return
  2626  // value will be populated with the request's response once the request completes
  2627  // successfully.
  2628  //
  2629  // Use "Send" method on the returned Request to send the API call to the service.
  2630  // the "output" return value is not valid until after Send returns without error.
  2631  //
  2632  // See ListTagsForResource for more information on using the ListTagsForResource
  2633  // API call, and error handling.
  2634  //
  2635  // This method is useful when you want to inject custom logic or configuration
  2636  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2637  //
  2638  //
  2639  //    // Example sending a request using the ListTagsForResourceRequest method.
  2640  //    req, resp := client.ListTagsForResourceRequest(params)
  2641  //
  2642  //    err := req.Send()
  2643  //    if err == nil { // resp is now filled
  2644  //        fmt.Println(resp)
  2645  //    }
  2646  //
  2647  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListTagsForResource
  2648  func (c *Athena) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  2649  	op := &request.Operation{
  2650  		Name:       opListTagsForResource,
  2651  		HTTPMethod: "POST",
  2652  		HTTPPath:   "/",
  2653  		Paginator: &request.Paginator{
  2654  			InputTokens:     []string{"NextToken"},
  2655  			OutputTokens:    []string{"NextToken"},
  2656  			LimitToken:      "MaxResults",
  2657  			TruncationToken: "",
  2658  		},
  2659  	}
  2660  
  2661  	if input == nil {
  2662  		input = &ListTagsForResourceInput{}
  2663  	}
  2664  
  2665  	output = &ListTagsForResourceOutput{}
  2666  	req = c.newRequest(op, input, output)
  2667  	return
  2668  }
  2669  
  2670  // ListTagsForResource API operation for Amazon Athena.
  2671  //
  2672  // Lists the tags associated with an Athena workgroup or data catalog resource.
  2673  //
  2674  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2675  // with awserr.Error's Code and Message methods to get detailed information about
  2676  // the error.
  2677  //
  2678  // See the AWS API reference guide for Amazon Athena's
  2679  // API operation ListTagsForResource for usage and error information.
  2680  //
  2681  // Returned Error Types:
  2682  //   * InternalServerException
  2683  //   Indicates a platform issue, which may be due to a transient condition or
  2684  //   outage.
  2685  //
  2686  //   * InvalidRequestException
  2687  //   Indicates that something is wrong with the input to the request. For example,
  2688  //   a required parameter may be missing or out of range.
  2689  //
  2690  //   * ResourceNotFoundException
  2691  //   A resource, such as a workgroup, was not found.
  2692  //
  2693  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListTagsForResource
  2694  func (c *Athena) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  2695  	req, out := c.ListTagsForResourceRequest(input)
  2696  	return out, req.Send()
  2697  }
  2698  
  2699  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  2700  // the ability to pass a context and additional request options.
  2701  //
  2702  // See ListTagsForResource for details on how to use this API operation.
  2703  //
  2704  // The context must be non-nil and will be used for request cancellation. If
  2705  // the context is nil a panic will occur. In the future the SDK may create
  2706  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2707  // for more information on using Contexts.
  2708  func (c *Athena) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  2709  	req, out := c.ListTagsForResourceRequest(input)
  2710  	req.SetContext(ctx)
  2711  	req.ApplyOptions(opts...)
  2712  	return out, req.Send()
  2713  }
  2714  
  2715  // ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
  2716  // calling the "fn" function with the response data for each page. To stop
  2717  // iterating, return false from the fn function.
  2718  //
  2719  // See ListTagsForResource method for more information on how to use this operation.
  2720  //
  2721  // Note: This operation can generate multiple requests to a service.
  2722  //
  2723  //    // Example iterating over at most 3 pages of a ListTagsForResource operation.
  2724  //    pageNum := 0
  2725  //    err := client.ListTagsForResourcePages(params,
  2726  //        func(page *athena.ListTagsForResourceOutput, lastPage bool) bool {
  2727  //            pageNum++
  2728  //            fmt.Println(page)
  2729  //            return pageNum <= 3
  2730  //        })
  2731  //
  2732  func (c *Athena) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
  2733  	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
  2734  }
  2735  
  2736  // ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
  2737  // it takes a Context and allows setting request options on the pages.
  2738  //
  2739  // The context must be non-nil and will be used for request cancellation. If
  2740  // the context is nil a panic will occur. In the future the SDK may create
  2741  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2742  // for more information on using Contexts.
  2743  func (c *Athena) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
  2744  	p := request.Pagination{
  2745  		NewRequest: func() (*request.Request, error) {
  2746  			var inCpy *ListTagsForResourceInput
  2747  			if input != nil {
  2748  				tmp := *input
  2749  				inCpy = &tmp
  2750  			}
  2751  			req, _ := c.ListTagsForResourceRequest(inCpy)
  2752  			req.SetContext(ctx)
  2753  			req.ApplyOptions(opts...)
  2754  			return req, nil
  2755  		},
  2756  	}
  2757  
  2758  	for p.Next() {
  2759  		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
  2760  			break
  2761  		}
  2762  	}
  2763  
  2764  	return p.Err()
  2765  }
  2766  
  2767  const opListWorkGroups = "ListWorkGroups"
  2768  
  2769  // ListWorkGroupsRequest generates a "aws/request.Request" representing the
  2770  // client's request for the ListWorkGroups operation. The "output" return
  2771  // value will be populated with the request's response once the request completes
  2772  // successfully.
  2773  //
  2774  // Use "Send" method on the returned Request to send the API call to the service.
  2775  // the "output" return value is not valid until after Send returns without error.
  2776  //
  2777  // See ListWorkGroups for more information on using the ListWorkGroups
  2778  // API call, and error handling.
  2779  //
  2780  // This method is useful when you want to inject custom logic or configuration
  2781  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2782  //
  2783  //
  2784  //    // Example sending a request using the ListWorkGroupsRequest method.
  2785  //    req, resp := client.ListWorkGroupsRequest(params)
  2786  //
  2787  //    err := req.Send()
  2788  //    if err == nil { // resp is now filled
  2789  //        fmt.Println(resp)
  2790  //    }
  2791  //
  2792  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListWorkGroups
  2793  func (c *Athena) ListWorkGroupsRequest(input *ListWorkGroupsInput) (req *request.Request, output *ListWorkGroupsOutput) {
  2794  	op := &request.Operation{
  2795  		Name:       opListWorkGroups,
  2796  		HTTPMethod: "POST",
  2797  		HTTPPath:   "/",
  2798  		Paginator: &request.Paginator{
  2799  			InputTokens:     []string{"NextToken"},
  2800  			OutputTokens:    []string{"NextToken"},
  2801  			LimitToken:      "MaxResults",
  2802  			TruncationToken: "",
  2803  		},
  2804  	}
  2805  
  2806  	if input == nil {
  2807  		input = &ListWorkGroupsInput{}
  2808  	}
  2809  
  2810  	output = &ListWorkGroupsOutput{}
  2811  	req = c.newRequest(op, input, output)
  2812  	return
  2813  }
  2814  
  2815  // ListWorkGroups API operation for Amazon Athena.
  2816  //
  2817  // Lists available workgroups for the account.
  2818  //
  2819  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2820  // with awserr.Error's Code and Message methods to get detailed information about
  2821  // the error.
  2822  //
  2823  // See the AWS API reference guide for Amazon Athena's
  2824  // API operation ListWorkGroups for usage and error information.
  2825  //
  2826  // Returned Error Types:
  2827  //   * InternalServerException
  2828  //   Indicates a platform issue, which may be due to a transient condition or
  2829  //   outage.
  2830  //
  2831  //   * InvalidRequestException
  2832  //   Indicates that something is wrong with the input to the request. For example,
  2833  //   a required parameter may be missing or out of range.
  2834  //
  2835  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListWorkGroups
  2836  func (c *Athena) ListWorkGroups(input *ListWorkGroupsInput) (*ListWorkGroupsOutput, error) {
  2837  	req, out := c.ListWorkGroupsRequest(input)
  2838  	return out, req.Send()
  2839  }
  2840  
  2841  // ListWorkGroupsWithContext is the same as ListWorkGroups with the addition of
  2842  // the ability to pass a context and additional request options.
  2843  //
  2844  // See ListWorkGroups for details on how to use this API operation.
  2845  //
  2846  // The context must be non-nil and will be used for request cancellation. If
  2847  // the context is nil a panic will occur. In the future the SDK may create
  2848  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2849  // for more information on using Contexts.
  2850  func (c *Athena) ListWorkGroupsWithContext(ctx aws.Context, input *ListWorkGroupsInput, opts ...request.Option) (*ListWorkGroupsOutput, error) {
  2851  	req, out := c.ListWorkGroupsRequest(input)
  2852  	req.SetContext(ctx)
  2853  	req.ApplyOptions(opts...)
  2854  	return out, req.Send()
  2855  }
  2856  
  2857  // ListWorkGroupsPages iterates over the pages of a ListWorkGroups operation,
  2858  // calling the "fn" function with the response data for each page. To stop
  2859  // iterating, return false from the fn function.
  2860  //
  2861  // See ListWorkGroups method for more information on how to use this operation.
  2862  //
  2863  // Note: This operation can generate multiple requests to a service.
  2864  //
  2865  //    // Example iterating over at most 3 pages of a ListWorkGroups operation.
  2866  //    pageNum := 0
  2867  //    err := client.ListWorkGroupsPages(params,
  2868  //        func(page *athena.ListWorkGroupsOutput, lastPage bool) bool {
  2869  //            pageNum++
  2870  //            fmt.Println(page)
  2871  //            return pageNum <= 3
  2872  //        })
  2873  //
  2874  func (c *Athena) ListWorkGroupsPages(input *ListWorkGroupsInput, fn func(*ListWorkGroupsOutput, bool) bool) error {
  2875  	return c.ListWorkGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
  2876  }
  2877  
  2878  // ListWorkGroupsPagesWithContext same as ListWorkGroupsPages except
  2879  // it takes a Context and allows setting request options on the pages.
  2880  //
  2881  // The context must be non-nil and will be used for request cancellation. If
  2882  // the context is nil a panic will occur. In the future the SDK may create
  2883  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2884  // for more information on using Contexts.
  2885  func (c *Athena) ListWorkGroupsPagesWithContext(ctx aws.Context, input *ListWorkGroupsInput, fn func(*ListWorkGroupsOutput, bool) bool, opts ...request.Option) error {
  2886  	p := request.Pagination{
  2887  		NewRequest: func() (*request.Request, error) {
  2888  			var inCpy *ListWorkGroupsInput
  2889  			if input != nil {
  2890  				tmp := *input
  2891  				inCpy = &tmp
  2892  			}
  2893  			req, _ := c.ListWorkGroupsRequest(inCpy)
  2894  			req.SetContext(ctx)
  2895  			req.ApplyOptions(opts...)
  2896  			return req, nil
  2897  		},
  2898  	}
  2899  
  2900  	for p.Next() {
  2901  		if !fn(p.Page().(*ListWorkGroupsOutput), !p.HasNextPage()) {
  2902  			break
  2903  		}
  2904  	}
  2905  
  2906  	return p.Err()
  2907  }
  2908  
  2909  const opStartQueryExecution = "StartQueryExecution"
  2910  
  2911  // StartQueryExecutionRequest generates a "aws/request.Request" representing the
  2912  // client's request for the StartQueryExecution operation. The "output" return
  2913  // value will be populated with the request's response once the request completes
  2914  // successfully.
  2915  //
  2916  // Use "Send" method on the returned Request to send the API call to the service.
  2917  // the "output" return value is not valid until after Send returns without error.
  2918  //
  2919  // See StartQueryExecution for more information on using the StartQueryExecution
  2920  // API call, and error handling.
  2921  //
  2922  // This method is useful when you want to inject custom logic or configuration
  2923  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2924  //
  2925  //
  2926  //    // Example sending a request using the StartQueryExecutionRequest method.
  2927  //    req, resp := client.StartQueryExecutionRequest(params)
  2928  //
  2929  //    err := req.Send()
  2930  //    if err == nil { // resp is now filled
  2931  //        fmt.Println(resp)
  2932  //    }
  2933  //
  2934  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/StartQueryExecution
  2935  func (c *Athena) StartQueryExecutionRequest(input *StartQueryExecutionInput) (req *request.Request, output *StartQueryExecutionOutput) {
  2936  	op := &request.Operation{
  2937  		Name:       opStartQueryExecution,
  2938  		HTTPMethod: "POST",
  2939  		HTTPPath:   "/",
  2940  	}
  2941  
  2942  	if input == nil {
  2943  		input = &StartQueryExecutionInput{}
  2944  	}
  2945  
  2946  	output = &StartQueryExecutionOutput{}
  2947  	req = c.newRequest(op, input, output)
  2948  	return
  2949  }
  2950  
  2951  // StartQueryExecution API operation for Amazon Athena.
  2952  //
  2953  // Runs the SQL query statements contained in the Query. Requires you to have
  2954  // access to the workgroup in which the query ran. Running queries against an
  2955  // external catalog requires GetDataCatalog permission to the catalog. For code
  2956  // samples using the Amazon Web Services SDK for Java, see Examples and Code
  2957  // Samples (http://docs.aws.amazon.com/athena/latest/ug/code-samples.html) in
  2958  // the Amazon Athena User Guide.
  2959  //
  2960  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2961  // with awserr.Error's Code and Message methods to get detailed information about
  2962  // the error.
  2963  //
  2964  // See the AWS API reference guide for Amazon Athena's
  2965  // API operation StartQueryExecution for usage and error information.
  2966  //
  2967  // Returned Error Types:
  2968  //   * InternalServerException
  2969  //   Indicates a platform issue, which may be due to a transient condition or
  2970  //   outage.
  2971  //
  2972  //   * InvalidRequestException
  2973  //   Indicates that something is wrong with the input to the request. For example,
  2974  //   a required parameter may be missing or out of range.
  2975  //
  2976  //   * TooManyRequestsException
  2977  //   Indicates that the request was throttled.
  2978  //
  2979  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/StartQueryExecution
  2980  func (c *Athena) StartQueryExecution(input *StartQueryExecutionInput) (*StartQueryExecutionOutput, error) {
  2981  	req, out := c.StartQueryExecutionRequest(input)
  2982  	return out, req.Send()
  2983  }
  2984  
  2985  // StartQueryExecutionWithContext is the same as StartQueryExecution with the addition of
  2986  // the ability to pass a context and additional request options.
  2987  //
  2988  // See StartQueryExecution for details on how to use this API operation.
  2989  //
  2990  // The context must be non-nil and will be used for request cancellation. If
  2991  // the context is nil a panic will occur. In the future the SDK may create
  2992  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2993  // for more information on using Contexts.
  2994  func (c *Athena) StartQueryExecutionWithContext(ctx aws.Context, input *StartQueryExecutionInput, opts ...request.Option) (*StartQueryExecutionOutput, error) {
  2995  	req, out := c.StartQueryExecutionRequest(input)
  2996  	req.SetContext(ctx)
  2997  	req.ApplyOptions(opts...)
  2998  	return out, req.Send()
  2999  }
  3000  
  3001  const opStopQueryExecution = "StopQueryExecution"
  3002  
  3003  // StopQueryExecutionRequest generates a "aws/request.Request" representing the
  3004  // client's request for the StopQueryExecution operation. The "output" return
  3005  // value will be populated with the request's response once the request completes
  3006  // successfully.
  3007  //
  3008  // Use "Send" method on the returned Request to send the API call to the service.
  3009  // the "output" return value is not valid until after Send returns without error.
  3010  //
  3011  // See StopQueryExecution for more information on using the StopQueryExecution
  3012  // API call, and error handling.
  3013  //
  3014  // This method is useful when you want to inject custom logic or configuration
  3015  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3016  //
  3017  //
  3018  //    // Example sending a request using the StopQueryExecutionRequest method.
  3019  //    req, resp := client.StopQueryExecutionRequest(params)
  3020  //
  3021  //    err := req.Send()
  3022  //    if err == nil { // resp is now filled
  3023  //        fmt.Println(resp)
  3024  //    }
  3025  //
  3026  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/StopQueryExecution
  3027  func (c *Athena) StopQueryExecutionRequest(input *StopQueryExecutionInput) (req *request.Request, output *StopQueryExecutionOutput) {
  3028  	op := &request.Operation{
  3029  		Name:       opStopQueryExecution,
  3030  		HTTPMethod: "POST",
  3031  		HTTPPath:   "/",
  3032  	}
  3033  
  3034  	if input == nil {
  3035  		input = &StopQueryExecutionInput{}
  3036  	}
  3037  
  3038  	output = &StopQueryExecutionOutput{}
  3039  	req = c.newRequest(op, input, output)
  3040  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3041  	return
  3042  }
  3043  
  3044  // StopQueryExecution API operation for Amazon Athena.
  3045  //
  3046  // Stops a query execution. Requires you to have access to the workgroup in
  3047  // which the query ran.
  3048  //
  3049  // For code samples using the Amazon Web Services SDK for Java, see Examples
  3050  // and Code Samples (http://docs.aws.amazon.com/athena/latest/ug/code-samples.html)
  3051  // in the Amazon Athena User Guide.
  3052  //
  3053  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3054  // with awserr.Error's Code and Message methods to get detailed information about
  3055  // the error.
  3056  //
  3057  // See the AWS API reference guide for Amazon Athena's
  3058  // API operation StopQueryExecution for usage and error information.
  3059  //
  3060  // Returned Error Types:
  3061  //   * InternalServerException
  3062  //   Indicates a platform issue, which may be due to a transient condition or
  3063  //   outage.
  3064  //
  3065  //   * InvalidRequestException
  3066  //   Indicates that something is wrong with the input to the request. For example,
  3067  //   a required parameter may be missing or out of range.
  3068  //
  3069  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/StopQueryExecution
  3070  func (c *Athena) StopQueryExecution(input *StopQueryExecutionInput) (*StopQueryExecutionOutput, error) {
  3071  	req, out := c.StopQueryExecutionRequest(input)
  3072  	return out, req.Send()
  3073  }
  3074  
  3075  // StopQueryExecutionWithContext is the same as StopQueryExecution with the addition of
  3076  // the ability to pass a context and additional request options.
  3077  //
  3078  // See StopQueryExecution for details on how to use this API operation.
  3079  //
  3080  // The context must be non-nil and will be used for request cancellation. If
  3081  // the context is nil a panic will occur. In the future the SDK may create
  3082  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3083  // for more information on using Contexts.
  3084  func (c *Athena) StopQueryExecutionWithContext(ctx aws.Context, input *StopQueryExecutionInput, opts ...request.Option) (*StopQueryExecutionOutput, error) {
  3085  	req, out := c.StopQueryExecutionRequest(input)
  3086  	req.SetContext(ctx)
  3087  	req.ApplyOptions(opts...)
  3088  	return out, req.Send()
  3089  }
  3090  
  3091  const opTagResource = "TagResource"
  3092  
  3093  // TagResourceRequest generates a "aws/request.Request" representing the
  3094  // client's request for the TagResource operation. The "output" return
  3095  // value will be populated with the request's response once the request completes
  3096  // successfully.
  3097  //
  3098  // Use "Send" method on the returned Request to send the API call to the service.
  3099  // the "output" return value is not valid until after Send returns without error.
  3100  //
  3101  // See TagResource for more information on using the TagResource
  3102  // API call, and error handling.
  3103  //
  3104  // This method is useful when you want to inject custom logic or configuration
  3105  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3106  //
  3107  //
  3108  //    // Example sending a request using the TagResourceRequest method.
  3109  //    req, resp := client.TagResourceRequest(params)
  3110  //
  3111  //    err := req.Send()
  3112  //    if err == nil { // resp is now filled
  3113  //        fmt.Println(resp)
  3114  //    }
  3115  //
  3116  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/TagResource
  3117  func (c *Athena) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  3118  	op := &request.Operation{
  3119  		Name:       opTagResource,
  3120  		HTTPMethod: "POST",
  3121  		HTTPPath:   "/",
  3122  	}
  3123  
  3124  	if input == nil {
  3125  		input = &TagResourceInput{}
  3126  	}
  3127  
  3128  	output = &TagResourceOutput{}
  3129  	req = c.newRequest(op, input, output)
  3130  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3131  	return
  3132  }
  3133  
  3134  // TagResource API operation for Amazon Athena.
  3135  //
  3136  // Adds one or more tags to an Athena resource. A tag is a label that you assign
  3137  // to a resource. In Athena, a resource can be a workgroup or data catalog.
  3138  // Each tag consists of a key and an optional value, both of which you define.
  3139  // For example, you can use tags to categorize Athena workgroups or data catalogs
  3140  // by purpose, owner, or environment. Use a consistent set of tag keys to make
  3141  // it easier to search and filter workgroups or data catalogs in your account.
  3142  // For best practices, see Tagging Best Practices (https://aws.amazon.com/answers/account-management/aws-tagging-strategies/).
  3143  // Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can
  3144  // be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers
  3145  // representable in UTF-8, and the following characters: + - = . _ : / @. Tag
  3146  // keys and values are case-sensitive. Tag keys must be unique per resource.
  3147  // If you specify more than one tag, separate them by commas.
  3148  //
  3149  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3150  // with awserr.Error's Code and Message methods to get detailed information about
  3151  // the error.
  3152  //
  3153  // See the AWS API reference guide for Amazon Athena's
  3154  // API operation TagResource for usage and error information.
  3155  //
  3156  // Returned Error Types:
  3157  //   * InternalServerException
  3158  //   Indicates a platform issue, which may be due to a transient condition or
  3159  //   outage.
  3160  //
  3161  //   * InvalidRequestException
  3162  //   Indicates that something is wrong with the input to the request. For example,
  3163  //   a required parameter may be missing or out of range.
  3164  //
  3165  //   * ResourceNotFoundException
  3166  //   A resource, such as a workgroup, was not found.
  3167  //
  3168  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/TagResource
  3169  func (c *Athena) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  3170  	req, out := c.TagResourceRequest(input)
  3171  	return out, req.Send()
  3172  }
  3173  
  3174  // TagResourceWithContext is the same as TagResource with the addition of
  3175  // the ability to pass a context and additional request options.
  3176  //
  3177  // See TagResource for details on how to use this API operation.
  3178  //
  3179  // The context must be non-nil and will be used for request cancellation. If
  3180  // the context is nil a panic will occur. In the future the SDK may create
  3181  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3182  // for more information on using Contexts.
  3183  func (c *Athena) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  3184  	req, out := c.TagResourceRequest(input)
  3185  	req.SetContext(ctx)
  3186  	req.ApplyOptions(opts...)
  3187  	return out, req.Send()
  3188  }
  3189  
  3190  const opUntagResource = "UntagResource"
  3191  
  3192  // UntagResourceRequest generates a "aws/request.Request" representing the
  3193  // client's request for the UntagResource operation. The "output" return
  3194  // value will be populated with the request's response once the request completes
  3195  // successfully.
  3196  //
  3197  // Use "Send" method on the returned Request to send the API call to the service.
  3198  // the "output" return value is not valid until after Send returns without error.
  3199  //
  3200  // See UntagResource for more information on using the UntagResource
  3201  // API call, and error handling.
  3202  //
  3203  // This method is useful when you want to inject custom logic or configuration
  3204  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3205  //
  3206  //
  3207  //    // Example sending a request using the UntagResourceRequest method.
  3208  //    req, resp := client.UntagResourceRequest(params)
  3209  //
  3210  //    err := req.Send()
  3211  //    if err == nil { // resp is now filled
  3212  //        fmt.Println(resp)
  3213  //    }
  3214  //
  3215  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UntagResource
  3216  func (c *Athena) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  3217  	op := &request.Operation{
  3218  		Name:       opUntagResource,
  3219  		HTTPMethod: "POST",
  3220  		HTTPPath:   "/",
  3221  	}
  3222  
  3223  	if input == nil {
  3224  		input = &UntagResourceInput{}
  3225  	}
  3226  
  3227  	output = &UntagResourceOutput{}
  3228  	req = c.newRequest(op, input, output)
  3229  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3230  	return
  3231  }
  3232  
  3233  // UntagResource API operation for Amazon Athena.
  3234  //
  3235  // Removes one or more tags from a data catalog or workgroup resource.
  3236  //
  3237  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3238  // with awserr.Error's Code and Message methods to get detailed information about
  3239  // the error.
  3240  //
  3241  // See the AWS API reference guide for Amazon Athena's
  3242  // API operation UntagResource for usage and error information.
  3243  //
  3244  // Returned Error Types:
  3245  //   * InternalServerException
  3246  //   Indicates a platform issue, which may be due to a transient condition or
  3247  //   outage.
  3248  //
  3249  //   * InvalidRequestException
  3250  //   Indicates that something is wrong with the input to the request. For example,
  3251  //   a required parameter may be missing or out of range.
  3252  //
  3253  //   * ResourceNotFoundException
  3254  //   A resource, such as a workgroup, was not found.
  3255  //
  3256  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UntagResource
  3257  func (c *Athena) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  3258  	req, out := c.UntagResourceRequest(input)
  3259  	return out, req.Send()
  3260  }
  3261  
  3262  // UntagResourceWithContext is the same as UntagResource with the addition of
  3263  // the ability to pass a context and additional request options.
  3264  //
  3265  // See UntagResource for details on how to use this API operation.
  3266  //
  3267  // The context must be non-nil and will be used for request cancellation. If
  3268  // the context is nil a panic will occur. In the future the SDK may create
  3269  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3270  // for more information on using Contexts.
  3271  func (c *Athena) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  3272  	req, out := c.UntagResourceRequest(input)
  3273  	req.SetContext(ctx)
  3274  	req.ApplyOptions(opts...)
  3275  	return out, req.Send()
  3276  }
  3277  
  3278  const opUpdateDataCatalog = "UpdateDataCatalog"
  3279  
  3280  // UpdateDataCatalogRequest generates a "aws/request.Request" representing the
  3281  // client's request for the UpdateDataCatalog operation. The "output" return
  3282  // value will be populated with the request's response once the request completes
  3283  // successfully.
  3284  //
  3285  // Use "Send" method on the returned Request to send the API call to the service.
  3286  // the "output" return value is not valid until after Send returns without error.
  3287  //
  3288  // See UpdateDataCatalog for more information on using the UpdateDataCatalog
  3289  // API call, and error handling.
  3290  //
  3291  // This method is useful when you want to inject custom logic or configuration
  3292  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3293  //
  3294  //
  3295  //    // Example sending a request using the UpdateDataCatalogRequest method.
  3296  //    req, resp := client.UpdateDataCatalogRequest(params)
  3297  //
  3298  //    err := req.Send()
  3299  //    if err == nil { // resp is now filled
  3300  //        fmt.Println(resp)
  3301  //    }
  3302  //
  3303  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UpdateDataCatalog
  3304  func (c *Athena) UpdateDataCatalogRequest(input *UpdateDataCatalogInput) (req *request.Request, output *UpdateDataCatalogOutput) {
  3305  	op := &request.Operation{
  3306  		Name:       opUpdateDataCatalog,
  3307  		HTTPMethod: "POST",
  3308  		HTTPPath:   "/",
  3309  	}
  3310  
  3311  	if input == nil {
  3312  		input = &UpdateDataCatalogInput{}
  3313  	}
  3314  
  3315  	output = &UpdateDataCatalogOutput{}
  3316  	req = c.newRequest(op, input, output)
  3317  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3318  	return
  3319  }
  3320  
  3321  // UpdateDataCatalog API operation for Amazon Athena.
  3322  //
  3323  // Updates the data catalog that has the specified name.
  3324  //
  3325  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3326  // with awserr.Error's Code and Message methods to get detailed information about
  3327  // the error.
  3328  //
  3329  // See the AWS API reference guide for Amazon Athena's
  3330  // API operation UpdateDataCatalog for usage and error information.
  3331  //
  3332  // Returned Error Types:
  3333  //   * InternalServerException
  3334  //   Indicates a platform issue, which may be due to a transient condition or
  3335  //   outage.
  3336  //
  3337  //   * InvalidRequestException
  3338  //   Indicates that something is wrong with the input to the request. For example,
  3339  //   a required parameter may be missing or out of range.
  3340  //
  3341  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UpdateDataCatalog
  3342  func (c *Athena) UpdateDataCatalog(input *UpdateDataCatalogInput) (*UpdateDataCatalogOutput, error) {
  3343  	req, out := c.UpdateDataCatalogRequest(input)
  3344  	return out, req.Send()
  3345  }
  3346  
  3347  // UpdateDataCatalogWithContext is the same as UpdateDataCatalog with the addition of
  3348  // the ability to pass a context and additional request options.
  3349  //
  3350  // See UpdateDataCatalog for details on how to use this API operation.
  3351  //
  3352  // The context must be non-nil and will be used for request cancellation. If
  3353  // the context is nil a panic will occur. In the future the SDK may create
  3354  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3355  // for more information on using Contexts.
  3356  func (c *Athena) UpdateDataCatalogWithContext(ctx aws.Context, input *UpdateDataCatalogInput, opts ...request.Option) (*UpdateDataCatalogOutput, error) {
  3357  	req, out := c.UpdateDataCatalogRequest(input)
  3358  	req.SetContext(ctx)
  3359  	req.ApplyOptions(opts...)
  3360  	return out, req.Send()
  3361  }
  3362  
  3363  const opUpdatePreparedStatement = "UpdatePreparedStatement"
  3364  
  3365  // UpdatePreparedStatementRequest generates a "aws/request.Request" representing the
  3366  // client's request for the UpdatePreparedStatement operation. The "output" return
  3367  // value will be populated with the request's response once the request completes
  3368  // successfully.
  3369  //
  3370  // Use "Send" method on the returned Request to send the API call to the service.
  3371  // the "output" return value is not valid until after Send returns without error.
  3372  //
  3373  // See UpdatePreparedStatement for more information on using the UpdatePreparedStatement
  3374  // API call, and error handling.
  3375  //
  3376  // This method is useful when you want to inject custom logic or configuration
  3377  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3378  //
  3379  //
  3380  //    // Example sending a request using the UpdatePreparedStatementRequest method.
  3381  //    req, resp := client.UpdatePreparedStatementRequest(params)
  3382  //
  3383  //    err := req.Send()
  3384  //    if err == nil { // resp is now filled
  3385  //        fmt.Println(resp)
  3386  //    }
  3387  //
  3388  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UpdatePreparedStatement
  3389  func (c *Athena) UpdatePreparedStatementRequest(input *UpdatePreparedStatementInput) (req *request.Request, output *UpdatePreparedStatementOutput) {
  3390  	op := &request.Operation{
  3391  		Name:       opUpdatePreparedStatement,
  3392  		HTTPMethod: "POST",
  3393  		HTTPPath:   "/",
  3394  	}
  3395  
  3396  	if input == nil {
  3397  		input = &UpdatePreparedStatementInput{}
  3398  	}
  3399  
  3400  	output = &UpdatePreparedStatementOutput{}
  3401  	req = c.newRequest(op, input, output)
  3402  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3403  	return
  3404  }
  3405  
  3406  // UpdatePreparedStatement API operation for Amazon Athena.
  3407  //
  3408  // Updates a prepared statement.
  3409  //
  3410  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3411  // with awserr.Error's Code and Message methods to get detailed information about
  3412  // the error.
  3413  //
  3414  // See the AWS API reference guide for Amazon Athena's
  3415  // API operation UpdatePreparedStatement for usage and error information.
  3416  //
  3417  // Returned Error Types:
  3418  //   * InternalServerException
  3419  //   Indicates a platform issue, which may be due to a transient condition or
  3420  //   outage.
  3421  //
  3422  //   * InvalidRequestException
  3423  //   Indicates that something is wrong with the input to the request. For example,
  3424  //   a required parameter may be missing or out of range.
  3425  //
  3426  //   * ResourceNotFoundException
  3427  //   A resource, such as a workgroup, was not found.
  3428  //
  3429  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UpdatePreparedStatement
  3430  func (c *Athena) UpdatePreparedStatement(input *UpdatePreparedStatementInput) (*UpdatePreparedStatementOutput, error) {
  3431  	req, out := c.UpdatePreparedStatementRequest(input)
  3432  	return out, req.Send()
  3433  }
  3434  
  3435  // UpdatePreparedStatementWithContext is the same as UpdatePreparedStatement with the addition of
  3436  // the ability to pass a context and additional request options.
  3437  //
  3438  // See UpdatePreparedStatement for details on how to use this API operation.
  3439  //
  3440  // The context must be non-nil and will be used for request cancellation. If
  3441  // the context is nil a panic will occur. In the future the SDK may create
  3442  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3443  // for more information on using Contexts.
  3444  func (c *Athena) UpdatePreparedStatementWithContext(ctx aws.Context, input *UpdatePreparedStatementInput, opts ...request.Option) (*UpdatePreparedStatementOutput, error) {
  3445  	req, out := c.UpdatePreparedStatementRequest(input)
  3446  	req.SetContext(ctx)
  3447  	req.ApplyOptions(opts...)
  3448  	return out, req.Send()
  3449  }
  3450  
  3451  const opUpdateWorkGroup = "UpdateWorkGroup"
  3452  
  3453  // UpdateWorkGroupRequest generates a "aws/request.Request" representing the
  3454  // client's request for the UpdateWorkGroup operation. The "output" return
  3455  // value will be populated with the request's response once the request completes
  3456  // successfully.
  3457  //
  3458  // Use "Send" method on the returned Request to send the API call to the service.
  3459  // the "output" return value is not valid until after Send returns without error.
  3460  //
  3461  // See UpdateWorkGroup for more information on using the UpdateWorkGroup
  3462  // API call, and error handling.
  3463  //
  3464  // This method is useful when you want to inject custom logic or configuration
  3465  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3466  //
  3467  //
  3468  //    // Example sending a request using the UpdateWorkGroupRequest method.
  3469  //    req, resp := client.UpdateWorkGroupRequest(params)
  3470  //
  3471  //    err := req.Send()
  3472  //    if err == nil { // resp is now filled
  3473  //        fmt.Println(resp)
  3474  //    }
  3475  //
  3476  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UpdateWorkGroup
  3477  func (c *Athena) UpdateWorkGroupRequest(input *UpdateWorkGroupInput) (req *request.Request, output *UpdateWorkGroupOutput) {
  3478  	op := &request.Operation{
  3479  		Name:       opUpdateWorkGroup,
  3480  		HTTPMethod: "POST",
  3481  		HTTPPath:   "/",
  3482  	}
  3483  
  3484  	if input == nil {
  3485  		input = &UpdateWorkGroupInput{}
  3486  	}
  3487  
  3488  	output = &UpdateWorkGroupOutput{}
  3489  	req = c.newRequest(op, input, output)
  3490  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3491  	return
  3492  }
  3493  
  3494  // UpdateWorkGroup API operation for Amazon Athena.
  3495  //
  3496  // Updates the workgroup with the specified name. The workgroup's name cannot
  3497  // be changed.
  3498  //
  3499  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3500  // with awserr.Error's Code and Message methods to get detailed information about
  3501  // the error.
  3502  //
  3503  // See the AWS API reference guide for Amazon Athena's
  3504  // API operation UpdateWorkGroup for usage and error information.
  3505  //
  3506  // Returned Error Types:
  3507  //   * InternalServerException
  3508  //   Indicates a platform issue, which may be due to a transient condition or
  3509  //   outage.
  3510  //
  3511  //   * InvalidRequestException
  3512  //   Indicates that something is wrong with the input to the request. For example,
  3513  //   a required parameter may be missing or out of range.
  3514  //
  3515  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UpdateWorkGroup
  3516  func (c *Athena) UpdateWorkGroup(input *UpdateWorkGroupInput) (*UpdateWorkGroupOutput, error) {
  3517  	req, out := c.UpdateWorkGroupRequest(input)
  3518  	return out, req.Send()
  3519  }
  3520  
  3521  // UpdateWorkGroupWithContext is the same as UpdateWorkGroup with the addition of
  3522  // the ability to pass a context and additional request options.
  3523  //
  3524  // See UpdateWorkGroup for details on how to use this API operation.
  3525  //
  3526  // The context must be non-nil and will be used for request cancellation. If
  3527  // the context is nil a panic will occur. In the future the SDK may create
  3528  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3529  // for more information on using Contexts.
  3530  func (c *Athena) UpdateWorkGroupWithContext(ctx aws.Context, input *UpdateWorkGroupInput, opts ...request.Option) (*UpdateWorkGroupOutput, error) {
  3531  	req, out := c.UpdateWorkGroupRequest(input)
  3532  	req.SetContext(ctx)
  3533  	req.ApplyOptions(opts...)
  3534  	return out, req.Send()
  3535  }
  3536  
  3537  type BatchGetNamedQueryInput struct {
  3538  	_ struct{} `type:"structure"`
  3539  
  3540  	// An array of query IDs.
  3541  	//
  3542  	// NamedQueryIds is a required field
  3543  	NamedQueryIds []*string `min:"1" type:"list" required:"true"`
  3544  }
  3545  
  3546  // String returns the string representation.
  3547  //
  3548  // API parameter values that are decorated as "sensitive" in the API will not
  3549  // be included in the string output. The member name will be present, but the
  3550  // value will be replaced with "sensitive".
  3551  func (s BatchGetNamedQueryInput) String() string {
  3552  	return awsutil.Prettify(s)
  3553  }
  3554  
  3555  // GoString returns the string representation.
  3556  //
  3557  // API parameter values that are decorated as "sensitive" in the API will not
  3558  // be included in the string output. The member name will be present, but the
  3559  // value will be replaced with "sensitive".
  3560  func (s BatchGetNamedQueryInput) GoString() string {
  3561  	return s.String()
  3562  }
  3563  
  3564  // Validate inspects the fields of the type to determine if they are valid.
  3565  func (s *BatchGetNamedQueryInput) Validate() error {
  3566  	invalidParams := request.ErrInvalidParams{Context: "BatchGetNamedQueryInput"}
  3567  	if s.NamedQueryIds == nil {
  3568  		invalidParams.Add(request.NewErrParamRequired("NamedQueryIds"))
  3569  	}
  3570  	if s.NamedQueryIds != nil && len(s.NamedQueryIds) < 1 {
  3571  		invalidParams.Add(request.NewErrParamMinLen("NamedQueryIds", 1))
  3572  	}
  3573  
  3574  	if invalidParams.Len() > 0 {
  3575  		return invalidParams
  3576  	}
  3577  	return nil
  3578  }
  3579  
  3580  // SetNamedQueryIds sets the NamedQueryIds field's value.
  3581  func (s *BatchGetNamedQueryInput) SetNamedQueryIds(v []*string) *BatchGetNamedQueryInput {
  3582  	s.NamedQueryIds = v
  3583  	return s
  3584  }
  3585  
  3586  type BatchGetNamedQueryOutput struct {
  3587  	_ struct{} `type:"structure"`
  3588  
  3589  	// Information about the named query IDs submitted.
  3590  	NamedQueries []*NamedQuery `type:"list"`
  3591  
  3592  	// Information about provided query IDs.
  3593  	UnprocessedNamedQueryIds []*UnprocessedNamedQueryId `type:"list"`
  3594  }
  3595  
  3596  // String returns the string representation.
  3597  //
  3598  // API parameter values that are decorated as "sensitive" in the API will not
  3599  // be included in the string output. The member name will be present, but the
  3600  // value will be replaced with "sensitive".
  3601  func (s BatchGetNamedQueryOutput) String() string {
  3602  	return awsutil.Prettify(s)
  3603  }
  3604  
  3605  // GoString returns the string representation.
  3606  //
  3607  // API parameter values that are decorated as "sensitive" in the API will not
  3608  // be included in the string output. The member name will be present, but the
  3609  // value will be replaced with "sensitive".
  3610  func (s BatchGetNamedQueryOutput) GoString() string {
  3611  	return s.String()
  3612  }
  3613  
  3614  // SetNamedQueries sets the NamedQueries field's value.
  3615  func (s *BatchGetNamedQueryOutput) SetNamedQueries(v []*NamedQuery) *BatchGetNamedQueryOutput {
  3616  	s.NamedQueries = v
  3617  	return s
  3618  }
  3619  
  3620  // SetUnprocessedNamedQueryIds sets the UnprocessedNamedQueryIds field's value.
  3621  func (s *BatchGetNamedQueryOutput) SetUnprocessedNamedQueryIds(v []*UnprocessedNamedQueryId) *BatchGetNamedQueryOutput {
  3622  	s.UnprocessedNamedQueryIds = v
  3623  	return s
  3624  }
  3625  
  3626  type BatchGetQueryExecutionInput struct {
  3627  	_ struct{} `type:"structure"`
  3628  
  3629  	// An array of query execution IDs.
  3630  	//
  3631  	// QueryExecutionIds is a required field
  3632  	QueryExecutionIds []*string `min:"1" type:"list" required:"true"`
  3633  }
  3634  
  3635  // String returns the string representation.
  3636  //
  3637  // API parameter values that are decorated as "sensitive" in the API will not
  3638  // be included in the string output. The member name will be present, but the
  3639  // value will be replaced with "sensitive".
  3640  func (s BatchGetQueryExecutionInput) String() string {
  3641  	return awsutil.Prettify(s)
  3642  }
  3643  
  3644  // GoString returns the string representation.
  3645  //
  3646  // API parameter values that are decorated as "sensitive" in the API will not
  3647  // be included in the string output. The member name will be present, but the
  3648  // value will be replaced with "sensitive".
  3649  func (s BatchGetQueryExecutionInput) GoString() string {
  3650  	return s.String()
  3651  }
  3652  
  3653  // Validate inspects the fields of the type to determine if they are valid.
  3654  func (s *BatchGetQueryExecutionInput) Validate() error {
  3655  	invalidParams := request.ErrInvalidParams{Context: "BatchGetQueryExecutionInput"}
  3656  	if s.QueryExecutionIds == nil {
  3657  		invalidParams.Add(request.NewErrParamRequired("QueryExecutionIds"))
  3658  	}
  3659  	if s.QueryExecutionIds != nil && len(s.QueryExecutionIds) < 1 {
  3660  		invalidParams.Add(request.NewErrParamMinLen("QueryExecutionIds", 1))
  3661  	}
  3662  
  3663  	if invalidParams.Len() > 0 {
  3664  		return invalidParams
  3665  	}
  3666  	return nil
  3667  }
  3668  
  3669  // SetQueryExecutionIds sets the QueryExecutionIds field's value.
  3670  func (s *BatchGetQueryExecutionInput) SetQueryExecutionIds(v []*string) *BatchGetQueryExecutionInput {
  3671  	s.QueryExecutionIds = v
  3672  	return s
  3673  }
  3674  
  3675  type BatchGetQueryExecutionOutput struct {
  3676  	_ struct{} `type:"structure"`
  3677  
  3678  	// Information about a query execution.
  3679  	QueryExecutions []*QueryExecution `type:"list"`
  3680  
  3681  	// Information about the query executions that failed to run.
  3682  	UnprocessedQueryExecutionIds []*UnprocessedQueryExecutionId `type:"list"`
  3683  }
  3684  
  3685  // String returns the string representation.
  3686  //
  3687  // API parameter values that are decorated as "sensitive" in the API will not
  3688  // be included in the string output. The member name will be present, but the
  3689  // value will be replaced with "sensitive".
  3690  func (s BatchGetQueryExecutionOutput) String() string {
  3691  	return awsutil.Prettify(s)
  3692  }
  3693  
  3694  // GoString returns the string representation.
  3695  //
  3696  // API parameter values that are decorated as "sensitive" in the API will not
  3697  // be included in the string output. The member name will be present, but the
  3698  // value will be replaced with "sensitive".
  3699  func (s BatchGetQueryExecutionOutput) GoString() string {
  3700  	return s.String()
  3701  }
  3702  
  3703  // SetQueryExecutions sets the QueryExecutions field's value.
  3704  func (s *BatchGetQueryExecutionOutput) SetQueryExecutions(v []*QueryExecution) *BatchGetQueryExecutionOutput {
  3705  	s.QueryExecutions = v
  3706  	return s
  3707  }
  3708  
  3709  // SetUnprocessedQueryExecutionIds sets the UnprocessedQueryExecutionIds field's value.
  3710  func (s *BatchGetQueryExecutionOutput) SetUnprocessedQueryExecutionIds(v []*UnprocessedQueryExecutionId) *BatchGetQueryExecutionOutput {
  3711  	s.UnprocessedQueryExecutionIds = v
  3712  	return s
  3713  }
  3714  
  3715  // Contains metadata for a column in a table.
  3716  type Column struct {
  3717  	_ struct{} `type:"structure"`
  3718  
  3719  	// Optional information about the column.
  3720  	Comment *string `type:"string"`
  3721  
  3722  	// The name of the column.
  3723  	//
  3724  	// Name is a required field
  3725  	Name *string `min:"1" type:"string" required:"true"`
  3726  
  3727  	// The data type of the column.
  3728  	Type *string `type:"string"`
  3729  }
  3730  
  3731  // String returns the string representation.
  3732  //
  3733  // API parameter values that are decorated as "sensitive" in the API will not
  3734  // be included in the string output. The member name will be present, but the
  3735  // value will be replaced with "sensitive".
  3736  func (s Column) String() string {
  3737  	return awsutil.Prettify(s)
  3738  }
  3739  
  3740  // GoString returns the string representation.
  3741  //
  3742  // API parameter values that are decorated as "sensitive" in the API will not
  3743  // be included in the string output. The member name will be present, but the
  3744  // value will be replaced with "sensitive".
  3745  func (s Column) GoString() string {
  3746  	return s.String()
  3747  }
  3748  
  3749  // SetComment sets the Comment field's value.
  3750  func (s *Column) SetComment(v string) *Column {
  3751  	s.Comment = &v
  3752  	return s
  3753  }
  3754  
  3755  // SetName sets the Name field's value.
  3756  func (s *Column) SetName(v string) *Column {
  3757  	s.Name = &v
  3758  	return s
  3759  }
  3760  
  3761  // SetType sets the Type field's value.
  3762  func (s *Column) SetType(v string) *Column {
  3763  	s.Type = &v
  3764  	return s
  3765  }
  3766  
  3767  // Information about the columns in a query execution result.
  3768  type ColumnInfo struct {
  3769  	_ struct{} `type:"structure"`
  3770  
  3771  	// Indicates whether values in the column are case-sensitive.
  3772  	CaseSensitive *bool `type:"boolean"`
  3773  
  3774  	// The catalog to which the query results belong.
  3775  	CatalogName *string `type:"string"`
  3776  
  3777  	// A column label.
  3778  	Label *string `type:"string"`
  3779  
  3780  	// The name of the column.
  3781  	//
  3782  	// Name is a required field
  3783  	Name *string `type:"string" required:"true"`
  3784  
  3785  	// Indicates the column's nullable status.
  3786  	Nullable *string `type:"string" enum:"ColumnNullable"`
  3787  
  3788  	// For DECIMAL data types, specifies the total number of digits, up to 38. For
  3789  	// performance reasons, we recommend up to 18 digits.
  3790  	Precision *int64 `type:"integer"`
  3791  
  3792  	// For DECIMAL data types, specifies the total number of digits in the fractional
  3793  	// part of the value. Defaults to 0.
  3794  	Scale *int64 `type:"integer"`
  3795  
  3796  	// The schema name (database name) to which the query results belong.
  3797  	SchemaName *string `type:"string"`
  3798  
  3799  	// The table name for the query results.
  3800  	TableName *string `type:"string"`
  3801  
  3802  	// The data type of the column.
  3803  	//
  3804  	// Type is a required field
  3805  	Type *string `type:"string" required:"true"`
  3806  }
  3807  
  3808  // String returns the string representation.
  3809  //
  3810  // API parameter values that are decorated as "sensitive" in the API will not
  3811  // be included in the string output. The member name will be present, but the
  3812  // value will be replaced with "sensitive".
  3813  func (s ColumnInfo) String() string {
  3814  	return awsutil.Prettify(s)
  3815  }
  3816  
  3817  // GoString returns the string representation.
  3818  //
  3819  // API parameter values that are decorated as "sensitive" in the API will not
  3820  // be included in the string output. The member name will be present, but the
  3821  // value will be replaced with "sensitive".
  3822  func (s ColumnInfo) GoString() string {
  3823  	return s.String()
  3824  }
  3825  
  3826  // SetCaseSensitive sets the CaseSensitive field's value.
  3827  func (s *ColumnInfo) SetCaseSensitive(v bool) *ColumnInfo {
  3828  	s.CaseSensitive = &v
  3829  	return s
  3830  }
  3831  
  3832  // SetCatalogName sets the CatalogName field's value.
  3833  func (s *ColumnInfo) SetCatalogName(v string) *ColumnInfo {
  3834  	s.CatalogName = &v
  3835  	return s
  3836  }
  3837  
  3838  // SetLabel sets the Label field's value.
  3839  func (s *ColumnInfo) SetLabel(v string) *ColumnInfo {
  3840  	s.Label = &v
  3841  	return s
  3842  }
  3843  
  3844  // SetName sets the Name field's value.
  3845  func (s *ColumnInfo) SetName(v string) *ColumnInfo {
  3846  	s.Name = &v
  3847  	return s
  3848  }
  3849  
  3850  // SetNullable sets the Nullable field's value.
  3851  func (s *ColumnInfo) SetNullable(v string) *ColumnInfo {
  3852  	s.Nullable = &v
  3853  	return s
  3854  }
  3855  
  3856  // SetPrecision sets the Precision field's value.
  3857  func (s *ColumnInfo) SetPrecision(v int64) *ColumnInfo {
  3858  	s.Precision = &v
  3859  	return s
  3860  }
  3861  
  3862  // SetScale sets the Scale field's value.
  3863  func (s *ColumnInfo) SetScale(v int64) *ColumnInfo {
  3864  	s.Scale = &v
  3865  	return s
  3866  }
  3867  
  3868  // SetSchemaName sets the SchemaName field's value.
  3869  func (s *ColumnInfo) SetSchemaName(v string) *ColumnInfo {
  3870  	s.SchemaName = &v
  3871  	return s
  3872  }
  3873  
  3874  // SetTableName sets the TableName field's value.
  3875  func (s *ColumnInfo) SetTableName(v string) *ColumnInfo {
  3876  	s.TableName = &v
  3877  	return s
  3878  }
  3879  
  3880  // SetType sets the Type field's value.
  3881  func (s *ColumnInfo) SetType(v string) *ColumnInfo {
  3882  	s.Type = &v
  3883  	return s
  3884  }
  3885  
  3886  type CreateDataCatalogInput struct {
  3887  	_ struct{} `type:"structure"`
  3888  
  3889  	// A description of the data catalog to be created.
  3890  	Description *string `min:"1" type:"string"`
  3891  
  3892  	// The name of the data catalog to create. The catalog name must be unique for
  3893  	// the Amazon Web Services account and can use a maximum of 128 alphanumeric,
  3894  	// underscore, at sign, or hyphen characters.
  3895  	//
  3896  	// Name is a required field
  3897  	Name *string `min:"1" type:"string" required:"true"`
  3898  
  3899  	// Specifies the Lambda function or functions to use for creating the data catalog.
  3900  	// This is a mapping whose values depend on the catalog type.
  3901  	//
  3902  	//    * For the HIVE data catalog type, use the following syntax. The metadata-function
  3903  	//    parameter is required. The sdk-version parameter is optional and defaults
  3904  	//    to the currently supported version. metadata-function=lambda_arn, sdk-version=version_number
  3905  	//
  3906  	//    * For the LAMBDA data catalog type, use one of the following sets of required
  3907  	//    parameters, but not both. If you have one Lambda function that processes
  3908  	//    metadata and another for reading the actual data, use the following syntax.
  3909  	//    Both parameters are required. metadata-function=lambda_arn, record-function=lambda_arn
  3910  	//    If you have a composite Lambda function that processes both metadata and
  3911  	//    data, use the following syntax to specify your Lambda function. function=lambda_arn
  3912  	//
  3913  	//    * The GLUE type takes a catalog ID parameter and is required. The catalog_id
  3914  	//    is the account ID of the Amazon Web Services account to which the Glue
  3915  	//    Data Catalog belongs. catalog-id=catalog_id The GLUE data catalog type
  3916  	//    also applies to the default AwsDataCatalog that already exists in your
  3917  	//    account, of which you can have only one and cannot modify. Queries that
  3918  	//    specify a Glue Data Catalog other than the default AwsDataCatalog must
  3919  	//    be run on Athena engine version 2. In Regions where Athena engine version
  3920  	//    2 is not available, creating new Glue data catalogs results in an INVALID_INPUT
  3921  	//    error.
  3922  	Parameters map[string]*string `type:"map"`
  3923  
  3924  	// A list of comma separated tags to add to the data catalog that is created.
  3925  	Tags []*Tag `type:"list"`
  3926  
  3927  	// The type of data catalog to create: LAMBDA for a federated catalog, HIVE
  3928  	// for an external hive metastore, or GLUE for an Glue Data Catalog.
  3929  	//
  3930  	// Type is a required field
  3931  	Type *string `type:"string" required:"true" enum:"DataCatalogType"`
  3932  }
  3933  
  3934  // String returns the string representation.
  3935  //
  3936  // API parameter values that are decorated as "sensitive" in the API will not
  3937  // be included in the string output. The member name will be present, but the
  3938  // value will be replaced with "sensitive".
  3939  func (s CreateDataCatalogInput) String() string {
  3940  	return awsutil.Prettify(s)
  3941  }
  3942  
  3943  // GoString returns the string representation.
  3944  //
  3945  // API parameter values that are decorated as "sensitive" in the API will not
  3946  // be included in the string output. The member name will be present, but the
  3947  // value will be replaced with "sensitive".
  3948  func (s CreateDataCatalogInput) GoString() string {
  3949  	return s.String()
  3950  }
  3951  
  3952  // Validate inspects the fields of the type to determine if they are valid.
  3953  func (s *CreateDataCatalogInput) Validate() error {
  3954  	invalidParams := request.ErrInvalidParams{Context: "CreateDataCatalogInput"}
  3955  	if s.Description != nil && len(*s.Description) < 1 {
  3956  		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
  3957  	}
  3958  	if s.Name == nil {
  3959  		invalidParams.Add(request.NewErrParamRequired("Name"))
  3960  	}
  3961  	if s.Name != nil && len(*s.Name) < 1 {
  3962  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  3963  	}
  3964  	if s.Type == nil {
  3965  		invalidParams.Add(request.NewErrParamRequired("Type"))
  3966  	}
  3967  	if s.Tags != nil {
  3968  		for i, v := range s.Tags {
  3969  			if v == nil {
  3970  				continue
  3971  			}
  3972  			if err := v.Validate(); err != nil {
  3973  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  3974  			}
  3975  		}
  3976  	}
  3977  
  3978  	if invalidParams.Len() > 0 {
  3979  		return invalidParams
  3980  	}
  3981  	return nil
  3982  }
  3983  
  3984  // SetDescription sets the Description field's value.
  3985  func (s *CreateDataCatalogInput) SetDescription(v string) *CreateDataCatalogInput {
  3986  	s.Description = &v
  3987  	return s
  3988  }
  3989  
  3990  // SetName sets the Name field's value.
  3991  func (s *CreateDataCatalogInput) SetName(v string) *CreateDataCatalogInput {
  3992  	s.Name = &v
  3993  	return s
  3994  }
  3995  
  3996  // SetParameters sets the Parameters field's value.
  3997  func (s *CreateDataCatalogInput) SetParameters(v map[string]*string) *CreateDataCatalogInput {
  3998  	s.Parameters = v
  3999  	return s
  4000  }
  4001  
  4002  // SetTags sets the Tags field's value.
  4003  func (s *CreateDataCatalogInput) SetTags(v []*Tag) *CreateDataCatalogInput {
  4004  	s.Tags = v
  4005  	return s
  4006  }
  4007  
  4008  // SetType sets the Type field's value.
  4009  func (s *CreateDataCatalogInput) SetType(v string) *CreateDataCatalogInput {
  4010  	s.Type = &v
  4011  	return s
  4012  }
  4013  
  4014  type CreateDataCatalogOutput struct {
  4015  	_ struct{} `type:"structure"`
  4016  }
  4017  
  4018  // String returns the string representation.
  4019  //
  4020  // API parameter values that are decorated as "sensitive" in the API will not
  4021  // be included in the string output. The member name will be present, but the
  4022  // value will be replaced with "sensitive".
  4023  func (s CreateDataCatalogOutput) String() string {
  4024  	return awsutil.Prettify(s)
  4025  }
  4026  
  4027  // GoString returns the string representation.
  4028  //
  4029  // API parameter values that are decorated as "sensitive" in the API will not
  4030  // be included in the string output. The member name will be present, but the
  4031  // value will be replaced with "sensitive".
  4032  func (s CreateDataCatalogOutput) GoString() string {
  4033  	return s.String()
  4034  }
  4035  
  4036  type CreateNamedQueryInput struct {
  4037  	_ struct{} `type:"structure"`
  4038  
  4039  	// A unique case-sensitive string used to ensure the request to create the query
  4040  	// is idempotent (executes only once). If another CreateNamedQuery request is
  4041  	// received, the same response is returned and another query is not created.
  4042  	// If a parameter has changed, for example, the QueryString, an error is returned.
  4043  	//
  4044  	// This token is listed as not required because Amazon Web Services SDKs (for
  4045  	// example the Amazon Web Services SDK for Java) auto-generate the token for
  4046  	// users. If you are not using the Amazon Web Services SDK or the Amazon Web
  4047  	// Services CLI, you must provide this token or the action will fail.
  4048  	ClientRequestToken *string `min:"32" type:"string" idempotencyToken:"true"`
  4049  
  4050  	// The database to which the query belongs.
  4051  	//
  4052  	// Database is a required field
  4053  	Database *string `min:"1" type:"string" required:"true"`
  4054  
  4055  	// The query description.
  4056  	Description *string `min:"1" type:"string"`
  4057  
  4058  	// The query name.
  4059  	//
  4060  	// Name is a required field
  4061  	Name *string `min:"1" type:"string" required:"true"`
  4062  
  4063  	// The contents of the query with all query statements.
  4064  	//
  4065  	// QueryString is a required field
  4066  	QueryString *string `min:"1" type:"string" required:"true"`
  4067  
  4068  	// The name of the workgroup in which the named query is being created.
  4069  	WorkGroup *string `type:"string"`
  4070  }
  4071  
  4072  // String returns the string representation.
  4073  //
  4074  // API parameter values that are decorated as "sensitive" in the API will not
  4075  // be included in the string output. The member name will be present, but the
  4076  // value will be replaced with "sensitive".
  4077  func (s CreateNamedQueryInput) String() string {
  4078  	return awsutil.Prettify(s)
  4079  }
  4080  
  4081  // GoString returns the string representation.
  4082  //
  4083  // API parameter values that are decorated as "sensitive" in the API will not
  4084  // be included in the string output. The member name will be present, but the
  4085  // value will be replaced with "sensitive".
  4086  func (s CreateNamedQueryInput) GoString() string {
  4087  	return s.String()
  4088  }
  4089  
  4090  // Validate inspects the fields of the type to determine if they are valid.
  4091  func (s *CreateNamedQueryInput) Validate() error {
  4092  	invalidParams := request.ErrInvalidParams{Context: "CreateNamedQueryInput"}
  4093  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 32 {
  4094  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 32))
  4095  	}
  4096  	if s.Database == nil {
  4097  		invalidParams.Add(request.NewErrParamRequired("Database"))
  4098  	}
  4099  	if s.Database != nil && len(*s.Database) < 1 {
  4100  		invalidParams.Add(request.NewErrParamMinLen("Database", 1))
  4101  	}
  4102  	if s.Description != nil && len(*s.Description) < 1 {
  4103  		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
  4104  	}
  4105  	if s.Name == nil {
  4106  		invalidParams.Add(request.NewErrParamRequired("Name"))
  4107  	}
  4108  	if s.Name != nil && len(*s.Name) < 1 {
  4109  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  4110  	}
  4111  	if s.QueryString == nil {
  4112  		invalidParams.Add(request.NewErrParamRequired("QueryString"))
  4113  	}
  4114  	if s.QueryString != nil && len(*s.QueryString) < 1 {
  4115  		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
  4116  	}
  4117  
  4118  	if invalidParams.Len() > 0 {
  4119  		return invalidParams
  4120  	}
  4121  	return nil
  4122  }
  4123  
  4124  // SetClientRequestToken sets the ClientRequestToken field's value.
  4125  func (s *CreateNamedQueryInput) SetClientRequestToken(v string) *CreateNamedQueryInput {
  4126  	s.ClientRequestToken = &v
  4127  	return s
  4128  }
  4129  
  4130  // SetDatabase sets the Database field's value.
  4131  func (s *CreateNamedQueryInput) SetDatabase(v string) *CreateNamedQueryInput {
  4132  	s.Database = &v
  4133  	return s
  4134  }
  4135  
  4136  // SetDescription sets the Description field's value.
  4137  func (s *CreateNamedQueryInput) SetDescription(v string) *CreateNamedQueryInput {
  4138  	s.Description = &v
  4139  	return s
  4140  }
  4141  
  4142  // SetName sets the Name field's value.
  4143  func (s *CreateNamedQueryInput) SetName(v string) *CreateNamedQueryInput {
  4144  	s.Name = &v
  4145  	return s
  4146  }
  4147  
  4148  // SetQueryString sets the QueryString field's value.
  4149  func (s *CreateNamedQueryInput) SetQueryString(v string) *CreateNamedQueryInput {
  4150  	s.QueryString = &v
  4151  	return s
  4152  }
  4153  
  4154  // SetWorkGroup sets the WorkGroup field's value.
  4155  func (s *CreateNamedQueryInput) SetWorkGroup(v string) *CreateNamedQueryInput {
  4156  	s.WorkGroup = &v
  4157  	return s
  4158  }
  4159  
  4160  type CreateNamedQueryOutput struct {
  4161  	_ struct{} `type:"structure"`
  4162  
  4163  	// The unique ID of the query.
  4164  	NamedQueryId *string `type:"string"`
  4165  }
  4166  
  4167  // String returns the string representation.
  4168  //
  4169  // API parameter values that are decorated as "sensitive" in the API will not
  4170  // be included in the string output. The member name will be present, but the
  4171  // value will be replaced with "sensitive".
  4172  func (s CreateNamedQueryOutput) String() string {
  4173  	return awsutil.Prettify(s)
  4174  }
  4175  
  4176  // GoString returns the string representation.
  4177  //
  4178  // API parameter values that are decorated as "sensitive" in the API will not
  4179  // be included in the string output. The member name will be present, but the
  4180  // value will be replaced with "sensitive".
  4181  func (s CreateNamedQueryOutput) GoString() string {
  4182  	return s.String()
  4183  }
  4184  
  4185  // SetNamedQueryId sets the NamedQueryId field's value.
  4186  func (s *CreateNamedQueryOutput) SetNamedQueryId(v string) *CreateNamedQueryOutput {
  4187  	s.NamedQueryId = &v
  4188  	return s
  4189  }
  4190  
  4191  type CreatePreparedStatementInput struct {
  4192  	_ struct{} `type:"structure"`
  4193  
  4194  	// The description of the prepared statement.
  4195  	Description *string `min:"1" type:"string"`
  4196  
  4197  	// The query string for the prepared statement.
  4198  	//
  4199  	// QueryStatement is a required field
  4200  	QueryStatement *string `min:"1" type:"string" required:"true"`
  4201  
  4202  	// The name of the prepared statement.
  4203  	//
  4204  	// StatementName is a required field
  4205  	StatementName *string `min:"1" type:"string" required:"true"`
  4206  
  4207  	// The name of the workgroup to which the prepared statement belongs.
  4208  	//
  4209  	// WorkGroup is a required field
  4210  	WorkGroup *string `type:"string" required:"true"`
  4211  }
  4212  
  4213  // String returns the string representation.
  4214  //
  4215  // API parameter values that are decorated as "sensitive" in the API will not
  4216  // be included in the string output. The member name will be present, but the
  4217  // value will be replaced with "sensitive".
  4218  func (s CreatePreparedStatementInput) String() string {
  4219  	return awsutil.Prettify(s)
  4220  }
  4221  
  4222  // GoString returns the string representation.
  4223  //
  4224  // API parameter values that are decorated as "sensitive" in the API will not
  4225  // be included in the string output. The member name will be present, but the
  4226  // value will be replaced with "sensitive".
  4227  func (s CreatePreparedStatementInput) GoString() string {
  4228  	return s.String()
  4229  }
  4230  
  4231  // Validate inspects the fields of the type to determine if they are valid.
  4232  func (s *CreatePreparedStatementInput) Validate() error {
  4233  	invalidParams := request.ErrInvalidParams{Context: "CreatePreparedStatementInput"}
  4234  	if s.Description != nil && len(*s.Description) < 1 {
  4235  		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
  4236  	}
  4237  	if s.QueryStatement == nil {
  4238  		invalidParams.Add(request.NewErrParamRequired("QueryStatement"))
  4239  	}
  4240  	if s.QueryStatement != nil && len(*s.QueryStatement) < 1 {
  4241  		invalidParams.Add(request.NewErrParamMinLen("QueryStatement", 1))
  4242  	}
  4243  	if s.StatementName == nil {
  4244  		invalidParams.Add(request.NewErrParamRequired("StatementName"))
  4245  	}
  4246  	if s.StatementName != nil && len(*s.StatementName) < 1 {
  4247  		invalidParams.Add(request.NewErrParamMinLen("StatementName", 1))
  4248  	}
  4249  	if s.WorkGroup == nil {
  4250  		invalidParams.Add(request.NewErrParamRequired("WorkGroup"))
  4251  	}
  4252  
  4253  	if invalidParams.Len() > 0 {
  4254  		return invalidParams
  4255  	}
  4256  	return nil
  4257  }
  4258  
  4259  // SetDescription sets the Description field's value.
  4260  func (s *CreatePreparedStatementInput) SetDescription(v string) *CreatePreparedStatementInput {
  4261  	s.Description = &v
  4262  	return s
  4263  }
  4264  
  4265  // SetQueryStatement sets the QueryStatement field's value.
  4266  func (s *CreatePreparedStatementInput) SetQueryStatement(v string) *CreatePreparedStatementInput {
  4267  	s.QueryStatement = &v
  4268  	return s
  4269  }
  4270  
  4271  // SetStatementName sets the StatementName field's value.
  4272  func (s *CreatePreparedStatementInput) SetStatementName(v string) *CreatePreparedStatementInput {
  4273  	s.StatementName = &v
  4274  	return s
  4275  }
  4276  
  4277  // SetWorkGroup sets the WorkGroup field's value.
  4278  func (s *CreatePreparedStatementInput) SetWorkGroup(v string) *CreatePreparedStatementInput {
  4279  	s.WorkGroup = &v
  4280  	return s
  4281  }
  4282  
  4283  type CreatePreparedStatementOutput struct {
  4284  	_ struct{} `type:"structure"`
  4285  }
  4286  
  4287  // String returns the string representation.
  4288  //
  4289  // API parameter values that are decorated as "sensitive" in the API will not
  4290  // be included in the string output. The member name will be present, but the
  4291  // value will be replaced with "sensitive".
  4292  func (s CreatePreparedStatementOutput) String() string {
  4293  	return awsutil.Prettify(s)
  4294  }
  4295  
  4296  // GoString returns the string representation.
  4297  //
  4298  // API parameter values that are decorated as "sensitive" in the API will not
  4299  // be included in the string output. The member name will be present, but the
  4300  // value will be replaced with "sensitive".
  4301  func (s CreatePreparedStatementOutput) GoString() string {
  4302  	return s.String()
  4303  }
  4304  
  4305  type CreateWorkGroupInput struct {
  4306  	_ struct{} `type:"structure"`
  4307  
  4308  	// The configuration for the workgroup, which includes the location in Amazon
  4309  	// S3 where query results are stored, the encryption configuration, if any,
  4310  	// used for encrypting query results, whether the Amazon CloudWatch Metrics
  4311  	// are enabled for the workgroup, the limit for the amount of bytes scanned
  4312  	// (cutoff) per query, if it is specified, and whether workgroup's settings
  4313  	// (specified with EnforceWorkGroupConfiguration) in the WorkGroupConfiguration
  4314  	// override client-side settings. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.
  4315  	Configuration *WorkGroupConfiguration `type:"structure"`
  4316  
  4317  	// The workgroup description.
  4318  	Description *string `type:"string"`
  4319  
  4320  	// The workgroup name.
  4321  	//
  4322  	// Name is a required field
  4323  	Name *string `type:"string" required:"true"`
  4324  
  4325  	// A list of comma separated tags to add to the workgroup that is created.
  4326  	Tags []*Tag `type:"list"`
  4327  }
  4328  
  4329  // String returns the string representation.
  4330  //
  4331  // API parameter values that are decorated as "sensitive" in the API will not
  4332  // be included in the string output. The member name will be present, but the
  4333  // value will be replaced with "sensitive".
  4334  func (s CreateWorkGroupInput) String() string {
  4335  	return awsutil.Prettify(s)
  4336  }
  4337  
  4338  // GoString returns the string representation.
  4339  //
  4340  // API parameter values that are decorated as "sensitive" in the API will not
  4341  // be included in the string output. The member name will be present, but the
  4342  // value will be replaced with "sensitive".
  4343  func (s CreateWorkGroupInput) GoString() string {
  4344  	return s.String()
  4345  }
  4346  
  4347  // Validate inspects the fields of the type to determine if they are valid.
  4348  func (s *CreateWorkGroupInput) Validate() error {
  4349  	invalidParams := request.ErrInvalidParams{Context: "CreateWorkGroupInput"}
  4350  	if s.Name == nil {
  4351  		invalidParams.Add(request.NewErrParamRequired("Name"))
  4352  	}
  4353  	if s.Configuration != nil {
  4354  		if err := s.Configuration.Validate(); err != nil {
  4355  			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
  4356  		}
  4357  	}
  4358  	if s.Tags != nil {
  4359  		for i, v := range s.Tags {
  4360  			if v == nil {
  4361  				continue
  4362  			}
  4363  			if err := v.Validate(); err != nil {
  4364  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  4365  			}
  4366  		}
  4367  	}
  4368  
  4369  	if invalidParams.Len() > 0 {
  4370  		return invalidParams
  4371  	}
  4372  	return nil
  4373  }
  4374  
  4375  // SetConfiguration sets the Configuration field's value.
  4376  func (s *CreateWorkGroupInput) SetConfiguration(v *WorkGroupConfiguration) *CreateWorkGroupInput {
  4377  	s.Configuration = v
  4378  	return s
  4379  }
  4380  
  4381  // SetDescription sets the Description field's value.
  4382  func (s *CreateWorkGroupInput) SetDescription(v string) *CreateWorkGroupInput {
  4383  	s.Description = &v
  4384  	return s
  4385  }
  4386  
  4387  // SetName sets the Name field's value.
  4388  func (s *CreateWorkGroupInput) SetName(v string) *CreateWorkGroupInput {
  4389  	s.Name = &v
  4390  	return s
  4391  }
  4392  
  4393  // SetTags sets the Tags field's value.
  4394  func (s *CreateWorkGroupInput) SetTags(v []*Tag) *CreateWorkGroupInput {
  4395  	s.Tags = v
  4396  	return s
  4397  }
  4398  
  4399  type CreateWorkGroupOutput struct {
  4400  	_ struct{} `type:"structure"`
  4401  }
  4402  
  4403  // String returns the string representation.
  4404  //
  4405  // API parameter values that are decorated as "sensitive" in the API will not
  4406  // be included in the string output. The member name will be present, but the
  4407  // value will be replaced with "sensitive".
  4408  func (s CreateWorkGroupOutput) String() string {
  4409  	return awsutil.Prettify(s)
  4410  }
  4411  
  4412  // GoString returns the string representation.
  4413  //
  4414  // API parameter values that are decorated as "sensitive" in the API will not
  4415  // be included in the string output. The member name will be present, but the
  4416  // value will be replaced with "sensitive".
  4417  func (s CreateWorkGroupOutput) GoString() string {
  4418  	return s.String()
  4419  }
  4420  
  4421  // Contains information about a data catalog in an Amazon Web Services account.
  4422  type DataCatalog struct {
  4423  	_ struct{} `type:"structure"`
  4424  
  4425  	// An optional description of the data catalog.
  4426  	Description *string `min:"1" type:"string"`
  4427  
  4428  	// The name of the data catalog. The catalog name must be unique for the Amazon
  4429  	// Web Services account and can use a maximum of 128 alphanumeric, underscore,
  4430  	// at sign, or hyphen characters.
  4431  	//
  4432  	// Name is a required field
  4433  	Name *string `min:"1" type:"string" required:"true"`
  4434  
  4435  	// Specifies the Lambda function or functions to use for the data catalog. This
  4436  	// is a mapping whose values depend on the catalog type.
  4437  	//
  4438  	//    * For the HIVE data catalog type, use the following syntax. The metadata-function
  4439  	//    parameter is required. The sdk-version parameter is optional and defaults
  4440  	//    to the currently supported version. metadata-function=lambda_arn, sdk-version=version_number
  4441  	//
  4442  	//    * For the LAMBDA data catalog type, use one of the following sets of required
  4443  	//    parameters, but not both. If you have one Lambda function that processes
  4444  	//    metadata and another for reading the actual data, use the following syntax.
  4445  	//    Both parameters are required. metadata-function=lambda_arn, record-function=lambda_arn
  4446  	//    If you have a composite Lambda function that processes both metadata and
  4447  	//    data, use the following syntax to specify your Lambda function. function=lambda_arn
  4448  	//
  4449  	//    * The GLUE type takes a catalog ID parameter and is required. The catalog_id
  4450  	//    is the account ID of the Amazon Web Services account to which the Glue
  4451  	//    catalog belongs. catalog-id=catalog_id The GLUE data catalog type also
  4452  	//    applies to the default AwsDataCatalog that already exists in your account,
  4453  	//    of which you can have only one and cannot modify. Queries that specify
  4454  	//    a Glue Data Catalog other than the default AwsDataCatalog must be run
  4455  	//    on Athena engine version 2.
  4456  	Parameters map[string]*string `type:"map"`
  4457  
  4458  	// The type of data catalog to create: LAMBDA for a federated catalog, HIVE
  4459  	// for an external hive metastore, or GLUE for an Glue Data Catalog.
  4460  	//
  4461  	// Type is a required field
  4462  	Type *string `type:"string" required:"true" enum:"DataCatalogType"`
  4463  }
  4464  
  4465  // String returns the string representation.
  4466  //
  4467  // API parameter values that are decorated as "sensitive" in the API will not
  4468  // be included in the string output. The member name will be present, but the
  4469  // value will be replaced with "sensitive".
  4470  func (s DataCatalog) String() string {
  4471  	return awsutil.Prettify(s)
  4472  }
  4473  
  4474  // GoString returns the string representation.
  4475  //
  4476  // API parameter values that are decorated as "sensitive" in the API will not
  4477  // be included in the string output. The member name will be present, but the
  4478  // value will be replaced with "sensitive".
  4479  func (s DataCatalog) GoString() string {
  4480  	return s.String()
  4481  }
  4482  
  4483  // SetDescription sets the Description field's value.
  4484  func (s *DataCatalog) SetDescription(v string) *DataCatalog {
  4485  	s.Description = &v
  4486  	return s
  4487  }
  4488  
  4489  // SetName sets the Name field's value.
  4490  func (s *DataCatalog) SetName(v string) *DataCatalog {
  4491  	s.Name = &v
  4492  	return s
  4493  }
  4494  
  4495  // SetParameters sets the Parameters field's value.
  4496  func (s *DataCatalog) SetParameters(v map[string]*string) *DataCatalog {
  4497  	s.Parameters = v
  4498  	return s
  4499  }
  4500  
  4501  // SetType sets the Type field's value.
  4502  func (s *DataCatalog) SetType(v string) *DataCatalog {
  4503  	s.Type = &v
  4504  	return s
  4505  }
  4506  
  4507  // The summary information for the data catalog, which includes its name and
  4508  // type.
  4509  type DataCatalogSummary struct {
  4510  	_ struct{} `type:"structure"`
  4511  
  4512  	// The name of the data catalog.
  4513  	CatalogName *string `min:"1" type:"string"`
  4514  
  4515  	// The data catalog type.
  4516  	Type *string `type:"string" enum:"DataCatalogType"`
  4517  }
  4518  
  4519  // String returns the string representation.
  4520  //
  4521  // API parameter values that are decorated as "sensitive" in the API will not
  4522  // be included in the string output. The member name will be present, but the
  4523  // value will be replaced with "sensitive".
  4524  func (s DataCatalogSummary) String() string {
  4525  	return awsutil.Prettify(s)
  4526  }
  4527  
  4528  // GoString returns the string representation.
  4529  //
  4530  // API parameter values that are decorated as "sensitive" in the API will not
  4531  // be included in the string output. The member name will be present, but the
  4532  // value will be replaced with "sensitive".
  4533  func (s DataCatalogSummary) GoString() string {
  4534  	return s.String()
  4535  }
  4536  
  4537  // SetCatalogName sets the CatalogName field's value.
  4538  func (s *DataCatalogSummary) SetCatalogName(v string) *DataCatalogSummary {
  4539  	s.CatalogName = &v
  4540  	return s
  4541  }
  4542  
  4543  // SetType sets the Type field's value.
  4544  func (s *DataCatalogSummary) SetType(v string) *DataCatalogSummary {
  4545  	s.Type = &v
  4546  	return s
  4547  }
  4548  
  4549  // Contains metadata information for a database in a data catalog.
  4550  type Database struct {
  4551  	_ struct{} `type:"structure"`
  4552  
  4553  	// An optional description of the database.
  4554  	Description *string `min:"1" type:"string"`
  4555  
  4556  	// The name of the database.
  4557  	//
  4558  	// Name is a required field
  4559  	Name *string `min:"1" type:"string" required:"true"`
  4560  
  4561  	// A set of custom key/value pairs.
  4562  	Parameters map[string]*string `type:"map"`
  4563  }
  4564  
  4565  // String returns the string representation.
  4566  //
  4567  // API parameter values that are decorated as "sensitive" in the API will not
  4568  // be included in the string output. The member name will be present, but the
  4569  // value will be replaced with "sensitive".
  4570  func (s Database) String() string {
  4571  	return awsutil.Prettify(s)
  4572  }
  4573  
  4574  // GoString returns the string representation.
  4575  //
  4576  // API parameter values that are decorated as "sensitive" in the API will not
  4577  // be included in the string output. The member name will be present, but the
  4578  // value will be replaced with "sensitive".
  4579  func (s Database) GoString() string {
  4580  	return s.String()
  4581  }
  4582  
  4583  // SetDescription sets the Description field's value.
  4584  func (s *Database) SetDescription(v string) *Database {
  4585  	s.Description = &v
  4586  	return s
  4587  }
  4588  
  4589  // SetName sets the Name field's value.
  4590  func (s *Database) SetName(v string) *Database {
  4591  	s.Name = &v
  4592  	return s
  4593  }
  4594  
  4595  // SetParameters sets the Parameters field's value.
  4596  func (s *Database) SetParameters(v map[string]*string) *Database {
  4597  	s.Parameters = v
  4598  	return s
  4599  }
  4600  
  4601  // A piece of data (a field in the table).
  4602  type Datum struct {
  4603  	_ struct{} `type:"structure"`
  4604  
  4605  	// The value of the datum.
  4606  	VarCharValue *string `type:"string"`
  4607  }
  4608  
  4609  // String returns the string representation.
  4610  //
  4611  // API parameter values that are decorated as "sensitive" in the API will not
  4612  // be included in the string output. The member name will be present, but the
  4613  // value will be replaced with "sensitive".
  4614  func (s Datum) String() string {
  4615  	return awsutil.Prettify(s)
  4616  }
  4617  
  4618  // GoString returns the string representation.
  4619  //
  4620  // API parameter values that are decorated as "sensitive" in the API will not
  4621  // be included in the string output. The member name will be present, but the
  4622  // value will be replaced with "sensitive".
  4623  func (s Datum) GoString() string {
  4624  	return s.String()
  4625  }
  4626  
  4627  // SetVarCharValue sets the VarCharValue field's value.
  4628  func (s *Datum) SetVarCharValue(v string) *Datum {
  4629  	s.VarCharValue = &v
  4630  	return s
  4631  }
  4632  
  4633  type DeleteDataCatalogInput struct {
  4634  	_ struct{} `type:"structure"`
  4635  
  4636  	// The name of the data catalog to delete.
  4637  	//
  4638  	// Name is a required field
  4639  	Name *string `min:"1" type:"string" required:"true"`
  4640  }
  4641  
  4642  // String returns the string representation.
  4643  //
  4644  // API parameter values that are decorated as "sensitive" in the API will not
  4645  // be included in the string output. The member name will be present, but the
  4646  // value will be replaced with "sensitive".
  4647  func (s DeleteDataCatalogInput) String() string {
  4648  	return awsutil.Prettify(s)
  4649  }
  4650  
  4651  // GoString returns the string representation.
  4652  //
  4653  // API parameter values that are decorated as "sensitive" in the API will not
  4654  // be included in the string output. The member name will be present, but the
  4655  // value will be replaced with "sensitive".
  4656  func (s DeleteDataCatalogInput) GoString() string {
  4657  	return s.String()
  4658  }
  4659  
  4660  // Validate inspects the fields of the type to determine if they are valid.
  4661  func (s *DeleteDataCatalogInput) Validate() error {
  4662  	invalidParams := request.ErrInvalidParams{Context: "DeleteDataCatalogInput"}
  4663  	if s.Name == nil {
  4664  		invalidParams.Add(request.NewErrParamRequired("Name"))
  4665  	}
  4666  	if s.Name != nil && len(*s.Name) < 1 {
  4667  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  4668  	}
  4669  
  4670  	if invalidParams.Len() > 0 {
  4671  		return invalidParams
  4672  	}
  4673  	return nil
  4674  }
  4675  
  4676  // SetName sets the Name field's value.
  4677  func (s *DeleteDataCatalogInput) SetName(v string) *DeleteDataCatalogInput {
  4678  	s.Name = &v
  4679  	return s
  4680  }
  4681  
  4682  type DeleteDataCatalogOutput struct {
  4683  	_ struct{} `type:"structure"`
  4684  }
  4685  
  4686  // String returns the string representation.
  4687  //
  4688  // API parameter values that are decorated as "sensitive" in the API will not
  4689  // be included in the string output. The member name will be present, but the
  4690  // value will be replaced with "sensitive".
  4691  func (s DeleteDataCatalogOutput) String() string {
  4692  	return awsutil.Prettify(s)
  4693  }
  4694  
  4695  // GoString returns the string representation.
  4696  //
  4697  // API parameter values that are decorated as "sensitive" in the API will not
  4698  // be included in the string output. The member name will be present, but the
  4699  // value will be replaced with "sensitive".
  4700  func (s DeleteDataCatalogOutput) GoString() string {
  4701  	return s.String()
  4702  }
  4703  
  4704  type DeleteNamedQueryInput struct {
  4705  	_ struct{} `type:"structure"`
  4706  
  4707  	// The unique ID of the query to delete.
  4708  	NamedQueryId *string `type:"string" idempotencyToken:"true"`
  4709  }
  4710  
  4711  // String returns the string representation.
  4712  //
  4713  // API parameter values that are decorated as "sensitive" in the API will not
  4714  // be included in the string output. The member name will be present, but the
  4715  // value will be replaced with "sensitive".
  4716  func (s DeleteNamedQueryInput) String() string {
  4717  	return awsutil.Prettify(s)
  4718  }
  4719  
  4720  // GoString returns the string representation.
  4721  //
  4722  // API parameter values that are decorated as "sensitive" in the API will not
  4723  // be included in the string output. The member name will be present, but the
  4724  // value will be replaced with "sensitive".
  4725  func (s DeleteNamedQueryInput) GoString() string {
  4726  	return s.String()
  4727  }
  4728  
  4729  // SetNamedQueryId sets the NamedQueryId field's value.
  4730  func (s *DeleteNamedQueryInput) SetNamedQueryId(v string) *DeleteNamedQueryInput {
  4731  	s.NamedQueryId = &v
  4732  	return s
  4733  }
  4734  
  4735  type DeleteNamedQueryOutput struct {
  4736  	_ struct{} `type:"structure"`
  4737  }
  4738  
  4739  // String returns the string representation.
  4740  //
  4741  // API parameter values that are decorated as "sensitive" in the API will not
  4742  // be included in the string output. The member name will be present, but the
  4743  // value will be replaced with "sensitive".
  4744  func (s DeleteNamedQueryOutput) String() string {
  4745  	return awsutil.Prettify(s)
  4746  }
  4747  
  4748  // GoString returns the string representation.
  4749  //
  4750  // API parameter values that are decorated as "sensitive" in the API will not
  4751  // be included in the string output. The member name will be present, but the
  4752  // value will be replaced with "sensitive".
  4753  func (s DeleteNamedQueryOutput) GoString() string {
  4754  	return s.String()
  4755  }
  4756  
  4757  type DeletePreparedStatementInput struct {
  4758  	_ struct{} `type:"structure"`
  4759  
  4760  	// The name of the prepared statement to delete.
  4761  	//
  4762  	// StatementName is a required field
  4763  	StatementName *string `min:"1" type:"string" required:"true"`
  4764  
  4765  	// The workgroup to which the statement to be deleted belongs.
  4766  	//
  4767  	// WorkGroup is a required field
  4768  	WorkGroup *string `type:"string" required:"true"`
  4769  }
  4770  
  4771  // String returns the string representation.
  4772  //
  4773  // API parameter values that are decorated as "sensitive" in the API will not
  4774  // be included in the string output. The member name will be present, but the
  4775  // value will be replaced with "sensitive".
  4776  func (s DeletePreparedStatementInput) String() string {
  4777  	return awsutil.Prettify(s)
  4778  }
  4779  
  4780  // GoString returns the string representation.
  4781  //
  4782  // API parameter values that are decorated as "sensitive" in the API will not
  4783  // be included in the string output. The member name will be present, but the
  4784  // value will be replaced with "sensitive".
  4785  func (s DeletePreparedStatementInput) GoString() string {
  4786  	return s.String()
  4787  }
  4788  
  4789  // Validate inspects the fields of the type to determine if they are valid.
  4790  func (s *DeletePreparedStatementInput) Validate() error {
  4791  	invalidParams := request.ErrInvalidParams{Context: "DeletePreparedStatementInput"}
  4792  	if s.StatementName == nil {
  4793  		invalidParams.Add(request.NewErrParamRequired("StatementName"))
  4794  	}
  4795  	if s.StatementName != nil && len(*s.StatementName) < 1 {
  4796  		invalidParams.Add(request.NewErrParamMinLen("StatementName", 1))
  4797  	}
  4798  	if s.WorkGroup == nil {
  4799  		invalidParams.Add(request.NewErrParamRequired("WorkGroup"))
  4800  	}
  4801  
  4802  	if invalidParams.Len() > 0 {
  4803  		return invalidParams
  4804  	}
  4805  	return nil
  4806  }
  4807  
  4808  // SetStatementName sets the StatementName field's value.
  4809  func (s *DeletePreparedStatementInput) SetStatementName(v string) *DeletePreparedStatementInput {
  4810  	s.StatementName = &v
  4811  	return s
  4812  }
  4813  
  4814  // SetWorkGroup sets the WorkGroup field's value.
  4815  func (s *DeletePreparedStatementInput) SetWorkGroup(v string) *DeletePreparedStatementInput {
  4816  	s.WorkGroup = &v
  4817  	return s
  4818  }
  4819  
  4820  type DeletePreparedStatementOutput struct {
  4821  	_ struct{} `type:"structure"`
  4822  }
  4823  
  4824  // String returns the string representation.
  4825  //
  4826  // API parameter values that are decorated as "sensitive" in the API will not
  4827  // be included in the string output. The member name will be present, but the
  4828  // value will be replaced with "sensitive".
  4829  func (s DeletePreparedStatementOutput) String() string {
  4830  	return awsutil.Prettify(s)
  4831  }
  4832  
  4833  // GoString returns the string representation.
  4834  //
  4835  // API parameter values that are decorated as "sensitive" in the API will not
  4836  // be included in the string output. The member name will be present, but the
  4837  // value will be replaced with "sensitive".
  4838  func (s DeletePreparedStatementOutput) GoString() string {
  4839  	return s.String()
  4840  }
  4841  
  4842  type DeleteWorkGroupInput struct {
  4843  	_ struct{} `type:"structure"`
  4844  
  4845  	// The option to delete the workgroup and its contents even if the workgroup
  4846  	// contains any named queries or query executions.
  4847  	RecursiveDeleteOption *bool `type:"boolean"`
  4848  
  4849  	// The unique name of the workgroup to delete.
  4850  	//
  4851  	// WorkGroup is a required field
  4852  	WorkGroup *string `type:"string" required:"true"`
  4853  }
  4854  
  4855  // String returns the string representation.
  4856  //
  4857  // API parameter values that are decorated as "sensitive" in the API will not
  4858  // be included in the string output. The member name will be present, but the
  4859  // value will be replaced with "sensitive".
  4860  func (s DeleteWorkGroupInput) String() string {
  4861  	return awsutil.Prettify(s)
  4862  }
  4863  
  4864  // GoString returns the string representation.
  4865  //
  4866  // API parameter values that are decorated as "sensitive" in the API will not
  4867  // be included in the string output. The member name will be present, but the
  4868  // value will be replaced with "sensitive".
  4869  func (s DeleteWorkGroupInput) GoString() string {
  4870  	return s.String()
  4871  }
  4872  
  4873  // Validate inspects the fields of the type to determine if they are valid.
  4874  func (s *DeleteWorkGroupInput) Validate() error {
  4875  	invalidParams := request.ErrInvalidParams{Context: "DeleteWorkGroupInput"}
  4876  	if s.WorkGroup == nil {
  4877  		invalidParams.Add(request.NewErrParamRequired("WorkGroup"))
  4878  	}
  4879  
  4880  	if invalidParams.Len() > 0 {
  4881  		return invalidParams
  4882  	}
  4883  	return nil
  4884  }
  4885  
  4886  // SetRecursiveDeleteOption sets the RecursiveDeleteOption field's value.
  4887  func (s *DeleteWorkGroupInput) SetRecursiveDeleteOption(v bool) *DeleteWorkGroupInput {
  4888  	s.RecursiveDeleteOption = &v
  4889  	return s
  4890  }
  4891  
  4892  // SetWorkGroup sets the WorkGroup field's value.
  4893  func (s *DeleteWorkGroupInput) SetWorkGroup(v string) *DeleteWorkGroupInput {
  4894  	s.WorkGroup = &v
  4895  	return s
  4896  }
  4897  
  4898  type DeleteWorkGroupOutput struct {
  4899  	_ struct{} `type:"structure"`
  4900  }
  4901  
  4902  // String returns the string representation.
  4903  //
  4904  // API parameter values that are decorated as "sensitive" in the API will not
  4905  // be included in the string output. The member name will be present, but the
  4906  // value will be replaced with "sensitive".
  4907  func (s DeleteWorkGroupOutput) String() string {
  4908  	return awsutil.Prettify(s)
  4909  }
  4910  
  4911  // GoString returns the string representation.
  4912  //
  4913  // API parameter values that are decorated as "sensitive" in the API will not
  4914  // be included in the string output. The member name will be present, but the
  4915  // value will be replaced with "sensitive".
  4916  func (s DeleteWorkGroupOutput) GoString() string {
  4917  	return s.String()
  4918  }
  4919  
  4920  // If query results are encrypted in Amazon S3, indicates the encryption option
  4921  // used (for example, SSE-KMS or CSE-KMS) and key information.
  4922  type EncryptionConfiguration struct {
  4923  	_ struct{} `type:"structure"`
  4924  
  4925  	// Indicates whether Amazon S3 server-side encryption with Amazon S3-managed
  4926  	// keys (SSE-S3), server-side encryption with KMS-managed keys (SSE-KMS), or
  4927  	// client-side encryption with KMS-managed keys (CSE-KMS) is used.
  4928  	//
  4929  	// If a query runs in a workgroup and the workgroup overrides client-side settings,
  4930  	// then the workgroup's setting for encryption is used. It specifies whether
  4931  	// query results must be encrypted, for all queries that run in this workgroup.
  4932  	//
  4933  	// EncryptionOption is a required field
  4934  	EncryptionOption *string `type:"string" required:"true" enum:"EncryptionOption"`
  4935  
  4936  	// For SSE-KMS and CSE-KMS, this is the KMS key ARN or ID.
  4937  	KmsKey *string `type:"string"`
  4938  }
  4939  
  4940  // String returns the string representation.
  4941  //
  4942  // API parameter values that are decorated as "sensitive" in the API will not
  4943  // be included in the string output. The member name will be present, but the
  4944  // value will be replaced with "sensitive".
  4945  func (s EncryptionConfiguration) String() string {
  4946  	return awsutil.Prettify(s)
  4947  }
  4948  
  4949  // GoString returns the string representation.
  4950  //
  4951  // API parameter values that are decorated as "sensitive" in the API will not
  4952  // be included in the string output. The member name will be present, but the
  4953  // value will be replaced with "sensitive".
  4954  func (s EncryptionConfiguration) GoString() string {
  4955  	return s.String()
  4956  }
  4957  
  4958  // Validate inspects the fields of the type to determine if they are valid.
  4959  func (s *EncryptionConfiguration) Validate() error {
  4960  	invalidParams := request.ErrInvalidParams{Context: "EncryptionConfiguration"}
  4961  	if s.EncryptionOption == nil {
  4962  		invalidParams.Add(request.NewErrParamRequired("EncryptionOption"))
  4963  	}
  4964  
  4965  	if invalidParams.Len() > 0 {
  4966  		return invalidParams
  4967  	}
  4968  	return nil
  4969  }
  4970  
  4971  // SetEncryptionOption sets the EncryptionOption field's value.
  4972  func (s *EncryptionConfiguration) SetEncryptionOption(v string) *EncryptionConfiguration {
  4973  	s.EncryptionOption = &v
  4974  	return s
  4975  }
  4976  
  4977  // SetKmsKey sets the KmsKey field's value.
  4978  func (s *EncryptionConfiguration) SetKmsKey(v string) *EncryptionConfiguration {
  4979  	s.KmsKey = &v
  4980  	return s
  4981  }
  4982  
  4983  // The Athena engine version for running queries.
  4984  type EngineVersion struct {
  4985  	_ struct{} `type:"structure"`
  4986  
  4987  	// Read only. The engine version on which the query runs. If the user requests
  4988  	// a valid engine version other than Auto, the effective engine version is the
  4989  	// same as the engine version that the user requested. If the user requests
  4990  	// Auto, the effective engine version is chosen by Athena. When a request to
  4991  	// update the engine version is made by a CreateWorkGroup or UpdateWorkGroup
  4992  	// operation, the EffectiveEngineVersion field is ignored.
  4993  	EffectiveEngineVersion *string `min:"1" type:"string"`
  4994  
  4995  	// The engine version requested by the user. Possible values are determined
  4996  	// by the output of ListEngineVersions, including Auto. The default is Auto.
  4997  	SelectedEngineVersion *string `min:"1" type:"string"`
  4998  }
  4999  
  5000  // String returns the string representation.
  5001  //
  5002  // API parameter values that are decorated as "sensitive" in the API will not
  5003  // be included in the string output. The member name will be present, but the
  5004  // value will be replaced with "sensitive".
  5005  func (s EngineVersion) String() string {
  5006  	return awsutil.Prettify(s)
  5007  }
  5008  
  5009  // GoString returns the string representation.
  5010  //
  5011  // API parameter values that are decorated as "sensitive" in the API will not
  5012  // be included in the string output. The member name will be present, but the
  5013  // value will be replaced with "sensitive".
  5014  func (s EngineVersion) GoString() string {
  5015  	return s.String()
  5016  }
  5017  
  5018  // Validate inspects the fields of the type to determine if they are valid.
  5019  func (s *EngineVersion) Validate() error {
  5020  	invalidParams := request.ErrInvalidParams{Context: "EngineVersion"}
  5021  	if s.EffectiveEngineVersion != nil && len(*s.EffectiveEngineVersion) < 1 {
  5022  		invalidParams.Add(request.NewErrParamMinLen("EffectiveEngineVersion", 1))
  5023  	}
  5024  	if s.SelectedEngineVersion != nil && len(*s.SelectedEngineVersion) < 1 {
  5025  		invalidParams.Add(request.NewErrParamMinLen("SelectedEngineVersion", 1))
  5026  	}
  5027  
  5028  	if invalidParams.Len() > 0 {
  5029  		return invalidParams
  5030  	}
  5031  	return nil
  5032  }
  5033  
  5034  // SetEffectiveEngineVersion sets the EffectiveEngineVersion field's value.
  5035  func (s *EngineVersion) SetEffectiveEngineVersion(v string) *EngineVersion {
  5036  	s.EffectiveEngineVersion = &v
  5037  	return s
  5038  }
  5039  
  5040  // SetSelectedEngineVersion sets the SelectedEngineVersion field's value.
  5041  func (s *EngineVersion) SetSelectedEngineVersion(v string) *EngineVersion {
  5042  	s.SelectedEngineVersion = &v
  5043  	return s
  5044  }
  5045  
  5046  type GetDataCatalogInput struct {
  5047  	_ struct{} `type:"structure"`
  5048  
  5049  	// The name of the data catalog to return.
  5050  	//
  5051  	// Name is a required field
  5052  	Name *string `min:"1" type:"string" required:"true"`
  5053  }
  5054  
  5055  // String returns the string representation.
  5056  //
  5057  // API parameter values that are decorated as "sensitive" in the API will not
  5058  // be included in the string output. The member name will be present, but the
  5059  // value will be replaced with "sensitive".
  5060  func (s GetDataCatalogInput) String() string {
  5061  	return awsutil.Prettify(s)
  5062  }
  5063  
  5064  // GoString returns the string representation.
  5065  //
  5066  // API parameter values that are decorated as "sensitive" in the API will not
  5067  // be included in the string output. The member name will be present, but the
  5068  // value will be replaced with "sensitive".
  5069  func (s GetDataCatalogInput) GoString() string {
  5070  	return s.String()
  5071  }
  5072  
  5073  // Validate inspects the fields of the type to determine if they are valid.
  5074  func (s *GetDataCatalogInput) Validate() error {
  5075  	invalidParams := request.ErrInvalidParams{Context: "GetDataCatalogInput"}
  5076  	if s.Name == nil {
  5077  		invalidParams.Add(request.NewErrParamRequired("Name"))
  5078  	}
  5079  	if s.Name != nil && len(*s.Name) < 1 {
  5080  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  5081  	}
  5082  
  5083  	if invalidParams.Len() > 0 {
  5084  		return invalidParams
  5085  	}
  5086  	return nil
  5087  }
  5088  
  5089  // SetName sets the Name field's value.
  5090  func (s *GetDataCatalogInput) SetName(v string) *GetDataCatalogInput {
  5091  	s.Name = &v
  5092  	return s
  5093  }
  5094  
  5095  type GetDataCatalogOutput struct {
  5096  	_ struct{} `type:"structure"`
  5097  
  5098  	// The data catalog returned.
  5099  	DataCatalog *DataCatalog `type:"structure"`
  5100  }
  5101  
  5102  // String returns the string representation.
  5103  //
  5104  // API parameter values that are decorated as "sensitive" in the API will not
  5105  // be included in the string output. The member name will be present, but the
  5106  // value will be replaced with "sensitive".
  5107  func (s GetDataCatalogOutput) String() string {
  5108  	return awsutil.Prettify(s)
  5109  }
  5110  
  5111  // GoString returns the string representation.
  5112  //
  5113  // API parameter values that are decorated as "sensitive" in the API will not
  5114  // be included in the string output. The member name will be present, but the
  5115  // value will be replaced with "sensitive".
  5116  func (s GetDataCatalogOutput) GoString() string {
  5117  	return s.String()
  5118  }
  5119  
  5120  // SetDataCatalog sets the DataCatalog field's value.
  5121  func (s *GetDataCatalogOutput) SetDataCatalog(v *DataCatalog) *GetDataCatalogOutput {
  5122  	s.DataCatalog = v
  5123  	return s
  5124  }
  5125  
  5126  type GetDatabaseInput struct {
  5127  	_ struct{} `type:"structure"`
  5128  
  5129  	// The name of the data catalog that contains the database to return.
  5130  	//
  5131  	// CatalogName is a required field
  5132  	CatalogName *string `min:"1" type:"string" required:"true"`
  5133  
  5134  	// The name of the database to return.
  5135  	//
  5136  	// DatabaseName is a required field
  5137  	DatabaseName *string `min:"1" type:"string" required:"true"`
  5138  }
  5139  
  5140  // String returns the string representation.
  5141  //
  5142  // API parameter values that are decorated as "sensitive" in the API will not
  5143  // be included in the string output. The member name will be present, but the
  5144  // value will be replaced with "sensitive".
  5145  func (s GetDatabaseInput) String() string {
  5146  	return awsutil.Prettify(s)
  5147  }
  5148  
  5149  // GoString returns the string representation.
  5150  //
  5151  // API parameter values that are decorated as "sensitive" in the API will not
  5152  // be included in the string output. The member name will be present, but the
  5153  // value will be replaced with "sensitive".
  5154  func (s GetDatabaseInput) GoString() string {
  5155  	return s.String()
  5156  }
  5157  
  5158  // Validate inspects the fields of the type to determine if they are valid.
  5159  func (s *GetDatabaseInput) Validate() error {
  5160  	invalidParams := request.ErrInvalidParams{Context: "GetDatabaseInput"}
  5161  	if s.CatalogName == nil {
  5162  		invalidParams.Add(request.NewErrParamRequired("CatalogName"))
  5163  	}
  5164  	if s.CatalogName != nil && len(*s.CatalogName) < 1 {
  5165  		invalidParams.Add(request.NewErrParamMinLen("CatalogName", 1))
  5166  	}
  5167  	if s.DatabaseName == nil {
  5168  		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
  5169  	}
  5170  	if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
  5171  		invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
  5172  	}
  5173  
  5174  	if invalidParams.Len() > 0 {
  5175  		return invalidParams
  5176  	}
  5177  	return nil
  5178  }
  5179  
  5180  // SetCatalogName sets the CatalogName field's value.
  5181  func (s *GetDatabaseInput) SetCatalogName(v string) *GetDatabaseInput {
  5182  	s.CatalogName = &v
  5183  	return s
  5184  }
  5185  
  5186  // SetDatabaseName sets the DatabaseName field's value.
  5187  func (s *GetDatabaseInput) SetDatabaseName(v string) *GetDatabaseInput {
  5188  	s.DatabaseName = &v
  5189  	return s
  5190  }
  5191  
  5192  type GetDatabaseOutput struct {
  5193  	_ struct{} `type:"structure"`
  5194  
  5195  	// The database returned.
  5196  	Database *Database `type:"structure"`
  5197  }
  5198  
  5199  // String returns the string representation.
  5200  //
  5201  // API parameter values that are decorated as "sensitive" in the API will not
  5202  // be included in the string output. The member name will be present, but the
  5203  // value will be replaced with "sensitive".
  5204  func (s GetDatabaseOutput) String() string {
  5205  	return awsutil.Prettify(s)
  5206  }
  5207  
  5208  // GoString returns the string representation.
  5209  //
  5210  // API parameter values that are decorated as "sensitive" in the API will not
  5211  // be included in the string output. The member name will be present, but the
  5212  // value will be replaced with "sensitive".
  5213  func (s GetDatabaseOutput) GoString() string {
  5214  	return s.String()
  5215  }
  5216  
  5217  // SetDatabase sets the Database field's value.
  5218  func (s *GetDatabaseOutput) SetDatabase(v *Database) *GetDatabaseOutput {
  5219  	s.Database = v
  5220  	return s
  5221  }
  5222  
  5223  type GetNamedQueryInput struct {
  5224  	_ struct{} `type:"structure"`
  5225  
  5226  	// The unique ID of the query. Use ListNamedQueries to get query IDs.
  5227  	//
  5228  	// NamedQueryId is a required field
  5229  	NamedQueryId *string `type:"string" required:"true"`
  5230  }
  5231  
  5232  // String returns the string representation.
  5233  //
  5234  // API parameter values that are decorated as "sensitive" in the API will not
  5235  // be included in the string output. The member name will be present, but the
  5236  // value will be replaced with "sensitive".
  5237  func (s GetNamedQueryInput) String() string {
  5238  	return awsutil.Prettify(s)
  5239  }
  5240  
  5241  // GoString returns the string representation.
  5242  //
  5243  // API parameter values that are decorated as "sensitive" in the API will not
  5244  // be included in the string output. The member name will be present, but the
  5245  // value will be replaced with "sensitive".
  5246  func (s GetNamedQueryInput) GoString() string {
  5247  	return s.String()
  5248  }
  5249  
  5250  // Validate inspects the fields of the type to determine if they are valid.
  5251  func (s *GetNamedQueryInput) Validate() error {
  5252  	invalidParams := request.ErrInvalidParams{Context: "GetNamedQueryInput"}
  5253  	if s.NamedQueryId == nil {
  5254  		invalidParams.Add(request.NewErrParamRequired("NamedQueryId"))
  5255  	}
  5256  
  5257  	if invalidParams.Len() > 0 {
  5258  		return invalidParams
  5259  	}
  5260  	return nil
  5261  }
  5262  
  5263  // SetNamedQueryId sets the NamedQueryId field's value.
  5264  func (s *GetNamedQueryInput) SetNamedQueryId(v string) *GetNamedQueryInput {
  5265  	s.NamedQueryId = &v
  5266  	return s
  5267  }
  5268  
  5269  type GetNamedQueryOutput struct {
  5270  	_ struct{} `type:"structure"`
  5271  
  5272  	// Information about the query.
  5273  	NamedQuery *NamedQuery `type:"structure"`
  5274  }
  5275  
  5276  // String returns the string representation.
  5277  //
  5278  // API parameter values that are decorated as "sensitive" in the API will not
  5279  // be included in the string output. The member name will be present, but the
  5280  // value will be replaced with "sensitive".
  5281  func (s GetNamedQueryOutput) String() string {
  5282  	return awsutil.Prettify(s)
  5283  }
  5284  
  5285  // GoString returns the string representation.
  5286  //
  5287  // API parameter values that are decorated as "sensitive" in the API will not
  5288  // be included in the string output. The member name will be present, but the
  5289  // value will be replaced with "sensitive".
  5290  func (s GetNamedQueryOutput) GoString() string {
  5291  	return s.String()
  5292  }
  5293  
  5294  // SetNamedQuery sets the NamedQuery field's value.
  5295  func (s *GetNamedQueryOutput) SetNamedQuery(v *NamedQuery) *GetNamedQueryOutput {
  5296  	s.NamedQuery = v
  5297  	return s
  5298  }
  5299  
  5300  type GetPreparedStatementInput struct {
  5301  	_ struct{} `type:"structure"`
  5302  
  5303  	// The name of the prepared statement to retrieve.
  5304  	//
  5305  	// StatementName is a required field
  5306  	StatementName *string `min:"1" type:"string" required:"true"`
  5307  
  5308  	// The workgroup to which the statement to be retrieved belongs.
  5309  	//
  5310  	// WorkGroup is a required field
  5311  	WorkGroup *string `type:"string" required:"true"`
  5312  }
  5313  
  5314  // String returns the string representation.
  5315  //
  5316  // API parameter values that are decorated as "sensitive" in the API will not
  5317  // be included in the string output. The member name will be present, but the
  5318  // value will be replaced with "sensitive".
  5319  func (s GetPreparedStatementInput) String() string {
  5320  	return awsutil.Prettify(s)
  5321  }
  5322  
  5323  // GoString returns the string representation.
  5324  //
  5325  // API parameter values that are decorated as "sensitive" in the API will not
  5326  // be included in the string output. The member name will be present, but the
  5327  // value will be replaced with "sensitive".
  5328  func (s GetPreparedStatementInput) GoString() string {
  5329  	return s.String()
  5330  }
  5331  
  5332  // Validate inspects the fields of the type to determine if they are valid.
  5333  func (s *GetPreparedStatementInput) Validate() error {
  5334  	invalidParams := request.ErrInvalidParams{Context: "GetPreparedStatementInput"}
  5335  	if s.StatementName == nil {
  5336  		invalidParams.Add(request.NewErrParamRequired("StatementName"))
  5337  	}
  5338  	if s.StatementName != nil && len(*s.StatementName) < 1 {
  5339  		invalidParams.Add(request.NewErrParamMinLen("StatementName", 1))
  5340  	}
  5341  	if s.WorkGroup == nil {
  5342  		invalidParams.Add(request.NewErrParamRequired("WorkGroup"))
  5343  	}
  5344  
  5345  	if invalidParams.Len() > 0 {
  5346  		return invalidParams
  5347  	}
  5348  	return nil
  5349  }
  5350  
  5351  // SetStatementName sets the StatementName field's value.
  5352  func (s *GetPreparedStatementInput) SetStatementName(v string) *GetPreparedStatementInput {
  5353  	s.StatementName = &v
  5354  	return s
  5355  }
  5356  
  5357  // SetWorkGroup sets the WorkGroup field's value.
  5358  func (s *GetPreparedStatementInput) SetWorkGroup(v string) *GetPreparedStatementInput {
  5359  	s.WorkGroup = &v
  5360  	return s
  5361  }
  5362  
  5363  type GetPreparedStatementOutput struct {
  5364  	_ struct{} `type:"structure"`
  5365  
  5366  	// The name of the prepared statement that was retrieved.
  5367  	PreparedStatement *PreparedStatement `type:"structure"`
  5368  }
  5369  
  5370  // String returns the string representation.
  5371  //
  5372  // API parameter values that are decorated as "sensitive" in the API will not
  5373  // be included in the string output. The member name will be present, but the
  5374  // value will be replaced with "sensitive".
  5375  func (s GetPreparedStatementOutput) String() string {
  5376  	return awsutil.Prettify(s)
  5377  }
  5378  
  5379  // GoString returns the string representation.
  5380  //
  5381  // API parameter values that are decorated as "sensitive" in the API will not
  5382  // be included in the string output. The member name will be present, but the
  5383  // value will be replaced with "sensitive".
  5384  func (s GetPreparedStatementOutput) GoString() string {
  5385  	return s.String()
  5386  }
  5387  
  5388  // SetPreparedStatement sets the PreparedStatement field's value.
  5389  func (s *GetPreparedStatementOutput) SetPreparedStatement(v *PreparedStatement) *GetPreparedStatementOutput {
  5390  	s.PreparedStatement = v
  5391  	return s
  5392  }
  5393  
  5394  type GetQueryExecutionInput struct {
  5395  	_ struct{} `type:"structure"`
  5396  
  5397  	// The unique ID of the query execution.
  5398  	//
  5399  	// QueryExecutionId is a required field
  5400  	QueryExecutionId *string `type:"string" required:"true"`
  5401  }
  5402  
  5403  // String returns the string representation.
  5404  //
  5405  // API parameter values that are decorated as "sensitive" in the API will not
  5406  // be included in the string output. The member name will be present, but the
  5407  // value will be replaced with "sensitive".
  5408  func (s GetQueryExecutionInput) String() string {
  5409  	return awsutil.Prettify(s)
  5410  }
  5411  
  5412  // GoString returns the string representation.
  5413  //
  5414  // API parameter values that are decorated as "sensitive" in the API will not
  5415  // be included in the string output. The member name will be present, but the
  5416  // value will be replaced with "sensitive".
  5417  func (s GetQueryExecutionInput) GoString() string {
  5418  	return s.String()
  5419  }
  5420  
  5421  // Validate inspects the fields of the type to determine if they are valid.
  5422  func (s *GetQueryExecutionInput) Validate() error {
  5423  	invalidParams := request.ErrInvalidParams{Context: "GetQueryExecutionInput"}
  5424  	if s.QueryExecutionId == nil {
  5425  		invalidParams.Add(request.NewErrParamRequired("QueryExecutionId"))
  5426  	}
  5427  
  5428  	if invalidParams.Len() > 0 {
  5429  		return invalidParams
  5430  	}
  5431  	return nil
  5432  }
  5433  
  5434  // SetQueryExecutionId sets the QueryExecutionId field's value.
  5435  func (s *GetQueryExecutionInput) SetQueryExecutionId(v string) *GetQueryExecutionInput {
  5436  	s.QueryExecutionId = &v
  5437  	return s
  5438  }
  5439  
  5440  type GetQueryExecutionOutput struct {
  5441  	_ struct{} `type:"structure"`
  5442  
  5443  	// Information about the query execution.
  5444  	QueryExecution *QueryExecution `type:"structure"`
  5445  }
  5446  
  5447  // String returns the string representation.
  5448  //
  5449  // API parameter values that are decorated as "sensitive" in the API will not
  5450  // be included in the string output. The member name will be present, but the
  5451  // value will be replaced with "sensitive".
  5452  func (s GetQueryExecutionOutput) String() string {
  5453  	return awsutil.Prettify(s)
  5454  }
  5455  
  5456  // GoString returns the string representation.
  5457  //
  5458  // API parameter values that are decorated as "sensitive" in the API will not
  5459  // be included in the string output. The member name will be present, but the
  5460  // value will be replaced with "sensitive".
  5461  func (s GetQueryExecutionOutput) GoString() string {
  5462  	return s.String()
  5463  }
  5464  
  5465  // SetQueryExecution sets the QueryExecution field's value.
  5466  func (s *GetQueryExecutionOutput) SetQueryExecution(v *QueryExecution) *GetQueryExecutionOutput {
  5467  	s.QueryExecution = v
  5468  	return s
  5469  }
  5470  
  5471  type GetQueryResultsInput struct {
  5472  	_ struct{} `type:"structure"`
  5473  
  5474  	// The maximum number of results (rows) to return in this request.
  5475  	MaxResults *int64 `min:"1" type:"integer"`
  5476  
  5477  	// A token generated by the Athena service that specifies where to continue
  5478  	// pagination if a previous request was truncated. To obtain the next set of
  5479  	// pages, pass in the NextToken from the response object of the previous page
  5480  	// call.
  5481  	NextToken *string `min:"1" type:"string"`
  5482  
  5483  	// The unique ID of the query execution.
  5484  	//
  5485  	// QueryExecutionId is a required field
  5486  	QueryExecutionId *string `type:"string" required:"true"`
  5487  }
  5488  
  5489  // String returns the string representation.
  5490  //
  5491  // API parameter values that are decorated as "sensitive" in the API will not
  5492  // be included in the string output. The member name will be present, but the
  5493  // value will be replaced with "sensitive".
  5494  func (s GetQueryResultsInput) String() string {
  5495  	return awsutil.Prettify(s)
  5496  }
  5497  
  5498  // GoString returns the string representation.
  5499  //
  5500  // API parameter values that are decorated as "sensitive" in the API will not
  5501  // be included in the string output. The member name will be present, but the
  5502  // value will be replaced with "sensitive".
  5503  func (s GetQueryResultsInput) GoString() string {
  5504  	return s.String()
  5505  }
  5506  
  5507  // Validate inspects the fields of the type to determine if they are valid.
  5508  func (s *GetQueryResultsInput) Validate() error {
  5509  	invalidParams := request.ErrInvalidParams{Context: "GetQueryResultsInput"}
  5510  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5511  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5512  	}
  5513  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  5514  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  5515  	}
  5516  	if s.QueryExecutionId == nil {
  5517  		invalidParams.Add(request.NewErrParamRequired("QueryExecutionId"))
  5518  	}
  5519  
  5520  	if invalidParams.Len() > 0 {
  5521  		return invalidParams
  5522  	}
  5523  	return nil
  5524  }
  5525  
  5526  // SetMaxResults sets the MaxResults field's value.
  5527  func (s *GetQueryResultsInput) SetMaxResults(v int64) *GetQueryResultsInput {
  5528  	s.MaxResults = &v
  5529  	return s
  5530  }
  5531  
  5532  // SetNextToken sets the NextToken field's value.
  5533  func (s *GetQueryResultsInput) SetNextToken(v string) *GetQueryResultsInput {
  5534  	s.NextToken = &v
  5535  	return s
  5536  }
  5537  
  5538  // SetQueryExecutionId sets the QueryExecutionId field's value.
  5539  func (s *GetQueryResultsInput) SetQueryExecutionId(v string) *GetQueryResultsInput {
  5540  	s.QueryExecutionId = &v
  5541  	return s
  5542  }
  5543  
  5544  type GetQueryResultsOutput struct {
  5545  	_ struct{} `type:"structure"`
  5546  
  5547  	// A token generated by the Athena service that specifies where to continue
  5548  	// pagination if a previous request was truncated. To obtain the next set of
  5549  	// pages, pass in the NextToken from the response object of the previous page
  5550  	// call.
  5551  	NextToken *string `min:"1" type:"string"`
  5552  
  5553  	// The results of the query execution.
  5554  	ResultSet *ResultSet `type:"structure"`
  5555  
  5556  	// The number of rows inserted with a CREATE TABLE AS SELECT statement.
  5557  	UpdateCount *int64 `type:"long"`
  5558  }
  5559  
  5560  // String returns the string representation.
  5561  //
  5562  // API parameter values that are decorated as "sensitive" in the API will not
  5563  // be included in the string output. The member name will be present, but the
  5564  // value will be replaced with "sensitive".
  5565  func (s GetQueryResultsOutput) String() string {
  5566  	return awsutil.Prettify(s)
  5567  }
  5568  
  5569  // GoString returns the string representation.
  5570  //
  5571  // API parameter values that are decorated as "sensitive" in the API will not
  5572  // be included in the string output. The member name will be present, but the
  5573  // value will be replaced with "sensitive".
  5574  func (s GetQueryResultsOutput) GoString() string {
  5575  	return s.String()
  5576  }
  5577  
  5578  // SetNextToken sets the NextToken field's value.
  5579  func (s *GetQueryResultsOutput) SetNextToken(v string) *GetQueryResultsOutput {
  5580  	s.NextToken = &v
  5581  	return s
  5582  }
  5583  
  5584  // SetResultSet sets the ResultSet field's value.
  5585  func (s *GetQueryResultsOutput) SetResultSet(v *ResultSet) *GetQueryResultsOutput {
  5586  	s.ResultSet = v
  5587  	return s
  5588  }
  5589  
  5590  // SetUpdateCount sets the UpdateCount field's value.
  5591  func (s *GetQueryResultsOutput) SetUpdateCount(v int64) *GetQueryResultsOutput {
  5592  	s.UpdateCount = &v
  5593  	return s
  5594  }
  5595  
  5596  type GetTableMetadataInput struct {
  5597  	_ struct{} `type:"structure"`
  5598  
  5599  	// The name of the data catalog that contains the database and table metadata
  5600  	// to return.
  5601  	//
  5602  	// CatalogName is a required field
  5603  	CatalogName *string `min:"1" type:"string" required:"true"`
  5604  
  5605  	// The name of the database that contains the table metadata to return.
  5606  	//
  5607  	// DatabaseName is a required field
  5608  	DatabaseName *string `min:"1" type:"string" required:"true"`
  5609  
  5610  	// The name of the table for which metadata is returned.
  5611  	//
  5612  	// TableName is a required field
  5613  	TableName *string `min:"1" type:"string" required:"true"`
  5614  }
  5615  
  5616  // String returns the string representation.
  5617  //
  5618  // API parameter values that are decorated as "sensitive" in the API will not
  5619  // be included in the string output. The member name will be present, but the
  5620  // value will be replaced with "sensitive".
  5621  func (s GetTableMetadataInput) String() string {
  5622  	return awsutil.Prettify(s)
  5623  }
  5624  
  5625  // GoString returns the string representation.
  5626  //
  5627  // API parameter values that are decorated as "sensitive" in the API will not
  5628  // be included in the string output. The member name will be present, but the
  5629  // value will be replaced with "sensitive".
  5630  func (s GetTableMetadataInput) GoString() string {
  5631  	return s.String()
  5632  }
  5633  
  5634  // Validate inspects the fields of the type to determine if they are valid.
  5635  func (s *GetTableMetadataInput) Validate() error {
  5636  	invalidParams := request.ErrInvalidParams{Context: "GetTableMetadataInput"}
  5637  	if s.CatalogName == nil {
  5638  		invalidParams.Add(request.NewErrParamRequired("CatalogName"))
  5639  	}
  5640  	if s.CatalogName != nil && len(*s.CatalogName) < 1 {
  5641  		invalidParams.Add(request.NewErrParamMinLen("CatalogName", 1))
  5642  	}
  5643  	if s.DatabaseName == nil {
  5644  		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
  5645  	}
  5646  	if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
  5647  		invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
  5648  	}
  5649  	if s.TableName == nil {
  5650  		invalidParams.Add(request.NewErrParamRequired("TableName"))
  5651  	}
  5652  	if s.TableName != nil && len(*s.TableName) < 1 {
  5653  		invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
  5654  	}
  5655  
  5656  	if invalidParams.Len() > 0 {
  5657  		return invalidParams
  5658  	}
  5659  	return nil
  5660  }
  5661  
  5662  // SetCatalogName sets the CatalogName field's value.
  5663  func (s *GetTableMetadataInput) SetCatalogName(v string) *GetTableMetadataInput {
  5664  	s.CatalogName = &v
  5665  	return s
  5666  }
  5667  
  5668  // SetDatabaseName sets the DatabaseName field's value.
  5669  func (s *GetTableMetadataInput) SetDatabaseName(v string) *GetTableMetadataInput {
  5670  	s.DatabaseName = &v
  5671  	return s
  5672  }
  5673  
  5674  // SetTableName sets the TableName field's value.
  5675  func (s *GetTableMetadataInput) SetTableName(v string) *GetTableMetadataInput {
  5676  	s.TableName = &v
  5677  	return s
  5678  }
  5679  
  5680  type GetTableMetadataOutput struct {
  5681  	_ struct{} `type:"structure"`
  5682  
  5683  	// An object that contains table metadata.
  5684  	TableMetadata *TableMetadata `type:"structure"`
  5685  }
  5686  
  5687  // String returns the string representation.
  5688  //
  5689  // API parameter values that are decorated as "sensitive" in the API will not
  5690  // be included in the string output. The member name will be present, but the
  5691  // value will be replaced with "sensitive".
  5692  func (s GetTableMetadataOutput) String() string {
  5693  	return awsutil.Prettify(s)
  5694  }
  5695  
  5696  // GoString returns the string representation.
  5697  //
  5698  // API parameter values that are decorated as "sensitive" in the API will not
  5699  // be included in the string output. The member name will be present, but the
  5700  // value will be replaced with "sensitive".
  5701  func (s GetTableMetadataOutput) GoString() string {
  5702  	return s.String()
  5703  }
  5704  
  5705  // SetTableMetadata sets the TableMetadata field's value.
  5706  func (s *GetTableMetadataOutput) SetTableMetadata(v *TableMetadata) *GetTableMetadataOutput {
  5707  	s.TableMetadata = v
  5708  	return s
  5709  }
  5710  
  5711  type GetWorkGroupInput struct {
  5712  	_ struct{} `type:"structure"`
  5713  
  5714  	// The name of the workgroup.
  5715  	//
  5716  	// WorkGroup is a required field
  5717  	WorkGroup *string `type:"string" required:"true"`
  5718  }
  5719  
  5720  // String returns the string representation.
  5721  //
  5722  // API parameter values that are decorated as "sensitive" in the API will not
  5723  // be included in the string output. The member name will be present, but the
  5724  // value will be replaced with "sensitive".
  5725  func (s GetWorkGroupInput) String() string {
  5726  	return awsutil.Prettify(s)
  5727  }
  5728  
  5729  // GoString returns the string representation.
  5730  //
  5731  // API parameter values that are decorated as "sensitive" in the API will not
  5732  // be included in the string output. The member name will be present, but the
  5733  // value will be replaced with "sensitive".
  5734  func (s GetWorkGroupInput) GoString() string {
  5735  	return s.String()
  5736  }
  5737  
  5738  // Validate inspects the fields of the type to determine if they are valid.
  5739  func (s *GetWorkGroupInput) Validate() error {
  5740  	invalidParams := request.ErrInvalidParams{Context: "GetWorkGroupInput"}
  5741  	if s.WorkGroup == nil {
  5742  		invalidParams.Add(request.NewErrParamRequired("WorkGroup"))
  5743  	}
  5744  
  5745  	if invalidParams.Len() > 0 {
  5746  		return invalidParams
  5747  	}
  5748  	return nil
  5749  }
  5750  
  5751  // SetWorkGroup sets the WorkGroup field's value.
  5752  func (s *GetWorkGroupInput) SetWorkGroup(v string) *GetWorkGroupInput {
  5753  	s.WorkGroup = &v
  5754  	return s
  5755  }
  5756  
  5757  type GetWorkGroupOutput struct {
  5758  	_ struct{} `type:"structure"`
  5759  
  5760  	// Information about the workgroup.
  5761  	WorkGroup *WorkGroup `type:"structure"`
  5762  }
  5763  
  5764  // String returns the string representation.
  5765  //
  5766  // API parameter values that are decorated as "sensitive" in the API will not
  5767  // be included in the string output. The member name will be present, but the
  5768  // value will be replaced with "sensitive".
  5769  func (s GetWorkGroupOutput) String() string {
  5770  	return awsutil.Prettify(s)
  5771  }
  5772  
  5773  // GoString returns the string representation.
  5774  //
  5775  // API parameter values that are decorated as "sensitive" in the API will not
  5776  // be included in the string output. The member name will be present, but the
  5777  // value will be replaced with "sensitive".
  5778  func (s GetWorkGroupOutput) GoString() string {
  5779  	return s.String()
  5780  }
  5781  
  5782  // SetWorkGroup sets the WorkGroup field's value.
  5783  func (s *GetWorkGroupOutput) SetWorkGroup(v *WorkGroup) *GetWorkGroupOutput {
  5784  	s.WorkGroup = v
  5785  	return s
  5786  }
  5787  
  5788  // Indicates a platform issue, which may be due to a transient condition or
  5789  // outage.
  5790  type InternalServerException struct {
  5791  	_            struct{}                  `type:"structure"`
  5792  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5793  
  5794  	Message_ *string `locationName:"Message" type:"string"`
  5795  }
  5796  
  5797  // String returns the string representation.
  5798  //
  5799  // API parameter values that are decorated as "sensitive" in the API will not
  5800  // be included in the string output. The member name will be present, but the
  5801  // value will be replaced with "sensitive".
  5802  func (s InternalServerException) String() string {
  5803  	return awsutil.Prettify(s)
  5804  }
  5805  
  5806  // GoString returns the string representation.
  5807  //
  5808  // API parameter values that are decorated as "sensitive" in the API will not
  5809  // be included in the string output. The member name will be present, but the
  5810  // value will be replaced with "sensitive".
  5811  func (s InternalServerException) GoString() string {
  5812  	return s.String()
  5813  }
  5814  
  5815  func newErrorInternalServerException(v protocol.ResponseMetadata) error {
  5816  	return &InternalServerException{
  5817  		RespMetadata: v,
  5818  	}
  5819  }
  5820  
  5821  // Code returns the exception type name.
  5822  func (s *InternalServerException) Code() string {
  5823  	return "InternalServerException"
  5824  }
  5825  
  5826  // Message returns the exception's message.
  5827  func (s *InternalServerException) Message() string {
  5828  	if s.Message_ != nil {
  5829  		return *s.Message_
  5830  	}
  5831  	return ""
  5832  }
  5833  
  5834  // OrigErr always returns nil, satisfies awserr.Error interface.
  5835  func (s *InternalServerException) OrigErr() error {
  5836  	return nil
  5837  }
  5838  
  5839  func (s *InternalServerException) Error() string {
  5840  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5841  }
  5842  
  5843  // Status code returns the HTTP status code for the request's response error.
  5844  func (s *InternalServerException) StatusCode() int {
  5845  	return s.RespMetadata.StatusCode
  5846  }
  5847  
  5848  // RequestID returns the service's response RequestID for request.
  5849  func (s *InternalServerException) RequestID() string {
  5850  	return s.RespMetadata.RequestID
  5851  }
  5852  
  5853  // Indicates that something is wrong with the input to the request. For example,
  5854  // a required parameter may be missing or out of range.
  5855  type InvalidRequestException struct {
  5856  	_            struct{}                  `type:"structure"`
  5857  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5858  
  5859  	// The error code returned when the query execution failed to process, or when
  5860  	// the processing request for the named query failed.
  5861  	AthenaErrorCode *string `min:"1" type:"string"`
  5862  
  5863  	Message_ *string `locationName:"Message" type:"string"`
  5864  }
  5865  
  5866  // String returns the string representation.
  5867  //
  5868  // API parameter values that are decorated as "sensitive" in the API will not
  5869  // be included in the string output. The member name will be present, but the
  5870  // value will be replaced with "sensitive".
  5871  func (s InvalidRequestException) String() string {
  5872  	return awsutil.Prettify(s)
  5873  }
  5874  
  5875  // GoString returns the string representation.
  5876  //
  5877  // API parameter values that are decorated as "sensitive" in the API will not
  5878  // be included in the string output. The member name will be present, but the
  5879  // value will be replaced with "sensitive".
  5880  func (s InvalidRequestException) GoString() string {
  5881  	return s.String()
  5882  }
  5883  
  5884  func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
  5885  	return &InvalidRequestException{
  5886  		RespMetadata: v,
  5887  	}
  5888  }
  5889  
  5890  // Code returns the exception type name.
  5891  func (s *InvalidRequestException) Code() string {
  5892  	return "InvalidRequestException"
  5893  }
  5894  
  5895  // Message returns the exception's message.
  5896  func (s *InvalidRequestException) Message() string {
  5897  	if s.Message_ != nil {
  5898  		return *s.Message_
  5899  	}
  5900  	return ""
  5901  }
  5902  
  5903  // OrigErr always returns nil, satisfies awserr.Error interface.
  5904  func (s *InvalidRequestException) OrigErr() error {
  5905  	return nil
  5906  }
  5907  
  5908  func (s *InvalidRequestException) Error() string {
  5909  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  5910  }
  5911  
  5912  // Status code returns the HTTP status code for the request's response error.
  5913  func (s *InvalidRequestException) StatusCode() int {
  5914  	return s.RespMetadata.StatusCode
  5915  }
  5916  
  5917  // RequestID returns the service's response RequestID for request.
  5918  func (s *InvalidRequestException) RequestID() string {
  5919  	return s.RespMetadata.RequestID
  5920  }
  5921  
  5922  type ListDataCatalogsInput struct {
  5923  	_ struct{} `type:"structure"`
  5924  
  5925  	// Specifies the maximum number of data catalogs to return.
  5926  	MaxResults *int64 `min:"2" type:"integer"`
  5927  
  5928  	// A token generated by the Athena service that specifies where to continue
  5929  	// pagination if a previous request was truncated. To obtain the next set of
  5930  	// pages, pass in the NextToken from the response object of the previous page
  5931  	// call.
  5932  	NextToken *string `min:"1" type:"string"`
  5933  }
  5934  
  5935  // String returns the string representation.
  5936  //
  5937  // API parameter values that are decorated as "sensitive" in the API will not
  5938  // be included in the string output. The member name will be present, but the
  5939  // value will be replaced with "sensitive".
  5940  func (s ListDataCatalogsInput) String() string {
  5941  	return awsutil.Prettify(s)
  5942  }
  5943  
  5944  // GoString returns the string representation.
  5945  //
  5946  // API parameter values that are decorated as "sensitive" in the API will not
  5947  // be included in the string output. The member name will be present, but the
  5948  // value will be replaced with "sensitive".
  5949  func (s ListDataCatalogsInput) GoString() string {
  5950  	return s.String()
  5951  }
  5952  
  5953  // Validate inspects the fields of the type to determine if they are valid.
  5954  func (s *ListDataCatalogsInput) Validate() error {
  5955  	invalidParams := request.ErrInvalidParams{Context: "ListDataCatalogsInput"}
  5956  	if s.MaxResults != nil && *s.MaxResults < 2 {
  5957  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 2))
  5958  	}
  5959  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  5960  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  5961  	}
  5962  
  5963  	if invalidParams.Len() > 0 {
  5964  		return invalidParams
  5965  	}
  5966  	return nil
  5967  }
  5968  
  5969  // SetMaxResults sets the MaxResults field's value.
  5970  func (s *ListDataCatalogsInput) SetMaxResults(v int64) *ListDataCatalogsInput {
  5971  	s.MaxResults = &v
  5972  	return s
  5973  }
  5974  
  5975  // SetNextToken sets the NextToken field's value.
  5976  func (s *ListDataCatalogsInput) SetNextToken(v string) *ListDataCatalogsInput {
  5977  	s.NextToken = &v
  5978  	return s
  5979  }
  5980  
  5981  type ListDataCatalogsOutput struct {
  5982  	_ struct{} `type:"structure"`
  5983  
  5984  	// A summary list of data catalogs.
  5985  	DataCatalogsSummary []*DataCatalogSummary `type:"list"`
  5986  
  5987  	// A token generated by the Athena service that specifies where to continue
  5988  	// pagination if a previous request was truncated. To obtain the next set of
  5989  	// pages, pass in the NextToken from the response object of the previous page
  5990  	// call.
  5991  	NextToken *string `min:"1" type:"string"`
  5992  }
  5993  
  5994  // String returns the string representation.
  5995  //
  5996  // API parameter values that are decorated as "sensitive" in the API will not
  5997  // be included in the string output. The member name will be present, but the
  5998  // value will be replaced with "sensitive".
  5999  func (s ListDataCatalogsOutput) String() string {
  6000  	return awsutil.Prettify(s)
  6001  }
  6002  
  6003  // GoString returns the string representation.
  6004  //
  6005  // API parameter values that are decorated as "sensitive" in the API will not
  6006  // be included in the string output. The member name will be present, but the
  6007  // value will be replaced with "sensitive".
  6008  func (s ListDataCatalogsOutput) GoString() string {
  6009  	return s.String()
  6010  }
  6011  
  6012  // SetDataCatalogsSummary sets the DataCatalogsSummary field's value.
  6013  func (s *ListDataCatalogsOutput) SetDataCatalogsSummary(v []*DataCatalogSummary) *ListDataCatalogsOutput {
  6014  	s.DataCatalogsSummary = v
  6015  	return s
  6016  }
  6017  
  6018  // SetNextToken sets the NextToken field's value.
  6019  func (s *ListDataCatalogsOutput) SetNextToken(v string) *ListDataCatalogsOutput {
  6020  	s.NextToken = &v
  6021  	return s
  6022  }
  6023  
  6024  type ListDatabasesInput struct {
  6025  	_ struct{} `type:"structure"`
  6026  
  6027  	// The name of the data catalog that contains the databases to return.
  6028  	//
  6029  	// CatalogName is a required field
  6030  	CatalogName *string `min:"1" type:"string" required:"true"`
  6031  
  6032  	// Specifies the maximum number of results to return.
  6033  	MaxResults *int64 `min:"1" type:"integer"`
  6034  
  6035  	// A token generated by the Athena service that specifies where to continue
  6036  	// pagination if a previous request was truncated. To obtain the next set of
  6037  	// pages, pass in the NextToken from the response object of the previous page
  6038  	// call.
  6039  	NextToken *string `min:"1" type:"string"`
  6040  }
  6041  
  6042  // String returns the string representation.
  6043  //
  6044  // API parameter values that are decorated as "sensitive" in the API will not
  6045  // be included in the string output. The member name will be present, but the
  6046  // value will be replaced with "sensitive".
  6047  func (s ListDatabasesInput) String() string {
  6048  	return awsutil.Prettify(s)
  6049  }
  6050  
  6051  // GoString returns the string representation.
  6052  //
  6053  // API parameter values that are decorated as "sensitive" in the API will not
  6054  // be included in the string output. The member name will be present, but the
  6055  // value will be replaced with "sensitive".
  6056  func (s ListDatabasesInput) GoString() string {
  6057  	return s.String()
  6058  }
  6059  
  6060  // Validate inspects the fields of the type to determine if they are valid.
  6061  func (s *ListDatabasesInput) Validate() error {
  6062  	invalidParams := request.ErrInvalidParams{Context: "ListDatabasesInput"}
  6063  	if s.CatalogName == nil {
  6064  		invalidParams.Add(request.NewErrParamRequired("CatalogName"))
  6065  	}
  6066  	if s.CatalogName != nil && len(*s.CatalogName) < 1 {
  6067  		invalidParams.Add(request.NewErrParamMinLen("CatalogName", 1))
  6068  	}
  6069  	if s.MaxResults != nil && *s.MaxResults < 1 {
  6070  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  6071  	}
  6072  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6073  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6074  	}
  6075  
  6076  	if invalidParams.Len() > 0 {
  6077  		return invalidParams
  6078  	}
  6079  	return nil
  6080  }
  6081  
  6082  // SetCatalogName sets the CatalogName field's value.
  6083  func (s *ListDatabasesInput) SetCatalogName(v string) *ListDatabasesInput {
  6084  	s.CatalogName = &v
  6085  	return s
  6086  }
  6087  
  6088  // SetMaxResults sets the MaxResults field's value.
  6089  func (s *ListDatabasesInput) SetMaxResults(v int64) *ListDatabasesInput {
  6090  	s.MaxResults = &v
  6091  	return s
  6092  }
  6093  
  6094  // SetNextToken sets the NextToken field's value.
  6095  func (s *ListDatabasesInput) SetNextToken(v string) *ListDatabasesInput {
  6096  	s.NextToken = &v
  6097  	return s
  6098  }
  6099  
  6100  type ListDatabasesOutput struct {
  6101  	_ struct{} `type:"structure"`
  6102  
  6103  	// A list of databases from a data catalog.
  6104  	DatabaseList []*Database `type:"list"`
  6105  
  6106  	// A token generated by the Athena service that specifies where to continue
  6107  	// pagination if a previous request was truncated. To obtain the next set of
  6108  	// pages, pass in the NextToken from the response object of the previous page
  6109  	// call.
  6110  	NextToken *string `min:"1" type:"string"`
  6111  }
  6112  
  6113  // String returns the string representation.
  6114  //
  6115  // API parameter values that are decorated as "sensitive" in the API will not
  6116  // be included in the string output. The member name will be present, but the
  6117  // value will be replaced with "sensitive".
  6118  func (s ListDatabasesOutput) String() string {
  6119  	return awsutil.Prettify(s)
  6120  }
  6121  
  6122  // GoString returns the string representation.
  6123  //
  6124  // API parameter values that are decorated as "sensitive" in the API will not
  6125  // be included in the string output. The member name will be present, but the
  6126  // value will be replaced with "sensitive".
  6127  func (s ListDatabasesOutput) GoString() string {
  6128  	return s.String()
  6129  }
  6130  
  6131  // SetDatabaseList sets the DatabaseList field's value.
  6132  func (s *ListDatabasesOutput) SetDatabaseList(v []*Database) *ListDatabasesOutput {
  6133  	s.DatabaseList = v
  6134  	return s
  6135  }
  6136  
  6137  // SetNextToken sets the NextToken field's value.
  6138  func (s *ListDatabasesOutput) SetNextToken(v string) *ListDatabasesOutput {
  6139  	s.NextToken = &v
  6140  	return s
  6141  }
  6142  
  6143  type ListEngineVersionsInput struct {
  6144  	_ struct{} `type:"structure"`
  6145  
  6146  	// The maximum number of engine versions to return in this request.
  6147  	MaxResults *int64 `min:"1" type:"integer"`
  6148  
  6149  	// A token generated by the Athena service that specifies where to continue
  6150  	// pagination if a previous request was truncated. To obtain the next set of
  6151  	// pages, pass in the NextToken from the response object of the previous page
  6152  	// call.
  6153  	NextToken *string `min:"1" type:"string"`
  6154  }
  6155  
  6156  // String returns the string representation.
  6157  //
  6158  // API parameter values that are decorated as "sensitive" in the API will not
  6159  // be included in the string output. The member name will be present, but the
  6160  // value will be replaced with "sensitive".
  6161  func (s ListEngineVersionsInput) String() string {
  6162  	return awsutil.Prettify(s)
  6163  }
  6164  
  6165  // GoString returns the string representation.
  6166  //
  6167  // API parameter values that are decorated as "sensitive" in the API will not
  6168  // be included in the string output. The member name will be present, but the
  6169  // value will be replaced with "sensitive".
  6170  func (s ListEngineVersionsInput) GoString() string {
  6171  	return s.String()
  6172  }
  6173  
  6174  // Validate inspects the fields of the type to determine if they are valid.
  6175  func (s *ListEngineVersionsInput) Validate() error {
  6176  	invalidParams := request.ErrInvalidParams{Context: "ListEngineVersionsInput"}
  6177  	if s.MaxResults != nil && *s.MaxResults < 1 {
  6178  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  6179  	}
  6180  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6181  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6182  	}
  6183  
  6184  	if invalidParams.Len() > 0 {
  6185  		return invalidParams
  6186  	}
  6187  	return nil
  6188  }
  6189  
  6190  // SetMaxResults sets the MaxResults field's value.
  6191  func (s *ListEngineVersionsInput) SetMaxResults(v int64) *ListEngineVersionsInput {
  6192  	s.MaxResults = &v
  6193  	return s
  6194  }
  6195  
  6196  // SetNextToken sets the NextToken field's value.
  6197  func (s *ListEngineVersionsInput) SetNextToken(v string) *ListEngineVersionsInput {
  6198  	s.NextToken = &v
  6199  	return s
  6200  }
  6201  
  6202  type ListEngineVersionsOutput struct {
  6203  	_ struct{} `type:"structure"`
  6204  
  6205  	// A list of engine versions that are available to choose from.
  6206  	EngineVersions []*EngineVersion `type:"list"`
  6207  
  6208  	// A token generated by the Athena service that specifies where to continue
  6209  	// pagination if a previous request was truncated. To obtain the next set of
  6210  	// pages, pass in the NextToken from the response object of the previous page
  6211  	// call.
  6212  	NextToken *string `min:"1" type:"string"`
  6213  }
  6214  
  6215  // String returns the string representation.
  6216  //
  6217  // API parameter values that are decorated as "sensitive" in the API will not
  6218  // be included in the string output. The member name will be present, but the
  6219  // value will be replaced with "sensitive".
  6220  func (s ListEngineVersionsOutput) String() string {
  6221  	return awsutil.Prettify(s)
  6222  }
  6223  
  6224  // GoString returns the string representation.
  6225  //
  6226  // API parameter values that are decorated as "sensitive" in the API will not
  6227  // be included in the string output. The member name will be present, but the
  6228  // value will be replaced with "sensitive".
  6229  func (s ListEngineVersionsOutput) GoString() string {
  6230  	return s.String()
  6231  }
  6232  
  6233  // SetEngineVersions sets the EngineVersions field's value.
  6234  func (s *ListEngineVersionsOutput) SetEngineVersions(v []*EngineVersion) *ListEngineVersionsOutput {
  6235  	s.EngineVersions = v
  6236  	return s
  6237  }
  6238  
  6239  // SetNextToken sets the NextToken field's value.
  6240  func (s *ListEngineVersionsOutput) SetNextToken(v string) *ListEngineVersionsOutput {
  6241  	s.NextToken = &v
  6242  	return s
  6243  }
  6244  
  6245  type ListNamedQueriesInput struct {
  6246  	_ struct{} `type:"structure"`
  6247  
  6248  	// The maximum number of queries to return in this request.
  6249  	MaxResults *int64 `type:"integer"`
  6250  
  6251  	// A token generated by the Athena service that specifies where to continue
  6252  	// pagination if a previous request was truncated. To obtain the next set of
  6253  	// pages, pass in the NextToken from the response object of the previous page
  6254  	// call.
  6255  	NextToken *string `min:"1" type:"string"`
  6256  
  6257  	// The name of the workgroup from which the named queries are being returned.
  6258  	// If a workgroup is not specified, the saved queries for the primary workgroup
  6259  	// are returned.
  6260  	WorkGroup *string `type:"string"`
  6261  }
  6262  
  6263  // String returns the string representation.
  6264  //
  6265  // API parameter values that are decorated as "sensitive" in the API will not
  6266  // be included in the string output. The member name will be present, but the
  6267  // value will be replaced with "sensitive".
  6268  func (s ListNamedQueriesInput) String() string {
  6269  	return awsutil.Prettify(s)
  6270  }
  6271  
  6272  // GoString returns the string representation.
  6273  //
  6274  // API parameter values that are decorated as "sensitive" in the API will not
  6275  // be included in the string output. The member name will be present, but the
  6276  // value will be replaced with "sensitive".
  6277  func (s ListNamedQueriesInput) GoString() string {
  6278  	return s.String()
  6279  }
  6280  
  6281  // Validate inspects the fields of the type to determine if they are valid.
  6282  func (s *ListNamedQueriesInput) Validate() error {
  6283  	invalidParams := request.ErrInvalidParams{Context: "ListNamedQueriesInput"}
  6284  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6285  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6286  	}
  6287  
  6288  	if invalidParams.Len() > 0 {
  6289  		return invalidParams
  6290  	}
  6291  	return nil
  6292  }
  6293  
  6294  // SetMaxResults sets the MaxResults field's value.
  6295  func (s *ListNamedQueriesInput) SetMaxResults(v int64) *ListNamedQueriesInput {
  6296  	s.MaxResults = &v
  6297  	return s
  6298  }
  6299  
  6300  // SetNextToken sets the NextToken field's value.
  6301  func (s *ListNamedQueriesInput) SetNextToken(v string) *ListNamedQueriesInput {
  6302  	s.NextToken = &v
  6303  	return s
  6304  }
  6305  
  6306  // SetWorkGroup sets the WorkGroup field's value.
  6307  func (s *ListNamedQueriesInput) SetWorkGroup(v string) *ListNamedQueriesInput {
  6308  	s.WorkGroup = &v
  6309  	return s
  6310  }
  6311  
  6312  type ListNamedQueriesOutput struct {
  6313  	_ struct{} `type:"structure"`
  6314  
  6315  	// The list of unique query IDs.
  6316  	NamedQueryIds []*string `min:"1" type:"list"`
  6317  
  6318  	// A token generated by the Athena service that specifies where to continue
  6319  	// pagination if a previous request was truncated. To obtain the next set of
  6320  	// pages, pass in the NextToken from the response object of the previous page
  6321  	// call.
  6322  	NextToken *string `min:"1" type:"string"`
  6323  }
  6324  
  6325  // String returns the string representation.
  6326  //
  6327  // API parameter values that are decorated as "sensitive" in the API will not
  6328  // be included in the string output. The member name will be present, but the
  6329  // value will be replaced with "sensitive".
  6330  func (s ListNamedQueriesOutput) String() string {
  6331  	return awsutil.Prettify(s)
  6332  }
  6333  
  6334  // GoString returns the string representation.
  6335  //
  6336  // API parameter values that are decorated as "sensitive" in the API will not
  6337  // be included in the string output. The member name will be present, but the
  6338  // value will be replaced with "sensitive".
  6339  func (s ListNamedQueriesOutput) GoString() string {
  6340  	return s.String()
  6341  }
  6342  
  6343  // SetNamedQueryIds sets the NamedQueryIds field's value.
  6344  func (s *ListNamedQueriesOutput) SetNamedQueryIds(v []*string) *ListNamedQueriesOutput {
  6345  	s.NamedQueryIds = v
  6346  	return s
  6347  }
  6348  
  6349  // SetNextToken sets the NextToken field's value.
  6350  func (s *ListNamedQueriesOutput) SetNextToken(v string) *ListNamedQueriesOutput {
  6351  	s.NextToken = &v
  6352  	return s
  6353  }
  6354  
  6355  type ListPreparedStatementsInput struct {
  6356  	_ struct{} `type:"structure"`
  6357  
  6358  	// The maximum number of results to return in this request.
  6359  	MaxResults *int64 `min:"1" type:"integer"`
  6360  
  6361  	// A token generated by the Athena service that specifies where to continue
  6362  	// pagination if a previous request was truncated. To obtain the next set of
  6363  	// pages, pass in the NextToken from the response object of the previous page
  6364  	// call.
  6365  	NextToken *string `min:"1" type:"string"`
  6366  
  6367  	// The workgroup to list the prepared statements for.
  6368  	//
  6369  	// WorkGroup is a required field
  6370  	WorkGroup *string `type:"string" required:"true"`
  6371  }
  6372  
  6373  // String returns the string representation.
  6374  //
  6375  // API parameter values that are decorated as "sensitive" in the API will not
  6376  // be included in the string output. The member name will be present, but the
  6377  // value will be replaced with "sensitive".
  6378  func (s ListPreparedStatementsInput) String() string {
  6379  	return awsutil.Prettify(s)
  6380  }
  6381  
  6382  // GoString returns the string representation.
  6383  //
  6384  // API parameter values that are decorated as "sensitive" in the API will not
  6385  // be included in the string output. The member name will be present, but the
  6386  // value will be replaced with "sensitive".
  6387  func (s ListPreparedStatementsInput) GoString() string {
  6388  	return s.String()
  6389  }
  6390  
  6391  // Validate inspects the fields of the type to determine if they are valid.
  6392  func (s *ListPreparedStatementsInput) Validate() error {
  6393  	invalidParams := request.ErrInvalidParams{Context: "ListPreparedStatementsInput"}
  6394  	if s.MaxResults != nil && *s.MaxResults < 1 {
  6395  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  6396  	}
  6397  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6398  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6399  	}
  6400  	if s.WorkGroup == nil {
  6401  		invalidParams.Add(request.NewErrParamRequired("WorkGroup"))
  6402  	}
  6403  
  6404  	if invalidParams.Len() > 0 {
  6405  		return invalidParams
  6406  	}
  6407  	return nil
  6408  }
  6409  
  6410  // SetMaxResults sets the MaxResults field's value.
  6411  func (s *ListPreparedStatementsInput) SetMaxResults(v int64) *ListPreparedStatementsInput {
  6412  	s.MaxResults = &v
  6413  	return s
  6414  }
  6415  
  6416  // SetNextToken sets the NextToken field's value.
  6417  func (s *ListPreparedStatementsInput) SetNextToken(v string) *ListPreparedStatementsInput {
  6418  	s.NextToken = &v
  6419  	return s
  6420  }
  6421  
  6422  // SetWorkGroup sets the WorkGroup field's value.
  6423  func (s *ListPreparedStatementsInput) SetWorkGroup(v string) *ListPreparedStatementsInput {
  6424  	s.WorkGroup = &v
  6425  	return s
  6426  }
  6427  
  6428  type ListPreparedStatementsOutput struct {
  6429  	_ struct{} `type:"structure"`
  6430  
  6431  	// A token generated by the Athena service that specifies where to continue
  6432  	// pagination if a previous request was truncated. To obtain the next set of
  6433  	// pages, pass in the NextToken from the response object of the previous page
  6434  	// call.
  6435  	NextToken *string `min:"1" type:"string"`
  6436  
  6437  	// The list of prepared statements for the workgroup.
  6438  	PreparedStatements []*PreparedStatementSummary `type:"list"`
  6439  }
  6440  
  6441  // String returns the string representation.
  6442  //
  6443  // API parameter values that are decorated as "sensitive" in the API will not
  6444  // be included in the string output. The member name will be present, but the
  6445  // value will be replaced with "sensitive".
  6446  func (s ListPreparedStatementsOutput) String() string {
  6447  	return awsutil.Prettify(s)
  6448  }
  6449  
  6450  // GoString returns the string representation.
  6451  //
  6452  // API parameter values that are decorated as "sensitive" in the API will not
  6453  // be included in the string output. The member name will be present, but the
  6454  // value will be replaced with "sensitive".
  6455  func (s ListPreparedStatementsOutput) GoString() string {
  6456  	return s.String()
  6457  }
  6458  
  6459  // SetNextToken sets the NextToken field's value.
  6460  func (s *ListPreparedStatementsOutput) SetNextToken(v string) *ListPreparedStatementsOutput {
  6461  	s.NextToken = &v
  6462  	return s
  6463  }
  6464  
  6465  // SetPreparedStatements sets the PreparedStatements field's value.
  6466  func (s *ListPreparedStatementsOutput) SetPreparedStatements(v []*PreparedStatementSummary) *ListPreparedStatementsOutput {
  6467  	s.PreparedStatements = v
  6468  	return s
  6469  }
  6470  
  6471  type ListQueryExecutionsInput struct {
  6472  	_ struct{} `type:"structure"`
  6473  
  6474  	// The maximum number of query executions to return in this request.
  6475  	MaxResults *int64 `type:"integer"`
  6476  
  6477  	// A token generated by the Athena service that specifies where to continue
  6478  	// pagination if a previous request was truncated. To obtain the next set of
  6479  	// pages, pass in the NextToken from the response object of the previous page
  6480  	// call.
  6481  	NextToken *string `min:"1" type:"string"`
  6482  
  6483  	// The name of the workgroup from which queries are being returned. If a workgroup
  6484  	// is not specified, a list of available query execution IDs for the queries
  6485  	// in the primary workgroup is returned.
  6486  	WorkGroup *string `type:"string"`
  6487  }
  6488  
  6489  // String returns the string representation.
  6490  //
  6491  // API parameter values that are decorated as "sensitive" in the API will not
  6492  // be included in the string output. The member name will be present, but the
  6493  // value will be replaced with "sensitive".
  6494  func (s ListQueryExecutionsInput) String() string {
  6495  	return awsutil.Prettify(s)
  6496  }
  6497  
  6498  // GoString returns the string representation.
  6499  //
  6500  // API parameter values that are decorated as "sensitive" in the API will not
  6501  // be included in the string output. The member name will be present, but the
  6502  // value will be replaced with "sensitive".
  6503  func (s ListQueryExecutionsInput) GoString() string {
  6504  	return s.String()
  6505  }
  6506  
  6507  // Validate inspects the fields of the type to determine if they are valid.
  6508  func (s *ListQueryExecutionsInput) Validate() error {
  6509  	invalidParams := request.ErrInvalidParams{Context: "ListQueryExecutionsInput"}
  6510  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6511  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6512  	}
  6513  
  6514  	if invalidParams.Len() > 0 {
  6515  		return invalidParams
  6516  	}
  6517  	return nil
  6518  }
  6519  
  6520  // SetMaxResults sets the MaxResults field's value.
  6521  func (s *ListQueryExecutionsInput) SetMaxResults(v int64) *ListQueryExecutionsInput {
  6522  	s.MaxResults = &v
  6523  	return s
  6524  }
  6525  
  6526  // SetNextToken sets the NextToken field's value.
  6527  func (s *ListQueryExecutionsInput) SetNextToken(v string) *ListQueryExecutionsInput {
  6528  	s.NextToken = &v
  6529  	return s
  6530  }
  6531  
  6532  // SetWorkGroup sets the WorkGroup field's value.
  6533  func (s *ListQueryExecutionsInput) SetWorkGroup(v string) *ListQueryExecutionsInput {
  6534  	s.WorkGroup = &v
  6535  	return s
  6536  }
  6537  
  6538  type ListQueryExecutionsOutput struct {
  6539  	_ struct{} `type:"structure"`
  6540  
  6541  	// A token to be used by the next request if this request is truncated.
  6542  	NextToken *string `min:"1" type:"string"`
  6543  
  6544  	// The unique IDs of each query execution as an array of strings.
  6545  	QueryExecutionIds []*string `min:"1" type:"list"`
  6546  }
  6547  
  6548  // String returns the string representation.
  6549  //
  6550  // API parameter values that are decorated as "sensitive" in the API will not
  6551  // be included in the string output. The member name will be present, but the
  6552  // value will be replaced with "sensitive".
  6553  func (s ListQueryExecutionsOutput) String() string {
  6554  	return awsutil.Prettify(s)
  6555  }
  6556  
  6557  // GoString returns the string representation.
  6558  //
  6559  // API parameter values that are decorated as "sensitive" in the API will not
  6560  // be included in the string output. The member name will be present, but the
  6561  // value will be replaced with "sensitive".
  6562  func (s ListQueryExecutionsOutput) GoString() string {
  6563  	return s.String()
  6564  }
  6565  
  6566  // SetNextToken sets the NextToken field's value.
  6567  func (s *ListQueryExecutionsOutput) SetNextToken(v string) *ListQueryExecutionsOutput {
  6568  	s.NextToken = &v
  6569  	return s
  6570  }
  6571  
  6572  // SetQueryExecutionIds sets the QueryExecutionIds field's value.
  6573  func (s *ListQueryExecutionsOutput) SetQueryExecutionIds(v []*string) *ListQueryExecutionsOutput {
  6574  	s.QueryExecutionIds = v
  6575  	return s
  6576  }
  6577  
  6578  type ListTableMetadataInput struct {
  6579  	_ struct{} `type:"structure"`
  6580  
  6581  	// The name of the data catalog for which table metadata should be returned.
  6582  	//
  6583  	// CatalogName is a required field
  6584  	CatalogName *string `min:"1" type:"string" required:"true"`
  6585  
  6586  	// The name of the database for which table metadata should be returned.
  6587  	//
  6588  	// DatabaseName is a required field
  6589  	DatabaseName *string `min:"1" type:"string" required:"true"`
  6590  
  6591  	// A regex filter that pattern-matches table names. If no expression is supplied,
  6592  	// metadata for all tables are listed.
  6593  	Expression *string `type:"string"`
  6594  
  6595  	// Specifies the maximum number of results to return.
  6596  	MaxResults *int64 `min:"1" type:"integer"`
  6597  
  6598  	// A token generated by the Athena service that specifies where to continue
  6599  	// pagination if a previous request was truncated. To obtain the next set of
  6600  	// pages, pass in the NextToken from the response object of the previous page
  6601  	// call.
  6602  	NextToken *string `min:"1" type:"string"`
  6603  }
  6604  
  6605  // String returns the string representation.
  6606  //
  6607  // API parameter values that are decorated as "sensitive" in the API will not
  6608  // be included in the string output. The member name will be present, but the
  6609  // value will be replaced with "sensitive".
  6610  func (s ListTableMetadataInput) String() string {
  6611  	return awsutil.Prettify(s)
  6612  }
  6613  
  6614  // GoString returns the string representation.
  6615  //
  6616  // API parameter values that are decorated as "sensitive" in the API will not
  6617  // be included in the string output. The member name will be present, but the
  6618  // value will be replaced with "sensitive".
  6619  func (s ListTableMetadataInput) GoString() string {
  6620  	return s.String()
  6621  }
  6622  
  6623  // Validate inspects the fields of the type to determine if they are valid.
  6624  func (s *ListTableMetadataInput) Validate() error {
  6625  	invalidParams := request.ErrInvalidParams{Context: "ListTableMetadataInput"}
  6626  	if s.CatalogName == nil {
  6627  		invalidParams.Add(request.NewErrParamRequired("CatalogName"))
  6628  	}
  6629  	if s.CatalogName != nil && len(*s.CatalogName) < 1 {
  6630  		invalidParams.Add(request.NewErrParamMinLen("CatalogName", 1))
  6631  	}
  6632  	if s.DatabaseName == nil {
  6633  		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
  6634  	}
  6635  	if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
  6636  		invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
  6637  	}
  6638  	if s.MaxResults != nil && *s.MaxResults < 1 {
  6639  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  6640  	}
  6641  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6642  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6643  	}
  6644  
  6645  	if invalidParams.Len() > 0 {
  6646  		return invalidParams
  6647  	}
  6648  	return nil
  6649  }
  6650  
  6651  // SetCatalogName sets the CatalogName field's value.
  6652  func (s *ListTableMetadataInput) SetCatalogName(v string) *ListTableMetadataInput {
  6653  	s.CatalogName = &v
  6654  	return s
  6655  }
  6656  
  6657  // SetDatabaseName sets the DatabaseName field's value.
  6658  func (s *ListTableMetadataInput) SetDatabaseName(v string) *ListTableMetadataInput {
  6659  	s.DatabaseName = &v
  6660  	return s
  6661  }
  6662  
  6663  // SetExpression sets the Expression field's value.
  6664  func (s *ListTableMetadataInput) SetExpression(v string) *ListTableMetadataInput {
  6665  	s.Expression = &v
  6666  	return s
  6667  }
  6668  
  6669  // SetMaxResults sets the MaxResults field's value.
  6670  func (s *ListTableMetadataInput) SetMaxResults(v int64) *ListTableMetadataInput {
  6671  	s.MaxResults = &v
  6672  	return s
  6673  }
  6674  
  6675  // SetNextToken sets the NextToken field's value.
  6676  func (s *ListTableMetadataInput) SetNextToken(v string) *ListTableMetadataInput {
  6677  	s.NextToken = &v
  6678  	return s
  6679  }
  6680  
  6681  type ListTableMetadataOutput struct {
  6682  	_ struct{} `type:"structure"`
  6683  
  6684  	// A token generated by the Athena service that specifies where to continue
  6685  	// pagination if a previous request was truncated. To obtain the next set of
  6686  	// pages, pass in the NextToken from the response object of the previous page
  6687  	// call.
  6688  	NextToken *string `min:"1" type:"string"`
  6689  
  6690  	// A list of table metadata.
  6691  	TableMetadataList []*TableMetadata `type:"list"`
  6692  }
  6693  
  6694  // String returns the string representation.
  6695  //
  6696  // API parameter values that are decorated as "sensitive" in the API will not
  6697  // be included in the string output. The member name will be present, but the
  6698  // value will be replaced with "sensitive".
  6699  func (s ListTableMetadataOutput) String() string {
  6700  	return awsutil.Prettify(s)
  6701  }
  6702  
  6703  // GoString returns the string representation.
  6704  //
  6705  // API parameter values that are decorated as "sensitive" in the API will not
  6706  // be included in the string output. The member name will be present, but the
  6707  // value will be replaced with "sensitive".
  6708  func (s ListTableMetadataOutput) GoString() string {
  6709  	return s.String()
  6710  }
  6711  
  6712  // SetNextToken sets the NextToken field's value.
  6713  func (s *ListTableMetadataOutput) SetNextToken(v string) *ListTableMetadataOutput {
  6714  	s.NextToken = &v
  6715  	return s
  6716  }
  6717  
  6718  // SetTableMetadataList sets the TableMetadataList field's value.
  6719  func (s *ListTableMetadataOutput) SetTableMetadataList(v []*TableMetadata) *ListTableMetadataOutput {
  6720  	s.TableMetadataList = v
  6721  	return s
  6722  }
  6723  
  6724  type ListTagsForResourceInput struct {
  6725  	_ struct{} `type:"structure"`
  6726  
  6727  	// The maximum number of results to be returned per request that lists the tags
  6728  	// for the resource.
  6729  	MaxResults *int64 `min:"75" type:"integer"`
  6730  
  6731  	// The token for the next set of results, or null if there are no additional
  6732  	// results for this request, where the request lists the tags for the resource
  6733  	// with the specified ARN.
  6734  	NextToken *string `min:"1" type:"string"`
  6735  
  6736  	// Lists the tags for the resource with the specified ARN.
  6737  	//
  6738  	// ResourceARN is a required field
  6739  	ResourceARN *string `min:"1" type:"string" required:"true"`
  6740  }
  6741  
  6742  // String returns the string representation.
  6743  //
  6744  // API parameter values that are decorated as "sensitive" in the API will not
  6745  // be included in the string output. The member name will be present, but the
  6746  // value will be replaced with "sensitive".
  6747  func (s ListTagsForResourceInput) String() string {
  6748  	return awsutil.Prettify(s)
  6749  }
  6750  
  6751  // GoString returns the string representation.
  6752  //
  6753  // API parameter values that are decorated as "sensitive" in the API will not
  6754  // be included in the string output. The member name will be present, but the
  6755  // value will be replaced with "sensitive".
  6756  func (s ListTagsForResourceInput) GoString() string {
  6757  	return s.String()
  6758  }
  6759  
  6760  // Validate inspects the fields of the type to determine if they are valid.
  6761  func (s *ListTagsForResourceInput) Validate() error {
  6762  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
  6763  	if s.MaxResults != nil && *s.MaxResults < 75 {
  6764  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 75))
  6765  	}
  6766  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6767  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6768  	}
  6769  	if s.ResourceARN == nil {
  6770  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
  6771  	}
  6772  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
  6773  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
  6774  	}
  6775  
  6776  	if invalidParams.Len() > 0 {
  6777  		return invalidParams
  6778  	}
  6779  	return nil
  6780  }
  6781  
  6782  // SetMaxResults sets the MaxResults field's value.
  6783  func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
  6784  	s.MaxResults = &v
  6785  	return s
  6786  }
  6787  
  6788  // SetNextToken sets the NextToken field's value.
  6789  func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
  6790  	s.NextToken = &v
  6791  	return s
  6792  }
  6793  
  6794  // SetResourceARN sets the ResourceARN field's value.
  6795  func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
  6796  	s.ResourceARN = &v
  6797  	return s
  6798  }
  6799  
  6800  type ListTagsForResourceOutput struct {
  6801  	_ struct{} `type:"structure"`
  6802  
  6803  	// A token to be used by the next request if this request is truncated.
  6804  	NextToken *string `min:"1" type:"string"`
  6805  
  6806  	// The list of tags associated with the specified resource.
  6807  	Tags []*Tag `type:"list"`
  6808  }
  6809  
  6810  // String returns the string representation.
  6811  //
  6812  // API parameter values that are decorated as "sensitive" in the API will not
  6813  // be included in the string output. The member name will be present, but the
  6814  // value will be replaced with "sensitive".
  6815  func (s ListTagsForResourceOutput) String() string {
  6816  	return awsutil.Prettify(s)
  6817  }
  6818  
  6819  // GoString returns the string representation.
  6820  //
  6821  // API parameter values that are decorated as "sensitive" in the API will not
  6822  // be included in the string output. The member name will be present, but the
  6823  // value will be replaced with "sensitive".
  6824  func (s ListTagsForResourceOutput) GoString() string {
  6825  	return s.String()
  6826  }
  6827  
  6828  // SetNextToken sets the NextToken field's value.
  6829  func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
  6830  	s.NextToken = &v
  6831  	return s
  6832  }
  6833  
  6834  // SetTags sets the Tags field's value.
  6835  func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
  6836  	s.Tags = v
  6837  	return s
  6838  }
  6839  
  6840  type ListWorkGroupsInput struct {
  6841  	_ struct{} `type:"structure"`
  6842  
  6843  	// The maximum number of workgroups to return in this request.
  6844  	MaxResults *int64 `min:"1" type:"integer"`
  6845  
  6846  	// A token generated by the Athena service that specifies where to continue
  6847  	// pagination if a previous request was truncated. To obtain the next set of
  6848  	// pages, pass in the NextToken from the response object of the previous page
  6849  	// call.
  6850  	NextToken *string `min:"1" type:"string"`
  6851  }
  6852  
  6853  // String returns the string representation.
  6854  //
  6855  // API parameter values that are decorated as "sensitive" in the API will not
  6856  // be included in the string output. The member name will be present, but the
  6857  // value will be replaced with "sensitive".
  6858  func (s ListWorkGroupsInput) String() string {
  6859  	return awsutil.Prettify(s)
  6860  }
  6861  
  6862  // GoString returns the string representation.
  6863  //
  6864  // API parameter values that are decorated as "sensitive" in the API will not
  6865  // be included in the string output. The member name will be present, but the
  6866  // value will be replaced with "sensitive".
  6867  func (s ListWorkGroupsInput) GoString() string {
  6868  	return s.String()
  6869  }
  6870  
  6871  // Validate inspects the fields of the type to determine if they are valid.
  6872  func (s *ListWorkGroupsInput) Validate() error {
  6873  	invalidParams := request.ErrInvalidParams{Context: "ListWorkGroupsInput"}
  6874  	if s.MaxResults != nil && *s.MaxResults < 1 {
  6875  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  6876  	}
  6877  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6878  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6879  	}
  6880  
  6881  	if invalidParams.Len() > 0 {
  6882  		return invalidParams
  6883  	}
  6884  	return nil
  6885  }
  6886  
  6887  // SetMaxResults sets the MaxResults field's value.
  6888  func (s *ListWorkGroupsInput) SetMaxResults(v int64) *ListWorkGroupsInput {
  6889  	s.MaxResults = &v
  6890  	return s
  6891  }
  6892  
  6893  // SetNextToken sets the NextToken field's value.
  6894  func (s *ListWorkGroupsInput) SetNextToken(v string) *ListWorkGroupsInput {
  6895  	s.NextToken = &v
  6896  	return s
  6897  }
  6898  
  6899  type ListWorkGroupsOutput struct {
  6900  	_ struct{} `type:"structure"`
  6901  
  6902  	// A token generated by the Athena service that specifies where to continue
  6903  	// pagination if a previous request was truncated. To obtain the next set of
  6904  	// pages, pass in the NextToken from the response object of the previous page
  6905  	// call.
  6906  	NextToken *string `min:"1" type:"string"`
  6907  
  6908  	// A list of WorkGroupSummary objects that include the names, descriptions,
  6909  	// creation times, and states for each workgroup.
  6910  	WorkGroups []*WorkGroupSummary `type:"list"`
  6911  }
  6912  
  6913  // String returns the string representation.
  6914  //
  6915  // API parameter values that are decorated as "sensitive" in the API will not
  6916  // be included in the string output. The member name will be present, but the
  6917  // value will be replaced with "sensitive".
  6918  func (s ListWorkGroupsOutput) String() string {
  6919  	return awsutil.Prettify(s)
  6920  }
  6921  
  6922  // GoString returns the string representation.
  6923  //
  6924  // API parameter values that are decorated as "sensitive" in the API will not
  6925  // be included in the string output. The member name will be present, but the
  6926  // value will be replaced with "sensitive".
  6927  func (s ListWorkGroupsOutput) GoString() string {
  6928  	return s.String()
  6929  }
  6930  
  6931  // SetNextToken sets the NextToken field's value.
  6932  func (s *ListWorkGroupsOutput) SetNextToken(v string) *ListWorkGroupsOutput {
  6933  	s.NextToken = &v
  6934  	return s
  6935  }
  6936  
  6937  // SetWorkGroups sets the WorkGroups field's value.
  6938  func (s *ListWorkGroupsOutput) SetWorkGroups(v []*WorkGroupSummary) *ListWorkGroupsOutput {
  6939  	s.WorkGroups = v
  6940  	return s
  6941  }
  6942  
  6943  // An exception that Athena received when it called a custom metastore. Occurs
  6944  // if the error is not caused by user input (InvalidRequestException) or from
  6945  // the Athena platform (InternalServerException). For example, if a user-created
  6946  // Lambda function is missing permissions, the Lambda 4XX exception is returned
  6947  // in a MetadataException.
  6948  type MetadataException struct {
  6949  	_            struct{}                  `type:"structure"`
  6950  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6951  
  6952  	Message_ *string `locationName:"Message" type:"string"`
  6953  }
  6954  
  6955  // String returns the string representation.
  6956  //
  6957  // API parameter values that are decorated as "sensitive" in the API will not
  6958  // be included in the string output. The member name will be present, but the
  6959  // value will be replaced with "sensitive".
  6960  func (s MetadataException) String() string {
  6961  	return awsutil.Prettify(s)
  6962  }
  6963  
  6964  // GoString returns the string representation.
  6965  //
  6966  // API parameter values that are decorated as "sensitive" in the API will not
  6967  // be included in the string output. The member name will be present, but the
  6968  // value will be replaced with "sensitive".
  6969  func (s MetadataException) GoString() string {
  6970  	return s.String()
  6971  }
  6972  
  6973  func newErrorMetadataException(v protocol.ResponseMetadata) error {
  6974  	return &MetadataException{
  6975  		RespMetadata: v,
  6976  	}
  6977  }
  6978  
  6979  // Code returns the exception type name.
  6980  func (s *MetadataException) Code() string {
  6981  	return "MetadataException"
  6982  }
  6983  
  6984  // Message returns the exception's message.
  6985  func (s *MetadataException) Message() string {
  6986  	if s.Message_ != nil {
  6987  		return *s.Message_
  6988  	}
  6989  	return ""
  6990  }
  6991  
  6992  // OrigErr always returns nil, satisfies awserr.Error interface.
  6993  func (s *MetadataException) OrigErr() error {
  6994  	return nil
  6995  }
  6996  
  6997  func (s *MetadataException) Error() string {
  6998  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6999  }
  7000  
  7001  // Status code returns the HTTP status code for the request's response error.
  7002  func (s *MetadataException) StatusCode() int {
  7003  	return s.RespMetadata.StatusCode
  7004  }
  7005  
  7006  // RequestID returns the service's response RequestID for request.
  7007  func (s *MetadataException) RequestID() string {
  7008  	return s.RespMetadata.RequestID
  7009  }
  7010  
  7011  // A query, where QueryString is the list of SQL query statements that comprise
  7012  // the query.
  7013  type NamedQuery struct {
  7014  	_ struct{} `type:"structure"`
  7015  
  7016  	// The database to which the query belongs.
  7017  	//
  7018  	// Database is a required field
  7019  	Database *string `min:"1" type:"string" required:"true"`
  7020  
  7021  	// The query description.
  7022  	Description *string `min:"1" type:"string"`
  7023  
  7024  	// The query name.
  7025  	//
  7026  	// Name is a required field
  7027  	Name *string `min:"1" type:"string" required:"true"`
  7028  
  7029  	// The unique identifier of the query.
  7030  	NamedQueryId *string `type:"string"`
  7031  
  7032  	// The SQL query statements that comprise the query.
  7033  	//
  7034  	// QueryString is a required field
  7035  	QueryString *string `min:"1" type:"string" required:"true"`
  7036  
  7037  	// The name of the workgroup that contains the named query.
  7038  	WorkGroup *string `type:"string"`
  7039  }
  7040  
  7041  // String returns the string representation.
  7042  //
  7043  // API parameter values that are decorated as "sensitive" in the API will not
  7044  // be included in the string output. The member name will be present, but the
  7045  // value will be replaced with "sensitive".
  7046  func (s NamedQuery) String() string {
  7047  	return awsutil.Prettify(s)
  7048  }
  7049  
  7050  // GoString returns the string representation.
  7051  //
  7052  // API parameter values that are decorated as "sensitive" in the API will not
  7053  // be included in the string output. The member name will be present, but the
  7054  // value will be replaced with "sensitive".
  7055  func (s NamedQuery) GoString() string {
  7056  	return s.String()
  7057  }
  7058  
  7059  // SetDatabase sets the Database field's value.
  7060  func (s *NamedQuery) SetDatabase(v string) *NamedQuery {
  7061  	s.Database = &v
  7062  	return s
  7063  }
  7064  
  7065  // SetDescription sets the Description field's value.
  7066  func (s *NamedQuery) SetDescription(v string) *NamedQuery {
  7067  	s.Description = &v
  7068  	return s
  7069  }
  7070  
  7071  // SetName sets the Name field's value.
  7072  func (s *NamedQuery) SetName(v string) *NamedQuery {
  7073  	s.Name = &v
  7074  	return s
  7075  }
  7076  
  7077  // SetNamedQueryId sets the NamedQueryId field's value.
  7078  func (s *NamedQuery) SetNamedQueryId(v string) *NamedQuery {
  7079  	s.NamedQueryId = &v
  7080  	return s
  7081  }
  7082  
  7083  // SetQueryString sets the QueryString field's value.
  7084  func (s *NamedQuery) SetQueryString(v string) *NamedQuery {
  7085  	s.QueryString = &v
  7086  	return s
  7087  }
  7088  
  7089  // SetWorkGroup sets the WorkGroup field's value.
  7090  func (s *NamedQuery) SetWorkGroup(v string) *NamedQuery {
  7091  	s.WorkGroup = &v
  7092  	return s
  7093  }
  7094  
  7095  // A prepared SQL statement for use with Athena.
  7096  type PreparedStatement struct {
  7097  	_ struct{} `type:"structure"`
  7098  
  7099  	// The description of the prepared statement.
  7100  	Description *string `min:"1" type:"string"`
  7101  
  7102  	// The last modified time of the prepared statement.
  7103  	LastModifiedTime *time.Time `type:"timestamp"`
  7104  
  7105  	// The query string for the prepared statement.
  7106  	QueryStatement *string `min:"1" type:"string"`
  7107  
  7108  	// The name of the prepared statement.
  7109  	StatementName *string `min:"1" type:"string"`
  7110  
  7111  	// The name of the workgroup to which the prepared statement belongs.
  7112  	WorkGroupName *string `type:"string"`
  7113  }
  7114  
  7115  // String returns the string representation.
  7116  //
  7117  // API parameter values that are decorated as "sensitive" in the API will not
  7118  // be included in the string output. The member name will be present, but the
  7119  // value will be replaced with "sensitive".
  7120  func (s PreparedStatement) String() string {
  7121  	return awsutil.Prettify(s)
  7122  }
  7123  
  7124  // GoString returns the string representation.
  7125  //
  7126  // API parameter values that are decorated as "sensitive" in the API will not
  7127  // be included in the string output. The member name will be present, but the
  7128  // value will be replaced with "sensitive".
  7129  func (s PreparedStatement) GoString() string {
  7130  	return s.String()
  7131  }
  7132  
  7133  // SetDescription sets the Description field's value.
  7134  func (s *PreparedStatement) SetDescription(v string) *PreparedStatement {
  7135  	s.Description = &v
  7136  	return s
  7137  }
  7138  
  7139  // SetLastModifiedTime sets the LastModifiedTime field's value.
  7140  func (s *PreparedStatement) SetLastModifiedTime(v time.Time) *PreparedStatement {
  7141  	s.LastModifiedTime = &v
  7142  	return s
  7143  }
  7144  
  7145  // SetQueryStatement sets the QueryStatement field's value.
  7146  func (s *PreparedStatement) SetQueryStatement(v string) *PreparedStatement {
  7147  	s.QueryStatement = &v
  7148  	return s
  7149  }
  7150  
  7151  // SetStatementName sets the StatementName field's value.
  7152  func (s *PreparedStatement) SetStatementName(v string) *PreparedStatement {
  7153  	s.StatementName = &v
  7154  	return s
  7155  }
  7156  
  7157  // SetWorkGroupName sets the WorkGroupName field's value.
  7158  func (s *PreparedStatement) SetWorkGroupName(v string) *PreparedStatement {
  7159  	s.WorkGroupName = &v
  7160  	return s
  7161  }
  7162  
  7163  // The name and last modified time of the prepared statement.
  7164  type PreparedStatementSummary struct {
  7165  	_ struct{} `type:"structure"`
  7166  
  7167  	// The last modified time of the prepared statement.
  7168  	LastModifiedTime *time.Time `type:"timestamp"`
  7169  
  7170  	// The name of the prepared statement.
  7171  	StatementName *string `min:"1" type:"string"`
  7172  }
  7173  
  7174  // String returns the string representation.
  7175  //
  7176  // API parameter values that are decorated as "sensitive" in the API will not
  7177  // be included in the string output. The member name will be present, but the
  7178  // value will be replaced with "sensitive".
  7179  func (s PreparedStatementSummary) String() string {
  7180  	return awsutil.Prettify(s)
  7181  }
  7182  
  7183  // GoString returns the string representation.
  7184  //
  7185  // API parameter values that are decorated as "sensitive" in the API will not
  7186  // be included in the string output. The member name will be present, but the
  7187  // value will be replaced with "sensitive".
  7188  func (s PreparedStatementSummary) GoString() string {
  7189  	return s.String()
  7190  }
  7191  
  7192  // SetLastModifiedTime sets the LastModifiedTime field's value.
  7193  func (s *PreparedStatementSummary) SetLastModifiedTime(v time.Time) *PreparedStatementSummary {
  7194  	s.LastModifiedTime = &v
  7195  	return s
  7196  }
  7197  
  7198  // SetStatementName sets the StatementName field's value.
  7199  func (s *PreparedStatementSummary) SetStatementName(v string) *PreparedStatementSummary {
  7200  	s.StatementName = &v
  7201  	return s
  7202  }
  7203  
  7204  // Information about a single instance of a query execution.
  7205  type QueryExecution struct {
  7206  	_ struct{} `type:"structure"`
  7207  
  7208  	// The engine version that executed the query.
  7209  	EngineVersion *EngineVersion `type:"structure"`
  7210  
  7211  	// The SQL query statements which the query execution ran.
  7212  	Query *string `min:"1" type:"string"`
  7213  
  7214  	// The database in which the query execution occurred.
  7215  	QueryExecutionContext *QueryExecutionContext `type:"structure"`
  7216  
  7217  	// The unique identifier for each query execution.
  7218  	QueryExecutionId *string `type:"string"`
  7219  
  7220  	// The location in Amazon S3 where query results were stored and the encryption
  7221  	// option, if any, used for query results. These are known as "client-side settings".
  7222  	// If workgroup settings override client-side settings, then the query uses
  7223  	// the location for the query results and the encryption configuration that
  7224  	// are specified for the workgroup.
  7225  	ResultConfiguration *ResultConfiguration `type:"structure"`
  7226  
  7227  	// The type of query statement that was run. DDL indicates DDL query statements.
  7228  	// DML indicates DML (Data Manipulation Language) query statements, such as
  7229  	// CREATE TABLE AS SELECT. UTILITY indicates query statements other than DDL
  7230  	// and DML, such as SHOW CREATE TABLE, or DESCRIBE TABLE.
  7231  	StatementType *string `type:"string" enum:"StatementType"`
  7232  
  7233  	// Query execution statistics, such as the amount of data scanned, the amount
  7234  	// of time that the query took to process, and the type of statement that was
  7235  	// run.
  7236  	Statistics *QueryExecutionStatistics `type:"structure"`
  7237  
  7238  	// The completion date, current state, submission time, and state change reason
  7239  	// (if applicable) for the query execution.
  7240  	Status *QueryExecutionStatus `type:"structure"`
  7241  
  7242  	// The name of the workgroup in which the query ran.
  7243  	WorkGroup *string `type:"string"`
  7244  }
  7245  
  7246  // String returns the string representation.
  7247  //
  7248  // API parameter values that are decorated as "sensitive" in the API will not
  7249  // be included in the string output. The member name will be present, but the
  7250  // value will be replaced with "sensitive".
  7251  func (s QueryExecution) String() string {
  7252  	return awsutil.Prettify(s)
  7253  }
  7254  
  7255  // GoString returns the string representation.
  7256  //
  7257  // API parameter values that are decorated as "sensitive" in the API will not
  7258  // be included in the string output. The member name will be present, but the
  7259  // value will be replaced with "sensitive".
  7260  func (s QueryExecution) GoString() string {
  7261  	return s.String()
  7262  }
  7263  
  7264  // SetEngineVersion sets the EngineVersion field's value.
  7265  func (s *QueryExecution) SetEngineVersion(v *EngineVersion) *QueryExecution {
  7266  	s.EngineVersion = v
  7267  	return s
  7268  }
  7269  
  7270  // SetQuery sets the Query field's value.
  7271  func (s *QueryExecution) SetQuery(v string) *QueryExecution {
  7272  	s.Query = &v
  7273  	return s
  7274  }
  7275  
  7276  // SetQueryExecutionContext sets the QueryExecutionContext field's value.
  7277  func (s *QueryExecution) SetQueryExecutionContext(v *QueryExecutionContext) *QueryExecution {
  7278  	s.QueryExecutionContext = v
  7279  	return s
  7280  }
  7281  
  7282  // SetQueryExecutionId sets the QueryExecutionId field's value.
  7283  func (s *QueryExecution) SetQueryExecutionId(v string) *QueryExecution {
  7284  	s.QueryExecutionId = &v
  7285  	return s
  7286  }
  7287  
  7288  // SetResultConfiguration sets the ResultConfiguration field's value.
  7289  func (s *QueryExecution) SetResultConfiguration(v *ResultConfiguration) *QueryExecution {
  7290  	s.ResultConfiguration = v
  7291  	return s
  7292  }
  7293  
  7294  // SetStatementType sets the StatementType field's value.
  7295  func (s *QueryExecution) SetStatementType(v string) *QueryExecution {
  7296  	s.StatementType = &v
  7297  	return s
  7298  }
  7299  
  7300  // SetStatistics sets the Statistics field's value.
  7301  func (s *QueryExecution) SetStatistics(v *QueryExecutionStatistics) *QueryExecution {
  7302  	s.Statistics = v
  7303  	return s
  7304  }
  7305  
  7306  // SetStatus sets the Status field's value.
  7307  func (s *QueryExecution) SetStatus(v *QueryExecutionStatus) *QueryExecution {
  7308  	s.Status = v
  7309  	return s
  7310  }
  7311  
  7312  // SetWorkGroup sets the WorkGroup field's value.
  7313  func (s *QueryExecution) SetWorkGroup(v string) *QueryExecution {
  7314  	s.WorkGroup = &v
  7315  	return s
  7316  }
  7317  
  7318  // The database and data catalog context in which the query execution occurs.
  7319  type QueryExecutionContext struct {
  7320  	_ struct{} `type:"structure"`
  7321  
  7322  	// The name of the data catalog used in the query execution.
  7323  	Catalog *string `min:"1" type:"string"`
  7324  
  7325  	// The name of the database used in the query execution. The database must exist
  7326  	// in the catalog.
  7327  	Database *string `min:"1" type:"string"`
  7328  }
  7329  
  7330  // String returns the string representation.
  7331  //
  7332  // API parameter values that are decorated as "sensitive" in the API will not
  7333  // be included in the string output. The member name will be present, but the
  7334  // value will be replaced with "sensitive".
  7335  func (s QueryExecutionContext) String() string {
  7336  	return awsutil.Prettify(s)
  7337  }
  7338  
  7339  // GoString returns the string representation.
  7340  //
  7341  // API parameter values that are decorated as "sensitive" in the API will not
  7342  // be included in the string output. The member name will be present, but the
  7343  // value will be replaced with "sensitive".
  7344  func (s QueryExecutionContext) GoString() string {
  7345  	return s.String()
  7346  }
  7347  
  7348  // Validate inspects the fields of the type to determine if they are valid.
  7349  func (s *QueryExecutionContext) Validate() error {
  7350  	invalidParams := request.ErrInvalidParams{Context: "QueryExecutionContext"}
  7351  	if s.Catalog != nil && len(*s.Catalog) < 1 {
  7352  		invalidParams.Add(request.NewErrParamMinLen("Catalog", 1))
  7353  	}
  7354  	if s.Database != nil && len(*s.Database) < 1 {
  7355  		invalidParams.Add(request.NewErrParamMinLen("Database", 1))
  7356  	}
  7357  
  7358  	if invalidParams.Len() > 0 {
  7359  		return invalidParams
  7360  	}
  7361  	return nil
  7362  }
  7363  
  7364  // SetCatalog sets the Catalog field's value.
  7365  func (s *QueryExecutionContext) SetCatalog(v string) *QueryExecutionContext {
  7366  	s.Catalog = &v
  7367  	return s
  7368  }
  7369  
  7370  // SetDatabase sets the Database field's value.
  7371  func (s *QueryExecutionContext) SetDatabase(v string) *QueryExecutionContext {
  7372  	s.Database = &v
  7373  	return s
  7374  }
  7375  
  7376  // The amount of data scanned during the query execution and the amount of time
  7377  // that it took to execute, and the type of statement that was run.
  7378  type QueryExecutionStatistics struct {
  7379  	_ struct{} `type:"structure"`
  7380  
  7381  	// The location and file name of a data manifest file. The manifest file is
  7382  	// saved to the Athena query results location in Amazon S3. The manifest file
  7383  	// tracks files that the query wrote to Amazon S3. If the query fails, the manifest
  7384  	// file also tracks files that the query intended to write. The manifest is
  7385  	// useful for identifying orphaned files resulting from a failed query. For
  7386  	// more information, see Working with Query Results, Output Files, and Query
  7387  	// History (https://docs.aws.amazon.com/athena/latest/ug/querying.html) in the
  7388  	// Amazon Athena User Guide.
  7389  	DataManifestLocation *string `type:"string"`
  7390  
  7391  	// The number of bytes in the data that was queried.
  7392  	DataScannedInBytes *int64 `type:"long"`
  7393  
  7394  	// The number of milliseconds that the query took to execute.
  7395  	EngineExecutionTimeInMillis *int64 `type:"long"`
  7396  
  7397  	// The number of milliseconds that Athena took to plan the query processing
  7398  	// flow. This includes the time spent retrieving table partitions from the data
  7399  	// source. Note that because the query engine performs the query planning, query
  7400  	// planning time is a subset of engine processing time.
  7401  	QueryPlanningTimeInMillis *int64 `type:"long"`
  7402  
  7403  	// The number of milliseconds that the query was in your query queue waiting
  7404  	// for resources. Note that if transient errors occur, Athena might automatically
  7405  	// add the query back to the queue.
  7406  	QueryQueueTimeInMillis *int64 `type:"long"`
  7407  
  7408  	// The number of milliseconds that Athena took to finalize and publish the query
  7409  	// results after the query engine finished running the query.
  7410  	ServiceProcessingTimeInMillis *int64 `type:"long"`
  7411  
  7412  	// The number of milliseconds that Athena took to run the query.
  7413  	TotalExecutionTimeInMillis *int64 `type:"long"`
  7414  }
  7415  
  7416  // String returns the string representation.
  7417  //
  7418  // API parameter values that are decorated as "sensitive" in the API will not
  7419  // be included in the string output. The member name will be present, but the
  7420  // value will be replaced with "sensitive".
  7421  func (s QueryExecutionStatistics) String() string {
  7422  	return awsutil.Prettify(s)
  7423  }
  7424  
  7425  // GoString returns the string representation.
  7426  //
  7427  // API parameter values that are decorated as "sensitive" in the API will not
  7428  // be included in the string output. The member name will be present, but the
  7429  // value will be replaced with "sensitive".
  7430  func (s QueryExecutionStatistics) GoString() string {
  7431  	return s.String()
  7432  }
  7433  
  7434  // SetDataManifestLocation sets the DataManifestLocation field's value.
  7435  func (s *QueryExecutionStatistics) SetDataManifestLocation(v string) *QueryExecutionStatistics {
  7436  	s.DataManifestLocation = &v
  7437  	return s
  7438  }
  7439  
  7440  // SetDataScannedInBytes sets the DataScannedInBytes field's value.
  7441  func (s *QueryExecutionStatistics) SetDataScannedInBytes(v int64) *QueryExecutionStatistics {
  7442  	s.DataScannedInBytes = &v
  7443  	return s
  7444  }
  7445  
  7446  // SetEngineExecutionTimeInMillis sets the EngineExecutionTimeInMillis field's value.
  7447  func (s *QueryExecutionStatistics) SetEngineExecutionTimeInMillis(v int64) *QueryExecutionStatistics {
  7448  	s.EngineExecutionTimeInMillis = &v
  7449  	return s
  7450  }
  7451  
  7452  // SetQueryPlanningTimeInMillis sets the QueryPlanningTimeInMillis field's value.
  7453  func (s *QueryExecutionStatistics) SetQueryPlanningTimeInMillis(v int64) *QueryExecutionStatistics {
  7454  	s.QueryPlanningTimeInMillis = &v
  7455  	return s
  7456  }
  7457  
  7458  // SetQueryQueueTimeInMillis sets the QueryQueueTimeInMillis field's value.
  7459  func (s *QueryExecutionStatistics) SetQueryQueueTimeInMillis(v int64) *QueryExecutionStatistics {
  7460  	s.QueryQueueTimeInMillis = &v
  7461  	return s
  7462  }
  7463  
  7464  // SetServiceProcessingTimeInMillis sets the ServiceProcessingTimeInMillis field's value.
  7465  func (s *QueryExecutionStatistics) SetServiceProcessingTimeInMillis(v int64) *QueryExecutionStatistics {
  7466  	s.ServiceProcessingTimeInMillis = &v
  7467  	return s
  7468  }
  7469  
  7470  // SetTotalExecutionTimeInMillis sets the TotalExecutionTimeInMillis field's value.
  7471  func (s *QueryExecutionStatistics) SetTotalExecutionTimeInMillis(v int64) *QueryExecutionStatistics {
  7472  	s.TotalExecutionTimeInMillis = &v
  7473  	return s
  7474  }
  7475  
  7476  // The completion date, current state, submission time, and state change reason
  7477  // (if applicable) for the query execution.
  7478  type QueryExecutionStatus struct {
  7479  	_ struct{} `type:"structure"`
  7480  
  7481  	// The date and time that the query completed.
  7482  	CompletionDateTime *time.Time `type:"timestamp"`
  7483  
  7484  	// The state of query execution. QUEUED indicates that the query has been submitted
  7485  	// to the service, and Athena will execute the query as soon as resources are
  7486  	// available. RUNNING indicates that the query is in execution phase. SUCCEEDED
  7487  	// indicates that the query completed without errors. FAILED indicates that
  7488  	// the query experienced an error and did not complete processing. CANCELLED
  7489  	// indicates that a user input interrupted query execution.
  7490  	//
  7491  	// Athena automatically retries your queries in cases of certain transient errors.
  7492  	// As a result, you may see the query state transition from RUNNING or FAILED
  7493  	// to QUEUED.
  7494  	State *string `type:"string" enum:"QueryExecutionState"`
  7495  
  7496  	// Further detail about the status of the query.
  7497  	StateChangeReason *string `type:"string"`
  7498  
  7499  	// The date and time that the query was submitted.
  7500  	SubmissionDateTime *time.Time `type:"timestamp"`
  7501  }
  7502  
  7503  // String returns the string representation.
  7504  //
  7505  // API parameter values that are decorated as "sensitive" in the API will not
  7506  // be included in the string output. The member name will be present, but the
  7507  // value will be replaced with "sensitive".
  7508  func (s QueryExecutionStatus) String() string {
  7509  	return awsutil.Prettify(s)
  7510  }
  7511  
  7512  // GoString returns the string representation.
  7513  //
  7514  // API parameter values that are decorated as "sensitive" in the API will not
  7515  // be included in the string output. The member name will be present, but the
  7516  // value will be replaced with "sensitive".
  7517  func (s QueryExecutionStatus) GoString() string {
  7518  	return s.String()
  7519  }
  7520  
  7521  // SetCompletionDateTime sets the CompletionDateTime field's value.
  7522  func (s *QueryExecutionStatus) SetCompletionDateTime(v time.Time) *QueryExecutionStatus {
  7523  	s.CompletionDateTime = &v
  7524  	return s
  7525  }
  7526  
  7527  // SetState sets the State field's value.
  7528  func (s *QueryExecutionStatus) SetState(v string) *QueryExecutionStatus {
  7529  	s.State = &v
  7530  	return s
  7531  }
  7532  
  7533  // SetStateChangeReason sets the StateChangeReason field's value.
  7534  func (s *QueryExecutionStatus) SetStateChangeReason(v string) *QueryExecutionStatus {
  7535  	s.StateChangeReason = &v
  7536  	return s
  7537  }
  7538  
  7539  // SetSubmissionDateTime sets the SubmissionDateTime field's value.
  7540  func (s *QueryExecutionStatus) SetSubmissionDateTime(v time.Time) *QueryExecutionStatus {
  7541  	s.SubmissionDateTime = &v
  7542  	return s
  7543  }
  7544  
  7545  // A resource, such as a workgroup, was not found.
  7546  type ResourceNotFoundException struct {
  7547  	_            struct{}                  `type:"structure"`
  7548  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7549  
  7550  	Message_ *string `locationName:"Message" type:"string"`
  7551  
  7552  	ResourceName *string `min:"1" type:"string"`
  7553  }
  7554  
  7555  // String returns the string representation.
  7556  //
  7557  // API parameter values that are decorated as "sensitive" in the API will not
  7558  // be included in the string output. The member name will be present, but the
  7559  // value will be replaced with "sensitive".
  7560  func (s ResourceNotFoundException) String() string {
  7561  	return awsutil.Prettify(s)
  7562  }
  7563  
  7564  // GoString returns the string representation.
  7565  //
  7566  // API parameter values that are decorated as "sensitive" in the API will not
  7567  // be included in the string output. The member name will be present, but the
  7568  // value will be replaced with "sensitive".
  7569  func (s ResourceNotFoundException) GoString() string {
  7570  	return s.String()
  7571  }
  7572  
  7573  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  7574  	return &ResourceNotFoundException{
  7575  		RespMetadata: v,
  7576  	}
  7577  }
  7578  
  7579  // Code returns the exception type name.
  7580  func (s *ResourceNotFoundException) Code() string {
  7581  	return "ResourceNotFoundException"
  7582  }
  7583  
  7584  // Message returns the exception's message.
  7585  func (s *ResourceNotFoundException) Message() string {
  7586  	if s.Message_ != nil {
  7587  		return *s.Message_
  7588  	}
  7589  	return ""
  7590  }
  7591  
  7592  // OrigErr always returns nil, satisfies awserr.Error interface.
  7593  func (s *ResourceNotFoundException) OrigErr() error {
  7594  	return nil
  7595  }
  7596  
  7597  func (s *ResourceNotFoundException) Error() string {
  7598  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  7599  }
  7600  
  7601  // Status code returns the HTTP status code for the request's response error.
  7602  func (s *ResourceNotFoundException) StatusCode() int {
  7603  	return s.RespMetadata.StatusCode
  7604  }
  7605  
  7606  // RequestID returns the service's response RequestID for request.
  7607  func (s *ResourceNotFoundException) RequestID() string {
  7608  	return s.RespMetadata.RequestID
  7609  }
  7610  
  7611  // The location in Amazon S3 where query results are stored and the encryption
  7612  // option, if any, used for query results. These are known as "client-side settings".
  7613  // If workgroup settings override client-side settings, then the query uses
  7614  // the workgroup settings.
  7615  type ResultConfiguration struct {
  7616  	_ struct{} `type:"structure"`
  7617  
  7618  	// If query results are encrypted in Amazon S3, indicates the encryption option
  7619  	// used (for example, SSE-KMS or CSE-KMS) and key information. This is a client-side
  7620  	// setting. If workgroup settings override client-side settings, then the query
  7621  	// uses the encryption configuration that is specified for the workgroup, and
  7622  	// also uses the location for storing query results specified in the workgroup.
  7623  	// See WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings
  7624  	// Override Client-Side Settings (https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html).
  7625  	EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
  7626  
  7627  	// The location in Amazon S3 where your query results are stored, such as s3://path/to/query/bucket/.
  7628  	// To run the query, you must specify the query results location using one of
  7629  	// the ways: either for individual queries using either this setting (client-side),
  7630  	// or in the workgroup, using WorkGroupConfiguration. If none of them is set,
  7631  	// Athena issues an error that no output location is provided. For more information,
  7632  	// see Query Results (https://docs.aws.amazon.com/athena/latest/ug/querying.html).
  7633  	// If workgroup settings override client-side settings, then the query uses
  7634  	// the settings specified for the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.
  7635  	OutputLocation *string `type:"string"`
  7636  }
  7637  
  7638  // String returns the string representation.
  7639  //
  7640  // API parameter values that are decorated as "sensitive" in the API will not
  7641  // be included in the string output. The member name will be present, but the
  7642  // value will be replaced with "sensitive".
  7643  func (s ResultConfiguration) String() string {
  7644  	return awsutil.Prettify(s)
  7645  }
  7646  
  7647  // GoString returns the string representation.
  7648  //
  7649  // API parameter values that are decorated as "sensitive" in the API will not
  7650  // be included in the string output. The member name will be present, but the
  7651  // value will be replaced with "sensitive".
  7652  func (s ResultConfiguration) GoString() string {
  7653  	return s.String()
  7654  }
  7655  
  7656  // Validate inspects the fields of the type to determine if they are valid.
  7657  func (s *ResultConfiguration) Validate() error {
  7658  	invalidParams := request.ErrInvalidParams{Context: "ResultConfiguration"}
  7659  	if s.EncryptionConfiguration != nil {
  7660  		if err := s.EncryptionConfiguration.Validate(); err != nil {
  7661  			invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
  7662  		}
  7663  	}
  7664  
  7665  	if invalidParams.Len() > 0 {
  7666  		return invalidParams
  7667  	}
  7668  	return nil
  7669  }
  7670  
  7671  // SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
  7672  func (s *ResultConfiguration) SetEncryptionConfiguration(v *EncryptionConfiguration) *ResultConfiguration {
  7673  	s.EncryptionConfiguration = v
  7674  	return s
  7675  }
  7676  
  7677  // SetOutputLocation sets the OutputLocation field's value.
  7678  func (s *ResultConfiguration) SetOutputLocation(v string) *ResultConfiguration {
  7679  	s.OutputLocation = &v
  7680  	return s
  7681  }
  7682  
  7683  // The information about the updates in the query results, such as output location
  7684  // and encryption configuration for the query results.
  7685  type ResultConfigurationUpdates struct {
  7686  	_ struct{} `type:"structure"`
  7687  
  7688  	// The encryption configuration for the query results.
  7689  	EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
  7690  
  7691  	// The location in Amazon S3 where your query results are stored, such as s3://path/to/query/bucket/.
  7692  	// For more information, see Query Results (https://docs.aws.amazon.com/athena/latest/ug/querying.html)
  7693  	// If workgroup settings override client-side settings, then the query uses
  7694  	// the location for the query results and the encryption configuration that
  7695  	// are specified for the workgroup. The "workgroup settings override" is specified
  7696  	// in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration.
  7697  	// See WorkGroupConfiguration$EnforceWorkGroupConfiguration.
  7698  	OutputLocation *string `type:"string"`
  7699  
  7700  	// If set to "true", indicates that the previously-specified encryption configuration
  7701  	// (also known as the client-side setting) for queries in this workgroup should
  7702  	// be ignored and set to null. If set to "false" or not set, and a value is
  7703  	// present in the EncryptionConfiguration in ResultConfigurationUpdates (the
  7704  	// client-side setting), the EncryptionConfiguration in the workgroup's ResultConfiguration
  7705  	// will be updated with the new value. For more information, see Workgroup Settings
  7706  	// Override Client-Side Settings (https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html).
  7707  	RemoveEncryptionConfiguration *bool `type:"boolean"`
  7708  
  7709  	// If set to "true", indicates that the previously-specified query results location
  7710  	// (also known as a client-side setting) for queries in this workgroup should
  7711  	// be ignored and set to null. If set to "false" or not set, and a value is
  7712  	// present in the OutputLocation in ResultConfigurationUpdates (the client-side
  7713  	// setting), the OutputLocation in the workgroup's ResultConfiguration will
  7714  	// be updated with the new value. For more information, see Workgroup Settings
  7715  	// Override Client-Side Settings (https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html).
  7716  	RemoveOutputLocation *bool `type:"boolean"`
  7717  }
  7718  
  7719  // String returns the string representation.
  7720  //
  7721  // API parameter values that are decorated as "sensitive" in the API will not
  7722  // be included in the string output. The member name will be present, but the
  7723  // value will be replaced with "sensitive".
  7724  func (s ResultConfigurationUpdates) String() string {
  7725  	return awsutil.Prettify(s)
  7726  }
  7727  
  7728  // GoString returns the string representation.
  7729  //
  7730  // API parameter values that are decorated as "sensitive" in the API will not
  7731  // be included in the string output. The member name will be present, but the
  7732  // value will be replaced with "sensitive".
  7733  func (s ResultConfigurationUpdates) GoString() string {
  7734  	return s.String()
  7735  }
  7736  
  7737  // Validate inspects the fields of the type to determine if they are valid.
  7738  func (s *ResultConfigurationUpdates) Validate() error {
  7739  	invalidParams := request.ErrInvalidParams{Context: "ResultConfigurationUpdates"}
  7740  	if s.EncryptionConfiguration != nil {
  7741  		if err := s.EncryptionConfiguration.Validate(); err != nil {
  7742  			invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
  7743  		}
  7744  	}
  7745  
  7746  	if invalidParams.Len() > 0 {
  7747  		return invalidParams
  7748  	}
  7749  	return nil
  7750  }
  7751  
  7752  // SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
  7753  func (s *ResultConfigurationUpdates) SetEncryptionConfiguration(v *EncryptionConfiguration) *ResultConfigurationUpdates {
  7754  	s.EncryptionConfiguration = v
  7755  	return s
  7756  }
  7757  
  7758  // SetOutputLocation sets the OutputLocation field's value.
  7759  func (s *ResultConfigurationUpdates) SetOutputLocation(v string) *ResultConfigurationUpdates {
  7760  	s.OutputLocation = &v
  7761  	return s
  7762  }
  7763  
  7764  // SetRemoveEncryptionConfiguration sets the RemoveEncryptionConfiguration field's value.
  7765  func (s *ResultConfigurationUpdates) SetRemoveEncryptionConfiguration(v bool) *ResultConfigurationUpdates {
  7766  	s.RemoveEncryptionConfiguration = &v
  7767  	return s
  7768  }
  7769  
  7770  // SetRemoveOutputLocation sets the RemoveOutputLocation field's value.
  7771  func (s *ResultConfigurationUpdates) SetRemoveOutputLocation(v bool) *ResultConfigurationUpdates {
  7772  	s.RemoveOutputLocation = &v
  7773  	return s
  7774  }
  7775  
  7776  // The metadata and rows that comprise a query result set. The metadata describes
  7777  // the column structure and data types. To return a ResultSet object, use GetQueryResults.
  7778  type ResultSet struct {
  7779  	_ struct{} `type:"structure"`
  7780  
  7781  	// The metadata that describes the column structure and data types of a table
  7782  	// of query results.
  7783  	ResultSetMetadata *ResultSetMetadata `type:"structure"`
  7784  
  7785  	// The rows in the table.
  7786  	Rows []*Row `type:"list"`
  7787  }
  7788  
  7789  // String returns the string representation.
  7790  //
  7791  // API parameter values that are decorated as "sensitive" in the API will not
  7792  // be included in the string output. The member name will be present, but the
  7793  // value will be replaced with "sensitive".
  7794  func (s ResultSet) String() string {
  7795  	return awsutil.Prettify(s)
  7796  }
  7797  
  7798  // GoString returns the string representation.
  7799  //
  7800  // API parameter values that are decorated as "sensitive" in the API will not
  7801  // be included in the string output. The member name will be present, but the
  7802  // value will be replaced with "sensitive".
  7803  func (s ResultSet) GoString() string {
  7804  	return s.String()
  7805  }
  7806  
  7807  // SetResultSetMetadata sets the ResultSetMetadata field's value.
  7808  func (s *ResultSet) SetResultSetMetadata(v *ResultSetMetadata) *ResultSet {
  7809  	s.ResultSetMetadata = v
  7810  	return s
  7811  }
  7812  
  7813  // SetRows sets the Rows field's value.
  7814  func (s *ResultSet) SetRows(v []*Row) *ResultSet {
  7815  	s.Rows = v
  7816  	return s
  7817  }
  7818  
  7819  // The metadata that describes the column structure and data types of a table
  7820  // of query results. To return a ResultSetMetadata object, use GetQueryResults.
  7821  type ResultSetMetadata struct {
  7822  	_ struct{} `type:"structure"`
  7823  
  7824  	// Information about the columns returned in a query result metadata.
  7825  	ColumnInfo []*ColumnInfo `type:"list"`
  7826  }
  7827  
  7828  // String returns the string representation.
  7829  //
  7830  // API parameter values that are decorated as "sensitive" in the API will not
  7831  // be included in the string output. The member name will be present, but the
  7832  // value will be replaced with "sensitive".
  7833  func (s ResultSetMetadata) String() string {
  7834  	return awsutil.Prettify(s)
  7835  }
  7836  
  7837  // GoString returns the string representation.
  7838  //
  7839  // API parameter values that are decorated as "sensitive" in the API will not
  7840  // be included in the string output. The member name will be present, but the
  7841  // value will be replaced with "sensitive".
  7842  func (s ResultSetMetadata) GoString() string {
  7843  	return s.String()
  7844  }
  7845  
  7846  // SetColumnInfo sets the ColumnInfo field's value.
  7847  func (s *ResultSetMetadata) SetColumnInfo(v []*ColumnInfo) *ResultSetMetadata {
  7848  	s.ColumnInfo = v
  7849  	return s
  7850  }
  7851  
  7852  // The rows that comprise a query result table.
  7853  type Row struct {
  7854  	_ struct{} `type:"structure"`
  7855  
  7856  	// The data that populates a row in a query result table.
  7857  	Data []*Datum `type:"list"`
  7858  }
  7859  
  7860  // String returns the string representation.
  7861  //
  7862  // API parameter values that are decorated as "sensitive" in the API will not
  7863  // be included in the string output. The member name will be present, but the
  7864  // value will be replaced with "sensitive".
  7865  func (s Row) String() string {
  7866  	return awsutil.Prettify(s)
  7867  }
  7868  
  7869  // GoString returns the string representation.
  7870  //
  7871  // API parameter values that are decorated as "sensitive" in the API will not
  7872  // be included in the string output. The member name will be present, but the
  7873  // value will be replaced with "sensitive".
  7874  func (s Row) GoString() string {
  7875  	return s.String()
  7876  }
  7877  
  7878  // SetData sets the Data field's value.
  7879  func (s *Row) SetData(v []*Datum) *Row {
  7880  	s.Data = v
  7881  	return s
  7882  }
  7883  
  7884  type StartQueryExecutionInput struct {
  7885  	_ struct{} `type:"structure"`
  7886  
  7887  	// A unique case-sensitive string used to ensure the request to create the query
  7888  	// is idempotent (executes only once). If another StartQueryExecution request
  7889  	// is received, the same response is returned and another query is not created.
  7890  	// If a parameter has changed, for example, the QueryString, an error is returned.
  7891  	//
  7892  	// This token is listed as not required because Amazon Web Services SDKs (for
  7893  	// example the Amazon Web Services SDK for Java) auto-generate the token for
  7894  	// users. If you are not using the Amazon Web Services SDK or the Amazon Web
  7895  	// Services CLI, you must provide this token or the action will fail.
  7896  	ClientRequestToken *string `min:"32" type:"string" idempotencyToken:"true"`
  7897  
  7898  	// The database within which the query executes.
  7899  	QueryExecutionContext *QueryExecutionContext `type:"structure"`
  7900  
  7901  	// The SQL query statements to be executed.
  7902  	//
  7903  	// QueryString is a required field
  7904  	QueryString *string `min:"1" type:"string" required:"true"`
  7905  
  7906  	// Specifies information about where and how to save the results of the query
  7907  	// execution. If the query runs in a workgroup, then workgroup's settings may
  7908  	// override query settings. This affects the query results location. The workgroup
  7909  	// settings override is specified in EnforceWorkGroupConfiguration (true/false)
  7910  	// in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.
  7911  	ResultConfiguration *ResultConfiguration `type:"structure"`
  7912  
  7913  	// The name of the workgroup in which the query is being started.
  7914  	WorkGroup *string `type:"string"`
  7915  }
  7916  
  7917  // String returns the string representation.
  7918  //
  7919  // API parameter values that are decorated as "sensitive" in the API will not
  7920  // be included in the string output. The member name will be present, but the
  7921  // value will be replaced with "sensitive".
  7922  func (s StartQueryExecutionInput) String() string {
  7923  	return awsutil.Prettify(s)
  7924  }
  7925  
  7926  // GoString returns the string representation.
  7927  //
  7928  // API parameter values that are decorated as "sensitive" in the API will not
  7929  // be included in the string output. The member name will be present, but the
  7930  // value will be replaced with "sensitive".
  7931  func (s StartQueryExecutionInput) GoString() string {
  7932  	return s.String()
  7933  }
  7934  
  7935  // Validate inspects the fields of the type to determine if they are valid.
  7936  func (s *StartQueryExecutionInput) Validate() error {
  7937  	invalidParams := request.ErrInvalidParams{Context: "StartQueryExecutionInput"}
  7938  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 32 {
  7939  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 32))
  7940  	}
  7941  	if s.QueryString == nil {
  7942  		invalidParams.Add(request.NewErrParamRequired("QueryString"))
  7943  	}
  7944  	if s.QueryString != nil && len(*s.QueryString) < 1 {
  7945  		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
  7946  	}
  7947  	if s.QueryExecutionContext != nil {
  7948  		if err := s.QueryExecutionContext.Validate(); err != nil {
  7949  			invalidParams.AddNested("QueryExecutionContext", err.(request.ErrInvalidParams))
  7950  		}
  7951  	}
  7952  	if s.ResultConfiguration != nil {
  7953  		if err := s.ResultConfiguration.Validate(); err != nil {
  7954  			invalidParams.AddNested("ResultConfiguration", err.(request.ErrInvalidParams))
  7955  		}
  7956  	}
  7957  
  7958  	if invalidParams.Len() > 0 {
  7959  		return invalidParams
  7960  	}
  7961  	return nil
  7962  }
  7963  
  7964  // SetClientRequestToken sets the ClientRequestToken field's value.
  7965  func (s *StartQueryExecutionInput) SetClientRequestToken(v string) *StartQueryExecutionInput {
  7966  	s.ClientRequestToken = &v
  7967  	return s
  7968  }
  7969  
  7970  // SetQueryExecutionContext sets the QueryExecutionContext field's value.
  7971  func (s *StartQueryExecutionInput) SetQueryExecutionContext(v *QueryExecutionContext) *StartQueryExecutionInput {
  7972  	s.QueryExecutionContext = v
  7973  	return s
  7974  }
  7975  
  7976  // SetQueryString sets the QueryString field's value.
  7977  func (s *StartQueryExecutionInput) SetQueryString(v string) *StartQueryExecutionInput {
  7978  	s.QueryString = &v
  7979  	return s
  7980  }
  7981  
  7982  // SetResultConfiguration sets the ResultConfiguration field's value.
  7983  func (s *StartQueryExecutionInput) SetResultConfiguration(v *ResultConfiguration) *StartQueryExecutionInput {
  7984  	s.ResultConfiguration = v
  7985  	return s
  7986  }
  7987  
  7988  // SetWorkGroup sets the WorkGroup field's value.
  7989  func (s *StartQueryExecutionInput) SetWorkGroup(v string) *StartQueryExecutionInput {
  7990  	s.WorkGroup = &v
  7991  	return s
  7992  }
  7993  
  7994  type StartQueryExecutionOutput struct {
  7995  	_ struct{} `type:"structure"`
  7996  
  7997  	// The unique ID of the query that ran as a result of this request.
  7998  	QueryExecutionId *string `type:"string"`
  7999  }
  8000  
  8001  // String returns the string representation.
  8002  //
  8003  // API parameter values that are decorated as "sensitive" in the API will not
  8004  // be included in the string output. The member name will be present, but the
  8005  // value will be replaced with "sensitive".
  8006  func (s StartQueryExecutionOutput) String() string {
  8007  	return awsutil.Prettify(s)
  8008  }
  8009  
  8010  // GoString returns the string representation.
  8011  //
  8012  // API parameter values that are decorated as "sensitive" in the API will not
  8013  // be included in the string output. The member name will be present, but the
  8014  // value will be replaced with "sensitive".
  8015  func (s StartQueryExecutionOutput) GoString() string {
  8016  	return s.String()
  8017  }
  8018  
  8019  // SetQueryExecutionId sets the QueryExecutionId field's value.
  8020  func (s *StartQueryExecutionOutput) SetQueryExecutionId(v string) *StartQueryExecutionOutput {
  8021  	s.QueryExecutionId = &v
  8022  	return s
  8023  }
  8024  
  8025  type StopQueryExecutionInput struct {
  8026  	_ struct{} `type:"structure"`
  8027  
  8028  	// The unique ID of the query execution to stop.
  8029  	QueryExecutionId *string `type:"string" idempotencyToken:"true"`
  8030  }
  8031  
  8032  // String returns the string representation.
  8033  //
  8034  // API parameter values that are decorated as "sensitive" in the API will not
  8035  // be included in the string output. The member name will be present, but the
  8036  // value will be replaced with "sensitive".
  8037  func (s StopQueryExecutionInput) String() string {
  8038  	return awsutil.Prettify(s)
  8039  }
  8040  
  8041  // GoString returns the string representation.
  8042  //
  8043  // API parameter values that are decorated as "sensitive" in the API will not
  8044  // be included in the string output. The member name will be present, but the
  8045  // value will be replaced with "sensitive".
  8046  func (s StopQueryExecutionInput) GoString() string {
  8047  	return s.String()
  8048  }
  8049  
  8050  // SetQueryExecutionId sets the QueryExecutionId field's value.
  8051  func (s *StopQueryExecutionInput) SetQueryExecutionId(v string) *StopQueryExecutionInput {
  8052  	s.QueryExecutionId = &v
  8053  	return s
  8054  }
  8055  
  8056  type StopQueryExecutionOutput struct {
  8057  	_ struct{} `type:"structure"`
  8058  }
  8059  
  8060  // String returns the string representation.
  8061  //
  8062  // API parameter values that are decorated as "sensitive" in the API will not
  8063  // be included in the string output. The member name will be present, but the
  8064  // value will be replaced with "sensitive".
  8065  func (s StopQueryExecutionOutput) String() string {
  8066  	return awsutil.Prettify(s)
  8067  }
  8068  
  8069  // GoString returns the string representation.
  8070  //
  8071  // API parameter values that are decorated as "sensitive" in the API will not
  8072  // be included in the string output. The member name will be present, but the
  8073  // value will be replaced with "sensitive".
  8074  func (s StopQueryExecutionOutput) GoString() string {
  8075  	return s.String()
  8076  }
  8077  
  8078  // Contains metadata for a table.
  8079  type TableMetadata struct {
  8080  	_ struct{} `type:"structure"`
  8081  
  8082  	// A list of the columns in the table.
  8083  	Columns []*Column `type:"list"`
  8084  
  8085  	// The time that the table was created.
  8086  	CreateTime *time.Time `type:"timestamp"`
  8087  
  8088  	// The last time the table was accessed.
  8089  	LastAccessTime *time.Time `type:"timestamp"`
  8090  
  8091  	// The name of the table.
  8092  	//
  8093  	// Name is a required field
  8094  	Name *string `min:"1" type:"string" required:"true"`
  8095  
  8096  	// A set of custom key/value pairs for table properties.
  8097  	Parameters map[string]*string `type:"map"`
  8098  
  8099  	// A list of the partition keys in the table.
  8100  	PartitionKeys []*Column `type:"list"`
  8101  
  8102  	// The type of table. In Athena, only EXTERNAL_TABLE is supported.
  8103  	TableType *string `type:"string"`
  8104  }
  8105  
  8106  // String returns the string representation.
  8107  //
  8108  // API parameter values that are decorated as "sensitive" in the API will not
  8109  // be included in the string output. The member name will be present, but the
  8110  // value will be replaced with "sensitive".
  8111  func (s TableMetadata) String() string {
  8112  	return awsutil.Prettify(s)
  8113  }
  8114  
  8115  // GoString returns the string representation.
  8116  //
  8117  // API parameter values that are decorated as "sensitive" in the API will not
  8118  // be included in the string output. The member name will be present, but the
  8119  // value will be replaced with "sensitive".
  8120  func (s TableMetadata) GoString() string {
  8121  	return s.String()
  8122  }
  8123  
  8124  // SetColumns sets the Columns field's value.
  8125  func (s *TableMetadata) SetColumns(v []*Column) *TableMetadata {
  8126  	s.Columns = v
  8127  	return s
  8128  }
  8129  
  8130  // SetCreateTime sets the CreateTime field's value.
  8131  func (s *TableMetadata) SetCreateTime(v time.Time) *TableMetadata {
  8132  	s.CreateTime = &v
  8133  	return s
  8134  }
  8135  
  8136  // SetLastAccessTime sets the LastAccessTime field's value.
  8137  func (s *TableMetadata) SetLastAccessTime(v time.Time) *TableMetadata {
  8138  	s.LastAccessTime = &v
  8139  	return s
  8140  }
  8141  
  8142  // SetName sets the Name field's value.
  8143  func (s *TableMetadata) SetName(v string) *TableMetadata {
  8144  	s.Name = &v
  8145  	return s
  8146  }
  8147  
  8148  // SetParameters sets the Parameters field's value.
  8149  func (s *TableMetadata) SetParameters(v map[string]*string) *TableMetadata {
  8150  	s.Parameters = v
  8151  	return s
  8152  }
  8153  
  8154  // SetPartitionKeys sets the PartitionKeys field's value.
  8155  func (s *TableMetadata) SetPartitionKeys(v []*Column) *TableMetadata {
  8156  	s.PartitionKeys = v
  8157  	return s
  8158  }
  8159  
  8160  // SetTableType sets the TableType field's value.
  8161  func (s *TableMetadata) SetTableType(v string) *TableMetadata {
  8162  	s.TableType = &v
  8163  	return s
  8164  }
  8165  
  8166  // A label that you assign to a resource. In Athena, a resource can be a workgroup
  8167  // or data catalog. Each tag consists of a key and an optional value, both of
  8168  // which you define. For example, you can use tags to categorize Athena workgroups
  8169  // or data catalogs by purpose, owner, or environment. Use a consistent set
  8170  // of tag keys to make it easier to search and filter workgroups or data catalogs
  8171  // in your account. For best practices, see Tagging Best Practices (https://aws.amazon.com/answers/account-management/aws-tagging-strategies/).
  8172  // Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can
  8173  // be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers
  8174  // representable in UTF-8, and the following characters: + - = . _ : / @. Tag
  8175  // keys and values are case-sensitive. Tag keys must be unique per resource.
  8176  // If you specify more than one tag, separate them by commas.
  8177  type Tag struct {
  8178  	_ struct{} `type:"structure"`
  8179  
  8180  	// A tag key. The tag key length is from 1 to 128 Unicode characters in UTF-8.
  8181  	// You can use letters and numbers representable in UTF-8, and the following
  8182  	// characters: + - = . _ : / @. Tag keys are case-sensitive and must be unique
  8183  	// per resource.
  8184  	Key *string `min:"1" type:"string"`
  8185  
  8186  	// A tag value. The tag value length is from 0 to 256 Unicode characters in
  8187  	// UTF-8. You can use letters and numbers representable in UTF-8, and the following
  8188  	// characters: + - = . _ : / @. Tag values are case-sensitive.
  8189  	Value *string `type:"string"`
  8190  }
  8191  
  8192  // String returns the string representation.
  8193  //
  8194  // API parameter values that are decorated as "sensitive" in the API will not
  8195  // be included in the string output. The member name will be present, but the
  8196  // value will be replaced with "sensitive".
  8197  func (s Tag) String() string {
  8198  	return awsutil.Prettify(s)
  8199  }
  8200  
  8201  // GoString returns the string representation.
  8202  //
  8203  // API parameter values that are decorated as "sensitive" in the API will not
  8204  // be included in the string output. The member name will be present, but the
  8205  // value will be replaced with "sensitive".
  8206  func (s Tag) GoString() string {
  8207  	return s.String()
  8208  }
  8209  
  8210  // Validate inspects the fields of the type to determine if they are valid.
  8211  func (s *Tag) Validate() error {
  8212  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
  8213  	if s.Key != nil && len(*s.Key) < 1 {
  8214  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  8215  	}
  8216  
  8217  	if invalidParams.Len() > 0 {
  8218  		return invalidParams
  8219  	}
  8220  	return nil
  8221  }
  8222  
  8223  // SetKey sets the Key field's value.
  8224  func (s *Tag) SetKey(v string) *Tag {
  8225  	s.Key = &v
  8226  	return s
  8227  }
  8228  
  8229  // SetValue sets the Value field's value.
  8230  func (s *Tag) SetValue(v string) *Tag {
  8231  	s.Value = &v
  8232  	return s
  8233  }
  8234  
  8235  type TagResourceInput struct {
  8236  	_ struct{} `type:"structure"`
  8237  
  8238  	// Specifies the ARN of the Athena resource (workgroup or data catalog) to which
  8239  	// tags are to be added.
  8240  	//
  8241  	// ResourceARN is a required field
  8242  	ResourceARN *string `min:"1" type:"string" required:"true"`
  8243  
  8244  	// A collection of one or more tags, separated by commas, to be added to an
  8245  	// Athena workgroup or data catalog resource.
  8246  	//
  8247  	// Tags is a required field
  8248  	Tags []*Tag `type:"list" required:"true"`
  8249  }
  8250  
  8251  // String returns the string representation.
  8252  //
  8253  // API parameter values that are decorated as "sensitive" in the API will not
  8254  // be included in the string output. The member name will be present, but the
  8255  // value will be replaced with "sensitive".
  8256  func (s TagResourceInput) String() string {
  8257  	return awsutil.Prettify(s)
  8258  }
  8259  
  8260  // GoString returns the string representation.
  8261  //
  8262  // API parameter values that are decorated as "sensitive" in the API will not
  8263  // be included in the string output. The member name will be present, but the
  8264  // value will be replaced with "sensitive".
  8265  func (s TagResourceInput) GoString() string {
  8266  	return s.String()
  8267  }
  8268  
  8269  // Validate inspects the fields of the type to determine if they are valid.
  8270  func (s *TagResourceInput) Validate() error {
  8271  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
  8272  	if s.ResourceARN == nil {
  8273  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
  8274  	}
  8275  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
  8276  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
  8277  	}
  8278  	if s.Tags == nil {
  8279  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  8280  	}
  8281  	if s.Tags != nil {
  8282  		for i, v := range s.Tags {
  8283  			if v == nil {
  8284  				continue
  8285  			}
  8286  			if err := v.Validate(); err != nil {
  8287  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  8288  			}
  8289  		}
  8290  	}
  8291  
  8292  	if invalidParams.Len() > 0 {
  8293  		return invalidParams
  8294  	}
  8295  	return nil
  8296  }
  8297  
  8298  // SetResourceARN sets the ResourceARN field's value.
  8299  func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
  8300  	s.ResourceARN = &v
  8301  	return s
  8302  }
  8303  
  8304  // SetTags sets the Tags field's value.
  8305  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
  8306  	s.Tags = v
  8307  	return s
  8308  }
  8309  
  8310  type TagResourceOutput struct {
  8311  	_ struct{} `type:"structure"`
  8312  }
  8313  
  8314  // String returns the string representation.
  8315  //
  8316  // API parameter values that are decorated as "sensitive" in the API will not
  8317  // be included in the string output. The member name will be present, but the
  8318  // value will be replaced with "sensitive".
  8319  func (s TagResourceOutput) String() string {
  8320  	return awsutil.Prettify(s)
  8321  }
  8322  
  8323  // GoString returns the string representation.
  8324  //
  8325  // API parameter values that are decorated as "sensitive" in the API will not
  8326  // be included in the string output. The member name will be present, but the
  8327  // value will be replaced with "sensitive".
  8328  func (s TagResourceOutput) GoString() string {
  8329  	return s.String()
  8330  }
  8331  
  8332  // Indicates that the request was throttled.
  8333  type TooManyRequestsException struct {
  8334  	_            struct{}                  `type:"structure"`
  8335  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8336  
  8337  	Message_ *string `locationName:"Message" type:"string"`
  8338  
  8339  	// The reason for the query throttling, for example, when it exceeds the concurrent
  8340  	// query limit.
  8341  	Reason *string `type:"string" enum:"ThrottleReason"`
  8342  }
  8343  
  8344  // String returns the string representation.
  8345  //
  8346  // API parameter values that are decorated as "sensitive" in the API will not
  8347  // be included in the string output. The member name will be present, but the
  8348  // value will be replaced with "sensitive".
  8349  func (s TooManyRequestsException) String() string {
  8350  	return awsutil.Prettify(s)
  8351  }
  8352  
  8353  // GoString returns the string representation.
  8354  //
  8355  // API parameter values that are decorated as "sensitive" in the API will not
  8356  // be included in the string output. The member name will be present, but the
  8357  // value will be replaced with "sensitive".
  8358  func (s TooManyRequestsException) GoString() string {
  8359  	return s.String()
  8360  }
  8361  
  8362  func newErrorTooManyRequestsException(v protocol.ResponseMetadata) error {
  8363  	return &TooManyRequestsException{
  8364  		RespMetadata: v,
  8365  	}
  8366  }
  8367  
  8368  // Code returns the exception type name.
  8369  func (s *TooManyRequestsException) Code() string {
  8370  	return "TooManyRequestsException"
  8371  }
  8372  
  8373  // Message returns the exception's message.
  8374  func (s *TooManyRequestsException) Message() string {
  8375  	if s.Message_ != nil {
  8376  		return *s.Message_
  8377  	}
  8378  	return ""
  8379  }
  8380  
  8381  // OrigErr always returns nil, satisfies awserr.Error interface.
  8382  func (s *TooManyRequestsException) OrigErr() error {
  8383  	return nil
  8384  }
  8385  
  8386  func (s *TooManyRequestsException) Error() string {
  8387  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  8388  }
  8389  
  8390  // Status code returns the HTTP status code for the request's response error.
  8391  func (s *TooManyRequestsException) StatusCode() int {
  8392  	return s.RespMetadata.StatusCode
  8393  }
  8394  
  8395  // RequestID returns the service's response RequestID for request.
  8396  func (s *TooManyRequestsException) RequestID() string {
  8397  	return s.RespMetadata.RequestID
  8398  }
  8399  
  8400  // Information about a named query ID that could not be processed.
  8401  type UnprocessedNamedQueryId struct {
  8402  	_ struct{} `type:"structure"`
  8403  
  8404  	// The error code returned when the processing request for the named query failed,
  8405  	// if applicable.
  8406  	ErrorCode *string `min:"1" type:"string"`
  8407  
  8408  	// The error message returned when the processing request for the named query
  8409  	// failed, if applicable.
  8410  	ErrorMessage *string `type:"string"`
  8411  
  8412  	// The unique identifier of the named query.
  8413  	NamedQueryId *string `type:"string"`
  8414  }
  8415  
  8416  // String returns the string representation.
  8417  //
  8418  // API parameter values that are decorated as "sensitive" in the API will not
  8419  // be included in the string output. The member name will be present, but the
  8420  // value will be replaced with "sensitive".
  8421  func (s UnprocessedNamedQueryId) String() string {
  8422  	return awsutil.Prettify(s)
  8423  }
  8424  
  8425  // GoString returns the string representation.
  8426  //
  8427  // API parameter values that are decorated as "sensitive" in the API will not
  8428  // be included in the string output. The member name will be present, but the
  8429  // value will be replaced with "sensitive".
  8430  func (s UnprocessedNamedQueryId) GoString() string {
  8431  	return s.String()
  8432  }
  8433  
  8434  // SetErrorCode sets the ErrorCode field's value.
  8435  func (s *UnprocessedNamedQueryId) SetErrorCode(v string) *UnprocessedNamedQueryId {
  8436  	s.ErrorCode = &v
  8437  	return s
  8438  }
  8439  
  8440  // SetErrorMessage sets the ErrorMessage field's value.
  8441  func (s *UnprocessedNamedQueryId) SetErrorMessage(v string) *UnprocessedNamedQueryId {
  8442  	s.ErrorMessage = &v
  8443  	return s
  8444  }
  8445  
  8446  // SetNamedQueryId sets the NamedQueryId field's value.
  8447  func (s *UnprocessedNamedQueryId) SetNamedQueryId(v string) *UnprocessedNamedQueryId {
  8448  	s.NamedQueryId = &v
  8449  	return s
  8450  }
  8451  
  8452  // Describes a query execution that failed to process.
  8453  type UnprocessedQueryExecutionId struct {
  8454  	_ struct{} `type:"structure"`
  8455  
  8456  	// The error code returned when the query execution failed to process, if applicable.
  8457  	ErrorCode *string `min:"1" type:"string"`
  8458  
  8459  	// The error message returned when the query execution failed to process, if
  8460  	// applicable.
  8461  	ErrorMessage *string `type:"string"`
  8462  
  8463  	// The unique identifier of the query execution.
  8464  	QueryExecutionId *string `type:"string"`
  8465  }
  8466  
  8467  // String returns the string representation.
  8468  //
  8469  // API parameter values that are decorated as "sensitive" in the API will not
  8470  // be included in the string output. The member name will be present, but the
  8471  // value will be replaced with "sensitive".
  8472  func (s UnprocessedQueryExecutionId) String() string {
  8473  	return awsutil.Prettify(s)
  8474  }
  8475  
  8476  // GoString returns the string representation.
  8477  //
  8478  // API parameter values that are decorated as "sensitive" in the API will not
  8479  // be included in the string output. The member name will be present, but the
  8480  // value will be replaced with "sensitive".
  8481  func (s UnprocessedQueryExecutionId) GoString() string {
  8482  	return s.String()
  8483  }
  8484  
  8485  // SetErrorCode sets the ErrorCode field's value.
  8486  func (s *UnprocessedQueryExecutionId) SetErrorCode(v string) *UnprocessedQueryExecutionId {
  8487  	s.ErrorCode = &v
  8488  	return s
  8489  }
  8490  
  8491  // SetErrorMessage sets the ErrorMessage field's value.
  8492  func (s *UnprocessedQueryExecutionId) SetErrorMessage(v string) *UnprocessedQueryExecutionId {
  8493  	s.ErrorMessage = &v
  8494  	return s
  8495  }
  8496  
  8497  // SetQueryExecutionId sets the QueryExecutionId field's value.
  8498  func (s *UnprocessedQueryExecutionId) SetQueryExecutionId(v string) *UnprocessedQueryExecutionId {
  8499  	s.QueryExecutionId = &v
  8500  	return s
  8501  }
  8502  
  8503  type UntagResourceInput struct {
  8504  	_ struct{} `type:"structure"`
  8505  
  8506  	// Specifies the ARN of the resource from which tags are to be removed.
  8507  	//
  8508  	// ResourceARN is a required field
  8509  	ResourceARN *string `min:"1" type:"string" required:"true"`
  8510  
  8511  	// A comma-separated list of one or more tag keys whose tags are to be removed
  8512  	// from the specified resource.
  8513  	//
  8514  	// TagKeys is a required field
  8515  	TagKeys []*string `type:"list" required:"true"`
  8516  }
  8517  
  8518  // String returns the string representation.
  8519  //
  8520  // API parameter values that are decorated as "sensitive" in the API will not
  8521  // be included in the string output. The member name will be present, but the
  8522  // value will be replaced with "sensitive".
  8523  func (s UntagResourceInput) String() string {
  8524  	return awsutil.Prettify(s)
  8525  }
  8526  
  8527  // GoString returns the string representation.
  8528  //
  8529  // API parameter values that are decorated as "sensitive" in the API will not
  8530  // be included in the string output. The member name will be present, but the
  8531  // value will be replaced with "sensitive".
  8532  func (s UntagResourceInput) GoString() string {
  8533  	return s.String()
  8534  }
  8535  
  8536  // Validate inspects the fields of the type to determine if they are valid.
  8537  func (s *UntagResourceInput) Validate() error {
  8538  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
  8539  	if s.ResourceARN == nil {
  8540  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
  8541  	}
  8542  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
  8543  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
  8544  	}
  8545  	if s.TagKeys == nil {
  8546  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
  8547  	}
  8548  
  8549  	if invalidParams.Len() > 0 {
  8550  		return invalidParams
  8551  	}
  8552  	return nil
  8553  }
  8554  
  8555  // SetResourceARN sets the ResourceARN field's value.
  8556  func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
  8557  	s.ResourceARN = &v
  8558  	return s
  8559  }
  8560  
  8561  // SetTagKeys sets the TagKeys field's value.
  8562  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
  8563  	s.TagKeys = v
  8564  	return s
  8565  }
  8566  
  8567  type UntagResourceOutput struct {
  8568  	_ struct{} `type:"structure"`
  8569  }
  8570  
  8571  // String returns the string representation.
  8572  //
  8573  // API parameter values that are decorated as "sensitive" in the API will not
  8574  // be included in the string output. The member name will be present, but the
  8575  // value will be replaced with "sensitive".
  8576  func (s UntagResourceOutput) String() string {
  8577  	return awsutil.Prettify(s)
  8578  }
  8579  
  8580  // GoString returns the string representation.
  8581  //
  8582  // API parameter values that are decorated as "sensitive" in the API will not
  8583  // be included in the string output. The member name will be present, but the
  8584  // value will be replaced with "sensitive".
  8585  func (s UntagResourceOutput) GoString() string {
  8586  	return s.String()
  8587  }
  8588  
  8589  type UpdateDataCatalogInput struct {
  8590  	_ struct{} `type:"structure"`
  8591  
  8592  	// New or modified text that describes the data catalog.
  8593  	Description *string `min:"1" type:"string"`
  8594  
  8595  	// The name of the data catalog to update. The catalog name must be unique for
  8596  	// the Amazon Web Services account and can use a maximum of 128 alphanumeric,
  8597  	// underscore, at sign, or hyphen characters.
  8598  	//
  8599  	// Name is a required field
  8600  	Name *string `min:"1" type:"string" required:"true"`
  8601  
  8602  	// Specifies the Lambda function or functions to use for updating the data catalog.
  8603  	// This is a mapping whose values depend on the catalog type.
  8604  	//
  8605  	//    * For the HIVE data catalog type, use the following syntax. The metadata-function
  8606  	//    parameter is required. The sdk-version parameter is optional and defaults
  8607  	//    to the currently supported version. metadata-function=lambda_arn, sdk-version=version_number
  8608  	//
  8609  	//    * For the LAMBDA data catalog type, use one of the following sets of required
  8610  	//    parameters, but not both. If you have one Lambda function that processes
  8611  	//    metadata and another for reading the actual data, use the following syntax.
  8612  	//    Both parameters are required. metadata-function=lambda_arn, record-function=lambda_arn
  8613  	//    If you have a composite Lambda function that processes both metadata and
  8614  	//    data, use the following syntax to specify your Lambda function. function=lambda_arn
  8615  	Parameters map[string]*string `type:"map"`
  8616  
  8617  	// Specifies the type of data catalog to update. Specify LAMBDA for a federated
  8618  	// catalog, HIVE for an external hive metastore, or GLUE for an Glue Data Catalog.
  8619  	//
  8620  	// Type is a required field
  8621  	Type *string `type:"string" required:"true" enum:"DataCatalogType"`
  8622  }
  8623  
  8624  // String returns the string representation.
  8625  //
  8626  // API parameter values that are decorated as "sensitive" in the API will not
  8627  // be included in the string output. The member name will be present, but the
  8628  // value will be replaced with "sensitive".
  8629  func (s UpdateDataCatalogInput) String() string {
  8630  	return awsutil.Prettify(s)
  8631  }
  8632  
  8633  // GoString returns the string representation.
  8634  //
  8635  // API parameter values that are decorated as "sensitive" in the API will not
  8636  // be included in the string output. The member name will be present, but the
  8637  // value will be replaced with "sensitive".
  8638  func (s UpdateDataCatalogInput) GoString() string {
  8639  	return s.String()
  8640  }
  8641  
  8642  // Validate inspects the fields of the type to determine if they are valid.
  8643  func (s *UpdateDataCatalogInput) Validate() error {
  8644  	invalidParams := request.ErrInvalidParams{Context: "UpdateDataCatalogInput"}
  8645  	if s.Description != nil && len(*s.Description) < 1 {
  8646  		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
  8647  	}
  8648  	if s.Name == nil {
  8649  		invalidParams.Add(request.NewErrParamRequired("Name"))
  8650  	}
  8651  	if s.Name != nil && len(*s.Name) < 1 {
  8652  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  8653  	}
  8654  	if s.Type == nil {
  8655  		invalidParams.Add(request.NewErrParamRequired("Type"))
  8656  	}
  8657  
  8658  	if invalidParams.Len() > 0 {
  8659  		return invalidParams
  8660  	}
  8661  	return nil
  8662  }
  8663  
  8664  // SetDescription sets the Description field's value.
  8665  func (s *UpdateDataCatalogInput) SetDescription(v string) *UpdateDataCatalogInput {
  8666  	s.Description = &v
  8667  	return s
  8668  }
  8669  
  8670  // SetName sets the Name field's value.
  8671  func (s *UpdateDataCatalogInput) SetName(v string) *UpdateDataCatalogInput {
  8672  	s.Name = &v
  8673  	return s
  8674  }
  8675  
  8676  // SetParameters sets the Parameters field's value.
  8677  func (s *UpdateDataCatalogInput) SetParameters(v map[string]*string) *UpdateDataCatalogInput {
  8678  	s.Parameters = v
  8679  	return s
  8680  }
  8681  
  8682  // SetType sets the Type field's value.
  8683  func (s *UpdateDataCatalogInput) SetType(v string) *UpdateDataCatalogInput {
  8684  	s.Type = &v
  8685  	return s
  8686  }
  8687  
  8688  type UpdateDataCatalogOutput struct {
  8689  	_ struct{} `type:"structure"`
  8690  }
  8691  
  8692  // String returns the string representation.
  8693  //
  8694  // API parameter values that are decorated as "sensitive" in the API will not
  8695  // be included in the string output. The member name will be present, but the
  8696  // value will be replaced with "sensitive".
  8697  func (s UpdateDataCatalogOutput) String() string {
  8698  	return awsutil.Prettify(s)
  8699  }
  8700  
  8701  // GoString returns the string representation.
  8702  //
  8703  // API parameter values that are decorated as "sensitive" in the API will not
  8704  // be included in the string output. The member name will be present, but the
  8705  // value will be replaced with "sensitive".
  8706  func (s UpdateDataCatalogOutput) GoString() string {
  8707  	return s.String()
  8708  }
  8709  
  8710  type UpdatePreparedStatementInput struct {
  8711  	_ struct{} `type:"structure"`
  8712  
  8713  	// The description of the prepared statement.
  8714  	Description *string `min:"1" type:"string"`
  8715  
  8716  	// The query string for the prepared statement.
  8717  	//
  8718  	// QueryStatement is a required field
  8719  	QueryStatement *string `min:"1" type:"string" required:"true"`
  8720  
  8721  	// The name of the prepared statement.
  8722  	//
  8723  	// StatementName is a required field
  8724  	StatementName *string `min:"1" type:"string" required:"true"`
  8725  
  8726  	// The workgroup for the prepared statement.
  8727  	//
  8728  	// WorkGroup is a required field
  8729  	WorkGroup *string `type:"string" required:"true"`
  8730  }
  8731  
  8732  // String returns the string representation.
  8733  //
  8734  // API parameter values that are decorated as "sensitive" in the API will not
  8735  // be included in the string output. The member name will be present, but the
  8736  // value will be replaced with "sensitive".
  8737  func (s UpdatePreparedStatementInput) String() string {
  8738  	return awsutil.Prettify(s)
  8739  }
  8740  
  8741  // GoString returns the string representation.
  8742  //
  8743  // API parameter values that are decorated as "sensitive" in the API will not
  8744  // be included in the string output. The member name will be present, but the
  8745  // value will be replaced with "sensitive".
  8746  func (s UpdatePreparedStatementInput) GoString() string {
  8747  	return s.String()
  8748  }
  8749  
  8750  // Validate inspects the fields of the type to determine if they are valid.
  8751  func (s *UpdatePreparedStatementInput) Validate() error {
  8752  	invalidParams := request.ErrInvalidParams{Context: "UpdatePreparedStatementInput"}
  8753  	if s.Description != nil && len(*s.Description) < 1 {
  8754  		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
  8755  	}
  8756  	if s.QueryStatement == nil {
  8757  		invalidParams.Add(request.NewErrParamRequired("QueryStatement"))
  8758  	}
  8759  	if s.QueryStatement != nil && len(*s.QueryStatement) < 1 {
  8760  		invalidParams.Add(request.NewErrParamMinLen("QueryStatement", 1))
  8761  	}
  8762  	if s.StatementName == nil {
  8763  		invalidParams.Add(request.NewErrParamRequired("StatementName"))
  8764  	}
  8765  	if s.StatementName != nil && len(*s.StatementName) < 1 {
  8766  		invalidParams.Add(request.NewErrParamMinLen("StatementName", 1))
  8767  	}
  8768  	if s.WorkGroup == nil {
  8769  		invalidParams.Add(request.NewErrParamRequired("WorkGroup"))
  8770  	}
  8771  
  8772  	if invalidParams.Len() > 0 {
  8773  		return invalidParams
  8774  	}
  8775  	return nil
  8776  }
  8777  
  8778  // SetDescription sets the Description field's value.
  8779  func (s *UpdatePreparedStatementInput) SetDescription(v string) *UpdatePreparedStatementInput {
  8780  	s.Description = &v
  8781  	return s
  8782  }
  8783  
  8784  // SetQueryStatement sets the QueryStatement field's value.
  8785  func (s *UpdatePreparedStatementInput) SetQueryStatement(v string) *UpdatePreparedStatementInput {
  8786  	s.QueryStatement = &v
  8787  	return s
  8788  }
  8789  
  8790  // SetStatementName sets the StatementName field's value.
  8791  func (s *UpdatePreparedStatementInput) SetStatementName(v string) *UpdatePreparedStatementInput {
  8792  	s.StatementName = &v
  8793  	return s
  8794  }
  8795  
  8796  // SetWorkGroup sets the WorkGroup field's value.
  8797  func (s *UpdatePreparedStatementInput) SetWorkGroup(v string) *UpdatePreparedStatementInput {
  8798  	s.WorkGroup = &v
  8799  	return s
  8800  }
  8801  
  8802  type UpdatePreparedStatementOutput struct {
  8803  	_ struct{} `type:"structure"`
  8804  }
  8805  
  8806  // String returns the string representation.
  8807  //
  8808  // API parameter values that are decorated as "sensitive" in the API will not
  8809  // be included in the string output. The member name will be present, but the
  8810  // value will be replaced with "sensitive".
  8811  func (s UpdatePreparedStatementOutput) String() string {
  8812  	return awsutil.Prettify(s)
  8813  }
  8814  
  8815  // GoString returns the string representation.
  8816  //
  8817  // API parameter values that are decorated as "sensitive" in the API will not
  8818  // be included in the string output. The member name will be present, but the
  8819  // value will be replaced with "sensitive".
  8820  func (s UpdatePreparedStatementOutput) GoString() string {
  8821  	return s.String()
  8822  }
  8823  
  8824  type UpdateWorkGroupInput struct {
  8825  	_ struct{} `type:"structure"`
  8826  
  8827  	// The workgroup configuration that will be updated for the given workgroup.
  8828  	ConfigurationUpdates *WorkGroupConfigurationUpdates `type:"structure"`
  8829  
  8830  	// The workgroup description.
  8831  	Description *string `type:"string"`
  8832  
  8833  	// The workgroup state that will be updated for the given workgroup.
  8834  	State *string `type:"string" enum:"WorkGroupState"`
  8835  
  8836  	// The specified workgroup that will be updated.
  8837  	//
  8838  	// WorkGroup is a required field
  8839  	WorkGroup *string `type:"string" required:"true"`
  8840  }
  8841  
  8842  // String returns the string representation.
  8843  //
  8844  // API parameter values that are decorated as "sensitive" in the API will not
  8845  // be included in the string output. The member name will be present, but the
  8846  // value will be replaced with "sensitive".
  8847  func (s UpdateWorkGroupInput) String() string {
  8848  	return awsutil.Prettify(s)
  8849  }
  8850  
  8851  // GoString returns the string representation.
  8852  //
  8853  // API parameter values that are decorated as "sensitive" in the API will not
  8854  // be included in the string output. The member name will be present, but the
  8855  // value will be replaced with "sensitive".
  8856  func (s UpdateWorkGroupInput) GoString() string {
  8857  	return s.String()
  8858  }
  8859  
  8860  // Validate inspects the fields of the type to determine if they are valid.
  8861  func (s *UpdateWorkGroupInput) Validate() error {
  8862  	invalidParams := request.ErrInvalidParams{Context: "UpdateWorkGroupInput"}
  8863  	if s.WorkGroup == nil {
  8864  		invalidParams.Add(request.NewErrParamRequired("WorkGroup"))
  8865  	}
  8866  	if s.ConfigurationUpdates != nil {
  8867  		if err := s.ConfigurationUpdates.Validate(); err != nil {
  8868  			invalidParams.AddNested("ConfigurationUpdates", err.(request.ErrInvalidParams))
  8869  		}
  8870  	}
  8871  
  8872  	if invalidParams.Len() > 0 {
  8873  		return invalidParams
  8874  	}
  8875  	return nil
  8876  }
  8877  
  8878  // SetConfigurationUpdates sets the ConfigurationUpdates field's value.
  8879  func (s *UpdateWorkGroupInput) SetConfigurationUpdates(v *WorkGroupConfigurationUpdates) *UpdateWorkGroupInput {
  8880  	s.ConfigurationUpdates = v
  8881  	return s
  8882  }
  8883  
  8884  // SetDescription sets the Description field's value.
  8885  func (s *UpdateWorkGroupInput) SetDescription(v string) *UpdateWorkGroupInput {
  8886  	s.Description = &v
  8887  	return s
  8888  }
  8889  
  8890  // SetState sets the State field's value.
  8891  func (s *UpdateWorkGroupInput) SetState(v string) *UpdateWorkGroupInput {
  8892  	s.State = &v
  8893  	return s
  8894  }
  8895  
  8896  // SetWorkGroup sets the WorkGroup field's value.
  8897  func (s *UpdateWorkGroupInput) SetWorkGroup(v string) *UpdateWorkGroupInput {
  8898  	s.WorkGroup = &v
  8899  	return s
  8900  }
  8901  
  8902  type UpdateWorkGroupOutput struct {
  8903  	_ struct{} `type:"structure"`
  8904  }
  8905  
  8906  // String returns the string representation.
  8907  //
  8908  // API parameter values that are decorated as "sensitive" in the API will not
  8909  // be included in the string output. The member name will be present, but the
  8910  // value will be replaced with "sensitive".
  8911  func (s UpdateWorkGroupOutput) String() string {
  8912  	return awsutil.Prettify(s)
  8913  }
  8914  
  8915  // GoString returns the string representation.
  8916  //
  8917  // API parameter values that are decorated as "sensitive" in the API will not
  8918  // be included in the string output. The member name will be present, but the
  8919  // value will be replaced with "sensitive".
  8920  func (s UpdateWorkGroupOutput) GoString() string {
  8921  	return s.String()
  8922  }
  8923  
  8924  // A workgroup, which contains a name, description, creation time, state, and
  8925  // other configuration, listed under WorkGroup$Configuration. Each workgroup
  8926  // enables you to isolate queries for you or your group of users from other
  8927  // queries in the same account, to configure the query results location and
  8928  // the encryption configuration (known as workgroup settings), to enable sending
  8929  // query metrics to Amazon CloudWatch, and to establish per-query data usage
  8930  // control limits for all queries in a workgroup. The workgroup settings override
  8931  // is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration.
  8932  // See WorkGroupConfiguration$EnforceWorkGroupConfiguration.
  8933  type WorkGroup struct {
  8934  	_ struct{} `type:"structure"`
  8935  
  8936  	// The configuration of the workgroup, which includes the location in Amazon
  8937  	// S3 where query results are stored, the encryption configuration, if any,
  8938  	// used for query results; whether the Amazon CloudWatch Metrics are enabled
  8939  	// for the workgroup; whether workgroup settings override client-side settings;
  8940  	// and the data usage limits for the amount of data scanned per query or per
  8941  	// workgroup. The workgroup settings override is specified in EnforceWorkGroupConfiguration
  8942  	// (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.
  8943  	Configuration *WorkGroupConfiguration `type:"structure"`
  8944  
  8945  	// The date and time the workgroup was created.
  8946  	CreationTime *time.Time `type:"timestamp"`
  8947  
  8948  	// The workgroup description.
  8949  	Description *string `type:"string"`
  8950  
  8951  	// The workgroup name.
  8952  	//
  8953  	// Name is a required field
  8954  	Name *string `type:"string" required:"true"`
  8955  
  8956  	// The state of the workgroup: ENABLED or DISABLED.
  8957  	State *string `type:"string" enum:"WorkGroupState"`
  8958  }
  8959  
  8960  // String returns the string representation.
  8961  //
  8962  // API parameter values that are decorated as "sensitive" in the API will not
  8963  // be included in the string output. The member name will be present, but the
  8964  // value will be replaced with "sensitive".
  8965  func (s WorkGroup) String() string {
  8966  	return awsutil.Prettify(s)
  8967  }
  8968  
  8969  // GoString returns the string representation.
  8970  //
  8971  // API parameter values that are decorated as "sensitive" in the API will not
  8972  // be included in the string output. The member name will be present, but the
  8973  // value will be replaced with "sensitive".
  8974  func (s WorkGroup) GoString() string {
  8975  	return s.String()
  8976  }
  8977  
  8978  // SetConfiguration sets the Configuration field's value.
  8979  func (s *WorkGroup) SetConfiguration(v *WorkGroupConfiguration) *WorkGroup {
  8980  	s.Configuration = v
  8981  	return s
  8982  }
  8983  
  8984  // SetCreationTime sets the CreationTime field's value.
  8985  func (s *WorkGroup) SetCreationTime(v time.Time) *WorkGroup {
  8986  	s.CreationTime = &v
  8987  	return s
  8988  }
  8989  
  8990  // SetDescription sets the Description field's value.
  8991  func (s *WorkGroup) SetDescription(v string) *WorkGroup {
  8992  	s.Description = &v
  8993  	return s
  8994  }
  8995  
  8996  // SetName sets the Name field's value.
  8997  func (s *WorkGroup) SetName(v string) *WorkGroup {
  8998  	s.Name = &v
  8999  	return s
  9000  }
  9001  
  9002  // SetState sets the State field's value.
  9003  func (s *WorkGroup) SetState(v string) *WorkGroup {
  9004  	s.State = &v
  9005  	return s
  9006  }
  9007  
  9008  // The configuration of the workgroup, which includes the location in Amazon
  9009  // S3 where query results are stored, the encryption option, if any, used for
  9010  // query results, whether the Amazon CloudWatch Metrics are enabled for the
  9011  // workgroup and whether workgroup settings override query settings, and the
  9012  // data usage limits for the amount of data scanned per query or per workgroup.
  9013  // The workgroup settings override is specified in EnforceWorkGroupConfiguration
  9014  // (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.
  9015  type WorkGroupConfiguration struct {
  9016  	_ struct{} `type:"structure"`
  9017  
  9018  	// The upper data usage limit (cutoff) for the amount of bytes a single query
  9019  	// in a workgroup is allowed to scan.
  9020  	BytesScannedCutoffPerQuery *int64 `min:"1e+07" type:"long"`
  9021  
  9022  	// If set to "true", the settings for the workgroup override client-side settings.
  9023  	// If set to "false", client-side settings are used. For more information, see
  9024  	// Workgroup Settings Override Client-Side Settings (https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html).
  9025  	EnforceWorkGroupConfiguration *bool `type:"boolean"`
  9026  
  9027  	// The engine version that all queries running on the workgroup use. Queries
  9028  	// on the AmazonAthenaPreviewFunctionality workgroup run on the preview engine
  9029  	// regardless of this setting.
  9030  	EngineVersion *EngineVersion `type:"structure"`
  9031  
  9032  	// Indicates that the Amazon CloudWatch metrics are enabled for the workgroup.
  9033  	PublishCloudWatchMetricsEnabled *bool `type:"boolean"`
  9034  
  9035  	// If set to true, allows members assigned to a workgroup to reference Amazon
  9036  	// S3 Requester Pays buckets in queries. If set to false, workgroup members
  9037  	// cannot query data from Requester Pays buckets, and queries that retrieve
  9038  	// data from Requester Pays buckets cause an error. The default is false. For
  9039  	// more information about Requester Pays buckets, see Requester Pays Buckets
  9040  	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html)
  9041  	// in the Amazon Simple Storage Service Developer Guide.
  9042  	RequesterPaysEnabled *bool `type:"boolean"`
  9043  
  9044  	// The configuration for the workgroup, which includes the location in Amazon
  9045  	// S3 where query results are stored and the encryption option, if any, used
  9046  	// for query results. To run the query, you must specify the query results location
  9047  	// using one of the ways: either in the workgroup using this setting, or for
  9048  	// individual queries (client-side), using ResultConfiguration$OutputLocation.
  9049  	// If none of them is set, Athena issues an error that no output location is
  9050  	// provided. For more information, see Query Results (https://docs.aws.amazon.com/athena/latest/ug/querying.html).
  9051  	ResultConfiguration *ResultConfiguration `type:"structure"`
  9052  }
  9053  
  9054  // String returns the string representation.
  9055  //
  9056  // API parameter values that are decorated as "sensitive" in the API will not
  9057  // be included in the string output. The member name will be present, but the
  9058  // value will be replaced with "sensitive".
  9059  func (s WorkGroupConfiguration) String() string {
  9060  	return awsutil.Prettify(s)
  9061  }
  9062  
  9063  // GoString returns the string representation.
  9064  //
  9065  // API parameter values that are decorated as "sensitive" in the API will not
  9066  // be included in the string output. The member name will be present, but the
  9067  // value will be replaced with "sensitive".
  9068  func (s WorkGroupConfiguration) GoString() string {
  9069  	return s.String()
  9070  }
  9071  
  9072  // Validate inspects the fields of the type to determine if they are valid.
  9073  func (s *WorkGroupConfiguration) Validate() error {
  9074  	invalidParams := request.ErrInvalidParams{Context: "WorkGroupConfiguration"}
  9075  	if s.BytesScannedCutoffPerQuery != nil && *s.BytesScannedCutoffPerQuery < 1e+07 {
  9076  		invalidParams.Add(request.NewErrParamMinValue("BytesScannedCutoffPerQuery", 1e+07))
  9077  	}
  9078  	if s.EngineVersion != nil {
  9079  		if err := s.EngineVersion.Validate(); err != nil {
  9080  			invalidParams.AddNested("EngineVersion", err.(request.ErrInvalidParams))
  9081  		}
  9082  	}
  9083  	if s.ResultConfiguration != nil {
  9084  		if err := s.ResultConfiguration.Validate(); err != nil {
  9085  			invalidParams.AddNested("ResultConfiguration", err.(request.ErrInvalidParams))
  9086  		}
  9087  	}
  9088  
  9089  	if invalidParams.Len() > 0 {
  9090  		return invalidParams
  9091  	}
  9092  	return nil
  9093  }
  9094  
  9095  // SetBytesScannedCutoffPerQuery sets the BytesScannedCutoffPerQuery field's value.
  9096  func (s *WorkGroupConfiguration) SetBytesScannedCutoffPerQuery(v int64) *WorkGroupConfiguration {
  9097  	s.BytesScannedCutoffPerQuery = &v
  9098  	return s
  9099  }
  9100  
  9101  // SetEnforceWorkGroupConfiguration sets the EnforceWorkGroupConfiguration field's value.
  9102  func (s *WorkGroupConfiguration) SetEnforceWorkGroupConfiguration(v bool) *WorkGroupConfiguration {
  9103  	s.EnforceWorkGroupConfiguration = &v
  9104  	return s
  9105  }
  9106  
  9107  // SetEngineVersion sets the EngineVersion field's value.
  9108  func (s *WorkGroupConfiguration) SetEngineVersion(v *EngineVersion) *WorkGroupConfiguration {
  9109  	s.EngineVersion = v
  9110  	return s
  9111  }
  9112  
  9113  // SetPublishCloudWatchMetricsEnabled sets the PublishCloudWatchMetricsEnabled field's value.
  9114  func (s *WorkGroupConfiguration) SetPublishCloudWatchMetricsEnabled(v bool) *WorkGroupConfiguration {
  9115  	s.PublishCloudWatchMetricsEnabled = &v
  9116  	return s
  9117  }
  9118  
  9119  // SetRequesterPaysEnabled sets the RequesterPaysEnabled field's value.
  9120  func (s *WorkGroupConfiguration) SetRequesterPaysEnabled(v bool) *WorkGroupConfiguration {
  9121  	s.RequesterPaysEnabled = &v
  9122  	return s
  9123  }
  9124  
  9125  // SetResultConfiguration sets the ResultConfiguration field's value.
  9126  func (s *WorkGroupConfiguration) SetResultConfiguration(v *ResultConfiguration) *WorkGroupConfiguration {
  9127  	s.ResultConfiguration = v
  9128  	return s
  9129  }
  9130  
  9131  // The configuration information that will be updated for this workgroup, which
  9132  // includes the location in Amazon S3 where query results are stored, the encryption
  9133  // option, if any, used for query results, whether the Amazon CloudWatch Metrics
  9134  // are enabled for the workgroup, whether the workgroup settings override the
  9135  // client-side settings, and the data usage limit for the amount of bytes scanned
  9136  // per query, if it is specified.
  9137  type WorkGroupConfigurationUpdates struct {
  9138  	_ struct{} `type:"structure"`
  9139  
  9140  	// The upper limit (cutoff) for the amount of bytes a single query in a workgroup
  9141  	// is allowed to scan.
  9142  	BytesScannedCutoffPerQuery *int64 `min:"1e+07" type:"long"`
  9143  
  9144  	// If set to "true", the settings for the workgroup override client-side settings.
  9145  	// If set to "false" client-side settings are used. For more information, see
  9146  	// Workgroup Settings Override Client-Side Settings (https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html).
  9147  	EnforceWorkGroupConfiguration *bool `type:"boolean"`
  9148  
  9149  	// The engine version requested when a workgroup is updated. After the update,
  9150  	// all queries on the workgroup run on the requested engine version. If no value
  9151  	// was previously set, the default is Auto. Queries on the AmazonAthenaPreviewFunctionality
  9152  	// workgroup run on the preview engine regardless of this setting.
  9153  	EngineVersion *EngineVersion `type:"structure"`
  9154  
  9155  	// Indicates whether this workgroup enables publishing metrics to Amazon CloudWatch.
  9156  	PublishCloudWatchMetricsEnabled *bool `type:"boolean"`
  9157  
  9158  	// Indicates that the data usage control limit per query is removed. WorkGroupConfiguration$BytesScannedCutoffPerQuery
  9159  	RemoveBytesScannedCutoffPerQuery *bool `type:"boolean"`
  9160  
  9161  	// If set to true, allows members assigned to a workgroup to specify Amazon
  9162  	// S3 Requester Pays buckets in queries. If set to false, workgroup members
  9163  	// cannot query data from Requester Pays buckets, and queries that retrieve
  9164  	// data from Requester Pays buckets cause an error. The default is false. For
  9165  	// more information about Requester Pays buckets, see Requester Pays Buckets
  9166  	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html)
  9167  	// in the Amazon Simple Storage Service Developer Guide.
  9168  	RequesterPaysEnabled *bool `type:"boolean"`
  9169  
  9170  	// The result configuration information about the queries in this workgroup
  9171  	// that will be updated. Includes the updated results location and an updated
  9172  	// option for encrypting query results.
  9173  	ResultConfigurationUpdates *ResultConfigurationUpdates `type:"structure"`
  9174  }
  9175  
  9176  // String returns the string representation.
  9177  //
  9178  // API parameter values that are decorated as "sensitive" in the API will not
  9179  // be included in the string output. The member name will be present, but the
  9180  // value will be replaced with "sensitive".
  9181  func (s WorkGroupConfigurationUpdates) String() string {
  9182  	return awsutil.Prettify(s)
  9183  }
  9184  
  9185  // GoString returns the string representation.
  9186  //
  9187  // API parameter values that are decorated as "sensitive" in the API will not
  9188  // be included in the string output. The member name will be present, but the
  9189  // value will be replaced with "sensitive".
  9190  func (s WorkGroupConfigurationUpdates) GoString() string {
  9191  	return s.String()
  9192  }
  9193  
  9194  // Validate inspects the fields of the type to determine if they are valid.
  9195  func (s *WorkGroupConfigurationUpdates) Validate() error {
  9196  	invalidParams := request.ErrInvalidParams{Context: "WorkGroupConfigurationUpdates"}
  9197  	if s.BytesScannedCutoffPerQuery != nil && *s.BytesScannedCutoffPerQuery < 1e+07 {
  9198  		invalidParams.Add(request.NewErrParamMinValue("BytesScannedCutoffPerQuery", 1e+07))
  9199  	}
  9200  	if s.EngineVersion != nil {
  9201  		if err := s.EngineVersion.Validate(); err != nil {
  9202  			invalidParams.AddNested("EngineVersion", err.(request.ErrInvalidParams))
  9203  		}
  9204  	}
  9205  	if s.ResultConfigurationUpdates != nil {
  9206  		if err := s.ResultConfigurationUpdates.Validate(); err != nil {
  9207  			invalidParams.AddNested("ResultConfigurationUpdates", err.(request.ErrInvalidParams))
  9208  		}
  9209  	}
  9210  
  9211  	if invalidParams.Len() > 0 {
  9212  		return invalidParams
  9213  	}
  9214  	return nil
  9215  }
  9216  
  9217  // SetBytesScannedCutoffPerQuery sets the BytesScannedCutoffPerQuery field's value.
  9218  func (s *WorkGroupConfigurationUpdates) SetBytesScannedCutoffPerQuery(v int64) *WorkGroupConfigurationUpdates {
  9219  	s.BytesScannedCutoffPerQuery = &v
  9220  	return s
  9221  }
  9222  
  9223  // SetEnforceWorkGroupConfiguration sets the EnforceWorkGroupConfiguration field's value.
  9224  func (s *WorkGroupConfigurationUpdates) SetEnforceWorkGroupConfiguration(v bool) *WorkGroupConfigurationUpdates {
  9225  	s.EnforceWorkGroupConfiguration = &v
  9226  	return s
  9227  }
  9228  
  9229  // SetEngineVersion sets the EngineVersion field's value.
  9230  func (s *WorkGroupConfigurationUpdates) SetEngineVersion(v *EngineVersion) *WorkGroupConfigurationUpdates {
  9231  	s.EngineVersion = v
  9232  	return s
  9233  }
  9234  
  9235  // SetPublishCloudWatchMetricsEnabled sets the PublishCloudWatchMetricsEnabled field's value.
  9236  func (s *WorkGroupConfigurationUpdates) SetPublishCloudWatchMetricsEnabled(v bool) *WorkGroupConfigurationUpdates {
  9237  	s.PublishCloudWatchMetricsEnabled = &v
  9238  	return s
  9239  }
  9240  
  9241  // SetRemoveBytesScannedCutoffPerQuery sets the RemoveBytesScannedCutoffPerQuery field's value.
  9242  func (s *WorkGroupConfigurationUpdates) SetRemoveBytesScannedCutoffPerQuery(v bool) *WorkGroupConfigurationUpdates {
  9243  	s.RemoveBytesScannedCutoffPerQuery = &v
  9244  	return s
  9245  }
  9246  
  9247  // SetRequesterPaysEnabled sets the RequesterPaysEnabled field's value.
  9248  func (s *WorkGroupConfigurationUpdates) SetRequesterPaysEnabled(v bool) *WorkGroupConfigurationUpdates {
  9249  	s.RequesterPaysEnabled = &v
  9250  	return s
  9251  }
  9252  
  9253  // SetResultConfigurationUpdates sets the ResultConfigurationUpdates field's value.
  9254  func (s *WorkGroupConfigurationUpdates) SetResultConfigurationUpdates(v *ResultConfigurationUpdates) *WorkGroupConfigurationUpdates {
  9255  	s.ResultConfigurationUpdates = v
  9256  	return s
  9257  }
  9258  
  9259  // The summary information for the workgroup, which includes its name, state,
  9260  // description, and the date and time it was created.
  9261  type WorkGroupSummary struct {
  9262  	_ struct{} `type:"structure"`
  9263  
  9264  	// The workgroup creation date and time.
  9265  	CreationTime *time.Time `type:"timestamp"`
  9266  
  9267  	// The workgroup description.
  9268  	Description *string `type:"string"`
  9269  
  9270  	// The engine version setting for all queries on the workgroup. Queries on the
  9271  	// AmazonAthenaPreviewFunctionality workgroup run on the preview engine regardless
  9272  	// of this setting.
  9273  	EngineVersion *EngineVersion `type:"structure"`
  9274  
  9275  	// The name of the workgroup.
  9276  	Name *string `type:"string"`
  9277  
  9278  	// The state of the workgroup.
  9279  	State *string `type:"string" enum:"WorkGroupState"`
  9280  }
  9281  
  9282  // String returns the string representation.
  9283  //
  9284  // API parameter values that are decorated as "sensitive" in the API will not
  9285  // be included in the string output. The member name will be present, but the
  9286  // value will be replaced with "sensitive".
  9287  func (s WorkGroupSummary) String() string {
  9288  	return awsutil.Prettify(s)
  9289  }
  9290  
  9291  // GoString returns the string representation.
  9292  //
  9293  // API parameter values that are decorated as "sensitive" in the API will not
  9294  // be included in the string output. The member name will be present, but the
  9295  // value will be replaced with "sensitive".
  9296  func (s WorkGroupSummary) GoString() string {
  9297  	return s.String()
  9298  }
  9299  
  9300  // SetCreationTime sets the CreationTime field's value.
  9301  func (s *WorkGroupSummary) SetCreationTime(v time.Time) *WorkGroupSummary {
  9302  	s.CreationTime = &v
  9303  	return s
  9304  }
  9305  
  9306  // SetDescription sets the Description field's value.
  9307  func (s *WorkGroupSummary) SetDescription(v string) *WorkGroupSummary {
  9308  	s.Description = &v
  9309  	return s
  9310  }
  9311  
  9312  // SetEngineVersion sets the EngineVersion field's value.
  9313  func (s *WorkGroupSummary) SetEngineVersion(v *EngineVersion) *WorkGroupSummary {
  9314  	s.EngineVersion = v
  9315  	return s
  9316  }
  9317  
  9318  // SetName sets the Name field's value.
  9319  func (s *WorkGroupSummary) SetName(v string) *WorkGroupSummary {
  9320  	s.Name = &v
  9321  	return s
  9322  }
  9323  
  9324  // SetState sets the State field's value.
  9325  func (s *WorkGroupSummary) SetState(v string) *WorkGroupSummary {
  9326  	s.State = &v
  9327  	return s
  9328  }
  9329  
  9330  const (
  9331  	// ColumnNullableNotNull is a ColumnNullable enum value
  9332  	ColumnNullableNotNull = "NOT_NULL"
  9333  
  9334  	// ColumnNullableNullable is a ColumnNullable enum value
  9335  	ColumnNullableNullable = "NULLABLE"
  9336  
  9337  	// ColumnNullableUnknown is a ColumnNullable enum value
  9338  	ColumnNullableUnknown = "UNKNOWN"
  9339  )
  9340  
  9341  // ColumnNullable_Values returns all elements of the ColumnNullable enum
  9342  func ColumnNullable_Values() []string {
  9343  	return []string{
  9344  		ColumnNullableNotNull,
  9345  		ColumnNullableNullable,
  9346  		ColumnNullableUnknown,
  9347  	}
  9348  }
  9349  
  9350  const (
  9351  	// DataCatalogTypeLambda is a DataCatalogType enum value
  9352  	DataCatalogTypeLambda = "LAMBDA"
  9353  
  9354  	// DataCatalogTypeGlue is a DataCatalogType enum value
  9355  	DataCatalogTypeGlue = "GLUE"
  9356  
  9357  	// DataCatalogTypeHive is a DataCatalogType enum value
  9358  	DataCatalogTypeHive = "HIVE"
  9359  )
  9360  
  9361  // DataCatalogType_Values returns all elements of the DataCatalogType enum
  9362  func DataCatalogType_Values() []string {
  9363  	return []string{
  9364  		DataCatalogTypeLambda,
  9365  		DataCatalogTypeGlue,
  9366  		DataCatalogTypeHive,
  9367  	}
  9368  }
  9369  
  9370  const (
  9371  	// EncryptionOptionSseS3 is a EncryptionOption enum value
  9372  	EncryptionOptionSseS3 = "SSE_S3"
  9373  
  9374  	// EncryptionOptionSseKms is a EncryptionOption enum value
  9375  	EncryptionOptionSseKms = "SSE_KMS"
  9376  
  9377  	// EncryptionOptionCseKms is a EncryptionOption enum value
  9378  	EncryptionOptionCseKms = "CSE_KMS"
  9379  )
  9380  
  9381  // EncryptionOption_Values returns all elements of the EncryptionOption enum
  9382  func EncryptionOption_Values() []string {
  9383  	return []string{
  9384  		EncryptionOptionSseS3,
  9385  		EncryptionOptionSseKms,
  9386  		EncryptionOptionCseKms,
  9387  	}
  9388  }
  9389  
  9390  const (
  9391  	// QueryExecutionStateQueued is a QueryExecutionState enum value
  9392  	QueryExecutionStateQueued = "QUEUED"
  9393  
  9394  	// QueryExecutionStateRunning is a QueryExecutionState enum value
  9395  	QueryExecutionStateRunning = "RUNNING"
  9396  
  9397  	// QueryExecutionStateSucceeded is a QueryExecutionState enum value
  9398  	QueryExecutionStateSucceeded = "SUCCEEDED"
  9399  
  9400  	// QueryExecutionStateFailed is a QueryExecutionState enum value
  9401  	QueryExecutionStateFailed = "FAILED"
  9402  
  9403  	// QueryExecutionStateCancelled is a QueryExecutionState enum value
  9404  	QueryExecutionStateCancelled = "CANCELLED"
  9405  )
  9406  
  9407  // QueryExecutionState_Values returns all elements of the QueryExecutionState enum
  9408  func QueryExecutionState_Values() []string {
  9409  	return []string{
  9410  		QueryExecutionStateQueued,
  9411  		QueryExecutionStateRunning,
  9412  		QueryExecutionStateSucceeded,
  9413  		QueryExecutionStateFailed,
  9414  		QueryExecutionStateCancelled,
  9415  	}
  9416  }
  9417  
  9418  const (
  9419  	// StatementTypeDdl is a StatementType enum value
  9420  	StatementTypeDdl = "DDL"
  9421  
  9422  	// StatementTypeDml is a StatementType enum value
  9423  	StatementTypeDml = "DML"
  9424  
  9425  	// StatementTypeUtility is a StatementType enum value
  9426  	StatementTypeUtility = "UTILITY"
  9427  )
  9428  
  9429  // StatementType_Values returns all elements of the StatementType enum
  9430  func StatementType_Values() []string {
  9431  	return []string{
  9432  		StatementTypeDdl,
  9433  		StatementTypeDml,
  9434  		StatementTypeUtility,
  9435  	}
  9436  }
  9437  
  9438  // The reason for the query throttling, for example, when it exceeds the concurrent
  9439  // query limit.
  9440  const (
  9441  	// ThrottleReasonConcurrentQueryLimitExceeded is a ThrottleReason enum value
  9442  	ThrottleReasonConcurrentQueryLimitExceeded = "CONCURRENT_QUERY_LIMIT_EXCEEDED"
  9443  )
  9444  
  9445  // ThrottleReason_Values returns all elements of the ThrottleReason enum
  9446  func ThrottleReason_Values() []string {
  9447  	return []string{
  9448  		ThrottleReasonConcurrentQueryLimitExceeded,
  9449  	}
  9450  }
  9451  
  9452  const (
  9453  	// WorkGroupStateEnabled is a WorkGroupState enum value
  9454  	WorkGroupStateEnabled = "ENABLED"
  9455  
  9456  	// WorkGroupStateDisabled is a WorkGroupState enum value
  9457  	WorkGroupStateDisabled = "DISABLED"
  9458  )
  9459  
  9460  // WorkGroupState_Values returns all elements of the WorkGroupState enum
  9461  func WorkGroupState_Values() []string {
  9462  	return []string{
  9463  		WorkGroupStateEnabled,
  9464  		WorkGroupStateDisabled,
  9465  	}
  9466  }