1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package kendra
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
14)
15
16const 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
42func (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
88func (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.
102func (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
109const 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
135func (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
188func (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.
202func (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
209const 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
235func (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
288func (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.
302func (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
309const 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
335func (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
383func (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.
397func (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
404const 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
430func (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
481func (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.
495func (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
502const 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
528func (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
571func (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.
585func (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
592const 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
618func (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
667func (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.
681func (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
688const 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
714func (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
767func (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.
781func (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
788const 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
814func (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
858func (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.
872func (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
879const 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
905func (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
950func (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.
964func (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
971const 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
997func (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
1039func (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.
1053func (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
1060const 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
1086func (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
1130func (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.
1144func (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
1151const 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
1177func (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
1230func (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.
1244func (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
1251const 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
1277func (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
1323func (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.
1337func (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
1344const 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
1370func (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
1412func (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.
1426func (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
1433const 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
1459func (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
1498func (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.
1512func (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
1519const 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
1545func (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
1584func (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.
1598func (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
1605const 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
1631func (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
1670func (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.
1684func (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
1691const 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
1717func (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
1761func (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.
1775func (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
1782const 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
1808func (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
1849func (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.
1863func (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
1870const 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
1896func (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
1937func (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.
1951func (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
1958const 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
1984func (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
2023func (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.
2037func (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
2044const 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
2070func (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
2113func (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.
2127func (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
2134const 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
2160func (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
2207func (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.
2221func (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//
2245func (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.
2256func (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
2280const 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
2306func (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
2351func (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.
2365func (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//
2389func (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.
2400func (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
2424const 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
2450func (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
2489func (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.
2503func (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
2510const 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
2536func (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
2578func (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.
2592func (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
2599const 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
2625func (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
2668func (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.
2682func (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//
2706func (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.
2717func (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
2741const 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
2767func (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
2809func (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.
2823func (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
2830const 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
2856func (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
2896func (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.
2910func (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
2917const 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
2943func (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
2982func (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.
2996func (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
3003const 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
3029func (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
3089func (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.
3103func (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
3110const 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
3136func (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
3198func (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.
3212func (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
3219const 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
3245func (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
3289func (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.
3303func (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
3310const 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
3336func (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
3377func (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.
3391func (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
3398const 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
3424func (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
3467func (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.
3481func (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
3488const 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
3514func (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
3555func (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.
3569func (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
3576const 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
3602func (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
3642func (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.
3656func (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
3663const 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
3689func (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
3731func (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.
3745func (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
3752const 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
3778func (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
3822func (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.
3836func (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
3843const 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
3869func (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
3921func (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.
3935func (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
3942const 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
3968func (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
4022func (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.
4036func (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
4043const 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
4069func (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
4111func (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.
4125func (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).
4134type 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".
4146func (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".
4155func (s AccessControlListConfiguration) GoString() string {
4156	return s.String()
4157}
4158
4159// Validate inspects the fields of the type to determine if they are valid.
4160func (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.
4173func (s *AccessControlListConfiguration) SetKeyPath(v string) *AccessControlListConfiguration {
4174	s.KeyPath = &v
4175	return s
4176}
4177
4178type 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".
4190func (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".
4199func (s AccessDeniedException) GoString() string {
4200	return s.String()
4201}
4202
4203func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
4204	return &AccessDeniedException{
4205		RespMetadata: v,
4206	}
4207}
4208
4209// Code returns the exception type name.
4210func (s *AccessDeniedException) Code() string {
4211	return "AccessDeniedException"
4212}
4213
4214// Message returns the exception's message.
4215func (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.
4223func (s *AccessDeniedException) OrigErr() error {
4224	return nil
4225}
4226
4227func (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.
4232func (s *AccessDeniedException) StatusCode() int {
4233	return s.RespMetadata.StatusCode
4234}
4235
4236// RequestID returns the service's response RequestID for request.
4237func (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.
4243type 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".
4259func (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".
4268func (s AclConfiguration) GoString() string {
4269	return s.String()
4270}
4271
4272// Validate inspects the fields of the type to determine if they are valid.
4273func (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.
4289func (s *AclConfiguration) SetAllowedGroupsColumnName(v string) *AclConfiguration {
4290	s.AllowedGroupsColumnName = &v
4291	return s
4292}
4293
4294// An attribute returned from an index query.
4295type 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".
4319func (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".
4328func (s AdditionalResultAttribute) GoString() string {
4329	return s.String()
4330}
4331
4332// SetKey sets the Key field's value.
4333func (s *AdditionalResultAttribute) SetKey(v string) *AdditionalResultAttribute {
4334	s.Key = &v
4335	return s
4336}
4337
4338// SetValue sets the Value field's value.
4339func (s *AdditionalResultAttribute) SetValue(v *AdditionalResultAttributeValue) *AdditionalResultAttribute {
4340	s.Value = v
4341	return s
4342}
4343
4344// SetValueType sets the ValueType field's value.
4345func (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.
4351type 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".
4364func (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".
4373func (s AdditionalResultAttributeValue) GoString() string {
4374	return s.String()
4375}
4376
4377// SetTextWithHighlightsValue sets the TextWithHighlightsValue field's value.
4378func (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".
4400type 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".
4445func (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".
4454func (s AttributeFilter) GoString() string {
4455	return s.String()
4456}
4457
4458// Validate inspects the fields of the type to determine if they are valid.
4459func (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.
4519func (s *AttributeFilter) SetAndAllFilters(v []*AttributeFilter) *AttributeFilter {
4520	s.AndAllFilters = v
4521	return s
4522}
4523
4524// SetContainsAll sets the ContainsAll field's value.
4525func (s *AttributeFilter) SetContainsAll(v *DocumentAttribute) *AttributeFilter {
4526	s.ContainsAll = v
4527	return s
4528}
4529
4530// SetContainsAny sets the ContainsAny field's value.
4531func (s *AttributeFilter) SetContainsAny(v *DocumentAttribute) *AttributeFilter {
4532	s.ContainsAny = v
4533	return s
4534}
4535
4536// SetEqualsTo sets the EqualsTo field's value.
4537func (s *AttributeFilter) SetEqualsTo(v *DocumentAttribute) *AttributeFilter {
4538	s.EqualsTo = v
4539	return s
4540}
4541
4542// SetGreaterThan sets the GreaterThan field's value.
4543func (s *AttributeFilter) SetGreaterThan(v *DocumentAttribute) *AttributeFilter {
4544	s.GreaterThan = v
4545	return s
4546}
4547
4548// SetGreaterThanOrEquals sets the GreaterThanOrEquals field's value.
4549func (s *AttributeFilter) SetGreaterThanOrEquals(v *DocumentAttribute) *AttributeFilter {
4550	s.GreaterThanOrEquals = v
4551	return s
4552}
4553
4554// SetLessThan sets the LessThan field's value.
4555func (s *AttributeFilter) SetLessThan(v *DocumentAttribute) *AttributeFilter {
4556	s.LessThan = v
4557	return s
4558}
4559
4560// SetLessThanOrEquals sets the LessThanOrEquals field's value.
4561func (s *AttributeFilter) SetLessThanOrEquals(v *DocumentAttribute) *AttributeFilter {
4562	s.LessThanOrEquals = v
4563	return s
4564}
4565
4566// SetNotFilter sets the NotFilter field's value.
4567func (s *AttributeFilter) SetNotFilter(v *AttributeFilter) *AttributeFilter {
4568	s.NotFilter = v
4569	return s
4570}
4571
4572// SetOrAllFilters sets the OrAllFilters field's value.
4573func (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.
4580type 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".
4595func (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".
4604func (s AuthenticationConfiguration) GoString() string {
4605	return s.String()
4606}
4607
4608// Validate inspects the fields of the type to determine if they are valid.
4609func (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.
4629func (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.
4636type 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".
4670func (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".
4679func (s BasicAuthenticationConfiguration) GoString() string {
4680	return s.String()
4681}
4682
4683// Validate inspects the fields of the type to determine if they are valid.
4684func (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.
4712func (s *BasicAuthenticationConfiguration) SetCredentials(v string) *BasicAuthenticationConfiguration {
4713	s.Credentials = &v
4714	return s
4715}
4716
4717// SetHost sets the Host field's value.
4718func (s *BasicAuthenticationConfiguration) SetHost(v string) *BasicAuthenticationConfiguration {
4719	s.Host = &v
4720	return s
4721}
4722
4723// SetPort sets the Port field's value.
4724func (s *BasicAuthenticationConfiguration) SetPort(v int64) *BasicAuthenticationConfiguration {
4725	s.Port = &v
4726	return s
4727}
4728
4729type 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".
4751func (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".
4760func (s BatchDeleteDocumentInput) GoString() string {
4761	return s.String()
4762}
4763
4764// Validate inspects the fields of the type to determine if they are valid.
4765func (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.
4792func (s *BatchDeleteDocumentInput) SetDataSourceSyncJobMetricTarget(v *DataSourceSyncJobMetricTarget) *BatchDeleteDocumentInput {
4793	s.DataSourceSyncJobMetricTarget = v
4794	return s
4795}
4796
4797// SetDocumentIdList sets the DocumentIdList field's value.
4798func (s *BatchDeleteDocumentInput) SetDocumentIdList(v []*string) *BatchDeleteDocumentInput {
4799	s.DocumentIdList = v
4800	return s
4801}
4802
4803// SetIndexId sets the IndexId field's value.
4804func (s *BatchDeleteDocumentInput) SetIndexId(v string) *BatchDeleteDocumentInput {
4805	s.IndexId = &v
4806	return s
4807}
4808
4809type 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".
4823func (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".
4832func (s BatchDeleteDocumentOutput) GoString() string {
4833	return s.String()
4834}
4835
4836// SetFailedDocuments sets the FailedDocuments field's value.
4837func (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.
4844type 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".
4862func (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".
4871func (s BatchDeleteDocumentResponseFailedDocument) GoString() string {
4872	return s.String()
4873}
4874
4875// SetErrorCode sets the ErrorCode field's value.
4876func (s *BatchDeleteDocumentResponseFailedDocument) SetErrorCode(v string) *BatchDeleteDocumentResponseFailedDocument {
4877	s.ErrorCode = &v
4878	return s
4879}
4880
4881// SetErrorMessage sets the ErrorMessage field's value.
4882func (s *BatchDeleteDocumentResponseFailedDocument) SetErrorMessage(v string) *BatchDeleteDocumentResponseFailedDocument {
4883	s.ErrorMessage = &v
4884	return s
4885}
4886
4887// SetId sets the Id field's value.
4888func (s *BatchDeleteDocumentResponseFailedDocument) SetId(v string) *BatchDeleteDocumentResponseFailedDocument {
4889	s.Id = &v
4890	return s
4891}
4892
4893type 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".
4916func (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".
4925func (s BatchGetDocumentStatusInput) GoString() string {
4926	return s.String()
4927}
4928
4929// Validate inspects the fields of the type to determine if they are valid.
4930func (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.
4962func (s *BatchGetDocumentStatusInput) SetDocumentInfoList(v []*DocumentInfo) *BatchGetDocumentStatusInput {
4963	s.DocumentInfoList = v
4964	return s
4965}
4966
4967// SetIndexId sets the IndexId field's value.
4968func (s *BatchGetDocumentStatusInput) SetIndexId(v string) *BatchGetDocumentStatusInput {
4969	s.IndexId = &v
4970	return s
4971}
4972
4973type 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".
4993func (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".
5002func (s BatchGetDocumentStatusOutput) GoString() string {
5003	return s.String()
5004}
5005
5006// SetDocumentStatusList sets the DocumentStatusList field's value.
5007func (s *BatchGetDocumentStatusOutput) SetDocumentStatusList(v []*Status) *BatchGetDocumentStatusOutput {
5008	s.DocumentStatusList = v
5009	return s
5010}
5011
5012// SetErrors sets the Errors field's value.
5013func (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.
5019type 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".
5038func (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".
5047func (s BatchGetDocumentStatusResponseError) GoString() string {
5048	return s.String()
5049}
5050
5051// SetDocumentId sets the DocumentId field's value.
5052func (s *BatchGetDocumentStatusResponseError) SetDocumentId(v string) *BatchGetDocumentStatusResponseError {
5053	s.DocumentId = &v
5054	return s
5055}
5056
5057// SetErrorCode sets the ErrorCode field's value.
5058func (s *BatchGetDocumentStatusResponseError) SetErrorCode(v string) *BatchGetDocumentStatusResponseError {
5059	s.ErrorCode = &v
5060	return s
5061}
5062
5063// SetErrorMessage sets the ErrorMessage field's value.
5064func (s *BatchGetDocumentStatusResponseError) SetErrorMessage(v string) *BatchGetDocumentStatusResponseError {
5065	s.ErrorMessage = &v
5066	return s
5067}
5068
5069type 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".
5110func (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".
5119func (s BatchPutDocumentInput) GoString() string {
5120	return s.String()
5121}
5122
5123// Validate inspects the fields of the type to determine if they are valid.
5124func (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.
5159func (s *BatchPutDocumentInput) SetDocuments(v []*Document) *BatchPutDocumentInput {
5160	s.Documents = v
5161	return s
5162}
5163
5164// SetIndexId sets the IndexId field's value.
5165func (s *BatchPutDocumentInput) SetIndexId(v string) *BatchPutDocumentInput {
5166	s.IndexId = &v
5167	return s
5168}
5169
5170// SetRoleArn sets the RoleArn field's value.
5171func (s *BatchPutDocumentInput) SetRoleArn(v string) *BatchPutDocumentInput {
5172	s.RoleArn = &v
5173	return s
5174}
5175
5176type 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".
5194func (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".
5203func (s BatchPutDocumentOutput) GoString() string {
5204	return s.String()
5205}
5206
5207// SetFailedDocuments sets the FailedDocuments field's value.
5208func (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.
5214type 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".
5232func (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".
5241func (s BatchPutDocumentResponseFailedDocument) GoString() string {
5242	return s.String()
5243}
5244
5245// SetErrorCode sets the ErrorCode field's value.
5246func (s *BatchPutDocumentResponseFailedDocument) SetErrorCode(v string) *BatchPutDocumentResponseFailedDocument {
5247	s.ErrorCode = &v
5248	return s
5249}
5250
5251// SetErrorMessage sets the ErrorMessage field's value.
5252func (s *BatchPutDocumentResponseFailedDocument) SetErrorMessage(v string) *BatchPutDocumentResponseFailedDocument {
5253	s.ErrorMessage = &v
5254	return s
5255}
5256
5257// SetId sets the Id field's value.
5258func (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.
5265type 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".
5298func (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".
5307func (s CapacityUnitsConfiguration) GoString() string {
5308	return s.String()
5309}
5310
5311// Validate inspects the fields of the type to determine if they are valid.
5312func (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.
5328func (s *CapacityUnitsConfiguration) SetQueryCapacityUnits(v int64) *CapacityUnitsConfiguration {
5329	s.QueryCapacityUnits = &v
5330	return s
5331}
5332
5333// SetStorageCapacityUnits sets the StorageCapacityUnits field's value.
5334func (s *CapacityUnitsConfiguration) SetStorageCapacityUnits(v int64) *CapacityUnitsConfiguration {
5335	s.StorageCapacityUnits = &v
5336	return s
5337}
5338
5339type 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".
5353func (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".
5362func (s ClearQuerySuggestionsInput) GoString() string {
5363	return s.String()
5364}
5365
5366// Validate inspects the fields of the type to determine if they are valid.
5367func (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.
5383func (s *ClearQuerySuggestionsInput) SetIndexId(v string) *ClearQuerySuggestionsInput {
5384	s.IndexId = &v
5385	return s
5386}
5387
5388type 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".
5397func (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".
5406func (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.
5412type 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".
5431func (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".
5440func (s ClickFeedback) GoString() string {
5441	return s.String()
5442}
5443
5444// Validate inspects the fields of the type to determine if they are valid.
5445func (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.
5464func (s *ClickFeedback) SetClickTime(v time.Time) *ClickFeedback {
5465	s.ClickTime = &v
5466	return s
5467}
5468
5469// SetResultId sets the ResultId field's value.
5470func (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.
5477type 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".
5509func (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".
5518func (s ColumnConfiguration) GoString() string {
5519	return s.String()
5520}
5521
5522// Validate inspects the fields of the type to determine if they are valid.
5523func (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.
5567func (s *ColumnConfiguration) SetChangeDetectingColumns(v []*string) *ColumnConfiguration {
5568	s.ChangeDetectingColumns = v
5569	return s
5570}
5571
5572// SetDocumentDataColumnName sets the DocumentDataColumnName field's value.
5573func (s *ColumnConfiguration) SetDocumentDataColumnName(v string) *ColumnConfiguration {
5574	s.DocumentDataColumnName = &v
5575	return s
5576}
5577
5578// SetDocumentIdColumnName sets the DocumentIdColumnName field's value.
5579func (s *ColumnConfiguration) SetDocumentIdColumnName(v string) *ColumnConfiguration {
5580	s.DocumentIdColumnName = &v
5581	return s
5582}
5583
5584// SetDocumentTitleColumnName sets the DocumentTitleColumnName field's value.
5585func (s *ColumnConfiguration) SetDocumentTitleColumnName(v string) *ColumnConfiguration {
5586	s.DocumentTitleColumnName = &v
5587	return s
5588}
5589
5590// SetFieldMappings sets the FieldMappings field's value.
5591func (s *ColumnConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *ColumnConfiguration {
5592	s.FieldMappings = v
5593	return s
5594}
5595
5596type 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".
5608func (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".
5617func (s ConflictException) GoString() string {
5618	return s.String()
5619}
5620
5621func newErrorConflictException(v protocol.ResponseMetadata) error {
5622	return &ConflictException{
5623		RespMetadata: v,
5624	}
5625}
5626
5627// Code returns the exception type name.
5628func (s *ConflictException) Code() string {
5629	return "ConflictException"
5630}
5631
5632// Message returns the exception's message.
5633func (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.
5641func (s *ConflictException) OrigErr() error {
5642	return nil
5643}
5644
5645func (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.
5650func (s *ConflictException) StatusCode() int {
5651	return s.RespMetadata.StatusCode
5652}
5653
5654// RequestID returns the service's response RequestID for request.
5655func (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.
5662type 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".
5683func (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".
5692func (s ConfluenceAttachmentConfiguration) GoString() string {
5693	return s.String()
5694}
5695
5696// Validate inspects the fields of the type to determine if they are valid.
5697func (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.
5720func (s *ConfluenceAttachmentConfiguration) SetAttachmentFieldMappings(v []*ConfluenceAttachmentToIndexFieldMapping) *ConfluenceAttachmentConfiguration {
5721	s.AttachmentFieldMappings = v
5722	return s
5723}
5724
5725// SetCrawlAttachments sets the CrawlAttachments field's value.
5726func (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.
5735type 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".
5758func (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".
5767func (s ConfluenceAttachmentToIndexFieldMapping) GoString() string {
5768	return s.String()
5769}
5770
5771// Validate inspects the fields of the type to determine if they are valid.
5772func (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.
5788func (s *ConfluenceAttachmentToIndexFieldMapping) SetDataSourceFieldName(v string) *ConfluenceAttachmentToIndexFieldMapping {
5789	s.DataSourceFieldName = &v
5790	return s
5791}
5792
5793// SetDateFieldFormat sets the DateFieldFormat field's value.
5794func (s *ConfluenceAttachmentToIndexFieldMapping) SetDateFieldFormat(v string) *ConfluenceAttachmentToIndexFieldMapping {
5795	s.DateFieldFormat = &v
5796	return s
5797}
5798
5799// SetIndexFieldName sets the IndexFieldName field's value.
5800func (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.
5808type 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".
5825func (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".
5834func (s ConfluenceBlogConfiguration) GoString() string {
5835	return s.String()
5836}
5837
5838// Validate inspects the fields of the type to determine if they are valid.
5839func (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.
5862func (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.
5871type 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".
5892func (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".
5901func (s ConfluenceBlogToIndexFieldMapping) GoString() string {
5902	return s.String()
5903}
5904
5905// Validate inspects the fields of the type to determine if they are valid.
5906func (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.
5922func (s *ConfluenceBlogToIndexFieldMapping) SetDataSourceFieldName(v string) *ConfluenceBlogToIndexFieldMapping {
5923	s.DataSourceFieldName = &v
5924	return s
5925}
5926
5927// SetDateFieldFormat sets the DateFieldFormat field's value.
5928func (s *ConfluenceBlogToIndexFieldMapping) SetDateFieldFormat(v string) *ConfluenceBlogToIndexFieldMapping {
5929	s.DateFieldFormat = &v
5930	return s
5931}
5932
5933// SetIndexFieldName sets the IndexFieldName field's value.
5934func (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.
5940type 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".
6007func (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".
6016func (s ConfluenceConfiguration) GoString() string {
6017	return s.String()
6018}
6019
6020// Validate inspects the fields of the type to determine if they are valid.
6021func (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.
6071func (s *ConfluenceConfiguration) SetAttachmentConfiguration(v *ConfluenceAttachmentConfiguration) *ConfluenceConfiguration {
6072	s.AttachmentConfiguration = v
6073	return s
6074}
6075
6076// SetBlogConfiguration sets the BlogConfiguration field's value.
6077func (s *ConfluenceConfiguration) SetBlogConfiguration(v *ConfluenceBlogConfiguration) *ConfluenceConfiguration {
6078	s.BlogConfiguration = v
6079	return s
6080}
6081
6082// SetExclusionPatterns sets the ExclusionPatterns field's value.
6083func (s *ConfluenceConfiguration) SetExclusionPatterns(v []*string) *ConfluenceConfiguration {
6084	s.ExclusionPatterns = v
6085	return s
6086}
6087
6088// SetInclusionPatterns sets the InclusionPatterns field's value.
6089func (s *ConfluenceConfiguration) SetInclusionPatterns(v []*string) *ConfluenceConfiguration {
6090	s.InclusionPatterns = v
6091	return s
6092}
6093
6094// SetPageConfiguration sets the PageConfiguration field's value.
6095func (s *ConfluenceConfiguration) SetPageConfiguration(v *ConfluencePageConfiguration) *ConfluenceConfiguration {
6096	s.PageConfiguration = v
6097	return s
6098}
6099
6100// SetSecretArn sets the SecretArn field's value.
6101func (s *ConfluenceConfiguration) SetSecretArn(v string) *ConfluenceConfiguration {
6102	s.SecretArn = &v
6103	return s
6104}
6105
6106// SetServerUrl sets the ServerUrl field's value.
6107func (s *ConfluenceConfiguration) SetServerUrl(v string) *ConfluenceConfiguration {
6108	s.ServerUrl = &v
6109	return s
6110}
6111
6112// SetSpaceConfiguration sets the SpaceConfiguration field's value.
6113func (s *ConfluenceConfiguration) SetSpaceConfiguration(v *ConfluenceSpaceConfiguration) *ConfluenceConfiguration {
6114	s.SpaceConfiguration = v
6115	return s
6116}
6117
6118// SetVersion sets the Version field's value.
6119func (s *ConfluenceConfiguration) SetVersion(v string) *ConfluenceConfiguration {
6120	s.Version = &v
6121	return s
6122}
6123
6124// SetVpcConfiguration sets the VpcConfiguration field's value.
6125func (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.
6131type 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".
6148func (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".
6157func (s ConfluencePageConfiguration) GoString() string {
6158	return s.String()
6159}
6160
6161// Validate inspects the fields of the type to determine if they are valid.
6162func (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.
6185func (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.
6194type 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".
6215func (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".
6224func (s ConfluencePageToIndexFieldMapping) GoString() string {
6225	return s.String()
6226}
6227
6228// Validate inspects the fields of the type to determine if they are valid.
6229func (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.
6245func (s *ConfluencePageToIndexFieldMapping) SetDataSourceFieldName(v string) *ConfluencePageToIndexFieldMapping {
6246	s.DataSourceFieldName = &v
6247	return s
6248}
6249
6250// SetDateFieldFormat sets the DateFieldFormat field's value.
6251func (s *ConfluencePageToIndexFieldMapping) SetDateFieldFormat(v string) *ConfluencePageToIndexFieldMapping {
6252	s.DateFieldFormat = &v
6253	return s
6254}
6255
6256// SetIndexFieldName sets the IndexFieldName field's value.
6257func (s *ConfluencePageToIndexFieldMapping) SetIndexFieldName(v string) *ConfluencePageToIndexFieldMapping {
6258	s.IndexFieldName = &v
6259	return s
6260}
6261
6262// Specifies the configuration for indexing Confluence spaces.
6263type 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".
6302func (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".
6311func (s ConfluenceSpaceConfiguration) GoString() string {
6312	return s.String()
6313}
6314
6315// Validate inspects the fields of the type to determine if they are valid.
6316func (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.
6345func (s *ConfluenceSpaceConfiguration) SetCrawlArchivedSpaces(v bool) *ConfluenceSpaceConfiguration {
6346	s.CrawlArchivedSpaces = &v
6347	return s
6348}
6349
6350// SetCrawlPersonalSpaces sets the CrawlPersonalSpaces field's value.
6351func (s *ConfluenceSpaceConfiguration) SetCrawlPersonalSpaces(v bool) *ConfluenceSpaceConfiguration {
6352	s.CrawlPersonalSpaces = &v
6353	return s
6354}
6355
6356// SetExcludeSpaces sets the ExcludeSpaces field's value.
6357func (s *ConfluenceSpaceConfiguration) SetExcludeSpaces(v []*string) *ConfluenceSpaceConfiguration {
6358	s.ExcludeSpaces = v
6359	return s
6360}
6361
6362// SetIncludeSpaces sets the IncludeSpaces field's value.
6363func (s *ConfluenceSpaceConfiguration) SetIncludeSpaces(v []*string) *ConfluenceSpaceConfiguration {
6364	s.IncludeSpaces = v
6365	return s
6366}
6367
6368// SetSpaceFieldMappings sets the SpaceFieldMappings field's value.
6369func (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.
6378type 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".
6399func (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".
6408func (s ConfluenceSpaceToIndexFieldMapping) GoString() string {
6409	return s.String()
6410}
6411
6412// Validate inspects the fields of the type to determine if they are valid.
6413func (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.
6429func (s *ConfluenceSpaceToIndexFieldMapping) SetDataSourceFieldName(v string) *ConfluenceSpaceToIndexFieldMapping {
6430	s.DataSourceFieldName = &v
6431	return s
6432}
6433
6434// SetDateFieldFormat sets the DateFieldFormat field's value.
6435func (s *ConfluenceSpaceToIndexFieldMapping) SetDateFieldFormat(v string) *ConfluenceSpaceToIndexFieldMapping {
6436	s.DateFieldFormat = &v
6437	return s
6438}
6439
6440// SetIndexFieldName sets the IndexFieldName field's value.
6441func (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.
6447type 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".
6486func (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".
6495func (s ConnectionConfiguration) GoString() string {
6496	return s.String()
6497}
6498
6499// Validate inspects the fields of the type to determine if they are valid.
6500func (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.
6540func (s *ConnectionConfiguration) SetDatabaseHost(v string) *ConnectionConfiguration {
6541	s.DatabaseHost = &v
6542	return s
6543}
6544
6545// SetDatabaseName sets the DatabaseName field's value.
6546func (s *ConnectionConfiguration) SetDatabaseName(v string) *ConnectionConfiguration {
6547	s.DatabaseName = &v
6548	return s
6549}
6550
6551// SetDatabasePort sets the DatabasePort field's value.
6552func (s *ConnectionConfiguration) SetDatabasePort(v int64) *ConnectionConfiguration {
6553	s.DatabasePort = &v
6554	return s
6555}
6556
6557// SetSecretArn sets the SecretArn field's value.
6558func (s *ConnectionConfiguration) SetSecretArn(v string) *ConnectionConfiguration {
6559	s.SecretArn = &v
6560	return s
6561}
6562
6563// SetTableName sets the TableName field's value.
6564func (s *ConnectionConfiguration) SetTableName(v string) *ConnectionConfiguration {
6565	s.TableName = &v
6566	return s
6567}
6568
6569type 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".
6638func (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".
6647func (s CreateDataSourceInput) GoString() string {
6648	return s.String()
6649}
6650
6651// Validate inspects the fields of the type to determine if they are valid.
6652func (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.
6701func (s *CreateDataSourceInput) SetClientToken(v string) *CreateDataSourceInput {
6702	s.ClientToken = &v
6703	return s
6704}
6705
6706// SetConfiguration sets the Configuration field's value.
6707func (s *CreateDataSourceInput) SetConfiguration(v *DataSourceConfiguration) *CreateDataSourceInput {
6708	s.Configuration = v
6709	return s
6710}
6711
6712// SetDescription sets the Description field's value.
6713func (s *CreateDataSourceInput) SetDescription(v string) *CreateDataSourceInput {
6714	s.Description = &v
6715	return s
6716}
6717
6718// SetIndexId sets the IndexId field's value.
6719func (s *CreateDataSourceInput) SetIndexId(v string) *CreateDataSourceInput {
6720	s.IndexId = &v
6721	return s
6722}
6723
6724// SetLanguageCode sets the LanguageCode field's value.
6725func (s *CreateDataSourceInput) SetLanguageCode(v string) *CreateDataSourceInput {
6726	s.LanguageCode = &v
6727	return s
6728}
6729
6730// SetName sets the Name field's value.
6731func (s *CreateDataSourceInput) SetName(v string) *CreateDataSourceInput {
6732	s.Name = &v
6733	return s
6734}
6735
6736// SetRoleArn sets the RoleArn field's value.
6737func (s *CreateDataSourceInput) SetRoleArn(v string) *CreateDataSourceInput {
6738	s.RoleArn = &v
6739	return s
6740}
6741
6742// SetSchedule sets the Schedule field's value.
6743func (s *CreateDataSourceInput) SetSchedule(v string) *CreateDataSourceInput {
6744	s.Schedule = &v
6745	return s
6746}
6747
6748// SetTags sets the Tags field's value.
6749func (s *CreateDataSourceInput) SetTags(v []*Tag) *CreateDataSourceInput {
6750	s.Tags = v
6751	return s
6752}
6753
6754// SetType sets the Type field's value.
6755func (s *CreateDataSourceInput) SetType(v string) *CreateDataSourceInput {
6756	s.Type = &v
6757	return s
6758}
6759
6760type 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".
6774func (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".
6783func (s CreateDataSourceOutput) GoString() string {
6784	return s.String()
6785}
6786
6787// SetId sets the Id field's value.
6788func (s *CreateDataSourceOutput) SetId(v string) *CreateDataSourceOutput {
6789	s.Id = &v
6790	return s
6791}
6792
6793type 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".
6852func (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".
6861func (s CreateFaqInput) GoString() string {
6862	return s.String()
6863}
6864
6865// Validate inspects the fields of the type to determine if they are valid.
6866func (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.
6918func (s *CreateFaqInput) SetClientToken(v string) *CreateFaqInput {
6919	s.ClientToken = &v
6920	return s
6921}
6922
6923// SetDescription sets the Description field's value.
6924func (s *CreateFaqInput) SetDescription(v string) *CreateFaqInput {
6925	s.Description = &v
6926	return s
6927}
6928
6929// SetFileFormat sets the FileFormat field's value.
6930func (s *CreateFaqInput) SetFileFormat(v string) *CreateFaqInput {
6931	s.FileFormat = &v
6932	return s
6933}
6934
6935// SetIndexId sets the IndexId field's value.
6936func (s *CreateFaqInput) SetIndexId(v string) *CreateFaqInput {
6937	s.IndexId = &v
6938	return s
6939}
6940
6941// SetLanguageCode sets the LanguageCode field's value.
6942func (s *CreateFaqInput) SetLanguageCode(v string) *CreateFaqInput {
6943	s.LanguageCode = &v
6944	return s
6945}
6946
6947// SetName sets the Name field's value.
6948func (s *CreateFaqInput) SetName(v string) *CreateFaqInput {
6949	s.Name = &v
6950	return s
6951}
6952
6953// SetRoleArn sets the RoleArn field's value.
6954func (s *CreateFaqInput) SetRoleArn(v string) *CreateFaqInput {
6955	s.RoleArn = &v
6956	return s
6957}
6958
6959// SetS3Path sets the S3Path field's value.
6960func (s *CreateFaqInput) SetS3Path(v *S3Path) *CreateFaqInput {
6961	s.S3Path = v
6962	return s
6963}
6964
6965// SetTags sets the Tags field's value.
6966func (s *CreateFaqInput) SetTags(v []*Tag) *CreateFaqInput {
6967	s.Tags = v
6968	return s
6969}
6970
6971type 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".
6983func (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".
6992func (s CreateFaqOutput) GoString() string {
6993	return s.String()
6994}
6995
6996// SetId sets the Id field's value.
6997func (s *CreateFaqOutput) SetId(v string) *CreateFaqOutput {
6998	s.Id = &v
6999	return s
7000}
7001
7002type 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".
7076func (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".
7085func (s CreateIndexInput) GoString() string {
7086	return s.String()
7087}
7088
7089// Validate inspects the fields of the type to determine if they are valid.
7090func (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.
7145func (s *CreateIndexInput) SetClientToken(v string) *CreateIndexInput {
7146	s.ClientToken = &v
7147	return s
7148}
7149
7150// SetDescription sets the Description field's value.
7151func (s *CreateIndexInput) SetDescription(v string) *CreateIndexInput {
7152	s.Description = &v
7153	return s
7154}
7155
7156// SetEdition sets the Edition field's value.
7157func (s *CreateIndexInput) SetEdition(v string) *CreateIndexInput {
7158	s.Edition = &v
7159	return s
7160}
7161
7162// SetName sets the Name field's value.
7163func (s *CreateIndexInput) SetName(v string) *CreateIndexInput {
7164	s.Name = &v
7165	return s
7166}
7167
7168// SetRoleArn sets the RoleArn field's value.
7169func (s *CreateIndexInput) SetRoleArn(v string) *CreateIndexInput {
7170	s.RoleArn = &v
7171	return s
7172}
7173
7174// SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value.
7175func (s *CreateIndexInput) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *CreateIndexInput {
7176	s.ServerSideEncryptionConfiguration = v
7177	return s
7178}
7179
7180// SetTags sets the Tags field's value.
7181func (s *CreateIndexInput) SetTags(v []*Tag) *CreateIndexInput {
7182	s.Tags = v
7183	return s
7184}
7185
7186// SetUserContextPolicy sets the UserContextPolicy field's value.
7187func (s *CreateIndexInput) SetUserContextPolicy(v string) *CreateIndexInput {
7188	s.UserContextPolicy = &v
7189	return s
7190}
7191
7192// SetUserGroupResolutionConfiguration sets the UserGroupResolutionConfiguration field's value.
7193func (s *CreateIndexInput) SetUserGroupResolutionConfiguration(v *UserGroupResolutionConfiguration) *CreateIndexInput {
7194	s.UserGroupResolutionConfiguration = v
7195	return s
7196}
7197
7198// SetUserTokenConfigurations sets the UserTokenConfigurations field's value.
7199func (s *CreateIndexInput) SetUserTokenConfigurations(v []*UserTokenConfiguration) *CreateIndexInput {
7200	s.UserTokenConfigurations = v
7201	return s
7202}
7203
7204type 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".
7217func (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".
7226func (s CreateIndexOutput) GoString() string {
7227	return s.String()
7228}
7229
7230// SetId sets the Id field's value.
7231func (s *CreateIndexOutput) SetId(v string) *CreateIndexOutput {
7232	s.Id = &v
7233	return s
7234}
7235
7236type 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".
7292func (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".
7301func (s CreateQuerySuggestionsBlockListInput) GoString() string {
7302	return s.String()
7303}
7304
7305// Validate inspects the fields of the type to determine if they are valid.
7306func (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.
7355func (s *CreateQuerySuggestionsBlockListInput) SetClientToken(v string) *CreateQuerySuggestionsBlockListInput {
7356	s.ClientToken = &v
7357	return s
7358}
7359
7360// SetDescription sets the Description field's value.
7361func (s *CreateQuerySuggestionsBlockListInput) SetDescription(v string) *CreateQuerySuggestionsBlockListInput {
7362	s.Description = &v
7363	return s
7364}
7365
7366// SetIndexId sets the IndexId field's value.
7367func (s *CreateQuerySuggestionsBlockListInput) SetIndexId(v string) *CreateQuerySuggestionsBlockListInput {
7368	s.IndexId = &v
7369	return s
7370}
7371
7372// SetName sets the Name field's value.
7373func (s *CreateQuerySuggestionsBlockListInput) SetName(v string) *CreateQuerySuggestionsBlockListInput {
7374	s.Name = &v
7375	return s
7376}
7377
7378// SetRoleArn sets the RoleArn field's value.
7379func (s *CreateQuerySuggestionsBlockListInput) SetRoleArn(v string) *CreateQuerySuggestionsBlockListInput {
7380	s.RoleArn = &v
7381	return s
7382}
7383
7384// SetSourceS3Path sets the SourceS3Path field's value.
7385func (s *CreateQuerySuggestionsBlockListInput) SetSourceS3Path(v *S3Path) *CreateQuerySuggestionsBlockListInput {
7386	s.SourceS3Path = v
7387	return s
7388}
7389
7390// SetTags sets the Tags field's value.
7391func (s *CreateQuerySuggestionsBlockListInput) SetTags(v []*Tag) *CreateQuerySuggestionsBlockListInput {
7392	s.Tags = v
7393	return s
7394}
7395
7396type 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".
7408func (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".
7417func (s CreateQuerySuggestionsBlockListOutput) GoString() string {
7418	return s.String()
7419}
7420
7421// SetId sets the Id field's value.
7422func (s *CreateQuerySuggestionsBlockListOutput) SetId(v string) *CreateQuerySuggestionsBlockListOutput {
7423	s.Id = &v
7424	return s
7425}
7426
7427type 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".
7469func (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".
7478func (s CreateThesaurusInput) GoString() string {
7479	return s.String()
7480}
7481
7482// Validate inspects the fields of the type to determine if they are valid.
7483func (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.
7532func (s *CreateThesaurusInput) SetClientToken(v string) *CreateThesaurusInput {
7533	s.ClientToken = &v
7534	return s
7535}
7536
7537// SetDescription sets the Description field's value.
7538func (s *CreateThesaurusInput) SetDescription(v string) *CreateThesaurusInput {
7539	s.Description = &v
7540	return s
7541}
7542
7543// SetIndexId sets the IndexId field's value.
7544func (s *CreateThesaurusInput) SetIndexId(v string) *CreateThesaurusInput {
7545	s.IndexId = &v
7546	return s
7547}
7548
7549// SetName sets the Name field's value.
7550func (s *CreateThesaurusInput) SetName(v string) *CreateThesaurusInput {
7551	s.Name = &v
7552	return s
7553}
7554
7555// SetRoleArn sets the RoleArn field's value.
7556func (s *CreateThesaurusInput) SetRoleArn(v string) *CreateThesaurusInput {
7557	s.RoleArn = &v
7558	return s
7559}
7560
7561// SetSourceS3Path sets the SourceS3Path field's value.
7562func (s *CreateThesaurusInput) SetSourceS3Path(v *S3Path) *CreateThesaurusInput {
7563	s.SourceS3Path = v
7564	return s
7565}
7566
7567// SetTags sets the Tags field's value.
7568func (s *CreateThesaurusInput) SetTags(v []*Tag) *CreateThesaurusInput {
7569	s.Tags = v
7570	return s
7571}
7572
7573type 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".
7585func (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".
7594func (s CreateThesaurusOutput) GoString() string {
7595	return s.String()
7596}
7597
7598// SetId sets the Id field's value.
7599func (s *CreateThesaurusOutput) SetId(v string) *CreateThesaurusOutput {
7600	s.Id = &v
7601	return s
7602}
7603
7604// Configuration information for a Amazon Kendra data source.
7605type 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".
7648func (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".
7657func (s DataSourceConfiguration) GoString() string {
7658	return s.String()
7659}
7660
7661// Validate inspects the fields of the type to determine if they are valid.
7662func (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.
7722func (s *DataSourceConfiguration) SetConfluenceConfiguration(v *ConfluenceConfiguration) *DataSourceConfiguration {
7723	s.ConfluenceConfiguration = v
7724	return s
7725}
7726
7727// SetDatabaseConfiguration sets the DatabaseConfiguration field's value.
7728func (s *DataSourceConfiguration) SetDatabaseConfiguration(v *DatabaseConfiguration) *DataSourceConfiguration {
7729	s.DatabaseConfiguration = v
7730	return s
7731}
7732
7733// SetGoogleDriveConfiguration sets the GoogleDriveConfiguration field's value.
7734func (s *DataSourceConfiguration) SetGoogleDriveConfiguration(v *GoogleDriveConfiguration) *DataSourceConfiguration {
7735	s.GoogleDriveConfiguration = v
7736	return s
7737}
7738
7739// SetOneDriveConfiguration sets the OneDriveConfiguration field's value.
7740func (s *DataSourceConfiguration) SetOneDriveConfiguration(v *OneDriveConfiguration) *DataSourceConfiguration {
7741	s.OneDriveConfiguration = v
7742	return s
7743}
7744
7745// SetS3Configuration sets the S3Configuration field's value.
7746func (s *DataSourceConfiguration) SetS3Configuration(v *S3DataSourceConfiguration) *DataSourceConfiguration {
7747	s.S3Configuration = v
7748	return s
7749}
7750
7751// SetSalesforceConfiguration sets the SalesforceConfiguration field's value.
7752func (s *DataSourceConfiguration) SetSalesforceConfiguration(v *SalesforceConfiguration) *DataSourceConfiguration {
7753	s.SalesforceConfiguration = v
7754	return s
7755}
7756
7757// SetServiceNowConfiguration sets the ServiceNowConfiguration field's value.
7758func (s *DataSourceConfiguration) SetServiceNowConfiguration(v *ServiceNowConfiguration) *DataSourceConfiguration {
7759	s.ServiceNowConfiguration = v
7760	return s
7761}
7762
7763// SetSharePointConfiguration sets the SharePointConfiguration field's value.
7764func (s *DataSourceConfiguration) SetSharePointConfiguration(v *SharePointConfiguration) *DataSourceConfiguration {
7765	s.SharePointConfiguration = v
7766	return s
7767}
7768
7769// SetWebCrawlerConfiguration sets the WebCrawlerConfiguration field's value.
7770func (s *DataSourceConfiguration) SetWebCrawlerConfiguration(v *WebCrawlerConfiguration) *DataSourceConfiguration {
7771	s.WebCrawlerConfiguration = v
7772	return s
7773}
7774
7775// SetWorkDocsConfiguration sets the WorkDocsConfiguration field's value.
7776func (s *DataSourceConfiguration) SetWorkDocsConfiguration(v *WorkDocsConfiguration) *DataSourceConfiguration {
7777	s.WorkDocsConfiguration = v
7778	return s
7779}
7780
7781// Data source information for user context filtering.
7782type 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".
7804func (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".
7813func (s DataSourceGroup) GoString() string {
7814	return s.String()
7815}
7816
7817// Validate inspects the fields of the type to determine if they are valid.
7818func (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.
7840func (s *DataSourceGroup) SetDataSourceId(v string) *DataSourceGroup {
7841	s.DataSourceId = &v
7842	return s
7843}
7844
7845// SetGroupId sets the GroupId field's value.
7846func (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.
7853type 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".
7887func (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".
7896func (s DataSourceSummary) GoString() string {
7897	return s.String()
7898}
7899
7900// SetCreatedAt sets the CreatedAt field's value.
7901func (s *DataSourceSummary) SetCreatedAt(v time.Time) *DataSourceSummary {
7902	s.CreatedAt = &v
7903	return s
7904}
7905
7906// SetId sets the Id field's value.
7907func (s *DataSourceSummary) SetId(v string) *DataSourceSummary {
7908	s.Id = &v
7909	return s
7910}
7911
7912// SetLanguageCode sets the LanguageCode field's value.
7913func (s *DataSourceSummary) SetLanguageCode(v string) *DataSourceSummary {
7914	s.LanguageCode = &v
7915	return s
7916}
7917
7918// SetName sets the Name field's value.
7919func (s *DataSourceSummary) SetName(v string) *DataSourceSummary {
7920	s.Name = &v
7921	return s
7922}
7923
7924// SetStatus sets the Status field's value.
7925func (s *DataSourceSummary) SetStatus(v string) *DataSourceSummary {
7926	s.Status = &v
7927	return s
7928}
7929
7930// SetType sets the Type field's value.
7931func (s *DataSourceSummary) SetType(v string) *DataSourceSummary {
7932	s.Type = &v
7933	return s
7934}
7935
7936// SetUpdatedAt sets the UpdatedAt field's value.
7937func (s *DataSourceSummary) SetUpdatedAt(v time.Time) *DataSourceSummary {
7938	s.UpdatedAt = &v
7939	return s
7940}
7941
7942// Provides information about a synchronization job.
7943type 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".
7984func (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".
7993func (s DataSourceSyncJob) GoString() string {
7994	return s.String()
7995}
7996
7997// SetDataSourceErrorCode sets the DataSourceErrorCode field's value.
7998func (s *DataSourceSyncJob) SetDataSourceErrorCode(v string) *DataSourceSyncJob {
7999	s.DataSourceErrorCode = &v
8000	return s
8001}
8002
8003// SetEndTime sets the EndTime field's value.
8004func (s *DataSourceSyncJob) SetEndTime(v time.Time) *DataSourceSyncJob {
8005	s.EndTime = &v
8006	return s
8007}
8008
8009// SetErrorCode sets the ErrorCode field's value.
8010func (s *DataSourceSyncJob) SetErrorCode(v string) *DataSourceSyncJob {
8011	s.ErrorCode = &v
8012	return s
8013}
8014
8015// SetErrorMessage sets the ErrorMessage field's value.
8016func (s *DataSourceSyncJob) SetErrorMessage(v string) *DataSourceSyncJob {
8017	s.ErrorMessage = &v
8018	return s
8019}
8020
8021// SetExecutionId sets the ExecutionId field's value.
8022func (s *DataSourceSyncJob) SetExecutionId(v string) *DataSourceSyncJob {
8023	s.ExecutionId = &v
8024	return s
8025}
8026
8027// SetMetrics sets the Metrics field's value.
8028func (s *DataSourceSyncJob) SetMetrics(v *DataSourceSyncJobMetrics) *DataSourceSyncJob {
8029	s.Metrics = v
8030	return s
8031}
8032
8033// SetStartTime sets the StartTime field's value.
8034func (s *DataSourceSyncJob) SetStartTime(v time.Time) *DataSourceSyncJob {
8035	s.StartTime = &v
8036	return s
8037}
8038
8039// SetStatus sets the Status field's value.
8040func (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.
8046type 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".
8071func (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".
8080func (s DataSourceSyncJobMetricTarget) GoString() string {
8081	return s.String()
8082}
8083
8084// Validate inspects the fields of the type to determine if they are valid.
8085func (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.
8104func (s *DataSourceSyncJobMetricTarget) SetDataSourceId(v string) *DataSourceSyncJobMetricTarget {
8105	s.DataSourceId = &v
8106	return s
8107}
8108
8109// SetDataSourceSyncJobId sets the DataSourceSyncJobId field's value.
8110func (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.
8118type 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".
8147func (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".
8156func (s DataSourceSyncJobMetrics) GoString() string {
8157	return s.String()
8158}
8159
8160// SetDocumentsAdded sets the DocumentsAdded field's value.
8161func (s *DataSourceSyncJobMetrics) SetDocumentsAdded(v string) *DataSourceSyncJobMetrics {
8162	s.DocumentsAdded = &v
8163	return s
8164}
8165
8166// SetDocumentsDeleted sets the DocumentsDeleted field's value.
8167func (s *DataSourceSyncJobMetrics) SetDocumentsDeleted(v string) *DataSourceSyncJobMetrics {
8168	s.DocumentsDeleted = &v
8169	return s
8170}
8171
8172// SetDocumentsFailed sets the DocumentsFailed field's value.
8173func (s *DataSourceSyncJobMetrics) SetDocumentsFailed(v string) *DataSourceSyncJobMetrics {
8174	s.DocumentsFailed = &v
8175	return s
8176}
8177
8178// SetDocumentsModified sets the DocumentsModified field's value.
8179func (s *DataSourceSyncJobMetrics) SetDocumentsModified(v string) *DataSourceSyncJobMetrics {
8180	s.DocumentsModified = &v
8181	return s
8182}
8183
8184// SetDocumentsScanned sets the DocumentsScanned field's value.
8185func (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.
8192type 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".
8214func (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".
8223func (s DataSourceToIndexFieldMapping) GoString() string {
8224	return s.String()
8225}
8226
8227// Validate inspects the fields of the type to determine if they are valid.
8228func (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.
8253func (s *DataSourceToIndexFieldMapping) SetDataSourceFieldName(v string) *DataSourceToIndexFieldMapping {
8254	s.DataSourceFieldName = &v
8255	return s
8256}
8257
8258// SetDateFieldFormat sets the DateFieldFormat field's value.
8259func (s *DataSourceToIndexFieldMapping) SetDateFieldFormat(v string) *DataSourceToIndexFieldMapping {
8260	s.DateFieldFormat = &v
8261	return s
8262}
8263
8264// SetIndexFieldName sets the IndexFieldName field's value.
8265func (s *DataSourceToIndexFieldMapping) SetIndexFieldName(v string) *DataSourceToIndexFieldMapping {
8266	s.IndexFieldName = &v
8267	return s
8268}
8269
8270// Provides information for connecting to an Amazon VPC.
8271type 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".
8293func (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".
8302func (s DataSourceVpcConfiguration) GoString() string {
8303	return s.String()
8304}
8305
8306// Validate inspects the fields of the type to determine if they are valid.
8307func (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.
8329func (s *DataSourceVpcConfiguration) SetSecurityGroupIds(v []*string) *DataSourceVpcConfiguration {
8330	s.SecurityGroupIds = v
8331	return s
8332}
8333
8334// SetSubnetIds sets the SubnetIds field's value.
8335func (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.
8341type 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".
8377func (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".
8386func (s DatabaseConfiguration) GoString() string {
8387	return s.String()
8388}
8389
8390// Validate inspects the fields of the type to determine if they are valid.
8391func (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.
8430func (s *DatabaseConfiguration) SetAclConfiguration(v *AclConfiguration) *DatabaseConfiguration {
8431	s.AclConfiguration = v
8432	return s
8433}
8434
8435// SetColumnConfiguration sets the ColumnConfiguration field's value.
8436func (s *DatabaseConfiguration) SetColumnConfiguration(v *ColumnConfiguration) *DatabaseConfiguration {
8437	s.ColumnConfiguration = v
8438	return s
8439}
8440
8441// SetConnectionConfiguration sets the ConnectionConfiguration field's value.
8442func (s *DatabaseConfiguration) SetConnectionConfiguration(v *ConnectionConfiguration) *DatabaseConfiguration {
8443	s.ConnectionConfiguration = v
8444	return s
8445}
8446
8447// SetDatabaseEngineType sets the DatabaseEngineType field's value.
8448func (s *DatabaseConfiguration) SetDatabaseEngineType(v string) *DatabaseConfiguration {
8449	s.DatabaseEngineType = &v
8450	return s
8451}
8452
8453// SetSqlConfiguration sets the SqlConfiguration field's value.
8454func (s *DatabaseConfiguration) SetSqlConfiguration(v *SqlConfiguration) *DatabaseConfiguration {
8455	s.SqlConfiguration = v
8456	return s
8457}
8458
8459// SetVpcConfiguration sets the VpcConfiguration field's value.
8460func (s *DatabaseConfiguration) SetVpcConfiguration(v *DataSourceVpcConfiguration) *DatabaseConfiguration {
8461	s.VpcConfiguration = v
8462	return s
8463}
8464
8465type 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".
8484func (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".
8493func (s DeleteDataSourceInput) GoString() string {
8494	return s.String()
8495}
8496
8497// Validate inspects the fields of the type to determine if they are valid.
8498func (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.
8520func (s *DeleteDataSourceInput) SetId(v string) *DeleteDataSourceInput {
8521	s.Id = &v
8522	return s
8523}
8524
8525// SetIndexId sets the IndexId field's value.
8526func (s *DeleteDataSourceInput) SetIndexId(v string) *DeleteDataSourceInput {
8527	s.IndexId = &v
8528	return s
8529}
8530
8531type 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".
8540func (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".
8549func (s DeleteDataSourceOutput) GoString() string {
8550	return s.String()
8551}
8552
8553type 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".
8572func (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".
8581func (s DeleteFaqInput) GoString() string {
8582	return s.String()
8583}
8584
8585// Validate inspects the fields of the type to determine if they are valid.
8586func (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.
8608func (s *DeleteFaqInput) SetId(v string) *DeleteFaqInput {
8609	s.Id = &v
8610	return s
8611}
8612
8613// SetIndexId sets the IndexId field's value.
8614func (s *DeleteFaqInput) SetIndexId(v string) *DeleteFaqInput {
8615	s.IndexId = &v
8616	return s
8617}
8618
8619type 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".
8628func (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".
8637func (s DeleteFaqOutput) GoString() string {
8638	return s.String()
8639}
8640
8641type 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".
8655func (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".
8664func (s DeleteIndexInput) GoString() string {
8665	return s.String()
8666}
8667
8668// Validate inspects the fields of the type to determine if they are valid.
8669func (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.
8685func (s *DeleteIndexInput) SetId(v string) *DeleteIndexInput {
8686	s.Id = &v
8687	return s
8688}
8689
8690type 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".
8699func (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".
8708func (s DeleteIndexOutput) GoString() string {
8709	return s.String()
8710}
8711
8712type 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".
8759func (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".
8768func (s DeletePrincipalMappingInput) GoString() string {
8769	return s.String()
8770}
8771
8772// Validate inspects the fields of the type to determine if they are valid.
8773func (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.
8798func (s *DeletePrincipalMappingInput) SetDataSourceId(v string) *DeletePrincipalMappingInput {
8799	s.DataSourceId = &v
8800	return s
8801}
8802
8803// SetGroupId sets the GroupId field's value.
8804func (s *DeletePrincipalMappingInput) SetGroupId(v string) *DeletePrincipalMappingInput {
8805	s.GroupId = &v
8806	return s
8807}
8808
8809// SetIndexId sets the IndexId field's value.
8810func (s *DeletePrincipalMappingInput) SetIndexId(v string) *DeletePrincipalMappingInput {
8811	s.IndexId = &v
8812	return s
8813}
8814
8815// SetOrderingId sets the OrderingId field's value.
8816func (s *DeletePrincipalMappingInput) SetOrderingId(v int64) *DeletePrincipalMappingInput {
8817	s.OrderingId = &v
8818	return s
8819}
8820
8821type 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".
8830func (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".
8839func (s DeletePrincipalMappingOutput) GoString() string {
8840	return s.String()
8841}
8842
8843type 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".
8862func (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".
8871func (s DeleteQuerySuggestionsBlockListInput) GoString() string {
8872	return s.String()
8873}
8874
8875// Validate inspects the fields of the type to determine if they are valid.
8876func (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.
8898func (s *DeleteQuerySuggestionsBlockListInput) SetId(v string) *DeleteQuerySuggestionsBlockListInput {
8899	s.Id = &v
8900	return s
8901}
8902
8903// SetIndexId sets the IndexId field's value.
8904func (s *DeleteQuerySuggestionsBlockListInput) SetIndexId(v string) *DeleteQuerySuggestionsBlockListInput {
8905	s.IndexId = &v
8906	return s
8907}
8908
8909type 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".
8918func (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".
8927func (s DeleteQuerySuggestionsBlockListOutput) GoString() string {
8928	return s.String()
8929}
8930
8931type 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".
8950func (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".
8959func (s DeleteThesaurusInput) GoString() string {
8960	return s.String()
8961}
8962
8963// Validate inspects the fields of the type to determine if they are valid.
8964func (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.
8986func (s *DeleteThesaurusInput) SetId(v string) *DeleteThesaurusInput {
8987	s.Id = &v
8988	return s
8989}
8990
8991// SetIndexId sets the IndexId field's value.
8992func (s *DeleteThesaurusInput) SetIndexId(v string) *DeleteThesaurusInput {
8993	s.IndexId = &v
8994	return s
8995}
8996
8997type 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".
9006func (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".
9015func (s DeleteThesaurusOutput) GoString() string {
9016	return s.String()
9017}
9018
9019type 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".
9038func (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".
9047func (s DescribeDataSourceInput) GoString() string {
9048	return s.String()
9049}
9050
9051// Validate inspects the fields of the type to determine if they are valid.
9052func (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.
9074func (s *DescribeDataSourceInput) SetId(v string) *DescribeDataSourceInput {
9075	s.Id = &v
9076	return s
9077}
9078
9079// SetIndexId sets the IndexId field's value.
9080func (s *DescribeDataSourceInput) SetIndexId(v string) *DescribeDataSourceInput {
9081	s.IndexId = &v
9082	return s
9083}
9084
9085type 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".
9142func (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".
9151func (s DescribeDataSourceOutput) GoString() string {
9152	return s.String()
9153}
9154
9155// SetConfiguration sets the Configuration field's value.
9156func (s *DescribeDataSourceOutput) SetConfiguration(v *DataSourceConfiguration) *DescribeDataSourceOutput {
9157	s.Configuration = v
9158	return s
9159}
9160
9161// SetCreatedAt sets the CreatedAt field's value.
9162func (s *DescribeDataSourceOutput) SetCreatedAt(v time.Time) *DescribeDataSourceOutput {
9163	s.CreatedAt = &v
9164	return s
9165}
9166
9167// SetDescription sets the Description field's value.
9168func (s *DescribeDataSourceOutput) SetDescription(v string) *DescribeDataSourceOutput {
9169	s.Description = &v
9170	return s
9171}
9172
9173// SetErrorMessage sets the ErrorMessage field's value.
9174func (s *DescribeDataSourceOutput) SetErrorMessage(v string) *DescribeDataSourceOutput {
9175	s.ErrorMessage = &v
9176	return s
9177}
9178
9179// SetId sets the Id field's value.
9180func (s *DescribeDataSourceOutput) SetId(v string) *DescribeDataSourceOutput {
9181	s.Id = &v
9182	return s
9183}
9184
9185// SetIndexId sets the IndexId field's value.
9186func (s *DescribeDataSourceOutput) SetIndexId(v string) *DescribeDataSourceOutput {
9187	s.IndexId = &v
9188	return s
9189}
9190
9191// SetLanguageCode sets the LanguageCode field's value.
9192func (s *DescribeDataSourceOutput) SetLanguageCode(v string) *DescribeDataSourceOutput {
9193	s.LanguageCode = &v
9194	return s
9195}
9196
9197// SetName sets the Name field's value.
9198func (s *DescribeDataSourceOutput) SetName(v string) *DescribeDataSourceOutput {
9199	s.Name = &v
9200	return s
9201}
9202
9203// SetRoleArn sets the RoleArn field's value.
9204func (s *DescribeDataSourceOutput) SetRoleArn(v string) *DescribeDataSourceOutput {
9205	s.RoleArn = &v
9206	return s
9207}
9208
9209// SetSchedule sets the Schedule field's value.
9210func (s *DescribeDataSourceOutput) SetSchedule(v string) *DescribeDataSourceOutput {
9211	s.Schedule = &v
9212	return s
9213}
9214
9215// SetStatus sets the Status field's value.
9216func (s *DescribeDataSourceOutput) SetStatus(v string) *DescribeDataSourceOutput {
9217	s.Status = &v
9218	return s
9219}
9220
9221// SetType sets the Type field's value.
9222func (s *DescribeDataSourceOutput) SetType(v string) *DescribeDataSourceOutput {
9223	s.Type = &v
9224	return s
9225}
9226
9227// SetUpdatedAt sets the UpdatedAt field's value.
9228func (s *DescribeDataSourceOutput) SetUpdatedAt(v time.Time) *DescribeDataSourceOutput {
9229	s.UpdatedAt = &v
9230	return s
9231}
9232
9233type 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".
9252func (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".
9261func (s DescribeFaqInput) GoString() string {
9262	return s.String()
9263}
9264
9265// Validate inspects the fields of the type to determine if they are valid.
9266func (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.
9288func (s *DescribeFaqInput) SetId(v string) *DescribeFaqInput {
9289	s.Id = &v
9290	return s
9291}
9292
9293// SetIndexId sets the IndexId field's value.
9294func (s *DescribeFaqInput) SetIndexId(v string) *DescribeFaqInput {
9295	s.IndexId = &v
9296	return s
9297}
9298
9299type 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".
9349func (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".
9358func (s DescribeFaqOutput) GoString() string {
9359	return s.String()
9360}
9361
9362// SetCreatedAt sets the CreatedAt field's value.
9363func (s *DescribeFaqOutput) SetCreatedAt(v time.Time) *DescribeFaqOutput {
9364	s.CreatedAt = &v
9365	return s
9366}
9367
9368// SetDescription sets the Description field's value.
9369func (s *DescribeFaqOutput) SetDescription(v string) *DescribeFaqOutput {
9370	s.Description = &v
9371	return s
9372}
9373
9374// SetErrorMessage sets the ErrorMessage field's value.
9375func (s *DescribeFaqOutput) SetErrorMessage(v string) *DescribeFaqOutput {
9376	s.ErrorMessage = &v
9377	return s
9378}
9379
9380// SetFileFormat sets the FileFormat field's value.
9381func (s *DescribeFaqOutput) SetFileFormat(v string) *DescribeFaqOutput {
9382	s.FileFormat = &v
9383	return s
9384}
9385
9386// SetId sets the Id field's value.
9387func (s *DescribeFaqOutput) SetId(v string) *DescribeFaqOutput {
9388	s.Id = &v
9389	return s
9390}
9391
9392// SetIndexId sets the IndexId field's value.
9393func (s *DescribeFaqOutput) SetIndexId(v string) *DescribeFaqOutput {
9394	s.IndexId = &v
9395	return s
9396}
9397
9398// SetLanguageCode sets the LanguageCode field's value.
9399func (s *DescribeFaqOutput) SetLanguageCode(v string) *DescribeFaqOutput {
9400	s.LanguageCode = &v
9401	return s
9402}
9403
9404// SetName sets the Name field's value.
9405func (s *DescribeFaqOutput) SetName(v string) *DescribeFaqOutput {
9406	s.Name = &v
9407	return s
9408}
9409
9410// SetRoleArn sets the RoleArn field's value.
9411func (s *DescribeFaqOutput) SetRoleArn(v string) *DescribeFaqOutput {
9412	s.RoleArn = &v
9413	return s
9414}
9415
9416// SetS3Path sets the S3Path field's value.
9417func (s *DescribeFaqOutput) SetS3Path(v *S3Path) *DescribeFaqOutput {
9418	s.S3Path = v
9419	return s
9420}
9421
9422// SetStatus sets the Status field's value.
9423func (s *DescribeFaqOutput) SetStatus(v string) *DescribeFaqOutput {
9424	s.Status = &v
9425	return s
9426}
9427
9428// SetUpdatedAt sets the UpdatedAt field's value.
9429func (s *DescribeFaqOutput) SetUpdatedAt(v time.Time) *DescribeFaqOutput {
9430	s.UpdatedAt = &v
9431	return s
9432}
9433
9434type 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".
9448func (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".
9457func (s DescribeIndexInput) GoString() string {
9458	return s.String()
9459}
9460
9461// Validate inspects the fields of the type to determine if they are valid.
9462func (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.
9478func (s *DescribeIndexInput) SetId(v string) *DescribeIndexInput {
9479	s.Id = &v
9480	return s
9481}
9482
9483type 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".
9551func (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".
9560func (s DescribeIndexOutput) GoString() string {
9561	return s.String()
9562}
9563
9564// SetCapacityUnits sets the CapacityUnits field's value.
9565func (s *DescribeIndexOutput) SetCapacityUnits(v *CapacityUnitsConfiguration) *DescribeIndexOutput {
9566	s.CapacityUnits = v
9567	return s
9568}
9569
9570// SetCreatedAt sets the CreatedAt field's value.
9571func (s *DescribeIndexOutput) SetCreatedAt(v time.Time) *DescribeIndexOutput {
9572	s.CreatedAt = &v
9573	return s
9574}
9575
9576// SetDescription sets the Description field's value.
9577func (s *DescribeIndexOutput) SetDescription(v string) *DescribeIndexOutput {
9578	s.Description = &v
9579	return s
9580}
9581
9582// SetDocumentMetadataConfigurations sets the DocumentMetadataConfigurations field's value.
9583func (s *DescribeIndexOutput) SetDocumentMetadataConfigurations(v []*DocumentMetadataConfiguration) *DescribeIndexOutput {
9584	s.DocumentMetadataConfigurations = v
9585	return s
9586}
9587
9588// SetEdition sets the Edition field's value.
9589func (s *DescribeIndexOutput) SetEdition(v string) *DescribeIndexOutput {
9590	s.Edition = &v
9591	return s
9592}
9593
9594// SetErrorMessage sets the ErrorMessage field's value.
9595func (s *DescribeIndexOutput) SetErrorMessage(v string) *DescribeIndexOutput {
9596	s.ErrorMessage = &v
9597	return s
9598}
9599
9600// SetId sets the Id field's value.
9601func (s *DescribeIndexOutput) SetId(v string) *DescribeIndexOutput {
9602	s.Id = &v
9603	return s
9604}
9605
9606// SetIndexStatistics sets the IndexStatistics field's value.
9607func (s *DescribeIndexOutput) SetIndexStatistics(v *IndexStatistics) *DescribeIndexOutput {
9608	s.IndexStatistics = v
9609	return s
9610}
9611
9612// SetName sets the Name field's value.
9613func (s *DescribeIndexOutput) SetName(v string) *DescribeIndexOutput {
9614	s.Name = &v
9615	return s
9616}
9617
9618// SetRoleArn sets the RoleArn field's value.
9619func (s *DescribeIndexOutput) SetRoleArn(v string) *DescribeIndexOutput {
9620	s.RoleArn = &v
9621	return s
9622}
9623
9624// SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value.
9625func (s *DescribeIndexOutput) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *DescribeIndexOutput {
9626	s.ServerSideEncryptionConfiguration = v
9627	return s
9628}
9629
9630// SetStatus sets the Status field's value.
9631func (s *DescribeIndexOutput) SetStatus(v string) *DescribeIndexOutput {
9632	s.Status = &v
9633	return s
9634}
9635
9636// SetUpdatedAt sets the UpdatedAt field's value.
9637func (s *DescribeIndexOutput) SetUpdatedAt(v time.Time) *DescribeIndexOutput {
9638	s.UpdatedAt = &v
9639	return s
9640}
9641
9642// SetUserContextPolicy sets the UserContextPolicy field's value.
9643func (s *DescribeIndexOutput) SetUserContextPolicy(v string) *DescribeIndexOutput {
9644	s.UserContextPolicy = &v
9645	return s
9646}
9647
9648// SetUserGroupResolutionConfiguration sets the UserGroupResolutionConfiguration field's value.
9649func (s *DescribeIndexOutput) SetUserGroupResolutionConfiguration(v *UserGroupResolutionConfiguration) *DescribeIndexOutput {
9650	s.UserGroupResolutionConfiguration = v
9651	return s
9652}
9653
9654// SetUserTokenConfigurations sets the UserTokenConfigurations field's value.
9655func (s *DescribeIndexOutput) SetUserTokenConfigurations(v []*UserTokenConfiguration) *DescribeIndexOutput {
9656	s.UserTokenConfigurations = v
9657	return s
9658}
9659
9660type 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".
9685func (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".
9694func (s DescribePrincipalMappingInput) GoString() string {
9695	return s.String()
9696}
9697
9698// Validate inspects the fields of the type to determine if they are valid.
9699func (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.
9724func (s *DescribePrincipalMappingInput) SetDataSourceId(v string) *DescribePrincipalMappingInput {
9725	s.DataSourceId = &v
9726	return s
9727}
9728
9729// SetGroupId sets the GroupId field's value.
9730func (s *DescribePrincipalMappingInput) SetGroupId(v string) *DescribePrincipalMappingInput {
9731	s.GroupId = &v
9732	return s
9733}
9734
9735// SetIndexId sets the IndexId field's value.
9736func (s *DescribePrincipalMappingInput) SetIndexId(v string) *DescribePrincipalMappingInput {
9737	s.IndexId = &v
9738	return s
9739}
9740
9741type 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".
9778func (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".
9787func (s DescribePrincipalMappingOutput) GoString() string {
9788	return s.String()
9789}
9790
9791// SetDataSourceId sets the DataSourceId field's value.
9792func (s *DescribePrincipalMappingOutput) SetDataSourceId(v string) *DescribePrincipalMappingOutput {
9793	s.DataSourceId = &v
9794	return s
9795}
9796
9797// SetGroupId sets the GroupId field's value.
9798func (s *DescribePrincipalMappingOutput) SetGroupId(v string) *DescribePrincipalMappingOutput {
9799	s.GroupId = &v
9800	return s
9801}
9802
9803// SetGroupOrderingIdSummaries sets the GroupOrderingIdSummaries field's value.
9804func (s *DescribePrincipalMappingOutput) SetGroupOrderingIdSummaries(v []*GroupOrderingIdSummary) *DescribePrincipalMappingOutput {
9805	s.GroupOrderingIdSummaries = v
9806	return s
9807}
9808
9809// SetIndexId sets the IndexId field's value.
9810func (s *DescribePrincipalMappingOutput) SetIndexId(v string) *DescribePrincipalMappingOutput {
9811	s.IndexId = &v
9812	return s
9813}
9814
9815type 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".
9834func (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".
9843func (s DescribeQuerySuggestionsBlockListInput) GoString() string {
9844	return s.String()
9845}
9846
9847// Validate inspects the fields of the type to determine if they are valid.
9848func (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.
9870func (s *DescribeQuerySuggestionsBlockListInput) SetId(v string) *DescribeQuerySuggestionsBlockListInput {
9871	s.Id = &v
9872	return s
9873}
9874
9875// SetIndexId sets the IndexId field's value.
9876func (s *DescribeQuerySuggestionsBlockListInput) SetIndexId(v string) *DescribeQuerySuggestionsBlockListInput {
9877	s.IndexId = &v
9878	return s
9879}
9880
9881type 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".
9937func (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".
9946func (s DescribeQuerySuggestionsBlockListOutput) GoString() string {
9947	return s.String()
9948}
9949
9950// SetCreatedAt sets the CreatedAt field's value.
9951func (s *DescribeQuerySuggestionsBlockListOutput) SetCreatedAt(v time.Time) *DescribeQuerySuggestionsBlockListOutput {
9952	s.CreatedAt = &v
9953	return s
9954}
9955
9956// SetDescription sets the Description field's value.
9957func (s *DescribeQuerySuggestionsBlockListOutput) SetDescription(v string) *DescribeQuerySuggestionsBlockListOutput {
9958	s.Description = &v
9959	return s
9960}
9961
9962// SetErrorMessage sets the ErrorMessage field's value.
9963func (s *DescribeQuerySuggestionsBlockListOutput) SetErrorMessage(v string) *DescribeQuerySuggestionsBlockListOutput {
9964	s.ErrorMessage = &v
9965	return s
9966}
9967
9968// SetFileSizeBytes sets the FileSizeBytes field's value.
9969func (s *DescribeQuerySuggestionsBlockListOutput) SetFileSizeBytes(v int64) *DescribeQuerySuggestionsBlockListOutput {
9970	s.FileSizeBytes = &v
9971	return s
9972}
9973
9974// SetId sets the Id field's value.
9975func (s *DescribeQuerySuggestionsBlockListOutput) SetId(v string) *DescribeQuerySuggestionsBlockListOutput {
9976	s.Id = &v
9977	return s
9978}
9979
9980// SetIndexId sets the IndexId field's value.
9981func (s *DescribeQuerySuggestionsBlockListOutput) SetIndexId(v string) *DescribeQuerySuggestionsBlockListOutput {
9982	s.IndexId = &v
9983	return s
9984}
9985
9986// SetItemCount sets the ItemCount field's value.
9987func (s *DescribeQuerySuggestionsBlockListOutput) SetItemCount(v int64) *DescribeQuerySuggestionsBlockListOutput {
9988	s.ItemCount = &v
9989	return s
9990}
9991
9992// SetName sets the Name field's value.
9993func (s *DescribeQuerySuggestionsBlockListOutput) SetName(v string) *DescribeQuerySuggestionsBlockListOutput {
9994	s.Name = &v
9995	return s
9996}
9997
9998// SetRoleArn sets the RoleArn field's value.
9999func (s *DescribeQuerySuggestionsBlockListOutput) SetRoleArn(v string) *DescribeQuerySuggestionsBlockListOutput {
10000	s.RoleArn = &v
10001	return s
10002}
10003
10004// SetSourceS3Path sets the SourceS3Path field's value.
10005func (s *DescribeQuerySuggestionsBlockListOutput) SetSourceS3Path(v *S3Path) *DescribeQuerySuggestionsBlockListOutput {
10006	s.SourceS3Path = v
10007	return s
10008}
10009
10010// SetStatus sets the Status field's value.
10011func (s *DescribeQuerySuggestionsBlockListOutput) SetStatus(v string) *DescribeQuerySuggestionsBlockListOutput {
10012	s.Status = &v
10013	return s
10014}
10015
10016// SetUpdatedAt sets the UpdatedAt field's value.
10017func (s *DescribeQuerySuggestionsBlockListOutput) SetUpdatedAt(v time.Time) *DescribeQuerySuggestionsBlockListOutput {
10018	s.UpdatedAt = &v
10019	return s
10020}
10021
10022type 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".
10037func (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".
10046func (s DescribeQuerySuggestionsConfigInput) GoString() string {
10047	return s.String()
10048}
10049
10050// Validate inspects the fields of the type to determine if they are valid.
10051func (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.
10067func (s *DescribeQuerySuggestionsConfigInput) SetIndexId(v string) *DescribeQuerySuggestionsConfigInput {
10068	s.IndexId = &v
10069	return s
10070}
10071
10072type 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".
10130func (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".
10139func (s DescribeQuerySuggestionsConfigOutput) GoString() string {
10140	return s.String()
10141}
10142
10143// SetIncludeQueriesWithoutUserInformation sets the IncludeQueriesWithoutUserInformation field's value.
10144func (s *DescribeQuerySuggestionsConfigOutput) SetIncludeQueriesWithoutUserInformation(v bool) *DescribeQuerySuggestionsConfigOutput {
10145	s.IncludeQueriesWithoutUserInformation = &v
10146	return s
10147}
10148
10149// SetLastClearTime sets the LastClearTime field's value.
10150func (s *DescribeQuerySuggestionsConfigOutput) SetLastClearTime(v time.Time) *DescribeQuerySuggestionsConfigOutput {
10151	s.LastClearTime = &v
10152	return s
10153}
10154
10155// SetLastSuggestionsBuildTime sets the LastSuggestionsBuildTime field's value.
10156func (s *DescribeQuerySuggestionsConfigOutput) SetLastSuggestionsBuildTime(v time.Time) *DescribeQuerySuggestionsConfigOutput {
10157	s.LastSuggestionsBuildTime = &v
10158	return s
10159}
10160
10161// SetMinimumNumberOfQueryingUsers sets the MinimumNumberOfQueryingUsers field's value.
10162func (s *DescribeQuerySuggestionsConfigOutput) SetMinimumNumberOfQueryingUsers(v int64) *DescribeQuerySuggestionsConfigOutput {
10163	s.MinimumNumberOfQueryingUsers = &v
10164	return s
10165}
10166
10167// SetMinimumQueryCount sets the MinimumQueryCount field's value.
10168func (s *DescribeQuerySuggestionsConfigOutput) SetMinimumQueryCount(v int64) *DescribeQuerySuggestionsConfigOutput {
10169	s.MinimumQueryCount = &v
10170	return s
10171}
10172
10173// SetMode sets the Mode field's value.
10174func (s *DescribeQuerySuggestionsConfigOutput) SetMode(v string) *DescribeQuerySuggestionsConfigOutput {
10175	s.Mode = &v
10176	return s
10177}
10178
10179// SetQueryLogLookBackWindowInDays sets the QueryLogLookBackWindowInDays field's value.
10180func (s *DescribeQuerySuggestionsConfigOutput) SetQueryLogLookBackWindowInDays(v int64) *DescribeQuerySuggestionsConfigOutput {
10181	s.QueryLogLookBackWindowInDays = &v
10182	return s
10183}
10184
10185// SetStatus sets the Status field's value.
10186func (s *DescribeQuerySuggestionsConfigOutput) SetStatus(v string) *DescribeQuerySuggestionsConfigOutput {
10187	s.Status = &v
10188	return s
10189}
10190
10191// SetTotalSuggestionsCount sets the TotalSuggestionsCount field's value.
10192func (s *DescribeQuerySuggestionsConfigOutput) SetTotalSuggestionsCount(v int64) *DescribeQuerySuggestionsConfigOutput {
10193	s.TotalSuggestionsCount = &v
10194	return s
10195}
10196
10197type 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".
10216func (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".
10225func (s DescribeThesaurusInput) GoString() string {
10226	return s.String()
10227}
10228
10229// Validate inspects the fields of the type to determine if they are valid.
10230func (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.
10252func (s *DescribeThesaurusInput) SetId(v string) *DescribeThesaurusInput {
10253	s.Id = &v
10254	return s
10255}
10256
10257// SetIndexId sets the IndexId field's value.
10258func (s *DescribeThesaurusInput) SetIndexId(v string) *DescribeThesaurusInput {
10259	s.IndexId = &v
10260	return s
10261}
10262
10263type 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".
10319func (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".
10328func (s DescribeThesaurusOutput) GoString() string {
10329	return s.String()
10330}
10331
10332// SetCreatedAt sets the CreatedAt field's value.
10333func (s *DescribeThesaurusOutput) SetCreatedAt(v time.Time) *DescribeThesaurusOutput {
10334	s.CreatedAt = &v
10335	return s
10336}
10337
10338// SetDescription sets the Description field's value.
10339func (s *DescribeThesaurusOutput) SetDescription(v string) *DescribeThesaurusOutput {
10340	s.Description = &v
10341	return s
10342}
10343
10344// SetErrorMessage sets the ErrorMessage field's value.
10345func (s *DescribeThesaurusOutput) SetErrorMessage(v string) *DescribeThesaurusOutput {
10346	s.ErrorMessage = &v
10347	return s
10348}
10349
10350// SetFileSizeBytes sets the FileSizeBytes field's value.
10351func (s *DescribeThesaurusOutput) SetFileSizeBytes(v int64) *DescribeThesaurusOutput {
10352	s.FileSizeBytes = &v
10353	return s
10354}
10355
10356// SetId sets the Id field's value.
10357func (s *DescribeThesaurusOutput) SetId(v string) *DescribeThesaurusOutput {
10358	s.Id = &v
10359	return s
10360}
10361
10362// SetIndexId sets the IndexId field's value.
10363func (s *DescribeThesaurusOutput) SetIndexId(v string) *DescribeThesaurusOutput {
10364	s.IndexId = &v
10365	return s
10366}
10367
10368// SetName sets the Name field's value.
10369func (s *DescribeThesaurusOutput) SetName(v string) *DescribeThesaurusOutput {
10370	s.Name = &v
10371	return s
10372}
10373
10374// SetRoleArn sets the RoleArn field's value.
10375func (s *DescribeThesaurusOutput) SetRoleArn(v string) *DescribeThesaurusOutput {
10376	s.RoleArn = &v
10377	return s
10378}
10379
10380// SetSourceS3Path sets the SourceS3Path field's value.
10381func (s *DescribeThesaurusOutput) SetSourceS3Path(v *S3Path) *DescribeThesaurusOutput {
10382	s.SourceS3Path = v
10383	return s
10384}
10385
10386// SetStatus sets the Status field's value.
10387func (s *DescribeThesaurusOutput) SetStatus(v string) *DescribeThesaurusOutput {
10388	s.Status = &v
10389	return s
10390}
10391
10392// SetSynonymRuleCount sets the SynonymRuleCount field's value.
10393func (s *DescribeThesaurusOutput) SetSynonymRuleCount(v int64) *DescribeThesaurusOutput {
10394	s.SynonymRuleCount = &v
10395	return s
10396}
10397
10398// SetTermCount sets the TermCount field's value.
10399func (s *DescribeThesaurusOutput) SetTermCount(v int64) *DescribeThesaurusOutput {
10400	s.TermCount = &v
10401	return s
10402}
10403
10404// SetUpdatedAt sets the UpdatedAt field's value.
10405func (s *DescribeThesaurusOutput) SetUpdatedAt(v time.Time) *DescribeThesaurusOutput {
10406	s.UpdatedAt = &v
10407	return s
10408}
10409
10410// A document in an index.
10411type 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".
10458func (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".
10467func (s Document) GoString() string {
10468	return s.String()
10469}
10470
10471// Validate inspects the fields of the type to determine if they are valid.
10472func (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.
10526func (s *Document) SetAccessControlList(v []*Principal) *Document {
10527	s.AccessControlList = v
10528	return s
10529}
10530
10531// SetAttributes sets the Attributes field's value.
10532func (s *Document) SetAttributes(v []*DocumentAttribute) *Document {
10533	s.Attributes = v
10534	return s
10535}
10536
10537// SetBlob sets the Blob field's value.
10538func (s *Document) SetBlob(v []byte) *Document {
10539	s.Blob = v
10540	return s
10541}
10542
10543// SetContentType sets the ContentType field's value.
10544func (s *Document) SetContentType(v string) *Document {
10545	s.ContentType = &v
10546	return s
10547}
10548
10549// SetHierarchicalAccessControlList sets the HierarchicalAccessControlList field's value.
10550func (s *Document) SetHierarchicalAccessControlList(v []*HierarchicalPrincipal) *Document {
10551	s.HierarchicalAccessControlList = v
10552	return s
10553}
10554
10555// SetId sets the Id field's value.
10556func (s *Document) SetId(v string) *Document {
10557	s.Id = &v
10558	return s
10559}
10560
10561// SetS3Path sets the S3Path field's value.
10562func (s *Document) SetS3Path(v *S3Path) *Document {
10563	s.S3Path = v
10564	return s
10565}
10566
10567// SetTitle sets the Title field's value.
10568func (s *Document) SetTitle(v string) *Document {
10569	s.Title = &v
10570	return s
10571}
10572
10573// A custom attribute value assigned to a document.
10574type 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".
10593func (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".
10602func (s DocumentAttribute) GoString() string {
10603	return s.String()
10604}
10605
10606// Validate inspects the fields of the type to determine if they are valid.
10607func (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.
10631func (s *DocumentAttribute) SetKey(v string) *DocumentAttribute {
10632	s.Key = &v
10633	return s
10634}
10635
10636// SetValue sets the Value field's value.
10637func (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.
10644type 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".
10669func (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".
10678func (s DocumentAttributeValue) GoString() string {
10679	return s.String()
10680}
10681
10682// Validate inspects the fields of the type to determine if they are valid.
10683func (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.
10696func (s *DocumentAttributeValue) SetDateValue(v time.Time) *DocumentAttributeValue {
10697	s.DateValue = &v
10698	return s
10699}
10700
10701// SetLongValue sets the LongValue field's value.
10702func (s *DocumentAttributeValue) SetLongValue(v int64) *DocumentAttributeValue {
10703	s.LongValue = &v
10704	return s
10705}
10706
10707// SetStringListValue sets the StringListValue field's value.
10708func (s *DocumentAttributeValue) SetStringListValue(v []*string) *DocumentAttributeValue {
10709	s.StringListValue = v
10710	return s
10711}
10712
10713// SetStringValue sets the StringValue field's value.
10714func (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.
10721type 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".
10737func (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".
10746func (s DocumentAttributeValueCountPair) GoString() string {
10747	return s.String()
10748}
10749
10750// SetCount sets the Count field's value.
10751func (s *DocumentAttributeValueCountPair) SetCount(v int64) *DocumentAttributeValueCountPair {
10752	s.Count = &v
10753	return s
10754}
10755
10756// SetDocumentAttributeValue sets the DocumentAttributeValue field's value.
10757func (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
10763type 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".
10797func (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".
10806func (s DocumentInfo) GoString() string {
10807	return s.String()
10808}
10809
10810// Validate inspects the fields of the type to determine if they are valid.
10811func (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.
10837func (s *DocumentInfo) SetAttributes(v []*DocumentAttribute) *DocumentInfo {
10838	s.Attributes = v
10839	return s
10840}
10841
10842// SetDocumentId sets the DocumentId field's value.
10843func (s *DocumentInfo) SetDocumentId(v string) *DocumentInfo {
10844	s.DocumentId = &v
10845	return s
10846}
10847
10848// Specifies the properties of a custom index field.
10849type 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".
10875func (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".
10884func (s DocumentMetadataConfiguration) GoString() string {
10885	return s.String()
10886}
10887
10888// Validate inspects the fields of the type to determine if they are valid.
10889func (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.
10913func (s *DocumentMetadataConfiguration) SetName(v string) *DocumentMetadataConfiguration {
10914	s.Name = &v
10915	return s
10916}
10917
10918// SetRelevance sets the Relevance field's value.
10919func (s *DocumentMetadataConfiguration) SetRelevance(v *Relevance) *DocumentMetadataConfiguration {
10920	s.Relevance = v
10921	return s
10922}
10923
10924// SetSearch sets the Search field's value.
10925func (s *DocumentMetadataConfiguration) SetSearch(v *Search) *DocumentMetadataConfiguration {
10926	s.Search = v
10927	return s
10928}
10929
10930// SetType sets the Type field's value.
10931func (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.
10937type 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".
10959func (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".
10968func (s DocumentRelevanceConfiguration) GoString() string {
10969	return s.String()
10970}
10971
10972// Validate inspects the fields of the type to determine if they are valid.
10973func (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.
10997func (s *DocumentRelevanceConfiguration) SetName(v string) *DocumentRelevanceConfiguration {
10998	s.Name = &v
10999	return s
11000}
11001
11002// SetRelevance sets the Relevance field's value.
11003func (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.
11011type 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".
11025func (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".
11034func (s DocumentsMetadataConfiguration) GoString() string {
11035	return s.String()
11036}
11037
11038// Validate inspects the fields of the type to determine if they are valid.
11039func (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.
11052func (s *DocumentsMetadataConfiguration) SetS3Prefix(v string) *DocumentsMetadataConfiguration {
11053	s.S3Prefix = &v
11054	return s
11055}
11056
11057// Information about a document attribute
11058type 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".
11070func (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".
11079func (s Facet) GoString() string {
11080	return s.String()
11081}
11082
11083// Validate inspects the fields of the type to determine if they are valid.
11084func (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.
11097func (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.
11103type 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".
11124func (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".
11133func (s FacetResult) GoString() string {
11134	return s.String()
11135}
11136
11137// SetDocumentAttributeKey sets the DocumentAttributeKey field's value.
11138func (s *FacetResult) SetDocumentAttributeKey(v string) *FacetResult {
11139	s.DocumentAttributeKey = &v
11140	return s
11141}
11142
11143// SetDocumentAttributeValueCountPairs sets the DocumentAttributeValueCountPairs field's value.
11144func (s *FacetResult) SetDocumentAttributeValueCountPairs(v []*DocumentAttributeValueCountPair) *FacetResult {
11145	s.DocumentAttributeValueCountPairs = v
11146	return s
11147}
11148
11149// SetDocumentAttributeValueType sets the DocumentAttributeValueType field's value.
11150func (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.
11157type 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".
11171func (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".
11180func (s FaqStatistics) GoString() string {
11181	return s.String()
11182}
11183
11184// SetIndexedQuestionAnswersCount sets the IndexedQuestionAnswersCount field's value.
11185func (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.
11192type 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".
11226func (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".
11235func (s FaqSummary) GoString() string {
11236	return s.String()
11237}
11238
11239// SetCreatedAt sets the CreatedAt field's value.
11240func (s *FaqSummary) SetCreatedAt(v time.Time) *FaqSummary {
11241	s.CreatedAt = &v
11242	return s
11243}
11244
11245// SetFileFormat sets the FileFormat field's value.
11246func (s *FaqSummary) SetFileFormat(v string) *FaqSummary {
11247	s.FileFormat = &v
11248	return s
11249}
11250
11251// SetId sets the Id field's value.
11252func (s *FaqSummary) SetId(v string) *FaqSummary {
11253	s.Id = &v
11254	return s
11255}
11256
11257// SetLanguageCode sets the LanguageCode field's value.
11258func (s *FaqSummary) SetLanguageCode(v string) *FaqSummary {
11259	s.LanguageCode = &v
11260	return s
11261}
11262
11263// SetName sets the Name field's value.
11264func (s *FaqSummary) SetName(v string) *FaqSummary {
11265	s.Name = &v
11266	return s
11267}
11268
11269// SetStatus sets the Status field's value.
11270func (s *FaqSummary) SetStatus(v string) *FaqSummary {
11271	s.Status = &v
11272	return s
11273}
11274
11275// SetUpdatedAt sets the UpdatedAt field's value.
11276func (s *FaqSummary) SetUpdatedAt(v time.Time) *FaqSummary {
11277	s.UpdatedAt = &v
11278	return s
11279}
11280
11281type 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".
11310func (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".
11319func (s GetQuerySuggestionsInput) GoString() string {
11320	return s.String()
11321}
11322
11323// Validate inspects the fields of the type to determine if they are valid.
11324func (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.
11343func (s *GetQuerySuggestionsInput) SetIndexId(v string) *GetQuerySuggestionsInput {
11344	s.IndexId = &v
11345	return s
11346}
11347
11348// SetMaxSuggestionsCount sets the MaxSuggestionsCount field's value.
11349func (s *GetQuerySuggestionsInput) SetMaxSuggestionsCount(v int64) *GetQuerySuggestionsInput {
11350	s.MaxSuggestionsCount = &v
11351	return s
11352}
11353
11354// SetQueryText sets the QueryText field's value.
11355func (s *GetQuerySuggestionsInput) SetQueryText(v string) *GetQuerySuggestionsInput {
11356	s.QueryText = &v
11357	return s
11358}
11359
11360type 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".
11375func (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".
11384func (s GetQuerySuggestionsOutput) GoString() string {
11385	return s.String()
11386}
11387
11388// SetQuerySuggestionsId sets the QuerySuggestionsId field's value.
11389func (s *GetQuerySuggestionsOutput) SetQuerySuggestionsId(v string) *GetQuerySuggestionsOutput {
11390	s.QuerySuggestionsId = &v
11391	return s
11392}
11393
11394// SetSuggestions sets the Suggestions field's value.
11395func (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.
11402type 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".
11456func (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".
11465func (s GoogleDriveConfiguration) GoString() string {
11466	return s.String()
11467}
11468
11469// Validate inspects the fields of the type to determine if they are valid.
11470func (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.
11499func (s *GoogleDriveConfiguration) SetExcludeMimeTypes(v []*string) *GoogleDriveConfiguration {
11500	s.ExcludeMimeTypes = v
11501	return s
11502}
11503
11504// SetExcludeSharedDrives sets the ExcludeSharedDrives field's value.
11505func (s *GoogleDriveConfiguration) SetExcludeSharedDrives(v []*string) *GoogleDriveConfiguration {
11506	s.ExcludeSharedDrives = v
11507	return s
11508}
11509
11510// SetExcludeUserAccounts sets the ExcludeUserAccounts field's value.
11511func (s *GoogleDriveConfiguration) SetExcludeUserAccounts(v []*string) *GoogleDriveConfiguration {
11512	s.ExcludeUserAccounts = v
11513	return s
11514}
11515
11516// SetExclusionPatterns sets the ExclusionPatterns field's value.
11517func (s *GoogleDriveConfiguration) SetExclusionPatterns(v []*string) *GoogleDriveConfiguration {
11518	s.ExclusionPatterns = v
11519	return s
11520}
11521
11522// SetFieldMappings sets the FieldMappings field's value.
11523func (s *GoogleDriveConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *GoogleDriveConfiguration {
11524	s.FieldMappings = v
11525	return s
11526}
11527
11528// SetInclusionPatterns sets the InclusionPatterns field's value.
11529func (s *GoogleDriveConfiguration) SetInclusionPatterns(v []*string) *GoogleDriveConfiguration {
11530	s.InclusionPatterns = v
11531	return s
11532}
11533
11534// SetSecretArn sets the SecretArn field's value.
11535func (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.
11543type 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".
11573func (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".
11582func (s GroupMembers) GoString() string {
11583	return s.String()
11584}
11585
11586// Validate inspects the fields of the type to determine if they are valid.
11587func (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.
11628func (s *GroupMembers) SetMemberGroups(v []*MemberGroup) *GroupMembers {
11629	s.MemberGroups = v
11630	return s
11631}
11632
11633// SetMemberUsers sets the MemberUsers field's value.
11634func (s *GroupMembers) SetMemberUsers(v []*MemberUser) *GroupMembers {
11635	s.MemberUsers = v
11636	return s
11637}
11638
11639// SetS3PathforGroupMembers sets the S3PathforGroupMembers field's value.
11640func (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.
11647type 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".
11676func (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".
11685func (s GroupOrderingIdSummary) GoString() string {
11686	return s.String()
11687}
11688
11689// SetFailureReason sets the FailureReason field's value.
11690func (s *GroupOrderingIdSummary) SetFailureReason(v string) *GroupOrderingIdSummary {
11691	s.FailureReason = &v
11692	return s
11693}
11694
11695// SetLastUpdatedAt sets the LastUpdatedAt field's value.
11696func (s *GroupOrderingIdSummary) SetLastUpdatedAt(v time.Time) *GroupOrderingIdSummary {
11697	s.LastUpdatedAt = &v
11698	return s
11699}
11700
11701// SetOrderingId sets the OrderingId field's value.
11702func (s *GroupOrderingIdSummary) SetOrderingId(v int64) *GroupOrderingIdSummary {
11703	s.OrderingId = &v
11704	return s
11705}
11706
11707// SetReceivedAt sets the ReceivedAt field's value.
11708func (s *GroupOrderingIdSummary) SetReceivedAt(v time.Time) *GroupOrderingIdSummary {
11709	s.ReceivedAt = &v
11710	return s
11711}
11712
11713// SetStatus sets the Status field's value.
11714func (s *GroupOrderingIdSummary) SetStatus(v string) *GroupOrderingIdSummary {
11715	s.Status = &v
11716	return s
11717}
11718
11719// Group summary information.
11720type 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".
11735func (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".
11744func (s GroupSummary) GoString() string {
11745	return s.String()
11746}
11747
11748// SetGroupId sets the GroupId field's value.
11749func (s *GroupSummary) SetGroupId(v string) *GroupSummary {
11750	s.GroupId = &v
11751	return s
11752}
11753
11754// SetOrderingId sets the OrderingId field's value.
11755func (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.
11762type 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".
11779func (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".
11788func (s HierarchicalPrincipal) GoString() string {
11789	return s.String()
11790}
11791
11792// Validate inspects the fields of the type to determine if they are valid.
11793func (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.
11816func (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.
11823type 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".
11849func (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".
11858func (s Highlight) GoString() string {
11859	return s.String()
11860}
11861
11862// SetBeginOffset sets the BeginOffset field's value.
11863func (s *Highlight) SetBeginOffset(v int64) *Highlight {
11864	s.BeginOffset = &v
11865	return s
11866}
11867
11868// SetEndOffset sets the EndOffset field's value.
11869func (s *Highlight) SetEndOffset(v int64) *Highlight {
11870	s.EndOffset = &v
11871	return s
11872}
11873
11874// SetTopAnswer sets the TopAnswer field's value.
11875func (s *Highlight) SetTopAnswer(v bool) *Highlight {
11876	s.TopAnswer = &v
11877	return s
11878}
11879
11880// SetType sets the Type field's value.
11881func (s *Highlight) SetType(v string) *Highlight {
11882	s.Type = &v
11883	return s
11884}
11885
11886// A summary of information about an index.
11887type 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".
11923func (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".
11932func (s IndexConfigurationSummary) GoString() string {
11933	return s.String()
11934}
11935
11936// SetCreatedAt sets the CreatedAt field's value.
11937func (s *IndexConfigurationSummary) SetCreatedAt(v time.Time) *IndexConfigurationSummary {
11938	s.CreatedAt = &v
11939	return s
11940}
11941
11942// SetEdition sets the Edition field's value.
11943func (s *IndexConfigurationSummary) SetEdition(v string) *IndexConfigurationSummary {
11944	s.Edition = &v
11945	return s
11946}
11947
11948// SetId sets the Id field's value.
11949func (s *IndexConfigurationSummary) SetId(v string) *IndexConfigurationSummary {
11950	s.Id = &v
11951	return s
11952}
11953
11954// SetName sets the Name field's value.
11955func (s *IndexConfigurationSummary) SetName(v string) *IndexConfigurationSummary {
11956	s.Name = &v
11957	return s
11958}
11959
11960// SetStatus sets the Status field's value.
11961func (s *IndexConfigurationSummary) SetStatus(v string) *IndexConfigurationSummary {
11962	s.Status = &v
11963	return s
11964}
11965
11966// SetUpdatedAt sets the UpdatedAt field's value.
11967func (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.
11974type 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".
11993func (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".
12002func (s IndexStatistics) GoString() string {
12003	return s.String()
12004}
12005
12006// SetFaqStatistics sets the FaqStatistics field's value.
12007func (s *IndexStatistics) SetFaqStatistics(v *FaqStatistics) *IndexStatistics {
12008	s.FaqStatistics = v
12009	return s
12010}
12011
12012// SetTextDocumentStatistics sets the TextDocumentStatistics field's value.
12013func (s *IndexStatistics) SetTextDocumentStatistics(v *TextDocumentStatistics) *IndexStatistics {
12014	s.TextDocumentStatistics = v
12015	return s
12016}
12017
12018type 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".
12030func (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".
12039func (s InternalServerException) GoString() string {
12040	return s.String()
12041}
12042
12043func newErrorInternalServerException(v protocol.ResponseMetadata) error {
12044	return &InternalServerException{
12045		RespMetadata: v,
12046	}
12047}
12048
12049// Code returns the exception type name.
12050func (s *InternalServerException) Code() string {
12051	return "InternalServerException"
12052}
12053
12054// Message returns the exception's message.
12055func (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.
12063func (s *InternalServerException) OrigErr() error {
12064	return nil
12065}
12066
12067func (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.
12072func (s *InternalServerException) StatusCode() int {
12073	return s.RespMetadata.StatusCode
12074}
12075
12076// RequestID returns the service's response RequestID for request.
12077func (s *InternalServerException) RequestID() string {
12078	return s.RespMetadata.RequestID
12079}
12080
12081// Configuration information for the JSON token type.
12082type 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".
12101func (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".
12110func (s JsonTokenTypeConfiguration) GoString() string {
12111	return s.String()
12112}
12113
12114// Validate inspects the fields of the type to determine if they are valid.
12115func (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.
12137func (s *JsonTokenTypeConfiguration) SetGroupAttributeField(v string) *JsonTokenTypeConfiguration {
12138	s.GroupAttributeField = &v
12139	return s
12140}
12141
12142// SetUserNameAttributeField sets the UserNameAttributeField field's value.
12143func (s *JsonTokenTypeConfiguration) SetUserNameAttributeField(v string) *JsonTokenTypeConfiguration {
12144	s.UserNameAttributeField = &v
12145	return s
12146}
12147
12148// Configuration information for the JWT token type.
12149type 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".
12181func (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".
12190func (s JwtTokenTypeConfiguration) GoString() string {
12191	return s.String()
12192}
12193
12194// Validate inspects the fields of the type to determine if they are valid.
12195func (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.
12226func (s *JwtTokenTypeConfiguration) SetClaimRegex(v string) *JwtTokenTypeConfiguration {
12227	s.ClaimRegex = &v
12228	return s
12229}
12230
12231// SetGroupAttributeField sets the GroupAttributeField field's value.
12232func (s *JwtTokenTypeConfiguration) SetGroupAttributeField(v string) *JwtTokenTypeConfiguration {
12233	s.GroupAttributeField = &v
12234	return s
12235}
12236
12237// SetIssuer sets the Issuer field's value.
12238func (s *JwtTokenTypeConfiguration) SetIssuer(v string) *JwtTokenTypeConfiguration {
12239	s.Issuer = &v
12240	return s
12241}
12242
12243// SetKeyLocation sets the KeyLocation field's value.
12244func (s *JwtTokenTypeConfiguration) SetKeyLocation(v string) *JwtTokenTypeConfiguration {
12245	s.KeyLocation = &v
12246	return s
12247}
12248
12249// SetSecretManagerArn sets the SecretManagerArn field's value.
12250func (s *JwtTokenTypeConfiguration) SetSecretManagerArn(v string) *JwtTokenTypeConfiguration {
12251	s.SecretManagerArn = &v
12252	return s
12253}
12254
12255// SetURL sets the URL field's value.
12256func (s *JwtTokenTypeConfiguration) SetURL(v string) *JwtTokenTypeConfiguration {
12257	s.URL = &v
12258	return s
12259}
12260
12261// SetUserNameAttributeField sets the UserNameAttributeField field's value.
12262func (s *JwtTokenTypeConfiguration) SetUserNameAttributeField(v string) *JwtTokenTypeConfiguration {
12263	s.UserNameAttributeField = &v
12264	return s
12265}
12266
12267type 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".
12304func (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".
12313func (s ListDataSourceSyncJobsInput) GoString() string {
12314	return s.String()
12315}
12316
12317// Validate inspects the fields of the type to determine if they are valid.
12318func (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.
12346func (s *ListDataSourceSyncJobsInput) SetId(v string) *ListDataSourceSyncJobsInput {
12347	s.Id = &v
12348	return s
12349}
12350
12351// SetIndexId sets the IndexId field's value.
12352func (s *ListDataSourceSyncJobsInput) SetIndexId(v string) *ListDataSourceSyncJobsInput {
12353	s.IndexId = &v
12354	return s
12355}
12356
12357// SetMaxResults sets the MaxResults field's value.
12358func (s *ListDataSourceSyncJobsInput) SetMaxResults(v int64) *ListDataSourceSyncJobsInput {
12359	s.MaxResults = &v
12360	return s
12361}
12362
12363// SetNextToken sets the NextToken field's value.
12364func (s *ListDataSourceSyncJobsInput) SetNextToken(v string) *ListDataSourceSyncJobsInput {
12365	s.NextToken = &v
12366	return s
12367}
12368
12369// SetStartTimeFilter sets the StartTimeFilter field's value.
12370func (s *ListDataSourceSyncJobsInput) SetStartTimeFilter(v *TimeRange) *ListDataSourceSyncJobsInput {
12371	s.StartTimeFilter = v
12372	return s
12373}
12374
12375// SetStatusFilter sets the StatusFilter field's value.
12376func (s *ListDataSourceSyncJobsInput) SetStatusFilter(v string) *ListDataSourceSyncJobsInput {
12377	s.StatusFilter = &v
12378	return s
12379}
12380
12381type 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".
12397func (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".
12406func (s ListDataSourceSyncJobsOutput) GoString() string {
12407	return s.String()
12408}
12409
12410// SetHistory sets the History field's value.
12411func (s *ListDataSourceSyncJobsOutput) SetHistory(v []*DataSourceSyncJob) *ListDataSourceSyncJobsOutput {
12412	s.History = v
12413	return s
12414}
12415
12416// SetNextToken sets the NextToken field's value.
12417func (s *ListDataSourceSyncJobsOutput) SetNextToken(v string) *ListDataSourceSyncJobsOutput {
12418	s.NextToken = &v
12419	return s
12420}
12421
12422type 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".
12444func (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".
12453func (s ListDataSourcesInput) GoString() string {
12454	return s.String()
12455}
12456
12457// Validate inspects the fields of the type to determine if they are valid.
12458func (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.
12480func (s *ListDataSourcesInput) SetIndexId(v string) *ListDataSourcesInput {
12481	s.IndexId = &v
12482	return s
12483}
12484
12485// SetMaxResults sets the MaxResults field's value.
12486func (s *ListDataSourcesInput) SetMaxResults(v int64) *ListDataSourcesInput {
12487	s.MaxResults = &v
12488	return s
12489}
12490
12491// SetNextToken sets the NextToken field's value.
12492func (s *ListDataSourcesInput) SetNextToken(v string) *ListDataSourcesInput {
12493	s.NextToken = &v
12494	return s
12495}
12496
12497type 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".
12513func (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".
12522func (s ListDataSourcesOutput) GoString() string {
12523	return s.String()
12524}
12525
12526// SetNextToken sets the NextToken field's value.
12527func (s *ListDataSourcesOutput) SetNextToken(v string) *ListDataSourcesOutput {
12528	s.NextToken = &v
12529	return s
12530}
12531
12532// SetSummaryItems sets the SummaryItems field's value.
12533func (s *ListDataSourcesOutput) SetSummaryItems(v []*DataSourceSummary) *ListDataSourcesOutput {
12534	s.SummaryItems = v
12535	return s
12536}
12537
12538type 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".
12561func (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".
12570func (s ListFaqsInput) GoString() string {
12571	return s.String()
12572}
12573
12574// Validate inspects the fields of the type to determine if they are valid.
12575func (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.
12597func (s *ListFaqsInput) SetIndexId(v string) *ListFaqsInput {
12598	s.IndexId = &v
12599	return s
12600}
12601
12602// SetMaxResults sets the MaxResults field's value.
12603func (s *ListFaqsInput) SetMaxResults(v int64) *ListFaqsInput {
12604	s.MaxResults = &v
12605	return s
12606}
12607
12608// SetNextToken sets the NextToken field's value.
12609func (s *ListFaqsInput) SetNextToken(v string) *ListFaqsInput {
12610	s.NextToken = &v
12611	return s
12612}
12613
12614type 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".
12630func (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".
12639func (s ListFaqsOutput) GoString() string {
12640	return s.String()
12641}
12642
12643// SetFaqSummaryItems sets the FaqSummaryItems field's value.
12644func (s *ListFaqsOutput) SetFaqSummaryItems(v []*FaqSummary) *ListFaqsOutput {
12645	s.FaqSummaryItems = v
12646	return s
12647}
12648
12649// SetNextToken sets the NextToken field's value.
12650func (s *ListFaqsOutput) SetNextToken(v string) *ListFaqsOutput {
12651	s.NextToken = &v
12652	return s
12653}
12654
12655type 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".
12690func (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".
12699func (s ListGroupsOlderThanOrderingIdInput) GoString() string {
12700	return s.String()
12701}
12702
12703// Validate inspects the fields of the type to determine if they are valid.
12704func (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.
12732func (s *ListGroupsOlderThanOrderingIdInput) SetDataSourceId(v string) *ListGroupsOlderThanOrderingIdInput {
12733	s.DataSourceId = &v
12734	return s
12735}
12736
12737// SetIndexId sets the IndexId field's value.
12738func (s *ListGroupsOlderThanOrderingIdInput) SetIndexId(v string) *ListGroupsOlderThanOrderingIdInput {
12739	s.IndexId = &v
12740	return s
12741}
12742
12743// SetMaxResults sets the MaxResults field's value.
12744func (s *ListGroupsOlderThanOrderingIdInput) SetMaxResults(v int64) *ListGroupsOlderThanOrderingIdInput {
12745	s.MaxResults = &v
12746	return s
12747}
12748
12749// SetNextToken sets the NextToken field's value.
12750func (s *ListGroupsOlderThanOrderingIdInput) SetNextToken(v string) *ListGroupsOlderThanOrderingIdInput {
12751	s.NextToken = &v
12752	return s
12753}
12754
12755// SetOrderingId sets the OrderingId field's value.
12756func (s *ListGroupsOlderThanOrderingIdInput) SetOrderingId(v int64) *ListGroupsOlderThanOrderingIdInput {
12757	s.OrderingId = &v
12758	return s
12759}
12760
12761type 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".
12779func (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".
12788func (s ListGroupsOlderThanOrderingIdOutput) GoString() string {
12789	return s.String()
12790}
12791
12792// SetGroupsSummaries sets the GroupsSummaries field's value.
12793func (s *ListGroupsOlderThanOrderingIdOutput) SetGroupsSummaries(v []*GroupSummary) *ListGroupsOlderThanOrderingIdOutput {
12794	s.GroupsSummaries = v
12795	return s
12796}
12797
12798// SetNextToken sets the NextToken field's value.
12799func (s *ListGroupsOlderThanOrderingIdOutput) SetNextToken(v string) *ListGroupsOlderThanOrderingIdOutput {
12800	s.NextToken = &v
12801	return s
12802}
12803
12804type 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".
12821func (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".
12830func (s ListIndicesInput) GoString() string {
12831	return s.String()
12832}
12833
12834// Validate inspects the fields of the type to determine if they are valid.
12835func (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.
12851func (s *ListIndicesInput) SetMaxResults(v int64) *ListIndicesInput {
12852	s.MaxResults = &v
12853	return s
12854}
12855
12856// SetNextToken sets the NextToken field's value.
12857func (s *ListIndicesInput) SetNextToken(v string) *ListIndicesInput {
12858	s.NextToken = &v
12859	return s
12860}
12861
12862type 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".
12878func (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".
12887func (s ListIndicesOutput) GoString() string {
12888	return s.String()
12889}
12890
12891// SetIndexConfigurationSummaryItems sets the IndexConfigurationSummaryItems field's value.
12892func (s *ListIndicesOutput) SetIndexConfigurationSummaryItems(v []*IndexConfigurationSummary) *ListIndicesOutput {
12893	s.IndexConfigurationSummaryItems = v
12894	return s
12895}
12896
12897// SetNextToken sets the NextToken field's value.
12898func (s *ListIndicesOutput) SetNextToken(v string) *ListIndicesOutput {
12899	s.NextToken = &v
12900	return s
12901}
12902
12903type 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".
12929func (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".
12938func (s ListQuerySuggestionsBlockListsInput) GoString() string {
12939	return s.String()
12940}
12941
12942// Validate inspects the fields of the type to determine if they are valid.
12943func (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.
12965func (s *ListQuerySuggestionsBlockListsInput) SetIndexId(v string) *ListQuerySuggestionsBlockListsInput {
12966	s.IndexId = &v
12967	return s
12968}
12969
12970// SetMaxResults sets the MaxResults field's value.
12971func (s *ListQuerySuggestionsBlockListsInput) SetMaxResults(v int64) *ListQuerySuggestionsBlockListsInput {
12972	s.MaxResults = &v
12973	return s
12974}
12975
12976// SetNextToken sets the NextToken field's value.
12977func (s *ListQuerySuggestionsBlockListsInput) SetNextToken(v string) *ListQuerySuggestionsBlockListsInput {
12978	s.NextToken = &v
12979	return s
12980}
12981
12982type 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".
13005func (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".
13014func (s ListQuerySuggestionsBlockListsOutput) GoString() string {
13015	return s.String()
13016}
13017
13018// SetBlockListSummaryItems sets the BlockListSummaryItems field's value.
13019func (s *ListQuerySuggestionsBlockListsOutput) SetBlockListSummaryItems(v []*QuerySuggestionsBlockListSummary) *ListQuerySuggestionsBlockListsOutput {
13020	s.BlockListSummaryItems = v
13021	return s
13022}
13023
13024// SetNextToken sets the NextToken field's value.
13025func (s *ListQuerySuggestionsBlockListsOutput) SetNextToken(v string) *ListQuerySuggestionsBlockListsOutput {
13026	s.NextToken = &v
13027	return s
13028}
13029
13030type 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".
13045func (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".
13054func (s ListTagsForResourceInput) GoString() string {
13055	return s.String()
13056}
13057
13058// Validate inspects the fields of the type to determine if they are valid.
13059func (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.
13075func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
13076	s.ResourceARN = &v
13077	return s
13078}
13079
13080type 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".
13092func (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".
13101func (s ListTagsForResourceOutput) GoString() string {
13102	return s.String()
13103}
13104
13105// SetTags sets the Tags field's value.
13106func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
13107	s.Tags = v
13108	return s
13109}
13110
13111type 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".
13133func (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".
13142func (s ListThesauriInput) GoString() string {
13143	return s.String()
13144}
13145
13146// Validate inspects the fields of the type to determine if they are valid.
13147func (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.
13169func (s *ListThesauriInput) SetIndexId(v string) *ListThesauriInput {
13170	s.IndexId = &v
13171	return s
13172}
13173
13174// SetMaxResults sets the MaxResults field's value.
13175func (s *ListThesauriInput) SetMaxResults(v int64) *ListThesauriInput {
13176	s.MaxResults = &v
13177	return s
13178}
13179
13180// SetNextToken sets the NextToken field's value.
13181func (s *ListThesauriInput) SetNextToken(v string) *ListThesauriInput {
13182	s.NextToken = &v
13183	return s
13184}
13185
13186type 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".
13202func (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".
13211func (s ListThesauriOutput) GoString() string {
13212	return s.String()
13213}
13214
13215// SetNextToken sets the NextToken field's value.
13216func (s *ListThesauriOutput) SetNextToken(v string) *ListThesauriOutput {
13217	s.NextToken = &v
13218	return s
13219}
13220
13221// SetThesaurusSummaryItems sets the ThesaurusSummaryItems field's value.
13222func (s *ListThesauriOutput) SetThesaurusSummaryItems(v []*ThesaurusSummary) *ListThesauriOutput {
13223	s.ThesaurusSummaryItems = v
13224	return s
13225}
13226
13227// The sub groups that belong to a group.
13228type 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".
13246func (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".
13255func (s MemberGroup) GoString() string {
13256	return s.String()
13257}
13258
13259// Validate inspects the fields of the type to determine if they are valid.
13260func (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.
13279func (s *MemberGroup) SetDataSourceId(v string) *MemberGroup {
13280	s.DataSourceId = &v
13281	return s
13282}
13283
13284// SetGroupId sets the GroupId field's value.
13285func (s *MemberGroup) SetGroupId(v string) *MemberGroup {
13286	s.GroupId = &v
13287	return s
13288}
13289
13290// The users that belong to a group.
13291type 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".
13305func (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".
13314func (s MemberUser) GoString() string {
13315	return s.String()
13316}
13317
13318// Validate inspects the fields of the type to determine if they are valid.
13319func (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.
13335func (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.
13341type 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".
13392func (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".
13401func (s OneDriveConfiguration) GoString() string {
13402	return s.String()
13403}
13404
13405// Validate inspects the fields of the type to determine if they are valid.
13406func (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.
13449func (s *OneDriveConfiguration) SetDisableLocalGroups(v bool) *OneDriveConfiguration {
13450	s.DisableLocalGroups = &v
13451	return s
13452}
13453
13454// SetExclusionPatterns sets the ExclusionPatterns field's value.
13455func (s *OneDriveConfiguration) SetExclusionPatterns(v []*string) *OneDriveConfiguration {
13456	s.ExclusionPatterns = v
13457	return s
13458}
13459
13460// SetFieldMappings sets the FieldMappings field's value.
13461func (s *OneDriveConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *OneDriveConfiguration {
13462	s.FieldMappings = v
13463	return s
13464}
13465
13466// SetInclusionPatterns sets the InclusionPatterns field's value.
13467func (s *OneDriveConfiguration) SetInclusionPatterns(v []*string) *OneDriveConfiguration {
13468	s.InclusionPatterns = v
13469	return s
13470}
13471
13472// SetOneDriveUsers sets the OneDriveUsers field's value.
13473func (s *OneDriveConfiguration) SetOneDriveUsers(v *OneDriveUsers) *OneDriveConfiguration {
13474	s.OneDriveUsers = v
13475	return s
13476}
13477
13478// SetSecretArn sets the SecretArn field's value.
13479func (s *OneDriveConfiguration) SetSecretArn(v string) *OneDriveConfiguration {
13480	s.SecretArn = &v
13481	return s
13482}
13483
13484// SetTenantDomain sets the TenantDomain field's value.
13485func (s *OneDriveConfiguration) SetTenantDomain(v string) *OneDriveConfiguration {
13486	s.TenantDomain = &v
13487	return s
13488}
13489
13490// User accounts whose documents should be indexed.
13491type 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".
13510func (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".
13519func (s OneDriveUsers) GoString() string {
13520	return s.String()
13521}
13522
13523// Validate inspects the fields of the type to determine if they are valid.
13524func (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.
13542func (s *OneDriveUsers) SetOneDriveUserList(v []*string) *OneDriveUsers {
13543	s.OneDriveUserList = v
13544	return s
13545}
13546
13547// SetOneDriveUserS3Path sets the OneDriveUserS3Path field's value.
13548func (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.
13554type 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".
13581func (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".
13590func (s Principal) GoString() string {
13591	return s.String()
13592}
13593
13594// Validate inspects the fields of the type to determine if they are valid.
13595func (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.
13620func (s *Principal) SetAccess(v string) *Principal {
13621	s.Access = &v
13622	return s
13623}
13624
13625// SetDataSourceId sets the DataSourceId field's value.
13626func (s *Principal) SetDataSourceId(v string) *Principal {
13627	s.DataSourceId = &v
13628	return s
13629}
13630
13631// SetName sets the Name field's value.
13632func (s *Principal) SetName(v string) *Principal {
13633	s.Name = &v
13634	return s
13635}
13636
13637// SetType sets the Type field's value.
13638func (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.
13645type 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".
13677func (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".
13686func (s ProxyConfiguration) GoString() string {
13687	return s.String()
13688}
13689
13690// Validate inspects the fields of the type to determine if they are valid.
13691func (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.
13716func (s *ProxyConfiguration) SetCredentials(v string) *ProxyConfiguration {
13717	s.Credentials = &v
13718	return s
13719}
13720
13721// SetHost sets the Host field's value.
13722func (s *ProxyConfiguration) SetHost(v string) *ProxyConfiguration {
13723	s.Host = &v
13724	return s
13725}
13726
13727// SetPort sets the Port field's value.
13728func (s *ProxyConfiguration) SetPort(v int64) *ProxyConfiguration {
13729	s.Port = &v
13730	return s
13731}
13732
13733type 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".
13798func (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".
13807func (s PutPrincipalMappingInput) GoString() string {
13808	return s.String()
13809}
13810
13811// Validate inspects the fields of the type to determine if they are valid.
13812func (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.
13848func (s *PutPrincipalMappingInput) SetDataSourceId(v string) *PutPrincipalMappingInput {
13849	s.DataSourceId = &v
13850	return s
13851}
13852
13853// SetGroupId sets the GroupId field's value.
13854func (s *PutPrincipalMappingInput) SetGroupId(v string) *PutPrincipalMappingInput {
13855	s.GroupId = &v
13856	return s
13857}
13858
13859// SetGroupMembers sets the GroupMembers field's value.
13860func (s *PutPrincipalMappingInput) SetGroupMembers(v *GroupMembers) *PutPrincipalMappingInput {
13861	s.GroupMembers = v
13862	return s
13863}
13864
13865// SetIndexId sets the IndexId field's value.
13866func (s *PutPrincipalMappingInput) SetIndexId(v string) *PutPrincipalMappingInput {
13867	s.IndexId = &v
13868	return s
13869}
13870
13871// SetOrderingId sets the OrderingId field's value.
13872func (s *PutPrincipalMappingInput) SetOrderingId(v int64) *PutPrincipalMappingInput {
13873	s.OrderingId = &v
13874	return s
13875}
13876
13877// SetRoleArn sets the RoleArn field's value.
13878func (s *PutPrincipalMappingInput) SetRoleArn(v string) *PutPrincipalMappingInput {
13879	s.RoleArn = &v
13880	return s
13881}
13882
13883type 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".
13892func (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".
13901func (s PutPrincipalMappingOutput) GoString() string {
13902	return s.String()
13903}
13904
13905type 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".
13989func (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".
13998func (s QueryInput) GoString() string {
13999	return s.String()
14000}
14001
14002// Validate inspects the fields of the type to determine if they are valid.
14003func (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.
14066func (s *QueryInput) SetAttributeFilter(v *AttributeFilter) *QueryInput {
14067	s.AttributeFilter = v
14068	return s
14069}
14070
14071// SetDocumentRelevanceOverrideConfigurations sets the DocumentRelevanceOverrideConfigurations field's value.
14072func (s *QueryInput) SetDocumentRelevanceOverrideConfigurations(v []*DocumentRelevanceConfiguration) *QueryInput {
14073	s.DocumentRelevanceOverrideConfigurations = v
14074	return s
14075}
14076
14077// SetFacets sets the Facets field's value.
14078func (s *QueryInput) SetFacets(v []*Facet) *QueryInput {
14079	s.Facets = v
14080	return s
14081}
14082
14083// SetIndexId sets the IndexId field's value.
14084func (s *QueryInput) SetIndexId(v string) *QueryInput {
14085	s.IndexId = &v
14086	return s
14087}
14088
14089// SetPageNumber sets the PageNumber field's value.
14090func (s *QueryInput) SetPageNumber(v int64) *QueryInput {
14091	s.PageNumber = &v
14092	return s
14093}
14094
14095// SetPageSize sets the PageSize field's value.
14096func (s *QueryInput) SetPageSize(v int64) *QueryInput {
14097	s.PageSize = &v
14098	return s
14099}
14100
14101// SetQueryResultTypeFilter sets the QueryResultTypeFilter field's value.
14102func (s *QueryInput) SetQueryResultTypeFilter(v string) *QueryInput {
14103	s.QueryResultTypeFilter = &v
14104	return s
14105}
14106
14107// SetQueryText sets the QueryText field's value.
14108func (s *QueryInput) SetQueryText(v string) *QueryInput {
14109	s.QueryText = &v
14110	return s
14111}
14112
14113// SetRequestedDocumentAttributes sets the RequestedDocumentAttributes field's value.
14114func (s *QueryInput) SetRequestedDocumentAttributes(v []*string) *QueryInput {
14115	s.RequestedDocumentAttributes = v
14116	return s
14117}
14118
14119// SetSortingConfiguration sets the SortingConfiguration field's value.
14120func (s *QueryInput) SetSortingConfiguration(v *SortingConfiguration) *QueryInput {
14121	s.SortingConfiguration = v
14122	return s
14123}
14124
14125// SetUserContext sets the UserContext field's value.
14126func (s *QueryInput) SetUserContext(v *UserContext) *QueryInput {
14127	s.UserContext = v
14128	return s
14129}
14130
14131// SetVisitorId sets the VisitorId field's value.
14132func (s *QueryInput) SetVisitorId(v string) *QueryInput {
14133	s.VisitorId = &v
14134	return s
14135}
14136
14137type 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".
14162func (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".
14171func (s QueryOutput) GoString() string {
14172	return s.String()
14173}
14174
14175// SetFacetResults sets the FacetResults field's value.
14176func (s *QueryOutput) SetFacetResults(v []*FacetResult) *QueryOutput {
14177	s.FacetResults = v
14178	return s
14179}
14180
14181// SetQueryId sets the QueryId field's value.
14182func (s *QueryOutput) SetQueryId(v string) *QueryOutput {
14183	s.QueryId = &v
14184	return s
14185}
14186
14187// SetResultItems sets the ResultItems field's value.
14188func (s *QueryOutput) SetResultItems(v []*QueryResultItem) *QueryOutput {
14189	s.ResultItems = v
14190	return s
14191}
14192
14193// SetTotalNumberOfResults sets the TotalNumberOfResults field's value.
14194func (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.
14205type 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".
14256func (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".
14265func (s QueryResultItem) GoString() string {
14266	return s.String()
14267}
14268
14269// SetAdditionalAttributes sets the AdditionalAttributes field's value.
14270func (s *QueryResultItem) SetAdditionalAttributes(v []*AdditionalResultAttribute) *QueryResultItem {
14271	s.AdditionalAttributes = v
14272	return s
14273}
14274
14275// SetDocumentAttributes sets the DocumentAttributes field's value.
14276func (s *QueryResultItem) SetDocumentAttributes(v []*DocumentAttribute) *QueryResultItem {
14277	s.DocumentAttributes = v
14278	return s
14279}
14280
14281// SetDocumentExcerpt sets the DocumentExcerpt field's value.
14282func (s *QueryResultItem) SetDocumentExcerpt(v *TextWithHighlights) *QueryResultItem {
14283	s.DocumentExcerpt = v
14284	return s
14285}
14286
14287// SetDocumentId sets the DocumentId field's value.
14288func (s *QueryResultItem) SetDocumentId(v string) *QueryResultItem {
14289	s.DocumentId = &v
14290	return s
14291}
14292
14293// SetDocumentTitle sets the DocumentTitle field's value.
14294func (s *QueryResultItem) SetDocumentTitle(v *TextWithHighlights) *QueryResultItem {
14295	s.DocumentTitle = v
14296	return s
14297}
14298
14299// SetDocumentURI sets the DocumentURI field's value.
14300func (s *QueryResultItem) SetDocumentURI(v string) *QueryResultItem {
14301	s.DocumentURI = &v
14302	return s
14303}
14304
14305// SetFeedbackToken sets the FeedbackToken field's value.
14306func (s *QueryResultItem) SetFeedbackToken(v string) *QueryResultItem {
14307	s.FeedbackToken = &v
14308	return s
14309}
14310
14311// SetId sets the Id field's value.
14312func (s *QueryResultItem) SetId(v string) *QueryResultItem {
14313	s.Id = &v
14314	return s
14315}
14316
14317// SetScoreAttributes sets the ScoreAttributes field's value.
14318func (s *QueryResultItem) SetScoreAttributes(v *ScoreAttributes) *QueryResultItem {
14319	s.ScoreAttributes = v
14320	return s
14321}
14322
14323// SetType sets the Type field's value.
14324func (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).
14337type 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".
14365func (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".
14374func (s QuerySuggestionsBlockListSummary) GoString() string {
14375	return s.String()
14376}
14377
14378// SetCreatedAt sets the CreatedAt field's value.
14379func (s *QuerySuggestionsBlockListSummary) SetCreatedAt(v time.Time) *QuerySuggestionsBlockListSummary {
14380	s.CreatedAt = &v
14381	return s
14382}
14383
14384// SetId sets the Id field's value.
14385func (s *QuerySuggestionsBlockListSummary) SetId(v string) *QuerySuggestionsBlockListSummary {
14386	s.Id = &v
14387	return s
14388}
14389
14390// SetItemCount sets the ItemCount field's value.
14391func (s *QuerySuggestionsBlockListSummary) SetItemCount(v int64) *QuerySuggestionsBlockListSummary {
14392	s.ItemCount = &v
14393	return s
14394}
14395
14396// SetName sets the Name field's value.
14397func (s *QuerySuggestionsBlockListSummary) SetName(v string) *QuerySuggestionsBlockListSummary {
14398	s.Name = &v
14399	return s
14400}
14401
14402// SetStatus sets the Status field's value.
14403func (s *QuerySuggestionsBlockListSummary) SetStatus(v string) *QuerySuggestionsBlockListSummary {
14404	s.Status = &v
14405	return s
14406}
14407
14408// SetUpdatedAt sets the UpdatedAt field's value.
14409func (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.
14417type 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".
14473func (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".
14482func (s Relevance) GoString() string {
14483	return s.String()
14484}
14485
14486// Validate inspects the fields of the type to determine if they are valid.
14487func (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.
14503func (s *Relevance) SetDuration(v string) *Relevance {
14504	s.Duration = &v
14505	return s
14506}
14507
14508// SetFreshness sets the Freshness field's value.
14509func (s *Relevance) SetFreshness(v bool) *Relevance {
14510	s.Freshness = &v
14511	return s
14512}
14513
14514// SetImportance sets the Importance field's value.
14515func (s *Relevance) SetImportance(v int64) *Relevance {
14516	s.Importance = &v
14517	return s
14518}
14519
14520// SetRankOrder sets the RankOrder field's value.
14521func (s *Relevance) SetRankOrder(v string) *Relevance {
14522	s.RankOrder = &v
14523	return s
14524}
14525
14526// SetValueImportanceMap sets the ValueImportanceMap field's value.
14527func (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.
14534type 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".
14554func (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".
14563func (s RelevanceFeedback) GoString() string {
14564	return s.String()
14565}
14566
14567// Validate inspects the fields of the type to determine if they are valid.
14568func (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.
14587func (s *RelevanceFeedback) SetRelevanceValue(v string) *RelevanceFeedback {
14588	s.RelevanceValue = &v
14589	return s
14590}
14591
14592// SetResultId sets the ResultId field's value.
14593func (s *RelevanceFeedback) SetResultId(v string) *RelevanceFeedback {
14594	s.ResultId = &v
14595	return s
14596}
14597
14598type 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".
14610func (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".
14619func (s ResourceAlreadyExistException) GoString() string {
14620	return s.String()
14621}
14622
14623func newErrorResourceAlreadyExistException(v protocol.ResponseMetadata) error {
14624	return &ResourceAlreadyExistException{
14625		RespMetadata: v,
14626	}
14627}
14628
14629// Code returns the exception type name.
14630func (s *ResourceAlreadyExistException) Code() string {
14631	return "ResourceAlreadyExistException"
14632}
14633
14634// Message returns the exception's message.
14635func (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.
14643func (s *ResourceAlreadyExistException) OrigErr() error {
14644	return nil
14645}
14646
14647func (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.
14652func (s *ResourceAlreadyExistException) StatusCode() int {
14653	return s.RespMetadata.StatusCode
14654}
14655
14656// RequestID returns the service's response RequestID for request.
14657func (s *ResourceAlreadyExistException) RequestID() string {
14658	return s.RespMetadata.RequestID
14659}
14660
14661type 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".
14673func (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".
14682func (s ResourceInUseException) GoString() string {
14683	return s.String()
14684}
14685
14686func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
14687	return &ResourceInUseException{
14688		RespMetadata: v,
14689	}
14690}
14691
14692// Code returns the exception type name.
14693func (s *ResourceInUseException) Code() string {
14694	return "ResourceInUseException"
14695}
14696
14697// Message returns the exception's message.
14698func (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.
14706func (s *ResourceInUseException) OrigErr() error {
14707	return nil
14708}
14709
14710func (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.
14715func (s *ResourceInUseException) StatusCode() int {
14716	return s.RespMetadata.StatusCode
14717}
14718
14719// RequestID returns the service's response RequestID for request.
14720func (s *ResourceInUseException) RequestID() string {
14721	return s.RespMetadata.RequestID
14722}
14723
14724type 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".
14736func (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".
14745func (s ResourceNotFoundException) GoString() string {
14746	return s.String()
14747}
14748
14749func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
14750	return &ResourceNotFoundException{
14751		RespMetadata: v,
14752	}
14753}
14754
14755// Code returns the exception type name.
14756func (s *ResourceNotFoundException) Code() string {
14757	return "ResourceNotFoundException"
14758}
14759
14760// Message returns the exception's message.
14761func (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.
14769func (s *ResourceNotFoundException) OrigErr() error {
14770	return nil
14771}
14772
14773func (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.
14778func (s *ResourceNotFoundException) StatusCode() int {
14779	return s.RespMetadata.StatusCode
14780}
14781
14782// RequestID returns the service's response RequestID for request.
14783func (s *ResourceNotFoundException) RequestID() string {
14784	return s.RespMetadata.RequestID
14785}
14786
14787type 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".
14799func (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".
14808func (s ResourceUnavailableException) GoString() string {
14809	return s.String()
14810}
14811
14812func newErrorResourceUnavailableException(v protocol.ResponseMetadata) error {
14813	return &ResourceUnavailableException{
14814		RespMetadata: v,
14815	}
14816}
14817
14818// Code returns the exception type name.
14819func (s *ResourceUnavailableException) Code() string {
14820	return "ResourceUnavailableException"
14821}
14822
14823// Message returns the exception's message.
14824func (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.
14832func (s *ResourceUnavailableException) OrigErr() error {
14833	return nil
14834}
14835
14836func (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.
14841func (s *ResourceUnavailableException) StatusCode() int {
14842	return s.RespMetadata.StatusCode
14843}
14844
14845// RequestID returns the service's response RequestID for request.
14846func (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.
14852type 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".
14912func (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".
14921func (s S3DataSourceConfiguration) GoString() string {
14922	return s.String()
14923}
14924
14925// Validate inspects the fields of the type to determine if they are valid.
14926func (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.
14952func (s *S3DataSourceConfiguration) SetAccessControlListConfiguration(v *AccessControlListConfiguration) *S3DataSourceConfiguration {
14953	s.AccessControlListConfiguration = v
14954	return s
14955}
14956
14957// SetBucketName sets the BucketName field's value.
14958func (s *S3DataSourceConfiguration) SetBucketName(v string) *S3DataSourceConfiguration {
14959	s.BucketName = &v
14960	return s
14961}
14962
14963// SetDocumentsMetadataConfiguration sets the DocumentsMetadataConfiguration field's value.
14964func (s *S3DataSourceConfiguration) SetDocumentsMetadataConfiguration(v *DocumentsMetadataConfiguration) *S3DataSourceConfiguration {
14965	s.DocumentsMetadataConfiguration = v
14966	return s
14967}
14968
14969// SetExclusionPatterns sets the ExclusionPatterns field's value.
14970func (s *S3DataSourceConfiguration) SetExclusionPatterns(v []*string) *S3DataSourceConfiguration {
14971	s.ExclusionPatterns = v
14972	return s
14973}
14974
14975// SetInclusionPatterns sets the InclusionPatterns field's value.
14976func (s *S3DataSourceConfiguration) SetInclusionPatterns(v []*string) *S3DataSourceConfiguration {
14977	s.InclusionPatterns = v
14978	return s
14979}
14980
14981// SetInclusionPrefixes sets the InclusionPrefixes field's value.
14982func (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.
14988type 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".
15007func (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".
15016func (s S3Path) GoString() string {
15017	return s.String()
15018}
15019
15020// Validate inspects the fields of the type to determine if they are valid.
15021func (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.
15043func (s *S3Path) SetBucket(v string) *S3Path {
15044	s.Bucket = &v
15045	return s
15046}
15047
15048// SetKey sets the Key field's value.
15049func (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.
15056type 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".
15084func (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".
15093func (s SalesforceChatterFeedConfiguration) GoString() string {
15094	return s.String()
15095}
15096
15097// Validate inspects the fields of the type to determine if they are valid.
15098func (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.
15133func (s *SalesforceChatterFeedConfiguration) SetDocumentDataFieldName(v string) *SalesforceChatterFeedConfiguration {
15134	s.DocumentDataFieldName = &v
15135	return s
15136}
15137
15138// SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
15139func (s *SalesforceChatterFeedConfiguration) SetDocumentTitleFieldName(v string) *SalesforceChatterFeedConfiguration {
15140	s.DocumentTitleFieldName = &v
15141	return s
15142}
15143
15144// SetFieldMappings sets the FieldMappings field's value.
15145func (s *SalesforceChatterFeedConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *SalesforceChatterFeedConfiguration {
15146	s.FieldMappings = v
15147	return s
15148}
15149
15150// SetIncludeFilterTypes sets the IncludeFilterTypes field's value.
15151func (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.
15157type 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".
15230func (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".
15239func (s SalesforceConfiguration) GoString() string {
15240	return s.String()
15241}
15242
15243// Validate inspects the fields of the type to determine if they are valid.
15244func (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.
15294func (s *SalesforceConfiguration) SetChatterFeedConfiguration(v *SalesforceChatterFeedConfiguration) *SalesforceConfiguration {
15295	s.ChatterFeedConfiguration = v
15296	return s
15297}
15298
15299// SetCrawlAttachments sets the CrawlAttachments field's value.
15300func (s *SalesforceConfiguration) SetCrawlAttachments(v bool) *SalesforceConfiguration {
15301	s.CrawlAttachments = &v
15302	return s
15303}
15304
15305// SetExcludeAttachmentFilePatterns sets the ExcludeAttachmentFilePatterns field's value.
15306func (s *SalesforceConfiguration) SetExcludeAttachmentFilePatterns(v []*string) *SalesforceConfiguration {
15307	s.ExcludeAttachmentFilePatterns = v
15308	return s
15309}
15310
15311// SetIncludeAttachmentFilePatterns sets the IncludeAttachmentFilePatterns field's value.
15312func (s *SalesforceConfiguration) SetIncludeAttachmentFilePatterns(v []*string) *SalesforceConfiguration {
15313	s.IncludeAttachmentFilePatterns = v
15314	return s
15315}
15316
15317// SetKnowledgeArticleConfiguration sets the KnowledgeArticleConfiguration field's value.
15318func (s *SalesforceConfiguration) SetKnowledgeArticleConfiguration(v *SalesforceKnowledgeArticleConfiguration) *SalesforceConfiguration {
15319	s.KnowledgeArticleConfiguration = v
15320	return s
15321}
15322
15323// SetSecretArn sets the SecretArn field's value.
15324func (s *SalesforceConfiguration) SetSecretArn(v string) *SalesforceConfiguration {
15325	s.SecretArn = &v
15326	return s
15327}
15328
15329// SetServerUrl sets the ServerUrl field's value.
15330func (s *SalesforceConfiguration) SetServerUrl(v string) *SalesforceConfiguration {
15331	s.ServerUrl = &v
15332	return s
15333}
15334
15335// SetStandardObjectAttachmentConfiguration sets the StandardObjectAttachmentConfiguration field's value.
15336func (s *SalesforceConfiguration) SetStandardObjectAttachmentConfiguration(v *SalesforceStandardObjectAttachmentConfiguration) *SalesforceConfiguration {
15337	s.StandardObjectAttachmentConfiguration = v
15338	return s
15339}
15340
15341// SetStandardObjectConfigurations sets the StandardObjectConfigurations field's value.
15342func (s *SalesforceConfiguration) SetStandardObjectConfigurations(v []*SalesforceStandardObjectConfiguration) *SalesforceConfiguration {
15343	s.StandardObjectConfigurations = v
15344	return s
15345}
15346
15347// Provides configuration information for indexing Salesforce custom articles.
15348type 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".
15376func (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".
15385func (s SalesforceCustomKnowledgeArticleTypeConfiguration) GoString() string {
15386	return s.String()
15387}
15388
15389// Validate inspects the fields of the type to determine if they are valid.
15390func (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.
15428func (s *SalesforceCustomKnowledgeArticleTypeConfiguration) SetDocumentDataFieldName(v string) *SalesforceCustomKnowledgeArticleTypeConfiguration {
15429	s.DocumentDataFieldName = &v
15430	return s
15431}
15432
15433// SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
15434func (s *SalesforceCustomKnowledgeArticleTypeConfiguration) SetDocumentTitleFieldName(v string) *SalesforceCustomKnowledgeArticleTypeConfiguration {
15435	s.DocumentTitleFieldName = &v
15436	return s
15437}
15438
15439// SetFieldMappings sets the FieldMappings field's value.
15440func (s *SalesforceCustomKnowledgeArticleTypeConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *SalesforceCustomKnowledgeArticleTypeConfiguration {
15441	s.FieldMappings = v
15442	return s
15443}
15444
15445// SetName sets the Name field's value.
15446func (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
15455type 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".
15476func (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".
15485func (s SalesforceKnowledgeArticleConfiguration) GoString() string {
15486	return s.String()
15487}
15488
15489// Validate inspects the fields of the type to determine if they are valid.
15490func (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.
15524func (s *SalesforceKnowledgeArticleConfiguration) SetCustomKnowledgeArticleTypeConfigurations(v []*SalesforceCustomKnowledgeArticleTypeConfiguration) *SalesforceKnowledgeArticleConfiguration {
15525	s.CustomKnowledgeArticleTypeConfigurations = v
15526	return s
15527}
15528
15529// SetIncludedStates sets the IncludedStates field's value.
15530func (s *SalesforceKnowledgeArticleConfiguration) SetIncludedStates(v []*string) *SalesforceKnowledgeArticleConfiguration {
15531	s.IncludedStates = v
15532	return s
15533}
15534
15535// SetStandardKnowledgeArticleTypeConfiguration sets the StandardKnowledgeArticleTypeConfiguration field's value.
15536func (s *SalesforceKnowledgeArticleConfiguration) SetStandardKnowledgeArticleTypeConfiguration(v *SalesforceStandardKnowledgeArticleTypeConfiguration) *SalesforceKnowledgeArticleConfiguration {
15537	s.StandardKnowledgeArticleTypeConfiguration = v
15538	return s
15539}
15540
15541// Provides configuration information for standard Salesforce knowledge articles.
15542type 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".
15564func (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".
15573func (s SalesforceStandardKnowledgeArticleTypeConfiguration) GoString() string {
15574	return s.String()
15575}
15576
15577// Validate inspects the fields of the type to determine if they are valid.
15578func (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.
15610func (s *SalesforceStandardKnowledgeArticleTypeConfiguration) SetDocumentDataFieldName(v string) *SalesforceStandardKnowledgeArticleTypeConfiguration {
15611	s.DocumentDataFieldName = &v
15612	return s
15613}
15614
15615// SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
15616func (s *SalesforceStandardKnowledgeArticleTypeConfiguration) SetDocumentTitleFieldName(v string) *SalesforceStandardKnowledgeArticleTypeConfiguration {
15617	s.DocumentTitleFieldName = &v
15618	return s
15619}
15620
15621// SetFieldMappings sets the FieldMappings field's value.
15622func (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.
15629type 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".
15645func (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".
15654func (s SalesforceStandardObjectAttachmentConfiguration) GoString() string {
15655	return s.String()
15656}
15657
15658// Validate inspects the fields of the type to determine if they are valid.
15659func (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.
15685func (s *SalesforceStandardObjectAttachmentConfiguration) SetDocumentTitleFieldName(v string) *SalesforceStandardObjectAttachmentConfiguration {
15686	s.DocumentTitleFieldName = &v
15687	return s
15688}
15689
15690// SetFieldMappings sets the FieldMappings field's value.
15691func (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.
15697type 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".
15726func (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".
15735func (s SalesforceStandardObjectConfiguration) GoString() string {
15736	return s.String()
15737}
15738
15739// Validate inspects the fields of the type to determine if they are valid.
15740func (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.
15775func (s *SalesforceStandardObjectConfiguration) SetDocumentDataFieldName(v string) *SalesforceStandardObjectConfiguration {
15776	s.DocumentDataFieldName = &v
15777	return s
15778}
15779
15780// SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
15781func (s *SalesforceStandardObjectConfiguration) SetDocumentTitleFieldName(v string) *SalesforceStandardObjectConfiguration {
15782	s.DocumentTitleFieldName = &v
15783	return s
15784}
15785
15786// SetFieldMappings sets the FieldMappings field's value.
15787func (s *SalesforceStandardObjectConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *SalesforceStandardObjectConfiguration {
15788	s.FieldMappings = v
15789	return s
15790}
15791
15792// SetName sets the Name field's value.
15793func (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.
15800type 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".
15812func (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".
15821func (s ScoreAttributes) GoString() string {
15822	return s.String()
15823}
15824
15825// SetScoreConfidence sets the ScoreConfidence field's value.
15826func (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.
15832type 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".
15860func (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".
15869func (s Search) GoString() string {
15870	return s.String()
15871}
15872
15873// SetDisplayable sets the Displayable field's value.
15874func (s *Search) SetDisplayable(v bool) *Search {
15875	s.Displayable = &v
15876	return s
15877}
15878
15879// SetFacetable sets the Facetable field's value.
15880func (s *Search) SetFacetable(v bool) *Search {
15881	s.Facetable = &v
15882	return s
15883}
15884
15885// SetSearchable sets the Searchable field's value.
15886func (s *Search) SetSearchable(v bool) *Search {
15887	s.Searchable = &v
15888	return s
15889}
15890
15891// SetSortable sets the Sortable field's value.
15892func (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.
15904type 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".
15936func (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".
15945func (s SeedUrlConfiguration) GoString() string {
15946	return s.String()
15947}
15948
15949// Validate inspects the fields of the type to determine if they are valid.
15950func (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.
15963func (s *SeedUrlConfiguration) SetSeedUrls(v []*string) *SeedUrlConfiguration {
15964	s.SeedUrls = v
15965	return s
15966}
15967
15968// SetWebCrawlerMode sets the WebCrawlerMode field's value.
15969func (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.
15976type 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".
15993func (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".
16002func (s ServerSideEncryptionConfiguration) GoString() string {
16003	return s.String()
16004}
16005
16006// Validate inspects the fields of the type to determine if they are valid.
16007func (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.
16020func (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.
16027type 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".
16075func (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".
16084func (s ServiceNowConfiguration) GoString() string {
16085	return s.String()
16086}
16087
16088// Validate inspects the fields of the type to determine if they are valid.
16089func (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.
16124func (s *ServiceNowConfiguration) SetAuthenticationType(v string) *ServiceNowConfiguration {
16125	s.AuthenticationType = &v
16126	return s
16127}
16128
16129// SetHostUrl sets the HostUrl field's value.
16130func (s *ServiceNowConfiguration) SetHostUrl(v string) *ServiceNowConfiguration {
16131	s.HostUrl = &v
16132	return s
16133}
16134
16135// SetKnowledgeArticleConfiguration sets the KnowledgeArticleConfiguration field's value.
16136func (s *ServiceNowConfiguration) SetKnowledgeArticleConfiguration(v *ServiceNowKnowledgeArticleConfiguration) *ServiceNowConfiguration {
16137	s.KnowledgeArticleConfiguration = v
16138	return s
16139}
16140
16141// SetSecretArn sets the SecretArn field's value.
16142func (s *ServiceNowConfiguration) SetSecretArn(v string) *ServiceNowConfiguration {
16143	s.SecretArn = &v
16144	return s
16145}
16146
16147// SetServiceCatalogConfiguration sets the ServiceCatalogConfiguration field's value.
16148func (s *ServiceNowConfiguration) SetServiceCatalogConfiguration(v *ServiceNowServiceCatalogConfiguration) *ServiceNowConfiguration {
16149	s.ServiceCatalogConfiguration = v
16150	return s
16151}
16152
16153// SetServiceNowBuildVersion sets the ServiceNowBuildVersion field's value.
16154func (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.
16161type 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".
16205func (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".
16214func (s ServiceNowKnowledgeArticleConfiguration) GoString() string {
16215	return s.String()
16216}
16217
16218// Validate inspects the fields of the type to determine if they are valid.
16219func (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.
16254func (s *ServiceNowKnowledgeArticleConfiguration) SetCrawlAttachments(v bool) *ServiceNowKnowledgeArticleConfiguration {
16255	s.CrawlAttachments = &v
16256	return s
16257}
16258
16259// SetDocumentDataFieldName sets the DocumentDataFieldName field's value.
16260func (s *ServiceNowKnowledgeArticleConfiguration) SetDocumentDataFieldName(v string) *ServiceNowKnowledgeArticleConfiguration {
16261	s.DocumentDataFieldName = &v
16262	return s
16263}
16264
16265// SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
16266func (s *ServiceNowKnowledgeArticleConfiguration) SetDocumentTitleFieldName(v string) *ServiceNowKnowledgeArticleConfiguration {
16267	s.DocumentTitleFieldName = &v
16268	return s
16269}
16270
16271// SetExcludeAttachmentFilePatterns sets the ExcludeAttachmentFilePatterns field's value.
16272func (s *ServiceNowKnowledgeArticleConfiguration) SetExcludeAttachmentFilePatterns(v []*string) *ServiceNowKnowledgeArticleConfiguration {
16273	s.ExcludeAttachmentFilePatterns = v
16274	return s
16275}
16276
16277// SetFieldMappings sets the FieldMappings field's value.
16278func (s *ServiceNowKnowledgeArticleConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *ServiceNowKnowledgeArticleConfiguration {
16279	s.FieldMappings = v
16280	return s
16281}
16282
16283// SetFilterQuery sets the FilterQuery field's value.
16284func (s *ServiceNowKnowledgeArticleConfiguration) SetFilterQuery(v string) *ServiceNowKnowledgeArticleConfiguration {
16285	s.FilterQuery = &v
16286	return s
16287}
16288
16289// SetIncludeAttachmentFilePatterns sets the IncludeAttachmentFilePatterns field's value.
16290func (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
16297type 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".
16340func (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".
16349func (s ServiceNowServiceCatalogConfiguration) GoString() string {
16350	return s.String()
16351}
16352
16353// Validate inspects the fields of the type to determine if they are valid.
16354func (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.
16386func (s *ServiceNowServiceCatalogConfiguration) SetCrawlAttachments(v bool) *ServiceNowServiceCatalogConfiguration {
16387	s.CrawlAttachments = &v
16388	return s
16389}
16390
16391// SetDocumentDataFieldName sets the DocumentDataFieldName field's value.
16392func (s *ServiceNowServiceCatalogConfiguration) SetDocumentDataFieldName(v string) *ServiceNowServiceCatalogConfiguration {
16393	s.DocumentDataFieldName = &v
16394	return s
16395}
16396
16397// SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
16398func (s *ServiceNowServiceCatalogConfiguration) SetDocumentTitleFieldName(v string) *ServiceNowServiceCatalogConfiguration {
16399	s.DocumentTitleFieldName = &v
16400	return s
16401}
16402
16403// SetExcludeAttachmentFilePatterns sets the ExcludeAttachmentFilePatterns field's value.
16404func (s *ServiceNowServiceCatalogConfiguration) SetExcludeAttachmentFilePatterns(v []*string) *ServiceNowServiceCatalogConfiguration {
16405	s.ExcludeAttachmentFilePatterns = v
16406	return s
16407}
16408
16409// SetFieldMappings sets the FieldMappings field's value.
16410func (s *ServiceNowServiceCatalogConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *ServiceNowServiceCatalogConfiguration {
16411	s.FieldMappings = v
16412	return s
16413}
16414
16415// SetIncludeAttachmentFilePatterns sets the IncludeAttachmentFilePatterns field's value.
16416func (s *ServiceNowServiceCatalogConfiguration) SetIncludeAttachmentFilePatterns(v []*string) *ServiceNowServiceCatalogConfiguration {
16417	s.IncludeAttachmentFilePatterns = v
16418	return s
16419}
16420
16421type 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".
16433func (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".
16442func (s ServiceQuotaExceededException) GoString() string {
16443	return s.String()
16444}
16445
16446func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
16447	return &ServiceQuotaExceededException{
16448		RespMetadata: v,
16449	}
16450}
16451
16452// Code returns the exception type name.
16453func (s *ServiceQuotaExceededException) Code() string {
16454	return "ServiceQuotaExceededException"
16455}
16456
16457// Message returns the exception's message.
16458func (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.
16466func (s *ServiceQuotaExceededException) OrigErr() error {
16467	return nil
16468}
16469
16470func (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.
16475func (s *ServiceQuotaExceededException) StatusCode() int {
16476	return s.RespMetadata.StatusCode
16477}
16478
16479// RequestID returns the service's response RequestID for request.
16480func (s *ServiceQuotaExceededException) RequestID() string {
16481	return s.RespMetadata.RequestID
16482}
16483
16484// Provides configuration information for connecting to a Microsoft SharePoint
16485// data source.
16486type 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".
16562func (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".
16571func (s SharePointConfiguration) GoString() string {
16572	return s.String()
16573}
16574
16575// Validate inspects the fields of the type to determine if they are valid.
16576func (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.
16627func (s *SharePointConfiguration) SetCrawlAttachments(v bool) *SharePointConfiguration {
16628	s.CrawlAttachments = &v
16629	return s
16630}
16631
16632// SetDisableLocalGroups sets the DisableLocalGroups field's value.
16633func (s *SharePointConfiguration) SetDisableLocalGroups(v bool) *SharePointConfiguration {
16634	s.DisableLocalGroups = &v
16635	return s
16636}
16637
16638// SetDocumentTitleFieldName sets the DocumentTitleFieldName field's value.
16639func (s *SharePointConfiguration) SetDocumentTitleFieldName(v string) *SharePointConfiguration {
16640	s.DocumentTitleFieldName = &v
16641	return s
16642}
16643
16644// SetExclusionPatterns sets the ExclusionPatterns field's value.
16645func (s *SharePointConfiguration) SetExclusionPatterns(v []*string) *SharePointConfiguration {
16646	s.ExclusionPatterns = v
16647	return s
16648}
16649
16650// SetFieldMappings sets the FieldMappings field's value.
16651func (s *SharePointConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *SharePointConfiguration {
16652	s.FieldMappings = v
16653	return s
16654}
16655
16656// SetInclusionPatterns sets the InclusionPatterns field's value.
16657func (s *SharePointConfiguration) SetInclusionPatterns(v []*string) *SharePointConfiguration {
16658	s.InclusionPatterns = v
16659	return s
16660}
16661
16662// SetSecretArn sets the SecretArn field's value.
16663func (s *SharePointConfiguration) SetSecretArn(v string) *SharePointConfiguration {
16664	s.SecretArn = &v
16665	return s
16666}
16667
16668// SetSharePointVersion sets the SharePointVersion field's value.
16669func (s *SharePointConfiguration) SetSharePointVersion(v string) *SharePointConfiguration {
16670	s.SharePointVersion = &v
16671	return s
16672}
16673
16674// SetSslCertificateS3Path sets the SslCertificateS3Path field's value.
16675func (s *SharePointConfiguration) SetSslCertificateS3Path(v *S3Path) *SharePointConfiguration {
16676	s.SslCertificateS3Path = v
16677	return s
16678}
16679
16680// SetUrls sets the Urls field's value.
16681func (s *SharePointConfiguration) SetUrls(v []*string) *SharePointConfiguration {
16682	s.Urls = v
16683	return s
16684}
16685
16686// SetUseChangeLog sets the UseChangeLog field's value.
16687func (s *SharePointConfiguration) SetUseChangeLog(v bool) *SharePointConfiguration {
16688	s.UseChangeLog = &v
16689	return s
16690}
16691
16692// SetVpcConfiguration sets the VpcConfiguration field's value.
16693func (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.
16704type 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".
16720func (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".
16729func (s SiteMapsConfiguration) GoString() string {
16730	return s.String()
16731}
16732
16733// Validate inspects the fields of the type to determine if they are valid.
16734func (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.
16747func (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
16768type 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".
16801func (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".
16810func (s SortingConfiguration) GoString() string {
16811	return s.String()
16812}
16813
16814// Validate inspects the fields of the type to determine if they are valid.
16815func (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.
16834func (s *SortingConfiguration) SetDocumentAttributeKey(v string) *SortingConfiguration {
16835	s.DocumentAttributeKey = &v
16836	return s
16837}
16838
16839// SetSortOrder sets the SortOrder field's value.
16840func (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.
16846type 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".
16870func (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".
16879func (s SqlConfiguration) GoString() string {
16880	return s.String()
16881}
16882
16883// SetQueryIdentifiersEnclosingOption sets the QueryIdentifiersEnclosingOption field's value.
16884func (s *SqlConfiguration) SetQueryIdentifiersEnclosingOption(v string) *SqlConfiguration {
16885	s.QueryIdentifiersEnclosingOption = &v
16886	return s
16887}
16888
16889type 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".
16908func (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".
16917func (s StartDataSourceSyncJobInput) GoString() string {
16918	return s.String()
16919}
16920
16921// Validate inspects the fields of the type to determine if they are valid.
16922func (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.
16944func (s *StartDataSourceSyncJobInput) SetId(v string) *StartDataSourceSyncJobInput {
16945	s.Id = &v
16946	return s
16947}
16948
16949// SetIndexId sets the IndexId field's value.
16950func (s *StartDataSourceSyncJobInput) SetIndexId(v string) *StartDataSourceSyncJobInput {
16951	s.IndexId = &v
16952	return s
16953}
16954
16955type 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".
16967func (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".
16976func (s StartDataSourceSyncJobOutput) GoString() string {
16977	return s.String()
16978}
16979
16980// SetExecutionId sets the ExecutionId field's value.
16981func (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.
16987type 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".
17013func (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".
17022func (s Status) GoString() string {
17023	return s.String()
17024}
17025
17026// SetDocumentId sets the DocumentId field's value.
17027func (s *Status) SetDocumentId(v string) *Status {
17028	s.DocumentId = &v
17029	return s
17030}
17031
17032// SetDocumentStatus sets the DocumentStatus field's value.
17033func (s *Status) SetDocumentStatus(v string) *Status {
17034	s.DocumentStatus = &v
17035	return s
17036}
17037
17038// SetFailureCode sets the FailureCode field's value.
17039func (s *Status) SetFailureCode(v string) *Status {
17040	s.FailureCode = &v
17041	return s
17042}
17043
17044// SetFailureReason sets the FailureReason field's value.
17045func (s *Status) SetFailureReason(v string) *Status {
17046	s.FailureReason = &v
17047	return s
17048}
17049
17050type 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".
17069func (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".
17078func (s StopDataSourceSyncJobInput) GoString() string {
17079	return s.String()
17080}
17081
17082// Validate inspects the fields of the type to determine if they are valid.
17083func (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.
17105func (s *StopDataSourceSyncJobInput) SetId(v string) *StopDataSourceSyncJobInput {
17106	s.Id = &v
17107	return s
17108}
17109
17110// SetIndexId sets the IndexId field's value.
17111func (s *StopDataSourceSyncJobInput) SetIndexId(v string) *StopDataSourceSyncJobInput {
17112	s.IndexId = &v
17113	return s
17114}
17115
17116type 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".
17125func (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".
17134func (s StopDataSourceSyncJobOutput) GoString() string {
17135	return s.String()
17136}
17137
17138type 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".
17166func (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".
17175func (s SubmitFeedbackInput) GoString() string {
17176	return s.String()
17177}
17178
17179// Validate inspects the fields of the type to determine if they are valid.
17180func (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.
17222func (s *SubmitFeedbackInput) SetClickFeedbackItems(v []*ClickFeedback) *SubmitFeedbackInput {
17223	s.ClickFeedbackItems = v
17224	return s
17225}
17226
17227// SetIndexId sets the IndexId field's value.
17228func (s *SubmitFeedbackInput) SetIndexId(v string) *SubmitFeedbackInput {
17229	s.IndexId = &v
17230	return s
17231}
17232
17233// SetQueryId sets the QueryId field's value.
17234func (s *SubmitFeedbackInput) SetQueryId(v string) *SubmitFeedbackInput {
17235	s.QueryId = &v
17236	return s
17237}
17238
17239// SetRelevanceFeedbackItems sets the RelevanceFeedbackItems field's value.
17240func (s *SubmitFeedbackInput) SetRelevanceFeedbackItems(v []*RelevanceFeedback) *SubmitFeedbackInput {
17241	s.RelevanceFeedbackItems = v
17242	return s
17243}
17244
17245type 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".
17254func (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".
17263func (s SubmitFeedbackOutput) GoString() string {
17264	return s.String()
17265}
17266
17267// A single query suggestion.
17268type 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".
17286func (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".
17295func (s Suggestion) GoString() string {
17296	return s.String()
17297}
17298
17299// SetId sets the Id field's value.
17300func (s *Suggestion) SetId(v string) *Suggestion {
17301	s.Id = &v
17302	return s
17303}
17304
17305// SetValue sets the Value field's value.
17306func (s *Suggestion) SetValue(v *SuggestionValue) *Suggestion {
17307	s.Value = v
17308	return s
17309}
17310
17311// The text highlights for a single query suggestion.
17312type 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".
17327func (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".
17336func (s SuggestionHighlight) GoString() string {
17337	return s.String()
17338}
17339
17340// SetBeginOffset sets the BeginOffset field's value.
17341func (s *SuggestionHighlight) SetBeginOffset(v int64) *SuggestionHighlight {
17342	s.BeginOffset = &v
17343	return s
17344}
17345
17346// SetEndOffset sets the EndOffset field's value.
17347func (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.
17354type 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".
17369func (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".
17378func (s SuggestionTextWithHighlights) GoString() string {
17379	return s.String()
17380}
17381
17382// SetHighlights sets the Highlights field's value.
17383func (s *SuggestionTextWithHighlights) SetHighlights(v []*SuggestionHighlight) *SuggestionTextWithHighlights {
17384	s.Highlights = v
17385	return s
17386}
17387
17388// SetText sets the Text field's value.
17389func (s *SuggestionTextWithHighlights) SetText(v string) *SuggestionTextWithHighlights {
17390	s.Text = &v
17391	return s
17392}
17393
17394// The SuggestionTextWithHighlights structure information.
17395type 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".
17408func (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".
17417func (s SuggestionValue) GoString() string {
17418	return s.String()
17419}
17420
17421// SetText sets the Text field's value.
17422func (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: _ . : / = + - @.
17430type 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".
17451func (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".
17460func (s Tag) GoString() string {
17461	return s.String()
17462}
17463
17464// Validate inspects the fields of the type to determine if they are valid.
17465func (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.
17484func (s *Tag) SetKey(v string) *Tag {
17485	s.Key = &v
17486	return s
17487}
17488
17489// SetValue sets the Value field's value.
17490func (s *Tag) SetValue(v string) *Tag {
17491	s.Value = &v
17492	return s
17493}
17494
17495type 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".
17515func (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".
17524func (s TagResourceInput) GoString() string {
17525	return s.String()
17526}
17527
17528// Validate inspects the fields of the type to determine if they are valid.
17529func (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.
17558func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
17559	s.ResourceARN = &v
17560	return s
17561}
17562
17563// SetTags sets the Tags field's value.
17564func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
17565	s.Tags = v
17566	return s
17567}
17568
17569type 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".
17578func (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".
17587func (s TagResourceOutput) GoString() string {
17588	return s.String()
17589}
17590
17591// Provides information about text documents indexed in an index.
17592type 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".
17611func (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".
17620func (s TextDocumentStatistics) GoString() string {
17621	return s.String()
17622}
17623
17624// SetIndexedTextBytes sets the IndexedTextBytes field's value.
17625func (s *TextDocumentStatistics) SetIndexedTextBytes(v int64) *TextDocumentStatistics {
17626	s.IndexedTextBytes = &v
17627	return s
17628}
17629
17630// SetIndexedTextDocumentsCount sets the IndexedTextDocumentsCount field's value.
17631func (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.
17637type 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".
17652func (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".
17661func (s TextWithHighlights) GoString() string {
17662	return s.String()
17663}
17664
17665// SetHighlights sets the Highlights field's value.
17666func (s *TextWithHighlights) SetHighlights(v []*Highlight) *TextWithHighlights {
17667	s.Highlights = v
17668	return s
17669}
17670
17671// SetText sets the Text field's value.
17672func (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.
17678type 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".
17702func (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".
17711func (s ThesaurusSummary) GoString() string {
17712	return s.String()
17713}
17714
17715// SetCreatedAt sets the CreatedAt field's value.
17716func (s *ThesaurusSummary) SetCreatedAt(v time.Time) *ThesaurusSummary {
17717	s.CreatedAt = &v
17718	return s
17719}
17720
17721// SetId sets the Id field's value.
17722func (s *ThesaurusSummary) SetId(v string) *ThesaurusSummary {
17723	s.Id = &v
17724	return s
17725}
17726
17727// SetName sets the Name field's value.
17728func (s *ThesaurusSummary) SetName(v string) *ThesaurusSummary {
17729	s.Name = &v
17730	return s
17731}
17732
17733// SetStatus sets the Status field's value.
17734func (s *ThesaurusSummary) SetStatus(v string) *ThesaurusSummary {
17735	s.Status = &v
17736	return s
17737}
17738
17739// SetUpdatedAt sets the UpdatedAt field's value.
17740func (s *ThesaurusSummary) SetUpdatedAt(v time.Time) *ThesaurusSummary {
17741	s.UpdatedAt = &v
17742	return s
17743}
17744
17745type 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".
17757func (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".
17766func (s ThrottlingException) GoString() string {
17767	return s.String()
17768}
17769
17770func newErrorThrottlingException(v protocol.ResponseMetadata) error {
17771	return &ThrottlingException{
17772		RespMetadata: v,
17773	}
17774}
17775
17776// Code returns the exception type name.
17777func (s *ThrottlingException) Code() string {
17778	return "ThrottlingException"
17779}
17780
17781// Message returns the exception's message.
17782func (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.
17790func (s *ThrottlingException) OrigErr() error {
17791	return nil
17792}
17793
17794func (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.
17799func (s *ThrottlingException) StatusCode() int {
17800	return s.RespMetadata.StatusCode
17801}
17802
17803// RequestID returns the service's response RequestID for request.
17804func (s *ThrottlingException) RequestID() string {
17805	return s.RespMetadata.RequestID
17806}
17807
17808// Provides a range of time.
17809type 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".
17824func (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".
17833func (s TimeRange) GoString() string {
17834	return s.String()
17835}
17836
17837// SetEndTime sets the EndTime field's value.
17838func (s *TimeRange) SetEndTime(v time.Time) *TimeRange {
17839	s.EndTime = &v
17840	return s
17841}
17842
17843// SetStartTime sets the StartTime field's value.
17844func (s *TimeRange) SetStartTime(v time.Time) *TimeRange {
17845	s.StartTime = &v
17846	return s
17847}
17848
17849type 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".
17870func (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".
17879func (s UntagResourceInput) GoString() string {
17880	return s.String()
17881}
17882
17883// Validate inspects the fields of the type to determine if they are valid.
17884func (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.
17903func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
17904	s.ResourceARN = &v
17905	return s
17906}
17907
17908// SetTagKeys sets the TagKeys field's value.
17909func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
17910	s.TagKeys = v
17911	return s
17912}
17913
17914type 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".
17923func (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".
17932func (s UntagResourceOutput) GoString() string {
17933	return s.String()
17934}
17935
17936type 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".
17979func (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".
17988func (s UpdateDataSourceInput) GoString() string {
17989	return s.String()
17990}
17991
17992// Validate inspects the fields of the type to determine if they are valid.
17993func (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.
18029func (s *UpdateDataSourceInput) SetConfiguration(v *DataSourceConfiguration) *UpdateDataSourceInput {
18030	s.Configuration = v
18031	return s
18032}
18033
18034// SetDescription sets the Description field's value.
18035func (s *UpdateDataSourceInput) SetDescription(v string) *UpdateDataSourceInput {
18036	s.Description = &v
18037	return s
18038}
18039
18040// SetId sets the Id field's value.
18041func (s *UpdateDataSourceInput) SetId(v string) *UpdateDataSourceInput {
18042	s.Id = &v
18043	return s
18044}
18045
18046// SetIndexId sets the IndexId field's value.
18047func (s *UpdateDataSourceInput) SetIndexId(v string) *UpdateDataSourceInput {
18048	s.IndexId = &v
18049	return s
18050}
18051
18052// SetLanguageCode sets the LanguageCode field's value.
18053func (s *UpdateDataSourceInput) SetLanguageCode(v string) *UpdateDataSourceInput {
18054	s.LanguageCode = &v
18055	return s
18056}
18057
18058// SetName sets the Name field's value.
18059func (s *UpdateDataSourceInput) SetName(v string) *UpdateDataSourceInput {
18060	s.Name = &v
18061	return s
18062}
18063
18064// SetRoleArn sets the RoleArn field's value.
18065func (s *UpdateDataSourceInput) SetRoleArn(v string) *UpdateDataSourceInput {
18066	s.RoleArn = &v
18067	return s
18068}
18069
18070// SetSchedule sets the Schedule field's value.
18071func (s *UpdateDataSourceInput) SetSchedule(v string) *UpdateDataSourceInput {
18072	s.Schedule = &v
18073	return s
18074}
18075
18076type 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".
18085func (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".
18094func (s UpdateDataSourceOutput) GoString() string {
18095	return s.String()
18096}
18097
18098type 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".
18144func (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".
18153func (s UpdateIndexInput) GoString() string {
18154	return s.String()
18155}
18156
18157// Validate inspects the fields of the type to determine if they are valid.
18158func (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.
18210func (s *UpdateIndexInput) SetCapacityUnits(v *CapacityUnitsConfiguration) *UpdateIndexInput {
18211	s.CapacityUnits = v
18212	return s
18213}
18214
18215// SetDescription sets the Description field's value.
18216func (s *UpdateIndexInput) SetDescription(v string) *UpdateIndexInput {
18217	s.Description = &v
18218	return s
18219}
18220
18221// SetDocumentMetadataConfigurationUpdates sets the DocumentMetadataConfigurationUpdates field's value.
18222func (s *UpdateIndexInput) SetDocumentMetadataConfigurationUpdates(v []*DocumentMetadataConfiguration) *UpdateIndexInput {
18223	s.DocumentMetadataConfigurationUpdates = v
18224	return s
18225}
18226
18227// SetId sets the Id field's value.
18228func (s *UpdateIndexInput) SetId(v string) *UpdateIndexInput {
18229	s.Id = &v
18230	return s
18231}
18232
18233// SetName sets the Name field's value.
18234func (s *UpdateIndexInput) SetName(v string) *UpdateIndexInput {
18235	s.Name = &v
18236	return s
18237}
18238
18239// SetRoleArn sets the RoleArn field's value.
18240func (s *UpdateIndexInput) SetRoleArn(v string) *UpdateIndexInput {
18241	s.RoleArn = &v
18242	return s
18243}
18244
18245// SetUserContextPolicy sets the UserContextPolicy field's value.
18246func (s *UpdateIndexInput) SetUserContextPolicy(v string) *UpdateIndexInput {
18247	s.UserContextPolicy = &v
18248	return s
18249}
18250
18251// SetUserGroupResolutionConfiguration sets the UserGroupResolutionConfiguration field's value.
18252func (s *UpdateIndexInput) SetUserGroupResolutionConfiguration(v *UserGroupResolutionConfiguration) *UpdateIndexInput {
18253	s.UserGroupResolutionConfiguration = v
18254	return s
18255}
18256
18257// SetUserTokenConfigurations sets the UserTokenConfigurations field's value.
18258func (s *UpdateIndexInput) SetUserTokenConfigurations(v []*UserTokenConfiguration) *UpdateIndexInput {
18259	s.UserTokenConfigurations = v
18260	return s
18261}
18262
18263type 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".
18272func (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".
18281func (s UpdateIndexOutput) GoString() string {
18282	return s.String()
18283}
18284
18285type 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".
18326func (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".
18335func (s UpdateQuerySuggestionsBlockListInput) GoString() string {
18336	return s.String()
18337}
18338
18339// Validate inspects the fields of the type to determine if they are valid.
18340func (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.
18373func (s *UpdateQuerySuggestionsBlockListInput) SetDescription(v string) *UpdateQuerySuggestionsBlockListInput {
18374	s.Description = &v
18375	return s
18376}
18377
18378// SetId sets the Id field's value.
18379func (s *UpdateQuerySuggestionsBlockListInput) SetId(v string) *UpdateQuerySuggestionsBlockListInput {
18380	s.Id = &v
18381	return s
18382}
18383
18384// SetIndexId sets the IndexId field's value.
18385func (s *UpdateQuerySuggestionsBlockListInput) SetIndexId(v string) *UpdateQuerySuggestionsBlockListInput {
18386	s.IndexId = &v
18387	return s
18388}
18389
18390// SetName sets the Name field's value.
18391func (s *UpdateQuerySuggestionsBlockListInput) SetName(v string) *UpdateQuerySuggestionsBlockListInput {
18392	s.Name = &v
18393	return s
18394}
18395
18396// SetRoleArn sets the RoleArn field's value.
18397func (s *UpdateQuerySuggestionsBlockListInput) SetRoleArn(v string) *UpdateQuerySuggestionsBlockListInput {
18398	s.RoleArn = &v
18399	return s
18400}
18401
18402// SetSourceS3Path sets the SourceS3Path field's value.
18403func (s *UpdateQuerySuggestionsBlockListInput) SetSourceS3Path(v *S3Path) *UpdateQuerySuggestionsBlockListInput {
18404	s.SourceS3Path = v
18405	return s
18406}
18407
18408type 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".
18417func (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".
18426func (s UpdateQuerySuggestionsBlockListOutput) GoString() string {
18427	return s.String()
18428}
18429
18430type 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".
18497func (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".
18506func (s UpdateQuerySuggestionsConfigInput) GoString() string {
18507	return s.String()
18508}
18509
18510// Validate inspects the fields of the type to determine if they are valid.
18511func (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.
18533func (s *UpdateQuerySuggestionsConfigInput) SetIncludeQueriesWithoutUserInformation(v bool) *UpdateQuerySuggestionsConfigInput {
18534	s.IncludeQueriesWithoutUserInformation = &v
18535	return s
18536}
18537
18538// SetIndexId sets the IndexId field's value.
18539func (s *UpdateQuerySuggestionsConfigInput) SetIndexId(v string) *UpdateQuerySuggestionsConfigInput {
18540	s.IndexId = &v
18541	return s
18542}
18543
18544// SetMinimumNumberOfQueryingUsers sets the MinimumNumberOfQueryingUsers field's value.
18545func (s *UpdateQuerySuggestionsConfigInput) SetMinimumNumberOfQueryingUsers(v int64) *UpdateQuerySuggestionsConfigInput {
18546	s.MinimumNumberOfQueryingUsers = &v
18547	return s
18548}
18549
18550// SetMinimumQueryCount sets the MinimumQueryCount field's value.
18551func (s *UpdateQuerySuggestionsConfigInput) SetMinimumQueryCount(v int64) *UpdateQuerySuggestionsConfigInput {
18552	s.MinimumQueryCount = &v
18553	return s
18554}
18555
18556// SetMode sets the Mode field's value.
18557func (s *UpdateQuerySuggestionsConfigInput) SetMode(v string) *UpdateQuerySuggestionsConfigInput {
18558	s.Mode = &v
18559	return s
18560}
18561
18562// SetQueryLogLookBackWindowInDays sets the QueryLogLookBackWindowInDays field's value.
18563func (s *UpdateQuerySuggestionsConfigInput) SetQueryLogLookBackWindowInDays(v int64) *UpdateQuerySuggestionsConfigInput {
18564	s.QueryLogLookBackWindowInDays = &v
18565	return s
18566}
18567
18568type 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".
18577func (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".
18586func (s UpdateQuerySuggestionsConfigOutput) GoString() string {
18587	return s.String()
18588}
18589
18590type 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".
18621func (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".
18630func (s UpdateThesaurusInput) GoString() string {
18631	return s.String()
18632}
18633
18634// Validate inspects the fields of the type to determine if they are valid.
18635func (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.
18668func (s *UpdateThesaurusInput) SetDescription(v string) *UpdateThesaurusInput {
18669	s.Description = &v
18670	return s
18671}
18672
18673// SetId sets the Id field's value.
18674func (s *UpdateThesaurusInput) SetId(v string) *UpdateThesaurusInput {
18675	s.Id = &v
18676	return s
18677}
18678
18679// SetIndexId sets the IndexId field's value.
18680func (s *UpdateThesaurusInput) SetIndexId(v string) *UpdateThesaurusInput {
18681	s.IndexId = &v
18682	return s
18683}
18684
18685// SetName sets the Name field's value.
18686func (s *UpdateThesaurusInput) SetName(v string) *UpdateThesaurusInput {
18687	s.Name = &v
18688	return s
18689}
18690
18691// SetRoleArn sets the RoleArn field's value.
18692func (s *UpdateThesaurusInput) SetRoleArn(v string) *UpdateThesaurusInput {
18693	s.RoleArn = &v
18694	return s
18695}
18696
18697// SetSourceS3Path sets the SourceS3Path field's value.
18698func (s *UpdateThesaurusInput) SetSourceS3Path(v *S3Path) *UpdateThesaurusInput {
18699	s.SourceS3Path = v
18700	return s
18701}
18702
18703type 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".
18712func (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".
18721func (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.
18735type 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".
18761func (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".
18770func (s Urls) GoString() string {
18771	return s.String()
18772}
18773
18774// Validate inspects the fields of the type to determine if they are valid.
18775func (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.
18795func (s *Urls) SetSeedUrlConfiguration(v *SeedUrlConfiguration) *Urls {
18796	s.SeedUrlConfiguration = v
18797	return s
18798}
18799
18800// SetSiteMapsConfiguration sets the SiteMapsConfiguration field's value.
18801func (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.
18819type 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".
18844func (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".
18853func (s UserContext) GoString() string {
18854	return s.String()
18855}
18856
18857// Validate inspects the fields of the type to determine if they are valid.
18858func (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.
18890func (s *UserContext) SetDataSourceGroups(v []*DataSourceGroup) *UserContext {
18891	s.DataSourceGroups = v
18892	return s
18893}
18894
18895// SetGroups sets the Groups field's value.
18896func (s *UserContext) SetGroups(v []*string) *UserContext {
18897	s.Groups = v
18898	return s
18899}
18900
18901// SetToken sets the Token field's value.
18902func (s *UserContext) SetToken(v string) *UserContext {
18903	s.Token = &v
18904	return s
18905}
18906
18907// SetUserId sets the UserId field's value.
18908func (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).
18924type 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".
18941func (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".
18950func (s UserGroupResolutionConfiguration) GoString() string {
18951	return s.String()
18952}
18953
18954// Validate inspects the fields of the type to determine if they are valid.
18955func (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.
18968func (s *UserGroupResolutionConfiguration) SetUserGroupResolutionMode(v string) *UserGroupResolutionConfiguration {
18969	s.UserGroupResolutionMode = &v
18970	return s
18971}
18972
18973// Provides configuration information for a token configuration.
18974type 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".
18989func (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".
18998func (s UserTokenConfiguration) GoString() string {
18999	return s.String()
19000}
19001
19002// Validate inspects the fields of the type to determine if they are valid.
19003func (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.
19023func (s *UserTokenConfiguration) SetJsonTokenTypeConfiguration(v *JsonTokenTypeConfiguration) *UserTokenConfiguration {
19024	s.JsonTokenTypeConfiguration = v
19025	return s
19026}
19027
19028// SetJwtTokenTypeConfiguration sets the JwtTokenTypeConfiguration field's value.
19029func (s *UserTokenConfiguration) SetJwtTokenTypeConfiguration(v *JwtTokenTypeConfiguration) *UserTokenConfiguration {
19030	s.JwtTokenTypeConfiguration = v
19031	return s
19032}
19033
19034type 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".
19046func (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".
19055func (s ValidationException) GoString() string {
19056	return s.String()
19057}
19058
19059func newErrorValidationException(v protocol.ResponseMetadata) error {
19060	return &ValidationException{
19061		RespMetadata: v,
19062	}
19063}
19064
19065// Code returns the exception type name.
19066func (s *ValidationException) Code() string {
19067	return "ValidationException"
19068}
19069
19070// Message returns the exception's message.
19071func (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.
19079func (s *ValidationException) OrigErr() error {
19080	return nil
19081}
19082
19083func (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.
19088func (s *ValidationException) StatusCode() int {
19089	return s.RespMetadata.StatusCode
19090}
19091
19092// RequestID returns the service's response RequestID for request.
19093func (s *ValidationException) RequestID() string {
19094	return s.RespMetadata.RequestID
19095}
19096
19097// Provides the configuration information required for Amazon Kendra web crawler.
19098type 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".
19196func (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".
19205func (s WebCrawlerConfiguration) GoString() string {
19206	return s.String()
19207}
19208
19209// Validate inspects the fields of the type to determine if they are valid.
19210func (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.
19247func (s *WebCrawlerConfiguration) SetAuthenticationConfiguration(v *AuthenticationConfiguration) *WebCrawlerConfiguration {
19248	s.AuthenticationConfiguration = v
19249	return s
19250}
19251
19252// SetCrawlDepth sets the CrawlDepth field's value.
19253func (s *WebCrawlerConfiguration) SetCrawlDepth(v int64) *WebCrawlerConfiguration {
19254	s.CrawlDepth = &v
19255	return s
19256}
19257
19258// SetMaxContentSizePerPageInMegaBytes sets the MaxContentSizePerPageInMegaBytes field's value.
19259func (s *WebCrawlerConfiguration) SetMaxContentSizePerPageInMegaBytes(v float64) *WebCrawlerConfiguration {
19260	s.MaxContentSizePerPageInMegaBytes = &v
19261	return s
19262}
19263
19264// SetMaxLinksPerPage sets the MaxLinksPerPage field's value.
19265func (s *WebCrawlerConfiguration) SetMaxLinksPerPage(v int64) *WebCrawlerConfiguration {
19266	s.MaxLinksPerPage = &v
19267	return s
19268}
19269
19270// SetMaxUrlsPerMinuteCrawlRate sets the MaxUrlsPerMinuteCrawlRate field's value.
19271func (s *WebCrawlerConfiguration) SetMaxUrlsPerMinuteCrawlRate(v int64) *WebCrawlerConfiguration {
19272	s.MaxUrlsPerMinuteCrawlRate = &v
19273	return s
19274}
19275
19276// SetProxyConfiguration sets the ProxyConfiguration field's value.
19277func (s *WebCrawlerConfiguration) SetProxyConfiguration(v *ProxyConfiguration) *WebCrawlerConfiguration {
19278	s.ProxyConfiguration = v
19279	return s
19280}
19281
19282// SetUrlExclusionPatterns sets the UrlExclusionPatterns field's value.
19283func (s *WebCrawlerConfiguration) SetUrlExclusionPatterns(v []*string) *WebCrawlerConfiguration {
19284	s.UrlExclusionPatterns = v
19285	return s
19286}
19287
19288// SetUrlInclusionPatterns sets the UrlInclusionPatterns field's value.
19289func (s *WebCrawlerConfiguration) SetUrlInclusionPatterns(v []*string) *WebCrawlerConfiguration {
19290	s.UrlInclusionPatterns = v
19291	return s
19292}
19293
19294// SetUrls sets the Urls field's value.
19295func (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.
19305type 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".
19365func (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".
19374func (s WorkDocsConfiguration) GoString() string {
19375	return s.String()
19376}
19377
19378// Validate inspects the fields of the type to determine if they are valid.
19379func (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.
19408func (s *WorkDocsConfiguration) SetCrawlComments(v bool) *WorkDocsConfiguration {
19409	s.CrawlComments = &v
19410	return s
19411}
19412
19413// SetExclusionPatterns sets the ExclusionPatterns field's value.
19414func (s *WorkDocsConfiguration) SetExclusionPatterns(v []*string) *WorkDocsConfiguration {
19415	s.ExclusionPatterns = v
19416	return s
19417}
19418
19419// SetFieldMappings sets the FieldMappings field's value.
19420func (s *WorkDocsConfiguration) SetFieldMappings(v []*DataSourceToIndexFieldMapping) *WorkDocsConfiguration {
19421	s.FieldMappings = v
19422	return s
19423}
19424
19425// SetInclusionPatterns sets the InclusionPatterns field's value.
19426func (s *WorkDocsConfiguration) SetInclusionPatterns(v []*string) *WorkDocsConfiguration {
19427	s.InclusionPatterns = v
19428	return s
19429}
19430
19431// SetOrganizationId sets the OrganizationId field's value.
19432func (s *WorkDocsConfiguration) SetOrganizationId(v string) *WorkDocsConfiguration {
19433	s.OrganizationId = &v
19434	return s
19435}
19436
19437// SetUseChangeLog sets the UseChangeLog field's value.
19438func (s *WorkDocsConfiguration) SetUseChangeLog(v bool) *WorkDocsConfiguration {
19439	s.UseChangeLog = &v
19440	return s
19441}
19442
19443const (
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
19449func AdditionalResultAttributeValueType_Values() []string {
19450	return []string{
19451		AdditionalResultAttributeValueTypeTextWithHighlightsValue,
19452	}
19453}
19454
19455const (
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
19491func 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
19507const (
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
19537func 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
19551const (
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
19590func 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
19607const (
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
19622func ConfluenceSpaceFieldName_Values() []string {
19623	return []string{
19624		ConfluenceSpaceFieldNameDisplayUrl,
19625		ConfluenceSpaceFieldNameItemType,
19626		ConfluenceSpaceFieldNameSpaceKey,
19627		ConfluenceSpaceFieldNameUrl,
19628	}
19629}
19630
19631const (
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
19640func ConfluenceVersion_Values() []string {
19641	return []string{
19642		ConfluenceVersionCloud,
19643		ConfluenceVersionServer,
19644	}
19645}
19646
19647const (
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
19665func ContentType_Values() []string {
19666	return []string{
19667		ContentTypePdf,
19668		ContentTypeHtml,
19669		ContentTypeMsWord,
19670		ContentTypePlainText,
19671		ContentTypePpt,
19672	}
19673}
19674
19675const (
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
19693func DataSourceStatus_Values() []string {
19694	return []string{
19695		DataSourceStatusCreating,
19696		DataSourceStatusDeleting,
19697		DataSourceStatusFailed,
19698		DataSourceStatusUpdating,
19699		DataSourceStatusActive,
19700	}
19701}
19702
19703const (
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
19727func DataSourceSyncJobStatus_Values() []string {
19728	return []string{
19729		DataSourceSyncJobStatusFailed,
19730		DataSourceSyncJobStatusSucceeded,
19731		DataSourceSyncJobStatusSyncing,
19732		DataSourceSyncJobStatusIncomplete,
19733		DataSourceSyncJobStatusStopping,
19734		DataSourceSyncJobStatusAborted,
19735		DataSourceSyncJobStatusSyncingIndexing,
19736	}
19737}
19738
19739const (
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
19775func 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
19791const (
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
19806func DatabaseEngineType_Values() []string {
19807	return []string{
19808		DatabaseEngineTypeRdsAuroraMysql,
19809		DatabaseEngineTypeRdsAuroraPostgresql,
19810		DatabaseEngineTypeRdsMysql,
19811		DatabaseEngineTypeRdsPostgresql,
19812	}
19813}
19814
19815const (
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
19830func DocumentAttributeValueType_Values() []string {
19831	return []string{
19832		DocumentAttributeValueTypeStringValue,
19833		DocumentAttributeValueTypeStringListValue,
19834		DocumentAttributeValueTypeLongValue,
19835		DocumentAttributeValueTypeDateValue,
19836	}
19837}
19838
19839const (
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
19860func DocumentStatus_Values() []string {
19861	return []string{
19862		DocumentStatusNotFound,
19863		DocumentStatusProcessing,
19864		DocumentStatusIndexed,
19865		DocumentStatusUpdated,
19866		DocumentStatusFailed,
19867		DocumentStatusUpdateFailed,
19868	}
19869}
19870
19871const (
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
19880func ErrorCode_Values() []string {
19881	return []string{
19882		ErrorCodeInternalError,
19883		ErrorCodeInvalidRequest,
19884	}
19885}
19886
19887const (
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
19899func FaqFileFormat_Values() []string {
19900	return []string{
19901		FaqFileFormatCsv,
19902		FaqFileFormatCsvWithHeader,
19903		FaqFileFormatJson,
19904	}
19905}
19906
19907const (
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
19925func FaqStatus_Values() []string {
19926	return []string{
19927		FaqStatusCreating,
19928		FaqStatusUpdating,
19929		FaqStatusActive,
19930		FaqStatusDeleting,
19931		FaqStatusFailed,
19932	}
19933}
19934
19935const (
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
19944func HighlightType_Values() []string {
19945	return []string{
19946		HighlightTypeStandard,
19947		HighlightTypeThesaurusSynonym,
19948	}
19949}
19950
19951const (
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
19960func IndexEdition_Values() []string {
19961	return []string{
19962		IndexEditionDeveloperEdition,
19963		IndexEditionEnterpriseEdition,
19964	}
19965}
19966
19967const (
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
19988func IndexStatus_Values() []string {
19989	return []string{
19990		IndexStatusCreating,
19991		IndexStatusActive,
19992		IndexStatusDeleting,
19993		IndexStatusFailed,
19994		IndexStatusUpdating,
19995		IndexStatusSystemUpdating,
19996	}
19997}
19998
19999const (
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
20008func KeyLocation_Values() []string {
20009	return []string{
20010		KeyLocationUrl,
20011		KeyLocationSecretManager,
20012	}
20013}
20014
20015const (
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
20024func Mode_Values() []string {
20025	return []string{
20026		ModeEnabled,
20027		ModeLearnOnly,
20028	}
20029}
20030
20031const (
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
20040func Order_Values() []string {
20041	return []string{
20042		OrderAscending,
20043		OrderDescending,
20044	}
20045}
20046
20047const (
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
20065func PrincipalMappingStatus_Values() []string {
20066	return []string{
20067		PrincipalMappingStatusFailed,
20068		PrincipalMappingStatusSucceeded,
20069		PrincipalMappingStatusProcessing,
20070		PrincipalMappingStatusDeleting,
20071		PrincipalMappingStatusDeleted,
20072	}
20073}
20074
20075const (
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
20084func PrincipalType_Values() []string {
20085	return []string{
20086		PrincipalTypeUser,
20087		PrincipalTypeGroup,
20088	}
20089}
20090
20091const (
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
20100func QueryIdentifiersEnclosingOption_Values() []string {
20101	return []string{
20102		QueryIdentifiersEnclosingOptionDoubleQuotes,
20103		QueryIdentifiersEnclosingOptionNone,
20104	}
20105}
20106
20107const (
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
20119func QueryResultType_Values() []string {
20120	return []string{
20121		QueryResultTypeDocument,
20122		QueryResultTypeQuestionAnswer,
20123		QueryResultTypeAnswer,
20124	}
20125}
20126
20127const (
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
20148func QuerySuggestionsBlockListStatus_Values() []string {
20149	return []string{
20150		QuerySuggestionsBlockListStatusActive,
20151		QuerySuggestionsBlockListStatusCreating,
20152		QuerySuggestionsBlockListStatusDeleting,
20153		QuerySuggestionsBlockListStatusUpdating,
20154		QuerySuggestionsBlockListStatusActiveButUpdateFailed,
20155		QuerySuggestionsBlockListStatusFailed,
20156	}
20157}
20158
20159const (
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
20168func QuerySuggestionsStatus_Values() []string {
20169	return []string{
20170		QuerySuggestionsStatusActive,
20171		QuerySuggestionsStatusUpdating,
20172	}
20173}
20174
20175const (
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
20184func ReadAccessType_Values() []string {
20185	return []string{
20186		ReadAccessTypeAllow,
20187		ReadAccessTypeDeny,
20188	}
20189}
20190
20191const (
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
20200func RelevanceType_Values() []string {
20201	return []string{
20202		RelevanceTypeRelevant,
20203		RelevanceTypeNotRelevant,
20204	}
20205}
20206
20207const (
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
20216func SalesforceChatterFeedIncludeFilterType_Values() []string {
20217	return []string{
20218		SalesforceChatterFeedIncludeFilterTypeActiveUser,
20219		SalesforceChatterFeedIncludeFilterTypeStandardUser,
20220	}
20221}
20222
20223const (
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
20235func SalesforceKnowledgeArticleState_Values() []string {
20236	return []string{
20237		SalesforceKnowledgeArticleStateDraft,
20238		SalesforceKnowledgeArticleStatePublished,
20239		SalesforceKnowledgeArticleStateArchived,
20240	}
20241}
20242
20243const (
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
20297func 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.
20320const (
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
20338func ScoreConfidence_Values() []string {
20339	return []string{
20340		ScoreConfidenceVeryHigh,
20341		ScoreConfidenceHigh,
20342		ScoreConfidenceMedium,
20343		ScoreConfidenceLow,
20344		ScoreConfidenceNotAvailable,
20345	}
20346}
20347
20348const (
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
20357func ServiceNowAuthenticationType_Values() []string {
20358	return []string{
20359		ServiceNowAuthenticationTypeHttpBasic,
20360		ServiceNowAuthenticationTypeOauth2,
20361	}
20362}
20363
20364const (
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
20373func ServiceNowBuildVersionType_Values() []string {
20374	return []string{
20375		ServiceNowBuildVersionTypeLondon,
20376		ServiceNowBuildVersionTypeOthers,
20377	}
20378}
20379
20380const (
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
20392func SharePointVersion_Values() []string {
20393	return []string{
20394		SharePointVersionSharepoint2013,
20395		SharePointVersionSharepoint2016,
20396		SharePointVersionSharepointOnline,
20397	}
20398}
20399
20400const (
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
20409func SortOrder_Values() []string {
20410	return []string{
20411		SortOrderDesc,
20412		SortOrderAsc,
20413	}
20414}
20415
20416const (
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
20437func ThesaurusStatus_Values() []string {
20438	return []string{
20439		ThesaurusStatusCreating,
20440		ThesaurusStatusActive,
20441		ThesaurusStatusDeleting,
20442		ThesaurusStatusUpdating,
20443		ThesaurusStatusActiveButUpdateFailed,
20444		ThesaurusStatusFailed,
20445	}
20446}
20447
20448const (
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
20457func UserContextPolicy_Values() []string {
20458	return []string{
20459		UserContextPolicyAttributeFilter,
20460		UserContextPolicyUserToken,
20461	}
20462}
20463
20464const (
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
20473func UserGroupResolutionMode_Values() []string {
20474	return []string{
20475		UserGroupResolutionModeAwsSso,
20476		UserGroupResolutionModeNone,
20477	}
20478}
20479
20480const (
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
20492func WebCrawlerMode_Values() []string {
20493	return []string{
20494		WebCrawlerModeHostOnly,
20495		WebCrawlerModeSubdomains,
20496		WebCrawlerModeEverything,
20497	}
20498}
20499