1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// Access Control List files for the documents in a data source. For the format of
10// the file, see Access control for S3 data sources
11// (https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html).
12type AccessControlListConfiguration struct {
13
14	// Path to the AWS S3 bucket that contains the ACL files.
15	KeyPath *string
16}
17
18// Provides information about the column that should be used for filtering the
19// query response by groups.
20type AclConfiguration struct {
21
22	// A list of groups, separated by semi-colons, that filters a query response based
23	// on user context. The document is only returned to users that are in one of the
24	// groups specified in the UserContext field of the Query operation.
25	//
26	// This member is required.
27	AllowedGroupsColumnName *string
28}
29
30// An attribute returned from an index query.
31type AdditionalResultAttribute struct {
32
33	// The key that identifies the attribute.
34	//
35	// This member is required.
36	Key *string
37
38	// An object that contains the attribute value.
39	//
40	// This member is required.
41	Value *AdditionalResultAttributeValue
42
43	// The data type of the Value property.
44	//
45	// This member is required.
46	ValueType AdditionalResultAttributeValueType
47}
48
49// An attribute returned with a document from a search.
50type AdditionalResultAttributeValue struct {
51
52	// The text associated with the attribute and information about the highlight to
53	// apply to the text.
54	TextWithHighlightsValue *TextWithHighlights
55}
56
57// Provides filtering the query results based on document attributes. When you use
58// the AndAllFilters or OrAllFilters, filters you can use 2 layers under the first
59// attribute filter. For example, you can use:
60//
61// If you use more than 2 layers, you
62// receive a ValidationException exception with the message "AttributeFilter cannot
63// have a depth of more than 2."
64type AttributeFilter struct {
65
66	// Performs a logical AND operation on all supplied filters.
67	AndAllFilters []AttributeFilter
68
69	// Returns true when a document contains all of the specified document attributes.
70	// This filter is only applicable to StringListValue metadata.
71	ContainsAll *DocumentAttribute
72
73	// Returns true when a document contains any of the specified document attributes.
74	// This filter is only applicable to StringListValue metadata.
75	ContainsAny *DocumentAttribute
76
77	// Performs an equals operation on two document attributes.
78	EqualsTo *DocumentAttribute
79
80	// Performs a greater than operation on two document attributes. Use with a
81	// document attribute of type Integer or Long.
82	GreaterThan *DocumentAttribute
83
84	// Performs a greater or equals than operation on two document attributes. Use with
85	// a document attribute of type Integer or Long.
86	GreaterThanOrEquals *DocumentAttribute
87
88	// Performs a less than operation on two document attributes. Use with a document
89	// attribute of type Integer or Long.
90	LessThan *DocumentAttribute
91
92	// Performs a less than or equals operation on two document attributes. Use with a
93	// document attribute of type Integer or Long.
94	LessThanOrEquals *DocumentAttribute
95
96	// Performs a logical NOT operation on all supplied filters.
97	NotFilter *AttributeFilter
98
99	// Performs a logical OR operation on all supplied filters.
100	OrAllFilters []AttributeFilter
101}
102
103// Provides information about documents that could not be removed from an index by
104// the BatchDeleteDocument operation.
105type BatchDeleteDocumentResponseFailedDocument struct {
106
107	// The error code for why the document couldn't be removed from the index.
108	ErrorCode ErrorCode
109
110	// An explanation for why the document couldn't be removed from the index.
111	ErrorMessage *string
112
113	// The identifier of the document that couldn't be removed from the index.
114	Id *string
115}
116
117// Provides information about a document that could not be indexed.
118type BatchPutDocumentResponseFailedDocument struct {
119
120	// The type of error that caused the document to fail to be indexed.
121	ErrorCode ErrorCode
122
123	// A description of the reason why the document could not be indexed.
124	ErrorMessage *string
125
126	// The unique identifier of the document.
127	Id *string
128}
129
130// Specifies capacity units configured for your index. You can add and remove
131// capacity units to tune an index to your requirements.
132type CapacityUnitsConfiguration struct {
133
134	// The amount of extra query capacity for an index. Each capacity unit provides 0.5
135	// queries per second and 40,000 queries per day.
136	//
137	// This member is required.
138	QueryCapacityUnits *int32
139
140	// The amount of extra storage capacity for an index. Each capacity unit provides
141	// 150 Gb of storage space or 500,000 documents, whichever is reached first.
142	//
143	// This member is required.
144	StorageCapacityUnits *int32
145}
146
147// Gathers information about when a particular result was clicked by a user. Your
148// application uses the SubmitFeedback operation to provide click information.
149type ClickFeedback struct {
150
151	// The Unix timestamp of the date and time that the result was clicked.
152	//
153	// This member is required.
154	ClickTime *time.Time
155
156	// The unique identifier of the search result that was clicked.
157	//
158	// This member is required.
159	ResultId *string
160}
161
162// Provides information about how Amazon Kendra should use the columns of a
163// database in an index.
164type ColumnConfiguration struct {
165
166	// One to five columns that indicate when a document in the database has changed.
167	//
168	// This member is required.
169	ChangeDetectingColumns []string
170
171	// The column that contains the contents of the document.
172	//
173	// This member is required.
174	DocumentDataColumnName *string
175
176	// The column that provides the document's unique identifier.
177	//
178	// This member is required.
179	DocumentIdColumnName *string
180
181	// The column that contains the title of the document.
182	DocumentTitleColumnName *string
183
184	// An array of objects that map database column names to the corresponding fields
185	// in an index. You must first create the fields in the index using the UpdateIndex
186	// operation.
187	FieldMappings []DataSourceToIndexFieldMapping
188}
189
190// Specifies the attachment settings for the Confluence data source. Attachment
191// settings are optional, if you don't specify settings attachments, Amazon Kendra
192// won't index them.
193type ConfluenceAttachmentConfiguration struct {
194
195	// Defines how attachment metadata fields should be mapped to index fields. Before
196	// you can map a field, you must first create an index field with a matching type
197	// using the console or the UpdateIndex operation. If you specify the
198	// AttachentFieldMappings parameter, you must specify at least one field mapping.
199	AttachmentFieldMappings []ConfluenceAttachmentToIndexFieldMapping
200
201	// Indicates whether Amazon Kendra indexes attachments to the pages and blogs in
202	// the Confluence data source.
203	CrawlAttachments bool
204}
205
206// Defines the mapping between a field in the Confluence data source to a Amazon
207// Kendra index field. You must first create the index field using the UpdateIndex
208// operation.
209type ConfluenceAttachmentToIndexFieldMapping struct {
210
211	// The name of the field in the data source. You must first create the index field
212	// using the UpdateIndex operation.
213	DataSourceFieldName ConfluenceAttachmentFieldName
214
215	// The format for date fields in the data source. If the field specified in
216	// DataSourceFieldName is a date field you must specify the date format. If the
217	// field is not a date field, an exception is thrown.
218	DateFieldFormat *string
219
220	// The name of the index field to map to the Confluence data source field. The
221	// index field type must match the Confluence field type.
222	IndexFieldName *string
223}
224
225// Specifies the blog settings for the Confluence data source. Blogs are always
226// indexed unless filtered from the index by the ExclusionPatterns or
227// InclusionPatterns fields in the ConfluenceConfiguration type.
228type ConfluenceBlogConfiguration struct {
229
230	// Defines how blog metadata fields should be mapped to index fields. Before you
231	// can map a field, you must first create an index field with a matching type using
232	// the console or the UpdateIndex operation. If you specify the BlogFieldMappings
233	// parameter, you must specify at least one field mapping.
234	BlogFieldMappings []ConfluenceBlogToIndexFieldMapping
235}
236
237// Defines the mapping between a blog field in the Confluence data source to a
238// Amazon Kendra index field. You must first create the index field using the
239// UpdateIndex operation.
240type ConfluenceBlogToIndexFieldMapping struct {
241
242	// The name of the field in the data source.
243	DataSourceFieldName ConfluenceBlogFieldName
244
245	// The format for date fields in the data source. If the field specified in
246	// DataSourceFieldName is a date field you must specify the date format. If the
247	// field is not a date field, an exception is thrown.
248	DateFieldFormat *string
249
250	// The name of the index field to map to the Confluence data source field. The
251	// index field type must match the Confluence field type.
252	IndexFieldName *string
253}
254
255// Provides configuration information for data sources that connect to Confluence.
256type ConfluenceConfiguration struct {
257
258	// The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains
259	// the key/value pairs required to connect to your Confluence server. The secret
260	// must contain a JSON structure with the following keys:
261	//
262	// * username - The user
263	// name or email address of a user with administrative privileges for the
264	// Confluence server.
265	//
266	// * password - The password associated with the user logging
267	// in to the Confluence server.
268	//
269	// This member is required.
270	SecretArn *string
271
272	// The URL of your Confluence instance. Use the full URL of the server. For
273	// example, https://server.example.com:port/. You can also use an IP address, for
274	// example, https://192.168.1.113/.
275	//
276	// This member is required.
277	ServerUrl *string
278
279	// Specifies the version of the Confluence installation that you are connecting to.
280	//
281	// This member is required.
282	Version ConfluenceVersion
283
284	// Specifies configuration information for indexing attachments to Confluence blogs
285	// and pages.
286	AttachmentConfiguration *ConfluenceAttachmentConfiguration
287
288	// Specifies configuration information for indexing Confluence blogs.
289	BlogConfiguration *ConfluenceBlogConfiguration
290
291	// A list of regular expression patterns that apply to a URL on the Confluence
292	// server. An exclusion pattern can apply to a blog post, a page, a space, or an
293	// attachment. Items that match the pattern are excluded from the index. Items that
294	// don't match the pattern are included in the index. If a item matches both an
295	// exclusion pattern and an inclusion pattern, the item isn't included in the
296	// index.
297	ExclusionPatterns []string
298
299	// A list of regular expression patterns that apply to a URL on the Confluence
300	// server. An inclusion pattern can apply to a blog post, a page, a space, or an
301	// attachment. Items that match the patterns are included in the index. Items that
302	// don't match the pattern are excluded from the index. If an item matches both an
303	// inclusion pattern and an exclusion pattern, the item isn't included in the
304	// index.
305	InclusionPatterns []string
306
307	// Specifies configuration information for indexing Confluence pages.
308	PageConfiguration *ConfluencePageConfiguration
309
310	// Specifies configuration information for indexing Confluence spaces.
311	SpaceConfiguration *ConfluenceSpaceConfiguration
312
313	// Specifies the information for connecting to an Amazon VPC.
314	VpcConfiguration *DataSourceVpcConfiguration
315}
316
317// Specifies the page settings for the Confluence data source.
318type ConfluencePageConfiguration struct {
319
320	// Defines how page metadata fields should be mapped to index fields. Before you
321	// can map a field, you must first create an index field with a matching type using
322	// the console or the UpdateIndex operation. If you specify the PageFieldMappings
323	// parameter, you must specify at least one field mapping.
324	PageFieldMappings []ConfluencePageToIndexFieldMapping
325}
326
327// Defines the mapping between a field in the Confluence data source to a Amazon
328// Kendra index field. You must first create the index field using the UpdateIndex
329// operation.
330type ConfluencePageToIndexFieldMapping struct {
331
332	// The name of the field in the data source.
333	DataSourceFieldName ConfluencePageFieldName
334
335	// The format for date fields in the data source. If the field specified in
336	// DataSourceFieldName is a date field you must specify the date format. If the
337	// field is not a date field, an exception is thrown.
338	DateFieldFormat *string
339
340	// The name of the index field to map to the Confluence data source field. The
341	// index field type must match the Confluence field type.
342	IndexFieldName *string
343}
344
345// Specifies the configuration for indexing Confluence spaces.
346type ConfluenceSpaceConfiguration struct {
347
348	// Specifies whether Amazon Kendra should index archived spaces.
349	CrawlArchivedSpaces bool
350
351	// Specifies whether Amazon Kendra should index personal spaces. Users can add
352	// restrictions to items in personal spaces. If personal spaces are indexed,
353	// queries without user context information may return restricted items from a
354	// personal space in their results. For more information, see Filtering on user
355	// context (https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html).
356	CrawlPersonalSpaces bool
357
358	// A list of space keys of Confluence spaces. If you include a key, the blogs,
359	// documents, and attachments in the space are not indexed. If a space is in both
360	// the ExcludeSpaces and the IncludeSpaces list, the space is excluded.
361	ExcludeSpaces []string
362
363	// A list of space keys for Confluence spaces. If you include a key, the blogs,
364	// documents, and attachments in the space are indexed. Spaces that aren't in the
365	// list aren't indexed. A space in the list must exist. Otherwise, Amazon Kendra
366	// logs an error when the data source is synchronized. If a space is in both the
367	// IncludeSpaces and the ExcludeSpaces list, the space is excluded.
368	IncludeSpaces []string
369
370	// Defines how space metadata fields should be mapped to index fields. Before you
371	// can map a field, you must first create an index field with a matching type using
372	// the console or the UpdateIndex operation. If you specify the SpaceFieldMappings
373	// parameter, you must specify at least one field mapping.
374	SpaceFieldMappings []ConfluenceSpaceToIndexFieldMapping
375}
376
377// Defines the mapping between a field in the Confluence data source to a Amazon
378// Kendra index field. You must first create the index field using the UpdateIndex
379// operation.
380type ConfluenceSpaceToIndexFieldMapping struct {
381
382	// The name of the field in the data source.
383	DataSourceFieldName ConfluenceSpaceFieldName
384
385	// The format for date fields in the data source. If the field specified in
386	// DataSourceFieldName is a date field you must specify the date format. If the
387	// field is not a date field, an exception is thrown.
388	DateFieldFormat *string
389
390	// The name of the index field to map to the Confluence data source field. The
391	// index field type must match the Confluence field type.
392	IndexFieldName *string
393}
394
395// Provides the information necessary to connect to a database.
396type ConnectionConfiguration struct {
397
398	// The name of the host for the database. Can be either a string
399	// (host.subdomain.domain.tld) or an IPv4 or IPv6 address.
400	//
401	// This member is required.
402	DatabaseHost *string
403
404	// The name of the database containing the document data.
405	//
406	// This member is required.
407	DatabaseName *string
408
409	// The port that the database uses for connections.
410	//
411	// This member is required.
412	DatabasePort *int32
413
414	// The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager. The
415	// credentials should be a user/password pair. For more information, see Using a
416	// Database Data Source
417	// (https://docs.aws.amazon.com/kendra/latest/dg/data-source-database.html). For
418	// more information about AWS Secrets Manager, see  What Is AWS Secrets Manager
419	// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) in the
420	// AWS Secrets Manager user guide.
421	//
422	// This member is required.
423	SecretArn *string
424
425	// The name of the table that contains the document data.
426	//
427	// This member is required.
428	TableName *string
429}
430
431// Provides the information necessary to connect a database to an index.
432type DatabaseConfiguration struct {
433
434	// Information about where the index should get the document information from the
435	// database.
436	//
437	// This member is required.
438	ColumnConfiguration *ColumnConfiguration
439
440	// The information necessary to connect to a database.
441	//
442	// This member is required.
443	ConnectionConfiguration *ConnectionConfiguration
444
445	// The type of database engine that runs the database.
446	//
447	// This member is required.
448	DatabaseEngineType DatabaseEngineType
449
450	// Information about the database column that provides information for user context
451	// filtering.
452	AclConfiguration *AclConfiguration
453
454	// Provides information about how Amazon Kendra uses quote marks around SQL
455	// identifiers when querying a database data source.
456	SqlConfiguration *SqlConfiguration
457
458	// Provides information for connecting to an Amazon VPC.
459	VpcConfiguration *DataSourceVpcConfiguration
460}
461
462// Configuration information for a Amazon Kendra data source.
463type DataSourceConfiguration struct {
464
465	// Provides configuration information for connecting to a Confluence data source.
466	ConfluenceConfiguration *ConfluenceConfiguration
467
468	// Provides information necessary to create a data source connector for a database.
469	DatabaseConfiguration *DatabaseConfiguration
470
471	// Provides configuration for data sources that connect to Google Drive.
472	GoogleDriveConfiguration *GoogleDriveConfiguration
473
474	// Provides configuration for data sources that connect to Microsoft OneDrive.
475	OneDriveConfiguration *OneDriveConfiguration
476
477	// Provides information to create a data source connector for a document repository
478	// in an Amazon S3 bucket.
479	S3Configuration *S3DataSourceConfiguration
480
481	// Provides configuration information for data sources that connect to a Salesforce
482	// site.
483	SalesforceConfiguration *SalesforceConfiguration
484
485	// Provides configuration for data sources that connect to ServiceNow instances.
486	ServiceNowConfiguration *ServiceNowConfiguration
487
488	// Provides information necessary to create a data source connector for a Microsoft
489	// SharePoint site.
490	SharePointConfiguration *SharePointConfiguration
491}
492
493// Summary information for a Amazon Kendra data source. Returned in a call to the
494// DescribeDataSource operation.
495type DataSourceSummary struct {
496
497	// The UNIX datetime that the data source was created.
498	CreatedAt *time.Time
499
500	// The unique identifier for the data source.
501	Id *string
502
503	// The name of the data source.
504	Name *string
505
506	// The status of the data source. When the status is ACTIVE the data source is
507	// ready to use.
508	Status DataSourceStatus
509
510	// The type of the data source.
511	Type DataSourceType
512
513	// The UNIX datetime that the data source was lasted updated.
514	UpdatedAt *time.Time
515}
516
517// Provides information about a synchronization job.
518type DataSourceSyncJob struct {
519
520	// If the reason that the synchronization failed is due to an error with the
521	// underlying data source, this field contains a code that identifies the error.
522	DataSourceErrorCode *string
523
524	// The UNIX datetime that the synchronization job was completed.
525	EndTime *time.Time
526
527	// If the Status field is set to FAILED, the ErrorCode field contains a the reason
528	// that the synchronization failed.
529	ErrorCode ErrorCode
530
531	// If the Status field is set to ERROR, the ErrorMessage field contains a
532	// description of the error that caused the synchronization to fail.
533	ErrorMessage *string
534
535	// A unique identifier for the synchronization job.
536	ExecutionId *string
537
538	// Maps a batch delete document request to a specific data source sync job. This is
539	// optional and should only be supplied when documents are deleted by a data source
540	// connector.
541	Metrics *DataSourceSyncJobMetrics
542
543	// The UNIX datetime that the synchronization job was started.
544	StartTime *time.Time
545
546	// The execution status of the synchronization job. When the Status field is set to
547	// SUCCEEDED, the synchronization job is done. If the status code is set to FAILED,
548	// the ErrorCode and ErrorMessage fields give you the reason for the failure.
549	Status DataSourceSyncJobStatus
550}
551
552// Maps a batch delete document request to a specific data source sync job. This is
553// optional and should only be supplied when documents are deleted by a data source
554// connector.
555type DataSourceSyncJobMetrics struct {
556
557	// The number of documents added from the data source up to now in the data source
558	// sync.
559	DocumentsAdded *string
560
561	// The number of documents deleted from the data source up to now in the data
562	// source sync run.
563	DocumentsDeleted *string
564
565	// The number of documents that failed to sync from the data source up to now in
566	// the data source sync run.
567	DocumentsFailed *string
568
569	// The number of documents modified in the data source up to now in the data source
570	// sync run.
571	DocumentsModified *string
572
573	// The current number of documents crawled by the current sync job in the data
574	// source.
575	DocumentsScanned *string
576}
577
578// Maps a particular data source sync job to a particular data source.
579type DataSourceSyncJobMetricTarget struct {
580
581	// The ID of the data source that is running the sync job.
582	//
583	// This member is required.
584	DataSourceId *string
585
586	// The ID of the sync job that is running on the data source.
587	//
588	// This member is required.
589	DataSourceSyncJobId *string
590}
591
592// Maps a column or attribute in the data source to an index field. You must first
593// create the fields in the index using the UpdateIndex operation.
594type DataSourceToIndexFieldMapping struct {
595
596	// The name of the column or attribute in the data source.
597	//
598	// This member is required.
599	DataSourceFieldName *string
600
601	// The name of the field in the index.
602	//
603	// This member is required.
604	IndexFieldName *string
605
606	// The type of data stored in the column or attribute.
607	DateFieldFormat *string
608}
609
610// Provides information for connecting to an Amazon VPC.
611type DataSourceVpcConfiguration struct {
612
613	// A list of identifiers of security groups within your Amazon VPC. The security
614	// groups should enable Amazon Kendra to connect to the data source.
615	//
616	// This member is required.
617	SecurityGroupIds []string
618
619	// A list of identifiers for subnets within your Amazon VPC. The subnets should be
620	// able to connect to each other in the VPC, and they should have outgoing access
621	// to the Internet through a NAT device.
622	//
623	// This member is required.
624	SubnetIds []string
625}
626
627// A document in an index.
628type Document struct {
629
630	// A unique identifier of the document in the index.
631	//
632	// This member is required.
633	Id *string
634
635	// Information to use for user context filtering.
636	AccessControlList []Principal
637
638	// Custom attributes to apply to the document. Use the custom attributes to provide
639	// additional information for searching, to provide facets for refining searches,
640	// and to provide additional information in the query response.
641	Attributes []DocumentAttribute
642
643	// The contents of the document. Documents passed to the Blob parameter must be
644	// base64 encoded. Your code might not need to encode the document file bytes if
645	// you're using an AWS SDK to call Amazon Kendra operations. If you are calling the
646	// Amazon Kendra endpoint directly using REST, you must base64 encode the contents
647	// before sending.
648	Blob []byte
649
650	// The file type of the document in the Blob field.
651	ContentType ContentType
652
653	// Information required to find a specific file in an Amazon S3 bucket.
654	S3Path *S3Path
655
656	// The title of the document.
657	Title *string
658}
659
660// A custom attribute value assigned to a document.
661type DocumentAttribute struct {
662
663	// The identifier for the attribute.
664	//
665	// This member is required.
666	Key *string
667
668	// The value of the attribute.
669	//
670	// This member is required.
671	Value DocumentAttributeValue
672}
673
674// The value of a custom document attribute. You can only provide one value for a
675// custom attribute.
676//
677// The following types satisfy this interface:
678//  DocumentAttributeValueMemberStringValue
679//  DocumentAttributeValueMemberStringListValue
680//  DocumentAttributeValueMemberLongValue
681//  DocumentAttributeValueMemberDateValue
682type DocumentAttributeValue interface {
683	isDocumentAttributeValue()
684}
685
686// A string, such as "department".
687type DocumentAttributeValueMemberStringValue struct {
688	Value string
689}
690
691func (*DocumentAttributeValueMemberStringValue) isDocumentAttributeValue() {}
692
693// A list of strings.
694type DocumentAttributeValueMemberStringListValue struct {
695	Value []string
696}
697
698func (*DocumentAttributeValueMemberStringListValue) isDocumentAttributeValue() {}
699
700// A long integer value.
701type DocumentAttributeValueMemberLongValue struct {
702	Value int64
703}
704
705func (*DocumentAttributeValueMemberLongValue) isDocumentAttributeValue() {}
706
707// A date expressed as an ISO 8601 string.
708type DocumentAttributeValueMemberDateValue struct {
709	Value time.Time
710}
711
712func (*DocumentAttributeValueMemberDateValue) isDocumentAttributeValue() {}
713
714// Provides the count of documents that match a particular attribute when doing a
715// faceted search.
716type DocumentAttributeValueCountPair struct {
717
718	// The number of documents in the response that have the attribute value for the
719	// key.
720	Count *int32
721
722	// The value of the attribute. For example, "HR."
723	DocumentAttributeValue DocumentAttributeValue
724}
725
726// Specifies the properties of a custom index field.
727type DocumentMetadataConfiguration struct {
728
729	// The name of the index field.
730	//
731	// This member is required.
732	Name *string
733
734	// The data type of the index field.
735	//
736	// This member is required.
737	Type DocumentAttributeValueType
738
739	// Provides manual tuning parameters to determine how the field affects the search
740	// results.
741	Relevance *Relevance
742
743	// Provides information about how the field is used during a search.
744	Search *Search
745}
746
747// Document metadata files that contain information such as the document access
748// control information, source URI, document author, and custom attributes. Each
749// metadata file contains metadata about a single document.
750type DocumentsMetadataConfiguration struct {
751
752	// A prefix used to filter metadata configuration files in the AWS S3 bucket. The
753	// S3 bucket might contain multiple metadata files. Use S3Prefix to include only
754	// the desired metadata files.
755	S3Prefix *string
756}
757
758// Information about a document attribute
759type Facet struct {
760
761	// The unique key for the document attribute.
762	DocumentAttributeKey *string
763}
764
765// The facet values for the documents in the response.
766type FacetResult struct {
767
768	// The key for the facet values. This is the same as the DocumentAttributeKey
769	// provided in the query.
770	DocumentAttributeKey *string
771
772	// An array of key/value pairs, where the key is the value of the attribute and the
773	// count is the number of documents that share the key value.
774	DocumentAttributeValueCountPairs []DocumentAttributeValueCountPair
775
776	// The data type of the facet value. This is the same as the type defined for the
777	// index field when it was created.
778	DocumentAttributeValueType DocumentAttributeValueType
779}
780
781// Provides statistical information about the FAQ questions and answers contained
782// in an index.
783type FaqStatistics struct {
784
785	// The total number of FAQ questions and answers contained in the index.
786	//
787	// This member is required.
788	IndexedQuestionAnswersCount int32
789}
790
791// Provides information about a frequently asked questions and answer contained in
792// an index.
793type FaqSummary struct {
794
795	// The UNIX datetime that the FAQ was added to the index.
796	CreatedAt *time.Time
797
798	// The file type used to create the FAQ.
799	FileFormat FaqFileFormat
800
801	// The unique identifier of the FAQ.
802	Id *string
803
804	// The name that you assigned the FAQ when you created or updated the FAQ.
805	Name *string
806
807	// The current status of the FAQ. When the status is ACTIVE the FAQ is ready for
808	// use.
809	Status FaqStatus
810
811	// The UNIX datetime that the FAQ was last updated.
812	UpdatedAt *time.Time
813}
814
815// Provides configuration information for data sources that connect to Google
816// Drive.
817type GoogleDriveConfiguration struct {
818
819	// The Amazon Resource Name (ARN) of a AWS Secrets Manager secret that contains the
820	// credentials required to connect to Google Drive. For more information, see Using
821	// a Google Workspace Drive data source
822	// (https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html).
823	//
824	// This member is required.
825	SecretArn *string
826
827	// A list of MIME types to exclude from the index. All documents matching the
828	// specified MIME type are excluded. For a list of MIME types, see Using a Google
829	// Workspace Drive data source
830	// (https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html).
831	ExcludeMimeTypes []string
832
833	// A list of identifiers or shared drives to exclude from the index. All files and
834	// folders stored on the shared drive are excluded.
835	ExcludeSharedDrives []string
836
837	// A list of email addresses of the users. Documents owned by these users are
838	// excluded from the index. Documents shared with excluded users are indexed unless
839	// they are excluded in another way.
840	ExcludeUserAccounts []string
841
842	// A list of regular expression patterns that apply to the path on Google Drive.
843	// Items that match the pattern are excluded from the index from both shared drives
844	// and users' My Drives. Items that don't match the pattern are included in the
845	// index. If an item matches both an exclusion pattern and an inclusion pattern, it
846	// is excluded from the index.
847	ExclusionPatterns []string
848
849	// Defines mapping between a field in the Google Drive and a Amazon Kendra index
850	// field. If you are using the console, you can define index fields when creating
851	// the mapping. If you are using the API, you must first create the field using the
852	// UpdateIndex operation.
853	FieldMappings []DataSourceToIndexFieldMapping
854
855	// A list of regular expression patterns that apply to path on Google Drive. Items
856	// that match the pattern are included in the index from both shared drives and
857	// users' My Drives. Items that don't match the pattern are excluded from the
858	// index. If an item matches both an inclusion pattern and an exclusion pattern, it
859	// is excluded from the index.
860	InclusionPatterns []string
861}
862
863// Provides information that you can use to highlight a search result so that your
864// users can quickly identify terms in the response.
865type Highlight struct {
866
867	// The zero-based location in the response string where the highlight starts.
868	//
869	// This member is required.
870	BeginOffset *int32
871
872	// The zero-based location in the response string where the highlight ends.
873	//
874	// This member is required.
875	EndOffset *int32
876
877	// Indicates whether the response is the best response. True if this is the best
878	// response; otherwise, false.
879	TopAnswer bool
880
881	// The highlight type.
882	Type HighlightType
883}
884
885// A summary of information about an index.
886type IndexConfigurationSummary struct {
887
888	// The Unix timestamp when the index was created.
889	//
890	// This member is required.
891	CreatedAt *time.Time
892
893	// The current status of the index. When the status is ACTIVE, the index is ready
894	// to search.
895	//
896	// This member is required.
897	Status IndexStatus
898
899	// The Unix timestamp when the index was last updated by the UpdateIndex operation.
900	//
901	// This member is required.
902	UpdatedAt *time.Time
903
904	// Indicates whether the index is a enterprise edition index or a developer edition
905	// index.
906	Edition IndexEdition
907
908	// A unique identifier for the index. Use this to identify the index when you are
909	// using operations such as Query, DescribeIndex, UpdateIndex, and DeleteIndex.
910	Id *string
911
912	// The name of the index.
913	Name *string
914}
915
916// Provides information about the number of documents and the number of questions
917// and answers in an index.
918type IndexStatistics struct {
919
920	// The number of question and answer topics in the index.
921	//
922	// This member is required.
923	FaqStatistics *FaqStatistics
924
925	// The number of text documents indexed.
926	//
927	// This member is required.
928	TextDocumentStatistics *TextDocumentStatistics
929}
930
931// Configuration information for the JSON token type.
932type JsonTokenTypeConfiguration struct {
933
934	// The group attribute field.
935	//
936	// This member is required.
937	GroupAttributeField *string
938
939	// The user name attribute field.
940	//
941	// This member is required.
942	UserNameAttributeField *string
943}
944
945// Configuration information for the JWT token type.
946type JwtTokenTypeConfiguration struct {
947
948	// The location of the key.
949	//
950	// This member is required.
951	KeyLocation KeyLocation
952
953	// The regular expression that identifies the claim.
954	ClaimRegex *string
955
956	// The group attribute field.
957	GroupAttributeField *string
958
959	// The issuer of the token.
960	Issuer *string
961
962	// The Amazon Resource Name (arn) of the secret.
963	SecretManagerArn *string
964
965	// The signing key URL.
966	URL *string
967
968	// The user name attribute field.
969	UserNameAttributeField *string
970}
971
972// Provides configuration information for data sources that connect to OneDrive.
973type OneDriveConfiguration struct {
974
975	// A list of user accounts whose documents should be indexed.
976	//
977	// This member is required.
978	OneDriveUsers *OneDriveUsers
979
980	// The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains
981	// the user name and password to connect to OneDrive. The user namd should be the
982	// application ID for the OneDrive application, and the password is the application
983	// key for the OneDrive application.
984	//
985	// This member is required.
986	SecretArn *string
987
988	// The Azure Active Directory domain of the organization.
989	//
990	// This member is required.
991	TenantDomain *string
992
993	// A Boolean value that specifies whether local groups are disabled (True) or
994	// enabled (False).
995	DisableLocalGroups bool
996
997	// List of regular expressions applied to documents. Items that match the exclusion
998	// pattern are not indexed. If you provide both an inclusion pattern and an
999	// exclusion pattern, any item that matches the exclusion pattern isn't indexed.
1000	// The exclusion pattern is applied to the file name.
1001	ExclusionPatterns []string
1002
1003	// A list of DataSourceToIndexFieldMapping objects that map Microsoft OneDrive
1004	// fields to custom fields in the Amazon Kendra index. You must first create the
1005	// index fields before you map OneDrive fields.
1006	FieldMappings []DataSourceToIndexFieldMapping
1007
1008	// A list of regular expression patterns. Documents that match the pattern are
1009	// included in the index. Documents that don't match the pattern are excluded from
1010	// the index. If a document matches both an inclusion pattern and an exclusion
1011	// pattern, the document is not included in the index. The exclusion pattern is
1012	// applied to the file name.
1013	InclusionPatterns []string
1014}
1015
1016// User accounts whose documents should be indexed.
1017type OneDriveUsers struct {
1018
1019	// A list of users whose documents should be indexed. Specify the user names in
1020	// email format, for example, username@tenantdomain. If you need to index the
1021	// documents of more than 100 users, use the OneDriveUserS3Path field to specify
1022	// the location of a file containing a list of users.
1023	OneDriveUserList []string
1024
1025	// The S3 bucket location of a file containing a list of users whose documents
1026	// should be indexed.
1027	OneDriveUserS3Path *S3Path
1028}
1029
1030// Provides user and group information for document access filtering.
1031type Principal struct {
1032
1033	// Whether to allow or deny access to the principal.
1034	//
1035	// This member is required.
1036	Access ReadAccessType
1037
1038	// The name of the user or group.
1039	//
1040	// This member is required.
1041	Name *string
1042
1043	// The type of principal.
1044	//
1045	// This member is required.
1046	Type PrincipalType
1047}
1048
1049// A single query result. A query result contains information about a document
1050// returned by the query. This includes the original location of the document, a
1051// list of attributes assigned to the document, and relevant text from the document
1052// that satisfies the query.
1053type QueryResultItem struct {
1054
1055	// One or more additional attributes associated with the query result.
1056	AdditionalAttributes []AdditionalResultAttribute
1057
1058	// An array of document attributes for the document that the query result maps to.
1059	// For example, the document author (Author) or the source URI (SourceUri) of the
1060	// document.
1061	DocumentAttributes []DocumentAttribute
1062
1063	// An extract of the text in the document. Contains information about highlighting
1064	// the relevant terms in the excerpt.
1065	DocumentExcerpt *TextWithHighlights
1066
1067	// The unique identifier for the document.
1068	DocumentId *string
1069
1070	// The title of the document. Contains the text of the title and information for
1071	// highlighting the relevant terms in the title.
1072	DocumentTitle *TextWithHighlights
1073
1074	// The URI of the original location of the document.
1075	DocumentURI *string
1076
1077	// A token that identifies a particular result from a particular query. Use this
1078	// token to provide click-through feedback for the result. For more information,
1079	// see  Submitting feedback
1080	// (https://docs.aws.amazon.com/kendra/latest/dg/submitting-feedback.html).
1081	FeedbackToken *string
1082
1083	// The unique identifier for the query result.
1084	Id *string
1085
1086	// Indicates the confidence that Amazon Kendra has that a result matches the query
1087	// that you provided. Each result is placed into a bin that indicates the
1088	// confidence, VERY_HIGH, HIGH, MEDIUM and LOW. You can use the score to determine
1089	// if a response meets the confidence needed for your application. The field is
1090	// only set to LOW when the Type field is set to DOCUMENT and Amazon Kendra is not
1091	// confident that the result matches the query.
1092	ScoreAttributes *ScoreAttributes
1093
1094	// The type of document.
1095	Type QueryResultType
1096}
1097
1098// Provides information for manually tuning the relevance of a field in a search.
1099// When a query includes terms that match the field, the results are given a boost
1100// in the response based on these tuning parameters.
1101type Relevance struct {
1102
1103	// Specifies the time period that the boost applies to. For example, to make the
1104	// boost apply to documents with the field value within the last month, you would
1105	// use "2628000s". Once the field value is beyond the specified range, the effect
1106	// of the boost drops off. The higher the importance, the faster the effect drops
1107	// off. If you don't specify a value, the default is 3 months. The value of the
1108	// field is a numeric string followed by the character "s", for example "86400s"
1109	// for one day, or "604800s" for one week. Only applies to DATE fields.
1110	Duration *string
1111
1112	// Indicates that this field determines how "fresh" a document is. For example, if
1113	// document 1 was created on November 5, and document 2 was created on October 31,
1114	// document 1 is "fresher" than document 2. You can only set the Freshness field on
1115	// one DATE type field. Only applies to DATE fields.
1116	Freshness *bool
1117
1118	// The relative importance of the field in the search. Larger numbers provide more
1119	// of a boost than smaller numbers.
1120	Importance *int32
1121
1122	// Determines how values should be interpreted. When the RankOrder field is
1123	// ASCENDING, higher numbers are better. For example, a document with a rating
1124	// score of 10 is higher ranking than a document with a rating score of 1. When the
1125	// RankOrder field is DESCENDING, lower numbers are better. For example, in a task
1126	// tracking application, a priority 1 task is more important than a priority 5
1127	// task. Only applies to LONG and DOUBLE fields.
1128	RankOrder Order
1129
1130	// A list of values that should be given a different boost when they appear in the
1131	// result list. For example, if you are boosting a field called "department," query
1132	// terms that match the department field are boosted in the result. However, you
1133	// can add entries from the department field to boost documents with those values
1134	// higher. For example, you can add entries to the map with names of departments.
1135	// If you add "HR",5 and "Legal",3 those departments are given special attention
1136	// when they appear in the metadata of a document. When those terms appear they are
1137	// given the specified importance instead of the regular importance for the boost.
1138	ValueImportanceMap map[string]int32
1139}
1140
1141// Provides feedback on how relevant a document is to a search. Your application
1142// uses the SubmitFeedback operation to provide relevance information.
1143type RelevanceFeedback struct {
1144
1145	// Whether to document was relevant or not relevant to the search.
1146	//
1147	// This member is required.
1148	RelevanceValue RelevanceType
1149
1150	// The unique identifier of the search result that the user provided relevance
1151	// feedback for.
1152	//
1153	// This member is required.
1154	ResultId *string
1155}
1156
1157// Provides configuration information for a data source to index documents in an
1158// Amazon S3 bucket.
1159type S3DataSourceConfiguration struct {
1160
1161	// The name of the bucket that contains the documents.
1162	//
1163	// This member is required.
1164	BucketName *string
1165
1166	// Provides the path to the S3 bucket that contains the user context filtering
1167	// files for the data source. For the format of the file, see Access control for S3
1168	// data sources (https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html).
1169	AccessControlListConfiguration *AccessControlListConfiguration
1170
1171	// Document metadata files that contain information such as the document access
1172	// control information, source URI, document author, and custom attributes. Each
1173	// metadata file contains metadata about a single document.
1174	DocumentsMetadataConfiguration *DocumentsMetadataConfiguration
1175
1176	// A list of glob patterns for documents that should not be indexed. If a document
1177	// that matches an inclusion prefix or inclusion pattern also matches an exclusion
1178	// pattern, the document is not indexed. For more information about glob patterns,
1179	// see glob (programming) (https://en.wikipedia.org/wiki/Glob_(programming)) in
1180	// Wikipedia.
1181	ExclusionPatterns []string
1182
1183	// A list of glob patterns for documents that should be indexed. If a document that
1184	// matches an inclusion pattern also matches an exclusion pattern, the document is
1185	// not indexed. For more information about glob patterns, see glob (programming)
1186	// (https://en.wikipedia.org/wiki/Glob_(programming)) in Wikipedia.
1187	InclusionPatterns []string
1188
1189	// A list of S3 prefixes for the documents that should be included in the index.
1190	InclusionPrefixes []string
1191}
1192
1193// Information required to find a specific file in an Amazon S3 bucket.
1194type S3Path struct {
1195
1196	// The name of the S3 bucket that contains the file.
1197	//
1198	// This member is required.
1199	Bucket *string
1200
1201	// The name of the file.
1202	//
1203	// This member is required.
1204	Key *string
1205}
1206
1207// Defines configuration for syncing a Salesforce chatter feed. The contents of the
1208// object comes from the Salesforce FeedItem table.
1209type SalesforceChatterFeedConfiguration struct {
1210
1211	// The name of the column in the Salesforce FeedItem table that contains the
1212	// content to index. Typically this is the Body column.
1213	//
1214	// This member is required.
1215	DocumentDataFieldName *string
1216
1217	// The name of the column in the Salesforce FeedItem table that contains the title
1218	// of the document. This is typically the Title collumn.
1219	DocumentTitleFieldName *string
1220
1221	// Maps fields from a Salesforce chatter feed into Amazon Kendra index fields.
1222	FieldMappings []DataSourceToIndexFieldMapping
1223
1224	// Filters the documents in the feed based on status of the user. When you specify
1225	// ACTIVE_USERS only documents from users who have an active account are indexed.
1226	// When you specify STANDARD_USER only documents for Salesforce standard users are
1227	// documented. You can specify both.
1228	IncludeFilterTypes []SalesforceChatterFeedIncludeFilterType
1229}
1230
1231// Provides configuration information for connecting to a Salesforce data source.
1232type SalesforceConfiguration struct {
1233
1234	// The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains
1235	// the key/value pairs required to connect to your Salesforce instance. The secret
1236	// must contain a JSON structure with the following keys:
1237	//
1238	// * authenticationUrl -
1239	// The OAUTH endpoint that Amazon Kendra connects to get an OAUTH token.
1240	//
1241	// *
1242	// consumerKey - The application public key generated when you created your
1243	// Salesforce application.
1244	//
1245	// * consumerSecret - The application private key
1246	// generated when you created your Salesforce application.
1247	//
1248	// * password - The
1249	// password associated with the user logging in to the Salesforce instance.
1250	//
1251	// *
1252	// securityToken - The token associated with the user account logging in to the
1253	// Salesforce instance.
1254	//
1255	// * username - The user name of the user logging in to the
1256	// Salesforce instance.
1257	//
1258	// This member is required.
1259	SecretArn *string
1260
1261	// The instance URL for the Salesforce site that you want to index.
1262	//
1263	// This member is required.
1264	ServerUrl *string
1265
1266	// Specifies configuration information for Salesforce chatter feeds.
1267	ChatterFeedConfiguration *SalesforceChatterFeedConfiguration
1268
1269	// Indicates whether Amazon Kendra should index attachments to Salesforce objects.
1270	CrawlAttachments bool
1271
1272	// A list of regular expression patterns. Documents that match the patterns are
1273	// excluded from the index. Documents that don't match the patterns are included in
1274	// the index. If a document matches both an exclusion pattern and an inclusion
1275	// pattern, the document is not included in the index. The regex is applied to the
1276	// name of the attached file.
1277	ExcludeAttachmentFilePatterns []string
1278
1279	// A list of regular expression patterns. Documents that match the patterns are
1280	// included in the index. Documents that don't match the patterns are excluded from
1281	// the index. If a document matches both an inclusion pattern and an exclusion
1282	// pattern, the document is not included in the index. The regex is applied to the
1283	// name of the attached file.
1284	IncludeAttachmentFilePatterns []string
1285
1286	// Specifies configuration information for the knowledge article types that Amazon
1287	// Kendra indexes. Amazon Kendra indexes standard knowledge articles and the
1288	// standard fields of knowledge articles, or the custom fields of custom knowledge
1289	// articles, but not both.
1290	KnowledgeArticleConfiguration *SalesforceKnowledgeArticleConfiguration
1291
1292	// Provides configuration information for processing attachments to Salesforce
1293	// standard objects.
1294	StandardObjectAttachmentConfiguration *SalesforceStandardObjectAttachmentConfiguration
1295
1296	// Specifies the Salesforce standard objects that Amazon Kendra indexes.
1297	StandardObjectConfigurations []SalesforceStandardObjectConfiguration
1298}
1299
1300// Provides configuration information for indexing Salesforce custom articles.
1301type SalesforceCustomKnowledgeArticleTypeConfiguration struct {
1302
1303	// The name of the field in the custom knowledge article that contains the document
1304	// data to index.
1305	//
1306	// This member is required.
1307	DocumentDataFieldName *string
1308
1309	// The name of the configuration.
1310	//
1311	// This member is required.
1312	Name *string
1313
1314	// The name of the field in the custom knowledge article that contains the document
1315	// title.
1316	DocumentTitleFieldName *string
1317
1318	// One or more objects that map fields in the custom knowledge article to fields in
1319	// the Amazon Kendra index.
1320	FieldMappings []DataSourceToIndexFieldMapping
1321}
1322
1323// Specifies configuration information for the knowledge article types that Amazon
1324// Kendra indexes. Amazon Kendra indexes standard knowledge articles and the
1325// standard fields of knowledge articles, or the custom fields of custom knowledge
1326// articles, but not both
1327type SalesforceKnowledgeArticleConfiguration struct {
1328
1329	// Specifies the document states that should be included when Amazon Kendra indexes
1330	// knowledge articles. You must specify at least one state.
1331	//
1332	// This member is required.
1333	IncludedStates []SalesforceKnowledgeArticleState
1334
1335	// Provides configuration information for custom Salesforce knowledge articles.
1336	CustomKnowledgeArticleTypeConfigurations []SalesforceCustomKnowledgeArticleTypeConfiguration
1337
1338	// Provides configuration information for standard Salesforce knowledge articles.
1339	StandardKnowledgeArticleTypeConfiguration *SalesforceStandardKnowledgeArticleTypeConfiguration
1340}
1341
1342// Provides configuration information for standard Salesforce knowledge articles.
1343type SalesforceStandardKnowledgeArticleTypeConfiguration struct {
1344
1345	// The name of the field that contains the document data to index.
1346	//
1347	// This member is required.
1348	DocumentDataFieldName *string
1349
1350	// The name of the field that contains the document title.
1351	DocumentTitleFieldName *string
1352
1353	// One or more objects that map fields in the knowledge article to Amazon Kendra
1354	// index fields. The index field must exist before you can map a Salesforce field
1355	// to it.
1356	FieldMappings []DataSourceToIndexFieldMapping
1357}
1358
1359// Provides configuration information for processing attachments to Salesforce
1360// standard objects.
1361type SalesforceStandardObjectAttachmentConfiguration struct {
1362
1363	// The name of the field used for the document title.
1364	DocumentTitleFieldName *string
1365
1366	// One or more objects that map fields in attachments to Amazon Kendra index
1367	// fields.
1368	FieldMappings []DataSourceToIndexFieldMapping
1369}
1370
1371// Specifies configuration information for indexing a single standard object.
1372type SalesforceStandardObjectConfiguration struct {
1373
1374	// The name of the field in the standard object table that contains the document
1375	// contents.
1376	//
1377	// This member is required.
1378	DocumentDataFieldName *string
1379
1380	// The name of the standard object.
1381	//
1382	// This member is required.
1383	Name SalesforceStandardObjectName
1384
1385	// The name of the field in the standard object table that contains the document
1386	// title.
1387	DocumentTitleFieldName *string
1388
1389	// One or more objects that map fields in the standard object to Amazon Kendra
1390	// index fields. The index field must exist before you can map a Salesforce field
1391	// to it.
1392	FieldMappings []DataSourceToIndexFieldMapping
1393}
1394
1395// Provides a relative ranking that indicates how confident Amazon Kendra is that
1396// the response matches the query.
1397type ScoreAttributes struct {
1398
1399	// A relative ranking for how well the response matches the query.
1400	ScoreConfidence ScoreConfidence
1401}
1402
1403// Provides information about how a custom index field is used during a search.
1404type Search struct {
1405
1406	// Determines whether the field is returned in the query response. The default is
1407	// true.
1408	Displayable bool
1409
1410	// Indicates that the field can be used to create search facets, a count of results
1411	// for each value in the field. The default is false .
1412	Facetable bool
1413
1414	// Determines whether the field is used in the search. If the Searchable field is
1415	// true, you can use relevance tuning to manually tune how Amazon Kendra weights
1416	// the field in the search. The default is true for string fields and false for
1417	// number and date fields.
1418	Searchable bool
1419
1420	// Determines whether the field can be used to sort the results of a query. If you
1421	// specify sorting on a field that does not have Sortable set to true, Amazon
1422	// Kendra returns an exception. The default is false.
1423	Sortable bool
1424}
1425
1426// Provides the identifier of the AWS KMS customer master key (CMK) used to encrypt
1427// data indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric CMKs.
1428type ServerSideEncryptionConfiguration struct {
1429
1430	// The identifier of the AWS KMS customer master key (CMK). Amazon Kendra doesn't
1431	// support asymmetric CMKs.
1432	KmsKeyId *string
1433}
1434
1435// Provides configuration information required to connect to a ServiceNow data
1436// source.
1437type ServiceNowConfiguration struct {
1438
1439	// The ServiceNow instance that the data source connects to. The host endpoint
1440	// should look like the following: {instance}.service-now.com.
1441	//
1442	// This member is required.
1443	HostUrl *string
1444
1445	// The Amazon Resource Name (ARN) of the AWS Secret Manager secret that contains
1446	// the user name and password required to connect to the ServiceNow instance.
1447	//
1448	// This member is required.
1449	SecretArn *string
1450
1451	// The identifier of the release that the ServiceNow host is running. If the host
1452	// is not running the LONDON release, use OTHERS.
1453	//
1454	// This member is required.
1455	ServiceNowBuildVersion ServiceNowBuildVersionType
1456
1457	// Determines the type of authentication used to connect to the ServiceNow
1458	// instance. If you choose HTTP_BASIC, Amazon Kendra is authenticated using the
1459	// user name and password provided in the AWS Secrets Manager secret in the
1460	// SecretArn field. When you choose OAUTH2, Amazon Kendra is authenticated using
1461	// the OAuth token and secret provided in the Secrets Manager secret, and the user
1462	// name and password are used to determine which information Amazon Kendra has
1463	// access to. When you use OAUTH2 authentication, you must generate a token and a
1464	// client secret using the ServiceNow console. For more information, see Using a
1465	// ServiceNow data source
1466	// (https://docs.aws.amazon.com/kendra/latest/dg/data-source-servicenow.html).
1467	AuthenticationType ServiceNowAuthenticationType
1468
1469	// Provides configuration information for crawling knowledge articles in the
1470	// ServiceNow site.
1471	KnowledgeArticleConfiguration *ServiceNowKnowledgeArticleConfiguration
1472
1473	// Provides configuration information for crawling service catalogs in the
1474	// ServiceNow site.
1475	ServiceCatalogConfiguration *ServiceNowServiceCatalogConfiguration
1476}
1477
1478// Provides configuration information for crawling knowledge articles in the
1479// ServiceNow site.
1480type ServiceNowKnowledgeArticleConfiguration struct {
1481
1482	// The name of the ServiceNow field that is mapped to the index document contents
1483	// field in the Amazon Kendra index.
1484	//
1485	// This member is required.
1486	DocumentDataFieldName *string
1487
1488	// Indicates whether Amazon Kendra should index attachments to knowledge articles.
1489	CrawlAttachments bool
1490
1491	// The name of the ServiceNow field that is mapped to the index document title
1492	// field.
1493	DocumentTitleFieldName *string
1494
1495	// List of regular expressions applied to knowledge articles. Items that don't
1496	// match the inclusion pattern are not indexed. The regex is applied to the field
1497	// specified in the PatternTargetField
1498	ExcludeAttachmentFilePatterns []string
1499
1500	// Mapping between ServiceNow fields and Amazon Kendra index fields. You must
1501	// create the index field before you map the field.
1502	FieldMappings []DataSourceToIndexFieldMapping
1503
1504	// A query that selects the knowledge articles to index. The query can return
1505	// articles from multiple knowledge bases, and the knowledge bases can be public or
1506	// private. The query string must be one generated by the ServiceNow console. For
1507	// more information, see Specifying documents to index with a query
1508	// (https://docs.aws.amazon.com/kendra/latest/dg/servicenow-query.html).
1509	FilterQuery *string
1510
1511	// List of regular expressions applied to knowledge articles. Items that don't
1512	// match the inclusion pattern are not indexed. The regex is applied to the field
1513	// specified in the PatternTargetField.
1514	IncludeAttachmentFilePatterns []string
1515}
1516
1517// Provides configuration information for crawling service catalog items in the
1518// ServiceNow site
1519type ServiceNowServiceCatalogConfiguration struct {
1520
1521	// The name of the ServiceNow field that is mapped to the index document contents
1522	// field in the Amazon Kendra index.
1523	//
1524	// This member is required.
1525	DocumentDataFieldName *string
1526
1527	// Indicates whether Amazon Kendra should crawl attachments to the service catalog
1528	// items.
1529	CrawlAttachments bool
1530
1531	// The name of the ServiceNow field that is mapped to the index document title
1532	// field.
1533	DocumentTitleFieldName *string
1534
1535	// A list of regular expression patterns. Documents that match the patterns are
1536	// excluded from the index. Documents that don't match the patterns are included in
1537	// the index. If a document matches both an exclusion pattern and an inclusion
1538	// pattern, the document is not included in the index. The regex is applied to the
1539	// file name of the attachment.
1540	ExcludeAttachmentFilePatterns []string
1541
1542	// Mapping between ServiceNow fields and Amazon Kendra index fields. You must
1543	// create the index field before you map the field.
1544	FieldMappings []DataSourceToIndexFieldMapping
1545
1546	// A list of regular expression patterns. Documents that match the patterns are
1547	// included in the index. Documents that don't match the patterns are excluded from
1548	// the index. If a document matches both an exclusion pattern and an inclusion
1549	// pattern, the document is not included in the index. The regex is applied to the
1550	// file name of the attachment.
1551	IncludeAttachmentFilePatterns []string
1552}
1553
1554// Provides configuration information for connecting to a Microsoft SharePoint data
1555// source.
1556type SharePointConfiguration struct {
1557
1558	// The Amazon Resource Name (ARN) of credentials stored in AWS Secrets Manager. The
1559	// credentials should be a user/password pair. For more information, see Using a
1560	// Microsoft SharePoint Data Source
1561	// (https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html). For
1562	// more information about AWS Secrets Manager, see  What Is AWS Secrets Manager
1563	// (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) in the
1564	// AWS Secrets Manager user guide.
1565	//
1566	// This member is required.
1567	SecretArn *string
1568
1569	// The version of Microsoft SharePoint that you are using as a data source.
1570	//
1571	// This member is required.
1572	SharePointVersion SharePointVersion
1573
1574	// The URLs of the Microsoft SharePoint site that contains the documents that
1575	// should be indexed.
1576	//
1577	// This member is required.
1578	Urls []string
1579
1580	// TRUE to include attachments to documents stored in your Microsoft SharePoint
1581	// site in the index; otherwise, FALSE.
1582	CrawlAttachments bool
1583
1584	// A Boolean value that specifies whether local groups are disabled (True) or
1585	// enabled (False).
1586	DisableLocalGroups bool
1587
1588	// The Microsoft SharePoint attribute field that contains the title of the
1589	// document.
1590	DocumentTitleFieldName *string
1591
1592	// A list of regular expression patterns. Documents that match the patterns are
1593	// excluded from the index. Documents that don't match the patterns are included in
1594	// the index. If a document matches both an exclusion pattern and an inclusion
1595	// pattern, the document is not included in the index. The regex is applied to the
1596	// display URL of the SharePoint document.
1597	ExclusionPatterns []string
1598
1599	// A list of DataSourceToIndexFieldMapping objects that map Microsoft SharePoint
1600	// attributes to custom fields in the Amazon Kendra index. You must first create
1601	// the index fields using the UpdateIndex operation before you map SharePoint
1602	// attributes. For more information, see Mapping Data Source Fields
1603	// (https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html).
1604	FieldMappings []DataSourceToIndexFieldMapping
1605
1606	// A list of regular expression patterns. Documents that match the patterns are
1607	// included in the index. Documents that don't match the patterns are excluded from
1608	// the index. If a document matches both an inclusion pattern and an exclusion
1609	// pattern, the document is not included in the index. The regex is applied to the
1610	// display URL of the SharePoint document.
1611	InclusionPatterns []string
1612
1613	// Set to TRUE to use the Microsoft SharePoint change log to determine the
1614	// documents that need to be updated in the index. Depending on the size of the
1615	// SharePoint change log, it may take longer for Amazon Kendra to use the change
1616	// log than it takes it to determine the changed documents using the Amazon Kendra
1617	// document crawler.
1618	UseChangeLog bool
1619
1620	// Provides information for connecting to an Amazon VPC.
1621	VpcConfiguration *DataSourceVpcConfiguration
1622}
1623
1624// Specifies the document attribute to use to sort the response to a Amazon Kendra
1625// query. You can specify a single attribute for sorting. The attribute must have
1626// the Sortable flag set to true, otherwise Amazon Kendra returns an exception. You
1627// can sort attributes of the following types.
1628//
1629// * Date value
1630//
1631// * Long value
1632//
1633// *
1634// String value
1635//
1636// You can't sort attributes of the following type.
1637//
1638// * String list
1639// value
1640type SortingConfiguration struct {
1641
1642	// The name of the document attribute used to sort the response. You can use any
1643	// field that has the Sortable flag set to true. You can also sort by any of the
1644	// following built-in attributes:
1645	//
1646	// * _category
1647	//
1648	// * _created_at
1649	//
1650	// *
1651	// _last_updated_at
1652	//
1653	// * _version
1654	//
1655	// * _view_count
1656	//
1657	// This member is required.
1658	DocumentAttributeKey *string
1659
1660	// The order that the results should be returned in. In case of ties, the relevance
1661	// assigned to the result by Amazon Kendra is used as the tie-breaker.
1662	//
1663	// This member is required.
1664	SortOrder SortOrder
1665}
1666
1667// Provides information that configures Amazon Kendra to use a SQL database.
1668type SqlConfiguration struct {
1669
1670	// Determines whether Amazon Kendra encloses SQL identifiers for tables and column
1671	// names in double quotes (") when making a database query. By default, Amazon
1672	// Kendra passes SQL identifiers the way that they are entered into the data source
1673	// configuration. It does not change the case of identifiers or enclose them in
1674	// quotes. PostgreSQL internally converts uppercase characters to lower case
1675	// characters in identifiers unless they are quoted. Choosing this option encloses
1676	// identifiers in quotes so that PostgreSQL does not convert the character's case.
1677	// For MySQL databases, you must enable the ansi_quotes option when you set this
1678	// field to DOUBLE_QUOTES.
1679	QueryIdentifiersEnclosingOption QueryIdentifiersEnclosingOption
1680}
1681
1682// A list of key/value pairs that identify an index, FAQ, or data source. Tag keys
1683// and values can consist of Unicode letters, digits, white space, and any of the
1684// following symbols: _ . : / = + - @.
1685type Tag struct {
1686
1687	// The key for the tag. Keys are not case sensitive and must be unique for the
1688	// index, FAQ, or data source.
1689	//
1690	// This member is required.
1691	Key *string
1692
1693	// The value associated with the tag. The value may be an empty string but it can't
1694	// be null.
1695	//
1696	// This member is required.
1697	Value *string
1698}
1699
1700// Provides information about text documents indexed in an index.
1701type TextDocumentStatistics struct {
1702
1703	// The total size, in bytes, of the indexed documents.
1704	//
1705	// This member is required.
1706	IndexedTextBytes int64
1707
1708	// The number of text documents indexed.
1709	//
1710	// This member is required.
1711	IndexedTextDocumentsCount int32
1712}
1713
1714// Provides text and information about where to highlight the text.
1715type TextWithHighlights struct {
1716
1717	// The beginning and end of the text that should be highlighted.
1718	Highlights []Highlight
1719
1720	// The text to display to the user.
1721	Text *string
1722}
1723
1724// An array of summary information for one or more thesauruses.
1725type ThesaurusSummary struct {
1726
1727	// The Unix datetime that the thesaurus was created.
1728	CreatedAt *time.Time
1729
1730	// The identifier of the thesaurus.
1731	Id *string
1732
1733	// The name of the thesaurus.
1734	Name *string
1735
1736	// The status of the thesaurus.
1737	Status ThesaurusStatus
1738
1739	// The Unix datetime that the thesaurus was last updated.
1740	UpdatedAt *time.Time
1741}
1742
1743// Provides a range of time.
1744type TimeRange struct {
1745
1746	// The UNIX datetime of the end of the time range.
1747	EndTime *time.Time
1748
1749	// The UNIX datetime of the beginning of the time range.
1750	StartTime *time.Time
1751}
1752
1753// Provides information about the user context for a Amazon Kendra index.
1754type UserContext struct {
1755
1756	// The user context token. It must be a JWT or a JSON token.
1757	Token *string
1758}
1759
1760// Provides configuration information for a token configuration.
1761type UserTokenConfiguration struct {
1762
1763	// Information about the JSON token type configuration.
1764	JsonTokenTypeConfiguration *JsonTokenTypeConfiguration
1765
1766	// Information about the JWT token type configuration.
1767	JwtTokenTypeConfiguration *JwtTokenTypeConfiguration
1768}
1769
1770// UnknownUnionMember is returned when a union member is returned over the wire,
1771// but has an unknown tag.
1772type UnknownUnionMember struct {
1773	Tag   string
1774	Value []byte
1775}
1776
1777func (*UnknownUnionMember) isDocumentAttributeValue() {}
1778