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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package kendra
     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 opBatchDeleteDocument = "BatchDeleteDocument"
    17  
    18  // BatchDeleteDocumentRequest generates a "aws/request.Request" representing the
    19  // client's request for the BatchDeleteDocument 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 BatchDeleteDocument for more information on using the BatchDeleteDocument
    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 BatchDeleteDocumentRequest method.
    34  //    req, resp := client.BatchDeleteDocumentRequest(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/kendra-2019-02-03/BatchDeleteDocument
    42  func (c *Kendra) BatchDeleteDocumentRequest(input *BatchDeleteDocumentInput) (req *request.Request, output *BatchDeleteDocumentOutput) {
    43  	op := &request.Operation{
    44  		Name:       opBatchDeleteDocument,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &BatchDeleteDocumentInput{}
    51  	}
    52  
    53  	output = &BatchDeleteDocumentOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // BatchDeleteDocument API operation for AWSKendraFrontendService.
    59  //
    60  // Removes one or more documents from an index. The documents must have been
    61  // added with the BatchPutDocument operation.
    62  //
    63  // The documents are deleted asynchronously. You can see the progress of the
    64  // deletion by using Amazon Web Services CloudWatch. Any error messages related
    65  // to the processing of the batch are sent to you CloudWatch log.
    66  //
    67  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    68  // with awserr.Error's Code and Message methods to get detailed information about
    69  // the error.
    70  //
    71  // See the AWS API reference guide for AWSKendraFrontendService's
    72  // API operation BatchDeleteDocument for usage and error information.
    73  //
    74  // Returned Error Types:
    75  //   * ValidationException
    76  //
    77  //   * ConflictException
    78  //
    79  //   * ResourceNotFoundException
    80  //
    81  //   * ThrottlingException
    82  //
    83  //   * AccessDeniedException
    84  //
    85  //   * InternalServerException
    86  //
    87  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/BatchDeleteDocument
    88  func (c *Kendra) BatchDeleteDocument(input *BatchDeleteDocumentInput) (*BatchDeleteDocumentOutput, error) {
    89  	req, out := c.BatchDeleteDocumentRequest(input)
    90  	return out, req.Send()
    91  }
    92  
    93  // BatchDeleteDocumentWithContext is the same as BatchDeleteDocument with the addition of
    94  // the ability to pass a context and additional request options.
    95  //
    96  // See BatchDeleteDocument for details on how to use this API operation.
    97  //
    98  // The context must be non-nil and will be used for request cancellation. If
    99  // the context is nil a panic will occur. In the future the SDK may create
   100  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   101  // for more information on using Contexts.
   102  func (c *Kendra) BatchDeleteDocumentWithContext(ctx aws.Context, input *BatchDeleteDocumentInput, opts ...request.Option) (*BatchDeleteDocumentOutput, error) {
   103  	req, out := c.BatchDeleteDocumentRequest(input)
   104  	req.SetContext(ctx)
   105  	req.ApplyOptions(opts...)
   106  	return out, req.Send()
   107  }
   108  
   109  const opBatchGetDocumentStatus = "BatchGetDocumentStatus"
   110  
   111  // BatchGetDocumentStatusRequest generates a "aws/request.Request" representing the
   112  // client's request for the BatchGetDocumentStatus operation. The "output" return
   113  // value will be populated with the request's response once the request completes
   114  // successfully.
   115  //
   116  // Use "Send" method on the returned Request to send the API call to the service.
   117  // the "output" return value is not valid until after Send returns without error.
   118  //
   119  // See BatchGetDocumentStatus for more information on using the BatchGetDocumentStatus
   120  // API call, and error handling.
   121  //
   122  // This method is useful when you want to inject custom logic or configuration
   123  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   124  //
   125  //
   126  //    // Example sending a request using the BatchGetDocumentStatusRequest method.
   127  //    req, resp := client.BatchGetDocumentStatusRequest(params)
   128  //
   129  //    err := req.Send()
   130  //    if err == nil { // resp is now filled
   131  //        fmt.Println(resp)
   132  //    }
   133  //
   134  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/BatchGetDocumentStatus
   135  func (c *Kendra) BatchGetDocumentStatusRequest(input *BatchGetDocumentStatusInput) (req *request.Request, output *BatchGetDocumentStatusOutput) {
   136  	op := &request.Operation{
   137  		Name:       opBatchGetDocumentStatus,
   138  		HTTPMethod: "POST",
   139  		HTTPPath:   "/",
   140  	}
   141  
   142  	if input == nil {
   143  		input = &BatchGetDocumentStatusInput{}
   144  	}
   145  
   146  	output = &BatchGetDocumentStatusOutput{}
   147  	req = c.newRequest(op, input, output)
   148  	return
   149  }
   150  
   151  // BatchGetDocumentStatus API operation for AWSKendraFrontendService.
   152  //
   153  // Returns the indexing status for one or more documents submitted with the
   154  // BatchPutDocument (https://docs.aws.amazon.com/kendra/latest/dg/API_BatchPutDocument.html)
   155  // operation.
   156  //
   157  // When you use the BatchPutDocument operation, documents are indexed asynchronously.
   158  // You can use the BatchGetDocumentStatus operation to get the current status
   159  // of a list of documents so that you can determine if they have been successfully
   160  // indexed.
   161  //
   162  // You can also use the BatchGetDocumentStatus operation to check the status
   163  // of the BatchDeleteDocument (https://docs.aws.amazon.com/kendra/latest/dg/API_BatchDeleteDocument.html)
   164  // operation. When a document is deleted from the index, Amazon Kendra returns
   165  // NOT_FOUND as the status.
   166  //
   167  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   168  // with awserr.Error's Code and Message methods to get detailed information about
   169  // the error.
   170  //
   171  // See the AWS API reference guide for AWSKendraFrontendService's
   172  // API operation BatchGetDocumentStatus for usage and error information.
   173  //
   174  // Returned Error Types:
   175  //   * ValidationException
   176  //
   177  //   * ConflictException
   178  //
   179  //   * ResourceNotFoundException
   180  //
   181  //   * ThrottlingException
   182  //
   183  //   * AccessDeniedException
   184  //
   185  //   * InternalServerException
   186  //
   187  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/BatchGetDocumentStatus
   188  func (c *Kendra) BatchGetDocumentStatus(input *BatchGetDocumentStatusInput) (*BatchGetDocumentStatusOutput, error) {
   189  	req, out := c.BatchGetDocumentStatusRequest(input)
   190  	return out, req.Send()
   191  }
   192  
   193  // BatchGetDocumentStatusWithContext is the same as BatchGetDocumentStatus with the addition of
   194  // the ability to pass a context and additional request options.
   195  //
   196  // See BatchGetDocumentStatus for details on how to use this API operation.
   197  //
   198  // The context must be non-nil and will be used for request cancellation. If
   199  // the context is nil a panic will occur. In the future the SDK may create
   200  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   201  // for more information on using Contexts.
   202  func (c *Kendra) BatchGetDocumentStatusWithContext(ctx aws.Context, input *BatchGetDocumentStatusInput, opts ...request.Option) (*BatchGetDocumentStatusOutput, error) {
   203  	req, out := c.BatchGetDocumentStatusRequest(input)
   204  	req.SetContext(ctx)
   205  	req.ApplyOptions(opts...)
   206  	return out, req.Send()
   207  }
   208  
   209  const opBatchPutDocument = "BatchPutDocument"
   210  
   211  // BatchPutDocumentRequest generates a "aws/request.Request" representing the
   212  // client's request for the BatchPutDocument operation. The "output" return
   213  // value will be populated with the request's response once the request completes
   214  // successfully.
   215  //
   216  // Use "Send" method on the returned Request to send the API call to the service.
   217  // the "output" return value is not valid until after Send returns without error.
   218  //
   219  // See BatchPutDocument for more information on using the BatchPutDocument
   220  // API call, and error handling.
   221  //
   222  // This method is useful when you want to inject custom logic or configuration
   223  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   224  //
   225  //
   226  //    // Example sending a request using the BatchPutDocumentRequest method.
   227  //    req, resp := client.BatchPutDocumentRequest(params)
   228  //
   229  //    err := req.Send()
   230  //    if err == nil { // resp is now filled
   231  //        fmt.Println(resp)
   232  //    }
   233  //
   234  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/BatchPutDocument
   235  func (c *Kendra) BatchPutDocumentRequest(input *BatchPutDocumentInput) (req *request.Request, output *BatchPutDocumentOutput) {
   236  	op := &request.Operation{
   237  		Name:       opBatchPutDocument,
   238  		HTTPMethod: "POST",
   239  		HTTPPath:   "/",
   240  	}
   241  
   242  	if input == nil {
   243  		input = &BatchPutDocumentInput{}
   244  	}
   245  
   246  	output = &BatchPutDocumentOutput{}
   247  	req = c.newRequest(op, input, output)
   248  	return
   249  }
   250  
   251  // BatchPutDocument API operation for AWSKendraFrontendService.
   252  //
   253  // Adds one or more documents to an index.
   254  //
   255  // The BatchPutDocument operation enables you to ingest inline documents or
   256  // a set of documents stored in an Amazon S3 bucket. Use this operation to ingest
   257  // your text and unstructured text into an index, add custom attributes to the
   258  // documents, and to attach an access control list to the documents added to
   259  // the index.
   260  //
   261  // The documents are indexed asynchronously. You can see the progress of the
   262  // batch using Amazon Web Services CloudWatch. Any error messages related to
   263  // processing the batch are sent to your Amazon Web Services CloudWatch log.
   264  //
   265  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   266  // with awserr.Error's Code and Message methods to get detailed information about
   267  // the error.
   268  //
   269  // See the AWS API reference guide for AWSKendraFrontendService's
   270  // API operation BatchPutDocument for usage and error information.
   271  //
   272  // Returned Error Types:
   273  //   * ValidationException
   274  //
   275  //   * ConflictException
   276  //
   277  //   * ResourceNotFoundException
   278  //
   279  //   * ThrottlingException
   280  //
   281  //   * AccessDeniedException
   282  //
   283  //   * ServiceQuotaExceededException
   284  //
   285  //   * InternalServerException
   286  //
   287  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/BatchPutDocument
   288  func (c *Kendra) BatchPutDocument(input *BatchPutDocumentInput) (*BatchPutDocumentOutput, error) {
   289  	req, out := c.BatchPutDocumentRequest(input)
   290  	return out, req.Send()
   291  }
   292  
   293  // BatchPutDocumentWithContext is the same as BatchPutDocument with the addition of
   294  // the ability to pass a context and additional request options.
   295  //
   296  // See BatchPutDocument for details on how to use this API operation.
   297  //
   298  // The context must be non-nil and will be used for request cancellation. If
   299  // the context is nil a panic will occur. In the future the SDK may create
   300  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   301  // for more information on using Contexts.
   302  func (c *Kendra) BatchPutDocumentWithContext(ctx aws.Context, input *BatchPutDocumentInput, opts ...request.Option) (*BatchPutDocumentOutput, error) {
   303  	req, out := c.BatchPutDocumentRequest(input)
   304  	req.SetContext(ctx)
   305  	req.ApplyOptions(opts...)
   306  	return out, req.Send()
   307  }
   308  
   309  const opClearQuerySuggestions = "ClearQuerySuggestions"
   310  
   311  // ClearQuerySuggestionsRequest generates a "aws/request.Request" representing the
   312  // client's request for the ClearQuerySuggestions operation. The "output" return
   313  // value will be populated with the request's response once the request completes
   314  // successfully.
   315  //
   316  // Use "Send" method on the returned Request to send the API call to the service.
   317  // the "output" return value is not valid until after Send returns without error.
   318  //
   319  // See ClearQuerySuggestions for more information on using the ClearQuerySuggestions
   320  // API call, and error handling.
   321  //
   322  // This method is useful when you want to inject custom logic or configuration
   323  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   324  //
   325  //
   326  //    // Example sending a request using the ClearQuerySuggestionsRequest method.
   327  //    req, resp := client.ClearQuerySuggestionsRequest(params)
   328  //
   329  //    err := req.Send()
   330  //    if err == nil { // resp is now filled
   331  //        fmt.Println(resp)
   332  //    }
   333  //
   334  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ClearQuerySuggestions
   335  func (c *Kendra) ClearQuerySuggestionsRequest(input *ClearQuerySuggestionsInput) (req *request.Request, output *ClearQuerySuggestionsOutput) {
   336  	op := &request.Operation{
   337  		Name:       opClearQuerySuggestions,
   338  		HTTPMethod: "POST",
   339  		HTTPPath:   "/",
   340  	}
   341  
   342  	if input == nil {
   343  		input = &ClearQuerySuggestionsInput{}
   344  	}
   345  
   346  	output = &ClearQuerySuggestionsOutput{}
   347  	req = c.newRequest(op, input, output)
   348  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   349  	return
   350  }
   351  
   352  // ClearQuerySuggestions API operation for AWSKendraFrontendService.
   353  //
   354  // Clears existing query suggestions from an index.
   355  //
   356  // This deletes existing suggestions only, not the queries in the query log.
   357  // After you clear suggestions, Amazon Kendra learns new suggestions based on
   358  // new queries added to the query log from the time you cleared suggestions.
   359  // If you do not see any new suggestions, then please allow Amazon Kendra to
   360  // collect enough queries to learn new suggestions.
   361  //
   362  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   363  // with awserr.Error's Code and Message methods to get detailed information about
   364  // the error.
   365  //
   366  // See the AWS API reference guide for AWSKendraFrontendService's
   367  // API operation ClearQuerySuggestions for usage and error information.
   368  //
   369  // Returned Error Types:
   370  //   * ValidationException
   371  //
   372  //   * ResourceNotFoundException
   373  //
   374  //   * ThrottlingException
   375  //
   376  //   * ConflictException
   377  //
   378  //   * AccessDeniedException
   379  //
   380  //   * InternalServerException
   381  //
   382  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ClearQuerySuggestions
   383  func (c *Kendra) ClearQuerySuggestions(input *ClearQuerySuggestionsInput) (*ClearQuerySuggestionsOutput, error) {
   384  	req, out := c.ClearQuerySuggestionsRequest(input)
   385  	return out, req.Send()
   386  }
   387  
   388  // ClearQuerySuggestionsWithContext is the same as ClearQuerySuggestions with the addition of
   389  // the ability to pass a context and additional request options.
   390  //
   391  // See ClearQuerySuggestions for details on how to use this API operation.
   392  //
   393  // The context must be non-nil and will be used for request cancellation. If
   394  // the context is nil a panic will occur. In the future the SDK may create
   395  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   396  // for more information on using Contexts.
   397  func (c *Kendra) ClearQuerySuggestionsWithContext(ctx aws.Context, input *ClearQuerySuggestionsInput, opts ...request.Option) (*ClearQuerySuggestionsOutput, error) {
   398  	req, out := c.ClearQuerySuggestionsRequest(input)
   399  	req.SetContext(ctx)
   400  	req.ApplyOptions(opts...)
   401  	return out, req.Send()
   402  }
   403  
   404  const opCreateDataSource = "CreateDataSource"
   405  
   406  // CreateDataSourceRequest generates a "aws/request.Request" representing the
   407  // client's request for the CreateDataSource operation. The "output" return
   408  // value will be populated with the request's response once the request completes
   409  // successfully.
   410  //
   411  // Use "Send" method on the returned Request to send the API call to the service.
   412  // the "output" return value is not valid until after Send returns without error.
   413  //
   414  // See CreateDataSource for more information on using the CreateDataSource
   415  // API call, and error handling.
   416  //
   417  // This method is useful when you want to inject custom logic or configuration
   418  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   419  //
   420  //
   421  //    // Example sending a request using the CreateDataSourceRequest method.
   422  //    req, resp := client.CreateDataSourceRequest(params)
   423  //
   424  //    err := req.Send()
   425  //    if err == nil { // resp is now filled
   426  //        fmt.Println(resp)
   427  //    }
   428  //
   429  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateDataSource
   430  func (c *Kendra) CreateDataSourceRequest(input *CreateDataSourceInput) (req *request.Request, output *CreateDataSourceOutput) {
   431  	op := &request.Operation{
   432  		Name:       opCreateDataSource,
   433  		HTTPMethod: "POST",
   434  		HTTPPath:   "/",
   435  	}
   436  
   437  	if input == nil {
   438  		input = &CreateDataSourceInput{}
   439  	}
   440  
   441  	output = &CreateDataSourceOutput{}
   442  	req = c.newRequest(op, input, output)
   443  	return
   444  }
   445  
   446  // CreateDataSource API operation for AWSKendraFrontendService.
   447  //
   448  // Creates a data source that you want to use with an Amazon Kendra index.
   449  //
   450  // You specify a name, data source connector type and description for your data
   451  // source. You also specify configuration information for the data source connector.
   452  //
   453  // CreateDataSource is a synchronous operation. The operation returns 200 if
   454  // the data source was successfully created. Otherwise, an exception is raised.
   455  //
   456  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   457  // with awserr.Error's Code and Message methods to get detailed information about
   458  // the error.
   459  //
   460  // See the AWS API reference guide for AWSKendraFrontendService's
   461  // API operation CreateDataSource for usage and error information.
   462  //
   463  // Returned Error Types:
   464  //   * ValidationException
   465  //
   466  //   * ConflictException
   467  //
   468  //   * ResourceNotFoundException
   469  //
   470  //   * ResourceAlreadyExistException
   471  //
   472  //   * ServiceQuotaExceededException
   473  //
   474  //   * ThrottlingException
   475  //
   476  //   * AccessDeniedException
   477  //
   478  //   * InternalServerException
   479  //
   480  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateDataSource
   481  func (c *Kendra) CreateDataSource(input *CreateDataSourceInput) (*CreateDataSourceOutput, error) {
   482  	req, out := c.CreateDataSourceRequest(input)
   483  	return out, req.Send()
   484  }
   485  
   486  // CreateDataSourceWithContext is the same as CreateDataSource with the addition of
   487  // the ability to pass a context and additional request options.
   488  //
   489  // See CreateDataSource for details on how to use this API operation.
   490  //
   491  // The context must be non-nil and will be used for request cancellation. If
   492  // the context is nil a panic will occur. In the future the SDK may create
   493  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   494  // for more information on using Contexts.
   495  func (c *Kendra) CreateDataSourceWithContext(ctx aws.Context, input *CreateDataSourceInput, opts ...request.Option) (*CreateDataSourceOutput, error) {
   496  	req, out := c.CreateDataSourceRequest(input)
   497  	req.SetContext(ctx)
   498  	req.ApplyOptions(opts...)
   499  	return out, req.Send()
   500  }
   501  
   502  const opCreateFaq = "CreateFaq"
   503  
   504  // CreateFaqRequest generates a "aws/request.Request" representing the
   505  // client's request for the CreateFaq operation. The "output" return
   506  // value will be populated with the request's response once the request completes
   507  // successfully.
   508  //
   509  // Use "Send" method on the returned Request to send the API call to the service.
   510  // the "output" return value is not valid until after Send returns without error.
   511  //
   512  // See CreateFaq for more information on using the CreateFaq
   513  // API call, and error handling.
   514  //
   515  // This method is useful when you want to inject custom logic or configuration
   516  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   517  //
   518  //
   519  //    // Example sending a request using the CreateFaqRequest method.
   520  //    req, resp := client.CreateFaqRequest(params)
   521  //
   522  //    err := req.Send()
   523  //    if err == nil { // resp is now filled
   524  //        fmt.Println(resp)
   525  //    }
   526  //
   527  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateFaq
   528  func (c *Kendra) CreateFaqRequest(input *CreateFaqInput) (req *request.Request, output *CreateFaqOutput) {
   529  	op := &request.Operation{
   530  		Name:       opCreateFaq,
   531  		HTTPMethod: "POST",
   532  		HTTPPath:   "/",
   533  	}
   534  
   535  	if input == nil {
   536  		input = &CreateFaqInput{}
   537  	}
   538  
   539  	output = &CreateFaqOutput{}
   540  	req = c.newRequest(op, input, output)
   541  	return
   542  }
   543  
   544  // CreateFaq API operation for AWSKendraFrontendService.
   545  //
   546  // Creates an new set of frequently asked question (FAQ) questions and answers.
   547  //
   548  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   549  // with awserr.Error's Code and Message methods to get detailed information about
   550  // the error.
   551  //
   552  // See the AWS API reference guide for AWSKendraFrontendService's
   553  // API operation CreateFaq for usage and error information.
   554  //
   555  // Returned Error Types:
   556  //   * ValidationException
   557  //
   558  //   * ConflictException
   559  //
   560  //   * ResourceNotFoundException
   561  //
   562  //   * ThrottlingException
   563  //
   564  //   * ServiceQuotaExceededException
   565  //
   566  //   * AccessDeniedException
   567  //
   568  //   * InternalServerException
   569  //
   570  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateFaq
   571  func (c *Kendra) CreateFaq(input *CreateFaqInput) (*CreateFaqOutput, error) {
   572  	req, out := c.CreateFaqRequest(input)
   573  	return out, req.Send()
   574  }
   575  
   576  // CreateFaqWithContext is the same as CreateFaq with the addition of
   577  // the ability to pass a context and additional request options.
   578  //
   579  // See CreateFaq for details on how to use this API operation.
   580  //
   581  // The context must be non-nil and will be used for request cancellation. If
   582  // the context is nil a panic will occur. In the future the SDK may create
   583  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   584  // for more information on using Contexts.
   585  func (c *Kendra) CreateFaqWithContext(ctx aws.Context, input *CreateFaqInput, opts ...request.Option) (*CreateFaqOutput, error) {
   586  	req, out := c.CreateFaqRequest(input)
   587  	req.SetContext(ctx)
   588  	req.ApplyOptions(opts...)
   589  	return out, req.Send()
   590  }
   591  
   592  const opCreateIndex = "CreateIndex"
   593  
   594  // CreateIndexRequest generates a "aws/request.Request" representing the
   595  // client's request for the CreateIndex operation. The "output" return
   596  // value will be populated with the request's response once the request completes
   597  // successfully.
   598  //
   599  // Use "Send" method on the returned Request to send the API call to the service.
   600  // the "output" return value is not valid until after Send returns without error.
   601  //
   602  // See CreateIndex for more information on using the CreateIndex
   603  // API call, and error handling.
   604  //
   605  // This method is useful when you want to inject custom logic or configuration
   606  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   607  //
   608  //
   609  //    // Example sending a request using the CreateIndexRequest method.
   610  //    req, resp := client.CreateIndexRequest(params)
   611  //
   612  //    err := req.Send()
   613  //    if err == nil { // resp is now filled
   614  //        fmt.Println(resp)
   615  //    }
   616  //
   617  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateIndex
   618  func (c *Kendra) CreateIndexRequest(input *CreateIndexInput) (req *request.Request, output *CreateIndexOutput) {
   619  	op := &request.Operation{
   620  		Name:       opCreateIndex,
   621  		HTTPMethod: "POST",
   622  		HTTPPath:   "/",
   623  	}
   624  
   625  	if input == nil {
   626  		input = &CreateIndexInput{}
   627  	}
   628  
   629  	output = &CreateIndexOutput{}
   630  	req = c.newRequest(op, input, output)
   631  	return
   632  }
   633  
   634  // CreateIndex API operation for AWSKendraFrontendService.
   635  //
   636  // Creates a new Amazon Kendra index. Index creation is an asynchronous operation.
   637  // To determine if index creation has completed, check the Status field returned
   638  // from a call to DescribeIndex. The Status field is set to ACTIVE when the
   639  // index is ready to use.
   640  //
   641  // Once the index is active you can index your documents using the BatchPutDocument
   642  // operation or using one of the supported data sources.
   643  //
   644  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   645  // with awserr.Error's Code and Message methods to get detailed information about
   646  // the error.
   647  //
   648  // See the AWS API reference guide for AWSKendraFrontendService's
   649  // API operation CreateIndex for usage and error information.
   650  //
   651  // Returned Error Types:
   652  //   * ValidationException
   653  //
   654  //   * ResourceAlreadyExistException
   655  //
   656  //   * ServiceQuotaExceededException
   657  //
   658  //   * ThrottlingException
   659  //
   660  //   * AccessDeniedException
   661  //
   662  //   * ConflictException
   663  //
   664  //   * InternalServerException
   665  //
   666  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateIndex
   667  func (c *Kendra) CreateIndex(input *CreateIndexInput) (*CreateIndexOutput, error) {
   668  	req, out := c.CreateIndexRequest(input)
   669  	return out, req.Send()
   670  }
   671  
   672  // CreateIndexWithContext is the same as CreateIndex with the addition of
   673  // the ability to pass a context and additional request options.
   674  //
   675  // See CreateIndex for details on how to use this API operation.
   676  //
   677  // The context must be non-nil and will be used for request cancellation. If
   678  // the context is nil a panic will occur. In the future the SDK may create
   679  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   680  // for more information on using Contexts.
   681  func (c *Kendra) CreateIndexWithContext(ctx aws.Context, input *CreateIndexInput, opts ...request.Option) (*CreateIndexOutput, error) {
   682  	req, out := c.CreateIndexRequest(input)
   683  	req.SetContext(ctx)
   684  	req.ApplyOptions(opts...)
   685  	return out, req.Send()
   686  }
   687  
   688  const opCreateQuerySuggestionsBlockList = "CreateQuerySuggestionsBlockList"
   689  
   690  // CreateQuerySuggestionsBlockListRequest generates a "aws/request.Request" representing the
   691  // client's request for the CreateQuerySuggestionsBlockList operation. The "output" return
   692  // value will be populated with the request's response once the request completes
   693  // successfully.
   694  //
   695  // Use "Send" method on the returned Request to send the API call to the service.
   696  // the "output" return value is not valid until after Send returns without error.
   697  //
   698  // See CreateQuerySuggestionsBlockList for more information on using the CreateQuerySuggestionsBlockList
   699  // API call, and error handling.
   700  //
   701  // This method is useful when you want to inject custom logic or configuration
   702  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   703  //
   704  //
   705  //    // Example sending a request using the CreateQuerySuggestionsBlockListRequest method.
   706  //    req, resp := client.CreateQuerySuggestionsBlockListRequest(params)
   707  //
   708  //    err := req.Send()
   709  //    if err == nil { // resp is now filled
   710  //        fmt.Println(resp)
   711  //    }
   712  //
   713  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateQuerySuggestionsBlockList
   714  func (c *Kendra) CreateQuerySuggestionsBlockListRequest(input *CreateQuerySuggestionsBlockListInput) (req *request.Request, output *CreateQuerySuggestionsBlockListOutput) {
   715  	op := &request.Operation{
   716  		Name:       opCreateQuerySuggestionsBlockList,
   717  		HTTPMethod: "POST",
   718  		HTTPPath:   "/",
   719  	}
   720  
   721  	if input == nil {
   722  		input = &CreateQuerySuggestionsBlockListInput{}
   723  	}
   724  
   725  	output = &CreateQuerySuggestionsBlockListOutput{}
   726  	req = c.newRequest(op, input, output)
   727  	return
   728  }
   729  
   730  // CreateQuerySuggestionsBlockList API operation for AWSKendraFrontendService.
   731  //
   732  // Creates a block list to exlcude certain queries from suggestions.
   733  //
   734  // Any query that contains words or phrases specified in the block list is blocked
   735  // or filtered out from being shown as a suggestion.
   736  //
   737  // You need to provide the file location of your block list text file in your
   738  // S3 bucket. In your text file, enter each block word or phrase on a separate
   739  // line.
   740  //
   741  // For information on the current quota limits for block lists, see Quotas for
   742  // Amazon Kendra (https://docs.aws.amazon.com/kendra/latest/dg/quotas.html).
   743  //
   744  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   745  // with awserr.Error's Code and Message methods to get detailed information about
   746  // the error.
   747  //
   748  // See the AWS API reference guide for AWSKendraFrontendService's
   749  // API operation CreateQuerySuggestionsBlockList for usage and error information.
   750  //
   751  // Returned Error Types:
   752  //   * ValidationException
   753  //
   754  //   * ResourceNotFoundException
   755  //
   756  //   * ThrottlingException
   757  //
   758  //   * AccessDeniedException
   759  //
   760  //   * ServiceQuotaExceededException
   761  //
   762  //   * ConflictException
   763  //
   764  //   * InternalServerException
   765  //
   766  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateQuerySuggestionsBlockList
   767  func (c *Kendra) CreateQuerySuggestionsBlockList(input *CreateQuerySuggestionsBlockListInput) (*CreateQuerySuggestionsBlockListOutput, error) {
   768  	req, out := c.CreateQuerySuggestionsBlockListRequest(input)
   769  	return out, req.Send()
   770  }
   771  
   772  // CreateQuerySuggestionsBlockListWithContext is the same as CreateQuerySuggestionsBlockList with the addition of
   773  // the ability to pass a context and additional request options.
   774  //
   775  // See CreateQuerySuggestionsBlockList for details on how to use this API operation.
   776  //
   777  // The context must be non-nil and will be used for request cancellation. If
   778  // the context is nil a panic will occur. In the future the SDK may create
   779  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   780  // for more information on using Contexts.
   781  func (c *Kendra) CreateQuerySuggestionsBlockListWithContext(ctx aws.Context, input *CreateQuerySuggestionsBlockListInput, opts ...request.Option) (*CreateQuerySuggestionsBlockListOutput, error) {
   782  	req, out := c.CreateQuerySuggestionsBlockListRequest(input)
   783  	req.SetContext(ctx)
   784  	req.ApplyOptions(opts...)
   785  	return out, req.Send()
   786  }
   787  
   788  const opCreateThesaurus = "CreateThesaurus"
   789  
   790  // CreateThesaurusRequest generates a "aws/request.Request" representing the
   791  // client's request for the CreateThesaurus operation. The "output" return
   792  // value will be populated with the request's response once the request completes
   793  // successfully.
   794  //
   795  // Use "Send" method on the returned Request to send the API call to the service.
   796  // the "output" return value is not valid until after Send returns without error.
   797  //
   798  // See CreateThesaurus for more information on using the CreateThesaurus
   799  // API call, and error handling.
   800  //
   801  // This method is useful when you want to inject custom logic or configuration
   802  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   803  //
   804  //
   805  //    // Example sending a request using the CreateThesaurusRequest method.
   806  //    req, resp := client.CreateThesaurusRequest(params)
   807  //
   808  //    err := req.Send()
   809  //    if err == nil { // resp is now filled
   810  //        fmt.Println(resp)
   811  //    }
   812  //
   813  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateThesaurus
   814  func (c *Kendra) CreateThesaurusRequest(input *CreateThesaurusInput) (req *request.Request, output *CreateThesaurusOutput) {
   815  	op := &request.Operation{
   816  		Name:       opCreateThesaurus,
   817  		HTTPMethod: "POST",
   818  		HTTPPath:   "/",
   819  	}
   820  
   821  	if input == nil {
   822  		input = &CreateThesaurusInput{}
   823  	}
   824  
   825  	output = &CreateThesaurusOutput{}
   826  	req = c.newRequest(op, input, output)
   827  	return
   828  }
   829  
   830  // CreateThesaurus API operation for AWSKendraFrontendService.
   831  //
   832  // Creates a thesaurus for an index. The thesaurus contains a list of synonyms
   833  // in Solr format.
   834  //
   835  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   836  // with awserr.Error's Code and Message methods to get detailed information about
   837  // the error.
   838  //
   839  // See the AWS API reference guide for AWSKendraFrontendService's
   840  // API operation CreateThesaurus for usage and error information.
   841  //
   842  // Returned Error Types:
   843  //   * ValidationException
   844  //
   845  //   * ConflictException
   846  //
   847  //   * ResourceNotFoundException
   848  //
   849  //   * ThrottlingException
   850  //
   851  //   * ServiceQuotaExceededException
   852  //
   853  //   * AccessDeniedException
   854  //
   855  //   * InternalServerException
   856  //
   857  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/CreateThesaurus
   858  func (c *Kendra) CreateThesaurus(input *CreateThesaurusInput) (*CreateThesaurusOutput, error) {
   859  	req, out := c.CreateThesaurusRequest(input)
   860  	return out, req.Send()
   861  }
   862  
   863  // CreateThesaurusWithContext is the same as CreateThesaurus with the addition of
   864  // the ability to pass a context and additional request options.
   865  //
   866  // See CreateThesaurus for details on how to use this API operation.
   867  //
   868  // The context must be non-nil and will be used for request cancellation. If
   869  // the context is nil a panic will occur. In the future the SDK may create
   870  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   871  // for more information on using Contexts.
   872  func (c *Kendra) CreateThesaurusWithContext(ctx aws.Context, input *CreateThesaurusInput, opts ...request.Option) (*CreateThesaurusOutput, error) {
   873  	req, out := c.CreateThesaurusRequest(input)
   874  	req.SetContext(ctx)
   875  	req.ApplyOptions(opts...)
   876  	return out, req.Send()
   877  }
   878  
   879  const opDeleteDataSource = "DeleteDataSource"
   880  
   881  // DeleteDataSourceRequest generates a "aws/request.Request" representing the
   882  // client's request for the DeleteDataSource operation. The "output" return
   883  // value will be populated with the request's response once the request completes
   884  // successfully.
   885  //
   886  // Use "Send" method on the returned Request to send the API call to the service.
   887  // the "output" return value is not valid until after Send returns without error.
   888  //
   889  // See DeleteDataSource for more information on using the DeleteDataSource
   890  // API call, and error handling.
   891  //
   892  // This method is useful when you want to inject custom logic or configuration
   893  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   894  //
   895  //
   896  //    // Example sending a request using the DeleteDataSourceRequest method.
   897  //    req, resp := client.DeleteDataSourceRequest(params)
   898  //
   899  //    err := req.Send()
   900  //    if err == nil { // resp is now filled
   901  //        fmt.Println(resp)
   902  //    }
   903  //
   904  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeleteDataSource
   905  func (c *Kendra) DeleteDataSourceRequest(input *DeleteDataSourceInput) (req *request.Request, output *DeleteDataSourceOutput) {
   906  	op := &request.Operation{
   907  		Name:       opDeleteDataSource,
   908  		HTTPMethod: "POST",
   909  		HTTPPath:   "/",
   910  	}
   911  
   912  	if input == nil {
   913  		input = &DeleteDataSourceInput{}
   914  	}
   915  
   916  	output = &DeleteDataSourceOutput{}
   917  	req = c.newRequest(op, input, output)
   918  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   919  	return
   920  }
   921  
   922  // DeleteDataSource API operation for AWSKendraFrontendService.
   923  //
   924  // Deletes an Amazon Kendra data source. An exception is not thrown if the data
   925  // source is already being deleted. While the data source is being deleted,
   926  // the Status field returned by a call to the DescribeDataSource operation is
   927  // set to DELETING. For more information, see Deleting Data Sources (https://docs.aws.amazon.com/kendra/latest/dg/delete-data-source.html).
   928  //
   929  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   930  // with awserr.Error's Code and Message methods to get detailed information about
   931  // the error.
   932  //
   933  // See the AWS API reference guide for AWSKendraFrontendService's
   934  // API operation DeleteDataSource for usage and error information.
   935  //
   936  // Returned Error Types:
   937  //   * AccessDeniedException
   938  //
   939  //   * ValidationException
   940  //
   941  //   * ConflictException
   942  //
   943  //   * ResourceNotFoundException
   944  //
   945  //   * ThrottlingException
   946  //
   947  //   * InternalServerException
   948  //
   949  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeleteDataSource
   950  func (c *Kendra) DeleteDataSource(input *DeleteDataSourceInput) (*DeleteDataSourceOutput, error) {
   951  	req, out := c.DeleteDataSourceRequest(input)
   952  	return out, req.Send()
   953  }
   954  
   955  // DeleteDataSourceWithContext is the same as DeleteDataSource with the addition of
   956  // the ability to pass a context and additional request options.
   957  //
   958  // See DeleteDataSource for details on how to use this API operation.
   959  //
   960  // The context must be non-nil and will be used for request cancellation. If
   961  // the context is nil a panic will occur. In the future the SDK may create
   962  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   963  // for more information on using Contexts.
   964  func (c *Kendra) DeleteDataSourceWithContext(ctx aws.Context, input *DeleteDataSourceInput, opts ...request.Option) (*DeleteDataSourceOutput, error) {
   965  	req, out := c.DeleteDataSourceRequest(input)
   966  	req.SetContext(ctx)
   967  	req.ApplyOptions(opts...)
   968  	return out, req.Send()
   969  }
   970  
   971  const opDeleteFaq = "DeleteFaq"
   972  
   973  // DeleteFaqRequest generates a "aws/request.Request" representing the
   974  // client's request for the DeleteFaq operation. The "output" return
   975  // value will be populated with the request's response once the request completes
   976  // successfully.
   977  //
   978  // Use "Send" method on the returned Request to send the API call to the service.
   979  // the "output" return value is not valid until after Send returns without error.
   980  //
   981  // See DeleteFaq for more information on using the DeleteFaq
   982  // API call, and error handling.
   983  //
   984  // This method is useful when you want to inject custom logic or configuration
   985  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   986  //
   987  //
   988  //    // Example sending a request using the DeleteFaqRequest method.
   989  //    req, resp := client.DeleteFaqRequest(params)
   990  //
   991  //    err := req.Send()
   992  //    if err == nil { // resp is now filled
   993  //        fmt.Println(resp)
   994  //    }
   995  //
   996  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeleteFaq
   997  func (c *Kendra) DeleteFaqRequest(input *DeleteFaqInput) (req *request.Request, output *DeleteFaqOutput) {
   998  	op := &request.Operation{
   999  		Name:       opDeleteFaq,
  1000  		HTTPMethod: "POST",
  1001  		HTTPPath:   "/",
  1002  	}
  1003  
  1004  	if input == nil {
  1005  		input = &DeleteFaqInput{}
  1006  	}
  1007  
  1008  	output = &DeleteFaqOutput{}
  1009  	req = c.newRequest(op, input, output)
  1010  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1011  	return
  1012  }
  1013  
  1014  // DeleteFaq API operation for AWSKendraFrontendService.
  1015  //
  1016  // Removes an FAQ from an index.
  1017  //
  1018  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1019  // with awserr.Error's Code and Message methods to get detailed information about
  1020  // the error.
  1021  //
  1022  // See the AWS API reference guide for AWSKendraFrontendService's
  1023  // API operation DeleteFaq for usage and error information.
  1024  //
  1025  // Returned Error Types:
  1026  //   * ValidationException
  1027  //
  1028  //   * ConflictException
  1029  //
  1030  //   * ResourceNotFoundException
  1031  //
  1032  //   * ThrottlingException
  1033  //
  1034  //   * AccessDeniedException
  1035  //
  1036  //   * InternalServerException
  1037  //
  1038  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeleteFaq
  1039  func (c *Kendra) DeleteFaq(input *DeleteFaqInput) (*DeleteFaqOutput, error) {
  1040  	req, out := c.DeleteFaqRequest(input)
  1041  	return out, req.Send()
  1042  }
  1043  
  1044  // DeleteFaqWithContext is the same as DeleteFaq with the addition of
  1045  // the ability to pass a context and additional request options.
  1046  //
  1047  // See DeleteFaq for details on how to use this API operation.
  1048  //
  1049  // The context must be non-nil and will be used for request cancellation. If
  1050  // the context is nil a panic will occur. In the future the SDK may create
  1051  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1052  // for more information on using Contexts.
  1053  func (c *Kendra) DeleteFaqWithContext(ctx aws.Context, input *DeleteFaqInput, opts ...request.Option) (*DeleteFaqOutput, error) {
  1054  	req, out := c.DeleteFaqRequest(input)
  1055  	req.SetContext(ctx)
  1056  	req.ApplyOptions(opts...)
  1057  	return out, req.Send()
  1058  }
  1059  
  1060  const opDeleteIndex = "DeleteIndex"
  1061  
  1062  // DeleteIndexRequest generates a "aws/request.Request" representing the
  1063  // client's request for the DeleteIndex operation. The "output" return
  1064  // value will be populated with the request's response once the request completes
  1065  // successfully.
  1066  //
  1067  // Use "Send" method on the returned Request to send the API call to the service.
  1068  // the "output" return value is not valid until after Send returns without error.
  1069  //
  1070  // See DeleteIndex for more information on using the DeleteIndex
  1071  // API call, and error handling.
  1072  //
  1073  // This method is useful when you want to inject custom logic or configuration
  1074  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1075  //
  1076  //
  1077  //    // Example sending a request using the DeleteIndexRequest method.
  1078  //    req, resp := client.DeleteIndexRequest(params)
  1079  //
  1080  //    err := req.Send()
  1081  //    if err == nil { // resp is now filled
  1082  //        fmt.Println(resp)
  1083  //    }
  1084  //
  1085  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeleteIndex
  1086  func (c *Kendra) DeleteIndexRequest(input *DeleteIndexInput) (req *request.Request, output *DeleteIndexOutput) {
  1087  	op := &request.Operation{
  1088  		Name:       opDeleteIndex,
  1089  		HTTPMethod: "POST",
  1090  		HTTPPath:   "/",
  1091  	}
  1092  
  1093  	if input == nil {
  1094  		input = &DeleteIndexInput{}
  1095  	}
  1096  
  1097  	output = &DeleteIndexOutput{}
  1098  	req = c.newRequest(op, input, output)
  1099  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1100  	return
  1101  }
  1102  
  1103  // DeleteIndex API operation for AWSKendraFrontendService.
  1104  //
  1105  // Deletes an existing Amazon Kendra index. An exception is not thrown if the
  1106  // index is already being deleted. While the index is being deleted, the Status
  1107  // field returned by a call to the DescribeIndex operation is set to DELETING.
  1108  //
  1109  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1110  // with awserr.Error's Code and Message methods to get detailed information about
  1111  // the error.
  1112  //
  1113  // See the AWS API reference guide for AWSKendraFrontendService's
  1114  // API operation DeleteIndex for usage and error information.
  1115  //
  1116  // Returned Error Types:
  1117  //   * ValidationException
  1118  //
  1119  //   * ConflictException
  1120  //
  1121  //   * ResourceNotFoundException
  1122  //
  1123  //   * ThrottlingException
  1124  //
  1125  //   * AccessDeniedException
  1126  //
  1127  //   * InternalServerException
  1128  //
  1129  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeleteIndex
  1130  func (c *Kendra) DeleteIndex(input *DeleteIndexInput) (*DeleteIndexOutput, error) {
  1131  	req, out := c.DeleteIndexRequest(input)
  1132  	return out, req.Send()
  1133  }
  1134  
  1135  // DeleteIndexWithContext is the same as DeleteIndex with the addition of
  1136  // the ability to pass a context and additional request options.
  1137  //
  1138  // See DeleteIndex for details on how to use this API operation.
  1139  //
  1140  // The context must be non-nil and will be used for request cancellation. If
  1141  // the context is nil a panic will occur. In the future the SDK may create
  1142  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1143  // for more information on using Contexts.
  1144  func (c *Kendra) DeleteIndexWithContext(ctx aws.Context, input *DeleteIndexInput, opts ...request.Option) (*DeleteIndexOutput, error) {
  1145  	req, out := c.DeleteIndexRequest(input)
  1146  	req.SetContext(ctx)
  1147  	req.ApplyOptions(opts...)
  1148  	return out, req.Send()
  1149  }
  1150  
  1151  const opDeletePrincipalMapping = "DeletePrincipalMapping"
  1152  
  1153  // DeletePrincipalMappingRequest generates a "aws/request.Request" representing the
  1154  // client's request for the DeletePrincipalMapping operation. The "output" return
  1155  // value will be populated with the request's response once the request completes
  1156  // successfully.
  1157  //
  1158  // Use "Send" method on the returned Request to send the API call to the service.
  1159  // the "output" return value is not valid until after Send returns without error.
  1160  //
  1161  // See DeletePrincipalMapping for more information on using the DeletePrincipalMapping
  1162  // API call, and error handling.
  1163  //
  1164  // This method is useful when you want to inject custom logic or configuration
  1165  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1166  //
  1167  //
  1168  //    // Example sending a request using the DeletePrincipalMappingRequest method.
  1169  //    req, resp := client.DeletePrincipalMappingRequest(params)
  1170  //
  1171  //    err := req.Send()
  1172  //    if err == nil { // resp is now filled
  1173  //        fmt.Println(resp)
  1174  //    }
  1175  //
  1176  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeletePrincipalMapping
  1177  func (c *Kendra) DeletePrincipalMappingRequest(input *DeletePrincipalMappingInput) (req *request.Request, output *DeletePrincipalMappingOutput) {
  1178  	op := &request.Operation{
  1179  		Name:       opDeletePrincipalMapping,
  1180  		HTTPMethod: "POST",
  1181  		HTTPPath:   "/",
  1182  	}
  1183  
  1184  	if input == nil {
  1185  		input = &DeletePrincipalMappingInput{}
  1186  	}
  1187  
  1188  	output = &DeletePrincipalMappingOutput{}
  1189  	req = c.newRequest(op, input, output)
  1190  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1191  	return
  1192  }
  1193  
  1194  // DeletePrincipalMapping API operation for AWSKendraFrontendService.
  1195  //
  1196  // Deletes a group so that all users and sub groups that belong to the group
  1197  // can no longer access documents only available to that group.
  1198  //
  1199  // For example, after deleting the group "Summer Interns", all interns who belonged
  1200  // to that group no longer see intern-only documents in their search results.
  1201  //
  1202  // If you want to delete or replace users or sub groups of a group, you need
  1203  // to use the PutPrincipalMapping operation. For example, if a user in the group
  1204  // "Engineering" leaves the engineering team and another user takes their place,
  1205  // you provide an updated list of users or sub groups that belong to the "Engineering"
  1206  // group when calling PutPrincipalMapping. You can update your internal list
  1207  // of users or sub groups and input this list when calling PutPrincipalMapping.
  1208  //
  1209  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1210  // with awserr.Error's Code and Message methods to get detailed information about
  1211  // the error.
  1212  //
  1213  // See the AWS API reference guide for AWSKendraFrontendService's
  1214  // API operation DeletePrincipalMapping for usage and error information.
  1215  //
  1216  // Returned Error Types:
  1217  //   * ValidationException
  1218  //
  1219  //   * ConflictException
  1220  //
  1221  //   * ResourceNotFoundException
  1222  //
  1223  //   * ThrottlingException
  1224  //
  1225  //   * AccessDeniedException
  1226  //
  1227  //   * InternalServerException
  1228  //
  1229  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeletePrincipalMapping
  1230  func (c *Kendra) DeletePrincipalMapping(input *DeletePrincipalMappingInput) (*DeletePrincipalMappingOutput, error) {
  1231  	req, out := c.DeletePrincipalMappingRequest(input)
  1232  	return out, req.Send()
  1233  }
  1234  
  1235  // DeletePrincipalMappingWithContext is the same as DeletePrincipalMapping with the addition of
  1236  // the ability to pass a context and additional request options.
  1237  //
  1238  // See DeletePrincipalMapping for details on how to use this API operation.
  1239  //
  1240  // The context must be non-nil and will be used for request cancellation. If
  1241  // the context is nil a panic will occur. In the future the SDK may create
  1242  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1243  // for more information on using Contexts.
  1244  func (c *Kendra) DeletePrincipalMappingWithContext(ctx aws.Context, input *DeletePrincipalMappingInput, opts ...request.Option) (*DeletePrincipalMappingOutput, error) {
  1245  	req, out := c.DeletePrincipalMappingRequest(input)
  1246  	req.SetContext(ctx)
  1247  	req.ApplyOptions(opts...)
  1248  	return out, req.Send()
  1249  }
  1250  
  1251  const opDeleteQuerySuggestionsBlockList = "DeleteQuerySuggestionsBlockList"
  1252  
  1253  // DeleteQuerySuggestionsBlockListRequest generates a "aws/request.Request" representing the
  1254  // client's request for the DeleteQuerySuggestionsBlockList operation. The "output" return
  1255  // value will be populated with the request's response once the request completes
  1256  // successfully.
  1257  //
  1258  // Use "Send" method on the returned Request to send the API call to the service.
  1259  // the "output" return value is not valid until after Send returns without error.
  1260  //
  1261  // See DeleteQuerySuggestionsBlockList for more information on using the DeleteQuerySuggestionsBlockList
  1262  // API call, and error handling.
  1263  //
  1264  // This method is useful when you want to inject custom logic or configuration
  1265  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1266  //
  1267  //
  1268  //    // Example sending a request using the DeleteQuerySuggestionsBlockListRequest method.
  1269  //    req, resp := client.DeleteQuerySuggestionsBlockListRequest(params)
  1270  //
  1271  //    err := req.Send()
  1272  //    if err == nil { // resp is now filled
  1273  //        fmt.Println(resp)
  1274  //    }
  1275  //
  1276  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeleteQuerySuggestionsBlockList
  1277  func (c *Kendra) DeleteQuerySuggestionsBlockListRequest(input *DeleteQuerySuggestionsBlockListInput) (req *request.Request, output *DeleteQuerySuggestionsBlockListOutput) {
  1278  	op := &request.Operation{
  1279  		Name:       opDeleteQuerySuggestionsBlockList,
  1280  		HTTPMethod: "POST",
  1281  		HTTPPath:   "/",
  1282  	}
  1283  
  1284  	if input == nil {
  1285  		input = &DeleteQuerySuggestionsBlockListInput{}
  1286  	}
  1287  
  1288  	output = &DeleteQuerySuggestionsBlockListOutput{}
  1289  	req = c.newRequest(op, input, output)
  1290  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1291  	return
  1292  }
  1293  
  1294  // DeleteQuerySuggestionsBlockList API operation for AWSKendraFrontendService.
  1295  //
  1296  // Deletes a block list used for query suggestions for an index.
  1297  //
  1298  // A deleted block list might not take effect right away. Amazon Kendra needs
  1299  // to refresh the entire suggestions list to add back the queries that were
  1300  // previously blocked.
  1301  //
  1302  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1303  // with awserr.Error's Code and Message methods to get detailed information about
  1304  // the error.
  1305  //
  1306  // See the AWS API reference guide for AWSKendraFrontendService's
  1307  // API operation DeleteQuerySuggestionsBlockList for usage and error information.
  1308  //
  1309  // Returned Error Types:
  1310  //   * ValidationException
  1311  //
  1312  //   * ResourceNotFoundException
  1313  //
  1314  //   * ThrottlingException
  1315  //
  1316  //   * AccessDeniedException
  1317  //
  1318  //   * ConflictException
  1319  //
  1320  //   * InternalServerException
  1321  //
  1322  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeleteQuerySuggestionsBlockList
  1323  func (c *Kendra) DeleteQuerySuggestionsBlockList(input *DeleteQuerySuggestionsBlockListInput) (*DeleteQuerySuggestionsBlockListOutput, error) {
  1324  	req, out := c.DeleteQuerySuggestionsBlockListRequest(input)
  1325  	return out, req.Send()
  1326  }
  1327  
  1328  // DeleteQuerySuggestionsBlockListWithContext is the same as DeleteQuerySuggestionsBlockList with the addition of
  1329  // the ability to pass a context and additional request options.
  1330  //
  1331  // See DeleteQuerySuggestionsBlockList for details on how to use this API operation.
  1332  //
  1333  // The context must be non-nil and will be used for request cancellation. If
  1334  // the context is nil a panic will occur. In the future the SDK may create
  1335  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1336  // for more information on using Contexts.
  1337  func (c *Kendra) DeleteQuerySuggestionsBlockListWithContext(ctx aws.Context, input *DeleteQuerySuggestionsBlockListInput, opts ...request.Option) (*DeleteQuerySuggestionsBlockListOutput, error) {
  1338  	req, out := c.DeleteQuerySuggestionsBlockListRequest(input)
  1339  	req.SetContext(ctx)
  1340  	req.ApplyOptions(opts...)
  1341  	return out, req.Send()
  1342  }
  1343  
  1344  const opDeleteThesaurus = "DeleteThesaurus"
  1345  
  1346  // DeleteThesaurusRequest generates a "aws/request.Request" representing the
  1347  // client's request for the DeleteThesaurus operation. The "output" return
  1348  // value will be populated with the request's response once the request completes
  1349  // successfully.
  1350  //
  1351  // Use "Send" method on the returned Request to send the API call to the service.
  1352  // the "output" return value is not valid until after Send returns without error.
  1353  //
  1354  // See DeleteThesaurus for more information on using the DeleteThesaurus
  1355  // API call, and error handling.
  1356  //
  1357  // This method is useful when you want to inject custom logic or configuration
  1358  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1359  //
  1360  //
  1361  //    // Example sending a request using the DeleteThesaurusRequest method.
  1362  //    req, resp := client.DeleteThesaurusRequest(params)
  1363  //
  1364  //    err := req.Send()
  1365  //    if err == nil { // resp is now filled
  1366  //        fmt.Println(resp)
  1367  //    }
  1368  //
  1369  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeleteThesaurus
  1370  func (c *Kendra) DeleteThesaurusRequest(input *DeleteThesaurusInput) (req *request.Request, output *DeleteThesaurusOutput) {
  1371  	op := &request.Operation{
  1372  		Name:       opDeleteThesaurus,
  1373  		HTTPMethod: "POST",
  1374  		HTTPPath:   "/",
  1375  	}
  1376  
  1377  	if input == nil {
  1378  		input = &DeleteThesaurusInput{}
  1379  	}
  1380  
  1381  	output = &DeleteThesaurusOutput{}
  1382  	req = c.newRequest(op, input, output)
  1383  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1384  	return
  1385  }
  1386  
  1387  // DeleteThesaurus API operation for AWSKendraFrontendService.
  1388  //
  1389  // Deletes an existing Amazon Kendra thesaurus.
  1390  //
  1391  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1392  // with awserr.Error's Code and Message methods to get detailed information about
  1393  // the error.
  1394  //
  1395  // See the AWS API reference guide for AWSKendraFrontendService's
  1396  // API operation DeleteThesaurus for usage and error information.
  1397  //
  1398  // Returned Error Types:
  1399  //   * ValidationException
  1400  //
  1401  //   * ConflictException
  1402  //
  1403  //   * ResourceNotFoundException
  1404  //
  1405  //   * ThrottlingException
  1406  //
  1407  //   * AccessDeniedException
  1408  //
  1409  //   * InternalServerException
  1410  //
  1411  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DeleteThesaurus
  1412  func (c *Kendra) DeleteThesaurus(input *DeleteThesaurusInput) (*DeleteThesaurusOutput, error) {
  1413  	req, out := c.DeleteThesaurusRequest(input)
  1414  	return out, req.Send()
  1415  }
  1416  
  1417  // DeleteThesaurusWithContext is the same as DeleteThesaurus with the addition of
  1418  // the ability to pass a context and additional request options.
  1419  //
  1420  // See DeleteThesaurus for details on how to use this API operation.
  1421  //
  1422  // The context must be non-nil and will be used for request cancellation. If
  1423  // the context is nil a panic will occur. In the future the SDK may create
  1424  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1425  // for more information on using Contexts.
  1426  func (c *Kendra) DeleteThesaurusWithContext(ctx aws.Context, input *DeleteThesaurusInput, opts ...request.Option) (*DeleteThesaurusOutput, error) {
  1427  	req, out := c.DeleteThesaurusRequest(input)
  1428  	req.SetContext(ctx)
  1429  	req.ApplyOptions(opts...)
  1430  	return out, req.Send()
  1431  }
  1432  
  1433  const opDescribeDataSource = "DescribeDataSource"
  1434  
  1435  // DescribeDataSourceRequest generates a "aws/request.Request" representing the
  1436  // client's request for the DescribeDataSource operation. The "output" return
  1437  // value will be populated with the request's response once the request completes
  1438  // successfully.
  1439  //
  1440  // Use "Send" method on the returned Request to send the API call to the service.
  1441  // the "output" return value is not valid until after Send returns without error.
  1442  //
  1443  // See DescribeDataSource for more information on using the DescribeDataSource
  1444  // API call, and error handling.
  1445  //
  1446  // This method is useful when you want to inject custom logic or configuration
  1447  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1448  //
  1449  //
  1450  //    // Example sending a request using the DescribeDataSourceRequest method.
  1451  //    req, resp := client.DescribeDataSourceRequest(params)
  1452  //
  1453  //    err := req.Send()
  1454  //    if err == nil { // resp is now filled
  1455  //        fmt.Println(resp)
  1456  //    }
  1457  //
  1458  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeDataSource
  1459  func (c *Kendra) DescribeDataSourceRequest(input *DescribeDataSourceInput) (req *request.Request, output *DescribeDataSourceOutput) {
  1460  	op := &request.Operation{
  1461  		Name:       opDescribeDataSource,
  1462  		HTTPMethod: "POST",
  1463  		HTTPPath:   "/",
  1464  	}
  1465  
  1466  	if input == nil {
  1467  		input = &DescribeDataSourceInput{}
  1468  	}
  1469  
  1470  	output = &DescribeDataSourceOutput{}
  1471  	req = c.newRequest(op, input, output)
  1472  	return
  1473  }
  1474  
  1475  // DescribeDataSource API operation for AWSKendraFrontendService.
  1476  //
  1477  // Gets information about a Amazon Kendra data source.
  1478  //
  1479  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1480  // with awserr.Error's Code and Message methods to get detailed information about
  1481  // the error.
  1482  //
  1483  // See the AWS API reference guide for AWSKendraFrontendService's
  1484  // API operation DescribeDataSource for usage and error information.
  1485  //
  1486  // Returned Error Types:
  1487  //   * ValidationException
  1488  //
  1489  //   * ResourceNotFoundException
  1490  //
  1491  //   * ThrottlingException
  1492  //
  1493  //   * AccessDeniedException
  1494  //
  1495  //   * InternalServerException
  1496  //
  1497  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeDataSource
  1498  func (c *Kendra) DescribeDataSource(input *DescribeDataSourceInput) (*DescribeDataSourceOutput, error) {
  1499  	req, out := c.DescribeDataSourceRequest(input)
  1500  	return out, req.Send()
  1501  }
  1502  
  1503  // DescribeDataSourceWithContext is the same as DescribeDataSource with the addition of
  1504  // the ability to pass a context and additional request options.
  1505  //
  1506  // See DescribeDataSource for details on how to use this API operation.
  1507  //
  1508  // The context must be non-nil and will be used for request cancellation. If
  1509  // the context is nil a panic will occur. In the future the SDK may create
  1510  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1511  // for more information on using Contexts.
  1512  func (c *Kendra) DescribeDataSourceWithContext(ctx aws.Context, input *DescribeDataSourceInput, opts ...request.Option) (*DescribeDataSourceOutput, error) {
  1513  	req, out := c.DescribeDataSourceRequest(input)
  1514  	req.SetContext(ctx)
  1515  	req.ApplyOptions(opts...)
  1516  	return out, req.Send()
  1517  }
  1518  
  1519  const opDescribeFaq = "DescribeFaq"
  1520  
  1521  // DescribeFaqRequest generates a "aws/request.Request" representing the
  1522  // client's request for the DescribeFaq operation. The "output" return
  1523  // value will be populated with the request's response once the request completes
  1524  // successfully.
  1525  //
  1526  // Use "Send" method on the returned Request to send the API call to the service.
  1527  // the "output" return value is not valid until after Send returns without error.
  1528  //
  1529  // See DescribeFaq for more information on using the DescribeFaq
  1530  // API call, and error handling.
  1531  //
  1532  // This method is useful when you want to inject custom logic or configuration
  1533  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1534  //
  1535  //
  1536  //    // Example sending a request using the DescribeFaqRequest method.
  1537  //    req, resp := client.DescribeFaqRequest(params)
  1538  //
  1539  //    err := req.Send()
  1540  //    if err == nil { // resp is now filled
  1541  //        fmt.Println(resp)
  1542  //    }
  1543  //
  1544  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeFaq
  1545  func (c *Kendra) DescribeFaqRequest(input *DescribeFaqInput) (req *request.Request, output *DescribeFaqOutput) {
  1546  	op := &request.Operation{
  1547  		Name:       opDescribeFaq,
  1548  		HTTPMethod: "POST",
  1549  		HTTPPath:   "/",
  1550  	}
  1551  
  1552  	if input == nil {
  1553  		input = &DescribeFaqInput{}
  1554  	}
  1555  
  1556  	output = &DescribeFaqOutput{}
  1557  	req = c.newRequest(op, input, output)
  1558  	return
  1559  }
  1560  
  1561  // DescribeFaq API operation for AWSKendraFrontendService.
  1562  //
  1563  // Gets information about an FAQ list.
  1564  //
  1565  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1566  // with awserr.Error's Code and Message methods to get detailed information about
  1567  // the error.
  1568  //
  1569  // See the AWS API reference guide for AWSKendraFrontendService's
  1570  // API operation DescribeFaq for usage and error information.
  1571  //
  1572  // Returned Error Types:
  1573  //   * ValidationException
  1574  //
  1575  //   * ResourceNotFoundException
  1576  //
  1577  //   * ThrottlingException
  1578  //
  1579  //   * AccessDeniedException
  1580  //
  1581  //   * InternalServerException
  1582  //
  1583  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeFaq
  1584  func (c *Kendra) DescribeFaq(input *DescribeFaqInput) (*DescribeFaqOutput, error) {
  1585  	req, out := c.DescribeFaqRequest(input)
  1586  	return out, req.Send()
  1587  }
  1588  
  1589  // DescribeFaqWithContext is the same as DescribeFaq with the addition of
  1590  // the ability to pass a context and additional request options.
  1591  //
  1592  // See DescribeFaq for details on how to use this API operation.
  1593  //
  1594  // The context must be non-nil and will be used for request cancellation. If
  1595  // the context is nil a panic will occur. In the future the SDK may create
  1596  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1597  // for more information on using Contexts.
  1598  func (c *Kendra) DescribeFaqWithContext(ctx aws.Context, input *DescribeFaqInput, opts ...request.Option) (*DescribeFaqOutput, error) {
  1599  	req, out := c.DescribeFaqRequest(input)
  1600  	req.SetContext(ctx)
  1601  	req.ApplyOptions(opts...)
  1602  	return out, req.Send()
  1603  }
  1604  
  1605  const opDescribeIndex = "DescribeIndex"
  1606  
  1607  // DescribeIndexRequest generates a "aws/request.Request" representing the
  1608  // client's request for the DescribeIndex operation. The "output" return
  1609  // value will be populated with the request's response once the request completes
  1610  // successfully.
  1611  //
  1612  // Use "Send" method on the returned Request to send the API call to the service.
  1613  // the "output" return value is not valid until after Send returns without error.
  1614  //
  1615  // See DescribeIndex for more information on using the DescribeIndex
  1616  // API call, and error handling.
  1617  //
  1618  // This method is useful when you want to inject custom logic or configuration
  1619  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1620  //
  1621  //
  1622  //    // Example sending a request using the DescribeIndexRequest method.
  1623  //    req, resp := client.DescribeIndexRequest(params)
  1624  //
  1625  //    err := req.Send()
  1626  //    if err == nil { // resp is now filled
  1627  //        fmt.Println(resp)
  1628  //    }
  1629  //
  1630  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeIndex
  1631  func (c *Kendra) DescribeIndexRequest(input *DescribeIndexInput) (req *request.Request, output *DescribeIndexOutput) {
  1632  	op := &request.Operation{
  1633  		Name:       opDescribeIndex,
  1634  		HTTPMethod: "POST",
  1635  		HTTPPath:   "/",
  1636  	}
  1637  
  1638  	if input == nil {
  1639  		input = &DescribeIndexInput{}
  1640  	}
  1641  
  1642  	output = &DescribeIndexOutput{}
  1643  	req = c.newRequest(op, input, output)
  1644  	return
  1645  }
  1646  
  1647  // DescribeIndex API operation for AWSKendraFrontendService.
  1648  //
  1649  // Describes an existing Amazon Kendra index
  1650  //
  1651  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1652  // with awserr.Error's Code and Message methods to get detailed information about
  1653  // the error.
  1654  //
  1655  // See the AWS API reference guide for AWSKendraFrontendService's
  1656  // API operation DescribeIndex for usage and error information.
  1657  //
  1658  // Returned Error Types:
  1659  //   * ValidationException
  1660  //
  1661  //   * ResourceNotFoundException
  1662  //
  1663  //   * ThrottlingException
  1664  //
  1665  //   * AccessDeniedException
  1666  //
  1667  //   * InternalServerException
  1668  //
  1669  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeIndex
  1670  func (c *Kendra) DescribeIndex(input *DescribeIndexInput) (*DescribeIndexOutput, error) {
  1671  	req, out := c.DescribeIndexRequest(input)
  1672  	return out, req.Send()
  1673  }
  1674  
  1675  // DescribeIndexWithContext is the same as DescribeIndex with the addition of
  1676  // the ability to pass a context and additional request options.
  1677  //
  1678  // See DescribeIndex for details on how to use this API operation.
  1679  //
  1680  // The context must be non-nil and will be used for request cancellation. If
  1681  // the context is nil a panic will occur. In the future the SDK may create
  1682  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1683  // for more information on using Contexts.
  1684  func (c *Kendra) DescribeIndexWithContext(ctx aws.Context, input *DescribeIndexInput, opts ...request.Option) (*DescribeIndexOutput, error) {
  1685  	req, out := c.DescribeIndexRequest(input)
  1686  	req.SetContext(ctx)
  1687  	req.ApplyOptions(opts...)
  1688  	return out, req.Send()
  1689  }
  1690  
  1691  const opDescribePrincipalMapping = "DescribePrincipalMapping"
  1692  
  1693  // DescribePrincipalMappingRequest generates a "aws/request.Request" representing the
  1694  // client's request for the DescribePrincipalMapping operation. The "output" return
  1695  // value will be populated with the request's response once the request completes
  1696  // successfully.
  1697  //
  1698  // Use "Send" method on the returned Request to send the API call to the service.
  1699  // the "output" return value is not valid until after Send returns without error.
  1700  //
  1701  // See DescribePrincipalMapping for more information on using the DescribePrincipalMapping
  1702  // API call, and error handling.
  1703  //
  1704  // This method is useful when you want to inject custom logic or configuration
  1705  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1706  //
  1707  //
  1708  //    // Example sending a request using the DescribePrincipalMappingRequest method.
  1709  //    req, resp := client.DescribePrincipalMappingRequest(params)
  1710  //
  1711  //    err := req.Send()
  1712  //    if err == nil { // resp is now filled
  1713  //        fmt.Println(resp)
  1714  //    }
  1715  //
  1716  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribePrincipalMapping
  1717  func (c *Kendra) DescribePrincipalMappingRequest(input *DescribePrincipalMappingInput) (req *request.Request, output *DescribePrincipalMappingOutput) {
  1718  	op := &request.Operation{
  1719  		Name:       opDescribePrincipalMapping,
  1720  		HTTPMethod: "POST",
  1721  		HTTPPath:   "/",
  1722  	}
  1723  
  1724  	if input == nil {
  1725  		input = &DescribePrincipalMappingInput{}
  1726  	}
  1727  
  1728  	output = &DescribePrincipalMappingOutput{}
  1729  	req = c.newRequest(op, input, output)
  1730  	return
  1731  }
  1732  
  1733  // DescribePrincipalMapping API operation for AWSKendraFrontendService.
  1734  //
  1735  // Describes the processing of PUT and DELETE actions for mapping users to their
  1736  // groups. This includes information on the status of actions currently processing
  1737  // or yet to be processed, when actions were last updated, when actions were
  1738  // received by Amazon Kendra, the latest action that should process and apply
  1739  // after other actions, and useful error messages if an action could not be
  1740  // processed.
  1741  //
  1742  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1743  // with awserr.Error's Code and Message methods to get detailed information about
  1744  // the error.
  1745  //
  1746  // See the AWS API reference guide for AWSKendraFrontendService's
  1747  // API operation DescribePrincipalMapping for usage and error information.
  1748  //
  1749  // Returned Error Types:
  1750  //   * ValidationException
  1751  //
  1752  //   * ResourceNotFoundException
  1753  //
  1754  //   * ThrottlingException
  1755  //
  1756  //   * AccessDeniedException
  1757  //
  1758  //   * InternalServerException
  1759  //
  1760  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribePrincipalMapping
  1761  func (c *Kendra) DescribePrincipalMapping(input *DescribePrincipalMappingInput) (*DescribePrincipalMappingOutput, error) {
  1762  	req, out := c.DescribePrincipalMappingRequest(input)
  1763  	return out, req.Send()
  1764  }
  1765  
  1766  // DescribePrincipalMappingWithContext is the same as DescribePrincipalMapping with the addition of
  1767  // the ability to pass a context and additional request options.
  1768  //
  1769  // See DescribePrincipalMapping for details on how to use this API operation.
  1770  //
  1771  // The context must be non-nil and will be used for request cancellation. If
  1772  // the context is nil a panic will occur. In the future the SDK may create
  1773  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1774  // for more information on using Contexts.
  1775  func (c *Kendra) DescribePrincipalMappingWithContext(ctx aws.Context, input *DescribePrincipalMappingInput, opts ...request.Option) (*DescribePrincipalMappingOutput, error) {
  1776  	req, out := c.DescribePrincipalMappingRequest(input)
  1777  	req.SetContext(ctx)
  1778  	req.ApplyOptions(opts...)
  1779  	return out, req.Send()
  1780  }
  1781  
  1782  const opDescribeQuerySuggestionsBlockList = "DescribeQuerySuggestionsBlockList"
  1783  
  1784  // DescribeQuerySuggestionsBlockListRequest generates a "aws/request.Request" representing the
  1785  // client's request for the DescribeQuerySuggestionsBlockList operation. The "output" return
  1786  // value will be populated with the request's response once the request completes
  1787  // successfully.
  1788  //
  1789  // Use "Send" method on the returned Request to send the API call to the service.
  1790  // the "output" return value is not valid until after Send returns without error.
  1791  //
  1792  // See DescribeQuerySuggestionsBlockList for more information on using the DescribeQuerySuggestionsBlockList
  1793  // API call, and error handling.
  1794  //
  1795  // This method is useful when you want to inject custom logic or configuration
  1796  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1797  //
  1798  //
  1799  //    // Example sending a request using the DescribeQuerySuggestionsBlockListRequest method.
  1800  //    req, resp := client.DescribeQuerySuggestionsBlockListRequest(params)
  1801  //
  1802  //    err := req.Send()
  1803  //    if err == nil { // resp is now filled
  1804  //        fmt.Println(resp)
  1805  //    }
  1806  //
  1807  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeQuerySuggestionsBlockList
  1808  func (c *Kendra) DescribeQuerySuggestionsBlockListRequest(input *DescribeQuerySuggestionsBlockListInput) (req *request.Request, output *DescribeQuerySuggestionsBlockListOutput) {
  1809  	op := &request.Operation{
  1810  		Name:       opDescribeQuerySuggestionsBlockList,
  1811  		HTTPMethod: "POST",
  1812  		HTTPPath:   "/",
  1813  	}
  1814  
  1815  	if input == nil {
  1816  		input = &DescribeQuerySuggestionsBlockListInput{}
  1817  	}
  1818  
  1819  	output = &DescribeQuerySuggestionsBlockListOutput{}
  1820  	req = c.newRequest(op, input, output)
  1821  	return
  1822  }
  1823  
  1824  // DescribeQuerySuggestionsBlockList API operation for AWSKendraFrontendService.
  1825  //
  1826  // Describes a block list used for query suggestions for an index.
  1827  //
  1828  // This is used to check the current settings that are applied to a block list.
  1829  //
  1830  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1831  // with awserr.Error's Code and Message methods to get detailed information about
  1832  // the error.
  1833  //
  1834  // See the AWS API reference guide for AWSKendraFrontendService's
  1835  // API operation DescribeQuerySuggestionsBlockList for usage and error information.
  1836  //
  1837  // Returned Error Types:
  1838  //   * ValidationException
  1839  //
  1840  //   * ResourceNotFoundException
  1841  //
  1842  //   * ThrottlingException
  1843  //
  1844  //   * AccessDeniedException
  1845  //
  1846  //   * InternalServerException
  1847  //
  1848  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeQuerySuggestionsBlockList
  1849  func (c *Kendra) DescribeQuerySuggestionsBlockList(input *DescribeQuerySuggestionsBlockListInput) (*DescribeQuerySuggestionsBlockListOutput, error) {
  1850  	req, out := c.DescribeQuerySuggestionsBlockListRequest(input)
  1851  	return out, req.Send()
  1852  }
  1853  
  1854  // DescribeQuerySuggestionsBlockListWithContext is the same as DescribeQuerySuggestionsBlockList with the addition of
  1855  // the ability to pass a context and additional request options.
  1856  //
  1857  // See DescribeQuerySuggestionsBlockList for details on how to use this API operation.
  1858  //
  1859  // The context must be non-nil and will be used for request cancellation. If
  1860  // the context is nil a panic will occur. In the future the SDK may create
  1861  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1862  // for more information on using Contexts.
  1863  func (c *Kendra) DescribeQuerySuggestionsBlockListWithContext(ctx aws.Context, input *DescribeQuerySuggestionsBlockListInput, opts ...request.Option) (*DescribeQuerySuggestionsBlockListOutput, error) {
  1864  	req, out := c.DescribeQuerySuggestionsBlockListRequest(input)
  1865  	req.SetContext(ctx)
  1866  	req.ApplyOptions(opts...)
  1867  	return out, req.Send()
  1868  }
  1869  
  1870  const opDescribeQuerySuggestionsConfig = "DescribeQuerySuggestionsConfig"
  1871  
  1872  // DescribeQuerySuggestionsConfigRequest generates a "aws/request.Request" representing the
  1873  // client's request for the DescribeQuerySuggestionsConfig operation. The "output" return
  1874  // value will be populated with the request's response once the request completes
  1875  // successfully.
  1876  //
  1877  // Use "Send" method on the returned Request to send the API call to the service.
  1878  // the "output" return value is not valid until after Send returns without error.
  1879  //
  1880  // See DescribeQuerySuggestionsConfig for more information on using the DescribeQuerySuggestionsConfig
  1881  // API call, and error handling.
  1882  //
  1883  // This method is useful when you want to inject custom logic or configuration
  1884  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1885  //
  1886  //
  1887  //    // Example sending a request using the DescribeQuerySuggestionsConfigRequest method.
  1888  //    req, resp := client.DescribeQuerySuggestionsConfigRequest(params)
  1889  //
  1890  //    err := req.Send()
  1891  //    if err == nil { // resp is now filled
  1892  //        fmt.Println(resp)
  1893  //    }
  1894  //
  1895  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeQuerySuggestionsConfig
  1896  func (c *Kendra) DescribeQuerySuggestionsConfigRequest(input *DescribeQuerySuggestionsConfigInput) (req *request.Request, output *DescribeQuerySuggestionsConfigOutput) {
  1897  	op := &request.Operation{
  1898  		Name:       opDescribeQuerySuggestionsConfig,
  1899  		HTTPMethod: "POST",
  1900  		HTTPPath:   "/",
  1901  	}
  1902  
  1903  	if input == nil {
  1904  		input = &DescribeQuerySuggestionsConfigInput{}
  1905  	}
  1906  
  1907  	output = &DescribeQuerySuggestionsConfigOutput{}
  1908  	req = c.newRequest(op, input, output)
  1909  	return
  1910  }
  1911  
  1912  // DescribeQuerySuggestionsConfig API operation for AWSKendraFrontendService.
  1913  //
  1914  // Describes the settings of query suggestions for an index.
  1915  //
  1916  // This is used to check the current settings applied to query suggestions.
  1917  //
  1918  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1919  // with awserr.Error's Code and Message methods to get detailed information about
  1920  // the error.
  1921  //
  1922  // See the AWS API reference guide for AWSKendraFrontendService's
  1923  // API operation DescribeQuerySuggestionsConfig for usage and error information.
  1924  //
  1925  // Returned Error Types:
  1926  //   * ValidationException
  1927  //
  1928  //   * ResourceNotFoundException
  1929  //
  1930  //   * ThrottlingException
  1931  //
  1932  //   * AccessDeniedException
  1933  //
  1934  //   * InternalServerException
  1935  //
  1936  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeQuerySuggestionsConfig
  1937  func (c *Kendra) DescribeQuerySuggestionsConfig(input *DescribeQuerySuggestionsConfigInput) (*DescribeQuerySuggestionsConfigOutput, error) {
  1938  	req, out := c.DescribeQuerySuggestionsConfigRequest(input)
  1939  	return out, req.Send()
  1940  }
  1941  
  1942  // DescribeQuerySuggestionsConfigWithContext is the same as DescribeQuerySuggestionsConfig with the addition of
  1943  // the ability to pass a context and additional request options.
  1944  //
  1945  // See DescribeQuerySuggestionsConfig for details on how to use this API operation.
  1946  //
  1947  // The context must be non-nil and will be used for request cancellation. If
  1948  // the context is nil a panic will occur. In the future the SDK may create
  1949  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1950  // for more information on using Contexts.
  1951  func (c *Kendra) DescribeQuerySuggestionsConfigWithContext(ctx aws.Context, input *DescribeQuerySuggestionsConfigInput, opts ...request.Option) (*DescribeQuerySuggestionsConfigOutput, error) {
  1952  	req, out := c.DescribeQuerySuggestionsConfigRequest(input)
  1953  	req.SetContext(ctx)
  1954  	req.ApplyOptions(opts...)
  1955  	return out, req.Send()
  1956  }
  1957  
  1958  const opDescribeThesaurus = "DescribeThesaurus"
  1959  
  1960  // DescribeThesaurusRequest generates a "aws/request.Request" representing the
  1961  // client's request for the DescribeThesaurus operation. The "output" return
  1962  // value will be populated with the request's response once the request completes
  1963  // successfully.
  1964  //
  1965  // Use "Send" method on the returned Request to send the API call to the service.
  1966  // the "output" return value is not valid until after Send returns without error.
  1967  //
  1968  // See DescribeThesaurus for more information on using the DescribeThesaurus
  1969  // API call, and error handling.
  1970  //
  1971  // This method is useful when you want to inject custom logic or configuration
  1972  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1973  //
  1974  //
  1975  //    // Example sending a request using the DescribeThesaurusRequest method.
  1976  //    req, resp := client.DescribeThesaurusRequest(params)
  1977  //
  1978  //    err := req.Send()
  1979  //    if err == nil { // resp is now filled
  1980  //        fmt.Println(resp)
  1981  //    }
  1982  //
  1983  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeThesaurus
  1984  func (c *Kendra) DescribeThesaurusRequest(input *DescribeThesaurusInput) (req *request.Request, output *DescribeThesaurusOutput) {
  1985  	op := &request.Operation{
  1986  		Name:       opDescribeThesaurus,
  1987  		HTTPMethod: "POST",
  1988  		HTTPPath:   "/",
  1989  	}
  1990  
  1991  	if input == nil {
  1992  		input = &DescribeThesaurusInput{}
  1993  	}
  1994  
  1995  	output = &DescribeThesaurusOutput{}
  1996  	req = c.newRequest(op, input, output)
  1997  	return
  1998  }
  1999  
  2000  // DescribeThesaurus API operation for AWSKendraFrontendService.
  2001  //
  2002  // Describes an existing Amazon Kendra thesaurus.
  2003  //
  2004  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2005  // with awserr.Error's Code and Message methods to get detailed information about
  2006  // the error.
  2007  //
  2008  // See the AWS API reference guide for AWSKendraFrontendService's
  2009  // API operation DescribeThesaurus for usage and error information.
  2010  //
  2011  // Returned Error Types:
  2012  //   * ValidationException
  2013  //
  2014  //   * ResourceNotFoundException
  2015  //
  2016  //   * ThrottlingException
  2017  //
  2018  //   * AccessDeniedException
  2019  //
  2020  //   * InternalServerException
  2021  //
  2022  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/DescribeThesaurus
  2023  func (c *Kendra) DescribeThesaurus(input *DescribeThesaurusInput) (*DescribeThesaurusOutput, error) {
  2024  	req, out := c.DescribeThesaurusRequest(input)
  2025  	return out, req.Send()
  2026  }
  2027  
  2028  // DescribeThesaurusWithContext is the same as DescribeThesaurus with the addition of
  2029  // the ability to pass a context and additional request options.
  2030  //
  2031  // See DescribeThesaurus for details on how to use this API operation.
  2032  //
  2033  // The context must be non-nil and will be used for request cancellation. If
  2034  // the context is nil a panic will occur. In the future the SDK may create
  2035  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2036  // for more information on using Contexts.
  2037  func (c *Kendra) DescribeThesaurusWithContext(ctx aws.Context, input *DescribeThesaurusInput, opts ...request.Option) (*DescribeThesaurusOutput, error) {
  2038  	req, out := c.DescribeThesaurusRequest(input)
  2039  	req.SetContext(ctx)
  2040  	req.ApplyOptions(opts...)
  2041  	return out, req.Send()
  2042  }
  2043  
  2044  const opGetQuerySuggestions = "GetQuerySuggestions"
  2045  
  2046  // GetQuerySuggestionsRequest generates a "aws/request.Request" representing the
  2047  // client's request for the GetQuerySuggestions operation. The "output" return
  2048  // value will be populated with the request's response once the request completes
  2049  // successfully.
  2050  //
  2051  // Use "Send" method on the returned Request to send the API call to the service.
  2052  // the "output" return value is not valid until after Send returns without error.
  2053  //
  2054  // See GetQuerySuggestions for more information on using the GetQuerySuggestions
  2055  // API call, and error handling.
  2056  //
  2057  // This method is useful when you want to inject custom logic or configuration
  2058  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2059  //
  2060  //
  2061  //    // Example sending a request using the GetQuerySuggestionsRequest method.
  2062  //    req, resp := client.GetQuerySuggestionsRequest(params)
  2063  //
  2064  //    err := req.Send()
  2065  //    if err == nil { // resp is now filled
  2066  //        fmt.Println(resp)
  2067  //    }
  2068  //
  2069  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/GetQuerySuggestions
  2070  func (c *Kendra) GetQuerySuggestionsRequest(input *GetQuerySuggestionsInput) (req *request.Request, output *GetQuerySuggestionsOutput) {
  2071  	op := &request.Operation{
  2072  		Name:       opGetQuerySuggestions,
  2073  		HTTPMethod: "POST",
  2074  		HTTPPath:   "/",
  2075  	}
  2076  
  2077  	if input == nil {
  2078  		input = &GetQuerySuggestionsInput{}
  2079  	}
  2080  
  2081  	output = &GetQuerySuggestionsOutput{}
  2082  	req = c.newRequest(op, input, output)
  2083  	return
  2084  }
  2085  
  2086  // GetQuerySuggestions API operation for AWSKendraFrontendService.
  2087  //
  2088  // Fetches the queries that are suggested to your users.
  2089  //
  2090  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2091  // with awserr.Error's Code and Message methods to get detailed information about
  2092  // the error.
  2093  //
  2094  // See the AWS API reference guide for AWSKendraFrontendService's
  2095  // API operation GetQuerySuggestions for usage and error information.
  2096  //
  2097  // Returned Error Types:
  2098  //   * ValidationException
  2099  //
  2100  //   * ResourceNotFoundException
  2101  //
  2102  //   * ThrottlingException
  2103  //
  2104  //   * AccessDeniedException
  2105  //
  2106  //   * ServiceQuotaExceededException
  2107  //
  2108  //   * ConflictException
  2109  //
  2110  //   * InternalServerException
  2111  //
  2112  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/GetQuerySuggestions
  2113  func (c *Kendra) GetQuerySuggestions(input *GetQuerySuggestionsInput) (*GetQuerySuggestionsOutput, error) {
  2114  	req, out := c.GetQuerySuggestionsRequest(input)
  2115  	return out, req.Send()
  2116  }
  2117  
  2118  // GetQuerySuggestionsWithContext is the same as GetQuerySuggestions with the addition of
  2119  // the ability to pass a context and additional request options.
  2120  //
  2121  // See GetQuerySuggestions for details on how to use this API operation.
  2122  //
  2123  // The context must be non-nil and will be used for request cancellation. If
  2124  // the context is nil a panic will occur. In the future the SDK may create
  2125  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2126  // for more information on using Contexts.
  2127  func (c *Kendra) GetQuerySuggestionsWithContext(ctx aws.Context, input *GetQuerySuggestionsInput, opts ...request.Option) (*GetQuerySuggestionsOutput, error) {
  2128  	req, out := c.GetQuerySuggestionsRequest(input)
  2129  	req.SetContext(ctx)
  2130  	req.ApplyOptions(opts...)
  2131  	return out, req.Send()
  2132  }
  2133  
  2134  const opListDataSourceSyncJobs = "ListDataSourceSyncJobs"
  2135  
  2136  // ListDataSourceSyncJobsRequest generates a "aws/request.Request" representing the
  2137  // client's request for the ListDataSourceSyncJobs operation. The "output" return
  2138  // value will be populated with the request's response once the request completes
  2139  // successfully.
  2140  //
  2141  // Use "Send" method on the returned Request to send the API call to the service.
  2142  // the "output" return value is not valid until after Send returns without error.
  2143  //
  2144  // See ListDataSourceSyncJobs for more information on using the ListDataSourceSyncJobs
  2145  // API call, and error handling.
  2146  //
  2147  // This method is useful when you want to inject custom logic or configuration
  2148  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2149  //
  2150  //
  2151  //    // Example sending a request using the ListDataSourceSyncJobsRequest method.
  2152  //    req, resp := client.ListDataSourceSyncJobsRequest(params)
  2153  //
  2154  //    err := req.Send()
  2155  //    if err == nil { // resp is now filled
  2156  //        fmt.Println(resp)
  2157  //    }
  2158  //
  2159  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListDataSourceSyncJobs
  2160  func (c *Kendra) ListDataSourceSyncJobsRequest(input *ListDataSourceSyncJobsInput) (req *request.Request, output *ListDataSourceSyncJobsOutput) {
  2161  	op := &request.Operation{
  2162  		Name:       opListDataSourceSyncJobs,
  2163  		HTTPMethod: "POST",
  2164  		HTTPPath:   "/",
  2165  		Paginator: &request.Paginator{
  2166  			InputTokens:     []string{"NextToken"},
  2167  			OutputTokens:    []string{"NextToken"},
  2168  			LimitToken:      "MaxResults",
  2169  			TruncationToken: "",
  2170  		},
  2171  	}
  2172  
  2173  	if input == nil {
  2174  		input = &ListDataSourceSyncJobsInput{}
  2175  	}
  2176  
  2177  	output = &ListDataSourceSyncJobsOutput{}
  2178  	req = c.newRequest(op, input, output)
  2179  	return
  2180  }
  2181  
  2182  // ListDataSourceSyncJobs API operation for AWSKendraFrontendService.
  2183  //
  2184  // Gets statistics about synchronizing Amazon Kendra with a data source.
  2185  //
  2186  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2187  // with awserr.Error's Code and Message methods to get detailed information about
  2188  // the error.
  2189  //
  2190  // See the AWS API reference guide for AWSKendraFrontendService's
  2191  // API operation ListDataSourceSyncJobs for usage and error information.
  2192  //
  2193  // Returned Error Types:
  2194  //   * ValidationException
  2195  //
  2196  //   * ResourceNotFoundException
  2197  //
  2198  //   * ThrottlingException
  2199  //
  2200  //   * AccessDeniedException
  2201  //
  2202  //   * ConflictException
  2203  //
  2204  //   * InternalServerException
  2205  //
  2206  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListDataSourceSyncJobs
  2207  func (c *Kendra) ListDataSourceSyncJobs(input *ListDataSourceSyncJobsInput) (*ListDataSourceSyncJobsOutput, error) {
  2208  	req, out := c.ListDataSourceSyncJobsRequest(input)
  2209  	return out, req.Send()
  2210  }
  2211  
  2212  // ListDataSourceSyncJobsWithContext is the same as ListDataSourceSyncJobs with the addition of
  2213  // the ability to pass a context and additional request options.
  2214  //
  2215  // See ListDataSourceSyncJobs for details on how to use this API operation.
  2216  //
  2217  // The context must be non-nil and will be used for request cancellation. If
  2218  // the context is nil a panic will occur. In the future the SDK may create
  2219  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2220  // for more information on using Contexts.
  2221  func (c *Kendra) ListDataSourceSyncJobsWithContext(ctx aws.Context, input *ListDataSourceSyncJobsInput, opts ...request.Option) (*ListDataSourceSyncJobsOutput, error) {
  2222  	req, out := c.ListDataSourceSyncJobsRequest(input)
  2223  	req.SetContext(ctx)
  2224  	req.ApplyOptions(opts...)
  2225  	return out, req.Send()
  2226  }
  2227  
  2228  // ListDataSourceSyncJobsPages iterates over the pages of a ListDataSourceSyncJobs operation,
  2229  // calling the "fn" function with the response data for each page. To stop
  2230  // iterating, return false from the fn function.
  2231  //
  2232  // See ListDataSourceSyncJobs method for more information on how to use this operation.
  2233  //
  2234  // Note: This operation can generate multiple requests to a service.
  2235  //
  2236  //    // Example iterating over at most 3 pages of a ListDataSourceSyncJobs operation.
  2237  //    pageNum := 0
  2238  //    err := client.ListDataSourceSyncJobsPages(params,
  2239  //        func(page *kendra.ListDataSourceSyncJobsOutput, lastPage bool) bool {
  2240  //            pageNum++
  2241  //            fmt.Println(page)
  2242  //            return pageNum <= 3
  2243  //        })
  2244  //
  2245  func (c *Kendra) ListDataSourceSyncJobsPages(input *ListDataSourceSyncJobsInput, fn func(*ListDataSourceSyncJobsOutput, bool) bool) error {
  2246  	return c.ListDataSourceSyncJobsPagesWithContext(aws.BackgroundContext(), input, fn)
  2247  }
  2248  
  2249  // ListDataSourceSyncJobsPagesWithContext same as ListDataSourceSyncJobsPages except
  2250  // it takes a Context and allows setting request options on the pages.
  2251  //
  2252  // The context must be non-nil and will be used for request cancellation. If
  2253  // the context is nil a panic will occur. In the future the SDK may create
  2254  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2255  // for more information on using Contexts.
  2256  func (c *Kendra) ListDataSourceSyncJobsPagesWithContext(ctx aws.Context, input *ListDataSourceSyncJobsInput, fn func(*ListDataSourceSyncJobsOutput, bool) bool, opts ...request.Option) error {
  2257  	p := request.Pagination{
  2258  		NewRequest: func() (*request.Request, error) {
  2259  			var inCpy *ListDataSourceSyncJobsInput
  2260  			if input != nil {
  2261  				tmp := *input
  2262  				inCpy = &tmp
  2263  			}
  2264  			req, _ := c.ListDataSourceSyncJobsRequest(inCpy)
  2265  			req.SetContext(ctx)
  2266  			req.ApplyOptions(opts...)
  2267  			return req, nil
  2268  		},
  2269  	}
  2270  
  2271  	for p.Next() {
  2272  		if !fn(p.Page().(*ListDataSourceSyncJobsOutput), !p.HasNextPage()) {
  2273  			break
  2274  		}
  2275  	}
  2276  
  2277  	return p.Err()
  2278  }
  2279  
  2280  const opListDataSources = "ListDataSources"
  2281  
  2282  // ListDataSourcesRequest generates a "aws/request.Request" representing the
  2283  // client's request for the ListDataSources operation. The "output" return
  2284  // value will be populated with the request's response once the request completes
  2285  // successfully.
  2286  //
  2287  // Use "Send" method on the returned Request to send the API call to the service.
  2288  // the "output" return value is not valid until after Send returns without error.
  2289  //
  2290  // See ListDataSources for more information on using the ListDataSources
  2291  // API call, and error handling.
  2292  //
  2293  // This method is useful when you want to inject custom logic or configuration
  2294  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2295  //
  2296  //
  2297  //    // Example sending a request using the ListDataSourcesRequest method.
  2298  //    req, resp := client.ListDataSourcesRequest(params)
  2299  //
  2300  //    err := req.Send()
  2301  //    if err == nil { // resp is now filled
  2302  //        fmt.Println(resp)
  2303  //    }
  2304  //
  2305  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListDataSources
  2306  func (c *Kendra) ListDataSourcesRequest(input *ListDataSourcesInput) (req *request.Request, output *ListDataSourcesOutput) {
  2307  	op := &request.Operation{
  2308  		Name:       opListDataSources,
  2309  		HTTPMethod: "POST",
  2310  		HTTPPath:   "/",
  2311  		Paginator: &request.Paginator{
  2312  			InputTokens:     []string{"NextToken"},
  2313  			OutputTokens:    []string{"NextToken"},
  2314  			LimitToken:      "MaxResults",
  2315  			TruncationToken: "",
  2316  		},
  2317  	}
  2318  
  2319  	if input == nil {
  2320  		input = &ListDataSourcesInput{}
  2321  	}
  2322  
  2323  	output = &ListDataSourcesOutput{}
  2324  	req = c.newRequest(op, input, output)
  2325  	return
  2326  }
  2327  
  2328  // ListDataSources API operation for AWSKendraFrontendService.
  2329  //
  2330  // Lists the data sources that you have created.
  2331  //
  2332  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2333  // with awserr.Error's Code and Message methods to get detailed information about
  2334  // the error.
  2335  //
  2336  // See the AWS API reference guide for AWSKendraFrontendService's
  2337  // API operation ListDataSources for usage and error information.
  2338  //
  2339  // Returned Error Types:
  2340  //   * ValidationException
  2341  //
  2342  //   * ResourceNotFoundException
  2343  //
  2344  //   * AccessDeniedException
  2345  //
  2346  //   * ThrottlingException
  2347  //
  2348  //   * InternalServerException
  2349  //
  2350  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListDataSources
  2351  func (c *Kendra) ListDataSources(input *ListDataSourcesInput) (*ListDataSourcesOutput, error) {
  2352  	req, out := c.ListDataSourcesRequest(input)
  2353  	return out, req.Send()
  2354  }
  2355  
  2356  // ListDataSourcesWithContext is the same as ListDataSources with the addition of
  2357  // the ability to pass a context and additional request options.
  2358  //
  2359  // See ListDataSources for details on how to use this API operation.
  2360  //
  2361  // The context must be non-nil and will be used for request cancellation. If
  2362  // the context is nil a panic will occur. In the future the SDK may create
  2363  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2364  // for more information on using Contexts.
  2365  func (c *Kendra) ListDataSourcesWithContext(ctx aws.Context, input *ListDataSourcesInput, opts ...request.Option) (*ListDataSourcesOutput, error) {
  2366  	req, out := c.ListDataSourcesRequest(input)
  2367  	req.SetContext(ctx)
  2368  	req.ApplyOptions(opts...)
  2369  	return out, req.Send()
  2370  }
  2371  
  2372  // ListDataSourcesPages iterates over the pages of a ListDataSources operation,
  2373  // calling the "fn" function with the response data for each page. To stop
  2374  // iterating, return false from the fn function.
  2375  //
  2376  // See ListDataSources method for more information on how to use this operation.
  2377  //
  2378  // Note: This operation can generate multiple requests to a service.
  2379  //
  2380  //    // Example iterating over at most 3 pages of a ListDataSources operation.
  2381  //    pageNum := 0
  2382  //    err := client.ListDataSourcesPages(params,
  2383  //        func(page *kendra.ListDataSourcesOutput, lastPage bool) bool {
  2384  //            pageNum++
  2385  //            fmt.Println(page)
  2386  //            return pageNum <= 3
  2387  //        })
  2388  //
  2389  func (c *Kendra) ListDataSourcesPages(input *ListDataSourcesInput, fn func(*ListDataSourcesOutput, bool) bool) error {
  2390  	return c.ListDataSourcesPagesWithContext(aws.BackgroundContext(), input, fn)
  2391  }
  2392  
  2393  // ListDataSourcesPagesWithContext same as ListDataSourcesPages except
  2394  // it takes a Context and allows setting request options on the pages.
  2395  //
  2396  // The context must be non-nil and will be used for request cancellation. If
  2397  // the context is nil a panic will occur. In the future the SDK may create
  2398  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2399  // for more information on using Contexts.
  2400  func (c *Kendra) ListDataSourcesPagesWithContext(ctx aws.Context, input *ListDataSourcesInput, fn func(*ListDataSourcesOutput, bool) bool, opts ...request.Option) error {
  2401  	p := request.Pagination{
  2402  		NewRequest: func() (*request.Request, error) {
  2403  			var inCpy *ListDataSourcesInput
  2404  			if input != nil {
  2405  				tmp := *input
  2406  				inCpy = &tmp
  2407  			}
  2408  			req, _ := c.ListDataSourcesRequest(inCpy)
  2409  			req.SetContext(ctx)
  2410  			req.ApplyOptions(opts...)
  2411  			return req, nil
  2412  		},
  2413  	}
  2414  
  2415  	for p.Next() {
  2416  		if !fn(p.Page().(*ListDataSourcesOutput), !p.HasNextPage()) {
  2417  			break
  2418  		}
  2419  	}
  2420  
  2421  	return p.Err()
  2422  }
  2423  
  2424  const opListFaqs = "ListFaqs"
  2425  
  2426  // ListFaqsRequest generates a "aws/request.Request" representing the
  2427  // client's request for the ListFaqs operation. The "output" return
  2428  // value will be populated with the request's response once the request completes
  2429  // successfully.
  2430  //
  2431  // Use "Send" method on the returned Request to send the API call to the service.
  2432  // the "output" return value is not valid until after Send returns without error.
  2433  //
  2434  // See ListFaqs for more information on using the ListFaqs
  2435  // API call, and error handling.
  2436  //
  2437  // This method is useful when you want to inject custom logic or configuration
  2438  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2439  //
  2440  //
  2441  //    // Example sending a request using the ListFaqsRequest method.
  2442  //    req, resp := client.ListFaqsRequest(params)
  2443  //
  2444  //    err := req.Send()
  2445  //    if err == nil { // resp is now filled
  2446  //        fmt.Println(resp)
  2447  //    }
  2448  //
  2449  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListFaqs
  2450  func (c *Kendra) ListFaqsRequest(input *ListFaqsInput) (req *request.Request, output *ListFaqsOutput) {
  2451  	op := &request.Operation{
  2452  		Name:       opListFaqs,
  2453  		HTTPMethod: "POST",
  2454  		HTTPPath:   "/",
  2455  	}
  2456  
  2457  	if input == nil {
  2458  		input = &ListFaqsInput{}
  2459  	}
  2460  
  2461  	output = &ListFaqsOutput{}
  2462  	req = c.newRequest(op, input, output)
  2463  	return
  2464  }
  2465  
  2466  // ListFaqs API operation for AWSKendraFrontendService.
  2467  //
  2468  // Gets a list of FAQ lists associated with an index.
  2469  //
  2470  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2471  // with awserr.Error's Code and Message methods to get detailed information about
  2472  // the error.
  2473  //
  2474  // See the AWS API reference guide for AWSKendraFrontendService's
  2475  // API operation ListFaqs for usage and error information.
  2476  //
  2477  // Returned Error Types:
  2478  //   * ValidationException
  2479  //
  2480  //   * ResourceNotFoundException
  2481  //
  2482  //   * ThrottlingException
  2483  //
  2484  //   * AccessDeniedException
  2485  //
  2486  //   * InternalServerException
  2487  //
  2488  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListFaqs
  2489  func (c *Kendra) ListFaqs(input *ListFaqsInput) (*ListFaqsOutput, error) {
  2490  	req, out := c.ListFaqsRequest(input)
  2491  	return out, req.Send()
  2492  }
  2493  
  2494  // ListFaqsWithContext is the same as ListFaqs with the addition of
  2495  // the ability to pass a context and additional request options.
  2496  //
  2497  // See ListFaqs for details on how to use this API operation.
  2498  //
  2499  // The context must be non-nil and will be used for request cancellation. If
  2500  // the context is nil a panic will occur. In the future the SDK may create
  2501  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2502  // for more information on using Contexts.
  2503  func (c *Kendra) ListFaqsWithContext(ctx aws.Context, input *ListFaqsInput, opts ...request.Option) (*ListFaqsOutput, error) {
  2504  	req, out := c.ListFaqsRequest(input)
  2505  	req.SetContext(ctx)
  2506  	req.ApplyOptions(opts...)
  2507  	return out, req.Send()
  2508  }
  2509  
  2510  const opListGroupsOlderThanOrderingId = "ListGroupsOlderThanOrderingId"
  2511  
  2512  // ListGroupsOlderThanOrderingIdRequest generates a "aws/request.Request" representing the
  2513  // client's request for the ListGroupsOlderThanOrderingId operation. The "output" return
  2514  // value will be populated with the request's response once the request completes
  2515  // successfully.
  2516  //
  2517  // Use "Send" method on the returned Request to send the API call to the service.
  2518  // the "output" return value is not valid until after Send returns without error.
  2519  //
  2520  // See ListGroupsOlderThanOrderingId for more information on using the ListGroupsOlderThanOrderingId
  2521  // API call, and error handling.
  2522  //
  2523  // This method is useful when you want to inject custom logic or configuration
  2524  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2525  //
  2526  //
  2527  //    // Example sending a request using the ListGroupsOlderThanOrderingIdRequest method.
  2528  //    req, resp := client.ListGroupsOlderThanOrderingIdRequest(params)
  2529  //
  2530  //    err := req.Send()
  2531  //    if err == nil { // resp is now filled
  2532  //        fmt.Println(resp)
  2533  //    }
  2534  //
  2535  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListGroupsOlderThanOrderingId
  2536  func (c *Kendra) ListGroupsOlderThanOrderingIdRequest(input *ListGroupsOlderThanOrderingIdInput) (req *request.Request, output *ListGroupsOlderThanOrderingIdOutput) {
  2537  	op := &request.Operation{
  2538  		Name:       opListGroupsOlderThanOrderingId,
  2539  		HTTPMethod: "POST",
  2540  		HTTPPath:   "/",
  2541  	}
  2542  
  2543  	if input == nil {
  2544  		input = &ListGroupsOlderThanOrderingIdInput{}
  2545  	}
  2546  
  2547  	output = &ListGroupsOlderThanOrderingIdOutput{}
  2548  	req = c.newRequest(op, input, output)
  2549  	return
  2550  }
  2551  
  2552  // ListGroupsOlderThanOrderingId API operation for AWSKendraFrontendService.
  2553  //
  2554  // Provides a list of groups that are mapped to users before a given ordering
  2555  // or timestamp identifier.
  2556  //
  2557  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2558  // with awserr.Error's Code and Message methods to get detailed information about
  2559  // the error.
  2560  //
  2561  // See the AWS API reference guide for AWSKendraFrontendService's
  2562  // API operation ListGroupsOlderThanOrderingId for usage and error information.
  2563  //
  2564  // Returned Error Types:
  2565  //   * ValidationException
  2566  //
  2567  //   * ResourceNotFoundException
  2568  //
  2569  //   * AccessDeniedException
  2570  //
  2571  //   * ThrottlingException
  2572  //
  2573  //   * ConflictException
  2574  //
  2575  //   * InternalServerException
  2576  //
  2577  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListGroupsOlderThanOrderingId
  2578  func (c *Kendra) ListGroupsOlderThanOrderingId(input *ListGroupsOlderThanOrderingIdInput) (*ListGroupsOlderThanOrderingIdOutput, error) {
  2579  	req, out := c.ListGroupsOlderThanOrderingIdRequest(input)
  2580  	return out, req.Send()
  2581  }
  2582  
  2583  // ListGroupsOlderThanOrderingIdWithContext is the same as ListGroupsOlderThanOrderingId with the addition of
  2584  // the ability to pass a context and additional request options.
  2585  //
  2586  // See ListGroupsOlderThanOrderingId for details on how to use this API operation.
  2587  //
  2588  // The context must be non-nil and will be used for request cancellation. If
  2589  // the context is nil a panic will occur. In the future the SDK may create
  2590  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2591  // for more information on using Contexts.
  2592  func (c *Kendra) ListGroupsOlderThanOrderingIdWithContext(ctx aws.Context, input *ListGroupsOlderThanOrderingIdInput, opts ...request.Option) (*ListGroupsOlderThanOrderingIdOutput, error) {
  2593  	req, out := c.ListGroupsOlderThanOrderingIdRequest(input)
  2594  	req.SetContext(ctx)
  2595  	req.ApplyOptions(opts...)
  2596  	return out, req.Send()
  2597  }
  2598  
  2599  const opListIndices = "ListIndices"
  2600  
  2601  // ListIndicesRequest generates a "aws/request.Request" representing the
  2602  // client's request for the ListIndices operation. The "output" return
  2603  // value will be populated with the request's response once the request completes
  2604  // successfully.
  2605  //
  2606  // Use "Send" method on the returned Request to send the API call to the service.
  2607  // the "output" return value is not valid until after Send returns without error.
  2608  //
  2609  // See ListIndices for more information on using the ListIndices
  2610  // API call, and error handling.
  2611  //
  2612  // This method is useful when you want to inject custom logic or configuration
  2613  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2614  //
  2615  //
  2616  //    // Example sending a request using the ListIndicesRequest method.
  2617  //    req, resp := client.ListIndicesRequest(params)
  2618  //
  2619  //    err := req.Send()
  2620  //    if err == nil { // resp is now filled
  2621  //        fmt.Println(resp)
  2622  //    }
  2623  //
  2624  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListIndices
  2625  func (c *Kendra) ListIndicesRequest(input *ListIndicesInput) (req *request.Request, output *ListIndicesOutput) {
  2626  	op := &request.Operation{
  2627  		Name:       opListIndices,
  2628  		HTTPMethod: "POST",
  2629  		HTTPPath:   "/",
  2630  		Paginator: &request.Paginator{
  2631  			InputTokens:     []string{"NextToken"},
  2632  			OutputTokens:    []string{"NextToken"},
  2633  			LimitToken:      "MaxResults",
  2634  			TruncationToken: "",
  2635  		},
  2636  	}
  2637  
  2638  	if input == nil {
  2639  		input = &ListIndicesInput{}
  2640  	}
  2641  
  2642  	output = &ListIndicesOutput{}
  2643  	req = c.newRequest(op, input, output)
  2644  	return
  2645  }
  2646  
  2647  // ListIndices API operation for AWSKendraFrontendService.
  2648  //
  2649  // Lists the Amazon Kendra indexes that you have created.
  2650  //
  2651  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2652  // with awserr.Error's Code and Message methods to get detailed information about
  2653  // the error.
  2654  //
  2655  // See the AWS API reference guide for AWSKendraFrontendService's
  2656  // API operation ListIndices for usage and error information.
  2657  //
  2658  // Returned Error Types:
  2659  //   * ValidationException
  2660  //
  2661  //   * ThrottlingException
  2662  //
  2663  //   * AccessDeniedException
  2664  //
  2665  //   * InternalServerException
  2666  //
  2667  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListIndices
  2668  func (c *Kendra) ListIndices(input *ListIndicesInput) (*ListIndicesOutput, error) {
  2669  	req, out := c.ListIndicesRequest(input)
  2670  	return out, req.Send()
  2671  }
  2672  
  2673  // ListIndicesWithContext is the same as ListIndices with the addition of
  2674  // the ability to pass a context and additional request options.
  2675  //
  2676  // See ListIndices for details on how to use this API operation.
  2677  //
  2678  // The context must be non-nil and will be used for request cancellation. If
  2679  // the context is nil a panic will occur. In the future the SDK may create
  2680  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2681  // for more information on using Contexts.
  2682  func (c *Kendra) ListIndicesWithContext(ctx aws.Context, input *ListIndicesInput, opts ...request.Option) (*ListIndicesOutput, error) {
  2683  	req, out := c.ListIndicesRequest(input)
  2684  	req.SetContext(ctx)
  2685  	req.ApplyOptions(opts...)
  2686  	return out, req.Send()
  2687  }
  2688  
  2689  // ListIndicesPages iterates over the pages of a ListIndices operation,
  2690  // calling the "fn" function with the response data for each page. To stop
  2691  // iterating, return false from the fn function.
  2692  //
  2693  // See ListIndices method for more information on how to use this operation.
  2694  //
  2695  // Note: This operation can generate multiple requests to a service.
  2696  //
  2697  //    // Example iterating over at most 3 pages of a ListIndices operation.
  2698  //    pageNum := 0
  2699  //    err := client.ListIndicesPages(params,
  2700  //        func(page *kendra.ListIndicesOutput, lastPage bool) bool {
  2701  //            pageNum++
  2702  //            fmt.Println(page)
  2703  //            return pageNum <= 3
  2704  //        })
  2705  //
  2706  func (c *Kendra) ListIndicesPages(input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool) error {
  2707  	return c.ListIndicesPagesWithContext(aws.BackgroundContext(), input, fn)
  2708  }
  2709  
  2710  // ListIndicesPagesWithContext same as ListIndicesPages except
  2711  // it takes a Context and allows setting request options on the pages.
  2712  //
  2713  // The context must be non-nil and will be used for request cancellation. If
  2714  // the context is nil a panic will occur. In the future the SDK may create
  2715  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2716  // for more information on using Contexts.
  2717  func (c *Kendra) ListIndicesPagesWithContext(ctx aws.Context, input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool, opts ...request.Option) error {
  2718  	p := request.Pagination{
  2719  		NewRequest: func() (*request.Request, error) {
  2720  			var inCpy *ListIndicesInput
  2721  			if input != nil {
  2722  				tmp := *input
  2723  				inCpy = &tmp
  2724  			}
  2725  			req, _ := c.ListIndicesRequest(inCpy)
  2726  			req.SetContext(ctx)
  2727  			req.ApplyOptions(opts...)
  2728  			return req, nil
  2729  		},
  2730  	}
  2731  
  2732  	for p.Next() {
  2733  		if !fn(p.Page().(*ListIndicesOutput), !p.HasNextPage()) {
  2734  			break
  2735  		}
  2736  	}
  2737  
  2738  	return p.Err()
  2739  }
  2740  
  2741  const opListQuerySuggestionsBlockLists = "ListQuerySuggestionsBlockLists"
  2742  
  2743  // ListQuerySuggestionsBlockListsRequest generates a "aws/request.Request" representing the
  2744  // client's request for the ListQuerySuggestionsBlockLists operation. The "output" return
  2745  // value will be populated with the request's response once the request completes
  2746  // successfully.
  2747  //
  2748  // Use "Send" method on the returned Request to send the API call to the service.
  2749  // the "output" return value is not valid until after Send returns without error.
  2750  //
  2751  // See ListQuerySuggestionsBlockLists for more information on using the ListQuerySuggestionsBlockLists
  2752  // API call, and error handling.
  2753  //
  2754  // This method is useful when you want to inject custom logic or configuration
  2755  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2756  //
  2757  //
  2758  //    // Example sending a request using the ListQuerySuggestionsBlockListsRequest method.
  2759  //    req, resp := client.ListQuerySuggestionsBlockListsRequest(params)
  2760  //
  2761  //    err := req.Send()
  2762  //    if err == nil { // resp is now filled
  2763  //        fmt.Println(resp)
  2764  //    }
  2765  //
  2766  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListQuerySuggestionsBlockLists
  2767  func (c *Kendra) ListQuerySuggestionsBlockListsRequest(input *ListQuerySuggestionsBlockListsInput) (req *request.Request, output *ListQuerySuggestionsBlockListsOutput) {
  2768  	op := &request.Operation{
  2769  		Name:       opListQuerySuggestionsBlockLists,
  2770  		HTTPMethod: "POST",
  2771  		HTTPPath:   "/",
  2772  	}
  2773  
  2774  	if input == nil {
  2775  		input = &ListQuerySuggestionsBlockListsInput{}
  2776  	}
  2777  
  2778  	output = &ListQuerySuggestionsBlockListsOutput{}
  2779  	req = c.newRequest(op, input, output)
  2780  	return
  2781  }
  2782  
  2783  // ListQuerySuggestionsBlockLists API operation for AWSKendraFrontendService.
  2784  //
  2785  // Lists the block lists used for query suggestions for an index.
  2786  //
  2787  // For information on the current quota limits for block lists, see Quotas for
  2788  // Amazon Kendra (https://docs.aws.amazon.com/kendra/latest/dg/quotas.html).
  2789  //
  2790  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2791  // with awserr.Error's Code and Message methods to get detailed information about
  2792  // the error.
  2793  //
  2794  // See the AWS API reference guide for AWSKendraFrontendService's
  2795  // API operation ListQuerySuggestionsBlockLists for usage and error information.
  2796  //
  2797  // Returned Error Types:
  2798  //   * ValidationException
  2799  //
  2800  //   * ResourceNotFoundException
  2801  //
  2802  //   * ThrottlingException
  2803  //
  2804  //   * AccessDeniedException
  2805  //
  2806  //   * InternalServerException
  2807  //
  2808  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListQuerySuggestionsBlockLists
  2809  func (c *Kendra) ListQuerySuggestionsBlockLists(input *ListQuerySuggestionsBlockListsInput) (*ListQuerySuggestionsBlockListsOutput, error) {
  2810  	req, out := c.ListQuerySuggestionsBlockListsRequest(input)
  2811  	return out, req.Send()
  2812  }
  2813  
  2814  // ListQuerySuggestionsBlockListsWithContext is the same as ListQuerySuggestionsBlockLists with the addition of
  2815  // the ability to pass a context and additional request options.
  2816  //
  2817  // See ListQuerySuggestionsBlockLists for details on how to use this API operation.
  2818  //
  2819  // The context must be non-nil and will be used for request cancellation. If
  2820  // the context is nil a panic will occur. In the future the SDK may create
  2821  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2822  // for more information on using Contexts.
  2823  func (c *Kendra) ListQuerySuggestionsBlockListsWithContext(ctx aws.Context, input *ListQuerySuggestionsBlockListsInput, opts ...request.Option) (*ListQuerySuggestionsBlockListsOutput, error) {
  2824  	req, out := c.ListQuerySuggestionsBlockListsRequest(input)
  2825  	req.SetContext(ctx)
  2826  	req.ApplyOptions(opts...)
  2827  	return out, req.Send()
  2828  }
  2829  
  2830  const opListTagsForResource = "ListTagsForResource"
  2831  
  2832  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  2833  // client's request for the ListTagsForResource operation. The "output" return
  2834  // value will be populated with the request's response once the request completes
  2835  // successfully.
  2836  //
  2837  // Use "Send" method on the returned Request to send the API call to the service.
  2838  // the "output" return value is not valid until after Send returns without error.
  2839  //
  2840  // See ListTagsForResource for more information on using the ListTagsForResource
  2841  // API call, and error handling.
  2842  //
  2843  // This method is useful when you want to inject custom logic or configuration
  2844  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2845  //
  2846  //
  2847  //    // Example sending a request using the ListTagsForResourceRequest method.
  2848  //    req, resp := client.ListTagsForResourceRequest(params)
  2849  //
  2850  //    err := req.Send()
  2851  //    if err == nil { // resp is now filled
  2852  //        fmt.Println(resp)
  2853  //    }
  2854  //
  2855  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListTagsForResource
  2856  func (c *Kendra) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  2857  	op := &request.Operation{
  2858  		Name:       opListTagsForResource,
  2859  		HTTPMethod: "POST",
  2860  		HTTPPath:   "/",
  2861  	}
  2862  
  2863  	if input == nil {
  2864  		input = &ListTagsForResourceInput{}
  2865  	}
  2866  
  2867  	output = &ListTagsForResourceOutput{}
  2868  	req = c.newRequest(op, input, output)
  2869  	return
  2870  }
  2871  
  2872  // ListTagsForResource API operation for AWSKendraFrontendService.
  2873  //
  2874  // Gets a list of tags associated with a specified resource. Indexes, FAQs,
  2875  // and data sources can have tags associated with them.
  2876  //
  2877  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2878  // with awserr.Error's Code and Message methods to get detailed information about
  2879  // the error.
  2880  //
  2881  // See the AWS API reference guide for AWSKendraFrontendService's
  2882  // API operation ListTagsForResource for usage and error information.
  2883  //
  2884  // Returned Error Types:
  2885  //   * ValidationException
  2886  //
  2887  //   * ResourceUnavailableException
  2888  //
  2889  //   * ThrottlingException
  2890  //
  2891  //   * AccessDeniedException
  2892  //
  2893  //   * InternalServerException
  2894  //
  2895  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListTagsForResource
  2896  func (c *Kendra) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  2897  	req, out := c.ListTagsForResourceRequest(input)
  2898  	return out, req.Send()
  2899  }
  2900  
  2901  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  2902  // the ability to pass a context and additional request options.
  2903  //
  2904  // See ListTagsForResource for details on how to use this API operation.
  2905  //
  2906  // The context must be non-nil and will be used for request cancellation. If
  2907  // the context is nil a panic will occur. In the future the SDK may create
  2908  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2909  // for more information on using Contexts.
  2910  func (c *Kendra) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  2911  	req, out := c.ListTagsForResourceRequest(input)
  2912  	req.SetContext(ctx)
  2913  	req.ApplyOptions(opts...)
  2914  	return out, req.Send()
  2915  }
  2916  
  2917  const opListThesauri = "ListThesauri"
  2918  
  2919  // ListThesauriRequest generates a "aws/request.Request" representing the
  2920  // client's request for the ListThesauri operation. The "output" return
  2921  // value will be populated with the request's response once the request completes
  2922  // successfully.
  2923  //
  2924  // Use "Send" method on the returned Request to send the API call to the service.
  2925  // the "output" return value is not valid until after Send returns without error.
  2926  //
  2927  // See ListThesauri for more information on using the ListThesauri
  2928  // API call, and error handling.
  2929  //
  2930  // This method is useful when you want to inject custom logic or configuration
  2931  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2932  //
  2933  //
  2934  //    // Example sending a request using the ListThesauriRequest method.
  2935  //    req, resp := client.ListThesauriRequest(params)
  2936  //
  2937  //    err := req.Send()
  2938  //    if err == nil { // resp is now filled
  2939  //        fmt.Println(resp)
  2940  //    }
  2941  //
  2942  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListThesauri
  2943  func (c *Kendra) ListThesauriRequest(input *ListThesauriInput) (req *request.Request, output *ListThesauriOutput) {
  2944  	op := &request.Operation{
  2945  		Name:       opListThesauri,
  2946  		HTTPMethod: "POST",
  2947  		HTTPPath:   "/",
  2948  	}
  2949  
  2950  	if input == nil {
  2951  		input = &ListThesauriInput{}
  2952  	}
  2953  
  2954  	output = &ListThesauriOutput{}
  2955  	req = c.newRequest(op, input, output)
  2956  	return
  2957  }
  2958  
  2959  // ListThesauri API operation for AWSKendraFrontendService.
  2960  //
  2961  // Lists the Amazon Kendra thesauri associated with an index.
  2962  //
  2963  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2964  // with awserr.Error's Code and Message methods to get detailed information about
  2965  // the error.
  2966  //
  2967  // See the AWS API reference guide for AWSKendraFrontendService's
  2968  // API operation ListThesauri for usage and error information.
  2969  //
  2970  // Returned Error Types:
  2971  //   * ValidationException
  2972  //
  2973  //   * ResourceNotFoundException
  2974  //
  2975  //   * ThrottlingException
  2976  //
  2977  //   * AccessDeniedException
  2978  //
  2979  //   * InternalServerException
  2980  //
  2981  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/ListThesauri
  2982  func (c *Kendra) ListThesauri(input *ListThesauriInput) (*ListThesauriOutput, error) {
  2983  	req, out := c.ListThesauriRequest(input)
  2984  	return out, req.Send()
  2985  }
  2986  
  2987  // ListThesauriWithContext is the same as ListThesauri with the addition of
  2988  // the ability to pass a context and additional request options.
  2989  //
  2990  // See ListThesauri for details on how to use this API operation.
  2991  //
  2992  // The context must be non-nil and will be used for request cancellation. If
  2993  // the context is nil a panic will occur. In the future the SDK may create
  2994  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2995  // for more information on using Contexts.
  2996  func (c *Kendra) ListThesauriWithContext(ctx aws.Context, input *ListThesauriInput, opts ...request.Option) (*ListThesauriOutput, error) {
  2997  	req, out := c.ListThesauriRequest(input)
  2998  	req.SetContext(ctx)
  2999  	req.ApplyOptions(opts...)
  3000  	return out, req.Send()
  3001  }
  3002  
  3003  const opPutPrincipalMapping = "PutPrincipalMapping"
  3004  
  3005  // PutPrincipalMappingRequest generates a "aws/request.Request" representing the
  3006  // client's request for the PutPrincipalMapping operation. The "output" return
  3007  // value will be populated with the request's response once the request completes
  3008  // successfully.
  3009  //
  3010  // Use "Send" method on the returned Request to send the API call to the service.
  3011  // the "output" return value is not valid until after Send returns without error.
  3012  //
  3013  // See PutPrincipalMapping for more information on using the PutPrincipalMapping
  3014  // API call, and error handling.
  3015  //
  3016  // This method is useful when you want to inject custom logic or configuration
  3017  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3018  //
  3019  //
  3020  //    // Example sending a request using the PutPrincipalMappingRequest method.
  3021  //    req, resp := client.PutPrincipalMappingRequest(params)
  3022  //
  3023  //    err := req.Send()
  3024  //    if err == nil { // resp is now filled
  3025  //        fmt.Println(resp)
  3026  //    }
  3027  //
  3028  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/PutPrincipalMapping
  3029  func (c *Kendra) PutPrincipalMappingRequest(input *PutPrincipalMappingInput) (req *request.Request, output *PutPrincipalMappingOutput) {
  3030  	op := &request.Operation{
  3031  		Name:       opPutPrincipalMapping,
  3032  		HTTPMethod: "POST",
  3033  		HTTPPath:   "/",
  3034  	}
  3035  
  3036  	if input == nil {
  3037  		input = &PutPrincipalMappingInput{}
  3038  	}
  3039  
  3040  	output = &PutPrincipalMappingOutput{}
  3041  	req = c.newRequest(op, input, output)
  3042  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3043  	return
  3044  }
  3045  
  3046  // PutPrincipalMapping API operation for AWSKendraFrontendService.
  3047  //
  3048  // Maps users to their groups so that you only need to provide the user ID when
  3049  // you issue the query.
  3050  //
  3051  // You can also map sub groups to groups. For example, the group "Company Intellectual
  3052  // Property Teams" includes sub groups "Research" and "Engineering". These sub
  3053  // groups include their own list of users or people who work in these teams.
  3054  // Only users who work in research and engineering, and therefore belong in
  3055  // the intellectual property group, can see top-secret company documents in
  3056  // their search results.
  3057  //
  3058  // You map users to their groups when you want to filter search results for
  3059  // different users based on their group’s access to documents. For more information
  3060  // on filtering search results for different users, see Filtering on user context
  3061  // (https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html).
  3062  //
  3063  // If more than five PUT actions for a group are currently processing, a validation
  3064  // exception is thrown.
  3065  //
  3066  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3067  // with awserr.Error's Code and Message methods to get detailed information about
  3068  // the error.
  3069  //
  3070  // See the AWS API reference guide for AWSKendraFrontendService's
  3071  // API operation PutPrincipalMapping for usage and error information.
  3072  //
  3073  // Returned Error Types:
  3074  //   * ValidationException
  3075  //
  3076  //   * ConflictException
  3077  //
  3078  //   * ResourceNotFoundException
  3079  //
  3080  //   * ThrottlingException
  3081  //
  3082  //   * AccessDeniedException
  3083  //
  3084  //   * ServiceQuotaExceededException
  3085  //
  3086  //   * InternalServerException
  3087  //
  3088  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/PutPrincipalMapping
  3089  func (c *Kendra) PutPrincipalMapping(input *PutPrincipalMappingInput) (*PutPrincipalMappingOutput, error) {
  3090  	req, out := c.PutPrincipalMappingRequest(input)
  3091  	return out, req.Send()
  3092  }
  3093  
  3094  // PutPrincipalMappingWithContext is the same as PutPrincipalMapping with the addition of
  3095  // the ability to pass a context and additional request options.
  3096  //
  3097  // See PutPrincipalMapping for details on how to use this API operation.
  3098  //
  3099  // The context must be non-nil and will be used for request cancellation. If
  3100  // the context is nil a panic will occur. In the future the SDK may create
  3101  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3102  // for more information on using Contexts.
  3103  func (c *Kendra) PutPrincipalMappingWithContext(ctx aws.Context, input *PutPrincipalMappingInput, opts ...request.Option) (*PutPrincipalMappingOutput, error) {
  3104  	req, out := c.PutPrincipalMappingRequest(input)
  3105  	req.SetContext(ctx)
  3106  	req.ApplyOptions(opts...)
  3107  	return out, req.Send()
  3108  }
  3109  
  3110  const opQuery = "Query"
  3111  
  3112  // QueryRequest generates a "aws/request.Request" representing the
  3113  // client's request for the Query operation. The "output" return
  3114  // value will be populated with the request's response once the request completes
  3115  // successfully.
  3116  //
  3117  // Use "Send" method on the returned Request to send the API call to the service.
  3118  // the "output" return value is not valid until after Send returns without error.
  3119  //
  3120  // See Query for more information on using the Query
  3121  // API call, and error handling.
  3122  //
  3123  // This method is useful when you want to inject custom logic or configuration
  3124  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3125  //
  3126  //
  3127  //    // Example sending a request using the QueryRequest method.
  3128  //    req, resp := client.QueryRequest(params)
  3129  //
  3130  //    err := req.Send()
  3131  //    if err == nil { // resp is now filled
  3132  //        fmt.Println(resp)
  3133  //    }
  3134  //
  3135  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/Query
  3136  func (c *Kendra) QueryRequest(input *QueryInput) (req *request.Request, output *QueryOutput) {
  3137  	op := &request.Operation{
  3138  		Name:       opQuery,
  3139  		HTTPMethod: "POST",
  3140  		HTTPPath:   "/",
  3141  	}
  3142  
  3143  	if input == nil {
  3144  		input = &QueryInput{}
  3145  	}
  3146  
  3147  	output = &QueryOutput{}
  3148  	req = c.newRequest(op, input, output)
  3149  	return
  3150  }
  3151  
  3152  // Query API operation for AWSKendraFrontendService.
  3153  //
  3154  // Searches an active index. Use this API to search your documents using query.
  3155  // The Query operation enables to do faceted search and to filter results based
  3156  // on document attributes.
  3157  //
  3158  // It also enables you to provide user context that Amazon Kendra uses to enforce
  3159  // document access control in the search results.
  3160  //
  3161  // Amazon Kendra searches your index for text content and question and answer
  3162  // (FAQ) content. By default the response contains three types of results.
  3163  //
  3164  //    * Relevant passages
  3165  //
  3166  //    * Matching FAQs
  3167  //
  3168  //    * Relevant documents
  3169  //
  3170  // You can specify that the query return only one type of result using the QueryResultTypeConfig
  3171  // parameter.
  3172  //
  3173  // Each query returns the 100 most relevant results.
  3174  //
  3175  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3176  // with awserr.Error's Code and Message methods to get detailed information about
  3177  // the error.
  3178  //
  3179  // See the AWS API reference guide for AWSKendraFrontendService's
  3180  // API operation Query for usage and error information.
  3181  //
  3182  // Returned Error Types:
  3183  //   * ValidationException
  3184  //
  3185  //   * ConflictException
  3186  //
  3187  //   * ResourceNotFoundException
  3188  //
  3189  //   * ThrottlingException
  3190  //
  3191  //   * AccessDeniedException
  3192  //
  3193  //   * ServiceQuotaExceededException
  3194  //
  3195  //   * InternalServerException
  3196  //
  3197  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/Query
  3198  func (c *Kendra) Query(input *QueryInput) (*QueryOutput, error) {
  3199  	req, out := c.QueryRequest(input)
  3200  	return out, req.Send()
  3201  }
  3202  
  3203  // QueryWithContext is the same as Query with the addition of
  3204  // the ability to pass a context and additional request options.
  3205  //
  3206  // See Query for details on how to use this API operation.
  3207  //
  3208  // The context must be non-nil and will be used for request cancellation. If
  3209  // the context is nil a panic will occur. In the future the SDK may create
  3210  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3211  // for more information on using Contexts.
  3212  func (c *Kendra) QueryWithContext(ctx aws.Context, input *QueryInput, opts ...request.Option) (*QueryOutput, error) {
  3213  	req, out := c.QueryRequest(input)
  3214  	req.SetContext(ctx)
  3215  	req.ApplyOptions(opts...)
  3216  	return out, req.Send()
  3217  }
  3218  
  3219  const opStartDataSourceSyncJob = "StartDataSourceSyncJob"
  3220  
  3221  // StartDataSourceSyncJobRequest generates a "aws/request.Request" representing the
  3222  // client's request for the StartDataSourceSyncJob operation. The "output" return
  3223  // value will be populated with the request's response once the request completes
  3224  // successfully.
  3225  //
  3226  // Use "Send" method on the returned Request to send the API call to the service.
  3227  // the "output" return value is not valid until after Send returns without error.
  3228  //
  3229  // See StartDataSourceSyncJob for more information on using the StartDataSourceSyncJob
  3230  // API call, and error handling.
  3231  //
  3232  // This method is useful when you want to inject custom logic or configuration
  3233  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3234  //
  3235  //
  3236  //    // Example sending a request using the StartDataSourceSyncJobRequest method.
  3237  //    req, resp := client.StartDataSourceSyncJobRequest(params)
  3238  //
  3239  //    err := req.Send()
  3240  //    if err == nil { // resp is now filled
  3241  //        fmt.Println(resp)
  3242  //    }
  3243  //
  3244  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/StartDataSourceSyncJob
  3245  func (c *Kendra) StartDataSourceSyncJobRequest(input *StartDataSourceSyncJobInput) (req *request.Request, output *StartDataSourceSyncJobOutput) {
  3246  	op := &request.Operation{
  3247  		Name:       opStartDataSourceSyncJob,
  3248  		HTTPMethod: "POST",
  3249  		HTTPPath:   "/",
  3250  	}
  3251  
  3252  	if input == nil {
  3253  		input = &StartDataSourceSyncJobInput{}
  3254  	}
  3255  
  3256  	output = &StartDataSourceSyncJobOutput{}
  3257  	req = c.newRequest(op, input, output)
  3258  	return
  3259  }
  3260  
  3261  // StartDataSourceSyncJob API operation for AWSKendraFrontendService.
  3262  //
  3263  // Starts a synchronization job for a data source. If a synchronization job
  3264  // is already in progress, Amazon Kendra returns a ResourceInUseException exception.
  3265  //
  3266  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3267  // with awserr.Error's Code and Message methods to get detailed information about
  3268  // the error.
  3269  //
  3270  // See the AWS API reference guide for AWSKendraFrontendService's
  3271  // API operation StartDataSourceSyncJob for usage and error information.
  3272  //
  3273  // Returned Error Types:
  3274  //   * ValidationException
  3275  //
  3276  //   * ResourceNotFoundException
  3277  //
  3278  //   * ResourceInUseException
  3279  //
  3280  //   * ThrottlingException
  3281  //
  3282  //   * AccessDeniedException
  3283  //
  3284  //   * ConflictException
  3285  //
  3286  //   * InternalServerException
  3287  //
  3288  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/StartDataSourceSyncJob
  3289  func (c *Kendra) StartDataSourceSyncJob(input *StartDataSourceSyncJobInput) (*StartDataSourceSyncJobOutput, error) {
  3290  	req, out := c.StartDataSourceSyncJobRequest(input)
  3291  	return out, req.Send()
  3292  }
  3293  
  3294  // StartDataSourceSyncJobWithContext is the same as StartDataSourceSyncJob with the addition of
  3295  // the ability to pass a context and additional request options.
  3296  //
  3297  // See StartDataSourceSyncJob for details on how to use this API operation.
  3298  //
  3299  // The context must be non-nil and will be used for request cancellation. If
  3300  // the context is nil a panic will occur. In the future the SDK may create
  3301  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3302  // for more information on using Contexts.
  3303  func (c *Kendra) StartDataSourceSyncJobWithContext(ctx aws.Context, input *StartDataSourceSyncJobInput, opts ...request.Option) (*StartDataSourceSyncJobOutput, error) {
  3304  	req, out := c.StartDataSourceSyncJobRequest(input)
  3305  	req.SetContext(ctx)
  3306  	req.ApplyOptions(opts...)
  3307  	return out, req.Send()
  3308  }
  3309  
  3310  const opStopDataSourceSyncJob = "StopDataSourceSyncJob"
  3311  
  3312  // StopDataSourceSyncJobRequest generates a "aws/request.Request" representing the
  3313  // client's request for the StopDataSourceSyncJob operation. The "output" return
  3314  // value will be populated with the request's response once the request completes
  3315  // successfully.
  3316  //
  3317  // Use "Send" method on the returned Request to send the API call to the service.
  3318  // the "output" return value is not valid until after Send returns without error.
  3319  //
  3320  // See StopDataSourceSyncJob for more information on using the StopDataSourceSyncJob
  3321  // API call, and error handling.
  3322  //
  3323  // This method is useful when you want to inject custom logic or configuration
  3324  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3325  //
  3326  //
  3327  //    // Example sending a request using the StopDataSourceSyncJobRequest method.
  3328  //    req, resp := client.StopDataSourceSyncJobRequest(params)
  3329  //
  3330  //    err := req.Send()
  3331  //    if err == nil { // resp is now filled
  3332  //        fmt.Println(resp)
  3333  //    }
  3334  //
  3335  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/StopDataSourceSyncJob
  3336  func (c *Kendra) StopDataSourceSyncJobRequest(input *StopDataSourceSyncJobInput) (req *request.Request, output *StopDataSourceSyncJobOutput) {
  3337  	op := &request.Operation{
  3338  		Name:       opStopDataSourceSyncJob,
  3339  		HTTPMethod: "POST",
  3340  		HTTPPath:   "/",
  3341  	}
  3342  
  3343  	if input == nil {
  3344  		input = &StopDataSourceSyncJobInput{}
  3345  	}
  3346  
  3347  	output = &StopDataSourceSyncJobOutput{}
  3348  	req = c.newRequest(op, input, output)
  3349  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3350  	return
  3351  }
  3352  
  3353  // StopDataSourceSyncJob API operation for AWSKendraFrontendService.
  3354  //
  3355  // Stops a running synchronization job. You can't stop a scheduled synchronization
  3356  // job.
  3357  //
  3358  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3359  // with awserr.Error's Code and Message methods to get detailed information about
  3360  // the error.
  3361  //
  3362  // See the AWS API reference guide for AWSKendraFrontendService's
  3363  // API operation StopDataSourceSyncJob for usage and error information.
  3364  //
  3365  // Returned Error Types:
  3366  //   * ValidationException
  3367  //
  3368  //   * ResourceNotFoundException
  3369  //
  3370  //   * ThrottlingException
  3371  //
  3372  //   * AccessDeniedException
  3373  //
  3374  //   * InternalServerException
  3375  //
  3376  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/StopDataSourceSyncJob
  3377  func (c *Kendra) StopDataSourceSyncJob(input *StopDataSourceSyncJobInput) (*StopDataSourceSyncJobOutput, error) {
  3378  	req, out := c.StopDataSourceSyncJobRequest(input)
  3379  	return out, req.Send()
  3380  }
  3381  
  3382  // StopDataSourceSyncJobWithContext is the same as StopDataSourceSyncJob with the addition of
  3383  // the ability to pass a context and additional request options.
  3384  //
  3385  // See StopDataSourceSyncJob for details on how to use this API operation.
  3386  //
  3387  // The context must be non-nil and will be used for request cancellation. If
  3388  // the context is nil a panic will occur. In the future the SDK may create
  3389  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3390  // for more information on using Contexts.
  3391  func (c *Kendra) StopDataSourceSyncJobWithContext(ctx aws.Context, input *StopDataSourceSyncJobInput, opts ...request.Option) (*StopDataSourceSyncJobOutput, error) {
  3392  	req, out := c.StopDataSourceSyncJobRequest(input)
  3393  	req.SetContext(ctx)
  3394  	req.ApplyOptions(opts...)
  3395  	return out, req.Send()
  3396  }
  3397  
  3398  const opSubmitFeedback = "SubmitFeedback"
  3399  
  3400  // SubmitFeedbackRequest generates a "aws/request.Request" representing the
  3401  // client's request for the SubmitFeedback operation. The "output" return
  3402  // value will be populated with the request's response once the request completes
  3403  // successfully.
  3404  //
  3405  // Use "Send" method on the returned Request to send the API call to the service.
  3406  // the "output" return value is not valid until after Send returns without error.
  3407  //
  3408  // See SubmitFeedback for more information on using the SubmitFeedback
  3409  // API call, and error handling.
  3410  //
  3411  // This method is useful when you want to inject custom logic or configuration
  3412  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3413  //
  3414  //
  3415  //    // Example sending a request using the SubmitFeedbackRequest method.
  3416  //    req, resp := client.SubmitFeedbackRequest(params)
  3417  //
  3418  //    err := req.Send()
  3419  //    if err == nil { // resp is now filled
  3420  //        fmt.Println(resp)
  3421  //    }
  3422  //
  3423  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/SubmitFeedback
  3424  func (c *Kendra) SubmitFeedbackRequest(input *SubmitFeedbackInput) (req *request.Request, output *SubmitFeedbackOutput) {
  3425  	op := &request.Operation{
  3426  		Name:       opSubmitFeedback,
  3427  		HTTPMethod: "POST",
  3428  		HTTPPath:   "/",
  3429  	}
  3430  
  3431  	if input == nil {
  3432  		input = &SubmitFeedbackInput{}
  3433  	}
  3434  
  3435  	output = &SubmitFeedbackOutput{}
  3436  	req = c.newRequest(op, input, output)
  3437  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3438  	return
  3439  }
  3440  
  3441  // SubmitFeedback API operation for AWSKendraFrontendService.
  3442  //
  3443  // Enables you to provide feedback to Amazon Kendra to improve the performance
  3444  // of your index.
  3445  //
  3446  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3447  // with awserr.Error's Code and Message methods to get detailed information about
  3448  // the error.
  3449  //
  3450  // See the AWS API reference guide for AWSKendraFrontendService's
  3451  // API operation SubmitFeedback for usage and error information.
  3452  //
  3453  // Returned Error Types:
  3454  //   * ValidationException
  3455  //
  3456  //   * ResourceUnavailableException
  3457  //
  3458  //   * ResourceNotFoundException
  3459  //
  3460  //   * ThrottlingException
  3461  //
  3462  //   * AccessDeniedException
  3463  //
  3464  //   * InternalServerException
  3465  //
  3466  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/SubmitFeedback
  3467  func (c *Kendra) SubmitFeedback(input *SubmitFeedbackInput) (*SubmitFeedbackOutput, error) {
  3468  	req, out := c.SubmitFeedbackRequest(input)
  3469  	return out, req.Send()
  3470  }
  3471  
  3472  // SubmitFeedbackWithContext is the same as SubmitFeedback with the addition of
  3473  // the ability to pass a context and additional request options.
  3474  //
  3475  // See SubmitFeedback for details on how to use this API operation.
  3476  //
  3477  // The context must be non-nil and will be used for request cancellation. If
  3478  // the context is nil a panic will occur. In the future the SDK may create
  3479  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3480  // for more information on using Contexts.
  3481  func (c *Kendra) SubmitFeedbackWithContext(ctx aws.Context, input *SubmitFeedbackInput, opts ...request.Option) (*SubmitFeedbackOutput, error) {
  3482  	req, out := c.SubmitFeedbackRequest(input)
  3483  	req.SetContext(ctx)
  3484  	req.ApplyOptions(opts...)
  3485  	return out, req.Send()
  3486  }
  3487  
  3488  const opTagResource = "TagResource"
  3489  
  3490  // TagResourceRequest generates a "aws/request.Request" representing the
  3491  // client's request for the TagResource operation. The "output" return
  3492  // value will be populated with the request's response once the request completes
  3493  // successfully.
  3494  //
  3495  // Use "Send" method on the returned Request to send the API call to the service.
  3496  // the "output" return value is not valid until after Send returns without error.
  3497  //
  3498  // See TagResource for more information on using the TagResource
  3499  // API call, and error handling.
  3500  //
  3501  // This method is useful when you want to inject custom logic or configuration
  3502  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3503  //
  3504  //
  3505  //    // Example sending a request using the TagResourceRequest method.
  3506  //    req, resp := client.TagResourceRequest(params)
  3507  //
  3508  //    err := req.Send()
  3509  //    if err == nil { // resp is now filled
  3510  //        fmt.Println(resp)
  3511  //    }
  3512  //
  3513  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/TagResource
  3514  func (c *Kendra) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  3515  	op := &request.Operation{
  3516  		Name:       opTagResource,
  3517  		HTTPMethod: "POST",
  3518  		HTTPPath:   "/",
  3519  	}
  3520  
  3521  	if input == nil {
  3522  		input = &TagResourceInput{}
  3523  	}
  3524  
  3525  	output = &TagResourceOutput{}
  3526  	req = c.newRequest(op, input, output)
  3527  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3528  	return
  3529  }
  3530  
  3531  // TagResource API operation for AWSKendraFrontendService.
  3532  //
  3533  // Adds the specified tag to the specified index, FAQ, or data source resource.
  3534  // If the tag already exists, the existing value is replaced with the new value.
  3535  //
  3536  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3537  // with awserr.Error's Code and Message methods to get detailed information about
  3538  // the error.
  3539  //
  3540  // See the AWS API reference guide for AWSKendraFrontendService's
  3541  // API operation TagResource for usage and error information.
  3542  //
  3543  // Returned Error Types:
  3544  //   * ValidationException
  3545  //
  3546  //   * ResourceUnavailableException
  3547  //
  3548  //   * ThrottlingException
  3549  //
  3550  //   * AccessDeniedException
  3551  //
  3552  //   * InternalServerException
  3553  //
  3554  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/TagResource
  3555  func (c *Kendra) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  3556  	req, out := c.TagResourceRequest(input)
  3557  	return out, req.Send()
  3558  }
  3559  
  3560  // TagResourceWithContext is the same as TagResource with the addition of
  3561  // the ability to pass a context and additional request options.
  3562  //
  3563  // See TagResource for details on how to use this API operation.
  3564  //
  3565  // The context must be non-nil and will be used for request cancellation. If
  3566  // the context is nil a panic will occur. In the future the SDK may create
  3567  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3568  // for more information on using Contexts.
  3569  func (c *Kendra) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  3570  	req, out := c.TagResourceRequest(input)
  3571  	req.SetContext(ctx)
  3572  	req.ApplyOptions(opts...)
  3573  	return out, req.Send()
  3574  }
  3575  
  3576  const opUntagResource = "UntagResource"
  3577  
  3578  // UntagResourceRequest generates a "aws/request.Request" representing the
  3579  // client's request for the UntagResource operation. The "output" return
  3580  // value will be populated with the request's response once the request completes
  3581  // successfully.
  3582  //
  3583  // Use "Send" method on the returned Request to send the API call to the service.
  3584  // the "output" return value is not valid until after Send returns without error.
  3585  //
  3586  // See UntagResource for more information on using the UntagResource
  3587  // API call, and error handling.
  3588  //
  3589  // This method is useful when you want to inject custom logic or configuration
  3590  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3591  //
  3592  //
  3593  //    // Example sending a request using the UntagResourceRequest method.
  3594  //    req, resp := client.UntagResourceRequest(params)
  3595  //
  3596  //    err := req.Send()
  3597  //    if err == nil { // resp is now filled
  3598  //        fmt.Println(resp)
  3599  //    }
  3600  //
  3601  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UntagResource
  3602  func (c *Kendra) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  3603  	op := &request.Operation{
  3604  		Name:       opUntagResource,
  3605  		HTTPMethod: "POST",
  3606  		HTTPPath:   "/",
  3607  	}
  3608  
  3609  	if input == nil {
  3610  		input = &UntagResourceInput{}
  3611  	}
  3612  
  3613  	output = &UntagResourceOutput{}
  3614  	req = c.newRequest(op, input, output)
  3615  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3616  	return
  3617  }
  3618  
  3619  // UntagResource API operation for AWSKendraFrontendService.
  3620  //
  3621  // Removes a tag from an index, FAQ, or a data source.
  3622  //
  3623  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3624  // with awserr.Error's Code and Message methods to get detailed information about
  3625  // the error.
  3626  //
  3627  // See the AWS API reference guide for AWSKendraFrontendService's
  3628  // API operation UntagResource for usage and error information.
  3629  //
  3630  // Returned Error Types:
  3631  //   * ValidationException
  3632  //
  3633  //   * ResourceUnavailableException
  3634  //
  3635  //   * ThrottlingException
  3636  //
  3637  //   * AccessDeniedException
  3638  //
  3639  //   * InternalServerException
  3640  //
  3641  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UntagResource
  3642  func (c *Kendra) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  3643  	req, out := c.UntagResourceRequest(input)
  3644  	return out, req.Send()
  3645  }
  3646  
  3647  // UntagResourceWithContext is the same as UntagResource with the addition of
  3648  // the ability to pass a context and additional request options.
  3649  //
  3650  // See UntagResource for details on how to use this API operation.
  3651  //
  3652  // The context must be non-nil and will be used for request cancellation. If
  3653  // the context is nil a panic will occur. In the future the SDK may create
  3654  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3655  // for more information on using Contexts.
  3656  func (c *Kendra) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  3657  	req, out := c.UntagResourceRequest(input)
  3658  	req.SetContext(ctx)
  3659  	req.ApplyOptions(opts...)
  3660  	return out, req.Send()
  3661  }
  3662  
  3663  const opUpdateDataSource = "UpdateDataSource"
  3664  
  3665  // UpdateDataSourceRequest generates a "aws/request.Request" representing the
  3666  // client's request for the UpdateDataSource operation. The "output" return
  3667  // value will be populated with the request's response once the request completes
  3668  // successfully.
  3669  //
  3670  // Use "Send" method on the returned Request to send the API call to the service.
  3671  // the "output" return value is not valid until after Send returns without error.
  3672  //
  3673  // See UpdateDataSource for more information on using the UpdateDataSource
  3674  // API call, and error handling.
  3675  //
  3676  // This method is useful when you want to inject custom logic or configuration
  3677  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3678  //
  3679  //
  3680  //    // Example sending a request using the UpdateDataSourceRequest method.
  3681  //    req, resp := client.UpdateDataSourceRequest(params)
  3682  //
  3683  //    err := req.Send()
  3684  //    if err == nil { // resp is now filled
  3685  //        fmt.Println(resp)
  3686  //    }
  3687  //
  3688  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UpdateDataSource
  3689  func (c *Kendra) UpdateDataSourceRequest(input *UpdateDataSourceInput) (req *request.Request, output *UpdateDataSourceOutput) {
  3690  	op := &request.Operation{
  3691  		Name:       opUpdateDataSource,
  3692  		HTTPMethod: "POST",
  3693  		HTTPPath:   "/",
  3694  	}
  3695  
  3696  	if input == nil {
  3697  		input = &UpdateDataSourceInput{}
  3698  	}
  3699  
  3700  	output = &UpdateDataSourceOutput{}
  3701  	req = c.newRequest(op, input, output)
  3702  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3703  	return
  3704  }
  3705  
  3706  // UpdateDataSource API operation for AWSKendraFrontendService.
  3707  //
  3708  // Updates an existing Amazon Kendra data source.
  3709  //
  3710  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3711  // with awserr.Error's Code and Message methods to get detailed information about
  3712  // the error.
  3713  //
  3714  // See the AWS API reference guide for AWSKendraFrontendService's
  3715  // API operation UpdateDataSource for usage and error information.
  3716  //
  3717  // Returned Error Types:
  3718  //   * ValidationException
  3719  //
  3720  //   * ConflictException
  3721  //
  3722  //   * ResourceNotFoundException
  3723  //
  3724  //   * ThrottlingException
  3725  //
  3726  //   * AccessDeniedException
  3727  //
  3728  //   * InternalServerException
  3729  //
  3730  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UpdateDataSource
  3731  func (c *Kendra) UpdateDataSource(input *UpdateDataSourceInput) (*UpdateDataSourceOutput, error) {
  3732  	req, out := c.UpdateDataSourceRequest(input)
  3733  	return out, req.Send()
  3734  }
  3735  
  3736  // UpdateDataSourceWithContext is the same as UpdateDataSource with the addition of
  3737  // the ability to pass a context and additional request options.
  3738  //
  3739  // See UpdateDataSource for details on how to use this API operation.
  3740  //
  3741  // The context must be non-nil and will be used for request cancellation. If
  3742  // the context is nil a panic will occur. In the future the SDK may create
  3743  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3744  // for more information on using Contexts.
  3745  func (c *Kendra) UpdateDataSourceWithContext(ctx aws.Context, input *UpdateDataSourceInput, opts ...request.Option) (*UpdateDataSourceOutput, error) {
  3746  	req, out := c.UpdateDataSourceRequest(input)
  3747  	req.SetContext(ctx)
  3748  	req.ApplyOptions(opts...)
  3749  	return out, req.Send()
  3750  }
  3751  
  3752  const opUpdateIndex = "UpdateIndex"
  3753  
  3754  // UpdateIndexRequest generates a "aws/request.Request" representing the
  3755  // client's request for the UpdateIndex operation. The "output" return
  3756  // value will be populated with the request's response once the request completes
  3757  // successfully.
  3758  //
  3759  // Use "Send" method on the returned Request to send the API call to the service.
  3760  // the "output" return value is not valid until after Send returns without error.
  3761  //
  3762  // See UpdateIndex for more information on using the UpdateIndex
  3763  // API call, and error handling.
  3764  //
  3765  // This method is useful when you want to inject custom logic or configuration
  3766  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3767  //
  3768  //
  3769  //    // Example sending a request using the UpdateIndexRequest method.
  3770  //    req, resp := client.UpdateIndexRequest(params)
  3771  //
  3772  //    err := req.Send()
  3773  //    if err == nil { // resp is now filled
  3774  //        fmt.Println(resp)
  3775  //    }
  3776  //
  3777  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UpdateIndex
  3778  func (c *Kendra) UpdateIndexRequest(input *UpdateIndexInput) (req *request.Request, output *UpdateIndexOutput) {
  3779  	op := &request.Operation{
  3780  		Name:       opUpdateIndex,
  3781  		HTTPMethod: "POST",
  3782  		HTTPPath:   "/",
  3783  	}
  3784  
  3785  	if input == nil {
  3786  		input = &UpdateIndexInput{}
  3787  	}
  3788  
  3789  	output = &UpdateIndexOutput{}
  3790  	req = c.newRequest(op, input, output)
  3791  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3792  	return
  3793  }
  3794  
  3795  // UpdateIndex API operation for AWSKendraFrontendService.
  3796  //
  3797  // Updates an existing Amazon Kendra index.
  3798  //
  3799  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3800  // with awserr.Error's Code and Message methods to get detailed information about
  3801  // the error.
  3802  //
  3803  // See the AWS API reference guide for AWSKendraFrontendService's
  3804  // API operation UpdateIndex for usage and error information.
  3805  //
  3806  // Returned Error Types:
  3807  //   * ValidationException
  3808  //
  3809  //   * ConflictException
  3810  //
  3811  //   * ResourceNotFoundException
  3812  //
  3813  //   * ThrottlingException
  3814  //
  3815  //   * AccessDeniedException
  3816  //
  3817  //   * ServiceQuotaExceededException
  3818  //
  3819  //   * InternalServerException
  3820  //
  3821  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UpdateIndex
  3822  func (c *Kendra) UpdateIndex(input *UpdateIndexInput) (*UpdateIndexOutput, error) {
  3823  	req, out := c.UpdateIndexRequest(input)
  3824  	return out, req.Send()
  3825  }
  3826  
  3827  // UpdateIndexWithContext is the same as UpdateIndex with the addition of
  3828  // the ability to pass a context and additional request options.
  3829  //
  3830  // See UpdateIndex for details on how to use this API operation.
  3831  //
  3832  // The context must be non-nil and will be used for request cancellation. If
  3833  // the context is nil a panic will occur. In the future the SDK may create
  3834  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3835  // for more information on using Contexts.
  3836  func (c *Kendra) UpdateIndexWithContext(ctx aws.Context, input *UpdateIndexInput, opts ...request.Option) (*UpdateIndexOutput, error) {
  3837  	req, out := c.UpdateIndexRequest(input)
  3838  	req.SetContext(ctx)
  3839  	req.ApplyOptions(opts...)
  3840  	return out, req.Send()
  3841  }
  3842  
  3843  const opUpdateQuerySuggestionsBlockList = "UpdateQuerySuggestionsBlockList"
  3844  
  3845  // UpdateQuerySuggestionsBlockListRequest generates a "aws/request.Request" representing the
  3846  // client's request for the UpdateQuerySuggestionsBlockList operation. The "output" return
  3847  // value will be populated with the request's response once the request completes
  3848  // successfully.
  3849  //
  3850  // Use "Send" method on the returned Request to send the API call to the service.
  3851  // the "output" return value is not valid until after Send returns without error.
  3852  //
  3853  // See UpdateQuerySuggestionsBlockList for more information on using the UpdateQuerySuggestionsBlockList
  3854  // API call, and error handling.
  3855  //
  3856  // This method is useful when you want to inject custom logic or configuration
  3857  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3858  //
  3859  //
  3860  //    // Example sending a request using the UpdateQuerySuggestionsBlockListRequest method.
  3861  //    req, resp := client.UpdateQuerySuggestionsBlockListRequest(params)
  3862  //
  3863  //    err := req.Send()
  3864  //    if err == nil { // resp is now filled
  3865  //        fmt.Println(resp)
  3866  //    }
  3867  //
  3868  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UpdateQuerySuggestionsBlockList
  3869  func (c *Kendra) UpdateQuerySuggestionsBlockListRequest(input *UpdateQuerySuggestionsBlockListInput) (req *request.Request, output *UpdateQuerySuggestionsBlockListOutput) {
  3870  	op := &request.Operation{
  3871  		Name:       opUpdateQuerySuggestionsBlockList,
  3872  		HTTPMethod: "POST",
  3873  		HTTPPath:   "/",
  3874  	}
  3875  
  3876  	if input == nil {
  3877  		input = &UpdateQuerySuggestionsBlockListInput{}
  3878  	}
  3879  
  3880  	output = &UpdateQuerySuggestionsBlockListOutput{}
  3881  	req = c.newRequest(op, input, output)
  3882  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3883  	return
  3884  }
  3885  
  3886  // UpdateQuerySuggestionsBlockList API operation for AWSKendraFrontendService.
  3887  //
  3888  // Updates a block list used for query suggestions for an index.
  3889  //
  3890  // Updates to a block list might not take effect right away. Amazon Kendra needs
  3891  // to refresh the entire suggestions list to apply any updates to the block
  3892  // list. Other changes not related to the block list apply immediately.
  3893  //
  3894  // If a block list is updating, then you need to wait for the first update to
  3895  // finish before submitting another update.
  3896  //
  3897  // Amazon Kendra supports partial updates, so you only need to provide the fields
  3898  // you want to update.
  3899  //
  3900  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3901  // with awserr.Error's Code and Message methods to get detailed information about
  3902  // the error.
  3903  //
  3904  // See the AWS API reference guide for AWSKendraFrontendService's
  3905  // API operation UpdateQuerySuggestionsBlockList for usage and error information.
  3906  //
  3907  // Returned Error Types:
  3908  //   * ValidationException
  3909  //
  3910  //   * ResourceNotFoundException
  3911  //
  3912  //   * ThrottlingException
  3913  //
  3914  //   * AccessDeniedException
  3915  //
  3916  //   * ConflictException
  3917  //
  3918  //   * InternalServerException
  3919  //
  3920  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UpdateQuerySuggestionsBlockList
  3921  func (c *Kendra) UpdateQuerySuggestionsBlockList(input *UpdateQuerySuggestionsBlockListInput) (*UpdateQuerySuggestionsBlockListOutput, error) {
  3922  	req, out := c.UpdateQuerySuggestionsBlockListRequest(input)
  3923  	return out, req.Send()
  3924  }
  3925  
  3926  // UpdateQuerySuggestionsBlockListWithContext is the same as UpdateQuerySuggestionsBlockList with the addition of
  3927  // the ability to pass a context and additional request options.
  3928  //
  3929  // See UpdateQuerySuggestionsBlockList for details on how to use this API operation.
  3930  //
  3931  // The context must be non-nil and will be used for request cancellation. If
  3932  // the context is nil a panic will occur. In the future the SDK may create
  3933  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3934  // for more information on using Contexts.
  3935  func (c *Kendra) UpdateQuerySuggestionsBlockListWithContext(ctx aws.Context, input *UpdateQuerySuggestionsBlockListInput, opts ...request.Option) (*UpdateQuerySuggestionsBlockListOutput, error) {
  3936  	req, out := c.UpdateQuerySuggestionsBlockListRequest(input)
  3937  	req.SetContext(ctx)
  3938  	req.ApplyOptions(opts...)
  3939  	return out, req.Send()
  3940  }
  3941  
  3942  const opUpdateQuerySuggestionsConfig = "UpdateQuerySuggestionsConfig"
  3943  
  3944  // UpdateQuerySuggestionsConfigRequest generates a "aws/request.Request" representing the
  3945  // client's request for the UpdateQuerySuggestionsConfig operation. The "output" return
  3946  // value will be populated with the request's response once the request completes
  3947  // successfully.
  3948  //
  3949  // Use "Send" method on the returned Request to send the API call to the service.
  3950  // the "output" return value is not valid until after Send returns without error.
  3951  //
  3952  // See UpdateQuerySuggestionsConfig for more information on using the UpdateQuerySuggestionsConfig
  3953  // API call, and error handling.
  3954  //
  3955  // This method is useful when you want to inject custom logic or configuration
  3956  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3957  //
  3958  //
  3959  //    // Example sending a request using the UpdateQuerySuggestionsConfigRequest method.
  3960  //    req, resp := client.UpdateQuerySuggestionsConfigRequest(params)
  3961  //
  3962  //    err := req.Send()
  3963  //    if err == nil { // resp is now filled
  3964  //        fmt.Println(resp)
  3965  //    }
  3966  //
  3967  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UpdateQuerySuggestionsConfig
  3968  func (c *Kendra) UpdateQuerySuggestionsConfigRequest(input *UpdateQuerySuggestionsConfigInput) (req *request.Request, output *UpdateQuerySuggestionsConfigOutput) {
  3969  	op := &request.Operation{
  3970  		Name:       opUpdateQuerySuggestionsConfig,
  3971  		HTTPMethod: "POST",
  3972  		HTTPPath:   "/",
  3973  	}
  3974  
  3975  	if input == nil {
  3976  		input = &UpdateQuerySuggestionsConfigInput{}
  3977  	}
  3978  
  3979  	output = &UpdateQuerySuggestionsConfigOutput{}
  3980  	req = c.newRequest(op, input, output)
  3981  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3982  	return
  3983  }
  3984  
  3985  // UpdateQuerySuggestionsConfig API operation for AWSKendraFrontendService.
  3986  //
  3987  // Updates the settings of query suggestions for an index.
  3988  //
  3989  // Amazon Kendra supports partial updates, so you only need to provide the fields
  3990  // you want to update.
  3991  //
  3992  // If an update is currently processing (i.e. 'happening'), you need to wait
  3993  // for the update to finish before making another update.
  3994  //
  3995  // Updates to query suggestions settings might not take effect right away. The
  3996  // time for your updated settings to take effect depends on the updates made
  3997  // and the number of search queries in your index.
  3998  //
  3999  // You can still enable/disable query suggestions at any time.
  4000  //
  4001  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4002  // with awserr.Error's Code and Message methods to get detailed information about
  4003  // the error.
  4004  //
  4005  // See the AWS API reference guide for AWSKendraFrontendService's
  4006  // API operation UpdateQuerySuggestionsConfig for usage and error information.
  4007  //
  4008  // Returned Error Types:
  4009  //   * ValidationException
  4010  //
  4011  //   * ConflictException
  4012  //
  4013  //   * ResourceNotFoundException
  4014  //
  4015  //   * ThrottlingException
  4016  //
  4017  //   * AccessDeniedException
  4018  //
  4019  //   * InternalServerException
  4020  //
  4021  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UpdateQuerySuggestionsConfig
  4022  func (c *Kendra) UpdateQuerySuggestionsConfig(input *UpdateQuerySuggestionsConfigInput) (*UpdateQuerySuggestionsConfigOutput, error) {
  4023  	req, out := c.UpdateQuerySuggestionsConfigRequest(input)
  4024  	return out, req.Send()
  4025  }
  4026  
  4027  // UpdateQuerySuggestionsConfigWithContext is the same as UpdateQuerySuggestionsConfig with the addition of
  4028  // the ability to pass a context and additional request options.
  4029  //
  4030  // See UpdateQuerySuggestionsConfig for details on how to use this API operation.
  4031  //
  4032  // The context must be non-nil and will be used for request cancellation. If
  4033  // the context is nil a panic will occur. In the future the SDK may create
  4034  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4035  // for more information on using Contexts.
  4036  func (c *Kendra) UpdateQuerySuggestionsConfigWithContext(ctx aws.Context, input *UpdateQuerySuggestionsConfigInput, opts ...request.Option) (*UpdateQuerySuggestionsConfigOutput, error) {
  4037  	req, out := c.UpdateQuerySuggestionsConfigRequest(input)
  4038  	req.SetContext(ctx)
  4039  	req.ApplyOptions(opts...)
  4040  	return out, req.Send()
  4041  }
  4042  
  4043  const opUpdateThesaurus = "UpdateThesaurus"
  4044  
  4045  // UpdateThesaurusRequest generates a "aws/request.Request" representing the
  4046  // client's request for the UpdateThesaurus operation. The "output" return
  4047  // value will be populated with the request's response once the request completes
  4048  // successfully.
  4049  //
  4050  // Use "Send" method on the returned Request to send the API call to the service.
  4051  // the "output" return value is not valid until after Send returns without error.
  4052  //
  4053  // See UpdateThesaurus for more information on using the UpdateThesaurus
  4054  // API call, and error handling.
  4055  //
  4056  // This method is useful when you want to inject custom logic or configuration
  4057  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4058  //
  4059  //
  4060  //    // Example sending a request using the UpdateThesaurusRequest method.
  4061  //    req, resp := client.UpdateThesaurusRequest(params)
  4062  //
  4063  //    err := req.Send()
  4064  //    if err == nil { // resp is now filled
  4065  //        fmt.Println(resp)
  4066  //    }
  4067  //
  4068  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UpdateThesaurus
  4069  func (c *Kendra) UpdateThesaurusRequest(input *UpdateThesaurusInput) (req *request.Request, output *UpdateThesaurusOutput) {
  4070  	op := &request.Operation{
  4071  		Name:       opUpdateThesaurus,
  4072  		HTTPMethod: "POST",
  4073  		HTTPPath:   "/",
  4074  	}
  4075  
  4076  	if input == nil {
  4077  		input = &UpdateThesaurusInput{}
  4078  	}
  4079  
  4080  	output = &UpdateThesaurusOutput{}
  4081  	req = c.newRequest(op, input, output)
  4082  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4083  	return
  4084  }
  4085  
  4086  // UpdateThesaurus API operation for AWSKendraFrontendService.
  4087  //
  4088  // Updates a thesaurus file associated with an index.
  4089  //
  4090  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4091  // with awserr.Error's Code and Message methods to get detailed information about
  4092  // the error.
  4093  //
  4094  // See the AWS API reference guide for AWSKendraFrontendService's
  4095  // API operation UpdateThesaurus for usage and error information.
  4096  //
  4097  // Returned Error Types:
  4098  //   * ValidationException
  4099  //
  4100  //   * ResourceNotFoundException
  4101  //
  4102  //   * ThrottlingException
  4103  //
  4104  //   * AccessDeniedException
  4105  //
  4106  //   * ConflictException
  4107  //
  4108  //   * InternalServerException
  4109  //
  4110  // See also, https://docs.aws.amazon.com/goto/WebAPI/kendra-2019-02-03/UpdateThesaurus
  4111  func (c *Kendra) UpdateThesaurus(input *UpdateThesaurusInput) (*UpdateThesaurusOutput, error) {
  4112  	req, out := c.UpdateThesaurusRequest(input)
  4113  	return out, req.Send()
  4114  }
  4115  
  4116  // UpdateThesaurusWithContext is the same as UpdateThesaurus with the addition of
  4117  // the ability to pass a context and additional request options.
  4118  //
  4119  // See UpdateThesaurus for details on how to use this API operation.
  4120  //
  4121  // The context must be non-nil and will be used for request cancellation. If
  4122  // the context is nil a panic will occur. In the future the SDK may create
  4123  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4124  // for more information on using Contexts.
  4125  func (c *Kendra) UpdateThesaurusWithContext(ctx aws.Context, input *UpdateThesaurusInput, opts ...request.Option) (*UpdateThesaurusOutput, error) {
  4126  	req, out := c.UpdateThesaurusRequest(input)
  4127  	req.SetContext(ctx)
  4128  	req.ApplyOptions(opts...)
  4129  	return out, req.Send()
  4130  }
  4131  
  4132  // Access Control List files for the documents in a data source. For the format
  4133  // of the file, see Access control for S3 data sources (https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html).
  4134  type AccessControlListConfiguration struct {
  4135  	_ struct{} `type:"structure"`
  4136  
  4137  	// Path to the Amazon Web Services S3 bucket that contains the ACL files.
  4138  	KeyPath *string `min:"1" type:"string"`
  4139  }
  4140  
  4141  // String returns the string representation.
  4142  //
  4143  // API parameter values that are decorated as "sensitive" in the API will not
  4144  // be included in the string output. The member name will be present, but the
  4145  // value will be replaced with "sensitive".
  4146  func (s AccessControlListConfiguration) String() string {
  4147  	return awsutil.Prettify(s)
  4148  }
  4149  
  4150  // GoString returns the string representation.
  4151  //
  4152  // API parameter values that are decorated as "sensitive" in the API will not
  4153  // be included in the string output. The member name will be present, but the
  4154  // value will be replaced with "sensitive".
  4155  func (s AccessControlListConfiguration) GoString() string {
  4156  	return s.String()
  4157  }
  4158  
  4159  // Validate inspects the fields of the type to determine if they are valid.
  4160  func (s *AccessControlListConfiguration) Validate() error {
  4161  	invalidParams := request.ErrInvalidParams{Context: "AccessControlListConfiguration"}
  4162  	if s.KeyPath != nil && len(*s.KeyPath) < 1 {
  4163  		invalidParams.Add(request.NewErrParamMinLen("KeyPath", 1))
  4164  	}
  4165  
  4166  	if invalidParams.Len() > 0 {
  4167  		return invalidParams
  4168  	}
  4169  	return nil
  4170  }
  4171  
  4172  // SetKeyPath sets the KeyPath field's value.
  4173  func (s *AccessControlListConfiguration) SetKeyPath(v string) *AccessControlListConfiguration {
  4174  	s.KeyPath = &v
  4175  	return s
  4176  }
  4177  
  4178  type AccessDeniedException struct {
  4179  	_            struct{}                  `type:"structure"`
  4180  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4181  
  4182  	Message_ *string `locationName:"Message" min:"1" type:"string"`
  4183  }
  4184  
  4185  // String returns the string representation.
  4186  //
  4187  // API parameter values that are decorated as "sensitive" in the API will not
  4188  // be included in the string output. The member name will be present, but the
  4189  // value will be replaced with "sensitive".
  4190  func (s AccessDeniedException) String() string {
  4191  	return awsutil.Prettify(s)
  4192  }
  4193  
  4194  // GoString returns the string representation.
  4195  //
  4196  // API parameter values that are decorated as "sensitive" in the API will not
  4197  // be included in the string output. The member name will be present, but the
  4198  // value will be replaced with "sensitive".
  4199  func (s AccessDeniedException) GoString() string {
  4200  	return s.String()
  4201  }
  4202  
  4203  func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
  4204  	return &AccessDeniedException{
  4205  		RespMetadata: v,
  4206  	}
  4207  }
  4208  
  4209  // Code returns the exception type name.
  4210  func (s *AccessDeniedException) Code() string {
  4211  	return "AccessDeniedException"
  4212  }
  4213  
  4214  // Message returns the exception's message.
  4215  func (s *AccessDeniedException) Message() string {
  4216  	if s.Message_ != nil {
  4217  		return *s.Message_
  4218  	}
  4219  	return ""
  4220  }
  4221  
  4222  // OrigErr always returns nil, satisfies awserr.Error interface.
  4223  func (s *AccessDeniedException) OrigErr() error {
  4224  	return nil
  4225  }
  4226  
  4227  func (s *AccessDeniedException) Error() string {
  4228  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4229  }
  4230  
  4231  // Status code returns the HTTP status code for the request's response error.
  4232  func (s *AccessDeniedException) StatusCode() int {
  4233  	return s.RespMetadata.StatusCode
  4234  }
  4235  
  4236  // RequestID returns the service's response RequestID for request.
  4237  func (s *AccessDeniedException) RequestID() string {
  4238  	return s.RespMetadata.RequestID
  4239  }
  4240  
  4241  // Provides information about the column that should be used for filtering the
  4242  // query response by groups.
  4243  type AclConfiguration struct {
  4244  	_ struct{} `type:"structure"`
  4245  
  4246  	// A list of groups, separated by semi-colons, that filters a query response
  4247  	// based on user context. The document is only returned to users that are in
  4248  	// one of the groups specified in the UserContext field of the Query operation.
  4249  	//
  4250  	// AllowedGroupsColumnName is a required field
  4251  	AllowedGroupsColumnName *string `min:"1" type:"string" required:"true"`
  4252  }
  4253  
  4254  // String returns the string representation.
  4255  //
  4256  // API parameter values that are decorated as "sensitive" in the API will not
  4257  // be included in the string output. The member name will be present, but the
  4258  // value will be replaced with "sensitive".
  4259  func (s AclConfiguration) String() string {
  4260  	return awsutil.Prettify(s)
  4261  }
  4262  
  4263  // GoString returns the string representation.
  4264  //
  4265  // API parameter values that are decorated as "sensitive" in the API will not
  4266  // be included in the string output. The member name will be present, but the
  4267  // value will be replaced with "sensitive".
  4268  func (s AclConfiguration) GoString() string {
  4269  	return s.String()
  4270  }
  4271  
  4272  // Validate inspects the fields of the type to determine if they are valid.
  4273  func (s *AclConfiguration) Validate() error {
  4274  	invalidParams := request.ErrInvalidParams{Context: "AclConfiguration"}
  4275  	if s.AllowedGroupsColumnName == nil {
  4276  		invalidParams.Add(request.NewErrParamRequired("AllowedGroupsColumnName"))
  4277  	}
  4278  	if s.AllowedGroupsColumnName != nil && len(*s.AllowedGroupsColumnName) < 1 {
  4279  		invalidParams.Add(request.NewErrParamMinLen("AllowedGroupsColumnName", 1))
  4280  	}
  4281  
  4282  	if invalidParams.Len() > 0 {
  4283  		return invalidParams
  4284  	}
  4285  	return nil
  4286  }
  4287  
  4288  // SetAllowedGroupsColumnName sets the AllowedGroupsColumnName field's value.
  4289  func (s *AclConfiguration) SetAllowedGroupsColumnName(v string) *AclConfiguration {
  4290  	s.AllowedGroupsColumnName = &v
  4291  	return s
  4292  }
  4293  
  4294  // An attribute returned from an index query.
  4295  type AdditionalResultAttribute struct {
  4296  	_ struct{} `type:"structure"`
  4297  
  4298  	// The key that identifies the attribute.
  4299  	//
  4300  	// Key is a required field
  4301  	Key *string `min:"1" type:"string" required:"true"`
  4302  
  4303  	// An object that contains the attribute value.
  4304  	//
  4305  	// Value is a required field
  4306  	Value *AdditionalResultAttributeValue `type:"structure" required:"true"`
  4307  
  4308  	// The data type of the Value property.
  4309  	//
  4310  	// ValueType is a required field
  4311  	ValueType *string `type:"string" required:"true" enum:"AdditionalResultAttributeValueType"`
  4312  }
  4313  
  4314  // String returns the string representation.
  4315  //
  4316  // API parameter values that are decorated as "sensitive" in the API will not
  4317  // be included in the string output. The member name will be present, but the
  4318  // value will be replaced with "sensitive".
  4319  func (s AdditionalResultAttribute) String() string {
  4320  	return awsutil.Prettify(s)
  4321  }
  4322  
  4323  // GoString returns the string representation.
  4324  //
  4325  // API parameter values that are decorated as "sensitive" in the API will not
  4326  // be included in the string output. The member name will be present, but the
  4327  // value will be replaced with "sensitive".
  4328  func (s AdditionalResultAttribute) GoString() string {
  4329  	return s.String()
  4330  }
  4331  
  4332  // SetKey sets the Key field's value.
  4333  func (s *AdditionalResultAttribute) SetKey(v string) *AdditionalResultAttribute {
  4334  	s.Key = &v
  4335  	return s
  4336  }
  4337  
  4338  // SetValue sets the Value field's value.
  4339  func (s *AdditionalResultAttribute) SetValue(v *AdditionalResultAttributeValue) *AdditionalResultAttribute {
  4340  	s.Value = v
  4341  	return s
  4342  }
  4343  
  4344  // SetValueType sets the ValueType field's value.
  4345  func (s *AdditionalResultAttribute) SetValueType(v string) *AdditionalResultAttribute {
  4346  	s.ValueType = &v
  4347  	return s
  4348  }
  4349  
  4350  // An attribute returned with a document from a search.
  4351  type AdditionalResultAttributeValue struct {
  4352  	_ struct{} `type:"structure"`
  4353  
  4354  	// The text associated with the attribute and information about the highlight
  4355  	// to apply to the text.
  4356  	TextWithHighlightsValue *TextWithHighlights `type:"structure"`
  4357  }
  4358  
  4359  // String returns the string representation.
  4360  //
  4361  // API parameter values that are decorated as "sensitive" in the API will not
  4362  // be included in the string output. The member name will be present, but the
  4363  // value will be replaced with "sensitive".
  4364  func (s AdditionalResultAttributeValue) String() string {
  4365  	return awsutil.Prettify(s)
  4366  }
  4367  
  4368  // GoString returns the string representation.
  4369  //
  4370  // API parameter values that are decorated as "sensitive" in the API will not
  4371  // be included in the string output. The member name will be present, but the
  4372  // value will be replaced with "sensitive".
  4373  func (s AdditionalResultAttributeValue) GoString() string {
  4374  	return s.String()
  4375  }
  4376  
  4377  // SetTextWithHighlightsValue sets the TextWithHighlightsValue field's value.
  4378  func (s *AdditionalResultAttributeValue) SetTextWithHighlightsValue(v *TextWithHighlights) *AdditionalResultAttributeValue {
  4379  	s.TextWithHighlightsValue = v
  4380  	return s
  4381  }
  4382  
  4383  // Provides filtering the query results based on document attributes.
  4384  //
  4385  // When you use the AndAllFilters or OrAllFilters, filters you can use 2 layers
  4386  // under the first attribute filter. For example, you can use:
  4387  //
  4388  // <AndAllFilters>
  4389  //
  4390  // <OrAllFilters>
  4391  //
  4392  // <EqualTo>
  4393  //
  4394  // If you use more than 2 layers, you receive a ValidationException exception
  4395  // with the message "AttributeFilter cannot have a depth of more than 2."
  4396  //
  4397  // If you use more than 10 attribute filters in a given list for AndAllFilters
  4398  // or OrAllFilters, you receive a ValidationException with the message "AttributeFilter
  4399  // cannot have a length of more than 10".
  4400  type AttributeFilter struct {
  4401  	_ struct{} `type:"structure"`
  4402  
  4403  	// Performs a logical AND operation on all supplied filters.
  4404  	AndAllFilters []*AttributeFilter `type:"list"`
  4405  
  4406  	// Returns true when a document contains all of the specified document attributes.
  4407  	// This filter is only applicable to StringListValue metadata.
  4408  	ContainsAll *DocumentAttribute `type:"structure"`
  4409  
  4410  	// Returns true when a document contains any of the specified document attributes.
  4411  	// This filter is only applicable to StringListValue metadata.
  4412  	ContainsAny *DocumentAttribute `type:"structure"`
  4413  
  4414  	// Performs an equals operation on two document attributes.
  4415  	EqualsTo *DocumentAttribute `type:"structure"`
  4416  
  4417  	// Performs a greater than operation on two document attributes. Use with a
  4418  	// document attribute of type Date or Long.
  4419  	GreaterThan *DocumentAttribute `type:"structure"`
  4420  
  4421  	// Performs a greater or equals than operation on two document attributes. Use
  4422  	// with a document attribute of type Date or Long.
  4423  	GreaterThanOrEquals *DocumentAttribute `type:"structure"`
  4424  
  4425  	// Performs a less than operation on two document attributes. Use with a document
  4426  	// attribute of type Date or Long.
  4427  	LessThan *DocumentAttribute `type:"structure"`
  4428  
  4429  	// Performs a less than or equals operation on two document attributes. Use
  4430  	// with a document attribute of type Date or Long.
  4431  	LessThanOrEquals *DocumentAttribute `type:"structure"`
  4432  
  4433  	// Performs a logical NOT operation on all supplied filters.
  4434  	NotFilter *AttributeFilter `type:"structure"`
  4435  
  4436  	// Performs a logical OR operation on all supplied filters.
  4437  	OrAllFilters []*AttributeFilter `type:"list"`
  4438  }
  4439  
  4440  // String returns the string representation.
  4441  //
  4442  // API parameter values that are decorated as "sensitive" in the API will not
  4443  // be included in the string output. The member name will be present, but the
  4444  // value will be replaced with "sensitive".
  4445  func (s AttributeFilter) String() string {
  4446  	return awsutil.Prettify(s)
  4447  }
  4448  
  4449  // GoString returns the string representation.
  4450  //
  4451  // API parameter values that are decorated as "sensitive" in the API will not
  4452  // be included in the string output. The member name will be present, but the
  4453  // value will be replaced with "sensitive".
  4454  func (s AttributeFilter) GoString() string {
  4455  	return s.String()
  4456  }
  4457  
  4458  // Validate inspects the fields of the type to determine if they are valid.
  4459  func (s *AttributeFilter) Validate() error {
  4460  	invalidParams := request.ErrInvalidParams{Context: "AttributeFilter"}
  4461  	if s.ContainsAll != nil {
  4462  		if err := s.ContainsAll.Validate(); err != nil {
  4463  			invalidParams.AddNested("ContainsAll", err.(request.ErrInvalidParams))
  4464  		}
  4465  	}
  4466  	if s.ContainsAny != nil {
  4467  		if err := s.ContainsAny.Validate(); err != nil {
  4468  			invalidParams.AddNested("ContainsAny", err.(request.ErrInvalidParams))
  4469  		}
  4470  	}
  4471  	if s.EqualsTo != nil {
  4472  		if err := s.EqualsTo.Validate(); err != nil {
  4473  			invalidParams.AddNested("EqualsTo", err.(request.ErrInvalidParams))
  4474  		}
  4475  	}
  4476  	if s.GreaterThan != nil {
  4477  		if err := s.GreaterThan.Validate(); err != nil {
  4478  			invalidParams.AddNested("GreaterThan", err.(request.ErrInvalidParams))
  4479  		}
  4480  	}
  4481  	if s.GreaterThanOrEquals != nil {
  4482  		if err := s.GreaterThanOrEquals.Validate(); err != nil {
  4483  			invalidParams.AddNested("GreaterThanOrEquals", err.(request.ErrInvalidParams))
  4484  		}
  4485  	}
  4486  	if s.LessThan != nil {
  4487  		if err := s.LessThan.Validate(); err != nil {
  4488  			invalidParams.AddNested("LessThan", err.(request.ErrInvalidParams))
  4489  		}
  4490  	}
  4491  	if s.LessThanOrEquals != nil {
  4492  		if err := s.LessThanOrEquals.Validate(); err != nil {
  4493  			invalidParams.AddNested("LessThanOrEquals", err.(request.ErrInvalidParams))
  4494  		}
  4495  	}
  4496  	if s.NotFilter != nil {
  4497  		if err := s.NotFilter.Validate(); err != nil {
  4498  			invalidParams.AddNested("NotFilter", err.(request.ErrInvalidParams))
  4499  		}
  4500  	}
  4501  	if s.OrAllFilters != nil {
  4502  		for i, v := range s.OrAllFilters {
  4503  			if v == nil {
  4504  				continue
  4505  			}
  4506  			if err := v.Validate(); err != nil {
  4507  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrAllFilters", i), err.(request.ErrInvalidParams))
  4508  			}
  4509  		}
  4510  	}
  4511  
  4512  	if invalidParams.Len() > 0 {
  4513  		return invalidParams
  4514  	}
  4515  	return nil
  4516  }
  4517  
  4518  // SetAndAllFilters sets the AndAllFilters field's value.
  4519  func (s *AttributeFilter) SetAndAllFilters(v []*AttributeFilter) *AttributeFilter {
  4520  	s.AndAllFilters = v
  4521  	return s
  4522  }
  4523  
  4524  // SetContainsAll sets the ContainsAll field's value.
  4525  func (s *AttributeFilter) SetContainsAll(v *DocumentAttribute) *AttributeFilter {
  4526  	s.ContainsAll = v
  4527  	return s
  4528  }
  4529  
  4530  // SetContainsAny sets the ContainsAny field's value.
  4531  func (s *AttributeFilter) SetContainsAny(v *DocumentAttribute) *AttributeFilter {
  4532  	s.ContainsAny = v
  4533  	return s
  4534  }
  4535  
  4536  // SetEqualsTo sets the EqualsTo field's value.
  4537  func (s *AttributeFilter) SetEqualsTo(v *DocumentAttribute) *AttributeFilter {
  4538  	s.EqualsTo = v
  4539  	return s
  4540  }
  4541  
  4542  // SetGreaterThan sets the GreaterThan field's value.
  4543  func (s *AttributeFilter) SetGreaterThan(v *DocumentAttribute) *AttributeFilter {
  4544  	s.GreaterThan = v
  4545  	return s
  4546  }
  4547  
  4548  // SetGreaterThanOrEquals sets the GreaterThanOrEquals field's value.
  4549  func (s *AttributeFilter) SetGreaterThanOrEquals(v *DocumentAttribute) *AttributeFilter {
  4550  	s.GreaterThanOrEquals = v
  4551  	return s
  4552  }
  4553  
  4554  // SetLessThan sets the LessThan field's value.
  4555  func (s *AttributeFilter) SetLessThan(v *DocumentAttribute) *AttributeFilter {
  4556  	s.LessThan = v
  4557  	return s
  4558  }
  4559  
  4560  // SetLessThanOrEquals sets the LessThanOrEquals field's value.
  4561  func (s *AttributeFilter) SetLessThanOrEquals(v *DocumentAttribute) *AttributeFilter {
  4562  	s.LessThanOrEquals = v
  4563  	return s
  4564  }
  4565  
  4566  // SetNotFilter sets the NotFilter field's value.
  4567  func (s *AttributeFilter) SetNotFilter(v *AttributeFilter) *AttributeFilter {
  4568  	s.NotFilter = v
  4569  	return s
  4570  }
  4571  
  4572  // SetOrAllFilters sets the OrAllFilters field's value.
  4573  func (s *AttributeFilter) SetOrAllFilters(v []*AttributeFilter) *AttributeFilter {
  4574  	s.OrAllFilters = v
  4575  	return s
  4576  }
  4577  
  4578  // Provides the configuration information to connect to websites that require
  4579  // user authentication.
  4580  type AuthenticationConfiguration struct {
  4581  	_ struct{} `type:"structure"`
  4582  
  4583  	// The list of configuration information that's required to connect to and crawl
  4584  	// a website host using basic authentication credentials.
  4585  	//
  4586  	// The list includes the name and port number of the website host.
  4587  	BasicAuthentication []*BasicAuthenticationConfiguration `type:"list"`
  4588  }
  4589  
  4590  // String returns the string representation.
  4591  //
  4592  // API parameter values that are decorated as "sensitive" in the API will not
  4593  // be included in the string output. The member name will be present, but the
  4594  // value will be replaced with "sensitive".
  4595  func (s AuthenticationConfiguration) String() string {
  4596  	return awsutil.Prettify(s)
  4597  }
  4598  
  4599  // GoString returns the string representation.
  4600  //
  4601  // API parameter values that are decorated as "sensitive" in the API will not
  4602  // be included in the string output. The member name will be present, but the
  4603  // value will be replaced with "sensitive".
  4604  func (s AuthenticationConfiguration) GoString() string {
  4605  	return s.String()
  4606  }
  4607  
  4608  // Validate inspects the fields of the type to determine if they are valid.
  4609  func (s *AuthenticationConfiguration) Validate() error {
  4610  	invalidParams := request.ErrInvalidParams{Context: "AuthenticationConfiguration"}
  4611  	if s.BasicAuthentication != nil {
  4612  		for i, v := range s.BasicAuthentication {
  4613  			if v == nil {
  4614  				continue
  4615  			}
  4616  			if err := v.Validate(); err != nil {
  4617  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BasicAuthentication", i), err.(request.ErrInvalidParams))
  4618  			}
  4619  		}
  4620  	}
  4621  
  4622  	if invalidParams.Len() > 0 {
  4623  		return invalidParams
  4624  	}
  4625  	return nil
  4626  }
  4627  
  4628  // SetBasicAuthentication sets the BasicAuthentication field's value.
  4629  func (s *AuthenticationConfiguration) SetBasicAuthentication(v []*BasicAuthenticationConfiguration) *AuthenticationConfiguration {
  4630  	s.BasicAuthentication = v
  4631  	return s
  4632  }
  4633  
  4634  // Provides the configuration information to connect to websites that require
  4635  // basic user authentication.
  4636  type BasicAuthenticationConfiguration struct {
  4637  	_ struct{} `type:"structure"`
  4638  
  4639  	// Your secret ARN, which you can create in AWS Secrets Manager (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
  4640  	//
  4641  	// You use a secret if basic authentication credentials are required to connect
  4642  	// to a website. The secret stores your credentials of user name and password.
  4643  	//
  4644  	// Credentials is a required field
  4645  	Credentials *string `min:"1" type:"string" required:"true"`
  4646  
  4647  	// The name of the website host you want to connect to using authentication
  4648  	// credentials.
  4649  	//
  4650  	// For example, the host name of https://a.example.com/page1.html is "a.example.com".
  4651  	//
  4652  	// Host is a required field
  4653  	Host *string `min:"1" type:"string" required:"true"`
  4654  
  4655  	// The port number of the website host you want to connect to using authentication
  4656  	// credentials.
  4657  	//
  4658  	// For example, the port for https://a.example.com/page1.html is 443, the standard
  4659  	// port for HTTPS.
  4660  	//
  4661  	// Port is a required field
  4662  	Port *int64 `min:"1" type:"integer" required:"true"`
  4663  }
  4664  
  4665  // String returns the string representation.
  4666  //
  4667  // API parameter values that are decorated as "sensitive" in the API will not
  4668  // be included in the string output. The member name will be present, but the
  4669  // value will be replaced with "sensitive".
  4670  func (s BasicAuthenticationConfiguration) String() string {
  4671  	return awsutil.Prettify(s)
  4672  }
  4673  
  4674  // GoString returns the string representation.
  4675  //
  4676  // API parameter values that are decorated as "sensitive" in the API will not
  4677  // be included in the string output. The member name will be present, but the
  4678  // value will be replaced with "sensitive".
  4679  func (s BasicAuthenticationConfiguration) GoString() string {
  4680  	return s.String()
  4681  }
  4682  
  4683  // Validate inspects the fields of the type to determine if they are valid.
  4684  func (s *BasicAuthenticationConfiguration) Validate() error {
  4685  	invalidParams := request.ErrInvalidParams{Context: "BasicAuthenticationConfiguration"}
  4686  	if s.Credentials == nil {
  4687  		invalidParams.Add(request.NewErrParamRequired("Credentials"))
  4688  	}
  4689  	if s.Credentials != nil && len(*s.Credentials) < 1 {
  4690  		invalidParams.Add(request.NewErrParamMinLen("Credentials", 1))
  4691  	}
  4692  	if s.Host == nil {
  4693  		invalidParams.Add(request.NewErrParamRequired("Host"))
  4694  	}
  4695  	if s.Host != nil && len(*s.Host) < 1 {
  4696  		invalidParams.Add(request.NewErrParamMinLen("Host", 1))
  4697  	}
  4698  	if s.Port == nil {
  4699  		invalidParams.Add(request.NewErrParamRequired("Port"))
  4700  	}
  4701  	if s.Port != nil && *s.Port < 1 {
  4702  		invalidParams.Add(request.NewErrParamMinValue("Port", 1))
  4703  	}
  4704  
  4705  	if invalidParams.Len() > 0 {
  4706  		return invalidParams
  4707  	}
  4708  	return nil
  4709  }
  4710  
  4711  // SetCredentials sets the Credentials field's value.
  4712  func (s *BasicAuthenticationConfiguration) SetCredentials(v string) *BasicAuthenticationConfiguration {
  4713  	s.Credentials = &v
  4714  	return s
  4715  }
  4716  
  4717  // SetHost sets the Host field's value.
  4718  func (s *BasicAuthenticationConfiguration) SetHost(v string) *BasicAuthenticationConfiguration {
  4719  	s.Host = &v
  4720  	return s
  4721  }
  4722  
  4723  // SetPort sets the Port field's value.
  4724  func (s *BasicAuthenticationConfiguration) SetPort(v int64) *BasicAuthenticationConfiguration {
  4725  	s.Port = &v
  4726  	return s
  4727  }
  4728  
  4729  type BatchDeleteDocumentInput struct {
  4730  	_ struct{} `type:"structure"`
  4731  
  4732  	// Maps a particular data source sync job to a particular data source.
  4733  	DataSourceSyncJobMetricTarget *DataSourceSyncJobMetricTarget `type:"structure"`
  4734  
  4735  	// One or more identifiers for documents to delete from the index.
  4736  	//
  4737  	// DocumentIdList is a required field
  4738  	DocumentIdList []*string `min:"1" type:"list" required:"true"`
  4739  
  4740  	// The identifier of the index that contains the documents to delete.
  4741  	//
  4742  	// IndexId is a required field
  4743  	IndexId *string `min:"36" type:"string" required:"true"`
  4744  }
  4745  
  4746  // String returns the string representation.
  4747  //
  4748  // API parameter values that are decorated as "sensitive" in the API will not
  4749  // be included in the string output. The member name will be present, but the
  4750  // value will be replaced with "sensitive".
  4751  func (s BatchDeleteDocumentInput) String() string {
  4752  	return awsutil.Prettify(s)
  4753  }
  4754  
  4755  // GoString returns the string representation.
  4756  //
  4757  // API parameter values that are decorated as "sensitive" in the API will not
  4758  // be included in the string output. The member name will be present, but the
  4759  // value will be replaced with "sensitive".
  4760  func (s BatchDeleteDocumentInput) GoString() string {
  4761  	return s.String()
  4762  }
  4763  
  4764  // Validate inspects the fields of the type to determine if they are valid.
  4765  func (s *BatchDeleteDocumentInput) Validate() error {
  4766  	invalidParams := request.ErrInvalidParams{Context: "BatchDeleteDocumentInput"}
  4767  	if s.DocumentIdList == nil {
  4768  		invalidParams.Add(request.NewErrParamRequired("DocumentIdList"))
  4769  	}
  4770  	if s.DocumentIdList != nil && len(s.DocumentIdList) < 1 {
  4771  		invalidParams.Add(request.NewErrParamMinLen("DocumentIdList", 1))
  4772  	}
  4773  	if s.IndexId == nil {
  4774  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  4775  	}
  4776  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  4777  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  4778  	}
  4779  	if s.DataSourceSyncJobMetricTarget != nil {
  4780  		if err := s.DataSourceSyncJobMetricTarget.Validate(); err != nil {
  4781  			invalidParams.AddNested("DataSourceSyncJobMetricTarget", err.(request.ErrInvalidParams))
  4782  		}
  4783  	}
  4784  
  4785  	if invalidParams.Len() > 0 {
  4786  		return invalidParams
  4787  	}
  4788  	return nil
  4789  }
  4790  
  4791  // SetDataSourceSyncJobMetricTarget sets the DataSourceSyncJobMetricTarget field's value.
  4792  func (s *BatchDeleteDocumentInput) SetDataSourceSyncJobMetricTarget(v *DataSourceSyncJobMetricTarget) *BatchDeleteDocumentInput {
  4793  	s.DataSourceSyncJobMetricTarget = v
  4794  	return s
  4795  }
  4796  
  4797  // SetDocumentIdList sets the DocumentIdList field's value.
  4798  func (s *BatchDeleteDocumentInput) SetDocumentIdList(v []*string) *BatchDeleteDocumentInput {
  4799  	s.DocumentIdList = v
  4800  	return s
  4801  }
  4802  
  4803  // SetIndexId sets the IndexId field's value.
  4804  func (s *BatchDeleteDocumentInput) SetIndexId(v string) *BatchDeleteDocumentInput {
  4805  	s.IndexId = &v
  4806  	return s
  4807  }
  4808  
  4809  type BatchDeleteDocumentOutput struct {
  4810  	_ struct{} `type:"structure"`
  4811  
  4812  	// A list of documents that could not be removed from the index. Each entry
  4813  	// contains an error message that indicates why the document couldn't be removed
  4814  	// from the index.
  4815  	FailedDocuments []*BatchDeleteDocumentResponseFailedDocument `type:"list"`
  4816  }
  4817  
  4818  // String returns the string representation.
  4819  //
  4820  // API parameter values that are decorated as "sensitive" in the API will not
  4821  // be included in the string output. The member name will be present, but the
  4822  // value will be replaced with "sensitive".
  4823  func (s BatchDeleteDocumentOutput) String() string {
  4824  	return awsutil.Prettify(s)
  4825  }
  4826  
  4827  // GoString returns the string representation.
  4828  //
  4829  // API parameter values that are decorated as "sensitive" in the API will not
  4830  // be included in the string output. The member name will be present, but the
  4831  // value will be replaced with "sensitive".
  4832  func (s BatchDeleteDocumentOutput) GoString() string {
  4833  	return s.String()
  4834  }
  4835  
  4836  // SetFailedDocuments sets the FailedDocuments field's value.
  4837  func (s *BatchDeleteDocumentOutput) SetFailedDocuments(v []*BatchDeleteDocumentResponseFailedDocument) *BatchDeleteDocumentOutput {
  4838  	s.FailedDocuments = v
  4839  	return s
  4840  }
  4841  
  4842  // Provides information about documents that could not be removed from an index
  4843  // by the BatchDeleteDocument operation.
  4844  type BatchDeleteDocumentResponseFailedDocument struct {
  4845  	_ struct{} `type:"structure"`
  4846  
  4847  	// The error code for why the document couldn't be removed from the index.
  4848  	ErrorCode *string `type:"string" enum:"ErrorCode"`
  4849  
  4850  	// An explanation for why the document couldn't be removed from the index.
  4851  	ErrorMessage *string `min:"1" type:"string"`
  4852  
  4853  	// The identifier of the document that couldn't be removed from the index.
  4854  	Id *string `min:"1" type:"string"`
  4855  }
  4856  
  4857  // String returns the string representation.
  4858  //
  4859  // API parameter values that are decorated as "sensitive" in the API will not
  4860  // be included in the string output. The member name will be present, but the
  4861  // value will be replaced with "sensitive".
  4862  func (s BatchDeleteDocumentResponseFailedDocument) String() string {
  4863  	return awsutil.Prettify(s)
  4864  }
  4865  
  4866  // GoString returns the string representation.
  4867  //
  4868  // API parameter values that are decorated as "sensitive" in the API will not
  4869  // be included in the string output. The member name will be present, but the
  4870  // value will be replaced with "sensitive".
  4871  func (s BatchDeleteDocumentResponseFailedDocument) GoString() string {
  4872  	return s.String()
  4873  }
  4874  
  4875  // SetErrorCode sets the ErrorCode field's value.
  4876  func (s *BatchDeleteDocumentResponseFailedDocument) SetErrorCode(v string) *BatchDeleteDocumentResponseFailedDocument {
  4877  	s.ErrorCode = &v
  4878  	return s
  4879  }
  4880  
  4881  // SetErrorMessage sets the ErrorMessage field's value.
  4882  func (s *BatchDeleteDocumentResponseFailedDocument) SetErrorMessage(v string) *BatchDeleteDocumentResponseFailedDocument {
  4883  	s.ErrorMessage = &v
  4884  	return s
  4885  }
  4886  
  4887  // SetId sets the Id field's value.
  4888  func (s *BatchDeleteDocumentResponseFailedDocument) SetId(v string) *BatchDeleteDocumentResponseFailedDocument {
  4889  	s.Id = &v
  4890  	return s
  4891  }
  4892  
  4893  type BatchGetDocumentStatusInput struct {
  4894  	_ struct{} `type:"structure"`
  4895  
  4896  	// A list of DocumentInfo objects that identify the documents for which to get
  4897  	// the status. You identify the documents by their document ID and optional
  4898  	// attributes.
  4899  	//
  4900  	// DocumentInfoList is a required field
  4901  	DocumentInfoList []*DocumentInfo `min:"1" type:"list" required:"true"`
  4902  
  4903  	// The identifier of the index to add documents to. The index ID is returned
  4904  	// by the CreateIndex (https://docs.aws.amazon.com/kendra/latest/dg/API_CreateIndex.html)
  4905  	// operation.
  4906  	//
  4907  	// IndexId is a required field
  4908  	IndexId *string `min:"36" type:"string" required:"true"`
  4909  }
  4910  
  4911  // String 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 BatchGetDocumentStatusInput) String() string {
  4917  	return awsutil.Prettify(s)
  4918  }
  4919  
  4920  // GoString returns the string representation.
  4921  //
  4922  // API parameter values that are decorated as "sensitive" in the API will not
  4923  // be included in the string output. The member name will be present, but the
  4924  // value will be replaced with "sensitive".
  4925  func (s BatchGetDocumentStatusInput) GoString() string {
  4926  	return s.String()
  4927  }
  4928  
  4929  // Validate inspects the fields of the type to determine if they are valid.
  4930  func (s *BatchGetDocumentStatusInput) Validate() error {
  4931  	invalidParams := request.ErrInvalidParams{Context: "BatchGetDocumentStatusInput"}
  4932  	if s.DocumentInfoList == nil {
  4933  		invalidParams.Add(request.NewErrParamRequired("DocumentInfoList"))
  4934  	}
  4935  	if s.DocumentInfoList != nil && len(s.DocumentInfoList) < 1 {
  4936  		invalidParams.Add(request.NewErrParamMinLen("DocumentInfoList", 1))
  4937  	}
  4938  	if s.IndexId == nil {
  4939  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  4940  	}
  4941  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  4942  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  4943  	}
  4944  	if s.DocumentInfoList != nil {
  4945  		for i, v := range s.DocumentInfoList {
  4946  			if v == nil {
  4947  				continue
  4948  			}
  4949  			if err := v.Validate(); err != nil {
  4950  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DocumentInfoList", i), err.(request.ErrInvalidParams))
  4951  			}
  4952  		}
  4953  	}
  4954  
  4955  	if invalidParams.Len() > 0 {
  4956  		return invalidParams
  4957  	}
  4958  	return nil
  4959  }
  4960  
  4961  // SetDocumentInfoList sets the DocumentInfoList field's value.
  4962  func (s *BatchGetDocumentStatusInput) SetDocumentInfoList(v []*DocumentInfo) *BatchGetDocumentStatusInput {
  4963  	s.DocumentInfoList = v
  4964  	return s
  4965  }
  4966  
  4967  // SetIndexId sets the IndexId field's value.
  4968  func (s *BatchGetDocumentStatusInput) SetIndexId(v string) *BatchGetDocumentStatusInput {
  4969  	s.IndexId = &v
  4970  	return s
  4971  }
  4972  
  4973  type BatchGetDocumentStatusOutput struct {
  4974  	_ struct{} `type:"structure"`
  4975  
  4976  	// The status of documents. The status indicates if the document is waiting
  4977  	// to be indexed, is in the process of indexing, has completed indexing, or
  4978  	// failed indexing. If a document failed indexing, the status provides the reason
  4979  	// why.
  4980  	DocumentStatusList []*Status `type:"list"`
  4981  
  4982  	// A list of documents that Amazon Kendra couldn't get the status for. The list
  4983  	// includes the ID of the document and the reason that the status couldn't be
  4984  	// found.
  4985  	Errors []*BatchGetDocumentStatusResponseError `type:"list"`
  4986  }
  4987  
  4988  // String returns the string representation.
  4989  //
  4990  // API parameter values that are decorated as "sensitive" in the API will not
  4991  // be included in the string output. The member name will be present, but the
  4992  // value will be replaced with "sensitive".
  4993  func (s BatchGetDocumentStatusOutput) String() string {
  4994  	return awsutil.Prettify(s)
  4995  }
  4996  
  4997  // GoString returns the string representation.
  4998  //
  4999  // API parameter values that are decorated as "sensitive" in the API will not
  5000  // be included in the string output. The member name will be present, but the
  5001  // value will be replaced with "sensitive".
  5002  func (s BatchGetDocumentStatusOutput) GoString() string {
  5003  	return s.String()
  5004  }
  5005  
  5006  // SetDocumentStatusList sets the DocumentStatusList field's value.
  5007  func (s *BatchGetDocumentStatusOutput) SetDocumentStatusList(v []*Status) *BatchGetDocumentStatusOutput {
  5008  	s.DocumentStatusList = v
  5009  	return s
  5010  }
  5011  
  5012  // SetErrors sets the Errors field's value.
  5013  func (s *BatchGetDocumentStatusOutput) SetErrors(v []*BatchGetDocumentStatusResponseError) *BatchGetDocumentStatusOutput {
  5014  	s.Errors = v
  5015  	return s
  5016  }
  5017  
  5018  // Provides a response when the status of a document could not be retrieved.
  5019  type BatchGetDocumentStatusResponseError struct {
  5020  	_ struct{} `type:"structure"`
  5021  
  5022  	// The unique identifier of the document whose status could not be retrieved.
  5023  	DocumentId *string `min:"1" type:"string"`
  5024  
  5025  	// Indicates the source of the error.
  5026  	ErrorCode *string `type:"string" enum:"ErrorCode"`
  5027  
  5028  	// States that the API could not get the status of a document. This could be
  5029  	// because the request is not valid or there is a system error.
  5030  	ErrorMessage *string `min:"1" type:"string"`
  5031  }
  5032  
  5033  // String returns the string representation.
  5034  //
  5035  // API parameter values that are decorated as "sensitive" in the API will not
  5036  // be included in the string output. The member name will be present, but the
  5037  // value will be replaced with "sensitive".
  5038  func (s BatchGetDocumentStatusResponseError) String() string {
  5039  	return awsutil.Prettify(s)
  5040  }
  5041  
  5042  // GoString returns the string representation.
  5043  //
  5044  // API parameter values that are decorated as "sensitive" in the API will not
  5045  // be included in the string output. The member name will be present, but the
  5046  // value will be replaced with "sensitive".
  5047  func (s BatchGetDocumentStatusResponseError) GoString() string {
  5048  	return s.String()
  5049  }
  5050  
  5051  // SetDocumentId sets the DocumentId field's value.
  5052  func (s *BatchGetDocumentStatusResponseError) SetDocumentId(v string) *BatchGetDocumentStatusResponseError {
  5053  	s.DocumentId = &v
  5054  	return s
  5055  }
  5056  
  5057  // SetErrorCode sets the ErrorCode field's value.
  5058  func (s *BatchGetDocumentStatusResponseError) SetErrorCode(v string) *BatchGetDocumentStatusResponseError {
  5059  	s.ErrorCode = &v
  5060  	return s
  5061  }
  5062  
  5063  // SetErrorMessage sets the ErrorMessage field's value.
  5064  func (s *BatchGetDocumentStatusResponseError) SetErrorMessage(v string) *BatchGetDocumentStatusResponseError {
  5065  	s.ErrorMessage = &v
  5066  	return s
  5067  }
  5068  
  5069  type BatchPutDocumentInput struct {
  5070  	_ struct{} `type:"structure"`
  5071  
  5072  	// One or more documents to add to the index.
  5073  	//
  5074  	// Documents can include custom attributes. For example, 'DataSourceId' and
  5075  	// 'DataSourceSyncJobId' are custom attributes that provide information on the
  5076  	// synchronization of documents running on a data source. Note, 'DataSourceSyncJobId'
  5077  	// could be an optional custom attribute as Amazon Kendra will use the ID of
  5078  	// a running sync job.
  5079  	//
  5080  	// Documents have the following file size limits.
  5081  	//
  5082  	//    * 5 MB total size for inline documents
  5083  	//
  5084  	//    * 50 MB total size for files from an S3 bucket
  5085  	//
  5086  	//    * 5 MB extracted text for any file
  5087  	//
  5088  	// For more information about file size and transaction per second quotas, see
  5089  	// Quotas (https://docs.aws.amazon.com/kendra/latest/dg/quotas.html).
  5090  	//
  5091  	// Documents is a required field
  5092  	Documents []*Document `min:"1" type:"list" required:"true"`
  5093  
  5094  	// The identifier of the index to add the documents to. You need to create the
  5095  	// index first using the CreateIndex operation.
  5096  	//
  5097  	// IndexId is a required field
  5098  	IndexId *string `min:"36" type:"string" required:"true"`
  5099  
  5100  	// The Amazon Resource Name (ARN) of a role that is allowed to run the BatchPutDocument
  5101  	// operation. For more information, see IAM Roles for Amazon Kendra (https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html).
  5102  	RoleArn *string `min:"1" type:"string"`
  5103  }
  5104  
  5105  // String returns the string representation.
  5106  //
  5107  // API parameter values that are decorated as "sensitive" in the API will not
  5108  // be included in the string output. The member name will be present, but the
  5109  // value will be replaced with "sensitive".
  5110  func (s BatchPutDocumentInput) String() string {
  5111  	return awsutil.Prettify(s)
  5112  }
  5113  
  5114  // GoString returns the string representation.
  5115  //
  5116  // API parameter values that are decorated as "sensitive" in the API will not
  5117  // be included in the string output. The member name will be present, but the
  5118  // value will be replaced with "sensitive".
  5119  func (s BatchPutDocumentInput) GoString() string {
  5120  	return s.String()
  5121  }
  5122  
  5123  // Validate inspects the fields of the type to determine if they are valid.
  5124  func (s *BatchPutDocumentInput) Validate() error {
  5125  	invalidParams := request.ErrInvalidParams{Context: "BatchPutDocumentInput"}
  5126  	if s.Documents == nil {
  5127  		invalidParams.Add(request.NewErrParamRequired("Documents"))
  5128  	}
  5129  	if s.Documents != nil && len(s.Documents) < 1 {
  5130  		invalidParams.Add(request.NewErrParamMinLen("Documents", 1))
  5131  	}
  5132  	if s.IndexId == nil {
  5133  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  5134  	}
  5135  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  5136  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  5137  	}
  5138  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
  5139  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
  5140  	}
  5141  	if s.Documents != nil {
  5142  		for i, v := range s.Documents {
  5143  			if v == nil {
  5144  				continue
  5145  			}
  5146  			if err := v.Validate(); err != nil {
  5147  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Documents", i), err.(request.ErrInvalidParams))
  5148  			}
  5149  		}
  5150  	}
  5151  
  5152  	if invalidParams.Len() > 0 {
  5153  		return invalidParams
  5154  	}
  5155  	return nil
  5156  }
  5157  
  5158  // SetDocuments sets the Documents field's value.
  5159  func (s *BatchPutDocumentInput) SetDocuments(v []*Document) *BatchPutDocumentInput {
  5160  	s.Documents = v
  5161  	return s
  5162  }
  5163  
  5164  // SetIndexId sets the IndexId field's value.
  5165  func (s *BatchPutDocumentInput) SetIndexId(v string) *BatchPutDocumentInput {
  5166  	s.IndexId = &v
  5167  	return s
  5168  }
  5169  
  5170  // SetRoleArn sets the RoleArn field's value.
  5171  func (s *BatchPutDocumentInput) SetRoleArn(v string) *BatchPutDocumentInput {
  5172  	s.RoleArn = &v
  5173  	return s
  5174  }
  5175  
  5176  type BatchPutDocumentOutput struct {
  5177  	_ struct{} `type:"structure"`
  5178  
  5179  	// A list of documents that were not added to the index because the document
  5180  	// failed a validation check. Each document contains an error message that indicates
  5181  	// why the document couldn't be added to the index.
  5182  	//
  5183  	// If there was an error adding a document to an index the error is reported
  5184  	// in your Amazon Web Services CloudWatch log. For more information, see Monitoring
  5185  	// Amazon Kendra with Amazon CloudWatch Logs (https://docs.aws.amazon.com/kendra/latest/dg/cloudwatch-logs.html)
  5186  	FailedDocuments []*BatchPutDocumentResponseFailedDocument `type:"list"`
  5187  }
  5188  
  5189  // String returns the string representation.
  5190  //
  5191  // API parameter values that are decorated as "sensitive" in the API will not
  5192  // be included in the string output. The member name will be present, but the
  5193  // value will be replaced with "sensitive".
  5194  func (s BatchPutDocumentOutput) String() string {
  5195  	return awsutil.Prettify(s)
  5196  }
  5197  
  5198  // GoString returns the string representation.
  5199  //
  5200  // API parameter values that are decorated as "sensitive" in the API will not
  5201  // be included in the string output. The member name will be present, but the
  5202  // value will be replaced with "sensitive".
  5203  func (s BatchPutDocumentOutput) GoString() string {
  5204  	return s.String()
  5205  }
  5206  
  5207  // SetFailedDocuments sets the FailedDocuments field's value.
  5208  func (s *BatchPutDocumentOutput) SetFailedDocuments(v []*BatchPutDocumentResponseFailedDocument) *BatchPutDocumentOutput {
  5209  	s.FailedDocuments = v
  5210  	return s
  5211  }
  5212  
  5213  // Provides information about a document that could not be indexed.
  5214  type BatchPutDocumentResponseFailedDocument struct {
  5215  	_ struct{} `type:"structure"`
  5216  
  5217  	// The type of error that caused the document to fail to be indexed.
  5218  	ErrorCode *string `type:"string" enum:"ErrorCode"`
  5219  
  5220  	// A description of the reason why the document could not be indexed.
  5221  	ErrorMessage *string `min:"1" type:"string"`
  5222  
  5223  	// The unique identifier of the document.
  5224  	Id *string `min:"1" type:"string"`
  5225  }
  5226  
  5227  // String returns the string representation.
  5228  //
  5229  // API parameter values that are decorated as "sensitive" in the API will not
  5230  // be included in the string output. The member name will be present, but the
  5231  // value will be replaced with "sensitive".
  5232  func (s BatchPutDocumentResponseFailedDocument) String() string {
  5233  	return awsutil.Prettify(s)
  5234  }
  5235  
  5236  // GoString returns the string representation.
  5237  //
  5238  // API parameter values that are decorated as "sensitive" in the API will not
  5239  // be included in the string output. The member name will be present, but the
  5240  // value will be replaced with "sensitive".
  5241  func (s BatchPutDocumentResponseFailedDocument) GoString() string {
  5242  	return s.String()
  5243  }
  5244  
  5245  // SetErrorCode sets the ErrorCode field's value.
  5246  func (s *BatchPutDocumentResponseFailedDocument) SetErrorCode(v string) *BatchPutDocumentResponseFailedDocument {
  5247  	s.ErrorCode = &v
  5248  	return s
  5249  }
  5250  
  5251  // SetErrorMessage sets the ErrorMessage field's value.
  5252  func (s *BatchPutDocumentResponseFailedDocument) SetErrorMessage(v string) *BatchPutDocumentResponseFailedDocument {
  5253  	s.ErrorMessage = &v
  5254  	return s
  5255  }
  5256  
  5257  // SetId sets the Id field's value.
  5258  func (s *BatchPutDocumentResponseFailedDocument) SetId(v string) *BatchPutDocumentResponseFailedDocument {
  5259  	s.Id = &v
  5260  	return s
  5261  }
  5262  
  5263  // Specifies capacity units configured for your enterprise edition index. You
  5264  // can add and remove capacity units to tune an index to your requirements.
  5265  type CapacityUnitsConfiguration struct {
  5266  	_ struct{} `type:"structure"`
  5267  
  5268  	// The amount of extra query capacity for an index and GetQuerySuggestions (https://docs.aws.amazon.com/kendra/latest/dg/API_GetQuerySuggestions.html)
  5269  	// capacity.
  5270  	//
  5271  	// A single extra capacity unit for an index provides 0.1 queries per second
  5272  	// or approximately 8,000 queries per day.
  5273  	//
  5274  	// GetQuerySuggestions capacity is five times the provisioned query capacity
  5275  	// for an index, or the base capacity of 2.5 calls per second, whichever is
  5276  	// higher. For example, the base capacity for an index is 0.1 queries per second,
  5277  	// and GetQuerySuggestions capacity has a base of 2.5 calls per second. If you
  5278  	// add another 0.1 queries per second to total 0.2 queries per second for an
  5279  	// index, the GetQuerySuggestions capacity is 2.5 calls per second (higher than
  5280  	// five times 0.2 queries per second).
  5281  	//
  5282  	// QueryCapacityUnits is a required field
  5283  	QueryCapacityUnits *int64 `type:"integer" required:"true"`
  5284  
  5285  	// The amount of extra storage capacity for an index. A single capacity unit
  5286  	// provides 30 GB of storage space or 100,000 documents, whichever is reached
  5287  	// first.
  5288  	//
  5289  	// StorageCapacityUnits is a required field
  5290  	StorageCapacityUnits *int64 `type:"integer" required:"true"`
  5291  }
  5292  
  5293  // String returns the string representation.
  5294  //
  5295  // API parameter values that are decorated as "sensitive" in the API will not
  5296  // be included in the string output. The member name will be present, but the
  5297  // value will be replaced with "sensitive".
  5298  func (s CapacityUnitsConfiguration) String() string {
  5299  	return awsutil.Prettify(s)
  5300  }
  5301  
  5302  // GoString returns the string representation.
  5303  //
  5304  // API parameter values that are decorated as "sensitive" in the API will not
  5305  // be included in the string output. The member name will be present, but the
  5306  // value will be replaced with "sensitive".
  5307  func (s CapacityUnitsConfiguration) GoString() string {
  5308  	return s.String()
  5309  }
  5310  
  5311  // Validate inspects the fields of the type to determine if they are valid.
  5312  func (s *CapacityUnitsConfiguration) Validate() error {
  5313  	invalidParams := request.ErrInvalidParams{Context: "CapacityUnitsConfiguration"}
  5314  	if s.QueryCapacityUnits == nil {
  5315  		invalidParams.Add(request.NewErrParamRequired("QueryCapacityUnits"))
  5316  	}
  5317  	if s.StorageCapacityUnits == nil {
  5318  		invalidParams.Add(request.NewErrParamRequired("StorageCapacityUnits"))
  5319  	}
  5320  
  5321  	if invalidParams.Len() > 0 {
  5322  		return invalidParams
  5323  	}
  5324  	return nil
  5325  }
  5326  
  5327  // SetQueryCapacityUnits sets the QueryCapacityUnits field's value.
  5328  func (s *CapacityUnitsConfiguration) SetQueryCapacityUnits(v int64) *CapacityUnitsConfiguration {
  5329  	s.QueryCapacityUnits = &v
  5330  	return s
  5331  }
  5332  
  5333  // SetStorageCapacityUnits sets the StorageCapacityUnits field's value.
  5334  func (s *CapacityUnitsConfiguration) SetStorageCapacityUnits(v int64) *CapacityUnitsConfiguration {
  5335  	s.StorageCapacityUnits = &v
  5336  	return s
  5337  }
  5338  
  5339  type ClearQuerySuggestionsInput struct {
  5340  	_ struct{} `type:"structure"`
  5341  
  5342  	// The identifier of the index you want to clear query suggestions from.
  5343  	//
  5344  	// IndexId is a required field
  5345  	IndexId *string `min:"36" type:"string" required:"true"`
  5346  }
  5347  
  5348  // String returns the string representation.
  5349  //
  5350  // API parameter values that are decorated as "sensitive" in the API will not
  5351  // be included in the string output. The member name will be present, but the
  5352  // value will be replaced with "sensitive".
  5353  func (s ClearQuerySuggestionsInput) String() string {
  5354  	return awsutil.Prettify(s)
  5355  }
  5356  
  5357  // GoString returns the string representation.
  5358  //
  5359  // API parameter values that are decorated as "sensitive" in the API will not
  5360  // be included in the string output. The member name will be present, but the
  5361  // value will be replaced with "sensitive".
  5362  func (s ClearQuerySuggestionsInput) GoString() string {
  5363  	return s.String()
  5364  }
  5365  
  5366  // Validate inspects the fields of the type to determine if they are valid.
  5367  func (s *ClearQuerySuggestionsInput) Validate() error {
  5368  	invalidParams := request.ErrInvalidParams{Context: "ClearQuerySuggestionsInput"}
  5369  	if s.IndexId == nil {
  5370  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  5371  	}
  5372  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  5373  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  5374  	}
  5375  
  5376  	if invalidParams.Len() > 0 {
  5377  		return invalidParams
  5378  	}
  5379  	return nil
  5380  }
  5381  
  5382  // SetIndexId sets the IndexId field's value.
  5383  func (s *ClearQuerySuggestionsInput) SetIndexId(v string) *ClearQuerySuggestionsInput {
  5384  	s.IndexId = &v
  5385  	return s
  5386  }
  5387  
  5388  type ClearQuerySuggestionsOutput struct {
  5389  	_ struct{} `type:"structure"`
  5390  }
  5391  
  5392  // String returns the string representation.
  5393  //
  5394  // API parameter values that are decorated as "sensitive" in the API will not
  5395  // be included in the string output. The member name will be present, but the
  5396  // value will be replaced with "sensitive".
  5397  func (s ClearQuerySuggestionsOutput) String() string {
  5398  	return awsutil.Prettify(s)
  5399  }
  5400  
  5401  // GoString returns the string representation.
  5402  //
  5403  // API parameter values that are decorated as "sensitive" in the API will not
  5404  // be included in the string output. The member name will be present, but the
  5405  // value will be replaced with "sensitive".
  5406  func (s ClearQuerySuggestionsOutput) GoString() string {
  5407  	return s.String()
  5408  }
  5409  
  5410  // Gathers information about when a particular result was clicked by a user.
  5411  // Your application uses the SubmitFeedback operation to provide click information.
  5412  type ClickFeedback struct {
  5413  	_ struct{} `type:"structure"`
  5414  
  5415  	// The Unix timestamp of the date and time that the result was clicked.
  5416  	//
  5417  	// ClickTime is a required field
  5418  	ClickTime *time.Time `type:"timestamp" required:"true"`
  5419  
  5420  	// The unique identifier of the search result that was clicked.
  5421  	//
  5422  	// ResultId is a required field
  5423  	ResultId *string `min:"1" type:"string" required:"true"`
  5424  }
  5425  
  5426  // String returns the string representation.
  5427  //
  5428  // API parameter values that are decorated as "sensitive" in the API will not
  5429  // be included in the string output. The member name will be present, but the
  5430  // value will be replaced with "sensitive".
  5431  func (s ClickFeedback) String() string {
  5432  	return awsutil.Prettify(s)
  5433  }
  5434  
  5435  // GoString returns the string representation.
  5436  //
  5437  // API parameter values that are decorated as "sensitive" in the API will not
  5438  // be included in the string output. The member name will be present, but the
  5439  // value will be replaced with "sensitive".
  5440  func (s ClickFeedback) GoString() string {
  5441  	return s.String()
  5442  }
  5443  
  5444  // Validate inspects the fields of the type to determine if they are valid.
  5445  func (s *ClickFeedback) Validate() error {
  5446  	invalidParams := request.ErrInvalidParams{Context: "ClickFeedback"}
  5447  	if s.ClickTime == nil {
  5448  		invalidParams.Add(request.NewErrParamRequired("ClickTime"))
  5449  	}
  5450  	if s.ResultId == nil {
  5451  		invalidParams.Add(request.NewErrParamRequired("ResultId"))
  5452  	}
  5453  	if s.ResultId != nil && len(*s.ResultId) < 1 {
  5454  		invalidParams.Add(request.NewErrParamMinLen("ResultId", 1))
  5455  	}
  5456  
  5457  	if invalidParams.Len() > 0 {
  5458  		return invalidParams
  5459  	}
  5460  	return nil
  5461  }
  5462  
  5463  // SetClickTime sets the ClickTime field's value.
  5464  func (s *ClickFeedback) SetClickTime(v time.Time) *ClickFeedback {
  5465  	s.ClickTime = &v
  5466  	return s
  5467  }
  5468  
  5469  // SetResultId sets the ResultId field's value.
  5470  func (s *ClickFeedback) SetResultId(v string) *ClickFeedback {
  5471  	s.ResultId = &v
  5472  	return s
  5473  }
  5474  
  5475  // Provides information about how Amazon Kendra should use the columns of a
  5476  // database in an index.
  5477  type ColumnConfiguration struct {
  5478  	_ struct{} `type:"structure"`
  5479  
  5480  	// One to five columns that indicate when a document in the database has changed.
  5481  	//
  5482  	// ChangeDetectingColumns is a required field
  5483  	ChangeDetectingColumns []*string `min:"1" type:"list" required:"true"`
  5484  
  5485  	// The column that contains the contents of the document.
  5486  	//
  5487  	// DocumentDataColumnName is a required field
  5488  	DocumentDataColumnName *string `min:"1" type:"string" required:"true"`
  5489  
  5490  	// The column that provides the document's unique identifier.
  5491  	//
  5492  	// DocumentIdColumnName is a required field
  5493  	DocumentIdColumnName *string `min:"1" type:"string" required:"true"`
  5494  
  5495  	// The column that contains the title of the document.
  5496  	DocumentTitleColumnName *string `min:"1" type:"string"`
  5497  
  5498  	// An array of objects that map database column names to the corresponding fields
  5499  	// in an index. You must first create the fields in the index using the UpdateIndex
  5500  	// operation.
  5501  	FieldMappings []*DataSourceToIndexFieldMapping `min:"1" type:"list"`
  5502  }
  5503  
  5504  // String returns the string representation.
  5505  //
  5506  // API parameter values that are decorated as "sensitive" in the API will not
  5507  // be included in the string output. The member name will be present, but the
  5508  // value will be replaced with "sensitive".
  5509  func (s ColumnConfiguration) String() string {
  5510  	return awsutil.Prettify(s)
  5511  }
  5512  
  5513  // GoString returns the string representation.
  5514  //
  5515  // API parameter values that are decorated as "sensitive" in the API will not
  5516  // be included in the string output. The member name will be present, but the
  5517  // value will be replaced with "sensitive".
  5518  func (s ColumnConfiguration) GoString() string {
  5519  	return s.String()
  5520  }
  5521  
  5522  // Validate inspects the fields of the type to determine if they are valid.
  5523  func (s *ColumnConfiguration) Validate() error {
  5524  	invalidParams := request.ErrInvalidParams{Context: "ColumnConfiguration"}
  5525  	if s.ChangeDetectingColumns == nil {
  5526  		invalidParams.Add(request.NewErrParamRequired("ChangeDetectingColumns"))
  5527  	}
  5528  	if s.ChangeDetectingColumns != nil && len(s.ChangeDetectingColumns) < 1 {
  5529  		invalidParams.Add(request.NewErrParamMinLen("ChangeDetectingColumns", 1))
  5530  	}
  5531  	if s.DocumentDataColumnName == nil {
  5532  		invalidParams.Add(request.NewErrParamRequired("DocumentDataColumnName"))
  5533  	}
  5534  	if s.DocumentDataColumnName != nil && len(*s.DocumentDataColumnName) < 1 {
  5535  		invalidParams.Add(request.NewErrParamMinLen("DocumentDataColumnName", 1))
  5536  	}
  5537  	if s.DocumentIdColumnName == nil {
  5538  		invalidParams.Add(request.NewErrParamRequired("DocumentIdColumnName"))
  5539  	}
  5540  	if s.DocumentIdColumnName != nil && len(*s.DocumentIdColumnName) < 1 {
  5541  		invalidParams.Add(request.NewErrParamMinLen("DocumentIdColumnName", 1))
  5542  	}
  5543  	if s.DocumentTitleColumnName != nil && len(*s.DocumentTitleColumnName) < 1 {
  5544  		invalidParams.Add(request.NewErrParamMinLen("DocumentTitleColumnName", 1))
  5545  	}
  5546  	if s.FieldMappings != nil && len(s.FieldMappings) < 1 {
  5547  		invalidParams.Add(request.NewErrParamMinLen("FieldMappings", 1))
  5548  	}
  5549  	if s.FieldMappings != nil {
  5550  		for i, v := range s.FieldMappings {
  5551  			if v == nil {
  5552  				continue
  5553  			}
  5554  			if err := v.Validate(); err != nil {
  5555  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(request.ErrInvalidParams))
  5556  			}
  5557  		}
  5558  	}
  5559  
  5560  	if invalidParams.Len() > 0 {
  5561  		return invalidParams
  5562  	}
  5563  	return nil
  5564  }
  5565  
  5566  // SetChangeDetectingColumns sets the ChangeDetectingColumns field's value.
  5567  func (s *ColumnConfiguration) SetChangeDetectingColumns(v []*string) *ColumnConfiguration {
  5568  	s.ChangeDetectingColumns = v
  5569  	return s
  5570  }
  5571  
  5572  // SetDocumentDataColumnName sets the DocumentDataColumnName field's value.
  5573  func (s *ColumnConfiguration) SetDocumentDataColumnName(v string) *ColumnConfiguration {
  5574  	s.DocumentDataColumnName = &v
  5575  	return s
  5576  }
  5577  
  5578  // SetDocumentIdColumnName sets the DocumentIdColumnName field's value.
  5579  func (s *ColumnConfiguration) SetDocumentIdColumnName(v string) *ColumnConfiguration {
  5580  	s.DocumentIdColumnName = &v
  5581  	return s
  5582  }
  5583  
  5584  // SetDocumentTitleColumnName sets the DocumentTitleColumnName field's value.
  5585  func (s *ColumnConfiguration) SetDocumentTitleColumnName(v string) *ColumnConfiguration {
  5586  	s.DocumentTitleColumnName = &v
  5587  	return s
  5588  }
  5589  
  5590  // SetFieldMappings sets the FieldMappings field's value.
  5591  func (s *ColumnConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *ColumnConfiguration {
  5592  	s.FieldMappings = v
  5593  	return s
  5594  }
  5595  
  5596  type ConflictException struct {
  5597  	_            struct{}                  `type:"structure"`
  5598  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5599  
  5600  	Message_ *string `locationName:"Message" min:"1" type:"string"`
  5601  }
  5602  
  5603  // String returns the string representation.
  5604  //
  5605  // API parameter values that are decorated as "sensitive" in the API will not
  5606  // be included in the string output. The member name will be present, but the
  5607  // value will be replaced with "sensitive".
  5608  func (s ConflictException) String() string {
  5609  	return awsutil.Prettify(s)
  5610  }
  5611  
  5612  // GoString returns the string representation.
  5613  //
  5614  // API parameter values that are decorated as "sensitive" in the API will not
  5615  // be included in the string output. The member name will be present, but the
  5616  // value will be replaced with "sensitive".
  5617  func (s ConflictException) GoString() string {
  5618  	return s.String()
  5619  }
  5620  
  5621  func newErrorConflictException(v protocol.ResponseMetadata) error {
  5622  	return &ConflictException{
  5623  		RespMetadata: v,
  5624  	}
  5625  }
  5626  
  5627  // Code returns the exception type name.
  5628  func (s *ConflictException) Code() string {
  5629  	return "ConflictException"
  5630  }
  5631  
  5632  // Message returns the exception's message.
  5633  func (s *ConflictException) Message() string {
  5634  	if s.Message_ != nil {
  5635  		return *s.Message_
  5636  	}
  5637  	return ""
  5638  }
  5639  
  5640  // OrigErr always returns nil, satisfies awserr.Error interface.
  5641  func (s *ConflictException) OrigErr() error {
  5642  	return nil
  5643  }
  5644  
  5645  func (s *ConflictException) Error() string {
  5646  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5647  }
  5648  
  5649  // Status code returns the HTTP status code for the request's response error.
  5650  func (s *ConflictException) StatusCode() int {
  5651  	return s.RespMetadata.StatusCode
  5652  }
  5653  
  5654  // RequestID returns the service's response RequestID for request.
  5655  func (s *ConflictException) RequestID() string {
  5656  	return s.RespMetadata.RequestID
  5657  }
  5658  
  5659  // Specifies the attachment settings for the Confluence data source. Attachment
  5660  // settings are optional, if you don't specify settings attachments, Amazon
  5661  // Kendra won't index them.
  5662  type ConfluenceAttachmentConfiguration struct {
  5663  	_ struct{} `type:"structure"`
  5664  
  5665  	// Defines how attachment metadata fields should be mapped to index fields.
  5666  	// Before you can map a field, you must first create an index field with a matching
  5667  	// type using the console or the UpdateIndex operation.
  5668  	//
  5669  	// If you specify the AttachentFieldMappings parameter, you must specify at
  5670  	// least one field mapping.
  5671  	AttachmentFieldMappings []*ConfluenceAttachmentToIndexFieldMapping `min:"1" type:"list"`
  5672  
  5673  	// Indicates whether Amazon Kendra indexes attachments to the pages and blogs
  5674  	// in the Confluence data source.
  5675  	CrawlAttachments *bool `type:"boolean"`
  5676  }
  5677  
  5678  // String returns the string representation.
  5679  //
  5680  // API parameter values that are decorated as "sensitive" in the API will not
  5681  // be included in the string output. The member name will be present, but the
  5682  // value will be replaced with "sensitive".
  5683  func (s ConfluenceAttachmentConfiguration) String() string {
  5684  	return awsutil.Prettify(s)
  5685  }
  5686  
  5687  // GoString 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 ConfluenceAttachmentConfiguration) GoString() string {
  5693  	return s.String()
  5694  }
  5695  
  5696  // Validate inspects the fields of the type to determine if they are valid.
  5697  func (s *ConfluenceAttachmentConfiguration) Validate() error {
  5698  	invalidParams := request.ErrInvalidParams{Context: "ConfluenceAttachmentConfiguration"}
  5699  	if s.AttachmentFieldMappings != nil && len(s.AttachmentFieldMappings) < 1 {
  5700  		invalidParams.Add(request.NewErrParamMinLen("AttachmentFieldMappings", 1))
  5701  	}
  5702  	if s.AttachmentFieldMappings != nil {
  5703  		for i, v := range s.AttachmentFieldMappings {
  5704  			if v == nil {
  5705  				continue
  5706  			}
  5707  			if err := v.Validate(); err != nil {
  5708  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AttachmentFieldMappings", i), err.(request.ErrInvalidParams))
  5709  			}
  5710  		}
  5711  	}
  5712  
  5713  	if invalidParams.Len() > 0 {
  5714  		return invalidParams
  5715  	}
  5716  	return nil
  5717  }
  5718  
  5719  // SetAttachmentFieldMappings sets the AttachmentFieldMappings field's value.
  5720  func (s *ConfluenceAttachmentConfiguration) SetAttachmentFieldMappings(v []*ConfluenceAttachmentToIndexFieldMapping) *ConfluenceAttachmentConfiguration {
  5721  	s.AttachmentFieldMappings = v
  5722  	return s
  5723  }
  5724  
  5725  // SetCrawlAttachments sets the CrawlAttachments field's value.
  5726  func (s *ConfluenceAttachmentConfiguration) SetCrawlAttachments(v bool) *ConfluenceAttachmentConfiguration {
  5727  	s.CrawlAttachments = &v
  5728  	return s
  5729  }
  5730  
  5731  // Defines the mapping between a field in the Confluence data source to a Amazon
  5732  // Kendra index field.
  5733  //
  5734  // You must first create the index field using the UpdateIndex operation.
  5735  type ConfluenceAttachmentToIndexFieldMapping struct {
  5736  	_ struct{} `type:"structure"`
  5737  
  5738  	// The name of the field in the data source.
  5739  	//
  5740  	// You must first create the index field using the UpdateIndex operation.
  5741  	DataSourceFieldName *string `type:"string" enum:"ConfluenceAttachmentFieldName"`
  5742  
  5743  	// The format for date fields in the data source. If the field specified in
  5744  	// DataSourceFieldName is a date field you must specify the date format. If
  5745  	// the field is not a date field, an exception is thrown.
  5746  	DateFieldFormat *string `min:"4" type:"string"`
  5747  
  5748  	// The name of the index field to map to the Confluence data source field. The
  5749  	// index field type must match the Confluence field type.
  5750  	IndexFieldName *string `min:"1" type:"string"`
  5751  }
  5752  
  5753  // String returns the string representation.
  5754  //
  5755  // API parameter values that are decorated as "sensitive" in the API will not
  5756  // be included in the string output. The member name will be present, but the
  5757  // value will be replaced with "sensitive".
  5758  func (s ConfluenceAttachmentToIndexFieldMapping) String() string {
  5759  	return awsutil.Prettify(s)
  5760  }
  5761  
  5762  // GoString returns the string representation.
  5763  //
  5764  // API parameter values that are decorated as "sensitive" in the API will not
  5765  // be included in the string output. The member name will be present, but the
  5766  // value will be replaced with "sensitive".
  5767  func (s ConfluenceAttachmentToIndexFieldMapping) GoString() string {
  5768  	return s.String()
  5769  }
  5770  
  5771  // Validate inspects the fields of the type to determine if they are valid.
  5772  func (s *ConfluenceAttachmentToIndexFieldMapping) Validate() error {
  5773  	invalidParams := request.ErrInvalidParams{Context: "ConfluenceAttachmentToIndexFieldMapping"}
  5774  	if s.DateFieldFormat != nil && len(*s.DateFieldFormat) < 4 {
  5775  		invalidParams.Add(request.NewErrParamMinLen("DateFieldFormat", 4))
  5776  	}
  5777  	if s.IndexFieldName != nil && len(*s.IndexFieldName) < 1 {
  5778  		invalidParams.Add(request.NewErrParamMinLen("IndexFieldName", 1))
  5779  	}
  5780  
  5781  	if invalidParams.Len() > 0 {
  5782  		return invalidParams
  5783  	}
  5784  	return nil
  5785  }
  5786  
  5787  // SetDataSourceFieldName sets the DataSourceFieldName field's value.
  5788  func (s *ConfluenceAttachmentToIndexFieldMapping) SetDataSourceFieldName(v string) *ConfluenceAttachmentToIndexFieldMapping {
  5789  	s.DataSourceFieldName = &v
  5790  	return s
  5791  }
  5792  
  5793  // SetDateFieldFormat sets the DateFieldFormat field's value.
  5794  func (s *ConfluenceAttachmentToIndexFieldMapping) SetDateFieldFormat(v string) *ConfluenceAttachmentToIndexFieldMapping {
  5795  	s.DateFieldFormat = &v
  5796  	return s
  5797  }
  5798  
  5799  // SetIndexFieldName sets the IndexFieldName field's value.
  5800  func (s *ConfluenceAttachmentToIndexFieldMapping) SetIndexFieldName(v string) *ConfluenceAttachmentToIndexFieldMapping {
  5801  	s.IndexFieldName = &v
  5802  	return s
  5803  }
  5804  
  5805  // Specifies the blog settings for the Confluence data source. Blogs are always
  5806  // indexed unless filtered from the index by the ExclusionPatterns or InclusionPatterns
  5807  // fields in the ConfluenceConfiguration type.
  5808  type ConfluenceBlogConfiguration struct {
  5809  	_ struct{} `type:"structure"`
  5810  
  5811  	// Defines how blog metadata fields should be mapped to index fields. Before
  5812  	// you can map a field, you must first create an index field with a matching
  5813  	// type using the console or the UpdateIndex operation.
  5814  	//
  5815  	// If you specify the BlogFieldMappings parameter, you must specify at least
  5816  	// one field mapping.
  5817  	BlogFieldMappings []*ConfluenceBlogToIndexFieldMapping `min:"1" type:"list"`
  5818  }
  5819  
  5820  // String returns the string representation.
  5821  //
  5822  // API parameter values that are decorated as "sensitive" in the API will not
  5823  // be included in the string output. The member name will be present, but the
  5824  // value will be replaced with "sensitive".
  5825  func (s ConfluenceBlogConfiguration) String() string {
  5826  	return awsutil.Prettify(s)
  5827  }
  5828  
  5829  // GoString returns the string representation.
  5830  //
  5831  // API parameter values that are decorated as "sensitive" in the API will not
  5832  // be included in the string output. The member name will be present, but the
  5833  // value will be replaced with "sensitive".
  5834  func (s ConfluenceBlogConfiguration) GoString() string {
  5835  	return s.String()
  5836  }
  5837  
  5838  // Validate inspects the fields of the type to determine if they are valid.
  5839  func (s *ConfluenceBlogConfiguration) Validate() error {
  5840  	invalidParams := request.ErrInvalidParams{Context: "ConfluenceBlogConfiguration"}
  5841  	if s.BlogFieldMappings != nil && len(s.BlogFieldMappings) < 1 {
  5842  		invalidParams.Add(request.NewErrParamMinLen("BlogFieldMappings", 1))
  5843  	}
  5844  	if s.BlogFieldMappings != nil {
  5845  		for i, v := range s.BlogFieldMappings {
  5846  			if v == nil {
  5847  				continue
  5848  			}
  5849  			if err := v.Validate(); err != nil {
  5850  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BlogFieldMappings", i), err.(request.ErrInvalidParams))
  5851  			}
  5852  		}
  5853  	}
  5854  
  5855  	if invalidParams.Len() > 0 {
  5856  		return invalidParams
  5857  	}
  5858  	return nil
  5859  }
  5860  
  5861  // SetBlogFieldMappings sets the BlogFieldMappings field's value.
  5862  func (s *ConfluenceBlogConfiguration) SetBlogFieldMappings(v []*ConfluenceBlogToIndexFieldMapping) *ConfluenceBlogConfiguration {
  5863  	s.BlogFieldMappings = v
  5864  	return s
  5865  }
  5866  
  5867  // Defines the mapping between a blog field in the Confluence data source to
  5868  // a Amazon Kendra index field.
  5869  //
  5870  // You must first create the index field using the UpdateIndex operation.
  5871  type ConfluenceBlogToIndexFieldMapping struct {
  5872  	_ struct{} `type:"structure"`
  5873  
  5874  	// The name of the field in the data source.
  5875  	DataSourceFieldName *string `type:"string" enum:"ConfluenceBlogFieldName"`
  5876  
  5877  	// The format for date fields in the data source. If the field specified in
  5878  	// DataSourceFieldName is a date field you must specify the date format. If
  5879  	// the field is not a date field, an exception is thrown.
  5880  	DateFieldFormat *string `min:"4" type:"string"`
  5881  
  5882  	// The name of the index field to map to the Confluence data source field. The
  5883  	// index field type must match the Confluence field type.
  5884  	IndexFieldName *string `min:"1" type:"string"`
  5885  }
  5886  
  5887  // String returns the string representation.
  5888  //
  5889  // API parameter values that are decorated as "sensitive" in the API will not
  5890  // be included in the string output. The member name will be present, but the
  5891  // value will be replaced with "sensitive".
  5892  func (s ConfluenceBlogToIndexFieldMapping) String() string {
  5893  	return awsutil.Prettify(s)
  5894  }
  5895  
  5896  // GoString returns the string representation.
  5897  //
  5898  // API parameter values that are decorated as "sensitive" in the API will not
  5899  // be included in the string output. The member name will be present, but the
  5900  // value will be replaced with "sensitive".
  5901  func (s ConfluenceBlogToIndexFieldMapping) GoString() string {
  5902  	return s.String()
  5903  }
  5904  
  5905  // Validate inspects the fields of the type to determine if they are valid.
  5906  func (s *ConfluenceBlogToIndexFieldMapping) Validate() error {
  5907  	invalidParams := request.ErrInvalidParams{Context: "ConfluenceBlogToIndexFieldMapping"}
  5908  	if s.DateFieldFormat != nil && len(*s.DateFieldFormat) < 4 {
  5909  		invalidParams.Add(request.NewErrParamMinLen("DateFieldFormat", 4))
  5910  	}
  5911  	if s.IndexFieldName != nil && len(*s.IndexFieldName) < 1 {
  5912  		invalidParams.Add(request.NewErrParamMinLen("IndexFieldName", 1))
  5913  	}
  5914  
  5915  	if invalidParams.Len() > 0 {
  5916  		return invalidParams
  5917  	}
  5918  	return nil
  5919  }
  5920  
  5921  // SetDataSourceFieldName sets the DataSourceFieldName field's value.
  5922  func (s *ConfluenceBlogToIndexFieldMapping) SetDataSourceFieldName(v string) *ConfluenceBlogToIndexFieldMapping {
  5923  	s.DataSourceFieldName = &v
  5924  	return s
  5925  }
  5926  
  5927  // SetDateFieldFormat sets the DateFieldFormat field's value.
  5928  func (s *ConfluenceBlogToIndexFieldMapping) SetDateFieldFormat(v string) *ConfluenceBlogToIndexFieldMapping {
  5929  	s.DateFieldFormat = &v
  5930  	return s
  5931  }
  5932  
  5933  // SetIndexFieldName sets the IndexFieldName field's value.
  5934  func (s *ConfluenceBlogToIndexFieldMapping) SetIndexFieldName(v string) *ConfluenceBlogToIndexFieldMapping {
  5935  	s.IndexFieldName = &v
  5936  	return s
  5937  }
  5938  
  5939  // Provides configuration information for data sources that connect to Confluence.
  5940  type ConfluenceConfiguration struct {
  5941  	_ struct{} `type:"structure"`
  5942  
  5943  	// Specifies configuration information for indexing attachments to Confluence
  5944  	// blogs and pages.
  5945  	AttachmentConfiguration *ConfluenceAttachmentConfiguration `type:"structure"`
  5946  
  5947  	// Specifies configuration information for indexing Confluence blogs.
  5948  	BlogConfiguration *ConfluenceBlogConfiguration `type:"structure"`
  5949  
  5950  	// A list of regular expression patterns that apply to a URL on the Confluence
  5951  	// server. An exclusion pattern can apply to a blog post, a page, a space, or
  5952  	// an attachment. Items that match the pattern are excluded from the index.
  5953  	// Items that don't match the pattern are included in the index. If a item matches
  5954  	// both an exclusion pattern and an inclusion pattern, the item isn't included
  5955  	// in the index.
  5956  	ExclusionPatterns []*string `type:"list"`
  5957  
  5958  	// A list of regular expression patterns that apply to a URL on the Confluence
  5959  	// server. An inclusion pattern can apply to a blog post, a page, a space, or
  5960  	// an attachment. Items that match the patterns are included in the index. Items
  5961  	// that don't match the pattern are excluded from the index. If an item matches
  5962  	// both an inclusion pattern and an exclusion pattern, the item isn't included
  5963  	// in the index.
  5964  	InclusionPatterns []*string `type:"list"`
  5965  
  5966  	// Specifies configuration information for indexing Confluence pages.
  5967  	PageConfiguration *ConfluencePageConfiguration `type:"structure"`
  5968  
  5969  	// The Amazon Resource Name (ARN) of an Secrets Managersecret that contains
  5970  	// the key/value pairs required to connect to your Confluence server. The secret
  5971  	// must contain a JSON structure with the following keys:
  5972  	//
  5973  	//    * username - The user name or email address of a user with administrative
  5974  	//    privileges for the Confluence server.
  5975  	//
  5976  	//    * password - The password associated with the user logging in to the Confluence
  5977  	//    server.
  5978  	//
  5979  	// SecretArn is a required field
  5980  	SecretArn *string `min:"1" type:"string" required:"true"`
  5981  
  5982  	// The URL of your Confluence instance. Use the full URL of the server. For
  5983  	// example, https://server.example.com:port/. You can also use an IP address,
  5984  	// for example, https://192.168.1.113/.
  5985  	//
  5986  	// ServerUrl is a required field
  5987  	ServerUrl *string `min:"1" type:"string" required:"true"`
  5988  
  5989  	// Specifies configuration information for indexing Confluence spaces.
  5990  	SpaceConfiguration *ConfluenceSpaceConfiguration `type:"structure"`
  5991  
  5992  	// Specifies the version of the Confluence installation that you are connecting
  5993  	// to.
  5994  	//
  5995  	// Version is a required field
  5996  	Version *string `type:"string" required:"true" enum:"ConfluenceVersion"`
  5997  
  5998  	// Specifies the information for connecting to an Amazon VPC.
  5999  	VpcConfiguration *DataSourceVpcConfiguration `type:"structure"`
  6000  }
  6001  
  6002  // String returns the string representation.
  6003  //
  6004  // API parameter values that are decorated as "sensitive" in the API will not
  6005  // be included in the string output. The member name will be present, but the
  6006  // value will be replaced with "sensitive".
  6007  func (s ConfluenceConfiguration) String() string {
  6008  	return awsutil.Prettify(s)
  6009  }
  6010  
  6011  // GoString returns the string representation.
  6012  //
  6013  // API parameter values that are decorated as "sensitive" in the API will not
  6014  // be included in the string output. The member name will be present, but the
  6015  // value will be replaced with "sensitive".
  6016  func (s ConfluenceConfiguration) GoString() string {
  6017  	return s.String()
  6018  }
  6019  
  6020  // Validate inspects the fields of the type to determine if they are valid.
  6021  func (s *ConfluenceConfiguration) Validate() error {
  6022  	invalidParams := request.ErrInvalidParams{Context: "ConfluenceConfiguration"}
  6023  	if s.SecretArn == nil {
  6024  		invalidParams.Add(request.NewErrParamRequired("SecretArn"))
  6025  	}
  6026  	if s.SecretArn != nil && len(*s.SecretArn) < 1 {
  6027  		invalidParams.Add(request.NewErrParamMinLen("SecretArn", 1))
  6028  	}
  6029  	if s.ServerUrl == nil {
  6030  		invalidParams.Add(request.NewErrParamRequired("ServerUrl"))
  6031  	}
  6032  	if s.ServerUrl != nil && len(*s.ServerUrl) < 1 {
  6033  		invalidParams.Add(request.NewErrParamMinLen("ServerUrl", 1))
  6034  	}
  6035  	if s.Version == nil {
  6036  		invalidParams.Add(request.NewErrParamRequired("Version"))
  6037  	}
  6038  	if s.AttachmentConfiguration != nil {
  6039  		if err := s.AttachmentConfiguration.Validate(); err != nil {
  6040  			invalidParams.AddNested("AttachmentConfiguration", err.(request.ErrInvalidParams))
  6041  		}
  6042  	}
  6043  	if s.BlogConfiguration != nil {
  6044  		if err := s.BlogConfiguration.Validate(); err != nil {
  6045  			invalidParams.AddNested("BlogConfiguration", err.(request.ErrInvalidParams))
  6046  		}
  6047  	}
  6048  	if s.PageConfiguration != nil {
  6049  		if err := s.PageConfiguration.Validate(); err != nil {
  6050  			invalidParams.AddNested("PageConfiguration", err.(request.ErrInvalidParams))
  6051  		}
  6052  	}
  6053  	if s.SpaceConfiguration != nil {
  6054  		if err := s.SpaceConfiguration.Validate(); err != nil {
  6055  			invalidParams.AddNested("SpaceConfiguration", err.(request.ErrInvalidParams))
  6056  		}
  6057  	}
  6058  	if s.VpcConfiguration != nil {
  6059  		if err := s.VpcConfiguration.Validate(); err != nil {
  6060  			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
  6061  		}
  6062  	}
  6063  
  6064  	if invalidParams.Len() > 0 {
  6065  		return invalidParams
  6066  	}
  6067  	return nil
  6068  }
  6069  
  6070  // SetAttachmentConfiguration sets the AttachmentConfiguration field's value.
  6071  func (s *ConfluenceConfiguration) SetAttachmentConfiguration(v *ConfluenceAttachmentConfiguration) *ConfluenceConfiguration {
  6072  	s.AttachmentConfiguration = v
  6073  	return s
  6074  }
  6075  
  6076  // SetBlogConfiguration sets the BlogConfiguration field's value.
  6077  func (s *ConfluenceConfiguration) SetBlogConfiguration(v *ConfluenceBlogConfiguration) *ConfluenceConfiguration {
  6078  	s.BlogConfiguration = v
  6079  	return s
  6080  }
  6081  
  6082  // SetExclusionPatterns sets the ExclusionPatterns field's value.
  6083  func (s *ConfluenceConfiguration) SetExclusionPatterns(v []*string) *ConfluenceConfiguration {
  6084  	s.ExclusionPatterns = v
  6085  	return s
  6086  }
  6087  
  6088  // SetInclusionPatterns sets the InclusionPatterns field's value.
  6089  func (s *ConfluenceConfiguration) SetInclusionPatterns(v []*string) *ConfluenceConfiguration {
  6090  	s.InclusionPatterns = v
  6091  	return s
  6092  }
  6093  
  6094  // SetPageConfiguration sets the PageConfiguration field's value.
  6095  func (s *ConfluenceConfiguration) SetPageConfiguration(v *ConfluencePageConfiguration) *ConfluenceConfiguration {
  6096  	s.PageConfiguration = v
  6097  	return s
  6098  }
  6099  
  6100  // SetSecretArn sets the SecretArn field's value.
  6101  func (s *ConfluenceConfiguration) SetSecretArn(v string) *ConfluenceConfiguration {
  6102  	s.SecretArn = &v
  6103  	return s
  6104  }
  6105  
  6106  // SetServerUrl sets the ServerUrl field's value.
  6107  func (s *ConfluenceConfiguration) SetServerUrl(v string) *ConfluenceConfiguration {
  6108  	s.ServerUrl = &v
  6109  	return s
  6110  }
  6111  
  6112  // SetSpaceConfiguration sets the SpaceConfiguration field's value.
  6113  func (s *ConfluenceConfiguration) SetSpaceConfiguration(v *ConfluenceSpaceConfiguration) *ConfluenceConfiguration {
  6114  	s.SpaceConfiguration = v
  6115  	return s
  6116  }
  6117  
  6118  // SetVersion sets the Version field's value.
  6119  func (s *ConfluenceConfiguration) SetVersion(v string) *ConfluenceConfiguration {
  6120  	s.Version = &v
  6121  	return s
  6122  }
  6123  
  6124  // SetVpcConfiguration sets the VpcConfiguration field's value.
  6125  func (s *ConfluenceConfiguration) SetVpcConfiguration(v *DataSourceVpcConfiguration) *ConfluenceConfiguration {
  6126  	s.VpcConfiguration = v
  6127  	return s
  6128  }
  6129  
  6130  // Specifies the page settings for the Confluence data source.
  6131  type ConfluencePageConfiguration struct {
  6132  	_ struct{} `type:"structure"`
  6133  
  6134  	// Defines how page metadata fields should be mapped to index fields. Before
  6135  	// you can map a field, you must first create an index field with a matching
  6136  	// type using the console or the UpdateIndex operation.
  6137  	//
  6138  	// If you specify the PageFieldMappings parameter, you must specify at least
  6139  	// one field mapping.
  6140  	PageFieldMappings []*ConfluencePageToIndexFieldMapping `min:"1" type:"list"`
  6141  }
  6142  
  6143  // String returns the string representation.
  6144  //
  6145  // API parameter values that are decorated as "sensitive" in the API will not
  6146  // be included in the string output. The member name will be present, but the
  6147  // value will be replaced with "sensitive".
  6148  func (s ConfluencePageConfiguration) String() string {
  6149  	return awsutil.Prettify(s)
  6150  }
  6151  
  6152  // GoString returns the string representation.
  6153  //
  6154  // API parameter values that are decorated as "sensitive" in the API will not
  6155  // be included in the string output. The member name will be present, but the
  6156  // value will be replaced with "sensitive".
  6157  func (s ConfluencePageConfiguration) GoString() string {
  6158  	return s.String()
  6159  }
  6160  
  6161  // Validate inspects the fields of the type to determine if they are valid.
  6162  func (s *ConfluencePageConfiguration) Validate() error {
  6163  	invalidParams := request.ErrInvalidParams{Context: "ConfluencePageConfiguration"}
  6164  	if s.PageFieldMappings != nil && len(s.PageFieldMappings) < 1 {
  6165  		invalidParams.Add(request.NewErrParamMinLen("PageFieldMappings", 1))
  6166  	}
  6167  	if s.PageFieldMappings != nil {
  6168  		for i, v := range s.PageFieldMappings {
  6169  			if v == nil {
  6170  				continue
  6171  			}
  6172  			if err := v.Validate(); err != nil {
  6173  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PageFieldMappings", i), err.(request.ErrInvalidParams))
  6174  			}
  6175  		}
  6176  	}
  6177  
  6178  	if invalidParams.Len() > 0 {
  6179  		return invalidParams
  6180  	}
  6181  	return nil
  6182  }
  6183  
  6184  // SetPageFieldMappings sets the PageFieldMappings field's value.
  6185  func (s *ConfluencePageConfiguration) SetPageFieldMappings(v []*ConfluencePageToIndexFieldMapping) *ConfluencePageConfiguration {
  6186  	s.PageFieldMappings = v
  6187  	return s
  6188  }
  6189  
  6190  // Defines the mapping between a field in the Confluence data source to a Amazon
  6191  // Kendra index field.
  6192  //
  6193  // You must first create the index field using the UpdateIndex operation.
  6194  type ConfluencePageToIndexFieldMapping struct {
  6195  	_ struct{} `type:"structure"`
  6196  
  6197  	// The name of the field in the data source.
  6198  	DataSourceFieldName *string `type:"string" enum:"ConfluencePageFieldName"`
  6199  
  6200  	// The format for date fields in the data source. If the field specified in
  6201  	// DataSourceFieldName is a date field you must specify the date format. If
  6202  	// the field is not a date field, an exception is thrown.
  6203  	DateFieldFormat *string `min:"4" type:"string"`
  6204  
  6205  	// The name of the index field to map to the Confluence data source field. The
  6206  	// index field type must match the Confluence field type.
  6207  	IndexFieldName *string `min:"1" type:"string"`
  6208  }
  6209  
  6210  // String returns the string representation.
  6211  //
  6212  // API parameter values that are decorated as "sensitive" in the API will not
  6213  // be included in the string output. The member name will be present, but the
  6214  // value will be replaced with "sensitive".
  6215  func (s ConfluencePageToIndexFieldMapping) String() string {
  6216  	return awsutil.Prettify(s)
  6217  }
  6218  
  6219  // GoString returns the string representation.
  6220  //
  6221  // API parameter values that are decorated as "sensitive" in the API will not
  6222  // be included in the string output. The member name will be present, but the
  6223  // value will be replaced with "sensitive".
  6224  func (s ConfluencePageToIndexFieldMapping) GoString() string {
  6225  	return s.String()
  6226  }
  6227  
  6228  // Validate inspects the fields of the type to determine if they are valid.
  6229  func (s *ConfluencePageToIndexFieldMapping) Validate() error {
  6230  	invalidParams := request.ErrInvalidParams{Context: "ConfluencePageToIndexFieldMapping"}
  6231  	if s.DateFieldFormat != nil && len(*s.DateFieldFormat) < 4 {
  6232  		invalidParams.Add(request.NewErrParamMinLen("DateFieldFormat", 4))
  6233  	}
  6234  	if s.IndexFieldName != nil && len(*s.IndexFieldName) < 1 {
  6235  		invalidParams.Add(request.NewErrParamMinLen("IndexFieldName", 1))
  6236  	}
  6237  
  6238  	if invalidParams.Len() > 0 {
  6239  		return invalidParams
  6240  	}
  6241  	return nil
  6242  }
  6243  
  6244  // SetDataSourceFieldName sets the DataSourceFieldName field's value.
  6245  func (s *ConfluencePageToIndexFieldMapping) SetDataSourceFieldName(v string) *ConfluencePageToIndexFieldMapping {
  6246  	s.DataSourceFieldName = &v
  6247  	return s
  6248  }
  6249  
  6250  // SetDateFieldFormat sets the DateFieldFormat field's value.
  6251  func (s *ConfluencePageToIndexFieldMapping) SetDateFieldFormat(v string) *ConfluencePageToIndexFieldMapping {
  6252  	s.DateFieldFormat = &v
  6253  	return s
  6254  }
  6255  
  6256  // SetIndexFieldName sets the IndexFieldName field's value.
  6257  func (s *ConfluencePageToIndexFieldMapping) SetIndexFieldName(v string) *ConfluencePageToIndexFieldMapping {
  6258  	s.IndexFieldName = &v
  6259  	return s
  6260  }
  6261  
  6262  // Specifies the configuration for indexing Confluence spaces.
  6263  type ConfluenceSpaceConfiguration struct {
  6264  	_ struct{} `type:"structure"`
  6265  
  6266  	// Specifies whether Amazon Kendra should index archived spaces.
  6267  	CrawlArchivedSpaces *bool `type:"boolean"`
  6268  
  6269  	// Specifies whether Amazon Kendra should index personal spaces. Users can add
  6270  	// restrictions to items in personal spaces. If personal spaces are indexed,
  6271  	// queries without user context information may return restricted items from
  6272  	// a personal space in their results. For more information, see Filtering on
  6273  	// user context (https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html).
  6274  	CrawlPersonalSpaces *bool `type:"boolean"`
  6275  
  6276  	// A list of space keys of Confluence spaces. If you include a key, the blogs,
  6277  	// documents, and attachments in the space are not indexed. If a space is in
  6278  	// both the ExcludeSpaces and the IncludeSpaces list, the space is excluded.
  6279  	ExcludeSpaces []*string `min:"1" type:"list"`
  6280  
  6281  	// A list of space keys for Confluence spaces. If you include a key, the blogs,
  6282  	// documents, and attachments in the space are indexed. Spaces that aren't in
  6283  	// the list aren't indexed. A space in the list must exist. Otherwise, Amazon
  6284  	// Kendra logs an error when the data source is synchronized. If a space is
  6285  	// in both the IncludeSpaces and the ExcludeSpaces list, the space is excluded.
  6286  	IncludeSpaces []*string `min:"1" type:"list"`
  6287  
  6288  	// Defines how space metadata fields should be mapped to index fields. Before
  6289  	// you can map a field, you must first create an index field with a matching
  6290  	// type using the console or the UpdateIndex operation.
  6291  	//
  6292  	// If you specify the SpaceFieldMappings parameter, you must specify at least
  6293  	// one field mapping.
  6294  	SpaceFieldMappings []*ConfluenceSpaceToIndexFieldMapping `min:"1" type:"list"`
  6295  }
  6296  
  6297  // String returns the string representation.
  6298  //
  6299  // API parameter values that are decorated as "sensitive" in the API will not
  6300  // be included in the string output. The member name will be present, but the
  6301  // value will be replaced with "sensitive".
  6302  func (s ConfluenceSpaceConfiguration) String() string {
  6303  	return awsutil.Prettify(s)
  6304  }
  6305  
  6306  // GoString returns the string representation.
  6307  //
  6308  // API parameter values that are decorated as "sensitive" in the API will not
  6309  // be included in the string output. The member name will be present, but the
  6310  // value will be replaced with "sensitive".
  6311  func (s ConfluenceSpaceConfiguration) GoString() string {
  6312  	return s.String()
  6313  }
  6314  
  6315  // Validate inspects the fields of the type to determine if they are valid.
  6316  func (s *ConfluenceSpaceConfiguration) Validate() error {
  6317  	invalidParams := request.ErrInvalidParams{Context: "ConfluenceSpaceConfiguration"}
  6318  	if s.ExcludeSpaces != nil && len(s.ExcludeSpaces) < 1 {
  6319  		invalidParams.Add(request.NewErrParamMinLen("ExcludeSpaces", 1))
  6320  	}
  6321  	if s.IncludeSpaces != nil && len(s.IncludeSpaces) < 1 {
  6322  		invalidParams.Add(request.NewErrParamMinLen("IncludeSpaces", 1))
  6323  	}
  6324  	if s.SpaceFieldMappings != nil && len(s.SpaceFieldMappings) < 1 {
  6325  		invalidParams.Add(request.NewErrParamMinLen("SpaceFieldMappings", 1))
  6326  	}
  6327  	if s.SpaceFieldMappings != nil {
  6328  		for i, v := range s.SpaceFieldMappings {
  6329  			if v == nil {
  6330  				continue
  6331  			}
  6332  			if err := v.Validate(); err != nil {
  6333  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SpaceFieldMappings", i), err.(request.ErrInvalidParams))
  6334  			}
  6335  		}
  6336  	}
  6337  
  6338  	if invalidParams.Len() > 0 {
  6339  		return invalidParams
  6340  	}
  6341  	return nil
  6342  }
  6343  
  6344  // SetCrawlArchivedSpaces sets the CrawlArchivedSpaces field's value.
  6345  func (s *ConfluenceSpaceConfiguration) SetCrawlArchivedSpaces(v bool) *ConfluenceSpaceConfiguration {
  6346  	s.CrawlArchivedSpaces = &v
  6347  	return s
  6348  }
  6349  
  6350  // SetCrawlPersonalSpaces sets the CrawlPersonalSpaces field's value.
  6351  func (s *ConfluenceSpaceConfiguration) SetCrawlPersonalSpaces(v bool) *ConfluenceSpaceConfiguration {
  6352  	s.CrawlPersonalSpaces = &v
  6353  	return s
  6354  }
  6355  
  6356  // SetExcludeSpaces sets the ExcludeSpaces field's value.
  6357  func (s *ConfluenceSpaceConfiguration) SetExcludeSpaces(v []*string) *ConfluenceSpaceConfiguration {
  6358  	s.ExcludeSpaces = v
  6359  	return s
  6360  }
  6361  
  6362  // SetIncludeSpaces sets the IncludeSpaces field's value.
  6363  func (s *ConfluenceSpaceConfiguration) SetIncludeSpaces(v []*string) *ConfluenceSpaceConfiguration {
  6364  	s.IncludeSpaces = v
  6365  	return s
  6366  }
  6367  
  6368  // SetSpaceFieldMappings sets the SpaceFieldMappings field's value.
  6369  func (s *ConfluenceSpaceConfiguration) SetSpaceFieldMappings(v []*ConfluenceSpaceToIndexFieldMapping) *ConfluenceSpaceConfiguration {
  6370  	s.SpaceFieldMappings = v
  6371  	return s
  6372  }
  6373  
  6374  // Defines the mapping between a field in the Confluence data source to a Amazon
  6375  // Kendra index field.
  6376  //
  6377  // You must first create the index field using the UpdateIndex operation.
  6378  type ConfluenceSpaceToIndexFieldMapping struct {
  6379  	_ struct{} `type:"structure"`
  6380  
  6381  	// The name of the field in the data source.
  6382  	DataSourceFieldName *string `type:"string" enum:"ConfluenceSpaceFieldName"`
  6383  
  6384  	// The format for date fields in the data source. If the field specified in
  6385  	// DataSourceFieldName is a date field you must specify the date format. If
  6386  	// the field is not a date field, an exception is thrown.
  6387  	DateFieldFormat *string `min:"4" type:"string"`
  6388  
  6389  	// The name of the index field to map to the Confluence data source field. The
  6390  	// index field type must match the Confluence field type.
  6391  	IndexFieldName *string `min:"1" type:"string"`
  6392  }
  6393  
  6394  // String returns the string representation.
  6395  //
  6396  // API parameter values that are decorated as "sensitive" in the API will not
  6397  // be included in the string output. The member name will be present, but the
  6398  // value will be replaced with "sensitive".
  6399  func (s ConfluenceSpaceToIndexFieldMapping) String() string {
  6400  	return awsutil.Prettify(s)
  6401  }
  6402  
  6403  // GoString returns the string representation.
  6404  //
  6405  // API parameter values that are decorated as "sensitive" in the API will not
  6406  // be included in the string output. The member name will be present, but the
  6407  // value will be replaced with "sensitive".
  6408  func (s ConfluenceSpaceToIndexFieldMapping) GoString() string {
  6409  	return s.String()
  6410  }
  6411  
  6412  // Validate inspects the fields of the type to determine if they are valid.
  6413  func (s *ConfluenceSpaceToIndexFieldMapping) Validate() error {
  6414  	invalidParams := request.ErrInvalidParams{Context: "ConfluenceSpaceToIndexFieldMapping"}
  6415  	if s.DateFieldFormat != nil && len(*s.DateFieldFormat) < 4 {
  6416  		invalidParams.Add(request.NewErrParamMinLen("DateFieldFormat", 4))
  6417  	}
  6418  	if s.IndexFieldName != nil && len(*s.IndexFieldName) < 1 {
  6419  		invalidParams.Add(request.NewErrParamMinLen("IndexFieldName", 1))
  6420  	}
  6421  
  6422  	if invalidParams.Len() > 0 {
  6423  		return invalidParams
  6424  	}
  6425  	return nil
  6426  }
  6427  
  6428  // SetDataSourceFieldName sets the DataSourceFieldName field's value.
  6429  func (s *ConfluenceSpaceToIndexFieldMapping) SetDataSourceFieldName(v string) *ConfluenceSpaceToIndexFieldMapping {
  6430  	s.DataSourceFieldName = &v
  6431  	return s
  6432  }
  6433  
  6434  // SetDateFieldFormat sets the DateFieldFormat field's value.
  6435  func (s *ConfluenceSpaceToIndexFieldMapping) SetDateFieldFormat(v string) *ConfluenceSpaceToIndexFieldMapping {
  6436  	s.DateFieldFormat = &v
  6437  	return s
  6438  }
  6439  
  6440  // SetIndexFieldName sets the IndexFieldName field's value.
  6441  func (s *ConfluenceSpaceToIndexFieldMapping) SetIndexFieldName(v string) *ConfluenceSpaceToIndexFieldMapping {
  6442  	s.IndexFieldName = &v
  6443  	return s
  6444  }
  6445  
  6446  // Provides the information necessary to connect to a database.
  6447  type ConnectionConfiguration struct {
  6448  	_ struct{} `type:"structure"`
  6449  
  6450  	// The name of the host for the database. Can be either a string (host.subdomain.domain.tld)
  6451  	// or an IPv4 or IPv6 address.
  6452  	//
  6453  	// DatabaseHost is a required field
  6454  	DatabaseHost *string `min:"1" type:"string" required:"true"`
  6455  
  6456  	// The name of the database containing the document data.
  6457  	//
  6458  	// DatabaseName is a required field
  6459  	DatabaseName *string `min:"1" type:"string" required:"true"`
  6460  
  6461  	// The port that the database uses for connections.
  6462  	//
  6463  	// DatabasePort is a required field
  6464  	DatabasePort *int64 `min:"1" type:"integer" required:"true"`
  6465  
  6466  	// The Amazon Resource Name (ARN) of credentials stored in Secrets Manager.
  6467  	// The credentials should be a user/password pair. For more information, see
  6468  	// Using a Database Data Source (https://docs.aws.amazon.com/kendra/latest/dg/data-source-database.html).
  6469  	// For more information about Secrets Manager, see What Is Secrets Manager (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
  6470  	// in the Secrets Manager user guide.
  6471  	//
  6472  	// SecretArn is a required field
  6473  	SecretArn *string `min:"1" type:"string" required:"true"`
  6474  
  6475  	// The name of the table that contains the document data.
  6476  	//
  6477  	// TableName is a required field
  6478  	TableName *string `min:"1" type:"string" required:"true"`
  6479  }
  6480  
  6481  // String returns the string representation.
  6482  //
  6483  // API parameter values that are decorated as "sensitive" in the API will not
  6484  // be included in the string output. The member name will be present, but the
  6485  // value will be replaced with "sensitive".
  6486  func (s ConnectionConfiguration) String() string {
  6487  	return awsutil.Prettify(s)
  6488  }
  6489  
  6490  // GoString returns the string representation.
  6491  //
  6492  // API parameter values that are decorated as "sensitive" in the API will not
  6493  // be included in the string output. The member name will be present, but the
  6494  // value will be replaced with "sensitive".
  6495  func (s ConnectionConfiguration) GoString() string {
  6496  	return s.String()
  6497  }
  6498  
  6499  // Validate inspects the fields of the type to determine if they are valid.
  6500  func (s *ConnectionConfiguration) Validate() error {
  6501  	invalidParams := request.ErrInvalidParams{Context: "ConnectionConfiguration"}
  6502  	if s.DatabaseHost == nil {
  6503  		invalidParams.Add(request.NewErrParamRequired("DatabaseHost"))
  6504  	}
  6505  	if s.DatabaseHost != nil && len(*s.DatabaseHost) < 1 {
  6506  		invalidParams.Add(request.NewErrParamMinLen("DatabaseHost", 1))
  6507  	}
  6508  	if s.DatabaseName == nil {
  6509  		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
  6510  	}
  6511  	if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
  6512  		invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
  6513  	}
  6514  	if s.DatabasePort == nil {
  6515  		invalidParams.Add(request.NewErrParamRequired("DatabasePort"))
  6516  	}
  6517  	if s.DatabasePort != nil && *s.DatabasePort < 1 {
  6518  		invalidParams.Add(request.NewErrParamMinValue("DatabasePort", 1))
  6519  	}
  6520  	if s.SecretArn == nil {
  6521  		invalidParams.Add(request.NewErrParamRequired("SecretArn"))
  6522  	}
  6523  	if s.SecretArn != nil && len(*s.SecretArn) < 1 {
  6524  		invalidParams.Add(request.NewErrParamMinLen("SecretArn", 1))
  6525  	}
  6526  	if s.TableName == nil {
  6527  		invalidParams.Add(request.NewErrParamRequired("TableName"))
  6528  	}
  6529  	if s.TableName != nil && len(*s.TableName) < 1 {
  6530  		invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
  6531  	}
  6532  
  6533  	if invalidParams.Len() > 0 {
  6534  		return invalidParams
  6535  	}
  6536  	return nil
  6537  }
  6538  
  6539  // SetDatabaseHost sets the DatabaseHost field's value.
  6540  func (s *ConnectionConfiguration) SetDatabaseHost(v string) *ConnectionConfiguration {
  6541  	s.DatabaseHost = &v
  6542  	return s
  6543  }
  6544  
  6545  // SetDatabaseName sets the DatabaseName field's value.
  6546  func (s *ConnectionConfiguration) SetDatabaseName(v string) *ConnectionConfiguration {
  6547  	s.DatabaseName = &v
  6548  	return s
  6549  }
  6550  
  6551  // SetDatabasePort sets the DatabasePort field's value.
  6552  func (s *ConnectionConfiguration) SetDatabasePort(v int64) *ConnectionConfiguration {
  6553  	s.DatabasePort = &v
  6554  	return s
  6555  }
  6556  
  6557  // SetSecretArn sets the SecretArn field's value.
  6558  func (s *ConnectionConfiguration) SetSecretArn(v string) *ConnectionConfiguration {
  6559  	s.SecretArn = &v
  6560  	return s
  6561  }
  6562  
  6563  // SetTableName sets the TableName field's value.
  6564  func (s *ConnectionConfiguration) SetTableName(v string) *ConnectionConfiguration {
  6565  	s.TableName = &v
  6566  	return s
  6567  }
  6568  
  6569  type CreateDataSourceInput struct {
  6570  	_ struct{} `type:"structure"`
  6571  
  6572  	// A token that you provide to identify the request to create a data source.
  6573  	// Multiple calls to the CreateDataSource operation with the same client token
  6574  	// will create only one data source.
  6575  	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`
  6576  
  6577  	// The connector configuration information that is required to access the repository.
  6578  	//
  6579  	// You can't specify the Configuration parameter when the Type parameter is
  6580  	// set to CUSTOM. If you do, you receive a ValidationException exception.
  6581  	//
  6582  	// The Configuration parameter is required for all other data sources.
  6583  	Configuration *DataSourceConfiguration `type:"structure"`
  6584  
  6585  	// A description for the data source.
  6586  	Description *string `type:"string"`
  6587  
  6588  	// The identifier of the index that should be associated with this data source.
  6589  	//
  6590  	// IndexId is a required field
  6591  	IndexId *string `min:"36" type:"string" required:"true"`
  6592  
  6593  	// The code for a language. This allows you to support a language for all documents
  6594  	// when creating the data source. English is supported by default. For more
  6595  	// information on supported languages, including their codes, see Adding documents
  6596  	// in languages other than English (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html).
  6597  	LanguageCode *string `min:"2" type:"string"`
  6598  
  6599  	// A unique name for the data source. A data source name can't be changed without
  6600  	// deleting and recreating the data source.
  6601  	//
  6602  	// Name is a required field
  6603  	Name *string `min:"1" type:"string" required:"true"`
  6604  
  6605  	// The Amazon Resource Name (ARN) of a role with permission to access the data
  6606  	// source. For more information, see IAM Roles for Amazon Kendra (https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html).
  6607  	//
  6608  	// You can't specify the RoleArn parameter when the Type parameter is set to
  6609  	// CUSTOM. If you do, you receive a ValidationException exception.
  6610  	//
  6611  	// The RoleArn parameter is required for all other data sources.
  6612  	RoleArn *string `min:"1" type:"string"`
  6613  
  6614  	// Sets the frequency that Amazon Kendra will check the documents in your repository
  6615  	// and update the index. If you don't set a schedule Amazon Kendra will not
  6616  	// periodically update the index. You can call the StartDataSourceSyncJob operation
  6617  	// to update the index.
  6618  	//
  6619  	// You can't specify the Schedule parameter when the Type parameter is set to
  6620  	// CUSTOM. If you do, you receive a ValidationException exception.
  6621  	Schedule *string `type:"string"`
  6622  
  6623  	// A list of key-value pairs that identify the data source. You can use the
  6624  	// tags to identify and organize your resources and to control access to resources.
  6625  	Tags []*Tag `type:"list"`
  6626  
  6627  	// The type of repository that contains the data source.
  6628  	//
  6629  	// Type is a required field
  6630  	Type *string `type:"string" required:"true" enum:"DataSourceType"`
  6631  }
  6632  
  6633  // String returns the string representation.
  6634  //
  6635  // API parameter values that are decorated as "sensitive" in the API will not
  6636  // be included in the string output. The member name will be present, but the
  6637  // value will be replaced with "sensitive".
  6638  func (s CreateDataSourceInput) String() string {
  6639  	return awsutil.Prettify(s)
  6640  }
  6641  
  6642  // GoString returns the string representation.
  6643  //
  6644  // API parameter values that are decorated as "sensitive" in the API will not
  6645  // be included in the string output. The member name will be present, but the
  6646  // value will be replaced with "sensitive".
  6647  func (s CreateDataSourceInput) GoString() string {
  6648  	return s.String()
  6649  }
  6650  
  6651  // Validate inspects the fields of the type to determine if they are valid.
  6652  func (s *CreateDataSourceInput) Validate() error {
  6653  	invalidParams := request.ErrInvalidParams{Context: "CreateDataSourceInput"}
  6654  	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
  6655  		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
  6656  	}
  6657  	if s.IndexId == nil {
  6658  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  6659  	}
  6660  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  6661  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  6662  	}
  6663  	if s.LanguageCode != nil && len(*s.LanguageCode) < 2 {
  6664  		invalidParams.Add(request.NewErrParamMinLen("LanguageCode", 2))
  6665  	}
  6666  	if s.Name == nil {
  6667  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6668  	}
  6669  	if s.Name != nil && len(*s.Name) < 1 {
  6670  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6671  	}
  6672  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
  6673  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
  6674  	}
  6675  	if s.Type == nil {
  6676  		invalidParams.Add(request.NewErrParamRequired("Type"))
  6677  	}
  6678  	if s.Configuration != nil {
  6679  		if err := s.Configuration.Validate(); err != nil {
  6680  			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
  6681  		}
  6682  	}
  6683  	if s.Tags != nil {
  6684  		for i, v := range s.Tags {
  6685  			if v == nil {
  6686  				continue
  6687  			}
  6688  			if err := v.Validate(); err != nil {
  6689  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  6690  			}
  6691  		}
  6692  	}
  6693  
  6694  	if invalidParams.Len() > 0 {
  6695  		return invalidParams
  6696  	}
  6697  	return nil
  6698  }
  6699  
  6700  // SetClientToken sets the ClientToken field's value.
  6701  func (s *CreateDataSourceInput) SetClientToken(v string) *CreateDataSourceInput {
  6702  	s.ClientToken = &v
  6703  	return s
  6704  }
  6705  
  6706  // SetConfiguration sets the Configuration field's value.
  6707  func (s *CreateDataSourceInput) SetConfiguration(v *DataSourceConfiguration) *CreateDataSourceInput {
  6708  	s.Configuration = v
  6709  	return s
  6710  }
  6711  
  6712  // SetDescription sets the Description field's value.
  6713  func (s *CreateDataSourceInput) SetDescription(v string) *CreateDataSourceInput {
  6714  	s.Description = &v
  6715  	return s
  6716  }
  6717  
  6718  // SetIndexId sets the IndexId field's value.
  6719  func (s *CreateDataSourceInput) SetIndexId(v string) *CreateDataSourceInput {
  6720  	s.IndexId = &v
  6721  	return s
  6722  }
  6723  
  6724  // SetLanguageCode sets the LanguageCode field's value.
  6725  func (s *CreateDataSourceInput) SetLanguageCode(v string) *CreateDataSourceInput {
  6726  	s.LanguageCode = &v
  6727  	return s
  6728  }
  6729  
  6730  // SetName sets the Name field's value.
  6731  func (s *CreateDataSourceInput) SetName(v string) *CreateDataSourceInput {
  6732  	s.Name = &v
  6733  	return s
  6734  }
  6735  
  6736  // SetRoleArn sets the RoleArn field's value.
  6737  func (s *CreateDataSourceInput) SetRoleArn(v string) *CreateDataSourceInput {
  6738  	s.RoleArn = &v
  6739  	return s
  6740  }
  6741  
  6742  // SetSchedule sets the Schedule field's value.
  6743  func (s *CreateDataSourceInput) SetSchedule(v string) *CreateDataSourceInput {
  6744  	s.Schedule = &v
  6745  	return s
  6746  }
  6747  
  6748  // SetTags sets the Tags field's value.
  6749  func (s *CreateDataSourceInput) SetTags(v []*Tag) *CreateDataSourceInput {
  6750  	s.Tags = v
  6751  	return s
  6752  }
  6753  
  6754  // SetType sets the Type field's value.
  6755  func (s *CreateDataSourceInput) SetType(v string) *CreateDataSourceInput {
  6756  	s.Type = &v
  6757  	return s
  6758  }
  6759  
  6760  type CreateDataSourceOutput struct {
  6761  	_ struct{} `type:"structure"`
  6762  
  6763  	// A unique identifier for the data source.
  6764  	//
  6765  	// Id is a required field
  6766  	Id *string `min:"1" type:"string" required:"true"`
  6767  }
  6768  
  6769  // String returns the string representation.
  6770  //
  6771  // API parameter values that are decorated as "sensitive" in the API will not
  6772  // be included in the string output. The member name will be present, but the
  6773  // value will be replaced with "sensitive".
  6774  func (s CreateDataSourceOutput) String() string {
  6775  	return awsutil.Prettify(s)
  6776  }
  6777  
  6778  // GoString returns the string representation.
  6779  //
  6780  // API parameter values that are decorated as "sensitive" in the API will not
  6781  // be included in the string output. The member name will be present, but the
  6782  // value will be replaced with "sensitive".
  6783  func (s CreateDataSourceOutput) GoString() string {
  6784  	return s.String()
  6785  }
  6786  
  6787  // SetId sets the Id field's value.
  6788  func (s *CreateDataSourceOutput) SetId(v string) *CreateDataSourceOutput {
  6789  	s.Id = &v
  6790  	return s
  6791  }
  6792  
  6793  type CreateFaqInput struct {
  6794  	_ struct{} `type:"structure"`
  6795  
  6796  	// A token that you provide to identify the request to create a FAQ. Multiple
  6797  	// calls to the CreateFaqRequest operation with the same client token will create
  6798  	// only one FAQ.
  6799  	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`
  6800  
  6801  	// A description of the FAQ.
  6802  	Description *string `type:"string"`
  6803  
  6804  	// The format of the input file. You can choose between a basic CSV format,
  6805  	// a CSV format that includes customs attributes in a header, and a JSON format
  6806  	// that includes custom attributes.
  6807  	//
  6808  	// The format must match the format of the file stored in the S3 bucket identified
  6809  	// in the S3Path parameter.
  6810  	//
  6811  	// For more information, see Adding questions and answers (https://docs.aws.amazon.com/kendra/latest/dg/in-creating-faq.html).
  6812  	FileFormat *string `type:"string" enum:"FaqFileFormat"`
  6813  
  6814  	// The identifier of the index that contains the FAQ.
  6815  	//
  6816  	// IndexId is a required field
  6817  	IndexId *string `min:"36" type:"string" required:"true"`
  6818  
  6819  	// The code for a language. This allows you to support a language for the FAQ
  6820  	// document. English is supported by default. For more information on supported
  6821  	// languages, including their codes, see Adding documents in languages other
  6822  	// than English (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html).
  6823  	LanguageCode *string `min:"2" type:"string"`
  6824  
  6825  	// The name that should be associated with the FAQ.
  6826  	//
  6827  	// Name is a required field
  6828  	Name *string `min:"1" type:"string" required:"true"`
  6829  
  6830  	// The Amazon Resource Name (ARN) of a role with permission to access the S3
  6831  	// bucket that contains the FAQs. For more information, see IAM Roles for Amazon
  6832  	// Kendra (https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html).
  6833  	//
  6834  	// RoleArn is a required field
  6835  	RoleArn *string `min:"1" type:"string" required:"true"`
  6836  
  6837  	// The S3 location of the FAQ input data.
  6838  	//
  6839  	// S3Path is a required field
  6840  	S3Path *S3Path `type:"structure" required:"true"`
  6841  
  6842  	// A list of key-value pairs that identify the FAQ. You can use the tags to
  6843  	// identify and organize your resources and to control access to resources.
  6844  	Tags []*Tag `type:"list"`
  6845  }
  6846  
  6847  // String returns the string representation.
  6848  //
  6849  // API parameter values that are decorated as "sensitive" in the API will not
  6850  // be included in the string output. The member name will be present, but the
  6851  // value will be replaced with "sensitive".
  6852  func (s CreateFaqInput) String() string {
  6853  	return awsutil.Prettify(s)
  6854  }
  6855  
  6856  // GoString returns the string representation.
  6857  //
  6858  // API parameter values that are decorated as "sensitive" in the API will not
  6859  // be included in the string output. The member name will be present, but the
  6860  // value will be replaced with "sensitive".
  6861  func (s CreateFaqInput) GoString() string {
  6862  	return s.String()
  6863  }
  6864  
  6865  // Validate inspects the fields of the type to determine if they are valid.
  6866  func (s *CreateFaqInput) Validate() error {
  6867  	invalidParams := request.ErrInvalidParams{Context: "CreateFaqInput"}
  6868  	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
  6869  		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
  6870  	}
  6871  	if s.IndexId == nil {
  6872  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  6873  	}
  6874  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  6875  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  6876  	}
  6877  	if s.LanguageCode != nil && len(*s.LanguageCode) < 2 {
  6878  		invalidParams.Add(request.NewErrParamMinLen("LanguageCode", 2))
  6879  	}
  6880  	if s.Name == nil {
  6881  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6882  	}
  6883  	if s.Name != nil && len(*s.Name) < 1 {
  6884  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6885  	}
  6886  	if s.RoleArn == nil {
  6887  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
  6888  	}
  6889  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
  6890  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
  6891  	}
  6892  	if s.S3Path == nil {
  6893  		invalidParams.Add(request.NewErrParamRequired("S3Path"))
  6894  	}
  6895  	if s.S3Path != nil {
  6896  		if err := s.S3Path.Validate(); err != nil {
  6897  			invalidParams.AddNested("S3Path", err.(request.ErrInvalidParams))
  6898  		}
  6899  	}
  6900  	if s.Tags != nil {
  6901  		for i, v := range s.Tags {
  6902  			if v == nil {
  6903  				continue
  6904  			}
  6905  			if err := v.Validate(); err != nil {
  6906  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  6907  			}
  6908  		}
  6909  	}
  6910  
  6911  	if invalidParams.Len() > 0 {
  6912  		return invalidParams
  6913  	}
  6914  	return nil
  6915  }
  6916  
  6917  // SetClientToken sets the ClientToken field's value.
  6918  func (s *CreateFaqInput) SetClientToken(v string) *CreateFaqInput {
  6919  	s.ClientToken = &v
  6920  	return s
  6921  }
  6922  
  6923  // SetDescription sets the Description field's value.
  6924  func (s *CreateFaqInput) SetDescription(v string) *CreateFaqInput {
  6925  	s.Description = &v
  6926  	return s
  6927  }
  6928  
  6929  // SetFileFormat sets the FileFormat field's value.
  6930  func (s *CreateFaqInput) SetFileFormat(v string) *CreateFaqInput {
  6931  	s.FileFormat = &v
  6932  	return s
  6933  }
  6934  
  6935  // SetIndexId sets the IndexId field's value.
  6936  func (s *CreateFaqInput) SetIndexId(v string) *CreateFaqInput {
  6937  	s.IndexId = &v
  6938  	return s
  6939  }
  6940  
  6941  // SetLanguageCode sets the LanguageCode field's value.
  6942  func (s *CreateFaqInput) SetLanguageCode(v string) *CreateFaqInput {
  6943  	s.LanguageCode = &v
  6944  	return s
  6945  }
  6946  
  6947  // SetName sets the Name field's value.
  6948  func (s *CreateFaqInput) SetName(v string) *CreateFaqInput {
  6949  	s.Name = &v
  6950  	return s
  6951  }
  6952  
  6953  // SetRoleArn sets the RoleArn field's value.
  6954  func (s *CreateFaqInput) SetRoleArn(v string) *CreateFaqInput {
  6955  	s.RoleArn = &v
  6956  	return s
  6957  }
  6958  
  6959  // SetS3Path sets the S3Path field's value.
  6960  func (s *CreateFaqInput) SetS3Path(v *S3Path) *CreateFaqInput {
  6961  	s.S3Path = v
  6962  	return s
  6963  }
  6964  
  6965  // SetTags sets the Tags field's value.
  6966  func (s *CreateFaqInput) SetTags(v []*Tag) *CreateFaqInput {
  6967  	s.Tags = v
  6968  	return s
  6969  }
  6970  
  6971  type CreateFaqOutput struct {
  6972  	_ struct{} `type:"structure"`
  6973  
  6974  	// The unique identifier of the FAQ.
  6975  	Id *string `min:"1" type:"string"`
  6976  }
  6977  
  6978  // String returns the string representation.
  6979  //
  6980  // API parameter values that are decorated as "sensitive" in the API will not
  6981  // be included in the string output. The member name will be present, but the
  6982  // value will be replaced with "sensitive".
  6983  func (s CreateFaqOutput) String() string {
  6984  	return awsutil.Prettify(s)
  6985  }
  6986  
  6987  // GoString returns the string representation.
  6988  //
  6989  // API parameter values that are decorated as "sensitive" in the API will not
  6990  // be included in the string output. The member name will be present, but the
  6991  // value will be replaced with "sensitive".
  6992  func (s CreateFaqOutput) GoString() string {
  6993  	return s.String()
  6994  }
  6995  
  6996  // SetId sets the Id field's value.
  6997  func (s *CreateFaqOutput) SetId(v string) *CreateFaqOutput {
  6998  	s.Id = &v
  6999  	return s
  7000  }
  7001  
  7002  type CreateIndexInput struct {
  7003  	_ struct{} `type:"structure"`
  7004  
  7005  	// A token that you provide to identify the request to create an index. Multiple
  7006  	// calls to the CreateIndex operation with the same client token will create
  7007  	// only one index.
  7008  	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`
  7009  
  7010  	// A description for the index.
  7011  	Description *string `type:"string"`
  7012  
  7013  	// The Amazon Kendra edition to use for the index. Choose DEVELOPER_EDITION
  7014  	// for indexes intended for development, testing, or proof of concept. Use ENTERPRISE_EDITION
  7015  	// for your production databases. Once you set the edition for an index, it
  7016  	// can't be changed.
  7017  	//
  7018  	// The Edition parameter is optional. If you don't supply a value, the default
  7019  	// is ENTERPRISE_EDITION.
  7020  	//
  7021  	// For more information on quota limits for enterprise and developer editions,
  7022  	// see Quotas (https://docs.aws.amazon.com/kendra/latest/dg/quotas.html).
  7023  	Edition *string `type:"string" enum:"IndexEdition"`
  7024  
  7025  	// The name for the new index.
  7026  	//
  7027  	// Name is a required field
  7028  	Name *string `min:"1" type:"string" required:"true"`
  7029  
  7030  	// An Identity and Access Management(IAM) role that gives Amazon Kendra permissions
  7031  	// to access your Amazon CloudWatch logs and metrics. This is also the role
  7032  	// used when you use the BatchPutDocument operation to index documents from
  7033  	// an Amazon S3 bucket.
  7034  	//
  7035  	// RoleArn is a required field
  7036  	RoleArn *string `min:"1" type:"string" required:"true"`
  7037  
  7038  	// The identifier of the KMScustomer managed key (CMK) to use to encrypt data
  7039  	// indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric CMKs.
  7040  	ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `type:"structure"`
  7041  
  7042  	// A list of key-value pairs that identify the index. You can use the tags to
  7043  	// identify and organize your resources and to control access to resources.
  7044  	Tags []*Tag `type:"list"`
  7045  
  7046  	// The user context policy.
  7047  	//
  7048  	// ATTRIBUTE_FILTER
  7049  	//
  7050  	// All indexed content is searchable and displayable for all users. If you want
  7051  	// to filter search results on user context, you can use the attribute filters
  7052  	// of _user_id and _group_ids or you can provide user and group information
  7053  	// in UserContext.
  7054  	//
  7055  	// USER_TOKEN
  7056  	//
  7057  	// Enables token-based user access control to filter search results on user
  7058  	// context. All documents with no access control and all documents accessible
  7059  	// to the user will be searchable and displayable.
  7060  	UserContextPolicy *string `type:"string" enum:"UserContextPolicy"`
  7061  
  7062  	// Enables fetching access levels of groups and users from an AWS Single Sign-On
  7063  	// identity source. To configure this, see UserGroupResolutionConfiguration
  7064  	// (https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html).
  7065  	UserGroupResolutionConfiguration *UserGroupResolutionConfiguration `type:"structure"`
  7066  
  7067  	// The user token configuration.
  7068  	UserTokenConfigurations []*UserTokenConfiguration `type:"list"`
  7069  }
  7070  
  7071  // String returns the string representation.
  7072  //
  7073  // API parameter values that are decorated as "sensitive" in the API will not
  7074  // be included in the string output. The member name will be present, but the
  7075  // value will be replaced with "sensitive".
  7076  func (s CreateIndexInput) String() string {
  7077  	return awsutil.Prettify(s)
  7078  }
  7079  
  7080  // GoString returns the string representation.
  7081  //
  7082  // API parameter values that are decorated as "sensitive" in the API will not
  7083  // be included in the string output. The member name will be present, but the
  7084  // value will be replaced with "sensitive".
  7085  func (s CreateIndexInput) GoString() string {
  7086  	return s.String()
  7087  }
  7088  
  7089  // Validate inspects the fields of the type to determine if they are valid.
  7090  func (s *CreateIndexInput) Validate() error {
  7091  	invalidParams := request.ErrInvalidParams{Context: "CreateIndexInput"}
  7092  	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
  7093  		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
  7094  	}
  7095  	if s.Name == nil {
  7096  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7097  	}
  7098  	if s.Name != nil && len(*s.Name) < 1 {
  7099  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  7100  	}
  7101  	if s.RoleArn == nil {
  7102  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
  7103  	}
  7104  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
  7105  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
  7106  	}
  7107  	if s.ServerSideEncryptionConfiguration != nil {
  7108  		if err := s.ServerSideEncryptionConfiguration.Validate(); err != nil {
  7109  			invalidParams.AddNested("ServerSideEncryptionConfiguration", err.(request.ErrInvalidParams))
  7110  		}
  7111  	}
  7112  	if s.Tags != nil {
  7113  		for i, v := range s.Tags {
  7114  			if v == nil {
  7115  				continue
  7116  			}
  7117  			if err := v.Validate(); err != nil {
  7118  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  7119  			}
  7120  		}
  7121  	}
  7122  	if s.UserGroupResolutionConfiguration != nil {
  7123  		if err := s.UserGroupResolutionConfiguration.Validate(); err != nil {
  7124  			invalidParams.AddNested("UserGroupResolutionConfiguration", err.(request.ErrInvalidParams))
  7125  		}
  7126  	}
  7127  	if s.UserTokenConfigurations != nil {
  7128  		for i, v := range s.UserTokenConfigurations {
  7129  			if v == nil {
  7130  				continue
  7131  			}
  7132  			if err := v.Validate(); err != nil {
  7133  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UserTokenConfigurations", i), err.(request.ErrInvalidParams))
  7134  			}
  7135  		}
  7136  	}
  7137  
  7138  	if invalidParams.Len() > 0 {
  7139  		return invalidParams
  7140  	}
  7141  	return nil
  7142  }
  7143  
  7144  // SetClientToken sets the ClientToken field's value.
  7145  func (s *CreateIndexInput) SetClientToken(v string) *CreateIndexInput {
  7146  	s.ClientToken = &v
  7147  	return s
  7148  }
  7149  
  7150  // SetDescription sets the Description field's value.
  7151  func (s *CreateIndexInput) SetDescription(v string) *CreateIndexInput {
  7152  	s.Description = &v
  7153  	return s
  7154  }
  7155  
  7156  // SetEdition sets the Edition field's value.
  7157  func (s *CreateIndexInput) SetEdition(v string) *CreateIndexInput {
  7158  	s.Edition = &v
  7159  	return s
  7160  }
  7161  
  7162  // SetName sets the Name field's value.
  7163  func (s *CreateIndexInput) SetName(v string) *CreateIndexInput {
  7164  	s.Name = &v
  7165  	return s
  7166  }
  7167  
  7168  // SetRoleArn sets the RoleArn field's value.
  7169  func (s *CreateIndexInput) SetRoleArn(v string) *CreateIndexInput {
  7170  	s.RoleArn = &v
  7171  	return s
  7172  }
  7173  
  7174  // SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value.
  7175  func (s *CreateIndexInput) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *CreateIndexInput {
  7176  	s.ServerSideEncryptionConfiguration = v
  7177  	return s
  7178  }
  7179  
  7180  // SetTags sets the Tags field's value.
  7181  func (s *CreateIndexInput) SetTags(v []*Tag) *CreateIndexInput {
  7182  	s.Tags = v
  7183  	return s
  7184  }
  7185  
  7186  // SetUserContextPolicy sets the UserContextPolicy field's value.
  7187  func (s *CreateIndexInput) SetUserContextPolicy(v string) *CreateIndexInput {
  7188  	s.UserContextPolicy = &v
  7189  	return s
  7190  }
  7191  
  7192  // SetUserGroupResolutionConfiguration sets the UserGroupResolutionConfiguration field's value.
  7193  func (s *CreateIndexInput) SetUserGroupResolutionConfiguration(v *UserGroupResolutionConfiguration) *CreateIndexInput {
  7194  	s.UserGroupResolutionConfiguration = v
  7195  	return s
  7196  }
  7197  
  7198  // SetUserTokenConfigurations sets the UserTokenConfigurations field's value.
  7199  func (s *CreateIndexInput) SetUserTokenConfigurations(v []*UserTokenConfiguration) *CreateIndexInput {
  7200  	s.UserTokenConfigurations = v
  7201  	return s
  7202  }
  7203  
  7204  type CreateIndexOutput struct {
  7205  	_ struct{} `type:"structure"`
  7206  
  7207  	// The unique identifier of the index. Use this identifier when you query an
  7208  	// index, set up a data source, or index a document.
  7209  	Id *string `min:"36" type:"string"`
  7210  }
  7211  
  7212  // String returns the string representation.
  7213  //
  7214  // API parameter values that are decorated as "sensitive" in the API will not
  7215  // be included in the string output. The member name will be present, but the
  7216  // value will be replaced with "sensitive".
  7217  func (s CreateIndexOutput) String() string {
  7218  	return awsutil.Prettify(s)
  7219  }
  7220  
  7221  // GoString returns the string representation.
  7222  //
  7223  // API parameter values that are decorated as "sensitive" in the API will not
  7224  // be included in the string output. The member name will be present, but the
  7225  // value will be replaced with "sensitive".
  7226  func (s CreateIndexOutput) GoString() string {
  7227  	return s.String()
  7228  }
  7229  
  7230  // SetId sets the Id field's value.
  7231  func (s *CreateIndexOutput) SetId(v string) *CreateIndexOutput {
  7232  	s.Id = &v
  7233  	return s
  7234  }
  7235  
  7236  type CreateQuerySuggestionsBlockListInput struct {
  7237  	_ struct{} `type:"structure"`
  7238  
  7239  	// A token that you provide to identify the request to create a query suggestions
  7240  	// block list.
  7241  	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`
  7242  
  7243  	// A user-friendly description for the block list.
  7244  	//
  7245  	// For example, the description "List of all offensive words that can appear
  7246  	// in user queries and need to be blocked from suggestions."
  7247  	Description *string `type:"string"`
  7248  
  7249  	// The identifier of the index you want to create a query suggestions block
  7250  	// list for.
  7251  	//
  7252  	// IndexId is a required field
  7253  	IndexId *string `min:"36" type:"string" required:"true"`
  7254  
  7255  	// A user friendly name for the block list.
  7256  	//
  7257  	// For example, the block list named 'offensive-words' includes all offensive
  7258  	// words that could appear in user queries and need to be blocked from suggestions.
  7259  	//
  7260  	// Name is a required field
  7261  	Name *string `min:"1" type:"string" required:"true"`
  7262  
  7263  	// The IAM (Identity and Access Management) role used by Amazon Kendra to access
  7264  	// the block list text file in your S3 bucket.
  7265  	//
  7266  	// You need permissions to the role ARN (Amazon Resource Name). The role needs
  7267  	// S3 read permissions to your file in S3 and needs to give STS (Security Token
  7268  	// Service) assume role permissions to Amazon Kendra.
  7269  	//
  7270  	// RoleArn is a required field
  7271  	RoleArn *string `min:"1" type:"string" required:"true"`
  7272  
  7273  	// The S3 path to your block list text file in your S3 bucket.
  7274  	//
  7275  	// Each block word or phrase should be on a separate line in a text file.
  7276  	//
  7277  	// For information on the current quota limits for block lists, see Quotas for
  7278  	// Amazon Kendra (https://docs.aws.amazon.com/kendra/latest/dg/quotas.html).
  7279  	//
  7280  	// SourceS3Path is a required field
  7281  	SourceS3Path *S3Path `type:"structure" required:"true"`
  7282  
  7283  	// A tag that you can assign to a block list that categorizes the block list.
  7284  	Tags []*Tag `type:"list"`
  7285  }
  7286  
  7287  // String returns the string representation.
  7288  //
  7289  // API parameter values that are decorated as "sensitive" in the API will not
  7290  // be included in the string output. The member name will be present, but the
  7291  // value will be replaced with "sensitive".
  7292  func (s CreateQuerySuggestionsBlockListInput) String() string {
  7293  	return awsutil.Prettify(s)
  7294  }
  7295  
  7296  // GoString returns the string representation.
  7297  //
  7298  // API parameter values that are decorated as "sensitive" in the API will not
  7299  // be included in the string output. The member name will be present, but the
  7300  // value will be replaced with "sensitive".
  7301  func (s CreateQuerySuggestionsBlockListInput) GoString() string {
  7302  	return s.String()
  7303  }
  7304  
  7305  // Validate inspects the fields of the type to determine if they are valid.
  7306  func (s *CreateQuerySuggestionsBlockListInput) Validate() error {
  7307  	invalidParams := request.ErrInvalidParams{Context: "CreateQuerySuggestionsBlockListInput"}
  7308  	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
  7309  		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
  7310  	}
  7311  	if s.IndexId == nil {
  7312  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  7313  	}
  7314  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  7315  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  7316  	}
  7317  	if s.Name == nil {
  7318  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7319  	}
  7320  	if s.Name != nil && len(*s.Name) < 1 {
  7321  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  7322  	}
  7323  	if s.RoleArn == nil {
  7324  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
  7325  	}
  7326  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
  7327  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
  7328  	}
  7329  	if s.SourceS3Path == nil {
  7330  		invalidParams.Add(request.NewErrParamRequired("SourceS3Path"))
  7331  	}
  7332  	if s.SourceS3Path != nil {
  7333  		if err := s.SourceS3Path.Validate(); err != nil {
  7334  			invalidParams.AddNested("SourceS3Path", err.(request.ErrInvalidParams))
  7335  		}
  7336  	}
  7337  	if s.Tags != nil {
  7338  		for i, v := range s.Tags {
  7339  			if v == nil {
  7340  				continue
  7341  			}
  7342  			if err := v.Validate(); err != nil {
  7343  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  7344  			}
  7345  		}
  7346  	}
  7347  
  7348  	if invalidParams.Len() > 0 {
  7349  		return invalidParams
  7350  	}
  7351  	return nil
  7352  }
  7353  
  7354  // SetClientToken sets the ClientToken field's value.
  7355  func (s *CreateQuerySuggestionsBlockListInput) SetClientToken(v string) *CreateQuerySuggestionsBlockListInput {
  7356  	s.ClientToken = &v
  7357  	return s
  7358  }
  7359  
  7360  // SetDescription sets the Description field's value.
  7361  func (s *CreateQuerySuggestionsBlockListInput) SetDescription(v string) *CreateQuerySuggestionsBlockListInput {
  7362  	s.Description = &v
  7363  	return s
  7364  }
  7365  
  7366  // SetIndexId sets the IndexId field's value.
  7367  func (s *CreateQuerySuggestionsBlockListInput) SetIndexId(v string) *CreateQuerySuggestionsBlockListInput {
  7368  	s.IndexId = &v
  7369  	return s
  7370  }
  7371  
  7372  // SetName sets the Name field's value.
  7373  func (s *CreateQuerySuggestionsBlockListInput) SetName(v string) *CreateQuerySuggestionsBlockListInput {
  7374  	s.Name = &v
  7375  	return s
  7376  }
  7377  
  7378  // SetRoleArn sets the RoleArn field's value.
  7379  func (s *CreateQuerySuggestionsBlockListInput) SetRoleArn(v string) *CreateQuerySuggestionsBlockListInput {
  7380  	s.RoleArn = &v
  7381  	return s
  7382  }
  7383  
  7384  // SetSourceS3Path sets the SourceS3Path field's value.
  7385  func (s *CreateQuerySuggestionsBlockListInput) SetSourceS3Path(v *S3Path) *CreateQuerySuggestionsBlockListInput {
  7386  	s.SourceS3Path = v
  7387  	return s
  7388  }
  7389  
  7390  // SetTags sets the Tags field's value.
  7391  func (s *CreateQuerySuggestionsBlockListInput) SetTags(v []*Tag) *CreateQuerySuggestionsBlockListInput {
  7392  	s.Tags = v
  7393  	return s
  7394  }
  7395  
  7396  type CreateQuerySuggestionsBlockListOutput struct {
  7397  	_ struct{} `type:"structure"`
  7398  
  7399  	// The unique identifier of the created block list.
  7400  	Id *string `min:"36" type:"string"`
  7401  }
  7402  
  7403  // String returns the string representation.
  7404  //
  7405  // API parameter values that are decorated as "sensitive" in the API will not
  7406  // be included in the string output. The member name will be present, but the
  7407  // value will be replaced with "sensitive".
  7408  func (s CreateQuerySuggestionsBlockListOutput) String() string {
  7409  	return awsutil.Prettify(s)
  7410  }
  7411  
  7412  // GoString returns the string representation.
  7413  //
  7414  // API parameter values that are decorated as "sensitive" in the API will not
  7415  // be included in the string output. The member name will be present, but the
  7416  // value will be replaced with "sensitive".
  7417  func (s CreateQuerySuggestionsBlockListOutput) GoString() string {
  7418  	return s.String()
  7419  }
  7420  
  7421  // SetId sets the Id field's value.
  7422  func (s *CreateQuerySuggestionsBlockListOutput) SetId(v string) *CreateQuerySuggestionsBlockListOutput {
  7423  	s.Id = &v
  7424  	return s
  7425  }
  7426  
  7427  type CreateThesaurusInput struct {
  7428  	_ struct{} `type:"structure"`
  7429  
  7430  	// A token that you provide to identify the request to create a thesaurus. Multiple
  7431  	// calls to the CreateThesaurus operation with the same client token will create
  7432  	// only one thesaurus.
  7433  	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`
  7434  
  7435  	// The description for the new thesaurus.
  7436  	Description *string `type:"string"`
  7437  
  7438  	// The unique identifier of the index for the new thesaurus.
  7439  	//
  7440  	// IndexId is a required field
  7441  	IndexId *string `min:"36" type:"string" required:"true"`
  7442  
  7443  	// The name for the new thesaurus.
  7444  	//
  7445  	// Name is a required field
  7446  	Name *string `min:"1" type:"string" required:"true"`
  7447  
  7448  	// An AWS Identity and Access Management (IAM) role that gives Amazon Kendra
  7449  	// permissions to access thesaurus file specified in SourceS3Path.
  7450  	//
  7451  	// RoleArn is a required field
  7452  	RoleArn *string `min:"1" type:"string" required:"true"`
  7453  
  7454  	// The thesaurus file Amazon S3 source path.
  7455  	//
  7456  	// SourceS3Path is a required field
  7457  	SourceS3Path *S3Path `type:"structure" required:"true"`
  7458  
  7459  	// A list of key-value pairs that identify the thesaurus. You can use the tags
  7460  	// to identify and organize your resources and to control access to resources.
  7461  	Tags []*Tag `type:"list"`
  7462  }
  7463  
  7464  // String returns the string representation.
  7465  //
  7466  // API parameter values that are decorated as "sensitive" in the API will not
  7467  // be included in the string output. The member name will be present, but the
  7468  // value will be replaced with "sensitive".
  7469  func (s CreateThesaurusInput) String() string {
  7470  	return awsutil.Prettify(s)
  7471  }
  7472  
  7473  // GoString returns the string representation.
  7474  //
  7475  // API parameter values that are decorated as "sensitive" in the API will not
  7476  // be included in the string output. The member name will be present, but the
  7477  // value will be replaced with "sensitive".
  7478  func (s CreateThesaurusInput) GoString() string {
  7479  	return s.String()
  7480  }
  7481  
  7482  // Validate inspects the fields of the type to determine if they are valid.
  7483  func (s *CreateThesaurusInput) Validate() error {
  7484  	invalidParams := request.ErrInvalidParams{Context: "CreateThesaurusInput"}
  7485  	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
  7486  		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
  7487  	}
  7488  	if s.IndexId == nil {
  7489  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  7490  	}
  7491  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  7492  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  7493  	}
  7494  	if s.Name == nil {
  7495  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7496  	}
  7497  	if s.Name != nil && len(*s.Name) < 1 {
  7498  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  7499  	}
  7500  	if s.RoleArn == nil {
  7501  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
  7502  	}
  7503  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
  7504  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
  7505  	}
  7506  	if s.SourceS3Path == nil {
  7507  		invalidParams.Add(request.NewErrParamRequired("SourceS3Path"))
  7508  	}
  7509  	if s.SourceS3Path != nil {
  7510  		if err := s.SourceS3Path.Validate(); err != nil {
  7511  			invalidParams.AddNested("SourceS3Path", err.(request.ErrInvalidParams))
  7512  		}
  7513  	}
  7514  	if s.Tags != nil {
  7515  		for i, v := range s.Tags {
  7516  			if v == nil {
  7517  				continue
  7518  			}
  7519  			if err := v.Validate(); err != nil {
  7520  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  7521  			}
  7522  		}
  7523  	}
  7524  
  7525  	if invalidParams.Len() > 0 {
  7526  		return invalidParams
  7527  	}
  7528  	return nil
  7529  }
  7530  
  7531  // SetClientToken sets the ClientToken field's value.
  7532  func (s *CreateThesaurusInput) SetClientToken(v string) *CreateThesaurusInput {
  7533  	s.ClientToken = &v
  7534  	return s
  7535  }
  7536  
  7537  // SetDescription sets the Description field's value.
  7538  func (s *CreateThesaurusInput) SetDescription(v string) *CreateThesaurusInput {
  7539  	s.Description = &v
  7540  	return s
  7541  }
  7542  
  7543  // SetIndexId sets the IndexId field's value.
  7544  func (s *CreateThesaurusInput) SetIndexId(v string) *CreateThesaurusInput {
  7545  	s.IndexId = &v
  7546  	return s
  7547  }
  7548  
  7549  // SetName sets the Name field's value.
  7550  func (s *CreateThesaurusInput) SetName(v string) *CreateThesaurusInput {
  7551  	s.Name = &v
  7552  	return s
  7553  }
  7554  
  7555  // SetRoleArn sets the RoleArn field's value.
  7556  func (s *CreateThesaurusInput) SetRoleArn(v string) *CreateThesaurusInput {
  7557  	s.RoleArn = &v
  7558  	return s
  7559  }
  7560  
  7561  // SetSourceS3Path sets the SourceS3Path field's value.
  7562  func (s *CreateThesaurusInput) SetSourceS3Path(v *S3Path) *CreateThesaurusInput {
  7563  	s.SourceS3Path = v
  7564  	return s
  7565  }
  7566  
  7567  // SetTags sets the Tags field's value.
  7568  func (s *CreateThesaurusInput) SetTags(v []*Tag) *CreateThesaurusInput {
  7569  	s.Tags = v
  7570  	return s
  7571  }
  7572  
  7573  type CreateThesaurusOutput struct {
  7574  	_ struct{} `type:"structure"`
  7575  
  7576  	// The unique identifier of the thesaurus.
  7577  	Id *string `min:"1" type:"string"`
  7578  }
  7579  
  7580  // String returns the string representation.
  7581  //
  7582  // API parameter values that are decorated as "sensitive" in the API will not
  7583  // be included in the string output. The member name will be present, but the
  7584  // value will be replaced with "sensitive".
  7585  func (s CreateThesaurusOutput) String() string {
  7586  	return awsutil.Prettify(s)
  7587  }
  7588  
  7589  // GoString returns the string representation.
  7590  //
  7591  // API parameter values that are decorated as "sensitive" in the API will not
  7592  // be included in the string output. The member name will be present, but the
  7593  // value will be replaced with "sensitive".
  7594  func (s CreateThesaurusOutput) GoString() string {
  7595  	return s.String()
  7596  }
  7597  
  7598  // SetId sets the Id field's value.
  7599  func (s *CreateThesaurusOutput) SetId(v string) *CreateThesaurusOutput {
  7600  	s.Id = &v
  7601  	return s
  7602  }
  7603  
  7604  // Configuration information for a Amazon Kendra data source.
  7605  type DataSourceConfiguration struct {
  7606  	_ struct{} `type:"structure"`
  7607  
  7608  	// Provides configuration information for connecting to a Confluence data source.
  7609  	ConfluenceConfiguration *ConfluenceConfiguration `type:"structure"`
  7610  
  7611  	// Provides information necessary to create a data source connector for a database.
  7612  	DatabaseConfiguration *DatabaseConfiguration `type:"structure"`
  7613  
  7614  	// Provides configuration for data sources that connect to Google Drive.
  7615  	GoogleDriveConfiguration *GoogleDriveConfiguration `type:"structure"`
  7616  
  7617  	// Provides configuration for data sources that connect to Microsoft OneDrive.
  7618  	OneDriveConfiguration *OneDriveConfiguration `type:"structure"`
  7619  
  7620  	// Provides information to create a data source connector for a document repository
  7621  	// in an Amazon S3 bucket.
  7622  	S3Configuration *S3DataSourceConfiguration `type:"structure"`
  7623  
  7624  	// Provides configuration information for data sources that connect to a Salesforce
  7625  	// site.
  7626  	SalesforceConfiguration *SalesforceConfiguration `type:"structure"`
  7627  
  7628  	// Provides configuration for data sources that connect to ServiceNow instances.
  7629  	ServiceNowConfiguration *ServiceNowConfiguration `type:"structure"`
  7630  
  7631  	// Provides information necessary to create a data source connector for a Microsoft
  7632  	// SharePoint site.
  7633  	SharePointConfiguration *SharePointConfiguration `type:"structure"`
  7634  
  7635  	// Provides the configuration information required for Amazon Kendra web crawler.
  7636  	WebCrawlerConfiguration *WebCrawlerConfiguration `type:"structure"`
  7637  
  7638  	// Provides the configuration information to connect to WorkDocs as your data
  7639  	// source.
  7640  	WorkDocsConfiguration *WorkDocsConfiguration `type:"structure"`
  7641  }
  7642  
  7643  // String returns the string representation.
  7644  //
  7645  // API parameter values that are decorated as "sensitive" in the API will not
  7646  // be included in the string output. The member name will be present, but the
  7647  // value will be replaced with "sensitive".
  7648  func (s DataSourceConfiguration) String() string {
  7649  	return awsutil.Prettify(s)
  7650  }
  7651  
  7652  // GoString returns the string representation.
  7653  //
  7654  // API parameter values that are decorated as "sensitive" in the API will not
  7655  // be included in the string output. The member name will be present, but the
  7656  // value will be replaced with "sensitive".
  7657  func (s DataSourceConfiguration) GoString() string {
  7658  	return s.String()
  7659  }
  7660  
  7661  // Validate inspects the fields of the type to determine if they are valid.
  7662  func (s *DataSourceConfiguration) Validate() error {
  7663  	invalidParams := request.ErrInvalidParams{Context: "DataSourceConfiguration"}
  7664  	if s.ConfluenceConfiguration != nil {
  7665  		if err := s.ConfluenceConfiguration.Validate(); err != nil {
  7666  			invalidParams.AddNested("ConfluenceConfiguration", err.(request.ErrInvalidParams))
  7667  		}
  7668  	}
  7669  	if s.DatabaseConfiguration != nil {
  7670  		if err := s.DatabaseConfiguration.Validate(); err != nil {
  7671  			invalidParams.AddNested("DatabaseConfiguration", err.(request.ErrInvalidParams))
  7672  		}
  7673  	}
  7674  	if s.GoogleDriveConfiguration != nil {
  7675  		if err := s.GoogleDriveConfiguration.Validate(); err != nil {
  7676  			invalidParams.AddNested("GoogleDriveConfiguration", err.(request.ErrInvalidParams))
  7677  		}
  7678  	}
  7679  	if s.OneDriveConfiguration != nil {
  7680  		if err := s.OneDriveConfiguration.Validate(); err != nil {
  7681  			invalidParams.AddNested("OneDriveConfiguration", err.(request.ErrInvalidParams))
  7682  		}
  7683  	}
  7684  	if s.S3Configuration != nil {
  7685  		if err := s.S3Configuration.Validate(); err != nil {
  7686  			invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams))
  7687  		}
  7688  	}
  7689  	if s.SalesforceConfiguration != nil {
  7690  		if err := s.SalesforceConfiguration.Validate(); err != nil {
  7691  			invalidParams.AddNested("SalesforceConfiguration", err.(request.ErrInvalidParams))
  7692  		}
  7693  	}
  7694  	if s.ServiceNowConfiguration != nil {
  7695  		if err := s.ServiceNowConfiguration.Validate(); err != nil {
  7696  			invalidParams.AddNested("ServiceNowConfiguration", err.(request.ErrInvalidParams))
  7697  		}
  7698  	}
  7699  	if s.SharePointConfiguration != nil {
  7700  		if err := s.SharePointConfiguration.Validate(); err != nil {
  7701  			invalidParams.AddNested("SharePointConfiguration", err.(request.ErrInvalidParams))
  7702  		}
  7703  	}
  7704  	if s.WebCrawlerConfiguration != nil {
  7705  		if err := s.WebCrawlerConfiguration.Validate(); err != nil {
  7706  			invalidParams.AddNested("WebCrawlerConfiguration", err.(request.ErrInvalidParams))
  7707  		}
  7708  	}
  7709  	if s.WorkDocsConfiguration != nil {
  7710  		if err := s.WorkDocsConfiguration.Validate(); err != nil {
  7711  			invalidParams.AddNested("WorkDocsConfiguration", err.(request.ErrInvalidParams))
  7712  		}
  7713  	}
  7714  
  7715  	if invalidParams.Len() > 0 {
  7716  		return invalidParams
  7717  	}
  7718  	return nil
  7719  }
  7720  
  7721  // SetConfluenceConfiguration sets the ConfluenceConfiguration field's value.
  7722  func (s *DataSourceConfiguration) SetConfluenceConfiguration(v *ConfluenceConfiguration) *DataSourceConfiguration {
  7723  	s.ConfluenceConfiguration = v
  7724  	return s
  7725  }
  7726  
  7727  // SetDatabaseConfiguration sets the DatabaseConfiguration field's value.
  7728  func (s *DataSourceConfiguration) SetDatabaseConfiguration(v *DatabaseConfiguration) *DataSourceConfiguration {
  7729  	s.DatabaseConfiguration = v
  7730  	return s
  7731  }
  7732  
  7733  // SetGoogleDriveConfiguration sets the GoogleDriveConfiguration field's value.
  7734  func (s *DataSourceConfiguration) SetGoogleDriveConfiguration(v *GoogleDriveConfiguration) *DataSourceConfiguration {
  7735  	s.GoogleDriveConfiguration = v
  7736  	return s
  7737  }
  7738  
  7739  // SetOneDriveConfiguration sets the OneDriveConfiguration field's value.
  7740  func (s *DataSourceConfiguration) SetOneDriveConfiguration(v *OneDriveConfiguration) *DataSourceConfiguration {
  7741  	s.OneDriveConfiguration = v
  7742  	return s
  7743  }
  7744  
  7745  // SetS3Configuration sets the S3Configuration field's value.
  7746  func (s *DataSourceConfiguration) SetS3Configuration(v *S3DataSourceConfiguration) *DataSourceConfiguration {
  7747  	s.S3Configuration = v
  7748  	return s
  7749  }
  7750  
  7751  // SetSalesforceConfiguration sets the SalesforceConfiguration field's value.
  7752  func (s *DataSourceConfiguration) SetSalesforceConfiguration(v *SalesforceConfiguration) *DataSourceConfiguration {
  7753  	s.SalesforceConfiguration = v
  7754  	return s
  7755  }
  7756  
  7757  // SetServiceNowConfiguration sets the ServiceNowConfiguration field's value.
  7758  func (s *DataSourceConfiguration) SetServiceNowConfiguration(v *ServiceNowConfiguration) *DataSourceConfiguration {
  7759  	s.ServiceNowConfiguration = v
  7760  	return s
  7761  }
  7762  
  7763  // SetSharePointConfiguration sets the SharePointConfiguration field's value.
  7764  func (s *DataSourceConfiguration) SetSharePointConfiguration(v *SharePointConfiguration) *DataSourceConfiguration {
  7765  	s.SharePointConfiguration = v
  7766  	return s
  7767  }
  7768  
  7769  // SetWebCrawlerConfiguration sets the WebCrawlerConfiguration field's value.
  7770  func (s *DataSourceConfiguration) SetWebCrawlerConfiguration(v *WebCrawlerConfiguration) *DataSourceConfiguration {
  7771  	s.WebCrawlerConfiguration = v
  7772  	return s
  7773  }
  7774  
  7775  // SetWorkDocsConfiguration sets the WorkDocsConfiguration field's value.
  7776  func (s *DataSourceConfiguration) SetWorkDocsConfiguration(v *WorkDocsConfiguration) *DataSourceConfiguration {
  7777  	s.WorkDocsConfiguration = v
  7778  	return s
  7779  }
  7780  
  7781  // Data source information for user context filtering.
  7782  type DataSourceGroup struct {
  7783  	_ struct{} `type:"structure"`
  7784  
  7785  	// The identifier of the data source group you want to add to your list of data
  7786  	// source groups. This is for filtering search results based on the groups'
  7787  	// access to documents in that data source.
  7788  	//
  7789  	// DataSourceId is a required field
  7790  	DataSourceId *string `min:"1" type:"string" required:"true"`
  7791  
  7792  	// The identifier of the group you want to add to your list of groups. This
  7793  	// is for filtering search results based on the groups' access to documents.
  7794  	//
  7795  	// GroupId is a required field
  7796  	GroupId *string `min:"1" type:"string" required:"true"`
  7797  }
  7798  
  7799  // String returns the string representation.
  7800  //
  7801  // API parameter values that are decorated as "sensitive" in the API will not
  7802  // be included in the string output. The member name will be present, but the
  7803  // value will be replaced with "sensitive".
  7804  func (s DataSourceGroup) String() string {
  7805  	return awsutil.Prettify(s)
  7806  }
  7807  
  7808  // GoString returns the string representation.
  7809  //
  7810  // API parameter values that are decorated as "sensitive" in the API will not
  7811  // be included in the string output. The member name will be present, but the
  7812  // value will be replaced with "sensitive".
  7813  func (s DataSourceGroup) GoString() string {
  7814  	return s.String()
  7815  }
  7816  
  7817  // Validate inspects the fields of the type to determine if they are valid.
  7818  func (s *DataSourceGroup) Validate() error {
  7819  	invalidParams := request.ErrInvalidParams{Context: "DataSourceGroup"}
  7820  	if s.DataSourceId == nil {
  7821  		invalidParams.Add(request.NewErrParamRequired("DataSourceId"))
  7822  	}
  7823  	if s.DataSourceId != nil && len(*s.DataSourceId) < 1 {
  7824  		invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 1))
  7825  	}
  7826  	if s.GroupId == nil {
  7827  		invalidParams.Add(request.NewErrParamRequired("GroupId"))
  7828  	}
  7829  	if s.GroupId != nil && len(*s.GroupId) < 1 {
  7830  		invalidParams.Add(request.NewErrParamMinLen("GroupId", 1))
  7831  	}
  7832  
  7833  	if invalidParams.Len() > 0 {
  7834  		return invalidParams
  7835  	}
  7836  	return nil
  7837  }
  7838  
  7839  // SetDataSourceId sets the DataSourceId field's value.
  7840  func (s *DataSourceGroup) SetDataSourceId(v string) *DataSourceGroup {
  7841  	s.DataSourceId = &v
  7842  	return s
  7843  }
  7844  
  7845  // SetGroupId sets the GroupId field's value.
  7846  func (s *DataSourceGroup) SetGroupId(v string) *DataSourceGroup {
  7847  	s.GroupId = &v
  7848  	return s
  7849  }
  7850  
  7851  // Summary information for a Amazon Kendra data source. Returned in a call to
  7852  // the DescribeDataSource operation.
  7853  type DataSourceSummary struct {
  7854  	_ struct{} `type:"structure"`
  7855  
  7856  	// The UNIX datetime that the data source was created.
  7857  	CreatedAt *time.Time `type:"timestamp"`
  7858  
  7859  	// The unique identifier for the data source.
  7860  	Id *string `min:"1" type:"string"`
  7861  
  7862  	// The code for a language. This shows a supported language for all documents
  7863  	// in the data source. English is supported by default. For more information
  7864  	// on supported languages, including their codes, see Adding documents in languages
  7865  	// other than English (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html).
  7866  	LanguageCode *string `min:"2" type:"string"`
  7867  
  7868  	// The name of the data source.
  7869  	Name *string `min:"1" type:"string"`
  7870  
  7871  	// The status of the data source. When the status is ACTIVE the data source
  7872  	// is ready to use.
  7873  	Status *string `type:"string" enum:"DataSourceStatus"`
  7874  
  7875  	// The type of the data source.
  7876  	Type *string `type:"string" enum:"DataSourceType"`
  7877  
  7878  	// The UNIX datetime that the data source was lasted updated.
  7879  	UpdatedAt *time.Time `type:"timestamp"`
  7880  }
  7881  
  7882  // String returns the string representation.
  7883  //
  7884  // API parameter values that are decorated as "sensitive" in the API will not
  7885  // be included in the string output. The member name will be present, but the
  7886  // value will be replaced with "sensitive".
  7887  func (s DataSourceSummary) String() string {
  7888  	return awsutil.Prettify(s)
  7889  }
  7890  
  7891  // GoString returns the string representation.
  7892  //
  7893  // API parameter values that are decorated as "sensitive" in the API will not
  7894  // be included in the string output. The member name will be present, but the
  7895  // value will be replaced with "sensitive".
  7896  func (s DataSourceSummary) GoString() string {
  7897  	return s.String()
  7898  }
  7899  
  7900  // SetCreatedAt sets the CreatedAt field's value.
  7901  func (s *DataSourceSummary) SetCreatedAt(v time.Time) *DataSourceSummary {
  7902  	s.CreatedAt = &v
  7903  	return s
  7904  }
  7905  
  7906  // SetId sets the Id field's value.
  7907  func (s *DataSourceSummary) SetId(v string) *DataSourceSummary {
  7908  	s.Id = &v
  7909  	return s
  7910  }
  7911  
  7912  // SetLanguageCode sets the LanguageCode field's value.
  7913  func (s *DataSourceSummary) SetLanguageCode(v string) *DataSourceSummary {
  7914  	s.LanguageCode = &v
  7915  	return s
  7916  }
  7917  
  7918  // SetName sets the Name field's value.
  7919  func (s *DataSourceSummary) SetName(v string) *DataSourceSummary {
  7920  	s.Name = &v
  7921  	return s
  7922  }
  7923  
  7924  // SetStatus sets the Status field's value.
  7925  func (s *DataSourceSummary) SetStatus(v string) *DataSourceSummary {
  7926  	s.Status = &v
  7927  	return s
  7928  }
  7929  
  7930  // SetType sets the Type field's value.
  7931  func (s *DataSourceSummary) SetType(v string) *DataSourceSummary {
  7932  	s.Type = &v
  7933  	return s
  7934  }
  7935  
  7936  // SetUpdatedAt sets the UpdatedAt field's value.
  7937  func (s *DataSourceSummary) SetUpdatedAt(v time.Time) *DataSourceSummary {
  7938  	s.UpdatedAt = &v
  7939  	return s
  7940  }
  7941  
  7942  // Provides information about a synchronization job.
  7943  type DataSourceSyncJob struct {
  7944  	_ struct{} `type:"structure"`
  7945  
  7946  	// If the reason that the synchronization failed is due to an error with the
  7947  	// underlying data source, this field contains a code that identifies the error.
  7948  	DataSourceErrorCode *string `min:"1" type:"string"`
  7949  
  7950  	// The UNIX datetime that the synchronization job was completed.
  7951  	EndTime *time.Time `type:"timestamp"`
  7952  
  7953  	// If the Status field is set to FAILED, the ErrorCode field contains a the
  7954  	// reason that the synchronization failed.
  7955  	ErrorCode *string `type:"string" enum:"ErrorCode"`
  7956  
  7957  	// If the Status field is set to ERROR, the ErrorMessage field contains a description
  7958  	// of the error that caused the synchronization to fail.
  7959  	ErrorMessage *string `min:"1" type:"string"`
  7960  
  7961  	// A unique identifier for the synchronization job.
  7962  	ExecutionId *string `min:"1" type:"string"`
  7963  
  7964  	// Maps a batch delete document request to a specific data source sync job.
  7965  	// This is optional and should only be supplied when documents are deleted by
  7966  	// a data source connector.
  7967  	Metrics *DataSourceSyncJobMetrics `type:"structure"`
  7968  
  7969  	// The UNIX datetime that the synchronization job was started.
  7970  	StartTime *time.Time `type:"timestamp"`
  7971  
  7972  	// The execution status of the synchronization job. When the Status field is
  7973  	// set to SUCCEEDED, the synchronization job is done. If the status code is
  7974  	// set to FAILED, the ErrorCode and ErrorMessage fields give you the reason
  7975  	// for the failure.
  7976  	Status *string `type:"string" enum:"DataSourceSyncJobStatus"`
  7977  }
  7978  
  7979  // String returns the string representation.
  7980  //
  7981  // API parameter values that are decorated as "sensitive" in the API will not
  7982  // be included in the string output. The member name will be present, but the
  7983  // value will be replaced with "sensitive".
  7984  func (s DataSourceSyncJob) String() string {
  7985  	return awsutil.Prettify(s)
  7986  }
  7987  
  7988  // GoString returns the string representation.
  7989  //
  7990  // API parameter values that are decorated as "sensitive" in the API will not
  7991  // be included in the string output. The member name will be present, but the
  7992  // value will be replaced with "sensitive".
  7993  func (s DataSourceSyncJob) GoString() string {
  7994  	return s.String()
  7995  }
  7996  
  7997  // SetDataSourceErrorCode sets the DataSourceErrorCode field's value.
  7998  func (s *DataSourceSyncJob) SetDataSourceErrorCode(v string) *DataSourceSyncJob {
  7999  	s.DataSourceErrorCode = &v
  8000  	return s
  8001  }
  8002  
  8003  // SetEndTime sets the EndTime field's value.
  8004  func (s *DataSourceSyncJob) SetEndTime(v time.Time) *DataSourceSyncJob {
  8005  	s.EndTime = &v
  8006  	return s
  8007  }
  8008  
  8009  // SetErrorCode sets the ErrorCode field's value.
  8010  func (s *DataSourceSyncJob) SetErrorCode(v string) *DataSourceSyncJob {
  8011  	s.ErrorCode = &v
  8012  	return s
  8013  }
  8014  
  8015  // SetErrorMessage sets the ErrorMessage field's value.
  8016  func (s *DataSourceSyncJob) SetErrorMessage(v string) *DataSourceSyncJob {
  8017  	s.ErrorMessage = &v
  8018  	return s
  8019  }
  8020  
  8021  // SetExecutionId sets the ExecutionId field's value.
  8022  func (s *DataSourceSyncJob) SetExecutionId(v string) *DataSourceSyncJob {
  8023  	s.ExecutionId = &v
  8024  	return s
  8025  }
  8026  
  8027  // SetMetrics sets the Metrics field's value.
  8028  func (s *DataSourceSyncJob) SetMetrics(v *DataSourceSyncJobMetrics) *DataSourceSyncJob {
  8029  	s.Metrics = v
  8030  	return s
  8031  }
  8032  
  8033  // SetStartTime sets the StartTime field's value.
  8034  func (s *DataSourceSyncJob) SetStartTime(v time.Time) *DataSourceSyncJob {
  8035  	s.StartTime = &v
  8036  	return s
  8037  }
  8038  
  8039  // SetStatus sets the Status field's value.
  8040  func (s *DataSourceSyncJob) SetStatus(v string) *DataSourceSyncJob {
  8041  	s.Status = &v
  8042  	return s
  8043  }
  8044  
  8045  // Maps a particular data source sync job to a particular data source.
  8046  type DataSourceSyncJobMetricTarget struct {
  8047  	_ struct{} `type:"structure"`
  8048  
  8049  	// The ID of the data source that is running the sync job.
  8050  	//
  8051  	// DataSourceId is a required field
  8052  	DataSourceId *string `min:"1" type:"string" required:"true"`
  8053  
  8054  	// The ID of the sync job that is running on the data source.
  8055  	//
  8056  	// If the ID of a sync job is not provided and there is a sync job running,
  8057  	// then the ID of this sync job is used and metrics are generated for this sync
  8058  	// job.
  8059  	//
  8060  	// If the ID of a sync job is not provided and there is no sync job running,
  8061  	// then no metrics are generated and documents are indexed/deleted at the index
  8062  	// level without sync job metrics included.
  8063  	DataSourceSyncJobId *string `min:"1" type:"string"`
  8064  }
  8065  
  8066  // String returns the string representation.
  8067  //
  8068  // API parameter values that are decorated as "sensitive" in the API will not
  8069  // be included in the string output. The member name will be present, but the
  8070  // value will be replaced with "sensitive".
  8071  func (s DataSourceSyncJobMetricTarget) String() string {
  8072  	return awsutil.Prettify(s)
  8073  }
  8074  
  8075  // GoString returns the string representation.
  8076  //
  8077  // API parameter values that are decorated as "sensitive" in the API will not
  8078  // be included in the string output. The member name will be present, but the
  8079  // value will be replaced with "sensitive".
  8080  func (s DataSourceSyncJobMetricTarget) GoString() string {
  8081  	return s.String()
  8082  }
  8083  
  8084  // Validate inspects the fields of the type to determine if they are valid.
  8085  func (s *DataSourceSyncJobMetricTarget) Validate() error {
  8086  	invalidParams := request.ErrInvalidParams{Context: "DataSourceSyncJobMetricTarget"}
  8087  	if s.DataSourceId == nil {
  8088  		invalidParams.Add(request.NewErrParamRequired("DataSourceId"))
  8089  	}
  8090  	if s.DataSourceId != nil && len(*s.DataSourceId) < 1 {
  8091  		invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 1))
  8092  	}
  8093  	if s.DataSourceSyncJobId != nil && len(*s.DataSourceSyncJobId) < 1 {
  8094  		invalidParams.Add(request.NewErrParamMinLen("DataSourceSyncJobId", 1))
  8095  	}
  8096  
  8097  	if invalidParams.Len() > 0 {
  8098  		return invalidParams
  8099  	}
  8100  	return nil
  8101  }
  8102  
  8103  // SetDataSourceId sets the DataSourceId field's value.
  8104  func (s *DataSourceSyncJobMetricTarget) SetDataSourceId(v string) *DataSourceSyncJobMetricTarget {
  8105  	s.DataSourceId = &v
  8106  	return s
  8107  }
  8108  
  8109  // SetDataSourceSyncJobId sets the DataSourceSyncJobId field's value.
  8110  func (s *DataSourceSyncJobMetricTarget) SetDataSourceSyncJobId(v string) *DataSourceSyncJobMetricTarget {
  8111  	s.DataSourceSyncJobId = &v
  8112  	return s
  8113  }
  8114  
  8115  // Maps a batch delete document request to a specific data source sync job.
  8116  // This is optional and should only be supplied when documents are deleted by
  8117  // a data source connector.
  8118  type DataSourceSyncJobMetrics struct {
  8119  	_ struct{} `type:"structure"`
  8120  
  8121  	// The number of documents added from the data source up to now in the data
  8122  	// source sync.
  8123  	DocumentsAdded *string `type:"string"`
  8124  
  8125  	// The number of documents deleted from the data source up to now in the data
  8126  	// source sync run.
  8127  	DocumentsDeleted *string `type:"string"`
  8128  
  8129  	// The number of documents that failed to sync from the data source up to now
  8130  	// in the data source sync run.
  8131  	DocumentsFailed *string `type:"string"`
  8132  
  8133  	// The number of documents modified in the data source up to now in the data
  8134  	// source sync run.
  8135  	DocumentsModified *string `type:"string"`
  8136  
  8137  	// The current number of documents crawled by the current sync job in the data
  8138  	// source.
  8139  	DocumentsScanned *string `type:"string"`
  8140  }
  8141  
  8142  // String returns the string representation.
  8143  //
  8144  // API parameter values that are decorated as "sensitive" in the API will not
  8145  // be included in the string output. The member name will be present, but the
  8146  // value will be replaced with "sensitive".
  8147  func (s DataSourceSyncJobMetrics) String() string {
  8148  	return awsutil.Prettify(s)
  8149  }
  8150  
  8151  // GoString returns the string representation.
  8152  //
  8153  // API parameter values that are decorated as "sensitive" in the API will not
  8154  // be included in the string output. The member name will be present, but the
  8155  // value will be replaced with "sensitive".
  8156  func (s DataSourceSyncJobMetrics) GoString() string {
  8157  	return s.String()
  8158  }
  8159  
  8160  // SetDocumentsAdded sets the DocumentsAdded field's value.
  8161  func (s *DataSourceSyncJobMetrics) SetDocumentsAdded(v string) *DataSourceSyncJobMetrics {
  8162  	s.DocumentsAdded = &v
  8163  	return s
  8164  }
  8165  
  8166  // SetDocumentsDeleted sets the DocumentsDeleted field's value.
  8167  func (s *DataSourceSyncJobMetrics) SetDocumentsDeleted(v string) *DataSourceSyncJobMetrics {
  8168  	s.DocumentsDeleted = &v
  8169  	return s
  8170  }
  8171  
  8172  // SetDocumentsFailed sets the DocumentsFailed field's value.
  8173  func (s *DataSourceSyncJobMetrics) SetDocumentsFailed(v string) *DataSourceSyncJobMetrics {
  8174  	s.DocumentsFailed = &v
  8175  	return s
  8176  }
  8177  
  8178  // SetDocumentsModified sets the DocumentsModified field's value.
  8179  func (s *DataSourceSyncJobMetrics) SetDocumentsModified(v string) *DataSourceSyncJobMetrics {
  8180  	s.DocumentsModified = &v
  8181  	return s
  8182  }
  8183  
  8184  // SetDocumentsScanned sets the DocumentsScanned field's value.
  8185  func (s *DataSourceSyncJobMetrics) SetDocumentsScanned(v string) *DataSourceSyncJobMetrics {
  8186  	s.DocumentsScanned = &v
  8187  	return s
  8188  }
  8189  
  8190  // Maps a column or attribute in the data source to an index field. You must
  8191  // first create the fields in the index using the UpdateIndex operation.
  8192  type DataSourceToIndexFieldMapping struct {
  8193  	_ struct{} `type:"structure"`
  8194  
  8195  	// The name of the column or attribute in the data source.
  8196  	//
  8197  	// DataSourceFieldName is a required field
  8198  	DataSourceFieldName *string `min:"1" type:"string" required:"true"`
  8199  
  8200  	// The type of data stored in the column or attribute.
  8201  	DateFieldFormat *string `min:"4" type:"string"`
  8202  
  8203  	// The name of the field in the index.
  8204  	//
  8205  	// IndexFieldName is a required field
  8206  	IndexFieldName *string `min:"1" type:"string" required:"true"`
  8207  }
  8208  
  8209  // String returns the string representation.
  8210  //
  8211  // API parameter values that are decorated as "sensitive" in the API will not
  8212  // be included in the string output. The member name will be present, but the
  8213  // value will be replaced with "sensitive".
  8214  func (s DataSourceToIndexFieldMapping) String() string {
  8215  	return awsutil.Prettify(s)
  8216  }
  8217  
  8218  // GoString returns the string representation.
  8219  //
  8220  // API parameter values that are decorated as "sensitive" in the API will not
  8221  // be included in the string output. The member name will be present, but the
  8222  // value will be replaced with "sensitive".
  8223  func (s DataSourceToIndexFieldMapping) GoString() string {
  8224  	return s.String()
  8225  }
  8226  
  8227  // Validate inspects the fields of the type to determine if they are valid.
  8228  func (s *DataSourceToIndexFieldMapping) Validate() error {
  8229  	invalidParams := request.ErrInvalidParams{Context: "DataSourceToIndexFieldMapping"}
  8230  	if s.DataSourceFieldName == nil {
  8231  		invalidParams.Add(request.NewErrParamRequired("DataSourceFieldName"))
  8232  	}
  8233  	if s.DataSourceFieldName != nil && len(*s.DataSourceFieldName) < 1 {
  8234  		invalidParams.Add(request.NewErrParamMinLen("DataSourceFieldName", 1))
  8235  	}
  8236  	if s.DateFieldFormat != nil && len(*s.DateFieldFormat) < 4 {
  8237  		invalidParams.Add(request.NewErrParamMinLen("DateFieldFormat", 4))
  8238  	}
  8239  	if s.IndexFieldName == nil {
  8240  		invalidParams.Add(request.NewErrParamRequired("IndexFieldName"))
  8241  	}
  8242  	if s.IndexFieldName != nil && len(*s.IndexFieldName) < 1 {
  8243  		invalidParams.Add(request.NewErrParamMinLen("IndexFieldName", 1))
  8244  	}
  8245  
  8246  	if invalidParams.Len() > 0 {
  8247  		return invalidParams
  8248  	}
  8249  	return nil
  8250  }
  8251  
  8252  // SetDataSourceFieldName sets the DataSourceFieldName field's value.
  8253  func (s *DataSourceToIndexFieldMapping) SetDataSourceFieldName(v string) *DataSourceToIndexFieldMapping {
  8254  	s.DataSourceFieldName = &v
  8255  	return s
  8256  }
  8257  
  8258  // SetDateFieldFormat sets the DateFieldFormat field's value.
  8259  func (s *DataSourceToIndexFieldMapping) SetDateFieldFormat(v string) *DataSourceToIndexFieldMapping {
  8260  	s.DateFieldFormat = &v
  8261  	return s
  8262  }
  8263  
  8264  // SetIndexFieldName sets the IndexFieldName field's value.
  8265  func (s *DataSourceToIndexFieldMapping) SetIndexFieldName(v string) *DataSourceToIndexFieldMapping {
  8266  	s.IndexFieldName = &v
  8267  	return s
  8268  }
  8269  
  8270  // Provides information for connecting to an Amazon VPC.
  8271  type DataSourceVpcConfiguration struct {
  8272  	_ struct{} `type:"structure"`
  8273  
  8274  	// A list of identifiers of security groups within your Amazon VPC. The security
  8275  	// groups should enable Amazon Kendra to connect to the data source.
  8276  	//
  8277  	// SecurityGroupIds is a required field
  8278  	SecurityGroupIds []*string `min:"1" type:"list" required:"true"`
  8279  
  8280  	// A list of identifiers for subnets within your Amazon VPC. The subnets should
  8281  	// be able to connect to each other in the VPC, and they should have outgoing
  8282  	// access to the Internet through a NAT device.
  8283  	//
  8284  	// SubnetIds is a required field
  8285  	SubnetIds []*string `min:"1" type:"list" required:"true"`
  8286  }
  8287  
  8288  // String returns the string representation.
  8289  //
  8290  // API parameter values that are decorated as "sensitive" in the API will not
  8291  // be included in the string output. The member name will be present, but the
  8292  // value will be replaced with "sensitive".
  8293  func (s DataSourceVpcConfiguration) String() string {
  8294  	return awsutil.Prettify(s)
  8295  }
  8296  
  8297  // GoString returns the string representation.
  8298  //
  8299  // API parameter values that are decorated as "sensitive" in the API will not
  8300  // be included in the string output. The member name will be present, but the
  8301  // value will be replaced with "sensitive".
  8302  func (s DataSourceVpcConfiguration) GoString() string {
  8303  	return s.String()
  8304  }
  8305  
  8306  // Validate inspects the fields of the type to determine if they are valid.
  8307  func (s *DataSourceVpcConfiguration) Validate() error {
  8308  	invalidParams := request.ErrInvalidParams{Context: "DataSourceVpcConfiguration"}
  8309  	if s.SecurityGroupIds == nil {
  8310  		invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds"))
  8311  	}
  8312  	if s.SecurityGroupIds != nil && len(s.SecurityGroupIds) < 1 {
  8313  		invalidParams.Add(request.NewErrParamMinLen("SecurityGroupIds", 1))
  8314  	}
  8315  	if s.SubnetIds == nil {
  8316  		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
  8317  	}
  8318  	if s.SubnetIds != nil && len(s.SubnetIds) < 1 {
  8319  		invalidParams.Add(request.NewErrParamMinLen("SubnetIds", 1))
  8320  	}
  8321  
  8322  	if invalidParams.Len() > 0 {
  8323  		return invalidParams
  8324  	}
  8325  	return nil
  8326  }
  8327  
  8328  // SetSecurityGroupIds sets the SecurityGroupIds field's value.
  8329  func (s *DataSourceVpcConfiguration) SetSecurityGroupIds(v []*string) *DataSourceVpcConfiguration {
  8330  	s.SecurityGroupIds = v
  8331  	return s
  8332  }
  8333  
  8334  // SetSubnetIds sets the SubnetIds field's value.
  8335  func (s *DataSourceVpcConfiguration) SetSubnetIds(v []*string) *DataSourceVpcConfiguration {
  8336  	s.SubnetIds = v
  8337  	return s
  8338  }
  8339  
  8340  // Provides the information necessary to connect a database to an index.
  8341  type DatabaseConfiguration struct {
  8342  	_ struct{} `type:"structure"`
  8343  
  8344  	// Information about the database column that provides information for user
  8345  	// context filtering.
  8346  	AclConfiguration *AclConfiguration `type:"structure"`
  8347  
  8348  	// Information about where the index should get the document information from
  8349  	// the database.
  8350  	//
  8351  	// ColumnConfiguration is a required field
  8352  	ColumnConfiguration *ColumnConfiguration `type:"structure" required:"true"`
  8353  
  8354  	// The information necessary to connect to a database.
  8355  	//
  8356  	// ConnectionConfiguration is a required field
  8357  	ConnectionConfiguration *ConnectionConfiguration `type:"structure" required:"true"`
  8358  
  8359  	// The type of database engine that runs the database.
  8360  	//
  8361  	// DatabaseEngineType is a required field
  8362  	DatabaseEngineType *string `type:"string" required:"true" enum:"DatabaseEngineType"`
  8363  
  8364  	// Provides information about how Amazon Kendra uses quote marks around SQL
  8365  	// identifiers when querying a database data source.
  8366  	SqlConfiguration *SqlConfiguration `type:"structure"`
  8367  
  8368  	// Provides information for connecting to an Amazon VPC.
  8369  	VpcConfiguration *DataSourceVpcConfiguration `type:"structure"`
  8370  }
  8371  
  8372  // String returns the string representation.
  8373  //
  8374  // API parameter values that are decorated as "sensitive" in the API will not
  8375  // be included in the string output. The member name will be present, but the
  8376  // value will be replaced with "sensitive".
  8377  func (s DatabaseConfiguration) String() string {
  8378  	return awsutil.Prettify(s)
  8379  }
  8380  
  8381  // GoString returns the string representation.
  8382  //
  8383  // API parameter values that are decorated as "sensitive" in the API will not
  8384  // be included in the string output. The member name will be present, but the
  8385  // value will be replaced with "sensitive".
  8386  func (s DatabaseConfiguration) GoString() string {
  8387  	return s.String()
  8388  }
  8389  
  8390  // Validate inspects the fields of the type to determine if they are valid.
  8391  func (s *DatabaseConfiguration) Validate() error {
  8392  	invalidParams := request.ErrInvalidParams{Context: "DatabaseConfiguration"}
  8393  	if s.ColumnConfiguration == nil {
  8394  		invalidParams.Add(request.NewErrParamRequired("ColumnConfiguration"))
  8395  	}
  8396  	if s.ConnectionConfiguration == nil {
  8397  		invalidParams.Add(request.NewErrParamRequired("ConnectionConfiguration"))
  8398  	}
  8399  	if s.DatabaseEngineType == nil {
  8400  		invalidParams.Add(request.NewErrParamRequired("DatabaseEngineType"))
  8401  	}
  8402  	if s.AclConfiguration != nil {
  8403  		if err := s.AclConfiguration.Validate(); err != nil {
  8404  			invalidParams.AddNested("AclConfiguration", err.(request.ErrInvalidParams))
  8405  		}
  8406  	}
  8407  	if s.ColumnConfiguration != nil {
  8408  		if err := s.ColumnConfiguration.Validate(); err != nil {
  8409  			invalidParams.AddNested("ColumnConfiguration", err.(request.ErrInvalidParams))
  8410  		}
  8411  	}
  8412  	if s.ConnectionConfiguration != nil {
  8413  		if err := s.ConnectionConfiguration.Validate(); err != nil {
  8414  			invalidParams.AddNested("ConnectionConfiguration", err.(request.ErrInvalidParams))
  8415  		}
  8416  	}
  8417  	if s.VpcConfiguration != nil {
  8418  		if err := s.VpcConfiguration.Validate(); err != nil {
  8419  			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
  8420  		}
  8421  	}
  8422  
  8423  	if invalidParams.Len() > 0 {
  8424  		return invalidParams
  8425  	}
  8426  	return nil
  8427  }
  8428  
  8429  // SetAclConfiguration sets the AclConfiguration field's value.
  8430  func (s *DatabaseConfiguration) SetAclConfiguration(v *AclConfiguration) *DatabaseConfiguration {
  8431  	s.AclConfiguration = v
  8432  	return s
  8433  }
  8434  
  8435  // SetColumnConfiguration sets the ColumnConfiguration field's value.
  8436  func (s *DatabaseConfiguration) SetColumnConfiguration(v *ColumnConfiguration) *DatabaseConfiguration {
  8437  	s.ColumnConfiguration = v
  8438  	return s
  8439  }
  8440  
  8441  // SetConnectionConfiguration sets the ConnectionConfiguration field's value.
  8442  func (s *DatabaseConfiguration) SetConnectionConfiguration(v *ConnectionConfiguration) *DatabaseConfiguration {
  8443  	s.ConnectionConfiguration = v
  8444  	return s
  8445  }
  8446  
  8447  // SetDatabaseEngineType sets the DatabaseEngineType field's value.
  8448  func (s *DatabaseConfiguration) SetDatabaseEngineType(v string) *DatabaseConfiguration {
  8449  	s.DatabaseEngineType = &v
  8450  	return s
  8451  }
  8452  
  8453  // SetSqlConfiguration sets the SqlConfiguration field's value.
  8454  func (s *DatabaseConfiguration) SetSqlConfiguration(v *SqlConfiguration) *DatabaseConfiguration {
  8455  	s.SqlConfiguration = v
  8456  	return s
  8457  }
  8458  
  8459  // SetVpcConfiguration sets the VpcConfiguration field's value.
  8460  func (s *DatabaseConfiguration) SetVpcConfiguration(v *DataSourceVpcConfiguration) *DatabaseConfiguration {
  8461  	s.VpcConfiguration = v
  8462  	return s
  8463  }
  8464  
  8465  type DeleteDataSourceInput struct {
  8466  	_ struct{} `type:"structure"`
  8467  
  8468  	// The unique identifier of the data source to delete.
  8469  	//
  8470  	// Id is a required field
  8471  	Id *string `min:"1" type:"string" required:"true"`
  8472  
  8473  	// The unique identifier of the index associated with the data source.
  8474  	//
  8475  	// IndexId is a required field
  8476  	IndexId *string `min:"36" type:"string" required:"true"`
  8477  }
  8478  
  8479  // String returns the string representation.
  8480  //
  8481  // API parameter values that are decorated as "sensitive" in the API will not
  8482  // be included in the string output. The member name will be present, but the
  8483  // value will be replaced with "sensitive".
  8484  func (s DeleteDataSourceInput) String() string {
  8485  	return awsutil.Prettify(s)
  8486  }
  8487  
  8488  // GoString returns the string representation.
  8489  //
  8490  // API parameter values that are decorated as "sensitive" in the API will not
  8491  // be included in the string output. The member name will be present, but the
  8492  // value will be replaced with "sensitive".
  8493  func (s DeleteDataSourceInput) GoString() string {
  8494  	return s.String()
  8495  }
  8496  
  8497  // Validate inspects the fields of the type to determine if they are valid.
  8498  func (s *DeleteDataSourceInput) Validate() error {
  8499  	invalidParams := request.ErrInvalidParams{Context: "DeleteDataSourceInput"}
  8500  	if s.Id == nil {
  8501  		invalidParams.Add(request.NewErrParamRequired("Id"))
  8502  	}
  8503  	if s.Id != nil && len(*s.Id) < 1 {
  8504  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
  8505  	}
  8506  	if s.IndexId == nil {
  8507  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  8508  	}
  8509  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  8510  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  8511  	}
  8512  
  8513  	if invalidParams.Len() > 0 {
  8514  		return invalidParams
  8515  	}
  8516  	return nil
  8517  }
  8518  
  8519  // SetId sets the Id field's value.
  8520  func (s *DeleteDataSourceInput) SetId(v string) *DeleteDataSourceInput {
  8521  	s.Id = &v
  8522  	return s
  8523  }
  8524  
  8525  // SetIndexId sets the IndexId field's value.
  8526  func (s *DeleteDataSourceInput) SetIndexId(v string) *DeleteDataSourceInput {
  8527  	s.IndexId = &v
  8528  	return s
  8529  }
  8530  
  8531  type DeleteDataSourceOutput struct {
  8532  	_ struct{} `type:"structure"`
  8533  }
  8534  
  8535  // String returns the string representation.
  8536  //
  8537  // API parameter values that are decorated as "sensitive" in the API will not
  8538  // be included in the string output. The member name will be present, but the
  8539  // value will be replaced with "sensitive".
  8540  func (s DeleteDataSourceOutput) String() string {
  8541  	return awsutil.Prettify(s)
  8542  }
  8543  
  8544  // GoString returns the string representation.
  8545  //
  8546  // API parameter values that are decorated as "sensitive" in the API will not
  8547  // be included in the string output. The member name will be present, but the
  8548  // value will be replaced with "sensitive".
  8549  func (s DeleteDataSourceOutput) GoString() string {
  8550  	return s.String()
  8551  }
  8552  
  8553  type DeleteFaqInput struct {
  8554  	_ struct{} `type:"structure"`
  8555  
  8556  	// The identifier of the FAQ to remove.
  8557  	//
  8558  	// Id is a required field
  8559  	Id *string `min:"1" type:"string" required:"true"`
  8560  
  8561  	// The index to remove the FAQ from.
  8562  	//
  8563  	// IndexId is a required field
  8564  	IndexId *string `min:"36" type:"string" required:"true"`
  8565  }
  8566  
  8567  // String returns the string representation.
  8568  //
  8569  // API parameter values that are decorated as "sensitive" in the API will not
  8570  // be included in the string output. The member name will be present, but the
  8571  // value will be replaced with "sensitive".
  8572  func (s DeleteFaqInput) String() string {
  8573  	return awsutil.Prettify(s)
  8574  }
  8575  
  8576  // GoString returns the string representation.
  8577  //
  8578  // API parameter values that are decorated as "sensitive" in the API will not
  8579  // be included in the string output. The member name will be present, but the
  8580  // value will be replaced with "sensitive".
  8581  func (s DeleteFaqInput) GoString() string {
  8582  	return s.String()
  8583  }
  8584  
  8585  // Validate inspects the fields of the type to determine if they are valid.
  8586  func (s *DeleteFaqInput) Validate() error {
  8587  	invalidParams := request.ErrInvalidParams{Context: "DeleteFaqInput"}
  8588  	if s.Id == nil {
  8589  		invalidParams.Add(request.NewErrParamRequired("Id"))
  8590  	}
  8591  	if s.Id != nil && len(*s.Id) < 1 {
  8592  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
  8593  	}
  8594  	if s.IndexId == nil {
  8595  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  8596  	}
  8597  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  8598  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  8599  	}
  8600  
  8601  	if invalidParams.Len() > 0 {
  8602  		return invalidParams
  8603  	}
  8604  	return nil
  8605  }
  8606  
  8607  // SetId sets the Id field's value.
  8608  func (s *DeleteFaqInput) SetId(v string) *DeleteFaqInput {
  8609  	s.Id = &v
  8610  	return s
  8611  }
  8612  
  8613  // SetIndexId sets the IndexId field's value.
  8614  func (s *DeleteFaqInput) SetIndexId(v string) *DeleteFaqInput {
  8615  	s.IndexId = &v
  8616  	return s
  8617  }
  8618  
  8619  type DeleteFaqOutput struct {
  8620  	_ struct{} `type:"structure"`
  8621  }
  8622  
  8623  // String returns the string representation.
  8624  //
  8625  // API parameter values that are decorated as "sensitive" in the API will not
  8626  // be included in the string output. The member name will be present, but the
  8627  // value will be replaced with "sensitive".
  8628  func (s DeleteFaqOutput) String() string {
  8629  	return awsutil.Prettify(s)
  8630  }
  8631  
  8632  // GoString returns the string representation.
  8633  //
  8634  // API parameter values that are decorated as "sensitive" in the API will not
  8635  // be included in the string output. The member name will be present, but the
  8636  // value will be replaced with "sensitive".
  8637  func (s DeleteFaqOutput) GoString() string {
  8638  	return s.String()
  8639  }
  8640  
  8641  type DeleteIndexInput struct {
  8642  	_ struct{} `type:"structure"`
  8643  
  8644  	// The identifier of the index to delete.
  8645  	//
  8646  	// Id is a required field
  8647  	Id *string `min:"36" type:"string" required:"true"`
  8648  }
  8649  
  8650  // String returns the string representation.
  8651  //
  8652  // API parameter values that are decorated as "sensitive" in the API will not
  8653  // be included in the string output. The member name will be present, but the
  8654  // value will be replaced with "sensitive".
  8655  func (s DeleteIndexInput) String() string {
  8656  	return awsutil.Prettify(s)
  8657  }
  8658  
  8659  // GoString returns the string representation.
  8660  //
  8661  // API parameter values that are decorated as "sensitive" in the API will not
  8662  // be included in the string output. The member name will be present, but the
  8663  // value will be replaced with "sensitive".
  8664  func (s DeleteIndexInput) GoString() string {
  8665  	return s.String()
  8666  }
  8667  
  8668  // Validate inspects the fields of the type to determine if they are valid.
  8669  func (s *DeleteIndexInput) Validate() error {
  8670  	invalidParams := request.ErrInvalidParams{Context: "DeleteIndexInput"}
  8671  	if s.Id == nil {
  8672  		invalidParams.Add(request.NewErrParamRequired("Id"))
  8673  	}
  8674  	if s.Id != nil && len(*s.Id) < 36 {
  8675  		invalidParams.Add(request.NewErrParamMinLen("Id", 36))
  8676  	}
  8677  
  8678  	if invalidParams.Len() > 0 {
  8679  		return invalidParams
  8680  	}
  8681  	return nil
  8682  }
  8683  
  8684  // SetId sets the Id field's value.
  8685  func (s *DeleteIndexInput) SetId(v string) *DeleteIndexInput {
  8686  	s.Id = &v
  8687  	return s
  8688  }
  8689  
  8690  type DeleteIndexOutput struct {
  8691  	_ struct{} `type:"structure"`
  8692  }
  8693  
  8694  // String returns the string representation.
  8695  //
  8696  // API parameter values that are decorated as "sensitive" in the API will not
  8697  // be included in the string output. The member name will be present, but the
  8698  // value will be replaced with "sensitive".
  8699  func (s DeleteIndexOutput) String() string {
  8700  	return awsutil.Prettify(s)
  8701  }
  8702  
  8703  // GoString returns the string representation.
  8704  //
  8705  // API parameter values that are decorated as "sensitive" in the API will not
  8706  // be included in the string output. The member name will be present, but the
  8707  // value will be replaced with "sensitive".
  8708  func (s DeleteIndexOutput) GoString() string {
  8709  	return s.String()
  8710  }
  8711  
  8712  type DeletePrincipalMappingInput struct {
  8713  	_ struct{} `type:"structure"`
  8714  
  8715  	// The identifier of the data source you want to delete a group from.
  8716  	//
  8717  	// This is useful if a group is tied to multiple data sources and you want to
  8718  	// delete a group from accessing documents in a certain data source. For example,
  8719  	// the groups "Research", "Engineering", and "Sales and Marketing" are all tied
  8720  	// to the company's documents stored in the data sources Confluence and Salesforce.
  8721  	// You want to delete "Research" and "Engineering" groups from Salesforce, so
  8722  	// that these groups cannot access customer-related documents stored in Salesforce.
  8723  	// Only "Sales and Marketing" should access documents in the Salesforce data
  8724  	// source.
  8725  	DataSourceId *string `min:"1" type:"string"`
  8726  
  8727  	// The identifier of the group you want to delete.
  8728  	//
  8729  	// GroupId is a required field
  8730  	GroupId *string `min:"1" type:"string" required:"true"`
  8731  
  8732  	// The identifier of the index you want to delete a group from.
  8733  	//
  8734  	// IndexId is a required field
  8735  	IndexId *string `min:"36" type:"string" required:"true"`
  8736  
  8737  	// The timestamp identifier you specify to ensure Amazon Kendra does not override
  8738  	// the latest DELETE action with previous actions. The highest number ID, which
  8739  	// is the ordering ID, is the latest action you want to process and apply on
  8740  	// top of other actions with lower number IDs. This prevents previous actions
  8741  	// with lower number IDs from possibly overriding the latest action.
  8742  	//
  8743  	// The ordering ID can be the UNIX time of the last update you made to a group
  8744  	// members list. You would then provide this list when calling PutPrincipalMapping.
  8745  	// This ensures your DELETE action for that updated group with the latest members
  8746  	// list doesn't get overwritten by earlier DELETE actions for the same group
  8747  	// which are yet to be processed.
  8748  	//
  8749  	// The default ordering ID is the current UNIX time in milliseconds that the
  8750  	// action was received by Amazon Kendra.
  8751  	OrderingId *int64 `type:"long"`
  8752  }
  8753  
  8754  // String returns the string representation.
  8755  //
  8756  // API parameter values that are decorated as "sensitive" in the API will not
  8757  // be included in the string output. The member name will be present, but the
  8758  // value will be replaced with "sensitive".
  8759  func (s DeletePrincipalMappingInput) String() string {
  8760  	return awsutil.Prettify(s)
  8761  }
  8762  
  8763  // GoString returns the string representation.
  8764  //
  8765  // API parameter values that are decorated as "sensitive" in the API will not
  8766  // be included in the string output. The member name will be present, but the
  8767  // value will be replaced with "sensitive".
  8768  func (s DeletePrincipalMappingInput) GoString() string {
  8769  	return s.String()
  8770  }
  8771  
  8772  // Validate inspects the fields of the type to determine if they are valid.
  8773  func (s *DeletePrincipalMappingInput) Validate() error {
  8774  	invalidParams := request.ErrInvalidParams{Context: "DeletePrincipalMappingInput"}
  8775  	if s.DataSourceId != nil && len(*s.DataSourceId) < 1 {
  8776  		invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 1))
  8777  	}
  8778  	if s.GroupId == nil {
  8779  		invalidParams.Add(request.NewErrParamRequired("GroupId"))
  8780  	}
  8781  	if s.GroupId != nil && len(*s.GroupId) < 1 {
  8782  		invalidParams.Add(request.NewErrParamMinLen("GroupId", 1))
  8783  	}
  8784  	if s.IndexId == nil {
  8785  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  8786  	}
  8787  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  8788  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  8789  	}
  8790  
  8791  	if invalidParams.Len() > 0 {
  8792  		return invalidParams
  8793  	}
  8794  	return nil
  8795  }
  8796  
  8797  // SetDataSourceId sets the DataSourceId field's value.
  8798  func (s *DeletePrincipalMappingInput) SetDataSourceId(v string) *DeletePrincipalMappingInput {
  8799  	s.DataSourceId = &v
  8800  	return s
  8801  }
  8802  
  8803  // SetGroupId sets the GroupId field's value.
  8804  func (s *DeletePrincipalMappingInput) SetGroupId(v string) *DeletePrincipalMappingInput {
  8805  	s.GroupId = &v
  8806  	return s
  8807  }
  8808  
  8809  // SetIndexId sets the IndexId field's value.
  8810  func (s *DeletePrincipalMappingInput) SetIndexId(v string) *DeletePrincipalMappingInput {
  8811  	s.IndexId = &v
  8812  	return s
  8813  }
  8814  
  8815  // SetOrderingId sets the OrderingId field's value.
  8816  func (s *DeletePrincipalMappingInput) SetOrderingId(v int64) *DeletePrincipalMappingInput {
  8817  	s.OrderingId = &v
  8818  	return s
  8819  }
  8820  
  8821  type DeletePrincipalMappingOutput struct {
  8822  	_ struct{} `type:"structure"`
  8823  }
  8824  
  8825  // String returns the string representation.
  8826  //
  8827  // API parameter values that are decorated as "sensitive" in the API will not
  8828  // be included in the string output. The member name will be present, but the
  8829  // value will be replaced with "sensitive".
  8830  func (s DeletePrincipalMappingOutput) String() string {
  8831  	return awsutil.Prettify(s)
  8832  }
  8833  
  8834  // GoString returns the string representation.
  8835  //
  8836  // API parameter values that are decorated as "sensitive" in the API will not
  8837  // be included in the string output. The member name will be present, but the
  8838  // value will be replaced with "sensitive".
  8839  func (s DeletePrincipalMappingOutput) GoString() string {
  8840  	return s.String()
  8841  }
  8842  
  8843  type DeleteQuerySuggestionsBlockListInput struct {
  8844  	_ struct{} `type:"structure"`
  8845  
  8846  	// The unique identifier of the block list that needs to be deleted.
  8847  	//
  8848  	// Id is a required field
  8849  	Id *string `min:"36" type:"string" required:"true"`
  8850  
  8851  	// The identifier of the you want to delete a block list from.
  8852  	//
  8853  	// IndexId is a required field
  8854  	IndexId *string `min:"36" type:"string" required:"true"`
  8855  }
  8856  
  8857  // String returns the string representation.
  8858  //
  8859  // API parameter values that are decorated as "sensitive" in the API will not
  8860  // be included in the string output. The member name will be present, but the
  8861  // value will be replaced with "sensitive".
  8862  func (s DeleteQuerySuggestionsBlockListInput) String() string {
  8863  	return awsutil.Prettify(s)
  8864  }
  8865  
  8866  // GoString returns the string representation.
  8867  //
  8868  // API parameter values that are decorated as "sensitive" in the API will not
  8869  // be included in the string output. The member name will be present, but the
  8870  // value will be replaced with "sensitive".
  8871  func (s DeleteQuerySuggestionsBlockListInput) GoString() string {
  8872  	return s.String()
  8873  }
  8874  
  8875  // Validate inspects the fields of the type to determine if they are valid.
  8876  func (s *DeleteQuerySuggestionsBlockListInput) Validate() error {
  8877  	invalidParams := request.ErrInvalidParams{Context: "DeleteQuerySuggestionsBlockListInput"}
  8878  	if s.Id == nil {
  8879  		invalidParams.Add(request.NewErrParamRequired("Id"))
  8880  	}
  8881  	if s.Id != nil && len(*s.Id) < 36 {
  8882  		invalidParams.Add(request.NewErrParamMinLen("Id", 36))
  8883  	}
  8884  	if s.IndexId == nil {
  8885  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  8886  	}
  8887  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  8888  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  8889  	}
  8890  
  8891  	if invalidParams.Len() > 0 {
  8892  		return invalidParams
  8893  	}
  8894  	return nil
  8895  }
  8896  
  8897  // SetId sets the Id field's value.
  8898  func (s *DeleteQuerySuggestionsBlockListInput) SetId(v string) *DeleteQuerySuggestionsBlockListInput {
  8899  	s.Id = &v
  8900  	return s
  8901  }
  8902  
  8903  // SetIndexId sets the IndexId field's value.
  8904  func (s *DeleteQuerySuggestionsBlockListInput) SetIndexId(v string) *DeleteQuerySuggestionsBlockListInput {
  8905  	s.IndexId = &v
  8906  	return s
  8907  }
  8908  
  8909  type DeleteQuerySuggestionsBlockListOutput struct {
  8910  	_ struct{} `type:"structure"`
  8911  }
  8912  
  8913  // String returns the string representation.
  8914  //
  8915  // API parameter values that are decorated as "sensitive" in the API will not
  8916  // be included in the string output. The member name will be present, but the
  8917  // value will be replaced with "sensitive".
  8918  func (s DeleteQuerySuggestionsBlockListOutput) String() string {
  8919  	return awsutil.Prettify(s)
  8920  }
  8921  
  8922  // GoString returns the string representation.
  8923  //
  8924  // API parameter values that are decorated as "sensitive" in the API will not
  8925  // be included in the string output. The member name will be present, but the
  8926  // value will be replaced with "sensitive".
  8927  func (s DeleteQuerySuggestionsBlockListOutput) GoString() string {
  8928  	return s.String()
  8929  }
  8930  
  8931  type DeleteThesaurusInput struct {
  8932  	_ struct{} `type:"structure"`
  8933  
  8934  	// The identifier of the thesaurus to delete.
  8935  	//
  8936  	// Id is a required field
  8937  	Id *string `min:"1" type:"string" required:"true"`
  8938  
  8939  	// The identifier of the index associated with the thesaurus to delete.
  8940  	//
  8941  	// IndexId is a required field
  8942  	IndexId *string `min:"36" type:"string" required:"true"`
  8943  }
  8944  
  8945  // String returns the string representation.
  8946  //
  8947  // API parameter values that are decorated as "sensitive" in the API will not
  8948  // be included in the string output. The member name will be present, but the
  8949  // value will be replaced with "sensitive".
  8950  func (s DeleteThesaurusInput) String() string {
  8951  	return awsutil.Prettify(s)
  8952  }
  8953  
  8954  // GoString returns the string representation.
  8955  //
  8956  // API parameter values that are decorated as "sensitive" in the API will not
  8957  // be included in the string output. The member name will be present, but the
  8958  // value will be replaced with "sensitive".
  8959  func (s DeleteThesaurusInput) GoString() string {
  8960  	return s.String()
  8961  }
  8962  
  8963  // Validate inspects the fields of the type to determine if they are valid.
  8964  func (s *DeleteThesaurusInput) Validate() error {
  8965  	invalidParams := request.ErrInvalidParams{Context: "DeleteThesaurusInput"}
  8966  	if s.Id == nil {
  8967  		invalidParams.Add(request.NewErrParamRequired("Id"))
  8968  	}
  8969  	if s.Id != nil && len(*s.Id) < 1 {
  8970  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
  8971  	}
  8972  	if s.IndexId == nil {
  8973  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  8974  	}
  8975  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  8976  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  8977  	}
  8978  
  8979  	if invalidParams.Len() > 0 {
  8980  		return invalidParams
  8981  	}
  8982  	return nil
  8983  }
  8984  
  8985  // SetId sets the Id field's value.
  8986  func (s *DeleteThesaurusInput) SetId(v string) *DeleteThesaurusInput {
  8987  	s.Id = &v
  8988  	return s
  8989  }
  8990  
  8991  // SetIndexId sets the IndexId field's value.
  8992  func (s *DeleteThesaurusInput) SetIndexId(v string) *DeleteThesaurusInput {
  8993  	s.IndexId = &v
  8994  	return s
  8995  }
  8996  
  8997  type DeleteThesaurusOutput struct {
  8998  	_ struct{} `type:"structure"`
  8999  }
  9000  
  9001  // String returns the string representation.
  9002  //
  9003  // API parameter values that are decorated as "sensitive" in the API will not
  9004  // be included in the string output. The member name will be present, but the
  9005  // value will be replaced with "sensitive".
  9006  func (s DeleteThesaurusOutput) String() string {
  9007  	return awsutil.Prettify(s)
  9008  }
  9009  
  9010  // GoString returns the string representation.
  9011  //
  9012  // API parameter values that are decorated as "sensitive" in the API will not
  9013  // be included in the string output. The member name will be present, but the
  9014  // value will be replaced with "sensitive".
  9015  func (s DeleteThesaurusOutput) GoString() string {
  9016  	return s.String()
  9017  }
  9018  
  9019  type DescribeDataSourceInput struct {
  9020  	_ struct{} `type:"structure"`
  9021  
  9022  	// The unique identifier of the data source to describe.
  9023  	//
  9024  	// Id is a required field
  9025  	Id *string `min:"1" type:"string" required:"true"`
  9026  
  9027  	// The identifier of the index that contains the data source.
  9028  	//
  9029  	// IndexId is a required field
  9030  	IndexId *string `min:"36" type:"string" required:"true"`
  9031  }
  9032  
  9033  // String returns the string representation.
  9034  //
  9035  // API parameter values that are decorated as "sensitive" in the API will not
  9036  // be included in the string output. The member name will be present, but the
  9037  // value will be replaced with "sensitive".
  9038  func (s DescribeDataSourceInput) String() string {
  9039  	return awsutil.Prettify(s)
  9040  }
  9041  
  9042  // GoString returns the string representation.
  9043  //
  9044  // API parameter values that are decorated as "sensitive" in the API will not
  9045  // be included in the string output. The member name will be present, but the
  9046  // value will be replaced with "sensitive".
  9047  func (s DescribeDataSourceInput) GoString() string {
  9048  	return s.String()
  9049  }
  9050  
  9051  // Validate inspects the fields of the type to determine if they are valid.
  9052  func (s *DescribeDataSourceInput) Validate() error {
  9053  	invalidParams := request.ErrInvalidParams{Context: "DescribeDataSourceInput"}
  9054  	if s.Id == nil {
  9055  		invalidParams.Add(request.NewErrParamRequired("Id"))
  9056  	}
  9057  	if s.Id != nil && len(*s.Id) < 1 {
  9058  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
  9059  	}
  9060  	if s.IndexId == nil {
  9061  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  9062  	}
  9063  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  9064  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  9065  	}
  9066  
  9067  	if invalidParams.Len() > 0 {
  9068  		return invalidParams
  9069  	}
  9070  	return nil
  9071  }
  9072  
  9073  // SetId sets the Id field's value.
  9074  func (s *DescribeDataSourceInput) SetId(v string) *DescribeDataSourceInput {
  9075  	s.Id = &v
  9076  	return s
  9077  }
  9078  
  9079  // SetIndexId sets the IndexId field's value.
  9080  func (s *DescribeDataSourceInput) SetIndexId(v string) *DescribeDataSourceInput {
  9081  	s.IndexId = &v
  9082  	return s
  9083  }
  9084  
  9085  type DescribeDataSourceOutput struct {
  9086  	_ struct{} `type:"structure"`
  9087  
  9088  	// Information that describes where the data source is located and how the data
  9089  	// source is configured. The specific information in the description depends
  9090  	// on the data source provider.
  9091  	Configuration *DataSourceConfiguration `type:"structure"`
  9092  
  9093  	// The Unix timestamp of when the data source was created.
  9094  	CreatedAt *time.Time `type:"timestamp"`
  9095  
  9096  	// The description of the data source.
  9097  	Description *string `type:"string"`
  9098  
  9099  	// When the Status field value is FAILED, the ErrorMessage field contains a
  9100  	// description of the error that caused the data source to fail.
  9101  	ErrorMessage *string `min:"1" type:"string"`
  9102  
  9103  	// The identifier of the data source.
  9104  	Id *string `min:"1" type:"string"`
  9105  
  9106  	// The identifier of the index that contains the data source.
  9107  	IndexId *string `min:"36" type:"string"`
  9108  
  9109  	// The code for a language. This shows a supported language for all documents
  9110  	// in the data source. English is supported by default. For more information
  9111  	// on supported languages, including their codes, see Adding documents in languages
  9112  	// other than English (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html).
  9113  	LanguageCode *string `min:"2" type:"string"`
  9114  
  9115  	// The name that you gave the data source when it was created.
  9116  	Name *string `min:"1" type:"string"`
  9117  
  9118  	// The Amazon Resource Name (ARN) of the role that enables the data source to
  9119  	// access its resources.
  9120  	RoleArn *string `min:"1" type:"string"`
  9121  
  9122  	// The schedule that Amazon Kendra will update the data source.
  9123  	Schedule *string `type:"string"`
  9124  
  9125  	// The current status of the data source. When the status is ACTIVE the data
  9126  	// source is ready to use. When the status is FAILED, the ErrorMessage field
  9127  	// contains the reason that the data source failed.
  9128  	Status *string `type:"string" enum:"DataSourceStatus"`
  9129  
  9130  	// The type of the data source.
  9131  	Type *string `type:"string" enum:"DataSourceType"`
  9132  
  9133  	// The Unix timestamp of when the data source was last updated.
  9134  	UpdatedAt *time.Time `type:"timestamp"`
  9135  }
  9136  
  9137  // String returns the string representation.
  9138  //
  9139  // API parameter values that are decorated as "sensitive" in the API will not
  9140  // be included in the string output. The member name will be present, but the
  9141  // value will be replaced with "sensitive".
  9142  func (s DescribeDataSourceOutput) String() string {
  9143  	return awsutil.Prettify(s)
  9144  }
  9145  
  9146  // GoString returns the string representation.
  9147  //
  9148  // API parameter values that are decorated as "sensitive" in the API will not
  9149  // be included in the string output. The member name will be present, but the
  9150  // value will be replaced with "sensitive".
  9151  func (s DescribeDataSourceOutput) GoString() string {
  9152  	return s.String()
  9153  }
  9154  
  9155  // SetConfiguration sets the Configuration field's value.
  9156  func (s *DescribeDataSourceOutput) SetConfiguration(v *DataSourceConfiguration) *DescribeDataSourceOutput {
  9157  	s.Configuration = v
  9158  	return s
  9159  }
  9160  
  9161  // SetCreatedAt sets the CreatedAt field's value.
  9162  func (s *DescribeDataSourceOutput) SetCreatedAt(v time.Time) *DescribeDataSourceOutput {
  9163  	s.CreatedAt = &v
  9164  	return s
  9165  }
  9166  
  9167  // SetDescription sets the Description field's value.
  9168  func (s *DescribeDataSourceOutput) SetDescription(v string) *DescribeDataSourceOutput {
  9169  	s.Description = &v
  9170  	return s
  9171  }
  9172  
  9173  // SetErrorMessage sets the ErrorMessage field's value.
  9174  func (s *DescribeDataSourceOutput) SetErrorMessage(v string) *DescribeDataSourceOutput {
  9175  	s.ErrorMessage = &v
  9176  	return s
  9177  }
  9178  
  9179  // SetId sets the Id field's value.
  9180  func (s *DescribeDataSourceOutput) SetId(v string) *DescribeDataSourceOutput {
  9181  	s.Id = &v
  9182  	return s
  9183  }
  9184  
  9185  // SetIndexId sets the IndexId field's value.
  9186  func (s *DescribeDataSourceOutput) SetIndexId(v string) *DescribeDataSourceOutput {
  9187  	s.IndexId = &v
  9188  	return s
  9189  }
  9190  
  9191  // SetLanguageCode sets the LanguageCode field's value.
  9192  func (s *DescribeDataSourceOutput) SetLanguageCode(v string) *DescribeDataSourceOutput {
  9193  	s.LanguageCode = &v
  9194  	return s
  9195  }
  9196  
  9197  // SetName sets the Name field's value.
  9198  func (s *DescribeDataSourceOutput) SetName(v string) *DescribeDataSourceOutput {
  9199  	s.Name = &v
  9200  	return s
  9201  }
  9202  
  9203  // SetRoleArn sets the RoleArn field's value.
  9204  func (s *DescribeDataSourceOutput) SetRoleArn(v string) *DescribeDataSourceOutput {
  9205  	s.RoleArn = &v
  9206  	return s
  9207  }
  9208  
  9209  // SetSchedule sets the Schedule field's value.
  9210  func (s *DescribeDataSourceOutput) SetSchedule(v string) *DescribeDataSourceOutput {
  9211  	s.Schedule = &v
  9212  	return s
  9213  }
  9214  
  9215  // SetStatus sets the Status field's value.
  9216  func (s *DescribeDataSourceOutput) SetStatus(v string) *DescribeDataSourceOutput {
  9217  	s.Status = &v
  9218  	return s
  9219  }
  9220  
  9221  // SetType sets the Type field's value.
  9222  func (s *DescribeDataSourceOutput) SetType(v string) *DescribeDataSourceOutput {
  9223  	s.Type = &v
  9224  	return s
  9225  }
  9226  
  9227  // SetUpdatedAt sets the UpdatedAt field's value.
  9228  func (s *DescribeDataSourceOutput) SetUpdatedAt(v time.Time) *DescribeDataSourceOutput {
  9229  	s.UpdatedAt = &v
  9230  	return s
  9231  }
  9232  
  9233  type DescribeFaqInput struct {
  9234  	_ struct{} `type:"structure"`
  9235  
  9236  	// The unique identifier of the FAQ.
  9237  	//
  9238  	// Id is a required field
  9239  	Id *string `min:"1" type:"string" required:"true"`
  9240  
  9241  	// The identifier of the index that contains the FAQ.
  9242  	//
  9243  	// IndexId is a required field
  9244  	IndexId *string `min:"36" type:"string" required:"true"`
  9245  }
  9246  
  9247  // String returns the string representation.
  9248  //
  9249  // API parameter values that are decorated as "sensitive" in the API will not
  9250  // be included in the string output. The member name will be present, but the
  9251  // value will be replaced with "sensitive".
  9252  func (s DescribeFaqInput) String() string {
  9253  	return awsutil.Prettify(s)
  9254  }
  9255  
  9256  // GoString returns the string representation.
  9257  //
  9258  // API parameter values that are decorated as "sensitive" in the API will not
  9259  // be included in the string output. The member name will be present, but the
  9260  // value will be replaced with "sensitive".
  9261  func (s DescribeFaqInput) GoString() string {
  9262  	return s.String()
  9263  }
  9264  
  9265  // Validate inspects the fields of the type to determine if they are valid.
  9266  func (s *DescribeFaqInput) Validate() error {
  9267  	invalidParams := request.ErrInvalidParams{Context: "DescribeFaqInput"}
  9268  	if s.Id == nil {
  9269  		invalidParams.Add(request.NewErrParamRequired("Id"))
  9270  	}
  9271  	if s.Id != nil && len(*s.Id) < 1 {
  9272  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
  9273  	}
  9274  	if s.IndexId == nil {
  9275  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  9276  	}
  9277  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  9278  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  9279  	}
  9280  
  9281  	if invalidParams.Len() > 0 {
  9282  		return invalidParams
  9283  	}
  9284  	return nil
  9285  }
  9286  
  9287  // SetId sets the Id field's value.
  9288  func (s *DescribeFaqInput) SetId(v string) *DescribeFaqInput {
  9289  	s.Id = &v
  9290  	return s
  9291  }
  9292  
  9293  // SetIndexId sets the IndexId field's value.
  9294  func (s *DescribeFaqInput) SetIndexId(v string) *DescribeFaqInput {
  9295  	s.IndexId = &v
  9296  	return s
  9297  }
  9298  
  9299  type DescribeFaqOutput struct {
  9300  	_ struct{} `type:"structure"`
  9301  
  9302  	// The date and time that the FAQ was created.
  9303  	CreatedAt *time.Time `type:"timestamp"`
  9304  
  9305  	// The description of the FAQ that you provided when it was created.
  9306  	Description *string `type:"string"`
  9307  
  9308  	// If the Status field is FAILED, the ErrorMessage field contains the reason
  9309  	// why the FAQ failed.
  9310  	ErrorMessage *string `min:"1" type:"string"`
  9311  
  9312  	// The file format used by the input files for the FAQ.
  9313  	FileFormat *string `type:"string" enum:"FaqFileFormat"`
  9314  
  9315  	// The identifier of the FAQ.
  9316  	Id *string `min:"1" type:"string"`
  9317  
  9318  	// The identifier of the index that contains the FAQ.
  9319  	IndexId *string `min:"36" type:"string"`
  9320  
  9321  	// The code for a language. This shows a supported language for the FAQ document.
  9322  	// English is supported by default. For more information on supported languages,
  9323  	// including their codes, see Adding documents in languages other than English
  9324  	// (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html).
  9325  	LanguageCode *string `min:"2" type:"string"`
  9326  
  9327  	// The name that you gave the FAQ when it was created.
  9328  	Name *string `min:"1" type:"string"`
  9329  
  9330  	// The Amazon Resource Name (ARN) of the role that provides access to the S3
  9331  	// bucket containing the input files for the FAQ.
  9332  	RoleArn *string `min:"1" type:"string"`
  9333  
  9334  	// Information required to find a specific file in an Amazon S3 bucket.
  9335  	S3Path *S3Path `type:"structure"`
  9336  
  9337  	// The status of the FAQ. It is ready to use when the status is ACTIVE.
  9338  	Status *string `type:"string" enum:"FaqStatus"`
  9339  
  9340  	// The date and time that the FAQ was last updated.
  9341  	UpdatedAt *time.Time `type:"timestamp"`
  9342  }
  9343  
  9344  // String returns the string representation.
  9345  //
  9346  // API parameter values that are decorated as "sensitive" in the API will not
  9347  // be included in the string output. The member name will be present, but the
  9348  // value will be replaced with "sensitive".
  9349  func (s DescribeFaqOutput) String() string {
  9350  	return awsutil.Prettify(s)
  9351  }
  9352  
  9353  // GoString returns the string representation.
  9354  //
  9355  // API parameter values that are decorated as "sensitive" in the API will not
  9356  // be included in the string output. The member name will be present, but the
  9357  // value will be replaced with "sensitive".
  9358  func (s DescribeFaqOutput) GoString() string {
  9359  	return s.String()
  9360  }
  9361  
  9362  // SetCreatedAt sets the CreatedAt field's value.
  9363  func (s *DescribeFaqOutput) SetCreatedAt(v time.Time) *DescribeFaqOutput {
  9364  	s.CreatedAt = &v
  9365  	return s
  9366  }
  9367  
  9368  // SetDescription sets the Description field's value.
  9369  func (s *DescribeFaqOutput) SetDescription(v string) *DescribeFaqOutput {
  9370  	s.Description = &v
  9371  	return s
  9372  }
  9373  
  9374  // SetErrorMessage sets the ErrorMessage field's value.
  9375  func (s *DescribeFaqOutput) SetErrorMessage(v string) *DescribeFaqOutput {
  9376  	s.ErrorMessage = &v
  9377  	return s
  9378  }
  9379  
  9380  // SetFileFormat sets the FileFormat field's value.
  9381  func (s *DescribeFaqOutput) SetFileFormat(v string) *DescribeFaqOutput {
  9382  	s.FileFormat = &v
  9383  	return s
  9384  }
  9385  
  9386  // SetId sets the Id field's value.
  9387  func (s *DescribeFaqOutput) SetId(v string) *DescribeFaqOutput {
  9388  	s.Id = &v
  9389  	return s
  9390  }
  9391  
  9392  // SetIndexId sets the IndexId field's value.
  9393  func (s *DescribeFaqOutput) SetIndexId(v string) *DescribeFaqOutput {
  9394  	s.IndexId = &v
  9395  	return s
  9396  }
  9397  
  9398  // SetLanguageCode sets the LanguageCode field's value.
  9399  func (s *DescribeFaqOutput) SetLanguageCode(v string) *DescribeFaqOutput {
  9400  	s.LanguageCode = &v
  9401  	return s
  9402  }
  9403  
  9404  // SetName sets the Name field's value.
  9405  func (s *DescribeFaqOutput) SetName(v string) *DescribeFaqOutput {
  9406  	s.Name = &v
  9407  	return s
  9408  }
  9409  
  9410  // SetRoleArn sets the RoleArn field's value.
  9411  func (s *DescribeFaqOutput) SetRoleArn(v string) *DescribeFaqOutput {
  9412  	s.RoleArn = &v
  9413  	return s
  9414  }
  9415  
  9416  // SetS3Path sets the S3Path field's value.
  9417  func (s *DescribeFaqOutput) SetS3Path(v *S3Path) *DescribeFaqOutput {
  9418  	s.S3Path = v
  9419  	return s
  9420  }
  9421  
  9422  // SetStatus sets the Status field's value.
  9423  func (s *DescribeFaqOutput) SetStatus(v string) *DescribeFaqOutput {
  9424  	s.Status = &v
  9425  	return s
  9426  }
  9427  
  9428  // SetUpdatedAt sets the UpdatedAt field's value.
  9429  func (s *DescribeFaqOutput) SetUpdatedAt(v time.Time) *DescribeFaqOutput {
  9430  	s.UpdatedAt = &v
  9431  	return s
  9432  }
  9433  
  9434  type DescribeIndexInput struct {
  9435  	_ struct{} `type:"structure"`
  9436  
  9437  	// The name of the index to describe.
  9438  	//
  9439  	// Id is a required field
  9440  	Id *string `min:"36" type:"string" required:"true"`
  9441  }
  9442  
  9443  // String returns the string representation.
  9444  //
  9445  // API parameter values that are decorated as "sensitive" in the API will not
  9446  // be included in the string output. The member name will be present, but the
  9447  // value will be replaced with "sensitive".
  9448  func (s DescribeIndexInput) String() string {
  9449  	return awsutil.Prettify(s)
  9450  }
  9451  
  9452  // GoString returns the string representation.
  9453  //
  9454  // API parameter values that are decorated as "sensitive" in the API will not
  9455  // be included in the string output. The member name will be present, but the
  9456  // value will be replaced with "sensitive".
  9457  func (s DescribeIndexInput) GoString() string {
  9458  	return s.String()
  9459  }
  9460  
  9461  // Validate inspects the fields of the type to determine if they are valid.
  9462  func (s *DescribeIndexInput) Validate() error {
  9463  	invalidParams := request.ErrInvalidParams{Context: "DescribeIndexInput"}
  9464  	if s.Id == nil {
  9465  		invalidParams.Add(request.NewErrParamRequired("Id"))
  9466  	}
  9467  	if s.Id != nil && len(*s.Id) < 36 {
  9468  		invalidParams.Add(request.NewErrParamMinLen("Id", 36))
  9469  	}
  9470  
  9471  	if invalidParams.Len() > 0 {
  9472  		return invalidParams
  9473  	}
  9474  	return nil
  9475  }
  9476  
  9477  // SetId sets the Id field's value.
  9478  func (s *DescribeIndexInput) SetId(v string) *DescribeIndexInput {
  9479  	s.Id = &v
  9480  	return s
  9481  }
  9482  
  9483  type DescribeIndexOutput struct {
  9484  	_ struct{} `type:"structure"`
  9485  
  9486  	// For Enterprise edition indexes, you can choose to use additional capacity
  9487  	// to meet the needs of your application. This contains the capacity units used
  9488  	// for the index. A 0 for the query capacity or the storage capacity indicates
  9489  	// that the index is using the default capacity for the index.
  9490  	CapacityUnits *CapacityUnitsConfiguration `type:"structure"`
  9491  
  9492  	// The Unix datetime that the index was created.
  9493  	CreatedAt *time.Time `type:"timestamp"`
  9494  
  9495  	// The description of the index.
  9496  	Description *string `type:"string"`
  9497  
  9498  	// Configuration settings for any metadata applied to the documents in the index.
  9499  	DocumentMetadataConfigurations []*DocumentMetadataConfiguration `type:"list"`
  9500  
  9501  	// The Amazon Kendra edition used for the index. You decide the edition when
  9502  	// you create the index.
  9503  	Edition *string `type:"string" enum:"IndexEdition"`
  9504  
  9505  	// When th eStatus field value is FAILED, the ErrorMessage field contains a
  9506  	// message that explains why.
  9507  	ErrorMessage *string `min:"1" type:"string"`
  9508  
  9509  	// The name of the index.
  9510  	Id *string `min:"36" type:"string"`
  9511  
  9512  	// Provides information about the number of FAQ questions and answers and the
  9513  	// number of text documents indexed.
  9514  	IndexStatistics *IndexStatistics `type:"structure"`
  9515  
  9516  	// The name of the index.
  9517  	Name *string `min:"1" type:"string"`
  9518  
  9519  	// The Amazon Resource Name (ARN) of the IAM role that gives Amazon Kendra permission
  9520  	// to write to your Amazon Cloudwatch logs.
  9521  	RoleArn *string `min:"1" type:"string"`
  9522  
  9523  	// The identifier of the KMScustomer master key (CMK) used to encrypt your data.
  9524  	// Amazon Kendra doesn't support asymmetric CMKs.
  9525  	ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `type:"structure"`
  9526  
  9527  	// The current status of the index. When the value is ACTIVE, the index is ready
  9528  	// for use. If the Status field value is FAILED, the ErrorMessage field contains
  9529  	// a message that explains why.
  9530  	Status *string `type:"string" enum:"IndexStatus"`
  9531  
  9532  	// The Unix datetime that the index was last updated.
  9533  	UpdatedAt *time.Time `type:"timestamp"`
  9534  
  9535  	// The user context policy for the Amazon Kendra index.
  9536  	UserContextPolicy *string `type:"string" enum:"UserContextPolicy"`
  9537  
  9538  	// Shows whether you have enabled the configuration for fetching access levels
  9539  	// of groups and users from an AWS Single Sign-On identity source.
  9540  	UserGroupResolutionConfiguration *UserGroupResolutionConfiguration `type:"structure"`
  9541  
  9542  	// The user token configuration for the Amazon Kendra index.
  9543  	UserTokenConfigurations []*UserTokenConfiguration `type:"list"`
  9544  }
  9545  
  9546  // String returns the string representation.
  9547  //
  9548  // API parameter values that are decorated as "sensitive" in the API will not
  9549  // be included in the string output. The member name will be present, but the
  9550  // value will be replaced with "sensitive".
  9551  func (s DescribeIndexOutput) String() string {
  9552  	return awsutil.Prettify(s)
  9553  }
  9554  
  9555  // GoString returns the string representation.
  9556  //
  9557  // API parameter values that are decorated as "sensitive" in the API will not
  9558  // be included in the string output. The member name will be present, but the
  9559  // value will be replaced with "sensitive".
  9560  func (s DescribeIndexOutput) GoString() string {
  9561  	return s.String()
  9562  }
  9563  
  9564  // SetCapacityUnits sets the CapacityUnits field's value.
  9565  func (s *DescribeIndexOutput) SetCapacityUnits(v *CapacityUnitsConfiguration) *DescribeIndexOutput {
  9566  	s.CapacityUnits = v
  9567  	return s
  9568  }
  9569  
  9570  // SetCreatedAt sets the CreatedAt field's value.
  9571  func (s *DescribeIndexOutput) SetCreatedAt(v time.Time) *DescribeIndexOutput {
  9572  	s.CreatedAt = &v
  9573  	return s
  9574  }
  9575  
  9576  // SetDescription sets the Description field's value.
  9577  func (s *DescribeIndexOutput) SetDescription(v string) *DescribeIndexOutput {
  9578  	s.Description = &v
  9579  	return s
  9580  }
  9581  
  9582  // SetDocumentMetadataConfigurations sets the DocumentMetadataConfigurations field's value.
  9583  func (s *DescribeIndexOutput) SetDocumentMetadataConfigurations(v []*DocumentMetadataConfiguration) *DescribeIndexOutput {
  9584  	s.DocumentMetadataConfigurations = v
  9585  	return s
  9586  }
  9587  
  9588  // SetEdition sets the Edition field's value.
  9589  func (s *DescribeIndexOutput) SetEdition(v string) *DescribeIndexOutput {
  9590  	s.Edition = &v
  9591  	return s
  9592  }
  9593  
  9594  // SetErrorMessage sets the ErrorMessage field's value.
  9595  func (s *DescribeIndexOutput) SetErrorMessage(v string) *DescribeIndexOutput {
  9596  	s.ErrorMessage = &v
  9597  	return s
  9598  }
  9599  
  9600  // SetId sets the Id field's value.
  9601  func (s *DescribeIndexOutput) SetId(v string) *DescribeIndexOutput {
  9602  	s.Id = &v
  9603  	return s
  9604  }
  9605  
  9606  // SetIndexStatistics sets the IndexStatistics field's value.
  9607  func (s *DescribeIndexOutput) SetIndexStatistics(v *IndexStatistics) *DescribeIndexOutput {
  9608  	s.IndexStatistics = v
  9609  	return s
  9610  }
  9611  
  9612  // SetName sets the Name field's value.
  9613  func (s *DescribeIndexOutput) SetName(v string) *DescribeIndexOutput {
  9614  	s.Name = &v
  9615  	return s
  9616  }
  9617  
  9618  // SetRoleArn sets the RoleArn field's value.
  9619  func (s *DescribeIndexOutput) SetRoleArn(v string) *DescribeIndexOutput {
  9620  	s.RoleArn = &v
  9621  	return s
  9622  }
  9623  
  9624  // SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value.
  9625  func (s *DescribeIndexOutput) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *DescribeIndexOutput {
  9626  	s.ServerSideEncryptionConfiguration = v
  9627  	return s
  9628  }
  9629  
  9630  // SetStatus sets the Status field's value.
  9631  func (s *DescribeIndexOutput) SetStatus(v string) *DescribeIndexOutput {
  9632  	s.Status = &v
  9633  	return s
  9634  }
  9635  
  9636  // SetUpdatedAt sets the UpdatedAt field's value.
  9637  func (s *DescribeIndexOutput) SetUpdatedAt(v time.Time) *DescribeIndexOutput {
  9638  	s.UpdatedAt = &v
  9639  	return s
  9640  }
  9641  
  9642  // SetUserContextPolicy sets the UserContextPolicy field's value.
  9643  func (s *DescribeIndexOutput) SetUserContextPolicy(v string) *DescribeIndexOutput {
  9644  	s.UserContextPolicy = &v
  9645  	return s
  9646  }
  9647  
  9648  // SetUserGroupResolutionConfiguration sets the UserGroupResolutionConfiguration field's value.
  9649  func (s *DescribeIndexOutput) SetUserGroupResolutionConfiguration(v *UserGroupResolutionConfiguration) *DescribeIndexOutput {
  9650  	s.UserGroupResolutionConfiguration = v
  9651  	return s
  9652  }
  9653  
  9654  // SetUserTokenConfigurations sets the UserTokenConfigurations field's value.
  9655  func (s *DescribeIndexOutput) SetUserTokenConfigurations(v []*UserTokenConfiguration) *DescribeIndexOutput {
  9656  	s.UserTokenConfigurations = v
  9657  	return s
  9658  }
  9659  
  9660  type DescribePrincipalMappingInput struct {
  9661  	_ struct{} `type:"structure"`
  9662  
  9663  	// The identifier of the data source to check the processing of PUT and DELETE
  9664  	// actions for mapping users to their groups.
  9665  	DataSourceId *string `min:"1" type:"string"`
  9666  
  9667  	// The identifier of the group required to check the processing of PUT and DELETE
  9668  	// actions for mapping users to their groups.
  9669  	//
  9670  	// GroupId is a required field
  9671  	GroupId *string `min:"1" type:"string" required:"true"`
  9672  
  9673  	// The identifier of the index required to check the processing of PUT and DELETE
  9674  	// actions for mapping users to their groups.
  9675  	//
  9676  	// IndexId is a required field
  9677  	IndexId *string `min:"36" type:"string" required:"true"`
  9678  }
  9679  
  9680  // String returns the string representation.
  9681  //
  9682  // API parameter values that are decorated as "sensitive" in the API will not
  9683  // be included in the string output. The member name will be present, but the
  9684  // value will be replaced with "sensitive".
  9685  func (s DescribePrincipalMappingInput) String() string {
  9686  	return awsutil.Prettify(s)
  9687  }
  9688  
  9689  // GoString returns the string representation.
  9690  //
  9691  // API parameter values that are decorated as "sensitive" in the API will not
  9692  // be included in the string output. The member name will be present, but the
  9693  // value will be replaced with "sensitive".
  9694  func (s DescribePrincipalMappingInput) GoString() string {
  9695  	return s.String()
  9696  }
  9697  
  9698  // Validate inspects the fields of the type to determine if they are valid.
  9699  func (s *DescribePrincipalMappingInput) Validate() error {
  9700  	invalidParams := request.ErrInvalidParams{Context: "DescribePrincipalMappingInput"}
  9701  	if s.DataSourceId != nil && len(*s.DataSourceId) < 1 {
  9702  		invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 1))
  9703  	}
  9704  	if s.GroupId == nil {
  9705  		invalidParams.Add(request.NewErrParamRequired("GroupId"))
  9706  	}
  9707  	if s.GroupId != nil && len(*s.GroupId) < 1 {
  9708  		invalidParams.Add(request.NewErrParamMinLen("GroupId", 1))
  9709  	}
  9710  	if s.IndexId == nil {
  9711  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  9712  	}
  9713  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  9714  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  9715  	}
  9716  
  9717  	if invalidParams.Len() > 0 {
  9718  		return invalidParams
  9719  	}
  9720  	return nil
  9721  }
  9722  
  9723  // SetDataSourceId sets the DataSourceId field's value.
  9724  func (s *DescribePrincipalMappingInput) SetDataSourceId(v string) *DescribePrincipalMappingInput {
  9725  	s.DataSourceId = &v
  9726  	return s
  9727  }
  9728  
  9729  // SetGroupId sets the GroupId field's value.
  9730  func (s *DescribePrincipalMappingInput) SetGroupId(v string) *DescribePrincipalMappingInput {
  9731  	s.GroupId = &v
  9732  	return s
  9733  }
  9734  
  9735  // SetIndexId sets the IndexId field's value.
  9736  func (s *DescribePrincipalMappingInput) SetIndexId(v string) *DescribePrincipalMappingInput {
  9737  	s.IndexId = &v
  9738  	return s
  9739  }
  9740  
  9741  type DescribePrincipalMappingOutput struct {
  9742  	_ struct{} `type:"structure"`
  9743  
  9744  	// Shows the identifier of the data source to see information on the processing
  9745  	// of PUT and DELETE actions for mapping users to their groups.
  9746  	DataSourceId *string `min:"1" type:"string"`
  9747  
  9748  	// Shows the identifier of the group to see information on the processing of
  9749  	// PUT and DELETE actions for mapping users to their groups.
  9750  	GroupId *string `min:"1" type:"string"`
  9751  
  9752  	// Shows the following information on the processing of PUT and DELETE actions
  9753  	// for mapping users to their groups:
  9754  	//
  9755  	//    * Status – the status can be either PROCESSING, SUCCEEDED, DELETING,
  9756  	//    DELETED, or FAILED.
  9757  	//
  9758  	//    * Last updated – the last date-time an action was updated.
  9759  	//
  9760  	//    * Received – the last date-time an action was received or submitted.
  9761  	//
  9762  	//    * Ordering ID – the latest action that should process and apply after
  9763  	//    other actions.
  9764  	//
  9765  	//    * Failure reason – the reason an action could not be processed.
  9766  	GroupOrderingIdSummaries []*GroupOrderingIdSummary `type:"list"`
  9767  
  9768  	// Shows the identifier of the index to see information on the processing of
  9769  	// PUT and DELETE actions for mapping users to their groups.
  9770  	IndexId *string `min:"36" type:"string"`
  9771  }
  9772  
  9773  // String returns the string representation.
  9774  //
  9775  // API parameter values that are decorated as "sensitive" in the API will not
  9776  // be included in the string output. The member name will be present, but the
  9777  // value will be replaced with "sensitive".
  9778  func (s DescribePrincipalMappingOutput) String() string {
  9779  	return awsutil.Prettify(s)
  9780  }
  9781  
  9782  // GoString returns the string representation.
  9783  //
  9784  // API parameter values that are decorated as "sensitive" in the API will not
  9785  // be included in the string output. The member name will be present, but the
  9786  // value will be replaced with "sensitive".
  9787  func (s DescribePrincipalMappingOutput) GoString() string {
  9788  	return s.String()
  9789  }
  9790  
  9791  // SetDataSourceId sets the DataSourceId field's value.
  9792  func (s *DescribePrincipalMappingOutput) SetDataSourceId(v string) *DescribePrincipalMappingOutput {
  9793  	s.DataSourceId = &v
  9794  	return s
  9795  }
  9796  
  9797  // SetGroupId sets the GroupId field's value.
  9798  func (s *DescribePrincipalMappingOutput) SetGroupId(v string) *DescribePrincipalMappingOutput {
  9799  	s.GroupId = &v
  9800  	return s
  9801  }
  9802  
  9803  // SetGroupOrderingIdSummaries sets the GroupOrderingIdSummaries field's value.
  9804  func (s *DescribePrincipalMappingOutput) SetGroupOrderingIdSummaries(v []*GroupOrderingIdSummary) *DescribePrincipalMappingOutput {
  9805  	s.GroupOrderingIdSummaries = v
  9806  	return s
  9807  }
  9808  
  9809  // SetIndexId sets the IndexId field's value.
  9810  func (s *DescribePrincipalMappingOutput) SetIndexId(v string) *DescribePrincipalMappingOutput {
  9811  	s.IndexId = &v
  9812  	return s
  9813  }
  9814  
  9815  type DescribeQuerySuggestionsBlockListInput struct {
  9816  	_ struct{} `type:"structure"`
  9817  
  9818  	// The unique identifier of the block list.
  9819  	//
  9820  	// Id is a required field
  9821  	Id *string `min:"36" type:"string" required:"true"`
  9822  
  9823  	// The identifier of the index for the block list.
  9824  	//
  9825  	// IndexId is a required field
  9826  	IndexId *string `min:"36" type:"string" required:"true"`
  9827  }
  9828  
  9829  // String returns the string representation.
  9830  //
  9831  // API parameter values that are decorated as "sensitive" in the API will not
  9832  // be included in the string output. The member name will be present, but the
  9833  // value will be replaced with "sensitive".
  9834  func (s DescribeQuerySuggestionsBlockListInput) String() string {
  9835  	return awsutil.Prettify(s)
  9836  }
  9837  
  9838  // GoString returns the string representation.
  9839  //
  9840  // API parameter values that are decorated as "sensitive" in the API will not
  9841  // be included in the string output. The member name will be present, but the
  9842  // value will be replaced with "sensitive".
  9843  func (s DescribeQuerySuggestionsBlockListInput) GoString() string {
  9844  	return s.String()
  9845  }
  9846  
  9847  // Validate inspects the fields of the type to determine if they are valid.
  9848  func (s *DescribeQuerySuggestionsBlockListInput) Validate() error {
  9849  	invalidParams := request.ErrInvalidParams{Context: "DescribeQuerySuggestionsBlockListInput"}
  9850  	if s.Id == nil {
  9851  		invalidParams.Add(request.NewErrParamRequired("Id"))
  9852  	}
  9853  	if s.Id != nil && len(*s.Id) < 36 {
  9854  		invalidParams.Add(request.NewErrParamMinLen("Id", 36))
  9855  	}
  9856  	if s.IndexId == nil {
  9857  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
  9858  	}
  9859  	if s.IndexId != nil && len(*s.IndexId) < 36 {
  9860  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
  9861  	}
  9862  
  9863  	if invalidParams.Len() > 0 {
  9864  		return invalidParams
  9865  	}
  9866  	return nil
  9867  }
  9868  
  9869  // SetId sets the Id field's value.
  9870  func (s *DescribeQuerySuggestionsBlockListInput) SetId(v string) *DescribeQuerySuggestionsBlockListInput {
  9871  	s.Id = &v
  9872  	return s
  9873  }
  9874  
  9875  // SetIndexId sets the IndexId field's value.
  9876  func (s *DescribeQuerySuggestionsBlockListInput) SetIndexId(v string) *DescribeQuerySuggestionsBlockListInput {
  9877  	s.IndexId = &v
  9878  	return s
  9879  }
  9880  
  9881  type DescribeQuerySuggestionsBlockListOutput struct {
  9882  	_ struct{} `type:"structure"`
  9883  
  9884  	// Shows the date-time a block list for query suggestions was created.
  9885  	CreatedAt *time.Time `type:"timestamp"`
  9886  
  9887  	// Shows the description for the block list.
  9888  	Description *string `type:"string"`
  9889  
  9890  	// Shows the error message with details when there are issues in processing
  9891  	// the block list.
  9892  	ErrorMessage *string `min:"1" type:"string"`
  9893  
  9894  	// Shows the current size of the block list text file in S3.
  9895  	FileSizeBytes *int64 `type:"long"`
  9896  
  9897  	// Shows the unique identifier of the block list.
  9898  	Id *string `min:"36" type:"string"`
  9899  
  9900  	// Shows the identifier of the index for the block list.
  9901  	IndexId *string `min:"36" type:"string"`
  9902  
  9903  	// Shows the current number of valid, non-empty words or phrases in the block
  9904  	// list text file.
  9905  	ItemCount *int64 `type:"integer"`
  9906  
  9907  	// Shows the name of the block list.
  9908  	Name *string `min:"1" type:"string"`
  9909  
  9910  	// Shows the current IAM (Identity and Access Management) role used by Amazon
  9911  	// Kendra to access the block list text file in S3.
  9912  	//
  9913  	// The role needs S3 read permissions to your file in S3 and needs to give STS
  9914  	// (Security Token Service) assume role permissions to Amazon Kendra.
  9915  	RoleArn *string `min:"1" type:"string"`
  9916  
  9917  	// Shows the current S3 path to your block list text file in your S3 bucket.
  9918  	//
  9919  	// Each block word or phrase should be on a separate line in a text file.
  9920  	//
  9921  	// For information on the current quota limits for block lists, see Quotas for
  9922  	// Amazon Kendra (https://docs.aws.amazon.com/kendra/latest/dg/quotas.html).
  9923  	SourceS3Path *S3Path `type:"structure"`
  9924  
  9925  	// Shows whether the current status of the block list is ACTIVE or INACTIVE.
  9926  	Status *string `type:"string" enum:"QuerySuggestionsBlockListStatus"`
  9927  
  9928  	// Shows the date-time a block list for query suggestions was last updated.
  9929  	UpdatedAt *time.Time `type:"timestamp"`
  9930  }
  9931  
  9932  // String returns the string representation.
  9933  //
  9934  // API parameter values that are decorated as "sensitive" in the API will not
  9935  // be included in the string output. The member name will be present, but the
  9936  // value will be replaced with "sensitive".
  9937  func (s DescribeQuerySuggestionsBlockListOutput) String() string {
  9938  	return awsutil.Prettify(s)
  9939  }
  9940  
  9941  // GoString returns the string representation.
  9942  //
  9943  // API parameter values that are decorated as "sensitive" in the API will not
  9944  // be included in the string output. The member name will be present, but the
  9945  // value will be replaced with "sensitive".
  9946  func (s DescribeQuerySuggestionsBlockListOutput) GoString() string {
  9947  	return s.String()
  9948  }
  9949  
  9950  // SetCreatedAt sets the CreatedAt field's value.
  9951  func (s *DescribeQuerySuggestionsBlockListOutput) SetCreatedAt(v time.Time) *DescribeQuerySuggestionsBlockListOutput {
  9952  	s.CreatedAt = &v
  9953  	return s
  9954  }
  9955  
  9956  // SetDescription sets the Description field's value.
  9957  func (s *DescribeQuerySuggestionsBlockListOutput) SetDescription(v string) *DescribeQuerySuggestionsBlockListOutput {
  9958  	s.Description = &v
  9959  	return s
  9960  }
  9961  
  9962  // SetErrorMessage sets the ErrorMessage field's value.
  9963  func (s *DescribeQuerySuggestionsBlockListOutput) SetErrorMessage(v string) *DescribeQuerySuggestionsBlockListOutput {
  9964  	s.ErrorMessage = &v
  9965  	return s
  9966  }
  9967  
  9968  // SetFileSizeBytes sets the FileSizeBytes field's value.
  9969  func (s *DescribeQuerySuggestionsBlockListOutput) SetFileSizeBytes(v int64) *DescribeQuerySuggestionsBlockListOutput {
  9970  	s.FileSizeBytes = &v
  9971  	return s
  9972  }
  9973  
  9974  // SetId sets the Id field's value.
  9975  func (s *DescribeQuerySuggestionsBlockListOutput) SetId(v string) *DescribeQuerySuggestionsBlockListOutput {
  9976  	s.Id = &v
  9977  	return s
  9978  }
  9979  
  9980  // SetIndexId sets the IndexId field's value.
  9981  func (s *DescribeQuerySuggestionsBlockListOutput) SetIndexId(v string) *DescribeQuerySuggestionsBlockListOutput {
  9982  	s.IndexId = &v
  9983  	return s
  9984  }
  9985  
  9986  // SetItemCount sets the ItemCount field's value.
  9987  func (s *DescribeQuerySuggestionsBlockListOutput) SetItemCount(v int64) *DescribeQuerySuggestionsBlockListOutput {
  9988  	s.ItemCount = &v
  9989  	return s
  9990  }
  9991  
  9992  // SetName sets the Name field's value.
  9993  func (s *DescribeQuerySuggestionsBlockListOutput) SetName(v string) *DescribeQuerySuggestionsBlockListOutput {
  9994  	s.Name = &v
  9995  	return s
  9996  }
  9997  
  9998  // SetRoleArn sets the RoleArn field's value.
  9999  func (s *DescribeQuerySuggestionsBlockListOutput) SetRoleArn(v string) *DescribeQuerySuggestionsBlockListOutput {
 10000  	s.RoleArn = &v
 10001  	return s
 10002  }
 10003  
 10004  // SetSourceS3Path sets the SourceS3Path field's value.
 10005  func (s *DescribeQuerySuggestionsBlockListOutput) SetSourceS3Path(v *S3Path) *DescribeQuerySuggestionsBlockListOutput {
 10006  	s.SourceS3Path = v
 10007  	return s
 10008  }
 10009  
 10010  // SetStatus sets the Status field's value.
 10011  func (s *DescribeQuerySuggestionsBlockListOutput) SetStatus(v string) *DescribeQuerySuggestionsBlockListOutput {
 10012  	s.Status = &v
 10013  	return s
 10014  }
 10015  
 10016  // SetUpdatedAt sets the UpdatedAt field's value.
 10017  func (s *DescribeQuerySuggestionsBlockListOutput) SetUpdatedAt(v time.Time) *DescribeQuerySuggestionsBlockListOutput {
 10018  	s.UpdatedAt = &v
 10019  	return s
 10020  }
 10021  
 10022  type DescribeQuerySuggestionsConfigInput struct {
 10023  	_ struct{} `type:"structure"`
 10024  
 10025  	// The identifier of the index you want to describe query suggestions settings
 10026  	// for.
 10027  	//
 10028  	// IndexId is a required field
 10029  	IndexId *string `min:"36" type:"string" required:"true"`
 10030  }
 10031  
 10032  // String returns the string representation.
 10033  //
 10034  // API parameter values that are decorated as "sensitive" in the API will not
 10035  // be included in the string output. The member name will be present, but the
 10036  // value will be replaced with "sensitive".
 10037  func (s DescribeQuerySuggestionsConfigInput) String() string {
 10038  	return awsutil.Prettify(s)
 10039  }
 10040  
 10041  // GoString returns the string representation.
 10042  //
 10043  // API parameter values that are decorated as "sensitive" in the API will not
 10044  // be included in the string output. The member name will be present, but the
 10045  // value will be replaced with "sensitive".
 10046  func (s DescribeQuerySuggestionsConfigInput) GoString() string {
 10047  	return s.String()
 10048  }
 10049  
 10050  // Validate inspects the fields of the type to determine if they are valid.
 10051  func (s *DescribeQuerySuggestionsConfigInput) Validate() error {
 10052  	invalidParams := request.ErrInvalidParams{Context: "DescribeQuerySuggestionsConfigInput"}
 10053  	if s.IndexId == nil {
 10054  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 10055  	}
 10056  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 10057  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 10058  	}
 10059  
 10060  	if invalidParams.Len() > 0 {
 10061  		return invalidParams
 10062  	}
 10063  	return nil
 10064  }
 10065  
 10066  // SetIndexId sets the IndexId field's value.
 10067  func (s *DescribeQuerySuggestionsConfigInput) SetIndexId(v string) *DescribeQuerySuggestionsConfigInput {
 10068  	s.IndexId = &v
 10069  	return s
 10070  }
 10071  
 10072  type DescribeQuerySuggestionsConfigOutput struct {
 10073  	_ struct{} `type:"structure"`
 10074  
 10075  	// Shows whether Amazon Kendra uses all queries or only uses queries that include
 10076  	// user information to generate query suggestions.
 10077  	IncludeQueriesWithoutUserInformation *bool `type:"boolean"`
 10078  
 10079  	// Shows the date-time query suggestions for an index was last cleared.
 10080  	//
 10081  	// After you clear suggestions, Amazon Kendra learns new suggestions based on
 10082  	// new queries added to the query log from the time you cleared suggestions.
 10083  	// Amazon Kendra only considers re-occurences of a query from the time you cleared
 10084  	// suggestions.
 10085  	LastClearTime *time.Time `type:"timestamp"`
 10086  
 10087  	// Shows the date-time query suggestions for an index was last updated.
 10088  	LastSuggestionsBuildTime *time.Time `type:"timestamp"`
 10089  
 10090  	// Shows the minimum number of unique users who must search a query in order
 10091  	// for the query to be eligible to suggest to your users.
 10092  	MinimumNumberOfQueryingUsers *int64 `min:"1" type:"integer"`
 10093  
 10094  	// Shows the minimum number of times a query must be searched in order for the
 10095  	// query to be eligible to suggest to your users.
 10096  	MinimumQueryCount *int64 `min:"1" type:"integer"`
 10097  
 10098  	// Shows whether query suggestions are currently in ENABLED mode or LEARN_ONLY
 10099  	// mode.
 10100  	//
 10101  	// By default, Amazon Kendra enables query suggestions.LEARN_ONLY turns off
 10102  	// query suggestions for your users. You can change the mode using the UpdateQuerySuggestionsConfig
 10103  	// (https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateQuerySuggestionsConfig.html)
 10104  	// operation.
 10105  	Mode *string `type:"string" enum:"Mode"`
 10106  
 10107  	// Shows how recent your queries are in your query log time window (in days).
 10108  	QueryLogLookBackWindowInDays *int64 `type:"integer"`
 10109  
 10110  	// Shows whether the status of query suggestions settings is currently Active
 10111  	// or Updating.
 10112  	//
 10113  	// Active means the current settings apply and Updating means your changed settings
 10114  	// are in the process of applying.
 10115  	Status *string `type:"string" enum:"QuerySuggestionsStatus"`
 10116  
 10117  	// Shows the current total count of query suggestions for an index.
 10118  	//
 10119  	// This count can change when you update your query suggestions settings, if
 10120  	// you filter out certain queries from suggestions using a block list, and as
 10121  	// the query log accumulates more queries for Amazon Kendra to learn from.
 10122  	TotalSuggestionsCount *int64 `type:"integer"`
 10123  }
 10124  
 10125  // String returns the string representation.
 10126  //
 10127  // API parameter values that are decorated as "sensitive" in the API will not
 10128  // be included in the string output. The member name will be present, but the
 10129  // value will be replaced with "sensitive".
 10130  func (s DescribeQuerySuggestionsConfigOutput) String() string {
 10131  	return awsutil.Prettify(s)
 10132  }
 10133  
 10134  // GoString returns the string representation.
 10135  //
 10136  // API parameter values that are decorated as "sensitive" in the API will not
 10137  // be included in the string output. The member name will be present, but the
 10138  // value will be replaced with "sensitive".
 10139  func (s DescribeQuerySuggestionsConfigOutput) GoString() string {
 10140  	return s.String()
 10141  }
 10142  
 10143  // SetIncludeQueriesWithoutUserInformation sets the IncludeQueriesWithoutUserInformation field's value.
 10144  func (s *DescribeQuerySuggestionsConfigOutput) SetIncludeQueriesWithoutUserInformation(v bool) *DescribeQuerySuggestionsConfigOutput {
 10145  	s.IncludeQueriesWithoutUserInformation = &v
 10146  	return s
 10147  }
 10148  
 10149  // SetLastClearTime sets the LastClearTime field's value.
 10150  func (s *DescribeQuerySuggestionsConfigOutput) SetLastClearTime(v time.Time) *DescribeQuerySuggestionsConfigOutput {
 10151  	s.LastClearTime = &v
 10152  	return s
 10153  }
 10154  
 10155  // SetLastSuggestionsBuildTime sets the LastSuggestionsBuildTime field's value.
 10156  func (s *DescribeQuerySuggestionsConfigOutput) SetLastSuggestionsBuildTime(v time.Time) *DescribeQuerySuggestionsConfigOutput {
 10157  	s.LastSuggestionsBuildTime = &v
 10158  	return s
 10159  }
 10160  
 10161  // SetMinimumNumberOfQueryingUsers sets the MinimumNumberOfQueryingUsers field's value.
 10162  func (s *DescribeQuerySuggestionsConfigOutput) SetMinimumNumberOfQueryingUsers(v int64) *DescribeQuerySuggestionsConfigOutput {
 10163  	s.MinimumNumberOfQueryingUsers = &v
 10164  	return s
 10165  }
 10166  
 10167  // SetMinimumQueryCount sets the MinimumQueryCount field's value.
 10168  func (s *DescribeQuerySuggestionsConfigOutput) SetMinimumQueryCount(v int64) *DescribeQuerySuggestionsConfigOutput {
 10169  	s.MinimumQueryCount = &v
 10170  	return s
 10171  }
 10172  
 10173  // SetMode sets the Mode field's value.
 10174  func (s *DescribeQuerySuggestionsConfigOutput) SetMode(v string) *DescribeQuerySuggestionsConfigOutput {
 10175  	s.Mode = &v
 10176  	return s
 10177  }
 10178  
 10179  // SetQueryLogLookBackWindowInDays sets the QueryLogLookBackWindowInDays field's value.
 10180  func (s *DescribeQuerySuggestionsConfigOutput) SetQueryLogLookBackWindowInDays(v int64) *DescribeQuerySuggestionsConfigOutput {
 10181  	s.QueryLogLookBackWindowInDays = &v
 10182  	return s
 10183  }
 10184  
 10185  // SetStatus sets the Status field's value.
 10186  func (s *DescribeQuerySuggestionsConfigOutput) SetStatus(v string) *DescribeQuerySuggestionsConfigOutput {
 10187  	s.Status = &v
 10188  	return s
 10189  }
 10190  
 10191  // SetTotalSuggestionsCount sets the TotalSuggestionsCount field's value.
 10192  func (s *DescribeQuerySuggestionsConfigOutput) SetTotalSuggestionsCount(v int64) *DescribeQuerySuggestionsConfigOutput {
 10193  	s.TotalSuggestionsCount = &v
 10194  	return s
 10195  }
 10196  
 10197  type DescribeThesaurusInput struct {
 10198  	_ struct{} `type:"structure"`
 10199  
 10200  	// The identifier of the thesaurus to describe.
 10201  	//
 10202  	// Id is a required field
 10203  	Id *string `min:"1" type:"string" required:"true"`
 10204  
 10205  	// The identifier of the index associated with the thesaurus to describe.
 10206  	//
 10207  	// IndexId is a required field
 10208  	IndexId *string `min:"36" type:"string" required:"true"`
 10209  }
 10210  
 10211  // String returns the string representation.
 10212  //
 10213  // API parameter values that are decorated as "sensitive" in the API will not
 10214  // be included in the string output. The member name will be present, but the
 10215  // value will be replaced with "sensitive".
 10216  func (s DescribeThesaurusInput) String() string {
 10217  	return awsutil.Prettify(s)
 10218  }
 10219  
 10220  // GoString returns the string representation.
 10221  //
 10222  // API parameter values that are decorated as "sensitive" in the API will not
 10223  // be included in the string output. The member name will be present, but the
 10224  // value will be replaced with "sensitive".
 10225  func (s DescribeThesaurusInput) GoString() string {
 10226  	return s.String()
 10227  }
 10228  
 10229  // Validate inspects the fields of the type to determine if they are valid.
 10230  func (s *DescribeThesaurusInput) Validate() error {
 10231  	invalidParams := request.ErrInvalidParams{Context: "DescribeThesaurusInput"}
 10232  	if s.Id == nil {
 10233  		invalidParams.Add(request.NewErrParamRequired("Id"))
 10234  	}
 10235  	if s.Id != nil && len(*s.Id) < 1 {
 10236  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
 10237  	}
 10238  	if s.IndexId == nil {
 10239  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 10240  	}
 10241  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 10242  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 10243  	}
 10244  
 10245  	if invalidParams.Len() > 0 {
 10246  		return invalidParams
 10247  	}
 10248  	return nil
 10249  }
 10250  
 10251  // SetId sets the Id field's value.
 10252  func (s *DescribeThesaurusInput) SetId(v string) *DescribeThesaurusInput {
 10253  	s.Id = &v
 10254  	return s
 10255  }
 10256  
 10257  // SetIndexId sets the IndexId field's value.
 10258  func (s *DescribeThesaurusInput) SetIndexId(v string) *DescribeThesaurusInput {
 10259  	s.IndexId = &v
 10260  	return s
 10261  }
 10262  
 10263  type DescribeThesaurusOutput struct {
 10264  	_ struct{} `type:"structure"`
 10265  
 10266  	// The Unix datetime that the thesaurus was created.
 10267  	CreatedAt *time.Time `type:"timestamp"`
 10268  
 10269  	// The thesaurus description.
 10270  	Description *string `type:"string"`
 10271  
 10272  	// When the Status field value is FAILED, the ErrorMessage field provides more
 10273  	// information.
 10274  	ErrorMessage *string `min:"1" type:"string"`
 10275  
 10276  	// The size of the thesaurus file in bytes.
 10277  	FileSizeBytes *int64 `type:"long"`
 10278  
 10279  	// The identifier of the thesaurus.
 10280  	Id *string `min:"1" type:"string"`
 10281  
 10282  	// The identifier of the index associated with the thesaurus to describe.
 10283  	IndexId *string `min:"36" type:"string"`
 10284  
 10285  	// The thesaurus name.
 10286  	Name *string `min:"1" type:"string"`
 10287  
 10288  	// An AWS Identity and Access Management (IAM) role that gives Amazon Kendra
 10289  	// permissions to access thesaurus file specified in SourceS3Path.
 10290  	RoleArn *string `min:"1" type:"string"`
 10291  
 10292  	// Information required to find a specific file in an Amazon S3 bucket.
 10293  	SourceS3Path *S3Path `type:"structure"`
 10294  
 10295  	// The current status of the thesaurus. When the value is ACTIVE, queries are
 10296  	// able to use the thesaurus. If the Status field value is FAILED, the ErrorMessage
 10297  	// field provides more information.
 10298  	//
 10299  	// If the status is ACTIVE_BUT_UPDATE_FAILED, it means that Amazon Kendra could
 10300  	// not ingest the new thesaurus file. The old thesaurus file is still active.
 10301  	Status *string `type:"string" enum:"ThesaurusStatus"`
 10302  
 10303  	// The number of synonym rules in the thesaurus file.
 10304  	SynonymRuleCount *int64 `type:"long"`
 10305  
 10306  	// The number of unique terms in the thesaurus file. For example, the synonyms
 10307  	// a,b,c and a=>d, the term count would be 4.
 10308  	TermCount *int64 `type:"long"`
 10309  
 10310  	// The Unix datetime that the thesaurus was last updated.
 10311  	UpdatedAt *time.Time `type:"timestamp"`
 10312  }
 10313  
 10314  // String returns the string representation.
 10315  //
 10316  // API parameter values that are decorated as "sensitive" in the API will not
 10317  // be included in the string output. The member name will be present, but the
 10318  // value will be replaced with "sensitive".
 10319  func (s DescribeThesaurusOutput) String() string {
 10320  	return awsutil.Prettify(s)
 10321  }
 10322  
 10323  // GoString returns the string representation.
 10324  //
 10325  // API parameter values that are decorated as "sensitive" in the API will not
 10326  // be included in the string output. The member name will be present, but the
 10327  // value will be replaced with "sensitive".
 10328  func (s DescribeThesaurusOutput) GoString() string {
 10329  	return s.String()
 10330  }
 10331  
 10332  // SetCreatedAt sets the CreatedAt field's value.
 10333  func (s *DescribeThesaurusOutput) SetCreatedAt(v time.Time) *DescribeThesaurusOutput {
 10334  	s.CreatedAt = &v
 10335  	return s
 10336  }
 10337  
 10338  // SetDescription sets the Description field's value.
 10339  func (s *DescribeThesaurusOutput) SetDescription(v string) *DescribeThesaurusOutput {
 10340  	s.Description = &v
 10341  	return s
 10342  }
 10343  
 10344  // SetErrorMessage sets the ErrorMessage field's value.
 10345  func (s *DescribeThesaurusOutput) SetErrorMessage(v string) *DescribeThesaurusOutput {
 10346  	s.ErrorMessage = &v
 10347  	return s
 10348  }
 10349  
 10350  // SetFileSizeBytes sets the FileSizeBytes field's value.
 10351  func (s *DescribeThesaurusOutput) SetFileSizeBytes(v int64) *DescribeThesaurusOutput {
 10352  	s.FileSizeBytes = &v
 10353  	return s
 10354  }
 10355  
 10356  // SetId sets the Id field's value.
 10357  func (s *DescribeThesaurusOutput) SetId(v string) *DescribeThesaurusOutput {
 10358  	s.Id = &v
 10359  	return s
 10360  }
 10361  
 10362  // SetIndexId sets the IndexId field's value.
 10363  func (s *DescribeThesaurusOutput) SetIndexId(v string) *DescribeThesaurusOutput {
 10364  	s.IndexId = &v
 10365  	return s
 10366  }
 10367  
 10368  // SetName sets the Name field's value.
 10369  func (s *DescribeThesaurusOutput) SetName(v string) *DescribeThesaurusOutput {
 10370  	s.Name = &v
 10371  	return s
 10372  }
 10373  
 10374  // SetRoleArn sets the RoleArn field's value.
 10375  func (s *DescribeThesaurusOutput) SetRoleArn(v string) *DescribeThesaurusOutput {
 10376  	s.RoleArn = &v
 10377  	return s
 10378  }
 10379  
 10380  // SetSourceS3Path sets the SourceS3Path field's value.
 10381  func (s *DescribeThesaurusOutput) SetSourceS3Path(v *S3Path) *DescribeThesaurusOutput {
 10382  	s.SourceS3Path = v
 10383  	return s
 10384  }
 10385  
 10386  // SetStatus sets the Status field's value.
 10387  func (s *DescribeThesaurusOutput) SetStatus(v string) *DescribeThesaurusOutput {
 10388  	s.Status = &v
 10389  	return s
 10390  }
 10391  
 10392  // SetSynonymRuleCount sets the SynonymRuleCount field's value.
 10393  func (s *DescribeThesaurusOutput) SetSynonymRuleCount(v int64) *DescribeThesaurusOutput {
 10394  	s.SynonymRuleCount = &v
 10395  	return s
 10396  }
 10397  
 10398  // SetTermCount sets the TermCount field's value.
 10399  func (s *DescribeThesaurusOutput) SetTermCount(v int64) *DescribeThesaurusOutput {
 10400  	s.TermCount = &v
 10401  	return s
 10402  }
 10403  
 10404  // SetUpdatedAt sets the UpdatedAt field's value.
 10405  func (s *DescribeThesaurusOutput) SetUpdatedAt(v time.Time) *DescribeThesaurusOutput {
 10406  	s.UpdatedAt = &v
 10407  	return s
 10408  }
 10409  
 10410  // A document in an index.
 10411  type Document struct {
 10412  	_ struct{} `type:"structure"`
 10413  
 10414  	// Information on user and group access rights, which is used for user context
 10415  	// filtering.
 10416  	AccessControlList []*Principal `type:"list"`
 10417  
 10418  	// Custom attributes to apply to the document. Use the custom attributes to
 10419  	// provide additional information for searching, to provide facets for refining
 10420  	// searches, and to provide additional information in the query response.
 10421  	Attributes []*DocumentAttribute `type:"list"`
 10422  
 10423  	// The contents of the document.
 10424  	//
 10425  	// Documents passed to the Blob parameter must be base64 encoded. Your code
 10426  	// might not need to encode the document file bytes if you're using an Amazon
 10427  	// Web Services SDK to call Amazon Kendra operations. If you are calling the
 10428  	// Amazon Kendra endpoint directly using REST, you must base64 encode the contents
 10429  	// before sending.
 10430  	// Blob is automatically base64 encoded/decoded by the SDK.
 10431  	Blob []byte `type:"blob"`
 10432  
 10433  	// The file type of the document in the Blob field.
 10434  	ContentType *string `type:"string" enum:"ContentType"`
 10435  
 10436  	// The list of principal (https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html)
 10437  	// lists that define the hierarchy for which documents users should have access
 10438  	// to.
 10439  	HierarchicalAccessControlList []*HierarchicalPrincipal `min:"1" type:"list"`
 10440  
 10441  	// A unique identifier of the document in the index.
 10442  	//
 10443  	// Id is a required field
 10444  	Id *string `min:"1" type:"string" required:"true"`
 10445  
 10446  	// Information required to find a specific file in an Amazon S3 bucket.
 10447  	S3Path *S3Path `type:"structure"`
 10448  
 10449  	// The title of the document.
 10450  	Title *string `type:"string"`
 10451  }
 10452  
 10453  // String returns the string representation.
 10454  //
 10455  // API parameter values that are decorated as "sensitive" in the API will not
 10456  // be included in the string output. The member name will be present, but the
 10457  // value will be replaced with "sensitive".
 10458  func (s Document) String() string {
 10459  	return awsutil.Prettify(s)
 10460  }
 10461  
 10462  // GoString returns the string representation.
 10463  //
 10464  // API parameter values that are decorated as "sensitive" in the API will not
 10465  // be included in the string output. The member name will be present, but the
 10466  // value will be replaced with "sensitive".
 10467  func (s Document) GoString() string {
 10468  	return s.String()
 10469  }
 10470  
 10471  // Validate inspects the fields of the type to determine if they are valid.
 10472  func (s *Document) Validate() error {
 10473  	invalidParams := request.ErrInvalidParams{Context: "Document"}
 10474  	if s.HierarchicalAccessControlList != nil && len(s.HierarchicalAccessControlList) < 1 {
 10475  		invalidParams.Add(request.NewErrParamMinLen("HierarchicalAccessControlList", 1))
 10476  	}
 10477  	if s.Id == nil {
 10478  		invalidParams.Add(request.NewErrParamRequired("Id"))
 10479  	}
 10480  	if s.Id != nil && len(*s.Id) < 1 {
 10481  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
 10482  	}
 10483  	if s.AccessControlList != nil {
 10484  		for i, v := range s.AccessControlList {
 10485  			if v == nil {
 10486  				continue
 10487  			}
 10488  			if err := v.Validate(); err != nil {
 10489  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessControlList", i), err.(request.ErrInvalidParams))
 10490  			}
 10491  		}
 10492  	}
 10493  	if s.Attributes != nil {
 10494  		for i, v := range s.Attributes {
 10495  			if v == nil {
 10496  				continue
 10497  			}
 10498  			if err := v.Validate(); err != nil {
 10499  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
 10500  			}
 10501  		}
 10502  	}
 10503  	if s.HierarchicalAccessControlList != nil {
 10504  		for i, v := range s.HierarchicalAccessControlList {
 10505  			if v == nil {
 10506  				continue
 10507  			}
 10508  			if err := v.Validate(); err != nil {
 10509  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "HierarchicalAccessControlList", i), err.(request.ErrInvalidParams))
 10510  			}
 10511  		}
 10512  	}
 10513  	if s.S3Path != nil {
 10514  		if err := s.S3Path.Validate(); err != nil {
 10515  			invalidParams.AddNested("S3Path", err.(request.ErrInvalidParams))
 10516  		}
 10517  	}
 10518  
 10519  	if invalidParams.Len() > 0 {
 10520  		return invalidParams
 10521  	}
 10522  	return nil
 10523  }
 10524  
 10525  // SetAccessControlList sets the AccessControlList field's value.
 10526  func (s *Document) SetAccessControlList(v []*Principal) *Document {
 10527  	s.AccessControlList = v
 10528  	return s
 10529  }
 10530  
 10531  // SetAttributes sets the Attributes field's value.
 10532  func (s *Document) SetAttributes(v []*DocumentAttribute) *Document {
 10533  	s.Attributes = v
 10534  	return s
 10535  }
 10536  
 10537  // SetBlob sets the Blob field's value.
 10538  func (s *Document) SetBlob(v []byte) *Document {
 10539  	s.Blob = v
 10540  	return s
 10541  }
 10542  
 10543  // SetContentType sets the ContentType field's value.
 10544  func (s *Document) SetContentType(v string) *Document {
 10545  	s.ContentType = &v
 10546  	return s
 10547  }
 10548  
 10549  // SetHierarchicalAccessControlList sets the HierarchicalAccessControlList field's value.
 10550  func (s *Document) SetHierarchicalAccessControlList(v []*HierarchicalPrincipal) *Document {
 10551  	s.HierarchicalAccessControlList = v
 10552  	return s
 10553  }
 10554  
 10555  // SetId sets the Id field's value.
 10556  func (s *Document) SetId(v string) *Document {
 10557  	s.Id = &v
 10558  	return s
 10559  }
 10560  
 10561  // SetS3Path sets the S3Path field's value.
 10562  func (s *Document) SetS3Path(v *S3Path) *Document {
 10563  	s.S3Path = v
 10564  	return s
 10565  }
 10566  
 10567  // SetTitle sets the Title field's value.
 10568  func (s *Document) SetTitle(v string) *Document {
 10569  	s.Title = &v
 10570  	return s
 10571  }
 10572  
 10573  // A custom attribute value assigned to a document.
 10574  type DocumentAttribute struct {
 10575  	_ struct{} `type:"structure"`
 10576  
 10577  	// The identifier for the attribute.
 10578  	//
 10579  	// Key is a required field
 10580  	Key *string `min:"1" type:"string" required:"true"`
 10581  
 10582  	// The value of the attribute.
 10583  	//
 10584  	// Value is a required field
 10585  	Value *DocumentAttributeValue `type:"structure" required:"true"`
 10586  }
 10587  
 10588  // String returns the string representation.
 10589  //
 10590  // API parameter values that are decorated as "sensitive" in the API will not
 10591  // be included in the string output. The member name will be present, but the
 10592  // value will be replaced with "sensitive".
 10593  func (s DocumentAttribute) String() string {
 10594  	return awsutil.Prettify(s)
 10595  }
 10596  
 10597  // GoString returns the string representation.
 10598  //
 10599  // API parameter values that are decorated as "sensitive" in the API will not
 10600  // be included in the string output. The member name will be present, but the
 10601  // value will be replaced with "sensitive".
 10602  func (s DocumentAttribute) GoString() string {
 10603  	return s.String()
 10604  }
 10605  
 10606  // Validate inspects the fields of the type to determine if they are valid.
 10607  func (s *DocumentAttribute) Validate() error {
 10608  	invalidParams := request.ErrInvalidParams{Context: "DocumentAttribute"}
 10609  	if s.Key == nil {
 10610  		invalidParams.Add(request.NewErrParamRequired("Key"))
 10611  	}
 10612  	if s.Key != nil && len(*s.Key) < 1 {
 10613  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 10614  	}
 10615  	if s.Value == nil {
 10616  		invalidParams.Add(request.NewErrParamRequired("Value"))
 10617  	}
 10618  	if s.Value != nil {
 10619  		if err := s.Value.Validate(); err != nil {
 10620  			invalidParams.AddNested("Value", err.(request.ErrInvalidParams))
 10621  		}
 10622  	}
 10623  
 10624  	if invalidParams.Len() > 0 {
 10625  		return invalidParams
 10626  	}
 10627  	return nil
 10628  }
 10629  
 10630  // SetKey sets the Key field's value.
 10631  func (s *DocumentAttribute) SetKey(v string) *DocumentAttribute {
 10632  	s.Key = &v
 10633  	return s
 10634  }
 10635  
 10636  // SetValue sets the Value field's value.
 10637  func (s *DocumentAttribute) SetValue(v *DocumentAttributeValue) *DocumentAttribute {
 10638  	s.Value = v
 10639  	return s
 10640  }
 10641  
 10642  // The value of a custom document attribute. You can only provide one value
 10643  // for a custom attribute.
 10644  type DocumentAttributeValue struct {
 10645  	_ struct{} `type:"structure"`
 10646  
 10647  	// A date expressed as an ISO 8601 string.
 10648  	//
 10649  	// It is important for the time zone to be included in the ISO 8601 date-time
 10650  	// format. For example, 20120325T123010+01:00 is the ISO 8601 date-time format
 10651  	// for March 25th 2012 at 12:30PM (plus 10 seconds) in Central European Time.
 10652  	DateValue *time.Time `type:"timestamp"`
 10653  
 10654  	// A long integer value.
 10655  	LongValue *int64 `type:"long"`
 10656  
 10657  	// A list of strings.
 10658  	StringListValue []*string `type:"list"`
 10659  
 10660  	// A string, such as "department".
 10661  	StringValue *string `min:"1" type:"string"`
 10662  }
 10663  
 10664  // String returns the string representation.
 10665  //
 10666  // API parameter values that are decorated as "sensitive" in the API will not
 10667  // be included in the string output. The member name will be present, but the
 10668  // value will be replaced with "sensitive".
 10669  func (s DocumentAttributeValue) String() string {
 10670  	return awsutil.Prettify(s)
 10671  }
 10672  
 10673  // GoString returns the string representation.
 10674  //
 10675  // API parameter values that are decorated as "sensitive" in the API will not
 10676  // be included in the string output. The member name will be present, but the
 10677  // value will be replaced with "sensitive".
 10678  func (s DocumentAttributeValue) GoString() string {
 10679  	return s.String()
 10680  }
 10681  
 10682  // Validate inspects the fields of the type to determine if they are valid.
 10683  func (s *DocumentAttributeValue) Validate() error {
 10684  	invalidParams := request.ErrInvalidParams{Context: "DocumentAttributeValue"}
 10685  	if s.StringValue != nil && len(*s.StringValue) < 1 {
 10686  		invalidParams.Add(request.NewErrParamMinLen("StringValue", 1))
 10687  	}
 10688  
 10689  	if invalidParams.Len() > 0 {
 10690  		return invalidParams
 10691  	}
 10692  	return nil
 10693  }
 10694  
 10695  // SetDateValue sets the DateValue field's value.
 10696  func (s *DocumentAttributeValue) SetDateValue(v time.Time) *DocumentAttributeValue {
 10697  	s.DateValue = &v
 10698  	return s
 10699  }
 10700  
 10701  // SetLongValue sets the LongValue field's value.
 10702  func (s *DocumentAttributeValue) SetLongValue(v int64) *DocumentAttributeValue {
 10703  	s.LongValue = &v
 10704  	return s
 10705  }
 10706  
 10707  // SetStringListValue sets the StringListValue field's value.
 10708  func (s *DocumentAttributeValue) SetStringListValue(v []*string) *DocumentAttributeValue {
 10709  	s.StringListValue = v
 10710  	return s
 10711  }
 10712  
 10713  // SetStringValue sets the StringValue field's value.
 10714  func (s *DocumentAttributeValue) SetStringValue(v string) *DocumentAttributeValue {
 10715  	s.StringValue = &v
 10716  	return s
 10717  }
 10718  
 10719  // Provides the count of documents that match a particular attribute when doing
 10720  // a faceted search.
 10721  type DocumentAttributeValueCountPair struct {
 10722  	_ struct{} `type:"structure"`
 10723  
 10724  	// The number of documents in the response that have the attribute value for
 10725  	// the key.
 10726  	Count *int64 `type:"integer"`
 10727  
 10728  	// The value of the attribute. For example, "HR."
 10729  	DocumentAttributeValue *DocumentAttributeValue `type:"structure"`
 10730  }
 10731  
 10732  // String returns the string representation.
 10733  //
 10734  // API parameter values that are decorated as "sensitive" in the API will not
 10735  // be included in the string output. The member name will be present, but the
 10736  // value will be replaced with "sensitive".
 10737  func (s DocumentAttributeValueCountPair) String() string {
 10738  	return awsutil.Prettify(s)
 10739  }
 10740  
 10741  // GoString returns the string representation.
 10742  //
 10743  // API parameter values that are decorated as "sensitive" in the API will not
 10744  // be included in the string output. The member name will be present, but the
 10745  // value will be replaced with "sensitive".
 10746  func (s DocumentAttributeValueCountPair) GoString() string {
 10747  	return s.String()
 10748  }
 10749  
 10750  // SetCount sets the Count field's value.
 10751  func (s *DocumentAttributeValueCountPair) SetCount(v int64) *DocumentAttributeValueCountPair {
 10752  	s.Count = &v
 10753  	return s
 10754  }
 10755  
 10756  // SetDocumentAttributeValue sets the DocumentAttributeValue field's value.
 10757  func (s *DocumentAttributeValueCountPair) SetDocumentAttributeValue(v *DocumentAttributeValue) *DocumentAttributeValueCountPair {
 10758  	s.DocumentAttributeValue = v
 10759  	return s
 10760  }
 10761  
 10762  // Identifies a document for which to retrieve status information
 10763  type DocumentInfo struct {
 10764  	_ struct{} `type:"structure"`
 10765  
 10766  	// Attributes that identify a specific version of a document to check.
 10767  	//
 10768  	// The only valid attributes are:
 10769  	//
 10770  	//    * version
 10771  	//
 10772  	//    * datasourceId
 10773  	//
 10774  	//    * jobExecutionId
 10775  	//
 10776  	// The attributes follow these rules:
 10777  	//
 10778  	//    * dataSourceId and jobExecutionId must be used together.
 10779  	//
 10780  	//    * version is ignored if dataSourceId and jobExecutionId are not provided.
 10781  	//
 10782  	//    * If dataSourceId and jobExecutionId are provided, but version is not,
 10783  	//    the version defaults to "0".
 10784  	Attributes []*DocumentAttribute `type:"list"`
 10785  
 10786  	// The unique identifier of the document.
 10787  	//
 10788  	// DocumentId is a required field
 10789  	DocumentId *string `min:"1" type:"string" required:"true"`
 10790  }
 10791  
 10792  // String returns the string representation.
 10793  //
 10794  // API parameter values that are decorated as "sensitive" in the API will not
 10795  // be included in the string output. The member name will be present, but the
 10796  // value will be replaced with "sensitive".
 10797  func (s DocumentInfo) String() string {
 10798  	return awsutil.Prettify(s)
 10799  }
 10800  
 10801  // GoString returns the string representation.
 10802  //
 10803  // API parameter values that are decorated as "sensitive" in the API will not
 10804  // be included in the string output. The member name will be present, but the
 10805  // value will be replaced with "sensitive".
 10806  func (s DocumentInfo) GoString() string {
 10807  	return s.String()
 10808  }
 10809  
 10810  // Validate inspects the fields of the type to determine if they are valid.
 10811  func (s *DocumentInfo) Validate() error {
 10812  	invalidParams := request.ErrInvalidParams{Context: "DocumentInfo"}
 10813  	if s.DocumentId == nil {
 10814  		invalidParams.Add(request.NewErrParamRequired("DocumentId"))
 10815  	}
 10816  	if s.DocumentId != nil && len(*s.DocumentId) < 1 {
 10817  		invalidParams.Add(request.NewErrParamMinLen("DocumentId", 1))
 10818  	}
 10819  	if s.Attributes != nil {
 10820  		for i, v := range s.Attributes {
 10821  			if v == nil {
 10822  				continue
 10823  			}
 10824  			if err := v.Validate(); err != nil {
 10825  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams))
 10826  			}
 10827  		}
 10828  	}
 10829  
 10830  	if invalidParams.Len() > 0 {
 10831  		return invalidParams
 10832  	}
 10833  	return nil
 10834  }
 10835  
 10836  // SetAttributes sets the Attributes field's value.
 10837  func (s *DocumentInfo) SetAttributes(v []*DocumentAttribute) *DocumentInfo {
 10838  	s.Attributes = v
 10839  	return s
 10840  }
 10841  
 10842  // SetDocumentId sets the DocumentId field's value.
 10843  func (s *DocumentInfo) SetDocumentId(v string) *DocumentInfo {
 10844  	s.DocumentId = &v
 10845  	return s
 10846  }
 10847  
 10848  // Specifies the properties of a custom index field.
 10849  type DocumentMetadataConfiguration struct {
 10850  	_ struct{} `type:"structure"`
 10851  
 10852  	// The name of the index field.
 10853  	//
 10854  	// Name is a required field
 10855  	Name *string `min:"1" type:"string" required:"true"`
 10856  
 10857  	// Provides manual tuning parameters to determine how the field affects the
 10858  	// search results.
 10859  	Relevance *Relevance `type:"structure"`
 10860  
 10861  	// Provides information about how the field is used during a search.
 10862  	Search *Search `type:"structure"`
 10863  
 10864  	// The data type of the index field.
 10865  	//
 10866  	// Type is a required field
 10867  	Type *string `type:"string" required:"true" enum:"DocumentAttributeValueType"`
 10868  }
 10869  
 10870  // String returns the string representation.
 10871  //
 10872  // API parameter values that are decorated as "sensitive" in the API will not
 10873  // be included in the string output. The member name will be present, but the
 10874  // value will be replaced with "sensitive".
 10875  func (s DocumentMetadataConfiguration) String() string {
 10876  	return awsutil.Prettify(s)
 10877  }
 10878  
 10879  // GoString returns the string representation.
 10880  //
 10881  // API parameter values that are decorated as "sensitive" in the API will not
 10882  // be included in the string output. The member name will be present, but the
 10883  // value will be replaced with "sensitive".
 10884  func (s DocumentMetadataConfiguration) GoString() string {
 10885  	return s.String()
 10886  }
 10887  
 10888  // Validate inspects the fields of the type to determine if they are valid.
 10889  func (s *DocumentMetadataConfiguration) Validate() error {
 10890  	invalidParams := request.ErrInvalidParams{Context: "DocumentMetadataConfiguration"}
 10891  	if s.Name == nil {
 10892  		invalidParams.Add(request.NewErrParamRequired("Name"))
 10893  	}
 10894  	if s.Name != nil && len(*s.Name) < 1 {
 10895  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 10896  	}
 10897  	if s.Type == nil {
 10898  		invalidParams.Add(request.NewErrParamRequired("Type"))
 10899  	}
 10900  	if s.Relevance != nil {
 10901  		if err := s.Relevance.Validate(); err != nil {
 10902  			invalidParams.AddNested("Relevance", err.(request.ErrInvalidParams))
 10903  		}
 10904  	}
 10905  
 10906  	if invalidParams.Len() > 0 {
 10907  		return invalidParams
 10908  	}
 10909  	return nil
 10910  }
 10911  
 10912  // SetName sets the Name field's value.
 10913  func (s *DocumentMetadataConfiguration) SetName(v string) *DocumentMetadataConfiguration {
 10914  	s.Name = &v
 10915  	return s
 10916  }
 10917  
 10918  // SetRelevance sets the Relevance field's value.
 10919  func (s *DocumentMetadataConfiguration) SetRelevance(v *Relevance) *DocumentMetadataConfiguration {
 10920  	s.Relevance = v
 10921  	return s
 10922  }
 10923  
 10924  // SetSearch sets the Search field's value.
 10925  func (s *DocumentMetadataConfiguration) SetSearch(v *Search) *DocumentMetadataConfiguration {
 10926  	s.Search = v
 10927  	return s
 10928  }
 10929  
 10930  // SetType sets the Type field's value.
 10931  func (s *DocumentMetadataConfiguration) SetType(v string) *DocumentMetadataConfiguration {
 10932  	s.Type = &v
 10933  	return s
 10934  }
 10935  
 10936  // Overrides the document relevance properties of a custom index field.
 10937  type DocumentRelevanceConfiguration struct {
 10938  	_ struct{} `type:"structure"`
 10939  
 10940  	// The name of the tuning configuration to override document relevance at the
 10941  	// index level.
 10942  	//
 10943  	// Name is a required field
 10944  	Name *string `min:"1" type:"string" required:"true"`
 10945  
 10946  	// Provides information for manually tuning the relevance of a field in a search.
 10947  	// When a query includes terms that match the field, the results are given a
 10948  	// boost in the response based on these tuning parameters.
 10949  	//
 10950  	// Relevance is a required field
 10951  	Relevance *Relevance `type:"structure" required:"true"`
 10952  }
 10953  
 10954  // String returns the string representation.
 10955  //
 10956  // API parameter values that are decorated as "sensitive" in the API will not
 10957  // be included in the string output. The member name will be present, but the
 10958  // value will be replaced with "sensitive".
 10959  func (s DocumentRelevanceConfiguration) String() string {
 10960  	return awsutil.Prettify(s)
 10961  }
 10962  
 10963  // GoString returns the string representation.
 10964  //
 10965  // API parameter values that are decorated as "sensitive" in the API will not
 10966  // be included in the string output. The member name will be present, but the
 10967  // value will be replaced with "sensitive".
 10968  func (s DocumentRelevanceConfiguration) GoString() string {
 10969  	return s.String()
 10970  }
 10971  
 10972  // Validate inspects the fields of the type to determine if they are valid.
 10973  func (s *DocumentRelevanceConfiguration) Validate() error {
 10974  	invalidParams := request.ErrInvalidParams{Context: "DocumentRelevanceConfiguration"}
 10975  	if s.Name == nil {
 10976  		invalidParams.Add(request.NewErrParamRequired("Name"))
 10977  	}
 10978  	if s.Name != nil && len(*s.Name) < 1 {
 10979  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 10980  	}
 10981  	if s.Relevance == nil {
 10982  		invalidParams.Add(request.NewErrParamRequired("Relevance"))
 10983  	}
 10984  	if s.Relevance != nil {
 10985  		if err := s.Relevance.Validate(); err != nil {
 10986  			invalidParams.AddNested("Relevance", err.(request.ErrInvalidParams))
 10987  		}
 10988  	}
 10989  
 10990  	if invalidParams.Len() > 0 {
 10991  		return invalidParams
 10992  	}
 10993  	return nil
 10994  }
 10995  
 10996  // SetName sets the Name field's value.
 10997  func (s *DocumentRelevanceConfiguration) SetName(v string) *DocumentRelevanceConfiguration {
 10998  	s.Name = &v
 10999  	return s
 11000  }
 11001  
 11002  // SetRelevance sets the Relevance field's value.
 11003  func (s *DocumentRelevanceConfiguration) SetRelevance(v *Relevance) *DocumentRelevanceConfiguration {
 11004  	s.Relevance = v
 11005  	return s
 11006  }
 11007  
 11008  // Document metadata files that contain information such as the document access
 11009  // control information, source URI, document author, and custom attributes.
 11010  // Each metadata file contains metadata about a single document.
 11011  type DocumentsMetadataConfiguration struct {
 11012  	_ struct{} `type:"structure"`
 11013  
 11014  	// A prefix used to filter metadata configuration files in the Amazon Web Services
 11015  	// S3 bucket. The S3 bucket might contain multiple metadata files. Use S3Prefix
 11016  	// to include only the desired metadata files.
 11017  	S3Prefix *string `min:"1" type:"string"`
 11018  }
 11019  
 11020  // String returns the string representation.
 11021  //
 11022  // API parameter values that are decorated as "sensitive" in the API will not
 11023  // be included in the string output. The member name will be present, but the
 11024  // value will be replaced with "sensitive".
 11025  func (s DocumentsMetadataConfiguration) String() string {
 11026  	return awsutil.Prettify(s)
 11027  }
 11028  
 11029  // GoString returns the string representation.
 11030  //
 11031  // API parameter values that are decorated as "sensitive" in the API will not
 11032  // be included in the string output. The member name will be present, but the
 11033  // value will be replaced with "sensitive".
 11034  func (s DocumentsMetadataConfiguration) GoString() string {
 11035  	return s.String()
 11036  }
 11037  
 11038  // Validate inspects the fields of the type to determine if they are valid.
 11039  func (s *DocumentsMetadataConfiguration) Validate() error {
 11040  	invalidParams := request.ErrInvalidParams{Context: "DocumentsMetadataConfiguration"}
 11041  	if s.S3Prefix != nil && len(*s.S3Prefix) < 1 {
 11042  		invalidParams.Add(request.NewErrParamMinLen("S3Prefix", 1))
 11043  	}
 11044  
 11045  	if invalidParams.Len() > 0 {
 11046  		return invalidParams
 11047  	}
 11048  	return nil
 11049  }
 11050  
 11051  // SetS3Prefix sets the S3Prefix field's value.
 11052  func (s *DocumentsMetadataConfiguration) SetS3Prefix(v string) *DocumentsMetadataConfiguration {
 11053  	s.S3Prefix = &v
 11054  	return s
 11055  }
 11056  
 11057  // Information about a document attribute
 11058  type Facet struct {
 11059  	_ struct{} `type:"structure"`
 11060  
 11061  	// The unique key for the document attribute.
 11062  	DocumentAttributeKey *string `min:"1" type:"string"`
 11063  }
 11064  
 11065  // String returns the string representation.
 11066  //
 11067  // API parameter values that are decorated as "sensitive" in the API will not
 11068  // be included in the string output. The member name will be present, but the
 11069  // value will be replaced with "sensitive".
 11070  func (s Facet) String() string {
 11071  	return awsutil.Prettify(s)
 11072  }
 11073  
 11074  // GoString returns the string representation.
 11075  //
 11076  // API parameter values that are decorated as "sensitive" in the API will not
 11077  // be included in the string output. The member name will be present, but the
 11078  // value will be replaced with "sensitive".
 11079  func (s Facet) GoString() string {
 11080  	return s.String()
 11081  }
 11082  
 11083  // Validate inspects the fields of the type to determine if they are valid.
 11084  func (s *Facet) Validate() error {
 11085  	invalidParams := request.ErrInvalidParams{Context: "Facet"}
 11086  	if s.DocumentAttributeKey != nil && len(*s.DocumentAttributeKey) < 1 {
 11087  		invalidParams.Add(request.NewErrParamMinLen("DocumentAttributeKey", 1))
 11088  	}
 11089  
 11090  	if invalidParams.Len() > 0 {
 11091  		return invalidParams
 11092  	}
 11093  	return nil
 11094  }
 11095  
 11096  // SetDocumentAttributeKey sets the DocumentAttributeKey field's value.
 11097  func (s *Facet) SetDocumentAttributeKey(v string) *Facet {
 11098  	s.DocumentAttributeKey = &v
 11099  	return s
 11100  }
 11101  
 11102  // The facet values for the documents in the response.
 11103  type FacetResult struct {
 11104  	_ struct{} `type:"structure"`
 11105  
 11106  	// The key for the facet values. This is the same as the DocumentAttributeKey
 11107  	// provided in the query.
 11108  	DocumentAttributeKey *string `min:"1" type:"string"`
 11109  
 11110  	// An array of key/value pairs, where the key is the value of the attribute
 11111  	// and the count is the number of documents that share the key value.
 11112  	DocumentAttributeValueCountPairs []*DocumentAttributeValueCountPair `type:"list"`
 11113  
 11114  	// The data type of the facet value. This is the same as the type defined for
 11115  	// the index field when it was created.
 11116  	DocumentAttributeValueType *string `type:"string" enum:"DocumentAttributeValueType"`
 11117  }
 11118  
 11119  // String returns the string representation.
 11120  //
 11121  // API parameter values that are decorated as "sensitive" in the API will not
 11122  // be included in the string output. The member name will be present, but the
 11123  // value will be replaced with "sensitive".
 11124  func (s FacetResult) String() string {
 11125  	return awsutil.Prettify(s)
 11126  }
 11127  
 11128  // GoString returns the string representation.
 11129  //
 11130  // API parameter values that are decorated as "sensitive" in the API will not
 11131  // be included in the string output. The member name will be present, but the
 11132  // value will be replaced with "sensitive".
 11133  func (s FacetResult) GoString() string {
 11134  	return s.String()
 11135  }
 11136  
 11137  // SetDocumentAttributeKey sets the DocumentAttributeKey field's value.
 11138  func (s *FacetResult) SetDocumentAttributeKey(v string) *FacetResult {
 11139  	s.DocumentAttributeKey = &v
 11140  	return s
 11141  }
 11142  
 11143  // SetDocumentAttributeValueCountPairs sets the DocumentAttributeValueCountPairs field's value.
 11144  func (s *FacetResult) SetDocumentAttributeValueCountPairs(v []*DocumentAttributeValueCountPair) *FacetResult {
 11145  	s.DocumentAttributeValueCountPairs = v
 11146  	return s
 11147  }
 11148  
 11149  // SetDocumentAttributeValueType sets the DocumentAttributeValueType field's value.
 11150  func (s *FacetResult) SetDocumentAttributeValueType(v string) *FacetResult {
 11151  	s.DocumentAttributeValueType = &v
 11152  	return s
 11153  }
 11154  
 11155  // Provides statistical information about the FAQ questions and answers contained
 11156  // in an index.
 11157  type FaqStatistics struct {
 11158  	_ struct{} `type:"structure"`
 11159  
 11160  	// The total number of FAQ questions and answers contained in the index.
 11161  	//
 11162  	// IndexedQuestionAnswersCount is a required field
 11163  	IndexedQuestionAnswersCount *int64 `type:"integer" required:"true"`
 11164  }
 11165  
 11166  // String returns the string representation.
 11167  //
 11168  // API parameter values that are decorated as "sensitive" in the API will not
 11169  // be included in the string output. The member name will be present, but the
 11170  // value will be replaced with "sensitive".
 11171  func (s FaqStatistics) String() string {
 11172  	return awsutil.Prettify(s)
 11173  }
 11174  
 11175  // GoString returns the string representation.
 11176  //
 11177  // API parameter values that are decorated as "sensitive" in the API will not
 11178  // be included in the string output. The member name will be present, but the
 11179  // value will be replaced with "sensitive".
 11180  func (s FaqStatistics) GoString() string {
 11181  	return s.String()
 11182  }
 11183  
 11184  // SetIndexedQuestionAnswersCount sets the IndexedQuestionAnswersCount field's value.
 11185  func (s *FaqStatistics) SetIndexedQuestionAnswersCount(v int64) *FaqStatistics {
 11186  	s.IndexedQuestionAnswersCount = &v
 11187  	return s
 11188  }
 11189  
 11190  // Provides information about a frequently asked questions and answer contained
 11191  // in an index.
 11192  type FaqSummary struct {
 11193  	_ struct{} `type:"structure"`
 11194  
 11195  	// The UNIX datetime that the FAQ was added to the index.
 11196  	CreatedAt *time.Time `type:"timestamp"`
 11197  
 11198  	// The file type used to create the FAQ.
 11199  	FileFormat *string `type:"string" enum:"FaqFileFormat"`
 11200  
 11201  	// The unique identifier of the FAQ.
 11202  	Id *string `min:"1" type:"string"`
 11203  
 11204  	// The code for a language. This shows a supported language for the FAQ document
 11205  	// as part of the summary information for FAQs. English is supported by default.
 11206  	// For more information on supported languages, including their codes, see Adding
 11207  	// documents in languages other than English (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html).
 11208  	LanguageCode *string `min:"2" type:"string"`
 11209  
 11210  	// The name that you assigned the FAQ when you created or updated the FAQ.
 11211  	Name *string `min:"1" type:"string"`
 11212  
 11213  	// The current status of the FAQ. When the status is ACTIVE the FAQ is ready
 11214  	// for use.
 11215  	Status *string `type:"string" enum:"FaqStatus"`
 11216  
 11217  	// The UNIX datetime that the FAQ was last updated.
 11218  	UpdatedAt *time.Time `type:"timestamp"`
 11219  }
 11220  
 11221  // String returns the string representation.
 11222  //
 11223  // API parameter values that are decorated as "sensitive" in the API will not
 11224  // be included in the string output. The member name will be present, but the
 11225  // value will be replaced with "sensitive".
 11226  func (s FaqSummary) String() string {
 11227  	return awsutil.Prettify(s)
 11228  }
 11229  
 11230  // GoString returns the string representation.
 11231  //
 11232  // API parameter values that are decorated as "sensitive" in the API will not
 11233  // be included in the string output. The member name will be present, but the
 11234  // value will be replaced with "sensitive".
 11235  func (s FaqSummary) GoString() string {
 11236  	return s.String()
 11237  }
 11238  
 11239  // SetCreatedAt sets the CreatedAt field's value.
 11240  func (s *FaqSummary) SetCreatedAt(v time.Time) *FaqSummary {
 11241  	s.CreatedAt = &v
 11242  	return s
 11243  }
 11244  
 11245  // SetFileFormat sets the FileFormat field's value.
 11246  func (s *FaqSummary) SetFileFormat(v string) *FaqSummary {
 11247  	s.FileFormat = &v
 11248  	return s
 11249  }
 11250  
 11251  // SetId sets the Id field's value.
 11252  func (s *FaqSummary) SetId(v string) *FaqSummary {
 11253  	s.Id = &v
 11254  	return s
 11255  }
 11256  
 11257  // SetLanguageCode sets the LanguageCode field's value.
 11258  func (s *FaqSummary) SetLanguageCode(v string) *FaqSummary {
 11259  	s.LanguageCode = &v
 11260  	return s
 11261  }
 11262  
 11263  // SetName sets the Name field's value.
 11264  func (s *FaqSummary) SetName(v string) *FaqSummary {
 11265  	s.Name = &v
 11266  	return s
 11267  }
 11268  
 11269  // SetStatus sets the Status field's value.
 11270  func (s *FaqSummary) SetStatus(v string) *FaqSummary {
 11271  	s.Status = &v
 11272  	return s
 11273  }
 11274  
 11275  // SetUpdatedAt sets the UpdatedAt field's value.
 11276  func (s *FaqSummary) SetUpdatedAt(v time.Time) *FaqSummary {
 11277  	s.UpdatedAt = &v
 11278  	return s
 11279  }
 11280  
 11281  type GetQuerySuggestionsInput struct {
 11282  	_ struct{} `type:"structure"`
 11283  
 11284  	// The identifier of the index you want to get query suggestions from.
 11285  	//
 11286  	// IndexId is a required field
 11287  	IndexId *string `min:"36" type:"string" required:"true"`
 11288  
 11289  	// The maximum number of query suggestions you want to show to your users.
 11290  	MaxSuggestionsCount *int64 `type:"integer"`
 11291  
 11292  	// The text of a user's query to generate query suggestions.
 11293  	//
 11294  	// A query is suggested if the query prefix matches what a user starts to type
 11295  	// as their query.
 11296  	//
 11297  	// Amazon Kendra does not show any suggestions if a user types fewer than two
 11298  	// characters or more than 60 characters. A query must also have at least one
 11299  	// search result and contain at least one word of more than four characters.
 11300  	//
 11301  	// QueryText is a required field
 11302  	QueryText *string `type:"string" required:"true"`
 11303  }
 11304  
 11305  // String returns the string representation.
 11306  //
 11307  // API parameter values that are decorated as "sensitive" in the API will not
 11308  // be included in the string output. The member name will be present, but the
 11309  // value will be replaced with "sensitive".
 11310  func (s GetQuerySuggestionsInput) String() string {
 11311  	return awsutil.Prettify(s)
 11312  }
 11313  
 11314  // GoString returns the string representation.
 11315  //
 11316  // API parameter values that are decorated as "sensitive" in the API will not
 11317  // be included in the string output. The member name will be present, but the
 11318  // value will be replaced with "sensitive".
 11319  func (s GetQuerySuggestionsInput) GoString() string {
 11320  	return s.String()
 11321  }
 11322  
 11323  // Validate inspects the fields of the type to determine if they are valid.
 11324  func (s *GetQuerySuggestionsInput) Validate() error {
 11325  	invalidParams := request.ErrInvalidParams{Context: "GetQuerySuggestionsInput"}
 11326  	if s.IndexId == nil {
 11327  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 11328  	}
 11329  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 11330  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 11331  	}
 11332  	if s.QueryText == nil {
 11333  		invalidParams.Add(request.NewErrParamRequired("QueryText"))
 11334  	}
 11335  
 11336  	if invalidParams.Len() > 0 {
 11337  		return invalidParams
 11338  	}
 11339  	return nil
 11340  }
 11341  
 11342  // SetIndexId sets the IndexId field's value.
 11343  func (s *GetQuerySuggestionsInput) SetIndexId(v string) *GetQuerySuggestionsInput {
 11344  	s.IndexId = &v
 11345  	return s
 11346  }
 11347  
 11348  // SetMaxSuggestionsCount sets the MaxSuggestionsCount field's value.
 11349  func (s *GetQuerySuggestionsInput) SetMaxSuggestionsCount(v int64) *GetQuerySuggestionsInput {
 11350  	s.MaxSuggestionsCount = &v
 11351  	return s
 11352  }
 11353  
 11354  // SetQueryText sets the QueryText field's value.
 11355  func (s *GetQuerySuggestionsInput) SetQueryText(v string) *GetQuerySuggestionsInput {
 11356  	s.QueryText = &v
 11357  	return s
 11358  }
 11359  
 11360  type GetQuerySuggestionsOutput struct {
 11361  	_ struct{} `type:"structure"`
 11362  
 11363  	// The unique identifier for a list of query suggestions for an index.
 11364  	QuerySuggestionsId *string `min:"1" type:"string"`
 11365  
 11366  	// A list of query suggestions for an index.
 11367  	Suggestions []*Suggestion `type:"list"`
 11368  }
 11369  
 11370  // String returns the string representation.
 11371  //
 11372  // API parameter values that are decorated as "sensitive" in the API will not
 11373  // be included in the string output. The member name will be present, but the
 11374  // value will be replaced with "sensitive".
 11375  func (s GetQuerySuggestionsOutput) String() string {
 11376  	return awsutil.Prettify(s)
 11377  }
 11378  
 11379  // GoString returns the string representation.
 11380  //
 11381  // API parameter values that are decorated as "sensitive" in the API will not
 11382  // be included in the string output. The member name will be present, but the
 11383  // value will be replaced with "sensitive".
 11384  func (s GetQuerySuggestionsOutput) GoString() string {
 11385  	return s.String()
 11386  }
 11387  
 11388  // SetQuerySuggestionsId sets the QuerySuggestionsId field's value.
 11389  func (s *GetQuerySuggestionsOutput) SetQuerySuggestionsId(v string) *GetQuerySuggestionsOutput {
 11390  	s.QuerySuggestionsId = &v
 11391  	return s
 11392  }
 11393  
 11394  // SetSuggestions sets the Suggestions field's value.
 11395  func (s *GetQuerySuggestionsOutput) SetSuggestions(v []*Suggestion) *GetQuerySuggestionsOutput {
 11396  	s.Suggestions = v
 11397  	return s
 11398  }
 11399  
 11400  // Provides configuration information for data sources that connect to Google
 11401  // Drive.
 11402  type GoogleDriveConfiguration struct {
 11403  	_ struct{} `type:"structure"`
 11404  
 11405  	// A list of MIME types to exclude from the index. All documents matching the
 11406  	// specified MIME type are excluded.
 11407  	//
 11408  	// For a list of MIME types, see Using a Google Workspace Drive data source
 11409  	// (https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html).
 11410  	ExcludeMimeTypes []*string `type:"list"`
 11411  
 11412  	// A list of identifiers or shared drives to exclude from the index. All files
 11413  	// and folders stored on the shared drive are excluded.
 11414  	ExcludeSharedDrives []*string `type:"list"`
 11415  
 11416  	// A list of email addresses of the users. Documents owned by these users are
 11417  	// excluded from the index. Documents shared with excluded users are indexed
 11418  	// unless they are excluded in another way.
 11419  	ExcludeUserAccounts []*string `type:"list"`
 11420  
 11421  	// A list of regular expression patterns that apply to the path on Google Drive.
 11422  	// Items that match the pattern are excluded from the index from both shared
 11423  	// drives and users' My Drives. Items that don't match the pattern are included
 11424  	// in the index. If an item matches both an exclusion pattern and an inclusion
 11425  	// pattern, it is excluded from the index.
 11426  	ExclusionPatterns []*string `type:"list"`
 11427  
 11428  	// Defines mapping between a field in the Google Drive and a Amazon Kendra index
 11429  	// field.
 11430  	//
 11431  	// If you are using the console, you can define index fields when creating the
 11432  	// mapping. If you are using the API, you must first create the field using
 11433  	// the UpdateIndex operation.
 11434  	FieldMappings []*DataSourceToIndexFieldMapping `min:"1" type:"list"`
 11435  
 11436  	// A list of regular expression patterns that apply to path on Google Drive.
 11437  	// Items that match the pattern are included in the index from both shared drives
 11438  	// and users' My Drives. Items that don't match the pattern are excluded from
 11439  	// the index. If an item matches both an inclusion pattern and an exclusion
 11440  	// pattern, it is excluded from the index.
 11441  	InclusionPatterns []*string `type:"list"`
 11442  
 11443  	// The Amazon Resource Name (ARN) of a Secrets Managersecret that contains the
 11444  	// credentials required to connect to Google Drive. For more information, see
 11445  	// Using a Google Workspace Drive data source (https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html).
 11446  	//
 11447  	// SecretArn is a required field
 11448  	SecretArn *string `min:"1" type:"string" required:"true"`
 11449  }
 11450  
 11451  // String returns the string representation.
 11452  //
 11453  // API parameter values that are decorated as "sensitive" in the API will not
 11454  // be included in the string output. The member name will be present, but the
 11455  // value will be replaced with "sensitive".
 11456  func (s GoogleDriveConfiguration) String() string {
 11457  	return awsutil.Prettify(s)
 11458  }
 11459  
 11460  // GoString returns the string representation.
 11461  //
 11462  // API parameter values that are decorated as "sensitive" in the API will not
 11463  // be included in the string output. The member name will be present, but the
 11464  // value will be replaced with "sensitive".
 11465  func (s GoogleDriveConfiguration) GoString() string {
 11466  	return s.String()
 11467  }
 11468  
 11469  // Validate inspects the fields of the type to determine if they are valid.
 11470  func (s *GoogleDriveConfiguration) Validate() error {
 11471  	invalidParams := request.ErrInvalidParams{Context: "GoogleDriveConfiguration"}
 11472  	if s.FieldMappings != nil && len(s.FieldMappings) < 1 {
 11473  		invalidParams.Add(request.NewErrParamMinLen("FieldMappings", 1))
 11474  	}
 11475  	if s.SecretArn == nil {
 11476  		invalidParams.Add(request.NewErrParamRequired("SecretArn"))
 11477  	}
 11478  	if s.SecretArn != nil && len(*s.SecretArn) < 1 {
 11479  		invalidParams.Add(request.NewErrParamMinLen("SecretArn", 1))
 11480  	}
 11481  	if s.FieldMappings != nil {
 11482  		for i, v := range s.FieldMappings {
 11483  			if v == nil {
 11484  				continue
 11485  			}
 11486  			if err := v.Validate(); err != nil {
 11487  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(request.ErrInvalidParams))
 11488  			}
 11489  		}
 11490  	}
 11491  
 11492  	if invalidParams.Len() > 0 {
 11493  		return invalidParams
 11494  	}
 11495  	return nil
 11496  }
 11497  
 11498  // SetExcludeMimeTypes sets the ExcludeMimeTypes field's value.
 11499  func (s *GoogleDriveConfiguration) SetExcludeMimeTypes(v []*string) *GoogleDriveConfiguration {
 11500  	s.ExcludeMimeTypes = v
 11501  	return s
 11502  }
 11503  
 11504  // SetExcludeSharedDrives sets the ExcludeSharedDrives field's value.
 11505  func (s *GoogleDriveConfiguration) SetExcludeSharedDrives(v []*string) *GoogleDriveConfiguration {
 11506  	s.ExcludeSharedDrives = v
 11507  	return s
 11508  }
 11509  
 11510  // SetExcludeUserAccounts sets the ExcludeUserAccounts field's value.
 11511  func (s *GoogleDriveConfiguration) SetExcludeUserAccounts(v []*string) *GoogleDriveConfiguration {
 11512  	s.ExcludeUserAccounts = v
 11513  	return s
 11514  }
 11515  
 11516  // SetExclusionPatterns sets the ExclusionPatterns field's value.
 11517  func (s *GoogleDriveConfiguration) SetExclusionPatterns(v []*string) *GoogleDriveConfiguration {
 11518  	s.ExclusionPatterns = v
 11519  	return s
 11520  }
 11521  
 11522  // SetFieldMappings sets the FieldMappings field's value.
 11523  func (s *GoogleDriveConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *GoogleDriveConfiguration {
 11524  	s.FieldMappings = v
 11525  	return s
 11526  }
 11527  
 11528  // SetInclusionPatterns sets the InclusionPatterns field's value.
 11529  func (s *GoogleDriveConfiguration) SetInclusionPatterns(v []*string) *GoogleDriveConfiguration {
 11530  	s.InclusionPatterns = v
 11531  	return s
 11532  }
 11533  
 11534  // SetSecretArn sets the SecretArn field's value.
 11535  func (s *GoogleDriveConfiguration) SetSecretArn(v string) *GoogleDriveConfiguration {
 11536  	s.SecretArn = &v
 11537  	return s
 11538  }
 11539  
 11540  // A list of users or sub groups that belong to a group. Users and groups are
 11541  // useful for filtering search results to different users based on their group's
 11542  // access to documents.
 11543  type GroupMembers struct {
 11544  	_ struct{} `type:"structure"`
 11545  
 11546  	// A list of sub groups that belong to a group. For example, the sub groups
 11547  	// "Research", "Engineering", and "Sales and Marketing" all belong to the group
 11548  	// "Company".
 11549  	MemberGroups []*MemberGroup `min:"1" type:"list"`
 11550  
 11551  	// A list of users that belong to a group. For example, a list of interns all
 11552  	// belong to the "Interns" group.
 11553  	MemberUsers []*MemberUser `min:"1" type:"list"`
 11554  
 11555  	// If you have more than 1000 users and/or sub groups for a single group, you
 11556  	// need to provide the path to the S3 file that lists your users and sub groups
 11557  	// for a group. Your sub groups can contain more than 1000 users, but the list
 11558  	// of sub groups that belong to a group (and/or users) must be no more than
 11559  	// 1000.
 11560  	//
 11561  	// You can download this example S3 file (https://docs.aws.amazon.com/kendra/latest/dg/samples/group_members.zip)
 11562  	// that uses the correct format for listing group members. Note, dataSourceId
 11563  	// is optional. The value of type for a group is always GROUP and for a user
 11564  	// it is always USER.
 11565  	S3PathforGroupMembers *S3Path `type:"structure"`
 11566  }
 11567  
 11568  // String returns the string representation.
 11569  //
 11570  // API parameter values that are decorated as "sensitive" in the API will not
 11571  // be included in the string output. The member name will be present, but the
 11572  // value will be replaced with "sensitive".
 11573  func (s GroupMembers) String() string {
 11574  	return awsutil.Prettify(s)
 11575  }
 11576  
 11577  // GoString returns the string representation.
 11578  //
 11579  // API parameter values that are decorated as "sensitive" in the API will not
 11580  // be included in the string output. The member name will be present, but the
 11581  // value will be replaced with "sensitive".
 11582  func (s GroupMembers) GoString() string {
 11583  	return s.String()
 11584  }
 11585  
 11586  // Validate inspects the fields of the type to determine if they are valid.
 11587  func (s *GroupMembers) Validate() error {
 11588  	invalidParams := request.ErrInvalidParams{Context: "GroupMembers"}
 11589  	if s.MemberGroups != nil && len(s.MemberGroups) < 1 {
 11590  		invalidParams.Add(request.NewErrParamMinLen("MemberGroups", 1))
 11591  	}
 11592  	if s.MemberUsers != nil && len(s.MemberUsers) < 1 {
 11593  		invalidParams.Add(request.NewErrParamMinLen("MemberUsers", 1))
 11594  	}
 11595  	if s.MemberGroups != nil {
 11596  		for i, v := range s.MemberGroups {
 11597  			if v == nil {
 11598  				continue
 11599  			}
 11600  			if err := v.Validate(); err != nil {
 11601  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MemberGroups", i), err.(request.ErrInvalidParams))
 11602  			}
 11603  		}
 11604  	}
 11605  	if s.MemberUsers != nil {
 11606  		for i, v := range s.MemberUsers {
 11607  			if v == nil {
 11608  				continue
 11609  			}
 11610  			if err := v.Validate(); err != nil {
 11611  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MemberUsers", i), err.(request.ErrInvalidParams))
 11612  			}
 11613  		}
 11614  	}
 11615  	if s.S3PathforGroupMembers != nil {
 11616  		if err := s.S3PathforGroupMembers.Validate(); err != nil {
 11617  			invalidParams.AddNested("S3PathforGroupMembers", err.(request.ErrInvalidParams))
 11618  		}
 11619  	}
 11620  
 11621  	if invalidParams.Len() > 0 {
 11622  		return invalidParams
 11623  	}
 11624  	return nil
 11625  }
 11626  
 11627  // SetMemberGroups sets the MemberGroups field's value.
 11628  func (s *GroupMembers) SetMemberGroups(v []*MemberGroup) *GroupMembers {
 11629  	s.MemberGroups = v
 11630  	return s
 11631  }
 11632  
 11633  // SetMemberUsers sets the MemberUsers field's value.
 11634  func (s *GroupMembers) SetMemberUsers(v []*MemberUser) *GroupMembers {
 11635  	s.MemberUsers = v
 11636  	return s
 11637  }
 11638  
 11639  // SetS3PathforGroupMembers sets the S3PathforGroupMembers field's value.
 11640  func (s *GroupMembers) SetS3PathforGroupMembers(v *S3Path) *GroupMembers {
 11641  	s.S3PathforGroupMembers = v
 11642  	return s
 11643  }
 11644  
 11645  // Information on the processing of PUT and DELETE actions for mapping users
 11646  // to their groups.
 11647  type GroupOrderingIdSummary struct {
 11648  	_ struct{} `type:"structure"`
 11649  
 11650  	// The reason an action could not be processed. An action can be a PUT or DELETE
 11651  	// action for mapping users to their groups.
 11652  	FailureReason *string `min:"1" type:"string"`
 11653  
 11654  	// The last date-time an action was updated. An action can be a PUT or DELETE
 11655  	// action for mapping users to their groups.
 11656  	LastUpdatedAt *time.Time `type:"timestamp"`
 11657  
 11658  	// The order in which actions should complete processing. An action can be a
 11659  	// PUT or DELETE action for mapping users to their groups.
 11660  	OrderingId *int64 `type:"long"`
 11661  
 11662  	// The date-time an action was received by Amazon Kendra. An action can be a
 11663  	// PUT or DELETE action for mapping users to their groups.
 11664  	ReceivedAt *time.Time `type:"timestamp"`
 11665  
 11666  	// The current processing status of actions for mapping users to their groups.
 11667  	// The status can be either PROCESSING, SUCCEEDED, DELETING, DELETED, or FAILED.
 11668  	Status *string `type:"string" enum:"PrincipalMappingStatus"`
 11669  }
 11670  
 11671  // String returns the string representation.
 11672  //
 11673  // API parameter values that are decorated as "sensitive" in the API will not
 11674  // be included in the string output. The member name will be present, but the
 11675  // value will be replaced with "sensitive".
 11676  func (s GroupOrderingIdSummary) String() string {
 11677  	return awsutil.Prettify(s)
 11678  }
 11679  
 11680  // GoString returns the string representation.
 11681  //
 11682  // API parameter values that are decorated as "sensitive" in the API will not
 11683  // be included in the string output. The member name will be present, but the
 11684  // value will be replaced with "sensitive".
 11685  func (s GroupOrderingIdSummary) GoString() string {
 11686  	return s.String()
 11687  }
 11688  
 11689  // SetFailureReason sets the FailureReason field's value.
 11690  func (s *GroupOrderingIdSummary) SetFailureReason(v string) *GroupOrderingIdSummary {
 11691  	s.FailureReason = &v
 11692  	return s
 11693  }
 11694  
 11695  // SetLastUpdatedAt sets the LastUpdatedAt field's value.
 11696  func (s *GroupOrderingIdSummary) SetLastUpdatedAt(v time.Time) *GroupOrderingIdSummary {
 11697  	s.LastUpdatedAt = &v
 11698  	return s
 11699  }
 11700  
 11701  // SetOrderingId sets the OrderingId field's value.
 11702  func (s *GroupOrderingIdSummary) SetOrderingId(v int64) *GroupOrderingIdSummary {
 11703  	s.OrderingId = &v
 11704  	return s
 11705  }
 11706  
 11707  // SetReceivedAt sets the ReceivedAt field's value.
 11708  func (s *GroupOrderingIdSummary) SetReceivedAt(v time.Time) *GroupOrderingIdSummary {
 11709  	s.ReceivedAt = &v
 11710  	return s
 11711  }
 11712  
 11713  // SetStatus sets the Status field's value.
 11714  func (s *GroupOrderingIdSummary) SetStatus(v string) *GroupOrderingIdSummary {
 11715  	s.Status = &v
 11716  	return s
 11717  }
 11718  
 11719  // Group summary information.
 11720  type GroupSummary struct {
 11721  	_ struct{} `type:"structure"`
 11722  
 11723  	// The identifier of the group you want group summary information on.
 11724  	GroupId *string `min:"1" type:"string"`
 11725  
 11726  	// The timestamp identifier used for the latest PUT or DELETE action.
 11727  	OrderingId *int64 `type:"long"`
 11728  }
 11729  
 11730  // String returns the string representation.
 11731  //
 11732  // API parameter values that are decorated as "sensitive" in the API will not
 11733  // be included in the string output. The member name will be present, but the
 11734  // value will be replaced with "sensitive".
 11735  func (s GroupSummary) String() string {
 11736  	return awsutil.Prettify(s)
 11737  }
 11738  
 11739  // GoString returns the string representation.
 11740  //
 11741  // API parameter values that are decorated as "sensitive" in the API will not
 11742  // be included in the string output. The member name will be present, but the
 11743  // value will be replaced with "sensitive".
 11744  func (s GroupSummary) GoString() string {
 11745  	return s.String()
 11746  }
 11747  
 11748  // SetGroupId sets the GroupId field's value.
 11749  func (s *GroupSummary) SetGroupId(v string) *GroupSummary {
 11750  	s.GroupId = &v
 11751  	return s
 11752  }
 11753  
 11754  // SetOrderingId sets the OrderingId field's value.
 11755  func (s *GroupSummary) SetOrderingId(v int64) *GroupSummary {
 11756  	s.OrderingId = &v
 11757  	return s
 11758  }
 11759  
 11760  // Information to define the hierarchy for which documents users should have
 11761  // access to.
 11762  type HierarchicalPrincipal struct {
 11763  	_ struct{} `type:"structure"`
 11764  
 11765  	// A list of principal (https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html)
 11766  	// lists that define the hierarchy for which documents users should have access
 11767  	// to. Each hierarchical list specifies which user or group has allow or deny
 11768  	// access for each document.
 11769  	//
 11770  	// PrincipalList is a required field
 11771  	PrincipalList []*Principal `type:"list" required:"true"`
 11772  }
 11773  
 11774  // String returns the string representation.
 11775  //
 11776  // API parameter values that are decorated as "sensitive" in the API will not
 11777  // be included in the string output. The member name will be present, but the
 11778  // value will be replaced with "sensitive".
 11779  func (s HierarchicalPrincipal) String() string {
 11780  	return awsutil.Prettify(s)
 11781  }
 11782  
 11783  // GoString returns the string representation.
 11784  //
 11785  // API parameter values that are decorated as "sensitive" in the API will not
 11786  // be included in the string output. The member name will be present, but the
 11787  // value will be replaced with "sensitive".
 11788  func (s HierarchicalPrincipal) GoString() string {
 11789  	return s.String()
 11790  }
 11791  
 11792  // Validate inspects the fields of the type to determine if they are valid.
 11793  func (s *HierarchicalPrincipal) Validate() error {
 11794  	invalidParams := request.ErrInvalidParams{Context: "HierarchicalPrincipal"}
 11795  	if s.PrincipalList == nil {
 11796  		invalidParams.Add(request.NewErrParamRequired("PrincipalList"))
 11797  	}
 11798  	if s.PrincipalList != nil {
 11799  		for i, v := range s.PrincipalList {
 11800  			if v == nil {
 11801  				continue
 11802  			}
 11803  			if err := v.Validate(); err != nil {
 11804  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PrincipalList", i), err.(request.ErrInvalidParams))
 11805  			}
 11806  		}
 11807  	}
 11808  
 11809  	if invalidParams.Len() > 0 {
 11810  		return invalidParams
 11811  	}
 11812  	return nil
 11813  }
 11814  
 11815  // SetPrincipalList sets the PrincipalList field's value.
 11816  func (s *HierarchicalPrincipal) SetPrincipalList(v []*Principal) *HierarchicalPrincipal {
 11817  	s.PrincipalList = v
 11818  	return s
 11819  }
 11820  
 11821  // Provides information that you can use to highlight a search result so that
 11822  // your users can quickly identify terms in the response.
 11823  type Highlight struct {
 11824  	_ struct{} `type:"structure"`
 11825  
 11826  	// The zero-based location in the response string where the highlight starts.
 11827  	//
 11828  	// BeginOffset is a required field
 11829  	BeginOffset *int64 `type:"integer" required:"true"`
 11830  
 11831  	// The zero-based location in the response string where the highlight ends.
 11832  	//
 11833  	// EndOffset is a required field
 11834  	EndOffset *int64 `type:"integer" required:"true"`
 11835  
 11836  	// Indicates whether the response is the best response. True if this is the
 11837  	// best response; otherwise, false.
 11838  	TopAnswer *bool `type:"boolean"`
 11839  
 11840  	// The highlight type.
 11841  	Type *string `type:"string" enum:"HighlightType"`
 11842  }
 11843  
 11844  // String returns the string representation.
 11845  //
 11846  // API parameter values that are decorated as "sensitive" in the API will not
 11847  // be included in the string output. The member name will be present, but the
 11848  // value will be replaced with "sensitive".
 11849  func (s Highlight) String() string {
 11850  	return awsutil.Prettify(s)
 11851  }
 11852  
 11853  // GoString returns the string representation.
 11854  //
 11855  // API parameter values that are decorated as "sensitive" in the API will not
 11856  // be included in the string output. The member name will be present, but the
 11857  // value will be replaced with "sensitive".
 11858  func (s Highlight) GoString() string {
 11859  	return s.String()
 11860  }
 11861  
 11862  // SetBeginOffset sets the BeginOffset field's value.
 11863  func (s *Highlight) SetBeginOffset(v int64) *Highlight {
 11864  	s.BeginOffset = &v
 11865  	return s
 11866  }
 11867  
 11868  // SetEndOffset sets the EndOffset field's value.
 11869  func (s *Highlight) SetEndOffset(v int64) *Highlight {
 11870  	s.EndOffset = &v
 11871  	return s
 11872  }
 11873  
 11874  // SetTopAnswer sets the TopAnswer field's value.
 11875  func (s *Highlight) SetTopAnswer(v bool) *Highlight {
 11876  	s.TopAnswer = &v
 11877  	return s
 11878  }
 11879  
 11880  // SetType sets the Type field's value.
 11881  func (s *Highlight) SetType(v string) *Highlight {
 11882  	s.Type = &v
 11883  	return s
 11884  }
 11885  
 11886  // A summary of information about an index.
 11887  type IndexConfigurationSummary struct {
 11888  	_ struct{} `type:"structure"`
 11889  
 11890  	// The Unix timestamp when the index was created.
 11891  	//
 11892  	// CreatedAt is a required field
 11893  	CreatedAt *time.Time `type:"timestamp" required:"true"`
 11894  
 11895  	// Indicates whether the index is a enterprise edition index or a developer
 11896  	// edition index.
 11897  	Edition *string `type:"string" enum:"IndexEdition"`
 11898  
 11899  	// A unique identifier for the index. Use this to identify the index when you
 11900  	// are using operations such as Query, DescribeIndex, UpdateIndex, and DeleteIndex.
 11901  	Id *string `min:"36" type:"string"`
 11902  
 11903  	// The name of the index.
 11904  	Name *string `min:"1" type:"string"`
 11905  
 11906  	// The current status of the index. When the status is ACTIVE, the index is
 11907  	// ready to search.
 11908  	//
 11909  	// Status is a required field
 11910  	Status *string `type:"string" required:"true" enum:"IndexStatus"`
 11911  
 11912  	// The Unix timestamp when the index was last updated by the UpdateIndex operation.
 11913  	//
 11914  	// UpdatedAt is a required field
 11915  	UpdatedAt *time.Time `type:"timestamp" required:"true"`
 11916  }
 11917  
 11918  // String returns the string representation.
 11919  //
 11920  // API parameter values that are decorated as "sensitive" in the API will not
 11921  // be included in the string output. The member name will be present, but the
 11922  // value will be replaced with "sensitive".
 11923  func (s IndexConfigurationSummary) String() string {
 11924  	return awsutil.Prettify(s)
 11925  }
 11926  
 11927  // GoString returns the string representation.
 11928  //
 11929  // API parameter values that are decorated as "sensitive" in the API will not
 11930  // be included in the string output. The member name will be present, but the
 11931  // value will be replaced with "sensitive".
 11932  func (s IndexConfigurationSummary) GoString() string {
 11933  	return s.String()
 11934  }
 11935  
 11936  // SetCreatedAt sets the CreatedAt field's value.
 11937  func (s *IndexConfigurationSummary) SetCreatedAt(v time.Time) *IndexConfigurationSummary {
 11938  	s.CreatedAt = &v
 11939  	return s
 11940  }
 11941  
 11942  // SetEdition sets the Edition field's value.
 11943  func (s *IndexConfigurationSummary) SetEdition(v string) *IndexConfigurationSummary {
 11944  	s.Edition = &v
 11945  	return s
 11946  }
 11947  
 11948  // SetId sets the Id field's value.
 11949  func (s *IndexConfigurationSummary) SetId(v string) *IndexConfigurationSummary {
 11950  	s.Id = &v
 11951  	return s
 11952  }
 11953  
 11954  // SetName sets the Name field's value.
 11955  func (s *IndexConfigurationSummary) SetName(v string) *IndexConfigurationSummary {
 11956  	s.Name = &v
 11957  	return s
 11958  }
 11959  
 11960  // SetStatus sets the Status field's value.
 11961  func (s *IndexConfigurationSummary) SetStatus(v string) *IndexConfigurationSummary {
 11962  	s.Status = &v
 11963  	return s
 11964  }
 11965  
 11966  // SetUpdatedAt sets the UpdatedAt field's value.
 11967  func (s *IndexConfigurationSummary) SetUpdatedAt(v time.Time) *IndexConfigurationSummary {
 11968  	s.UpdatedAt = &v
 11969  	return s
 11970  }
 11971  
 11972  // Provides information about the number of documents and the number of questions
 11973  // and answers in an index.
 11974  type IndexStatistics struct {
 11975  	_ struct{} `type:"structure"`
 11976  
 11977  	// The number of question and answer topics in the index.
 11978  	//
 11979  	// FaqStatistics is a required field
 11980  	FaqStatistics *FaqStatistics `type:"structure" required:"true"`
 11981  
 11982  	// The number of text documents indexed.
 11983  	//
 11984  	// TextDocumentStatistics is a required field
 11985  	TextDocumentStatistics *TextDocumentStatistics `type:"structure" required:"true"`
 11986  }
 11987  
 11988  // String returns the string representation.
 11989  //
 11990  // API parameter values that are decorated as "sensitive" in the API will not
 11991  // be included in the string output. The member name will be present, but the
 11992  // value will be replaced with "sensitive".
 11993  func (s IndexStatistics) String() string {
 11994  	return awsutil.Prettify(s)
 11995  }
 11996  
 11997  // GoString returns the string representation.
 11998  //
 11999  // API parameter values that are decorated as "sensitive" in the API will not
 12000  // be included in the string output. The member name will be present, but the
 12001  // value will be replaced with "sensitive".
 12002  func (s IndexStatistics) GoString() string {
 12003  	return s.String()
 12004  }
 12005  
 12006  // SetFaqStatistics sets the FaqStatistics field's value.
 12007  func (s *IndexStatistics) SetFaqStatistics(v *FaqStatistics) *IndexStatistics {
 12008  	s.FaqStatistics = v
 12009  	return s
 12010  }
 12011  
 12012  // SetTextDocumentStatistics sets the TextDocumentStatistics field's value.
 12013  func (s *IndexStatistics) SetTextDocumentStatistics(v *TextDocumentStatistics) *IndexStatistics {
 12014  	s.TextDocumentStatistics = v
 12015  	return s
 12016  }
 12017  
 12018  type InternalServerException struct {
 12019  	_            struct{}                  `type:"structure"`
 12020  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 12021  
 12022  	Message_ *string `locationName:"Message" min:"1" type:"string"`
 12023  }
 12024  
 12025  // String returns the string representation.
 12026  //
 12027  // API parameter values that are decorated as "sensitive" in the API will not
 12028  // be included in the string output. The member name will be present, but the
 12029  // value will be replaced with "sensitive".
 12030  func (s InternalServerException) String() string {
 12031  	return awsutil.Prettify(s)
 12032  }
 12033  
 12034  // GoString returns the string representation.
 12035  //
 12036  // API parameter values that are decorated as "sensitive" in the API will not
 12037  // be included in the string output. The member name will be present, but the
 12038  // value will be replaced with "sensitive".
 12039  func (s InternalServerException) GoString() string {
 12040  	return s.String()
 12041  }
 12042  
 12043  func newErrorInternalServerException(v protocol.ResponseMetadata) error {
 12044  	return &InternalServerException{
 12045  		RespMetadata: v,
 12046  	}
 12047  }
 12048  
 12049  // Code returns the exception type name.
 12050  func (s *InternalServerException) Code() string {
 12051  	return "InternalServerException"
 12052  }
 12053  
 12054  // Message returns the exception's message.
 12055  func (s *InternalServerException) Message() string {
 12056  	if s.Message_ != nil {
 12057  		return *s.Message_
 12058  	}
 12059  	return ""
 12060  }
 12061  
 12062  // OrigErr always returns nil, satisfies awserr.Error interface.
 12063  func (s *InternalServerException) OrigErr() error {
 12064  	return nil
 12065  }
 12066  
 12067  func (s *InternalServerException) Error() string {
 12068  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 12069  }
 12070  
 12071  // Status code returns the HTTP status code for the request's response error.
 12072  func (s *InternalServerException) StatusCode() int {
 12073  	return s.RespMetadata.StatusCode
 12074  }
 12075  
 12076  // RequestID returns the service's response RequestID for request.
 12077  func (s *InternalServerException) RequestID() string {
 12078  	return s.RespMetadata.RequestID
 12079  }
 12080  
 12081  // Configuration information for the JSON token type.
 12082  type JsonTokenTypeConfiguration struct {
 12083  	_ struct{} `type:"structure"`
 12084  
 12085  	// The group attribute field.
 12086  	//
 12087  	// GroupAttributeField is a required field
 12088  	GroupAttributeField *string `min:"1" type:"string" required:"true"`
 12089  
 12090  	// The user name attribute field.
 12091  	//
 12092  	// UserNameAttributeField is a required field
 12093  	UserNameAttributeField *string `min:"1" type:"string" required:"true"`
 12094  }
 12095  
 12096  // String returns the string representation.
 12097  //
 12098  // API parameter values that are decorated as "sensitive" in the API will not
 12099  // be included in the string output. The member name will be present, but the
 12100  // value will be replaced with "sensitive".
 12101  func (s JsonTokenTypeConfiguration) String() string {
 12102  	return awsutil.Prettify(s)
 12103  }
 12104  
 12105  // GoString returns the string representation.
 12106  //
 12107  // API parameter values that are decorated as "sensitive" in the API will not
 12108  // be included in the string output. The member name will be present, but the
 12109  // value will be replaced with "sensitive".
 12110  func (s JsonTokenTypeConfiguration) GoString() string {
 12111  	return s.String()
 12112  }
 12113  
 12114  // Validate inspects the fields of the type to determine if they are valid.
 12115  func (s *JsonTokenTypeConfiguration) Validate() error {
 12116  	invalidParams := request.ErrInvalidParams{Context: "JsonTokenTypeConfiguration"}
 12117  	if s.GroupAttributeField == nil {
 12118  		invalidParams.Add(request.NewErrParamRequired("GroupAttributeField"))
 12119  	}
 12120  	if s.GroupAttributeField != nil && len(*s.GroupAttributeField) < 1 {
 12121  		invalidParams.Add(request.NewErrParamMinLen("GroupAttributeField", 1))
 12122  	}
 12123  	if s.UserNameAttributeField == nil {
 12124  		invalidParams.Add(request.NewErrParamRequired("UserNameAttributeField"))
 12125  	}
 12126  	if s.UserNameAttributeField != nil && len(*s.UserNameAttributeField) < 1 {
 12127  		invalidParams.Add(request.NewErrParamMinLen("UserNameAttributeField", 1))
 12128  	}
 12129  
 12130  	if invalidParams.Len() > 0 {
 12131  		return invalidParams
 12132  	}
 12133  	return nil
 12134  }
 12135  
 12136  // SetGroupAttributeField sets the GroupAttributeField field's value.
 12137  func (s *JsonTokenTypeConfiguration) SetGroupAttributeField(v string) *JsonTokenTypeConfiguration {
 12138  	s.GroupAttributeField = &v
 12139  	return s
 12140  }
 12141  
 12142  // SetUserNameAttributeField sets the UserNameAttributeField field's value.
 12143  func (s *JsonTokenTypeConfiguration) SetUserNameAttributeField(v string) *JsonTokenTypeConfiguration {
 12144  	s.UserNameAttributeField = &v
 12145  	return s
 12146  }
 12147  
 12148  // Configuration information for the JWT token type.
 12149  type JwtTokenTypeConfiguration struct {
 12150  	_ struct{} `type:"structure"`
 12151  
 12152  	// The regular expression that identifies the claim.
 12153  	ClaimRegex *string `min:"1" type:"string"`
 12154  
 12155  	// The group attribute field.
 12156  	GroupAttributeField *string `min:"1" type:"string"`
 12157  
 12158  	// The issuer of the token.
 12159  	Issuer *string `min:"1" type:"string"`
 12160  
 12161  	// The location of the key.
 12162  	//
 12163  	// KeyLocation is a required field
 12164  	KeyLocation *string `type:"string" required:"true" enum:"KeyLocation"`
 12165  
 12166  	// The Amazon Resource Name (arn) of the secret.
 12167  	SecretManagerArn *string `min:"1" type:"string"`
 12168  
 12169  	// The signing key URL.
 12170  	URL *string `min:"1" type:"string"`
 12171  
 12172  	// The user name attribute field.
 12173  	UserNameAttributeField *string `min:"1" type:"string"`
 12174  }
 12175  
 12176  // String returns the string representation.
 12177  //
 12178  // API parameter values that are decorated as "sensitive" in the API will not
 12179  // be included in the string output. The member name will be present, but the
 12180  // value will be replaced with "sensitive".
 12181  func (s JwtTokenTypeConfiguration) String() string {
 12182  	return awsutil.Prettify(s)
 12183  }
 12184  
 12185  // GoString returns the string representation.
 12186  //
 12187  // API parameter values that are decorated as "sensitive" in the API will not
 12188  // be included in the string output. The member name will be present, but the
 12189  // value will be replaced with "sensitive".
 12190  func (s JwtTokenTypeConfiguration) GoString() string {
 12191  	return s.String()
 12192  }
 12193  
 12194  // Validate inspects the fields of the type to determine if they are valid.
 12195  func (s *JwtTokenTypeConfiguration) Validate() error {
 12196  	invalidParams := request.ErrInvalidParams{Context: "JwtTokenTypeConfiguration"}
 12197  	if s.ClaimRegex != nil && len(*s.ClaimRegex) < 1 {
 12198  		invalidParams.Add(request.NewErrParamMinLen("ClaimRegex", 1))
 12199  	}
 12200  	if s.GroupAttributeField != nil && len(*s.GroupAttributeField) < 1 {
 12201  		invalidParams.Add(request.NewErrParamMinLen("GroupAttributeField", 1))
 12202  	}
 12203  	if s.Issuer != nil && len(*s.Issuer) < 1 {
 12204  		invalidParams.Add(request.NewErrParamMinLen("Issuer", 1))
 12205  	}
 12206  	if s.KeyLocation == nil {
 12207  		invalidParams.Add(request.NewErrParamRequired("KeyLocation"))
 12208  	}
 12209  	if s.SecretManagerArn != nil && len(*s.SecretManagerArn) < 1 {
 12210  		invalidParams.Add(request.NewErrParamMinLen("SecretManagerArn", 1))
 12211  	}
 12212  	if s.URL != nil && len(*s.URL) < 1 {
 12213  		invalidParams.Add(request.NewErrParamMinLen("URL", 1))
 12214  	}
 12215  	if s.UserNameAttributeField != nil && len(*s.UserNameAttributeField) < 1 {
 12216  		invalidParams.Add(request.NewErrParamMinLen("UserNameAttributeField", 1))
 12217  	}
 12218  
 12219  	if invalidParams.Len() > 0 {
 12220  		return invalidParams
 12221  	}
 12222  	return nil
 12223  }
 12224  
 12225  // SetClaimRegex sets the ClaimRegex field's value.
 12226  func (s *JwtTokenTypeConfiguration) SetClaimRegex(v string) *JwtTokenTypeConfiguration {
 12227  	s.ClaimRegex = &v
 12228  	return s
 12229  }
 12230  
 12231  // SetGroupAttributeField sets the GroupAttributeField field's value.
 12232  func (s *JwtTokenTypeConfiguration) SetGroupAttributeField(v string) *JwtTokenTypeConfiguration {
 12233  	s.GroupAttributeField = &v
 12234  	return s
 12235  }
 12236  
 12237  // SetIssuer sets the Issuer field's value.
 12238  func (s *JwtTokenTypeConfiguration) SetIssuer(v string) *JwtTokenTypeConfiguration {
 12239  	s.Issuer = &v
 12240  	return s
 12241  }
 12242  
 12243  // SetKeyLocation sets the KeyLocation field's value.
 12244  func (s *JwtTokenTypeConfiguration) SetKeyLocation(v string) *JwtTokenTypeConfiguration {
 12245  	s.KeyLocation = &v
 12246  	return s
 12247  }
 12248  
 12249  // SetSecretManagerArn sets the SecretManagerArn field's value.
 12250  func (s *JwtTokenTypeConfiguration) SetSecretManagerArn(v string) *JwtTokenTypeConfiguration {
 12251  	s.SecretManagerArn = &v
 12252  	return s
 12253  }
 12254  
 12255  // SetURL sets the URL field's value.
 12256  func (s *JwtTokenTypeConfiguration) SetURL(v string) *JwtTokenTypeConfiguration {
 12257  	s.URL = &v
 12258  	return s
 12259  }
 12260  
 12261  // SetUserNameAttributeField sets the UserNameAttributeField field's value.
 12262  func (s *JwtTokenTypeConfiguration) SetUserNameAttributeField(v string) *JwtTokenTypeConfiguration {
 12263  	s.UserNameAttributeField = &v
 12264  	return s
 12265  }
 12266  
 12267  type ListDataSourceSyncJobsInput struct {
 12268  	_ struct{} `type:"structure"`
 12269  
 12270  	// The identifier of the data source.
 12271  	//
 12272  	// Id is a required field
 12273  	Id *string `min:"1" type:"string" required:"true"`
 12274  
 12275  	// The identifier of the index that contains the data source.
 12276  	//
 12277  	// IndexId is a required field
 12278  	IndexId *string `min:"36" type:"string" required:"true"`
 12279  
 12280  	// The maximum number of synchronization jobs to return in the response. If
 12281  	// there are fewer results in the list, this response contains only the actual
 12282  	// results.
 12283  	MaxResults *int64 `min:"1" type:"integer"`
 12284  
 12285  	// If the previous response was incomplete (because there is more data to retrieve),
 12286  	// Amazon Kendra returns a pagination token in the response. You can use this
 12287  	// pagination token to retrieve the next set of jobs.
 12288  	NextToken *string `min:"1" type:"string"`
 12289  
 12290  	// When specified, the synchronization jobs returned in the list are limited
 12291  	// to jobs between the specified dates.
 12292  	StartTimeFilter *TimeRange `type:"structure"`
 12293  
 12294  	// When specified, only returns synchronization jobs with the Status field equal
 12295  	// to the specified status.
 12296  	StatusFilter *string `type:"string" enum:"DataSourceSyncJobStatus"`
 12297  }
 12298  
 12299  // String returns the string representation.
 12300  //
 12301  // API parameter values that are decorated as "sensitive" in the API will not
 12302  // be included in the string output. The member name will be present, but the
 12303  // value will be replaced with "sensitive".
 12304  func (s ListDataSourceSyncJobsInput) String() string {
 12305  	return awsutil.Prettify(s)
 12306  }
 12307  
 12308  // GoString returns the string representation.
 12309  //
 12310  // API parameter values that are decorated as "sensitive" in the API will not
 12311  // be included in the string output. The member name will be present, but the
 12312  // value will be replaced with "sensitive".
 12313  func (s ListDataSourceSyncJobsInput) GoString() string {
 12314  	return s.String()
 12315  }
 12316  
 12317  // Validate inspects the fields of the type to determine if they are valid.
 12318  func (s *ListDataSourceSyncJobsInput) Validate() error {
 12319  	invalidParams := request.ErrInvalidParams{Context: "ListDataSourceSyncJobsInput"}
 12320  	if s.Id == nil {
 12321  		invalidParams.Add(request.NewErrParamRequired("Id"))
 12322  	}
 12323  	if s.Id != nil && len(*s.Id) < 1 {
 12324  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
 12325  	}
 12326  	if s.IndexId == nil {
 12327  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 12328  	}
 12329  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 12330  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 12331  	}
 12332  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12333  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12334  	}
 12335  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 12336  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 12337  	}
 12338  
 12339  	if invalidParams.Len() > 0 {
 12340  		return invalidParams
 12341  	}
 12342  	return nil
 12343  }
 12344  
 12345  // SetId sets the Id field's value.
 12346  func (s *ListDataSourceSyncJobsInput) SetId(v string) *ListDataSourceSyncJobsInput {
 12347  	s.Id = &v
 12348  	return s
 12349  }
 12350  
 12351  // SetIndexId sets the IndexId field's value.
 12352  func (s *ListDataSourceSyncJobsInput) SetIndexId(v string) *ListDataSourceSyncJobsInput {
 12353  	s.IndexId = &v
 12354  	return s
 12355  }
 12356  
 12357  // SetMaxResults sets the MaxResults field's value.
 12358  func (s *ListDataSourceSyncJobsInput) SetMaxResults(v int64) *ListDataSourceSyncJobsInput {
 12359  	s.MaxResults = &v
 12360  	return s
 12361  }
 12362  
 12363  // SetNextToken sets the NextToken field's value.
 12364  func (s *ListDataSourceSyncJobsInput) SetNextToken(v string) *ListDataSourceSyncJobsInput {
 12365  	s.NextToken = &v
 12366  	return s
 12367  }
 12368  
 12369  // SetStartTimeFilter sets the StartTimeFilter field's value.
 12370  func (s *ListDataSourceSyncJobsInput) SetStartTimeFilter(v *TimeRange) *ListDataSourceSyncJobsInput {
 12371  	s.StartTimeFilter = v
 12372  	return s
 12373  }
 12374  
 12375  // SetStatusFilter sets the StatusFilter field's value.
 12376  func (s *ListDataSourceSyncJobsInput) SetStatusFilter(v string) *ListDataSourceSyncJobsInput {
 12377  	s.StatusFilter = &v
 12378  	return s
 12379  }
 12380  
 12381  type ListDataSourceSyncJobsOutput struct {
 12382  	_ struct{} `type:"structure"`
 12383  
 12384  	// A history of synchronization jobs for the data source.
 12385  	History []*DataSourceSyncJob `type:"list"`
 12386  
 12387  	// If the response is truncated, Amazon Kendra returns this token that you can
 12388  	// use in the subsequent request to retrieve the next set of jobs.
 12389  	NextToken *string `min:"1" type:"string"`
 12390  }
 12391  
 12392  // String returns the string representation.
 12393  //
 12394  // API parameter values that are decorated as "sensitive" in the API will not
 12395  // be included in the string output. The member name will be present, but the
 12396  // value will be replaced with "sensitive".
 12397  func (s ListDataSourceSyncJobsOutput) String() string {
 12398  	return awsutil.Prettify(s)
 12399  }
 12400  
 12401  // GoString returns the string representation.
 12402  //
 12403  // API parameter values that are decorated as "sensitive" in the API will not
 12404  // be included in the string output. The member name will be present, but the
 12405  // value will be replaced with "sensitive".
 12406  func (s ListDataSourceSyncJobsOutput) GoString() string {
 12407  	return s.String()
 12408  }
 12409  
 12410  // SetHistory sets the History field's value.
 12411  func (s *ListDataSourceSyncJobsOutput) SetHistory(v []*DataSourceSyncJob) *ListDataSourceSyncJobsOutput {
 12412  	s.History = v
 12413  	return s
 12414  }
 12415  
 12416  // SetNextToken sets the NextToken field's value.
 12417  func (s *ListDataSourceSyncJobsOutput) SetNextToken(v string) *ListDataSourceSyncJobsOutput {
 12418  	s.NextToken = &v
 12419  	return s
 12420  }
 12421  
 12422  type ListDataSourcesInput struct {
 12423  	_ struct{} `type:"structure"`
 12424  
 12425  	// The identifier of the index that contains the data source.
 12426  	//
 12427  	// IndexId is a required field
 12428  	IndexId *string `min:"36" type:"string" required:"true"`
 12429  
 12430  	// The maximum number of data sources to return.
 12431  	MaxResults *int64 `min:"1" type:"integer"`
 12432  
 12433  	// If the previous response was incomplete (because there is more data to retrieve),
 12434  	// Amazon Kendra returns a pagination token in the response. You can use this
 12435  	// pagination token to retrieve the next set of data sources (DataSourceSummaryItems).
 12436  	NextToken *string `min:"1" type:"string"`
 12437  }
 12438  
 12439  // String returns the string representation.
 12440  //
 12441  // API parameter values that are decorated as "sensitive" in the API will not
 12442  // be included in the string output. The member name will be present, but the
 12443  // value will be replaced with "sensitive".
 12444  func (s ListDataSourcesInput) String() string {
 12445  	return awsutil.Prettify(s)
 12446  }
 12447  
 12448  // GoString returns the string representation.
 12449  //
 12450  // API parameter values that are decorated as "sensitive" in the API will not
 12451  // be included in the string output. The member name will be present, but the
 12452  // value will be replaced with "sensitive".
 12453  func (s ListDataSourcesInput) GoString() string {
 12454  	return s.String()
 12455  }
 12456  
 12457  // Validate inspects the fields of the type to determine if they are valid.
 12458  func (s *ListDataSourcesInput) Validate() error {
 12459  	invalidParams := request.ErrInvalidParams{Context: "ListDataSourcesInput"}
 12460  	if s.IndexId == nil {
 12461  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 12462  	}
 12463  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 12464  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 12465  	}
 12466  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12467  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12468  	}
 12469  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 12470  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 12471  	}
 12472  
 12473  	if invalidParams.Len() > 0 {
 12474  		return invalidParams
 12475  	}
 12476  	return nil
 12477  }
 12478  
 12479  // SetIndexId sets the IndexId field's value.
 12480  func (s *ListDataSourcesInput) SetIndexId(v string) *ListDataSourcesInput {
 12481  	s.IndexId = &v
 12482  	return s
 12483  }
 12484  
 12485  // SetMaxResults sets the MaxResults field's value.
 12486  func (s *ListDataSourcesInput) SetMaxResults(v int64) *ListDataSourcesInput {
 12487  	s.MaxResults = &v
 12488  	return s
 12489  }
 12490  
 12491  // SetNextToken sets the NextToken field's value.
 12492  func (s *ListDataSourcesInput) SetNextToken(v string) *ListDataSourcesInput {
 12493  	s.NextToken = &v
 12494  	return s
 12495  }
 12496  
 12497  type ListDataSourcesOutput struct {
 12498  	_ struct{} `type:"structure"`
 12499  
 12500  	// If the response is truncated, Amazon Kendra returns this token that you can
 12501  	// use in the subsequent request to retrieve the next set of data sources.
 12502  	NextToken *string `min:"1" type:"string"`
 12503  
 12504  	// An array of summary information for one or more data sources.
 12505  	SummaryItems []*DataSourceSummary `type:"list"`
 12506  }
 12507  
 12508  // String returns the string representation.
 12509  //
 12510  // API parameter values that are decorated as "sensitive" in the API will not
 12511  // be included in the string output. The member name will be present, but the
 12512  // value will be replaced with "sensitive".
 12513  func (s ListDataSourcesOutput) String() string {
 12514  	return awsutil.Prettify(s)
 12515  }
 12516  
 12517  // GoString returns the string representation.
 12518  //
 12519  // API parameter values that are decorated as "sensitive" in the API will not
 12520  // be included in the string output. The member name will be present, but the
 12521  // value will be replaced with "sensitive".
 12522  func (s ListDataSourcesOutput) GoString() string {
 12523  	return s.String()
 12524  }
 12525  
 12526  // SetNextToken sets the NextToken field's value.
 12527  func (s *ListDataSourcesOutput) SetNextToken(v string) *ListDataSourcesOutput {
 12528  	s.NextToken = &v
 12529  	return s
 12530  }
 12531  
 12532  // SetSummaryItems sets the SummaryItems field's value.
 12533  func (s *ListDataSourcesOutput) SetSummaryItems(v []*DataSourceSummary) *ListDataSourcesOutput {
 12534  	s.SummaryItems = v
 12535  	return s
 12536  }
 12537  
 12538  type ListFaqsInput struct {
 12539  	_ struct{} `type:"structure"`
 12540  
 12541  	// The index that contains the FAQ lists.
 12542  	//
 12543  	// IndexId is a required field
 12544  	IndexId *string `min:"36" type:"string" required:"true"`
 12545  
 12546  	// The maximum number of FAQs to return in the response. If there are fewer
 12547  	// results in the list, this response contains only the actual results.
 12548  	MaxResults *int64 `min:"1" type:"integer"`
 12549  
 12550  	// If the previous response was incomplete (because there is more data to retrieve),
 12551  	// Amazon Kendra returns a pagination token in the response. You can use this
 12552  	// pagination token to retrieve the next set of FAQs.
 12553  	NextToken *string `min:"1" type:"string"`
 12554  }
 12555  
 12556  // String returns the string representation.
 12557  //
 12558  // API parameter values that are decorated as "sensitive" in the API will not
 12559  // be included in the string output. The member name will be present, but the
 12560  // value will be replaced with "sensitive".
 12561  func (s ListFaqsInput) String() string {
 12562  	return awsutil.Prettify(s)
 12563  }
 12564  
 12565  // GoString returns the string representation.
 12566  //
 12567  // API parameter values that are decorated as "sensitive" in the API will not
 12568  // be included in the string output. The member name will be present, but the
 12569  // value will be replaced with "sensitive".
 12570  func (s ListFaqsInput) GoString() string {
 12571  	return s.String()
 12572  }
 12573  
 12574  // Validate inspects the fields of the type to determine if they are valid.
 12575  func (s *ListFaqsInput) Validate() error {
 12576  	invalidParams := request.ErrInvalidParams{Context: "ListFaqsInput"}
 12577  	if s.IndexId == nil {
 12578  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 12579  	}
 12580  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 12581  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 12582  	}
 12583  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12584  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12585  	}
 12586  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 12587  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 12588  	}
 12589  
 12590  	if invalidParams.Len() > 0 {
 12591  		return invalidParams
 12592  	}
 12593  	return nil
 12594  }
 12595  
 12596  // SetIndexId sets the IndexId field's value.
 12597  func (s *ListFaqsInput) SetIndexId(v string) *ListFaqsInput {
 12598  	s.IndexId = &v
 12599  	return s
 12600  }
 12601  
 12602  // SetMaxResults sets the MaxResults field's value.
 12603  func (s *ListFaqsInput) SetMaxResults(v int64) *ListFaqsInput {
 12604  	s.MaxResults = &v
 12605  	return s
 12606  }
 12607  
 12608  // SetNextToken sets the NextToken field's value.
 12609  func (s *ListFaqsInput) SetNextToken(v string) *ListFaqsInput {
 12610  	s.NextToken = &v
 12611  	return s
 12612  }
 12613  
 12614  type ListFaqsOutput struct {
 12615  	_ struct{} `type:"structure"`
 12616  
 12617  	// information about the FAQs associated with the specified index.
 12618  	FaqSummaryItems []*FaqSummary `type:"list"`
 12619  
 12620  	// If the response is truncated, Amazon Kendra returns this token that you can
 12621  	// use in the subsequent request to retrieve the next set of FAQs.
 12622  	NextToken *string `min:"1" type:"string"`
 12623  }
 12624  
 12625  // String returns the string representation.
 12626  //
 12627  // API parameter values that are decorated as "sensitive" in the API will not
 12628  // be included in the string output. The member name will be present, but the
 12629  // value will be replaced with "sensitive".
 12630  func (s ListFaqsOutput) String() string {
 12631  	return awsutil.Prettify(s)
 12632  }
 12633  
 12634  // GoString returns the string representation.
 12635  //
 12636  // API parameter values that are decorated as "sensitive" in the API will not
 12637  // be included in the string output. The member name will be present, but the
 12638  // value will be replaced with "sensitive".
 12639  func (s ListFaqsOutput) GoString() string {
 12640  	return s.String()
 12641  }
 12642  
 12643  // SetFaqSummaryItems sets the FaqSummaryItems field's value.
 12644  func (s *ListFaqsOutput) SetFaqSummaryItems(v []*FaqSummary) *ListFaqsOutput {
 12645  	s.FaqSummaryItems = v
 12646  	return s
 12647  }
 12648  
 12649  // SetNextToken sets the NextToken field's value.
 12650  func (s *ListFaqsOutput) SetNextToken(v string) *ListFaqsOutput {
 12651  	s.NextToken = &v
 12652  	return s
 12653  }
 12654  
 12655  type ListGroupsOlderThanOrderingIdInput struct {
 12656  	_ struct{} `type:"structure"`
 12657  
 12658  	// The identifier of the data source for getting a list of groups mapped to
 12659  	// users before a given ordering timestamp identifier.
 12660  	DataSourceId *string `min:"1" type:"string"`
 12661  
 12662  	// The identifier of the index for getting a list of groups mapped to users
 12663  	// before a given ordering or timestamp identifier.
 12664  	//
 12665  	// IndexId is a required field
 12666  	IndexId *string `min:"36" type:"string" required:"true"`
 12667  
 12668  	// The maximum number of returned groups that are mapped to users before a given
 12669  	// ordering or timestamp identifier.
 12670  	MaxResults *int64 `min:"1" type:"integer"`
 12671  
 12672  	// If the previous response was incomplete (because there is more data to retrieve),
 12673  	// Amazon Kendra returns a pagination token in the response. You can use this
 12674  	// pagination token to retrieve the next set of groups that are mapped to users
 12675  	// before a given ordering or timestamp identifier.
 12676  	NextToken *string `min:"1" type:"string"`
 12677  
 12678  	// The timestamp identifier used for the latest PUT or DELETE action for mapping
 12679  	// users to their groups.
 12680  	//
 12681  	// OrderingId is a required field
 12682  	OrderingId *int64 `type:"long" required:"true"`
 12683  }
 12684  
 12685  // String returns the string representation.
 12686  //
 12687  // API parameter values that are decorated as "sensitive" in the API will not
 12688  // be included in the string output. The member name will be present, but the
 12689  // value will be replaced with "sensitive".
 12690  func (s ListGroupsOlderThanOrderingIdInput) String() string {
 12691  	return awsutil.Prettify(s)
 12692  }
 12693  
 12694  // GoString returns the string representation.
 12695  //
 12696  // API parameter values that are decorated as "sensitive" in the API will not
 12697  // be included in the string output. The member name will be present, but the
 12698  // value will be replaced with "sensitive".
 12699  func (s ListGroupsOlderThanOrderingIdInput) GoString() string {
 12700  	return s.String()
 12701  }
 12702  
 12703  // Validate inspects the fields of the type to determine if they are valid.
 12704  func (s *ListGroupsOlderThanOrderingIdInput) Validate() error {
 12705  	invalidParams := request.ErrInvalidParams{Context: "ListGroupsOlderThanOrderingIdInput"}
 12706  	if s.DataSourceId != nil && len(*s.DataSourceId) < 1 {
 12707  		invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 1))
 12708  	}
 12709  	if s.IndexId == nil {
 12710  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 12711  	}
 12712  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 12713  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 12714  	}
 12715  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12716  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12717  	}
 12718  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 12719  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 12720  	}
 12721  	if s.OrderingId == nil {
 12722  		invalidParams.Add(request.NewErrParamRequired("OrderingId"))
 12723  	}
 12724  
 12725  	if invalidParams.Len() > 0 {
 12726  		return invalidParams
 12727  	}
 12728  	return nil
 12729  }
 12730  
 12731  // SetDataSourceId sets the DataSourceId field's value.
 12732  func (s *ListGroupsOlderThanOrderingIdInput) SetDataSourceId(v string) *ListGroupsOlderThanOrderingIdInput {
 12733  	s.DataSourceId = &v
 12734  	return s
 12735  }
 12736  
 12737  // SetIndexId sets the IndexId field's value.
 12738  func (s *ListGroupsOlderThanOrderingIdInput) SetIndexId(v string) *ListGroupsOlderThanOrderingIdInput {
 12739  	s.IndexId = &v
 12740  	return s
 12741  }
 12742  
 12743  // SetMaxResults sets the MaxResults field's value.
 12744  func (s *ListGroupsOlderThanOrderingIdInput) SetMaxResults(v int64) *ListGroupsOlderThanOrderingIdInput {
 12745  	s.MaxResults = &v
 12746  	return s
 12747  }
 12748  
 12749  // SetNextToken sets the NextToken field's value.
 12750  func (s *ListGroupsOlderThanOrderingIdInput) SetNextToken(v string) *ListGroupsOlderThanOrderingIdInput {
 12751  	s.NextToken = &v
 12752  	return s
 12753  }
 12754  
 12755  // SetOrderingId sets the OrderingId field's value.
 12756  func (s *ListGroupsOlderThanOrderingIdInput) SetOrderingId(v int64) *ListGroupsOlderThanOrderingIdInput {
 12757  	s.OrderingId = &v
 12758  	return s
 12759  }
 12760  
 12761  type ListGroupsOlderThanOrderingIdOutput struct {
 12762  	_ struct{} `type:"structure"`
 12763  
 12764  	// Summary information for list of groups that are mapped to users before a
 12765  	// given ordering or timestamp identifier.
 12766  	GroupsSummaries []*GroupSummary `type:"list"`
 12767  
 12768  	// If the response is truncated, Amazon Kendra returns this token that you can
 12769  	// use in the subsequent request to retrieve the next set of groups that are
 12770  	// mapped to users before a given ordering or timestamp identifier.
 12771  	NextToken *string `min:"1" type:"string"`
 12772  }
 12773  
 12774  // String returns the string representation.
 12775  //
 12776  // API parameter values that are decorated as "sensitive" in the API will not
 12777  // be included in the string output. The member name will be present, but the
 12778  // value will be replaced with "sensitive".
 12779  func (s ListGroupsOlderThanOrderingIdOutput) String() string {
 12780  	return awsutil.Prettify(s)
 12781  }
 12782  
 12783  // GoString returns the string representation.
 12784  //
 12785  // API parameter values that are decorated as "sensitive" in the API will not
 12786  // be included in the string output. The member name will be present, but the
 12787  // value will be replaced with "sensitive".
 12788  func (s ListGroupsOlderThanOrderingIdOutput) GoString() string {
 12789  	return s.String()
 12790  }
 12791  
 12792  // SetGroupsSummaries sets the GroupsSummaries field's value.
 12793  func (s *ListGroupsOlderThanOrderingIdOutput) SetGroupsSummaries(v []*GroupSummary) *ListGroupsOlderThanOrderingIdOutput {
 12794  	s.GroupsSummaries = v
 12795  	return s
 12796  }
 12797  
 12798  // SetNextToken sets the NextToken field's value.
 12799  func (s *ListGroupsOlderThanOrderingIdOutput) SetNextToken(v string) *ListGroupsOlderThanOrderingIdOutput {
 12800  	s.NextToken = &v
 12801  	return s
 12802  }
 12803  
 12804  type ListIndicesInput struct {
 12805  	_ struct{} `type:"structure"`
 12806  
 12807  	// The maximum number of data sources to return.
 12808  	MaxResults *int64 `min:"1" type:"integer"`
 12809  
 12810  	// If the previous response was incomplete (because there is more data to retrieve),
 12811  	// Amazon Kendra returns a pagination token in the response. You can use this
 12812  	// pagination token to retrieve the next set of indexes (DataSourceSummaryItems).
 12813  	NextToken *string `min:"1" type:"string"`
 12814  }
 12815  
 12816  // String returns the string representation.
 12817  //
 12818  // API parameter values that are decorated as "sensitive" in the API will not
 12819  // be included in the string output. The member name will be present, but the
 12820  // value will be replaced with "sensitive".
 12821  func (s ListIndicesInput) String() string {
 12822  	return awsutil.Prettify(s)
 12823  }
 12824  
 12825  // GoString returns the string representation.
 12826  //
 12827  // API parameter values that are decorated as "sensitive" in the API will not
 12828  // be included in the string output. The member name will be present, but the
 12829  // value will be replaced with "sensitive".
 12830  func (s ListIndicesInput) GoString() string {
 12831  	return s.String()
 12832  }
 12833  
 12834  // Validate inspects the fields of the type to determine if they are valid.
 12835  func (s *ListIndicesInput) Validate() error {
 12836  	invalidParams := request.ErrInvalidParams{Context: "ListIndicesInput"}
 12837  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12838  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12839  	}
 12840  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 12841  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 12842  	}
 12843  
 12844  	if invalidParams.Len() > 0 {
 12845  		return invalidParams
 12846  	}
 12847  	return nil
 12848  }
 12849  
 12850  // SetMaxResults sets the MaxResults field's value.
 12851  func (s *ListIndicesInput) SetMaxResults(v int64) *ListIndicesInput {
 12852  	s.MaxResults = &v
 12853  	return s
 12854  }
 12855  
 12856  // SetNextToken sets the NextToken field's value.
 12857  func (s *ListIndicesInput) SetNextToken(v string) *ListIndicesInput {
 12858  	s.NextToken = &v
 12859  	return s
 12860  }
 12861  
 12862  type ListIndicesOutput struct {
 12863  	_ struct{} `type:"structure"`
 12864  
 12865  	// An array of summary information for one or more indexes.
 12866  	IndexConfigurationSummaryItems []*IndexConfigurationSummary `type:"list"`
 12867  
 12868  	// If the response is truncated, Amazon Kendra returns this token that you can
 12869  	// use in the subsequent request to retrieve the next set of indexes.
 12870  	NextToken *string `min:"1" type:"string"`
 12871  }
 12872  
 12873  // String returns the string representation.
 12874  //
 12875  // API parameter values that are decorated as "sensitive" in the API will not
 12876  // be included in the string output. The member name will be present, but the
 12877  // value will be replaced with "sensitive".
 12878  func (s ListIndicesOutput) String() string {
 12879  	return awsutil.Prettify(s)
 12880  }
 12881  
 12882  // GoString returns the string representation.
 12883  //
 12884  // API parameter values that are decorated as "sensitive" in the API will not
 12885  // be included in the string output. The member name will be present, but the
 12886  // value will be replaced with "sensitive".
 12887  func (s ListIndicesOutput) GoString() string {
 12888  	return s.String()
 12889  }
 12890  
 12891  // SetIndexConfigurationSummaryItems sets the IndexConfigurationSummaryItems field's value.
 12892  func (s *ListIndicesOutput) SetIndexConfigurationSummaryItems(v []*IndexConfigurationSummary) *ListIndicesOutput {
 12893  	s.IndexConfigurationSummaryItems = v
 12894  	return s
 12895  }
 12896  
 12897  // SetNextToken sets the NextToken field's value.
 12898  func (s *ListIndicesOutput) SetNextToken(v string) *ListIndicesOutput {
 12899  	s.NextToken = &v
 12900  	return s
 12901  }
 12902  
 12903  type ListQuerySuggestionsBlockListsInput struct {
 12904  	_ struct{} `type:"structure"`
 12905  
 12906  	// The identifier of the index for a list of all block lists that exist for
 12907  	// that index.
 12908  	//
 12909  	// For information on the current quota limits for block lists, see Quotas for
 12910  	// Amazon Kendra (https://docs.aws.amazon.com/kendra/latest/dg/quotas.html).
 12911  	//
 12912  	// IndexId is a required field
 12913  	IndexId *string `min:"36" type:"string" required:"true"`
 12914  
 12915  	// The maximum number of block lists to return.
 12916  	MaxResults *int64 `min:"1" type:"integer"`
 12917  
 12918  	// If the previous response was incomplete (because there is more data to retrieve),
 12919  	// Amazon Kendra returns a pagination token in the response. You can use this
 12920  	// pagination token to retrieve the next set of block lists (BlockListSummaryItems).
 12921  	NextToken *string `min:"1" type:"string"`
 12922  }
 12923  
 12924  // String returns the string representation.
 12925  //
 12926  // API parameter values that are decorated as "sensitive" in the API will not
 12927  // be included in the string output. The member name will be present, but the
 12928  // value will be replaced with "sensitive".
 12929  func (s ListQuerySuggestionsBlockListsInput) String() string {
 12930  	return awsutil.Prettify(s)
 12931  }
 12932  
 12933  // GoString returns the string representation.
 12934  //
 12935  // API parameter values that are decorated as "sensitive" in the API will not
 12936  // be included in the string output. The member name will be present, but the
 12937  // value will be replaced with "sensitive".
 12938  func (s ListQuerySuggestionsBlockListsInput) GoString() string {
 12939  	return s.String()
 12940  }
 12941  
 12942  // Validate inspects the fields of the type to determine if they are valid.
 12943  func (s *ListQuerySuggestionsBlockListsInput) Validate() error {
 12944  	invalidParams := request.ErrInvalidParams{Context: "ListQuerySuggestionsBlockListsInput"}
 12945  	if s.IndexId == nil {
 12946  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 12947  	}
 12948  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 12949  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 12950  	}
 12951  	if s.MaxResults != nil && *s.MaxResults < 1 {
 12952  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 12953  	}
 12954  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 12955  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 12956  	}
 12957  
 12958  	if invalidParams.Len() > 0 {
 12959  		return invalidParams
 12960  	}
 12961  	return nil
 12962  }
 12963  
 12964  // SetIndexId sets the IndexId field's value.
 12965  func (s *ListQuerySuggestionsBlockListsInput) SetIndexId(v string) *ListQuerySuggestionsBlockListsInput {
 12966  	s.IndexId = &v
 12967  	return s
 12968  }
 12969  
 12970  // SetMaxResults sets the MaxResults field's value.
 12971  func (s *ListQuerySuggestionsBlockListsInput) SetMaxResults(v int64) *ListQuerySuggestionsBlockListsInput {
 12972  	s.MaxResults = &v
 12973  	return s
 12974  }
 12975  
 12976  // SetNextToken sets the NextToken field's value.
 12977  func (s *ListQuerySuggestionsBlockListsInput) SetNextToken(v string) *ListQuerySuggestionsBlockListsInput {
 12978  	s.NextToken = &v
 12979  	return s
 12980  }
 12981  
 12982  type ListQuerySuggestionsBlockListsOutput struct {
 12983  	_ struct{} `type:"structure"`
 12984  
 12985  	// Summary items for a block list.
 12986  	//
 12987  	// This includes summary items on the block list ID, block list name, when the
 12988  	// block list was created, when the block list was last updated, and the count
 12989  	// of block words/phrases in the block list.
 12990  	//
 12991  	// For information on the current quota limits for block lists, see Quotas for
 12992  	// Amazon Kendra (https://docs.aws.amazon.com/kendra/latest/dg/quotas.html).
 12993  	BlockListSummaryItems []*QuerySuggestionsBlockListSummary `type:"list"`
 12994  
 12995  	// If the response is truncated, Amazon Kendra returns this token that you can
 12996  	// use in the subsequent request to retrieve the next set of block lists.
 12997  	NextToken *string `min:"1" type:"string"`
 12998  }
 12999  
 13000  // String returns the string representation.
 13001  //
 13002  // API parameter values that are decorated as "sensitive" in the API will not
 13003  // be included in the string output. The member name will be present, but the
 13004  // value will be replaced with "sensitive".
 13005  func (s ListQuerySuggestionsBlockListsOutput) String() string {
 13006  	return awsutil.Prettify(s)
 13007  }
 13008  
 13009  // GoString returns the string representation.
 13010  //
 13011  // API parameter values that are decorated as "sensitive" in the API will not
 13012  // be included in the string output. The member name will be present, but the
 13013  // value will be replaced with "sensitive".
 13014  func (s ListQuerySuggestionsBlockListsOutput) GoString() string {
 13015  	return s.String()
 13016  }
 13017  
 13018  // SetBlockListSummaryItems sets the BlockListSummaryItems field's value.
 13019  func (s *ListQuerySuggestionsBlockListsOutput) SetBlockListSummaryItems(v []*QuerySuggestionsBlockListSummary) *ListQuerySuggestionsBlockListsOutput {
 13020  	s.BlockListSummaryItems = v
 13021  	return s
 13022  }
 13023  
 13024  // SetNextToken sets the NextToken field's value.
 13025  func (s *ListQuerySuggestionsBlockListsOutput) SetNextToken(v string) *ListQuerySuggestionsBlockListsOutput {
 13026  	s.NextToken = &v
 13027  	return s
 13028  }
 13029  
 13030  type ListTagsForResourceInput struct {
 13031  	_ struct{} `type:"structure"`
 13032  
 13033  	// The Amazon Resource Name (ARN) of the index, FAQ, or data source to get a
 13034  	// list of tags for.
 13035  	//
 13036  	// ResourceARN is a required field
 13037  	ResourceARN *string `min:"1" type:"string" required:"true"`
 13038  }
 13039  
 13040  // String returns the string representation.
 13041  //
 13042  // API parameter values that are decorated as "sensitive" in the API will not
 13043  // be included in the string output. The member name will be present, but the
 13044  // value will be replaced with "sensitive".
 13045  func (s ListTagsForResourceInput) String() string {
 13046  	return awsutil.Prettify(s)
 13047  }
 13048  
 13049  // GoString returns the string representation.
 13050  //
 13051  // API parameter values that are decorated as "sensitive" in the API will not
 13052  // be included in the string output. The member name will be present, but the
 13053  // value will be replaced with "sensitive".
 13054  func (s ListTagsForResourceInput) GoString() string {
 13055  	return s.String()
 13056  }
 13057  
 13058  // Validate inspects the fields of the type to determine if they are valid.
 13059  func (s *ListTagsForResourceInput) Validate() error {
 13060  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
 13061  	if s.ResourceARN == nil {
 13062  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
 13063  	}
 13064  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
 13065  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
 13066  	}
 13067  
 13068  	if invalidParams.Len() > 0 {
 13069  		return invalidParams
 13070  	}
 13071  	return nil
 13072  }
 13073  
 13074  // SetResourceARN sets the ResourceARN field's value.
 13075  func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
 13076  	s.ResourceARN = &v
 13077  	return s
 13078  }
 13079  
 13080  type ListTagsForResourceOutput struct {
 13081  	_ struct{} `type:"structure"`
 13082  
 13083  	// A list of tags associated with the index, FAQ, or data source.
 13084  	Tags []*Tag `type:"list"`
 13085  }
 13086  
 13087  // String returns the string representation.
 13088  //
 13089  // API parameter values that are decorated as "sensitive" in the API will not
 13090  // be included in the string output. The member name will be present, but the
 13091  // value will be replaced with "sensitive".
 13092  func (s ListTagsForResourceOutput) String() string {
 13093  	return awsutil.Prettify(s)
 13094  }
 13095  
 13096  // GoString returns the string representation.
 13097  //
 13098  // API parameter values that are decorated as "sensitive" in the API will not
 13099  // be included in the string output. The member name will be present, but the
 13100  // value will be replaced with "sensitive".
 13101  func (s ListTagsForResourceOutput) GoString() string {
 13102  	return s.String()
 13103  }
 13104  
 13105  // SetTags sets the Tags field's value.
 13106  func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
 13107  	s.Tags = v
 13108  	return s
 13109  }
 13110  
 13111  type ListThesauriInput struct {
 13112  	_ struct{} `type:"structure"`
 13113  
 13114  	// The identifier of the index associated with the thesaurus to list.
 13115  	//
 13116  	// IndexId is a required field
 13117  	IndexId *string `min:"36" type:"string" required:"true"`
 13118  
 13119  	// The maximum number of thesauri to return.
 13120  	MaxResults *int64 `min:"1" type:"integer"`
 13121  
 13122  	// If the previous response was incomplete (because there is more data to retrieve),
 13123  	// Amazon Kendra returns a pagination token in the response. You can use this
 13124  	// pagination token to retrieve the next set of thesauri (ThesaurusSummaryItems).
 13125  	NextToken *string `min:"1" type:"string"`
 13126  }
 13127  
 13128  // String returns the string representation.
 13129  //
 13130  // API parameter values that are decorated as "sensitive" in the API will not
 13131  // be included in the string output. The member name will be present, but the
 13132  // value will be replaced with "sensitive".
 13133  func (s ListThesauriInput) String() string {
 13134  	return awsutil.Prettify(s)
 13135  }
 13136  
 13137  // GoString returns the string representation.
 13138  //
 13139  // API parameter values that are decorated as "sensitive" in the API will not
 13140  // be included in the string output. The member name will be present, but the
 13141  // value will be replaced with "sensitive".
 13142  func (s ListThesauriInput) GoString() string {
 13143  	return s.String()
 13144  }
 13145  
 13146  // Validate inspects the fields of the type to determine if they are valid.
 13147  func (s *ListThesauriInput) Validate() error {
 13148  	invalidParams := request.ErrInvalidParams{Context: "ListThesauriInput"}
 13149  	if s.IndexId == nil {
 13150  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 13151  	}
 13152  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 13153  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 13154  	}
 13155  	if s.MaxResults != nil && *s.MaxResults < 1 {
 13156  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 13157  	}
 13158  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 13159  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 13160  	}
 13161  
 13162  	if invalidParams.Len() > 0 {
 13163  		return invalidParams
 13164  	}
 13165  	return nil
 13166  }
 13167  
 13168  // SetIndexId sets the IndexId field's value.
 13169  func (s *ListThesauriInput) SetIndexId(v string) *ListThesauriInput {
 13170  	s.IndexId = &v
 13171  	return s
 13172  }
 13173  
 13174  // SetMaxResults sets the MaxResults field's value.
 13175  func (s *ListThesauriInput) SetMaxResults(v int64) *ListThesauriInput {
 13176  	s.MaxResults = &v
 13177  	return s
 13178  }
 13179  
 13180  // SetNextToken sets the NextToken field's value.
 13181  func (s *ListThesauriInput) SetNextToken(v string) *ListThesauriInput {
 13182  	s.NextToken = &v
 13183  	return s
 13184  }
 13185  
 13186  type ListThesauriOutput struct {
 13187  	_ struct{} `type:"structure"`
 13188  
 13189  	// If the response is truncated, Amazon Kendra returns this token that you can
 13190  	// use in the subsequent request to retrieve the next set of thesauri.
 13191  	NextToken *string `min:"1" type:"string"`
 13192  
 13193  	// An array of summary information for a thesaurus or multiple thesauri.
 13194  	ThesaurusSummaryItems []*ThesaurusSummary `type:"list"`
 13195  }
 13196  
 13197  // String returns the string representation.
 13198  //
 13199  // API parameter values that are decorated as "sensitive" in the API will not
 13200  // be included in the string output. The member name will be present, but the
 13201  // value will be replaced with "sensitive".
 13202  func (s ListThesauriOutput) String() string {
 13203  	return awsutil.Prettify(s)
 13204  }
 13205  
 13206  // GoString returns the string representation.
 13207  //
 13208  // API parameter values that are decorated as "sensitive" in the API will not
 13209  // be included in the string output. The member name will be present, but the
 13210  // value will be replaced with "sensitive".
 13211  func (s ListThesauriOutput) GoString() string {
 13212  	return s.String()
 13213  }
 13214  
 13215  // SetNextToken sets the NextToken field's value.
 13216  func (s *ListThesauriOutput) SetNextToken(v string) *ListThesauriOutput {
 13217  	s.NextToken = &v
 13218  	return s
 13219  }
 13220  
 13221  // SetThesaurusSummaryItems sets the ThesaurusSummaryItems field's value.
 13222  func (s *ListThesauriOutput) SetThesaurusSummaryItems(v []*ThesaurusSummary) *ListThesauriOutput {
 13223  	s.ThesaurusSummaryItems = v
 13224  	return s
 13225  }
 13226  
 13227  // The sub groups that belong to a group.
 13228  type MemberGroup struct {
 13229  	_ struct{} `type:"structure"`
 13230  
 13231  	// The identifier of the data source for the sub group you want to map to a
 13232  	// group.
 13233  	DataSourceId *string `min:"1" type:"string"`
 13234  
 13235  	// The identifier of the sub group you want to map to a group.
 13236  	//
 13237  	// GroupId is a required field
 13238  	GroupId *string `min:"1" type:"string" required:"true"`
 13239  }
 13240  
 13241  // String returns the string representation.
 13242  //
 13243  // API parameter values that are decorated as "sensitive" in the API will not
 13244  // be included in the string output. The member name will be present, but the
 13245  // value will be replaced with "sensitive".
 13246  func (s MemberGroup) String() string {
 13247  	return awsutil.Prettify(s)
 13248  }
 13249  
 13250  // GoString returns the string representation.
 13251  //
 13252  // API parameter values that are decorated as "sensitive" in the API will not
 13253  // be included in the string output. The member name will be present, but the
 13254  // value will be replaced with "sensitive".
 13255  func (s MemberGroup) GoString() string {
 13256  	return s.String()
 13257  }
 13258  
 13259  // Validate inspects the fields of the type to determine if they are valid.
 13260  func (s *MemberGroup) Validate() error {
 13261  	invalidParams := request.ErrInvalidParams{Context: "MemberGroup"}
 13262  	if s.DataSourceId != nil && len(*s.DataSourceId) < 1 {
 13263  		invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 1))
 13264  	}
 13265  	if s.GroupId == nil {
 13266  		invalidParams.Add(request.NewErrParamRequired("GroupId"))
 13267  	}
 13268  	if s.GroupId != nil && len(*s.GroupId) < 1 {
 13269  		invalidParams.Add(request.NewErrParamMinLen("GroupId", 1))
 13270  	}
 13271  
 13272  	if invalidParams.Len() > 0 {
 13273  		return invalidParams
 13274  	}
 13275  	return nil
 13276  }
 13277  
 13278  // SetDataSourceId sets the DataSourceId field's value.
 13279  func (s *MemberGroup) SetDataSourceId(v string) *MemberGroup {
 13280  	s.DataSourceId = &v
 13281  	return s
 13282  }
 13283  
 13284  // SetGroupId sets the GroupId field's value.
 13285  func (s *MemberGroup) SetGroupId(v string) *MemberGroup {
 13286  	s.GroupId = &v
 13287  	return s
 13288  }
 13289  
 13290  // The users that belong to a group.
 13291  type MemberUser struct {
 13292  	_ struct{} `type:"structure"`
 13293  
 13294  	// The identifier of the user you want to map to a group.
 13295  	//
 13296  	// UserId is a required field
 13297  	UserId *string `min:"1" type:"string" required:"true"`
 13298  }
 13299  
 13300  // String returns the string representation.
 13301  //
 13302  // API parameter values that are decorated as "sensitive" in the API will not
 13303  // be included in the string output. The member name will be present, but the
 13304  // value will be replaced with "sensitive".
 13305  func (s MemberUser) String() string {
 13306  	return awsutil.Prettify(s)
 13307  }
 13308  
 13309  // GoString returns the string representation.
 13310  //
 13311  // API parameter values that are decorated as "sensitive" in the API will not
 13312  // be included in the string output. The member name will be present, but the
 13313  // value will be replaced with "sensitive".
 13314  func (s MemberUser) GoString() string {
 13315  	return s.String()
 13316  }
 13317  
 13318  // Validate inspects the fields of the type to determine if they are valid.
 13319  func (s *MemberUser) Validate() error {
 13320  	invalidParams := request.ErrInvalidParams{Context: "MemberUser"}
 13321  	if s.UserId == nil {
 13322  		invalidParams.Add(request.NewErrParamRequired("UserId"))
 13323  	}
 13324  	if s.UserId != nil && len(*s.UserId) < 1 {
 13325  		invalidParams.Add(request.NewErrParamMinLen("UserId", 1))
 13326  	}
 13327  
 13328  	if invalidParams.Len() > 0 {
 13329  		return invalidParams
 13330  	}
 13331  	return nil
 13332  }
 13333  
 13334  // SetUserId sets the UserId field's value.
 13335  func (s *MemberUser) SetUserId(v string) *MemberUser {
 13336  	s.UserId = &v
 13337  	return s
 13338  }
 13339  
 13340  // Provides configuration information for data sources that connect to OneDrive.
 13341  type OneDriveConfiguration struct {
 13342  	_ struct{} `type:"structure"`
 13343  
 13344  	// A Boolean value that specifies whether local groups are disabled (True) or
 13345  	// enabled (False).
 13346  	DisableLocalGroups *bool `type:"boolean"`
 13347  
 13348  	// List of regular expressions applied to documents. Items that match the exclusion
 13349  	// pattern are not indexed. If you provide both an inclusion pattern and an
 13350  	// exclusion pattern, any item that matches the exclusion pattern isn't indexed.
 13351  	//
 13352  	// The exclusion pattern is applied to the file name.
 13353  	ExclusionPatterns []*string `type:"list"`
 13354  
 13355  	// A list of DataSourceToIndexFieldMapping objects that map Microsoft OneDrive
 13356  	// fields to custom fields in the Amazon Kendra index. You must first create
 13357  	// the index fields before you map OneDrive fields.
 13358  	FieldMappings []*DataSourceToIndexFieldMapping `min:"1" type:"list"`
 13359  
 13360  	// A list of regular expression patterns. Documents that match the pattern are
 13361  	// included in the index. Documents that don't match the pattern are excluded
 13362  	// from the index. If a document matches both an inclusion pattern and an exclusion
 13363  	// pattern, the document is not included in the index.
 13364  	//
 13365  	// The exclusion pattern is applied to the file name.
 13366  	InclusionPatterns []*string `type:"list"`
 13367  
 13368  	// A list of user accounts whose documents should be indexed.
 13369  	//
 13370  	// OneDriveUsers is a required field
 13371  	OneDriveUsers *OneDriveUsers `type:"structure" required:"true"`
 13372  
 13373  	// The Amazon Resource Name (ARN) of an Secrets Managersecret that contains
 13374  	// the user name and password to connect to OneDrive. The user namd should be
 13375  	// the application ID for the OneDrive application, and the password is the
 13376  	// application key for the OneDrive application.
 13377  	//
 13378  	// SecretArn is a required field
 13379  	SecretArn *string `min:"1" type:"string" required:"true"`
 13380  
 13381  	// The Azure Active Directory domain of the organization.
 13382  	//
 13383  	// TenantDomain is a required field
 13384  	TenantDomain *string `min:"1" type:"string" required:"true"`
 13385  }
 13386  
 13387  // String returns the string representation.
 13388  //
 13389  // API parameter values that are decorated as "sensitive" in the API will not
 13390  // be included in the string output. The member name will be present, but the
 13391  // value will be replaced with "sensitive".
 13392  func (s OneDriveConfiguration) String() string {
 13393  	return awsutil.Prettify(s)
 13394  }
 13395  
 13396  // GoString returns the string representation.
 13397  //
 13398  // API parameter values that are decorated as "sensitive" in the API will not
 13399  // be included in the string output. The member name will be present, but the
 13400  // value will be replaced with "sensitive".
 13401  func (s OneDriveConfiguration) GoString() string {
 13402  	return s.String()
 13403  }
 13404  
 13405  // Validate inspects the fields of the type to determine if they are valid.
 13406  func (s *OneDriveConfiguration) Validate() error {
 13407  	invalidParams := request.ErrInvalidParams{Context: "OneDriveConfiguration"}
 13408  	if s.FieldMappings != nil && len(s.FieldMappings) < 1 {
 13409  		invalidParams.Add(request.NewErrParamMinLen("FieldMappings", 1))
 13410  	}
 13411  	if s.OneDriveUsers == nil {
 13412  		invalidParams.Add(request.NewErrParamRequired("OneDriveUsers"))
 13413  	}
 13414  	if s.SecretArn == nil {
 13415  		invalidParams.Add(request.NewErrParamRequired("SecretArn"))
 13416  	}
 13417  	if s.SecretArn != nil && len(*s.SecretArn) < 1 {
 13418  		invalidParams.Add(request.NewErrParamMinLen("SecretArn", 1))
 13419  	}
 13420  	if s.TenantDomain == nil {
 13421  		invalidParams.Add(request.NewErrParamRequired("TenantDomain"))
 13422  	}
 13423  	if s.TenantDomain != nil && len(*s.TenantDomain) < 1 {
 13424  		invalidParams.Add(request.NewErrParamMinLen("TenantDomain", 1))
 13425  	}
 13426  	if s.FieldMappings != nil {
 13427  		for i, v := range s.FieldMappings {
 13428  			if v == nil {
 13429  				continue
 13430  			}
 13431  			if err := v.Validate(); err != nil {
 13432  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(request.ErrInvalidParams))
 13433  			}
 13434  		}
 13435  	}
 13436  	if s.OneDriveUsers != nil {
 13437  		if err := s.OneDriveUsers.Validate(); err != nil {
 13438  			invalidParams.AddNested("OneDriveUsers", err.(request.ErrInvalidParams))
 13439  		}
 13440  	}
 13441  
 13442  	if invalidParams.Len() > 0 {
 13443  		return invalidParams
 13444  	}
 13445  	return nil
 13446  }
 13447  
 13448  // SetDisableLocalGroups sets the DisableLocalGroups field's value.
 13449  func (s *OneDriveConfiguration) SetDisableLocalGroups(v bool) *OneDriveConfiguration {
 13450  	s.DisableLocalGroups = &v
 13451  	return s
 13452  }
 13453  
 13454  // SetExclusionPatterns sets the ExclusionPatterns field's value.
 13455  func (s *OneDriveConfiguration) SetExclusionPatterns(v []*string) *OneDriveConfiguration {
 13456  	s.ExclusionPatterns = v
 13457  	return s
 13458  }
 13459  
 13460  // SetFieldMappings sets the FieldMappings field's value.
 13461  func (s *OneDriveConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *OneDriveConfiguration {
 13462  	s.FieldMappings = v
 13463  	return s
 13464  }
 13465  
 13466  // SetInclusionPatterns sets the InclusionPatterns field's value.
 13467  func (s *OneDriveConfiguration) SetInclusionPatterns(v []*string) *OneDriveConfiguration {
 13468  	s.InclusionPatterns = v
 13469  	return s
 13470  }
 13471  
 13472  // SetOneDriveUsers sets the OneDriveUsers field's value.
 13473  func (s *OneDriveConfiguration) SetOneDriveUsers(v *OneDriveUsers) *OneDriveConfiguration {
 13474  	s.OneDriveUsers = v
 13475  	return s
 13476  }
 13477  
 13478  // SetSecretArn sets the SecretArn field's value.
 13479  func (s *OneDriveConfiguration) SetSecretArn(v string) *OneDriveConfiguration {
 13480  	s.SecretArn = &v
 13481  	return s
 13482  }
 13483  
 13484  // SetTenantDomain sets the TenantDomain field's value.
 13485  func (s *OneDriveConfiguration) SetTenantDomain(v string) *OneDriveConfiguration {
 13486  	s.TenantDomain = &v
 13487  	return s
 13488  }
 13489  
 13490  // User accounts whose documents should be indexed.
 13491  type OneDriveUsers struct {
 13492  	_ struct{} `type:"structure"`
 13493  
 13494  	// A list of users whose documents should be indexed. Specify the user names
 13495  	// in email format, for example, username@tenantdomain. If you need to index
 13496  	// the documents of more than 100 users, use the OneDriveUserS3Path field to
 13497  	// specify the location of a file containing a list of users.
 13498  	OneDriveUserList []*string `min:"1" type:"list"`
 13499  
 13500  	// The S3 bucket location of a file containing a list of users whose documents
 13501  	// should be indexed.
 13502  	OneDriveUserS3Path *S3Path `type:"structure"`
 13503  }
 13504  
 13505  // String returns the string representation.
 13506  //
 13507  // API parameter values that are decorated as "sensitive" in the API will not
 13508  // be included in the string output. The member name will be present, but the
 13509  // value will be replaced with "sensitive".
 13510  func (s OneDriveUsers) String() string {
 13511  	return awsutil.Prettify(s)
 13512  }
 13513  
 13514  // GoString returns the string representation.
 13515  //
 13516  // API parameter values that are decorated as "sensitive" in the API will not
 13517  // be included in the string output. The member name will be present, but the
 13518  // value will be replaced with "sensitive".
 13519  func (s OneDriveUsers) GoString() string {
 13520  	return s.String()
 13521  }
 13522  
 13523  // Validate inspects the fields of the type to determine if they are valid.
 13524  func (s *OneDriveUsers) Validate() error {
 13525  	invalidParams := request.ErrInvalidParams{Context: "OneDriveUsers"}
 13526  	if s.OneDriveUserList != nil && len(s.OneDriveUserList) < 1 {
 13527  		invalidParams.Add(request.NewErrParamMinLen("OneDriveUserList", 1))
 13528  	}
 13529  	if s.OneDriveUserS3Path != nil {
 13530  		if err := s.OneDriveUserS3Path.Validate(); err != nil {
 13531  			invalidParams.AddNested("OneDriveUserS3Path", err.(request.ErrInvalidParams))
 13532  		}
 13533  	}
 13534  
 13535  	if invalidParams.Len() > 0 {
 13536  		return invalidParams
 13537  	}
 13538  	return nil
 13539  }
 13540  
 13541  // SetOneDriveUserList sets the OneDriveUserList field's value.
 13542  func (s *OneDriveUsers) SetOneDriveUserList(v []*string) *OneDriveUsers {
 13543  	s.OneDriveUserList = v
 13544  	return s
 13545  }
 13546  
 13547  // SetOneDriveUserS3Path sets the OneDriveUserS3Path field's value.
 13548  func (s *OneDriveUsers) SetOneDriveUserS3Path(v *S3Path) *OneDriveUsers {
 13549  	s.OneDriveUserS3Path = v
 13550  	return s
 13551  }
 13552  
 13553  // Provides user and group information for document access filtering.
 13554  type Principal struct {
 13555  	_ struct{} `type:"structure"`
 13556  
 13557  	// Whether to allow or deny access to the principal.
 13558  	//
 13559  	// Access is a required field
 13560  	Access *string `type:"string" required:"true" enum:"ReadAccessType"`
 13561  
 13562  	// The identifier of the data source the principal should access documents from.
 13563  	DataSourceId *string `min:"1" type:"string"`
 13564  
 13565  	// The name of the user or group.
 13566  	//
 13567  	// Name is a required field
 13568  	Name *string `min:"1" type:"string" required:"true"`
 13569  
 13570  	// The type of principal.
 13571  	//
 13572  	// Type is a required field
 13573  	Type *string `type:"string" required:"true" enum:"PrincipalType"`
 13574  }
 13575  
 13576  // String returns the string representation.
 13577  //
 13578  // API parameter values that are decorated as "sensitive" in the API will not
 13579  // be included in the string output. The member name will be present, but the
 13580  // value will be replaced with "sensitive".
 13581  func (s Principal) String() string {
 13582  	return awsutil.Prettify(s)
 13583  }
 13584  
 13585  // GoString returns the string representation.
 13586  //
 13587  // API parameter values that are decorated as "sensitive" in the API will not
 13588  // be included in the string output. The member name will be present, but the
 13589  // value will be replaced with "sensitive".
 13590  func (s Principal) GoString() string {
 13591  	return s.String()
 13592  }
 13593  
 13594  // Validate inspects the fields of the type to determine if they are valid.
 13595  func (s *Principal) Validate() error {
 13596  	invalidParams := request.ErrInvalidParams{Context: "Principal"}
 13597  	if s.Access == nil {
 13598  		invalidParams.Add(request.NewErrParamRequired("Access"))
 13599  	}
 13600  	if s.DataSourceId != nil && len(*s.DataSourceId) < 1 {
 13601  		invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 1))
 13602  	}
 13603  	if s.Name == nil {
 13604  		invalidParams.Add(request.NewErrParamRequired("Name"))
 13605  	}
 13606  	if s.Name != nil && len(*s.Name) < 1 {
 13607  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 13608  	}
 13609  	if s.Type == nil {
 13610  		invalidParams.Add(request.NewErrParamRequired("Type"))
 13611  	}
 13612  
 13613  	if invalidParams.Len() > 0 {
 13614  		return invalidParams
 13615  	}
 13616  	return nil
 13617  }
 13618  
 13619  // SetAccess sets the Access field's value.
 13620  func (s *Principal) SetAccess(v string) *Principal {
 13621  	s.Access = &v
 13622  	return s
 13623  }
 13624  
 13625  // SetDataSourceId sets the DataSourceId field's value.
 13626  func (s *Principal) SetDataSourceId(v string) *Principal {
 13627  	s.DataSourceId = &v
 13628  	return s
 13629  }
 13630  
 13631  // SetName sets the Name field's value.
 13632  func (s *Principal) SetName(v string) *Principal {
 13633  	s.Name = &v
 13634  	return s
 13635  }
 13636  
 13637  // SetType sets the Type field's value.
 13638  func (s *Principal) SetType(v string) *Principal {
 13639  	s.Type = &v
 13640  	return s
 13641  }
 13642  
 13643  // Provides the configuration information for a web proxy to connect to website
 13644  // hosts.
 13645  type ProxyConfiguration struct {
 13646  	_ struct{} `type:"structure"`
 13647  
 13648  	// Your secret ARN, which you can create in AWS Secrets Manager (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
 13649  	//
 13650  	// The credentials are optional. You use a secret if web proxy credentials are
 13651  	// required to connect to a website host. Amazon Kendra currently support basic
 13652  	// authentication to connect to a web proxy server. The secret stores your credentials.
 13653  	Credentials *string `min:"1" type:"string"`
 13654  
 13655  	// The name of the website host you want to connect to via a web proxy server.
 13656  	//
 13657  	// For example, the host name of https://a.example.com/page1.html is "a.example.com".
 13658  	//
 13659  	// Host is a required field
 13660  	Host *string `min:"1" type:"string" required:"true"`
 13661  
 13662  	// The port number of the website host you want to connect to via a web proxy
 13663  	// server.
 13664  	//
 13665  	// For example, the port for https://a.example.com/page1.html is 443, the standard
 13666  	// port for HTTPS.
 13667  	//
 13668  	// Port is a required field
 13669  	Port *int64 `min:"1" type:"integer" required:"true"`
 13670  }
 13671  
 13672  // String returns the string representation.
 13673  //
 13674  // API parameter values that are decorated as "sensitive" in the API will not
 13675  // be included in the string output. The member name will be present, but the
 13676  // value will be replaced with "sensitive".
 13677  func (s ProxyConfiguration) String() string {
 13678  	return awsutil.Prettify(s)
 13679  }
 13680  
 13681  // GoString returns the string representation.
 13682  //
 13683  // API parameter values that are decorated as "sensitive" in the API will not
 13684  // be included in the string output. The member name will be present, but the
 13685  // value will be replaced with "sensitive".
 13686  func (s ProxyConfiguration) GoString() string {
 13687  	return s.String()
 13688  }
 13689  
 13690  // Validate inspects the fields of the type to determine if they are valid.
 13691  func (s *ProxyConfiguration) Validate() error {
 13692  	invalidParams := request.ErrInvalidParams{Context: "ProxyConfiguration"}
 13693  	if s.Credentials != nil && len(*s.Credentials) < 1 {
 13694  		invalidParams.Add(request.NewErrParamMinLen("Credentials", 1))
 13695  	}
 13696  	if s.Host == nil {
 13697  		invalidParams.Add(request.NewErrParamRequired("Host"))
 13698  	}
 13699  	if s.Host != nil && len(*s.Host) < 1 {
 13700  		invalidParams.Add(request.NewErrParamMinLen("Host", 1))
 13701  	}
 13702  	if s.Port == nil {
 13703  		invalidParams.Add(request.NewErrParamRequired("Port"))
 13704  	}
 13705  	if s.Port != nil && *s.Port < 1 {
 13706  		invalidParams.Add(request.NewErrParamMinValue("Port", 1))
 13707  	}
 13708  
 13709  	if invalidParams.Len() > 0 {
 13710  		return invalidParams
 13711  	}
 13712  	return nil
 13713  }
 13714  
 13715  // SetCredentials sets the Credentials field's value.
 13716  func (s *ProxyConfiguration) SetCredentials(v string) *ProxyConfiguration {
 13717  	s.Credentials = &v
 13718  	return s
 13719  }
 13720  
 13721  // SetHost sets the Host field's value.
 13722  func (s *ProxyConfiguration) SetHost(v string) *ProxyConfiguration {
 13723  	s.Host = &v
 13724  	return s
 13725  }
 13726  
 13727  // SetPort sets the Port field's value.
 13728  func (s *ProxyConfiguration) SetPort(v int64) *ProxyConfiguration {
 13729  	s.Port = &v
 13730  	return s
 13731  }
 13732  
 13733  type PutPrincipalMappingInput struct {
 13734  	_ struct{} `type:"structure"`
 13735  
 13736  	// The identifier of the data source you want to map users to their groups.
 13737  	//
 13738  	// This is useful if a group is tied to multiple data sources, but you only
 13739  	// want the group to access documents of a certain data source. For example,
 13740  	// the groups "Research", "Engineering", and "Sales and Marketing" are all tied
 13741  	// to the company's documents stored in the data sources Confluence and Salesforce.
 13742  	// However, "Sales and Marketing" team only needs access to customer-related
 13743  	// documents stored in Salesforce.
 13744  	DataSourceId *string `min:"1" type:"string"`
 13745  
 13746  	// The identifier of the group you want to map its users to.
 13747  	//
 13748  	// GroupId is a required field
 13749  	GroupId *string `min:"1" type:"string" required:"true"`
 13750  
 13751  	// The list that contains your users or sub groups that belong the same group.
 13752  	//
 13753  	// For example, the group "Company" includes the user "CEO" and the sub groups
 13754  	// "Research", "Engineering", and "Sales and Marketing".
 13755  	//
 13756  	// If you have more than 1000 users and/or sub groups for a single group, you
 13757  	// need to provide the path to the S3 file that lists your users and sub groups
 13758  	// for a group. Your sub groups can contain more than 1000 users, but the list
 13759  	// of sub groups that belong to a group (and/or users) must be no more than
 13760  	// 1000.
 13761  	//
 13762  	// GroupMembers is a required field
 13763  	GroupMembers *GroupMembers `type:"structure" required:"true"`
 13764  
 13765  	// The identifier of the index you want to map users to their groups.
 13766  	//
 13767  	// IndexId is a required field
 13768  	IndexId *string `min:"36" type:"string" required:"true"`
 13769  
 13770  	// The timestamp identifier you specify to ensure Amazon Kendra does not override
 13771  	// the latest PUT action with previous actions. The highest number ID, which
 13772  	// is the ordering ID, is the latest action you want to process and apply on
 13773  	// top of other actions with lower number IDs. This prevents previous actions
 13774  	// with lower number IDs from possibly overriding the latest action.
 13775  	//
 13776  	// The ordering ID can be the UNIX time of the last update you made to a group
 13777  	// members list. You would then provide this list when calling PutPrincipalMapping.
 13778  	// This ensures your PUT action for that updated group with the latest members
 13779  	// list doesn't get overwritten by earlier PUT actions for the same group which
 13780  	// are yet to be processed.
 13781  	//
 13782  	// The default ordering ID is the current UNIX time in milliseconds that the
 13783  	// action was received by Amazon Kendra.
 13784  	OrderingId *int64 `type:"long"`
 13785  
 13786  	// The Amazon Resource Name (ARN) of a role that has access to the S3 file that
 13787  	// contains your list of users or sub groups that belong to a group.
 13788  	//
 13789  	// For more information, see IAM roles for Amazon Kendra (https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-ds).
 13790  	RoleArn *string `min:"1" type:"string"`
 13791  }
 13792  
 13793  // String returns the string representation.
 13794  //
 13795  // API parameter values that are decorated as "sensitive" in the API will not
 13796  // be included in the string output. The member name will be present, but the
 13797  // value will be replaced with "sensitive".
 13798  func (s PutPrincipalMappingInput) String() string {
 13799  	return awsutil.Prettify(s)
 13800  }
 13801  
 13802  // GoString returns the string representation.
 13803  //
 13804  // API parameter values that are decorated as "sensitive" in the API will not
 13805  // be included in the string output. The member name will be present, but the
 13806  // value will be replaced with "sensitive".
 13807  func (s PutPrincipalMappingInput) GoString() string {
 13808  	return s.String()
 13809  }
 13810  
 13811  // Validate inspects the fields of the type to determine if they are valid.
 13812  func (s *PutPrincipalMappingInput) Validate() error {
 13813  	invalidParams := request.ErrInvalidParams{Context: "PutPrincipalMappingInput"}
 13814  	if s.DataSourceId != nil && len(*s.DataSourceId) < 1 {
 13815  		invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 1))
 13816  	}
 13817  	if s.GroupId == nil {
 13818  		invalidParams.Add(request.NewErrParamRequired("GroupId"))
 13819  	}
 13820  	if s.GroupId != nil && len(*s.GroupId) < 1 {
 13821  		invalidParams.Add(request.NewErrParamMinLen("GroupId", 1))
 13822  	}
 13823  	if s.GroupMembers == nil {
 13824  		invalidParams.Add(request.NewErrParamRequired("GroupMembers"))
 13825  	}
 13826  	if s.IndexId == nil {
 13827  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 13828  	}
 13829  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 13830  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 13831  	}
 13832  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
 13833  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
 13834  	}
 13835  	if s.GroupMembers != nil {
 13836  		if err := s.GroupMembers.Validate(); err != nil {
 13837  			invalidParams.AddNested("GroupMembers", err.(request.ErrInvalidParams))
 13838  		}
 13839  	}
 13840  
 13841  	if invalidParams.Len() > 0 {
 13842  		return invalidParams
 13843  	}
 13844  	return nil
 13845  }
 13846  
 13847  // SetDataSourceId sets the DataSourceId field's value.
 13848  func (s *PutPrincipalMappingInput) SetDataSourceId(v string) *PutPrincipalMappingInput {
 13849  	s.DataSourceId = &v
 13850  	return s
 13851  }
 13852  
 13853  // SetGroupId sets the GroupId field's value.
 13854  func (s *PutPrincipalMappingInput) SetGroupId(v string) *PutPrincipalMappingInput {
 13855  	s.GroupId = &v
 13856  	return s
 13857  }
 13858  
 13859  // SetGroupMembers sets the GroupMembers field's value.
 13860  func (s *PutPrincipalMappingInput) SetGroupMembers(v *GroupMembers) *PutPrincipalMappingInput {
 13861  	s.GroupMembers = v
 13862  	return s
 13863  }
 13864  
 13865  // SetIndexId sets the IndexId field's value.
 13866  func (s *PutPrincipalMappingInput) SetIndexId(v string) *PutPrincipalMappingInput {
 13867  	s.IndexId = &v
 13868  	return s
 13869  }
 13870  
 13871  // SetOrderingId sets the OrderingId field's value.
 13872  func (s *PutPrincipalMappingInput) SetOrderingId(v int64) *PutPrincipalMappingInput {
 13873  	s.OrderingId = &v
 13874  	return s
 13875  }
 13876  
 13877  // SetRoleArn sets the RoleArn field's value.
 13878  func (s *PutPrincipalMappingInput) SetRoleArn(v string) *PutPrincipalMappingInput {
 13879  	s.RoleArn = &v
 13880  	return s
 13881  }
 13882  
 13883  type PutPrincipalMappingOutput struct {
 13884  	_ struct{} `type:"structure"`
 13885  }
 13886  
 13887  // String returns the string representation.
 13888  //
 13889  // API parameter values that are decorated as "sensitive" in the API will not
 13890  // be included in the string output. The member name will be present, but the
 13891  // value will be replaced with "sensitive".
 13892  func (s PutPrincipalMappingOutput) String() string {
 13893  	return awsutil.Prettify(s)
 13894  }
 13895  
 13896  // GoString returns the string representation.
 13897  //
 13898  // API parameter values that are decorated as "sensitive" in the API will not
 13899  // be included in the string output. The member name will be present, but the
 13900  // value will be replaced with "sensitive".
 13901  func (s PutPrincipalMappingOutput) GoString() string {
 13902  	return s.String()
 13903  }
 13904  
 13905  type QueryInput struct {
 13906  	_ struct{} `type:"structure"`
 13907  
 13908  	// Enables filtered searches based on document attributes. You can only provide
 13909  	// one attribute filter; however, the AndAllFilters, NotFilter, and OrAllFilters
 13910  	// parameters contain a list of other filters.
 13911  	//
 13912  	// The AttributeFilter parameter enables you to create a set of filtering rules
 13913  	// that a document must satisfy to be included in the query results.
 13914  	AttributeFilter *AttributeFilter `type:"structure"`
 13915  
 13916  	// Overrides relevance tuning configurations of fields or attributes set at
 13917  	// the index level.
 13918  	//
 13919  	// If you use this API to override the relevance tuning configured at the index
 13920  	// level, but there is no relevance tuning configured at the index level, then
 13921  	// Amazon Kendra does not apply any relevance tuning.
 13922  	//
 13923  	// If there is relevance tuning configured at the index level, but you do not
 13924  	// use this API to override any relevance tuning in the index, then Amazon Kendra
 13925  	// uses the relevance tuning that is configured at the index level.
 13926  	//
 13927  	// If there is relevance tuning configured for fields at the index level, but
 13928  	// you use this API to override only some of these fields, then for the fields
 13929  	// you did not override, the importance is set to 1.
 13930  	DocumentRelevanceOverrideConfigurations []*DocumentRelevanceConfiguration `type:"list"`
 13931  
 13932  	// An array of documents attributes. Amazon Kendra returns a count for each
 13933  	// attribute key specified. You can use this information to help narrow the
 13934  	// search for your user.
 13935  	Facets []*Facet `type:"list"`
 13936  
 13937  	// The unique identifier of the index to search. The identifier is returned
 13938  	// in the response from the CreateIndex operation.
 13939  	//
 13940  	// IndexId is a required field
 13941  	IndexId *string `min:"36" type:"string" required:"true"`
 13942  
 13943  	// Query results are returned in pages the size of the PageSize parameter. By
 13944  	// default, Amazon Kendra returns the first page of results. Use this parameter
 13945  	// to get result pages after the first one.
 13946  	PageNumber *int64 `type:"integer"`
 13947  
 13948  	// Sets the number of results that are returned in each page of results. The
 13949  	// default page size is 10. The maximum number of results returned is 100. If
 13950  	// you ask for more than 100 results, only 100 are returned.
 13951  	PageSize *int64 `type:"integer"`
 13952  
 13953  	// Sets the type of query. Only results for the specified query type are returned.
 13954  	QueryResultTypeFilter *string `type:"string" enum:"QueryResultType"`
 13955  
 13956  	// The text to search for.
 13957  	//
 13958  	// QueryText is a required field
 13959  	QueryText *string `min:"1" type:"string" required:"true"`
 13960  
 13961  	// An array of document attributes to include in the response. No other document
 13962  	// attributes are included in the response. By default all document attributes
 13963  	// are included in the response.
 13964  	RequestedDocumentAttributes []*string `min:"1" type:"list"`
 13965  
 13966  	// Provides information that determines how the results of the query are sorted.
 13967  	// You can set the field that Amazon Kendra should sort the results on, and
 13968  	// specify whether the results should be sorted in ascending or descending order.
 13969  	// In the case of ties in sorting the results, the results are sorted by relevance.
 13970  	//
 13971  	// If you don't provide sorting configuration, the results are sorted by the
 13972  	// relevance that Amazon Kendra determines for the result.
 13973  	SortingConfiguration *SortingConfiguration `type:"structure"`
 13974  
 13975  	// The user context token or user and group information.
 13976  	UserContext *UserContext `type:"structure"`
 13977  
 13978  	// Provides an identifier for a specific user. The VisitorId should be a unique
 13979  	// identifier, such as a GUID. Don't use personally identifiable information,
 13980  	// such as the user's email address, as the VisitorId.
 13981  	VisitorId *string `min:"1" type:"string"`
 13982  }
 13983  
 13984  // String returns the string representation.
 13985  //
 13986  // API parameter values that are decorated as "sensitive" in the API will not
 13987  // be included in the string output. The member name will be present, but the
 13988  // value will be replaced with "sensitive".
 13989  func (s QueryInput) String() string {
 13990  	return awsutil.Prettify(s)
 13991  }
 13992  
 13993  // GoString returns the string representation.
 13994  //
 13995  // API parameter values that are decorated as "sensitive" in the API will not
 13996  // be included in the string output. The member name will be present, but the
 13997  // value will be replaced with "sensitive".
 13998  func (s QueryInput) GoString() string {
 13999  	return s.String()
 14000  }
 14001  
 14002  // Validate inspects the fields of the type to determine if they are valid.
 14003  func (s *QueryInput) Validate() error {
 14004  	invalidParams := request.ErrInvalidParams{Context: "QueryInput"}
 14005  	if s.IndexId == nil {
 14006  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 14007  	}
 14008  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 14009  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 14010  	}
 14011  	if s.QueryText == nil {
 14012  		invalidParams.Add(request.NewErrParamRequired("QueryText"))
 14013  	}
 14014  	if s.QueryText != nil && len(*s.QueryText) < 1 {
 14015  		invalidParams.Add(request.NewErrParamMinLen("QueryText", 1))
 14016  	}
 14017  	if s.RequestedDocumentAttributes != nil && len(s.RequestedDocumentAttributes) < 1 {
 14018  		invalidParams.Add(request.NewErrParamMinLen("RequestedDocumentAttributes", 1))
 14019  	}
 14020  	if s.VisitorId != nil && len(*s.VisitorId) < 1 {
 14021  		invalidParams.Add(request.NewErrParamMinLen("VisitorId", 1))
 14022  	}
 14023  	if s.AttributeFilter != nil {
 14024  		if err := s.AttributeFilter.Validate(); err != nil {
 14025  			invalidParams.AddNested("AttributeFilter", err.(request.ErrInvalidParams))
 14026  		}
 14027  	}
 14028  	if s.DocumentRelevanceOverrideConfigurations != nil {
 14029  		for i, v := range s.DocumentRelevanceOverrideConfigurations {
 14030  			if v == nil {
 14031  				continue
 14032  			}
 14033  			if err := v.Validate(); err != nil {
 14034  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DocumentRelevanceOverrideConfigurations", i), err.(request.ErrInvalidParams))
 14035  			}
 14036  		}
 14037  	}
 14038  	if s.Facets != nil {
 14039  		for i, v := range s.Facets {
 14040  			if v == nil {
 14041  				continue
 14042  			}
 14043  			if err := v.Validate(); err != nil {
 14044  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Facets", i), err.(request.ErrInvalidParams))
 14045  			}
 14046  		}
 14047  	}
 14048  	if s.SortingConfiguration != nil {
 14049  		if err := s.SortingConfiguration.Validate(); err != nil {
 14050  			invalidParams.AddNested("SortingConfiguration", err.(request.ErrInvalidParams))
 14051  		}
 14052  	}
 14053  	if s.UserContext != nil {
 14054  		if err := s.UserContext.Validate(); err != nil {
 14055  			invalidParams.AddNested("UserContext", err.(request.ErrInvalidParams))
 14056  		}
 14057  	}
 14058  
 14059  	if invalidParams.Len() > 0 {
 14060  		return invalidParams
 14061  	}
 14062  	return nil
 14063  }
 14064  
 14065  // SetAttributeFilter sets the AttributeFilter field's value.
 14066  func (s *QueryInput) SetAttributeFilter(v *AttributeFilter) *QueryInput {
 14067  	s.AttributeFilter = v
 14068  	return s
 14069  }
 14070  
 14071  // SetDocumentRelevanceOverrideConfigurations sets the DocumentRelevanceOverrideConfigurations field's value.
 14072  func (s *QueryInput) SetDocumentRelevanceOverrideConfigurations(v []*DocumentRelevanceConfiguration) *QueryInput {
 14073  	s.DocumentRelevanceOverrideConfigurations = v
 14074  	return s
 14075  }
 14076  
 14077  // SetFacets sets the Facets field's value.
 14078  func (s *QueryInput) SetFacets(v []*Facet) *QueryInput {
 14079  	s.Facets = v
 14080  	return s
 14081  }
 14082  
 14083  // SetIndexId sets the IndexId field's value.
 14084  func (s *QueryInput) SetIndexId(v string) *QueryInput {
 14085  	s.IndexId = &v
 14086  	return s
 14087  }
 14088  
 14089  // SetPageNumber sets the PageNumber field's value.
 14090  func (s *QueryInput) SetPageNumber(v int64) *QueryInput {
 14091  	s.PageNumber = &v
 14092  	return s
 14093  }
 14094  
 14095  // SetPageSize sets the PageSize field's value.
 14096  func (s *QueryInput) SetPageSize(v int64) *QueryInput {
 14097  	s.PageSize = &v
 14098  	return s
 14099  }
 14100  
 14101  // SetQueryResultTypeFilter sets the QueryResultTypeFilter field's value.
 14102  func (s *QueryInput) SetQueryResultTypeFilter(v string) *QueryInput {
 14103  	s.QueryResultTypeFilter = &v
 14104  	return s
 14105  }
 14106  
 14107  // SetQueryText sets the QueryText field's value.
 14108  func (s *QueryInput) SetQueryText(v string) *QueryInput {
 14109  	s.QueryText = &v
 14110  	return s
 14111  }
 14112  
 14113  // SetRequestedDocumentAttributes sets the RequestedDocumentAttributes field's value.
 14114  func (s *QueryInput) SetRequestedDocumentAttributes(v []*string) *QueryInput {
 14115  	s.RequestedDocumentAttributes = v
 14116  	return s
 14117  }
 14118  
 14119  // SetSortingConfiguration sets the SortingConfiguration field's value.
 14120  func (s *QueryInput) SetSortingConfiguration(v *SortingConfiguration) *QueryInput {
 14121  	s.SortingConfiguration = v
 14122  	return s
 14123  }
 14124  
 14125  // SetUserContext sets the UserContext field's value.
 14126  func (s *QueryInput) SetUserContext(v *UserContext) *QueryInput {
 14127  	s.UserContext = v
 14128  	return s
 14129  }
 14130  
 14131  // SetVisitorId sets the VisitorId field's value.
 14132  func (s *QueryInput) SetVisitorId(v string) *QueryInput {
 14133  	s.VisitorId = &v
 14134  	return s
 14135  }
 14136  
 14137  type QueryOutput struct {
 14138  	_ struct{} `type:"structure"`
 14139  
 14140  	// Contains the facet results. A FacetResult contains the counts for each attribute
 14141  	// key that was specified in the Facets input parameter.
 14142  	FacetResults []*FacetResult `type:"list"`
 14143  
 14144  	// The unique identifier for the search. You use QueryId to identify the search
 14145  	// when using the feedback API.
 14146  	QueryId *string `min:"1" type:"string"`
 14147  
 14148  	// The results of the search.
 14149  	ResultItems []*QueryResultItem `type:"list"`
 14150  
 14151  	// The total number of items found by the search; however, you can only retrieve
 14152  	// up to 100 items. For example, if the search found 192 items, you can only
 14153  	// retrieve the first 100 of the items.
 14154  	TotalNumberOfResults *int64 `type:"integer"`
 14155  }
 14156  
 14157  // String returns the string representation.
 14158  //
 14159  // API parameter values that are decorated as "sensitive" in the API will not
 14160  // be included in the string output. The member name will be present, but the
 14161  // value will be replaced with "sensitive".
 14162  func (s QueryOutput) String() string {
 14163  	return awsutil.Prettify(s)
 14164  }
 14165  
 14166  // GoString returns the string representation.
 14167  //
 14168  // API parameter values that are decorated as "sensitive" in the API will not
 14169  // be included in the string output. The member name will be present, but the
 14170  // value will be replaced with "sensitive".
 14171  func (s QueryOutput) GoString() string {
 14172  	return s.String()
 14173  }
 14174  
 14175  // SetFacetResults sets the FacetResults field's value.
 14176  func (s *QueryOutput) SetFacetResults(v []*FacetResult) *QueryOutput {
 14177  	s.FacetResults = v
 14178  	return s
 14179  }
 14180  
 14181  // SetQueryId sets the QueryId field's value.
 14182  func (s *QueryOutput) SetQueryId(v string) *QueryOutput {
 14183  	s.QueryId = &v
 14184  	return s
 14185  }
 14186  
 14187  // SetResultItems sets the ResultItems field's value.
 14188  func (s *QueryOutput) SetResultItems(v []*QueryResultItem) *QueryOutput {
 14189  	s.ResultItems = v
 14190  	return s
 14191  }
 14192  
 14193  // SetTotalNumberOfResults sets the TotalNumberOfResults field's value.
 14194  func (s *QueryOutput) SetTotalNumberOfResults(v int64) *QueryOutput {
 14195  	s.TotalNumberOfResults = &v
 14196  	return s
 14197  }
 14198  
 14199  // A single query result.
 14200  //
 14201  // A query result contains information about a document returned by the query.
 14202  // This includes the original location of the document, a list of attributes
 14203  // assigned to the document, and relevant text from the document that satisfies
 14204  // the query.
 14205  type QueryResultItem struct {
 14206  	_ struct{} `type:"structure"`
 14207  
 14208  	// One or more additional attributes associated with the query result.
 14209  	AdditionalAttributes []*AdditionalResultAttribute `type:"list"`
 14210  
 14211  	// An array of document attributes for the document that the query result maps
 14212  	// to. For example, the document author (Author) or the source URI (SourceUri)
 14213  	// of the document.
 14214  	DocumentAttributes []*DocumentAttribute `type:"list"`
 14215  
 14216  	// An extract of the text in the document. Contains information about highlighting
 14217  	// the relevant terms in the excerpt.
 14218  	DocumentExcerpt *TextWithHighlights `type:"structure"`
 14219  
 14220  	// The unique identifier for the document.
 14221  	DocumentId *string `min:"1" type:"string"`
 14222  
 14223  	// The title of the document. Contains the text of the title and information
 14224  	// for highlighting the relevant terms in the title.
 14225  	DocumentTitle *TextWithHighlights `type:"structure"`
 14226  
 14227  	// The URI of the original location of the document.
 14228  	DocumentURI *string `min:"1" type:"string"`
 14229  
 14230  	// A token that identifies a particular result from a particular query. Use
 14231  	// this token to provide click-through feedback for the result. For more information,
 14232  	// see Submitting feedback (https://docs.aws.amazon.com/kendra/latest/dg/submitting-feedback.html).
 14233  	FeedbackToken *string `min:"1" type:"string"`
 14234  
 14235  	// The unique identifier for the query result.
 14236  	Id *string `min:"1" type:"string"`
 14237  
 14238  	// Indicates the confidence that Amazon Kendra has that a result matches the
 14239  	// query that you provided. Each result is placed into a bin that indicates
 14240  	// the confidence, VERY_HIGH, HIGH, MEDIUM and LOW. You can use the score to
 14241  	// determine if a response meets the confidence needed for your application.
 14242  	//
 14243  	// The field is only set to LOW when the Type field is set to DOCUMENT and Amazon
 14244  	// Kendra is not confident that the result matches the query.
 14245  	ScoreAttributes *ScoreAttributes `type:"structure"`
 14246  
 14247  	// The type of document.
 14248  	Type *string `type:"string" enum:"QueryResultType"`
 14249  }
 14250  
 14251  // String returns the string representation.
 14252  //
 14253  // API parameter values that are decorated as "sensitive" in the API will not
 14254  // be included in the string output. The member name will be present, but the
 14255  // value will be replaced with "sensitive".
 14256  func (s QueryResultItem) String() string {
 14257  	return awsutil.Prettify(s)
 14258  }
 14259  
 14260  // GoString returns the string representation.
 14261  //
 14262  // API parameter values that are decorated as "sensitive" in the API will not
 14263  // be included in the string output. The member name will be present, but the
 14264  // value will be replaced with "sensitive".
 14265  func (s QueryResultItem) GoString() string {
 14266  	return s.String()
 14267  }
 14268  
 14269  // SetAdditionalAttributes sets the AdditionalAttributes field's value.
 14270  func (s *QueryResultItem) SetAdditionalAttributes(v []*AdditionalResultAttribute) *QueryResultItem {
 14271  	s.AdditionalAttributes = v
 14272  	return s
 14273  }
 14274  
 14275  // SetDocumentAttributes sets the DocumentAttributes field's value.
 14276  func (s *QueryResultItem) SetDocumentAttributes(v []*DocumentAttribute) *QueryResultItem {
 14277  	s.DocumentAttributes = v
 14278  	return s
 14279  }
 14280  
 14281  // SetDocumentExcerpt sets the DocumentExcerpt field's value.
 14282  func (s *QueryResultItem) SetDocumentExcerpt(v *TextWithHighlights) *QueryResultItem {
 14283  	s.DocumentExcerpt = v
 14284  	return s
 14285  }
 14286  
 14287  // SetDocumentId sets the DocumentId field's value.
 14288  func (s *QueryResultItem) SetDocumentId(v string) *QueryResultItem {
 14289  	s.DocumentId = &v
 14290  	return s
 14291  }
 14292  
 14293  // SetDocumentTitle sets the DocumentTitle field's value.
 14294  func (s *QueryResultItem) SetDocumentTitle(v *TextWithHighlights) *QueryResultItem {
 14295  	s.DocumentTitle = v
 14296  	return s
 14297  }
 14298  
 14299  // SetDocumentURI sets the DocumentURI field's value.
 14300  func (s *QueryResultItem) SetDocumentURI(v string) *QueryResultItem {
 14301  	s.DocumentURI = &v
 14302  	return s
 14303  }
 14304  
 14305  // SetFeedbackToken sets the FeedbackToken field's value.
 14306  func (s *QueryResultItem) SetFeedbackToken(v string) *QueryResultItem {
 14307  	s.FeedbackToken = &v
 14308  	return s
 14309  }
 14310  
 14311  // SetId sets the Id field's value.
 14312  func (s *QueryResultItem) SetId(v string) *QueryResultItem {
 14313  	s.Id = &v
 14314  	return s
 14315  }
 14316  
 14317  // SetScoreAttributes sets the ScoreAttributes field's value.
 14318  func (s *QueryResultItem) SetScoreAttributes(v *ScoreAttributes) *QueryResultItem {
 14319  	s.ScoreAttributes = v
 14320  	return s
 14321  }
 14322  
 14323  // SetType sets the Type field's value.
 14324  func (s *QueryResultItem) SetType(v string) *QueryResultItem {
 14325  	s.Type = &v
 14326  	return s
 14327  }
 14328  
 14329  // Summary information on a query suggestions block list.
 14330  //
 14331  // This includes information on the block list ID, block list name, when the
 14332  // block list was created, when the block list was last updated, and the count
 14333  // of block words/phrases in the block list.
 14334  //
 14335  // For information on the current quota limits for block lists, see Quotas for
 14336  // Amazon Kendra (https://docs.aws.amazon.com/kendra/latest/dg/quotas.html).
 14337  type QuerySuggestionsBlockListSummary struct {
 14338  	_ struct{} `type:"structure"`
 14339  
 14340  	// The date-time summary information for a query suggestions block list was
 14341  	// last created.
 14342  	CreatedAt *time.Time `type:"timestamp"`
 14343  
 14344  	// The identifier of a block list.
 14345  	Id *string `min:"36" type:"string"`
 14346  
 14347  	// The number of items in the block list file.
 14348  	ItemCount *int64 `type:"integer"`
 14349  
 14350  	// The name of the block list.
 14351  	Name *string `min:"1" type:"string"`
 14352  
 14353  	// The status of the block list.
 14354  	Status *string `type:"string" enum:"QuerySuggestionsBlockListStatus"`
 14355  
 14356  	// The date-time the block list was last updated.
 14357  	UpdatedAt *time.Time `type:"timestamp"`
 14358  }
 14359  
 14360  // String returns the string representation.
 14361  //
 14362  // API parameter values that are decorated as "sensitive" in the API will not
 14363  // be included in the string output. The member name will be present, but the
 14364  // value will be replaced with "sensitive".
 14365  func (s QuerySuggestionsBlockListSummary) String() string {
 14366  	return awsutil.Prettify(s)
 14367  }
 14368  
 14369  // GoString returns the string representation.
 14370  //
 14371  // API parameter values that are decorated as "sensitive" in the API will not
 14372  // be included in the string output. The member name will be present, but the
 14373  // value will be replaced with "sensitive".
 14374  func (s QuerySuggestionsBlockListSummary) GoString() string {
 14375  	return s.String()
 14376  }
 14377  
 14378  // SetCreatedAt sets the CreatedAt field's value.
 14379  func (s *QuerySuggestionsBlockListSummary) SetCreatedAt(v time.Time) *QuerySuggestionsBlockListSummary {
 14380  	s.CreatedAt = &v
 14381  	return s
 14382  }
 14383  
 14384  // SetId sets the Id field's value.
 14385  func (s *QuerySuggestionsBlockListSummary) SetId(v string) *QuerySuggestionsBlockListSummary {
 14386  	s.Id = &v
 14387  	return s
 14388  }
 14389  
 14390  // SetItemCount sets the ItemCount field's value.
 14391  func (s *QuerySuggestionsBlockListSummary) SetItemCount(v int64) *QuerySuggestionsBlockListSummary {
 14392  	s.ItemCount = &v
 14393  	return s
 14394  }
 14395  
 14396  // SetName sets the Name field's value.
 14397  func (s *QuerySuggestionsBlockListSummary) SetName(v string) *QuerySuggestionsBlockListSummary {
 14398  	s.Name = &v
 14399  	return s
 14400  }
 14401  
 14402  // SetStatus sets the Status field's value.
 14403  func (s *QuerySuggestionsBlockListSummary) SetStatus(v string) *QuerySuggestionsBlockListSummary {
 14404  	s.Status = &v
 14405  	return s
 14406  }
 14407  
 14408  // SetUpdatedAt sets the UpdatedAt field's value.
 14409  func (s *QuerySuggestionsBlockListSummary) SetUpdatedAt(v time.Time) *QuerySuggestionsBlockListSummary {
 14410  	s.UpdatedAt = &v
 14411  	return s
 14412  }
 14413  
 14414  // Provides information for manually tuning the relevance of a field in a search.
 14415  // When a query includes terms that match the field, the results are given a
 14416  // boost in the response based on these tuning parameters.
 14417  type Relevance struct {
 14418  	_ struct{} `type:"structure"`
 14419  
 14420  	// Specifies the time period that the boost applies to. For example, to make
 14421  	// the boost apply to documents with the field value within the last month,
 14422  	// you would use "2628000s". Once the field value is beyond the specified range,
 14423  	// the effect of the boost drops off. The higher the importance, the faster
 14424  	// the effect drops off. If you don't specify a value, the default is 3 months.
 14425  	// The value of the field is a numeric string followed by the character "s",
 14426  	// for example "86400s" for one day, or "604800s" for one week.
 14427  	//
 14428  	// Only applies to DATE fields.
 14429  	Duration *string `min:"1" type:"string"`
 14430  
 14431  	// Indicates that this field determines how "fresh" a document is. For example,
 14432  	// if document 1 was created on November 5, and document 2 was created on October
 14433  	// 31, document 1 is "fresher" than document 2. You can only set the Freshness
 14434  	// field on one DATE type field. Only applies to DATE fields.
 14435  	Freshness *bool `type:"boolean"`
 14436  
 14437  	// The relative importance of the field in the search. Larger numbers provide
 14438  	// more of a boost than smaller numbers.
 14439  	Importance *int64 `min:"1" type:"integer"`
 14440  
 14441  	// Determines how values should be interpreted.
 14442  	//
 14443  	// When the RankOrder field is ASCENDING, higher numbers are better. For example,
 14444  	// a document with a rating score of 10 is higher ranking than a document with
 14445  	// a rating score of 1.
 14446  	//
 14447  	// When the RankOrder field is DESCENDING, lower numbers are better. For example,
 14448  	// in a task tracking application, a priority 1 task is more important than
 14449  	// a priority 5 task.
 14450  	//
 14451  	// Only applies to LONG and DOUBLE fields.
 14452  	RankOrder *string `type:"string" enum:"Order"`
 14453  
 14454  	// A list of values that should be given a different boost when they appear
 14455  	// in the result list. For example, if you are boosting a field called "department,"
 14456  	// query terms that match the department field are boosted in the result. However,
 14457  	// you can add entries from the department field to boost documents with those
 14458  	// values higher.
 14459  	//
 14460  	// For example, you can add entries to the map with names of departments. If
 14461  	// you add "HR",5 and "Legal",3 those departments are given special attention
 14462  	// when they appear in the metadata of a document. When those terms appear they
 14463  	// are given the specified importance instead of the regular importance for
 14464  	// the boost.
 14465  	ValueImportanceMap map[string]*int64 `type:"map"`
 14466  }
 14467  
 14468  // String returns the string representation.
 14469  //
 14470  // API parameter values that are decorated as "sensitive" in the API will not
 14471  // be included in the string output. The member name will be present, but the
 14472  // value will be replaced with "sensitive".
 14473  func (s Relevance) String() string {
 14474  	return awsutil.Prettify(s)
 14475  }
 14476  
 14477  // GoString returns the string representation.
 14478  //
 14479  // API parameter values that are decorated as "sensitive" in the API will not
 14480  // be included in the string output. The member name will be present, but the
 14481  // value will be replaced with "sensitive".
 14482  func (s Relevance) GoString() string {
 14483  	return s.String()
 14484  }
 14485  
 14486  // Validate inspects the fields of the type to determine if they are valid.
 14487  func (s *Relevance) Validate() error {
 14488  	invalidParams := request.ErrInvalidParams{Context: "Relevance"}
 14489  	if s.Duration != nil && len(*s.Duration) < 1 {
 14490  		invalidParams.Add(request.NewErrParamMinLen("Duration", 1))
 14491  	}
 14492  	if s.Importance != nil && *s.Importance < 1 {
 14493  		invalidParams.Add(request.NewErrParamMinValue("Importance", 1))
 14494  	}
 14495  
 14496  	if invalidParams.Len() > 0 {
 14497  		return invalidParams
 14498  	}
 14499  	return nil
 14500  }
 14501  
 14502  // SetDuration sets the Duration field's value.
 14503  func (s *Relevance) SetDuration(v string) *Relevance {
 14504  	s.Duration = &v
 14505  	return s
 14506  }
 14507  
 14508  // SetFreshness sets the Freshness field's value.
 14509  func (s *Relevance) SetFreshness(v bool) *Relevance {
 14510  	s.Freshness = &v
 14511  	return s
 14512  }
 14513  
 14514  // SetImportance sets the Importance field's value.
 14515  func (s *Relevance) SetImportance(v int64) *Relevance {
 14516  	s.Importance = &v
 14517  	return s
 14518  }
 14519  
 14520  // SetRankOrder sets the RankOrder field's value.
 14521  func (s *Relevance) SetRankOrder(v string) *Relevance {
 14522  	s.RankOrder = &v
 14523  	return s
 14524  }
 14525  
 14526  // SetValueImportanceMap sets the ValueImportanceMap field's value.
 14527  func (s *Relevance) SetValueImportanceMap(v map[string]*int64) *Relevance {
 14528  	s.ValueImportanceMap = v
 14529  	return s
 14530  }
 14531  
 14532  // Provides feedback on how relevant a document is to a search. Your application
 14533  // uses the SubmitFeedback operation to provide relevance information.
 14534  type RelevanceFeedback struct {
 14535  	_ struct{} `type:"structure"`
 14536  
 14537  	// Whether to document was relevant or not relevant to the search.
 14538  	//
 14539  	// RelevanceValue is a required field
 14540  	RelevanceValue *string `type:"string" required:"true" enum:"RelevanceType"`
 14541  
 14542  	// The unique identifier of the search result that the user provided relevance
 14543  	// feedback for.
 14544  	//
 14545  	// ResultId is a required field
 14546  	ResultId *string `min:"1" type:"string" required:"true"`
 14547  }
 14548  
 14549  // String returns the string representation.
 14550  //
 14551  // API parameter values that are decorated as "sensitive" in the API will not
 14552  // be included in the string output. The member name will be present, but the
 14553  // value will be replaced with "sensitive".
 14554  func (s RelevanceFeedback) String() string {
 14555  	return awsutil.Prettify(s)
 14556  }
 14557  
 14558  // GoString returns the string representation.
 14559  //
 14560  // API parameter values that are decorated as "sensitive" in the API will not
 14561  // be included in the string output. The member name will be present, but the
 14562  // value will be replaced with "sensitive".
 14563  func (s RelevanceFeedback) GoString() string {
 14564  	return s.String()
 14565  }
 14566  
 14567  // Validate inspects the fields of the type to determine if they are valid.
 14568  func (s *RelevanceFeedback) Validate() error {
 14569  	invalidParams := request.ErrInvalidParams{Context: "RelevanceFeedback"}
 14570  	if s.RelevanceValue == nil {
 14571  		invalidParams.Add(request.NewErrParamRequired("RelevanceValue"))
 14572  	}
 14573  	if s.ResultId == nil {
 14574  		invalidParams.Add(request.NewErrParamRequired("ResultId"))
 14575  	}
 14576  	if s.ResultId != nil && len(*s.ResultId) < 1 {
 14577  		invalidParams.Add(request.NewErrParamMinLen("ResultId", 1))
 14578  	}
 14579  
 14580  	if invalidParams.Len() > 0 {
 14581  		return invalidParams
 14582  	}
 14583  	return nil
 14584  }
 14585  
 14586  // SetRelevanceValue sets the RelevanceValue field's value.
 14587  func (s *RelevanceFeedback) SetRelevanceValue(v string) *RelevanceFeedback {
 14588  	s.RelevanceValue = &v
 14589  	return s
 14590  }
 14591  
 14592  // SetResultId sets the ResultId field's value.
 14593  func (s *RelevanceFeedback) SetResultId(v string) *RelevanceFeedback {
 14594  	s.ResultId = &v
 14595  	return s
 14596  }
 14597  
 14598  type ResourceAlreadyExistException struct {
 14599  	_            struct{}                  `type:"structure"`
 14600  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 14601  
 14602  	Message_ *string `locationName:"Message" min:"1" type:"string"`
 14603  }
 14604  
 14605  // String returns the string representation.
 14606  //
 14607  // API parameter values that are decorated as "sensitive" in the API will not
 14608  // be included in the string output. The member name will be present, but the
 14609  // value will be replaced with "sensitive".
 14610  func (s ResourceAlreadyExistException) String() string {
 14611  	return awsutil.Prettify(s)
 14612  }
 14613  
 14614  // GoString returns the string representation.
 14615  //
 14616  // API parameter values that are decorated as "sensitive" in the API will not
 14617  // be included in the string output. The member name will be present, but the
 14618  // value will be replaced with "sensitive".
 14619  func (s ResourceAlreadyExistException) GoString() string {
 14620  	return s.String()
 14621  }
 14622  
 14623  func newErrorResourceAlreadyExistException(v protocol.ResponseMetadata) error {
 14624  	return &ResourceAlreadyExistException{
 14625  		RespMetadata: v,
 14626  	}
 14627  }
 14628  
 14629  // Code returns the exception type name.
 14630  func (s *ResourceAlreadyExistException) Code() string {
 14631  	return "ResourceAlreadyExistException"
 14632  }
 14633  
 14634  // Message returns the exception's message.
 14635  func (s *ResourceAlreadyExistException) Message() string {
 14636  	if s.Message_ != nil {
 14637  		return *s.Message_
 14638  	}
 14639  	return ""
 14640  }
 14641  
 14642  // OrigErr always returns nil, satisfies awserr.Error interface.
 14643  func (s *ResourceAlreadyExistException) OrigErr() error {
 14644  	return nil
 14645  }
 14646  
 14647  func (s *ResourceAlreadyExistException) Error() string {
 14648  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 14649  }
 14650  
 14651  // Status code returns the HTTP status code for the request's response error.
 14652  func (s *ResourceAlreadyExistException) StatusCode() int {
 14653  	return s.RespMetadata.StatusCode
 14654  }
 14655  
 14656  // RequestID returns the service's response RequestID for request.
 14657  func (s *ResourceAlreadyExistException) RequestID() string {
 14658  	return s.RespMetadata.RequestID
 14659  }
 14660  
 14661  type ResourceInUseException struct {
 14662  	_            struct{}                  `type:"structure"`
 14663  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 14664  
 14665  	Message_ *string `locationName:"Message" min:"1" type:"string"`
 14666  }
 14667  
 14668  // String returns the string representation.
 14669  //
 14670  // API parameter values that are decorated as "sensitive" in the API will not
 14671  // be included in the string output. The member name will be present, but the
 14672  // value will be replaced with "sensitive".
 14673  func (s ResourceInUseException) String() string {
 14674  	return awsutil.Prettify(s)
 14675  }
 14676  
 14677  // GoString returns the string representation.
 14678  //
 14679  // API parameter values that are decorated as "sensitive" in the API will not
 14680  // be included in the string output. The member name will be present, but the
 14681  // value will be replaced with "sensitive".
 14682  func (s ResourceInUseException) GoString() string {
 14683  	return s.String()
 14684  }
 14685  
 14686  func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
 14687  	return &ResourceInUseException{
 14688  		RespMetadata: v,
 14689  	}
 14690  }
 14691  
 14692  // Code returns the exception type name.
 14693  func (s *ResourceInUseException) Code() string {
 14694  	return "ResourceInUseException"
 14695  }
 14696  
 14697  // Message returns the exception's message.
 14698  func (s *ResourceInUseException) Message() string {
 14699  	if s.Message_ != nil {
 14700  		return *s.Message_
 14701  	}
 14702  	return ""
 14703  }
 14704  
 14705  // OrigErr always returns nil, satisfies awserr.Error interface.
 14706  func (s *ResourceInUseException) OrigErr() error {
 14707  	return nil
 14708  }
 14709  
 14710  func (s *ResourceInUseException) Error() string {
 14711  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 14712  }
 14713  
 14714  // Status code returns the HTTP status code for the request's response error.
 14715  func (s *ResourceInUseException) StatusCode() int {
 14716  	return s.RespMetadata.StatusCode
 14717  }
 14718  
 14719  // RequestID returns the service's response RequestID for request.
 14720  func (s *ResourceInUseException) RequestID() string {
 14721  	return s.RespMetadata.RequestID
 14722  }
 14723  
 14724  type ResourceNotFoundException struct {
 14725  	_            struct{}                  `type:"structure"`
 14726  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 14727  
 14728  	Message_ *string `locationName:"Message" min:"1" type:"string"`
 14729  }
 14730  
 14731  // String returns the string representation.
 14732  //
 14733  // API parameter values that are decorated as "sensitive" in the API will not
 14734  // be included in the string output. The member name will be present, but the
 14735  // value will be replaced with "sensitive".
 14736  func (s ResourceNotFoundException) String() string {
 14737  	return awsutil.Prettify(s)
 14738  }
 14739  
 14740  // GoString returns the string representation.
 14741  //
 14742  // API parameter values that are decorated as "sensitive" in the API will not
 14743  // be included in the string output. The member name will be present, but the
 14744  // value will be replaced with "sensitive".
 14745  func (s ResourceNotFoundException) GoString() string {
 14746  	return s.String()
 14747  }
 14748  
 14749  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
 14750  	return &ResourceNotFoundException{
 14751  		RespMetadata: v,
 14752  	}
 14753  }
 14754  
 14755  // Code returns the exception type name.
 14756  func (s *ResourceNotFoundException) Code() string {
 14757  	return "ResourceNotFoundException"
 14758  }
 14759  
 14760  // Message returns the exception's message.
 14761  func (s *ResourceNotFoundException) Message() string {
 14762  	if s.Message_ != nil {
 14763  		return *s.Message_
 14764  	}
 14765  	return ""
 14766  }
 14767  
 14768  // OrigErr always returns nil, satisfies awserr.Error interface.
 14769  func (s *ResourceNotFoundException) OrigErr() error {
 14770  	return nil
 14771  }
 14772  
 14773  func (s *ResourceNotFoundException) Error() string {
 14774  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 14775  }
 14776  
 14777  // Status code returns the HTTP status code for the request's response error.
 14778  func (s *ResourceNotFoundException) StatusCode() int {
 14779  	return s.RespMetadata.StatusCode
 14780  }
 14781  
 14782  // RequestID returns the service's response RequestID for request.
 14783  func (s *ResourceNotFoundException) RequestID() string {
 14784  	return s.RespMetadata.RequestID
 14785  }
 14786  
 14787  type ResourceUnavailableException struct {
 14788  	_            struct{}                  `type:"structure"`
 14789  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 14790  
 14791  	Message_ *string `locationName:"Message" min:"1" type:"string"`
 14792  }
 14793  
 14794  // String returns the string representation.
 14795  //
 14796  // API parameter values that are decorated as "sensitive" in the API will not
 14797  // be included in the string output. The member name will be present, but the
 14798  // value will be replaced with "sensitive".
 14799  func (s ResourceUnavailableException) String() string {
 14800  	return awsutil.Prettify(s)
 14801  }
 14802  
 14803  // GoString returns the string representation.
 14804  //
 14805  // API parameter values that are decorated as "sensitive" in the API will not
 14806  // be included in the string output. The member name will be present, but the
 14807  // value will be replaced with "sensitive".
 14808  func (s ResourceUnavailableException) GoString() string {
 14809  	return s.String()
 14810  }
 14811  
 14812  func newErrorResourceUnavailableException(v protocol.ResponseMetadata) error {
 14813  	return &ResourceUnavailableException{
 14814  		RespMetadata: v,
 14815  	}
 14816  }
 14817  
 14818  // Code returns the exception type name.
 14819  func (s *ResourceUnavailableException) Code() string {
 14820  	return "ResourceUnavailableException"
 14821  }
 14822  
 14823  // Message returns the exception's message.
 14824  func (s *ResourceUnavailableException) Message() string {
 14825  	if s.Message_ != nil {
 14826  		return *s.Message_
 14827  	}
 14828  	return ""
 14829  }
 14830  
 14831  // OrigErr always returns nil, satisfies awserr.Error interface.
 14832  func (s *ResourceUnavailableException) OrigErr() error {
 14833  	return nil
 14834  }
 14835  
 14836  func (s *ResourceUnavailableException) Error() string {
 14837  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 14838  }
 14839  
 14840  // Status code returns the HTTP status code for the request's response error.
 14841  func (s *ResourceUnavailableException) StatusCode() int {
 14842  	return s.RespMetadata.StatusCode
 14843  }
 14844  
 14845  // RequestID returns the service's response RequestID for request.
 14846  func (s *ResourceUnavailableException) RequestID() string {
 14847  	return s.RespMetadata.RequestID
 14848  }
 14849  
 14850  // Provides configuration information for a data source to index documents in
 14851  // an Amazon S3 bucket.
 14852  type S3DataSourceConfiguration struct {
 14853  	_ struct{} `type:"structure"`
 14854  
 14855  	// Provides the path to the S3 bucket that contains the user context filtering
 14856  	// files for the data source. For the format of the file, see Access control
 14857  	// for S3 data sources (https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html).
 14858  	AccessControlListConfiguration *AccessControlListConfiguration `type:"structure"`
 14859  
 14860  	// The name of the bucket that contains the documents.
 14861  	//
 14862  	// BucketName is a required field
 14863  	BucketName *string `min:"3" type:"string" required:"true"`
 14864  
 14865  	// Document metadata files that contain information such as the document access
 14866  	// control information, source URI, document author, and custom attributes.
 14867  	// Each metadata file contains metadata about a single document.
 14868  	DocumentsMetadataConfiguration *DocumentsMetadataConfiguration `type:"structure"`
 14869  
 14870  	// A list of glob patterns for documents that should not be indexed. If a document
 14871  	// that matches an inclusion prefix or inclusion pattern also matches an exclusion
 14872  	// pattern, the document is not indexed.
 14873  	//
 14874  	// Some examples (https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters)
 14875  	// are:
 14876  	//
 14877  	//    * *.png , *.jpg will exclude all PNG and JPEG image files in a directory
 14878  	//    (files with the extensions .png and .jpg).
 14879  	//
 14880  	//    * *internal* will exclude all files in a directory that contain 'internal'
 14881  	//    in the file name, such as 'internal', 'internal_only', 'company_internal'.
 14882  	//
 14883  	//    * **/*internal* will exclude all internal-related files in a directory
 14884  	//    and its subdirectories.
 14885  	ExclusionPatterns []*string `type:"list"`
 14886  
 14887  	// A list of glob patterns for documents that should be indexed. If a document
 14888  	// that matches an inclusion pattern also matches an exclusion pattern, the
 14889  	// document is not indexed.
 14890  	//
 14891  	// Some examples (https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters)
 14892  	// are:
 14893  	//
 14894  	//    * *.txt will include all text files in a directory (files with the extension
 14895  	//    .txt).
 14896  	//
 14897  	//    * **/*.txt will include all text files in a directory and its subdirectories.
 14898  	//
 14899  	//    * *tax* will include all files in a directory that contain 'tax' in the
 14900  	//    file name, such as 'tax', 'taxes', 'income_tax'.
 14901  	InclusionPatterns []*string `type:"list"`
 14902  
 14903  	// A list of S3 prefixes for the documents that should be included in the index.
 14904  	InclusionPrefixes []*string `type:"list"`
 14905  }
 14906  
 14907  // String returns the string representation.
 14908  //
 14909  // API parameter values that are decorated as "sensitive" in the API will not
 14910  // be included in the string output. The member name will be present, but the
 14911  // value will be replaced with "sensitive".
 14912  func (s S3DataSourceConfiguration) String() string {
 14913  	return awsutil.Prettify(s)
 14914  }
 14915  
 14916  // GoString returns the string representation.
 14917  //
 14918  // API parameter values that are decorated as "sensitive" in the API will not
 14919  // be included in the string output. The member name will be present, but the
 14920  // value will be replaced with "sensitive".
 14921  func (s S3DataSourceConfiguration) GoString() string {
 14922  	return s.String()
 14923  }
 14924  
 14925  // Validate inspects the fields of the type to determine if they are valid.
 14926  func (s *S3DataSourceConfiguration) Validate() error {
 14927  	invalidParams := request.ErrInvalidParams{Context: "S3DataSourceConfiguration"}
 14928  	if s.BucketName == nil {
 14929  		invalidParams.Add(request.NewErrParamRequired("BucketName"))
 14930  	}
 14931  	if s.BucketName != nil && len(*s.BucketName) < 3 {
 14932  		invalidParams.Add(request.NewErrParamMinLen("BucketName", 3))
 14933  	}
 14934  	if s.AccessControlListConfiguration != nil {
 14935  		if err := s.AccessControlListConfiguration.Validate(); err != nil {
 14936  			invalidParams.AddNested("AccessControlListConfiguration", err.(request.ErrInvalidParams))
 14937  		}
 14938  	}
 14939  	if s.DocumentsMetadataConfiguration != nil {
 14940  		if err := s.DocumentsMetadataConfiguration.Validate(); err != nil {
 14941  			invalidParams.AddNested("DocumentsMetadataConfiguration", err.(request.ErrInvalidParams))
 14942  		}
 14943  	}
 14944  
 14945  	if invalidParams.Len() > 0 {
 14946  		return invalidParams
 14947  	}
 14948  	return nil
 14949  }
 14950  
 14951  // SetAccessControlListConfiguration sets the AccessControlListConfiguration field's value.
 14952  func (s *S3DataSourceConfiguration) SetAccessControlListConfiguration(v *AccessControlListConfiguration) *S3DataSourceConfiguration {
 14953  	s.AccessControlListConfiguration = v
 14954  	return s
 14955  }
 14956  
 14957  // SetBucketName sets the BucketName field's value.
 14958  func (s *S3DataSourceConfiguration) SetBucketName(v string) *S3DataSourceConfiguration {
 14959  	s.BucketName = &v
 14960  	return s
 14961  }
 14962  
 14963  // SetDocumentsMetadataConfiguration sets the DocumentsMetadataConfiguration field's value.
 14964  func (s *S3DataSourceConfiguration) SetDocumentsMetadataConfiguration(v *DocumentsMetadataConfiguration) *S3DataSourceConfiguration {
 14965  	s.DocumentsMetadataConfiguration = v
 14966  	return s
 14967  }
 14968  
 14969  // SetExclusionPatterns sets the ExclusionPatterns field's value.
 14970  func (s *S3DataSourceConfiguration) SetExclusionPatterns(v []*string) *S3DataSourceConfiguration {
 14971  	s.ExclusionPatterns = v
 14972  	return s
 14973  }
 14974  
 14975  // SetInclusionPatterns sets the InclusionPatterns field's value.
 14976  func (s *S3DataSourceConfiguration) SetInclusionPatterns(v []*string) *S3DataSourceConfiguration {
 14977  	s.InclusionPatterns = v
 14978  	return s
 14979  }
 14980  
 14981  // SetInclusionPrefixes sets the InclusionPrefixes field's value.
 14982  func (s *S3DataSourceConfiguration) SetInclusionPrefixes(v []*string) *S3DataSourceConfiguration {
 14983  	s.InclusionPrefixes = v
 14984  	return s
 14985  }
 14986  
 14987  // Information required to find a specific file in an Amazon S3 bucket.
 14988  type S3Path struct {
 14989  	_ struct{} `type:"structure"`
 14990  
 14991  	// The name of the S3 bucket that contains the file.
 14992  	//
 14993  	// Bucket is a required field
 14994  	Bucket *string `min:"3" type:"string" required:"true"`
 14995  
 14996  	// The name of the file.
 14997  	//
 14998  	// Key is a required field
 14999  	Key *string `min:"1" type:"string" required:"true"`
 15000  }
 15001  
 15002  // String returns the string representation.
 15003  //
 15004  // API parameter values that are decorated as "sensitive" in the API will not
 15005  // be included in the string output. The member name will be present, but the
 15006  // value will be replaced with "sensitive".
 15007  func (s S3Path) String() string {
 15008  	return awsutil.Prettify(s)
 15009  }
 15010  
 15011  // GoString returns the string representation.
 15012  //
 15013  // API parameter values that are decorated as "sensitive" in the API will not
 15014  // be included in the string output. The member name will be present, but the
 15015  // value will be replaced with "sensitive".
 15016  func (s S3Path) GoString() string {
 15017  	return s.String()
 15018  }
 15019  
 15020  // Validate inspects the fields of the type to determine if they are valid.
 15021  func (s *S3Path) Validate() error {
 15022  	invalidParams := request.ErrInvalidParams{Context: "S3Path"}
 15023  	if s.Bucket == nil {
 15024  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
 15025  	}
 15026  	if s.Bucket != nil && len(*s.Bucket) < 3 {
 15027  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
 15028  	}
 15029  	if s.Key == nil {
 15030  		invalidParams.Add(request.NewErrParamRequired("Key"))
 15031  	}
 15032  	if s.Key != nil && len(*s.Key) < 1 {
 15033  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 15034  	}
 15035  
 15036  	if invalidParams.Len() > 0 {
 15037  		return invalidParams
 15038  	}
 15039  	return nil
 15040  }
 15041  
 15042  // SetBucket sets the Bucket field's value.
 15043  func (s *S3Path) SetBucket(v string) *S3Path {
 15044  	s.Bucket = &v
 15045  	return s
 15046  }
 15047  
 15048  // SetKey sets the Key field's value.
 15049  func (s *S3Path) SetKey(v string) *S3Path {
 15050  	s.Key = &v
 15051  	return s
 15052  }
 15053  
 15054  // Defines configuration for syncing a Salesforce chatter feed. The contents
 15055  // of the object comes from the Salesforce FeedItem table.
 15056  type SalesforceChatterFeedConfiguration struct {
 15057  	_ struct{} `type:"structure"`
 15058  
 15059  	// The name of the column in the Salesforce FeedItem table that contains the
 15060  	// content to index. Typically this is the Body column.
 15061  	//
 15062  	// DocumentDataFieldName is a required field
 15063  	DocumentDataFieldName *string `min:"1" type:"string" required:"true"`
 15064  
 15065  	// The name of the column in the Salesforce FeedItem table that contains the
 15066  	// title of the document. This is typically the Title column.
 15067  	DocumentTitleFieldName *string `min:"1" type:"string"`
 15068  
 15069  	// Maps fields from a Salesforce chatter feed into Amazon Kendra index fields.
 15070  	FieldMappings []*DataSourceToIndexFieldMapping `min:"1" type:"list"`
 15071  
 15072  	// Filters the documents in the feed based on status of the user. When you specify
 15073  	// ACTIVE_USERS only documents from users who have an active account are indexed.
 15074  	// When you specify STANDARD_USER only documents for Salesforce standard users
 15075  	// are documented. You can specify both.
 15076  	IncludeFilterTypes []*string `min:"1" type:"list"`
 15077  }
 15078  
 15079  // String returns the string representation.
 15080  //
 15081  // API parameter values that are decorated as "sensitive" in the API will not
 15082  // be included in the string output. The member name will be present, but the
 15083  // value will be replaced with "sensitive".
 15084  func (s SalesforceChatterFeedConfiguration) String() string {
 15085  	return awsutil.Prettify(s)
 15086  }
 15087  
 15088  // GoString returns the string representation.
 15089  //
 15090  // API parameter values that are decorated as "sensitive" in the API will not
 15091  // be included in the string output. The member name will be present, but the
 15092  // value will be replaced with "sensitive".
 15093  func (s SalesforceChatterFeedConfiguration) GoString() string {
 15094  	return s.String()
 15095  }
 15096  
 15097  // Validate inspects the fields of the type to determine if they are valid.
 15098  func (s *SalesforceChatterFeedConfiguration) Validate() error {
 15099  	invalidParams := request.ErrInvalidParams{Context: "SalesforceChatterFeedConfiguration"}
 15100  	if s.DocumentDataFieldName == nil {
 15101  		invalidParams.Add(request.NewErrParamRequired("DocumentDataFieldName"))
 15102  	}
 15103  	if s.DocumentDataFieldName != nil && len(*s.DocumentDataFieldName) < 1 {
 15104  		invalidParams.Add(request.NewErrParamMinLen("DocumentDataFieldName", 1))
 15105  	}
 15106  	if s.DocumentTitleFieldName != nil && len(*s.DocumentTitleFieldName) < 1 {
 15107  		invalidParams.Add(request.NewErrParamMinLen("DocumentTitleFieldName", 1))
 15108  	}
 15109  	if s.FieldMappings != nil && len(s.FieldMappings) < 1 {
 15110  		invalidParams.Add(request.NewErrParamMinLen("FieldMappings", 1))
 15111  	}
 15112  	if s.IncludeFilterTypes != nil && len(s.IncludeFilterTypes) < 1 {
 15113  		invalidParams.Add(request.NewErrParamMinLen("IncludeFilterTypes", 1))
 15114  	}
 15115  	if s.FieldMappings != nil {
 15116  		for i, v := range s.FieldMappings {
 15117  			if v == nil {
 15118  				continue
 15119  			}
 15120  			if err := v.Validate(); err != nil {
 15121  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(request.ErrInvalidParams))
 15122  			}
 15123  		}
 15124  	}
 15125  
 15126  	if invalidParams.Len() > 0 {
 15127  		return invalidParams
 15128  	}
 15129  	return nil
 15130  }
 15131  
 15132  // SetDocumentDataFieldName sets the DocumentDataFieldName field's value.
 15133  func (s *SalesforceChatterFeedConfiguration) SetDocumentDataFieldName(v string) *SalesforceChatterFeedConfiguration {
 15134  	s.DocumentDataFieldName = &v
 15135  	return s
 15136  }
 15137  
 15138  // SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
 15139  func (s *SalesforceChatterFeedConfiguration) SetDocumentTitleFieldName(v string) *SalesforceChatterFeedConfiguration {
 15140  	s.DocumentTitleFieldName = &v
 15141  	return s
 15142  }
 15143  
 15144  // SetFieldMappings sets the FieldMappings field's value.
 15145  func (s *SalesforceChatterFeedConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *SalesforceChatterFeedConfiguration {
 15146  	s.FieldMappings = v
 15147  	return s
 15148  }
 15149  
 15150  // SetIncludeFilterTypes sets the IncludeFilterTypes field's value.
 15151  func (s *SalesforceChatterFeedConfiguration) SetIncludeFilterTypes(v []*string) *SalesforceChatterFeedConfiguration {
 15152  	s.IncludeFilterTypes = v
 15153  	return s
 15154  }
 15155  
 15156  // Provides configuration information for connecting to a Salesforce data source.
 15157  type SalesforceConfiguration struct {
 15158  	_ struct{} `type:"structure"`
 15159  
 15160  	// Specifies configuration information for Salesforce chatter feeds.
 15161  	ChatterFeedConfiguration *SalesforceChatterFeedConfiguration `type:"structure"`
 15162  
 15163  	// Indicates whether Amazon Kendra should index attachments to Salesforce objects.
 15164  	CrawlAttachments *bool `type:"boolean"`
 15165  
 15166  	// A list of regular expression patterns. Documents that match the patterns
 15167  	// are excluded from the index. Documents that don't match the patterns are
 15168  	// included in the index. If a document matches both an exclusion pattern and
 15169  	// an inclusion pattern, the document is not included in the index.
 15170  	//
 15171  	// The regex is applied to the name of the attached file.
 15172  	ExcludeAttachmentFilePatterns []*string `type:"list"`
 15173  
 15174  	// A list of regular expression patterns. Documents that match the patterns
 15175  	// are included in the index. Documents that don't match the patterns are excluded
 15176  	// from the index. If a document matches both an inclusion pattern and an exclusion
 15177  	// pattern, the document is not included in the index.
 15178  	//
 15179  	// The regex is applied to the name of the attached file.
 15180  	IncludeAttachmentFilePatterns []*string `type:"list"`
 15181  
 15182  	// Specifies configuration information for the knowledge article types that
 15183  	// Amazon Kendra indexes. Amazon Kendra indexes standard knowledge articles
 15184  	// and the standard fields of knowledge articles, or the custom fields of custom
 15185  	// knowledge articles, but not both.
 15186  	KnowledgeArticleConfiguration *SalesforceKnowledgeArticleConfiguration `type:"structure"`
 15187  
 15188  	// The Amazon Resource Name (ARN) of an Secrets Managersecret that contains
 15189  	// the key/value pairs required to connect to your Salesforce instance. The
 15190  	// secret must contain a JSON structure with the following keys:
 15191  	//
 15192  	//    * authenticationUrl - The OAUTH endpoint that Amazon Kendra connects to
 15193  	//    get an OAUTH token.
 15194  	//
 15195  	//    * consumerKey - The application public key generated when you created
 15196  	//    your Salesforce application.
 15197  	//
 15198  	//    * consumerSecret - The application private key generated when you created
 15199  	//    your Salesforce application.
 15200  	//
 15201  	//    * password - The password associated with the user logging in to the Salesforce
 15202  	//    instance.
 15203  	//
 15204  	//    * securityToken - The token associated with the user account logging in
 15205  	//    to the Salesforce instance.
 15206  	//
 15207  	//    * username - The user name of the user logging in to the Salesforce instance.
 15208  	//
 15209  	// SecretArn is a required field
 15210  	SecretArn *string `min:"1" type:"string" required:"true"`
 15211  
 15212  	// The instance URL for the Salesforce site that you want to index.
 15213  	//
 15214  	// ServerUrl is a required field
 15215  	ServerUrl *string `min:"1" type:"string" required:"true"`
 15216  
 15217  	// Provides configuration information for processing attachments to Salesforce
 15218  	// standard objects.
 15219  	StandardObjectAttachmentConfiguration *SalesforceStandardObjectAttachmentConfiguration `type:"structure"`
 15220  
 15221  	// Specifies the Salesforce standard objects that Amazon Kendra indexes.
 15222  	StandardObjectConfigurations []*SalesforceStandardObjectConfiguration `min:"1" type:"list"`
 15223  }
 15224  
 15225  // String returns the string representation.
 15226  //
 15227  // API parameter values that are decorated as "sensitive" in the API will not
 15228  // be included in the string output. The member name will be present, but the
 15229  // value will be replaced with "sensitive".
 15230  func (s SalesforceConfiguration) String() string {
 15231  	return awsutil.Prettify(s)
 15232  }
 15233  
 15234  // GoString returns the string representation.
 15235  //
 15236  // API parameter values that are decorated as "sensitive" in the API will not
 15237  // be included in the string output. The member name will be present, but the
 15238  // value will be replaced with "sensitive".
 15239  func (s SalesforceConfiguration) GoString() string {
 15240  	return s.String()
 15241  }
 15242  
 15243  // Validate inspects the fields of the type to determine if they are valid.
 15244  func (s *SalesforceConfiguration) Validate() error {
 15245  	invalidParams := request.ErrInvalidParams{Context: "SalesforceConfiguration"}
 15246  	if s.SecretArn == nil {
 15247  		invalidParams.Add(request.NewErrParamRequired("SecretArn"))
 15248  	}
 15249  	if s.SecretArn != nil && len(*s.SecretArn) < 1 {
 15250  		invalidParams.Add(request.NewErrParamMinLen("SecretArn", 1))
 15251  	}
 15252  	if s.ServerUrl == nil {
 15253  		invalidParams.Add(request.NewErrParamRequired("ServerUrl"))
 15254  	}
 15255  	if s.ServerUrl != nil && len(*s.ServerUrl) < 1 {
 15256  		invalidParams.Add(request.NewErrParamMinLen("ServerUrl", 1))
 15257  	}
 15258  	if s.StandardObjectConfigurations != nil && len(s.StandardObjectConfigurations) < 1 {
 15259  		invalidParams.Add(request.NewErrParamMinLen("StandardObjectConfigurations", 1))
 15260  	}
 15261  	if s.ChatterFeedConfiguration != nil {
 15262  		if err := s.ChatterFeedConfiguration.Validate(); err != nil {
 15263  			invalidParams.AddNested("ChatterFeedConfiguration", err.(request.ErrInvalidParams))
 15264  		}
 15265  	}
 15266  	if s.KnowledgeArticleConfiguration != nil {
 15267  		if err := s.KnowledgeArticleConfiguration.Validate(); err != nil {
 15268  			invalidParams.AddNested("KnowledgeArticleConfiguration", err.(request.ErrInvalidParams))
 15269  		}
 15270  	}
 15271  	if s.StandardObjectAttachmentConfiguration != nil {
 15272  		if err := s.StandardObjectAttachmentConfiguration.Validate(); err != nil {
 15273  			invalidParams.AddNested("StandardObjectAttachmentConfiguration", err.(request.ErrInvalidParams))
 15274  		}
 15275  	}
 15276  	if s.StandardObjectConfigurations != nil {
 15277  		for i, v := range s.StandardObjectConfigurations {
 15278  			if v == nil {
 15279  				continue
 15280  			}
 15281  			if err := v.Validate(); err != nil {
 15282  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StandardObjectConfigurations", i), err.(request.ErrInvalidParams))
 15283  			}
 15284  		}
 15285  	}
 15286  
 15287  	if invalidParams.Len() > 0 {
 15288  		return invalidParams
 15289  	}
 15290  	return nil
 15291  }
 15292  
 15293  // SetChatterFeedConfiguration sets the ChatterFeedConfiguration field's value.
 15294  func (s *SalesforceConfiguration) SetChatterFeedConfiguration(v *SalesforceChatterFeedConfiguration) *SalesforceConfiguration {
 15295  	s.ChatterFeedConfiguration = v
 15296  	return s
 15297  }
 15298  
 15299  // SetCrawlAttachments sets the CrawlAttachments field's value.
 15300  func (s *SalesforceConfiguration) SetCrawlAttachments(v bool) *SalesforceConfiguration {
 15301  	s.CrawlAttachments = &v
 15302  	return s
 15303  }
 15304  
 15305  // SetExcludeAttachmentFilePatterns sets the ExcludeAttachmentFilePatterns field's value.
 15306  func (s *SalesforceConfiguration) SetExcludeAttachmentFilePatterns(v []*string) *SalesforceConfiguration {
 15307  	s.ExcludeAttachmentFilePatterns = v
 15308  	return s
 15309  }
 15310  
 15311  // SetIncludeAttachmentFilePatterns sets the IncludeAttachmentFilePatterns field's value.
 15312  func (s *SalesforceConfiguration) SetIncludeAttachmentFilePatterns(v []*string) *SalesforceConfiguration {
 15313  	s.IncludeAttachmentFilePatterns = v
 15314  	return s
 15315  }
 15316  
 15317  // SetKnowledgeArticleConfiguration sets the KnowledgeArticleConfiguration field's value.
 15318  func (s *SalesforceConfiguration) SetKnowledgeArticleConfiguration(v *SalesforceKnowledgeArticleConfiguration) *SalesforceConfiguration {
 15319  	s.KnowledgeArticleConfiguration = v
 15320  	return s
 15321  }
 15322  
 15323  // SetSecretArn sets the SecretArn field's value.
 15324  func (s *SalesforceConfiguration) SetSecretArn(v string) *SalesforceConfiguration {
 15325  	s.SecretArn = &v
 15326  	return s
 15327  }
 15328  
 15329  // SetServerUrl sets the ServerUrl field's value.
 15330  func (s *SalesforceConfiguration) SetServerUrl(v string) *SalesforceConfiguration {
 15331  	s.ServerUrl = &v
 15332  	return s
 15333  }
 15334  
 15335  // SetStandardObjectAttachmentConfiguration sets the StandardObjectAttachmentConfiguration field's value.
 15336  func (s *SalesforceConfiguration) SetStandardObjectAttachmentConfiguration(v *SalesforceStandardObjectAttachmentConfiguration) *SalesforceConfiguration {
 15337  	s.StandardObjectAttachmentConfiguration = v
 15338  	return s
 15339  }
 15340  
 15341  // SetStandardObjectConfigurations sets the StandardObjectConfigurations field's value.
 15342  func (s *SalesforceConfiguration) SetStandardObjectConfigurations(v []*SalesforceStandardObjectConfiguration) *SalesforceConfiguration {
 15343  	s.StandardObjectConfigurations = v
 15344  	return s
 15345  }
 15346  
 15347  // Provides configuration information for indexing Salesforce custom articles.
 15348  type SalesforceCustomKnowledgeArticleTypeConfiguration struct {
 15349  	_ struct{} `type:"structure"`
 15350  
 15351  	// The name of the field in the custom knowledge article that contains the document
 15352  	// data to index.
 15353  	//
 15354  	// DocumentDataFieldName is a required field
 15355  	DocumentDataFieldName *string `min:"1" type:"string" required:"true"`
 15356  
 15357  	// The name of the field in the custom knowledge article that contains the document
 15358  	// title.
 15359  	DocumentTitleFieldName *string `min:"1" type:"string"`
 15360  
 15361  	// One or more objects that map fields in the custom knowledge article to fields
 15362  	// in the Amazon Kendra index.
 15363  	FieldMappings []*DataSourceToIndexFieldMapping `min:"1" type:"list"`
 15364  
 15365  	// The name of the configuration.
 15366  	//
 15367  	// Name is a required field
 15368  	Name *string `min:"1" type:"string" required:"true"`
 15369  }
 15370  
 15371  // String returns the string representation.
 15372  //
 15373  // API parameter values that are decorated as "sensitive" in the API will not
 15374  // be included in the string output. The member name will be present, but the
 15375  // value will be replaced with "sensitive".
 15376  func (s SalesforceCustomKnowledgeArticleTypeConfiguration) String() string {
 15377  	return awsutil.Prettify(s)
 15378  }
 15379  
 15380  // GoString returns the string representation.
 15381  //
 15382  // API parameter values that are decorated as "sensitive" in the API will not
 15383  // be included in the string output. The member name will be present, but the
 15384  // value will be replaced with "sensitive".
 15385  func (s SalesforceCustomKnowledgeArticleTypeConfiguration) GoString() string {
 15386  	return s.String()
 15387  }
 15388  
 15389  // Validate inspects the fields of the type to determine if they are valid.
 15390  func (s *SalesforceCustomKnowledgeArticleTypeConfiguration) Validate() error {
 15391  	invalidParams := request.ErrInvalidParams{Context: "SalesforceCustomKnowledgeArticleTypeConfiguration"}
 15392  	if s.DocumentDataFieldName == nil {
 15393  		invalidParams.Add(request.NewErrParamRequired("DocumentDataFieldName"))
 15394  	}
 15395  	if s.DocumentDataFieldName != nil && len(*s.DocumentDataFieldName) < 1 {
 15396  		invalidParams.Add(request.NewErrParamMinLen("DocumentDataFieldName", 1))
 15397  	}
 15398  	if s.DocumentTitleFieldName != nil && len(*s.DocumentTitleFieldName) < 1 {
 15399  		invalidParams.Add(request.NewErrParamMinLen("DocumentTitleFieldName", 1))
 15400  	}
 15401  	if s.FieldMappings != nil && len(s.FieldMappings) < 1 {
 15402  		invalidParams.Add(request.NewErrParamMinLen("FieldMappings", 1))
 15403  	}
 15404  	if s.Name == nil {
 15405  		invalidParams.Add(request.NewErrParamRequired("Name"))
 15406  	}
 15407  	if s.Name != nil && len(*s.Name) < 1 {
 15408  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 15409  	}
 15410  	if s.FieldMappings != nil {
 15411  		for i, v := range s.FieldMappings {
 15412  			if v == nil {
 15413  				continue
 15414  			}
 15415  			if err := v.Validate(); err != nil {
 15416  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(request.ErrInvalidParams))
 15417  			}
 15418  		}
 15419  	}
 15420  
 15421  	if invalidParams.Len() > 0 {
 15422  		return invalidParams
 15423  	}
 15424  	return nil
 15425  }
 15426  
 15427  // SetDocumentDataFieldName sets the DocumentDataFieldName field's value.
 15428  func (s *SalesforceCustomKnowledgeArticleTypeConfiguration) SetDocumentDataFieldName(v string) *SalesforceCustomKnowledgeArticleTypeConfiguration {
 15429  	s.DocumentDataFieldName = &v
 15430  	return s
 15431  }
 15432  
 15433  // SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
 15434  func (s *SalesforceCustomKnowledgeArticleTypeConfiguration) SetDocumentTitleFieldName(v string) *SalesforceCustomKnowledgeArticleTypeConfiguration {
 15435  	s.DocumentTitleFieldName = &v
 15436  	return s
 15437  }
 15438  
 15439  // SetFieldMappings sets the FieldMappings field's value.
 15440  func (s *SalesforceCustomKnowledgeArticleTypeConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *SalesforceCustomKnowledgeArticleTypeConfiguration {
 15441  	s.FieldMappings = v
 15442  	return s
 15443  }
 15444  
 15445  // SetName sets the Name field's value.
 15446  func (s *SalesforceCustomKnowledgeArticleTypeConfiguration) SetName(v string) *SalesforceCustomKnowledgeArticleTypeConfiguration {
 15447  	s.Name = &v
 15448  	return s
 15449  }
 15450  
 15451  // Specifies configuration information for the knowledge article types that
 15452  // Amazon Kendra indexes. Amazon Kendra indexes standard knowledge articles
 15453  // and the standard fields of knowledge articles, or the custom fields of custom
 15454  // knowledge articles, but not both
 15455  type SalesforceKnowledgeArticleConfiguration struct {
 15456  	_ struct{} `type:"structure"`
 15457  
 15458  	// Provides configuration information for custom Salesforce knowledge articles.
 15459  	CustomKnowledgeArticleTypeConfigurations []*SalesforceCustomKnowledgeArticleTypeConfiguration `min:"1" type:"list"`
 15460  
 15461  	// Specifies the document states that should be included when Amazon Kendra
 15462  	// indexes knowledge articles. You must specify at least one state.
 15463  	//
 15464  	// IncludedStates is a required field
 15465  	IncludedStates []*string `min:"1" type:"list" required:"true"`
 15466  
 15467  	// Provides configuration information for standard Salesforce knowledge articles.
 15468  	StandardKnowledgeArticleTypeConfiguration *SalesforceStandardKnowledgeArticleTypeConfiguration `type:"structure"`
 15469  }
 15470  
 15471  // String returns the string representation.
 15472  //
 15473  // API parameter values that are decorated as "sensitive" in the API will not
 15474  // be included in the string output. The member name will be present, but the
 15475  // value will be replaced with "sensitive".
 15476  func (s SalesforceKnowledgeArticleConfiguration) String() string {
 15477  	return awsutil.Prettify(s)
 15478  }
 15479  
 15480  // GoString returns the string representation.
 15481  //
 15482  // API parameter values that are decorated as "sensitive" in the API will not
 15483  // be included in the string output. The member name will be present, but the
 15484  // value will be replaced with "sensitive".
 15485  func (s SalesforceKnowledgeArticleConfiguration) GoString() string {
 15486  	return s.String()
 15487  }
 15488  
 15489  // Validate inspects the fields of the type to determine if they are valid.
 15490  func (s *SalesforceKnowledgeArticleConfiguration) Validate() error {
 15491  	invalidParams := request.ErrInvalidParams{Context: "SalesforceKnowledgeArticleConfiguration"}
 15492  	if s.CustomKnowledgeArticleTypeConfigurations != nil && len(s.CustomKnowledgeArticleTypeConfigurations) < 1 {
 15493  		invalidParams.Add(request.NewErrParamMinLen("CustomKnowledgeArticleTypeConfigurations", 1))
 15494  	}
 15495  	if s.IncludedStates == nil {
 15496  		invalidParams.Add(request.NewErrParamRequired("IncludedStates"))
 15497  	}
 15498  	if s.IncludedStates != nil && len(s.IncludedStates) < 1 {
 15499  		invalidParams.Add(request.NewErrParamMinLen("IncludedStates", 1))
 15500  	}
 15501  	if s.CustomKnowledgeArticleTypeConfigurations != nil {
 15502  		for i, v := range s.CustomKnowledgeArticleTypeConfigurations {
 15503  			if v == nil {
 15504  				continue
 15505  			}
 15506  			if err := v.Validate(); err != nil {
 15507  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CustomKnowledgeArticleTypeConfigurations", i), err.(request.ErrInvalidParams))
 15508  			}
 15509  		}
 15510  	}
 15511  	if s.StandardKnowledgeArticleTypeConfiguration != nil {
 15512  		if err := s.StandardKnowledgeArticleTypeConfiguration.Validate(); err != nil {
 15513  			invalidParams.AddNested("StandardKnowledgeArticleTypeConfiguration", err.(request.ErrInvalidParams))
 15514  		}
 15515  	}
 15516  
 15517  	if invalidParams.Len() > 0 {
 15518  		return invalidParams
 15519  	}
 15520  	return nil
 15521  }
 15522  
 15523  // SetCustomKnowledgeArticleTypeConfigurations sets the CustomKnowledgeArticleTypeConfigurations field's value.
 15524  func (s *SalesforceKnowledgeArticleConfiguration) SetCustomKnowledgeArticleTypeConfigurations(v []*SalesforceCustomKnowledgeArticleTypeConfiguration) *SalesforceKnowledgeArticleConfiguration {
 15525  	s.CustomKnowledgeArticleTypeConfigurations = v
 15526  	return s
 15527  }
 15528  
 15529  // SetIncludedStates sets the IncludedStates field's value.
 15530  func (s *SalesforceKnowledgeArticleConfiguration) SetIncludedStates(v []*string) *SalesforceKnowledgeArticleConfiguration {
 15531  	s.IncludedStates = v
 15532  	return s
 15533  }
 15534  
 15535  // SetStandardKnowledgeArticleTypeConfiguration sets the StandardKnowledgeArticleTypeConfiguration field's value.
 15536  func (s *SalesforceKnowledgeArticleConfiguration) SetStandardKnowledgeArticleTypeConfiguration(v *SalesforceStandardKnowledgeArticleTypeConfiguration) *SalesforceKnowledgeArticleConfiguration {
 15537  	s.StandardKnowledgeArticleTypeConfiguration = v
 15538  	return s
 15539  }
 15540  
 15541  // Provides configuration information for standard Salesforce knowledge articles.
 15542  type SalesforceStandardKnowledgeArticleTypeConfiguration struct {
 15543  	_ struct{} `type:"structure"`
 15544  
 15545  	// The name of the field that contains the document data to index.
 15546  	//
 15547  	// DocumentDataFieldName is a required field
 15548  	DocumentDataFieldName *string `min:"1" type:"string" required:"true"`
 15549  
 15550  	// The name of the field that contains the document title.
 15551  	DocumentTitleFieldName *string `min:"1" type:"string"`
 15552  
 15553  	// One or more objects that map fields in the knowledge article to Amazon Kendra
 15554  	// index fields. The index field must exist before you can map a Salesforce
 15555  	// field to it.
 15556  	FieldMappings []*DataSourceToIndexFieldMapping `min:"1" type:"list"`
 15557  }
 15558  
 15559  // String returns the string representation.
 15560  //
 15561  // API parameter values that are decorated as "sensitive" in the API will not
 15562  // be included in the string output. The member name will be present, but the
 15563  // value will be replaced with "sensitive".
 15564  func (s SalesforceStandardKnowledgeArticleTypeConfiguration) String() string {
 15565  	return awsutil.Prettify(s)
 15566  }
 15567  
 15568  // GoString returns the string representation.
 15569  //
 15570  // API parameter values that are decorated as "sensitive" in the API will not
 15571  // be included in the string output. The member name will be present, but the
 15572  // value will be replaced with "sensitive".
 15573  func (s SalesforceStandardKnowledgeArticleTypeConfiguration) GoString() string {
 15574  	return s.String()
 15575  }
 15576  
 15577  // Validate inspects the fields of the type to determine if they are valid.
 15578  func (s *SalesforceStandardKnowledgeArticleTypeConfiguration) Validate() error {
 15579  	invalidParams := request.ErrInvalidParams{Context: "SalesforceStandardKnowledgeArticleTypeConfiguration"}
 15580  	if s.DocumentDataFieldName == nil {
 15581  		invalidParams.Add(request.NewErrParamRequired("DocumentDataFieldName"))
 15582  	}
 15583  	if s.DocumentDataFieldName != nil && len(*s.DocumentDataFieldName) < 1 {
 15584  		invalidParams.Add(request.NewErrParamMinLen("DocumentDataFieldName", 1))
 15585  	}
 15586  	if s.DocumentTitleFieldName != nil && len(*s.DocumentTitleFieldName) < 1 {
 15587  		invalidParams.Add(request.NewErrParamMinLen("DocumentTitleFieldName", 1))
 15588  	}
 15589  	if s.FieldMappings != nil && len(s.FieldMappings) < 1 {
 15590  		invalidParams.Add(request.NewErrParamMinLen("FieldMappings", 1))
 15591  	}
 15592  	if s.FieldMappings != nil {
 15593  		for i, v := range s.FieldMappings {
 15594  			if v == nil {
 15595  				continue
 15596  			}
 15597  			if err := v.Validate(); err != nil {
 15598  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(request.ErrInvalidParams))
 15599  			}
 15600  		}
 15601  	}
 15602  
 15603  	if invalidParams.Len() > 0 {
 15604  		return invalidParams
 15605  	}
 15606  	return nil
 15607  }
 15608  
 15609  // SetDocumentDataFieldName sets the DocumentDataFieldName field's value.
 15610  func (s *SalesforceStandardKnowledgeArticleTypeConfiguration) SetDocumentDataFieldName(v string) *SalesforceStandardKnowledgeArticleTypeConfiguration {
 15611  	s.DocumentDataFieldName = &v
 15612  	return s
 15613  }
 15614  
 15615  // SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
 15616  func (s *SalesforceStandardKnowledgeArticleTypeConfiguration) SetDocumentTitleFieldName(v string) *SalesforceStandardKnowledgeArticleTypeConfiguration {
 15617  	s.DocumentTitleFieldName = &v
 15618  	return s
 15619  }
 15620  
 15621  // SetFieldMappings sets the FieldMappings field's value.
 15622  func (s *SalesforceStandardKnowledgeArticleTypeConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *SalesforceStandardKnowledgeArticleTypeConfiguration {
 15623  	s.FieldMappings = v
 15624  	return s
 15625  }
 15626  
 15627  // Provides configuration information for processing attachments to Salesforce
 15628  // standard objects.
 15629  type SalesforceStandardObjectAttachmentConfiguration struct {
 15630  	_ struct{} `type:"structure"`
 15631  
 15632  	// The name of the field used for the document title.
 15633  	DocumentTitleFieldName *string `min:"1" type:"string"`
 15634  
 15635  	// One or more objects that map fields in attachments to Amazon Kendra index
 15636  	// fields.
 15637  	FieldMappings []*DataSourceToIndexFieldMapping `min:"1" type:"list"`
 15638  }
 15639  
 15640  // String returns the string representation.
 15641  //
 15642  // API parameter values that are decorated as "sensitive" in the API will not
 15643  // be included in the string output. The member name will be present, but the
 15644  // value will be replaced with "sensitive".
 15645  func (s SalesforceStandardObjectAttachmentConfiguration) String() string {
 15646  	return awsutil.Prettify(s)
 15647  }
 15648  
 15649  // GoString returns the string representation.
 15650  //
 15651  // API parameter values that are decorated as "sensitive" in the API will not
 15652  // be included in the string output. The member name will be present, but the
 15653  // value will be replaced with "sensitive".
 15654  func (s SalesforceStandardObjectAttachmentConfiguration) GoString() string {
 15655  	return s.String()
 15656  }
 15657  
 15658  // Validate inspects the fields of the type to determine if they are valid.
 15659  func (s *SalesforceStandardObjectAttachmentConfiguration) Validate() error {
 15660  	invalidParams := request.ErrInvalidParams{Context: "SalesforceStandardObjectAttachmentConfiguration"}
 15661  	if s.DocumentTitleFieldName != nil && len(*s.DocumentTitleFieldName) < 1 {
 15662  		invalidParams.Add(request.NewErrParamMinLen("DocumentTitleFieldName", 1))
 15663  	}
 15664  	if s.FieldMappings != nil && len(s.FieldMappings) < 1 {
 15665  		invalidParams.Add(request.NewErrParamMinLen("FieldMappings", 1))
 15666  	}
 15667  	if s.FieldMappings != nil {
 15668  		for i, v := range s.FieldMappings {
 15669  			if v == nil {
 15670  				continue
 15671  			}
 15672  			if err := v.Validate(); err != nil {
 15673  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(request.ErrInvalidParams))
 15674  			}
 15675  		}
 15676  	}
 15677  
 15678  	if invalidParams.Len() > 0 {
 15679  		return invalidParams
 15680  	}
 15681  	return nil
 15682  }
 15683  
 15684  // SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
 15685  func (s *SalesforceStandardObjectAttachmentConfiguration) SetDocumentTitleFieldName(v string) *SalesforceStandardObjectAttachmentConfiguration {
 15686  	s.DocumentTitleFieldName = &v
 15687  	return s
 15688  }
 15689  
 15690  // SetFieldMappings sets the FieldMappings field's value.
 15691  func (s *SalesforceStandardObjectAttachmentConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *SalesforceStandardObjectAttachmentConfiguration {
 15692  	s.FieldMappings = v
 15693  	return s
 15694  }
 15695  
 15696  // Specifies configuration information for indexing a single standard object.
 15697  type SalesforceStandardObjectConfiguration struct {
 15698  	_ struct{} `type:"structure"`
 15699  
 15700  	// The name of the field in the standard object table that contains the document
 15701  	// contents.
 15702  	//
 15703  	// DocumentDataFieldName is a required field
 15704  	DocumentDataFieldName *string `min:"1" type:"string" required:"true"`
 15705  
 15706  	// The name of the field in the standard object table that contains the document
 15707  	// title.
 15708  	DocumentTitleFieldName *string `min:"1" type:"string"`
 15709  
 15710  	// One or more objects that map fields in the standard object to Amazon Kendra
 15711  	// index fields. The index field must exist before you can map a Salesforce
 15712  	// field to it.
 15713  	FieldMappings []*DataSourceToIndexFieldMapping `min:"1" type:"list"`
 15714  
 15715  	// The name of the standard object.
 15716  	//
 15717  	// Name is a required field
 15718  	Name *string `type:"string" required:"true" enum:"SalesforceStandardObjectName"`
 15719  }
 15720  
 15721  // String returns the string representation.
 15722  //
 15723  // API parameter values that are decorated as "sensitive" in the API will not
 15724  // be included in the string output. The member name will be present, but the
 15725  // value will be replaced with "sensitive".
 15726  func (s SalesforceStandardObjectConfiguration) String() string {
 15727  	return awsutil.Prettify(s)
 15728  }
 15729  
 15730  // GoString returns the string representation.
 15731  //
 15732  // API parameter values that are decorated as "sensitive" in the API will not
 15733  // be included in the string output. The member name will be present, but the
 15734  // value will be replaced with "sensitive".
 15735  func (s SalesforceStandardObjectConfiguration) GoString() string {
 15736  	return s.String()
 15737  }
 15738  
 15739  // Validate inspects the fields of the type to determine if they are valid.
 15740  func (s *SalesforceStandardObjectConfiguration) Validate() error {
 15741  	invalidParams := request.ErrInvalidParams{Context: "SalesforceStandardObjectConfiguration"}
 15742  	if s.DocumentDataFieldName == nil {
 15743  		invalidParams.Add(request.NewErrParamRequired("DocumentDataFieldName"))
 15744  	}
 15745  	if s.DocumentDataFieldName != nil && len(*s.DocumentDataFieldName) < 1 {
 15746  		invalidParams.Add(request.NewErrParamMinLen("DocumentDataFieldName", 1))
 15747  	}
 15748  	if s.DocumentTitleFieldName != nil && len(*s.DocumentTitleFieldName) < 1 {
 15749  		invalidParams.Add(request.NewErrParamMinLen("DocumentTitleFieldName", 1))
 15750  	}
 15751  	if s.FieldMappings != nil && len(s.FieldMappings) < 1 {
 15752  		invalidParams.Add(request.NewErrParamMinLen("FieldMappings", 1))
 15753  	}
 15754  	if s.Name == nil {
 15755  		invalidParams.Add(request.NewErrParamRequired("Name"))
 15756  	}
 15757  	if s.FieldMappings != nil {
 15758  		for i, v := range s.FieldMappings {
 15759  			if v == nil {
 15760  				continue
 15761  			}
 15762  			if err := v.Validate(); err != nil {
 15763  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(request.ErrInvalidParams))
 15764  			}
 15765  		}
 15766  	}
 15767  
 15768  	if invalidParams.Len() > 0 {
 15769  		return invalidParams
 15770  	}
 15771  	return nil
 15772  }
 15773  
 15774  // SetDocumentDataFieldName sets the DocumentDataFieldName field's value.
 15775  func (s *SalesforceStandardObjectConfiguration) SetDocumentDataFieldName(v string) *SalesforceStandardObjectConfiguration {
 15776  	s.DocumentDataFieldName = &v
 15777  	return s
 15778  }
 15779  
 15780  // SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
 15781  func (s *SalesforceStandardObjectConfiguration) SetDocumentTitleFieldName(v string) *SalesforceStandardObjectConfiguration {
 15782  	s.DocumentTitleFieldName = &v
 15783  	return s
 15784  }
 15785  
 15786  // SetFieldMappings sets the FieldMappings field's value.
 15787  func (s *SalesforceStandardObjectConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *SalesforceStandardObjectConfiguration {
 15788  	s.FieldMappings = v
 15789  	return s
 15790  }
 15791  
 15792  // SetName sets the Name field's value.
 15793  func (s *SalesforceStandardObjectConfiguration) SetName(v string) *SalesforceStandardObjectConfiguration {
 15794  	s.Name = &v
 15795  	return s
 15796  }
 15797  
 15798  // Provides a relative ranking that indicates how confident Amazon Kendra is
 15799  // that the response matches the query.
 15800  type ScoreAttributes struct {
 15801  	_ struct{} `type:"structure"`
 15802  
 15803  	// A relative ranking for how well the response matches the query.
 15804  	ScoreConfidence *string `type:"string" enum:"ScoreConfidence"`
 15805  }
 15806  
 15807  // String returns the string representation.
 15808  //
 15809  // API parameter values that are decorated as "sensitive" in the API will not
 15810  // be included in the string output. The member name will be present, but the
 15811  // value will be replaced with "sensitive".
 15812  func (s ScoreAttributes) String() string {
 15813  	return awsutil.Prettify(s)
 15814  }
 15815  
 15816  // GoString returns the string representation.
 15817  //
 15818  // API parameter values that are decorated as "sensitive" in the API will not
 15819  // be included in the string output. The member name will be present, but the
 15820  // value will be replaced with "sensitive".
 15821  func (s ScoreAttributes) GoString() string {
 15822  	return s.String()
 15823  }
 15824  
 15825  // SetScoreConfidence sets the ScoreConfidence field's value.
 15826  func (s *ScoreAttributes) SetScoreConfidence(v string) *ScoreAttributes {
 15827  	s.ScoreConfidence = &v
 15828  	return s
 15829  }
 15830  
 15831  // Provides information about how a custom index field is used during a search.
 15832  type Search struct {
 15833  	_ struct{} `type:"structure"`
 15834  
 15835  	// Determines whether the field is returned in the query response. The default
 15836  	// is true.
 15837  	Displayable *bool `type:"boolean"`
 15838  
 15839  	// Indicates that the field can be used to create search facets, a count of
 15840  	// results for each value in the field. The default is false .
 15841  	Facetable *bool `type:"boolean"`
 15842  
 15843  	// Determines whether the field is used in the search. If the Searchable field
 15844  	// is true, you can use relevance tuning to manually tune how Amazon Kendra
 15845  	// weights the field in the search. The default is true for string fields and
 15846  	// false for number and date fields.
 15847  	Searchable *bool `type:"boolean"`
 15848  
 15849  	// Determines whether the field can be used to sort the results of a query.
 15850  	// If you specify sorting on a field that does not have Sortable set to true,
 15851  	// Amazon Kendra returns an exception. The default is false.
 15852  	Sortable *bool `type:"boolean"`
 15853  }
 15854  
 15855  // String returns the string representation.
 15856  //
 15857  // API parameter values that are decorated as "sensitive" in the API will not
 15858  // be included in the string output. The member name will be present, but the
 15859  // value will be replaced with "sensitive".
 15860  func (s Search) String() string {
 15861  	return awsutil.Prettify(s)
 15862  }
 15863  
 15864  // GoString returns the string representation.
 15865  //
 15866  // API parameter values that are decorated as "sensitive" in the API will not
 15867  // be included in the string output. The member name will be present, but the
 15868  // value will be replaced with "sensitive".
 15869  func (s Search) GoString() string {
 15870  	return s.String()
 15871  }
 15872  
 15873  // SetDisplayable sets the Displayable field's value.
 15874  func (s *Search) SetDisplayable(v bool) *Search {
 15875  	s.Displayable = &v
 15876  	return s
 15877  }
 15878  
 15879  // SetFacetable sets the Facetable field's value.
 15880  func (s *Search) SetFacetable(v bool) *Search {
 15881  	s.Facetable = &v
 15882  	return s
 15883  }
 15884  
 15885  // SetSearchable sets the Searchable field's value.
 15886  func (s *Search) SetSearchable(v bool) *Search {
 15887  	s.Searchable = &v
 15888  	return s
 15889  }
 15890  
 15891  // SetSortable sets the Sortable field's value.
 15892  func (s *Search) SetSortable(v bool) *Search {
 15893  	s.Sortable = &v
 15894  	return s
 15895  }
 15896  
 15897  // Provides the configuration information of the seed or starting point URLs
 15898  // to crawl.
 15899  //
 15900  // When selecting websites to index, you must adhere to the Amazon Acceptable
 15901  // Use Policy (https://aws.amazon.com/aup/) and all other Amazon terms. Remember
 15902  // that you must only use the Amazon Kendra web crawler to index your own webpages,
 15903  // or webpages that you have authorization to index.
 15904  type SeedUrlConfiguration struct {
 15905  	_ struct{} `type:"structure"`
 15906  
 15907  	// The list of seed or starting point URLs of the websites you want to crawl.
 15908  	//
 15909  	// The list can include a maximum of 100 seed URLs.
 15910  	//
 15911  	// SeedUrls is a required field
 15912  	SeedUrls []*string `type:"list" required:"true"`
 15913  
 15914  	// You can choose one of the following modes:
 15915  	//
 15916  	//    * HOST_ONLY – crawl only the website host names. For example, if the
 15917  	//    seed URL is "abc.example.com", then only URLs with host name "abc.example.com"
 15918  	//    are crawled.
 15919  	//
 15920  	//    * SUBDOMAINS – crawl the website host names with subdomains. For example,
 15921  	//    if the seed URL is "abc.example.com", then "a.abc.example.com" and "b.abc.example.com"
 15922  	//    are also crawled.
 15923  	//
 15924  	//    * EVERYTHING – crawl the website host names with subdomains and other
 15925  	//    domains that the webpages link to.
 15926  	//
 15927  	// The default mode is set to HOST_ONLY.
 15928  	WebCrawlerMode *string `type:"string" enum:"WebCrawlerMode"`
 15929  }
 15930  
 15931  // String returns the string representation.
 15932  //
 15933  // API parameter values that are decorated as "sensitive" in the API will not
 15934  // be included in the string output. The member name will be present, but the
 15935  // value will be replaced with "sensitive".
 15936  func (s SeedUrlConfiguration) String() string {
 15937  	return awsutil.Prettify(s)
 15938  }
 15939  
 15940  // GoString returns the string representation.
 15941  //
 15942  // API parameter values that are decorated as "sensitive" in the API will not
 15943  // be included in the string output. The member name will be present, but the
 15944  // value will be replaced with "sensitive".
 15945  func (s SeedUrlConfiguration) GoString() string {
 15946  	return s.String()
 15947  }
 15948  
 15949  // Validate inspects the fields of the type to determine if they are valid.
 15950  func (s *SeedUrlConfiguration) Validate() error {
 15951  	invalidParams := request.ErrInvalidParams{Context: "SeedUrlConfiguration"}
 15952  	if s.SeedUrls == nil {
 15953  		invalidParams.Add(request.NewErrParamRequired("SeedUrls"))
 15954  	}
 15955  
 15956  	if invalidParams.Len() > 0 {
 15957  		return invalidParams
 15958  	}
 15959  	return nil
 15960  }
 15961  
 15962  // SetSeedUrls sets the SeedUrls field's value.
 15963  func (s *SeedUrlConfiguration) SetSeedUrls(v []*string) *SeedUrlConfiguration {
 15964  	s.SeedUrls = v
 15965  	return s
 15966  }
 15967  
 15968  // SetWebCrawlerMode sets the WebCrawlerMode field's value.
 15969  func (s *SeedUrlConfiguration) SetWebCrawlerMode(v string) *SeedUrlConfiguration {
 15970  	s.WebCrawlerMode = &v
 15971  	return s
 15972  }
 15973  
 15974  // Provides the identifier of the KMScustomer master key (CMK) used to encrypt
 15975  // data indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric CMKs.
 15976  type ServerSideEncryptionConfiguration struct {
 15977  	_ struct{} `type:"structure"`
 15978  
 15979  	// The identifier of the KMScustomer master key (CMK). Amazon Kendra doesn't
 15980  	// support asymmetric CMKs.
 15981  	//
 15982  	// KmsKeyId is a sensitive parameter and its value will be
 15983  	// replaced with "sensitive" in string returned by ServerSideEncryptionConfiguration's
 15984  	// String and GoString methods.
 15985  	KmsKeyId *string `min:"1" type:"string" sensitive:"true"`
 15986  }
 15987  
 15988  // String returns the string representation.
 15989  //
 15990  // API parameter values that are decorated as "sensitive" in the API will not
 15991  // be included in the string output. The member name will be present, but the
 15992  // value will be replaced with "sensitive".
 15993  func (s ServerSideEncryptionConfiguration) String() string {
 15994  	return awsutil.Prettify(s)
 15995  }
 15996  
 15997  // GoString returns the string representation.
 15998  //
 15999  // API parameter values that are decorated as "sensitive" in the API will not
 16000  // be included in the string output. The member name will be present, but the
 16001  // value will be replaced with "sensitive".
 16002  func (s ServerSideEncryptionConfiguration) GoString() string {
 16003  	return s.String()
 16004  }
 16005  
 16006  // Validate inspects the fields of the type to determine if they are valid.
 16007  func (s *ServerSideEncryptionConfiguration) Validate() error {
 16008  	invalidParams := request.ErrInvalidParams{Context: "ServerSideEncryptionConfiguration"}
 16009  	if s.KmsKeyId != nil && len(*s.KmsKeyId) < 1 {
 16010  		invalidParams.Add(request.NewErrParamMinLen("KmsKeyId", 1))
 16011  	}
 16012  
 16013  	if invalidParams.Len() > 0 {
 16014  		return invalidParams
 16015  	}
 16016  	return nil
 16017  }
 16018  
 16019  // SetKmsKeyId sets the KmsKeyId field's value.
 16020  func (s *ServerSideEncryptionConfiguration) SetKmsKeyId(v string) *ServerSideEncryptionConfiguration {
 16021  	s.KmsKeyId = &v
 16022  	return s
 16023  }
 16024  
 16025  // Provides configuration information required to connect to a ServiceNow data
 16026  // source.
 16027  type ServiceNowConfiguration struct {
 16028  	_ struct{} `type:"structure"`
 16029  
 16030  	// Determines the type of authentication used to connect to the ServiceNow instance.
 16031  	// If you choose HTTP_BASIC, Amazon Kendra is authenticated using the user name
 16032  	// and password provided in the AWS Secrets Manager secret in the SecretArn
 16033  	// field. When you choose OAUTH2, Amazon Kendra is authenticated using the OAuth
 16034  	// token and secret provided in the Secrets Manager secret, and the user name
 16035  	// and password are used to determine which information Amazon Kendra has access
 16036  	// to.
 16037  	//
 16038  	// When you use OAUTH2 authentication, you must generate a token and a client
 16039  	// secret using the ServiceNow console. For more information, see Using a ServiceNow
 16040  	// data source (https://docs.aws.amazon.com/kendra/latest/dg/data-source-servicenow.html).
 16041  	AuthenticationType *string `type:"string" enum:"ServiceNowAuthenticationType"`
 16042  
 16043  	// The ServiceNow instance that the data source connects to. The host endpoint
 16044  	// should look like the following: {instance}.service-now.com.
 16045  	//
 16046  	// HostUrl is a required field
 16047  	HostUrl *string `min:"1" type:"string" required:"true"`
 16048  
 16049  	// Provides configuration information for crawling knowledge articles in the
 16050  	// ServiceNow site.
 16051  	KnowledgeArticleConfiguration *ServiceNowKnowledgeArticleConfiguration `type:"structure"`
 16052  
 16053  	// The Amazon Resource Name (ARN) of the Secrets Manager secret that contains
 16054  	// the user name and password required to connect to the ServiceNow instance.
 16055  	//
 16056  	// SecretArn is a required field
 16057  	SecretArn *string `min:"1" type:"string" required:"true"`
 16058  
 16059  	// Provides configuration information for crawling service catalogs in the ServiceNow
 16060  	// site.
 16061  	ServiceCatalogConfiguration *ServiceNowServiceCatalogConfiguration `type:"structure"`
 16062  
 16063  	// The identifier of the release that the ServiceNow host is running. If the
 16064  	// host is not running the LONDON release, use OTHERS.
 16065  	//
 16066  	// ServiceNowBuildVersion is a required field
 16067  	ServiceNowBuildVersion *string `type:"string" required:"true" enum:"ServiceNowBuildVersionType"`
 16068  }
 16069  
 16070  // String returns the string representation.
 16071  //
 16072  // API parameter values that are decorated as "sensitive" in the API will not
 16073  // be included in the string output. The member name will be present, but the
 16074  // value will be replaced with "sensitive".
 16075  func (s ServiceNowConfiguration) String() string {
 16076  	return awsutil.Prettify(s)
 16077  }
 16078  
 16079  // GoString returns the string representation.
 16080  //
 16081  // API parameter values that are decorated as "sensitive" in the API will not
 16082  // be included in the string output. The member name will be present, but the
 16083  // value will be replaced with "sensitive".
 16084  func (s ServiceNowConfiguration) GoString() string {
 16085  	return s.String()
 16086  }
 16087  
 16088  // Validate inspects the fields of the type to determine if they are valid.
 16089  func (s *ServiceNowConfiguration) Validate() error {
 16090  	invalidParams := request.ErrInvalidParams{Context: "ServiceNowConfiguration"}
 16091  	if s.HostUrl == nil {
 16092  		invalidParams.Add(request.NewErrParamRequired("HostUrl"))
 16093  	}
 16094  	if s.HostUrl != nil && len(*s.HostUrl) < 1 {
 16095  		invalidParams.Add(request.NewErrParamMinLen("HostUrl", 1))
 16096  	}
 16097  	if s.SecretArn == nil {
 16098  		invalidParams.Add(request.NewErrParamRequired("SecretArn"))
 16099  	}
 16100  	if s.SecretArn != nil && len(*s.SecretArn) < 1 {
 16101  		invalidParams.Add(request.NewErrParamMinLen("SecretArn", 1))
 16102  	}
 16103  	if s.ServiceNowBuildVersion == nil {
 16104  		invalidParams.Add(request.NewErrParamRequired("ServiceNowBuildVersion"))
 16105  	}
 16106  	if s.KnowledgeArticleConfiguration != nil {
 16107  		if err := s.KnowledgeArticleConfiguration.Validate(); err != nil {
 16108  			invalidParams.AddNested("KnowledgeArticleConfiguration", err.(request.ErrInvalidParams))
 16109  		}
 16110  	}
 16111  	if s.ServiceCatalogConfiguration != nil {
 16112  		if err := s.ServiceCatalogConfiguration.Validate(); err != nil {
 16113  			invalidParams.AddNested("ServiceCatalogConfiguration", err.(request.ErrInvalidParams))
 16114  		}
 16115  	}
 16116  
 16117  	if invalidParams.Len() > 0 {
 16118  		return invalidParams
 16119  	}
 16120  	return nil
 16121  }
 16122  
 16123  // SetAuthenticationType sets the AuthenticationType field's value.
 16124  func (s *ServiceNowConfiguration) SetAuthenticationType(v string) *ServiceNowConfiguration {
 16125  	s.AuthenticationType = &v
 16126  	return s
 16127  }
 16128  
 16129  // SetHostUrl sets the HostUrl field's value.
 16130  func (s *ServiceNowConfiguration) SetHostUrl(v string) *ServiceNowConfiguration {
 16131  	s.HostUrl = &v
 16132  	return s
 16133  }
 16134  
 16135  // SetKnowledgeArticleConfiguration sets the KnowledgeArticleConfiguration field's value.
 16136  func (s *ServiceNowConfiguration) SetKnowledgeArticleConfiguration(v *ServiceNowKnowledgeArticleConfiguration) *ServiceNowConfiguration {
 16137  	s.KnowledgeArticleConfiguration = v
 16138  	return s
 16139  }
 16140  
 16141  // SetSecretArn sets the SecretArn field's value.
 16142  func (s *ServiceNowConfiguration) SetSecretArn(v string) *ServiceNowConfiguration {
 16143  	s.SecretArn = &v
 16144  	return s
 16145  }
 16146  
 16147  // SetServiceCatalogConfiguration sets the ServiceCatalogConfiguration field's value.
 16148  func (s *ServiceNowConfiguration) SetServiceCatalogConfiguration(v *ServiceNowServiceCatalogConfiguration) *ServiceNowConfiguration {
 16149  	s.ServiceCatalogConfiguration = v
 16150  	return s
 16151  }
 16152  
 16153  // SetServiceNowBuildVersion sets the ServiceNowBuildVersion field's value.
 16154  func (s *ServiceNowConfiguration) SetServiceNowBuildVersion(v string) *ServiceNowConfiguration {
 16155  	s.ServiceNowBuildVersion = &v
 16156  	return s
 16157  }
 16158  
 16159  // Provides configuration information for crawling knowledge articles in the
 16160  // ServiceNow site.
 16161  type ServiceNowKnowledgeArticleConfiguration struct {
 16162  	_ struct{} `type:"structure"`
 16163  
 16164  	// Indicates whether Amazon Kendra should index attachments to knowledge articles.
 16165  	CrawlAttachments *bool `type:"boolean"`
 16166  
 16167  	// The name of the ServiceNow field that is mapped to the index document contents
 16168  	// field in the Amazon Kendra index.
 16169  	//
 16170  	// DocumentDataFieldName is a required field
 16171  	DocumentDataFieldName *string `min:"1" type:"string" required:"true"`
 16172  
 16173  	// The name of the ServiceNow field that is mapped to the index document title
 16174  	// field.
 16175  	DocumentTitleFieldName *string `min:"1" type:"string"`
 16176  
 16177  	// List of regular expressions applied to knowledge articles. Items that don't
 16178  	// match the inclusion pattern are not indexed. The regex is applied to the
 16179  	// field specified in the PatternTargetField
 16180  	ExcludeAttachmentFilePatterns []*string `type:"list"`
 16181  
 16182  	// Mapping between ServiceNow fields and Amazon Kendra index fields. You must
 16183  	// create the index field before you map the field.
 16184  	FieldMappings []*DataSourceToIndexFieldMapping `min:"1" type:"list"`
 16185  
 16186  	// A query that selects the knowledge articles to index. The query can return
 16187  	// articles from multiple knowledge bases, and the knowledge bases can be public
 16188  	// or private.
 16189  	//
 16190  	// The query string must be one generated by the ServiceNow console. For more
 16191  	// information, see Specifying documents to index with a query (https://docs.aws.amazon.com/kendra/latest/dg/servicenow-query.html).
 16192  	FilterQuery *string `min:"1" type:"string"`
 16193  
 16194  	// List of regular expressions applied to knowledge articles. Items that don't
 16195  	// match the inclusion pattern are not indexed. The regex is applied to the
 16196  	// field specified in the PatternTargetField.
 16197  	IncludeAttachmentFilePatterns []*string `type:"list"`
 16198  }
 16199  
 16200  // String returns the string representation.
 16201  //
 16202  // API parameter values that are decorated as "sensitive" in the API will not
 16203  // be included in the string output. The member name will be present, but the
 16204  // value will be replaced with "sensitive".
 16205  func (s ServiceNowKnowledgeArticleConfiguration) String() string {
 16206  	return awsutil.Prettify(s)
 16207  }
 16208  
 16209  // GoString returns the string representation.
 16210  //
 16211  // API parameter values that are decorated as "sensitive" in the API will not
 16212  // be included in the string output. The member name will be present, but the
 16213  // value will be replaced with "sensitive".
 16214  func (s ServiceNowKnowledgeArticleConfiguration) GoString() string {
 16215  	return s.String()
 16216  }
 16217  
 16218  // Validate inspects the fields of the type to determine if they are valid.
 16219  func (s *ServiceNowKnowledgeArticleConfiguration) Validate() error {
 16220  	invalidParams := request.ErrInvalidParams{Context: "ServiceNowKnowledgeArticleConfiguration"}
 16221  	if s.DocumentDataFieldName == nil {
 16222  		invalidParams.Add(request.NewErrParamRequired("DocumentDataFieldName"))
 16223  	}
 16224  	if s.DocumentDataFieldName != nil && len(*s.DocumentDataFieldName) < 1 {
 16225  		invalidParams.Add(request.NewErrParamMinLen("DocumentDataFieldName", 1))
 16226  	}
 16227  	if s.DocumentTitleFieldName != nil && len(*s.DocumentTitleFieldName) < 1 {
 16228  		invalidParams.Add(request.NewErrParamMinLen("DocumentTitleFieldName", 1))
 16229  	}
 16230  	if s.FieldMappings != nil && len(s.FieldMappings) < 1 {
 16231  		invalidParams.Add(request.NewErrParamMinLen("FieldMappings", 1))
 16232  	}
 16233  	if s.FilterQuery != nil && len(*s.FilterQuery) < 1 {
 16234  		invalidParams.Add(request.NewErrParamMinLen("FilterQuery", 1))
 16235  	}
 16236  	if s.FieldMappings != nil {
 16237  		for i, v := range s.FieldMappings {
 16238  			if v == nil {
 16239  				continue
 16240  			}
 16241  			if err := v.Validate(); err != nil {
 16242  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(request.ErrInvalidParams))
 16243  			}
 16244  		}
 16245  	}
 16246  
 16247  	if invalidParams.Len() > 0 {
 16248  		return invalidParams
 16249  	}
 16250  	return nil
 16251  }
 16252  
 16253  // SetCrawlAttachments sets the CrawlAttachments field's value.
 16254  func (s *ServiceNowKnowledgeArticleConfiguration) SetCrawlAttachments(v bool) *ServiceNowKnowledgeArticleConfiguration {
 16255  	s.CrawlAttachments = &v
 16256  	return s
 16257  }
 16258  
 16259  // SetDocumentDataFieldName sets the DocumentDataFieldName field's value.
 16260  func (s *ServiceNowKnowledgeArticleConfiguration) SetDocumentDataFieldName(v string) *ServiceNowKnowledgeArticleConfiguration {
 16261  	s.DocumentDataFieldName = &v
 16262  	return s
 16263  }
 16264  
 16265  // SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
 16266  func (s *ServiceNowKnowledgeArticleConfiguration) SetDocumentTitleFieldName(v string) *ServiceNowKnowledgeArticleConfiguration {
 16267  	s.DocumentTitleFieldName = &v
 16268  	return s
 16269  }
 16270  
 16271  // SetExcludeAttachmentFilePatterns sets the ExcludeAttachmentFilePatterns field's value.
 16272  func (s *ServiceNowKnowledgeArticleConfiguration) SetExcludeAttachmentFilePatterns(v []*string) *ServiceNowKnowledgeArticleConfiguration {
 16273  	s.ExcludeAttachmentFilePatterns = v
 16274  	return s
 16275  }
 16276  
 16277  // SetFieldMappings sets the FieldMappings field's value.
 16278  func (s *ServiceNowKnowledgeArticleConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *ServiceNowKnowledgeArticleConfiguration {
 16279  	s.FieldMappings = v
 16280  	return s
 16281  }
 16282  
 16283  // SetFilterQuery sets the FilterQuery field's value.
 16284  func (s *ServiceNowKnowledgeArticleConfiguration) SetFilterQuery(v string) *ServiceNowKnowledgeArticleConfiguration {
 16285  	s.FilterQuery = &v
 16286  	return s
 16287  }
 16288  
 16289  // SetIncludeAttachmentFilePatterns sets the IncludeAttachmentFilePatterns field's value.
 16290  func (s *ServiceNowKnowledgeArticleConfiguration) SetIncludeAttachmentFilePatterns(v []*string) *ServiceNowKnowledgeArticleConfiguration {
 16291  	s.IncludeAttachmentFilePatterns = v
 16292  	return s
 16293  }
 16294  
 16295  // Provides configuration information for crawling service catalog items in
 16296  // the ServiceNow site
 16297  type ServiceNowServiceCatalogConfiguration struct {
 16298  	_ struct{} `type:"structure"`
 16299  
 16300  	// Indicates whether Amazon Kendra should crawl attachments to the service catalog
 16301  	// items.
 16302  	CrawlAttachments *bool `type:"boolean"`
 16303  
 16304  	// The name of the ServiceNow field that is mapped to the index document contents
 16305  	// field in the Amazon Kendra index.
 16306  	//
 16307  	// DocumentDataFieldName is a required field
 16308  	DocumentDataFieldName *string `min:"1" type:"string" required:"true"`
 16309  
 16310  	// The name of the ServiceNow field that is mapped to the index document title
 16311  	// field.
 16312  	DocumentTitleFieldName *string `min:"1" type:"string"`
 16313  
 16314  	// A list of regular expression patterns. Documents that match the patterns
 16315  	// are excluded from the index. Documents that don't match the patterns are
 16316  	// included in the index. If a document matches both an exclusion pattern and
 16317  	// an inclusion pattern, the document is not included in the index.
 16318  	//
 16319  	// The regex is applied to the file name of the attachment.
 16320  	ExcludeAttachmentFilePatterns []*string `type:"list"`
 16321  
 16322  	// Mapping between ServiceNow fields and Amazon Kendra index fields. You must
 16323  	// create the index field before you map the field.
 16324  	FieldMappings []*DataSourceToIndexFieldMapping `min:"1" type:"list"`
 16325  
 16326  	// A list of regular expression patterns. Documents that match the patterns
 16327  	// are included in the index. Documents that don't match the patterns are excluded
 16328  	// from the index. If a document matches both an exclusion pattern and an inclusion
 16329  	// pattern, the document is not included in the index.
 16330  	//
 16331  	// The regex is applied to the file name of the attachment.
 16332  	IncludeAttachmentFilePatterns []*string `type:"list"`
 16333  }
 16334  
 16335  // String returns the string representation.
 16336  //
 16337  // API parameter values that are decorated as "sensitive" in the API will not
 16338  // be included in the string output. The member name will be present, but the
 16339  // value will be replaced with "sensitive".
 16340  func (s ServiceNowServiceCatalogConfiguration) String() string {
 16341  	return awsutil.Prettify(s)
 16342  }
 16343  
 16344  // GoString returns the string representation.
 16345  //
 16346  // API parameter values that are decorated as "sensitive" in the API will not
 16347  // be included in the string output. The member name will be present, but the
 16348  // value will be replaced with "sensitive".
 16349  func (s ServiceNowServiceCatalogConfiguration) GoString() string {
 16350  	return s.String()
 16351  }
 16352  
 16353  // Validate inspects the fields of the type to determine if they are valid.
 16354  func (s *ServiceNowServiceCatalogConfiguration) Validate() error {
 16355  	invalidParams := request.ErrInvalidParams{Context: "ServiceNowServiceCatalogConfiguration"}
 16356  	if s.DocumentDataFieldName == nil {
 16357  		invalidParams.Add(request.NewErrParamRequired("DocumentDataFieldName"))
 16358  	}
 16359  	if s.DocumentDataFieldName != nil && len(*s.DocumentDataFieldName) < 1 {
 16360  		invalidParams.Add(request.NewErrParamMinLen("DocumentDataFieldName", 1))
 16361  	}
 16362  	if s.DocumentTitleFieldName != nil && len(*s.DocumentTitleFieldName) < 1 {
 16363  		invalidParams.Add(request.NewErrParamMinLen("DocumentTitleFieldName", 1))
 16364  	}
 16365  	if s.FieldMappings != nil && len(s.FieldMappings) < 1 {
 16366  		invalidParams.Add(request.NewErrParamMinLen("FieldMappings", 1))
 16367  	}
 16368  	if s.FieldMappings != nil {
 16369  		for i, v := range s.FieldMappings {
 16370  			if v == nil {
 16371  				continue
 16372  			}
 16373  			if err := v.Validate(); err != nil {
 16374  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(request.ErrInvalidParams))
 16375  			}
 16376  		}
 16377  	}
 16378  
 16379  	if invalidParams.Len() > 0 {
 16380  		return invalidParams
 16381  	}
 16382  	return nil
 16383  }
 16384  
 16385  // SetCrawlAttachments sets the CrawlAttachments field's value.
 16386  func (s *ServiceNowServiceCatalogConfiguration) SetCrawlAttachments(v bool) *ServiceNowServiceCatalogConfiguration {
 16387  	s.CrawlAttachments = &v
 16388  	return s
 16389  }
 16390  
 16391  // SetDocumentDataFieldName sets the DocumentDataFieldName field's value.
 16392  func (s *ServiceNowServiceCatalogConfiguration) SetDocumentDataFieldName(v string) *ServiceNowServiceCatalogConfiguration {
 16393  	s.DocumentDataFieldName = &v
 16394  	return s
 16395  }
 16396  
 16397  // SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
 16398  func (s *ServiceNowServiceCatalogConfiguration) SetDocumentTitleFieldName(v string) *ServiceNowServiceCatalogConfiguration {
 16399  	s.DocumentTitleFieldName = &v
 16400  	return s
 16401  }
 16402  
 16403  // SetExcludeAttachmentFilePatterns sets the ExcludeAttachmentFilePatterns field's value.
 16404  func (s *ServiceNowServiceCatalogConfiguration) SetExcludeAttachmentFilePatterns(v []*string) *ServiceNowServiceCatalogConfiguration {
 16405  	s.ExcludeAttachmentFilePatterns = v
 16406  	return s
 16407  }
 16408  
 16409  // SetFieldMappings sets the FieldMappings field's value.
 16410  func (s *ServiceNowServiceCatalogConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *ServiceNowServiceCatalogConfiguration {
 16411  	s.FieldMappings = v
 16412  	return s
 16413  }
 16414  
 16415  // SetIncludeAttachmentFilePatterns sets the IncludeAttachmentFilePatterns field's value.
 16416  func (s *ServiceNowServiceCatalogConfiguration) SetIncludeAttachmentFilePatterns(v []*string) *ServiceNowServiceCatalogConfiguration {
 16417  	s.IncludeAttachmentFilePatterns = v
 16418  	return s
 16419  }
 16420  
 16421  type ServiceQuotaExceededException struct {
 16422  	_            struct{}                  `type:"structure"`
 16423  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16424  
 16425  	Message_ *string `locationName:"Message" min:"1" type:"string"`
 16426  }
 16427  
 16428  // String returns the string representation.
 16429  //
 16430  // API parameter values that are decorated as "sensitive" in the API will not
 16431  // be included in the string output. The member name will be present, but the
 16432  // value will be replaced with "sensitive".
 16433  func (s ServiceQuotaExceededException) String() string {
 16434  	return awsutil.Prettify(s)
 16435  }
 16436  
 16437  // GoString returns the string representation.
 16438  //
 16439  // API parameter values that are decorated as "sensitive" in the API will not
 16440  // be included in the string output. The member name will be present, but the
 16441  // value will be replaced with "sensitive".
 16442  func (s ServiceQuotaExceededException) GoString() string {
 16443  	return s.String()
 16444  }
 16445  
 16446  func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
 16447  	return &ServiceQuotaExceededException{
 16448  		RespMetadata: v,
 16449  	}
 16450  }
 16451  
 16452  // Code returns the exception type name.
 16453  func (s *ServiceQuotaExceededException) Code() string {
 16454  	return "ServiceQuotaExceededException"
 16455  }
 16456  
 16457  // Message returns the exception's message.
 16458  func (s *ServiceQuotaExceededException) Message() string {
 16459  	if s.Message_ != nil {
 16460  		return *s.Message_
 16461  	}
 16462  	return ""
 16463  }
 16464  
 16465  // OrigErr always returns nil, satisfies awserr.Error interface.
 16466  func (s *ServiceQuotaExceededException) OrigErr() error {
 16467  	return nil
 16468  }
 16469  
 16470  func (s *ServiceQuotaExceededException) Error() string {
 16471  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16472  }
 16473  
 16474  // Status code returns the HTTP status code for the request's response error.
 16475  func (s *ServiceQuotaExceededException) StatusCode() int {
 16476  	return s.RespMetadata.StatusCode
 16477  }
 16478  
 16479  // RequestID returns the service's response RequestID for request.
 16480  func (s *ServiceQuotaExceededException) RequestID() string {
 16481  	return s.RespMetadata.RequestID
 16482  }
 16483  
 16484  // Provides configuration information for connecting to a Microsoft SharePoint
 16485  // data source.
 16486  type SharePointConfiguration struct {
 16487  	_ struct{} `type:"structure"`
 16488  
 16489  	// TRUE to include attachments to documents stored in your Microsoft SharePoint
 16490  	// site in the index; otherwise, FALSE.
 16491  	CrawlAttachments *bool `type:"boolean"`
 16492  
 16493  	// A Boolean value that specifies whether local groups are disabled (True) or
 16494  	// enabled (False).
 16495  	DisableLocalGroups *bool `type:"boolean"`
 16496  
 16497  	// The Microsoft SharePoint attribute field that contains the title of the document.
 16498  	DocumentTitleFieldName *string `min:"1" type:"string"`
 16499  
 16500  	// A list of regular expression patterns. Documents that match the patterns
 16501  	// are excluded from the index. Documents that don't match the patterns are
 16502  	// included in the index. If a document matches both an exclusion pattern and
 16503  	// an inclusion pattern, the document is not included in the index.
 16504  	//
 16505  	// The regex is applied to the display URL of the SharePoint document.
 16506  	ExclusionPatterns []*string `type:"list"`
 16507  
 16508  	// A list of DataSourceToIndexFieldMapping objects that map Microsoft SharePoint
 16509  	// attributes to custom fields in the Amazon Kendra index. You must first create
 16510  	// the index fields using the UpdateIndex operation before you map SharePoint
 16511  	// attributes. For more information, see Mapping Data Source Fields (https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html).
 16512  	FieldMappings []*DataSourceToIndexFieldMapping `min:"1" type:"list"`
 16513  
 16514  	// A list of regular expression patterns. Documents that match the patterns
 16515  	// are included in the index. Documents that don't match the patterns are excluded
 16516  	// from the index. If a document matches both an inclusion pattern and an exclusion
 16517  	// pattern, the document is not included in the index.
 16518  	//
 16519  	// The regex is applied to the display URL of the SharePoint document.
 16520  	InclusionPatterns []*string `type:"list"`
 16521  
 16522  	// The Amazon Resource Name (ARN) of credentials stored in Secrets Manager.
 16523  	// The credentials should be a user/password pair. If you use SharePoint Server,
 16524  	// you also need to provide the sever domain name as part of the credentials.
 16525  	// For more information, see Using a Microsoft SharePoint Data Source (https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html).
 16526  	// For more information about Secrets Manager, see What Is Secrets Manager (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
 16527  	// in the Secrets Manager user guide.
 16528  	//
 16529  	// SecretArn is a required field
 16530  	SecretArn *string `min:"1" type:"string" required:"true"`
 16531  
 16532  	// The version of Microsoft SharePoint that you are using as a data source.
 16533  	//
 16534  	// SharePointVersion is a required field
 16535  	SharePointVersion *string `type:"string" required:"true" enum:"SharePointVersion"`
 16536  
 16537  	// Information required to find a specific file in an Amazon S3 bucket.
 16538  	SslCertificateS3Path *S3Path `type:"structure"`
 16539  
 16540  	// The URLs of the Microsoft SharePoint site that contains the documents that
 16541  	// should be indexed.
 16542  	//
 16543  	// Urls is a required field
 16544  	Urls []*string `min:"1" type:"list" required:"true"`
 16545  
 16546  	// Set to TRUE to use the Microsoft SharePoint change log to determine the documents
 16547  	// that need to be updated in the index. Depending on the size of the SharePoint
 16548  	// change log, it may take longer for Amazon Kendra to use the change log than
 16549  	// it takes it to determine the changed documents using the Amazon Kendra document
 16550  	// crawler.
 16551  	UseChangeLog *bool `type:"boolean"`
 16552  
 16553  	// Provides information for connecting to an Amazon VPC.
 16554  	VpcConfiguration *DataSourceVpcConfiguration `type:"structure"`
 16555  }
 16556  
 16557  // String returns the string representation.
 16558  //
 16559  // API parameter values that are decorated as "sensitive" in the API will not
 16560  // be included in the string output. The member name will be present, but the
 16561  // value will be replaced with "sensitive".
 16562  func (s SharePointConfiguration) String() string {
 16563  	return awsutil.Prettify(s)
 16564  }
 16565  
 16566  // GoString returns the string representation.
 16567  //
 16568  // API parameter values that are decorated as "sensitive" in the API will not
 16569  // be included in the string output. The member name will be present, but the
 16570  // value will be replaced with "sensitive".
 16571  func (s SharePointConfiguration) GoString() string {
 16572  	return s.String()
 16573  }
 16574  
 16575  // Validate inspects the fields of the type to determine if they are valid.
 16576  func (s *SharePointConfiguration) Validate() error {
 16577  	invalidParams := request.ErrInvalidParams{Context: "SharePointConfiguration"}
 16578  	if s.DocumentTitleFieldName != nil && len(*s.DocumentTitleFieldName) < 1 {
 16579  		invalidParams.Add(request.NewErrParamMinLen("DocumentTitleFieldName", 1))
 16580  	}
 16581  	if s.FieldMappings != nil && len(s.FieldMappings) < 1 {
 16582  		invalidParams.Add(request.NewErrParamMinLen("FieldMappings", 1))
 16583  	}
 16584  	if s.SecretArn == nil {
 16585  		invalidParams.Add(request.NewErrParamRequired("SecretArn"))
 16586  	}
 16587  	if s.SecretArn != nil && len(*s.SecretArn) < 1 {
 16588  		invalidParams.Add(request.NewErrParamMinLen("SecretArn", 1))
 16589  	}
 16590  	if s.SharePointVersion == nil {
 16591  		invalidParams.Add(request.NewErrParamRequired("SharePointVersion"))
 16592  	}
 16593  	if s.Urls == nil {
 16594  		invalidParams.Add(request.NewErrParamRequired("Urls"))
 16595  	}
 16596  	if s.Urls != nil && len(s.Urls) < 1 {
 16597  		invalidParams.Add(request.NewErrParamMinLen("Urls", 1))
 16598  	}
 16599  	if s.FieldMappings != nil {
 16600  		for i, v := range s.FieldMappings {
 16601  			if v == nil {
 16602  				continue
 16603  			}
 16604  			if err := v.Validate(); err != nil {
 16605  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(request.ErrInvalidParams))
 16606  			}
 16607  		}
 16608  	}
 16609  	if s.SslCertificateS3Path != nil {
 16610  		if err := s.SslCertificateS3Path.Validate(); err != nil {
 16611  			invalidParams.AddNested("SslCertificateS3Path", err.(request.ErrInvalidParams))
 16612  		}
 16613  	}
 16614  	if s.VpcConfiguration != nil {
 16615  		if err := s.VpcConfiguration.Validate(); err != nil {
 16616  			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
 16617  		}
 16618  	}
 16619  
 16620  	if invalidParams.Len() > 0 {
 16621  		return invalidParams
 16622  	}
 16623  	return nil
 16624  }
 16625  
 16626  // SetCrawlAttachments sets the CrawlAttachments field's value.
 16627  func (s *SharePointConfiguration) SetCrawlAttachments(v bool) *SharePointConfiguration {
 16628  	s.CrawlAttachments = &v
 16629  	return s
 16630  }
 16631  
 16632  // SetDisableLocalGroups sets the DisableLocalGroups field's value.
 16633  func (s *SharePointConfiguration) SetDisableLocalGroups(v bool) *SharePointConfiguration {
 16634  	s.DisableLocalGroups = &v
 16635  	return s
 16636  }
 16637  
 16638  // SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
 16639  func (s *SharePointConfiguration) SetDocumentTitleFieldName(v string) *SharePointConfiguration {
 16640  	s.DocumentTitleFieldName = &v
 16641  	return s
 16642  }
 16643  
 16644  // SetExclusionPatterns sets the ExclusionPatterns field's value.
 16645  func (s *SharePointConfiguration) SetExclusionPatterns(v []*string) *SharePointConfiguration {
 16646  	s.ExclusionPatterns = v
 16647  	return s
 16648  }
 16649  
 16650  // SetFieldMappings sets the FieldMappings field's value.
 16651  func (s *SharePointConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *SharePointConfiguration {
 16652  	s.FieldMappings = v
 16653  	return s
 16654  }
 16655  
 16656  // SetInclusionPatterns sets the InclusionPatterns field's value.
 16657  func (s *SharePointConfiguration) SetInclusionPatterns(v []*string) *SharePointConfiguration {
 16658  	s.InclusionPatterns = v
 16659  	return s
 16660  }
 16661  
 16662  // SetSecretArn sets the SecretArn field's value.
 16663  func (s *SharePointConfiguration) SetSecretArn(v string) *SharePointConfiguration {
 16664  	s.SecretArn = &v
 16665  	return s
 16666  }
 16667  
 16668  // SetSharePointVersion sets the SharePointVersion field's value.
 16669  func (s *SharePointConfiguration) SetSharePointVersion(v string) *SharePointConfiguration {
 16670  	s.SharePointVersion = &v
 16671  	return s
 16672  }
 16673  
 16674  // SetSslCertificateS3Path sets the SslCertificateS3Path field's value.
 16675  func (s *SharePointConfiguration) SetSslCertificateS3Path(v *S3Path) *SharePointConfiguration {
 16676  	s.SslCertificateS3Path = v
 16677  	return s
 16678  }
 16679  
 16680  // SetUrls sets the Urls field's value.
 16681  func (s *SharePointConfiguration) SetUrls(v []*string) *SharePointConfiguration {
 16682  	s.Urls = v
 16683  	return s
 16684  }
 16685  
 16686  // SetUseChangeLog sets the UseChangeLog field's value.
 16687  func (s *SharePointConfiguration) SetUseChangeLog(v bool) *SharePointConfiguration {
 16688  	s.UseChangeLog = &v
 16689  	return s
 16690  }
 16691  
 16692  // SetVpcConfiguration sets the VpcConfiguration field's value.
 16693  func (s *SharePointConfiguration) SetVpcConfiguration(v *DataSourceVpcConfiguration) *SharePointConfiguration {
 16694  	s.VpcConfiguration = v
 16695  	return s
 16696  }
 16697  
 16698  // Provides the configuration information of the sitemap URLs to crawl.
 16699  //
 16700  // When selecting websites to index, you must adhere to the Amazon Acceptable
 16701  // Use Policy (https://aws.amazon.com/aup/) and all other Amazon terms. Remember
 16702  // that you must only use the Amazon Kendra web crawler to index your own webpages,
 16703  // or webpages that you have authorization to index.
 16704  type SiteMapsConfiguration struct {
 16705  	_ struct{} `type:"structure"`
 16706  
 16707  	// The list of sitemap URLs of the websites you want to crawl.
 16708  	//
 16709  	// The list can include a maximum of three sitemap URLs.
 16710  	//
 16711  	// SiteMaps is a required field
 16712  	SiteMaps []*string `type:"list" required:"true"`
 16713  }
 16714  
 16715  // String returns the string representation.
 16716  //
 16717  // API parameter values that are decorated as "sensitive" in the API will not
 16718  // be included in the string output. The member name will be present, but the
 16719  // value will be replaced with "sensitive".
 16720  func (s SiteMapsConfiguration) String() string {
 16721  	return awsutil.Prettify(s)
 16722  }
 16723  
 16724  // GoString returns the string representation.
 16725  //
 16726  // API parameter values that are decorated as "sensitive" in the API will not
 16727  // be included in the string output. The member name will be present, but the
 16728  // value will be replaced with "sensitive".
 16729  func (s SiteMapsConfiguration) GoString() string {
 16730  	return s.String()
 16731  }
 16732  
 16733  // Validate inspects the fields of the type to determine if they are valid.
 16734  func (s *SiteMapsConfiguration) Validate() error {
 16735  	invalidParams := request.ErrInvalidParams{Context: "SiteMapsConfiguration"}
 16736  	if s.SiteMaps == nil {
 16737  		invalidParams.Add(request.NewErrParamRequired("SiteMaps"))
 16738  	}
 16739  
 16740  	if invalidParams.Len() > 0 {
 16741  		return invalidParams
 16742  	}
 16743  	return nil
 16744  }
 16745  
 16746  // SetSiteMaps sets the SiteMaps field's value.
 16747  func (s *SiteMapsConfiguration) SetSiteMaps(v []*string) *SiteMapsConfiguration {
 16748  	s.SiteMaps = v
 16749  	return s
 16750  }
 16751  
 16752  // Specifies the document attribute to use to sort the response to a Amazon
 16753  // Kendra query. You can specify a single attribute for sorting. The attribute
 16754  // must have the Sortable flag set to true, otherwise Amazon Kendra returns
 16755  // an exception.
 16756  //
 16757  // You can sort attributes of the following types.
 16758  //
 16759  //    * Date value
 16760  //
 16761  //    * Long value
 16762  //
 16763  //    * String value
 16764  //
 16765  // You can't sort attributes of the following type.
 16766  //
 16767  //    * String list value
 16768  type SortingConfiguration struct {
 16769  	_ struct{} `type:"structure"`
 16770  
 16771  	// The name of the document attribute used to sort the response. You can use
 16772  	// any field that has the Sortable flag set to true.
 16773  	//
 16774  	// You can also sort by any of the following built-in attributes:
 16775  	//
 16776  	//    * _category
 16777  	//
 16778  	//    * _created_at
 16779  	//
 16780  	//    * _last_updated_at
 16781  	//
 16782  	//    * _version
 16783  	//
 16784  	//    * _view_count
 16785  	//
 16786  	// DocumentAttributeKey is a required field
 16787  	DocumentAttributeKey *string `min:"1" type:"string" required:"true"`
 16788  
 16789  	// The order that the results should be returned in. In case of ties, the relevance
 16790  	// assigned to the result by Amazon Kendra is used as the tie-breaker.
 16791  	//
 16792  	// SortOrder is a required field
 16793  	SortOrder *string `type:"string" required:"true" enum:"SortOrder"`
 16794  }
 16795  
 16796  // String returns the string representation.
 16797  //
 16798  // API parameter values that are decorated as "sensitive" in the API will not
 16799  // be included in the string output. The member name will be present, but the
 16800  // value will be replaced with "sensitive".
 16801  func (s SortingConfiguration) String() string {
 16802  	return awsutil.Prettify(s)
 16803  }
 16804  
 16805  // GoString returns the string representation.
 16806  //
 16807  // API parameter values that are decorated as "sensitive" in the API will not
 16808  // be included in the string output. The member name will be present, but the
 16809  // value will be replaced with "sensitive".
 16810  func (s SortingConfiguration) GoString() string {
 16811  	return s.String()
 16812  }
 16813  
 16814  // Validate inspects the fields of the type to determine if they are valid.
 16815  func (s *SortingConfiguration) Validate() error {
 16816  	invalidParams := request.ErrInvalidParams{Context: "SortingConfiguration"}
 16817  	if s.DocumentAttributeKey == nil {
 16818  		invalidParams.Add(request.NewErrParamRequired("DocumentAttributeKey"))
 16819  	}
 16820  	if s.DocumentAttributeKey != nil && len(*s.DocumentAttributeKey) < 1 {
 16821  		invalidParams.Add(request.NewErrParamMinLen("DocumentAttributeKey", 1))
 16822  	}
 16823  	if s.SortOrder == nil {
 16824  		invalidParams.Add(request.NewErrParamRequired("SortOrder"))
 16825  	}
 16826  
 16827  	if invalidParams.Len() > 0 {
 16828  		return invalidParams
 16829  	}
 16830  	return nil
 16831  }
 16832  
 16833  // SetDocumentAttributeKey sets the DocumentAttributeKey field's value.
 16834  func (s *SortingConfiguration) SetDocumentAttributeKey(v string) *SortingConfiguration {
 16835  	s.DocumentAttributeKey = &v
 16836  	return s
 16837  }
 16838  
 16839  // SetSortOrder sets the SortOrder field's value.
 16840  func (s *SortingConfiguration) SetSortOrder(v string) *SortingConfiguration {
 16841  	s.SortOrder = &v
 16842  	return s
 16843  }
 16844  
 16845  // Provides information that configures Amazon Kendra to use a SQL database.
 16846  type SqlConfiguration struct {
 16847  	_ struct{} `type:"structure"`
 16848  
 16849  	// Determines whether Amazon Kendra encloses SQL identifiers for tables and
 16850  	// column names in double quotes (") when making a database query.
 16851  	//
 16852  	// By default, Amazon Kendra passes SQL identifiers the way that they are entered
 16853  	// into the data source configuration. It does not change the case of identifiers
 16854  	// or enclose them in quotes.
 16855  	//
 16856  	// PostgreSQL internally converts uppercase characters to lower case characters
 16857  	// in identifiers unless they are quoted. Choosing this option encloses identifiers
 16858  	// in quotes so that PostgreSQL does not convert the character's case.
 16859  	//
 16860  	// For MySQL databases, you must enable the ansi_quotes option when you set
 16861  	// this field to DOUBLE_QUOTES.
 16862  	QueryIdentifiersEnclosingOption *string `type:"string" enum:"QueryIdentifiersEnclosingOption"`
 16863  }
 16864  
 16865  // String returns the string representation.
 16866  //
 16867  // API parameter values that are decorated as "sensitive" in the API will not
 16868  // be included in the string output. The member name will be present, but the
 16869  // value will be replaced with "sensitive".
 16870  func (s SqlConfiguration) String() string {
 16871  	return awsutil.Prettify(s)
 16872  }
 16873  
 16874  // GoString returns the string representation.
 16875  //
 16876  // API parameter values that are decorated as "sensitive" in the API will not
 16877  // be included in the string output. The member name will be present, but the
 16878  // value will be replaced with "sensitive".
 16879  func (s SqlConfiguration) GoString() string {
 16880  	return s.String()
 16881  }
 16882  
 16883  // SetQueryIdentifiersEnclosingOption sets the QueryIdentifiersEnclosingOption field's value.
 16884  func (s *SqlConfiguration) SetQueryIdentifiersEnclosingOption(v string) *SqlConfiguration {
 16885  	s.QueryIdentifiersEnclosingOption = &v
 16886  	return s
 16887  }
 16888  
 16889  type StartDataSourceSyncJobInput struct {
 16890  	_ struct{} `type:"structure"`
 16891  
 16892  	// The identifier of the data source to synchronize.
 16893  	//
 16894  	// Id is a required field
 16895  	Id *string `min:"1" type:"string" required:"true"`
 16896  
 16897  	// The identifier of the index that contains the data source.
 16898  	//
 16899  	// IndexId is a required field
 16900  	IndexId *string `min:"36" type:"string" required:"true"`
 16901  }
 16902  
 16903  // String returns the string representation.
 16904  //
 16905  // API parameter values that are decorated as "sensitive" in the API will not
 16906  // be included in the string output. The member name will be present, but the
 16907  // value will be replaced with "sensitive".
 16908  func (s StartDataSourceSyncJobInput) String() string {
 16909  	return awsutil.Prettify(s)
 16910  }
 16911  
 16912  // GoString returns the string representation.
 16913  //
 16914  // API parameter values that are decorated as "sensitive" in the API will not
 16915  // be included in the string output. The member name will be present, but the
 16916  // value will be replaced with "sensitive".
 16917  func (s StartDataSourceSyncJobInput) GoString() string {
 16918  	return s.String()
 16919  }
 16920  
 16921  // Validate inspects the fields of the type to determine if they are valid.
 16922  func (s *StartDataSourceSyncJobInput) Validate() error {
 16923  	invalidParams := request.ErrInvalidParams{Context: "StartDataSourceSyncJobInput"}
 16924  	if s.Id == nil {
 16925  		invalidParams.Add(request.NewErrParamRequired("Id"))
 16926  	}
 16927  	if s.Id != nil && len(*s.Id) < 1 {
 16928  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
 16929  	}
 16930  	if s.IndexId == nil {
 16931  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 16932  	}
 16933  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 16934  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 16935  	}
 16936  
 16937  	if invalidParams.Len() > 0 {
 16938  		return invalidParams
 16939  	}
 16940  	return nil
 16941  }
 16942  
 16943  // SetId sets the Id field's value.
 16944  func (s *StartDataSourceSyncJobInput) SetId(v string) *StartDataSourceSyncJobInput {
 16945  	s.Id = &v
 16946  	return s
 16947  }
 16948  
 16949  // SetIndexId sets the IndexId field's value.
 16950  func (s *StartDataSourceSyncJobInput) SetIndexId(v string) *StartDataSourceSyncJobInput {
 16951  	s.IndexId = &v
 16952  	return s
 16953  }
 16954  
 16955  type StartDataSourceSyncJobOutput struct {
 16956  	_ struct{} `type:"structure"`
 16957  
 16958  	// Identifies a particular synchronization job.
 16959  	ExecutionId *string `min:"1" type:"string"`
 16960  }
 16961  
 16962  // String returns the string representation.
 16963  //
 16964  // API parameter values that are decorated as "sensitive" in the API will not
 16965  // be included in the string output. The member name will be present, but the
 16966  // value will be replaced with "sensitive".
 16967  func (s StartDataSourceSyncJobOutput) String() string {
 16968  	return awsutil.Prettify(s)
 16969  }
 16970  
 16971  // GoString returns the string representation.
 16972  //
 16973  // API parameter values that are decorated as "sensitive" in the API will not
 16974  // be included in the string output. The member name will be present, but the
 16975  // value will be replaced with "sensitive".
 16976  func (s StartDataSourceSyncJobOutput) GoString() string {
 16977  	return s.String()
 16978  }
 16979  
 16980  // SetExecutionId sets the ExecutionId field's value.
 16981  func (s *StartDataSourceSyncJobOutput) SetExecutionId(v string) *StartDataSourceSyncJobOutput {
 16982  	s.ExecutionId = &v
 16983  	return s
 16984  }
 16985  
 16986  // Provides information about the status of documents submitted for indexing.
 16987  type Status struct {
 16988  	_ struct{} `type:"structure"`
 16989  
 16990  	// The unique identifier of the document.
 16991  	DocumentId *string `min:"1" type:"string"`
 16992  
 16993  	// The current status of a document.
 16994  	//
 16995  	// If the document was submitted for deletion, the status is NOT_FOUND after
 16996  	// the document is deleted.
 16997  	DocumentStatus *string `type:"string" enum:"DocumentStatus"`
 16998  
 16999  	// Indicates the source of the error.
 17000  	FailureCode *string `min:"1" type:"string"`
 17001  
 17002  	// Provides detailed information about why the document couldn't be indexed.
 17003  	// Use this information to correct the error before you resubmit the document
 17004  	// for indexing.
 17005  	FailureReason *string `min:"1" type:"string"`
 17006  }
 17007  
 17008  // String returns the string representation.
 17009  //
 17010  // API parameter values that are decorated as "sensitive" in the API will not
 17011  // be included in the string output. The member name will be present, but the
 17012  // value will be replaced with "sensitive".
 17013  func (s Status) String() string {
 17014  	return awsutil.Prettify(s)
 17015  }
 17016  
 17017  // GoString returns the string representation.
 17018  //
 17019  // API parameter values that are decorated as "sensitive" in the API will not
 17020  // be included in the string output. The member name will be present, but the
 17021  // value will be replaced with "sensitive".
 17022  func (s Status) GoString() string {
 17023  	return s.String()
 17024  }
 17025  
 17026  // SetDocumentId sets the DocumentId field's value.
 17027  func (s *Status) SetDocumentId(v string) *Status {
 17028  	s.DocumentId = &v
 17029  	return s
 17030  }
 17031  
 17032  // SetDocumentStatus sets the DocumentStatus field's value.
 17033  func (s *Status) SetDocumentStatus(v string) *Status {
 17034  	s.DocumentStatus = &v
 17035  	return s
 17036  }
 17037  
 17038  // SetFailureCode sets the FailureCode field's value.
 17039  func (s *Status) SetFailureCode(v string) *Status {
 17040  	s.FailureCode = &v
 17041  	return s
 17042  }
 17043  
 17044  // SetFailureReason sets the FailureReason field's value.
 17045  func (s *Status) SetFailureReason(v string) *Status {
 17046  	s.FailureReason = &v
 17047  	return s
 17048  }
 17049  
 17050  type StopDataSourceSyncJobInput struct {
 17051  	_ struct{} `type:"structure"`
 17052  
 17053  	// The identifier of the data source for which to stop the synchronization jobs.
 17054  	//
 17055  	// Id is a required field
 17056  	Id *string `min:"1" type:"string" required:"true"`
 17057  
 17058  	// The identifier of the index that contains the data source.
 17059  	//
 17060  	// IndexId is a required field
 17061  	IndexId *string `min:"36" type:"string" required:"true"`
 17062  }
 17063  
 17064  // String returns the string representation.
 17065  //
 17066  // API parameter values that are decorated as "sensitive" in the API will not
 17067  // be included in the string output. The member name will be present, but the
 17068  // value will be replaced with "sensitive".
 17069  func (s StopDataSourceSyncJobInput) String() string {
 17070  	return awsutil.Prettify(s)
 17071  }
 17072  
 17073  // GoString returns the string representation.
 17074  //
 17075  // API parameter values that are decorated as "sensitive" in the API will not
 17076  // be included in the string output. The member name will be present, but the
 17077  // value will be replaced with "sensitive".
 17078  func (s StopDataSourceSyncJobInput) GoString() string {
 17079  	return s.String()
 17080  }
 17081  
 17082  // Validate inspects the fields of the type to determine if they are valid.
 17083  func (s *StopDataSourceSyncJobInput) Validate() error {
 17084  	invalidParams := request.ErrInvalidParams{Context: "StopDataSourceSyncJobInput"}
 17085  	if s.Id == nil {
 17086  		invalidParams.Add(request.NewErrParamRequired("Id"))
 17087  	}
 17088  	if s.Id != nil && len(*s.Id) < 1 {
 17089  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
 17090  	}
 17091  	if s.IndexId == nil {
 17092  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 17093  	}
 17094  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 17095  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 17096  	}
 17097  
 17098  	if invalidParams.Len() > 0 {
 17099  		return invalidParams
 17100  	}
 17101  	return nil
 17102  }
 17103  
 17104  // SetId sets the Id field's value.
 17105  func (s *StopDataSourceSyncJobInput) SetId(v string) *StopDataSourceSyncJobInput {
 17106  	s.Id = &v
 17107  	return s
 17108  }
 17109  
 17110  // SetIndexId sets the IndexId field's value.
 17111  func (s *StopDataSourceSyncJobInput) SetIndexId(v string) *StopDataSourceSyncJobInput {
 17112  	s.IndexId = &v
 17113  	return s
 17114  }
 17115  
 17116  type StopDataSourceSyncJobOutput struct {
 17117  	_ struct{} `type:"structure"`
 17118  }
 17119  
 17120  // String returns the string representation.
 17121  //
 17122  // API parameter values that are decorated as "sensitive" in the API will not
 17123  // be included in the string output. The member name will be present, but the
 17124  // value will be replaced with "sensitive".
 17125  func (s StopDataSourceSyncJobOutput) String() string {
 17126  	return awsutil.Prettify(s)
 17127  }
 17128  
 17129  // GoString returns the string representation.
 17130  //
 17131  // API parameter values that are decorated as "sensitive" in the API will not
 17132  // be included in the string output. The member name will be present, but the
 17133  // value will be replaced with "sensitive".
 17134  func (s StopDataSourceSyncJobOutput) GoString() string {
 17135  	return s.String()
 17136  }
 17137  
 17138  type SubmitFeedbackInput struct {
 17139  	_ struct{} `type:"structure"`
 17140  
 17141  	// Tells Amazon Kendra that a particular search result link was chosen by the
 17142  	// user.
 17143  	ClickFeedbackItems []*ClickFeedback `type:"list"`
 17144  
 17145  	// The identifier of the index that was queried.
 17146  	//
 17147  	// IndexId is a required field
 17148  	IndexId *string `min:"36" type:"string" required:"true"`
 17149  
 17150  	// The identifier of the specific query for which you are submitting feedback.
 17151  	// The query ID is returned in the response to the Query operation.
 17152  	//
 17153  	// QueryId is a required field
 17154  	QueryId *string `min:"1" type:"string" required:"true"`
 17155  
 17156  	// Provides Amazon Kendra with relevant or not relevant feedback for whether
 17157  	// a particular item was relevant to the search.
 17158  	RelevanceFeedbackItems []*RelevanceFeedback `type:"list"`
 17159  }
 17160  
 17161  // String returns the string representation.
 17162  //
 17163  // API parameter values that are decorated as "sensitive" in the API will not
 17164  // be included in the string output. The member name will be present, but the
 17165  // value will be replaced with "sensitive".
 17166  func (s SubmitFeedbackInput) String() string {
 17167  	return awsutil.Prettify(s)
 17168  }
 17169  
 17170  // GoString returns the string representation.
 17171  //
 17172  // API parameter values that are decorated as "sensitive" in the API will not
 17173  // be included in the string output. The member name will be present, but the
 17174  // value will be replaced with "sensitive".
 17175  func (s SubmitFeedbackInput) GoString() string {
 17176  	return s.String()
 17177  }
 17178  
 17179  // Validate inspects the fields of the type to determine if they are valid.
 17180  func (s *SubmitFeedbackInput) Validate() error {
 17181  	invalidParams := request.ErrInvalidParams{Context: "SubmitFeedbackInput"}
 17182  	if s.IndexId == nil {
 17183  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 17184  	}
 17185  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 17186  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 17187  	}
 17188  	if s.QueryId == nil {
 17189  		invalidParams.Add(request.NewErrParamRequired("QueryId"))
 17190  	}
 17191  	if s.QueryId != nil && len(*s.QueryId) < 1 {
 17192  		invalidParams.Add(request.NewErrParamMinLen("QueryId", 1))
 17193  	}
 17194  	if s.ClickFeedbackItems != nil {
 17195  		for i, v := range s.ClickFeedbackItems {
 17196  			if v == nil {
 17197  				continue
 17198  			}
 17199  			if err := v.Validate(); err != nil {
 17200  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ClickFeedbackItems", i), err.(request.ErrInvalidParams))
 17201  			}
 17202  		}
 17203  	}
 17204  	if s.RelevanceFeedbackItems != nil {
 17205  		for i, v := range s.RelevanceFeedbackItems {
 17206  			if v == nil {
 17207  				continue
 17208  			}
 17209  			if err := v.Validate(); err != nil {
 17210  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RelevanceFeedbackItems", i), err.(request.ErrInvalidParams))
 17211  			}
 17212  		}
 17213  	}
 17214  
 17215  	if invalidParams.Len() > 0 {
 17216  		return invalidParams
 17217  	}
 17218  	return nil
 17219  }
 17220  
 17221  // SetClickFeedbackItems sets the ClickFeedbackItems field's value.
 17222  func (s *SubmitFeedbackInput) SetClickFeedbackItems(v []*ClickFeedback) *SubmitFeedbackInput {
 17223  	s.ClickFeedbackItems = v
 17224  	return s
 17225  }
 17226  
 17227  // SetIndexId sets the IndexId field's value.
 17228  func (s *SubmitFeedbackInput) SetIndexId(v string) *SubmitFeedbackInput {
 17229  	s.IndexId = &v
 17230  	return s
 17231  }
 17232  
 17233  // SetQueryId sets the QueryId field's value.
 17234  func (s *SubmitFeedbackInput) SetQueryId(v string) *SubmitFeedbackInput {
 17235  	s.QueryId = &v
 17236  	return s
 17237  }
 17238  
 17239  // SetRelevanceFeedbackItems sets the RelevanceFeedbackItems field's value.
 17240  func (s *SubmitFeedbackInput) SetRelevanceFeedbackItems(v []*RelevanceFeedback) *SubmitFeedbackInput {
 17241  	s.RelevanceFeedbackItems = v
 17242  	return s
 17243  }
 17244  
 17245  type SubmitFeedbackOutput struct {
 17246  	_ struct{} `type:"structure"`
 17247  }
 17248  
 17249  // String returns the string representation.
 17250  //
 17251  // API parameter values that are decorated as "sensitive" in the API will not
 17252  // be included in the string output. The member name will be present, but the
 17253  // value will be replaced with "sensitive".
 17254  func (s SubmitFeedbackOutput) String() string {
 17255  	return awsutil.Prettify(s)
 17256  }
 17257  
 17258  // GoString returns the string representation.
 17259  //
 17260  // API parameter values that are decorated as "sensitive" in the API will not
 17261  // be included in the string output. The member name will be present, but the
 17262  // value will be replaced with "sensitive".
 17263  func (s SubmitFeedbackOutput) GoString() string {
 17264  	return s.String()
 17265  }
 17266  
 17267  // A single query suggestion.
 17268  type Suggestion struct {
 17269  	_ struct{} `type:"structure"`
 17270  
 17271  	// The unique UUID (universally unique identifier) of a single query suggestion.
 17272  	Id *string `min:"1" type:"string"`
 17273  
 17274  	// The value for the unique UUID (universally unique identifier) of a single
 17275  	// query suggestion.
 17276  	//
 17277  	// The value is the text string of a suggestion.
 17278  	Value *SuggestionValue `type:"structure"`
 17279  }
 17280  
 17281  // String returns the string representation.
 17282  //
 17283  // API parameter values that are decorated as "sensitive" in the API will not
 17284  // be included in the string output. The member name will be present, but the
 17285  // value will be replaced with "sensitive".
 17286  func (s Suggestion) String() string {
 17287  	return awsutil.Prettify(s)
 17288  }
 17289  
 17290  // GoString returns the string representation.
 17291  //
 17292  // API parameter values that are decorated as "sensitive" in the API will not
 17293  // be included in the string output. The member name will be present, but the
 17294  // value will be replaced with "sensitive".
 17295  func (s Suggestion) GoString() string {
 17296  	return s.String()
 17297  }
 17298  
 17299  // SetId sets the Id field's value.
 17300  func (s *Suggestion) SetId(v string) *Suggestion {
 17301  	s.Id = &v
 17302  	return s
 17303  }
 17304  
 17305  // SetValue sets the Value field's value.
 17306  func (s *Suggestion) SetValue(v *SuggestionValue) *Suggestion {
 17307  	s.Value = v
 17308  	return s
 17309  }
 17310  
 17311  // The text highlights for a single query suggestion.
 17312  type SuggestionHighlight struct {
 17313  	_ struct{} `type:"structure"`
 17314  
 17315  	// The zero-based location in the response string where the highlight starts.
 17316  	BeginOffset *int64 `type:"integer"`
 17317  
 17318  	// The zero-based location in the response string where the highlight ends.
 17319  	EndOffset *int64 `type:"integer"`
 17320  }
 17321  
 17322  // String returns the string representation.
 17323  //
 17324  // API parameter values that are decorated as "sensitive" in the API will not
 17325  // be included in the string output. The member name will be present, but the
 17326  // value will be replaced with "sensitive".
 17327  func (s SuggestionHighlight) String() string {
 17328  	return awsutil.Prettify(s)
 17329  }
 17330  
 17331  // GoString returns the string representation.
 17332  //
 17333  // API parameter values that are decorated as "sensitive" in the API will not
 17334  // be included in the string output. The member name will be present, but the
 17335  // value will be replaced with "sensitive".
 17336  func (s SuggestionHighlight) GoString() string {
 17337  	return s.String()
 17338  }
 17339  
 17340  // SetBeginOffset sets the BeginOffset field's value.
 17341  func (s *SuggestionHighlight) SetBeginOffset(v int64) *SuggestionHighlight {
 17342  	s.BeginOffset = &v
 17343  	return s
 17344  }
 17345  
 17346  // SetEndOffset sets the EndOffset field's value.
 17347  func (s *SuggestionHighlight) SetEndOffset(v int64) *SuggestionHighlight {
 17348  	s.EndOffset = &v
 17349  	return s
 17350  }
 17351  
 17352  // Provides text and information about where to highlight the query suggestion
 17353  // text.
 17354  type SuggestionTextWithHighlights struct {
 17355  	_ struct{} `type:"structure"`
 17356  
 17357  	// The beginning and end of the query suggestion text that should be highlighted.
 17358  	Highlights []*SuggestionHighlight `type:"list"`
 17359  
 17360  	// The query suggestion text to display to the user.
 17361  	Text *string `min:"1" type:"string"`
 17362  }
 17363  
 17364  // String returns the string representation.
 17365  //
 17366  // API parameter values that are decorated as "sensitive" in the API will not
 17367  // be included in the string output. The member name will be present, but the
 17368  // value will be replaced with "sensitive".
 17369  func (s SuggestionTextWithHighlights) String() string {
 17370  	return awsutil.Prettify(s)
 17371  }
 17372  
 17373  // GoString returns the string representation.
 17374  //
 17375  // API parameter values that are decorated as "sensitive" in the API will not
 17376  // be included in the string output. The member name will be present, but the
 17377  // value will be replaced with "sensitive".
 17378  func (s SuggestionTextWithHighlights) GoString() string {
 17379  	return s.String()
 17380  }
 17381  
 17382  // SetHighlights sets the Highlights field's value.
 17383  func (s *SuggestionTextWithHighlights) SetHighlights(v []*SuggestionHighlight) *SuggestionTextWithHighlights {
 17384  	s.Highlights = v
 17385  	return s
 17386  }
 17387  
 17388  // SetText sets the Text field's value.
 17389  func (s *SuggestionTextWithHighlights) SetText(v string) *SuggestionTextWithHighlights {
 17390  	s.Text = &v
 17391  	return s
 17392  }
 17393  
 17394  // The SuggestionTextWithHighlights structure information.
 17395  type SuggestionValue struct {
 17396  	_ struct{} `type:"structure"`
 17397  
 17398  	// The SuggestionTextWithHighlights structure that contains the query suggestion
 17399  	// text and highlights.
 17400  	Text *SuggestionTextWithHighlights `type:"structure"`
 17401  }
 17402  
 17403  // String returns the string representation.
 17404  //
 17405  // API parameter values that are decorated as "sensitive" in the API will not
 17406  // be included in the string output. The member name will be present, but the
 17407  // value will be replaced with "sensitive".
 17408  func (s SuggestionValue) String() string {
 17409  	return awsutil.Prettify(s)
 17410  }
 17411  
 17412  // GoString returns the string representation.
 17413  //
 17414  // API parameter values that are decorated as "sensitive" in the API will not
 17415  // be included in the string output. The member name will be present, but the
 17416  // value will be replaced with "sensitive".
 17417  func (s SuggestionValue) GoString() string {
 17418  	return s.String()
 17419  }
 17420  
 17421  // SetText sets the Text field's value.
 17422  func (s *SuggestionValue) SetText(v *SuggestionTextWithHighlights) *SuggestionValue {
 17423  	s.Text = v
 17424  	return s
 17425  }
 17426  
 17427  // A list of key/value pairs that identify an index, FAQ, or data source. Tag
 17428  // keys and values can consist of Unicode letters, digits, white space, and
 17429  // any of the following symbols: _ . : / = + - @.
 17430  type Tag struct {
 17431  	_ struct{} `type:"structure"`
 17432  
 17433  	// The key for the tag. Keys are not case sensitive and must be unique for the
 17434  	// index, FAQ, or data source.
 17435  	//
 17436  	// Key is a required field
 17437  	Key *string `min:"1" type:"string" required:"true"`
 17438  
 17439  	// The value associated with the tag. The value may be an empty string but it
 17440  	// can't be null.
 17441  	//
 17442  	// Value is a required field
 17443  	Value *string `type:"string" required:"true"`
 17444  }
 17445  
 17446  // String returns the string representation.
 17447  //
 17448  // API parameter values that are decorated as "sensitive" in the API will not
 17449  // be included in the string output. The member name will be present, but the
 17450  // value will be replaced with "sensitive".
 17451  func (s Tag) String() string {
 17452  	return awsutil.Prettify(s)
 17453  }
 17454  
 17455  // GoString returns the string representation.
 17456  //
 17457  // API parameter values that are decorated as "sensitive" in the API will not
 17458  // be included in the string output. The member name will be present, but the
 17459  // value will be replaced with "sensitive".
 17460  func (s Tag) GoString() string {
 17461  	return s.String()
 17462  }
 17463  
 17464  // Validate inspects the fields of the type to determine if they are valid.
 17465  func (s *Tag) Validate() error {
 17466  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
 17467  	if s.Key == nil {
 17468  		invalidParams.Add(request.NewErrParamRequired("Key"))
 17469  	}
 17470  	if s.Key != nil && len(*s.Key) < 1 {
 17471  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 17472  	}
 17473  	if s.Value == nil {
 17474  		invalidParams.Add(request.NewErrParamRequired("Value"))
 17475  	}
 17476  
 17477  	if invalidParams.Len() > 0 {
 17478  		return invalidParams
 17479  	}
 17480  	return nil
 17481  }
 17482  
 17483  // SetKey sets the Key field's value.
 17484  func (s *Tag) SetKey(v string) *Tag {
 17485  	s.Key = &v
 17486  	return s
 17487  }
 17488  
 17489  // SetValue sets the Value field's value.
 17490  func (s *Tag) SetValue(v string) *Tag {
 17491  	s.Value = &v
 17492  	return s
 17493  }
 17494  
 17495  type TagResourceInput struct {
 17496  	_ struct{} `type:"structure"`
 17497  
 17498  	// The Amazon Resource Name (ARN) of the index, FAQ, or data source to tag.
 17499  	//
 17500  	// ResourceARN is a required field
 17501  	ResourceARN *string `min:"1" type:"string" required:"true"`
 17502  
 17503  	// A list of tag keys to add to the index, FAQ, or data source. If a tag already
 17504  	// exists, the existing value is replaced with the new value.
 17505  	//
 17506  	// Tags is a required field
 17507  	Tags []*Tag `type:"list" required:"true"`
 17508  }
 17509  
 17510  // String returns the string representation.
 17511  //
 17512  // API parameter values that are decorated as "sensitive" in the API will not
 17513  // be included in the string output. The member name will be present, but the
 17514  // value will be replaced with "sensitive".
 17515  func (s TagResourceInput) String() string {
 17516  	return awsutil.Prettify(s)
 17517  }
 17518  
 17519  // GoString returns the string representation.
 17520  //
 17521  // API parameter values that are decorated as "sensitive" in the API will not
 17522  // be included in the string output. The member name will be present, but the
 17523  // value will be replaced with "sensitive".
 17524  func (s TagResourceInput) GoString() string {
 17525  	return s.String()
 17526  }
 17527  
 17528  // Validate inspects the fields of the type to determine if they are valid.
 17529  func (s *TagResourceInput) Validate() error {
 17530  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
 17531  	if s.ResourceARN == nil {
 17532  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
 17533  	}
 17534  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
 17535  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
 17536  	}
 17537  	if s.Tags == nil {
 17538  		invalidParams.Add(request.NewErrParamRequired("Tags"))
 17539  	}
 17540  	if s.Tags != nil {
 17541  		for i, v := range s.Tags {
 17542  			if v == nil {
 17543  				continue
 17544  			}
 17545  			if err := v.Validate(); err != nil {
 17546  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 17547  			}
 17548  		}
 17549  	}
 17550  
 17551  	if invalidParams.Len() > 0 {
 17552  		return invalidParams
 17553  	}
 17554  	return nil
 17555  }
 17556  
 17557  // SetResourceARN sets the ResourceARN field's value.
 17558  func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
 17559  	s.ResourceARN = &v
 17560  	return s
 17561  }
 17562  
 17563  // SetTags sets the Tags field's value.
 17564  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
 17565  	s.Tags = v
 17566  	return s
 17567  }
 17568  
 17569  type TagResourceOutput struct {
 17570  	_ struct{} `type:"structure"`
 17571  }
 17572  
 17573  // String returns the string representation.
 17574  //
 17575  // API parameter values that are decorated as "sensitive" in the API will not
 17576  // be included in the string output. The member name will be present, but the
 17577  // value will be replaced with "sensitive".
 17578  func (s TagResourceOutput) String() string {
 17579  	return awsutil.Prettify(s)
 17580  }
 17581  
 17582  // GoString returns the string representation.
 17583  //
 17584  // API parameter values that are decorated as "sensitive" in the API will not
 17585  // be included in the string output. The member name will be present, but the
 17586  // value will be replaced with "sensitive".
 17587  func (s TagResourceOutput) GoString() string {
 17588  	return s.String()
 17589  }
 17590  
 17591  // Provides information about text documents indexed in an index.
 17592  type TextDocumentStatistics struct {
 17593  	_ struct{} `type:"structure"`
 17594  
 17595  	// The total size, in bytes, of the indexed documents.
 17596  	//
 17597  	// IndexedTextBytes is a required field
 17598  	IndexedTextBytes *int64 `type:"long" required:"true"`
 17599  
 17600  	// The number of text documents indexed.
 17601  	//
 17602  	// IndexedTextDocumentsCount is a required field
 17603  	IndexedTextDocumentsCount *int64 `type:"integer" required:"true"`
 17604  }
 17605  
 17606  // String returns the string representation.
 17607  //
 17608  // API parameter values that are decorated as "sensitive" in the API will not
 17609  // be included in the string output. The member name will be present, but the
 17610  // value will be replaced with "sensitive".
 17611  func (s TextDocumentStatistics) String() string {
 17612  	return awsutil.Prettify(s)
 17613  }
 17614  
 17615  // GoString returns the string representation.
 17616  //
 17617  // API parameter values that are decorated as "sensitive" in the API will not
 17618  // be included in the string output. The member name will be present, but the
 17619  // value will be replaced with "sensitive".
 17620  func (s TextDocumentStatistics) GoString() string {
 17621  	return s.String()
 17622  }
 17623  
 17624  // SetIndexedTextBytes sets the IndexedTextBytes field's value.
 17625  func (s *TextDocumentStatistics) SetIndexedTextBytes(v int64) *TextDocumentStatistics {
 17626  	s.IndexedTextBytes = &v
 17627  	return s
 17628  }
 17629  
 17630  // SetIndexedTextDocumentsCount sets the IndexedTextDocumentsCount field's value.
 17631  func (s *TextDocumentStatistics) SetIndexedTextDocumentsCount(v int64) *TextDocumentStatistics {
 17632  	s.IndexedTextDocumentsCount = &v
 17633  	return s
 17634  }
 17635  
 17636  // Provides text and information about where to highlight the text.
 17637  type TextWithHighlights struct {
 17638  	_ struct{} `type:"structure"`
 17639  
 17640  	// The beginning and end of the text that should be highlighted.
 17641  	Highlights []*Highlight `type:"list"`
 17642  
 17643  	// The text to display to the user.
 17644  	Text *string `min:"1" type:"string"`
 17645  }
 17646  
 17647  // String returns the string representation.
 17648  //
 17649  // API parameter values that are decorated as "sensitive" in the API will not
 17650  // be included in the string output. The member name will be present, but the
 17651  // value will be replaced with "sensitive".
 17652  func (s TextWithHighlights) String() string {
 17653  	return awsutil.Prettify(s)
 17654  }
 17655  
 17656  // GoString returns the string representation.
 17657  //
 17658  // API parameter values that are decorated as "sensitive" in the API will not
 17659  // be included in the string output. The member name will be present, but the
 17660  // value will be replaced with "sensitive".
 17661  func (s TextWithHighlights) GoString() string {
 17662  	return s.String()
 17663  }
 17664  
 17665  // SetHighlights sets the Highlights field's value.
 17666  func (s *TextWithHighlights) SetHighlights(v []*Highlight) *TextWithHighlights {
 17667  	s.Highlights = v
 17668  	return s
 17669  }
 17670  
 17671  // SetText sets the Text field's value.
 17672  func (s *TextWithHighlights) SetText(v string) *TextWithHighlights {
 17673  	s.Text = &v
 17674  	return s
 17675  }
 17676  
 17677  // An array of summary information for a thesaurus or multiple thesauri.
 17678  type ThesaurusSummary struct {
 17679  	_ struct{} `type:"structure"`
 17680  
 17681  	// The Unix datetime that the thesaurus was created.
 17682  	CreatedAt *time.Time `type:"timestamp"`
 17683  
 17684  	// The identifier of the thesaurus.
 17685  	Id *string `min:"1" type:"string"`
 17686  
 17687  	// The name of the thesaurus.
 17688  	Name *string `min:"1" type:"string"`
 17689  
 17690  	// The status of the thesaurus.
 17691  	Status *string `type:"string" enum:"ThesaurusStatus"`
 17692  
 17693  	// The Unix datetime that the thesaurus was last updated.
 17694  	UpdatedAt *time.Time `type:"timestamp"`
 17695  }
 17696  
 17697  // String returns the string representation.
 17698  //
 17699  // API parameter values that are decorated as "sensitive" in the API will not
 17700  // be included in the string output. The member name will be present, but the
 17701  // value will be replaced with "sensitive".
 17702  func (s ThesaurusSummary) String() string {
 17703  	return awsutil.Prettify(s)
 17704  }
 17705  
 17706  // GoString returns the string representation.
 17707  //
 17708  // API parameter values that are decorated as "sensitive" in the API will not
 17709  // be included in the string output. The member name will be present, but the
 17710  // value will be replaced with "sensitive".
 17711  func (s ThesaurusSummary) GoString() string {
 17712  	return s.String()
 17713  }
 17714  
 17715  // SetCreatedAt sets the CreatedAt field's value.
 17716  func (s *ThesaurusSummary) SetCreatedAt(v time.Time) *ThesaurusSummary {
 17717  	s.CreatedAt = &v
 17718  	return s
 17719  }
 17720  
 17721  // SetId sets the Id field's value.
 17722  func (s *ThesaurusSummary) SetId(v string) *ThesaurusSummary {
 17723  	s.Id = &v
 17724  	return s
 17725  }
 17726  
 17727  // SetName sets the Name field's value.
 17728  func (s *ThesaurusSummary) SetName(v string) *ThesaurusSummary {
 17729  	s.Name = &v
 17730  	return s
 17731  }
 17732  
 17733  // SetStatus sets the Status field's value.
 17734  func (s *ThesaurusSummary) SetStatus(v string) *ThesaurusSummary {
 17735  	s.Status = &v
 17736  	return s
 17737  }
 17738  
 17739  // SetUpdatedAt sets the UpdatedAt field's value.
 17740  func (s *ThesaurusSummary) SetUpdatedAt(v time.Time) *ThesaurusSummary {
 17741  	s.UpdatedAt = &v
 17742  	return s
 17743  }
 17744  
 17745  type ThrottlingException struct {
 17746  	_            struct{}                  `type:"structure"`
 17747  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 17748  
 17749  	Message_ *string `locationName:"Message" min:"1" type:"string"`
 17750  }
 17751  
 17752  // String returns the string representation.
 17753  //
 17754  // API parameter values that are decorated as "sensitive" in the API will not
 17755  // be included in the string output. The member name will be present, but the
 17756  // value will be replaced with "sensitive".
 17757  func (s ThrottlingException) String() string {
 17758  	return awsutil.Prettify(s)
 17759  }
 17760  
 17761  // GoString returns the string representation.
 17762  //
 17763  // API parameter values that are decorated as "sensitive" in the API will not
 17764  // be included in the string output. The member name will be present, but the
 17765  // value will be replaced with "sensitive".
 17766  func (s ThrottlingException) GoString() string {
 17767  	return s.String()
 17768  }
 17769  
 17770  func newErrorThrottlingException(v protocol.ResponseMetadata) error {
 17771  	return &ThrottlingException{
 17772  		RespMetadata: v,
 17773  	}
 17774  }
 17775  
 17776  // Code returns the exception type name.
 17777  func (s *ThrottlingException) Code() string {
 17778  	return "ThrottlingException"
 17779  }
 17780  
 17781  // Message returns the exception's message.
 17782  func (s *ThrottlingException) Message() string {
 17783  	if s.Message_ != nil {
 17784  		return *s.Message_
 17785  	}
 17786  	return ""
 17787  }
 17788  
 17789  // OrigErr always returns nil, satisfies awserr.Error interface.
 17790  func (s *ThrottlingException) OrigErr() error {
 17791  	return nil
 17792  }
 17793  
 17794  func (s *ThrottlingException) Error() string {
 17795  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 17796  }
 17797  
 17798  // Status code returns the HTTP status code for the request's response error.
 17799  func (s *ThrottlingException) StatusCode() int {
 17800  	return s.RespMetadata.StatusCode
 17801  }
 17802  
 17803  // RequestID returns the service's response RequestID for request.
 17804  func (s *ThrottlingException) RequestID() string {
 17805  	return s.RespMetadata.RequestID
 17806  }
 17807  
 17808  // Provides a range of time.
 17809  type TimeRange struct {
 17810  	_ struct{} `type:"structure"`
 17811  
 17812  	// The UNIX datetime of the end of the time range.
 17813  	EndTime *time.Time `type:"timestamp"`
 17814  
 17815  	// The UNIX datetime of the beginning of the time range.
 17816  	StartTime *time.Time `type:"timestamp"`
 17817  }
 17818  
 17819  // String returns the string representation.
 17820  //
 17821  // API parameter values that are decorated as "sensitive" in the API will not
 17822  // be included in the string output. The member name will be present, but the
 17823  // value will be replaced with "sensitive".
 17824  func (s TimeRange) String() string {
 17825  	return awsutil.Prettify(s)
 17826  }
 17827  
 17828  // GoString returns the string representation.
 17829  //
 17830  // API parameter values that are decorated as "sensitive" in the API will not
 17831  // be included in the string output. The member name will be present, but the
 17832  // value will be replaced with "sensitive".
 17833  func (s TimeRange) GoString() string {
 17834  	return s.String()
 17835  }
 17836  
 17837  // SetEndTime sets the EndTime field's value.
 17838  func (s *TimeRange) SetEndTime(v time.Time) *TimeRange {
 17839  	s.EndTime = &v
 17840  	return s
 17841  }
 17842  
 17843  // SetStartTime sets the StartTime field's value.
 17844  func (s *TimeRange) SetStartTime(v time.Time) *TimeRange {
 17845  	s.StartTime = &v
 17846  	return s
 17847  }
 17848  
 17849  type UntagResourceInput struct {
 17850  	_ struct{} `type:"structure"`
 17851  
 17852  	// The Amazon Resource Name (ARN) of the index, FAQ, or data source to remove
 17853  	// the tag from.
 17854  	//
 17855  	// ResourceARN is a required field
 17856  	ResourceARN *string `min:"1" type:"string" required:"true"`
 17857  
 17858  	// A list of tag keys to remove from the index, FAQ, or data source. If a tag
 17859  	// key does not exist on the resource, it is ignored.
 17860  	//
 17861  	// TagKeys is a required field
 17862  	TagKeys []*string `type:"list" required:"true"`
 17863  }
 17864  
 17865  // String returns the string representation.
 17866  //
 17867  // API parameter values that are decorated as "sensitive" in the API will not
 17868  // be included in the string output. The member name will be present, but the
 17869  // value will be replaced with "sensitive".
 17870  func (s UntagResourceInput) String() string {
 17871  	return awsutil.Prettify(s)
 17872  }
 17873  
 17874  // GoString returns the string representation.
 17875  //
 17876  // API parameter values that are decorated as "sensitive" in the API will not
 17877  // be included in the string output. The member name will be present, but the
 17878  // value will be replaced with "sensitive".
 17879  func (s UntagResourceInput) GoString() string {
 17880  	return s.String()
 17881  }
 17882  
 17883  // Validate inspects the fields of the type to determine if they are valid.
 17884  func (s *UntagResourceInput) Validate() error {
 17885  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
 17886  	if s.ResourceARN == nil {
 17887  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
 17888  	}
 17889  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
 17890  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
 17891  	}
 17892  	if s.TagKeys == nil {
 17893  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 17894  	}
 17895  
 17896  	if invalidParams.Len() > 0 {
 17897  		return invalidParams
 17898  	}
 17899  	return nil
 17900  }
 17901  
 17902  // SetResourceARN sets the ResourceARN field's value.
 17903  func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
 17904  	s.ResourceARN = &v
 17905  	return s
 17906  }
 17907  
 17908  // SetTagKeys sets the TagKeys field's value.
 17909  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
 17910  	s.TagKeys = v
 17911  	return s
 17912  }
 17913  
 17914  type UntagResourceOutput struct {
 17915  	_ struct{} `type:"structure"`
 17916  }
 17917  
 17918  // String returns the string representation.
 17919  //
 17920  // API parameter values that are decorated as "sensitive" in the API will not
 17921  // be included in the string output. The member name will be present, but the
 17922  // value will be replaced with "sensitive".
 17923  func (s UntagResourceOutput) String() string {
 17924  	return awsutil.Prettify(s)
 17925  }
 17926  
 17927  // GoString returns the string representation.
 17928  //
 17929  // API parameter values that are decorated as "sensitive" in the API will not
 17930  // be included in the string output. The member name will be present, but the
 17931  // value will be replaced with "sensitive".
 17932  func (s UntagResourceOutput) GoString() string {
 17933  	return s.String()
 17934  }
 17935  
 17936  type UpdateDataSourceInput struct {
 17937  	_ struct{} `type:"structure"`
 17938  
 17939  	// Configuration information for a Amazon Kendra data source.
 17940  	Configuration *DataSourceConfiguration `type:"structure"`
 17941  
 17942  	// The new description for the data source.
 17943  	Description *string `type:"string"`
 17944  
 17945  	// The unique identifier of the data source to update.
 17946  	//
 17947  	// Id is a required field
 17948  	Id *string `min:"1" type:"string" required:"true"`
 17949  
 17950  	// The identifier of the index that contains the data source to update.
 17951  	//
 17952  	// IndexId is a required field
 17953  	IndexId *string `min:"36" type:"string" required:"true"`
 17954  
 17955  	// The code for a language. This allows you to support a language for all documents
 17956  	// when updating the data source. English is supported by default. For more
 17957  	// information on supported languages, including their codes, see Adding documents
 17958  	// in languages other than English (https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html).
 17959  	LanguageCode *string `min:"2" type:"string"`
 17960  
 17961  	// The name of the data source to update. The name of the data source can't
 17962  	// be updated. To rename a data source you must delete the data source and re-create
 17963  	// it.
 17964  	Name *string `min:"1" type:"string"`
 17965  
 17966  	// The Amazon Resource Name (ARN) of the new role to use when the data source
 17967  	// is accessing resources on your behalf.
 17968  	RoleArn *string `min:"1" type:"string"`
 17969  
 17970  	// The new update schedule for the data source.
 17971  	Schedule *string `type:"string"`
 17972  }
 17973  
 17974  // String returns the string representation.
 17975  //
 17976  // API parameter values that are decorated as "sensitive" in the API will not
 17977  // be included in the string output. The member name will be present, but the
 17978  // value will be replaced with "sensitive".
 17979  func (s UpdateDataSourceInput) String() string {
 17980  	return awsutil.Prettify(s)
 17981  }
 17982  
 17983  // GoString returns the string representation.
 17984  //
 17985  // API parameter values that are decorated as "sensitive" in the API will not
 17986  // be included in the string output. The member name will be present, but the
 17987  // value will be replaced with "sensitive".
 17988  func (s UpdateDataSourceInput) GoString() string {
 17989  	return s.String()
 17990  }
 17991  
 17992  // Validate inspects the fields of the type to determine if they are valid.
 17993  func (s *UpdateDataSourceInput) Validate() error {
 17994  	invalidParams := request.ErrInvalidParams{Context: "UpdateDataSourceInput"}
 17995  	if s.Id == nil {
 17996  		invalidParams.Add(request.NewErrParamRequired("Id"))
 17997  	}
 17998  	if s.Id != nil && len(*s.Id) < 1 {
 17999  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
 18000  	}
 18001  	if s.IndexId == nil {
 18002  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 18003  	}
 18004  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 18005  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 18006  	}
 18007  	if s.LanguageCode != nil && len(*s.LanguageCode) < 2 {
 18008  		invalidParams.Add(request.NewErrParamMinLen("LanguageCode", 2))
 18009  	}
 18010  	if s.Name != nil && len(*s.Name) < 1 {
 18011  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 18012  	}
 18013  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
 18014  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
 18015  	}
 18016  	if s.Configuration != nil {
 18017  		if err := s.Configuration.Validate(); err != nil {
 18018  			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
 18019  		}
 18020  	}
 18021  
 18022  	if invalidParams.Len() > 0 {
 18023  		return invalidParams
 18024  	}
 18025  	return nil
 18026  }
 18027  
 18028  // SetConfiguration sets the Configuration field's value.
 18029  func (s *UpdateDataSourceInput) SetConfiguration(v *DataSourceConfiguration) *UpdateDataSourceInput {
 18030  	s.Configuration = v
 18031  	return s
 18032  }
 18033  
 18034  // SetDescription sets the Description field's value.
 18035  func (s *UpdateDataSourceInput) SetDescription(v string) *UpdateDataSourceInput {
 18036  	s.Description = &v
 18037  	return s
 18038  }
 18039  
 18040  // SetId sets the Id field's value.
 18041  func (s *UpdateDataSourceInput) SetId(v string) *UpdateDataSourceInput {
 18042  	s.Id = &v
 18043  	return s
 18044  }
 18045  
 18046  // SetIndexId sets the IndexId field's value.
 18047  func (s *UpdateDataSourceInput) SetIndexId(v string) *UpdateDataSourceInput {
 18048  	s.IndexId = &v
 18049  	return s
 18050  }
 18051  
 18052  // SetLanguageCode sets the LanguageCode field's value.
 18053  func (s *UpdateDataSourceInput) SetLanguageCode(v string) *UpdateDataSourceInput {
 18054  	s.LanguageCode = &v
 18055  	return s
 18056  }
 18057  
 18058  // SetName sets the Name field's value.
 18059  func (s *UpdateDataSourceInput) SetName(v string) *UpdateDataSourceInput {
 18060  	s.Name = &v
 18061  	return s
 18062  }
 18063  
 18064  // SetRoleArn sets the RoleArn field's value.
 18065  func (s *UpdateDataSourceInput) SetRoleArn(v string) *UpdateDataSourceInput {
 18066  	s.RoleArn = &v
 18067  	return s
 18068  }
 18069  
 18070  // SetSchedule sets the Schedule field's value.
 18071  func (s *UpdateDataSourceInput) SetSchedule(v string) *UpdateDataSourceInput {
 18072  	s.Schedule = &v
 18073  	return s
 18074  }
 18075  
 18076  type UpdateDataSourceOutput struct {
 18077  	_ struct{} `type:"structure"`
 18078  }
 18079  
 18080  // String returns the string representation.
 18081  //
 18082  // API parameter values that are decorated as "sensitive" in the API will not
 18083  // be included in the string output. The member name will be present, but the
 18084  // value will be replaced with "sensitive".
 18085  func (s UpdateDataSourceOutput) String() string {
 18086  	return awsutil.Prettify(s)
 18087  }
 18088  
 18089  // GoString returns the string representation.
 18090  //
 18091  // API parameter values that are decorated as "sensitive" in the API will not
 18092  // be included in the string output. The member name will be present, but the
 18093  // value will be replaced with "sensitive".
 18094  func (s UpdateDataSourceOutput) GoString() string {
 18095  	return s.String()
 18096  }
 18097  
 18098  type UpdateIndexInput struct {
 18099  	_ struct{} `type:"structure"`
 18100  
 18101  	// Sets the number of additional storage and query capacity units that should
 18102  	// be used by the index. You can change the capacity of the index up to 5 times
 18103  	// per day.
 18104  	//
 18105  	// If you are using extra storage units, you can't reduce the storage capacity
 18106  	// below that required to meet the storage needs for your index.
 18107  	CapacityUnits *CapacityUnitsConfiguration `type:"structure"`
 18108  
 18109  	// A new description for the index.
 18110  	Description *string `type:"string"`
 18111  
 18112  	// The document metadata to update.
 18113  	DocumentMetadataConfigurationUpdates []*DocumentMetadataConfiguration `type:"list"`
 18114  
 18115  	// The identifier of the index to update.
 18116  	//
 18117  	// Id is a required field
 18118  	Id *string `min:"36" type:"string" required:"true"`
 18119  
 18120  	// The name of the index to update.
 18121  	Name *string `min:"1" type:"string"`
 18122  
 18123  	// A new IAM role that gives Amazon Kendra permission to access your Amazon
 18124  	// CloudWatch logs.
 18125  	RoleArn *string `min:"1" type:"string"`
 18126  
 18127  	// The user context policy.
 18128  	UserContextPolicy *string `type:"string" enum:"UserContextPolicy"`
 18129  
 18130  	// Enables fetching access levels of groups and users from an AWS Single Sign-On
 18131  	// identity source. To configure this, see UserGroupResolutionConfiguration
 18132  	// (https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html).
 18133  	UserGroupResolutionConfiguration *UserGroupResolutionConfiguration `type:"structure"`
 18134  
 18135  	// The user token configuration.
 18136  	UserTokenConfigurations []*UserTokenConfiguration `type:"list"`
 18137  }
 18138  
 18139  // String returns the string representation.
 18140  //
 18141  // API parameter values that are decorated as "sensitive" in the API will not
 18142  // be included in the string output. The member name will be present, but the
 18143  // value will be replaced with "sensitive".
 18144  func (s UpdateIndexInput) String() string {
 18145  	return awsutil.Prettify(s)
 18146  }
 18147  
 18148  // GoString returns the string representation.
 18149  //
 18150  // API parameter values that are decorated as "sensitive" in the API will not
 18151  // be included in the string output. The member name will be present, but the
 18152  // value will be replaced with "sensitive".
 18153  func (s UpdateIndexInput) GoString() string {
 18154  	return s.String()
 18155  }
 18156  
 18157  // Validate inspects the fields of the type to determine if they are valid.
 18158  func (s *UpdateIndexInput) Validate() error {
 18159  	invalidParams := request.ErrInvalidParams{Context: "UpdateIndexInput"}
 18160  	if s.Id == nil {
 18161  		invalidParams.Add(request.NewErrParamRequired("Id"))
 18162  	}
 18163  	if s.Id != nil && len(*s.Id) < 36 {
 18164  		invalidParams.Add(request.NewErrParamMinLen("Id", 36))
 18165  	}
 18166  	if s.Name != nil && len(*s.Name) < 1 {
 18167  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 18168  	}
 18169  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
 18170  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
 18171  	}
 18172  	if s.CapacityUnits != nil {
 18173  		if err := s.CapacityUnits.Validate(); err != nil {
 18174  			invalidParams.AddNested("CapacityUnits", err.(request.ErrInvalidParams))
 18175  		}
 18176  	}
 18177  	if s.DocumentMetadataConfigurationUpdates != nil {
 18178  		for i, v := range s.DocumentMetadataConfigurationUpdates {
 18179  			if v == nil {
 18180  				continue
 18181  			}
 18182  			if err := v.Validate(); err != nil {
 18183  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DocumentMetadataConfigurationUpdates", i), err.(request.ErrInvalidParams))
 18184  			}
 18185  		}
 18186  	}
 18187  	if s.UserGroupResolutionConfiguration != nil {
 18188  		if err := s.UserGroupResolutionConfiguration.Validate(); err != nil {
 18189  			invalidParams.AddNested("UserGroupResolutionConfiguration", err.(request.ErrInvalidParams))
 18190  		}
 18191  	}
 18192  	if s.UserTokenConfigurations != nil {
 18193  		for i, v := range s.UserTokenConfigurations {
 18194  			if v == nil {
 18195  				continue
 18196  			}
 18197  			if err := v.Validate(); err != nil {
 18198  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UserTokenConfigurations", i), err.(request.ErrInvalidParams))
 18199  			}
 18200  		}
 18201  	}
 18202  
 18203  	if invalidParams.Len() > 0 {
 18204  		return invalidParams
 18205  	}
 18206  	return nil
 18207  }
 18208  
 18209  // SetCapacityUnits sets the CapacityUnits field's value.
 18210  func (s *UpdateIndexInput) SetCapacityUnits(v *CapacityUnitsConfiguration) *UpdateIndexInput {
 18211  	s.CapacityUnits = v
 18212  	return s
 18213  }
 18214  
 18215  // SetDescription sets the Description field's value.
 18216  func (s *UpdateIndexInput) SetDescription(v string) *UpdateIndexInput {
 18217  	s.Description = &v
 18218  	return s
 18219  }
 18220  
 18221  // SetDocumentMetadataConfigurationUpdates sets the DocumentMetadataConfigurationUpdates field's value.
 18222  func (s *UpdateIndexInput) SetDocumentMetadataConfigurationUpdates(v []*DocumentMetadataConfiguration) *UpdateIndexInput {
 18223  	s.DocumentMetadataConfigurationUpdates = v
 18224  	return s
 18225  }
 18226  
 18227  // SetId sets the Id field's value.
 18228  func (s *UpdateIndexInput) SetId(v string) *UpdateIndexInput {
 18229  	s.Id = &v
 18230  	return s
 18231  }
 18232  
 18233  // SetName sets the Name field's value.
 18234  func (s *UpdateIndexInput) SetName(v string) *UpdateIndexInput {
 18235  	s.Name = &v
 18236  	return s
 18237  }
 18238  
 18239  // SetRoleArn sets the RoleArn field's value.
 18240  func (s *UpdateIndexInput) SetRoleArn(v string) *UpdateIndexInput {
 18241  	s.RoleArn = &v
 18242  	return s
 18243  }
 18244  
 18245  // SetUserContextPolicy sets the UserContextPolicy field's value.
 18246  func (s *UpdateIndexInput) SetUserContextPolicy(v string) *UpdateIndexInput {
 18247  	s.UserContextPolicy = &v
 18248  	return s
 18249  }
 18250  
 18251  // SetUserGroupResolutionConfiguration sets the UserGroupResolutionConfiguration field's value.
 18252  func (s *UpdateIndexInput) SetUserGroupResolutionConfiguration(v *UserGroupResolutionConfiguration) *UpdateIndexInput {
 18253  	s.UserGroupResolutionConfiguration = v
 18254  	return s
 18255  }
 18256  
 18257  // SetUserTokenConfigurations sets the UserTokenConfigurations field's value.
 18258  func (s *UpdateIndexInput) SetUserTokenConfigurations(v []*UserTokenConfiguration) *UpdateIndexInput {
 18259  	s.UserTokenConfigurations = v
 18260  	return s
 18261  }
 18262  
 18263  type UpdateIndexOutput struct {
 18264  	_ struct{} `type:"structure"`
 18265  }
 18266  
 18267  // String returns the string representation.
 18268  //
 18269  // API parameter values that are decorated as "sensitive" in the API will not
 18270  // be included in the string output. The member name will be present, but the
 18271  // value will be replaced with "sensitive".
 18272  func (s UpdateIndexOutput) String() string {
 18273  	return awsutil.Prettify(s)
 18274  }
 18275  
 18276  // GoString returns the string representation.
 18277  //
 18278  // API parameter values that are decorated as "sensitive" in the API will not
 18279  // be included in the string output. The member name will be present, but the
 18280  // value will be replaced with "sensitive".
 18281  func (s UpdateIndexOutput) GoString() string {
 18282  	return s.String()
 18283  }
 18284  
 18285  type UpdateQuerySuggestionsBlockListInput struct {
 18286  	_ struct{} `type:"structure"`
 18287  
 18288  	// The description for a block list.
 18289  	Description *string `type:"string"`
 18290  
 18291  	// The unique identifier of a block list.
 18292  	//
 18293  	// Id is a required field
 18294  	Id *string `min:"36" type:"string" required:"true"`
 18295  
 18296  	// The identifier of the index for a block list.
 18297  	//
 18298  	// IndexId is a required field
 18299  	IndexId *string `min:"36" type:"string" required:"true"`
 18300  
 18301  	// The name of a block list.
 18302  	Name *string `min:"1" type:"string"`
 18303  
 18304  	// The IAM (Identity and Access Management) role used to access the block list
 18305  	// text file in S3.
 18306  	RoleArn *string `min:"1" type:"string"`
 18307  
 18308  	// The S3 path where your block list text file sits in S3.
 18309  	//
 18310  	// If you update your block list and provide the same path to the block list
 18311  	// text file in S3, then Amazon Kendra reloads the file to refresh the block
 18312  	// list. Amazon Kendra does not automatically refresh your block list. You need
 18313  	// to call the UpdateQuerySuggestionsBlockList API to refresh you block list.
 18314  	//
 18315  	// If you update your block list, then Amazon Kendra asynchronously refreshes
 18316  	// all query suggestions with the latest content in the S3 file. This means
 18317  	// changes might not take effect immediately.
 18318  	SourceS3Path *S3Path `type:"structure"`
 18319  }
 18320  
 18321  // String returns the string representation.
 18322  //
 18323  // API parameter values that are decorated as "sensitive" in the API will not
 18324  // be included in the string output. The member name will be present, but the
 18325  // value will be replaced with "sensitive".
 18326  func (s UpdateQuerySuggestionsBlockListInput) String() string {
 18327  	return awsutil.Prettify(s)
 18328  }
 18329  
 18330  // GoString returns the string representation.
 18331  //
 18332  // API parameter values that are decorated as "sensitive" in the API will not
 18333  // be included in the string output. The member name will be present, but the
 18334  // value will be replaced with "sensitive".
 18335  func (s UpdateQuerySuggestionsBlockListInput) GoString() string {
 18336  	return s.String()
 18337  }
 18338  
 18339  // Validate inspects the fields of the type to determine if they are valid.
 18340  func (s *UpdateQuerySuggestionsBlockListInput) Validate() error {
 18341  	invalidParams := request.ErrInvalidParams{Context: "UpdateQuerySuggestionsBlockListInput"}
 18342  	if s.Id == nil {
 18343  		invalidParams.Add(request.NewErrParamRequired("Id"))
 18344  	}
 18345  	if s.Id != nil && len(*s.Id) < 36 {
 18346  		invalidParams.Add(request.NewErrParamMinLen("Id", 36))
 18347  	}
 18348  	if s.IndexId == nil {
 18349  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 18350  	}
 18351  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 18352  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 18353  	}
 18354  	if s.Name != nil && len(*s.Name) < 1 {
 18355  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 18356  	}
 18357  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
 18358  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
 18359  	}
 18360  	if s.SourceS3Path != nil {
 18361  		if err := s.SourceS3Path.Validate(); err != nil {
 18362  			invalidParams.AddNested("SourceS3Path", err.(request.ErrInvalidParams))
 18363  		}
 18364  	}
 18365  
 18366  	if invalidParams.Len() > 0 {
 18367  		return invalidParams
 18368  	}
 18369  	return nil
 18370  }
 18371  
 18372  // SetDescription sets the Description field's value.
 18373  func (s *UpdateQuerySuggestionsBlockListInput) SetDescription(v string) *UpdateQuerySuggestionsBlockListInput {
 18374  	s.Description = &v
 18375  	return s
 18376  }
 18377  
 18378  // SetId sets the Id field's value.
 18379  func (s *UpdateQuerySuggestionsBlockListInput) SetId(v string) *UpdateQuerySuggestionsBlockListInput {
 18380  	s.Id = &v
 18381  	return s
 18382  }
 18383  
 18384  // SetIndexId sets the IndexId field's value.
 18385  func (s *UpdateQuerySuggestionsBlockListInput) SetIndexId(v string) *UpdateQuerySuggestionsBlockListInput {
 18386  	s.IndexId = &v
 18387  	return s
 18388  }
 18389  
 18390  // SetName sets the Name field's value.
 18391  func (s *UpdateQuerySuggestionsBlockListInput) SetName(v string) *UpdateQuerySuggestionsBlockListInput {
 18392  	s.Name = &v
 18393  	return s
 18394  }
 18395  
 18396  // SetRoleArn sets the RoleArn field's value.
 18397  func (s *UpdateQuerySuggestionsBlockListInput) SetRoleArn(v string) *UpdateQuerySuggestionsBlockListInput {
 18398  	s.RoleArn = &v
 18399  	return s
 18400  }
 18401  
 18402  // SetSourceS3Path sets the SourceS3Path field's value.
 18403  func (s *UpdateQuerySuggestionsBlockListInput) SetSourceS3Path(v *S3Path) *UpdateQuerySuggestionsBlockListInput {
 18404  	s.SourceS3Path = v
 18405  	return s
 18406  }
 18407  
 18408  type UpdateQuerySuggestionsBlockListOutput struct {
 18409  	_ struct{} `type:"structure"`
 18410  }
 18411  
 18412  // String returns the string representation.
 18413  //
 18414  // API parameter values that are decorated as "sensitive" in the API will not
 18415  // be included in the string output. The member name will be present, but the
 18416  // value will be replaced with "sensitive".
 18417  func (s UpdateQuerySuggestionsBlockListOutput) String() string {
 18418  	return awsutil.Prettify(s)
 18419  }
 18420  
 18421  // GoString returns the string representation.
 18422  //
 18423  // API parameter values that are decorated as "sensitive" in the API will not
 18424  // be included in the string output. The member name will be present, but the
 18425  // value will be replaced with "sensitive".
 18426  func (s UpdateQuerySuggestionsBlockListOutput) GoString() string {
 18427  	return s.String()
 18428  }
 18429  
 18430  type UpdateQuerySuggestionsConfigInput struct {
 18431  	_ struct{} `type:"structure"`
 18432  
 18433  	// TRUE to include queries without user information (i.e. all queries, irrespective
 18434  	// of the user), otherwise FALSE to only include queries with user information.
 18435  	//
 18436  	// If you pass user information to Amazon Kendra along with the queries, you
 18437  	// can set this flag to FALSE and instruct Amazon Kendra to only consider queries
 18438  	// with user information.
 18439  	//
 18440  	// If you set to FALSE, Amazon Kendra only considers queries searched at least
 18441  	// MinimumQueryCount times across MinimumNumberOfQueryingUsers unique users
 18442  	// for suggestions.
 18443  	//
 18444  	// If you set to TRUE, Amazon Kendra ignores all user information and learns
 18445  	// from all queries.
 18446  	IncludeQueriesWithoutUserInformation *bool `type:"boolean"`
 18447  
 18448  	// The identifier of the index you want to update query suggestions settings
 18449  	// for.
 18450  	//
 18451  	// IndexId is a required field
 18452  	IndexId *string `min:"36" type:"string" required:"true"`
 18453  
 18454  	// The minimum number of unique users who must search a query in order for the
 18455  	// query to be eligible to suggest to your users.
 18456  	//
 18457  	// Increasing this number might decrease the number of suggestions. However,
 18458  	// this ensures a query is searched by many users and is truly popular to suggest
 18459  	// to users.
 18460  	//
 18461  	// How you tune this setting depends on your specific needs.
 18462  	MinimumNumberOfQueryingUsers *int64 `min:"1" type:"integer"`
 18463  
 18464  	// The the minimum number of times a query must be searched in order to be eligible
 18465  	// to suggest to your users.
 18466  	//
 18467  	// Decreasing this number increases the number of suggestions. However, this
 18468  	// affects the quality of suggestions as it sets a low bar for a query to be
 18469  	// considered popular to suggest to users.
 18470  	//
 18471  	// How you tune this setting depends on your specific needs.
 18472  	MinimumQueryCount *int64 `min:"1" type:"integer"`
 18473  
 18474  	// Set the mode to ENABLED or LEARN_ONLY.
 18475  	//
 18476  	// By default, Amazon Kendra enables query suggestions. LEARN_ONLY mode allows
 18477  	// you to turn off query suggestions. You can to update this at any time.
 18478  	//
 18479  	// In LEARN_ONLY mode, Amazon Kendra continues to learn from new queries to
 18480  	// keep suggestions up to date for when you are ready to switch to ENABLED mode
 18481  	// again.
 18482  	Mode *string `type:"string" enum:"Mode"`
 18483  
 18484  	// How recent your queries are in your query log time window.
 18485  	//
 18486  	// The time window is the number of days from current day to past days.
 18487  	//
 18488  	// By default, Amazon Kendra sets this to 180.
 18489  	QueryLogLookBackWindowInDays *int64 `type:"integer"`
 18490  }
 18491  
 18492  // String returns the string representation.
 18493  //
 18494  // API parameter values that are decorated as "sensitive" in the API will not
 18495  // be included in the string output. The member name will be present, but the
 18496  // value will be replaced with "sensitive".
 18497  func (s UpdateQuerySuggestionsConfigInput) String() string {
 18498  	return awsutil.Prettify(s)
 18499  }
 18500  
 18501  // GoString returns the string representation.
 18502  //
 18503  // API parameter values that are decorated as "sensitive" in the API will not
 18504  // be included in the string output. The member name will be present, but the
 18505  // value will be replaced with "sensitive".
 18506  func (s UpdateQuerySuggestionsConfigInput) GoString() string {
 18507  	return s.String()
 18508  }
 18509  
 18510  // Validate inspects the fields of the type to determine if they are valid.
 18511  func (s *UpdateQuerySuggestionsConfigInput) Validate() error {
 18512  	invalidParams := request.ErrInvalidParams{Context: "UpdateQuerySuggestionsConfigInput"}
 18513  	if s.IndexId == nil {
 18514  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 18515  	}
 18516  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 18517  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 18518  	}
 18519  	if s.MinimumNumberOfQueryingUsers != nil && *s.MinimumNumberOfQueryingUsers < 1 {
 18520  		invalidParams.Add(request.NewErrParamMinValue("MinimumNumberOfQueryingUsers", 1))
 18521  	}
 18522  	if s.MinimumQueryCount != nil && *s.MinimumQueryCount < 1 {
 18523  		invalidParams.Add(request.NewErrParamMinValue("MinimumQueryCount", 1))
 18524  	}
 18525  
 18526  	if invalidParams.Len() > 0 {
 18527  		return invalidParams
 18528  	}
 18529  	return nil
 18530  }
 18531  
 18532  // SetIncludeQueriesWithoutUserInformation sets the IncludeQueriesWithoutUserInformation field's value.
 18533  func (s *UpdateQuerySuggestionsConfigInput) SetIncludeQueriesWithoutUserInformation(v bool) *UpdateQuerySuggestionsConfigInput {
 18534  	s.IncludeQueriesWithoutUserInformation = &v
 18535  	return s
 18536  }
 18537  
 18538  // SetIndexId sets the IndexId field's value.
 18539  func (s *UpdateQuerySuggestionsConfigInput) SetIndexId(v string) *UpdateQuerySuggestionsConfigInput {
 18540  	s.IndexId = &v
 18541  	return s
 18542  }
 18543  
 18544  // SetMinimumNumberOfQueryingUsers sets the MinimumNumberOfQueryingUsers field's value.
 18545  func (s *UpdateQuerySuggestionsConfigInput) SetMinimumNumberOfQueryingUsers(v int64) *UpdateQuerySuggestionsConfigInput {
 18546  	s.MinimumNumberOfQueryingUsers = &v
 18547  	return s
 18548  }
 18549  
 18550  // SetMinimumQueryCount sets the MinimumQueryCount field's value.
 18551  func (s *UpdateQuerySuggestionsConfigInput) SetMinimumQueryCount(v int64) *UpdateQuerySuggestionsConfigInput {
 18552  	s.MinimumQueryCount = &v
 18553  	return s
 18554  }
 18555  
 18556  // SetMode sets the Mode field's value.
 18557  func (s *UpdateQuerySuggestionsConfigInput) SetMode(v string) *UpdateQuerySuggestionsConfigInput {
 18558  	s.Mode = &v
 18559  	return s
 18560  }
 18561  
 18562  // SetQueryLogLookBackWindowInDays sets the QueryLogLookBackWindowInDays field's value.
 18563  func (s *UpdateQuerySuggestionsConfigInput) SetQueryLogLookBackWindowInDays(v int64) *UpdateQuerySuggestionsConfigInput {
 18564  	s.QueryLogLookBackWindowInDays = &v
 18565  	return s
 18566  }
 18567  
 18568  type UpdateQuerySuggestionsConfigOutput struct {
 18569  	_ struct{} `type:"structure"`
 18570  }
 18571  
 18572  // String returns the string representation.
 18573  //
 18574  // API parameter values that are decorated as "sensitive" in the API will not
 18575  // be included in the string output. The member name will be present, but the
 18576  // value will be replaced with "sensitive".
 18577  func (s UpdateQuerySuggestionsConfigOutput) String() string {
 18578  	return awsutil.Prettify(s)
 18579  }
 18580  
 18581  // GoString returns the string representation.
 18582  //
 18583  // API parameter values that are decorated as "sensitive" in the API will not
 18584  // be included in the string output. The member name will be present, but the
 18585  // value will be replaced with "sensitive".
 18586  func (s UpdateQuerySuggestionsConfigOutput) GoString() string {
 18587  	return s.String()
 18588  }
 18589  
 18590  type UpdateThesaurusInput struct {
 18591  	_ struct{} `type:"structure"`
 18592  
 18593  	// The updated description of the thesaurus.
 18594  	Description *string `type:"string"`
 18595  
 18596  	// The identifier of the thesaurus to update.
 18597  	//
 18598  	// Id is a required field
 18599  	Id *string `min:"1" type:"string" required:"true"`
 18600  
 18601  	// The identifier of the index associated with the thesaurus to update.
 18602  	//
 18603  	// IndexId is a required field
 18604  	IndexId *string `min:"36" type:"string" required:"true"`
 18605  
 18606  	// The updated name of the thesaurus.
 18607  	Name *string `min:"1" type:"string"`
 18608  
 18609  	// The updated role ARN of the thesaurus.
 18610  	RoleArn *string `min:"1" type:"string"`
 18611  
 18612  	// Information required to find a specific file in an Amazon S3 bucket.
 18613  	SourceS3Path *S3Path `type:"structure"`
 18614  }
 18615  
 18616  // String returns the string representation.
 18617  //
 18618  // API parameter values that are decorated as "sensitive" in the API will not
 18619  // be included in the string output. The member name will be present, but the
 18620  // value will be replaced with "sensitive".
 18621  func (s UpdateThesaurusInput) String() string {
 18622  	return awsutil.Prettify(s)
 18623  }
 18624  
 18625  // GoString returns the string representation.
 18626  //
 18627  // API parameter values that are decorated as "sensitive" in the API will not
 18628  // be included in the string output. The member name will be present, but the
 18629  // value will be replaced with "sensitive".
 18630  func (s UpdateThesaurusInput) GoString() string {
 18631  	return s.String()
 18632  }
 18633  
 18634  // Validate inspects the fields of the type to determine if they are valid.
 18635  func (s *UpdateThesaurusInput) Validate() error {
 18636  	invalidParams := request.ErrInvalidParams{Context: "UpdateThesaurusInput"}
 18637  	if s.Id == nil {
 18638  		invalidParams.Add(request.NewErrParamRequired("Id"))
 18639  	}
 18640  	if s.Id != nil && len(*s.Id) < 1 {
 18641  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
 18642  	}
 18643  	if s.IndexId == nil {
 18644  		invalidParams.Add(request.NewErrParamRequired("IndexId"))
 18645  	}
 18646  	if s.IndexId != nil && len(*s.IndexId) < 36 {
 18647  		invalidParams.Add(request.NewErrParamMinLen("IndexId", 36))
 18648  	}
 18649  	if s.Name != nil && len(*s.Name) < 1 {
 18650  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 18651  	}
 18652  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
 18653  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
 18654  	}
 18655  	if s.SourceS3Path != nil {
 18656  		if err := s.SourceS3Path.Validate(); err != nil {
 18657  			invalidParams.AddNested("SourceS3Path", err.(request.ErrInvalidParams))
 18658  		}
 18659  	}
 18660  
 18661  	if invalidParams.Len() > 0 {
 18662  		return invalidParams
 18663  	}
 18664  	return nil
 18665  }
 18666  
 18667  // SetDescription sets the Description field's value.
 18668  func (s *UpdateThesaurusInput) SetDescription(v string) *UpdateThesaurusInput {
 18669  	s.Description = &v
 18670  	return s
 18671  }
 18672  
 18673  // SetId sets the Id field's value.
 18674  func (s *UpdateThesaurusInput) SetId(v string) *UpdateThesaurusInput {
 18675  	s.Id = &v
 18676  	return s
 18677  }
 18678  
 18679  // SetIndexId sets the IndexId field's value.
 18680  func (s *UpdateThesaurusInput) SetIndexId(v string) *UpdateThesaurusInput {
 18681  	s.IndexId = &v
 18682  	return s
 18683  }
 18684  
 18685  // SetName sets the Name field's value.
 18686  func (s *UpdateThesaurusInput) SetName(v string) *UpdateThesaurusInput {
 18687  	s.Name = &v
 18688  	return s
 18689  }
 18690  
 18691  // SetRoleArn sets the RoleArn field's value.
 18692  func (s *UpdateThesaurusInput) SetRoleArn(v string) *UpdateThesaurusInput {
 18693  	s.RoleArn = &v
 18694  	return s
 18695  }
 18696  
 18697  // SetSourceS3Path sets the SourceS3Path field's value.
 18698  func (s *UpdateThesaurusInput) SetSourceS3Path(v *S3Path) *UpdateThesaurusInput {
 18699  	s.SourceS3Path = v
 18700  	return s
 18701  }
 18702  
 18703  type UpdateThesaurusOutput struct {
 18704  	_ struct{} `type:"structure"`
 18705  }
 18706  
 18707  // String returns the string representation.
 18708  //
 18709  // API parameter values that are decorated as "sensitive" in the API will not
 18710  // be included in the string output. The member name will be present, but the
 18711  // value will be replaced with "sensitive".
 18712  func (s UpdateThesaurusOutput) String() string {
 18713  	return awsutil.Prettify(s)
 18714  }
 18715  
 18716  // GoString returns the string representation.
 18717  //
 18718  // API parameter values that are decorated as "sensitive" in the API will not
 18719  // be included in the string output. The member name will be present, but the
 18720  // value will be replaced with "sensitive".
 18721  func (s UpdateThesaurusOutput) GoString() string {
 18722  	return s.String()
 18723  }
 18724  
 18725  // Provides the configuration information of the URLs to crawl.
 18726  //
 18727  // You can only crawl websites that use the secure communication protocol, Hypertext
 18728  // Transfer Protocol Secure (HTTPS). If you receive an error when crawling a
 18729  // website, it could be that the website is blocked from crawling.
 18730  //
 18731  // When selecting websites to index, you must adhere to the Amazon Acceptable
 18732  // Use Policy (https://aws.amazon.com/aup/) and all other Amazon terms. Remember
 18733  // that you must only use the Amazon Kendra web crawler to index your own webpages,
 18734  // or webpages that you have authorization to index.
 18735  type Urls struct {
 18736  	_ struct{} `type:"structure"`
 18737  
 18738  	// Provides the configuration of the seed or starting point URLs of the websites
 18739  	// you want to crawl.
 18740  	//
 18741  	// You can choose to crawl only the website host names, or the website host
 18742  	// names with subdomains, or the website host names with subdomains and other
 18743  	// domains that the webpages link to.
 18744  	//
 18745  	// You can list up to 100 seed URLs.
 18746  	SeedUrlConfiguration *SeedUrlConfiguration `type:"structure"`
 18747  
 18748  	// Provides the configuration of the sitemap URLs of the websites you want to
 18749  	// crawl.
 18750  	//
 18751  	// Only URLs belonging to the same website host names are crawled. You can list
 18752  	// up to three sitemap URLs.
 18753  	SiteMapsConfiguration *SiteMapsConfiguration `type:"structure"`
 18754  }
 18755  
 18756  // String returns the string representation.
 18757  //
 18758  // API parameter values that are decorated as "sensitive" in the API will not
 18759  // be included in the string output. The member name will be present, but the
 18760  // value will be replaced with "sensitive".
 18761  func (s Urls) String() string {
 18762  	return awsutil.Prettify(s)
 18763  }
 18764  
 18765  // GoString returns the string representation.
 18766  //
 18767  // API parameter values that are decorated as "sensitive" in the API will not
 18768  // be included in the string output. The member name will be present, but the
 18769  // value will be replaced with "sensitive".
 18770  func (s Urls) GoString() string {
 18771  	return s.String()
 18772  }
 18773  
 18774  // Validate inspects the fields of the type to determine if they are valid.
 18775  func (s *Urls) Validate() error {
 18776  	invalidParams := request.ErrInvalidParams{Context: "Urls"}
 18777  	if s.SeedUrlConfiguration != nil {
 18778  		if err := s.SeedUrlConfiguration.Validate(); err != nil {
 18779  			invalidParams.AddNested("SeedUrlConfiguration", err.(request.ErrInvalidParams))
 18780  		}
 18781  	}
 18782  	if s.SiteMapsConfiguration != nil {
 18783  		if err := s.SiteMapsConfiguration.Validate(); err != nil {
 18784  			invalidParams.AddNested("SiteMapsConfiguration", err.(request.ErrInvalidParams))
 18785  		}
 18786  	}
 18787  
 18788  	if invalidParams.Len() > 0 {
 18789  		return invalidParams
 18790  	}
 18791  	return nil
 18792  }
 18793  
 18794  // SetSeedUrlConfiguration sets the SeedUrlConfiguration field's value.
 18795  func (s *Urls) SetSeedUrlConfiguration(v *SeedUrlConfiguration) *Urls {
 18796  	s.SeedUrlConfiguration = v
 18797  	return s
 18798  }
 18799  
 18800  // SetSiteMapsConfiguration sets the SiteMapsConfiguration field's value.
 18801  func (s *Urls) SetSiteMapsConfiguration(v *SiteMapsConfiguration) *Urls {
 18802  	s.SiteMapsConfiguration = v
 18803  	return s
 18804  }
 18805  
 18806  // Provides information about the user context for an Amazon Kendra index.
 18807  //
 18808  // This is used for filtering search results for different users based on their
 18809  // access to documents.
 18810  //
 18811  // You provide one of the following:
 18812  //
 18813  //    * User token
 18814  //
 18815  //    * User ID, the groups the user belongs to, and any data sources the groups
 18816  //    can access.
 18817  //
 18818  // If you provide both, an exception is thrown.
 18819  type UserContext struct {
 18820  	_ struct{} `type:"structure"`
 18821  
 18822  	// The list of data source groups you want to filter search results based on
 18823  	// groups' access to documents in that data source.
 18824  	DataSourceGroups []*DataSourceGroup `min:"1" type:"list"`
 18825  
 18826  	// The list of groups you want to filter search results based on the groups'
 18827  	// access to documents.
 18828  	Groups []*string `min:"1" type:"list"`
 18829  
 18830  	// The user context token for filtering search results for a user. It must be
 18831  	// a JWT or a JSON token.
 18832  	Token *string `min:"1" type:"string"`
 18833  
 18834  	// The identifier of the user you want to filter search results based on their
 18835  	// access to documents.
 18836  	UserId *string `min:"1" type:"string"`
 18837  }
 18838  
 18839  // String returns the string representation.
 18840  //
 18841  // API parameter values that are decorated as "sensitive" in the API will not
 18842  // be included in the string output. The member name will be present, but the
 18843  // value will be replaced with "sensitive".
 18844  func (s UserContext) String() string {
 18845  	return awsutil.Prettify(s)
 18846  }
 18847  
 18848  // GoString returns the string representation.
 18849  //
 18850  // API parameter values that are decorated as "sensitive" in the API will not
 18851  // be included in the string output. The member name will be present, but the
 18852  // value will be replaced with "sensitive".
 18853  func (s UserContext) GoString() string {
 18854  	return s.String()
 18855  }
 18856  
 18857  // Validate inspects the fields of the type to determine if they are valid.
 18858  func (s *UserContext) Validate() error {
 18859  	invalidParams := request.ErrInvalidParams{Context: "UserContext"}
 18860  	if s.DataSourceGroups != nil && len(s.DataSourceGroups) < 1 {
 18861  		invalidParams.Add(request.NewErrParamMinLen("DataSourceGroups", 1))
 18862  	}
 18863  	if s.Groups != nil && len(s.Groups) < 1 {
 18864  		invalidParams.Add(request.NewErrParamMinLen("Groups", 1))
 18865  	}
 18866  	if s.Token != nil && len(*s.Token) < 1 {
 18867  		invalidParams.Add(request.NewErrParamMinLen("Token", 1))
 18868  	}
 18869  	if s.UserId != nil && len(*s.UserId) < 1 {
 18870  		invalidParams.Add(request.NewErrParamMinLen("UserId", 1))
 18871  	}
 18872  	if s.DataSourceGroups != nil {
 18873  		for i, v := range s.DataSourceGroups {
 18874  			if v == nil {
 18875  				continue
 18876  			}
 18877  			if err := v.Validate(); err != nil {
 18878  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DataSourceGroups", i), err.(request.ErrInvalidParams))
 18879  			}
 18880  		}
 18881  	}
 18882  
 18883  	if invalidParams.Len() > 0 {
 18884  		return invalidParams
 18885  	}
 18886  	return nil
 18887  }
 18888  
 18889  // SetDataSourceGroups sets the DataSourceGroups field's value.
 18890  func (s *UserContext) SetDataSourceGroups(v []*DataSourceGroup) *UserContext {
 18891  	s.DataSourceGroups = v
 18892  	return s
 18893  }
 18894  
 18895  // SetGroups sets the Groups field's value.
 18896  func (s *UserContext) SetGroups(v []*string) *UserContext {
 18897  	s.Groups = v
 18898  	return s
 18899  }
 18900  
 18901  // SetToken sets the Token field's value.
 18902  func (s *UserContext) SetToken(v string) *UserContext {
 18903  	s.Token = &v
 18904  	return s
 18905  }
 18906  
 18907  // SetUserId sets the UserId field's value.
 18908  func (s *UserContext) SetUserId(v string) *UserContext {
 18909  	s.UserId = &v
 18910  	return s
 18911  }
 18912  
 18913  // Provides the configuration information to fetch access levels of groups and
 18914  // users from an AWS Single Sign-On identity source. This is useful for setting
 18915  // up user context filtering, where Amazon Kendra filters search results for
 18916  // different users based on their group's access to documents. You can also
 18917  // map your users to their groups for user context filtering using the PutPrincipalMapping
 18918  // operation (https://docs.aws.amazon.com/latest/dg/API_PutPrincipalMapping.html).
 18919  //
 18920  // To set up an AWS SSO identity source in the console to use with Amazon Kendra,
 18921  // see Getting started with an AWS SSO identity source (https://docs.aws.amazon.com/kendra/latest/dg/getting-started-aws-sso.html).
 18922  // You must also grant the required permissions to use AWS SSO with Amazon Kendra.
 18923  // For more information, see IAM roles for AWS Single Sign-On (https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-aws-sso).
 18924  type UserGroupResolutionConfiguration struct {
 18925  	_ struct{} `type:"structure"`
 18926  
 18927  	// The identity store provider (mode) you want to use to fetch access levels
 18928  	// of groups and users. AWS Single Sign-On is currently the only available mode.
 18929  	// Your users and groups must exist in an AWS SSO identity source in order to
 18930  	// use this mode.
 18931  	//
 18932  	// UserGroupResolutionMode is a required field
 18933  	UserGroupResolutionMode *string `type:"string" required:"true" enum:"UserGroupResolutionMode"`
 18934  }
 18935  
 18936  // String returns the string representation.
 18937  //
 18938  // API parameter values that are decorated as "sensitive" in the API will not
 18939  // be included in the string output. The member name will be present, but the
 18940  // value will be replaced with "sensitive".
 18941  func (s UserGroupResolutionConfiguration) String() string {
 18942  	return awsutil.Prettify(s)
 18943  }
 18944  
 18945  // GoString returns the string representation.
 18946  //
 18947  // API parameter values that are decorated as "sensitive" in the API will not
 18948  // be included in the string output. The member name will be present, but the
 18949  // value will be replaced with "sensitive".
 18950  func (s UserGroupResolutionConfiguration) GoString() string {
 18951  	return s.String()
 18952  }
 18953  
 18954  // Validate inspects the fields of the type to determine if they are valid.
 18955  func (s *UserGroupResolutionConfiguration) Validate() error {
 18956  	invalidParams := request.ErrInvalidParams{Context: "UserGroupResolutionConfiguration"}
 18957  	if s.UserGroupResolutionMode == nil {
 18958  		invalidParams.Add(request.NewErrParamRequired("UserGroupResolutionMode"))
 18959  	}
 18960  
 18961  	if invalidParams.Len() > 0 {
 18962  		return invalidParams
 18963  	}
 18964  	return nil
 18965  }
 18966  
 18967  // SetUserGroupResolutionMode sets the UserGroupResolutionMode field's value.
 18968  func (s *UserGroupResolutionConfiguration) SetUserGroupResolutionMode(v string) *UserGroupResolutionConfiguration {
 18969  	s.UserGroupResolutionMode = &v
 18970  	return s
 18971  }
 18972  
 18973  // Provides configuration information for a token configuration.
 18974  type UserTokenConfiguration struct {
 18975  	_ struct{} `type:"structure"`
 18976  
 18977  	// Information about the JSON token type configuration.
 18978  	JsonTokenTypeConfiguration *JsonTokenTypeConfiguration `type:"structure"`
 18979  
 18980  	// Information about the JWT token type configuration.
 18981  	JwtTokenTypeConfiguration *JwtTokenTypeConfiguration `type:"structure"`
 18982  }
 18983  
 18984  // String returns the string representation.
 18985  //
 18986  // API parameter values that are decorated as "sensitive" in the API will not
 18987  // be included in the string output. The member name will be present, but the
 18988  // value will be replaced with "sensitive".
 18989  func (s UserTokenConfiguration) String() string {
 18990  	return awsutil.Prettify(s)
 18991  }
 18992  
 18993  // GoString returns the string representation.
 18994  //
 18995  // API parameter values that are decorated as "sensitive" in the API will not
 18996  // be included in the string output. The member name will be present, but the
 18997  // value will be replaced with "sensitive".
 18998  func (s UserTokenConfiguration) GoString() string {
 18999  	return s.String()
 19000  }
 19001  
 19002  // Validate inspects the fields of the type to determine if they are valid.
 19003  func (s *UserTokenConfiguration) Validate() error {
 19004  	invalidParams := request.ErrInvalidParams{Context: "UserTokenConfiguration"}
 19005  	if s.JsonTokenTypeConfiguration != nil {
 19006  		if err := s.JsonTokenTypeConfiguration.Validate(); err != nil {
 19007  			invalidParams.AddNested("JsonTokenTypeConfiguration", err.(request.ErrInvalidParams))
 19008  		}
 19009  	}
 19010  	if s.JwtTokenTypeConfiguration != nil {
 19011  		if err := s.JwtTokenTypeConfiguration.Validate(); err != nil {
 19012  			invalidParams.AddNested("JwtTokenTypeConfiguration", err.(request.ErrInvalidParams))
 19013  		}
 19014  	}
 19015  
 19016  	if invalidParams.Len() > 0 {
 19017  		return invalidParams
 19018  	}
 19019  	return nil
 19020  }
 19021  
 19022  // SetJsonTokenTypeConfiguration sets the JsonTokenTypeConfiguration field's value.
 19023  func (s *UserTokenConfiguration) SetJsonTokenTypeConfiguration(v *JsonTokenTypeConfiguration) *UserTokenConfiguration {
 19024  	s.JsonTokenTypeConfiguration = v
 19025  	return s
 19026  }
 19027  
 19028  // SetJwtTokenTypeConfiguration sets the JwtTokenTypeConfiguration field's value.
 19029  func (s *UserTokenConfiguration) SetJwtTokenTypeConfiguration(v *JwtTokenTypeConfiguration) *UserTokenConfiguration {
 19030  	s.JwtTokenTypeConfiguration = v
 19031  	return s
 19032  }
 19033  
 19034  type ValidationException struct {
 19035  	_            struct{}                  `type:"structure"`
 19036  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 19037  
 19038  	Message_ *string `locationName:"Message" min:"1" type:"string"`
 19039  }
 19040  
 19041  // String returns the string representation.
 19042  //
 19043  // API parameter values that are decorated as "sensitive" in the API will not
 19044  // be included in the string output. The member name will be present, but the
 19045  // value will be replaced with "sensitive".
 19046  func (s ValidationException) String() string {
 19047  	return awsutil.Prettify(s)
 19048  }
 19049  
 19050  // GoString returns the string representation.
 19051  //
 19052  // API parameter values that are decorated as "sensitive" in the API will not
 19053  // be included in the string output. The member name will be present, but the
 19054  // value will be replaced with "sensitive".
 19055  func (s ValidationException) GoString() string {
 19056  	return s.String()
 19057  }
 19058  
 19059  func newErrorValidationException(v protocol.ResponseMetadata) error {
 19060  	return &ValidationException{
 19061  		RespMetadata: v,
 19062  	}
 19063  }
 19064  
 19065  // Code returns the exception type name.
 19066  func (s *ValidationException) Code() string {
 19067  	return "ValidationException"
 19068  }
 19069  
 19070  // Message returns the exception's message.
 19071  func (s *ValidationException) Message() string {
 19072  	if s.Message_ != nil {
 19073  		return *s.Message_
 19074  	}
 19075  	return ""
 19076  }
 19077  
 19078  // OrigErr always returns nil, satisfies awserr.Error interface.
 19079  func (s *ValidationException) OrigErr() error {
 19080  	return nil
 19081  }
 19082  
 19083  func (s *ValidationException) Error() string {
 19084  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 19085  }
 19086  
 19087  // Status code returns the HTTP status code for the request's response error.
 19088  func (s *ValidationException) StatusCode() int {
 19089  	return s.RespMetadata.StatusCode
 19090  }
 19091  
 19092  // RequestID returns the service's response RequestID for request.
 19093  func (s *ValidationException) RequestID() string {
 19094  	return s.RespMetadata.RequestID
 19095  }
 19096  
 19097  // Provides the configuration information required for Amazon Kendra web crawler.
 19098  type WebCrawlerConfiguration struct {
 19099  	_ struct{} `type:"structure"`
 19100  
 19101  	// Provides configuration information required to connect to websites using
 19102  	// authentication.
 19103  	//
 19104  	// You can connect to websites using basic authentication of user name and password.
 19105  	//
 19106  	// You must provide the website host name and port number. For example, the
 19107  	// host name of https://a.example.com/page1.html is "a.example.com" and the
 19108  	// port is 443, the standard port for HTTPS. You use a secret in AWS Secrets
 19109  	// Manager (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
 19110  	// to store your authentication credentials.
 19111  	AuthenticationConfiguration *AuthenticationConfiguration `type:"structure"`
 19112  
 19113  	// Specifies the number of levels in a website that you want to crawl.
 19114  	//
 19115  	// The first level begins from the website seed or starting point URL. For example,
 19116  	// if a website has 3 levels – index level (i.e. seed in this example), sections
 19117  	// level, and subsections level – and you are only interested in crawling
 19118  	// information up to the sections level (i.e. levels 0-1), you can set your
 19119  	// depth to 1.
 19120  	//
 19121  	// The default crawl depth is set to 2.
 19122  	CrawlDepth *int64 `type:"integer"`
 19123  
 19124  	// The maximum size (in MB) of a webpage or attachment to crawl.
 19125  	//
 19126  	// Files larger than this size (in MB) are skipped/not crawled.
 19127  	//
 19128  	// The default maximum size of a webpage or attachment is set to 50 MB.
 19129  	MaxContentSizePerPageInMegaBytes *float64 `min:"1e-06" type:"float"`
 19130  
 19131  	// The maximum number of URLs on a webpage to include when crawling a website.
 19132  	// This number is per webpage.
 19133  	//
 19134  	// As a website’s webpages are crawled, any URLs the webpages link to are
 19135  	// also crawled. URLs on a webpage are crawled in order of appearance.
 19136  	//
 19137  	// The default maximum links per page is 100.
 19138  	MaxLinksPerPage *int64 `min:"1" type:"integer"`
 19139  
 19140  	// The maximum number of URLs crawled per website host per minute.
 19141  	//
 19142  	// A minimum of one URL is required.
 19143  	//
 19144  	// The default maximum number of URLs crawled per website host per minute is
 19145  	// 300.
 19146  	MaxUrlsPerMinuteCrawlRate *int64 `min:"1" type:"integer"`
 19147  
 19148  	// Provides configuration information required to connect to your internal websites
 19149  	// via a web proxy.
 19150  	//
 19151  	// You must provide the website host name and port number. For example, the
 19152  	// host name of https://a.example.com/page1.html is "a.example.com" and the
 19153  	// port is 443, the standard port for HTTPS.
 19154  	//
 19155  	// Web proxy credentials are optional and you can use them to connect to a web
 19156  	// proxy server that requires basic authentication. To store web proxy credentials,
 19157  	// you use a secret in AWS Secrets Manager (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html).
 19158  	ProxyConfiguration *ProxyConfiguration `type:"structure"`
 19159  
 19160  	// The regular expression pattern to exclude certain URLs to crawl.
 19161  	//
 19162  	// If there is a regular expression pattern to include certain URLs that conflicts
 19163  	// with the exclude pattern, the exclude pattern takes precedence.
 19164  	UrlExclusionPatterns []*string `type:"list"`
 19165  
 19166  	// The regular expression pattern to include certain URLs to crawl.
 19167  	//
 19168  	// If there is a regular expression pattern to exclude certain URLs that conflicts
 19169  	// with the include pattern, the exclude pattern takes precedence.
 19170  	UrlInclusionPatterns []*string `type:"list"`
 19171  
 19172  	// Specifies the seed or starting point URLs of the websites or the sitemap
 19173  	// URLs of the websites you want to crawl.
 19174  	//
 19175  	// You can include website subdomains. You can list up to 100 seed URLs and
 19176  	// up to three sitemap URLs.
 19177  	//
 19178  	// You can only crawl websites that use the secure communication protocol, Hypertext
 19179  	// Transfer Protocol Secure (HTTPS). If you receive an error when crawling a
 19180  	// website, it could be that the website is blocked from crawling.
 19181  	//
 19182  	// When selecting websites to index, you must adhere to the Amazon Acceptable
 19183  	// Use Policy (https://aws.amazon.com/aup/) and all other Amazon terms. Remember
 19184  	// that you must only use the Amazon Kendra web crawler to index your own webpages,
 19185  	// or webpages that you have authorization to index.
 19186  	//
 19187  	// Urls is a required field
 19188  	Urls *Urls `type:"structure" required:"true"`
 19189  }
 19190  
 19191  // String returns the string representation.
 19192  //
 19193  // API parameter values that are decorated as "sensitive" in the API will not
 19194  // be included in the string output. The member name will be present, but the
 19195  // value will be replaced with "sensitive".
 19196  func (s WebCrawlerConfiguration) String() string {
 19197  	return awsutil.Prettify(s)
 19198  }
 19199  
 19200  // GoString returns the string representation.
 19201  //
 19202  // API parameter values that are decorated as "sensitive" in the API will not
 19203  // be included in the string output. The member name will be present, but the
 19204  // value will be replaced with "sensitive".
 19205  func (s WebCrawlerConfiguration) GoString() string {
 19206  	return s.String()
 19207  }
 19208  
 19209  // Validate inspects the fields of the type to determine if they are valid.
 19210  func (s *WebCrawlerConfiguration) Validate() error {
 19211  	invalidParams := request.ErrInvalidParams{Context: "WebCrawlerConfiguration"}
 19212  	if s.MaxContentSizePerPageInMegaBytes != nil && *s.MaxContentSizePerPageInMegaBytes < 1e-06 {
 19213  		invalidParams.Add(request.NewErrParamMinValue("MaxContentSizePerPageInMegaBytes", 1e-06))
 19214  	}
 19215  	if s.MaxLinksPerPage != nil && *s.MaxLinksPerPage < 1 {
 19216  		invalidParams.Add(request.NewErrParamMinValue("MaxLinksPerPage", 1))
 19217  	}
 19218  	if s.MaxUrlsPerMinuteCrawlRate != nil && *s.MaxUrlsPerMinuteCrawlRate < 1 {
 19219  		invalidParams.Add(request.NewErrParamMinValue("MaxUrlsPerMinuteCrawlRate", 1))
 19220  	}
 19221  	if s.Urls == nil {
 19222  		invalidParams.Add(request.NewErrParamRequired("Urls"))
 19223  	}
 19224  	if s.AuthenticationConfiguration != nil {
 19225  		if err := s.AuthenticationConfiguration.Validate(); err != nil {
 19226  			invalidParams.AddNested("AuthenticationConfiguration", err.(request.ErrInvalidParams))
 19227  		}
 19228  	}
 19229  	if s.ProxyConfiguration != nil {
 19230  		if err := s.ProxyConfiguration.Validate(); err != nil {
 19231  			invalidParams.AddNested("ProxyConfiguration", err.(request.ErrInvalidParams))
 19232  		}
 19233  	}
 19234  	if s.Urls != nil {
 19235  		if err := s.Urls.Validate(); err != nil {
 19236  			invalidParams.AddNested("Urls", err.(request.ErrInvalidParams))
 19237  		}
 19238  	}
 19239  
 19240  	if invalidParams.Len() > 0 {
 19241  		return invalidParams
 19242  	}
 19243  	return nil
 19244  }
 19245  
 19246  // SetAuthenticationConfiguration sets the AuthenticationConfiguration field's value.
 19247  func (s *WebCrawlerConfiguration) SetAuthenticationConfiguration(v *AuthenticationConfiguration) *WebCrawlerConfiguration {
 19248  	s.AuthenticationConfiguration = v
 19249  	return s
 19250  }
 19251  
 19252  // SetCrawlDepth sets the CrawlDepth field's value.
 19253  func (s *WebCrawlerConfiguration) SetCrawlDepth(v int64) *WebCrawlerConfiguration {
 19254  	s.CrawlDepth = &v
 19255  	return s
 19256  }
 19257  
 19258  // SetMaxContentSizePerPageInMegaBytes sets the MaxContentSizePerPageInMegaBytes field's value.
 19259  func (s *WebCrawlerConfiguration) SetMaxContentSizePerPageInMegaBytes(v float64) *WebCrawlerConfiguration {
 19260  	s.MaxContentSizePerPageInMegaBytes = &v
 19261  	return s
 19262  }
 19263  
 19264  // SetMaxLinksPerPage sets the MaxLinksPerPage field's value.
 19265  func (s *WebCrawlerConfiguration) SetMaxLinksPerPage(v int64) *WebCrawlerConfiguration {
 19266  	s.MaxLinksPerPage = &v
 19267  	return s
 19268  }
 19269  
 19270  // SetMaxUrlsPerMinuteCrawlRate sets the MaxUrlsPerMinuteCrawlRate field's value.
 19271  func (s *WebCrawlerConfiguration) SetMaxUrlsPerMinuteCrawlRate(v int64) *WebCrawlerConfiguration {
 19272  	s.MaxUrlsPerMinuteCrawlRate = &v
 19273  	return s
 19274  }
 19275  
 19276  // SetProxyConfiguration sets the ProxyConfiguration field's value.
 19277  func (s *WebCrawlerConfiguration) SetProxyConfiguration(v *ProxyConfiguration) *WebCrawlerConfiguration {
 19278  	s.ProxyConfiguration = v
 19279  	return s
 19280  }
 19281  
 19282  // SetUrlExclusionPatterns sets the UrlExclusionPatterns field's value.
 19283  func (s *WebCrawlerConfiguration) SetUrlExclusionPatterns(v []*string) *WebCrawlerConfiguration {
 19284  	s.UrlExclusionPatterns = v
 19285  	return s
 19286  }
 19287  
 19288  // SetUrlInclusionPatterns sets the UrlInclusionPatterns field's value.
 19289  func (s *WebCrawlerConfiguration) SetUrlInclusionPatterns(v []*string) *WebCrawlerConfiguration {
 19290  	s.UrlInclusionPatterns = v
 19291  	return s
 19292  }
 19293  
 19294  // SetUrls sets the Urls field's value.
 19295  func (s *WebCrawlerConfiguration) SetUrls(v *Urls) *WebCrawlerConfiguration {
 19296  	s.Urls = v
 19297  	return s
 19298  }
 19299  
 19300  // Provides the configuration information to connect to Amazon WorkDocs as your
 19301  // data source.
 19302  //
 19303  // Amazon WorkDocs connector is available in Oregon, North Virginia, Sydney,
 19304  // Singapore and Ireland regions.
 19305  type WorkDocsConfiguration struct {
 19306  	_ struct{} `type:"structure"`
 19307  
 19308  	// TRUE to include comments on documents in your index. Including comments in
 19309  	// your index means each comment is a document that can be searched on.
 19310  	//
 19311  	// The default is set to FALSE.
 19312  	CrawlComments *bool `type:"boolean"`
 19313  
 19314  	// A list of regular expression patterns to exclude certain files in your Amazon
 19315  	// WorkDocs site repository. Files that match the patterns are excluded from
 19316  	// the index. Files that don’t match the patterns are included in the index.
 19317  	// If a file matches both an inclusion pattern and an exclusion pattern, the
 19318  	// exclusion pattern takes precedence and the file isn’t included in the index.
 19319  	ExclusionPatterns []*string `type:"list"`
 19320  
 19321  	// A list of DataSourceToIndexFieldMapping objects that map Amazon WorkDocs
 19322  	// field names to custom index field names in Amazon Kendra. You must first
 19323  	// create the custom index fields using the UpdateIndex operation before you
 19324  	// map to Amazon WorkDocs fields. For more information, see Mapping Data Source
 19325  	// Fields (https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html).
 19326  	// The Amazon WorkDocs data source field names need to exist in your Amazon
 19327  	// WorkDocs custom metadata.
 19328  	FieldMappings []*DataSourceToIndexFieldMapping `min:"1" type:"list"`
 19329  
 19330  	// A list of regular expression patterns to include certain files in your Amazon
 19331  	// WorkDocs site repository. Files that match the patterns are included in the
 19332  	// index. Files that don't match the patterns are excluded from the index. If
 19333  	// a file matches both an inclusion pattern and an exclusion pattern, the exclusion
 19334  	// pattern takes precedence and the file isn’t included in the index.
 19335  	InclusionPatterns []*string `type:"list"`
 19336  
 19337  	// The identifier of the directory corresponding to your Amazon WorkDocs site
 19338  	// repository.
 19339  	//
 19340  	// You can find the organization ID in the AWS Directory Service (https://console.aws.amazon.com/directoryservicev2/)
 19341  	// by going to Active Directory, then Directories. Your Amazon WorkDocs site
 19342  	// directory has an ID, which is the organization ID. You can also set up a
 19343  	// new Amazon WorkDocs directory in the AWS Directory Service console and enable
 19344  	// a Amazon WorkDocs site for the directory in the Amazon WorkDocs console.
 19345  	//
 19346  	// OrganizationId is a required field
 19347  	OrganizationId *string `min:"12" type:"string" required:"true"`
 19348  
 19349  	// TRUE to use the change logs to update documents in your index instead of
 19350  	// scanning all documents.
 19351  	//
 19352  	// If you are syncing your Amazon WorkDocs data source with your index for the
 19353  	// first time, all documents are scanned. After your first sync, you can use
 19354  	// the change logs to update your documents in your index for future syncs.
 19355  	//
 19356  	// The default is set to FALSE.
 19357  	UseChangeLog *bool `type:"boolean"`
 19358  }
 19359  
 19360  // String returns the string representation.
 19361  //
 19362  // API parameter values that are decorated as "sensitive" in the API will not
 19363  // be included in the string output. The member name will be present, but the
 19364  // value will be replaced with "sensitive".
 19365  func (s WorkDocsConfiguration) String() string {
 19366  	return awsutil.Prettify(s)
 19367  }
 19368  
 19369  // GoString returns the string representation.
 19370  //
 19371  // API parameter values that are decorated as "sensitive" in the API will not
 19372  // be included in the string output. The member name will be present, but the
 19373  // value will be replaced with "sensitive".
 19374  func (s WorkDocsConfiguration) GoString() string {
 19375  	return s.String()
 19376  }
 19377  
 19378  // Validate inspects the fields of the type to determine if they are valid.
 19379  func (s *WorkDocsConfiguration) Validate() error {
 19380  	invalidParams := request.ErrInvalidParams{Context: "WorkDocsConfiguration"}
 19381  	if s.FieldMappings != nil && len(s.FieldMappings) < 1 {
 19382  		invalidParams.Add(request.NewErrParamMinLen("FieldMappings", 1))
 19383  	}
 19384  	if s.OrganizationId == nil {
 19385  		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
 19386  	}
 19387  	if s.OrganizationId != nil && len(*s.OrganizationId) < 12 {
 19388  		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 12))
 19389  	}
 19390  	if s.FieldMappings != nil {
 19391  		for i, v := range s.FieldMappings {
 19392  			if v == nil {
 19393  				continue
 19394  			}
 19395  			if err := v.Validate(); err != nil {
 19396  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FieldMappings", i), err.(request.ErrInvalidParams))
 19397  			}
 19398  		}
 19399  	}
 19400  
 19401  	if invalidParams.Len() > 0 {
 19402  		return invalidParams
 19403  	}
 19404  	return nil
 19405  }
 19406  
 19407  // SetCrawlComments sets the CrawlComments field's value.
 19408  func (s *WorkDocsConfiguration) SetCrawlComments(v bool) *WorkDocsConfiguration {
 19409  	s.CrawlComments = &v
 19410  	return s
 19411  }
 19412  
 19413  // SetExclusionPatterns sets the ExclusionPatterns field's value.
 19414  func (s *WorkDocsConfiguration) SetExclusionPatterns(v []*string) *WorkDocsConfiguration {
 19415  	s.ExclusionPatterns = v
 19416  	return s
 19417  }
 19418  
 19419  // SetFieldMappings sets the FieldMappings field's value.
 19420  func (s *WorkDocsConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *WorkDocsConfiguration {
 19421  	s.FieldMappings = v
 19422  	return s
 19423  }
 19424  
 19425  // SetInclusionPatterns sets the InclusionPatterns field's value.
 19426  func (s *WorkDocsConfiguration) SetInclusionPatterns(v []*string) *WorkDocsConfiguration {
 19427  	s.InclusionPatterns = v
 19428  	return s
 19429  }
 19430  
 19431  // SetOrganizationId sets the OrganizationId field's value.
 19432  func (s *WorkDocsConfiguration) SetOrganizationId(v string) *WorkDocsConfiguration {
 19433  	s.OrganizationId = &v
 19434  	return s
 19435  }
 19436  
 19437  // SetUseChangeLog sets the UseChangeLog field's value.
 19438  func (s *WorkDocsConfiguration) SetUseChangeLog(v bool) *WorkDocsConfiguration {
 19439  	s.UseChangeLog = &v
 19440  	return s
 19441  }
 19442  
 19443  const (
 19444  	// AdditionalResultAttributeValueTypeTextWithHighlightsValue is a AdditionalResultAttributeValueType enum value
 19445  	AdditionalResultAttributeValueTypeTextWithHighlightsValue = "TEXT_WITH_HIGHLIGHTS_VALUE"
 19446  )
 19447  
 19448  // AdditionalResultAttributeValueType_Values returns all elements of the AdditionalResultAttributeValueType enum
 19449  func AdditionalResultAttributeValueType_Values() []string {
 19450  	return []string{
 19451  		AdditionalResultAttributeValueTypeTextWithHighlightsValue,
 19452  	}
 19453  }
 19454  
 19455  const (
 19456  	// ConfluenceAttachmentFieldNameAuthor is a ConfluenceAttachmentFieldName enum value
 19457  	ConfluenceAttachmentFieldNameAuthor = "AUTHOR"
 19458  
 19459  	// ConfluenceAttachmentFieldNameContentType is a ConfluenceAttachmentFieldName enum value
 19460  	ConfluenceAttachmentFieldNameContentType = "CONTENT_TYPE"
 19461  
 19462  	// ConfluenceAttachmentFieldNameCreatedDate is a ConfluenceAttachmentFieldName enum value
 19463  	ConfluenceAttachmentFieldNameCreatedDate = "CREATED_DATE"
 19464  
 19465  	// ConfluenceAttachmentFieldNameDisplayUrl is a ConfluenceAttachmentFieldName enum value
 19466  	ConfluenceAttachmentFieldNameDisplayUrl = "DISPLAY_URL"
 19467  
 19468  	// ConfluenceAttachmentFieldNameFileSize is a ConfluenceAttachmentFieldName enum value
 19469  	ConfluenceAttachmentFieldNameFileSize = "FILE_SIZE"
 19470  
 19471  	// ConfluenceAttachmentFieldNameItemType is a ConfluenceAttachmentFieldName enum value
 19472  	ConfluenceAttachmentFieldNameItemType = "ITEM_TYPE"
 19473  
 19474  	// ConfluenceAttachmentFieldNameParentId is a ConfluenceAttachmentFieldName enum value
 19475  	ConfluenceAttachmentFieldNameParentId = "PARENT_ID"
 19476  
 19477  	// ConfluenceAttachmentFieldNameSpaceKey is a ConfluenceAttachmentFieldName enum value
 19478  	ConfluenceAttachmentFieldNameSpaceKey = "SPACE_KEY"
 19479  
 19480  	// ConfluenceAttachmentFieldNameSpaceName is a ConfluenceAttachmentFieldName enum value
 19481  	ConfluenceAttachmentFieldNameSpaceName = "SPACE_NAME"
 19482  
 19483  	// ConfluenceAttachmentFieldNameUrl is a ConfluenceAttachmentFieldName enum value
 19484  	ConfluenceAttachmentFieldNameUrl = "URL"
 19485  
 19486  	// ConfluenceAttachmentFieldNameVersion is a ConfluenceAttachmentFieldName enum value
 19487  	ConfluenceAttachmentFieldNameVersion = "VERSION"
 19488  )
 19489  
 19490  // ConfluenceAttachmentFieldName_Values returns all elements of the ConfluenceAttachmentFieldName enum
 19491  func ConfluenceAttachmentFieldName_Values() []string {
 19492  	return []string{
 19493  		ConfluenceAttachmentFieldNameAuthor,
 19494  		ConfluenceAttachmentFieldNameContentType,
 19495  		ConfluenceAttachmentFieldNameCreatedDate,
 19496  		ConfluenceAttachmentFieldNameDisplayUrl,
 19497  		ConfluenceAttachmentFieldNameFileSize,
 19498  		ConfluenceAttachmentFieldNameItemType,
 19499  		ConfluenceAttachmentFieldNameParentId,
 19500  		ConfluenceAttachmentFieldNameSpaceKey,
 19501  		ConfluenceAttachmentFieldNameSpaceName,
 19502  		ConfluenceAttachmentFieldNameUrl,
 19503  		ConfluenceAttachmentFieldNameVersion,
 19504  	}
 19505  }
 19506  
 19507  const (
 19508  	// ConfluenceBlogFieldNameAuthor is a ConfluenceBlogFieldName enum value
 19509  	ConfluenceBlogFieldNameAuthor = "AUTHOR"
 19510  
 19511  	// ConfluenceBlogFieldNameDisplayUrl is a ConfluenceBlogFieldName enum value
 19512  	ConfluenceBlogFieldNameDisplayUrl = "DISPLAY_URL"
 19513  
 19514  	// ConfluenceBlogFieldNameItemType is a ConfluenceBlogFieldName enum value
 19515  	ConfluenceBlogFieldNameItemType = "ITEM_TYPE"
 19516  
 19517  	// ConfluenceBlogFieldNameLabels is a ConfluenceBlogFieldName enum value
 19518  	ConfluenceBlogFieldNameLabels = "LABELS"
 19519  
 19520  	// ConfluenceBlogFieldNamePublishDate is a ConfluenceBlogFieldName enum value
 19521  	ConfluenceBlogFieldNamePublishDate = "PUBLISH_DATE"
 19522  
 19523  	// ConfluenceBlogFieldNameSpaceKey is a ConfluenceBlogFieldName enum value
 19524  	ConfluenceBlogFieldNameSpaceKey = "SPACE_KEY"
 19525  
 19526  	// ConfluenceBlogFieldNameSpaceName is a ConfluenceBlogFieldName enum value
 19527  	ConfluenceBlogFieldNameSpaceName = "SPACE_NAME"
 19528  
 19529  	// ConfluenceBlogFieldNameUrl is a ConfluenceBlogFieldName enum value
 19530  	ConfluenceBlogFieldNameUrl = "URL"
 19531  
 19532  	// ConfluenceBlogFieldNameVersion is a ConfluenceBlogFieldName enum value
 19533  	ConfluenceBlogFieldNameVersion = "VERSION"
 19534  )
 19535  
 19536  // ConfluenceBlogFieldName_Values returns all elements of the ConfluenceBlogFieldName enum
 19537  func ConfluenceBlogFieldName_Values() []string {
 19538  	return []string{
 19539  		ConfluenceBlogFieldNameAuthor,
 19540  		ConfluenceBlogFieldNameDisplayUrl,
 19541  		ConfluenceBlogFieldNameItemType,
 19542  		ConfluenceBlogFieldNameLabels,
 19543  		ConfluenceBlogFieldNamePublishDate,
 19544  		ConfluenceBlogFieldNameSpaceKey,
 19545  		ConfluenceBlogFieldNameSpaceName,
 19546  		ConfluenceBlogFieldNameUrl,
 19547  		ConfluenceBlogFieldNameVersion,
 19548  	}
 19549  }
 19550  
 19551  const (
 19552  	// ConfluencePageFieldNameAuthor is a ConfluencePageFieldName enum value
 19553  	ConfluencePageFieldNameAuthor = "AUTHOR"
 19554  
 19555  	// ConfluencePageFieldNameContentStatus is a ConfluencePageFieldName enum value
 19556  	ConfluencePageFieldNameContentStatus = "CONTENT_STATUS"
 19557  
 19558  	// ConfluencePageFieldNameCreatedDate is a ConfluencePageFieldName enum value
 19559  	ConfluencePageFieldNameCreatedDate = "CREATED_DATE"
 19560  
 19561  	// ConfluencePageFieldNameDisplayUrl is a ConfluencePageFieldName enum value
 19562  	ConfluencePageFieldNameDisplayUrl = "DISPLAY_URL"
 19563  
 19564  	// ConfluencePageFieldNameItemType is a ConfluencePageFieldName enum value
 19565  	ConfluencePageFieldNameItemType = "ITEM_TYPE"
 19566  
 19567  	// ConfluencePageFieldNameLabels is a ConfluencePageFieldName enum value
 19568  	ConfluencePageFieldNameLabels = "LABELS"
 19569  
 19570  	// ConfluencePageFieldNameModifiedDate is a ConfluencePageFieldName enum value
 19571  	ConfluencePageFieldNameModifiedDate = "MODIFIED_DATE"
 19572  
 19573  	// ConfluencePageFieldNameParentId is a ConfluencePageFieldName enum value
 19574  	ConfluencePageFieldNameParentId = "PARENT_ID"
 19575  
 19576  	// ConfluencePageFieldNameSpaceKey is a ConfluencePageFieldName enum value
 19577  	ConfluencePageFieldNameSpaceKey = "SPACE_KEY"
 19578  
 19579  	// ConfluencePageFieldNameSpaceName is a ConfluencePageFieldName enum value
 19580  	ConfluencePageFieldNameSpaceName = "SPACE_NAME"
 19581  
 19582  	// ConfluencePageFieldNameUrl is a ConfluencePageFieldName enum value
 19583  	ConfluencePageFieldNameUrl = "URL"
 19584  
 19585  	// ConfluencePageFieldNameVersion is a ConfluencePageFieldName enum value
 19586  	ConfluencePageFieldNameVersion = "VERSION"
 19587  )
 19588  
 19589  // ConfluencePageFieldName_Values returns all elements of the ConfluencePageFieldName enum
 19590  func ConfluencePageFieldName_Values() []string {
 19591  	return []string{
 19592  		ConfluencePageFieldNameAuthor,
 19593  		ConfluencePageFieldNameContentStatus,
 19594  		ConfluencePageFieldNameCreatedDate,
 19595  		ConfluencePageFieldNameDisplayUrl,
 19596  		ConfluencePageFieldNameItemType,
 19597  		ConfluencePageFieldNameLabels,
 19598  		ConfluencePageFieldNameModifiedDate,
 19599  		ConfluencePageFieldNameParentId,
 19600  		ConfluencePageFieldNameSpaceKey,
 19601  		ConfluencePageFieldNameSpaceName,
 19602  		ConfluencePageFieldNameUrl,
 19603  		ConfluencePageFieldNameVersion,
 19604  	}
 19605  }
 19606  
 19607  const (
 19608  	// ConfluenceSpaceFieldNameDisplayUrl is a ConfluenceSpaceFieldName enum value
 19609  	ConfluenceSpaceFieldNameDisplayUrl = "DISPLAY_URL"
 19610  
 19611  	// ConfluenceSpaceFieldNameItemType is a ConfluenceSpaceFieldName enum value
 19612  	ConfluenceSpaceFieldNameItemType = "ITEM_TYPE"
 19613  
 19614  	// ConfluenceSpaceFieldNameSpaceKey is a ConfluenceSpaceFieldName enum value
 19615  	ConfluenceSpaceFieldNameSpaceKey = "SPACE_KEY"
 19616  
 19617  	// ConfluenceSpaceFieldNameUrl is a ConfluenceSpaceFieldName enum value
 19618  	ConfluenceSpaceFieldNameUrl = "URL"
 19619  )
 19620  
 19621  // ConfluenceSpaceFieldName_Values returns all elements of the ConfluenceSpaceFieldName enum
 19622  func ConfluenceSpaceFieldName_Values() []string {
 19623  	return []string{
 19624  		ConfluenceSpaceFieldNameDisplayUrl,
 19625  		ConfluenceSpaceFieldNameItemType,
 19626  		ConfluenceSpaceFieldNameSpaceKey,
 19627  		ConfluenceSpaceFieldNameUrl,
 19628  	}
 19629  }
 19630  
 19631  const (
 19632  	// ConfluenceVersionCloud is a ConfluenceVersion enum value
 19633  	ConfluenceVersionCloud = "CLOUD"
 19634  
 19635  	// ConfluenceVersionServer is a ConfluenceVersion enum value
 19636  	ConfluenceVersionServer = "SERVER"
 19637  )
 19638  
 19639  // ConfluenceVersion_Values returns all elements of the ConfluenceVersion enum
 19640  func ConfluenceVersion_Values() []string {
 19641  	return []string{
 19642  		ConfluenceVersionCloud,
 19643  		ConfluenceVersionServer,
 19644  	}
 19645  }
 19646  
 19647  const (
 19648  	// ContentTypePdf is a ContentType enum value
 19649  	ContentTypePdf = "PDF"
 19650  
 19651  	// ContentTypeHtml is a ContentType enum value
 19652  	ContentTypeHtml = "HTML"
 19653  
 19654  	// ContentTypeMsWord is a ContentType enum value
 19655  	ContentTypeMsWord = "MS_WORD"
 19656  
 19657  	// ContentTypePlainText is a ContentType enum value
 19658  	ContentTypePlainText = "PLAIN_TEXT"
 19659  
 19660  	// ContentTypePpt is a ContentType enum value
 19661  	ContentTypePpt = "PPT"
 19662  )
 19663  
 19664  // ContentType_Values returns all elements of the ContentType enum
 19665  func ContentType_Values() []string {
 19666  	return []string{
 19667  		ContentTypePdf,
 19668  		ContentTypeHtml,
 19669  		ContentTypeMsWord,
 19670  		ContentTypePlainText,
 19671  		ContentTypePpt,
 19672  	}
 19673  }
 19674  
 19675  const (
 19676  	// DataSourceStatusCreating is a DataSourceStatus enum value
 19677  	DataSourceStatusCreating = "CREATING"
 19678  
 19679  	// DataSourceStatusDeleting is a DataSourceStatus enum value
 19680  	DataSourceStatusDeleting = "DELETING"
 19681  
 19682  	// DataSourceStatusFailed is a DataSourceStatus enum value
 19683  	DataSourceStatusFailed = "FAILED"
 19684  
 19685  	// DataSourceStatusUpdating is a DataSourceStatus enum value
 19686  	DataSourceStatusUpdating = "UPDATING"
 19687  
 19688  	// DataSourceStatusActive is a DataSourceStatus enum value
 19689  	DataSourceStatusActive = "ACTIVE"
 19690  )
 19691  
 19692  // DataSourceStatus_Values returns all elements of the DataSourceStatus enum
 19693  func DataSourceStatus_Values() []string {
 19694  	return []string{
 19695  		DataSourceStatusCreating,
 19696  		DataSourceStatusDeleting,
 19697  		DataSourceStatusFailed,
 19698  		DataSourceStatusUpdating,
 19699  		DataSourceStatusActive,
 19700  	}
 19701  }
 19702  
 19703  const (
 19704  	// DataSourceSyncJobStatusFailed is a DataSourceSyncJobStatus enum value
 19705  	DataSourceSyncJobStatusFailed = "FAILED"
 19706  
 19707  	// DataSourceSyncJobStatusSucceeded is a DataSourceSyncJobStatus enum value
 19708  	DataSourceSyncJobStatusSucceeded = "SUCCEEDED"
 19709  
 19710  	// DataSourceSyncJobStatusSyncing is a DataSourceSyncJobStatus enum value
 19711  	DataSourceSyncJobStatusSyncing = "SYNCING"
 19712  
 19713  	// DataSourceSyncJobStatusIncomplete is a DataSourceSyncJobStatus enum value
 19714  	DataSourceSyncJobStatusIncomplete = "INCOMPLETE"
 19715  
 19716  	// DataSourceSyncJobStatusStopping is a DataSourceSyncJobStatus enum value
 19717  	DataSourceSyncJobStatusStopping = "STOPPING"
 19718  
 19719  	// DataSourceSyncJobStatusAborted is a DataSourceSyncJobStatus enum value
 19720  	DataSourceSyncJobStatusAborted = "ABORTED"
 19721  
 19722  	// DataSourceSyncJobStatusSyncingIndexing is a DataSourceSyncJobStatus enum value
 19723  	DataSourceSyncJobStatusSyncingIndexing = "SYNCING_INDEXING"
 19724  )
 19725  
 19726  // DataSourceSyncJobStatus_Values returns all elements of the DataSourceSyncJobStatus enum
 19727  func DataSourceSyncJobStatus_Values() []string {
 19728  	return []string{
 19729  		DataSourceSyncJobStatusFailed,
 19730  		DataSourceSyncJobStatusSucceeded,
 19731  		DataSourceSyncJobStatusSyncing,
 19732  		DataSourceSyncJobStatusIncomplete,
 19733  		DataSourceSyncJobStatusStopping,
 19734  		DataSourceSyncJobStatusAborted,
 19735  		DataSourceSyncJobStatusSyncingIndexing,
 19736  	}
 19737  }
 19738  
 19739  const (
 19740  	// DataSourceTypeS3 is a DataSourceType enum value
 19741  	DataSourceTypeS3 = "S3"
 19742  
 19743  	// DataSourceTypeSharepoint is a DataSourceType enum value
 19744  	DataSourceTypeSharepoint = "SHAREPOINT"
 19745  
 19746  	// DataSourceTypeDatabase is a DataSourceType enum value
 19747  	DataSourceTypeDatabase = "DATABASE"
 19748  
 19749  	// DataSourceTypeSalesforce is a DataSourceType enum value
 19750  	DataSourceTypeSalesforce = "SALESFORCE"
 19751  
 19752  	// DataSourceTypeOnedrive is a DataSourceType enum value
 19753  	DataSourceTypeOnedrive = "ONEDRIVE"
 19754  
 19755  	// DataSourceTypeServicenow is a DataSourceType enum value
 19756  	DataSourceTypeServicenow = "SERVICENOW"
 19757  
 19758  	// DataSourceTypeCustom is a DataSourceType enum value
 19759  	DataSourceTypeCustom = "CUSTOM"
 19760  
 19761  	// DataSourceTypeConfluence is a DataSourceType enum value
 19762  	DataSourceTypeConfluence = "CONFLUENCE"
 19763  
 19764  	// DataSourceTypeGoogledrive is a DataSourceType enum value
 19765  	DataSourceTypeGoogledrive = "GOOGLEDRIVE"
 19766  
 19767  	// DataSourceTypeWebcrawler is a DataSourceType enum value
 19768  	DataSourceTypeWebcrawler = "WEBCRAWLER"
 19769  
 19770  	// DataSourceTypeWorkdocs is a DataSourceType enum value
 19771  	DataSourceTypeWorkdocs = "WORKDOCS"
 19772  )
 19773  
 19774  // DataSourceType_Values returns all elements of the DataSourceType enum
 19775  func DataSourceType_Values() []string {
 19776  	return []string{
 19777  		DataSourceTypeS3,
 19778  		DataSourceTypeSharepoint,
 19779  		DataSourceTypeDatabase,
 19780  		DataSourceTypeSalesforce,
 19781  		DataSourceTypeOnedrive,
 19782  		DataSourceTypeServicenow,
 19783  		DataSourceTypeCustom,
 19784  		DataSourceTypeConfluence,
 19785  		DataSourceTypeGoogledrive,
 19786  		DataSourceTypeWebcrawler,
 19787  		DataSourceTypeWorkdocs,
 19788  	}
 19789  }
 19790  
 19791  const (
 19792  	// DatabaseEngineTypeRdsAuroraMysql is a DatabaseEngineType enum value
 19793  	DatabaseEngineTypeRdsAuroraMysql = "RDS_AURORA_MYSQL"
 19794  
 19795  	// DatabaseEngineTypeRdsAuroraPostgresql is a DatabaseEngineType enum value
 19796  	DatabaseEngineTypeRdsAuroraPostgresql = "RDS_AURORA_POSTGRESQL"
 19797  
 19798  	// DatabaseEngineTypeRdsMysql is a DatabaseEngineType enum value
 19799  	DatabaseEngineTypeRdsMysql = "RDS_MYSQL"
 19800  
 19801  	// DatabaseEngineTypeRdsPostgresql is a DatabaseEngineType enum value
 19802  	DatabaseEngineTypeRdsPostgresql = "RDS_POSTGRESQL"
 19803  )
 19804  
 19805  // DatabaseEngineType_Values returns all elements of the DatabaseEngineType enum
 19806  func DatabaseEngineType_Values() []string {
 19807  	return []string{
 19808  		DatabaseEngineTypeRdsAuroraMysql,
 19809  		DatabaseEngineTypeRdsAuroraPostgresql,
 19810  		DatabaseEngineTypeRdsMysql,
 19811  		DatabaseEngineTypeRdsPostgresql,
 19812  	}
 19813  }
 19814  
 19815  const (
 19816  	// DocumentAttributeValueTypeStringValue is a DocumentAttributeValueType enum value
 19817  	DocumentAttributeValueTypeStringValue = "STRING_VALUE"
 19818  
 19819  	// DocumentAttributeValueTypeStringListValue is a DocumentAttributeValueType enum value
 19820  	DocumentAttributeValueTypeStringListValue = "STRING_LIST_VALUE"
 19821  
 19822  	// DocumentAttributeValueTypeLongValue is a DocumentAttributeValueType enum value
 19823  	DocumentAttributeValueTypeLongValue = "LONG_VALUE"
 19824  
 19825  	// DocumentAttributeValueTypeDateValue is a DocumentAttributeValueType enum value
 19826  	DocumentAttributeValueTypeDateValue = "DATE_VALUE"
 19827  )
 19828  
 19829  // DocumentAttributeValueType_Values returns all elements of the DocumentAttributeValueType enum
 19830  func DocumentAttributeValueType_Values() []string {
 19831  	return []string{
 19832  		DocumentAttributeValueTypeStringValue,
 19833  		DocumentAttributeValueTypeStringListValue,
 19834  		DocumentAttributeValueTypeLongValue,
 19835  		DocumentAttributeValueTypeDateValue,
 19836  	}
 19837  }
 19838  
 19839  const (
 19840  	// DocumentStatusNotFound is a DocumentStatus enum value
 19841  	DocumentStatusNotFound = "NOT_FOUND"
 19842  
 19843  	// DocumentStatusProcessing is a DocumentStatus enum value
 19844  	DocumentStatusProcessing = "PROCESSING"
 19845  
 19846  	// DocumentStatusIndexed is a DocumentStatus enum value
 19847  	DocumentStatusIndexed = "INDEXED"
 19848  
 19849  	// DocumentStatusUpdated is a DocumentStatus enum value
 19850  	DocumentStatusUpdated = "UPDATED"
 19851  
 19852  	// DocumentStatusFailed is a DocumentStatus enum value
 19853  	DocumentStatusFailed = "FAILED"
 19854  
 19855  	// DocumentStatusUpdateFailed is a DocumentStatus enum value
 19856  	DocumentStatusUpdateFailed = "UPDATE_FAILED"
 19857  )
 19858  
 19859  // DocumentStatus_Values returns all elements of the DocumentStatus enum
 19860  func DocumentStatus_Values() []string {
 19861  	return []string{
 19862  		DocumentStatusNotFound,
 19863  		DocumentStatusProcessing,
 19864  		DocumentStatusIndexed,
 19865  		DocumentStatusUpdated,
 19866  		DocumentStatusFailed,
 19867  		DocumentStatusUpdateFailed,
 19868  	}
 19869  }
 19870  
 19871  const (
 19872  	// ErrorCodeInternalError is a ErrorCode enum value
 19873  	ErrorCodeInternalError = "InternalError"
 19874  
 19875  	// ErrorCodeInvalidRequest is a ErrorCode enum value
 19876  	ErrorCodeInvalidRequest = "InvalidRequest"
 19877  )
 19878  
 19879  // ErrorCode_Values returns all elements of the ErrorCode enum
 19880  func ErrorCode_Values() []string {
 19881  	return []string{
 19882  		ErrorCodeInternalError,
 19883  		ErrorCodeInvalidRequest,
 19884  	}
 19885  }
 19886  
 19887  const (
 19888  	// FaqFileFormatCsv is a FaqFileFormat enum value
 19889  	FaqFileFormatCsv = "CSV"
 19890  
 19891  	// FaqFileFormatCsvWithHeader is a FaqFileFormat enum value
 19892  	FaqFileFormatCsvWithHeader = "CSV_WITH_HEADER"
 19893  
 19894  	// FaqFileFormatJson is a FaqFileFormat enum value
 19895  	FaqFileFormatJson = "JSON"
 19896  )
 19897  
 19898  // FaqFileFormat_Values returns all elements of the FaqFileFormat enum
 19899  func FaqFileFormat_Values() []string {
 19900  	return []string{
 19901  		FaqFileFormatCsv,
 19902  		FaqFileFormatCsvWithHeader,
 19903  		FaqFileFormatJson,
 19904  	}
 19905  }
 19906  
 19907  const (
 19908  	// FaqStatusCreating is a FaqStatus enum value
 19909  	FaqStatusCreating = "CREATING"
 19910  
 19911  	// FaqStatusUpdating is a FaqStatus enum value
 19912  	FaqStatusUpdating = "UPDATING"
 19913  
 19914  	// FaqStatusActive is a FaqStatus enum value
 19915  	FaqStatusActive = "ACTIVE"
 19916  
 19917  	// FaqStatusDeleting is a FaqStatus enum value
 19918  	FaqStatusDeleting = "DELETING"
 19919  
 19920  	// FaqStatusFailed is a FaqStatus enum value
 19921  	FaqStatusFailed = "FAILED"
 19922  )
 19923  
 19924  // FaqStatus_Values returns all elements of the FaqStatus enum
 19925  func FaqStatus_Values() []string {
 19926  	return []string{
 19927  		FaqStatusCreating,
 19928  		FaqStatusUpdating,
 19929  		FaqStatusActive,
 19930  		FaqStatusDeleting,
 19931  		FaqStatusFailed,
 19932  	}
 19933  }
 19934  
 19935  const (
 19936  	// HighlightTypeStandard is a HighlightType enum value
 19937  	HighlightTypeStandard = "STANDARD"
 19938  
 19939  	// HighlightTypeThesaurusSynonym is a HighlightType enum value
 19940  	HighlightTypeThesaurusSynonym = "THESAURUS_SYNONYM"
 19941  )
 19942  
 19943  // HighlightType_Values returns all elements of the HighlightType enum
 19944  func HighlightType_Values() []string {
 19945  	return []string{
 19946  		HighlightTypeStandard,
 19947  		HighlightTypeThesaurusSynonym,
 19948  	}
 19949  }
 19950  
 19951  const (
 19952  	// IndexEditionDeveloperEdition is a IndexEdition enum value
 19953  	IndexEditionDeveloperEdition = "DEVELOPER_EDITION"
 19954  
 19955  	// IndexEditionEnterpriseEdition is a IndexEdition enum value
 19956  	IndexEditionEnterpriseEdition = "ENTERPRISE_EDITION"
 19957  )
 19958  
 19959  // IndexEdition_Values returns all elements of the IndexEdition enum
 19960  func IndexEdition_Values() []string {
 19961  	return []string{
 19962  		IndexEditionDeveloperEdition,
 19963  		IndexEditionEnterpriseEdition,
 19964  	}
 19965  }
 19966  
 19967  const (
 19968  	// IndexStatusCreating is a IndexStatus enum value
 19969  	IndexStatusCreating = "CREATING"
 19970  
 19971  	// IndexStatusActive is a IndexStatus enum value
 19972  	IndexStatusActive = "ACTIVE"
 19973  
 19974  	// IndexStatusDeleting is a IndexStatus enum value
 19975  	IndexStatusDeleting = "DELETING"
 19976  
 19977  	// IndexStatusFailed is a IndexStatus enum value
 19978  	IndexStatusFailed = "FAILED"
 19979  
 19980  	// IndexStatusUpdating is a IndexStatus enum value
 19981  	IndexStatusUpdating = "UPDATING"
 19982  
 19983  	// IndexStatusSystemUpdating is a IndexStatus enum value
 19984  	IndexStatusSystemUpdating = "SYSTEM_UPDATING"
 19985  )
 19986  
 19987  // IndexStatus_Values returns all elements of the IndexStatus enum
 19988  func IndexStatus_Values() []string {
 19989  	return []string{
 19990  		IndexStatusCreating,
 19991  		IndexStatusActive,
 19992  		IndexStatusDeleting,
 19993  		IndexStatusFailed,
 19994  		IndexStatusUpdating,
 19995  		IndexStatusSystemUpdating,
 19996  	}
 19997  }
 19998  
 19999  const (
 20000  	// KeyLocationUrl is a KeyLocation enum value
 20001  	KeyLocationUrl = "URL"
 20002  
 20003  	// KeyLocationSecretManager is a KeyLocation enum value
 20004  	KeyLocationSecretManager = "SECRET_MANAGER"
 20005  )
 20006  
 20007  // KeyLocation_Values returns all elements of the KeyLocation enum
 20008  func KeyLocation_Values() []string {
 20009  	return []string{
 20010  		KeyLocationUrl,
 20011  		KeyLocationSecretManager,
 20012  	}
 20013  }
 20014  
 20015  const (
 20016  	// ModeEnabled is a Mode enum value
 20017  	ModeEnabled = "ENABLED"
 20018  
 20019  	// ModeLearnOnly is a Mode enum value
 20020  	ModeLearnOnly = "LEARN_ONLY"
 20021  )
 20022  
 20023  // Mode_Values returns all elements of the Mode enum
 20024  func Mode_Values() []string {
 20025  	return []string{
 20026  		ModeEnabled,
 20027  		ModeLearnOnly,
 20028  	}
 20029  }
 20030  
 20031  const (
 20032  	// OrderAscending is a Order enum value
 20033  	OrderAscending = "ASCENDING"
 20034  
 20035  	// OrderDescending is a Order enum value
 20036  	OrderDescending = "DESCENDING"
 20037  )
 20038  
 20039  // Order_Values returns all elements of the Order enum
 20040  func Order_Values() []string {
 20041  	return []string{
 20042  		OrderAscending,
 20043  		OrderDescending,
 20044  	}
 20045  }
 20046  
 20047  const (
 20048  	// PrincipalMappingStatusFailed is a PrincipalMappingStatus enum value
 20049  	PrincipalMappingStatusFailed = "FAILED"
 20050  
 20051  	// PrincipalMappingStatusSucceeded is a PrincipalMappingStatus enum value
 20052  	PrincipalMappingStatusSucceeded = "SUCCEEDED"
 20053  
 20054  	// PrincipalMappingStatusProcessing is a PrincipalMappingStatus enum value
 20055  	PrincipalMappingStatusProcessing = "PROCESSING"
 20056  
 20057  	// PrincipalMappingStatusDeleting is a PrincipalMappingStatus enum value
 20058  	PrincipalMappingStatusDeleting = "DELETING"
 20059  
 20060  	// PrincipalMappingStatusDeleted is a PrincipalMappingStatus enum value
 20061  	PrincipalMappingStatusDeleted = "DELETED"
 20062  )
 20063  
 20064  // PrincipalMappingStatus_Values returns all elements of the PrincipalMappingStatus enum
 20065  func PrincipalMappingStatus_Values() []string {
 20066  	return []string{
 20067  		PrincipalMappingStatusFailed,
 20068  		PrincipalMappingStatusSucceeded,
 20069  		PrincipalMappingStatusProcessing,
 20070  		PrincipalMappingStatusDeleting,
 20071  		PrincipalMappingStatusDeleted,
 20072  	}
 20073  }
 20074  
 20075  const (
 20076  	// PrincipalTypeUser is a PrincipalType enum value
 20077  	PrincipalTypeUser = "USER"
 20078  
 20079  	// PrincipalTypeGroup is a PrincipalType enum value
 20080  	PrincipalTypeGroup = "GROUP"
 20081  )
 20082  
 20083  // PrincipalType_Values returns all elements of the PrincipalType enum
 20084  func PrincipalType_Values() []string {
 20085  	return []string{
 20086  		PrincipalTypeUser,
 20087  		PrincipalTypeGroup,
 20088  	}
 20089  }
 20090  
 20091  const (
 20092  	// QueryIdentifiersEnclosingOptionDoubleQuotes is a QueryIdentifiersEnclosingOption enum value
 20093  	QueryIdentifiersEnclosingOptionDoubleQuotes = "DOUBLE_QUOTES"
 20094  
 20095  	// QueryIdentifiersEnclosingOptionNone is a QueryIdentifiersEnclosingOption enum value
 20096  	QueryIdentifiersEnclosingOptionNone = "NONE"
 20097  )
 20098  
 20099  // QueryIdentifiersEnclosingOption_Values returns all elements of the QueryIdentifiersEnclosingOption enum
 20100  func QueryIdentifiersEnclosingOption_Values() []string {
 20101  	return []string{
 20102  		QueryIdentifiersEnclosingOptionDoubleQuotes,
 20103  		QueryIdentifiersEnclosingOptionNone,
 20104  	}
 20105  }
 20106  
 20107  const (
 20108  	// QueryResultTypeDocument is a QueryResultType enum value
 20109  	QueryResultTypeDocument = "DOCUMENT"
 20110  
 20111  	// QueryResultTypeQuestionAnswer is a QueryResultType enum value
 20112  	QueryResultTypeQuestionAnswer = "QUESTION_ANSWER"
 20113  
 20114  	// QueryResultTypeAnswer is a QueryResultType enum value
 20115  	QueryResultTypeAnswer = "ANSWER"
 20116  )
 20117  
 20118  // QueryResultType_Values returns all elements of the QueryResultType enum
 20119  func QueryResultType_Values() []string {
 20120  	return []string{
 20121  		QueryResultTypeDocument,
 20122  		QueryResultTypeQuestionAnswer,
 20123  		QueryResultTypeAnswer,
 20124  	}
 20125  }
 20126  
 20127  const (
 20128  	// QuerySuggestionsBlockListStatusActive is a QuerySuggestionsBlockListStatus enum value
 20129  	QuerySuggestionsBlockListStatusActive = "ACTIVE"
 20130  
 20131  	// QuerySuggestionsBlockListStatusCreating is a QuerySuggestionsBlockListStatus enum value
 20132  	QuerySuggestionsBlockListStatusCreating = "CREATING"
 20133  
 20134  	// QuerySuggestionsBlockListStatusDeleting is a QuerySuggestionsBlockListStatus enum value
 20135  	QuerySuggestionsBlockListStatusDeleting = "DELETING"
 20136  
 20137  	// QuerySuggestionsBlockListStatusUpdating is a QuerySuggestionsBlockListStatus enum value
 20138  	QuerySuggestionsBlockListStatusUpdating = "UPDATING"
 20139  
 20140  	// QuerySuggestionsBlockListStatusActiveButUpdateFailed is a QuerySuggestionsBlockListStatus enum value
 20141  	QuerySuggestionsBlockListStatusActiveButUpdateFailed = "ACTIVE_BUT_UPDATE_FAILED"
 20142  
 20143  	// QuerySuggestionsBlockListStatusFailed is a QuerySuggestionsBlockListStatus enum value
 20144  	QuerySuggestionsBlockListStatusFailed = "FAILED"
 20145  )
 20146  
 20147  // QuerySuggestionsBlockListStatus_Values returns all elements of the QuerySuggestionsBlockListStatus enum
 20148  func QuerySuggestionsBlockListStatus_Values() []string {
 20149  	return []string{
 20150  		QuerySuggestionsBlockListStatusActive,
 20151  		QuerySuggestionsBlockListStatusCreating,
 20152  		QuerySuggestionsBlockListStatusDeleting,
 20153  		QuerySuggestionsBlockListStatusUpdating,
 20154  		QuerySuggestionsBlockListStatusActiveButUpdateFailed,
 20155  		QuerySuggestionsBlockListStatusFailed,
 20156  	}
 20157  }
 20158  
 20159  const (
 20160  	// QuerySuggestionsStatusActive is a QuerySuggestionsStatus enum value
 20161  	QuerySuggestionsStatusActive = "ACTIVE"
 20162  
 20163  	// QuerySuggestionsStatusUpdating is a QuerySuggestionsStatus enum value
 20164  	QuerySuggestionsStatusUpdating = "UPDATING"
 20165  )
 20166  
 20167  // QuerySuggestionsStatus_Values returns all elements of the QuerySuggestionsStatus enum
 20168  func QuerySuggestionsStatus_Values() []string {
 20169  	return []string{
 20170  		QuerySuggestionsStatusActive,
 20171  		QuerySuggestionsStatusUpdating,
 20172  	}
 20173  }
 20174  
 20175  const (
 20176  	// ReadAccessTypeAllow is a ReadAccessType enum value
 20177  	ReadAccessTypeAllow = "ALLOW"
 20178  
 20179  	// ReadAccessTypeDeny is a ReadAccessType enum value
 20180  	ReadAccessTypeDeny = "DENY"
 20181  )
 20182  
 20183  // ReadAccessType_Values returns all elements of the ReadAccessType enum
 20184  func ReadAccessType_Values() []string {
 20185  	return []string{
 20186  		ReadAccessTypeAllow,
 20187  		ReadAccessTypeDeny,
 20188  	}
 20189  }
 20190  
 20191  const (
 20192  	// RelevanceTypeRelevant is a RelevanceType enum value
 20193  	RelevanceTypeRelevant = "RELEVANT"
 20194  
 20195  	// RelevanceTypeNotRelevant is a RelevanceType enum value
 20196  	RelevanceTypeNotRelevant = "NOT_RELEVANT"
 20197  )
 20198  
 20199  // RelevanceType_Values returns all elements of the RelevanceType enum
 20200  func RelevanceType_Values() []string {
 20201  	return []string{
 20202  		RelevanceTypeRelevant,
 20203  		RelevanceTypeNotRelevant,
 20204  	}
 20205  }
 20206  
 20207  const (
 20208  	// SalesforceChatterFeedIncludeFilterTypeActiveUser is a SalesforceChatterFeedIncludeFilterType enum value
 20209  	SalesforceChatterFeedIncludeFilterTypeActiveUser = "ACTIVE_USER"
 20210  
 20211  	// SalesforceChatterFeedIncludeFilterTypeStandardUser is a SalesforceChatterFeedIncludeFilterType enum value
 20212  	SalesforceChatterFeedIncludeFilterTypeStandardUser = "STANDARD_USER"
 20213  )
 20214  
 20215  // SalesforceChatterFeedIncludeFilterType_Values returns all elements of the SalesforceChatterFeedIncludeFilterType enum
 20216  func SalesforceChatterFeedIncludeFilterType_Values() []string {
 20217  	return []string{
 20218  		SalesforceChatterFeedIncludeFilterTypeActiveUser,
 20219  		SalesforceChatterFeedIncludeFilterTypeStandardUser,
 20220  	}
 20221  }
 20222  
 20223  const (
 20224  	// SalesforceKnowledgeArticleStateDraft is a SalesforceKnowledgeArticleState enum value
 20225  	SalesforceKnowledgeArticleStateDraft = "DRAFT"
 20226  
 20227  	// SalesforceKnowledgeArticleStatePublished is a SalesforceKnowledgeArticleState enum value
 20228  	SalesforceKnowledgeArticleStatePublished = "PUBLISHED"
 20229  
 20230  	// SalesforceKnowledgeArticleStateArchived is a SalesforceKnowledgeArticleState enum value
 20231  	SalesforceKnowledgeArticleStateArchived = "ARCHIVED"
 20232  )
 20233  
 20234  // SalesforceKnowledgeArticleState_Values returns all elements of the SalesforceKnowledgeArticleState enum
 20235  func SalesforceKnowledgeArticleState_Values() []string {
 20236  	return []string{
 20237  		SalesforceKnowledgeArticleStateDraft,
 20238  		SalesforceKnowledgeArticleStatePublished,
 20239  		SalesforceKnowledgeArticleStateArchived,
 20240  	}
 20241  }
 20242  
 20243  const (
 20244  	// SalesforceStandardObjectNameAccount is a SalesforceStandardObjectName enum value
 20245  	SalesforceStandardObjectNameAccount = "ACCOUNT"
 20246  
 20247  	// SalesforceStandardObjectNameCampaign is a SalesforceStandardObjectName enum value
 20248  	SalesforceStandardObjectNameCampaign = "CAMPAIGN"
 20249  
 20250  	// SalesforceStandardObjectNameCase is a SalesforceStandardObjectName enum value
 20251  	SalesforceStandardObjectNameCase = "CASE"
 20252  
 20253  	// SalesforceStandardObjectNameContact is a SalesforceStandardObjectName enum value
 20254  	SalesforceStandardObjectNameContact = "CONTACT"
 20255  
 20256  	// SalesforceStandardObjectNameContract is a SalesforceStandardObjectName enum value
 20257  	SalesforceStandardObjectNameContract = "CONTRACT"
 20258  
 20259  	// SalesforceStandardObjectNameDocument is a SalesforceStandardObjectName enum value
 20260  	SalesforceStandardObjectNameDocument = "DOCUMENT"
 20261  
 20262  	// SalesforceStandardObjectNameGroup is a SalesforceStandardObjectName enum value
 20263  	SalesforceStandardObjectNameGroup = "GROUP"
 20264  
 20265  	// SalesforceStandardObjectNameIdea is a SalesforceStandardObjectName enum value
 20266  	SalesforceStandardObjectNameIdea = "IDEA"
 20267  
 20268  	// SalesforceStandardObjectNameLead is a SalesforceStandardObjectName enum value
 20269  	SalesforceStandardObjectNameLead = "LEAD"
 20270  
 20271  	// SalesforceStandardObjectNameOpportunity is a SalesforceStandardObjectName enum value
 20272  	SalesforceStandardObjectNameOpportunity = "OPPORTUNITY"
 20273  
 20274  	// SalesforceStandardObjectNamePartner is a SalesforceStandardObjectName enum value
 20275  	SalesforceStandardObjectNamePartner = "PARTNER"
 20276  
 20277  	// SalesforceStandardObjectNamePricebook is a SalesforceStandardObjectName enum value
 20278  	SalesforceStandardObjectNamePricebook = "PRICEBOOK"
 20279  
 20280  	// SalesforceStandardObjectNameProduct is a SalesforceStandardObjectName enum value
 20281  	SalesforceStandardObjectNameProduct = "PRODUCT"
 20282  
 20283  	// SalesforceStandardObjectNameProfile is a SalesforceStandardObjectName enum value
 20284  	SalesforceStandardObjectNameProfile = "PROFILE"
 20285  
 20286  	// SalesforceStandardObjectNameSolution is a SalesforceStandardObjectName enum value
 20287  	SalesforceStandardObjectNameSolution = "SOLUTION"
 20288  
 20289  	// SalesforceStandardObjectNameTask is a SalesforceStandardObjectName enum value
 20290  	SalesforceStandardObjectNameTask = "TASK"
 20291  
 20292  	// SalesforceStandardObjectNameUser is a SalesforceStandardObjectName enum value
 20293  	SalesforceStandardObjectNameUser = "USER"
 20294  )
 20295  
 20296  // SalesforceStandardObjectName_Values returns all elements of the SalesforceStandardObjectName enum
 20297  func SalesforceStandardObjectName_Values() []string {
 20298  	return []string{
 20299  		SalesforceStandardObjectNameAccount,
 20300  		SalesforceStandardObjectNameCampaign,
 20301  		SalesforceStandardObjectNameCase,
 20302  		SalesforceStandardObjectNameContact,
 20303  		SalesforceStandardObjectNameContract,
 20304  		SalesforceStandardObjectNameDocument,
 20305  		SalesforceStandardObjectNameGroup,
 20306  		SalesforceStandardObjectNameIdea,
 20307  		SalesforceStandardObjectNameLead,
 20308  		SalesforceStandardObjectNameOpportunity,
 20309  		SalesforceStandardObjectNamePartner,
 20310  		SalesforceStandardObjectNamePricebook,
 20311  		SalesforceStandardObjectNameProduct,
 20312  		SalesforceStandardObjectNameProfile,
 20313  		SalesforceStandardObjectNameSolution,
 20314  		SalesforceStandardObjectNameTask,
 20315  		SalesforceStandardObjectNameUser,
 20316  	}
 20317  }
 20318  
 20319  // Enumeration for query score confidence.
 20320  const (
 20321  	// ScoreConfidenceVeryHigh is a ScoreConfidence enum value
 20322  	ScoreConfidenceVeryHigh = "VERY_HIGH"
 20323  
 20324  	// ScoreConfidenceHigh is a ScoreConfidence enum value
 20325  	ScoreConfidenceHigh = "HIGH"
 20326  
 20327  	// ScoreConfidenceMedium is a ScoreConfidence enum value
 20328  	ScoreConfidenceMedium = "MEDIUM"
 20329  
 20330  	// ScoreConfidenceLow is a ScoreConfidence enum value
 20331  	ScoreConfidenceLow = "LOW"
 20332  
 20333  	// ScoreConfidenceNotAvailable is a ScoreConfidence enum value
 20334  	ScoreConfidenceNotAvailable = "NOT_AVAILABLE"
 20335  )
 20336  
 20337  // ScoreConfidence_Values returns all elements of the ScoreConfidence enum
 20338  func ScoreConfidence_Values() []string {
 20339  	return []string{
 20340  		ScoreConfidenceVeryHigh,
 20341  		ScoreConfidenceHigh,
 20342  		ScoreConfidenceMedium,
 20343  		ScoreConfidenceLow,
 20344  		ScoreConfidenceNotAvailable,
 20345  	}
 20346  }
 20347  
 20348  const (
 20349  	// ServiceNowAuthenticationTypeHttpBasic is a ServiceNowAuthenticationType enum value
 20350  	ServiceNowAuthenticationTypeHttpBasic = "HTTP_BASIC"
 20351  
 20352  	// ServiceNowAuthenticationTypeOauth2 is a ServiceNowAuthenticationType enum value
 20353  	ServiceNowAuthenticationTypeOauth2 = "OAUTH2"
 20354  )
 20355  
 20356  // ServiceNowAuthenticationType_Values returns all elements of the ServiceNowAuthenticationType enum
 20357  func ServiceNowAuthenticationType_Values() []string {
 20358  	return []string{
 20359  		ServiceNowAuthenticationTypeHttpBasic,
 20360  		ServiceNowAuthenticationTypeOauth2,
 20361  	}
 20362  }
 20363  
 20364  const (
 20365  	// ServiceNowBuildVersionTypeLondon is a ServiceNowBuildVersionType enum value
 20366  	ServiceNowBuildVersionTypeLondon = "LONDON"
 20367  
 20368  	// ServiceNowBuildVersionTypeOthers is a ServiceNowBuildVersionType enum value
 20369  	ServiceNowBuildVersionTypeOthers = "OTHERS"
 20370  )
 20371  
 20372  // ServiceNowBuildVersionType_Values returns all elements of the ServiceNowBuildVersionType enum
 20373  func ServiceNowBuildVersionType_Values() []string {
 20374  	return []string{
 20375  		ServiceNowBuildVersionTypeLondon,
 20376  		ServiceNowBuildVersionTypeOthers,
 20377  	}
 20378  }
 20379  
 20380  const (
 20381  	// SharePointVersionSharepoint2013 is a SharePointVersion enum value
 20382  	SharePointVersionSharepoint2013 = "SHAREPOINT_2013"
 20383  
 20384  	// SharePointVersionSharepoint2016 is a SharePointVersion enum value
 20385  	SharePointVersionSharepoint2016 = "SHAREPOINT_2016"
 20386  
 20387  	// SharePointVersionSharepointOnline is a SharePointVersion enum value
 20388  	SharePointVersionSharepointOnline = "SHAREPOINT_ONLINE"
 20389  )
 20390  
 20391  // SharePointVersion_Values returns all elements of the SharePointVersion enum
 20392  func SharePointVersion_Values() []string {
 20393  	return []string{
 20394  		SharePointVersionSharepoint2013,
 20395  		SharePointVersionSharepoint2016,
 20396  		SharePointVersionSharepointOnline,
 20397  	}
 20398  }
 20399  
 20400  const (
 20401  	// SortOrderDesc is a SortOrder enum value
 20402  	SortOrderDesc = "DESC"
 20403  
 20404  	// SortOrderAsc is a SortOrder enum value
 20405  	SortOrderAsc = "ASC"
 20406  )
 20407  
 20408  // SortOrder_Values returns all elements of the SortOrder enum
 20409  func SortOrder_Values() []string {
 20410  	return []string{
 20411  		SortOrderDesc,
 20412  		SortOrderAsc,
 20413  	}
 20414  }
 20415  
 20416  const (
 20417  	// ThesaurusStatusCreating is a ThesaurusStatus enum value
 20418  	ThesaurusStatusCreating = "CREATING"
 20419  
 20420  	// ThesaurusStatusActive is a ThesaurusStatus enum value
 20421  	ThesaurusStatusActive = "ACTIVE"
 20422  
 20423  	// ThesaurusStatusDeleting is a ThesaurusStatus enum value
 20424  	ThesaurusStatusDeleting = "DELETING"
 20425  
 20426  	// ThesaurusStatusUpdating is a ThesaurusStatus enum value
 20427  	ThesaurusStatusUpdating = "UPDATING"
 20428  
 20429  	// ThesaurusStatusActiveButUpdateFailed is a ThesaurusStatus enum value
 20430  	ThesaurusStatusActiveButUpdateFailed = "ACTIVE_BUT_UPDATE_FAILED"
 20431  
 20432  	// ThesaurusStatusFailed is a ThesaurusStatus enum value
 20433  	ThesaurusStatusFailed = "FAILED"
 20434  )
 20435  
 20436  // ThesaurusStatus_Values returns all elements of the ThesaurusStatus enum
 20437  func ThesaurusStatus_Values() []string {
 20438  	return []string{
 20439  		ThesaurusStatusCreating,
 20440  		ThesaurusStatusActive,
 20441  		ThesaurusStatusDeleting,
 20442  		ThesaurusStatusUpdating,
 20443  		ThesaurusStatusActiveButUpdateFailed,
 20444  		ThesaurusStatusFailed,
 20445  	}
 20446  }
 20447  
 20448  const (
 20449  	// UserContextPolicyAttributeFilter is a UserContextPolicy enum value
 20450  	UserContextPolicyAttributeFilter = "ATTRIBUTE_FILTER"
 20451  
 20452  	// UserContextPolicyUserToken is a UserContextPolicy enum value
 20453  	UserContextPolicyUserToken = "USER_TOKEN"
 20454  )
 20455  
 20456  // UserContextPolicy_Values returns all elements of the UserContextPolicy enum
 20457  func UserContextPolicy_Values() []string {
 20458  	return []string{
 20459  		UserContextPolicyAttributeFilter,
 20460  		UserContextPolicyUserToken,
 20461  	}
 20462  }
 20463  
 20464  const (
 20465  	// UserGroupResolutionModeAwsSso is a UserGroupResolutionMode enum value
 20466  	UserGroupResolutionModeAwsSso = "AWS_SSO"
 20467  
 20468  	// UserGroupResolutionModeNone is a UserGroupResolutionMode enum value
 20469  	UserGroupResolutionModeNone = "NONE"
 20470  )
 20471  
 20472  // UserGroupResolutionMode_Values returns all elements of the UserGroupResolutionMode enum
 20473  func UserGroupResolutionMode_Values() []string {
 20474  	return []string{
 20475  		UserGroupResolutionModeAwsSso,
 20476  		UserGroupResolutionModeNone,
 20477  	}
 20478  }
 20479  
 20480  const (
 20481  	// WebCrawlerModeHostOnly is a WebCrawlerMode enum value
 20482  	WebCrawlerModeHostOnly = "HOST_ONLY"
 20483  
 20484  	// WebCrawlerModeSubdomains is a WebCrawlerMode enum value
 20485  	WebCrawlerModeSubdomains = "SUBDOMAINS"
 20486  
 20487  	// WebCrawlerModeEverything is a WebCrawlerMode enum value
 20488  	WebCrawlerModeEverything = "EVERYTHING"
 20489  )
 20490  
 20491  // WebCrawlerMode_Values returns all elements of the WebCrawlerMode enum
 20492  func WebCrawlerMode_Values() []string {
 20493  	return []string{
 20494  		WebCrawlerModeHostOnly,
 20495  		WebCrawlerModeSubdomains,
 20496  		WebCrawlerModeEverything,
 20497  	}
 20498  }