1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	smithydocument "github.com/aws/smithy-go/document"
7	"time"
8)
9
10// Access Control List files for the documents in a data source. For the format of
11// the file, see Access control for S3 data sources
12// (https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html).
13type AccessControlListConfiguration struct {
14
15	// Path to the Amazon Web Services S3 bucket that contains the ACL files.
16	KeyPath *string
17
18	noSmithyDocumentSerde
19}
20
21// Provides information about the column that should be used for filtering the
22// query response by groups.
23type AclConfiguration struct {
24
25	// A list of groups, separated by semi-colons, that filters a query response based
26	// on user context. The document is only returned to users that are in one of the
27	// groups specified in the UserContext field of the Query operation.
28	//
29	// This member is required.
30	AllowedGroupsColumnName *string
31
32	noSmithyDocumentSerde
33}
34
35// An attribute returned from an index query.
36type AdditionalResultAttribute struct {
37
38	// The key that identifies the attribute.
39	//
40	// This member is required.
41	Key *string
42
43	// An object that contains the attribute value.
44	//
45	// This member is required.
46	Value *AdditionalResultAttributeValue
47
48	// The data type of the Value property.
49	//
50	// This member is required.
51	ValueType AdditionalResultAttributeValueType
52
53	noSmithyDocumentSerde
54}
55
56// An attribute returned with a document from a search.
57type AdditionalResultAttributeValue struct {
58
59	// The text associated with the attribute and information about the highlight to
60	// apply to the text.
61	TextWithHighlightsValue *TextWithHighlights
62
63	noSmithyDocumentSerde
64}
65
66// Provides filtering the query results based on document attributes. When you use
67// the AndAllFilters or OrAllFilters, filters you can use 2 layers under the first
68// attribute filter. For example, you can use:
69//
70// If you use more than 2 layers, you
71// receive a ValidationException exception with the message "AttributeFilter cannot
72// have a depth of more than 2." If you use more than 10 attribute filters, you
73// receive a ValidationException exception with the message "AttributeFilter cannot
74// have a length of more than 10".
75type AttributeFilter struct {
76
77	// Performs a logical AND operation on all supplied filters.
78	AndAllFilters []AttributeFilter
79
80	// Returns true when a document contains all of the specified document attributes.
81	// This filter is only applicable to StringListValue metadata.
82	ContainsAll *DocumentAttribute
83
84	// Returns true when a document contains any of the specified document attributes.
85	// This filter is only applicable to StringListValue metadata.
86	ContainsAny *DocumentAttribute
87
88	// Performs an equals operation on two document attributes.
89	EqualsTo *DocumentAttribute
90
91	// Performs a greater than operation on two document attributes. Use with a
92	// document attribute of type Integer or Long.
93	GreaterThan *DocumentAttribute
94
95	// Performs a greater or equals than operation on two document attributes. Use with
96	// a document attribute of type Integer or Long.
97	GreaterThanOrEquals *DocumentAttribute
98
99	// Performs a less than operation on two document attributes. Use with a document
100	// attribute of type Integer or Long.
101	LessThan *DocumentAttribute
102
103	// Performs a less than or equals operation on two document attributes. Use with a
104	// document attribute of type Integer or Long.
105	LessThanOrEquals *DocumentAttribute
106
107	// Performs a logical NOT operation on all supplied filters.
108	NotFilter *AttributeFilter
109
110	// Performs a logical OR operation on all supplied filters.
111	OrAllFilters []AttributeFilter
112
113	noSmithyDocumentSerde
114}
115
116// Provides the configuration information to connect to websites that require user
117// authentication.
118type AuthenticationConfiguration struct {
119
120	// The list of configuration information that's required to connect to and crawl a
121	// website host using basic authentication credentials. The list includes the name
122	// and port number of the website host.
123	BasicAuthentication []BasicAuthenticationConfiguration
124
125	noSmithyDocumentSerde
126}
127
128// Provides the configuration information to connect to websites that require basic
129// user authentication.
130type BasicAuthenticationConfiguration struct {
131
132	// Your secret ARN, which you can create in AWS Secrets Manager
133	// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) You use
134	// a secret if basic authentication credentials are required to connect to a
135	// website. The secret stores your credentials of user name and password.
136	//
137	// This member is required.
138	Credentials *string
139
140	// The name of the website host you want to connect to using authentication
141	// credentials. For example, the host name of https://a.example.com/page1.html is
142	// "a.example.com".
143	//
144	// This member is required.
145	Host *string
146
147	// The port number of the website host you want to connect to using authentication
148	// credentials. For example, the port for https://a.example.com/page1.html is 443,
149	// the standard port for HTTPS.
150	//
151	// This member is required.
152	Port *int32
153
154	noSmithyDocumentSerde
155}
156
157// Provides information about documents that could not be removed from an index by
158// the BatchDeleteDocument operation.
159type BatchDeleteDocumentResponseFailedDocument struct {
160
161	// The error code for why the document couldn't be removed from the index.
162	ErrorCode ErrorCode
163
164	// An explanation for why the document couldn't be removed from the index.
165	ErrorMessage *string
166
167	// The identifier of the document that couldn't be removed from the index.
168	Id *string
169
170	noSmithyDocumentSerde
171}
172
173// Provides a response when the status of a document could not be retrieved.
174type BatchGetDocumentStatusResponseError struct {
175
176	// The unique identifier of the document whose status could not be retrieved.
177	DocumentId *string
178
179	// Indicates the source of the error.
180	ErrorCode ErrorCode
181
182	// States that the API could not get the status of a document. This could be
183	// because the request is not valid or there is a system error.
184	ErrorMessage *string
185
186	noSmithyDocumentSerde
187}
188
189// Provides information about a document that could not be indexed.
190type BatchPutDocumentResponseFailedDocument struct {
191
192	// The type of error that caused the document to fail to be indexed.
193	ErrorCode ErrorCode
194
195	// A description of the reason why the document could not be indexed.
196	ErrorMessage *string
197
198	// The unique identifier of the document.
199	Id *string
200
201	noSmithyDocumentSerde
202}
203
204// Specifies capacity units configured for your enterprise edition index. You can
205// add and remove capacity units to tune an index to your requirements.
206type CapacityUnitsConfiguration struct {
207
208	// The amount of extra query capacity for an index and GetQuerySuggestions
209	// (https://docs.aws.amazon.com/kendra/latest/dg/API_GetQuerySuggestions.html)
210	// capacity. A single extra capacity unit for an index provides 0.1 queries per
211	// second or approximately 8,000 queries per day. GetQuerySuggestions capacity is
212	// five times the provisioned query capacity for an index, or the base capacity of
213	// 2.5 calls per second, whichever is higher. For example, the base capacity for an
214	// index is 0.1 queries per second, and GetQuerySuggestions capacity has a base of
215	// 2.5 calls per second. If you add another 0.1 queries per second to total 0.2
216	// queries per second for an index, the GetQuerySuggestions capacity is 2.5 calls
217	// per second (higher than five times 0.2 queries per second).
218	//
219	// This member is required.
220	QueryCapacityUnits *int32
221
222	// The amount of extra storage capacity for an index. A single capacity unit
223	// provides 30 GB of storage space or 100,000 documents, whichever is reached
224	// first.
225	//
226	// This member is required.
227	StorageCapacityUnits *int32
228
229	noSmithyDocumentSerde
230}
231
232// Gathers information about when a particular result was clicked by a user. Your
233// application uses the SubmitFeedback operation to provide click information.
234type ClickFeedback struct {
235
236	// The Unix timestamp of the date and time that the result was clicked.
237	//
238	// This member is required.
239	ClickTime *time.Time
240
241	// The unique identifier of the search result that was clicked.
242	//
243	// This member is required.
244	ResultId *string
245
246	noSmithyDocumentSerde
247}
248
249// Provides information about how Amazon Kendra should use the columns of a
250// database in an index.
251type ColumnConfiguration struct {
252
253	// One to five columns that indicate when a document in the database has changed.
254	//
255	// This member is required.
256	ChangeDetectingColumns []string
257
258	// The column that contains the contents of the document.
259	//
260	// This member is required.
261	DocumentDataColumnName *string
262
263	// The column that provides the document's unique identifier.
264	//
265	// This member is required.
266	DocumentIdColumnName *string
267
268	// The column that contains the title of the document.
269	DocumentTitleColumnName *string
270
271	// An array of objects that map database column names to the corresponding fields
272	// in an index. You must first create the fields in the index using the UpdateIndex
273	// operation.
274	FieldMappings []DataSourceToIndexFieldMapping
275
276	noSmithyDocumentSerde
277}
278
279// Specifies the attachment settings for the Confluence data source. Attachment
280// settings are optional, if you don't specify settings attachments, Amazon Kendra
281// won't index them.
282type ConfluenceAttachmentConfiguration struct {
283
284	// Defines how attachment metadata fields should be mapped to index fields. Before
285	// you can map a field, you must first create an index field with a matching type
286	// using the console or the UpdateIndex operation. If you specify the
287	// AttachentFieldMappings parameter, you must specify at least one field mapping.
288	AttachmentFieldMappings []ConfluenceAttachmentToIndexFieldMapping
289
290	// Indicates whether Amazon Kendra indexes attachments to the pages and blogs in
291	// the Confluence data source.
292	CrawlAttachments bool
293
294	noSmithyDocumentSerde
295}
296
297// Defines the mapping between a field in the Confluence data source to a Amazon
298// Kendra index field. You must first create the index field using the UpdateIndex
299// operation.
300type ConfluenceAttachmentToIndexFieldMapping struct {
301
302	// The name of the field in the data source. You must first create the index field
303	// using the UpdateIndex operation.
304	DataSourceFieldName ConfluenceAttachmentFieldName
305
306	// The format for date fields in the data source. If the field specified in
307	// DataSourceFieldName is a date field you must specify the date format. If the
308	// field is not a date field, an exception is thrown.
309	DateFieldFormat *string
310
311	// The name of the index field to map to the Confluence data source field. The
312	// index field type must match the Confluence field type.
313	IndexFieldName *string
314
315	noSmithyDocumentSerde
316}
317
318// Specifies the blog settings for the Confluence data source. Blogs are always
319// indexed unless filtered from the index by the ExclusionPatterns or
320// InclusionPatterns fields in the ConfluenceConfiguration type.
321type ConfluenceBlogConfiguration struct {
322
323	// Defines how blog metadata fields should be mapped to index fields. Before you
324	// can map a field, you must first create an index field with a matching type using
325	// the console or the UpdateIndex operation. If you specify the BlogFieldMappings
326	// parameter, you must specify at least one field mapping.
327	BlogFieldMappings []ConfluenceBlogToIndexFieldMapping
328
329	noSmithyDocumentSerde
330}
331
332// Defines the mapping between a blog field in the Confluence data source to a
333// Amazon Kendra index field. You must first create the index field using the
334// UpdateIndex operation.
335type ConfluenceBlogToIndexFieldMapping struct {
336
337	// The name of the field in the data source.
338	DataSourceFieldName ConfluenceBlogFieldName
339
340	// The format for date fields in the data source. If the field specified in
341	// DataSourceFieldName is a date field you must specify the date format. If the
342	// field is not a date field, an exception is thrown.
343	DateFieldFormat *string
344
345	// The name of the index field to map to the Confluence data source field. The
346	// index field type must match the Confluence field type.
347	IndexFieldName *string
348
349	noSmithyDocumentSerde
350}
351
352// Provides configuration information for data sources that connect to Confluence.
353type ConfluenceConfiguration struct {
354
355	// The Amazon Resource Name (ARN) of an Secrets Managersecret that contains the
356	// key/value pairs required to connect to your Confluence server. The secret must
357	// contain a JSON structure with the following keys:
358	//
359	// * username - The user name or
360	// email address of a user with administrative privileges for the Confluence
361	// server.
362	//
363	// * password - The password associated with the user logging in to the
364	// Confluence server.
365	//
366	// This member is required.
367	SecretArn *string
368
369	// The URL of your Confluence instance. Use the full URL of the server. For
370	// example, https://server.example.com:port/. You can also use an IP address, for
371	// example, https://192.168.1.113/.
372	//
373	// This member is required.
374	ServerUrl *string
375
376	// Specifies the version of the Confluence installation that you are connecting to.
377	//
378	// This member is required.
379	Version ConfluenceVersion
380
381	// Specifies configuration information for indexing attachments to Confluence blogs
382	// and pages.
383	AttachmentConfiguration *ConfluenceAttachmentConfiguration
384
385	// Specifies configuration information for indexing Confluence blogs.
386	BlogConfiguration *ConfluenceBlogConfiguration
387
388	// A list of regular expression patterns that apply to a URL on the Confluence
389	// server. An exclusion pattern can apply to a blog post, a page, a space, or an
390	// attachment. Items that match the pattern are excluded from the index. Items that
391	// don't match the pattern are included in the index. If a item matches both an
392	// exclusion pattern and an inclusion pattern, the item isn't included in the
393	// index.
394	ExclusionPatterns []string
395
396	// A list of regular expression patterns that apply to a URL on the Confluence
397	// server. An inclusion pattern can apply to a blog post, a page, a space, or an
398	// attachment. Items that match the patterns are included in the index. Items that
399	// don't match the pattern are excluded from the index. If an item matches both an
400	// inclusion pattern and an exclusion pattern, the item isn't included in the
401	// index.
402	InclusionPatterns []string
403
404	// Specifies configuration information for indexing Confluence pages.
405	PageConfiguration *ConfluencePageConfiguration
406
407	// Specifies configuration information for indexing Confluence spaces.
408	SpaceConfiguration *ConfluenceSpaceConfiguration
409
410	// Specifies the information for connecting to an Amazon VPC.
411	VpcConfiguration *DataSourceVpcConfiguration
412
413	noSmithyDocumentSerde
414}
415
416// Specifies the page settings for the Confluence data source.
417type ConfluencePageConfiguration struct {
418
419	// Defines how page metadata fields should be mapped to index fields. Before you
420	// can map a field, you must first create an index field with a matching type using
421	// the console or the UpdateIndex operation. If you specify the PageFieldMappings
422	// parameter, you must specify at least one field mapping.
423	PageFieldMappings []ConfluencePageToIndexFieldMapping
424
425	noSmithyDocumentSerde
426}
427
428// Defines the mapping between a field in the Confluence data source to a Amazon
429// Kendra index field. You must first create the index field using the UpdateIndex
430// operation.
431type ConfluencePageToIndexFieldMapping struct {
432
433	// The name of the field in the data source.
434	DataSourceFieldName ConfluencePageFieldName
435
436	// The format for date fields in the data source. If the field specified in
437	// DataSourceFieldName is a date field you must specify the date format. If the
438	// field is not a date field, an exception is thrown.
439	DateFieldFormat *string
440
441	// The name of the index field to map to the Confluence data source field. The
442	// index field type must match the Confluence field type.
443	IndexFieldName *string
444
445	noSmithyDocumentSerde
446}
447
448// Specifies the configuration for indexing Confluence spaces.
449type ConfluenceSpaceConfiguration struct {
450
451	// Specifies whether Amazon Kendra should index archived spaces.
452	CrawlArchivedSpaces bool
453
454	// Specifies whether Amazon Kendra should index personal spaces. Users can add
455	// restrictions to items in personal spaces. If personal spaces are indexed,
456	// queries without user context information may return restricted items from a
457	// personal space in their results. For more information, see Filtering on user
458	// context (https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html).
459	CrawlPersonalSpaces bool
460
461	// A list of space keys of Confluence spaces. If you include a key, the blogs,
462	// documents, and attachments in the space are not indexed. If a space is in both
463	// the ExcludeSpaces and the IncludeSpaces list, the space is excluded.
464	ExcludeSpaces []string
465
466	// A list of space keys for Confluence spaces. If you include a key, the blogs,
467	// documents, and attachments in the space are indexed. Spaces that aren't in the
468	// list aren't indexed. A space in the list must exist. Otherwise, Amazon Kendra
469	// logs an error when the data source is synchronized. If a space is in both the
470	// IncludeSpaces and the ExcludeSpaces list, the space is excluded.
471	IncludeSpaces []string
472
473	// Defines how space metadata fields should be mapped to index fields. Before you
474	// can map a field, you must first create an index field with a matching type using
475	// the console or the UpdateIndex operation. If you specify the SpaceFieldMappings
476	// parameter, you must specify at least one field mapping.
477	SpaceFieldMappings []ConfluenceSpaceToIndexFieldMapping
478
479	noSmithyDocumentSerde
480}
481
482// Defines the mapping between a field in the Confluence data source to a Amazon
483// Kendra index field. You must first create the index field using the UpdateIndex
484// operation.
485type ConfluenceSpaceToIndexFieldMapping struct {
486
487	// The name of the field in the data source.
488	DataSourceFieldName ConfluenceSpaceFieldName
489
490	// The format for date fields in the data source. If the field specified in
491	// DataSourceFieldName is a date field you must specify the date format. If the
492	// field is not a date field, an exception is thrown.
493	DateFieldFormat *string
494
495	// The name of the index field to map to the Confluence data source field. The
496	// index field type must match the Confluence field type.
497	IndexFieldName *string
498
499	noSmithyDocumentSerde
500}
501
502// Provides the information necessary to connect to a database.
503type ConnectionConfiguration struct {
504
505	// The name of the host for the database. Can be either a string
506	// (host.subdomain.domain.tld) or an IPv4 or IPv6 address.
507	//
508	// This member is required.
509	DatabaseHost *string
510
511	// The name of the database containing the document data.
512	//
513	// This member is required.
514	DatabaseName *string
515
516	// The port that the database uses for connections.
517	//
518	// This member is required.
519	DatabasePort *int32
520
521	// The Amazon Resource Name (ARN) of credentials stored in Secrets Manager. The
522	// credentials should be a user/password pair. For more information, see Using a
523	// Database Data Source
524	// (https://docs.aws.amazon.com/kendra/latest/dg/data-source-database.html). For
525	// more information about Secrets Manager, see  What Is Secrets Manager
526	// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) in the
527	// Secrets Manager user guide.
528	//
529	// This member is required.
530	SecretArn *string
531
532	// The name of the table that contains the document data.
533	//
534	// This member is required.
535	TableName *string
536
537	noSmithyDocumentSerde
538}
539
540// Provides the information necessary to connect a database to an index.
541type DatabaseConfiguration struct {
542
543	// Information about where the index should get the document information from the
544	// database.
545	//
546	// This member is required.
547	ColumnConfiguration *ColumnConfiguration
548
549	// The information necessary to connect to a database.
550	//
551	// This member is required.
552	ConnectionConfiguration *ConnectionConfiguration
553
554	// The type of database engine that runs the database.
555	//
556	// This member is required.
557	DatabaseEngineType DatabaseEngineType
558
559	// Information about the database column that provides information for user context
560	// filtering.
561	AclConfiguration *AclConfiguration
562
563	// Provides information about how Amazon Kendra uses quote marks around SQL
564	// identifiers when querying a database data source.
565	SqlConfiguration *SqlConfiguration
566
567	// Provides information for connecting to an Amazon VPC.
568	VpcConfiguration *DataSourceVpcConfiguration
569
570	noSmithyDocumentSerde
571}
572
573// Configuration information for a Amazon Kendra data source.
574type DataSourceConfiguration struct {
575
576	// Provides configuration information for connecting to a Confluence data source.
577	ConfluenceConfiguration *ConfluenceConfiguration
578
579	// Provides information necessary to create a data source connector for a database.
580	DatabaseConfiguration *DatabaseConfiguration
581
582	// Provides configuration for data sources that connect to Google Drive.
583	GoogleDriveConfiguration *GoogleDriveConfiguration
584
585	// Provides configuration for data sources that connect to Microsoft OneDrive.
586	OneDriveConfiguration *OneDriveConfiguration
587
588	// Provides information to create a data source connector for a document repository
589	// in an Amazon S3 bucket.
590	S3Configuration *S3DataSourceConfiguration
591
592	// Provides configuration information for data sources that connect to a Salesforce
593	// site.
594	SalesforceConfiguration *SalesforceConfiguration
595
596	// Provides configuration for data sources that connect to ServiceNow instances.
597	ServiceNowConfiguration *ServiceNowConfiguration
598
599	// Provides information necessary to create a data source connector for a Microsoft
600	// SharePoint site.
601	SharePointConfiguration *SharePointConfiguration
602
603	// Provides the configuration information required for Amazon Kendra web crawler.
604	WebCrawlerConfiguration *WebCrawlerConfiguration
605
606	// Provides the configuration information to connect to WorkDocs as your data
607	// source.
608	WorkDocsConfiguration *WorkDocsConfiguration
609
610	noSmithyDocumentSerde
611}
612
613// Data source information for user context filtering.
614type DataSourceGroup struct {
615
616	// The identifier of the data source group you want to add to your list of data
617	// source groups. This is for filtering search results based on the groups' access
618	// to documents in that data source.
619	//
620	// This member is required.
621	DataSourceId *string
622
623	// The identifier of the group you want to add to your list of groups. This is for
624	// filtering search results based on the groups' access to documents.
625	//
626	// This member is required.
627	GroupId *string
628
629	noSmithyDocumentSerde
630}
631
632// Summary information for a Amazon Kendra data source. Returned in a call to the
633// DescribeDataSource operation.
634type DataSourceSummary struct {
635
636	// The UNIX datetime that the data source was created.
637	CreatedAt *time.Time
638
639	// The unique identifier for the data source.
640	Id *string
641
642	// The name of the data source.
643	Name *string
644
645	// The status of the data source. When the status is ACTIVE the data source is
646	// ready to use.
647	Status DataSourceStatus
648
649	// The type of the data source.
650	Type DataSourceType
651
652	// The UNIX datetime that the data source was lasted updated.
653	UpdatedAt *time.Time
654
655	noSmithyDocumentSerde
656}
657
658// Provides information about a synchronization job.
659type DataSourceSyncJob struct {
660
661	// If the reason that the synchronization failed is due to an error with the
662	// underlying data source, this field contains a code that identifies the error.
663	DataSourceErrorCode *string
664
665	// The UNIX datetime that the synchronization job was completed.
666	EndTime *time.Time
667
668	// If the Status field is set to FAILED, the ErrorCode field contains a the reason
669	// that the synchronization failed.
670	ErrorCode ErrorCode
671
672	// If the Status field is set to ERROR, the ErrorMessage field contains a
673	// description of the error that caused the synchronization to fail.
674	ErrorMessage *string
675
676	// A unique identifier for the synchronization job.
677	ExecutionId *string
678
679	// Maps a batch delete document request to a specific data source sync job. This is
680	// optional and should only be supplied when documents are deleted by a data source
681	// connector.
682	Metrics *DataSourceSyncJobMetrics
683
684	// The UNIX datetime that the synchronization job was started.
685	StartTime *time.Time
686
687	// The execution status of the synchronization job. When the Status field is set to
688	// SUCCEEDED, the synchronization job is done. If the status code is set to FAILED,
689	// the ErrorCode and ErrorMessage fields give you the reason for the failure.
690	Status DataSourceSyncJobStatus
691
692	noSmithyDocumentSerde
693}
694
695// Maps a batch delete document request to a specific data source sync job. This is
696// optional and should only be supplied when documents are deleted by a data source
697// connector.
698type DataSourceSyncJobMetrics struct {
699
700	// The number of documents added from the data source up to now in the data source
701	// sync.
702	DocumentsAdded *string
703
704	// The number of documents deleted from the data source up to now in the data
705	// source sync run.
706	DocumentsDeleted *string
707
708	// The number of documents that failed to sync from the data source up to now in
709	// the data source sync run.
710	DocumentsFailed *string
711
712	// The number of documents modified in the data source up to now in the data source
713	// sync run.
714	DocumentsModified *string
715
716	// The current number of documents crawled by the current sync job in the data
717	// source.
718	DocumentsScanned *string
719
720	noSmithyDocumentSerde
721}
722
723// Maps a particular data source sync job to a particular data source.
724type DataSourceSyncJobMetricTarget struct {
725
726	// The ID of the data source that is running the sync job.
727	//
728	// This member is required.
729	DataSourceId *string
730
731	// The ID of the sync job that is running on the data source. If the ID of a sync
732	// job is not provided and there is a sync job running, then the ID of this sync
733	// job is used and metrics are generated for this sync job. If the ID of a sync job
734	// is not provided and there is no sync job running, then no metrics are generated
735	// and documents are indexed/deleted at the index level without sync job metrics
736	// included.
737	DataSourceSyncJobId *string
738
739	noSmithyDocumentSerde
740}
741
742// Maps a column or attribute in the data source to an index field. You must first
743// create the fields in the index using the UpdateIndex operation.
744type DataSourceToIndexFieldMapping struct {
745
746	// The name of the column or attribute in the data source.
747	//
748	// This member is required.
749	DataSourceFieldName *string
750
751	// The name of the field in the index.
752	//
753	// This member is required.
754	IndexFieldName *string
755
756	// The type of data stored in the column or attribute.
757	DateFieldFormat *string
758
759	noSmithyDocumentSerde
760}
761
762// Provides information for connecting to an Amazon VPC.
763type DataSourceVpcConfiguration struct {
764
765	// A list of identifiers of security groups within your Amazon VPC. The security
766	// groups should enable Amazon Kendra to connect to the data source.
767	//
768	// This member is required.
769	SecurityGroupIds []string
770
771	// A list of identifiers for subnets within your Amazon VPC. The subnets should be
772	// able to connect to each other in the VPC, and they should have outgoing access
773	// to the Internet through a NAT device.
774	//
775	// This member is required.
776	SubnetIds []string
777
778	noSmithyDocumentSerde
779}
780
781// A document in an index.
782type Document struct {
783
784	// A unique identifier of the document in the index.
785	//
786	// This member is required.
787	Id *string
788
789	// Information on user and group access rights, which is used for user context
790	// filtering.
791	AccessControlList []Principal
792
793	// Custom attributes to apply to the document. Use the custom attributes to provide
794	// additional information for searching, to provide facets for refining searches,
795	// and to provide additional information in the query response.
796	Attributes []DocumentAttribute
797
798	// The contents of the document. Documents passed to the Blob parameter must be
799	// base64 encoded. Your code might not need to encode the document file bytes if
800	// you're using an Amazon Web Services SDK to call Amazon Kendra operations. If you
801	// are calling the Amazon Kendra endpoint directly using REST, you must base64
802	// encode the contents before sending.
803	Blob []byte
804
805	// The file type of the document in the Blob field.
806	ContentType ContentType
807
808	// The list of principal
809	// (https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html) lists that
810	// define the hierarchy for which documents users should have access to.
811	HierarchicalAccessControlList []HierarchicalPrincipal
812
813	// Information required to find a specific file in an Amazon S3 bucket.
814	S3Path *S3Path
815
816	// The title of the document.
817	Title *string
818
819	noSmithyDocumentSerde
820}
821
822// A custom attribute value assigned to a document.
823type DocumentAttribute struct {
824
825	// The identifier for the attribute.
826	//
827	// This member is required.
828	Key *string
829
830	// The value of the attribute.
831	//
832	// This member is required.
833	Value DocumentAttributeValue
834
835	noSmithyDocumentSerde
836}
837
838// The value of a custom document attribute. You can only provide one value for a
839// custom attribute.
840//
841// The following types satisfy this interface:
842//  DocumentAttributeValueMemberStringValue
843//  DocumentAttributeValueMemberStringListValue
844//  DocumentAttributeValueMemberLongValue
845//  DocumentAttributeValueMemberDateValue
846type DocumentAttributeValue interface {
847	isDocumentAttributeValue()
848}
849
850// A string, such as "department".
851type DocumentAttributeValueMemberStringValue struct {
852	Value string
853
854	noSmithyDocumentSerde
855}
856
857func (*DocumentAttributeValueMemberStringValue) isDocumentAttributeValue() {}
858
859// A list of strings.
860type DocumentAttributeValueMemberStringListValue struct {
861	Value []string
862
863	noSmithyDocumentSerde
864}
865
866func (*DocumentAttributeValueMemberStringListValue) isDocumentAttributeValue() {}
867
868// A long integer value.
869type DocumentAttributeValueMemberLongValue struct {
870	Value int64
871
872	noSmithyDocumentSerde
873}
874
875func (*DocumentAttributeValueMemberLongValue) isDocumentAttributeValue() {}
876
877// A date expressed as an ISO 8601 string. It is important for the time zone to be
878// included in the ISO 8601 date-time format. For example, 20120325T123010+01:00 is
879// the ISO 8601 date-time format for March 25th 2012 at 12:30PM (plus 10 seconds)
880// in Central European Time.
881type DocumentAttributeValueMemberDateValue struct {
882	Value time.Time
883
884	noSmithyDocumentSerde
885}
886
887func (*DocumentAttributeValueMemberDateValue) isDocumentAttributeValue() {}
888
889// Provides the count of documents that match a particular attribute when doing a
890// faceted search.
891type DocumentAttributeValueCountPair struct {
892
893	// The number of documents in the response that have the attribute value for the
894	// key.
895	Count *int32
896
897	// The value of the attribute. For example, "HR."
898	DocumentAttributeValue DocumentAttributeValue
899
900	noSmithyDocumentSerde
901}
902
903// Identifies a document for which to retrieve status information
904type DocumentInfo struct {
905
906	// The unique identifier of the document.
907	//
908	// This member is required.
909	DocumentId *string
910
911	// Attributes that identify a specific version of a document to check. The only
912	// valid attributes are:
913	//
914	// * version
915	//
916	// * datasourceId
917	//
918	// * jobExecutionId
919	//
920	// The
921	// attributes follow these rules:
922	//
923	// * dataSourceId and jobExecutionId must be used
924	// together.
925	//
926	// * version is ignored if dataSourceId and jobExecutionId are not
927	// provided.
928	//
929	// * If dataSourceId and jobExecutionId are provided, but version is
930	// not, the version defaults to "0".
931	Attributes []DocumentAttribute
932
933	noSmithyDocumentSerde
934}
935
936// Specifies the properties of a custom index field.
937type DocumentMetadataConfiguration struct {
938
939	// The name of the index field.
940	//
941	// This member is required.
942	Name *string
943
944	// The data type of the index field.
945	//
946	// This member is required.
947	Type DocumentAttributeValueType
948
949	// Provides manual tuning parameters to determine how the field affects the search
950	// results.
951	Relevance *Relevance
952
953	// Provides information about how the field is used during a search.
954	Search *Search
955
956	noSmithyDocumentSerde
957}
958
959// Overrides the document relevance properties of a custom index field.
960type DocumentRelevanceConfiguration struct {
961
962	// The name of the tuning configuration to override document relevance at the index
963	// level.
964	//
965	// This member is required.
966	Name *string
967
968	// Provides information for manually tuning the relevance of a field in a search.
969	// When a query includes terms that match the field, the results are given a boost
970	// in the response based on these tuning parameters.
971	//
972	// This member is required.
973	Relevance *Relevance
974
975	noSmithyDocumentSerde
976}
977
978// Document metadata files that contain information such as the document access
979// control information, source URI, document author, and custom attributes. Each
980// metadata file contains metadata about a single document.
981type DocumentsMetadataConfiguration struct {
982
983	// A prefix used to filter metadata configuration files in the Amazon Web Services
984	// S3 bucket. The S3 bucket might contain multiple metadata files. Use S3Prefix to
985	// include only the desired metadata files.
986	S3Prefix *string
987
988	noSmithyDocumentSerde
989}
990
991// Information about a document attribute
992type Facet struct {
993
994	// The unique key for the document attribute.
995	DocumentAttributeKey *string
996
997	noSmithyDocumentSerde
998}
999
1000// The facet values for the documents in the response.
1001type FacetResult struct {
1002
1003	// The key for the facet values. This is the same as the DocumentAttributeKey
1004	// provided in the query.
1005	DocumentAttributeKey *string
1006
1007	// An array of key/value pairs, where the key is the value of the attribute and the
1008	// count is the number of documents that share the key value.
1009	DocumentAttributeValueCountPairs []DocumentAttributeValueCountPair
1010
1011	// The data type of the facet value. This is the same as the type defined for the
1012	// index field when it was created.
1013	DocumentAttributeValueType DocumentAttributeValueType
1014
1015	noSmithyDocumentSerde
1016}
1017
1018// Provides statistical information about the FAQ questions and answers contained
1019// in an index.
1020type FaqStatistics struct {
1021
1022	// The total number of FAQ questions and answers contained in the index.
1023	//
1024	// This member is required.
1025	IndexedQuestionAnswersCount int32
1026
1027	noSmithyDocumentSerde
1028}
1029
1030// Provides information about a frequently asked questions and answer contained in
1031// an index.
1032type FaqSummary struct {
1033
1034	// The UNIX datetime that the FAQ was added to the index.
1035	CreatedAt *time.Time
1036
1037	// The file type used to create the FAQ.
1038	FileFormat FaqFileFormat
1039
1040	// The unique identifier of the FAQ.
1041	Id *string
1042
1043	// The name that you assigned the FAQ when you created or updated the FAQ.
1044	Name *string
1045
1046	// The current status of the FAQ. When the status is ACTIVE the FAQ is ready for
1047	// use.
1048	Status FaqStatus
1049
1050	// The UNIX datetime that the FAQ was last updated.
1051	UpdatedAt *time.Time
1052
1053	noSmithyDocumentSerde
1054}
1055
1056// Provides configuration information for data sources that connect to Google
1057// Drive.
1058type GoogleDriveConfiguration struct {
1059
1060	// The Amazon Resource Name (ARN) of a Secrets Managersecret that contains the
1061	// credentials required to connect to Google Drive. For more information, see Using
1062	// a Google Workspace Drive data source
1063	// (https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html).
1064	//
1065	// This member is required.
1066	SecretArn *string
1067
1068	// A list of MIME types to exclude from the index. All documents matching the
1069	// specified MIME type are excluded. For a list of MIME types, see Using a Google
1070	// Workspace Drive data source
1071	// (https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html).
1072	ExcludeMimeTypes []string
1073
1074	// A list of identifiers or shared drives to exclude from the index. All files and
1075	// folders stored on the shared drive are excluded.
1076	ExcludeSharedDrives []string
1077
1078	// A list of email addresses of the users. Documents owned by these users are
1079	// excluded from the index. Documents shared with excluded users are indexed unless
1080	// they are excluded in another way.
1081	ExcludeUserAccounts []string
1082
1083	// A list of regular expression patterns that apply to the path on Google Drive.
1084	// Items that match the pattern are excluded from the index from both shared drives
1085	// and users' My Drives. Items that don't match the pattern are included in the
1086	// index. If an item matches both an exclusion pattern and an inclusion pattern, it
1087	// is excluded from the index.
1088	ExclusionPatterns []string
1089
1090	// Defines mapping between a field in the Google Drive and a Amazon Kendra index
1091	// field. If you are using the console, you can define index fields when creating
1092	// the mapping. If you are using the API, you must first create the field using the
1093	// UpdateIndex operation.
1094	FieldMappings []DataSourceToIndexFieldMapping
1095
1096	// A list of regular expression patterns that apply to path on Google Drive. Items
1097	// that match the pattern are included in the index from both shared drives and
1098	// users' My Drives. Items that don't match the pattern are excluded from the
1099	// index. If an item matches both an inclusion pattern and an exclusion pattern, it
1100	// is excluded from the index.
1101	InclusionPatterns []string
1102
1103	noSmithyDocumentSerde
1104}
1105
1106// A list of users or sub groups that belong to a group. Users and groups are
1107// useful for filtering search results to different users based on their group's
1108// access to documents.
1109type GroupMembers struct {
1110
1111	// A list of sub groups that belong to a group. For example, the sub groups
1112	// "Research", "Engineering", and "Sales and Marketing" all belong to the group
1113	// "Company".
1114	MemberGroups []MemberGroup
1115
1116	// A list of users that belong to a group. For example, a list of interns all
1117	// belong to the "Interns" group.
1118	MemberUsers []MemberUser
1119
1120	// If you have more than 1000 users and/or sub groups for a single group, you need
1121	// to provide the path to the S3 file that lists your users and sub groups for a
1122	// group. Your sub groups can contain more than 1000 users, but the list of sub
1123	// groups that belong to a group (and/or users) must be no more than 1000.
1124	S3PathforGroupMembers *S3Path
1125
1126	noSmithyDocumentSerde
1127}
1128
1129// Information on the processing of PUT and DELETE actions for mapping users to
1130// their groups.
1131type GroupOrderingIdSummary struct {
1132
1133	// The reason an action could not be processed. An action can be a PUT or DELETE
1134	// action for mapping users to their groups.
1135	FailureReason *string
1136
1137	// The last date-time an action was updated. An action can be a PUT or DELETE
1138	// action for mapping users to their groups.
1139	LastUpdatedAt *time.Time
1140
1141	// The order in which actions should complete processing. An action can be a PUT or
1142	// DELETE action for mapping users to their groups.
1143	OrderingId *int64
1144
1145	// The date-time an action was received by Amazon Kendra. An action can be a PUT or
1146	// DELETE action for mapping users to their groups.
1147	ReceivedAt *time.Time
1148
1149	// The current processing status of actions for mapping users to their groups. The
1150	// status can be either PROCESSING, SUCCEEDED, DELETING, DELETED, or FAILED.
1151	Status PrincipalMappingStatus
1152
1153	noSmithyDocumentSerde
1154}
1155
1156// Group summary information.
1157type GroupSummary struct {
1158
1159	// The identifier of the group you want group summary information on.
1160	GroupId *string
1161
1162	// The timestamp identifier used for the latest PUT or DELETE action.
1163	OrderingId *int64
1164
1165	noSmithyDocumentSerde
1166}
1167
1168// Information to define the hierarchy for which documents users should have access
1169// to.
1170type HierarchicalPrincipal struct {
1171
1172	// A list of principal
1173	// (https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html) lists that
1174	// define the hierarchy for which documents users should have access to. Each
1175	// hierarchical list specifies which user or group has allow or deny access for
1176	// each document.
1177	//
1178	// This member is required.
1179	PrincipalList []Principal
1180
1181	noSmithyDocumentSerde
1182}
1183
1184// Provides information that you can use to highlight a search result so that your
1185// users can quickly identify terms in the response.
1186type Highlight struct {
1187
1188	// The zero-based location in the response string where the highlight starts.
1189	//
1190	// This member is required.
1191	BeginOffset *int32
1192
1193	// The zero-based location in the response string where the highlight ends.
1194	//
1195	// This member is required.
1196	EndOffset *int32
1197
1198	// Indicates whether the response is the best response. True if this is the best
1199	// response; otherwise, false.
1200	TopAnswer bool
1201
1202	// The highlight type.
1203	Type HighlightType
1204
1205	noSmithyDocumentSerde
1206}
1207
1208// A summary of information about an index.
1209type IndexConfigurationSummary struct {
1210
1211	// The Unix timestamp when the index was created.
1212	//
1213	// This member is required.
1214	CreatedAt *time.Time
1215
1216	// The current status of the index. When the status is ACTIVE, the index is ready
1217	// to search.
1218	//
1219	// This member is required.
1220	Status IndexStatus
1221
1222	// The Unix timestamp when the index was last updated by the UpdateIndex operation.
1223	//
1224	// This member is required.
1225	UpdatedAt *time.Time
1226
1227	// Indicates whether the index is a enterprise edition index or a developer edition
1228	// index.
1229	Edition IndexEdition
1230
1231	// A unique identifier for the index. Use this to identify the index when you are
1232	// using operations such as Query, DescribeIndex, UpdateIndex, and DeleteIndex.
1233	Id *string
1234
1235	// The name of the index.
1236	Name *string
1237
1238	noSmithyDocumentSerde
1239}
1240
1241// Provides information about the number of documents and the number of questions
1242// and answers in an index.
1243type IndexStatistics struct {
1244
1245	// The number of question and answer topics in the index.
1246	//
1247	// This member is required.
1248	FaqStatistics *FaqStatistics
1249
1250	// The number of text documents indexed.
1251	//
1252	// This member is required.
1253	TextDocumentStatistics *TextDocumentStatistics
1254
1255	noSmithyDocumentSerde
1256}
1257
1258// Configuration information for the JSON token type.
1259type JsonTokenTypeConfiguration struct {
1260
1261	// The group attribute field.
1262	//
1263	// This member is required.
1264	GroupAttributeField *string
1265
1266	// The user name attribute field.
1267	//
1268	// This member is required.
1269	UserNameAttributeField *string
1270
1271	noSmithyDocumentSerde
1272}
1273
1274// Configuration information for the JWT token type.
1275type JwtTokenTypeConfiguration struct {
1276
1277	// The location of the key.
1278	//
1279	// This member is required.
1280	KeyLocation KeyLocation
1281
1282	// The regular expression that identifies the claim.
1283	ClaimRegex *string
1284
1285	// The group attribute field.
1286	GroupAttributeField *string
1287
1288	// The issuer of the token.
1289	Issuer *string
1290
1291	// The Amazon Resource Name (arn) of the secret.
1292	SecretManagerArn *string
1293
1294	// The signing key URL.
1295	URL *string
1296
1297	// The user name attribute field.
1298	UserNameAttributeField *string
1299
1300	noSmithyDocumentSerde
1301}
1302
1303// The sub groups that belong to a group.
1304type MemberGroup struct {
1305
1306	// The identifier of the sub group you want to map to a group.
1307	//
1308	// This member is required.
1309	GroupId *string
1310
1311	// The identifier of the data source for the sub group you want to map to a group.
1312	DataSourceId *string
1313
1314	noSmithyDocumentSerde
1315}
1316
1317// The users that belong to a group.
1318type MemberUser struct {
1319
1320	// The identifier of the user you want to map to a group.
1321	//
1322	// This member is required.
1323	UserId *string
1324
1325	noSmithyDocumentSerde
1326}
1327
1328// Provides configuration information for data sources that connect to OneDrive.
1329type OneDriveConfiguration struct {
1330
1331	// A list of user accounts whose documents should be indexed.
1332	//
1333	// This member is required.
1334	OneDriveUsers *OneDriveUsers
1335
1336	// The Amazon Resource Name (ARN) of an Secrets Managersecret that contains the
1337	// user name and password to connect to OneDrive. The user namd should be the
1338	// application ID for the OneDrive application, and the password is the application
1339	// key for the OneDrive application.
1340	//
1341	// This member is required.
1342	SecretArn *string
1343
1344	// The Azure Active Directory domain of the organization.
1345	//
1346	// This member is required.
1347	TenantDomain *string
1348
1349	// A Boolean value that specifies whether local groups are disabled (True) or
1350	// enabled (False).
1351	DisableLocalGroups bool
1352
1353	// List of regular expressions applied to documents. Items that match the exclusion
1354	// pattern are not indexed. If you provide both an inclusion pattern and an
1355	// exclusion pattern, any item that matches the exclusion pattern isn't indexed.
1356	// The exclusion pattern is applied to the file name.
1357	ExclusionPatterns []string
1358
1359	// A list of DataSourceToIndexFieldMapping objects that map Microsoft OneDrive
1360	// fields to custom fields in the Amazon Kendra index. You must first create the
1361	// index fields before you map OneDrive fields.
1362	FieldMappings []DataSourceToIndexFieldMapping
1363
1364	// A list of regular expression patterns. Documents that match the pattern are
1365	// included in the index. Documents that don't match the pattern are excluded from
1366	// the index. If a document matches both an inclusion pattern and an exclusion
1367	// pattern, the document is not included in the index. The exclusion pattern is
1368	// applied to the file name.
1369	InclusionPatterns []string
1370
1371	noSmithyDocumentSerde
1372}
1373
1374// User accounts whose documents should be indexed.
1375type OneDriveUsers struct {
1376
1377	// A list of users whose documents should be indexed. Specify the user names in
1378	// email format, for example, username@tenantdomain. If you need to index the
1379	// documents of more than 100 users, use the OneDriveUserS3Path field to specify
1380	// the location of a file containing a list of users.
1381	OneDriveUserList []string
1382
1383	// The S3 bucket location of a file containing a list of users whose documents
1384	// should be indexed.
1385	OneDriveUserS3Path *S3Path
1386
1387	noSmithyDocumentSerde
1388}
1389
1390// Provides user and group information for document access filtering.
1391type Principal struct {
1392
1393	// Whether to allow or deny access to the principal.
1394	//
1395	// This member is required.
1396	Access ReadAccessType
1397
1398	// The name of the user or group.
1399	//
1400	// This member is required.
1401	Name *string
1402
1403	// The type of principal.
1404	//
1405	// This member is required.
1406	Type PrincipalType
1407
1408	// The identifier of the data source the principal should access documents from.
1409	DataSourceId *string
1410
1411	noSmithyDocumentSerde
1412}
1413
1414// Provides the configuration information for a web proxy to connect to website
1415// hosts.
1416type ProxyConfiguration struct {
1417
1418	// The name of the website host you want to connect to via a web proxy server. For
1419	// example, the host name of https://a.example.com/page1.html is "a.example.com".
1420	//
1421	// This member is required.
1422	Host *string
1423
1424	// The port number of the website host you want to connect to via a web proxy
1425	// server. For example, the port for https://a.example.com/page1.html is 443, the
1426	// standard port for HTTPS.
1427	//
1428	// This member is required.
1429	Port *int32
1430
1431	// Your secret ARN, which you can create in AWS Secrets Manager
1432	// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) The
1433	// credentials are optional. You use a secret if web proxy credentials are required
1434	// to connect to a website host. Amazon Kendra currently support basic
1435	// authentication to connect to a web proxy server. The secret stores your
1436	// credentials.
1437	Credentials *string
1438
1439	noSmithyDocumentSerde
1440}
1441
1442// A single query result. A query result contains information about a document
1443// returned by the query. This includes the original location of the document, a
1444// list of attributes assigned to the document, and relevant text from the document
1445// that satisfies the query.
1446type QueryResultItem struct {
1447
1448	// One or more additional attributes associated with the query result.
1449	AdditionalAttributes []AdditionalResultAttribute
1450
1451	// An array of document attributes for the document that the query result maps to.
1452	// For example, the document author (Author) or the source URI (SourceUri) of the
1453	// document.
1454	DocumentAttributes []DocumentAttribute
1455
1456	// An extract of the text in the document. Contains information about highlighting
1457	// the relevant terms in the excerpt.
1458	DocumentExcerpt *TextWithHighlights
1459
1460	// The unique identifier for the document.
1461	DocumentId *string
1462
1463	// The title of the document. Contains the text of the title and information for
1464	// highlighting the relevant terms in the title.
1465	DocumentTitle *TextWithHighlights
1466
1467	// The URI of the original location of the document.
1468	DocumentURI *string
1469
1470	// A token that identifies a particular result from a particular query. Use this
1471	// token to provide click-through feedback for the result. For more information,
1472	// see  Submitting feedback
1473	// (https://docs.aws.amazon.com/kendra/latest/dg/submitting-feedback.html).
1474	FeedbackToken *string
1475
1476	// The unique identifier for the query result.
1477	Id *string
1478
1479	// Indicates the confidence that Amazon Kendra has that a result matches the query
1480	// that you provided. Each result is placed into a bin that indicates the
1481	// confidence, VERY_HIGH, HIGH, MEDIUM and LOW. You can use the score to determine
1482	// if a response meets the confidence needed for your application. The field is
1483	// only set to LOW when the Type field is set to DOCUMENT and Amazon Kendra is not
1484	// confident that the result matches the query.
1485	ScoreAttributes *ScoreAttributes
1486
1487	// The type of document.
1488	Type QueryResultType
1489
1490	noSmithyDocumentSerde
1491}
1492
1493// Summary information on a query suggestions block list. This includes information
1494// on the block list ID, block list name, when the block list was created, when the
1495// block list was last updated, and the count of block words/phrases in the block
1496// list. For information on the current quota limits for block lists, see Quotas
1497// for Amazon Kendra (https://docs.aws.amazon.com/kendra/latest/dg/quotas.html).
1498type QuerySuggestionsBlockListSummary struct {
1499
1500	// The date-time summary information for a query suggestions block list was last
1501	// created.
1502	CreatedAt *time.Time
1503
1504	// The identifier of a block list.
1505	Id *string
1506
1507	// The number of items in the block list file.
1508	ItemCount *int32
1509
1510	// The name of the block list.
1511	Name *string
1512
1513	// The status of the block list.
1514	Status QuerySuggestionsBlockListStatus
1515
1516	// The date-time the block list was last updated.
1517	UpdatedAt *time.Time
1518
1519	noSmithyDocumentSerde
1520}
1521
1522// Provides information for manually tuning the relevance of a field in a search.
1523// When a query includes terms that match the field, the results are given a boost
1524// in the response based on these tuning parameters.
1525type Relevance struct {
1526
1527	// Specifies the time period that the boost applies to. For example, to make the
1528	// boost apply to documents with the field value within the last month, you would
1529	// use "2628000s". Once the field value is beyond the specified range, the effect
1530	// of the boost drops off. The higher the importance, the faster the effect drops
1531	// off. If you don't specify a value, the default is 3 months. The value of the
1532	// field is a numeric string followed by the character "s", for example "86400s"
1533	// for one day, or "604800s" for one week. Only applies to DATE fields.
1534	Duration *string
1535
1536	// Indicates that this field determines how "fresh" a document is. For example, if
1537	// document 1 was created on November 5, and document 2 was created on October 31,
1538	// document 1 is "fresher" than document 2. You can only set the Freshness field on
1539	// one DATE type field. Only applies to DATE fields.
1540	Freshness *bool
1541
1542	// The relative importance of the field in the search. Larger numbers provide more
1543	// of a boost than smaller numbers.
1544	Importance *int32
1545
1546	// Determines how values should be interpreted. When the RankOrder field is
1547	// ASCENDING, higher numbers are better. For example, a document with a rating
1548	// score of 10 is higher ranking than a document with a rating score of 1. When the
1549	// RankOrder field is DESCENDING, lower numbers are better. For example, in a task
1550	// tracking application, a priority 1 task is more important than a priority 5
1551	// task. Only applies to LONG and DOUBLE fields.
1552	RankOrder Order
1553
1554	// A list of values that should be given a different boost when they appear in the
1555	// result list. For example, if you are boosting a field called "department," query
1556	// terms that match the department field are boosted in the result. However, you
1557	// can add entries from the department field to boost documents with those values
1558	// higher. For example, you can add entries to the map with names of departments.
1559	// If you add "HR",5 and "Legal",3 those departments are given special attention
1560	// when they appear in the metadata of a document. When those terms appear they are
1561	// given the specified importance instead of the regular importance for the boost.
1562	ValueImportanceMap map[string]int32
1563
1564	noSmithyDocumentSerde
1565}
1566
1567// Provides feedback on how relevant a document is to a search. Your application
1568// uses the SubmitFeedback operation to provide relevance information.
1569type RelevanceFeedback struct {
1570
1571	// Whether to document was relevant or not relevant to the search.
1572	//
1573	// This member is required.
1574	RelevanceValue RelevanceType
1575
1576	// The unique identifier of the search result that the user provided relevance
1577	// feedback for.
1578	//
1579	// This member is required.
1580	ResultId *string
1581
1582	noSmithyDocumentSerde
1583}
1584
1585// Provides configuration information for a data source to index documents in an
1586// Amazon S3 bucket.
1587type S3DataSourceConfiguration struct {
1588
1589	// The name of the bucket that contains the documents.
1590	//
1591	// This member is required.
1592	BucketName *string
1593
1594	// Provides the path to the S3 bucket that contains the user context filtering
1595	// files for the data source. For the format of the file, see Access control for S3
1596	// data sources (https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html).
1597	AccessControlListConfiguration *AccessControlListConfiguration
1598
1599	// Document metadata files that contain information such as the document access
1600	// control information, source URI, document author, and custom attributes. Each
1601	// metadata file contains metadata about a single document.
1602	DocumentsMetadataConfiguration *DocumentsMetadataConfiguration
1603
1604	// A list of glob patterns for documents that should not be indexed. If a document
1605	// that matches an inclusion prefix or inclusion pattern also matches an exclusion
1606	// pattern, the document is not indexed. Some examples
1607	// (https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters)
1608	// are:
1609	//
1610	// * *.png , *.jpg will exclude all PNG and JPEG image files in a directory
1611	// (files with the extensions .png and .jpg).
1612	//
1613	// * *internal* will exclude all files
1614	// in a directory that contain 'internal' in the file name, such as 'internal',
1615	// 'internal_only', 'company_internal'.
1616	//
1617	// * **/*internal* will exclude all
1618	// internal-related files in a directory and its subdirectories.
1619	ExclusionPatterns []string
1620
1621	// A list of glob patterns for documents that should be indexed. If a document that
1622	// matches an inclusion pattern also matches an exclusion pattern, the document is
1623	// not indexed. Some examples
1624	// (https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters)
1625	// are:
1626	//
1627	// * *.txt will include all text files in a directory (files with the
1628	// extension .txt).
1629	//
1630	// * **/*.txt will include all text files in a directory and its
1631	// subdirectories.
1632	//
1633	// * *tax* will include all files in a directory that contain
1634	// 'tax' in the file name, such as 'tax', 'taxes', 'income_tax'.
1635	InclusionPatterns []string
1636
1637	// A list of S3 prefixes for the documents that should be included in the index.
1638	InclusionPrefixes []string
1639
1640	noSmithyDocumentSerde
1641}
1642
1643// Information required to find a specific file in an Amazon S3 bucket.
1644type S3Path struct {
1645
1646	// The name of the S3 bucket that contains the file.
1647	//
1648	// This member is required.
1649	Bucket *string
1650
1651	// The name of the file.
1652	//
1653	// This member is required.
1654	Key *string
1655
1656	noSmithyDocumentSerde
1657}
1658
1659// Defines configuration for syncing a Salesforce chatter feed. The contents of the
1660// object comes from the Salesforce FeedItem table.
1661type SalesforceChatterFeedConfiguration struct {
1662
1663	// The name of the column in the Salesforce FeedItem table that contains the
1664	// content to index. Typically this is the Body column.
1665	//
1666	// This member is required.
1667	DocumentDataFieldName *string
1668
1669	// The name of the column in the Salesforce FeedItem table that contains the title
1670	// of the document. This is typically the Title column.
1671	DocumentTitleFieldName *string
1672
1673	// Maps fields from a Salesforce chatter feed into Amazon Kendra index fields.
1674	FieldMappings []DataSourceToIndexFieldMapping
1675
1676	// Filters the documents in the feed based on status of the user. When you specify
1677	// ACTIVE_USERS only documents from users who have an active account are indexed.
1678	// When you specify STANDARD_USER only documents for Salesforce standard users are
1679	// documented. You can specify both.
1680	IncludeFilterTypes []SalesforceChatterFeedIncludeFilterType
1681
1682	noSmithyDocumentSerde
1683}
1684
1685// Provides configuration information for connecting to a Salesforce data source.
1686type SalesforceConfiguration struct {
1687
1688	// The Amazon Resource Name (ARN) of an Secrets Managersecret that contains the
1689	// key/value pairs required to connect to your Salesforce instance. The secret must
1690	// contain a JSON structure with the following keys:
1691	//
1692	// * authenticationUrl - The
1693	// OAUTH endpoint that Amazon Kendra connects to get an OAUTH token.
1694	//
1695	// * consumerKey
1696	// - The application public key generated when you created your Salesforce
1697	// application.
1698	//
1699	// * consumerSecret - The application private key generated when you
1700	// created your Salesforce application.
1701	//
1702	// * password - The password associated with
1703	// the user logging in to the Salesforce instance.
1704	//
1705	// * securityToken - The token
1706	// associated with the user account logging in to the Salesforce instance.
1707	//
1708	// *
1709	// username - The user name of the user logging in to the Salesforce instance.
1710	//
1711	// This member is required.
1712	SecretArn *string
1713
1714	// The instance URL for the Salesforce site that you want to index.
1715	//
1716	// This member is required.
1717	ServerUrl *string
1718
1719	// Specifies configuration information for Salesforce chatter feeds.
1720	ChatterFeedConfiguration *SalesforceChatterFeedConfiguration
1721
1722	// Indicates whether Amazon Kendra should index attachments to Salesforce objects.
1723	CrawlAttachments bool
1724
1725	// A list of regular expression patterns. Documents that match the patterns are
1726	// excluded from the index. Documents that don't match the patterns are included in
1727	// the index. If a document matches both an exclusion pattern and an inclusion
1728	// pattern, the document is not included in the index. The regex is applied to the
1729	// name of the attached file.
1730	ExcludeAttachmentFilePatterns []string
1731
1732	// A list of regular expression patterns. Documents that match the patterns are
1733	// included in the index. Documents that don't match the patterns are excluded from
1734	// the index. If a document matches both an inclusion pattern and an exclusion
1735	// pattern, the document is not included in the index. The regex is applied to the
1736	// name of the attached file.
1737	IncludeAttachmentFilePatterns []string
1738
1739	// Specifies configuration information for the knowledge article types that Amazon
1740	// Kendra indexes. Amazon Kendra indexes standard knowledge articles and the
1741	// standard fields of knowledge articles, or the custom fields of custom knowledge
1742	// articles, but not both.
1743	KnowledgeArticleConfiguration *SalesforceKnowledgeArticleConfiguration
1744
1745	// Provides configuration information for processing attachments to Salesforce
1746	// standard objects.
1747	StandardObjectAttachmentConfiguration *SalesforceStandardObjectAttachmentConfiguration
1748
1749	// Specifies the Salesforce standard objects that Amazon Kendra indexes.
1750	StandardObjectConfigurations []SalesforceStandardObjectConfiguration
1751
1752	noSmithyDocumentSerde
1753}
1754
1755// Provides configuration information for indexing Salesforce custom articles.
1756type SalesforceCustomKnowledgeArticleTypeConfiguration struct {
1757
1758	// The name of the field in the custom knowledge article that contains the document
1759	// data to index.
1760	//
1761	// This member is required.
1762	DocumentDataFieldName *string
1763
1764	// The name of the configuration.
1765	//
1766	// This member is required.
1767	Name *string
1768
1769	// The name of the field in the custom knowledge article that contains the document
1770	// title.
1771	DocumentTitleFieldName *string
1772
1773	// One or more objects that map fields in the custom knowledge article to fields in
1774	// the Amazon Kendra index.
1775	FieldMappings []DataSourceToIndexFieldMapping
1776
1777	noSmithyDocumentSerde
1778}
1779
1780// Specifies configuration information for the knowledge article types that Amazon
1781// Kendra indexes. Amazon Kendra indexes standard knowledge articles and the
1782// standard fields of knowledge articles, or the custom fields of custom knowledge
1783// articles, but not both
1784type SalesforceKnowledgeArticleConfiguration struct {
1785
1786	// Specifies the document states that should be included when Amazon Kendra indexes
1787	// knowledge articles. You must specify at least one state.
1788	//
1789	// This member is required.
1790	IncludedStates []SalesforceKnowledgeArticleState
1791
1792	// Provides configuration information for custom Salesforce knowledge articles.
1793	CustomKnowledgeArticleTypeConfigurations []SalesforceCustomKnowledgeArticleTypeConfiguration
1794
1795	// Provides configuration information for standard Salesforce knowledge articles.
1796	StandardKnowledgeArticleTypeConfiguration *SalesforceStandardKnowledgeArticleTypeConfiguration
1797
1798	noSmithyDocumentSerde
1799}
1800
1801// Provides configuration information for standard Salesforce knowledge articles.
1802type SalesforceStandardKnowledgeArticleTypeConfiguration struct {
1803
1804	// The name of the field that contains the document data to index.
1805	//
1806	// This member is required.
1807	DocumentDataFieldName *string
1808
1809	// The name of the field that contains the document title.
1810	DocumentTitleFieldName *string
1811
1812	// One or more objects that map fields in the knowledge article to Amazon Kendra
1813	// index fields. The index field must exist before you can map a Salesforce field
1814	// to it.
1815	FieldMappings []DataSourceToIndexFieldMapping
1816
1817	noSmithyDocumentSerde
1818}
1819
1820// Provides configuration information for processing attachments to Salesforce
1821// standard objects.
1822type SalesforceStandardObjectAttachmentConfiguration struct {
1823
1824	// The name of the field used for the document title.
1825	DocumentTitleFieldName *string
1826
1827	// One or more objects that map fields in attachments to Amazon Kendra index
1828	// fields.
1829	FieldMappings []DataSourceToIndexFieldMapping
1830
1831	noSmithyDocumentSerde
1832}
1833
1834// Specifies configuration information for indexing a single standard object.
1835type SalesforceStandardObjectConfiguration struct {
1836
1837	// The name of the field in the standard object table that contains the document
1838	// contents.
1839	//
1840	// This member is required.
1841	DocumentDataFieldName *string
1842
1843	// The name of the standard object.
1844	//
1845	// This member is required.
1846	Name SalesforceStandardObjectName
1847
1848	// The name of the field in the standard object table that contains the document
1849	// title.
1850	DocumentTitleFieldName *string
1851
1852	// One or more objects that map fields in the standard object to Amazon Kendra
1853	// index fields. The index field must exist before you can map a Salesforce field
1854	// to it.
1855	FieldMappings []DataSourceToIndexFieldMapping
1856
1857	noSmithyDocumentSerde
1858}
1859
1860// Provides a relative ranking that indicates how confident Amazon Kendra is that
1861// the response matches the query.
1862type ScoreAttributes struct {
1863
1864	// A relative ranking for how well the response matches the query.
1865	ScoreConfidence ScoreConfidence
1866
1867	noSmithyDocumentSerde
1868}
1869
1870// Provides information about how a custom index field is used during a search.
1871type Search struct {
1872
1873	// Determines whether the field is returned in the query response. The default is
1874	// true.
1875	Displayable bool
1876
1877	// Indicates that the field can be used to create search facets, a count of results
1878	// for each value in the field. The default is false .
1879	Facetable bool
1880
1881	// Determines whether the field is used in the search. If the Searchable field is
1882	// true, you can use relevance tuning to manually tune how Amazon Kendra weights
1883	// the field in the search. The default is true for string fields and false for
1884	// number and date fields.
1885	Searchable bool
1886
1887	// Determines whether the field can be used to sort the results of a query. If you
1888	// specify sorting on a field that does not have Sortable set to true, Amazon
1889	// Kendra returns an exception. The default is false.
1890	Sortable bool
1891
1892	noSmithyDocumentSerde
1893}
1894
1895// Provides the configuration information of the seed or starting point URLs to
1896// crawl. When selecting websites to index, you must adhere to the Amazon
1897// Acceptable Use Policy (https://aws.amazon.com/aup/) and all other Amazon terms.
1898// Remember that you must only use the Amazon Kendra web crawler to index your own
1899// webpages, or webpages that you have authorization to index.
1900type SeedUrlConfiguration struct {
1901
1902	// The list of seed or starting point URLs of the websites you want to crawl. The
1903	// list can include a maximum of 100 seed URLs.
1904	//
1905	// This member is required.
1906	SeedUrls []string
1907
1908	// You can choose one of the following modes:
1909	//
1910	// * HOST_ONLY – crawl only the website
1911	// host names. For example, if the seed URL is "abc.example.com", then only URLs
1912	// with host name "abc.example.com" are crawled.
1913	//
1914	// * SUBDOMAINS – crawl the website
1915	// host names with subdomains. For example, if the seed URL is "abc.example.com",
1916	// then "a.abc.example.com" and "b.abc.example.com" are also crawled.
1917	//
1918	// * EVERYTHING
1919	// – crawl the website host names with subdomains and other domains that the
1920	// webpages link to.
1921	//
1922	// The default mode is set to HOST_ONLY.
1923	WebCrawlerMode WebCrawlerMode
1924
1925	noSmithyDocumentSerde
1926}
1927
1928// Provides the identifier of the KMScustomer master key (CMK) used to encrypt data
1929// indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric CMKs.
1930type ServerSideEncryptionConfiguration struct {
1931
1932	// The identifier of the KMScustomer master key (CMK). Amazon Kendra doesn't
1933	// support asymmetric CMKs.
1934	KmsKeyId *string
1935
1936	noSmithyDocumentSerde
1937}
1938
1939// Provides configuration information required to connect to a ServiceNow data
1940// source.
1941type ServiceNowConfiguration struct {
1942
1943	// The ServiceNow instance that the data source connects to. The host endpoint
1944	// should look like the following: {instance}.service-now.com.
1945	//
1946	// This member is required.
1947	HostUrl *string
1948
1949	// The Amazon Resource Name (ARN) of the Secrets Manager secret that contains the
1950	// user name and password required to connect to the ServiceNow instance.
1951	//
1952	// This member is required.
1953	SecretArn *string
1954
1955	// The identifier of the release that the ServiceNow host is running. If the host
1956	// is not running the LONDON release, use OTHERS.
1957	//
1958	// This member is required.
1959	ServiceNowBuildVersion ServiceNowBuildVersionType
1960
1961	// Determines the type of authentication used to connect to the ServiceNow
1962	// instance. If you choose HTTP_BASIC, Amazon Kendra is authenticated using the
1963	// user name and password provided in the AWS Secrets Manager secret in the
1964	// SecretArn field. When you choose OAUTH2, Amazon Kendra is authenticated using
1965	// the OAuth token and secret provided in the Secrets Manager secret, and the user
1966	// name and password are used to determine which information Amazon Kendra has
1967	// access to. When you use OAUTH2 authentication, you must generate a token and a
1968	// client secret using the ServiceNow console. For more information, see Using a
1969	// ServiceNow data source
1970	// (https://docs.aws.amazon.com/kendra/latest/dg/data-source-servicenow.html).
1971	AuthenticationType ServiceNowAuthenticationType
1972
1973	// Provides configuration information for crawling knowledge articles in the
1974	// ServiceNow site.
1975	KnowledgeArticleConfiguration *ServiceNowKnowledgeArticleConfiguration
1976
1977	// Provides configuration information for crawling service catalogs in the
1978	// ServiceNow site.
1979	ServiceCatalogConfiguration *ServiceNowServiceCatalogConfiguration
1980
1981	noSmithyDocumentSerde
1982}
1983
1984// Provides configuration information for crawling knowledge articles in the
1985// ServiceNow site.
1986type ServiceNowKnowledgeArticleConfiguration struct {
1987
1988	// The name of the ServiceNow field that is mapped to the index document contents
1989	// field in the Amazon Kendra index.
1990	//
1991	// This member is required.
1992	DocumentDataFieldName *string
1993
1994	// Indicates whether Amazon Kendra should index attachments to knowledge articles.
1995	CrawlAttachments bool
1996
1997	// The name of the ServiceNow field that is mapped to the index document title
1998	// field.
1999	DocumentTitleFieldName *string
2000
2001	// List of regular expressions applied to knowledge articles. Items that don't
2002	// match the inclusion pattern are not indexed. The regex is applied to the field
2003	// specified in the PatternTargetField
2004	ExcludeAttachmentFilePatterns []string
2005
2006	// Mapping between ServiceNow fields and Amazon Kendra index fields. You must
2007	// create the index field before you map the field.
2008	FieldMappings []DataSourceToIndexFieldMapping
2009
2010	// A query that selects the knowledge articles to index. The query can return
2011	// articles from multiple knowledge bases, and the knowledge bases can be public or
2012	// private. The query string must be one generated by the ServiceNow console. For
2013	// more information, see Specifying documents to index with a query
2014	// (https://docs.aws.amazon.com/kendra/latest/dg/servicenow-query.html).
2015	FilterQuery *string
2016
2017	// List of regular expressions applied to knowledge articles. Items that don't
2018	// match the inclusion pattern are not indexed. The regex is applied to the field
2019	// specified in the PatternTargetField.
2020	IncludeAttachmentFilePatterns []string
2021
2022	noSmithyDocumentSerde
2023}
2024
2025// Provides configuration information for crawling service catalog items in the
2026// ServiceNow site
2027type ServiceNowServiceCatalogConfiguration struct {
2028
2029	// The name of the ServiceNow field that is mapped to the index document contents
2030	// field in the Amazon Kendra index.
2031	//
2032	// This member is required.
2033	DocumentDataFieldName *string
2034
2035	// Indicates whether Amazon Kendra should crawl attachments to the service catalog
2036	// items.
2037	CrawlAttachments bool
2038
2039	// The name of the ServiceNow field that is mapped to the index document title
2040	// field.
2041	DocumentTitleFieldName *string
2042
2043	// A list of regular expression patterns. Documents that match the patterns are
2044	// excluded from the index. Documents that don't match the patterns are included in
2045	// the index. If a document matches both an exclusion pattern and an inclusion
2046	// pattern, the document is not included in the index. The regex is applied to the
2047	// file name of the attachment.
2048	ExcludeAttachmentFilePatterns []string
2049
2050	// Mapping between ServiceNow fields and Amazon Kendra index fields. You must
2051	// create the index field before you map the field.
2052	FieldMappings []DataSourceToIndexFieldMapping
2053
2054	// A list of regular expression patterns. Documents that match the patterns are
2055	// included in the index. Documents that don't match the patterns are excluded from
2056	// the index. If a document matches both an exclusion pattern and an inclusion
2057	// pattern, the document is not included in the index. The regex is applied to the
2058	// file name of the attachment.
2059	IncludeAttachmentFilePatterns []string
2060
2061	noSmithyDocumentSerde
2062}
2063
2064// Provides configuration information for connecting to a Microsoft SharePoint data
2065// source.
2066type SharePointConfiguration struct {
2067
2068	// The Amazon Resource Name (ARN) of credentials stored in Secrets Manager. The
2069	// credentials should be a user/password pair. If you use SharePoint Server, you
2070	// also need to provide the sever domain name as part of the credentials. For more
2071	// information, see Using a Microsoft SharePoint Data Source
2072	// (https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html). For
2073	// more information about Secrets Manager, see  What Is Secrets Manager
2074	// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) in the
2075	// Secrets Manager user guide.
2076	//
2077	// This member is required.
2078	SecretArn *string
2079
2080	// The version of Microsoft SharePoint that you are using as a data source.
2081	//
2082	// This member is required.
2083	SharePointVersion SharePointVersion
2084
2085	// The URLs of the Microsoft SharePoint site that contains the documents that
2086	// should be indexed.
2087	//
2088	// This member is required.
2089	Urls []string
2090
2091	// TRUE to include attachments to documents stored in your Microsoft SharePoint
2092	// site in the index; otherwise, FALSE.
2093	CrawlAttachments bool
2094
2095	// A Boolean value that specifies whether local groups are disabled (True) or
2096	// enabled (False).
2097	DisableLocalGroups bool
2098
2099	// The Microsoft SharePoint attribute field that contains the title of the
2100	// document.
2101	DocumentTitleFieldName *string
2102
2103	// A list of regular expression patterns. Documents that match the patterns are
2104	// excluded from the index. Documents that don't match the patterns are included in
2105	// the index. If a document matches both an exclusion pattern and an inclusion
2106	// pattern, the document is not included in the index. The regex is applied to the
2107	// display URL of the SharePoint document.
2108	ExclusionPatterns []string
2109
2110	// A list of DataSourceToIndexFieldMapping objects that map Microsoft SharePoint
2111	// attributes to custom fields in the Amazon Kendra index. You must first create
2112	// the index fields using the UpdateIndex operation before you map SharePoint
2113	// attributes. For more information, see Mapping Data Source Fields
2114	// (https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html).
2115	FieldMappings []DataSourceToIndexFieldMapping
2116
2117	// A list of regular expression patterns. Documents that match the patterns are
2118	// included in the index. Documents that don't match the patterns are excluded from
2119	// the index. If a document matches both an inclusion pattern and an exclusion
2120	// pattern, the document is not included in the index. The regex is applied to the
2121	// display URL of the SharePoint document.
2122	InclusionPatterns []string
2123
2124	// Information required to find a specific file in an Amazon S3 bucket.
2125	SslCertificateS3Path *S3Path
2126
2127	// Set to TRUE to use the Microsoft SharePoint change log to determine the
2128	// documents that need to be updated in the index. Depending on the size of the
2129	// SharePoint change log, it may take longer for Amazon Kendra to use the change
2130	// log than it takes it to determine the changed documents using the Amazon Kendra
2131	// document crawler.
2132	UseChangeLog bool
2133
2134	// Provides information for connecting to an Amazon VPC.
2135	VpcConfiguration *DataSourceVpcConfiguration
2136
2137	noSmithyDocumentSerde
2138}
2139
2140// Provides the configuration information of the sitemap URLs to crawl. When
2141// selecting websites to index, you must adhere to the Amazon Acceptable Use Policy
2142// (https://aws.amazon.com/aup/) and all other Amazon terms. Remember that you must
2143// only use the Amazon Kendra web crawler to index your own webpages, or webpages
2144// that you have authorization to index.
2145type SiteMapsConfiguration struct {
2146
2147	// The list of sitemap URLs of the websites you want to crawl. The list can include
2148	// a maximum of three sitemap URLs.
2149	//
2150	// This member is required.
2151	SiteMaps []string
2152
2153	noSmithyDocumentSerde
2154}
2155
2156// Specifies the document attribute to use to sort the response to a Amazon Kendra
2157// query. You can specify a single attribute for sorting. The attribute must have
2158// the Sortable flag set to true, otherwise Amazon Kendra returns an exception. You
2159// can sort attributes of the following types.
2160//
2161// * Date value
2162//
2163// * Long value
2164//
2165// *
2166// String value
2167//
2168// You can't sort attributes of the following type.
2169//
2170// * String list
2171// value
2172type SortingConfiguration struct {
2173
2174	// The name of the document attribute used to sort the response. You can use any
2175	// field that has the Sortable flag set to true. You can also sort by any of the
2176	// following built-in attributes:
2177	//
2178	// * _category
2179	//
2180	// * _created_at
2181	//
2182	// *
2183	// _last_updated_at
2184	//
2185	// * _version
2186	//
2187	// * _view_count
2188	//
2189	// This member is required.
2190	DocumentAttributeKey *string
2191
2192	// The order that the results should be returned in. In case of ties, the relevance
2193	// assigned to the result by Amazon Kendra is used as the tie-breaker.
2194	//
2195	// This member is required.
2196	SortOrder SortOrder
2197
2198	noSmithyDocumentSerde
2199}
2200
2201// Provides information that configures Amazon Kendra to use a SQL database.
2202type SqlConfiguration struct {
2203
2204	// Determines whether Amazon Kendra encloses SQL identifiers for tables and column
2205	// names in double quotes (") when making a database query. By default, Amazon
2206	// Kendra passes SQL identifiers the way that they are entered into the data source
2207	// configuration. It does not change the case of identifiers or enclose them in
2208	// quotes. PostgreSQL internally converts uppercase characters to lower case
2209	// characters in identifiers unless they are quoted. Choosing this option encloses
2210	// identifiers in quotes so that PostgreSQL does not convert the character's case.
2211	// For MySQL databases, you must enable the ansi_quotes option when you set this
2212	// field to DOUBLE_QUOTES.
2213	QueryIdentifiersEnclosingOption QueryIdentifiersEnclosingOption
2214
2215	noSmithyDocumentSerde
2216}
2217
2218// Provides information about the status of documents submitted for indexing.
2219type Status struct {
2220
2221	// The unique identifier of the document.
2222	DocumentId *string
2223
2224	// The current status of a document. If the document was submitted for deletion,
2225	// the status is NOT_FOUND after the document is deleted.
2226	DocumentStatus DocumentStatus
2227
2228	// Indicates the source of the error.
2229	FailureCode *string
2230
2231	// Provides detailed information about why the document couldn't be indexed. Use
2232	// this information to correct the error before you resubmit the document for
2233	// indexing.
2234	FailureReason *string
2235
2236	noSmithyDocumentSerde
2237}
2238
2239// A single query suggestion.
2240type Suggestion struct {
2241
2242	// The unique UUID (universally unique identifier) of a single query suggestion.
2243	Id *string
2244
2245	// The value for the unique UUID (universally unique identifier) of a single query
2246	// suggestion. The value is the text string of a suggestion.
2247	Value *SuggestionValue
2248
2249	noSmithyDocumentSerde
2250}
2251
2252// The text highlights for a single query suggestion.
2253type SuggestionHighlight struct {
2254
2255	// The zero-based location in the response string where the highlight starts.
2256	BeginOffset *int32
2257
2258	// The zero-based location in the response string where the highlight ends.
2259	EndOffset *int32
2260
2261	noSmithyDocumentSerde
2262}
2263
2264// Provides text and information about where to highlight the query suggestion
2265// text.
2266type SuggestionTextWithHighlights struct {
2267
2268	// The beginning and end of the query suggestion text that should be highlighted.
2269	Highlights []SuggestionHighlight
2270
2271	// The query suggestion text to display to the user.
2272	Text *string
2273
2274	noSmithyDocumentSerde
2275}
2276
2277// The SuggestionTextWithHighlights structure information.
2278type SuggestionValue struct {
2279
2280	// The SuggestionTextWithHighlights structure that contains the query suggestion
2281	// text and highlights.
2282	Text *SuggestionTextWithHighlights
2283
2284	noSmithyDocumentSerde
2285}
2286
2287// A list of key/value pairs that identify an index, FAQ, or data source. Tag keys
2288// and values can consist of Unicode letters, digits, white space, and any of the
2289// following symbols: _ . : / = + - @.
2290type Tag struct {
2291
2292	// The key for the tag. Keys are not case sensitive and must be unique for the
2293	// index, FAQ, or data source.
2294	//
2295	// This member is required.
2296	Key *string
2297
2298	// The value associated with the tag. The value may be an empty string but it can't
2299	// be null.
2300	//
2301	// This member is required.
2302	Value *string
2303
2304	noSmithyDocumentSerde
2305}
2306
2307// Provides information about text documents indexed in an index.
2308type TextDocumentStatistics struct {
2309
2310	// The total size, in bytes, of the indexed documents.
2311	//
2312	// This member is required.
2313	IndexedTextBytes int64
2314
2315	// The number of text documents indexed.
2316	//
2317	// This member is required.
2318	IndexedTextDocumentsCount int32
2319
2320	noSmithyDocumentSerde
2321}
2322
2323// Provides text and information about where to highlight the text.
2324type TextWithHighlights struct {
2325
2326	// The beginning and end of the text that should be highlighted.
2327	Highlights []Highlight
2328
2329	// The text to display to the user.
2330	Text *string
2331
2332	noSmithyDocumentSerde
2333}
2334
2335// An array of summary information for one or more thesauruses.
2336type ThesaurusSummary struct {
2337
2338	// The Unix datetime that the thesaurus was created.
2339	CreatedAt *time.Time
2340
2341	// The identifier of the thesaurus.
2342	Id *string
2343
2344	// The name of the thesaurus.
2345	Name *string
2346
2347	// The status of the thesaurus.
2348	Status ThesaurusStatus
2349
2350	// The Unix datetime that the thesaurus was last updated.
2351	UpdatedAt *time.Time
2352
2353	noSmithyDocumentSerde
2354}
2355
2356// Provides a range of time.
2357type TimeRange struct {
2358
2359	// The UNIX datetime of the end of the time range.
2360	EndTime *time.Time
2361
2362	// The UNIX datetime of the beginning of the time range.
2363	StartTime *time.Time
2364
2365	noSmithyDocumentSerde
2366}
2367
2368// Provides the configuration information of the URLs to crawl. When selecting
2369// websites to index, you must adhere to the Amazon Acceptable Use Policy
2370// (https://aws.amazon.com/aup/) and all other Amazon terms. Remember that you must
2371// only use the Amazon Kendra web crawler to index your own webpages, or webpages
2372// that you have authorization to index.
2373type Urls struct {
2374
2375	// Provides the configuration of the seed or starting point URLs of the websites
2376	// you want to crawl. You can choose to crawl only the website host names, or the
2377	// website host names with subdomains, or the website host names with subdomains
2378	// and other domains that the webpages link to. You can list up to 100 seed URLs.
2379	SeedUrlConfiguration *SeedUrlConfiguration
2380
2381	// Provides the configuration of the sitemap URLs of the websites you want to
2382	// crawl. Only URLs belonging to the same website host names are crawled. You can
2383	// list up to three sitemap URLs.
2384	SiteMapsConfiguration *SiteMapsConfiguration
2385
2386	noSmithyDocumentSerde
2387}
2388
2389// Provides information about the user context for a Amazon Kendra index. This is
2390// used for filtering search results for different users based on their access to
2391// documents. You provide one of the following:
2392//
2393// * User token
2394//
2395// * User ID, the
2396// groups the user belongs to, and the data sources the groups can access
2397//
2398// If you
2399// provide both, an exception is thrown.
2400type UserContext struct {
2401
2402	// The list of data source groups you want to filter search results based on
2403	// groups' access to documents in that data source.
2404	DataSourceGroups []DataSourceGroup
2405
2406	// The list of groups you want to filter search results based on the groups' access
2407	// to documents.
2408	Groups []string
2409
2410	// The user context token for filtering search results for a user. It must be a JWT
2411	// or a JSON token.
2412	Token *string
2413
2414	// The identifier of the user you want to filter search results based on their
2415	// access to documents.
2416	UserId *string
2417
2418	noSmithyDocumentSerde
2419}
2420
2421// Provides configuration information for a token configuration.
2422type UserTokenConfiguration struct {
2423
2424	// Information about the JSON token type configuration.
2425	JsonTokenTypeConfiguration *JsonTokenTypeConfiguration
2426
2427	// Information about the JWT token type configuration.
2428	JwtTokenTypeConfiguration *JwtTokenTypeConfiguration
2429
2430	noSmithyDocumentSerde
2431}
2432
2433// Provides the configuration information required for Amazon Kendra web crawler.
2434type WebCrawlerConfiguration struct {
2435
2436	// Specifies the seed or starting point URLs of the websites or the sitemap URLs of
2437	// the websites you want to crawl. You can include website subdomains. You can list
2438	// up to 100 seed URLs and up to three sitemap URLs. When selecting websites to
2439	// index, you must adhere to the Amazon Acceptable Use Policy
2440	// (https://aws.amazon.com/aup/) and all other Amazon terms. Remember that you must
2441	// only use the Amazon Kendra web crawler to index your own webpages, or webpages
2442	// that you have authorization to index.
2443	//
2444	// This member is required.
2445	Urls *Urls
2446
2447	// Provides configuration information required to connect to websites using
2448	// authentication. You can connect to websites using basic authentication of user
2449	// name and password. You must provide the website host name and port number. For
2450	// example, the host name of https://a.example.com/page1.html is "a.example.com"
2451	// and the port is 443, the standard port for HTTPS. You use a secret in AWS
2452	// Secrets Manager
2453	// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) to
2454	// store your authentication credentials.
2455	AuthenticationConfiguration *AuthenticationConfiguration
2456
2457	// Specifies the number of levels in a website that you want to crawl. The first
2458	// level begins from the website seed or starting point URL. For example, if a
2459	// website has 3 levels – index level (i.e. seed in this example), sections level,
2460	// and subsections level – and you are only interested in crawling information up
2461	// to the sections level (i.e. levels 0-1), you can set your depth to 1. The
2462	// default crawl depth is set to 2.
2463	CrawlDepth *int32
2464
2465	// The maximum size (in MB) of a webpage or attachment to crawl. Files larger than
2466	// this size (in MB) are skipped/not crawled. The default maximum size of a webpage
2467	// or attachment is set to 50 MB.
2468	MaxContentSizePerPageInMegaBytes *float32
2469
2470	// The maximum number of URLs on a webpage to include when crawling a website. This
2471	// number is per webpage. As a website’s webpages are crawled, any URLs the
2472	// webpages link to are also crawled. URLs on a webpage are crawled in order of
2473	// appearance. The default maximum links per page is 100.
2474	MaxLinksPerPage *int32
2475
2476	// The maximum number of URLs crawled per website host per minute. A minimum of one
2477	// URL is required. The default maximum number of URLs crawled per website host per
2478	// minute is 300.
2479	MaxUrlsPerMinuteCrawlRate *int32
2480
2481	// Provides configuration information required to connect to your internal websites
2482	// via a web proxy. You must provide the website host name and port number. For
2483	// example, the host name of https://a.example.com/page1.html is "a.example.com"
2484	// and the port is 443, the standard port for HTTPS. Web proxy credentials are
2485	// optional and you can use them to connect to a web proxy server that requires
2486	// basic authentication. To store web proxy credentials, you use a secret in AWS
2487	// Secrets Manager
2488	// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html).
2489	ProxyConfiguration *ProxyConfiguration
2490
2491	// The regular expression pattern to exclude certain URLs to crawl. If there is a
2492	// regular expression pattern to include certain URLs that conflicts with the
2493	// exclude pattern, the exclude pattern takes precedence.
2494	UrlExclusionPatterns []string
2495
2496	// The regular expression pattern to include certain URLs to crawl. If there is a
2497	// regular expression pattern to exclude certain URLs that conflicts with the
2498	// include pattern, the exclude pattern takes precedence.
2499	UrlInclusionPatterns []string
2500
2501	noSmithyDocumentSerde
2502}
2503
2504// Provides the configuration information to connect to Amazon WorkDocs as your
2505// data source. Amazon WorkDocs connector is available in Oregon, North Virginia,
2506// Sydney, Singapore and Ireland regions.
2507type WorkDocsConfiguration struct {
2508
2509	// The identifier of the directory corresponding to your Amazon WorkDocs site
2510	// repository. You can find the organization ID in the AWS Directory Service
2511	// (https://console.aws.amazon.com/directoryservicev2/) by going to Active
2512	// Directory, then Directories. Your Amazon WorkDocs site directory has an ID,
2513	// which is the organization ID. You can also set up a new Amazon WorkDocs
2514	// directory in the AWS Directory Service console and enable a Amazon WorkDocs site
2515	// for the directory in the Amazon WorkDocs console.
2516	//
2517	// This member is required.
2518	OrganizationId *string
2519
2520	// TRUE to include comments on documents in your index. Including comments in your
2521	// index means each comment is a document that can be searched on. The default is
2522	// set to FALSE.
2523	CrawlComments bool
2524
2525	// A list of regular expression patterns to exclude certain files in your Amazon
2526	// WorkDocs site repository. Files that match the patterns are excluded from the
2527	// index. Files that don’t match the patterns are included in the index. If a file
2528	// matches both an inclusion pattern and an exclusion pattern, the exclusion
2529	// pattern takes precedence and the file isn’t included in the index.
2530	ExclusionPatterns []string
2531
2532	// A list of DataSourceToIndexFieldMapping objects that map Amazon WorkDocs field
2533	// names to custom index field names in Amazon Kendra. You must first create the
2534	// custom index fields using the UpdateIndex operation before you map to Amazon
2535	// WorkDocs fields. For more information, see Mapping Data Source Fields
2536	// (https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html). The Amazon
2537	// WorkDocs data source field names need to exist in your Amazon WorkDocs custom
2538	// metadata.
2539	FieldMappings []DataSourceToIndexFieldMapping
2540
2541	// A list of regular expression patterns to include certain files in your Amazon
2542	// WorkDocs site repository. Files that match the patterns are included in the
2543	// index. Files that don't match the patterns are excluded from the index. If a
2544	// file matches both an inclusion pattern and an exclusion pattern, the exclusion
2545	// pattern takes precedence and the file isn’t included in the index.
2546	InclusionPatterns []string
2547
2548	// TRUE to use the change logs to update documents in your index instead of
2549	// scanning all documents. If you are syncing your Amazon WorkDocs data source with
2550	// your index for the first time, all documents are scanned. After your first sync,
2551	// you can use the change logs to update your documents in your index for future
2552	// syncs. The default is set to FALSE.
2553	UseChangeLog bool
2554
2555	noSmithyDocumentSerde
2556}
2557
2558type noSmithyDocumentSerde = smithydocument.NoSerde
2559
2560// UnknownUnionMember is returned when a union member is returned over the wire,
2561// but has an unknown tag.
2562type UnknownUnionMember struct {
2563	Tag   string
2564	Value []byte
2565
2566	noSmithyDocumentSerde
2567}
2568
2569func (*UnknownUnionMember) isDocumentAttributeValue() {}
2570