1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// Provides information about a bot alias.
10type BotAliasMetadata struct {
11
12	// The name of the bot to which the alias points.
13	BotName *string
14
15	// The version of the Amazon Lex bot to which the alias points.
16	BotVersion *string
17
18	// Checksum of the bot alias.
19	Checksum *string
20
21	// Settings that determine how Amazon Lex uses conversation logs for the alias.
22	ConversationLogs *ConversationLogsResponse
23
24	// The date that the bot alias was created.
25	CreatedDate *time.Time
26
27	// A description of the bot alias.
28	Description *string
29
30	// The date that the bot alias was updated. When you create a resource, the
31	// creation date and last updated date are the same.
32	LastUpdatedDate *time.Time
33
34	// The name of the bot alias.
35	Name *string
36}
37
38// Represents an association between an Amazon Lex bot and an external messaging
39// platform.
40type BotChannelAssociation struct {
41
42	// An alias pointing to the specific version of the Amazon Lex bot to which this
43	// association is being made.
44	BotAlias *string
45
46	// Provides information necessary to communicate with the messaging platform.
47	BotConfiguration map[string]string
48
49	// The name of the Amazon Lex bot to which this association is being made.
50	// Currently, Amazon Lex supports associations with Facebook and Slack, and Twilio.
51	BotName *string
52
53	// The date that the association between the Amazon Lex bot and the channel was
54	// created.
55	CreatedDate *time.Time
56
57	// A text description of the association you are creating.
58	Description *string
59
60	// If status is FAILED, Amazon Lex provides the reason that it failed to create the
61	// association.
62	FailureReason *string
63
64	// The name of the association between the bot and the channel.
65	Name *string
66
67	// The status of the bot channel.
68	//
69	// * CREATED - The channel has been created and is
70	// ready for use.
71	//
72	// * IN_PROGRESS - Channel creation is in progress.
73	//
74	// * FAILED -
75	// There was an error creating the channel. For information about the reason for
76	// the failure, see the failureReason field.
77	Status ChannelStatus
78
79	// Specifies the type of association by indicating the type of channel being
80	// established between the Amazon Lex bot and the external messaging platform.
81	Type ChannelType
82}
83
84// Provides information about a bot. .
85type BotMetadata struct {
86
87	// The date that the bot was created.
88	CreatedDate *time.Time
89
90	// A description of the bot.
91	Description *string
92
93	// The date that the bot was updated. When you create a bot, the creation date and
94	// last updated date are the same.
95	LastUpdatedDate *time.Time
96
97	// The name of the bot.
98	Name *string
99
100	// The status of the bot.
101	Status Status
102
103	// The version of the bot. For a new bot, the version is always $LATEST.
104	Version *string
105}
106
107// Provides metadata for a built-in intent.
108type BuiltinIntentMetadata struct {
109
110	// A unique identifier for the built-in intent. To find the signature for an
111	// intent, see Standard Built-in Intents
112	// (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
113	// in the Alexa Skills Kit.
114	Signature *string
115
116	// A list of identifiers for the locales that the intent supports.
117	SupportedLocales []Locale
118}
119
120// Provides information about a slot used in a built-in intent.
121type BuiltinIntentSlot struct {
122
123	// A list of the slots defined for the intent.
124	Name *string
125}
126
127// Provides information about a built in slot type.
128type BuiltinSlotTypeMetadata struct {
129
130	// A unique identifier for the built-in slot type. To find the signature for a slot
131	// type, see Slot Type Reference
132	// (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference)
133	// in the Alexa Skills Kit.
134	Signature *string
135
136	// A list of target locales for the slot.
137	SupportedLocales []Locale
138}
139
140// Specifies a Lambda function that verifies requests to a bot or fulfills the
141// user's request to a bot..
142type CodeHook struct {
143
144	// The version of the request-response that you want Amazon Lex to use to invoke
145	// your Lambda function. For more information, see using-lambda.
146	//
147	// This member is required.
148	MessageVersion *string
149
150	// The Amazon Resource Name (ARN) of the Lambda function.
151	//
152	// This member is required.
153	Uri *string
154}
155
156// Provides the settings needed for conversation logs.
157type ConversationLogsRequest struct {
158
159	// The Amazon Resource Name (ARN) of an IAM role with permission to write to your
160	// CloudWatch Logs for text logs and your S3 bucket for audio logs. If audio
161	// encryption is enabled, this role also provides access permission for the AWS KMS
162	// key used for encrypting audio logs. For more information, see Creating an IAM
163	// Role and Policy for Conversation Logs
164	// (https://docs.aws.amazon.com/lex/latest/dg/conversation-logs-role-and-policy.html).
165	//
166	// This member is required.
167	IamRoleArn *string
168
169	// The settings for your conversation logs. You can log the conversation text,
170	// conversation audio, or both.
171	//
172	// This member is required.
173	LogSettings []LogSettingsRequest
174}
175
176// Contains information about conversation log settings.
177type ConversationLogsResponse struct {
178
179	// The Amazon Resource Name (ARN) of the IAM role used to write your logs to
180	// CloudWatch Logs or an S3 bucket.
181	IamRoleArn *string
182
183	// The settings for your conversation logs. You can log text, audio, or both.
184	LogSettings []LogSettingsResponse
185}
186
187// Each slot type can have a set of values. Each enumeration value represents a
188// value the slot type can take. For example, a pizza ordering bot could have a
189// slot type that specifies the type of crust that the pizza should have. The slot
190// type could include the values
191//
192// * thick
193//
194// * thin
195//
196// * stuffed
197type EnumerationValue struct {
198
199	// The value of the slot type.
200	//
201	// This member is required.
202	Value *string
203
204	// Additional values related to the slot type value.
205	Synonyms []string
206}
207
208// A prompt for additional activity after an intent is fulfilled. For example,
209// after the OrderPizza intent is fulfilled, you might prompt the user to find out
210// whether the user wants to order drinks.
211type FollowUpPrompt struct {
212
213	// Prompts for information from the user.
214	//
215	// This member is required.
216	Prompt *Prompt
217
218	// If the user answers "no" to the question defined in the prompt field, Amazon Lex
219	// responds with this statement to acknowledge that the intent was canceled.
220	//
221	// This member is required.
222	RejectionStatement *Statement
223}
224
225// Describes how the intent is fulfilled after the user provides all of the
226// information required for the intent. You can provide a Lambda function to
227// process the intent, or you can return the intent information to the client
228// application. We recommend that you use a Lambda function so that the relevant
229// logic lives in the Cloud and limit the client-side code primarily to
230// presentation. If you need to update the logic, you only update the Lambda
231// function; you don't need to upgrade your client application. Consider the
232// following examples:
233//
234// * In a pizza ordering application, after the user provides
235// all of the information for placing an order, you use a Lambda function to place
236// an order with a pizzeria.
237//
238// * In a gaming application, when a user says "pick up
239// a rock," this information must go back to the client application so that it can
240// perform the operation and update the graphics. In this case, you want Amazon Lex
241// to return the intent data to the client.
242type FulfillmentActivity struct {
243
244	// How the intent should be fulfilled, either by running a Lambda function or by
245	// returning the slot data to the client application.
246	//
247	// This member is required.
248	Type FulfillmentActivityType
249
250	// A description of the Lambda function that is run to fulfill the intent.
251	CodeHook *CodeHook
252}
253
254// The name of a context that must be active for an intent to be selected by Amazon
255// Lex.
256type InputContext struct {
257
258	// The name of the context.
259	//
260	// This member is required.
261	Name *string
262}
263
264// Identifies the specific version of an intent.
265type Intent struct {
266
267	// The name of the intent.
268	//
269	// This member is required.
270	IntentName *string
271
272	// The version of the intent.
273	//
274	// This member is required.
275	IntentVersion *string
276}
277
278// Provides information about an intent.
279type IntentMetadata struct {
280
281	// The date that the intent was created.
282	CreatedDate *time.Time
283
284	// A description of the intent.
285	Description *string
286
287	// The date that the intent was updated. When you create an intent, the creation
288	// date and last updated date are the same.
289	LastUpdatedDate *time.Time
290
291	// The name of the intent.
292	Name *string
293
294	// The version of the intent.
295	Version *string
296}
297
298// Provides configuration information for the AMAZON.KendraSearchIntent intent.
299// When you use this intent, Amazon Lex searches the specified Amazon Kendra index
300// and returns documents from the index that match the user's utterance. For more
301// information, see  AMAZON.KendraSearchIntent
302// (http://docs.aws.amazon.com/lex/latest/dg/built-in-intent-kendra-search.html).
303type KendraConfiguration struct {
304
305	// The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the
306	// AMAZON.KendraSearchIntent intent to search. The index must be in the same
307	// account and Region as the Amazon Lex bot. If the Amazon Kendra index does not
308	// exist, you get an exception when you call the PutIntent operation.
309	//
310	// This member is required.
311	KendraIndex *string
312
313	// The Amazon Resource Name (ARN) of an IAM role that has permission to search the
314	// Amazon Kendra index. The role must be in the same account and Region as the
315	// Amazon Lex bot. If the role does not exist, you get an exception when you call
316	// the PutIntent operation.
317	//
318	// This member is required.
319	Role *string
320
321	// A query filter that Amazon Lex sends to Amazon Kendra to filter the response
322	// from the query. The filter is in the format defined by Amazon Kendra. For more
323	// information, see Filtering queries
324	// (http://docs.aws.amazon.com/kendra/latest/dg/filtering.html). You can override
325	// this filter string with a new filter string at runtime.
326	QueryFilterString *string
327}
328
329// Settings used to configure delivery mode and destination for conversation logs.
330type LogSettingsRequest struct {
331
332	// Where the logs will be delivered. Text logs are delivered to a CloudWatch Logs
333	// log group. Audio logs are delivered to an S3 bucket.
334	//
335	// This member is required.
336	Destination Destination
337
338	// The type of logging to enable. Text logs are delivered to a CloudWatch Logs log
339	// group. Audio logs are delivered to an S3 bucket.
340	//
341	// This member is required.
342	LogType LogType
343
344	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or S3 bucket
345	// where the logs should be delivered.
346	//
347	// This member is required.
348	ResourceArn *string
349
350	// The Amazon Resource Name (ARN) of the AWS KMS customer managed key for
351	// encrypting audio logs delivered to an S3 bucket. The key does not apply to
352	// CloudWatch Logs and is optional for S3 buckets.
353	KmsKeyArn *string
354}
355
356// The settings for conversation logs.
357type LogSettingsResponse struct {
358
359	// The destination where logs are delivered.
360	Destination Destination
361
362	// The Amazon Resource Name (ARN) of the key used to encrypt audio logs in an S3
363	// bucket.
364	KmsKeyArn *string
365
366	// The type of logging that is enabled.
367	LogType LogType
368
369	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or S3 bucket
370	// where the logs are delivered.
371	ResourceArn *string
372
373	// The resource prefix is the first part of the S3 object key within the S3 bucket
374	// that you specified to contain audio logs. For CloudWatch Logs it is the prefix
375	// of the log stream name within the log group that you specified.
376	ResourcePrefix *string
377}
378
379// The message object that provides the message text and its type.
380type Message struct {
381
382	// The text of the message.
383	//
384	// This member is required.
385	Content *string
386
387	// The content type of the message string.
388	//
389	// This member is required.
390	ContentType ContentType
391
392	// Identifies the message group that the message belongs to. When a group is
393	// assigned to a message, Amazon Lex returns one message from each group in the
394	// response.
395	GroupNumber *int32
396}
397
398// The specification of an output context that is set when an intent is fulfilled.
399type OutputContext struct {
400
401	// The name of the context.
402	//
403	// This member is required.
404	Name *string
405
406	// The number of seconds that the context should be active after it is first sent
407	// in a PostContent or PostText response. You can set the value between 5 and
408	// 86,400 seconds (24 hours).
409	//
410	// This member is required.
411	TimeToLiveInSeconds *int32
412
413	// The number of conversation turns that the context should be active. A
414	// conversation turn is one PostContent or PostText request and the corresponding
415	// response from Amazon Lex.
416	//
417	// This member is required.
418	TurnsToLive *int32
419}
420
421// Obtains information from the user. To define a prompt, provide one or more
422// messages and specify the number of attempts to get information from the user. If
423// you provide more than one message, Amazon Lex chooses one of the messages to use
424// to prompt the user. For more information, see how-it-works.
425type Prompt struct {
426
427	// The number of times to prompt the user for information.
428	//
429	// This member is required.
430	MaxAttempts *int32
431
432	// An array of objects, each of which provides a message string and its type. You
433	// can specify the message string in plain text or in Speech Synthesis Markup
434	// Language (SSML).
435	//
436	// This member is required.
437	Messages []Message
438
439	// A response card. Amazon Lex uses this prompt at runtime, in the PostText API
440	// response. It substitutes session attributes and slot values for placeholders in
441	// the response card. For more information, see ex-resp-card.
442	ResponseCard *string
443}
444
445// Describes the resource that refers to the resource that you are attempting to
446// delete. This object is returned as part of the ResourceInUseException exception.
447type ResourceReference struct {
448
449	// The name of the resource that is using the resource that you are trying to
450	// delete.
451	Name *string
452
453	// The version of the resource that is using the resource that you are trying to
454	// delete.
455	Version *string
456}
457
458// Identifies the version of a specific slot.
459type Slot struct {
460
461	// The name of the slot.
462	//
463	// This member is required.
464	Name *string
465
466	// Specifies whether the slot is required or optional.
467	//
468	// This member is required.
469	SlotConstraint SlotConstraint
470
471	// A list of default values for the slot. Default values are used when Amazon Lex
472	// hasn't determined a value for a slot. You can specify default values from
473	// context variables, session attributes, and defined values.
474	DefaultValueSpec *SlotDefaultValueSpec
475
476	// A description of the slot.
477	Description *string
478
479	// Determines whether a slot is obfuscated in conversation logs and stored
480	// utterances. When you obfuscate a slot, the value is replaced by the slot name in
481	// curly braces ({}). For example, if the slot name is "full_name", obfuscated
482	// values are replaced with "{full_name}". For more information, see  Slot
483	// Obfuscation  (https://docs.aws.amazon.com/lex/latest/dg/how-obfuscate.html).
484	ObfuscationSetting ObfuscationSetting
485
486	// Directs Amazon Lex the order in which to elicit this slot value from the user.
487	// For example, if the intent has two slots with priorities 1 and 2, AWS Amazon Lex
488	// first elicits a value for the slot with priority 1. If multiple slots share the
489	// same priority, the order in which Amazon Lex elicits values is arbitrary.
490	Priority *int32
491
492	// A set of possible responses for the slot type used by text-based clients. A user
493	// chooses an option from the response card, instead of using text to reply.
494	ResponseCard *string
495
496	// If you know a specific pattern with which users might respond to an Amazon Lex
497	// request for a slot value, you can provide those utterances to improve accuracy.
498	// This is optional. In most cases, Amazon Lex is capable of understanding user
499	// utterances.
500	SampleUtterances []string
501
502	// The type of the slot, either a custom slot type that you defined or one of the
503	// built-in slot types.
504	SlotType *string
505
506	// The version of the slot type.
507	SlotTypeVersion *string
508
509	// The prompt that Amazon Lex uses to elicit the slot value from the user.
510	ValueElicitationPrompt *Prompt
511}
512
513// A default value for a slot.
514type SlotDefaultValue struct {
515
516	// The default value for the slot. You can specify one of the following:
517	//
518	// *
519	// #context-name.slot-name - The slot value "slot-name" in the context
520	// "context-name."
521	//
522	// * {attribute} - The slot value of the session attribute
523	// "attribute."
524	//
525	// * 'value' - The discrete value "value."
526	//
527	// This member is required.
528	DefaultValue *string
529}
530
531// Contains the default values for a slot. Default values are used when Amazon Lex
532// hasn't determined a value for a slot.
533type SlotDefaultValueSpec struct {
534
535	// The default values for a slot. You can specify more than one default. For
536	// example, you can specify a default value to use from a matching context
537	// variable, a session attribute, or a fixed value. The default value chosen is
538	// selected based on the order that you specify them in the list. For example, if
539	// you specify a context variable and a fixed value in that order, Amazon Lex uses
540	// the context variable if it is available, else it uses the fixed value.
541	//
542	// This member is required.
543	DefaultValueList []SlotDefaultValue
544}
545
546// Provides configuration information for a slot type.
547type SlotTypeConfiguration struct {
548
549	// A regular expression used to validate the value of a slot.
550	RegexConfiguration *SlotTypeRegexConfiguration
551}
552
553// Provides information about a slot type..
554type SlotTypeMetadata struct {
555
556	// The date that the slot type was created.
557	CreatedDate *time.Time
558
559	// A description of the slot type.
560	Description *string
561
562	// The date that the slot type was updated. When you create a resource, the
563	// creation date and last updated date are the same.
564	LastUpdatedDate *time.Time
565
566	// The name of the slot type.
567	Name *string
568
569	// The version of the slot type.
570	Version *string
571}
572
573// Provides a regular expression used to validate the value of a slot.
574type SlotTypeRegexConfiguration struct {
575
576	// A regular expression used to validate the value of a slot. Use a standard
577	// regular expression. Amazon Lex supports the following characters in the regular
578	// expression:
579	//
580	// * A-Z, a-z
581	//
582	// * 0-9
583	//
584	// * Unicode characters ("\ u")
585	//
586	// Represent Unicode
587	// characters with four digits, for example "\u0041" or "\u005A". The following
588	// regular expression operators are not supported:
589	//
590	// * Infinite repeaters: *, +, or
591	// {x,} with no upper bound.
592	//
593	// * Wild card (.)
594	//
595	// This member is required.
596	Pattern *string
597}
598
599// A collection of messages that convey information to the user. At runtime, Amazon
600// Lex selects the message to convey.
601type Statement struct {
602
603	// A collection of message objects.
604	//
605	// This member is required.
606	Messages []Message
607
608	// At runtime, if the client is using the PostText
609	// (http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html) API, Amazon
610	// Lex includes the response card in the response. It substitutes all of the
611	// session attributes and slot values for placeholders in the response card.
612	ResponseCard *string
613}
614
615// A list of key/value pairs that identify a bot, bot alias, or bot channel. Tag
616// keys and values can consist of Unicode letters, digits, white space, and any of
617// the following symbols: _ . : / = + - @.
618type Tag struct {
619
620	// The key for the tag. Keys are not case-sensitive and must be unique.
621	//
622	// This member is required.
623	Key *string
624
625	// The value associated with a key. The value may be an empty string but it can't
626	// be null.
627	//
628	// This member is required.
629	Value *string
630}
631
632// Provides information about a single utterance that was made to your bot.
633type UtteranceData struct {
634
635	// The number of times that the utterance was processed.
636	Count *int32
637
638	// The total number of individuals that used the utterance.
639	DistinctUsers *int32
640
641	// The date that the utterance was first recorded.
642	FirstUtteredDate *time.Time
643
644	// The date that the utterance was last recorded.
645	LastUtteredDate *time.Time
646
647	// The text that was entered by the user or the text representation of an audio
648	// clip.
649	UtteranceString *string
650}
651
652// Provides a list of utterances that have been made to a specific version of your
653// bot. The list contains a maximum of 100 utterances.
654type UtteranceList struct {
655
656	// The version of the bot that processed the list.
657	BotVersion *string
658
659	// One or more UtteranceData objects that contain information about the utterances
660	// that have been made to a bot. The maximum number of object is 100.
661	Utterances []UtteranceData
662}
663