1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package lexmodelbuildingservice
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const opCreateBotVersion = "CreateBotVersion"
17
18// CreateBotVersionRequest generates a "aws/request.Request" representing the
19// client's request for the CreateBotVersion operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CreateBotVersion for more information on using the CreateBotVersion
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CreateBotVersionRequest method.
34//    req, resp := client.CreateBotVersionRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/CreateBotVersion
42func (c *LexModelBuildingService) CreateBotVersionRequest(input *CreateBotVersionInput) (req *request.Request, output *CreateBotVersionOutput) {
43	op := &request.Operation{
44		Name:       opCreateBotVersion,
45		HTTPMethod: "POST",
46		HTTPPath:   "/bots/{name}/versions",
47	}
48
49	if input == nil {
50		input = &CreateBotVersionInput{}
51	}
52
53	output = &CreateBotVersionOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateBotVersion API operation for Amazon Lex Model Building Service.
59//
60// Creates a new version of the bot based on the $LATEST version. If the $LATEST
61// version of this resource hasn't changed since you created the last version,
62// Amazon Lex doesn't create a new version. It returns the last created version.
63//
64// You can update only the $LATEST version of the bot. You can't update the
65// numbered versions that you create with the CreateBotVersion operation.
66//
67// When you create the first version of a bot, Amazon Lex sets the version to
68// 1. Subsequent versions increment by 1. For more information, see versioning-intro.
69//
70// This operation requires permission for the lex:CreateBotVersion action.
71//
72// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
73// with awserr.Error's Code and Message methods to get detailed information about
74// the error.
75//
76// See the AWS API reference guide for Amazon Lex Model Building Service's
77// API operation CreateBotVersion for usage and error information.
78//
79// Returned Error Types:
80//   * NotFoundException
81//   The resource specified in the request was not found. Check the resource and
82//   try again.
83//
84//   * ConflictException
85//   There was a conflict processing the request. Try your request again.
86//
87//   * LimitExceededException
88//   The request exceeded a limit. Try your request again.
89//
90//   * InternalFailureException
91//   An internal Amazon Lex error occurred. Try your request again.
92//
93//   * BadRequestException
94//   The request is not well formed. For example, a value is invalid or a required
95//   field is missing. Check the field values, and try again.
96//
97//   * PreconditionFailedException
98//   The checksum of the resource that you are trying to change does not match
99//   the checksum in the request. Check the resource's checksum and try again.
100//
101// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/CreateBotVersion
102func (c *LexModelBuildingService) CreateBotVersion(input *CreateBotVersionInput) (*CreateBotVersionOutput, error) {
103	req, out := c.CreateBotVersionRequest(input)
104	return out, req.Send()
105}
106
107// CreateBotVersionWithContext is the same as CreateBotVersion with the addition of
108// the ability to pass a context and additional request options.
109//
110// See CreateBotVersion for details on how to use this API operation.
111//
112// The context must be non-nil and will be used for request cancellation. If
113// the context is nil a panic will occur. In the future the SDK may create
114// sub-contexts for http.Requests. See https://golang.org/pkg/context/
115// for more information on using Contexts.
116func (c *LexModelBuildingService) CreateBotVersionWithContext(ctx aws.Context, input *CreateBotVersionInput, opts ...request.Option) (*CreateBotVersionOutput, error) {
117	req, out := c.CreateBotVersionRequest(input)
118	req.SetContext(ctx)
119	req.ApplyOptions(opts...)
120	return out, req.Send()
121}
122
123const opCreateIntentVersion = "CreateIntentVersion"
124
125// CreateIntentVersionRequest generates a "aws/request.Request" representing the
126// client's request for the CreateIntentVersion operation. The "output" return
127// value will be populated with the request's response once the request completes
128// successfully.
129//
130// Use "Send" method on the returned Request to send the API call to the service.
131// the "output" return value is not valid until after Send returns without error.
132//
133// See CreateIntentVersion for more information on using the CreateIntentVersion
134// API call, and error handling.
135//
136// This method is useful when you want to inject custom logic or configuration
137// into the SDK's request lifecycle. Such as custom headers, or retry logic.
138//
139//
140//    // Example sending a request using the CreateIntentVersionRequest method.
141//    req, resp := client.CreateIntentVersionRequest(params)
142//
143//    err := req.Send()
144//    if err == nil { // resp is now filled
145//        fmt.Println(resp)
146//    }
147//
148// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/CreateIntentVersion
149func (c *LexModelBuildingService) CreateIntentVersionRequest(input *CreateIntentVersionInput) (req *request.Request, output *CreateIntentVersionOutput) {
150	op := &request.Operation{
151		Name:       opCreateIntentVersion,
152		HTTPMethod: "POST",
153		HTTPPath:   "/intents/{name}/versions",
154	}
155
156	if input == nil {
157		input = &CreateIntentVersionInput{}
158	}
159
160	output = &CreateIntentVersionOutput{}
161	req = c.newRequest(op, input, output)
162	return
163}
164
165// CreateIntentVersion API operation for Amazon Lex Model Building Service.
166//
167// Creates a new version of an intent based on the $LATEST version of the intent.
168// If the $LATEST version of this intent hasn't changed since you last updated
169// it, Amazon Lex doesn't create a new version. It returns the last version
170// you created.
171//
172// You can update only the $LATEST version of the intent. You can't update the
173// numbered versions that you create with the CreateIntentVersion operation.
174//
175// When you create a version of an intent, Amazon Lex sets the version to 1.
176// Subsequent versions increment by 1. For more information, see versioning-intro.
177//
178// This operation requires permissions to perform the lex:CreateIntentVersion
179// action.
180//
181// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
182// with awserr.Error's Code and Message methods to get detailed information about
183// the error.
184//
185// See the AWS API reference guide for Amazon Lex Model Building Service's
186// API operation CreateIntentVersion for usage and error information.
187//
188// Returned Error Types:
189//   * NotFoundException
190//   The resource specified in the request was not found. Check the resource and
191//   try again.
192//
193//   * ConflictException
194//   There was a conflict processing the request. Try your request again.
195//
196//   * LimitExceededException
197//   The request exceeded a limit. Try your request again.
198//
199//   * InternalFailureException
200//   An internal Amazon Lex error occurred. Try your request again.
201//
202//   * BadRequestException
203//   The request is not well formed. For example, a value is invalid or a required
204//   field is missing. Check the field values, and try again.
205//
206//   * PreconditionFailedException
207//   The checksum of the resource that you are trying to change does not match
208//   the checksum in the request. Check the resource's checksum and try again.
209//
210// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/CreateIntentVersion
211func (c *LexModelBuildingService) CreateIntentVersion(input *CreateIntentVersionInput) (*CreateIntentVersionOutput, error) {
212	req, out := c.CreateIntentVersionRequest(input)
213	return out, req.Send()
214}
215
216// CreateIntentVersionWithContext is the same as CreateIntentVersion with the addition of
217// the ability to pass a context and additional request options.
218//
219// See CreateIntentVersion for details on how to use this API operation.
220//
221// The context must be non-nil and will be used for request cancellation. If
222// the context is nil a panic will occur. In the future the SDK may create
223// sub-contexts for http.Requests. See https://golang.org/pkg/context/
224// for more information on using Contexts.
225func (c *LexModelBuildingService) CreateIntentVersionWithContext(ctx aws.Context, input *CreateIntentVersionInput, opts ...request.Option) (*CreateIntentVersionOutput, error) {
226	req, out := c.CreateIntentVersionRequest(input)
227	req.SetContext(ctx)
228	req.ApplyOptions(opts...)
229	return out, req.Send()
230}
231
232const opCreateSlotTypeVersion = "CreateSlotTypeVersion"
233
234// CreateSlotTypeVersionRequest generates a "aws/request.Request" representing the
235// client's request for the CreateSlotTypeVersion operation. The "output" return
236// value will be populated with the request's response once the request completes
237// successfully.
238//
239// Use "Send" method on the returned Request to send the API call to the service.
240// the "output" return value is not valid until after Send returns without error.
241//
242// See CreateSlotTypeVersion for more information on using the CreateSlotTypeVersion
243// API call, and error handling.
244//
245// This method is useful when you want to inject custom logic or configuration
246// into the SDK's request lifecycle. Such as custom headers, or retry logic.
247//
248//
249//    // Example sending a request using the CreateSlotTypeVersionRequest method.
250//    req, resp := client.CreateSlotTypeVersionRequest(params)
251//
252//    err := req.Send()
253//    if err == nil { // resp is now filled
254//        fmt.Println(resp)
255//    }
256//
257// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/CreateSlotTypeVersion
258func (c *LexModelBuildingService) CreateSlotTypeVersionRequest(input *CreateSlotTypeVersionInput) (req *request.Request, output *CreateSlotTypeVersionOutput) {
259	op := &request.Operation{
260		Name:       opCreateSlotTypeVersion,
261		HTTPMethod: "POST",
262		HTTPPath:   "/slottypes/{name}/versions",
263	}
264
265	if input == nil {
266		input = &CreateSlotTypeVersionInput{}
267	}
268
269	output = &CreateSlotTypeVersionOutput{}
270	req = c.newRequest(op, input, output)
271	return
272}
273
274// CreateSlotTypeVersion API operation for Amazon Lex Model Building Service.
275//
276// Creates a new version of a slot type based on the $LATEST version of the
277// specified slot type. If the $LATEST version of this resource has not changed
278// since the last version that you created, Amazon Lex doesn't create a new
279// version. It returns the last version that you created.
280//
281// You can update only the $LATEST version of a slot type. You can't update
282// the numbered versions that you create with the CreateSlotTypeVersion operation.
283//
284// When you create a version of a slot type, Amazon Lex sets the version to
285// 1. Subsequent versions increment by 1. For more information, see versioning-intro.
286//
287// This operation requires permissions for the lex:CreateSlotTypeVersion action.
288//
289// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
290// with awserr.Error's Code and Message methods to get detailed information about
291// the error.
292//
293// See the AWS API reference guide for Amazon Lex Model Building Service's
294// API operation CreateSlotTypeVersion for usage and error information.
295//
296// Returned Error Types:
297//   * NotFoundException
298//   The resource specified in the request was not found. Check the resource and
299//   try again.
300//
301//   * ConflictException
302//   There was a conflict processing the request. Try your request again.
303//
304//   * LimitExceededException
305//   The request exceeded a limit. Try your request again.
306//
307//   * InternalFailureException
308//   An internal Amazon Lex error occurred. Try your request again.
309//
310//   * BadRequestException
311//   The request is not well formed. For example, a value is invalid or a required
312//   field is missing. Check the field values, and try again.
313//
314//   * PreconditionFailedException
315//   The checksum of the resource that you are trying to change does not match
316//   the checksum in the request. Check the resource's checksum and try again.
317//
318// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/CreateSlotTypeVersion
319func (c *LexModelBuildingService) CreateSlotTypeVersion(input *CreateSlotTypeVersionInput) (*CreateSlotTypeVersionOutput, error) {
320	req, out := c.CreateSlotTypeVersionRequest(input)
321	return out, req.Send()
322}
323
324// CreateSlotTypeVersionWithContext is the same as CreateSlotTypeVersion with the addition of
325// the ability to pass a context and additional request options.
326//
327// See CreateSlotTypeVersion for details on how to use this API operation.
328//
329// The context must be non-nil and will be used for request cancellation. If
330// the context is nil a panic will occur. In the future the SDK may create
331// sub-contexts for http.Requests. See https://golang.org/pkg/context/
332// for more information on using Contexts.
333func (c *LexModelBuildingService) CreateSlotTypeVersionWithContext(ctx aws.Context, input *CreateSlotTypeVersionInput, opts ...request.Option) (*CreateSlotTypeVersionOutput, error) {
334	req, out := c.CreateSlotTypeVersionRequest(input)
335	req.SetContext(ctx)
336	req.ApplyOptions(opts...)
337	return out, req.Send()
338}
339
340const opDeleteBot = "DeleteBot"
341
342// DeleteBotRequest generates a "aws/request.Request" representing the
343// client's request for the DeleteBot operation. The "output" return
344// value will be populated with the request's response once the request completes
345// successfully.
346//
347// Use "Send" method on the returned Request to send the API call to the service.
348// the "output" return value is not valid until after Send returns without error.
349//
350// See DeleteBot for more information on using the DeleteBot
351// API call, and error handling.
352//
353// This method is useful when you want to inject custom logic or configuration
354// into the SDK's request lifecycle. Such as custom headers, or retry logic.
355//
356//
357//    // Example sending a request using the DeleteBotRequest method.
358//    req, resp := client.DeleteBotRequest(params)
359//
360//    err := req.Send()
361//    if err == nil { // resp is now filled
362//        fmt.Println(resp)
363//    }
364//
365// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBot
366func (c *LexModelBuildingService) DeleteBotRequest(input *DeleteBotInput) (req *request.Request, output *DeleteBotOutput) {
367	op := &request.Operation{
368		Name:       opDeleteBot,
369		HTTPMethod: "DELETE",
370		HTTPPath:   "/bots/{name}",
371	}
372
373	if input == nil {
374		input = &DeleteBotInput{}
375	}
376
377	output = &DeleteBotOutput{}
378	req = c.newRequest(op, input, output)
379	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
380	return
381}
382
383// DeleteBot API operation for Amazon Lex Model Building Service.
384//
385// Deletes all versions of the bot, including the $LATEST version. To delete
386// a specific version of the bot, use the DeleteBotVersion operation. The DeleteBot
387// operation doesn't immediately remove the bot schema. Instead, it is marked
388// for deletion and removed later.
389//
390// Amazon Lex stores utterances indefinitely for improving the ability of your
391// bot to respond to user inputs. These utterances are not removed when the
392// bot is deleted. To remove the utterances, use the DeleteUtterances operation.
393//
394// If a bot has an alias, you can't delete it. Instead, the DeleteBot operation
395// returns a ResourceInUseException exception that includes a reference to the
396// alias that refers to the bot. To remove the reference to the bot, delete
397// the alias. If you get the same exception again, delete the referring alias
398// until the DeleteBot operation is successful.
399//
400// This operation requires permissions for the lex:DeleteBot action.
401//
402// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
403// with awserr.Error's Code and Message methods to get detailed information about
404// the error.
405//
406// See the AWS API reference guide for Amazon Lex Model Building Service's
407// API operation DeleteBot for usage and error information.
408//
409// Returned Error Types:
410//   * NotFoundException
411//   The resource specified in the request was not found. Check the resource and
412//   try again.
413//
414//   * ConflictException
415//   There was a conflict processing the request. Try your request again.
416//
417//   * LimitExceededException
418//   The request exceeded a limit. Try your request again.
419//
420//   * InternalFailureException
421//   An internal Amazon Lex error occurred. Try your request again.
422//
423//   * BadRequestException
424//   The request is not well formed. For example, a value is invalid or a required
425//   field is missing. Check the field values, and try again.
426//
427//   * ResourceInUseException
428//   The resource that you are attempting to delete is referred to by another
429//   resource. Use this information to remove references to the resource that
430//   you are trying to delete.
431//
432//   The body of the exception contains a JSON object that describes the resource.
433//
434//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
435//
436//   "resourceReference": {
437//
438//   "name": string, "version": string } }
439//
440// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBot
441func (c *LexModelBuildingService) DeleteBot(input *DeleteBotInput) (*DeleteBotOutput, error) {
442	req, out := c.DeleteBotRequest(input)
443	return out, req.Send()
444}
445
446// DeleteBotWithContext is the same as DeleteBot with the addition of
447// the ability to pass a context and additional request options.
448//
449// See DeleteBot for details on how to use this API operation.
450//
451// The context must be non-nil and will be used for request cancellation. If
452// the context is nil a panic will occur. In the future the SDK may create
453// sub-contexts for http.Requests. See https://golang.org/pkg/context/
454// for more information on using Contexts.
455func (c *LexModelBuildingService) DeleteBotWithContext(ctx aws.Context, input *DeleteBotInput, opts ...request.Option) (*DeleteBotOutput, error) {
456	req, out := c.DeleteBotRequest(input)
457	req.SetContext(ctx)
458	req.ApplyOptions(opts...)
459	return out, req.Send()
460}
461
462const opDeleteBotAlias = "DeleteBotAlias"
463
464// DeleteBotAliasRequest generates a "aws/request.Request" representing the
465// client's request for the DeleteBotAlias operation. The "output" return
466// value will be populated with the request's response once the request completes
467// successfully.
468//
469// Use "Send" method on the returned Request to send the API call to the service.
470// the "output" return value is not valid until after Send returns without error.
471//
472// See DeleteBotAlias for more information on using the DeleteBotAlias
473// API call, and error handling.
474//
475// This method is useful when you want to inject custom logic or configuration
476// into the SDK's request lifecycle. Such as custom headers, or retry logic.
477//
478//
479//    // Example sending a request using the DeleteBotAliasRequest method.
480//    req, resp := client.DeleteBotAliasRequest(params)
481//
482//    err := req.Send()
483//    if err == nil { // resp is now filled
484//        fmt.Println(resp)
485//    }
486//
487// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotAlias
488func (c *LexModelBuildingService) DeleteBotAliasRequest(input *DeleteBotAliasInput) (req *request.Request, output *DeleteBotAliasOutput) {
489	op := &request.Operation{
490		Name:       opDeleteBotAlias,
491		HTTPMethod: "DELETE",
492		HTTPPath:   "/bots/{botName}/aliases/{name}",
493	}
494
495	if input == nil {
496		input = &DeleteBotAliasInput{}
497	}
498
499	output = &DeleteBotAliasOutput{}
500	req = c.newRequest(op, input, output)
501	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
502	return
503}
504
505// DeleteBotAlias API operation for Amazon Lex Model Building Service.
506//
507// Deletes an alias for the specified bot.
508//
509// You can't delete an alias that is used in the association between a bot and
510// a messaging channel. If an alias is used in a channel association, the DeleteBot
511// operation returns a ResourceInUseException exception that includes a reference
512// to the channel association that refers to the bot. You can remove the reference
513// to the alias by deleting the channel association. If you get the same exception
514// again, delete the referring association until the DeleteBotAlias operation
515// is successful.
516//
517// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
518// with awserr.Error's Code and Message methods to get detailed information about
519// the error.
520//
521// See the AWS API reference guide for Amazon Lex Model Building Service's
522// API operation DeleteBotAlias for usage and error information.
523//
524// Returned Error Types:
525//   * NotFoundException
526//   The resource specified in the request was not found. Check the resource and
527//   try again.
528//
529//   * ConflictException
530//   There was a conflict processing the request. Try your request again.
531//
532//   * LimitExceededException
533//   The request exceeded a limit. Try your request again.
534//
535//   * InternalFailureException
536//   An internal Amazon Lex error occurred. Try your request again.
537//
538//   * BadRequestException
539//   The request is not well formed. For example, a value is invalid or a required
540//   field is missing. Check the field values, and try again.
541//
542//   * ResourceInUseException
543//   The resource that you are attempting to delete is referred to by another
544//   resource. Use this information to remove references to the resource that
545//   you are trying to delete.
546//
547//   The body of the exception contains a JSON object that describes the resource.
548//
549//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
550//
551//   "resourceReference": {
552//
553//   "name": string, "version": string } }
554//
555// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotAlias
556func (c *LexModelBuildingService) DeleteBotAlias(input *DeleteBotAliasInput) (*DeleteBotAliasOutput, error) {
557	req, out := c.DeleteBotAliasRequest(input)
558	return out, req.Send()
559}
560
561// DeleteBotAliasWithContext is the same as DeleteBotAlias with the addition of
562// the ability to pass a context and additional request options.
563//
564// See DeleteBotAlias for details on how to use this API operation.
565//
566// The context must be non-nil and will be used for request cancellation. If
567// the context is nil a panic will occur. In the future the SDK may create
568// sub-contexts for http.Requests. See https://golang.org/pkg/context/
569// for more information on using Contexts.
570func (c *LexModelBuildingService) DeleteBotAliasWithContext(ctx aws.Context, input *DeleteBotAliasInput, opts ...request.Option) (*DeleteBotAliasOutput, error) {
571	req, out := c.DeleteBotAliasRequest(input)
572	req.SetContext(ctx)
573	req.ApplyOptions(opts...)
574	return out, req.Send()
575}
576
577const opDeleteBotChannelAssociation = "DeleteBotChannelAssociation"
578
579// DeleteBotChannelAssociationRequest generates a "aws/request.Request" representing the
580// client's request for the DeleteBotChannelAssociation operation. The "output" return
581// value will be populated with the request's response once the request completes
582// successfully.
583//
584// Use "Send" method on the returned Request to send the API call to the service.
585// the "output" return value is not valid until after Send returns without error.
586//
587// See DeleteBotChannelAssociation for more information on using the DeleteBotChannelAssociation
588// API call, and error handling.
589//
590// This method is useful when you want to inject custom logic or configuration
591// into the SDK's request lifecycle. Such as custom headers, or retry logic.
592//
593//
594//    // Example sending a request using the DeleteBotChannelAssociationRequest method.
595//    req, resp := client.DeleteBotChannelAssociationRequest(params)
596//
597//    err := req.Send()
598//    if err == nil { // resp is now filled
599//        fmt.Println(resp)
600//    }
601//
602// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotChannelAssociation
603func (c *LexModelBuildingService) DeleteBotChannelAssociationRequest(input *DeleteBotChannelAssociationInput) (req *request.Request, output *DeleteBotChannelAssociationOutput) {
604	op := &request.Operation{
605		Name:       opDeleteBotChannelAssociation,
606		HTTPMethod: "DELETE",
607		HTTPPath:   "/bots/{botName}/aliases/{aliasName}/channels/{name}",
608	}
609
610	if input == nil {
611		input = &DeleteBotChannelAssociationInput{}
612	}
613
614	output = &DeleteBotChannelAssociationOutput{}
615	req = c.newRequest(op, input, output)
616	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
617	return
618}
619
620// DeleteBotChannelAssociation API operation for Amazon Lex Model Building Service.
621//
622// Deletes the association between an Amazon Lex bot and a messaging platform.
623//
624// This operation requires permission for the lex:DeleteBotChannelAssociation
625// action.
626//
627// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
628// with awserr.Error's Code and Message methods to get detailed information about
629// the error.
630//
631// See the AWS API reference guide for Amazon Lex Model Building Service's
632// API operation DeleteBotChannelAssociation for usage and error information.
633//
634// Returned Error Types:
635//   * NotFoundException
636//   The resource specified in the request was not found. Check the resource and
637//   try again.
638//
639//   * ConflictException
640//   There was a conflict processing the request. Try your request again.
641//
642//   * LimitExceededException
643//   The request exceeded a limit. Try your request again.
644//
645//   * InternalFailureException
646//   An internal Amazon Lex error occurred. Try your request again.
647//
648//   * BadRequestException
649//   The request is not well formed. For example, a value is invalid or a required
650//   field is missing. Check the field values, and try again.
651//
652// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotChannelAssociation
653func (c *LexModelBuildingService) DeleteBotChannelAssociation(input *DeleteBotChannelAssociationInput) (*DeleteBotChannelAssociationOutput, error) {
654	req, out := c.DeleteBotChannelAssociationRequest(input)
655	return out, req.Send()
656}
657
658// DeleteBotChannelAssociationWithContext is the same as DeleteBotChannelAssociation with the addition of
659// the ability to pass a context and additional request options.
660//
661// See DeleteBotChannelAssociation for details on how to use this API operation.
662//
663// The context must be non-nil and will be used for request cancellation. If
664// the context is nil a panic will occur. In the future the SDK may create
665// sub-contexts for http.Requests. See https://golang.org/pkg/context/
666// for more information on using Contexts.
667func (c *LexModelBuildingService) DeleteBotChannelAssociationWithContext(ctx aws.Context, input *DeleteBotChannelAssociationInput, opts ...request.Option) (*DeleteBotChannelAssociationOutput, error) {
668	req, out := c.DeleteBotChannelAssociationRequest(input)
669	req.SetContext(ctx)
670	req.ApplyOptions(opts...)
671	return out, req.Send()
672}
673
674const opDeleteBotVersion = "DeleteBotVersion"
675
676// DeleteBotVersionRequest generates a "aws/request.Request" representing the
677// client's request for the DeleteBotVersion operation. The "output" return
678// value will be populated with the request's response once the request completes
679// successfully.
680//
681// Use "Send" method on the returned Request to send the API call to the service.
682// the "output" return value is not valid until after Send returns without error.
683//
684// See DeleteBotVersion for more information on using the DeleteBotVersion
685// API call, and error handling.
686//
687// This method is useful when you want to inject custom logic or configuration
688// into the SDK's request lifecycle. Such as custom headers, or retry logic.
689//
690//
691//    // Example sending a request using the DeleteBotVersionRequest method.
692//    req, resp := client.DeleteBotVersionRequest(params)
693//
694//    err := req.Send()
695//    if err == nil { // resp is now filled
696//        fmt.Println(resp)
697//    }
698//
699// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotVersion
700func (c *LexModelBuildingService) DeleteBotVersionRequest(input *DeleteBotVersionInput) (req *request.Request, output *DeleteBotVersionOutput) {
701	op := &request.Operation{
702		Name:       opDeleteBotVersion,
703		HTTPMethod: "DELETE",
704		HTTPPath:   "/bots/{name}/versions/{version}",
705	}
706
707	if input == nil {
708		input = &DeleteBotVersionInput{}
709	}
710
711	output = &DeleteBotVersionOutput{}
712	req = c.newRequest(op, input, output)
713	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
714	return
715}
716
717// DeleteBotVersion API operation for Amazon Lex Model Building Service.
718//
719// Deletes a specific version of a bot. To delete all versions of a bot, use
720// the DeleteBot operation.
721//
722// This operation requires permissions for the lex:DeleteBotVersion action.
723//
724// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
725// with awserr.Error's Code and Message methods to get detailed information about
726// the error.
727//
728// See the AWS API reference guide for Amazon Lex Model Building Service's
729// API operation DeleteBotVersion for usage and error information.
730//
731// Returned Error Types:
732//   * NotFoundException
733//   The resource specified in the request was not found. Check the resource and
734//   try again.
735//
736//   * ConflictException
737//   There was a conflict processing the request. Try your request again.
738//
739//   * LimitExceededException
740//   The request exceeded a limit. Try your request again.
741//
742//   * InternalFailureException
743//   An internal Amazon Lex error occurred. Try your request again.
744//
745//   * BadRequestException
746//   The request is not well formed. For example, a value is invalid or a required
747//   field is missing. Check the field values, and try again.
748//
749//   * ResourceInUseException
750//   The resource that you are attempting to delete is referred to by another
751//   resource. Use this information to remove references to the resource that
752//   you are trying to delete.
753//
754//   The body of the exception contains a JSON object that describes the resource.
755//
756//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
757//
758//   "resourceReference": {
759//
760//   "name": string, "version": string } }
761//
762// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotVersion
763func (c *LexModelBuildingService) DeleteBotVersion(input *DeleteBotVersionInput) (*DeleteBotVersionOutput, error) {
764	req, out := c.DeleteBotVersionRequest(input)
765	return out, req.Send()
766}
767
768// DeleteBotVersionWithContext is the same as DeleteBotVersion with the addition of
769// the ability to pass a context and additional request options.
770//
771// See DeleteBotVersion for details on how to use this API operation.
772//
773// The context must be non-nil and will be used for request cancellation. If
774// the context is nil a panic will occur. In the future the SDK may create
775// sub-contexts for http.Requests. See https://golang.org/pkg/context/
776// for more information on using Contexts.
777func (c *LexModelBuildingService) DeleteBotVersionWithContext(ctx aws.Context, input *DeleteBotVersionInput, opts ...request.Option) (*DeleteBotVersionOutput, error) {
778	req, out := c.DeleteBotVersionRequest(input)
779	req.SetContext(ctx)
780	req.ApplyOptions(opts...)
781	return out, req.Send()
782}
783
784const opDeleteIntent = "DeleteIntent"
785
786// DeleteIntentRequest generates a "aws/request.Request" representing the
787// client's request for the DeleteIntent operation. The "output" return
788// value will be populated with the request's response once the request completes
789// successfully.
790//
791// Use "Send" method on the returned Request to send the API call to the service.
792// the "output" return value is not valid until after Send returns without error.
793//
794// See DeleteIntent for more information on using the DeleteIntent
795// API call, and error handling.
796//
797// This method is useful when you want to inject custom logic or configuration
798// into the SDK's request lifecycle. Such as custom headers, or retry logic.
799//
800//
801//    // Example sending a request using the DeleteIntentRequest method.
802//    req, resp := client.DeleteIntentRequest(params)
803//
804//    err := req.Send()
805//    if err == nil { // resp is now filled
806//        fmt.Println(resp)
807//    }
808//
809// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteIntent
810func (c *LexModelBuildingService) DeleteIntentRequest(input *DeleteIntentInput) (req *request.Request, output *DeleteIntentOutput) {
811	op := &request.Operation{
812		Name:       opDeleteIntent,
813		HTTPMethod: "DELETE",
814		HTTPPath:   "/intents/{name}",
815	}
816
817	if input == nil {
818		input = &DeleteIntentInput{}
819	}
820
821	output = &DeleteIntentOutput{}
822	req = c.newRequest(op, input, output)
823	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
824	return
825}
826
827// DeleteIntent API operation for Amazon Lex Model Building Service.
828//
829// Deletes all versions of the intent, including the $LATEST version. To delete
830// a specific version of the intent, use the DeleteIntentVersion operation.
831//
832// You can delete a version of an intent only if it is not referenced. To delete
833// an intent that is referred to in one or more bots (see how-it-works), you
834// must remove those references first.
835//
836// If you get the ResourceInUseException exception, it provides an example reference
837// that shows where the intent is referenced. To remove the reference to the
838// intent, either update the bot or delete it. If you get the same exception
839// when you attempt to delete the intent again, repeat until the intent has
840// no references and the call to DeleteIntent is successful.
841//
842// This operation requires permission for the lex:DeleteIntent action.
843//
844// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
845// with awserr.Error's Code and Message methods to get detailed information about
846// the error.
847//
848// See the AWS API reference guide for Amazon Lex Model Building Service's
849// API operation DeleteIntent for usage and error information.
850//
851// Returned Error Types:
852//   * NotFoundException
853//   The resource specified in the request was not found. Check the resource and
854//   try again.
855//
856//   * ConflictException
857//   There was a conflict processing the request. Try your request again.
858//
859//   * LimitExceededException
860//   The request exceeded a limit. Try your request again.
861//
862//   * InternalFailureException
863//   An internal Amazon Lex error occurred. Try your request again.
864//
865//   * BadRequestException
866//   The request is not well formed. For example, a value is invalid or a required
867//   field is missing. Check the field values, and try again.
868//
869//   * ResourceInUseException
870//   The resource that you are attempting to delete is referred to by another
871//   resource. Use this information to remove references to the resource that
872//   you are trying to delete.
873//
874//   The body of the exception contains a JSON object that describes the resource.
875//
876//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
877//
878//   "resourceReference": {
879//
880//   "name": string, "version": string } }
881//
882// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteIntent
883func (c *LexModelBuildingService) DeleteIntent(input *DeleteIntentInput) (*DeleteIntentOutput, error) {
884	req, out := c.DeleteIntentRequest(input)
885	return out, req.Send()
886}
887
888// DeleteIntentWithContext is the same as DeleteIntent with the addition of
889// the ability to pass a context and additional request options.
890//
891// See DeleteIntent for details on how to use this API operation.
892//
893// The context must be non-nil and will be used for request cancellation. If
894// the context is nil a panic will occur. In the future the SDK may create
895// sub-contexts for http.Requests. See https://golang.org/pkg/context/
896// for more information on using Contexts.
897func (c *LexModelBuildingService) DeleteIntentWithContext(ctx aws.Context, input *DeleteIntentInput, opts ...request.Option) (*DeleteIntentOutput, error) {
898	req, out := c.DeleteIntentRequest(input)
899	req.SetContext(ctx)
900	req.ApplyOptions(opts...)
901	return out, req.Send()
902}
903
904const opDeleteIntentVersion = "DeleteIntentVersion"
905
906// DeleteIntentVersionRequest generates a "aws/request.Request" representing the
907// client's request for the DeleteIntentVersion operation. The "output" return
908// value will be populated with the request's response once the request completes
909// successfully.
910//
911// Use "Send" method on the returned Request to send the API call to the service.
912// the "output" return value is not valid until after Send returns without error.
913//
914// See DeleteIntentVersion for more information on using the DeleteIntentVersion
915// API call, and error handling.
916//
917// This method is useful when you want to inject custom logic or configuration
918// into the SDK's request lifecycle. Such as custom headers, or retry logic.
919//
920//
921//    // Example sending a request using the DeleteIntentVersionRequest method.
922//    req, resp := client.DeleteIntentVersionRequest(params)
923//
924//    err := req.Send()
925//    if err == nil { // resp is now filled
926//        fmt.Println(resp)
927//    }
928//
929// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteIntentVersion
930func (c *LexModelBuildingService) DeleteIntentVersionRequest(input *DeleteIntentVersionInput) (req *request.Request, output *DeleteIntentVersionOutput) {
931	op := &request.Operation{
932		Name:       opDeleteIntentVersion,
933		HTTPMethod: "DELETE",
934		HTTPPath:   "/intents/{name}/versions/{version}",
935	}
936
937	if input == nil {
938		input = &DeleteIntentVersionInput{}
939	}
940
941	output = &DeleteIntentVersionOutput{}
942	req = c.newRequest(op, input, output)
943	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
944	return
945}
946
947// DeleteIntentVersion API operation for Amazon Lex Model Building Service.
948//
949// Deletes a specific version of an intent. To delete all versions of a intent,
950// use the DeleteIntent operation.
951//
952// This operation requires permissions for the lex:DeleteIntentVersion action.
953//
954// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
955// with awserr.Error's Code and Message methods to get detailed information about
956// the error.
957//
958// See the AWS API reference guide for Amazon Lex Model Building Service's
959// API operation DeleteIntentVersion for usage and error information.
960//
961// Returned Error Types:
962//   * NotFoundException
963//   The resource specified in the request was not found. Check the resource and
964//   try again.
965//
966//   * ConflictException
967//   There was a conflict processing the request. Try your request again.
968//
969//   * LimitExceededException
970//   The request exceeded a limit. Try your request again.
971//
972//   * InternalFailureException
973//   An internal Amazon Lex error occurred. Try your request again.
974//
975//   * BadRequestException
976//   The request is not well formed. For example, a value is invalid or a required
977//   field is missing. Check the field values, and try again.
978//
979//   * ResourceInUseException
980//   The resource that you are attempting to delete is referred to by another
981//   resource. Use this information to remove references to the resource that
982//   you are trying to delete.
983//
984//   The body of the exception contains a JSON object that describes the resource.
985//
986//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
987//
988//   "resourceReference": {
989//
990//   "name": string, "version": string } }
991//
992// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteIntentVersion
993func (c *LexModelBuildingService) DeleteIntentVersion(input *DeleteIntentVersionInput) (*DeleteIntentVersionOutput, error) {
994	req, out := c.DeleteIntentVersionRequest(input)
995	return out, req.Send()
996}
997
998// DeleteIntentVersionWithContext is the same as DeleteIntentVersion with the addition of
999// the ability to pass a context and additional request options.
1000//
1001// See DeleteIntentVersion for details on how to use this API operation.
1002//
1003// The context must be non-nil and will be used for request cancellation. If
1004// the context is nil a panic will occur. In the future the SDK may create
1005// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1006// for more information on using Contexts.
1007func (c *LexModelBuildingService) DeleteIntentVersionWithContext(ctx aws.Context, input *DeleteIntentVersionInput, opts ...request.Option) (*DeleteIntentVersionOutput, error) {
1008	req, out := c.DeleteIntentVersionRequest(input)
1009	req.SetContext(ctx)
1010	req.ApplyOptions(opts...)
1011	return out, req.Send()
1012}
1013
1014const opDeleteSlotType = "DeleteSlotType"
1015
1016// DeleteSlotTypeRequest generates a "aws/request.Request" representing the
1017// client's request for the DeleteSlotType operation. The "output" return
1018// value will be populated with the request's response once the request completes
1019// successfully.
1020//
1021// Use "Send" method on the returned Request to send the API call to the service.
1022// the "output" return value is not valid until after Send returns without error.
1023//
1024// See DeleteSlotType for more information on using the DeleteSlotType
1025// API call, and error handling.
1026//
1027// This method is useful when you want to inject custom logic or configuration
1028// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1029//
1030//
1031//    // Example sending a request using the DeleteSlotTypeRequest method.
1032//    req, resp := client.DeleteSlotTypeRequest(params)
1033//
1034//    err := req.Send()
1035//    if err == nil { // resp is now filled
1036//        fmt.Println(resp)
1037//    }
1038//
1039// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteSlotType
1040func (c *LexModelBuildingService) DeleteSlotTypeRequest(input *DeleteSlotTypeInput) (req *request.Request, output *DeleteSlotTypeOutput) {
1041	op := &request.Operation{
1042		Name:       opDeleteSlotType,
1043		HTTPMethod: "DELETE",
1044		HTTPPath:   "/slottypes/{name}",
1045	}
1046
1047	if input == nil {
1048		input = &DeleteSlotTypeInput{}
1049	}
1050
1051	output = &DeleteSlotTypeOutput{}
1052	req = c.newRequest(op, input, output)
1053	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1054	return
1055}
1056
1057// DeleteSlotType API operation for Amazon Lex Model Building Service.
1058//
1059// Deletes all versions of the slot type, including the $LATEST version. To
1060// delete a specific version of the slot type, use the DeleteSlotTypeVersion
1061// operation.
1062//
1063// You can delete a version of a slot type only if it is not referenced. To
1064// delete a slot type that is referred to in one or more intents, you must remove
1065// those references first.
1066//
1067// If you get the ResourceInUseException exception, the exception provides an
1068// example reference that shows the intent where the slot type is referenced.
1069// To remove the reference to the slot type, either update the intent or delete
1070// it. If you get the same exception when you attempt to delete the slot type
1071// again, repeat until the slot type has no references and the DeleteSlotType
1072// call is successful.
1073//
1074// This operation requires permission for the lex:DeleteSlotType action.
1075//
1076// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1077// with awserr.Error's Code and Message methods to get detailed information about
1078// the error.
1079//
1080// See the AWS API reference guide for Amazon Lex Model Building Service's
1081// API operation DeleteSlotType for usage and error information.
1082//
1083// Returned Error Types:
1084//   * NotFoundException
1085//   The resource specified in the request was not found. Check the resource and
1086//   try again.
1087//
1088//   * ConflictException
1089//   There was a conflict processing the request. Try your request again.
1090//
1091//   * LimitExceededException
1092//   The request exceeded a limit. Try your request again.
1093//
1094//   * InternalFailureException
1095//   An internal Amazon Lex error occurred. Try your request again.
1096//
1097//   * BadRequestException
1098//   The request is not well formed. For example, a value is invalid or a required
1099//   field is missing. Check the field values, and try again.
1100//
1101//   * ResourceInUseException
1102//   The resource that you are attempting to delete is referred to by another
1103//   resource. Use this information to remove references to the resource that
1104//   you are trying to delete.
1105//
1106//   The body of the exception contains a JSON object that describes the resource.
1107//
1108//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
1109//
1110//   "resourceReference": {
1111//
1112//   "name": string, "version": string } }
1113//
1114// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteSlotType
1115func (c *LexModelBuildingService) DeleteSlotType(input *DeleteSlotTypeInput) (*DeleteSlotTypeOutput, error) {
1116	req, out := c.DeleteSlotTypeRequest(input)
1117	return out, req.Send()
1118}
1119
1120// DeleteSlotTypeWithContext is the same as DeleteSlotType with the addition of
1121// the ability to pass a context and additional request options.
1122//
1123// See DeleteSlotType for details on how to use this API operation.
1124//
1125// The context must be non-nil and will be used for request cancellation. If
1126// the context is nil a panic will occur. In the future the SDK may create
1127// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1128// for more information on using Contexts.
1129func (c *LexModelBuildingService) DeleteSlotTypeWithContext(ctx aws.Context, input *DeleteSlotTypeInput, opts ...request.Option) (*DeleteSlotTypeOutput, error) {
1130	req, out := c.DeleteSlotTypeRequest(input)
1131	req.SetContext(ctx)
1132	req.ApplyOptions(opts...)
1133	return out, req.Send()
1134}
1135
1136const opDeleteSlotTypeVersion = "DeleteSlotTypeVersion"
1137
1138// DeleteSlotTypeVersionRequest generates a "aws/request.Request" representing the
1139// client's request for the DeleteSlotTypeVersion operation. The "output" return
1140// value will be populated with the request's response once the request completes
1141// successfully.
1142//
1143// Use "Send" method on the returned Request to send the API call to the service.
1144// the "output" return value is not valid until after Send returns without error.
1145//
1146// See DeleteSlotTypeVersion for more information on using the DeleteSlotTypeVersion
1147// API call, and error handling.
1148//
1149// This method is useful when you want to inject custom logic or configuration
1150// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1151//
1152//
1153//    // Example sending a request using the DeleteSlotTypeVersionRequest method.
1154//    req, resp := client.DeleteSlotTypeVersionRequest(params)
1155//
1156//    err := req.Send()
1157//    if err == nil { // resp is now filled
1158//        fmt.Println(resp)
1159//    }
1160//
1161// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteSlotTypeVersion
1162func (c *LexModelBuildingService) DeleteSlotTypeVersionRequest(input *DeleteSlotTypeVersionInput) (req *request.Request, output *DeleteSlotTypeVersionOutput) {
1163	op := &request.Operation{
1164		Name:       opDeleteSlotTypeVersion,
1165		HTTPMethod: "DELETE",
1166		HTTPPath:   "/slottypes/{name}/version/{version}",
1167	}
1168
1169	if input == nil {
1170		input = &DeleteSlotTypeVersionInput{}
1171	}
1172
1173	output = &DeleteSlotTypeVersionOutput{}
1174	req = c.newRequest(op, input, output)
1175	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1176	return
1177}
1178
1179// DeleteSlotTypeVersion API operation for Amazon Lex Model Building Service.
1180//
1181// Deletes a specific version of a slot type. To delete all versions of a slot
1182// type, use the DeleteSlotType operation.
1183//
1184// This operation requires permissions for the lex:DeleteSlotTypeVersion action.
1185//
1186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1187// with awserr.Error's Code and Message methods to get detailed information about
1188// the error.
1189//
1190// See the AWS API reference guide for Amazon Lex Model Building Service's
1191// API operation DeleteSlotTypeVersion for usage and error information.
1192//
1193// Returned Error Types:
1194//   * NotFoundException
1195//   The resource specified in the request was not found. Check the resource and
1196//   try again.
1197//
1198//   * ConflictException
1199//   There was a conflict processing the request. Try your request again.
1200//
1201//   * LimitExceededException
1202//   The request exceeded a limit. Try your request again.
1203//
1204//   * InternalFailureException
1205//   An internal Amazon Lex error occurred. Try your request again.
1206//
1207//   * BadRequestException
1208//   The request is not well formed. For example, a value is invalid or a required
1209//   field is missing. Check the field values, and try again.
1210//
1211//   * ResourceInUseException
1212//   The resource that you are attempting to delete is referred to by another
1213//   resource. Use this information to remove references to the resource that
1214//   you are trying to delete.
1215//
1216//   The body of the exception contains a JSON object that describes the resource.
1217//
1218//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
1219//
1220//   "resourceReference": {
1221//
1222//   "name": string, "version": string } }
1223//
1224// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteSlotTypeVersion
1225func (c *LexModelBuildingService) DeleteSlotTypeVersion(input *DeleteSlotTypeVersionInput) (*DeleteSlotTypeVersionOutput, error) {
1226	req, out := c.DeleteSlotTypeVersionRequest(input)
1227	return out, req.Send()
1228}
1229
1230// DeleteSlotTypeVersionWithContext is the same as DeleteSlotTypeVersion with the addition of
1231// the ability to pass a context and additional request options.
1232//
1233// See DeleteSlotTypeVersion for details on how to use this API operation.
1234//
1235// The context must be non-nil and will be used for request cancellation. If
1236// the context is nil a panic will occur. In the future the SDK may create
1237// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1238// for more information on using Contexts.
1239func (c *LexModelBuildingService) DeleteSlotTypeVersionWithContext(ctx aws.Context, input *DeleteSlotTypeVersionInput, opts ...request.Option) (*DeleteSlotTypeVersionOutput, error) {
1240	req, out := c.DeleteSlotTypeVersionRequest(input)
1241	req.SetContext(ctx)
1242	req.ApplyOptions(opts...)
1243	return out, req.Send()
1244}
1245
1246const opDeleteUtterances = "DeleteUtterances"
1247
1248// DeleteUtterancesRequest generates a "aws/request.Request" representing the
1249// client's request for the DeleteUtterances operation. The "output" return
1250// value will be populated with the request's response once the request completes
1251// successfully.
1252//
1253// Use "Send" method on the returned Request to send the API call to the service.
1254// the "output" return value is not valid until after Send returns without error.
1255//
1256// See DeleteUtterances for more information on using the DeleteUtterances
1257// API call, and error handling.
1258//
1259// This method is useful when you want to inject custom logic or configuration
1260// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1261//
1262//
1263//    // Example sending a request using the DeleteUtterancesRequest method.
1264//    req, resp := client.DeleteUtterancesRequest(params)
1265//
1266//    err := req.Send()
1267//    if err == nil { // resp is now filled
1268//        fmt.Println(resp)
1269//    }
1270//
1271// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteUtterances
1272func (c *LexModelBuildingService) DeleteUtterancesRequest(input *DeleteUtterancesInput) (req *request.Request, output *DeleteUtterancesOutput) {
1273	op := &request.Operation{
1274		Name:       opDeleteUtterances,
1275		HTTPMethod: "DELETE",
1276		HTTPPath:   "/bots/{botName}/utterances/{userId}",
1277	}
1278
1279	if input == nil {
1280		input = &DeleteUtterancesInput{}
1281	}
1282
1283	output = &DeleteUtterancesOutput{}
1284	req = c.newRequest(op, input, output)
1285	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1286	return
1287}
1288
1289// DeleteUtterances API operation for Amazon Lex Model Building Service.
1290//
1291// Deletes stored utterances.
1292//
1293// Amazon Lex stores the utterances that users send to your bot. Utterances
1294// are stored for 15 days for use with the GetUtterancesView operation, and
1295// then stored indefinitely for use in improving the ability of your bot to
1296// respond to user input.
1297//
1298// Use the DeleteUtterances operation to manually delete stored utterances for
1299// a specific user. When you use the DeleteUtterances operation, utterances
1300// stored for improving your bot's ability to respond to user input are deleted
1301// immediately. Utterances stored for use with the GetUtterancesView operation
1302// are deleted after 15 days.
1303//
1304// This operation requires permissions for the lex:DeleteUtterances action.
1305//
1306// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1307// with awserr.Error's Code and Message methods to get detailed information about
1308// the error.
1309//
1310// See the AWS API reference guide for Amazon Lex Model Building Service's
1311// API operation DeleteUtterances for usage and error information.
1312//
1313// Returned Error Types:
1314//   * NotFoundException
1315//   The resource specified in the request was not found. Check the resource and
1316//   try again.
1317//
1318//   * LimitExceededException
1319//   The request exceeded a limit. Try your request again.
1320//
1321//   * InternalFailureException
1322//   An internal Amazon Lex error occurred. Try your request again.
1323//
1324//   * BadRequestException
1325//   The request is not well formed. For example, a value is invalid or a required
1326//   field is missing. Check the field values, and try again.
1327//
1328// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteUtterances
1329func (c *LexModelBuildingService) DeleteUtterances(input *DeleteUtterancesInput) (*DeleteUtterancesOutput, error) {
1330	req, out := c.DeleteUtterancesRequest(input)
1331	return out, req.Send()
1332}
1333
1334// DeleteUtterancesWithContext is the same as DeleteUtterances with the addition of
1335// the ability to pass a context and additional request options.
1336//
1337// See DeleteUtterances for details on how to use this API operation.
1338//
1339// The context must be non-nil and will be used for request cancellation. If
1340// the context is nil a panic will occur. In the future the SDK may create
1341// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1342// for more information on using Contexts.
1343func (c *LexModelBuildingService) DeleteUtterancesWithContext(ctx aws.Context, input *DeleteUtterancesInput, opts ...request.Option) (*DeleteUtterancesOutput, error) {
1344	req, out := c.DeleteUtterancesRequest(input)
1345	req.SetContext(ctx)
1346	req.ApplyOptions(opts...)
1347	return out, req.Send()
1348}
1349
1350const opGetBot = "GetBot"
1351
1352// GetBotRequest generates a "aws/request.Request" representing the
1353// client's request for the GetBot operation. The "output" return
1354// value will be populated with the request's response once the request completes
1355// successfully.
1356//
1357// Use "Send" method on the returned Request to send the API call to the service.
1358// the "output" return value is not valid until after Send returns without error.
1359//
1360// See GetBot for more information on using the GetBot
1361// API call, and error handling.
1362//
1363// This method is useful when you want to inject custom logic or configuration
1364// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1365//
1366//
1367//    // Example sending a request using the GetBotRequest method.
1368//    req, resp := client.GetBotRequest(params)
1369//
1370//    err := req.Send()
1371//    if err == nil { // resp is now filled
1372//        fmt.Println(resp)
1373//    }
1374//
1375// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBot
1376func (c *LexModelBuildingService) GetBotRequest(input *GetBotInput) (req *request.Request, output *GetBotOutput) {
1377	op := &request.Operation{
1378		Name:       opGetBot,
1379		HTTPMethod: "GET",
1380		HTTPPath:   "/bots/{name}/versions/{versionoralias}",
1381	}
1382
1383	if input == nil {
1384		input = &GetBotInput{}
1385	}
1386
1387	output = &GetBotOutput{}
1388	req = c.newRequest(op, input, output)
1389	return
1390}
1391
1392// GetBot API operation for Amazon Lex Model Building Service.
1393//
1394// Returns metadata information for a specific bot. You must provide the bot
1395// name and the bot version or alias.
1396//
1397// This operation requires permissions for the lex:GetBot action.
1398//
1399// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1400// with awserr.Error's Code and Message methods to get detailed information about
1401// the error.
1402//
1403// See the AWS API reference guide for Amazon Lex Model Building Service's
1404// API operation GetBot for usage and error information.
1405//
1406// Returned Error Types:
1407//   * NotFoundException
1408//   The resource specified in the request was not found. Check the resource and
1409//   try again.
1410//
1411//   * LimitExceededException
1412//   The request exceeded a limit. Try your request again.
1413//
1414//   * InternalFailureException
1415//   An internal Amazon Lex error occurred. Try your request again.
1416//
1417//   * BadRequestException
1418//   The request is not well formed. For example, a value is invalid or a required
1419//   field is missing. Check the field values, and try again.
1420//
1421// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBot
1422func (c *LexModelBuildingService) GetBot(input *GetBotInput) (*GetBotOutput, error) {
1423	req, out := c.GetBotRequest(input)
1424	return out, req.Send()
1425}
1426
1427// GetBotWithContext is the same as GetBot with the addition of
1428// the ability to pass a context and additional request options.
1429//
1430// See GetBot for details on how to use this API operation.
1431//
1432// The context must be non-nil and will be used for request cancellation. If
1433// the context is nil a panic will occur. In the future the SDK may create
1434// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1435// for more information on using Contexts.
1436func (c *LexModelBuildingService) GetBotWithContext(ctx aws.Context, input *GetBotInput, opts ...request.Option) (*GetBotOutput, error) {
1437	req, out := c.GetBotRequest(input)
1438	req.SetContext(ctx)
1439	req.ApplyOptions(opts...)
1440	return out, req.Send()
1441}
1442
1443const opGetBotAlias = "GetBotAlias"
1444
1445// GetBotAliasRequest generates a "aws/request.Request" representing the
1446// client's request for the GetBotAlias operation. The "output" return
1447// value will be populated with the request's response once the request completes
1448// successfully.
1449//
1450// Use "Send" method on the returned Request to send the API call to the service.
1451// the "output" return value is not valid until after Send returns without error.
1452//
1453// See GetBotAlias for more information on using the GetBotAlias
1454// API call, and error handling.
1455//
1456// This method is useful when you want to inject custom logic or configuration
1457// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1458//
1459//
1460//    // Example sending a request using the GetBotAliasRequest method.
1461//    req, resp := client.GetBotAliasRequest(params)
1462//
1463//    err := req.Send()
1464//    if err == nil { // resp is now filled
1465//        fmt.Println(resp)
1466//    }
1467//
1468// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotAlias
1469func (c *LexModelBuildingService) GetBotAliasRequest(input *GetBotAliasInput) (req *request.Request, output *GetBotAliasOutput) {
1470	op := &request.Operation{
1471		Name:       opGetBotAlias,
1472		HTTPMethod: "GET",
1473		HTTPPath:   "/bots/{botName}/aliases/{name}",
1474	}
1475
1476	if input == nil {
1477		input = &GetBotAliasInput{}
1478	}
1479
1480	output = &GetBotAliasOutput{}
1481	req = c.newRequest(op, input, output)
1482	return
1483}
1484
1485// GetBotAlias API operation for Amazon Lex Model Building Service.
1486//
1487// Returns information about an Amazon Lex bot alias. For more information about
1488// aliases, see versioning-aliases.
1489//
1490// This operation requires permissions for the lex:GetBotAlias action.
1491//
1492// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1493// with awserr.Error's Code and Message methods to get detailed information about
1494// the error.
1495//
1496// See the AWS API reference guide for Amazon Lex Model Building Service's
1497// API operation GetBotAlias for usage and error information.
1498//
1499// Returned Error Types:
1500//   * NotFoundException
1501//   The resource specified in the request was not found. Check the resource and
1502//   try again.
1503//
1504//   * LimitExceededException
1505//   The request exceeded a limit. Try your request again.
1506//
1507//   * InternalFailureException
1508//   An internal Amazon Lex error occurred. Try your request again.
1509//
1510//   * BadRequestException
1511//   The request is not well formed. For example, a value is invalid or a required
1512//   field is missing. Check the field values, and try again.
1513//
1514// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotAlias
1515func (c *LexModelBuildingService) GetBotAlias(input *GetBotAliasInput) (*GetBotAliasOutput, error) {
1516	req, out := c.GetBotAliasRequest(input)
1517	return out, req.Send()
1518}
1519
1520// GetBotAliasWithContext is the same as GetBotAlias with the addition of
1521// the ability to pass a context and additional request options.
1522//
1523// See GetBotAlias for details on how to use this API operation.
1524//
1525// The context must be non-nil and will be used for request cancellation. If
1526// the context is nil a panic will occur. In the future the SDK may create
1527// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1528// for more information on using Contexts.
1529func (c *LexModelBuildingService) GetBotAliasWithContext(ctx aws.Context, input *GetBotAliasInput, opts ...request.Option) (*GetBotAliasOutput, error) {
1530	req, out := c.GetBotAliasRequest(input)
1531	req.SetContext(ctx)
1532	req.ApplyOptions(opts...)
1533	return out, req.Send()
1534}
1535
1536const opGetBotAliases = "GetBotAliases"
1537
1538// GetBotAliasesRequest generates a "aws/request.Request" representing the
1539// client's request for the GetBotAliases operation. The "output" return
1540// value will be populated with the request's response once the request completes
1541// successfully.
1542//
1543// Use "Send" method on the returned Request to send the API call to the service.
1544// the "output" return value is not valid until after Send returns without error.
1545//
1546// See GetBotAliases for more information on using the GetBotAliases
1547// API call, and error handling.
1548//
1549// This method is useful when you want to inject custom logic or configuration
1550// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1551//
1552//
1553//    // Example sending a request using the GetBotAliasesRequest method.
1554//    req, resp := client.GetBotAliasesRequest(params)
1555//
1556//    err := req.Send()
1557//    if err == nil { // resp is now filled
1558//        fmt.Println(resp)
1559//    }
1560//
1561// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotAliases
1562func (c *LexModelBuildingService) GetBotAliasesRequest(input *GetBotAliasesInput) (req *request.Request, output *GetBotAliasesOutput) {
1563	op := &request.Operation{
1564		Name:       opGetBotAliases,
1565		HTTPMethod: "GET",
1566		HTTPPath:   "/bots/{botName}/aliases/",
1567		Paginator: &request.Paginator{
1568			InputTokens:     []string{"nextToken"},
1569			OutputTokens:    []string{"nextToken"},
1570			LimitToken:      "maxResults",
1571			TruncationToken: "",
1572		},
1573	}
1574
1575	if input == nil {
1576		input = &GetBotAliasesInput{}
1577	}
1578
1579	output = &GetBotAliasesOutput{}
1580	req = c.newRequest(op, input, output)
1581	return
1582}
1583
1584// GetBotAliases API operation for Amazon Lex Model Building Service.
1585//
1586// Returns a list of aliases for a specified Amazon Lex bot.
1587//
1588// This operation requires permissions for the lex:GetBotAliases action.
1589//
1590// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1591// with awserr.Error's Code and Message methods to get detailed information about
1592// the error.
1593//
1594// See the AWS API reference guide for Amazon Lex Model Building Service's
1595// API operation GetBotAliases for usage and error information.
1596//
1597// Returned Error Types:
1598//   * LimitExceededException
1599//   The request exceeded a limit. Try your request again.
1600//
1601//   * InternalFailureException
1602//   An internal Amazon Lex error occurred. Try your request again.
1603//
1604//   * BadRequestException
1605//   The request is not well formed. For example, a value is invalid or a required
1606//   field is missing. Check the field values, and try again.
1607//
1608// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotAliases
1609func (c *LexModelBuildingService) GetBotAliases(input *GetBotAliasesInput) (*GetBotAliasesOutput, error) {
1610	req, out := c.GetBotAliasesRequest(input)
1611	return out, req.Send()
1612}
1613
1614// GetBotAliasesWithContext is the same as GetBotAliases with the addition of
1615// the ability to pass a context and additional request options.
1616//
1617// See GetBotAliases for details on how to use this API operation.
1618//
1619// The context must be non-nil and will be used for request cancellation. If
1620// the context is nil a panic will occur. In the future the SDK may create
1621// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1622// for more information on using Contexts.
1623func (c *LexModelBuildingService) GetBotAliasesWithContext(ctx aws.Context, input *GetBotAliasesInput, opts ...request.Option) (*GetBotAliasesOutput, error) {
1624	req, out := c.GetBotAliasesRequest(input)
1625	req.SetContext(ctx)
1626	req.ApplyOptions(opts...)
1627	return out, req.Send()
1628}
1629
1630// GetBotAliasesPages iterates over the pages of a GetBotAliases operation,
1631// calling the "fn" function with the response data for each page. To stop
1632// iterating, return false from the fn function.
1633//
1634// See GetBotAliases method for more information on how to use this operation.
1635//
1636// Note: This operation can generate multiple requests to a service.
1637//
1638//    // Example iterating over at most 3 pages of a GetBotAliases operation.
1639//    pageNum := 0
1640//    err := client.GetBotAliasesPages(params,
1641//        func(page *lexmodelbuildingservice.GetBotAliasesOutput, lastPage bool) bool {
1642//            pageNum++
1643//            fmt.Println(page)
1644//            return pageNum <= 3
1645//        })
1646//
1647func (c *LexModelBuildingService) GetBotAliasesPages(input *GetBotAliasesInput, fn func(*GetBotAliasesOutput, bool) bool) error {
1648	return c.GetBotAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
1649}
1650
1651// GetBotAliasesPagesWithContext same as GetBotAliasesPages except
1652// it takes a Context and allows setting request options on the pages.
1653//
1654// The context must be non-nil and will be used for request cancellation. If
1655// the context is nil a panic will occur. In the future the SDK may create
1656// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1657// for more information on using Contexts.
1658func (c *LexModelBuildingService) GetBotAliasesPagesWithContext(ctx aws.Context, input *GetBotAliasesInput, fn func(*GetBotAliasesOutput, bool) bool, opts ...request.Option) error {
1659	p := request.Pagination{
1660		NewRequest: func() (*request.Request, error) {
1661			var inCpy *GetBotAliasesInput
1662			if input != nil {
1663				tmp := *input
1664				inCpy = &tmp
1665			}
1666			req, _ := c.GetBotAliasesRequest(inCpy)
1667			req.SetContext(ctx)
1668			req.ApplyOptions(opts...)
1669			return req, nil
1670		},
1671	}
1672
1673	for p.Next() {
1674		if !fn(p.Page().(*GetBotAliasesOutput), !p.HasNextPage()) {
1675			break
1676		}
1677	}
1678
1679	return p.Err()
1680}
1681
1682const opGetBotChannelAssociation = "GetBotChannelAssociation"
1683
1684// GetBotChannelAssociationRequest generates a "aws/request.Request" representing the
1685// client's request for the GetBotChannelAssociation operation. The "output" return
1686// value will be populated with the request's response once the request completes
1687// successfully.
1688//
1689// Use "Send" method on the returned Request to send the API call to the service.
1690// the "output" return value is not valid until after Send returns without error.
1691//
1692// See GetBotChannelAssociation for more information on using the GetBotChannelAssociation
1693// API call, and error handling.
1694//
1695// This method is useful when you want to inject custom logic or configuration
1696// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1697//
1698//
1699//    // Example sending a request using the GetBotChannelAssociationRequest method.
1700//    req, resp := client.GetBotChannelAssociationRequest(params)
1701//
1702//    err := req.Send()
1703//    if err == nil { // resp is now filled
1704//        fmt.Println(resp)
1705//    }
1706//
1707// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotChannelAssociation
1708func (c *LexModelBuildingService) GetBotChannelAssociationRequest(input *GetBotChannelAssociationInput) (req *request.Request, output *GetBotChannelAssociationOutput) {
1709	op := &request.Operation{
1710		Name:       opGetBotChannelAssociation,
1711		HTTPMethod: "GET",
1712		HTTPPath:   "/bots/{botName}/aliases/{aliasName}/channels/{name}",
1713	}
1714
1715	if input == nil {
1716		input = &GetBotChannelAssociationInput{}
1717	}
1718
1719	output = &GetBotChannelAssociationOutput{}
1720	req = c.newRequest(op, input, output)
1721	return
1722}
1723
1724// GetBotChannelAssociation API operation for Amazon Lex Model Building Service.
1725//
1726// Returns information about the association between an Amazon Lex bot and a
1727// messaging platform.
1728//
1729// This operation requires permissions for the lex:GetBotChannelAssociation
1730// action.
1731//
1732// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1733// with awserr.Error's Code and Message methods to get detailed information about
1734// the error.
1735//
1736// See the AWS API reference guide for Amazon Lex Model Building Service's
1737// API operation GetBotChannelAssociation for usage and error information.
1738//
1739// Returned Error Types:
1740//   * NotFoundException
1741//   The resource specified in the request was not found. Check the resource and
1742//   try again.
1743//
1744//   * LimitExceededException
1745//   The request exceeded a limit. Try your request again.
1746//
1747//   * InternalFailureException
1748//   An internal Amazon Lex error occurred. Try your request again.
1749//
1750//   * BadRequestException
1751//   The request is not well formed. For example, a value is invalid or a required
1752//   field is missing. Check the field values, and try again.
1753//
1754// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotChannelAssociation
1755func (c *LexModelBuildingService) GetBotChannelAssociation(input *GetBotChannelAssociationInput) (*GetBotChannelAssociationOutput, error) {
1756	req, out := c.GetBotChannelAssociationRequest(input)
1757	return out, req.Send()
1758}
1759
1760// GetBotChannelAssociationWithContext is the same as GetBotChannelAssociation with the addition of
1761// the ability to pass a context and additional request options.
1762//
1763// See GetBotChannelAssociation for details on how to use this API operation.
1764//
1765// The context must be non-nil and will be used for request cancellation. If
1766// the context is nil a panic will occur. In the future the SDK may create
1767// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1768// for more information on using Contexts.
1769func (c *LexModelBuildingService) GetBotChannelAssociationWithContext(ctx aws.Context, input *GetBotChannelAssociationInput, opts ...request.Option) (*GetBotChannelAssociationOutput, error) {
1770	req, out := c.GetBotChannelAssociationRequest(input)
1771	req.SetContext(ctx)
1772	req.ApplyOptions(opts...)
1773	return out, req.Send()
1774}
1775
1776const opGetBotChannelAssociations = "GetBotChannelAssociations"
1777
1778// GetBotChannelAssociationsRequest generates a "aws/request.Request" representing the
1779// client's request for the GetBotChannelAssociations operation. The "output" return
1780// value will be populated with the request's response once the request completes
1781// successfully.
1782//
1783// Use "Send" method on the returned Request to send the API call to the service.
1784// the "output" return value is not valid until after Send returns without error.
1785//
1786// See GetBotChannelAssociations for more information on using the GetBotChannelAssociations
1787// API call, and error handling.
1788//
1789// This method is useful when you want to inject custom logic or configuration
1790// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1791//
1792//
1793//    // Example sending a request using the GetBotChannelAssociationsRequest method.
1794//    req, resp := client.GetBotChannelAssociationsRequest(params)
1795//
1796//    err := req.Send()
1797//    if err == nil { // resp is now filled
1798//        fmt.Println(resp)
1799//    }
1800//
1801// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotChannelAssociations
1802func (c *LexModelBuildingService) GetBotChannelAssociationsRequest(input *GetBotChannelAssociationsInput) (req *request.Request, output *GetBotChannelAssociationsOutput) {
1803	op := &request.Operation{
1804		Name:       opGetBotChannelAssociations,
1805		HTTPMethod: "GET",
1806		HTTPPath:   "/bots/{botName}/aliases/{aliasName}/channels/",
1807		Paginator: &request.Paginator{
1808			InputTokens:     []string{"nextToken"},
1809			OutputTokens:    []string{"nextToken"},
1810			LimitToken:      "maxResults",
1811			TruncationToken: "",
1812		},
1813	}
1814
1815	if input == nil {
1816		input = &GetBotChannelAssociationsInput{}
1817	}
1818
1819	output = &GetBotChannelAssociationsOutput{}
1820	req = c.newRequest(op, input, output)
1821	return
1822}
1823
1824// GetBotChannelAssociations API operation for Amazon Lex Model Building Service.
1825//
1826// Returns a list of all of the channels associated with the specified bot.
1827//
1828// The GetBotChannelAssociations operation requires permissions for the lex:GetBotChannelAssociations
1829// action.
1830//
1831// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1832// with awserr.Error's Code and Message methods to get detailed information about
1833// the error.
1834//
1835// See the AWS API reference guide for Amazon Lex Model Building Service's
1836// API operation GetBotChannelAssociations for usage and error information.
1837//
1838// Returned Error Types:
1839//   * LimitExceededException
1840//   The request exceeded a limit. Try your request again.
1841//
1842//   * InternalFailureException
1843//   An internal Amazon Lex error occurred. Try your request again.
1844//
1845//   * BadRequestException
1846//   The request is not well formed. For example, a value is invalid or a required
1847//   field is missing. Check the field values, and try again.
1848//
1849// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotChannelAssociations
1850func (c *LexModelBuildingService) GetBotChannelAssociations(input *GetBotChannelAssociationsInput) (*GetBotChannelAssociationsOutput, error) {
1851	req, out := c.GetBotChannelAssociationsRequest(input)
1852	return out, req.Send()
1853}
1854
1855// GetBotChannelAssociationsWithContext is the same as GetBotChannelAssociations with the addition of
1856// the ability to pass a context and additional request options.
1857//
1858// See GetBotChannelAssociations for details on how to use this API operation.
1859//
1860// The context must be non-nil and will be used for request cancellation. If
1861// the context is nil a panic will occur. In the future the SDK may create
1862// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1863// for more information on using Contexts.
1864func (c *LexModelBuildingService) GetBotChannelAssociationsWithContext(ctx aws.Context, input *GetBotChannelAssociationsInput, opts ...request.Option) (*GetBotChannelAssociationsOutput, error) {
1865	req, out := c.GetBotChannelAssociationsRequest(input)
1866	req.SetContext(ctx)
1867	req.ApplyOptions(opts...)
1868	return out, req.Send()
1869}
1870
1871// GetBotChannelAssociationsPages iterates over the pages of a GetBotChannelAssociations operation,
1872// calling the "fn" function with the response data for each page. To stop
1873// iterating, return false from the fn function.
1874//
1875// See GetBotChannelAssociations method for more information on how to use this operation.
1876//
1877// Note: This operation can generate multiple requests to a service.
1878//
1879//    // Example iterating over at most 3 pages of a GetBotChannelAssociations operation.
1880//    pageNum := 0
1881//    err := client.GetBotChannelAssociationsPages(params,
1882//        func(page *lexmodelbuildingservice.GetBotChannelAssociationsOutput, lastPage bool) bool {
1883//            pageNum++
1884//            fmt.Println(page)
1885//            return pageNum <= 3
1886//        })
1887//
1888func (c *LexModelBuildingService) GetBotChannelAssociationsPages(input *GetBotChannelAssociationsInput, fn func(*GetBotChannelAssociationsOutput, bool) bool) error {
1889	return c.GetBotChannelAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
1890}
1891
1892// GetBotChannelAssociationsPagesWithContext same as GetBotChannelAssociationsPages except
1893// it takes a Context and allows setting request options on the pages.
1894//
1895// The context must be non-nil and will be used for request cancellation. If
1896// the context is nil a panic will occur. In the future the SDK may create
1897// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1898// for more information on using Contexts.
1899func (c *LexModelBuildingService) GetBotChannelAssociationsPagesWithContext(ctx aws.Context, input *GetBotChannelAssociationsInput, fn func(*GetBotChannelAssociationsOutput, bool) bool, opts ...request.Option) error {
1900	p := request.Pagination{
1901		NewRequest: func() (*request.Request, error) {
1902			var inCpy *GetBotChannelAssociationsInput
1903			if input != nil {
1904				tmp := *input
1905				inCpy = &tmp
1906			}
1907			req, _ := c.GetBotChannelAssociationsRequest(inCpy)
1908			req.SetContext(ctx)
1909			req.ApplyOptions(opts...)
1910			return req, nil
1911		},
1912	}
1913
1914	for p.Next() {
1915		if !fn(p.Page().(*GetBotChannelAssociationsOutput), !p.HasNextPage()) {
1916			break
1917		}
1918	}
1919
1920	return p.Err()
1921}
1922
1923const opGetBotVersions = "GetBotVersions"
1924
1925// GetBotVersionsRequest generates a "aws/request.Request" representing the
1926// client's request for the GetBotVersions operation. The "output" return
1927// value will be populated with the request's response once the request completes
1928// successfully.
1929//
1930// Use "Send" method on the returned Request to send the API call to the service.
1931// the "output" return value is not valid until after Send returns without error.
1932//
1933// See GetBotVersions for more information on using the GetBotVersions
1934// API call, and error handling.
1935//
1936// This method is useful when you want to inject custom logic or configuration
1937// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1938//
1939//
1940//    // Example sending a request using the GetBotVersionsRequest method.
1941//    req, resp := client.GetBotVersionsRequest(params)
1942//
1943//    err := req.Send()
1944//    if err == nil { // resp is now filled
1945//        fmt.Println(resp)
1946//    }
1947//
1948// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotVersions
1949func (c *LexModelBuildingService) GetBotVersionsRequest(input *GetBotVersionsInput) (req *request.Request, output *GetBotVersionsOutput) {
1950	op := &request.Operation{
1951		Name:       opGetBotVersions,
1952		HTTPMethod: "GET",
1953		HTTPPath:   "/bots/{name}/versions/",
1954		Paginator: &request.Paginator{
1955			InputTokens:     []string{"nextToken"},
1956			OutputTokens:    []string{"nextToken"},
1957			LimitToken:      "maxResults",
1958			TruncationToken: "",
1959		},
1960	}
1961
1962	if input == nil {
1963		input = &GetBotVersionsInput{}
1964	}
1965
1966	output = &GetBotVersionsOutput{}
1967	req = c.newRequest(op, input, output)
1968	return
1969}
1970
1971// GetBotVersions API operation for Amazon Lex Model Building Service.
1972//
1973// Gets information about all of the versions of a bot.
1974//
1975// The GetBotVersions operation returns a BotMetadata object for each version
1976// of a bot. For example, if a bot has three numbered versions, the GetBotVersions
1977// operation returns four BotMetadata objects in the response, one for each
1978// numbered version and one for the $LATEST version.
1979//
1980// The GetBotVersions operation always returns at least one version, the $LATEST
1981// version.
1982//
1983// This operation requires permissions for the lex:GetBotVersions action.
1984//
1985// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1986// with awserr.Error's Code and Message methods to get detailed information about
1987// the error.
1988//
1989// See the AWS API reference guide for Amazon Lex Model Building Service's
1990// API operation GetBotVersions for usage and error information.
1991//
1992// Returned Error Types:
1993//   * NotFoundException
1994//   The resource specified in the request was not found. Check the resource and
1995//   try again.
1996//
1997//   * LimitExceededException
1998//   The request exceeded a limit. Try your request again.
1999//
2000//   * InternalFailureException
2001//   An internal Amazon Lex error occurred. Try your request again.
2002//
2003//   * BadRequestException
2004//   The request is not well formed. For example, a value is invalid or a required
2005//   field is missing. Check the field values, and try again.
2006//
2007// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotVersions
2008func (c *LexModelBuildingService) GetBotVersions(input *GetBotVersionsInput) (*GetBotVersionsOutput, error) {
2009	req, out := c.GetBotVersionsRequest(input)
2010	return out, req.Send()
2011}
2012
2013// GetBotVersionsWithContext is the same as GetBotVersions with the addition of
2014// the ability to pass a context and additional request options.
2015//
2016// See GetBotVersions for details on how to use this API operation.
2017//
2018// The context must be non-nil and will be used for request cancellation. If
2019// the context is nil a panic will occur. In the future the SDK may create
2020// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2021// for more information on using Contexts.
2022func (c *LexModelBuildingService) GetBotVersionsWithContext(ctx aws.Context, input *GetBotVersionsInput, opts ...request.Option) (*GetBotVersionsOutput, error) {
2023	req, out := c.GetBotVersionsRequest(input)
2024	req.SetContext(ctx)
2025	req.ApplyOptions(opts...)
2026	return out, req.Send()
2027}
2028
2029// GetBotVersionsPages iterates over the pages of a GetBotVersions operation,
2030// calling the "fn" function with the response data for each page. To stop
2031// iterating, return false from the fn function.
2032//
2033// See GetBotVersions method for more information on how to use this operation.
2034//
2035// Note: This operation can generate multiple requests to a service.
2036//
2037//    // Example iterating over at most 3 pages of a GetBotVersions operation.
2038//    pageNum := 0
2039//    err := client.GetBotVersionsPages(params,
2040//        func(page *lexmodelbuildingservice.GetBotVersionsOutput, lastPage bool) bool {
2041//            pageNum++
2042//            fmt.Println(page)
2043//            return pageNum <= 3
2044//        })
2045//
2046func (c *LexModelBuildingService) GetBotVersionsPages(input *GetBotVersionsInput, fn func(*GetBotVersionsOutput, bool) bool) error {
2047	return c.GetBotVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
2048}
2049
2050// GetBotVersionsPagesWithContext same as GetBotVersionsPages except
2051// it takes a Context and allows setting request options on the pages.
2052//
2053// The context must be non-nil and will be used for request cancellation. If
2054// the context is nil a panic will occur. In the future the SDK may create
2055// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2056// for more information on using Contexts.
2057func (c *LexModelBuildingService) GetBotVersionsPagesWithContext(ctx aws.Context, input *GetBotVersionsInput, fn func(*GetBotVersionsOutput, bool) bool, opts ...request.Option) error {
2058	p := request.Pagination{
2059		NewRequest: func() (*request.Request, error) {
2060			var inCpy *GetBotVersionsInput
2061			if input != nil {
2062				tmp := *input
2063				inCpy = &tmp
2064			}
2065			req, _ := c.GetBotVersionsRequest(inCpy)
2066			req.SetContext(ctx)
2067			req.ApplyOptions(opts...)
2068			return req, nil
2069		},
2070	}
2071
2072	for p.Next() {
2073		if !fn(p.Page().(*GetBotVersionsOutput), !p.HasNextPage()) {
2074			break
2075		}
2076	}
2077
2078	return p.Err()
2079}
2080
2081const opGetBots = "GetBots"
2082
2083// GetBotsRequest generates a "aws/request.Request" representing the
2084// client's request for the GetBots operation. The "output" return
2085// value will be populated with the request's response once the request completes
2086// successfully.
2087//
2088// Use "Send" method on the returned Request to send the API call to the service.
2089// the "output" return value is not valid until after Send returns without error.
2090//
2091// See GetBots for more information on using the GetBots
2092// API call, and error handling.
2093//
2094// This method is useful when you want to inject custom logic or configuration
2095// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2096//
2097//
2098//    // Example sending a request using the GetBotsRequest method.
2099//    req, resp := client.GetBotsRequest(params)
2100//
2101//    err := req.Send()
2102//    if err == nil { // resp is now filled
2103//        fmt.Println(resp)
2104//    }
2105//
2106// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBots
2107func (c *LexModelBuildingService) GetBotsRequest(input *GetBotsInput) (req *request.Request, output *GetBotsOutput) {
2108	op := &request.Operation{
2109		Name:       opGetBots,
2110		HTTPMethod: "GET",
2111		HTTPPath:   "/bots/",
2112		Paginator: &request.Paginator{
2113			InputTokens:     []string{"nextToken"},
2114			OutputTokens:    []string{"nextToken"},
2115			LimitToken:      "maxResults",
2116			TruncationToken: "",
2117		},
2118	}
2119
2120	if input == nil {
2121		input = &GetBotsInput{}
2122	}
2123
2124	output = &GetBotsOutput{}
2125	req = c.newRequest(op, input, output)
2126	return
2127}
2128
2129// GetBots API operation for Amazon Lex Model Building Service.
2130//
2131// Returns bot information as follows:
2132//
2133//    * If you provide the nameContains field, the response includes information
2134//    for the $LATEST version of all bots whose name contains the specified
2135//    string.
2136//
2137//    * If you don't specify the nameContains field, the operation returns information
2138//    about the $LATEST version of all of your bots.
2139//
2140// This operation requires permission for the lex:GetBots action.
2141//
2142// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2143// with awserr.Error's Code and Message methods to get detailed information about
2144// the error.
2145//
2146// See the AWS API reference guide for Amazon Lex Model Building Service's
2147// API operation GetBots for usage and error information.
2148//
2149// Returned Error Types:
2150//   * NotFoundException
2151//   The resource specified in the request was not found. Check the resource and
2152//   try again.
2153//
2154//   * LimitExceededException
2155//   The request exceeded a limit. Try your request again.
2156//
2157//   * InternalFailureException
2158//   An internal Amazon Lex error occurred. Try your request again.
2159//
2160//   * BadRequestException
2161//   The request is not well formed. For example, a value is invalid or a required
2162//   field is missing. Check the field values, and try again.
2163//
2164// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBots
2165func (c *LexModelBuildingService) GetBots(input *GetBotsInput) (*GetBotsOutput, error) {
2166	req, out := c.GetBotsRequest(input)
2167	return out, req.Send()
2168}
2169
2170// GetBotsWithContext is the same as GetBots with the addition of
2171// the ability to pass a context and additional request options.
2172//
2173// See GetBots for details on how to use this API operation.
2174//
2175// The context must be non-nil and will be used for request cancellation. If
2176// the context is nil a panic will occur. In the future the SDK may create
2177// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2178// for more information on using Contexts.
2179func (c *LexModelBuildingService) GetBotsWithContext(ctx aws.Context, input *GetBotsInput, opts ...request.Option) (*GetBotsOutput, error) {
2180	req, out := c.GetBotsRequest(input)
2181	req.SetContext(ctx)
2182	req.ApplyOptions(opts...)
2183	return out, req.Send()
2184}
2185
2186// GetBotsPages iterates over the pages of a GetBots operation,
2187// calling the "fn" function with the response data for each page. To stop
2188// iterating, return false from the fn function.
2189//
2190// See GetBots method for more information on how to use this operation.
2191//
2192// Note: This operation can generate multiple requests to a service.
2193//
2194//    // Example iterating over at most 3 pages of a GetBots operation.
2195//    pageNum := 0
2196//    err := client.GetBotsPages(params,
2197//        func(page *lexmodelbuildingservice.GetBotsOutput, lastPage bool) bool {
2198//            pageNum++
2199//            fmt.Println(page)
2200//            return pageNum <= 3
2201//        })
2202//
2203func (c *LexModelBuildingService) GetBotsPages(input *GetBotsInput, fn func(*GetBotsOutput, bool) bool) error {
2204	return c.GetBotsPagesWithContext(aws.BackgroundContext(), input, fn)
2205}
2206
2207// GetBotsPagesWithContext same as GetBotsPages except
2208// it takes a Context and allows setting request options on the pages.
2209//
2210// The context must be non-nil and will be used for request cancellation. If
2211// the context is nil a panic will occur. In the future the SDK may create
2212// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2213// for more information on using Contexts.
2214func (c *LexModelBuildingService) GetBotsPagesWithContext(ctx aws.Context, input *GetBotsInput, fn func(*GetBotsOutput, bool) bool, opts ...request.Option) error {
2215	p := request.Pagination{
2216		NewRequest: func() (*request.Request, error) {
2217			var inCpy *GetBotsInput
2218			if input != nil {
2219				tmp := *input
2220				inCpy = &tmp
2221			}
2222			req, _ := c.GetBotsRequest(inCpy)
2223			req.SetContext(ctx)
2224			req.ApplyOptions(opts...)
2225			return req, nil
2226		},
2227	}
2228
2229	for p.Next() {
2230		if !fn(p.Page().(*GetBotsOutput), !p.HasNextPage()) {
2231			break
2232		}
2233	}
2234
2235	return p.Err()
2236}
2237
2238const opGetBuiltinIntent = "GetBuiltinIntent"
2239
2240// GetBuiltinIntentRequest generates a "aws/request.Request" representing the
2241// client's request for the GetBuiltinIntent operation. The "output" return
2242// value will be populated with the request's response once the request completes
2243// successfully.
2244//
2245// Use "Send" method on the returned Request to send the API call to the service.
2246// the "output" return value is not valid until after Send returns without error.
2247//
2248// See GetBuiltinIntent for more information on using the GetBuiltinIntent
2249// API call, and error handling.
2250//
2251// This method is useful when you want to inject custom logic or configuration
2252// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2253//
2254//
2255//    // Example sending a request using the GetBuiltinIntentRequest method.
2256//    req, resp := client.GetBuiltinIntentRequest(params)
2257//
2258//    err := req.Send()
2259//    if err == nil { // resp is now filled
2260//        fmt.Println(resp)
2261//    }
2262//
2263// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinIntent
2264func (c *LexModelBuildingService) GetBuiltinIntentRequest(input *GetBuiltinIntentInput) (req *request.Request, output *GetBuiltinIntentOutput) {
2265	op := &request.Operation{
2266		Name:       opGetBuiltinIntent,
2267		HTTPMethod: "GET",
2268		HTTPPath:   "/builtins/intents/{signature}",
2269	}
2270
2271	if input == nil {
2272		input = &GetBuiltinIntentInput{}
2273	}
2274
2275	output = &GetBuiltinIntentOutput{}
2276	req = c.newRequest(op, input, output)
2277	return
2278}
2279
2280// GetBuiltinIntent API operation for Amazon Lex Model Building Service.
2281//
2282// Returns information about a built-in intent.
2283//
2284// This operation requires permission for the lex:GetBuiltinIntent action.
2285//
2286// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2287// with awserr.Error's Code and Message methods to get detailed information about
2288// the error.
2289//
2290// See the AWS API reference guide for Amazon Lex Model Building Service's
2291// API operation GetBuiltinIntent for usage and error information.
2292//
2293// Returned Error Types:
2294//   * NotFoundException
2295//   The resource specified in the request was not found. Check the resource and
2296//   try again.
2297//
2298//   * LimitExceededException
2299//   The request exceeded a limit. Try your request again.
2300//
2301//   * InternalFailureException
2302//   An internal Amazon Lex error occurred. Try your request again.
2303//
2304//   * BadRequestException
2305//   The request is not well formed. For example, a value is invalid or a required
2306//   field is missing. Check the field values, and try again.
2307//
2308// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinIntent
2309func (c *LexModelBuildingService) GetBuiltinIntent(input *GetBuiltinIntentInput) (*GetBuiltinIntentOutput, error) {
2310	req, out := c.GetBuiltinIntentRequest(input)
2311	return out, req.Send()
2312}
2313
2314// GetBuiltinIntentWithContext is the same as GetBuiltinIntent with the addition of
2315// the ability to pass a context and additional request options.
2316//
2317// See GetBuiltinIntent for details on how to use this API operation.
2318//
2319// The context must be non-nil and will be used for request cancellation. If
2320// the context is nil a panic will occur. In the future the SDK may create
2321// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2322// for more information on using Contexts.
2323func (c *LexModelBuildingService) GetBuiltinIntentWithContext(ctx aws.Context, input *GetBuiltinIntentInput, opts ...request.Option) (*GetBuiltinIntentOutput, error) {
2324	req, out := c.GetBuiltinIntentRequest(input)
2325	req.SetContext(ctx)
2326	req.ApplyOptions(opts...)
2327	return out, req.Send()
2328}
2329
2330const opGetBuiltinIntents = "GetBuiltinIntents"
2331
2332// GetBuiltinIntentsRequest generates a "aws/request.Request" representing the
2333// client's request for the GetBuiltinIntents operation. The "output" return
2334// value will be populated with the request's response once the request completes
2335// successfully.
2336//
2337// Use "Send" method on the returned Request to send the API call to the service.
2338// the "output" return value is not valid until after Send returns without error.
2339//
2340// See GetBuiltinIntents for more information on using the GetBuiltinIntents
2341// API call, and error handling.
2342//
2343// This method is useful when you want to inject custom logic or configuration
2344// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2345//
2346//
2347//    // Example sending a request using the GetBuiltinIntentsRequest method.
2348//    req, resp := client.GetBuiltinIntentsRequest(params)
2349//
2350//    err := req.Send()
2351//    if err == nil { // resp is now filled
2352//        fmt.Println(resp)
2353//    }
2354//
2355// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinIntents
2356func (c *LexModelBuildingService) GetBuiltinIntentsRequest(input *GetBuiltinIntentsInput) (req *request.Request, output *GetBuiltinIntentsOutput) {
2357	op := &request.Operation{
2358		Name:       opGetBuiltinIntents,
2359		HTTPMethod: "GET",
2360		HTTPPath:   "/builtins/intents/",
2361		Paginator: &request.Paginator{
2362			InputTokens:     []string{"nextToken"},
2363			OutputTokens:    []string{"nextToken"},
2364			LimitToken:      "maxResults",
2365			TruncationToken: "",
2366		},
2367	}
2368
2369	if input == nil {
2370		input = &GetBuiltinIntentsInput{}
2371	}
2372
2373	output = &GetBuiltinIntentsOutput{}
2374	req = c.newRequest(op, input, output)
2375	return
2376}
2377
2378// GetBuiltinIntents API operation for Amazon Lex Model Building Service.
2379//
2380// Gets a list of built-in intents that meet the specified criteria.
2381//
2382// This operation requires permission for the lex:GetBuiltinIntents action.
2383//
2384// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2385// with awserr.Error's Code and Message methods to get detailed information about
2386// the error.
2387//
2388// See the AWS API reference guide for Amazon Lex Model Building Service's
2389// API operation GetBuiltinIntents for usage and error information.
2390//
2391// Returned Error Types:
2392//   * LimitExceededException
2393//   The request exceeded a limit. Try your request again.
2394//
2395//   * InternalFailureException
2396//   An internal Amazon Lex error occurred. Try your request again.
2397//
2398//   * BadRequestException
2399//   The request is not well formed. For example, a value is invalid or a required
2400//   field is missing. Check the field values, and try again.
2401//
2402// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinIntents
2403func (c *LexModelBuildingService) GetBuiltinIntents(input *GetBuiltinIntentsInput) (*GetBuiltinIntentsOutput, error) {
2404	req, out := c.GetBuiltinIntentsRequest(input)
2405	return out, req.Send()
2406}
2407
2408// GetBuiltinIntentsWithContext is the same as GetBuiltinIntents with the addition of
2409// the ability to pass a context and additional request options.
2410//
2411// See GetBuiltinIntents for details on how to use this API operation.
2412//
2413// The context must be non-nil and will be used for request cancellation. If
2414// the context is nil a panic will occur. In the future the SDK may create
2415// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2416// for more information on using Contexts.
2417func (c *LexModelBuildingService) GetBuiltinIntentsWithContext(ctx aws.Context, input *GetBuiltinIntentsInput, opts ...request.Option) (*GetBuiltinIntentsOutput, error) {
2418	req, out := c.GetBuiltinIntentsRequest(input)
2419	req.SetContext(ctx)
2420	req.ApplyOptions(opts...)
2421	return out, req.Send()
2422}
2423
2424// GetBuiltinIntentsPages iterates over the pages of a GetBuiltinIntents operation,
2425// calling the "fn" function with the response data for each page. To stop
2426// iterating, return false from the fn function.
2427//
2428// See GetBuiltinIntents method for more information on how to use this operation.
2429//
2430// Note: This operation can generate multiple requests to a service.
2431//
2432//    // Example iterating over at most 3 pages of a GetBuiltinIntents operation.
2433//    pageNum := 0
2434//    err := client.GetBuiltinIntentsPages(params,
2435//        func(page *lexmodelbuildingservice.GetBuiltinIntentsOutput, lastPage bool) bool {
2436//            pageNum++
2437//            fmt.Println(page)
2438//            return pageNum <= 3
2439//        })
2440//
2441func (c *LexModelBuildingService) GetBuiltinIntentsPages(input *GetBuiltinIntentsInput, fn func(*GetBuiltinIntentsOutput, bool) bool) error {
2442	return c.GetBuiltinIntentsPagesWithContext(aws.BackgroundContext(), input, fn)
2443}
2444
2445// GetBuiltinIntentsPagesWithContext same as GetBuiltinIntentsPages except
2446// it takes a Context and allows setting request options on the pages.
2447//
2448// The context must be non-nil and will be used for request cancellation. If
2449// the context is nil a panic will occur. In the future the SDK may create
2450// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2451// for more information on using Contexts.
2452func (c *LexModelBuildingService) GetBuiltinIntentsPagesWithContext(ctx aws.Context, input *GetBuiltinIntentsInput, fn func(*GetBuiltinIntentsOutput, bool) bool, opts ...request.Option) error {
2453	p := request.Pagination{
2454		NewRequest: func() (*request.Request, error) {
2455			var inCpy *GetBuiltinIntentsInput
2456			if input != nil {
2457				tmp := *input
2458				inCpy = &tmp
2459			}
2460			req, _ := c.GetBuiltinIntentsRequest(inCpy)
2461			req.SetContext(ctx)
2462			req.ApplyOptions(opts...)
2463			return req, nil
2464		},
2465	}
2466
2467	for p.Next() {
2468		if !fn(p.Page().(*GetBuiltinIntentsOutput), !p.HasNextPage()) {
2469			break
2470		}
2471	}
2472
2473	return p.Err()
2474}
2475
2476const opGetBuiltinSlotTypes = "GetBuiltinSlotTypes"
2477
2478// GetBuiltinSlotTypesRequest generates a "aws/request.Request" representing the
2479// client's request for the GetBuiltinSlotTypes operation. The "output" return
2480// value will be populated with the request's response once the request completes
2481// successfully.
2482//
2483// Use "Send" method on the returned Request to send the API call to the service.
2484// the "output" return value is not valid until after Send returns without error.
2485//
2486// See GetBuiltinSlotTypes for more information on using the GetBuiltinSlotTypes
2487// API call, and error handling.
2488//
2489// This method is useful when you want to inject custom logic or configuration
2490// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2491//
2492//
2493//    // Example sending a request using the GetBuiltinSlotTypesRequest method.
2494//    req, resp := client.GetBuiltinSlotTypesRequest(params)
2495//
2496//    err := req.Send()
2497//    if err == nil { // resp is now filled
2498//        fmt.Println(resp)
2499//    }
2500//
2501// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinSlotTypes
2502func (c *LexModelBuildingService) GetBuiltinSlotTypesRequest(input *GetBuiltinSlotTypesInput) (req *request.Request, output *GetBuiltinSlotTypesOutput) {
2503	op := &request.Operation{
2504		Name:       opGetBuiltinSlotTypes,
2505		HTTPMethod: "GET",
2506		HTTPPath:   "/builtins/slottypes/",
2507		Paginator: &request.Paginator{
2508			InputTokens:     []string{"nextToken"},
2509			OutputTokens:    []string{"nextToken"},
2510			LimitToken:      "maxResults",
2511			TruncationToken: "",
2512		},
2513	}
2514
2515	if input == nil {
2516		input = &GetBuiltinSlotTypesInput{}
2517	}
2518
2519	output = &GetBuiltinSlotTypesOutput{}
2520	req = c.newRequest(op, input, output)
2521	return
2522}
2523
2524// GetBuiltinSlotTypes API operation for Amazon Lex Model Building Service.
2525//
2526// Gets a list of built-in slot types that meet the specified criteria.
2527//
2528// For a list of built-in slot types, see Slot Type Reference (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference)
2529// in the Alexa Skills Kit.
2530//
2531// This operation requires permission for the lex:GetBuiltInSlotTypes action.
2532//
2533// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2534// with awserr.Error's Code and Message methods to get detailed information about
2535// the error.
2536//
2537// See the AWS API reference guide for Amazon Lex Model Building Service's
2538// API operation GetBuiltinSlotTypes for usage and error information.
2539//
2540// Returned Error Types:
2541//   * LimitExceededException
2542//   The request exceeded a limit. Try your request again.
2543//
2544//   * InternalFailureException
2545//   An internal Amazon Lex error occurred. Try your request again.
2546//
2547//   * BadRequestException
2548//   The request is not well formed. For example, a value is invalid or a required
2549//   field is missing. Check the field values, and try again.
2550//
2551// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinSlotTypes
2552func (c *LexModelBuildingService) GetBuiltinSlotTypes(input *GetBuiltinSlotTypesInput) (*GetBuiltinSlotTypesOutput, error) {
2553	req, out := c.GetBuiltinSlotTypesRequest(input)
2554	return out, req.Send()
2555}
2556
2557// GetBuiltinSlotTypesWithContext is the same as GetBuiltinSlotTypes with the addition of
2558// the ability to pass a context and additional request options.
2559//
2560// See GetBuiltinSlotTypes for details on how to use this API operation.
2561//
2562// The context must be non-nil and will be used for request cancellation. If
2563// the context is nil a panic will occur. In the future the SDK may create
2564// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2565// for more information on using Contexts.
2566func (c *LexModelBuildingService) GetBuiltinSlotTypesWithContext(ctx aws.Context, input *GetBuiltinSlotTypesInput, opts ...request.Option) (*GetBuiltinSlotTypesOutput, error) {
2567	req, out := c.GetBuiltinSlotTypesRequest(input)
2568	req.SetContext(ctx)
2569	req.ApplyOptions(opts...)
2570	return out, req.Send()
2571}
2572
2573// GetBuiltinSlotTypesPages iterates over the pages of a GetBuiltinSlotTypes operation,
2574// calling the "fn" function with the response data for each page. To stop
2575// iterating, return false from the fn function.
2576//
2577// See GetBuiltinSlotTypes method for more information on how to use this operation.
2578//
2579// Note: This operation can generate multiple requests to a service.
2580//
2581//    // Example iterating over at most 3 pages of a GetBuiltinSlotTypes operation.
2582//    pageNum := 0
2583//    err := client.GetBuiltinSlotTypesPages(params,
2584//        func(page *lexmodelbuildingservice.GetBuiltinSlotTypesOutput, lastPage bool) bool {
2585//            pageNum++
2586//            fmt.Println(page)
2587//            return pageNum <= 3
2588//        })
2589//
2590func (c *LexModelBuildingService) GetBuiltinSlotTypesPages(input *GetBuiltinSlotTypesInput, fn func(*GetBuiltinSlotTypesOutput, bool) bool) error {
2591	return c.GetBuiltinSlotTypesPagesWithContext(aws.BackgroundContext(), input, fn)
2592}
2593
2594// GetBuiltinSlotTypesPagesWithContext same as GetBuiltinSlotTypesPages except
2595// it takes a Context and allows setting request options on the pages.
2596//
2597// The context must be non-nil and will be used for request cancellation. If
2598// the context is nil a panic will occur. In the future the SDK may create
2599// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2600// for more information on using Contexts.
2601func (c *LexModelBuildingService) GetBuiltinSlotTypesPagesWithContext(ctx aws.Context, input *GetBuiltinSlotTypesInput, fn func(*GetBuiltinSlotTypesOutput, bool) bool, opts ...request.Option) error {
2602	p := request.Pagination{
2603		NewRequest: func() (*request.Request, error) {
2604			var inCpy *GetBuiltinSlotTypesInput
2605			if input != nil {
2606				tmp := *input
2607				inCpy = &tmp
2608			}
2609			req, _ := c.GetBuiltinSlotTypesRequest(inCpy)
2610			req.SetContext(ctx)
2611			req.ApplyOptions(opts...)
2612			return req, nil
2613		},
2614	}
2615
2616	for p.Next() {
2617		if !fn(p.Page().(*GetBuiltinSlotTypesOutput), !p.HasNextPage()) {
2618			break
2619		}
2620	}
2621
2622	return p.Err()
2623}
2624
2625const opGetExport = "GetExport"
2626
2627// GetExportRequest generates a "aws/request.Request" representing the
2628// client's request for the GetExport operation. The "output" return
2629// value will be populated with the request's response once the request completes
2630// successfully.
2631//
2632// Use "Send" method on the returned Request to send the API call to the service.
2633// the "output" return value is not valid until after Send returns without error.
2634//
2635// See GetExport for more information on using the GetExport
2636// API call, and error handling.
2637//
2638// This method is useful when you want to inject custom logic or configuration
2639// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2640//
2641//
2642//    // Example sending a request using the GetExportRequest method.
2643//    req, resp := client.GetExportRequest(params)
2644//
2645//    err := req.Send()
2646//    if err == nil { // resp is now filled
2647//        fmt.Println(resp)
2648//    }
2649//
2650// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetExport
2651func (c *LexModelBuildingService) GetExportRequest(input *GetExportInput) (req *request.Request, output *GetExportOutput) {
2652	op := &request.Operation{
2653		Name:       opGetExport,
2654		HTTPMethod: "GET",
2655		HTTPPath:   "/exports/",
2656	}
2657
2658	if input == nil {
2659		input = &GetExportInput{}
2660	}
2661
2662	output = &GetExportOutput{}
2663	req = c.newRequest(op, input, output)
2664	return
2665}
2666
2667// GetExport API operation for Amazon Lex Model Building Service.
2668//
2669// Exports the contents of a Amazon Lex resource in a specified format.
2670//
2671// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2672// with awserr.Error's Code and Message methods to get detailed information about
2673// the error.
2674//
2675// See the AWS API reference guide for Amazon Lex Model Building Service's
2676// API operation GetExport for usage and error information.
2677//
2678// Returned Error Types:
2679//   * NotFoundException
2680//   The resource specified in the request was not found. Check the resource and
2681//   try again.
2682//
2683//   * LimitExceededException
2684//   The request exceeded a limit. Try your request again.
2685//
2686//   * InternalFailureException
2687//   An internal Amazon Lex error occurred. Try your request again.
2688//
2689//   * BadRequestException
2690//   The request is not well formed. For example, a value is invalid or a required
2691//   field is missing. Check the field values, and try again.
2692//
2693// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetExport
2694func (c *LexModelBuildingService) GetExport(input *GetExportInput) (*GetExportOutput, error) {
2695	req, out := c.GetExportRequest(input)
2696	return out, req.Send()
2697}
2698
2699// GetExportWithContext is the same as GetExport with the addition of
2700// the ability to pass a context and additional request options.
2701//
2702// See GetExport for details on how to use this API operation.
2703//
2704// The context must be non-nil and will be used for request cancellation. If
2705// the context is nil a panic will occur. In the future the SDK may create
2706// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2707// for more information on using Contexts.
2708func (c *LexModelBuildingService) GetExportWithContext(ctx aws.Context, input *GetExportInput, opts ...request.Option) (*GetExportOutput, error) {
2709	req, out := c.GetExportRequest(input)
2710	req.SetContext(ctx)
2711	req.ApplyOptions(opts...)
2712	return out, req.Send()
2713}
2714
2715const opGetImport = "GetImport"
2716
2717// GetImportRequest generates a "aws/request.Request" representing the
2718// client's request for the GetImport operation. The "output" return
2719// value will be populated with the request's response once the request completes
2720// successfully.
2721//
2722// Use "Send" method on the returned Request to send the API call to the service.
2723// the "output" return value is not valid until after Send returns without error.
2724//
2725// See GetImport for more information on using the GetImport
2726// API call, and error handling.
2727//
2728// This method is useful when you want to inject custom logic or configuration
2729// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2730//
2731//
2732//    // Example sending a request using the GetImportRequest method.
2733//    req, resp := client.GetImportRequest(params)
2734//
2735//    err := req.Send()
2736//    if err == nil { // resp is now filled
2737//        fmt.Println(resp)
2738//    }
2739//
2740// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetImport
2741func (c *LexModelBuildingService) GetImportRequest(input *GetImportInput) (req *request.Request, output *GetImportOutput) {
2742	op := &request.Operation{
2743		Name:       opGetImport,
2744		HTTPMethod: "GET",
2745		HTTPPath:   "/imports/{importId}",
2746	}
2747
2748	if input == nil {
2749		input = &GetImportInput{}
2750	}
2751
2752	output = &GetImportOutput{}
2753	req = c.newRequest(op, input, output)
2754	return
2755}
2756
2757// GetImport API operation for Amazon Lex Model Building Service.
2758//
2759// Gets information about an import job started with the StartImport operation.
2760//
2761// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2762// with awserr.Error's Code and Message methods to get detailed information about
2763// the error.
2764//
2765// See the AWS API reference guide for Amazon Lex Model Building Service's
2766// API operation GetImport for usage and error information.
2767//
2768// Returned Error Types:
2769//   * NotFoundException
2770//   The resource specified in the request was not found. Check the resource and
2771//   try again.
2772//
2773//   * LimitExceededException
2774//   The request exceeded a limit. Try your request again.
2775//
2776//   * InternalFailureException
2777//   An internal Amazon Lex error occurred. Try your request again.
2778//
2779//   * BadRequestException
2780//   The request is not well formed. For example, a value is invalid or a required
2781//   field is missing. Check the field values, and try again.
2782//
2783// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetImport
2784func (c *LexModelBuildingService) GetImport(input *GetImportInput) (*GetImportOutput, error) {
2785	req, out := c.GetImportRequest(input)
2786	return out, req.Send()
2787}
2788
2789// GetImportWithContext is the same as GetImport with the addition of
2790// the ability to pass a context and additional request options.
2791//
2792// See GetImport for details on how to use this API operation.
2793//
2794// The context must be non-nil and will be used for request cancellation. If
2795// the context is nil a panic will occur. In the future the SDK may create
2796// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2797// for more information on using Contexts.
2798func (c *LexModelBuildingService) GetImportWithContext(ctx aws.Context, input *GetImportInput, opts ...request.Option) (*GetImportOutput, error) {
2799	req, out := c.GetImportRequest(input)
2800	req.SetContext(ctx)
2801	req.ApplyOptions(opts...)
2802	return out, req.Send()
2803}
2804
2805const opGetIntent = "GetIntent"
2806
2807// GetIntentRequest generates a "aws/request.Request" representing the
2808// client's request for the GetIntent operation. The "output" return
2809// value will be populated with the request's response once the request completes
2810// successfully.
2811//
2812// Use "Send" method on the returned Request to send the API call to the service.
2813// the "output" return value is not valid until after Send returns without error.
2814//
2815// See GetIntent for more information on using the GetIntent
2816// API call, and error handling.
2817//
2818// This method is useful when you want to inject custom logic or configuration
2819// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2820//
2821//
2822//    // Example sending a request using the GetIntentRequest method.
2823//    req, resp := client.GetIntentRequest(params)
2824//
2825//    err := req.Send()
2826//    if err == nil { // resp is now filled
2827//        fmt.Println(resp)
2828//    }
2829//
2830// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntent
2831func (c *LexModelBuildingService) GetIntentRequest(input *GetIntentInput) (req *request.Request, output *GetIntentOutput) {
2832	op := &request.Operation{
2833		Name:       opGetIntent,
2834		HTTPMethod: "GET",
2835		HTTPPath:   "/intents/{name}/versions/{version}",
2836	}
2837
2838	if input == nil {
2839		input = &GetIntentInput{}
2840	}
2841
2842	output = &GetIntentOutput{}
2843	req = c.newRequest(op, input, output)
2844	return
2845}
2846
2847// GetIntent API operation for Amazon Lex Model Building Service.
2848//
2849// Returns information about an intent. In addition to the intent name, you
2850// must specify the intent version.
2851//
2852// This operation requires permissions to perform the lex:GetIntent action.
2853//
2854// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2855// with awserr.Error's Code and Message methods to get detailed information about
2856// the error.
2857//
2858// See the AWS API reference guide for Amazon Lex Model Building Service's
2859// API operation GetIntent for usage and error information.
2860//
2861// Returned Error Types:
2862//   * NotFoundException
2863//   The resource specified in the request was not found. Check the resource and
2864//   try again.
2865//
2866//   * LimitExceededException
2867//   The request exceeded a limit. Try your request again.
2868//
2869//   * InternalFailureException
2870//   An internal Amazon Lex error occurred. Try your request again.
2871//
2872//   * BadRequestException
2873//   The request is not well formed. For example, a value is invalid or a required
2874//   field is missing. Check the field values, and try again.
2875//
2876// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntent
2877func (c *LexModelBuildingService) GetIntent(input *GetIntentInput) (*GetIntentOutput, error) {
2878	req, out := c.GetIntentRequest(input)
2879	return out, req.Send()
2880}
2881
2882// GetIntentWithContext is the same as GetIntent with the addition of
2883// the ability to pass a context and additional request options.
2884//
2885// See GetIntent for details on how to use this API operation.
2886//
2887// The context must be non-nil and will be used for request cancellation. If
2888// the context is nil a panic will occur. In the future the SDK may create
2889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2890// for more information on using Contexts.
2891func (c *LexModelBuildingService) GetIntentWithContext(ctx aws.Context, input *GetIntentInput, opts ...request.Option) (*GetIntentOutput, error) {
2892	req, out := c.GetIntentRequest(input)
2893	req.SetContext(ctx)
2894	req.ApplyOptions(opts...)
2895	return out, req.Send()
2896}
2897
2898const opGetIntentVersions = "GetIntentVersions"
2899
2900// GetIntentVersionsRequest generates a "aws/request.Request" representing the
2901// client's request for the GetIntentVersions operation. The "output" return
2902// value will be populated with the request's response once the request completes
2903// successfully.
2904//
2905// Use "Send" method on the returned Request to send the API call to the service.
2906// the "output" return value is not valid until after Send returns without error.
2907//
2908// See GetIntentVersions for more information on using the GetIntentVersions
2909// API call, and error handling.
2910//
2911// This method is useful when you want to inject custom logic or configuration
2912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2913//
2914//
2915//    // Example sending a request using the GetIntentVersionsRequest method.
2916//    req, resp := client.GetIntentVersionsRequest(params)
2917//
2918//    err := req.Send()
2919//    if err == nil { // resp is now filled
2920//        fmt.Println(resp)
2921//    }
2922//
2923// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntentVersions
2924func (c *LexModelBuildingService) GetIntentVersionsRequest(input *GetIntentVersionsInput) (req *request.Request, output *GetIntentVersionsOutput) {
2925	op := &request.Operation{
2926		Name:       opGetIntentVersions,
2927		HTTPMethod: "GET",
2928		HTTPPath:   "/intents/{name}/versions/",
2929		Paginator: &request.Paginator{
2930			InputTokens:     []string{"nextToken"},
2931			OutputTokens:    []string{"nextToken"},
2932			LimitToken:      "maxResults",
2933			TruncationToken: "",
2934		},
2935	}
2936
2937	if input == nil {
2938		input = &GetIntentVersionsInput{}
2939	}
2940
2941	output = &GetIntentVersionsOutput{}
2942	req = c.newRequest(op, input, output)
2943	return
2944}
2945
2946// GetIntentVersions API operation for Amazon Lex Model Building Service.
2947//
2948// Gets information about all of the versions of an intent.
2949//
2950// The GetIntentVersions operation returns an IntentMetadata object for each
2951// version of an intent. For example, if an intent has three numbered versions,
2952// the GetIntentVersions operation returns four IntentMetadata objects in the
2953// response, one for each numbered version and one for the $LATEST version.
2954//
2955// The GetIntentVersions operation always returns at least one version, the
2956// $LATEST version.
2957//
2958// This operation requires permissions for the lex:GetIntentVersions action.
2959//
2960// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2961// with awserr.Error's Code and Message methods to get detailed information about
2962// the error.
2963//
2964// See the AWS API reference guide for Amazon Lex Model Building Service's
2965// API operation GetIntentVersions for usage and error information.
2966//
2967// Returned Error Types:
2968//   * NotFoundException
2969//   The resource specified in the request was not found. Check the resource and
2970//   try again.
2971//
2972//   * LimitExceededException
2973//   The request exceeded a limit. Try your request again.
2974//
2975//   * InternalFailureException
2976//   An internal Amazon Lex error occurred. Try your request again.
2977//
2978//   * BadRequestException
2979//   The request is not well formed. For example, a value is invalid or a required
2980//   field is missing. Check the field values, and try again.
2981//
2982// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntentVersions
2983func (c *LexModelBuildingService) GetIntentVersions(input *GetIntentVersionsInput) (*GetIntentVersionsOutput, error) {
2984	req, out := c.GetIntentVersionsRequest(input)
2985	return out, req.Send()
2986}
2987
2988// GetIntentVersionsWithContext is the same as GetIntentVersions with the addition of
2989// the ability to pass a context and additional request options.
2990//
2991// See GetIntentVersions for details on how to use this API operation.
2992//
2993// The context must be non-nil and will be used for request cancellation. If
2994// the context is nil a panic will occur. In the future the SDK may create
2995// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2996// for more information on using Contexts.
2997func (c *LexModelBuildingService) GetIntentVersionsWithContext(ctx aws.Context, input *GetIntentVersionsInput, opts ...request.Option) (*GetIntentVersionsOutput, error) {
2998	req, out := c.GetIntentVersionsRequest(input)
2999	req.SetContext(ctx)
3000	req.ApplyOptions(opts...)
3001	return out, req.Send()
3002}
3003
3004// GetIntentVersionsPages iterates over the pages of a GetIntentVersions operation,
3005// calling the "fn" function with the response data for each page. To stop
3006// iterating, return false from the fn function.
3007//
3008// See GetIntentVersions method for more information on how to use this operation.
3009//
3010// Note: This operation can generate multiple requests to a service.
3011//
3012//    // Example iterating over at most 3 pages of a GetIntentVersions operation.
3013//    pageNum := 0
3014//    err := client.GetIntentVersionsPages(params,
3015//        func(page *lexmodelbuildingservice.GetIntentVersionsOutput, lastPage bool) bool {
3016//            pageNum++
3017//            fmt.Println(page)
3018//            return pageNum <= 3
3019//        })
3020//
3021func (c *LexModelBuildingService) GetIntentVersionsPages(input *GetIntentVersionsInput, fn func(*GetIntentVersionsOutput, bool) bool) error {
3022	return c.GetIntentVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
3023}
3024
3025// GetIntentVersionsPagesWithContext same as GetIntentVersionsPages except
3026// it takes a Context and allows setting request options on the pages.
3027//
3028// The context must be non-nil and will be used for request cancellation. If
3029// the context is nil a panic will occur. In the future the SDK may create
3030// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3031// for more information on using Contexts.
3032func (c *LexModelBuildingService) GetIntentVersionsPagesWithContext(ctx aws.Context, input *GetIntentVersionsInput, fn func(*GetIntentVersionsOutput, bool) bool, opts ...request.Option) error {
3033	p := request.Pagination{
3034		NewRequest: func() (*request.Request, error) {
3035			var inCpy *GetIntentVersionsInput
3036			if input != nil {
3037				tmp := *input
3038				inCpy = &tmp
3039			}
3040			req, _ := c.GetIntentVersionsRequest(inCpy)
3041			req.SetContext(ctx)
3042			req.ApplyOptions(opts...)
3043			return req, nil
3044		},
3045	}
3046
3047	for p.Next() {
3048		if !fn(p.Page().(*GetIntentVersionsOutput), !p.HasNextPage()) {
3049			break
3050		}
3051	}
3052
3053	return p.Err()
3054}
3055
3056const opGetIntents = "GetIntents"
3057
3058// GetIntentsRequest generates a "aws/request.Request" representing the
3059// client's request for the GetIntents operation. The "output" return
3060// value will be populated with the request's response once the request completes
3061// successfully.
3062//
3063// Use "Send" method on the returned Request to send the API call to the service.
3064// the "output" return value is not valid until after Send returns without error.
3065//
3066// See GetIntents for more information on using the GetIntents
3067// API call, and error handling.
3068//
3069// This method is useful when you want to inject custom logic or configuration
3070// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3071//
3072//
3073//    // Example sending a request using the GetIntentsRequest method.
3074//    req, resp := client.GetIntentsRequest(params)
3075//
3076//    err := req.Send()
3077//    if err == nil { // resp is now filled
3078//        fmt.Println(resp)
3079//    }
3080//
3081// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntents
3082func (c *LexModelBuildingService) GetIntentsRequest(input *GetIntentsInput) (req *request.Request, output *GetIntentsOutput) {
3083	op := &request.Operation{
3084		Name:       opGetIntents,
3085		HTTPMethod: "GET",
3086		HTTPPath:   "/intents/",
3087		Paginator: &request.Paginator{
3088			InputTokens:     []string{"nextToken"},
3089			OutputTokens:    []string{"nextToken"},
3090			LimitToken:      "maxResults",
3091			TruncationToken: "",
3092		},
3093	}
3094
3095	if input == nil {
3096		input = &GetIntentsInput{}
3097	}
3098
3099	output = &GetIntentsOutput{}
3100	req = c.newRequest(op, input, output)
3101	return
3102}
3103
3104// GetIntents API operation for Amazon Lex Model Building Service.
3105//
3106// Returns intent information as follows:
3107//
3108//    * If you specify the nameContains field, returns the $LATEST version of
3109//    all intents that contain the specified string.
3110//
3111//    * If you don't specify the nameContains field, returns information about
3112//    the $LATEST version of all intents.
3113//
3114// The operation requires permission for the lex:GetIntents action.
3115//
3116// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3117// with awserr.Error's Code and Message methods to get detailed information about
3118// the error.
3119//
3120// See the AWS API reference guide for Amazon Lex Model Building Service's
3121// API operation GetIntents for usage and error information.
3122//
3123// Returned Error Types:
3124//   * NotFoundException
3125//   The resource specified in the request was not found. Check the resource and
3126//   try again.
3127//
3128//   * LimitExceededException
3129//   The request exceeded a limit. Try your request again.
3130//
3131//   * InternalFailureException
3132//   An internal Amazon Lex error occurred. Try your request again.
3133//
3134//   * BadRequestException
3135//   The request is not well formed. For example, a value is invalid or a required
3136//   field is missing. Check the field values, and try again.
3137//
3138// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntents
3139func (c *LexModelBuildingService) GetIntents(input *GetIntentsInput) (*GetIntentsOutput, error) {
3140	req, out := c.GetIntentsRequest(input)
3141	return out, req.Send()
3142}
3143
3144// GetIntentsWithContext is the same as GetIntents with the addition of
3145// the ability to pass a context and additional request options.
3146//
3147// See GetIntents for details on how to use this API operation.
3148//
3149// The context must be non-nil and will be used for request cancellation. If
3150// the context is nil a panic will occur. In the future the SDK may create
3151// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3152// for more information on using Contexts.
3153func (c *LexModelBuildingService) GetIntentsWithContext(ctx aws.Context, input *GetIntentsInput, opts ...request.Option) (*GetIntentsOutput, error) {
3154	req, out := c.GetIntentsRequest(input)
3155	req.SetContext(ctx)
3156	req.ApplyOptions(opts...)
3157	return out, req.Send()
3158}
3159
3160// GetIntentsPages iterates over the pages of a GetIntents operation,
3161// calling the "fn" function with the response data for each page. To stop
3162// iterating, return false from the fn function.
3163//
3164// See GetIntents method for more information on how to use this operation.
3165//
3166// Note: This operation can generate multiple requests to a service.
3167//
3168//    // Example iterating over at most 3 pages of a GetIntents operation.
3169//    pageNum := 0
3170//    err := client.GetIntentsPages(params,
3171//        func(page *lexmodelbuildingservice.GetIntentsOutput, lastPage bool) bool {
3172//            pageNum++
3173//            fmt.Println(page)
3174//            return pageNum <= 3
3175//        })
3176//
3177func (c *LexModelBuildingService) GetIntentsPages(input *GetIntentsInput, fn func(*GetIntentsOutput, bool) bool) error {
3178	return c.GetIntentsPagesWithContext(aws.BackgroundContext(), input, fn)
3179}
3180
3181// GetIntentsPagesWithContext same as GetIntentsPages except
3182// it takes a Context and allows setting request options on the pages.
3183//
3184// The context must be non-nil and will be used for request cancellation. If
3185// the context is nil a panic will occur. In the future the SDK may create
3186// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3187// for more information on using Contexts.
3188func (c *LexModelBuildingService) GetIntentsPagesWithContext(ctx aws.Context, input *GetIntentsInput, fn func(*GetIntentsOutput, bool) bool, opts ...request.Option) error {
3189	p := request.Pagination{
3190		NewRequest: func() (*request.Request, error) {
3191			var inCpy *GetIntentsInput
3192			if input != nil {
3193				tmp := *input
3194				inCpy = &tmp
3195			}
3196			req, _ := c.GetIntentsRequest(inCpy)
3197			req.SetContext(ctx)
3198			req.ApplyOptions(opts...)
3199			return req, nil
3200		},
3201	}
3202
3203	for p.Next() {
3204		if !fn(p.Page().(*GetIntentsOutput), !p.HasNextPage()) {
3205			break
3206		}
3207	}
3208
3209	return p.Err()
3210}
3211
3212const opGetMigration = "GetMigration"
3213
3214// GetMigrationRequest generates a "aws/request.Request" representing the
3215// client's request for the GetMigration operation. The "output" return
3216// value will be populated with the request's response once the request completes
3217// successfully.
3218//
3219// Use "Send" method on the returned Request to send the API call to the service.
3220// the "output" return value is not valid until after Send returns without error.
3221//
3222// See GetMigration for more information on using the GetMigration
3223// API call, and error handling.
3224//
3225// This method is useful when you want to inject custom logic or configuration
3226// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3227//
3228//
3229//    // Example sending a request using the GetMigrationRequest method.
3230//    req, resp := client.GetMigrationRequest(params)
3231//
3232//    err := req.Send()
3233//    if err == nil { // resp is now filled
3234//        fmt.Println(resp)
3235//    }
3236//
3237// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetMigration
3238func (c *LexModelBuildingService) GetMigrationRequest(input *GetMigrationInput) (req *request.Request, output *GetMigrationOutput) {
3239	op := &request.Operation{
3240		Name:       opGetMigration,
3241		HTTPMethod: "GET",
3242		HTTPPath:   "/migrations/{migrationId}",
3243	}
3244
3245	if input == nil {
3246		input = &GetMigrationInput{}
3247	}
3248
3249	output = &GetMigrationOutput{}
3250	req = c.newRequest(op, input, output)
3251	return
3252}
3253
3254// GetMigration API operation for Amazon Lex Model Building Service.
3255//
3256// Provides details about an ongoing or complete migration from an Amazon Lex
3257// V1 bot to an Amazon Lex V2 bot. Use this operation to view the migration
3258// alerts and warnings related to the migration.
3259//
3260// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3261// with awserr.Error's Code and Message methods to get detailed information about
3262// the error.
3263//
3264// See the AWS API reference guide for Amazon Lex Model Building Service's
3265// API operation GetMigration for usage and error information.
3266//
3267// Returned Error Types:
3268//   * LimitExceededException
3269//   The request exceeded a limit. Try your request again.
3270//
3271//   * InternalFailureException
3272//   An internal Amazon Lex error occurred. Try your request again.
3273//
3274//   * BadRequestException
3275//   The request is not well formed. For example, a value is invalid or a required
3276//   field is missing. Check the field values, and try again.
3277//
3278//   * NotFoundException
3279//   The resource specified in the request was not found. Check the resource and
3280//   try again.
3281//
3282// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetMigration
3283func (c *LexModelBuildingService) GetMigration(input *GetMigrationInput) (*GetMigrationOutput, error) {
3284	req, out := c.GetMigrationRequest(input)
3285	return out, req.Send()
3286}
3287
3288// GetMigrationWithContext is the same as GetMigration with the addition of
3289// the ability to pass a context and additional request options.
3290//
3291// See GetMigration for details on how to use this API operation.
3292//
3293// The context must be non-nil and will be used for request cancellation. If
3294// the context is nil a panic will occur. In the future the SDK may create
3295// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3296// for more information on using Contexts.
3297func (c *LexModelBuildingService) GetMigrationWithContext(ctx aws.Context, input *GetMigrationInput, opts ...request.Option) (*GetMigrationOutput, error) {
3298	req, out := c.GetMigrationRequest(input)
3299	req.SetContext(ctx)
3300	req.ApplyOptions(opts...)
3301	return out, req.Send()
3302}
3303
3304const opGetMigrations = "GetMigrations"
3305
3306// GetMigrationsRequest generates a "aws/request.Request" representing the
3307// client's request for the GetMigrations operation. The "output" return
3308// value will be populated with the request's response once the request completes
3309// successfully.
3310//
3311// Use "Send" method on the returned Request to send the API call to the service.
3312// the "output" return value is not valid until after Send returns without error.
3313//
3314// See GetMigrations for more information on using the GetMigrations
3315// API call, and error handling.
3316//
3317// This method is useful when you want to inject custom logic or configuration
3318// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3319//
3320//
3321//    // Example sending a request using the GetMigrationsRequest method.
3322//    req, resp := client.GetMigrationsRequest(params)
3323//
3324//    err := req.Send()
3325//    if err == nil { // resp is now filled
3326//        fmt.Println(resp)
3327//    }
3328//
3329// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetMigrations
3330func (c *LexModelBuildingService) GetMigrationsRequest(input *GetMigrationsInput) (req *request.Request, output *GetMigrationsOutput) {
3331	op := &request.Operation{
3332		Name:       opGetMigrations,
3333		HTTPMethod: "GET",
3334		HTTPPath:   "/migrations",
3335		Paginator: &request.Paginator{
3336			InputTokens:     []string{"nextToken"},
3337			OutputTokens:    []string{"nextToken"},
3338			LimitToken:      "maxResults",
3339			TruncationToken: "",
3340		},
3341	}
3342
3343	if input == nil {
3344		input = &GetMigrationsInput{}
3345	}
3346
3347	output = &GetMigrationsOutput{}
3348	req = c.newRequest(op, input, output)
3349	return
3350}
3351
3352// GetMigrations API operation for Amazon Lex Model Building Service.
3353//
3354// Gets a list of migrations between Amazon Lex V1 and Amazon Lex V2.
3355//
3356// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3357// with awserr.Error's Code and Message methods to get detailed information about
3358// the error.
3359//
3360// See the AWS API reference guide for Amazon Lex Model Building Service's
3361// API operation GetMigrations for usage and error information.
3362//
3363// Returned Error Types:
3364//   * LimitExceededException
3365//   The request exceeded a limit. Try your request again.
3366//
3367//   * InternalFailureException
3368//   An internal Amazon Lex error occurred. Try your request again.
3369//
3370//   * BadRequestException
3371//   The request is not well formed. For example, a value is invalid or a required
3372//   field is missing. Check the field values, and try again.
3373//
3374// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetMigrations
3375func (c *LexModelBuildingService) GetMigrations(input *GetMigrationsInput) (*GetMigrationsOutput, error) {
3376	req, out := c.GetMigrationsRequest(input)
3377	return out, req.Send()
3378}
3379
3380// GetMigrationsWithContext is the same as GetMigrations with the addition of
3381// the ability to pass a context and additional request options.
3382//
3383// See GetMigrations for details on how to use this API operation.
3384//
3385// The context must be non-nil and will be used for request cancellation. If
3386// the context is nil a panic will occur. In the future the SDK may create
3387// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3388// for more information on using Contexts.
3389func (c *LexModelBuildingService) GetMigrationsWithContext(ctx aws.Context, input *GetMigrationsInput, opts ...request.Option) (*GetMigrationsOutput, error) {
3390	req, out := c.GetMigrationsRequest(input)
3391	req.SetContext(ctx)
3392	req.ApplyOptions(opts...)
3393	return out, req.Send()
3394}
3395
3396// GetMigrationsPages iterates over the pages of a GetMigrations operation,
3397// calling the "fn" function with the response data for each page. To stop
3398// iterating, return false from the fn function.
3399//
3400// See GetMigrations method for more information on how to use this operation.
3401//
3402// Note: This operation can generate multiple requests to a service.
3403//
3404//    // Example iterating over at most 3 pages of a GetMigrations operation.
3405//    pageNum := 0
3406//    err := client.GetMigrationsPages(params,
3407//        func(page *lexmodelbuildingservice.GetMigrationsOutput, lastPage bool) bool {
3408//            pageNum++
3409//            fmt.Println(page)
3410//            return pageNum <= 3
3411//        })
3412//
3413func (c *LexModelBuildingService) GetMigrationsPages(input *GetMigrationsInput, fn func(*GetMigrationsOutput, bool) bool) error {
3414	return c.GetMigrationsPagesWithContext(aws.BackgroundContext(), input, fn)
3415}
3416
3417// GetMigrationsPagesWithContext same as GetMigrationsPages except
3418// it takes a Context and allows setting request options on the pages.
3419//
3420// The context must be non-nil and will be used for request cancellation. If
3421// the context is nil a panic will occur. In the future the SDK may create
3422// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3423// for more information on using Contexts.
3424func (c *LexModelBuildingService) GetMigrationsPagesWithContext(ctx aws.Context, input *GetMigrationsInput, fn func(*GetMigrationsOutput, bool) bool, opts ...request.Option) error {
3425	p := request.Pagination{
3426		NewRequest: func() (*request.Request, error) {
3427			var inCpy *GetMigrationsInput
3428			if input != nil {
3429				tmp := *input
3430				inCpy = &tmp
3431			}
3432			req, _ := c.GetMigrationsRequest(inCpy)
3433			req.SetContext(ctx)
3434			req.ApplyOptions(opts...)
3435			return req, nil
3436		},
3437	}
3438
3439	for p.Next() {
3440		if !fn(p.Page().(*GetMigrationsOutput), !p.HasNextPage()) {
3441			break
3442		}
3443	}
3444
3445	return p.Err()
3446}
3447
3448const opGetSlotType = "GetSlotType"
3449
3450// GetSlotTypeRequest generates a "aws/request.Request" representing the
3451// client's request for the GetSlotType operation. The "output" return
3452// value will be populated with the request's response once the request completes
3453// successfully.
3454//
3455// Use "Send" method on the returned Request to send the API call to the service.
3456// the "output" return value is not valid until after Send returns without error.
3457//
3458// See GetSlotType for more information on using the GetSlotType
3459// API call, and error handling.
3460//
3461// This method is useful when you want to inject custom logic or configuration
3462// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3463//
3464//
3465//    // Example sending a request using the GetSlotTypeRequest method.
3466//    req, resp := client.GetSlotTypeRequest(params)
3467//
3468//    err := req.Send()
3469//    if err == nil { // resp is now filled
3470//        fmt.Println(resp)
3471//    }
3472//
3473// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotType
3474func (c *LexModelBuildingService) GetSlotTypeRequest(input *GetSlotTypeInput) (req *request.Request, output *GetSlotTypeOutput) {
3475	op := &request.Operation{
3476		Name:       opGetSlotType,
3477		HTTPMethod: "GET",
3478		HTTPPath:   "/slottypes/{name}/versions/{version}",
3479	}
3480
3481	if input == nil {
3482		input = &GetSlotTypeInput{}
3483	}
3484
3485	output = &GetSlotTypeOutput{}
3486	req = c.newRequest(op, input, output)
3487	return
3488}
3489
3490// GetSlotType API operation for Amazon Lex Model Building Service.
3491//
3492// Returns information about a specific version of a slot type. In addition
3493// to specifying the slot type name, you must specify the slot type version.
3494//
3495// This operation requires permissions for the lex:GetSlotType action.
3496//
3497// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3498// with awserr.Error's Code and Message methods to get detailed information about
3499// the error.
3500//
3501// See the AWS API reference guide for Amazon Lex Model Building Service's
3502// API operation GetSlotType for usage and error information.
3503//
3504// Returned Error Types:
3505//   * NotFoundException
3506//   The resource specified in the request was not found. Check the resource and
3507//   try again.
3508//
3509//   * LimitExceededException
3510//   The request exceeded a limit. Try your request again.
3511//
3512//   * InternalFailureException
3513//   An internal Amazon Lex error occurred. Try your request again.
3514//
3515//   * BadRequestException
3516//   The request is not well formed. For example, a value is invalid or a required
3517//   field is missing. Check the field values, and try again.
3518//
3519// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotType
3520func (c *LexModelBuildingService) GetSlotType(input *GetSlotTypeInput) (*GetSlotTypeOutput, error) {
3521	req, out := c.GetSlotTypeRequest(input)
3522	return out, req.Send()
3523}
3524
3525// GetSlotTypeWithContext is the same as GetSlotType with the addition of
3526// the ability to pass a context and additional request options.
3527//
3528// See GetSlotType for details on how to use this API operation.
3529//
3530// The context must be non-nil and will be used for request cancellation. If
3531// the context is nil a panic will occur. In the future the SDK may create
3532// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3533// for more information on using Contexts.
3534func (c *LexModelBuildingService) GetSlotTypeWithContext(ctx aws.Context, input *GetSlotTypeInput, opts ...request.Option) (*GetSlotTypeOutput, error) {
3535	req, out := c.GetSlotTypeRequest(input)
3536	req.SetContext(ctx)
3537	req.ApplyOptions(opts...)
3538	return out, req.Send()
3539}
3540
3541const opGetSlotTypeVersions = "GetSlotTypeVersions"
3542
3543// GetSlotTypeVersionsRequest generates a "aws/request.Request" representing the
3544// client's request for the GetSlotTypeVersions operation. The "output" return
3545// value will be populated with the request's response once the request completes
3546// successfully.
3547//
3548// Use "Send" method on the returned Request to send the API call to the service.
3549// the "output" return value is not valid until after Send returns without error.
3550//
3551// See GetSlotTypeVersions for more information on using the GetSlotTypeVersions
3552// API call, and error handling.
3553//
3554// This method is useful when you want to inject custom logic or configuration
3555// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3556//
3557//
3558//    // Example sending a request using the GetSlotTypeVersionsRequest method.
3559//    req, resp := client.GetSlotTypeVersionsRequest(params)
3560//
3561//    err := req.Send()
3562//    if err == nil { // resp is now filled
3563//        fmt.Println(resp)
3564//    }
3565//
3566// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypeVersions
3567func (c *LexModelBuildingService) GetSlotTypeVersionsRequest(input *GetSlotTypeVersionsInput) (req *request.Request, output *GetSlotTypeVersionsOutput) {
3568	op := &request.Operation{
3569		Name:       opGetSlotTypeVersions,
3570		HTTPMethod: "GET",
3571		HTTPPath:   "/slottypes/{name}/versions/",
3572		Paginator: &request.Paginator{
3573			InputTokens:     []string{"nextToken"},
3574			OutputTokens:    []string{"nextToken"},
3575			LimitToken:      "maxResults",
3576			TruncationToken: "",
3577		},
3578	}
3579
3580	if input == nil {
3581		input = &GetSlotTypeVersionsInput{}
3582	}
3583
3584	output = &GetSlotTypeVersionsOutput{}
3585	req = c.newRequest(op, input, output)
3586	return
3587}
3588
3589// GetSlotTypeVersions API operation for Amazon Lex Model Building Service.
3590//
3591// Gets information about all versions of a slot type.
3592//
3593// The GetSlotTypeVersions operation returns a SlotTypeMetadata object for each
3594// version of a slot type. For example, if a slot type has three numbered versions,
3595// the GetSlotTypeVersions operation returns four SlotTypeMetadata objects in
3596// the response, one for each numbered version and one for the $LATEST version.
3597//
3598// The GetSlotTypeVersions operation always returns at least one version, the
3599// $LATEST version.
3600//
3601// This operation requires permissions for the lex:GetSlotTypeVersions action.
3602//
3603// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3604// with awserr.Error's Code and Message methods to get detailed information about
3605// the error.
3606//
3607// See the AWS API reference guide for Amazon Lex Model Building Service's
3608// API operation GetSlotTypeVersions for usage and error information.
3609//
3610// Returned Error Types:
3611//   * NotFoundException
3612//   The resource specified in the request was not found. Check the resource and
3613//   try again.
3614//
3615//   * LimitExceededException
3616//   The request exceeded a limit. Try your request again.
3617//
3618//   * InternalFailureException
3619//   An internal Amazon Lex error occurred. Try your request again.
3620//
3621//   * BadRequestException
3622//   The request is not well formed. For example, a value is invalid or a required
3623//   field is missing. Check the field values, and try again.
3624//
3625// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypeVersions
3626func (c *LexModelBuildingService) GetSlotTypeVersions(input *GetSlotTypeVersionsInput) (*GetSlotTypeVersionsOutput, error) {
3627	req, out := c.GetSlotTypeVersionsRequest(input)
3628	return out, req.Send()
3629}
3630
3631// GetSlotTypeVersionsWithContext is the same as GetSlotTypeVersions with the addition of
3632// the ability to pass a context and additional request options.
3633//
3634// See GetSlotTypeVersions for details on how to use this API operation.
3635//
3636// The context must be non-nil and will be used for request cancellation. If
3637// the context is nil a panic will occur. In the future the SDK may create
3638// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3639// for more information on using Contexts.
3640func (c *LexModelBuildingService) GetSlotTypeVersionsWithContext(ctx aws.Context, input *GetSlotTypeVersionsInput, opts ...request.Option) (*GetSlotTypeVersionsOutput, error) {
3641	req, out := c.GetSlotTypeVersionsRequest(input)
3642	req.SetContext(ctx)
3643	req.ApplyOptions(opts...)
3644	return out, req.Send()
3645}
3646
3647// GetSlotTypeVersionsPages iterates over the pages of a GetSlotTypeVersions operation,
3648// calling the "fn" function with the response data for each page. To stop
3649// iterating, return false from the fn function.
3650//
3651// See GetSlotTypeVersions method for more information on how to use this operation.
3652//
3653// Note: This operation can generate multiple requests to a service.
3654//
3655//    // Example iterating over at most 3 pages of a GetSlotTypeVersions operation.
3656//    pageNum := 0
3657//    err := client.GetSlotTypeVersionsPages(params,
3658//        func(page *lexmodelbuildingservice.GetSlotTypeVersionsOutput, lastPage bool) bool {
3659//            pageNum++
3660//            fmt.Println(page)
3661//            return pageNum <= 3
3662//        })
3663//
3664func (c *LexModelBuildingService) GetSlotTypeVersionsPages(input *GetSlotTypeVersionsInput, fn func(*GetSlotTypeVersionsOutput, bool) bool) error {
3665	return c.GetSlotTypeVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
3666}
3667
3668// GetSlotTypeVersionsPagesWithContext same as GetSlotTypeVersionsPages except
3669// it takes a Context and allows setting request options on the pages.
3670//
3671// The context must be non-nil and will be used for request cancellation. If
3672// the context is nil a panic will occur. In the future the SDK may create
3673// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3674// for more information on using Contexts.
3675func (c *LexModelBuildingService) GetSlotTypeVersionsPagesWithContext(ctx aws.Context, input *GetSlotTypeVersionsInput, fn func(*GetSlotTypeVersionsOutput, bool) bool, opts ...request.Option) error {
3676	p := request.Pagination{
3677		NewRequest: func() (*request.Request, error) {
3678			var inCpy *GetSlotTypeVersionsInput
3679			if input != nil {
3680				tmp := *input
3681				inCpy = &tmp
3682			}
3683			req, _ := c.GetSlotTypeVersionsRequest(inCpy)
3684			req.SetContext(ctx)
3685			req.ApplyOptions(opts...)
3686			return req, nil
3687		},
3688	}
3689
3690	for p.Next() {
3691		if !fn(p.Page().(*GetSlotTypeVersionsOutput), !p.HasNextPage()) {
3692			break
3693		}
3694	}
3695
3696	return p.Err()
3697}
3698
3699const opGetSlotTypes = "GetSlotTypes"
3700
3701// GetSlotTypesRequest generates a "aws/request.Request" representing the
3702// client's request for the GetSlotTypes operation. The "output" return
3703// value will be populated with the request's response once the request completes
3704// successfully.
3705//
3706// Use "Send" method on the returned Request to send the API call to the service.
3707// the "output" return value is not valid until after Send returns without error.
3708//
3709// See GetSlotTypes for more information on using the GetSlotTypes
3710// API call, and error handling.
3711//
3712// This method is useful when you want to inject custom logic or configuration
3713// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3714//
3715//
3716//    // Example sending a request using the GetSlotTypesRequest method.
3717//    req, resp := client.GetSlotTypesRequest(params)
3718//
3719//    err := req.Send()
3720//    if err == nil { // resp is now filled
3721//        fmt.Println(resp)
3722//    }
3723//
3724// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypes
3725func (c *LexModelBuildingService) GetSlotTypesRequest(input *GetSlotTypesInput) (req *request.Request, output *GetSlotTypesOutput) {
3726	op := &request.Operation{
3727		Name:       opGetSlotTypes,
3728		HTTPMethod: "GET",
3729		HTTPPath:   "/slottypes/",
3730		Paginator: &request.Paginator{
3731			InputTokens:     []string{"nextToken"},
3732			OutputTokens:    []string{"nextToken"},
3733			LimitToken:      "maxResults",
3734			TruncationToken: "",
3735		},
3736	}
3737
3738	if input == nil {
3739		input = &GetSlotTypesInput{}
3740	}
3741
3742	output = &GetSlotTypesOutput{}
3743	req = c.newRequest(op, input, output)
3744	return
3745}
3746
3747// GetSlotTypes API operation for Amazon Lex Model Building Service.
3748//
3749// Returns slot type information as follows:
3750//
3751//    * If you specify the nameContains field, returns the $LATEST version of
3752//    all slot types that contain the specified string.
3753//
3754//    * If you don't specify the nameContains field, returns information about
3755//    the $LATEST version of all slot types.
3756//
3757// The operation requires permission for the lex:GetSlotTypes action.
3758//
3759// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3760// with awserr.Error's Code and Message methods to get detailed information about
3761// the error.
3762//
3763// See the AWS API reference guide for Amazon Lex Model Building Service's
3764// API operation GetSlotTypes for usage and error information.
3765//
3766// Returned Error Types:
3767//   * NotFoundException
3768//   The resource specified in the request was not found. Check the resource and
3769//   try again.
3770//
3771//   * LimitExceededException
3772//   The request exceeded a limit. Try your request again.
3773//
3774//   * InternalFailureException
3775//   An internal Amazon Lex error occurred. Try your request again.
3776//
3777//   * BadRequestException
3778//   The request is not well formed. For example, a value is invalid or a required
3779//   field is missing. Check the field values, and try again.
3780//
3781// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypes
3782func (c *LexModelBuildingService) GetSlotTypes(input *GetSlotTypesInput) (*GetSlotTypesOutput, error) {
3783	req, out := c.GetSlotTypesRequest(input)
3784	return out, req.Send()
3785}
3786
3787// GetSlotTypesWithContext is the same as GetSlotTypes with the addition of
3788// the ability to pass a context and additional request options.
3789//
3790// See GetSlotTypes for details on how to use this API operation.
3791//
3792// The context must be non-nil and will be used for request cancellation. If
3793// the context is nil a panic will occur. In the future the SDK may create
3794// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3795// for more information on using Contexts.
3796func (c *LexModelBuildingService) GetSlotTypesWithContext(ctx aws.Context, input *GetSlotTypesInput, opts ...request.Option) (*GetSlotTypesOutput, error) {
3797	req, out := c.GetSlotTypesRequest(input)
3798	req.SetContext(ctx)
3799	req.ApplyOptions(opts...)
3800	return out, req.Send()
3801}
3802
3803// GetSlotTypesPages iterates over the pages of a GetSlotTypes operation,
3804// calling the "fn" function with the response data for each page. To stop
3805// iterating, return false from the fn function.
3806//
3807// See GetSlotTypes method for more information on how to use this operation.
3808//
3809// Note: This operation can generate multiple requests to a service.
3810//
3811//    // Example iterating over at most 3 pages of a GetSlotTypes operation.
3812//    pageNum := 0
3813//    err := client.GetSlotTypesPages(params,
3814//        func(page *lexmodelbuildingservice.GetSlotTypesOutput, lastPage bool) bool {
3815//            pageNum++
3816//            fmt.Println(page)
3817//            return pageNum <= 3
3818//        })
3819//
3820func (c *LexModelBuildingService) GetSlotTypesPages(input *GetSlotTypesInput, fn func(*GetSlotTypesOutput, bool) bool) error {
3821	return c.GetSlotTypesPagesWithContext(aws.BackgroundContext(), input, fn)
3822}
3823
3824// GetSlotTypesPagesWithContext same as GetSlotTypesPages except
3825// it takes a Context and allows setting request options on the pages.
3826//
3827// The context must be non-nil and will be used for request cancellation. If
3828// the context is nil a panic will occur. In the future the SDK may create
3829// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3830// for more information on using Contexts.
3831func (c *LexModelBuildingService) GetSlotTypesPagesWithContext(ctx aws.Context, input *GetSlotTypesInput, fn func(*GetSlotTypesOutput, bool) bool, opts ...request.Option) error {
3832	p := request.Pagination{
3833		NewRequest: func() (*request.Request, error) {
3834			var inCpy *GetSlotTypesInput
3835			if input != nil {
3836				tmp := *input
3837				inCpy = &tmp
3838			}
3839			req, _ := c.GetSlotTypesRequest(inCpy)
3840			req.SetContext(ctx)
3841			req.ApplyOptions(opts...)
3842			return req, nil
3843		},
3844	}
3845
3846	for p.Next() {
3847		if !fn(p.Page().(*GetSlotTypesOutput), !p.HasNextPage()) {
3848			break
3849		}
3850	}
3851
3852	return p.Err()
3853}
3854
3855const opGetUtterancesView = "GetUtterancesView"
3856
3857// GetUtterancesViewRequest generates a "aws/request.Request" representing the
3858// client's request for the GetUtterancesView operation. The "output" return
3859// value will be populated with the request's response once the request completes
3860// successfully.
3861//
3862// Use "Send" method on the returned Request to send the API call to the service.
3863// the "output" return value is not valid until after Send returns without error.
3864//
3865// See GetUtterancesView for more information on using the GetUtterancesView
3866// API call, and error handling.
3867//
3868// This method is useful when you want to inject custom logic or configuration
3869// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3870//
3871//
3872//    // Example sending a request using the GetUtterancesViewRequest method.
3873//    req, resp := client.GetUtterancesViewRequest(params)
3874//
3875//    err := req.Send()
3876//    if err == nil { // resp is now filled
3877//        fmt.Println(resp)
3878//    }
3879//
3880// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetUtterancesView
3881func (c *LexModelBuildingService) GetUtterancesViewRequest(input *GetUtterancesViewInput) (req *request.Request, output *GetUtterancesViewOutput) {
3882	op := &request.Operation{
3883		Name:       opGetUtterancesView,
3884		HTTPMethod: "GET",
3885		HTTPPath:   "/bots/{botname}/utterances?view=aggregation",
3886	}
3887
3888	if input == nil {
3889		input = &GetUtterancesViewInput{}
3890	}
3891
3892	output = &GetUtterancesViewOutput{}
3893	req = c.newRequest(op, input, output)
3894	return
3895}
3896
3897// GetUtterancesView API operation for Amazon Lex Model Building Service.
3898//
3899// Use the GetUtterancesView operation to get information about the utterances
3900// that your users have made to your bot. You can use this list to tune the
3901// utterances that your bot responds to.
3902//
3903// For example, say that you have created a bot to order flowers. After your
3904// users have used your bot for a while, use the GetUtterancesView operation
3905// to see the requests that they have made and whether they have been successful.
3906// You might find that the utterance "I want flowers" is not being recognized.
3907// You could add this utterance to the OrderFlowers intent so that your bot
3908// recognizes that utterance.
3909//
3910// After you publish a new version of a bot, you can get information about the
3911// old version and the new so that you can compare the performance across the
3912// two versions.
3913//
3914// Utterance statistics are generated once a day. Data is available for the
3915// last 15 days. You can request information for up to 5 versions of your bot
3916// in each request. Amazon Lex returns the most frequent utterances received
3917// by the bot in the last 15 days. The response contains information about a
3918// maximum of 100 utterances for each version.
3919//
3920// If you set childDirected field to true when you created your bot, if you
3921// are using slot obfuscation with one or more slots, or if you opted out of
3922// participating in improving Amazon Lex, utterances are not available.
3923//
3924// This operation requires permissions for the lex:GetUtterancesView action.
3925//
3926// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3927// with awserr.Error's Code and Message methods to get detailed information about
3928// the error.
3929//
3930// See the AWS API reference guide for Amazon Lex Model Building Service's
3931// API operation GetUtterancesView for usage and error information.
3932//
3933// Returned Error Types:
3934//   * LimitExceededException
3935//   The request exceeded a limit. Try your request again.
3936//
3937//   * InternalFailureException
3938//   An internal Amazon Lex error occurred. Try your request again.
3939//
3940//   * BadRequestException
3941//   The request is not well formed. For example, a value is invalid or a required
3942//   field is missing. Check the field values, and try again.
3943//
3944// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetUtterancesView
3945func (c *LexModelBuildingService) GetUtterancesView(input *GetUtterancesViewInput) (*GetUtterancesViewOutput, error) {
3946	req, out := c.GetUtterancesViewRequest(input)
3947	return out, req.Send()
3948}
3949
3950// GetUtterancesViewWithContext is the same as GetUtterancesView with the addition of
3951// the ability to pass a context and additional request options.
3952//
3953// See GetUtterancesView for details on how to use this API operation.
3954//
3955// The context must be non-nil and will be used for request cancellation. If
3956// the context is nil a panic will occur. In the future the SDK may create
3957// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3958// for more information on using Contexts.
3959func (c *LexModelBuildingService) GetUtterancesViewWithContext(ctx aws.Context, input *GetUtterancesViewInput, opts ...request.Option) (*GetUtterancesViewOutput, error) {
3960	req, out := c.GetUtterancesViewRequest(input)
3961	req.SetContext(ctx)
3962	req.ApplyOptions(opts...)
3963	return out, req.Send()
3964}
3965
3966const opListTagsForResource = "ListTagsForResource"
3967
3968// ListTagsForResourceRequest generates a "aws/request.Request" representing the
3969// client's request for the ListTagsForResource operation. The "output" return
3970// value will be populated with the request's response once the request completes
3971// successfully.
3972//
3973// Use "Send" method on the returned Request to send the API call to the service.
3974// the "output" return value is not valid until after Send returns without error.
3975//
3976// See ListTagsForResource for more information on using the ListTagsForResource
3977// API call, and error handling.
3978//
3979// This method is useful when you want to inject custom logic or configuration
3980// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3981//
3982//
3983//    // Example sending a request using the ListTagsForResourceRequest method.
3984//    req, resp := client.ListTagsForResourceRequest(params)
3985//
3986//    err := req.Send()
3987//    if err == nil { // resp is now filled
3988//        fmt.Println(resp)
3989//    }
3990//
3991// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/ListTagsForResource
3992func (c *LexModelBuildingService) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
3993	op := &request.Operation{
3994		Name:       opListTagsForResource,
3995		HTTPMethod: "GET",
3996		HTTPPath:   "/tags/{resourceArn}",
3997	}
3998
3999	if input == nil {
4000		input = &ListTagsForResourceInput{}
4001	}
4002
4003	output = &ListTagsForResourceOutput{}
4004	req = c.newRequest(op, input, output)
4005	return
4006}
4007
4008// ListTagsForResource API operation for Amazon Lex Model Building Service.
4009//
4010// Gets a list of tags associated with the specified resource. Only bots, bot
4011// aliases, and bot channels can have tags associated with them.
4012//
4013// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4014// with awserr.Error's Code and Message methods to get detailed information about
4015// the error.
4016//
4017// See the AWS API reference guide for Amazon Lex Model Building Service's
4018// API operation ListTagsForResource for usage and error information.
4019//
4020// Returned Error Types:
4021//   * NotFoundException
4022//   The resource specified in the request was not found. Check the resource and
4023//   try again.
4024//
4025//   * BadRequestException
4026//   The request is not well formed. For example, a value is invalid or a required
4027//   field is missing. Check the field values, and try again.
4028//
4029//   * InternalFailureException
4030//   An internal Amazon Lex error occurred. Try your request again.
4031//
4032//   * LimitExceededException
4033//   The request exceeded a limit. Try your request again.
4034//
4035// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/ListTagsForResource
4036func (c *LexModelBuildingService) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
4037	req, out := c.ListTagsForResourceRequest(input)
4038	return out, req.Send()
4039}
4040
4041// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
4042// the ability to pass a context and additional request options.
4043//
4044// See ListTagsForResource for details on how to use this API operation.
4045//
4046// The context must be non-nil and will be used for request cancellation. If
4047// the context is nil a panic will occur. In the future the SDK may create
4048// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4049// for more information on using Contexts.
4050func (c *LexModelBuildingService) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
4051	req, out := c.ListTagsForResourceRequest(input)
4052	req.SetContext(ctx)
4053	req.ApplyOptions(opts...)
4054	return out, req.Send()
4055}
4056
4057const opPutBot = "PutBot"
4058
4059// PutBotRequest generates a "aws/request.Request" representing the
4060// client's request for the PutBot operation. The "output" return
4061// value will be populated with the request's response once the request completes
4062// successfully.
4063//
4064// Use "Send" method on the returned Request to send the API call to the service.
4065// the "output" return value is not valid until after Send returns without error.
4066//
4067// See PutBot for more information on using the PutBot
4068// API call, and error handling.
4069//
4070// This method is useful when you want to inject custom logic or configuration
4071// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4072//
4073//
4074//    // Example sending a request using the PutBotRequest method.
4075//    req, resp := client.PutBotRequest(params)
4076//
4077//    err := req.Send()
4078//    if err == nil { // resp is now filled
4079//        fmt.Println(resp)
4080//    }
4081//
4082// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBot
4083func (c *LexModelBuildingService) PutBotRequest(input *PutBotInput) (req *request.Request, output *PutBotOutput) {
4084	op := &request.Operation{
4085		Name:       opPutBot,
4086		HTTPMethod: "PUT",
4087		HTTPPath:   "/bots/{name}/versions/$LATEST",
4088	}
4089
4090	if input == nil {
4091		input = &PutBotInput{}
4092	}
4093
4094	output = &PutBotOutput{}
4095	req = c.newRequest(op, input, output)
4096	return
4097}
4098
4099// PutBot API operation for Amazon Lex Model Building Service.
4100//
4101// Creates an Amazon Lex conversational bot or replaces an existing bot. When
4102// you create or update a bot you are only required to specify a name, a locale,
4103// and whether the bot is directed toward children under age 13. You can use
4104// this to add intents later, or to remove intents from an existing bot. When
4105// you create a bot with the minimum information, the bot is created or updated
4106// but Amazon Lex returns the response FAILED. You can build the bot after you
4107// add one or more intents. For more information about Amazon Lex bots, see
4108// how-it-works.
4109//
4110// If you specify the name of an existing bot, the fields in the request replace
4111// the existing values in the $LATEST version of the bot. Amazon Lex removes
4112// any fields that you don't provide values for in the request, except for the
4113// idleTTLInSeconds and privacySettings fields, which are set to their default
4114// values. If you don't specify values for required fields, Amazon Lex throws
4115// an exception.
4116//
4117// This operation requires permissions for the lex:PutBot action. For more information,
4118// see security-iam.
4119//
4120// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4121// with awserr.Error's Code and Message methods to get detailed information about
4122// the error.
4123//
4124// See the AWS API reference guide for Amazon Lex Model Building Service's
4125// API operation PutBot for usage and error information.
4126//
4127// Returned Error Types:
4128//   * ConflictException
4129//   There was a conflict processing the request. Try your request again.
4130//
4131//   * LimitExceededException
4132//   The request exceeded a limit. Try your request again.
4133//
4134//   * InternalFailureException
4135//   An internal Amazon Lex error occurred. Try your request again.
4136//
4137//   * BadRequestException
4138//   The request is not well formed. For example, a value is invalid or a required
4139//   field is missing. Check the field values, and try again.
4140//
4141//   * PreconditionFailedException
4142//   The checksum of the resource that you are trying to change does not match
4143//   the checksum in the request. Check the resource's checksum and try again.
4144//
4145// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBot
4146func (c *LexModelBuildingService) PutBot(input *PutBotInput) (*PutBotOutput, error) {
4147	req, out := c.PutBotRequest(input)
4148	return out, req.Send()
4149}
4150
4151// PutBotWithContext is the same as PutBot with the addition of
4152// the ability to pass a context and additional request options.
4153//
4154// See PutBot for details on how to use this API operation.
4155//
4156// The context must be non-nil and will be used for request cancellation. If
4157// the context is nil a panic will occur. In the future the SDK may create
4158// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4159// for more information on using Contexts.
4160func (c *LexModelBuildingService) PutBotWithContext(ctx aws.Context, input *PutBotInput, opts ...request.Option) (*PutBotOutput, error) {
4161	req, out := c.PutBotRequest(input)
4162	req.SetContext(ctx)
4163	req.ApplyOptions(opts...)
4164	return out, req.Send()
4165}
4166
4167const opPutBotAlias = "PutBotAlias"
4168
4169// PutBotAliasRequest generates a "aws/request.Request" representing the
4170// client's request for the PutBotAlias operation. The "output" return
4171// value will be populated with the request's response once the request completes
4172// successfully.
4173//
4174// Use "Send" method on the returned Request to send the API call to the service.
4175// the "output" return value is not valid until after Send returns without error.
4176//
4177// See PutBotAlias for more information on using the PutBotAlias
4178// API call, and error handling.
4179//
4180// This method is useful when you want to inject custom logic or configuration
4181// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4182//
4183//
4184//    // Example sending a request using the PutBotAliasRequest method.
4185//    req, resp := client.PutBotAliasRequest(params)
4186//
4187//    err := req.Send()
4188//    if err == nil { // resp is now filled
4189//        fmt.Println(resp)
4190//    }
4191//
4192// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBotAlias
4193func (c *LexModelBuildingService) PutBotAliasRequest(input *PutBotAliasInput) (req *request.Request, output *PutBotAliasOutput) {
4194	op := &request.Operation{
4195		Name:       opPutBotAlias,
4196		HTTPMethod: "PUT",
4197		HTTPPath:   "/bots/{botName}/aliases/{name}",
4198	}
4199
4200	if input == nil {
4201		input = &PutBotAliasInput{}
4202	}
4203
4204	output = &PutBotAliasOutput{}
4205	req = c.newRequest(op, input, output)
4206	return
4207}
4208
4209// PutBotAlias API operation for Amazon Lex Model Building Service.
4210//
4211// Creates an alias for the specified version of the bot or replaces an alias
4212// for the specified bot. To change the version of the bot that the alias points
4213// to, replace the alias. For more information about aliases, see versioning-aliases.
4214//
4215// This operation requires permissions for the lex:PutBotAlias action.
4216//
4217// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4218// with awserr.Error's Code and Message methods to get detailed information about
4219// the error.
4220//
4221// See the AWS API reference guide for Amazon Lex Model Building Service's
4222// API operation PutBotAlias for usage and error information.
4223//
4224// Returned Error Types:
4225//   * ConflictException
4226//   There was a conflict processing the request. Try your request again.
4227//
4228//   * LimitExceededException
4229//   The request exceeded a limit. Try your request again.
4230//
4231//   * InternalFailureException
4232//   An internal Amazon Lex error occurred. Try your request again.
4233//
4234//   * BadRequestException
4235//   The request is not well formed. For example, a value is invalid or a required
4236//   field is missing. Check the field values, and try again.
4237//
4238//   * PreconditionFailedException
4239//   The checksum of the resource that you are trying to change does not match
4240//   the checksum in the request. Check the resource's checksum and try again.
4241//
4242// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBotAlias
4243func (c *LexModelBuildingService) PutBotAlias(input *PutBotAliasInput) (*PutBotAliasOutput, error) {
4244	req, out := c.PutBotAliasRequest(input)
4245	return out, req.Send()
4246}
4247
4248// PutBotAliasWithContext is the same as PutBotAlias with the addition of
4249// the ability to pass a context and additional request options.
4250//
4251// See PutBotAlias for details on how to use this API operation.
4252//
4253// The context must be non-nil and will be used for request cancellation. If
4254// the context is nil a panic will occur. In the future the SDK may create
4255// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4256// for more information on using Contexts.
4257func (c *LexModelBuildingService) PutBotAliasWithContext(ctx aws.Context, input *PutBotAliasInput, opts ...request.Option) (*PutBotAliasOutput, error) {
4258	req, out := c.PutBotAliasRequest(input)
4259	req.SetContext(ctx)
4260	req.ApplyOptions(opts...)
4261	return out, req.Send()
4262}
4263
4264const opPutIntent = "PutIntent"
4265
4266// PutIntentRequest generates a "aws/request.Request" representing the
4267// client's request for the PutIntent operation. The "output" return
4268// value will be populated with the request's response once the request completes
4269// successfully.
4270//
4271// Use "Send" method on the returned Request to send the API call to the service.
4272// the "output" return value is not valid until after Send returns without error.
4273//
4274// See PutIntent for more information on using the PutIntent
4275// API call, and error handling.
4276//
4277// This method is useful when you want to inject custom logic or configuration
4278// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4279//
4280//
4281//    // Example sending a request using the PutIntentRequest method.
4282//    req, resp := client.PutIntentRequest(params)
4283//
4284//    err := req.Send()
4285//    if err == nil { // resp is now filled
4286//        fmt.Println(resp)
4287//    }
4288//
4289// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutIntent
4290func (c *LexModelBuildingService) PutIntentRequest(input *PutIntentInput) (req *request.Request, output *PutIntentOutput) {
4291	op := &request.Operation{
4292		Name:       opPutIntent,
4293		HTTPMethod: "PUT",
4294		HTTPPath:   "/intents/{name}/versions/$LATEST",
4295	}
4296
4297	if input == nil {
4298		input = &PutIntentInput{}
4299	}
4300
4301	output = &PutIntentOutput{}
4302	req = c.newRequest(op, input, output)
4303	return
4304}
4305
4306// PutIntent API operation for Amazon Lex Model Building Service.
4307//
4308// Creates an intent or replaces an existing intent.
4309//
4310// To define the interaction between the user and your bot, you use one or more
4311// intents. For a pizza ordering bot, for example, you would create an OrderPizza
4312// intent.
4313//
4314// To create an intent or replace an existing intent, you must provide the following:
4315//
4316//    * Intent name. For example, OrderPizza.
4317//
4318//    * Sample utterances. For example, "Can I order a pizza, please." and "I
4319//    want to order a pizza."
4320//
4321//    * Information to be gathered. You specify slot types for the information
4322//    that your bot will request from the user. You can specify standard slot
4323//    types, such as a date or a time, or custom slot types such as the size
4324//    and crust of a pizza.
4325//
4326//    * How the intent will be fulfilled. You can provide a Lambda function
4327//    or configure the intent to return the intent information to the client
4328//    application. If you use a Lambda function, when all of the intent information
4329//    is available, Amazon Lex invokes your Lambda function. If you configure
4330//    your intent to return the intent information to the client application.
4331//
4332// You can specify other optional information in the request, such as:
4333//
4334//    * A confirmation prompt to ask the user to confirm an intent. For example,
4335//    "Shall I order your pizza?"
4336//
4337//    * A conclusion statement to send to the user after the intent has been
4338//    fulfilled. For example, "I placed your pizza order."
4339//
4340//    * A follow-up prompt that asks the user for additional activity. For example,
4341//    asking "Do you want to order a drink with your pizza?"
4342//
4343// If you specify an existing intent name to update the intent, Amazon Lex replaces
4344// the values in the $LATEST version of the intent with the values in the request.
4345// Amazon Lex removes fields that you don't provide in the request. If you don't
4346// specify the required fields, Amazon Lex throws an exception. When you update
4347// the $LATEST version of an intent, the status field of any bot that uses the
4348// $LATEST version of the intent is set to NOT_BUILT.
4349//
4350// For more information, see how-it-works.
4351//
4352// This operation requires permissions for the lex:PutIntent action.
4353//
4354// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4355// with awserr.Error's Code and Message methods to get detailed information about
4356// the error.
4357//
4358// See the AWS API reference guide for Amazon Lex Model Building Service's
4359// API operation PutIntent for usage and error information.
4360//
4361// Returned Error Types:
4362//   * ConflictException
4363//   There was a conflict processing the request. Try your request again.
4364//
4365//   * LimitExceededException
4366//   The request exceeded a limit. Try your request again.
4367//
4368//   * InternalFailureException
4369//   An internal Amazon Lex error occurred. Try your request again.
4370//
4371//   * BadRequestException
4372//   The request is not well formed. For example, a value is invalid or a required
4373//   field is missing. Check the field values, and try again.
4374//
4375//   * PreconditionFailedException
4376//   The checksum of the resource that you are trying to change does not match
4377//   the checksum in the request. Check the resource's checksum and try again.
4378//
4379// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutIntent
4380func (c *LexModelBuildingService) PutIntent(input *PutIntentInput) (*PutIntentOutput, error) {
4381	req, out := c.PutIntentRequest(input)
4382	return out, req.Send()
4383}
4384
4385// PutIntentWithContext is the same as PutIntent with the addition of
4386// the ability to pass a context and additional request options.
4387//
4388// See PutIntent for details on how to use this API operation.
4389//
4390// The context must be non-nil and will be used for request cancellation. If
4391// the context is nil a panic will occur. In the future the SDK may create
4392// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4393// for more information on using Contexts.
4394func (c *LexModelBuildingService) PutIntentWithContext(ctx aws.Context, input *PutIntentInput, opts ...request.Option) (*PutIntentOutput, error) {
4395	req, out := c.PutIntentRequest(input)
4396	req.SetContext(ctx)
4397	req.ApplyOptions(opts...)
4398	return out, req.Send()
4399}
4400
4401const opPutSlotType = "PutSlotType"
4402
4403// PutSlotTypeRequest generates a "aws/request.Request" representing the
4404// client's request for the PutSlotType operation. The "output" return
4405// value will be populated with the request's response once the request completes
4406// successfully.
4407//
4408// Use "Send" method on the returned Request to send the API call to the service.
4409// the "output" return value is not valid until after Send returns without error.
4410//
4411// See PutSlotType for more information on using the PutSlotType
4412// API call, and error handling.
4413//
4414// This method is useful when you want to inject custom logic or configuration
4415// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4416//
4417//
4418//    // Example sending a request using the PutSlotTypeRequest method.
4419//    req, resp := client.PutSlotTypeRequest(params)
4420//
4421//    err := req.Send()
4422//    if err == nil { // resp is now filled
4423//        fmt.Println(resp)
4424//    }
4425//
4426// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutSlotType
4427func (c *LexModelBuildingService) PutSlotTypeRequest(input *PutSlotTypeInput) (req *request.Request, output *PutSlotTypeOutput) {
4428	op := &request.Operation{
4429		Name:       opPutSlotType,
4430		HTTPMethod: "PUT",
4431		HTTPPath:   "/slottypes/{name}/versions/$LATEST",
4432	}
4433
4434	if input == nil {
4435		input = &PutSlotTypeInput{}
4436	}
4437
4438	output = &PutSlotTypeOutput{}
4439	req = c.newRequest(op, input, output)
4440	return
4441}
4442
4443// PutSlotType API operation for Amazon Lex Model Building Service.
4444//
4445// Creates a custom slot type or replaces an existing custom slot type.
4446//
4447// To create a custom slot type, specify a name for the slot type and a set
4448// of enumeration values, which are the values that a slot of this type can
4449// assume. For more information, see how-it-works.
4450//
4451// If you specify the name of an existing slot type, the fields in the request
4452// replace the existing values in the $LATEST version of the slot type. Amazon
4453// Lex removes the fields that you don't provide in the request. If you don't
4454// specify required fields, Amazon Lex throws an exception. When you update
4455// the $LATEST version of a slot type, if a bot uses the $LATEST version of
4456// an intent that contains the slot type, the bot's status field is set to NOT_BUILT.
4457//
4458// This operation requires permissions for the lex:PutSlotType action.
4459//
4460// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4461// with awserr.Error's Code and Message methods to get detailed information about
4462// the error.
4463//
4464// See the AWS API reference guide for Amazon Lex Model Building Service's
4465// API operation PutSlotType for usage and error information.
4466//
4467// Returned Error Types:
4468//   * ConflictException
4469//   There was a conflict processing the request. Try your request again.
4470//
4471//   * LimitExceededException
4472//   The request exceeded a limit. Try your request again.
4473//
4474//   * InternalFailureException
4475//   An internal Amazon Lex error occurred. Try your request again.
4476//
4477//   * BadRequestException
4478//   The request is not well formed. For example, a value is invalid or a required
4479//   field is missing. Check the field values, and try again.
4480//
4481//   * PreconditionFailedException
4482//   The checksum of the resource that you are trying to change does not match
4483//   the checksum in the request. Check the resource's checksum and try again.
4484//
4485// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutSlotType
4486func (c *LexModelBuildingService) PutSlotType(input *PutSlotTypeInput) (*PutSlotTypeOutput, error) {
4487	req, out := c.PutSlotTypeRequest(input)
4488	return out, req.Send()
4489}
4490
4491// PutSlotTypeWithContext is the same as PutSlotType with the addition of
4492// the ability to pass a context and additional request options.
4493//
4494// See PutSlotType for details on how to use this API operation.
4495//
4496// The context must be non-nil and will be used for request cancellation. If
4497// the context is nil a panic will occur. In the future the SDK may create
4498// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4499// for more information on using Contexts.
4500func (c *LexModelBuildingService) PutSlotTypeWithContext(ctx aws.Context, input *PutSlotTypeInput, opts ...request.Option) (*PutSlotTypeOutput, error) {
4501	req, out := c.PutSlotTypeRequest(input)
4502	req.SetContext(ctx)
4503	req.ApplyOptions(opts...)
4504	return out, req.Send()
4505}
4506
4507const opStartImport = "StartImport"
4508
4509// StartImportRequest generates a "aws/request.Request" representing the
4510// client's request for the StartImport operation. The "output" return
4511// value will be populated with the request's response once the request completes
4512// successfully.
4513//
4514// Use "Send" method on the returned Request to send the API call to the service.
4515// the "output" return value is not valid until after Send returns without error.
4516//
4517// See StartImport for more information on using the StartImport
4518// API call, and error handling.
4519//
4520// This method is useful when you want to inject custom logic or configuration
4521// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4522//
4523//
4524//    // Example sending a request using the StartImportRequest method.
4525//    req, resp := client.StartImportRequest(params)
4526//
4527//    err := req.Send()
4528//    if err == nil { // resp is now filled
4529//        fmt.Println(resp)
4530//    }
4531//
4532// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/StartImport
4533func (c *LexModelBuildingService) StartImportRequest(input *StartImportInput) (req *request.Request, output *StartImportOutput) {
4534	op := &request.Operation{
4535		Name:       opStartImport,
4536		HTTPMethod: "POST",
4537		HTTPPath:   "/imports/",
4538	}
4539
4540	if input == nil {
4541		input = &StartImportInput{}
4542	}
4543
4544	output = &StartImportOutput{}
4545	req = c.newRequest(op, input, output)
4546	return
4547}
4548
4549// StartImport API operation for Amazon Lex Model Building Service.
4550//
4551// Starts a job to import a resource to Amazon Lex.
4552//
4553// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4554// with awserr.Error's Code and Message methods to get detailed information about
4555// the error.
4556//
4557// See the AWS API reference guide for Amazon Lex Model Building Service's
4558// API operation StartImport for usage and error information.
4559//
4560// Returned Error Types:
4561//   * LimitExceededException
4562//   The request exceeded a limit. Try your request again.
4563//
4564//   * InternalFailureException
4565//   An internal Amazon Lex error occurred. Try your request again.
4566//
4567//   * BadRequestException
4568//   The request is not well formed. For example, a value is invalid or a required
4569//   field is missing. Check the field values, and try again.
4570//
4571// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/StartImport
4572func (c *LexModelBuildingService) StartImport(input *StartImportInput) (*StartImportOutput, error) {
4573	req, out := c.StartImportRequest(input)
4574	return out, req.Send()
4575}
4576
4577// StartImportWithContext is the same as StartImport with the addition of
4578// the ability to pass a context and additional request options.
4579//
4580// See StartImport for details on how to use this API operation.
4581//
4582// The context must be non-nil and will be used for request cancellation. If
4583// the context is nil a panic will occur. In the future the SDK may create
4584// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4585// for more information on using Contexts.
4586func (c *LexModelBuildingService) StartImportWithContext(ctx aws.Context, input *StartImportInput, opts ...request.Option) (*StartImportOutput, error) {
4587	req, out := c.StartImportRequest(input)
4588	req.SetContext(ctx)
4589	req.ApplyOptions(opts...)
4590	return out, req.Send()
4591}
4592
4593const opStartMigration = "StartMigration"
4594
4595// StartMigrationRequest generates a "aws/request.Request" representing the
4596// client's request for the StartMigration operation. The "output" return
4597// value will be populated with the request's response once the request completes
4598// successfully.
4599//
4600// Use "Send" method on the returned Request to send the API call to the service.
4601// the "output" return value is not valid until after Send returns without error.
4602//
4603// See StartMigration for more information on using the StartMigration
4604// API call, and error handling.
4605//
4606// This method is useful when you want to inject custom logic or configuration
4607// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4608//
4609//
4610//    // Example sending a request using the StartMigrationRequest method.
4611//    req, resp := client.StartMigrationRequest(params)
4612//
4613//    err := req.Send()
4614//    if err == nil { // resp is now filled
4615//        fmt.Println(resp)
4616//    }
4617//
4618// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/StartMigration
4619func (c *LexModelBuildingService) StartMigrationRequest(input *StartMigrationInput) (req *request.Request, output *StartMigrationOutput) {
4620	op := &request.Operation{
4621		Name:       opStartMigration,
4622		HTTPMethod: "POST",
4623		HTTPPath:   "/migrations",
4624	}
4625
4626	if input == nil {
4627		input = &StartMigrationInput{}
4628	}
4629
4630	output = &StartMigrationOutput{}
4631	req = c.newRequest(op, input, output)
4632	return
4633}
4634
4635// StartMigration API operation for Amazon Lex Model Building Service.
4636//
4637// Starts migrating a bot from Amazon Lex V1 to Amazon Lex V2. Migrate your
4638// bot when you want to take advantage of the new features of Amazon Lex V2.
4639//
4640// For more information, see Migrating a bot (https://docs.aws.amazon.com/lex/latest/dg/migrate.html)
4641// in the Amazon Lex developer guide.
4642//
4643// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4644// with awserr.Error's Code and Message methods to get detailed information about
4645// the error.
4646//
4647// See the AWS API reference guide for Amazon Lex Model Building Service's
4648// API operation StartMigration for usage and error information.
4649//
4650// Returned Error Types:
4651//   * LimitExceededException
4652//   The request exceeded a limit. Try your request again.
4653//
4654//   * InternalFailureException
4655//   An internal Amazon Lex error occurred. Try your request again.
4656//
4657//   * BadRequestException
4658//   The request is not well formed. For example, a value is invalid or a required
4659//   field is missing. Check the field values, and try again.
4660//
4661//   * AccessDeniedException
4662//   Your IAM user or role does not have permission to call the Amazon Lex V2
4663//   APIs required to migrate your bot.
4664//
4665//   * NotFoundException
4666//   The resource specified in the request was not found. Check the resource and
4667//   try again.
4668//
4669// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/StartMigration
4670func (c *LexModelBuildingService) StartMigration(input *StartMigrationInput) (*StartMigrationOutput, error) {
4671	req, out := c.StartMigrationRequest(input)
4672	return out, req.Send()
4673}
4674
4675// StartMigrationWithContext is the same as StartMigration with the addition of
4676// the ability to pass a context and additional request options.
4677//
4678// See StartMigration for details on how to use this API operation.
4679//
4680// The context must be non-nil and will be used for request cancellation. If
4681// the context is nil a panic will occur. In the future the SDK may create
4682// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4683// for more information on using Contexts.
4684func (c *LexModelBuildingService) StartMigrationWithContext(ctx aws.Context, input *StartMigrationInput, opts ...request.Option) (*StartMigrationOutput, error) {
4685	req, out := c.StartMigrationRequest(input)
4686	req.SetContext(ctx)
4687	req.ApplyOptions(opts...)
4688	return out, req.Send()
4689}
4690
4691const opTagResource = "TagResource"
4692
4693// TagResourceRequest generates a "aws/request.Request" representing the
4694// client's request for the TagResource operation. The "output" return
4695// value will be populated with the request's response once the request completes
4696// successfully.
4697//
4698// Use "Send" method on the returned Request to send the API call to the service.
4699// the "output" return value is not valid until after Send returns without error.
4700//
4701// See TagResource for more information on using the TagResource
4702// API call, and error handling.
4703//
4704// This method is useful when you want to inject custom logic or configuration
4705// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4706//
4707//
4708//    // Example sending a request using the TagResourceRequest method.
4709//    req, resp := client.TagResourceRequest(params)
4710//
4711//    err := req.Send()
4712//    if err == nil { // resp is now filled
4713//        fmt.Println(resp)
4714//    }
4715//
4716// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/TagResource
4717func (c *LexModelBuildingService) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
4718	op := &request.Operation{
4719		Name:       opTagResource,
4720		HTTPMethod: "POST",
4721		HTTPPath:   "/tags/{resourceArn}",
4722	}
4723
4724	if input == nil {
4725		input = &TagResourceInput{}
4726	}
4727
4728	output = &TagResourceOutput{}
4729	req = c.newRequest(op, input, output)
4730	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4731	return
4732}
4733
4734// TagResource API operation for Amazon Lex Model Building Service.
4735//
4736// Adds the specified tags to the specified resource. If a tag key already exists,
4737// the existing value is replaced with the new value.
4738//
4739// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4740// with awserr.Error's Code and Message methods to get detailed information about
4741// the error.
4742//
4743// See the AWS API reference guide for Amazon Lex Model Building Service's
4744// API operation TagResource for usage and error information.
4745//
4746// Returned Error Types:
4747//   * NotFoundException
4748//   The resource specified in the request was not found. Check the resource and
4749//   try again.
4750//
4751//   * BadRequestException
4752//   The request is not well formed. For example, a value is invalid or a required
4753//   field is missing. Check the field values, and try again.
4754//
4755//   * ConflictException
4756//   There was a conflict processing the request. Try your request again.
4757//
4758//   * InternalFailureException
4759//   An internal Amazon Lex error occurred. Try your request again.
4760//
4761//   * LimitExceededException
4762//   The request exceeded a limit. Try your request again.
4763//
4764// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/TagResource
4765func (c *LexModelBuildingService) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
4766	req, out := c.TagResourceRequest(input)
4767	return out, req.Send()
4768}
4769
4770// TagResourceWithContext is the same as TagResource with the addition of
4771// the ability to pass a context and additional request options.
4772//
4773// See TagResource for details on how to use this API operation.
4774//
4775// The context must be non-nil and will be used for request cancellation. If
4776// the context is nil a panic will occur. In the future the SDK may create
4777// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4778// for more information on using Contexts.
4779func (c *LexModelBuildingService) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
4780	req, out := c.TagResourceRequest(input)
4781	req.SetContext(ctx)
4782	req.ApplyOptions(opts...)
4783	return out, req.Send()
4784}
4785
4786const opUntagResource = "UntagResource"
4787
4788// UntagResourceRequest generates a "aws/request.Request" representing the
4789// client's request for the UntagResource operation. The "output" return
4790// value will be populated with the request's response once the request completes
4791// successfully.
4792//
4793// Use "Send" method on the returned Request to send the API call to the service.
4794// the "output" return value is not valid until after Send returns without error.
4795//
4796// See UntagResource for more information on using the UntagResource
4797// API call, and error handling.
4798//
4799// This method is useful when you want to inject custom logic or configuration
4800// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4801//
4802//
4803//    // Example sending a request using the UntagResourceRequest method.
4804//    req, resp := client.UntagResourceRequest(params)
4805//
4806//    err := req.Send()
4807//    if err == nil { // resp is now filled
4808//        fmt.Println(resp)
4809//    }
4810//
4811// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/UntagResource
4812func (c *LexModelBuildingService) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
4813	op := &request.Operation{
4814		Name:       opUntagResource,
4815		HTTPMethod: "DELETE",
4816		HTTPPath:   "/tags/{resourceArn}",
4817	}
4818
4819	if input == nil {
4820		input = &UntagResourceInput{}
4821	}
4822
4823	output = &UntagResourceOutput{}
4824	req = c.newRequest(op, input, output)
4825	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4826	return
4827}
4828
4829// UntagResource API operation for Amazon Lex Model Building Service.
4830//
4831// Removes tags from a bot, bot alias or bot channel.
4832//
4833// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4834// with awserr.Error's Code and Message methods to get detailed information about
4835// the error.
4836//
4837// See the AWS API reference guide for Amazon Lex Model Building Service's
4838// API operation UntagResource for usage and error information.
4839//
4840// Returned Error Types:
4841//   * NotFoundException
4842//   The resource specified in the request was not found. Check the resource and
4843//   try again.
4844//
4845//   * BadRequestException
4846//   The request is not well formed. For example, a value is invalid or a required
4847//   field is missing. Check the field values, and try again.
4848//
4849//   * ConflictException
4850//   There was a conflict processing the request. Try your request again.
4851//
4852//   * InternalFailureException
4853//   An internal Amazon Lex error occurred. Try your request again.
4854//
4855//   * LimitExceededException
4856//   The request exceeded a limit. Try your request again.
4857//
4858// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/UntagResource
4859func (c *LexModelBuildingService) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
4860	req, out := c.UntagResourceRequest(input)
4861	return out, req.Send()
4862}
4863
4864// UntagResourceWithContext is the same as UntagResource with the addition of
4865// the ability to pass a context and additional request options.
4866//
4867// See UntagResource for details on how to use this API operation.
4868//
4869// The context must be non-nil and will be used for request cancellation. If
4870// the context is nil a panic will occur. In the future the SDK may create
4871// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4872// for more information on using Contexts.
4873func (c *LexModelBuildingService) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
4874	req, out := c.UntagResourceRequest(input)
4875	req.SetContext(ctx)
4876	req.ApplyOptions(opts...)
4877	return out, req.Send()
4878}
4879
4880// Your IAM user or role does not have permission to call the Amazon Lex V2
4881// APIs required to migrate your bot.
4882type AccessDeniedException struct {
4883	_            struct{}                  `type:"structure"`
4884	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4885
4886	Message_ *string `locationName:"message" type:"string"`
4887}
4888
4889// String returns the string representation
4890func (s AccessDeniedException) String() string {
4891	return awsutil.Prettify(s)
4892}
4893
4894// GoString returns the string representation
4895func (s AccessDeniedException) GoString() string {
4896	return s.String()
4897}
4898
4899func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
4900	return &AccessDeniedException{
4901		RespMetadata: v,
4902	}
4903}
4904
4905// Code returns the exception type name.
4906func (s *AccessDeniedException) Code() string {
4907	return "AccessDeniedException"
4908}
4909
4910// Message returns the exception's message.
4911func (s *AccessDeniedException) Message() string {
4912	if s.Message_ != nil {
4913		return *s.Message_
4914	}
4915	return ""
4916}
4917
4918// OrigErr always returns nil, satisfies awserr.Error interface.
4919func (s *AccessDeniedException) OrigErr() error {
4920	return nil
4921}
4922
4923func (s *AccessDeniedException) Error() string {
4924	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4925}
4926
4927// Status code returns the HTTP status code for the request's response error.
4928func (s *AccessDeniedException) StatusCode() int {
4929	return s.RespMetadata.StatusCode
4930}
4931
4932// RequestID returns the service's response RequestID for request.
4933func (s *AccessDeniedException) RequestID() string {
4934	return s.RespMetadata.RequestID
4935}
4936
4937// The request is not well formed. For example, a value is invalid or a required
4938// field is missing. Check the field values, and try again.
4939type BadRequestException struct {
4940	_            struct{}                  `type:"structure"`
4941	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4942
4943	Message_ *string `locationName:"message" type:"string"`
4944}
4945
4946// String returns the string representation
4947func (s BadRequestException) String() string {
4948	return awsutil.Prettify(s)
4949}
4950
4951// GoString returns the string representation
4952func (s BadRequestException) GoString() string {
4953	return s.String()
4954}
4955
4956func newErrorBadRequestException(v protocol.ResponseMetadata) error {
4957	return &BadRequestException{
4958		RespMetadata: v,
4959	}
4960}
4961
4962// Code returns the exception type name.
4963func (s *BadRequestException) Code() string {
4964	return "BadRequestException"
4965}
4966
4967// Message returns the exception's message.
4968func (s *BadRequestException) Message() string {
4969	if s.Message_ != nil {
4970		return *s.Message_
4971	}
4972	return ""
4973}
4974
4975// OrigErr always returns nil, satisfies awserr.Error interface.
4976func (s *BadRequestException) OrigErr() error {
4977	return nil
4978}
4979
4980func (s *BadRequestException) Error() string {
4981	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4982}
4983
4984// Status code returns the HTTP status code for the request's response error.
4985func (s *BadRequestException) StatusCode() int {
4986	return s.RespMetadata.StatusCode
4987}
4988
4989// RequestID returns the service's response RequestID for request.
4990func (s *BadRequestException) RequestID() string {
4991	return s.RespMetadata.RequestID
4992}
4993
4994// Provides information about a bot alias.
4995type BotAliasMetadata struct {
4996	_ struct{} `type:"structure"`
4997
4998	// The name of the bot to which the alias points.
4999	BotName *string `locationName:"botName" min:"2" type:"string"`
5000
5001	// The version of the Amazon Lex bot to which the alias points.
5002	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
5003
5004	// Checksum of the bot alias.
5005	Checksum *string `locationName:"checksum" type:"string"`
5006
5007	// Settings that determine how Amazon Lex uses conversation logs for the alias.
5008	ConversationLogs *ConversationLogsResponse `locationName:"conversationLogs" type:"structure"`
5009
5010	// The date that the bot alias was created.
5011	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
5012
5013	// A description of the bot alias.
5014	Description *string `locationName:"description" type:"string"`
5015
5016	// The date that the bot alias was updated. When you create a resource, the
5017	// creation date and last updated date are the same.
5018	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
5019
5020	// The name of the bot alias.
5021	Name *string `locationName:"name" min:"1" type:"string"`
5022}
5023
5024// String returns the string representation
5025func (s BotAliasMetadata) String() string {
5026	return awsutil.Prettify(s)
5027}
5028
5029// GoString returns the string representation
5030func (s BotAliasMetadata) GoString() string {
5031	return s.String()
5032}
5033
5034// SetBotName sets the BotName field's value.
5035func (s *BotAliasMetadata) SetBotName(v string) *BotAliasMetadata {
5036	s.BotName = &v
5037	return s
5038}
5039
5040// SetBotVersion sets the BotVersion field's value.
5041func (s *BotAliasMetadata) SetBotVersion(v string) *BotAliasMetadata {
5042	s.BotVersion = &v
5043	return s
5044}
5045
5046// SetChecksum sets the Checksum field's value.
5047func (s *BotAliasMetadata) SetChecksum(v string) *BotAliasMetadata {
5048	s.Checksum = &v
5049	return s
5050}
5051
5052// SetConversationLogs sets the ConversationLogs field's value.
5053func (s *BotAliasMetadata) SetConversationLogs(v *ConversationLogsResponse) *BotAliasMetadata {
5054	s.ConversationLogs = v
5055	return s
5056}
5057
5058// SetCreatedDate sets the CreatedDate field's value.
5059func (s *BotAliasMetadata) SetCreatedDate(v time.Time) *BotAliasMetadata {
5060	s.CreatedDate = &v
5061	return s
5062}
5063
5064// SetDescription sets the Description field's value.
5065func (s *BotAliasMetadata) SetDescription(v string) *BotAliasMetadata {
5066	s.Description = &v
5067	return s
5068}
5069
5070// SetLastUpdatedDate sets the LastUpdatedDate field's value.
5071func (s *BotAliasMetadata) SetLastUpdatedDate(v time.Time) *BotAliasMetadata {
5072	s.LastUpdatedDate = &v
5073	return s
5074}
5075
5076// SetName sets the Name field's value.
5077func (s *BotAliasMetadata) SetName(v string) *BotAliasMetadata {
5078	s.Name = &v
5079	return s
5080}
5081
5082// Represents an association between an Amazon Lex bot and an external messaging
5083// platform.
5084type BotChannelAssociation struct {
5085	_ struct{} `type:"structure"`
5086
5087	// An alias pointing to the specific version of the Amazon Lex bot to which
5088	// this association is being made.
5089	BotAlias *string `locationName:"botAlias" min:"1" type:"string"`
5090
5091	// Provides information necessary to communicate with the messaging platform.
5092	BotConfiguration map[string]*string `locationName:"botConfiguration" min:"1" type:"map" sensitive:"true"`
5093
5094	// The name of the Amazon Lex bot to which this association is being made.
5095	//
5096	// Currently, Amazon Lex supports associations with Facebook and Slack, and
5097	// Twilio.
5098	BotName *string `locationName:"botName" min:"2" type:"string"`
5099
5100	// The date that the association between the Amazon Lex bot and the channel
5101	// was created.
5102	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
5103
5104	// A text description of the association you are creating.
5105	Description *string `locationName:"description" type:"string"`
5106
5107	// If status is FAILED, Amazon Lex provides the reason that it failed to create
5108	// the association.
5109	FailureReason *string `locationName:"failureReason" type:"string"`
5110
5111	// The name of the association between the bot and the channel.
5112	Name *string `locationName:"name" min:"1" type:"string"`
5113
5114	// The status of the bot channel.
5115	//
5116	//    * CREATED - The channel has been created and is ready for use.
5117	//
5118	//    * IN_PROGRESS - Channel creation is in progress.
5119	//
5120	//    * FAILED - There was an error creating the channel. For information about
5121	//    the reason for the failure, see the failureReason field.
5122	Status *string `locationName:"status" type:"string" enum:"ChannelStatus"`
5123
5124	// Specifies the type of association by indicating the type of channel being
5125	// established between the Amazon Lex bot and the external messaging platform.
5126	Type *string `locationName:"type" type:"string" enum:"ChannelType"`
5127}
5128
5129// String returns the string representation
5130func (s BotChannelAssociation) String() string {
5131	return awsutil.Prettify(s)
5132}
5133
5134// GoString returns the string representation
5135func (s BotChannelAssociation) GoString() string {
5136	return s.String()
5137}
5138
5139// SetBotAlias sets the BotAlias field's value.
5140func (s *BotChannelAssociation) SetBotAlias(v string) *BotChannelAssociation {
5141	s.BotAlias = &v
5142	return s
5143}
5144
5145// SetBotConfiguration sets the BotConfiguration field's value.
5146func (s *BotChannelAssociation) SetBotConfiguration(v map[string]*string) *BotChannelAssociation {
5147	s.BotConfiguration = v
5148	return s
5149}
5150
5151// SetBotName sets the BotName field's value.
5152func (s *BotChannelAssociation) SetBotName(v string) *BotChannelAssociation {
5153	s.BotName = &v
5154	return s
5155}
5156
5157// SetCreatedDate sets the CreatedDate field's value.
5158func (s *BotChannelAssociation) SetCreatedDate(v time.Time) *BotChannelAssociation {
5159	s.CreatedDate = &v
5160	return s
5161}
5162
5163// SetDescription sets the Description field's value.
5164func (s *BotChannelAssociation) SetDescription(v string) *BotChannelAssociation {
5165	s.Description = &v
5166	return s
5167}
5168
5169// SetFailureReason sets the FailureReason field's value.
5170func (s *BotChannelAssociation) SetFailureReason(v string) *BotChannelAssociation {
5171	s.FailureReason = &v
5172	return s
5173}
5174
5175// SetName sets the Name field's value.
5176func (s *BotChannelAssociation) SetName(v string) *BotChannelAssociation {
5177	s.Name = &v
5178	return s
5179}
5180
5181// SetStatus sets the Status field's value.
5182func (s *BotChannelAssociation) SetStatus(v string) *BotChannelAssociation {
5183	s.Status = &v
5184	return s
5185}
5186
5187// SetType sets the Type field's value.
5188func (s *BotChannelAssociation) SetType(v string) *BotChannelAssociation {
5189	s.Type = &v
5190	return s
5191}
5192
5193// Provides information about a bot. .
5194type BotMetadata struct {
5195	_ struct{} `type:"structure"`
5196
5197	// The date that the bot was created.
5198	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
5199
5200	// A description of the bot.
5201	Description *string `locationName:"description" type:"string"`
5202
5203	// The date that the bot was updated. When you create a bot, the creation date
5204	// and last updated date are the same.
5205	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
5206
5207	// The name of the bot.
5208	Name *string `locationName:"name" min:"2" type:"string"`
5209
5210	// The status of the bot.
5211	Status *string `locationName:"status" type:"string" enum:"Status"`
5212
5213	// The version of the bot. For a new bot, the version is always $LATEST.
5214	Version *string `locationName:"version" min:"1" type:"string"`
5215}
5216
5217// String returns the string representation
5218func (s BotMetadata) String() string {
5219	return awsutil.Prettify(s)
5220}
5221
5222// GoString returns the string representation
5223func (s BotMetadata) GoString() string {
5224	return s.String()
5225}
5226
5227// SetCreatedDate sets the CreatedDate field's value.
5228func (s *BotMetadata) SetCreatedDate(v time.Time) *BotMetadata {
5229	s.CreatedDate = &v
5230	return s
5231}
5232
5233// SetDescription sets the Description field's value.
5234func (s *BotMetadata) SetDescription(v string) *BotMetadata {
5235	s.Description = &v
5236	return s
5237}
5238
5239// SetLastUpdatedDate sets the LastUpdatedDate field's value.
5240func (s *BotMetadata) SetLastUpdatedDate(v time.Time) *BotMetadata {
5241	s.LastUpdatedDate = &v
5242	return s
5243}
5244
5245// SetName sets the Name field's value.
5246func (s *BotMetadata) SetName(v string) *BotMetadata {
5247	s.Name = &v
5248	return s
5249}
5250
5251// SetStatus sets the Status field's value.
5252func (s *BotMetadata) SetStatus(v string) *BotMetadata {
5253	s.Status = &v
5254	return s
5255}
5256
5257// SetVersion sets the Version field's value.
5258func (s *BotMetadata) SetVersion(v string) *BotMetadata {
5259	s.Version = &v
5260	return s
5261}
5262
5263// Provides metadata for a built-in intent.
5264type BuiltinIntentMetadata struct {
5265	_ struct{} `type:"structure"`
5266
5267	// A unique identifier for the built-in intent. To find the signature for an
5268	// intent, see Standard Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
5269	// in the Alexa Skills Kit.
5270	Signature *string `locationName:"signature" type:"string"`
5271
5272	// A list of identifiers for the locales that the intent supports.
5273	SupportedLocales []*string `locationName:"supportedLocales" type:"list"`
5274}
5275
5276// String returns the string representation
5277func (s BuiltinIntentMetadata) String() string {
5278	return awsutil.Prettify(s)
5279}
5280
5281// GoString returns the string representation
5282func (s BuiltinIntentMetadata) GoString() string {
5283	return s.String()
5284}
5285
5286// SetSignature sets the Signature field's value.
5287func (s *BuiltinIntentMetadata) SetSignature(v string) *BuiltinIntentMetadata {
5288	s.Signature = &v
5289	return s
5290}
5291
5292// SetSupportedLocales sets the SupportedLocales field's value.
5293func (s *BuiltinIntentMetadata) SetSupportedLocales(v []*string) *BuiltinIntentMetadata {
5294	s.SupportedLocales = v
5295	return s
5296}
5297
5298// Provides information about a slot used in a built-in intent.
5299type BuiltinIntentSlot struct {
5300	_ struct{} `type:"structure"`
5301
5302	// A list of the slots defined for the intent.
5303	Name *string `locationName:"name" type:"string"`
5304}
5305
5306// String returns the string representation
5307func (s BuiltinIntentSlot) String() string {
5308	return awsutil.Prettify(s)
5309}
5310
5311// GoString returns the string representation
5312func (s BuiltinIntentSlot) GoString() string {
5313	return s.String()
5314}
5315
5316// SetName sets the Name field's value.
5317func (s *BuiltinIntentSlot) SetName(v string) *BuiltinIntentSlot {
5318	s.Name = &v
5319	return s
5320}
5321
5322// Provides information about a built in slot type.
5323type BuiltinSlotTypeMetadata struct {
5324	_ struct{} `type:"structure"`
5325
5326	// A unique identifier for the built-in slot type. To find the signature for
5327	// a slot type, see Slot Type Reference (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference)
5328	// in the Alexa Skills Kit.
5329	Signature *string `locationName:"signature" type:"string"`
5330
5331	// A list of target locales for the slot.
5332	SupportedLocales []*string `locationName:"supportedLocales" type:"list"`
5333}
5334
5335// String returns the string representation
5336func (s BuiltinSlotTypeMetadata) String() string {
5337	return awsutil.Prettify(s)
5338}
5339
5340// GoString returns the string representation
5341func (s BuiltinSlotTypeMetadata) GoString() string {
5342	return s.String()
5343}
5344
5345// SetSignature sets the Signature field's value.
5346func (s *BuiltinSlotTypeMetadata) SetSignature(v string) *BuiltinSlotTypeMetadata {
5347	s.Signature = &v
5348	return s
5349}
5350
5351// SetSupportedLocales sets the SupportedLocales field's value.
5352func (s *BuiltinSlotTypeMetadata) SetSupportedLocales(v []*string) *BuiltinSlotTypeMetadata {
5353	s.SupportedLocales = v
5354	return s
5355}
5356
5357// Specifies a Lambda function that verifies requests to a bot or fulfills the
5358// user's request to a bot..
5359type CodeHook struct {
5360	_ struct{} `type:"structure"`
5361
5362	// The version of the request-response that you want Amazon Lex to use to invoke
5363	// your Lambda function. For more information, see using-lambda.
5364	//
5365	// MessageVersion is a required field
5366	MessageVersion *string `locationName:"messageVersion" min:"1" type:"string" required:"true"`
5367
5368	// The Amazon Resource Name (ARN) of the Lambda function.
5369	//
5370	// Uri is a required field
5371	Uri *string `locationName:"uri" min:"20" type:"string" required:"true"`
5372}
5373
5374// String returns the string representation
5375func (s CodeHook) String() string {
5376	return awsutil.Prettify(s)
5377}
5378
5379// GoString returns the string representation
5380func (s CodeHook) GoString() string {
5381	return s.String()
5382}
5383
5384// Validate inspects the fields of the type to determine if they are valid.
5385func (s *CodeHook) Validate() error {
5386	invalidParams := request.ErrInvalidParams{Context: "CodeHook"}
5387	if s.MessageVersion == nil {
5388		invalidParams.Add(request.NewErrParamRequired("MessageVersion"))
5389	}
5390	if s.MessageVersion != nil && len(*s.MessageVersion) < 1 {
5391		invalidParams.Add(request.NewErrParamMinLen("MessageVersion", 1))
5392	}
5393	if s.Uri == nil {
5394		invalidParams.Add(request.NewErrParamRequired("Uri"))
5395	}
5396	if s.Uri != nil && len(*s.Uri) < 20 {
5397		invalidParams.Add(request.NewErrParamMinLen("Uri", 20))
5398	}
5399
5400	if invalidParams.Len() > 0 {
5401		return invalidParams
5402	}
5403	return nil
5404}
5405
5406// SetMessageVersion sets the MessageVersion field's value.
5407func (s *CodeHook) SetMessageVersion(v string) *CodeHook {
5408	s.MessageVersion = &v
5409	return s
5410}
5411
5412// SetUri sets the Uri field's value.
5413func (s *CodeHook) SetUri(v string) *CodeHook {
5414	s.Uri = &v
5415	return s
5416}
5417
5418// There was a conflict processing the request. Try your request again.
5419type ConflictException struct {
5420	_            struct{}                  `type:"structure"`
5421	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5422
5423	Message_ *string `locationName:"message" type:"string"`
5424}
5425
5426// String returns the string representation
5427func (s ConflictException) String() string {
5428	return awsutil.Prettify(s)
5429}
5430
5431// GoString returns the string representation
5432func (s ConflictException) GoString() string {
5433	return s.String()
5434}
5435
5436func newErrorConflictException(v protocol.ResponseMetadata) error {
5437	return &ConflictException{
5438		RespMetadata: v,
5439	}
5440}
5441
5442// Code returns the exception type name.
5443func (s *ConflictException) Code() string {
5444	return "ConflictException"
5445}
5446
5447// Message returns the exception's message.
5448func (s *ConflictException) Message() string {
5449	if s.Message_ != nil {
5450		return *s.Message_
5451	}
5452	return ""
5453}
5454
5455// OrigErr always returns nil, satisfies awserr.Error interface.
5456func (s *ConflictException) OrigErr() error {
5457	return nil
5458}
5459
5460func (s *ConflictException) Error() string {
5461	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5462}
5463
5464// Status code returns the HTTP status code for the request's response error.
5465func (s *ConflictException) StatusCode() int {
5466	return s.RespMetadata.StatusCode
5467}
5468
5469// RequestID returns the service's response RequestID for request.
5470func (s *ConflictException) RequestID() string {
5471	return s.RespMetadata.RequestID
5472}
5473
5474// Provides the settings needed for conversation logs.
5475type ConversationLogsRequest struct {
5476	_ struct{} `type:"structure"`
5477
5478	// The Amazon Resource Name (ARN) of an IAM role with permission to write to
5479	// your CloudWatch Logs for text logs and your S3 bucket for audio logs. If
5480	// audio encryption is enabled, this role also provides access permission for
5481	// the AWS KMS key used for encrypting audio logs. For more information, see
5482	// Creating an IAM Role and Policy for Conversation Logs (https://docs.aws.amazon.com/lex/latest/dg/conversation-logs-role-and-policy.html).
5483	//
5484	// IamRoleArn is a required field
5485	IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string" required:"true"`
5486
5487	// The settings for your conversation logs. You can log the conversation text,
5488	// conversation audio, or both.
5489	//
5490	// LogSettings is a required field
5491	LogSettings []*LogSettingsRequest `locationName:"logSettings" type:"list" required:"true"`
5492}
5493
5494// String returns the string representation
5495func (s ConversationLogsRequest) String() string {
5496	return awsutil.Prettify(s)
5497}
5498
5499// GoString returns the string representation
5500func (s ConversationLogsRequest) GoString() string {
5501	return s.String()
5502}
5503
5504// Validate inspects the fields of the type to determine if they are valid.
5505func (s *ConversationLogsRequest) Validate() error {
5506	invalidParams := request.ErrInvalidParams{Context: "ConversationLogsRequest"}
5507	if s.IamRoleArn == nil {
5508		invalidParams.Add(request.NewErrParamRequired("IamRoleArn"))
5509	}
5510	if s.IamRoleArn != nil && len(*s.IamRoleArn) < 20 {
5511		invalidParams.Add(request.NewErrParamMinLen("IamRoleArn", 20))
5512	}
5513	if s.LogSettings == nil {
5514		invalidParams.Add(request.NewErrParamRequired("LogSettings"))
5515	}
5516	if s.LogSettings != nil {
5517		for i, v := range s.LogSettings {
5518			if v == nil {
5519				continue
5520			}
5521			if err := v.Validate(); err != nil {
5522				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LogSettings", i), err.(request.ErrInvalidParams))
5523			}
5524		}
5525	}
5526
5527	if invalidParams.Len() > 0 {
5528		return invalidParams
5529	}
5530	return nil
5531}
5532
5533// SetIamRoleArn sets the IamRoleArn field's value.
5534func (s *ConversationLogsRequest) SetIamRoleArn(v string) *ConversationLogsRequest {
5535	s.IamRoleArn = &v
5536	return s
5537}
5538
5539// SetLogSettings sets the LogSettings field's value.
5540func (s *ConversationLogsRequest) SetLogSettings(v []*LogSettingsRequest) *ConversationLogsRequest {
5541	s.LogSettings = v
5542	return s
5543}
5544
5545// Contains information about conversation log settings.
5546type ConversationLogsResponse struct {
5547	_ struct{} `type:"structure"`
5548
5549	// The Amazon Resource Name (ARN) of the IAM role used to write your logs to
5550	// CloudWatch Logs or an S3 bucket.
5551	IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string"`
5552
5553	// The settings for your conversation logs. You can log text, audio, or both.
5554	LogSettings []*LogSettingsResponse `locationName:"logSettings" type:"list"`
5555}
5556
5557// String returns the string representation
5558func (s ConversationLogsResponse) String() string {
5559	return awsutil.Prettify(s)
5560}
5561
5562// GoString returns the string representation
5563func (s ConversationLogsResponse) GoString() string {
5564	return s.String()
5565}
5566
5567// SetIamRoleArn sets the IamRoleArn field's value.
5568func (s *ConversationLogsResponse) SetIamRoleArn(v string) *ConversationLogsResponse {
5569	s.IamRoleArn = &v
5570	return s
5571}
5572
5573// SetLogSettings sets the LogSettings field's value.
5574func (s *ConversationLogsResponse) SetLogSettings(v []*LogSettingsResponse) *ConversationLogsResponse {
5575	s.LogSettings = v
5576	return s
5577}
5578
5579type CreateBotVersionInput struct {
5580	_ struct{} `type:"structure"`
5581
5582	// Identifies a specific revision of the $LATEST version of the bot. If you
5583	// specify a checksum and the $LATEST version of the bot has a different checksum,
5584	// a PreconditionFailedException exception is returned and Amazon Lex doesn't
5585	// publish a new version. If you don't specify a checksum, Amazon Lex publishes
5586	// the $LATEST version.
5587	Checksum *string `locationName:"checksum" type:"string"`
5588
5589	// The name of the bot that you want to create a new version of. The name is
5590	// case sensitive.
5591	//
5592	// Name is a required field
5593	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
5594}
5595
5596// String returns the string representation
5597func (s CreateBotVersionInput) String() string {
5598	return awsutil.Prettify(s)
5599}
5600
5601// GoString returns the string representation
5602func (s CreateBotVersionInput) GoString() string {
5603	return s.String()
5604}
5605
5606// Validate inspects the fields of the type to determine if they are valid.
5607func (s *CreateBotVersionInput) Validate() error {
5608	invalidParams := request.ErrInvalidParams{Context: "CreateBotVersionInput"}
5609	if s.Name == nil {
5610		invalidParams.Add(request.NewErrParamRequired("Name"))
5611	}
5612	if s.Name != nil && len(*s.Name) < 2 {
5613		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
5614	}
5615
5616	if invalidParams.Len() > 0 {
5617		return invalidParams
5618	}
5619	return nil
5620}
5621
5622// SetChecksum sets the Checksum field's value.
5623func (s *CreateBotVersionInput) SetChecksum(v string) *CreateBotVersionInput {
5624	s.Checksum = &v
5625	return s
5626}
5627
5628// SetName sets the Name field's value.
5629func (s *CreateBotVersionInput) SetName(v string) *CreateBotVersionInput {
5630	s.Name = &v
5631	return s
5632}
5633
5634type CreateBotVersionOutput struct {
5635	_ struct{} `type:"structure"`
5636
5637	// The message that Amazon Lex uses to cancel a conversation. For more information,
5638	// see PutBot.
5639	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
5640
5641	// Checksum identifying the version of the bot that was created.
5642	Checksum *string `locationName:"checksum" type:"string"`
5643
5644	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
5645	// you must specify whether your use of Amazon Lex is related to a website,
5646	// program, or other application that is directed or targeted, in whole or in
5647	// part, to children under age 13 and subject to the Children's Online Privacy
5648	// Protection Act (COPPA) by specifying true or false in the childDirected field.
5649	// By specifying true in the childDirected field, you confirm that your use
5650	// of Amazon Lex is related to a website, program, or other application that
5651	// is directed or targeted, in whole or in part, to children under age 13 and
5652	// subject to COPPA. By specifying false in the childDirected field, you confirm
5653	// that your use of Amazon Lex is not related to a website, program, or other
5654	// application that is directed or targeted, in whole or in part, to children
5655	// under age 13 and subject to COPPA. You may not specify a default value for
5656	// the childDirected field that does not accurately reflect whether your use
5657	// of Amazon Lex is related to a website, program, or other application that
5658	// is directed or targeted, in whole or in part, to children under age 13 and
5659	// subject to COPPA.
5660	//
5661	// If your use of Amazon Lex relates to a website, program, or other application
5662	// that is directed in whole or in part, to children under age 13, you must
5663	// obtain any required verifiable parental consent under COPPA. For information
5664	// regarding the use of Amazon Lex in connection with websites, programs, or
5665	// other applications that are directed or targeted, in whole or in part, to
5666	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
5667	ChildDirected *bool `locationName:"childDirected" type:"boolean"`
5668
5669	// The message that Amazon Lex uses when it doesn't understand the user's request.
5670	// For more information, see PutBot.
5671	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
5672
5673	// The date when the bot version was created.
5674	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
5675
5676	// A description of the bot.
5677	Description *string `locationName:"description" type:"string"`
5678
5679	// Indicates whether utterances entered by the user should be sent to Amazon
5680	// Comprehend for sentiment analysis.
5681	DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"`
5682
5683	// Indicates whether the bot uses accuracy improvements. true indicates that
5684	// the bot is using the improvements, otherwise, false.
5685	EnableModelImprovements *bool `locationName:"enableModelImprovements" type:"boolean"`
5686
5687	// If status is FAILED, Amazon Lex provides the reason that it failed to build
5688	// the bot.
5689	FailureReason *string `locationName:"failureReason" type:"string"`
5690
5691	// The maximum time in seconds that Amazon Lex retains the data gathered in
5692	// a conversation. For more information, see PutBot.
5693	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
5694
5695	// An array of Intent objects. For more information, see PutBot.
5696	Intents []*Intent `locationName:"intents" type:"list"`
5697
5698	// The date when the $LATEST version of this bot was updated.
5699	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
5700
5701	// Specifies the target locale for the bot.
5702	Locale *string `locationName:"locale" type:"string" enum:"Locale"`
5703
5704	// The name of the bot.
5705	Name *string `locationName:"name" min:"2" type:"string"`
5706
5707	// When you send a request to create or update a bot, Amazon Lex sets the status
5708	// response element to BUILDING. After Amazon Lex builds the bot, it sets status
5709	// to READY. If Amazon Lex can't build the bot, it sets status to FAILED. Amazon
5710	// Lex returns the reason for the failure in the failureReason response element.
5711	Status *string `locationName:"status" type:"string" enum:"Status"`
5712
5713	// The version of the bot.
5714	Version *string `locationName:"version" min:"1" type:"string"`
5715
5716	// The Amazon Polly voice ID that Amazon Lex uses for voice interactions with
5717	// the user.
5718	VoiceId *string `locationName:"voiceId" type:"string"`
5719}
5720
5721// String returns the string representation
5722func (s CreateBotVersionOutput) String() string {
5723	return awsutil.Prettify(s)
5724}
5725
5726// GoString returns the string representation
5727func (s CreateBotVersionOutput) GoString() string {
5728	return s.String()
5729}
5730
5731// SetAbortStatement sets the AbortStatement field's value.
5732func (s *CreateBotVersionOutput) SetAbortStatement(v *Statement) *CreateBotVersionOutput {
5733	s.AbortStatement = v
5734	return s
5735}
5736
5737// SetChecksum sets the Checksum field's value.
5738func (s *CreateBotVersionOutput) SetChecksum(v string) *CreateBotVersionOutput {
5739	s.Checksum = &v
5740	return s
5741}
5742
5743// SetChildDirected sets the ChildDirected field's value.
5744func (s *CreateBotVersionOutput) SetChildDirected(v bool) *CreateBotVersionOutput {
5745	s.ChildDirected = &v
5746	return s
5747}
5748
5749// SetClarificationPrompt sets the ClarificationPrompt field's value.
5750func (s *CreateBotVersionOutput) SetClarificationPrompt(v *Prompt) *CreateBotVersionOutput {
5751	s.ClarificationPrompt = v
5752	return s
5753}
5754
5755// SetCreatedDate sets the CreatedDate field's value.
5756func (s *CreateBotVersionOutput) SetCreatedDate(v time.Time) *CreateBotVersionOutput {
5757	s.CreatedDate = &v
5758	return s
5759}
5760
5761// SetDescription sets the Description field's value.
5762func (s *CreateBotVersionOutput) SetDescription(v string) *CreateBotVersionOutput {
5763	s.Description = &v
5764	return s
5765}
5766
5767// SetDetectSentiment sets the DetectSentiment field's value.
5768func (s *CreateBotVersionOutput) SetDetectSentiment(v bool) *CreateBotVersionOutput {
5769	s.DetectSentiment = &v
5770	return s
5771}
5772
5773// SetEnableModelImprovements sets the EnableModelImprovements field's value.
5774func (s *CreateBotVersionOutput) SetEnableModelImprovements(v bool) *CreateBotVersionOutput {
5775	s.EnableModelImprovements = &v
5776	return s
5777}
5778
5779// SetFailureReason sets the FailureReason field's value.
5780func (s *CreateBotVersionOutput) SetFailureReason(v string) *CreateBotVersionOutput {
5781	s.FailureReason = &v
5782	return s
5783}
5784
5785// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
5786func (s *CreateBotVersionOutput) SetIdleSessionTTLInSeconds(v int64) *CreateBotVersionOutput {
5787	s.IdleSessionTTLInSeconds = &v
5788	return s
5789}
5790
5791// SetIntents sets the Intents field's value.
5792func (s *CreateBotVersionOutput) SetIntents(v []*Intent) *CreateBotVersionOutput {
5793	s.Intents = v
5794	return s
5795}
5796
5797// SetLastUpdatedDate sets the LastUpdatedDate field's value.
5798func (s *CreateBotVersionOutput) SetLastUpdatedDate(v time.Time) *CreateBotVersionOutput {
5799	s.LastUpdatedDate = &v
5800	return s
5801}
5802
5803// SetLocale sets the Locale field's value.
5804func (s *CreateBotVersionOutput) SetLocale(v string) *CreateBotVersionOutput {
5805	s.Locale = &v
5806	return s
5807}
5808
5809// SetName sets the Name field's value.
5810func (s *CreateBotVersionOutput) SetName(v string) *CreateBotVersionOutput {
5811	s.Name = &v
5812	return s
5813}
5814
5815// SetStatus sets the Status field's value.
5816func (s *CreateBotVersionOutput) SetStatus(v string) *CreateBotVersionOutput {
5817	s.Status = &v
5818	return s
5819}
5820
5821// SetVersion sets the Version field's value.
5822func (s *CreateBotVersionOutput) SetVersion(v string) *CreateBotVersionOutput {
5823	s.Version = &v
5824	return s
5825}
5826
5827// SetVoiceId sets the VoiceId field's value.
5828func (s *CreateBotVersionOutput) SetVoiceId(v string) *CreateBotVersionOutput {
5829	s.VoiceId = &v
5830	return s
5831}
5832
5833type CreateIntentVersionInput struct {
5834	_ struct{} `type:"structure"`
5835
5836	// Checksum of the $LATEST version of the intent that should be used to create
5837	// the new version. If you specify a checksum and the $LATEST version of the
5838	// intent has a different checksum, Amazon Lex returns a PreconditionFailedException
5839	// exception and doesn't publish a new version. If you don't specify a checksum,
5840	// Amazon Lex publishes the $LATEST version.
5841	Checksum *string `locationName:"checksum" type:"string"`
5842
5843	// The name of the intent that you want to create a new version of. The name
5844	// is case sensitive.
5845	//
5846	// Name is a required field
5847	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5848}
5849
5850// String returns the string representation
5851func (s CreateIntentVersionInput) String() string {
5852	return awsutil.Prettify(s)
5853}
5854
5855// GoString returns the string representation
5856func (s CreateIntentVersionInput) GoString() string {
5857	return s.String()
5858}
5859
5860// Validate inspects the fields of the type to determine if they are valid.
5861func (s *CreateIntentVersionInput) Validate() error {
5862	invalidParams := request.ErrInvalidParams{Context: "CreateIntentVersionInput"}
5863	if s.Name == nil {
5864		invalidParams.Add(request.NewErrParamRequired("Name"))
5865	}
5866	if s.Name != nil && len(*s.Name) < 1 {
5867		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5868	}
5869
5870	if invalidParams.Len() > 0 {
5871		return invalidParams
5872	}
5873	return nil
5874}
5875
5876// SetChecksum sets the Checksum field's value.
5877func (s *CreateIntentVersionInput) SetChecksum(v string) *CreateIntentVersionInput {
5878	s.Checksum = &v
5879	return s
5880}
5881
5882// SetName sets the Name field's value.
5883func (s *CreateIntentVersionInput) SetName(v string) *CreateIntentVersionInput {
5884	s.Name = &v
5885	return s
5886}
5887
5888type CreateIntentVersionOutput struct {
5889	_ struct{} `type:"structure"`
5890
5891	// Checksum of the intent version created.
5892	Checksum *string `locationName:"checksum" type:"string"`
5893
5894	// After the Lambda function specified in the fulfillmentActivity field fulfills
5895	// the intent, Amazon Lex conveys this statement to the user.
5896	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
5897
5898	// If defined, the prompt that Amazon Lex uses to confirm the user's intent
5899	// before fulfilling it.
5900	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
5901
5902	// The date that the intent was created.
5903	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
5904
5905	// A description of the intent.
5906	Description *string `locationName:"description" type:"string"`
5907
5908	// If defined, Amazon Lex invokes this Lambda function for each user input.
5909	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
5910
5911	// If defined, Amazon Lex uses this prompt to solicit additional user activity
5912	// after the intent is fulfilled.
5913	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
5914
5915	// Describes how the intent is fulfilled.
5916	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
5917
5918	// An array of InputContext objects that lists the contexts that must be active
5919	// for Amazon Lex to choose the intent in a conversation with the user.
5920	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
5921
5922	// Configuration information, if any, for connecting an Amazon Kendra index
5923	// with the AMAZON.KendraSearchIntent intent.
5924	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
5925
5926	// The date that the intent was updated.
5927	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
5928
5929	// The name of the intent.
5930	Name *string `locationName:"name" min:"1" type:"string"`
5931
5932	// An array of OutputContext objects that lists the contexts that the intent
5933	// activates when the intent is fulfilled.
5934	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
5935
5936	// A unique identifier for a built-in intent.
5937	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
5938
5939	// If the user answers "no" to the question defined in confirmationPrompt, Amazon
5940	// Lex responds with this statement to acknowledge that the intent was canceled.
5941	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
5942
5943	// An array of sample utterances configured for the intent.
5944	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
5945
5946	// An array of slot types that defines the information required to fulfill the
5947	// intent.
5948	Slots []*Slot `locationName:"slots" type:"list"`
5949
5950	// The version number assigned to the new version of the intent.
5951	Version *string `locationName:"version" min:"1" type:"string"`
5952}
5953
5954// String returns the string representation
5955func (s CreateIntentVersionOutput) String() string {
5956	return awsutil.Prettify(s)
5957}
5958
5959// GoString returns the string representation
5960func (s CreateIntentVersionOutput) GoString() string {
5961	return s.String()
5962}
5963
5964// SetChecksum sets the Checksum field's value.
5965func (s *CreateIntentVersionOutput) SetChecksum(v string) *CreateIntentVersionOutput {
5966	s.Checksum = &v
5967	return s
5968}
5969
5970// SetConclusionStatement sets the ConclusionStatement field's value.
5971func (s *CreateIntentVersionOutput) SetConclusionStatement(v *Statement) *CreateIntentVersionOutput {
5972	s.ConclusionStatement = v
5973	return s
5974}
5975
5976// SetConfirmationPrompt sets the ConfirmationPrompt field's value.
5977func (s *CreateIntentVersionOutput) SetConfirmationPrompt(v *Prompt) *CreateIntentVersionOutput {
5978	s.ConfirmationPrompt = v
5979	return s
5980}
5981
5982// SetCreatedDate sets the CreatedDate field's value.
5983func (s *CreateIntentVersionOutput) SetCreatedDate(v time.Time) *CreateIntentVersionOutput {
5984	s.CreatedDate = &v
5985	return s
5986}
5987
5988// SetDescription sets the Description field's value.
5989func (s *CreateIntentVersionOutput) SetDescription(v string) *CreateIntentVersionOutput {
5990	s.Description = &v
5991	return s
5992}
5993
5994// SetDialogCodeHook sets the DialogCodeHook field's value.
5995func (s *CreateIntentVersionOutput) SetDialogCodeHook(v *CodeHook) *CreateIntentVersionOutput {
5996	s.DialogCodeHook = v
5997	return s
5998}
5999
6000// SetFollowUpPrompt sets the FollowUpPrompt field's value.
6001func (s *CreateIntentVersionOutput) SetFollowUpPrompt(v *FollowUpPrompt) *CreateIntentVersionOutput {
6002	s.FollowUpPrompt = v
6003	return s
6004}
6005
6006// SetFulfillmentActivity sets the FulfillmentActivity field's value.
6007func (s *CreateIntentVersionOutput) SetFulfillmentActivity(v *FulfillmentActivity) *CreateIntentVersionOutput {
6008	s.FulfillmentActivity = v
6009	return s
6010}
6011
6012// SetInputContexts sets the InputContexts field's value.
6013func (s *CreateIntentVersionOutput) SetInputContexts(v []*InputContext) *CreateIntentVersionOutput {
6014	s.InputContexts = v
6015	return s
6016}
6017
6018// SetKendraConfiguration sets the KendraConfiguration field's value.
6019func (s *CreateIntentVersionOutput) SetKendraConfiguration(v *KendraConfiguration) *CreateIntentVersionOutput {
6020	s.KendraConfiguration = v
6021	return s
6022}
6023
6024// SetLastUpdatedDate sets the LastUpdatedDate field's value.
6025func (s *CreateIntentVersionOutput) SetLastUpdatedDate(v time.Time) *CreateIntentVersionOutput {
6026	s.LastUpdatedDate = &v
6027	return s
6028}
6029
6030// SetName sets the Name field's value.
6031func (s *CreateIntentVersionOutput) SetName(v string) *CreateIntentVersionOutput {
6032	s.Name = &v
6033	return s
6034}
6035
6036// SetOutputContexts sets the OutputContexts field's value.
6037func (s *CreateIntentVersionOutput) SetOutputContexts(v []*OutputContext) *CreateIntentVersionOutput {
6038	s.OutputContexts = v
6039	return s
6040}
6041
6042// SetParentIntentSignature sets the ParentIntentSignature field's value.
6043func (s *CreateIntentVersionOutput) SetParentIntentSignature(v string) *CreateIntentVersionOutput {
6044	s.ParentIntentSignature = &v
6045	return s
6046}
6047
6048// SetRejectionStatement sets the RejectionStatement field's value.
6049func (s *CreateIntentVersionOutput) SetRejectionStatement(v *Statement) *CreateIntentVersionOutput {
6050	s.RejectionStatement = v
6051	return s
6052}
6053
6054// SetSampleUtterances sets the SampleUtterances field's value.
6055func (s *CreateIntentVersionOutput) SetSampleUtterances(v []*string) *CreateIntentVersionOutput {
6056	s.SampleUtterances = v
6057	return s
6058}
6059
6060// SetSlots sets the Slots field's value.
6061func (s *CreateIntentVersionOutput) SetSlots(v []*Slot) *CreateIntentVersionOutput {
6062	s.Slots = v
6063	return s
6064}
6065
6066// SetVersion sets the Version field's value.
6067func (s *CreateIntentVersionOutput) SetVersion(v string) *CreateIntentVersionOutput {
6068	s.Version = &v
6069	return s
6070}
6071
6072type CreateSlotTypeVersionInput struct {
6073	_ struct{} `type:"structure"`
6074
6075	// Checksum for the $LATEST version of the slot type that you want to publish.
6076	// If you specify a checksum and the $LATEST version of the slot type has a
6077	// different checksum, Amazon Lex returns a PreconditionFailedException exception
6078	// and doesn't publish the new version. If you don't specify a checksum, Amazon
6079	// Lex publishes the $LATEST version.
6080	Checksum *string `locationName:"checksum" type:"string"`
6081
6082	// The name of the slot type that you want to create a new version for. The
6083	// name is case sensitive.
6084	//
6085	// Name is a required field
6086	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6087}
6088
6089// String returns the string representation
6090func (s CreateSlotTypeVersionInput) String() string {
6091	return awsutil.Prettify(s)
6092}
6093
6094// GoString returns the string representation
6095func (s CreateSlotTypeVersionInput) GoString() string {
6096	return s.String()
6097}
6098
6099// Validate inspects the fields of the type to determine if they are valid.
6100func (s *CreateSlotTypeVersionInput) Validate() error {
6101	invalidParams := request.ErrInvalidParams{Context: "CreateSlotTypeVersionInput"}
6102	if s.Name == nil {
6103		invalidParams.Add(request.NewErrParamRequired("Name"))
6104	}
6105	if s.Name != nil && len(*s.Name) < 1 {
6106		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6107	}
6108
6109	if invalidParams.Len() > 0 {
6110		return invalidParams
6111	}
6112	return nil
6113}
6114
6115// SetChecksum sets the Checksum field's value.
6116func (s *CreateSlotTypeVersionInput) SetChecksum(v string) *CreateSlotTypeVersionInput {
6117	s.Checksum = &v
6118	return s
6119}
6120
6121// SetName sets the Name field's value.
6122func (s *CreateSlotTypeVersionInput) SetName(v string) *CreateSlotTypeVersionInput {
6123	s.Name = &v
6124	return s
6125}
6126
6127type CreateSlotTypeVersionOutput struct {
6128	_ struct{} `type:"structure"`
6129
6130	// Checksum of the $LATEST version of the slot type.
6131	Checksum *string `locationName:"checksum" type:"string"`
6132
6133	// The date that the slot type was created.
6134	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
6135
6136	// A description of the slot type.
6137	Description *string `locationName:"description" type:"string"`
6138
6139	// A list of EnumerationValue objects that defines the values that the slot
6140	// type can take.
6141	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" type:"list"`
6142
6143	// The date that the slot type was updated. When you create a resource, the
6144	// creation date and last update date are the same.
6145	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
6146
6147	// The name of the slot type.
6148	Name *string `locationName:"name" min:"1" type:"string"`
6149
6150	// The built-in slot type used a the parent of the slot type.
6151	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" min:"1" type:"string"`
6152
6153	// Configuration information that extends the parent built-in slot type.
6154	SlotTypeConfigurations []*SlotTypeConfiguration `locationName:"slotTypeConfigurations" type:"list"`
6155
6156	// The strategy that Amazon Lex uses to determine the value of the slot. For
6157	// more information, see PutSlotType.
6158	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
6159
6160	// The version assigned to the new slot type version.
6161	Version *string `locationName:"version" min:"1" type:"string"`
6162}
6163
6164// String returns the string representation
6165func (s CreateSlotTypeVersionOutput) String() string {
6166	return awsutil.Prettify(s)
6167}
6168
6169// GoString returns the string representation
6170func (s CreateSlotTypeVersionOutput) GoString() string {
6171	return s.String()
6172}
6173
6174// SetChecksum sets the Checksum field's value.
6175func (s *CreateSlotTypeVersionOutput) SetChecksum(v string) *CreateSlotTypeVersionOutput {
6176	s.Checksum = &v
6177	return s
6178}
6179
6180// SetCreatedDate sets the CreatedDate field's value.
6181func (s *CreateSlotTypeVersionOutput) SetCreatedDate(v time.Time) *CreateSlotTypeVersionOutput {
6182	s.CreatedDate = &v
6183	return s
6184}
6185
6186// SetDescription sets the Description field's value.
6187func (s *CreateSlotTypeVersionOutput) SetDescription(v string) *CreateSlotTypeVersionOutput {
6188	s.Description = &v
6189	return s
6190}
6191
6192// SetEnumerationValues sets the EnumerationValues field's value.
6193func (s *CreateSlotTypeVersionOutput) SetEnumerationValues(v []*EnumerationValue) *CreateSlotTypeVersionOutput {
6194	s.EnumerationValues = v
6195	return s
6196}
6197
6198// SetLastUpdatedDate sets the LastUpdatedDate field's value.
6199func (s *CreateSlotTypeVersionOutput) SetLastUpdatedDate(v time.Time) *CreateSlotTypeVersionOutput {
6200	s.LastUpdatedDate = &v
6201	return s
6202}
6203
6204// SetName sets the Name field's value.
6205func (s *CreateSlotTypeVersionOutput) SetName(v string) *CreateSlotTypeVersionOutput {
6206	s.Name = &v
6207	return s
6208}
6209
6210// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
6211func (s *CreateSlotTypeVersionOutput) SetParentSlotTypeSignature(v string) *CreateSlotTypeVersionOutput {
6212	s.ParentSlotTypeSignature = &v
6213	return s
6214}
6215
6216// SetSlotTypeConfigurations sets the SlotTypeConfigurations field's value.
6217func (s *CreateSlotTypeVersionOutput) SetSlotTypeConfigurations(v []*SlotTypeConfiguration) *CreateSlotTypeVersionOutput {
6218	s.SlotTypeConfigurations = v
6219	return s
6220}
6221
6222// SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
6223func (s *CreateSlotTypeVersionOutput) SetValueSelectionStrategy(v string) *CreateSlotTypeVersionOutput {
6224	s.ValueSelectionStrategy = &v
6225	return s
6226}
6227
6228// SetVersion sets the Version field's value.
6229func (s *CreateSlotTypeVersionOutput) SetVersion(v string) *CreateSlotTypeVersionOutput {
6230	s.Version = &v
6231	return s
6232}
6233
6234type DeleteBotAliasInput struct {
6235	_ struct{} `type:"structure"`
6236
6237	// The name of the bot that the alias points to.
6238	//
6239	// BotName is a required field
6240	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
6241
6242	// The name of the alias to delete. The name is case sensitive.
6243	//
6244	// Name is a required field
6245	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6246}
6247
6248// String returns the string representation
6249func (s DeleteBotAliasInput) String() string {
6250	return awsutil.Prettify(s)
6251}
6252
6253// GoString returns the string representation
6254func (s DeleteBotAliasInput) GoString() string {
6255	return s.String()
6256}
6257
6258// Validate inspects the fields of the type to determine if they are valid.
6259func (s *DeleteBotAliasInput) Validate() error {
6260	invalidParams := request.ErrInvalidParams{Context: "DeleteBotAliasInput"}
6261	if s.BotName == nil {
6262		invalidParams.Add(request.NewErrParamRequired("BotName"))
6263	}
6264	if s.BotName != nil && len(*s.BotName) < 2 {
6265		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
6266	}
6267	if s.Name == nil {
6268		invalidParams.Add(request.NewErrParamRequired("Name"))
6269	}
6270	if s.Name != nil && len(*s.Name) < 1 {
6271		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6272	}
6273
6274	if invalidParams.Len() > 0 {
6275		return invalidParams
6276	}
6277	return nil
6278}
6279
6280// SetBotName sets the BotName field's value.
6281func (s *DeleteBotAliasInput) SetBotName(v string) *DeleteBotAliasInput {
6282	s.BotName = &v
6283	return s
6284}
6285
6286// SetName sets the Name field's value.
6287func (s *DeleteBotAliasInput) SetName(v string) *DeleteBotAliasInput {
6288	s.Name = &v
6289	return s
6290}
6291
6292type DeleteBotAliasOutput struct {
6293	_ struct{} `type:"structure"`
6294}
6295
6296// String returns the string representation
6297func (s DeleteBotAliasOutput) String() string {
6298	return awsutil.Prettify(s)
6299}
6300
6301// GoString returns the string representation
6302func (s DeleteBotAliasOutput) GoString() string {
6303	return s.String()
6304}
6305
6306type DeleteBotChannelAssociationInput struct {
6307	_ struct{} `type:"structure"`
6308
6309	// An alias that points to the specific version of the Amazon Lex bot to which
6310	// this association is being made.
6311	//
6312	// BotAlias is a required field
6313	BotAlias *string `location:"uri" locationName:"aliasName" min:"1" type:"string" required:"true"`
6314
6315	// The name of the Amazon Lex bot.
6316	//
6317	// BotName is a required field
6318	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
6319
6320	// The name of the association. The name is case sensitive.
6321	//
6322	// Name is a required field
6323	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6324}
6325
6326// String returns the string representation
6327func (s DeleteBotChannelAssociationInput) String() string {
6328	return awsutil.Prettify(s)
6329}
6330
6331// GoString returns the string representation
6332func (s DeleteBotChannelAssociationInput) GoString() string {
6333	return s.String()
6334}
6335
6336// Validate inspects the fields of the type to determine if they are valid.
6337func (s *DeleteBotChannelAssociationInput) Validate() error {
6338	invalidParams := request.ErrInvalidParams{Context: "DeleteBotChannelAssociationInput"}
6339	if s.BotAlias == nil {
6340		invalidParams.Add(request.NewErrParamRequired("BotAlias"))
6341	}
6342	if s.BotAlias != nil && len(*s.BotAlias) < 1 {
6343		invalidParams.Add(request.NewErrParamMinLen("BotAlias", 1))
6344	}
6345	if s.BotName == nil {
6346		invalidParams.Add(request.NewErrParamRequired("BotName"))
6347	}
6348	if s.BotName != nil && len(*s.BotName) < 2 {
6349		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
6350	}
6351	if s.Name == nil {
6352		invalidParams.Add(request.NewErrParamRequired("Name"))
6353	}
6354	if s.Name != nil && len(*s.Name) < 1 {
6355		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6356	}
6357
6358	if invalidParams.Len() > 0 {
6359		return invalidParams
6360	}
6361	return nil
6362}
6363
6364// SetBotAlias sets the BotAlias field's value.
6365func (s *DeleteBotChannelAssociationInput) SetBotAlias(v string) *DeleteBotChannelAssociationInput {
6366	s.BotAlias = &v
6367	return s
6368}
6369
6370// SetBotName sets the BotName field's value.
6371func (s *DeleteBotChannelAssociationInput) SetBotName(v string) *DeleteBotChannelAssociationInput {
6372	s.BotName = &v
6373	return s
6374}
6375
6376// SetName sets the Name field's value.
6377func (s *DeleteBotChannelAssociationInput) SetName(v string) *DeleteBotChannelAssociationInput {
6378	s.Name = &v
6379	return s
6380}
6381
6382type DeleteBotChannelAssociationOutput struct {
6383	_ struct{} `type:"structure"`
6384}
6385
6386// String returns the string representation
6387func (s DeleteBotChannelAssociationOutput) String() string {
6388	return awsutil.Prettify(s)
6389}
6390
6391// GoString returns the string representation
6392func (s DeleteBotChannelAssociationOutput) GoString() string {
6393	return s.String()
6394}
6395
6396type DeleteBotInput struct {
6397	_ struct{} `type:"structure"`
6398
6399	// The name of the bot. The name is case sensitive.
6400	//
6401	// Name is a required field
6402	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
6403}
6404
6405// String returns the string representation
6406func (s DeleteBotInput) String() string {
6407	return awsutil.Prettify(s)
6408}
6409
6410// GoString returns the string representation
6411func (s DeleteBotInput) GoString() string {
6412	return s.String()
6413}
6414
6415// Validate inspects the fields of the type to determine if they are valid.
6416func (s *DeleteBotInput) Validate() error {
6417	invalidParams := request.ErrInvalidParams{Context: "DeleteBotInput"}
6418	if s.Name == nil {
6419		invalidParams.Add(request.NewErrParamRequired("Name"))
6420	}
6421	if s.Name != nil && len(*s.Name) < 2 {
6422		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
6423	}
6424
6425	if invalidParams.Len() > 0 {
6426		return invalidParams
6427	}
6428	return nil
6429}
6430
6431// SetName sets the Name field's value.
6432func (s *DeleteBotInput) SetName(v string) *DeleteBotInput {
6433	s.Name = &v
6434	return s
6435}
6436
6437type DeleteBotOutput struct {
6438	_ struct{} `type:"structure"`
6439}
6440
6441// String returns the string representation
6442func (s DeleteBotOutput) String() string {
6443	return awsutil.Prettify(s)
6444}
6445
6446// GoString returns the string representation
6447func (s DeleteBotOutput) GoString() string {
6448	return s.String()
6449}
6450
6451type DeleteBotVersionInput struct {
6452	_ struct{} `type:"structure"`
6453
6454	// The name of the bot.
6455	//
6456	// Name is a required field
6457	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
6458
6459	// The version of the bot to delete. You cannot delete the $LATEST version of
6460	// the bot. To delete the $LATEST version, use the DeleteBot operation.
6461	//
6462	// Version is a required field
6463	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
6464}
6465
6466// String returns the string representation
6467func (s DeleteBotVersionInput) String() string {
6468	return awsutil.Prettify(s)
6469}
6470
6471// GoString returns the string representation
6472func (s DeleteBotVersionInput) GoString() string {
6473	return s.String()
6474}
6475
6476// Validate inspects the fields of the type to determine if they are valid.
6477func (s *DeleteBotVersionInput) Validate() error {
6478	invalidParams := request.ErrInvalidParams{Context: "DeleteBotVersionInput"}
6479	if s.Name == nil {
6480		invalidParams.Add(request.NewErrParamRequired("Name"))
6481	}
6482	if s.Name != nil && len(*s.Name) < 2 {
6483		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
6484	}
6485	if s.Version == nil {
6486		invalidParams.Add(request.NewErrParamRequired("Version"))
6487	}
6488	if s.Version != nil && len(*s.Version) < 1 {
6489		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
6490	}
6491
6492	if invalidParams.Len() > 0 {
6493		return invalidParams
6494	}
6495	return nil
6496}
6497
6498// SetName sets the Name field's value.
6499func (s *DeleteBotVersionInput) SetName(v string) *DeleteBotVersionInput {
6500	s.Name = &v
6501	return s
6502}
6503
6504// SetVersion sets the Version field's value.
6505func (s *DeleteBotVersionInput) SetVersion(v string) *DeleteBotVersionInput {
6506	s.Version = &v
6507	return s
6508}
6509
6510type DeleteBotVersionOutput struct {
6511	_ struct{} `type:"structure"`
6512}
6513
6514// String returns the string representation
6515func (s DeleteBotVersionOutput) String() string {
6516	return awsutil.Prettify(s)
6517}
6518
6519// GoString returns the string representation
6520func (s DeleteBotVersionOutput) GoString() string {
6521	return s.String()
6522}
6523
6524type DeleteIntentInput struct {
6525	_ struct{} `type:"structure"`
6526
6527	// The name of the intent. The name is case sensitive.
6528	//
6529	// Name is a required field
6530	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6531}
6532
6533// String returns the string representation
6534func (s DeleteIntentInput) String() string {
6535	return awsutil.Prettify(s)
6536}
6537
6538// GoString returns the string representation
6539func (s DeleteIntentInput) GoString() string {
6540	return s.String()
6541}
6542
6543// Validate inspects the fields of the type to determine if they are valid.
6544func (s *DeleteIntentInput) Validate() error {
6545	invalidParams := request.ErrInvalidParams{Context: "DeleteIntentInput"}
6546	if s.Name == nil {
6547		invalidParams.Add(request.NewErrParamRequired("Name"))
6548	}
6549	if s.Name != nil && len(*s.Name) < 1 {
6550		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6551	}
6552
6553	if invalidParams.Len() > 0 {
6554		return invalidParams
6555	}
6556	return nil
6557}
6558
6559// SetName sets the Name field's value.
6560func (s *DeleteIntentInput) SetName(v string) *DeleteIntentInput {
6561	s.Name = &v
6562	return s
6563}
6564
6565type DeleteIntentOutput struct {
6566	_ struct{} `type:"structure"`
6567}
6568
6569// String returns the string representation
6570func (s DeleteIntentOutput) String() string {
6571	return awsutil.Prettify(s)
6572}
6573
6574// GoString returns the string representation
6575func (s DeleteIntentOutput) GoString() string {
6576	return s.String()
6577}
6578
6579type DeleteIntentVersionInput struct {
6580	_ struct{} `type:"structure"`
6581
6582	// The name of the intent.
6583	//
6584	// Name is a required field
6585	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6586
6587	// The version of the intent to delete. You cannot delete the $LATEST version
6588	// of the intent. To delete the $LATEST version, use the DeleteIntent operation.
6589	//
6590	// Version is a required field
6591	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
6592}
6593
6594// String returns the string representation
6595func (s DeleteIntentVersionInput) String() string {
6596	return awsutil.Prettify(s)
6597}
6598
6599// GoString returns the string representation
6600func (s DeleteIntentVersionInput) GoString() string {
6601	return s.String()
6602}
6603
6604// Validate inspects the fields of the type to determine if they are valid.
6605func (s *DeleteIntentVersionInput) Validate() error {
6606	invalidParams := request.ErrInvalidParams{Context: "DeleteIntentVersionInput"}
6607	if s.Name == nil {
6608		invalidParams.Add(request.NewErrParamRequired("Name"))
6609	}
6610	if s.Name != nil && len(*s.Name) < 1 {
6611		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6612	}
6613	if s.Version == nil {
6614		invalidParams.Add(request.NewErrParamRequired("Version"))
6615	}
6616	if s.Version != nil && len(*s.Version) < 1 {
6617		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
6618	}
6619
6620	if invalidParams.Len() > 0 {
6621		return invalidParams
6622	}
6623	return nil
6624}
6625
6626// SetName sets the Name field's value.
6627func (s *DeleteIntentVersionInput) SetName(v string) *DeleteIntentVersionInput {
6628	s.Name = &v
6629	return s
6630}
6631
6632// SetVersion sets the Version field's value.
6633func (s *DeleteIntentVersionInput) SetVersion(v string) *DeleteIntentVersionInput {
6634	s.Version = &v
6635	return s
6636}
6637
6638type DeleteIntentVersionOutput struct {
6639	_ struct{} `type:"structure"`
6640}
6641
6642// String returns the string representation
6643func (s DeleteIntentVersionOutput) String() string {
6644	return awsutil.Prettify(s)
6645}
6646
6647// GoString returns the string representation
6648func (s DeleteIntentVersionOutput) GoString() string {
6649	return s.String()
6650}
6651
6652type DeleteSlotTypeInput struct {
6653	_ struct{} `type:"structure"`
6654
6655	// The name of the slot type. The name is case sensitive.
6656	//
6657	// Name is a required field
6658	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6659}
6660
6661// String returns the string representation
6662func (s DeleteSlotTypeInput) String() string {
6663	return awsutil.Prettify(s)
6664}
6665
6666// GoString returns the string representation
6667func (s DeleteSlotTypeInput) GoString() string {
6668	return s.String()
6669}
6670
6671// Validate inspects the fields of the type to determine if they are valid.
6672func (s *DeleteSlotTypeInput) Validate() error {
6673	invalidParams := request.ErrInvalidParams{Context: "DeleteSlotTypeInput"}
6674	if s.Name == nil {
6675		invalidParams.Add(request.NewErrParamRequired("Name"))
6676	}
6677	if s.Name != nil && len(*s.Name) < 1 {
6678		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6679	}
6680
6681	if invalidParams.Len() > 0 {
6682		return invalidParams
6683	}
6684	return nil
6685}
6686
6687// SetName sets the Name field's value.
6688func (s *DeleteSlotTypeInput) SetName(v string) *DeleteSlotTypeInput {
6689	s.Name = &v
6690	return s
6691}
6692
6693type DeleteSlotTypeOutput struct {
6694	_ struct{} `type:"structure"`
6695}
6696
6697// String returns the string representation
6698func (s DeleteSlotTypeOutput) String() string {
6699	return awsutil.Prettify(s)
6700}
6701
6702// GoString returns the string representation
6703func (s DeleteSlotTypeOutput) GoString() string {
6704	return s.String()
6705}
6706
6707type DeleteSlotTypeVersionInput struct {
6708	_ struct{} `type:"structure"`
6709
6710	// The name of the slot type.
6711	//
6712	// Name is a required field
6713	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6714
6715	// The version of the slot type to delete. You cannot delete the $LATEST version
6716	// of the slot type. To delete the $LATEST version, use the DeleteSlotType operation.
6717	//
6718	// Version is a required field
6719	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
6720}
6721
6722// String returns the string representation
6723func (s DeleteSlotTypeVersionInput) String() string {
6724	return awsutil.Prettify(s)
6725}
6726
6727// GoString returns the string representation
6728func (s DeleteSlotTypeVersionInput) GoString() string {
6729	return s.String()
6730}
6731
6732// Validate inspects the fields of the type to determine if they are valid.
6733func (s *DeleteSlotTypeVersionInput) Validate() error {
6734	invalidParams := request.ErrInvalidParams{Context: "DeleteSlotTypeVersionInput"}
6735	if s.Name == nil {
6736		invalidParams.Add(request.NewErrParamRequired("Name"))
6737	}
6738	if s.Name != nil && len(*s.Name) < 1 {
6739		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6740	}
6741	if s.Version == nil {
6742		invalidParams.Add(request.NewErrParamRequired("Version"))
6743	}
6744	if s.Version != nil && len(*s.Version) < 1 {
6745		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
6746	}
6747
6748	if invalidParams.Len() > 0 {
6749		return invalidParams
6750	}
6751	return nil
6752}
6753
6754// SetName sets the Name field's value.
6755func (s *DeleteSlotTypeVersionInput) SetName(v string) *DeleteSlotTypeVersionInput {
6756	s.Name = &v
6757	return s
6758}
6759
6760// SetVersion sets the Version field's value.
6761func (s *DeleteSlotTypeVersionInput) SetVersion(v string) *DeleteSlotTypeVersionInput {
6762	s.Version = &v
6763	return s
6764}
6765
6766type DeleteSlotTypeVersionOutput struct {
6767	_ struct{} `type:"structure"`
6768}
6769
6770// String returns the string representation
6771func (s DeleteSlotTypeVersionOutput) String() string {
6772	return awsutil.Prettify(s)
6773}
6774
6775// GoString returns the string representation
6776func (s DeleteSlotTypeVersionOutput) GoString() string {
6777	return s.String()
6778}
6779
6780type DeleteUtterancesInput struct {
6781	_ struct{} `type:"structure"`
6782
6783	// The name of the bot that stored the utterances.
6784	//
6785	// BotName is a required field
6786	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
6787
6788	// The unique identifier for the user that made the utterances. This is the
6789	// user ID that was sent in the PostContent (http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html)
6790	// or PostText (http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
6791	// operation request that contained the utterance.
6792	//
6793	// UserId is a required field
6794	UserId *string `location:"uri" locationName:"userId" min:"2" type:"string" required:"true"`
6795}
6796
6797// String returns the string representation
6798func (s DeleteUtterancesInput) String() string {
6799	return awsutil.Prettify(s)
6800}
6801
6802// GoString returns the string representation
6803func (s DeleteUtterancesInput) GoString() string {
6804	return s.String()
6805}
6806
6807// Validate inspects the fields of the type to determine if they are valid.
6808func (s *DeleteUtterancesInput) Validate() error {
6809	invalidParams := request.ErrInvalidParams{Context: "DeleteUtterancesInput"}
6810	if s.BotName == nil {
6811		invalidParams.Add(request.NewErrParamRequired("BotName"))
6812	}
6813	if s.BotName != nil && len(*s.BotName) < 2 {
6814		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
6815	}
6816	if s.UserId == nil {
6817		invalidParams.Add(request.NewErrParamRequired("UserId"))
6818	}
6819	if s.UserId != nil && len(*s.UserId) < 2 {
6820		invalidParams.Add(request.NewErrParamMinLen("UserId", 2))
6821	}
6822
6823	if invalidParams.Len() > 0 {
6824		return invalidParams
6825	}
6826	return nil
6827}
6828
6829// SetBotName sets the BotName field's value.
6830func (s *DeleteUtterancesInput) SetBotName(v string) *DeleteUtterancesInput {
6831	s.BotName = &v
6832	return s
6833}
6834
6835// SetUserId sets the UserId field's value.
6836func (s *DeleteUtterancesInput) SetUserId(v string) *DeleteUtterancesInput {
6837	s.UserId = &v
6838	return s
6839}
6840
6841type DeleteUtterancesOutput struct {
6842	_ struct{} `type:"structure"`
6843}
6844
6845// String returns the string representation
6846func (s DeleteUtterancesOutput) String() string {
6847	return awsutil.Prettify(s)
6848}
6849
6850// GoString returns the string representation
6851func (s DeleteUtterancesOutput) GoString() string {
6852	return s.String()
6853}
6854
6855// Each slot type can have a set of values. Each enumeration value represents
6856// a value the slot type can take.
6857//
6858// For example, a pizza ordering bot could have a slot type that specifies the
6859// type of crust that the pizza should have. The slot type could include the
6860// values
6861//
6862//    * thick
6863//
6864//    * thin
6865//
6866//    * stuffed
6867type EnumerationValue struct {
6868	_ struct{} `type:"structure"`
6869
6870	// Additional values related to the slot type value.
6871	Synonyms []*string `locationName:"synonyms" type:"list"`
6872
6873	// The value of the slot type.
6874	//
6875	// Value is a required field
6876	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
6877}
6878
6879// String returns the string representation
6880func (s EnumerationValue) String() string {
6881	return awsutil.Prettify(s)
6882}
6883
6884// GoString returns the string representation
6885func (s EnumerationValue) GoString() string {
6886	return s.String()
6887}
6888
6889// Validate inspects the fields of the type to determine if they are valid.
6890func (s *EnumerationValue) Validate() error {
6891	invalidParams := request.ErrInvalidParams{Context: "EnumerationValue"}
6892	if s.Value == nil {
6893		invalidParams.Add(request.NewErrParamRequired("Value"))
6894	}
6895	if s.Value != nil && len(*s.Value) < 1 {
6896		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
6897	}
6898
6899	if invalidParams.Len() > 0 {
6900		return invalidParams
6901	}
6902	return nil
6903}
6904
6905// SetSynonyms sets the Synonyms field's value.
6906func (s *EnumerationValue) SetSynonyms(v []*string) *EnumerationValue {
6907	s.Synonyms = v
6908	return s
6909}
6910
6911// SetValue sets the Value field's value.
6912func (s *EnumerationValue) SetValue(v string) *EnumerationValue {
6913	s.Value = &v
6914	return s
6915}
6916
6917// A prompt for additional activity after an intent is fulfilled. For example,
6918// after the OrderPizza intent is fulfilled, you might prompt the user to find
6919// out whether the user wants to order drinks.
6920type FollowUpPrompt struct {
6921	_ struct{} `type:"structure"`
6922
6923	// Prompts for information from the user.
6924	//
6925	// Prompt is a required field
6926	Prompt *Prompt `locationName:"prompt" type:"structure" required:"true"`
6927
6928	// If the user answers "no" to the question defined in the prompt field, Amazon
6929	// Lex responds with this statement to acknowledge that the intent was canceled.
6930	//
6931	// RejectionStatement is a required field
6932	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure" required:"true"`
6933}
6934
6935// String returns the string representation
6936func (s FollowUpPrompt) String() string {
6937	return awsutil.Prettify(s)
6938}
6939
6940// GoString returns the string representation
6941func (s FollowUpPrompt) GoString() string {
6942	return s.String()
6943}
6944
6945// Validate inspects the fields of the type to determine if they are valid.
6946func (s *FollowUpPrompt) Validate() error {
6947	invalidParams := request.ErrInvalidParams{Context: "FollowUpPrompt"}
6948	if s.Prompt == nil {
6949		invalidParams.Add(request.NewErrParamRequired("Prompt"))
6950	}
6951	if s.RejectionStatement == nil {
6952		invalidParams.Add(request.NewErrParamRequired("RejectionStatement"))
6953	}
6954	if s.Prompt != nil {
6955		if err := s.Prompt.Validate(); err != nil {
6956			invalidParams.AddNested("Prompt", err.(request.ErrInvalidParams))
6957		}
6958	}
6959	if s.RejectionStatement != nil {
6960		if err := s.RejectionStatement.Validate(); err != nil {
6961			invalidParams.AddNested("RejectionStatement", err.(request.ErrInvalidParams))
6962		}
6963	}
6964
6965	if invalidParams.Len() > 0 {
6966		return invalidParams
6967	}
6968	return nil
6969}
6970
6971// SetPrompt sets the Prompt field's value.
6972func (s *FollowUpPrompt) SetPrompt(v *Prompt) *FollowUpPrompt {
6973	s.Prompt = v
6974	return s
6975}
6976
6977// SetRejectionStatement sets the RejectionStatement field's value.
6978func (s *FollowUpPrompt) SetRejectionStatement(v *Statement) *FollowUpPrompt {
6979	s.RejectionStatement = v
6980	return s
6981}
6982
6983// Describes how the intent is fulfilled after the user provides all of the
6984// information required for the intent. You can provide a Lambda function to
6985// process the intent, or you can return the intent information to the client
6986// application. We recommend that you use a Lambda function so that the relevant
6987// logic lives in the Cloud and limit the client-side code primarily to presentation.
6988// If you need to update the logic, you only update the Lambda function; you
6989// don't need to upgrade your client application.
6990//
6991// Consider the following examples:
6992//
6993//    * In a pizza ordering application, after the user provides all of the
6994//    information for placing an order, you use a Lambda function to place an
6995//    order with a pizzeria.
6996//
6997//    * In a gaming application, when a user says "pick up a rock," this information
6998//    must go back to the client application so that it can perform the operation
6999//    and update the graphics. In this case, you want Amazon Lex to return the
7000//    intent data to the client.
7001type FulfillmentActivity struct {
7002	_ struct{} `type:"structure"`
7003
7004	// A description of the Lambda function that is run to fulfill the intent.
7005	CodeHook *CodeHook `locationName:"codeHook" type:"structure"`
7006
7007	// How the intent should be fulfilled, either by running a Lambda function or
7008	// by returning the slot data to the client application.
7009	//
7010	// Type is a required field
7011	Type *string `locationName:"type" type:"string" required:"true" enum:"FulfillmentActivityType"`
7012}
7013
7014// String returns the string representation
7015func (s FulfillmentActivity) String() string {
7016	return awsutil.Prettify(s)
7017}
7018
7019// GoString returns the string representation
7020func (s FulfillmentActivity) GoString() string {
7021	return s.String()
7022}
7023
7024// Validate inspects the fields of the type to determine if they are valid.
7025func (s *FulfillmentActivity) Validate() error {
7026	invalidParams := request.ErrInvalidParams{Context: "FulfillmentActivity"}
7027	if s.Type == nil {
7028		invalidParams.Add(request.NewErrParamRequired("Type"))
7029	}
7030	if s.CodeHook != nil {
7031		if err := s.CodeHook.Validate(); err != nil {
7032			invalidParams.AddNested("CodeHook", err.(request.ErrInvalidParams))
7033		}
7034	}
7035
7036	if invalidParams.Len() > 0 {
7037		return invalidParams
7038	}
7039	return nil
7040}
7041
7042// SetCodeHook sets the CodeHook field's value.
7043func (s *FulfillmentActivity) SetCodeHook(v *CodeHook) *FulfillmentActivity {
7044	s.CodeHook = v
7045	return s
7046}
7047
7048// SetType sets the Type field's value.
7049func (s *FulfillmentActivity) SetType(v string) *FulfillmentActivity {
7050	s.Type = &v
7051	return s
7052}
7053
7054type GetBotAliasInput struct {
7055	_ struct{} `type:"structure"`
7056
7057	// The name of the bot.
7058	//
7059	// BotName is a required field
7060	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
7061
7062	// The name of the bot alias. The name is case sensitive.
7063	//
7064	// Name is a required field
7065	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
7066}
7067
7068// String returns the string representation
7069func (s GetBotAliasInput) String() string {
7070	return awsutil.Prettify(s)
7071}
7072
7073// GoString returns the string representation
7074func (s GetBotAliasInput) GoString() string {
7075	return s.String()
7076}
7077
7078// Validate inspects the fields of the type to determine if they are valid.
7079func (s *GetBotAliasInput) Validate() error {
7080	invalidParams := request.ErrInvalidParams{Context: "GetBotAliasInput"}
7081	if s.BotName == nil {
7082		invalidParams.Add(request.NewErrParamRequired("BotName"))
7083	}
7084	if s.BotName != nil && len(*s.BotName) < 2 {
7085		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
7086	}
7087	if s.Name == nil {
7088		invalidParams.Add(request.NewErrParamRequired("Name"))
7089	}
7090	if s.Name != nil && len(*s.Name) < 1 {
7091		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
7092	}
7093
7094	if invalidParams.Len() > 0 {
7095		return invalidParams
7096	}
7097	return nil
7098}
7099
7100// SetBotName sets the BotName field's value.
7101func (s *GetBotAliasInput) SetBotName(v string) *GetBotAliasInput {
7102	s.BotName = &v
7103	return s
7104}
7105
7106// SetName sets the Name field's value.
7107func (s *GetBotAliasInput) SetName(v string) *GetBotAliasInput {
7108	s.Name = &v
7109	return s
7110}
7111
7112type GetBotAliasOutput struct {
7113	_ struct{} `type:"structure"`
7114
7115	// The name of the bot that the alias points to.
7116	BotName *string `locationName:"botName" min:"2" type:"string"`
7117
7118	// The version of the bot that the alias points to.
7119	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
7120
7121	// Checksum of the bot alias.
7122	Checksum *string `locationName:"checksum" type:"string"`
7123
7124	// The settings that determine how Amazon Lex uses conversation logs for the
7125	// alias.
7126	ConversationLogs *ConversationLogsResponse `locationName:"conversationLogs" type:"structure"`
7127
7128	// The date that the bot alias was created.
7129	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
7130
7131	// A description of the bot alias.
7132	Description *string `locationName:"description" type:"string"`
7133
7134	// The date that the bot alias was updated. When you create a resource, the
7135	// creation date and the last updated date are the same.
7136	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
7137
7138	// The name of the bot alias.
7139	Name *string `locationName:"name" min:"1" type:"string"`
7140}
7141
7142// String returns the string representation
7143func (s GetBotAliasOutput) String() string {
7144	return awsutil.Prettify(s)
7145}
7146
7147// GoString returns the string representation
7148func (s GetBotAliasOutput) GoString() string {
7149	return s.String()
7150}
7151
7152// SetBotName sets the BotName field's value.
7153func (s *GetBotAliasOutput) SetBotName(v string) *GetBotAliasOutput {
7154	s.BotName = &v
7155	return s
7156}
7157
7158// SetBotVersion sets the BotVersion field's value.
7159func (s *GetBotAliasOutput) SetBotVersion(v string) *GetBotAliasOutput {
7160	s.BotVersion = &v
7161	return s
7162}
7163
7164// SetChecksum sets the Checksum field's value.
7165func (s *GetBotAliasOutput) SetChecksum(v string) *GetBotAliasOutput {
7166	s.Checksum = &v
7167	return s
7168}
7169
7170// SetConversationLogs sets the ConversationLogs field's value.
7171func (s *GetBotAliasOutput) SetConversationLogs(v *ConversationLogsResponse) *GetBotAliasOutput {
7172	s.ConversationLogs = v
7173	return s
7174}
7175
7176// SetCreatedDate sets the CreatedDate field's value.
7177func (s *GetBotAliasOutput) SetCreatedDate(v time.Time) *GetBotAliasOutput {
7178	s.CreatedDate = &v
7179	return s
7180}
7181
7182// SetDescription sets the Description field's value.
7183func (s *GetBotAliasOutput) SetDescription(v string) *GetBotAliasOutput {
7184	s.Description = &v
7185	return s
7186}
7187
7188// SetLastUpdatedDate sets the LastUpdatedDate field's value.
7189func (s *GetBotAliasOutput) SetLastUpdatedDate(v time.Time) *GetBotAliasOutput {
7190	s.LastUpdatedDate = &v
7191	return s
7192}
7193
7194// SetName sets the Name field's value.
7195func (s *GetBotAliasOutput) SetName(v string) *GetBotAliasOutput {
7196	s.Name = &v
7197	return s
7198}
7199
7200type GetBotAliasesInput struct {
7201	_ struct{} `type:"structure"`
7202
7203	// The name of the bot.
7204	//
7205	// BotName is a required field
7206	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
7207
7208	// The maximum number of aliases to return in the response. The default is 50. .
7209	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7210
7211	// Substring to match in bot alias names. An alias will be returned if any part
7212	// of its name matches the substring. For example, "xyz" matches both "xyzabc"
7213	// and "abcxyz."
7214	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
7215
7216	// A pagination token for fetching the next page of aliases. If the response
7217	// to this call is truncated, Amazon Lex returns a pagination token in the response.
7218	// To fetch the next page of aliases, specify the pagination token in the next
7219	// request.
7220	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7221}
7222
7223// String returns the string representation
7224func (s GetBotAliasesInput) String() string {
7225	return awsutil.Prettify(s)
7226}
7227
7228// GoString returns the string representation
7229func (s GetBotAliasesInput) GoString() string {
7230	return s.String()
7231}
7232
7233// Validate inspects the fields of the type to determine if they are valid.
7234func (s *GetBotAliasesInput) Validate() error {
7235	invalidParams := request.ErrInvalidParams{Context: "GetBotAliasesInput"}
7236	if s.BotName == nil {
7237		invalidParams.Add(request.NewErrParamRequired("BotName"))
7238	}
7239	if s.BotName != nil && len(*s.BotName) < 2 {
7240		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
7241	}
7242	if s.MaxResults != nil && *s.MaxResults < 1 {
7243		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7244	}
7245	if s.NameContains != nil && len(*s.NameContains) < 1 {
7246		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
7247	}
7248
7249	if invalidParams.Len() > 0 {
7250		return invalidParams
7251	}
7252	return nil
7253}
7254
7255// SetBotName sets the BotName field's value.
7256func (s *GetBotAliasesInput) SetBotName(v string) *GetBotAliasesInput {
7257	s.BotName = &v
7258	return s
7259}
7260
7261// SetMaxResults sets the MaxResults field's value.
7262func (s *GetBotAliasesInput) SetMaxResults(v int64) *GetBotAliasesInput {
7263	s.MaxResults = &v
7264	return s
7265}
7266
7267// SetNameContains sets the NameContains field's value.
7268func (s *GetBotAliasesInput) SetNameContains(v string) *GetBotAliasesInput {
7269	s.NameContains = &v
7270	return s
7271}
7272
7273// SetNextToken sets the NextToken field's value.
7274func (s *GetBotAliasesInput) SetNextToken(v string) *GetBotAliasesInput {
7275	s.NextToken = &v
7276	return s
7277}
7278
7279type GetBotAliasesOutput struct {
7280	_ struct{} `type:"structure"`
7281
7282	// An array of BotAliasMetadata objects, each describing a bot alias.
7283	BotAliases []*BotAliasMetadata `type:"list"`
7284
7285	// A pagination token for fetching next page of aliases. If the response to
7286	// this call is truncated, Amazon Lex returns a pagination token in the response.
7287	// To fetch the next page of aliases, specify the pagination token in the next
7288	// request.
7289	NextToken *string `locationName:"nextToken" type:"string"`
7290}
7291
7292// String returns the string representation
7293func (s GetBotAliasesOutput) String() string {
7294	return awsutil.Prettify(s)
7295}
7296
7297// GoString returns the string representation
7298func (s GetBotAliasesOutput) GoString() string {
7299	return s.String()
7300}
7301
7302// SetBotAliases sets the BotAliases field's value.
7303func (s *GetBotAliasesOutput) SetBotAliases(v []*BotAliasMetadata) *GetBotAliasesOutput {
7304	s.BotAliases = v
7305	return s
7306}
7307
7308// SetNextToken sets the NextToken field's value.
7309func (s *GetBotAliasesOutput) SetNextToken(v string) *GetBotAliasesOutput {
7310	s.NextToken = &v
7311	return s
7312}
7313
7314type GetBotChannelAssociationInput struct {
7315	_ struct{} `type:"structure"`
7316
7317	// An alias pointing to the specific version of the Amazon Lex bot to which
7318	// this association is being made.
7319	//
7320	// BotAlias is a required field
7321	BotAlias *string `location:"uri" locationName:"aliasName" min:"1" type:"string" required:"true"`
7322
7323	// The name of the Amazon Lex bot.
7324	//
7325	// BotName is a required field
7326	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
7327
7328	// The name of the association between the bot and the channel. The name is
7329	// case sensitive.
7330	//
7331	// Name is a required field
7332	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
7333}
7334
7335// String returns the string representation
7336func (s GetBotChannelAssociationInput) String() string {
7337	return awsutil.Prettify(s)
7338}
7339
7340// GoString returns the string representation
7341func (s GetBotChannelAssociationInput) GoString() string {
7342	return s.String()
7343}
7344
7345// Validate inspects the fields of the type to determine if they are valid.
7346func (s *GetBotChannelAssociationInput) Validate() error {
7347	invalidParams := request.ErrInvalidParams{Context: "GetBotChannelAssociationInput"}
7348	if s.BotAlias == nil {
7349		invalidParams.Add(request.NewErrParamRequired("BotAlias"))
7350	}
7351	if s.BotAlias != nil && len(*s.BotAlias) < 1 {
7352		invalidParams.Add(request.NewErrParamMinLen("BotAlias", 1))
7353	}
7354	if s.BotName == nil {
7355		invalidParams.Add(request.NewErrParamRequired("BotName"))
7356	}
7357	if s.BotName != nil && len(*s.BotName) < 2 {
7358		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
7359	}
7360	if s.Name == nil {
7361		invalidParams.Add(request.NewErrParamRequired("Name"))
7362	}
7363	if s.Name != nil && len(*s.Name) < 1 {
7364		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
7365	}
7366
7367	if invalidParams.Len() > 0 {
7368		return invalidParams
7369	}
7370	return nil
7371}
7372
7373// SetBotAlias sets the BotAlias field's value.
7374func (s *GetBotChannelAssociationInput) SetBotAlias(v string) *GetBotChannelAssociationInput {
7375	s.BotAlias = &v
7376	return s
7377}
7378
7379// SetBotName sets the BotName field's value.
7380func (s *GetBotChannelAssociationInput) SetBotName(v string) *GetBotChannelAssociationInput {
7381	s.BotName = &v
7382	return s
7383}
7384
7385// SetName sets the Name field's value.
7386func (s *GetBotChannelAssociationInput) SetName(v string) *GetBotChannelAssociationInput {
7387	s.Name = &v
7388	return s
7389}
7390
7391type GetBotChannelAssociationOutput struct {
7392	_ struct{} `type:"structure"`
7393
7394	// An alias pointing to the specific version of the Amazon Lex bot to which
7395	// this association is being made.
7396	BotAlias *string `locationName:"botAlias" min:"1" type:"string"`
7397
7398	// Provides information that the messaging platform needs to communicate with
7399	// the Amazon Lex bot.
7400	BotConfiguration map[string]*string `locationName:"botConfiguration" min:"1" type:"map" sensitive:"true"`
7401
7402	// The name of the Amazon Lex bot.
7403	BotName *string `locationName:"botName" min:"2" type:"string"`
7404
7405	// The date that the association between the bot and the channel was created.
7406	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
7407
7408	// A description of the association between the bot and the channel.
7409	Description *string `locationName:"description" type:"string"`
7410
7411	// If status is FAILED, Amazon Lex provides the reason that it failed to create
7412	// the association.
7413	FailureReason *string `locationName:"failureReason" type:"string"`
7414
7415	// The name of the association between the bot and the channel.
7416	Name *string `locationName:"name" min:"1" type:"string"`
7417
7418	// The status of the bot channel.
7419	//
7420	//    * CREATED - The channel has been created and is ready for use.
7421	//
7422	//    * IN_PROGRESS - Channel creation is in progress.
7423	//
7424	//    * FAILED - There was an error creating the channel. For information about
7425	//    the reason for the failure, see the failureReason field.
7426	Status *string `locationName:"status" type:"string" enum:"ChannelStatus"`
7427
7428	// The type of the messaging platform.
7429	Type *string `locationName:"type" type:"string" enum:"ChannelType"`
7430}
7431
7432// String returns the string representation
7433func (s GetBotChannelAssociationOutput) String() string {
7434	return awsutil.Prettify(s)
7435}
7436
7437// GoString returns the string representation
7438func (s GetBotChannelAssociationOutput) GoString() string {
7439	return s.String()
7440}
7441
7442// SetBotAlias sets the BotAlias field's value.
7443func (s *GetBotChannelAssociationOutput) SetBotAlias(v string) *GetBotChannelAssociationOutput {
7444	s.BotAlias = &v
7445	return s
7446}
7447
7448// SetBotConfiguration sets the BotConfiguration field's value.
7449func (s *GetBotChannelAssociationOutput) SetBotConfiguration(v map[string]*string) *GetBotChannelAssociationOutput {
7450	s.BotConfiguration = v
7451	return s
7452}
7453
7454// SetBotName sets the BotName field's value.
7455func (s *GetBotChannelAssociationOutput) SetBotName(v string) *GetBotChannelAssociationOutput {
7456	s.BotName = &v
7457	return s
7458}
7459
7460// SetCreatedDate sets the CreatedDate field's value.
7461func (s *GetBotChannelAssociationOutput) SetCreatedDate(v time.Time) *GetBotChannelAssociationOutput {
7462	s.CreatedDate = &v
7463	return s
7464}
7465
7466// SetDescription sets the Description field's value.
7467func (s *GetBotChannelAssociationOutput) SetDescription(v string) *GetBotChannelAssociationOutput {
7468	s.Description = &v
7469	return s
7470}
7471
7472// SetFailureReason sets the FailureReason field's value.
7473func (s *GetBotChannelAssociationOutput) SetFailureReason(v string) *GetBotChannelAssociationOutput {
7474	s.FailureReason = &v
7475	return s
7476}
7477
7478// SetName sets the Name field's value.
7479func (s *GetBotChannelAssociationOutput) SetName(v string) *GetBotChannelAssociationOutput {
7480	s.Name = &v
7481	return s
7482}
7483
7484// SetStatus sets the Status field's value.
7485func (s *GetBotChannelAssociationOutput) SetStatus(v string) *GetBotChannelAssociationOutput {
7486	s.Status = &v
7487	return s
7488}
7489
7490// SetType sets the Type field's value.
7491func (s *GetBotChannelAssociationOutput) SetType(v string) *GetBotChannelAssociationOutput {
7492	s.Type = &v
7493	return s
7494}
7495
7496type GetBotChannelAssociationsInput struct {
7497	_ struct{} `type:"structure"`
7498
7499	// An alias pointing to the specific version of the Amazon Lex bot to which
7500	// this association is being made.
7501	//
7502	// BotAlias is a required field
7503	BotAlias *string `location:"uri" locationName:"aliasName" min:"1" type:"string" required:"true"`
7504
7505	// The name of the Amazon Lex bot in the association.
7506	//
7507	// BotName is a required field
7508	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
7509
7510	// The maximum number of associations to return in the response. The default
7511	// is 50.
7512	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7513
7514	// Substring to match in channel association names. An association will be returned
7515	// if any part of its name matches the substring. For example, "xyz" matches
7516	// both "xyzabc" and "abcxyz." To return all bot channel associations, use a
7517	// hyphen ("-") as the nameContains parameter.
7518	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
7519
7520	// A pagination token for fetching the next page of associations. If the response
7521	// to this call is truncated, Amazon Lex returns a pagination token in the response.
7522	// To fetch the next page of associations, specify the pagination token in the
7523	// next request.
7524	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7525}
7526
7527// String returns the string representation
7528func (s GetBotChannelAssociationsInput) String() string {
7529	return awsutil.Prettify(s)
7530}
7531
7532// GoString returns the string representation
7533func (s GetBotChannelAssociationsInput) GoString() string {
7534	return s.String()
7535}
7536
7537// Validate inspects the fields of the type to determine if they are valid.
7538func (s *GetBotChannelAssociationsInput) Validate() error {
7539	invalidParams := request.ErrInvalidParams{Context: "GetBotChannelAssociationsInput"}
7540	if s.BotAlias == nil {
7541		invalidParams.Add(request.NewErrParamRequired("BotAlias"))
7542	}
7543	if s.BotAlias != nil && len(*s.BotAlias) < 1 {
7544		invalidParams.Add(request.NewErrParamMinLen("BotAlias", 1))
7545	}
7546	if s.BotName == nil {
7547		invalidParams.Add(request.NewErrParamRequired("BotName"))
7548	}
7549	if s.BotName != nil && len(*s.BotName) < 2 {
7550		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
7551	}
7552	if s.MaxResults != nil && *s.MaxResults < 1 {
7553		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7554	}
7555	if s.NameContains != nil && len(*s.NameContains) < 1 {
7556		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
7557	}
7558
7559	if invalidParams.Len() > 0 {
7560		return invalidParams
7561	}
7562	return nil
7563}
7564
7565// SetBotAlias sets the BotAlias field's value.
7566func (s *GetBotChannelAssociationsInput) SetBotAlias(v string) *GetBotChannelAssociationsInput {
7567	s.BotAlias = &v
7568	return s
7569}
7570
7571// SetBotName sets the BotName field's value.
7572func (s *GetBotChannelAssociationsInput) SetBotName(v string) *GetBotChannelAssociationsInput {
7573	s.BotName = &v
7574	return s
7575}
7576
7577// SetMaxResults sets the MaxResults field's value.
7578func (s *GetBotChannelAssociationsInput) SetMaxResults(v int64) *GetBotChannelAssociationsInput {
7579	s.MaxResults = &v
7580	return s
7581}
7582
7583// SetNameContains sets the NameContains field's value.
7584func (s *GetBotChannelAssociationsInput) SetNameContains(v string) *GetBotChannelAssociationsInput {
7585	s.NameContains = &v
7586	return s
7587}
7588
7589// SetNextToken sets the NextToken field's value.
7590func (s *GetBotChannelAssociationsInput) SetNextToken(v string) *GetBotChannelAssociationsInput {
7591	s.NextToken = &v
7592	return s
7593}
7594
7595type GetBotChannelAssociationsOutput struct {
7596	_ struct{} `type:"structure"`
7597
7598	// An array of objects, one for each association, that provides information
7599	// about the Amazon Lex bot and its association with the channel.
7600	BotChannelAssociations []*BotChannelAssociation `locationName:"botChannelAssociations" type:"list"`
7601
7602	// A pagination token that fetches the next page of associations. If the response
7603	// to this call is truncated, Amazon Lex returns a pagination token in the response.
7604	// To fetch the next page of associations, specify the pagination token in the
7605	// next request.
7606	NextToken *string `locationName:"nextToken" type:"string"`
7607}
7608
7609// String returns the string representation
7610func (s GetBotChannelAssociationsOutput) String() string {
7611	return awsutil.Prettify(s)
7612}
7613
7614// GoString returns the string representation
7615func (s GetBotChannelAssociationsOutput) GoString() string {
7616	return s.String()
7617}
7618
7619// SetBotChannelAssociations sets the BotChannelAssociations field's value.
7620func (s *GetBotChannelAssociationsOutput) SetBotChannelAssociations(v []*BotChannelAssociation) *GetBotChannelAssociationsOutput {
7621	s.BotChannelAssociations = v
7622	return s
7623}
7624
7625// SetNextToken sets the NextToken field's value.
7626func (s *GetBotChannelAssociationsOutput) SetNextToken(v string) *GetBotChannelAssociationsOutput {
7627	s.NextToken = &v
7628	return s
7629}
7630
7631type GetBotInput struct {
7632	_ struct{} `type:"structure"`
7633
7634	// The name of the bot. The name is case sensitive.
7635	//
7636	// Name is a required field
7637	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
7638
7639	// The version or alias of the bot.
7640	//
7641	// VersionOrAlias is a required field
7642	VersionOrAlias *string `location:"uri" locationName:"versionoralias" type:"string" required:"true"`
7643}
7644
7645// String returns the string representation
7646func (s GetBotInput) String() string {
7647	return awsutil.Prettify(s)
7648}
7649
7650// GoString returns the string representation
7651func (s GetBotInput) GoString() string {
7652	return s.String()
7653}
7654
7655// Validate inspects the fields of the type to determine if they are valid.
7656func (s *GetBotInput) Validate() error {
7657	invalidParams := request.ErrInvalidParams{Context: "GetBotInput"}
7658	if s.Name == nil {
7659		invalidParams.Add(request.NewErrParamRequired("Name"))
7660	}
7661	if s.Name != nil && len(*s.Name) < 2 {
7662		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
7663	}
7664	if s.VersionOrAlias == nil {
7665		invalidParams.Add(request.NewErrParamRequired("VersionOrAlias"))
7666	}
7667	if s.VersionOrAlias != nil && len(*s.VersionOrAlias) < 1 {
7668		invalidParams.Add(request.NewErrParamMinLen("VersionOrAlias", 1))
7669	}
7670
7671	if invalidParams.Len() > 0 {
7672		return invalidParams
7673	}
7674	return nil
7675}
7676
7677// SetName sets the Name field's value.
7678func (s *GetBotInput) SetName(v string) *GetBotInput {
7679	s.Name = &v
7680	return s
7681}
7682
7683// SetVersionOrAlias sets the VersionOrAlias field's value.
7684func (s *GetBotInput) SetVersionOrAlias(v string) *GetBotInput {
7685	s.VersionOrAlias = &v
7686	return s
7687}
7688
7689type GetBotOutput struct {
7690	_ struct{} `type:"structure"`
7691
7692	// The message that Amazon Lex returns when the user elects to end the conversation
7693	// without completing it. For more information, see PutBot.
7694	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
7695
7696	// Checksum of the bot used to identify a specific revision of the bot's $LATEST
7697	// version.
7698	Checksum *string `locationName:"checksum" type:"string"`
7699
7700	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
7701	// you must specify whether your use of Amazon Lex is related to a website,
7702	// program, or other application that is directed or targeted, in whole or in
7703	// part, to children under age 13 and subject to the Children's Online Privacy
7704	// Protection Act (COPPA) by specifying true or false in the childDirected field.
7705	// By specifying true in the childDirected field, you confirm that your use
7706	// of Amazon Lex is related to a website, program, or other application that
7707	// is directed or targeted, in whole or in part, to children under age 13 and
7708	// subject to COPPA. By specifying false in the childDirected field, you confirm
7709	// that your use of Amazon Lex is not related to a website, program, or other
7710	// application that is directed or targeted, in whole or in part, to children
7711	// under age 13 and subject to COPPA. You may not specify a default value for
7712	// the childDirected field that does not accurately reflect whether your use
7713	// of Amazon Lex is related to a website, program, or other application that
7714	// is directed or targeted, in whole or in part, to children under age 13 and
7715	// subject to COPPA.
7716	//
7717	// If your use of Amazon Lex relates to a website, program, or other application
7718	// that is directed in whole or in part, to children under age 13, you must
7719	// obtain any required verifiable parental consent under COPPA. For information
7720	// regarding the use of Amazon Lex in connection with websites, programs, or
7721	// other applications that are directed or targeted, in whole or in part, to
7722	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
7723	ChildDirected *bool `locationName:"childDirected" type:"boolean"`
7724
7725	// The message Amazon Lex uses when it doesn't understand the user's request.
7726	// For more information, see PutBot.
7727	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
7728
7729	// The date that the bot was created.
7730	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
7731
7732	// A description of the bot.
7733	Description *string `locationName:"description" type:"string"`
7734
7735	// Indicates whether user utterances should be sent to Amazon Comprehend for
7736	// sentiment analysis.
7737	DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"`
7738
7739	// Indicates whether the bot uses accuracy improvements. true indicates that
7740	// the bot is using the improvements, otherwise, false.
7741	EnableModelImprovements *bool `locationName:"enableModelImprovements" type:"boolean"`
7742
7743	// If status is FAILED, Amazon Lex explains why it failed to build the bot.
7744	FailureReason *string `locationName:"failureReason" type:"string"`
7745
7746	// The maximum time in seconds that Amazon Lex retains the data gathered in
7747	// a conversation. For more information, see PutBot.
7748	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
7749
7750	// An array of intent objects. For more information, see PutBot.
7751	Intents []*Intent `locationName:"intents" type:"list"`
7752
7753	// The date that the bot was updated. When you create a resource, the creation
7754	// date and last updated date are the same.
7755	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
7756
7757	// The target locale for the bot.
7758	Locale *string `locationName:"locale" type:"string" enum:"Locale"`
7759
7760	// The name of the bot.
7761	Name *string `locationName:"name" min:"2" type:"string"`
7762
7763	// The score that determines where Amazon Lex inserts the AMAZON.FallbackIntent,
7764	// AMAZON.KendraSearchIntent, or both when returning alternative intents in
7765	// a PostContent (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html)
7766	// or PostText (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
7767	// response. AMAZON.FallbackIntent is inserted if the confidence score for all
7768	// intents is below this value. AMAZON.KendraSearchIntent is only inserted if
7769	// it is configured for the bot.
7770	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double"`
7771
7772	// The status of the bot.
7773	//
7774	// When the status is BUILDING Amazon Lex is building the bot for testing and
7775	// use.
7776	//
7777	// If the status of the bot is READY_BASIC_TESTING, you can test the bot using
7778	// the exact utterances specified in the bot's intents. When the bot is ready
7779	// for full testing or to run, the status is READY.
7780	//
7781	// If there was a problem with building the bot, the status is FAILED and the
7782	// failureReason field explains why the bot did not build.
7783	//
7784	// If the bot was saved but not built, the status is NOT_BUILT.
7785	Status *string `locationName:"status" type:"string" enum:"Status"`
7786
7787	// The version of the bot. For a new bot, the version is always $LATEST.
7788	Version *string `locationName:"version" min:"1" type:"string"`
7789
7790	// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with
7791	// the user. For more information, see PutBot.
7792	VoiceId *string `locationName:"voiceId" type:"string"`
7793}
7794
7795// String returns the string representation
7796func (s GetBotOutput) String() string {
7797	return awsutil.Prettify(s)
7798}
7799
7800// GoString returns the string representation
7801func (s GetBotOutput) GoString() string {
7802	return s.String()
7803}
7804
7805// SetAbortStatement sets the AbortStatement field's value.
7806func (s *GetBotOutput) SetAbortStatement(v *Statement) *GetBotOutput {
7807	s.AbortStatement = v
7808	return s
7809}
7810
7811// SetChecksum sets the Checksum field's value.
7812func (s *GetBotOutput) SetChecksum(v string) *GetBotOutput {
7813	s.Checksum = &v
7814	return s
7815}
7816
7817// SetChildDirected sets the ChildDirected field's value.
7818func (s *GetBotOutput) SetChildDirected(v bool) *GetBotOutput {
7819	s.ChildDirected = &v
7820	return s
7821}
7822
7823// SetClarificationPrompt sets the ClarificationPrompt field's value.
7824func (s *GetBotOutput) SetClarificationPrompt(v *Prompt) *GetBotOutput {
7825	s.ClarificationPrompt = v
7826	return s
7827}
7828
7829// SetCreatedDate sets the CreatedDate field's value.
7830func (s *GetBotOutput) SetCreatedDate(v time.Time) *GetBotOutput {
7831	s.CreatedDate = &v
7832	return s
7833}
7834
7835// SetDescription sets the Description field's value.
7836func (s *GetBotOutput) SetDescription(v string) *GetBotOutput {
7837	s.Description = &v
7838	return s
7839}
7840
7841// SetDetectSentiment sets the DetectSentiment field's value.
7842func (s *GetBotOutput) SetDetectSentiment(v bool) *GetBotOutput {
7843	s.DetectSentiment = &v
7844	return s
7845}
7846
7847// SetEnableModelImprovements sets the EnableModelImprovements field's value.
7848func (s *GetBotOutput) SetEnableModelImprovements(v bool) *GetBotOutput {
7849	s.EnableModelImprovements = &v
7850	return s
7851}
7852
7853// SetFailureReason sets the FailureReason field's value.
7854func (s *GetBotOutput) SetFailureReason(v string) *GetBotOutput {
7855	s.FailureReason = &v
7856	return s
7857}
7858
7859// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
7860func (s *GetBotOutput) SetIdleSessionTTLInSeconds(v int64) *GetBotOutput {
7861	s.IdleSessionTTLInSeconds = &v
7862	return s
7863}
7864
7865// SetIntents sets the Intents field's value.
7866func (s *GetBotOutput) SetIntents(v []*Intent) *GetBotOutput {
7867	s.Intents = v
7868	return s
7869}
7870
7871// SetLastUpdatedDate sets the LastUpdatedDate field's value.
7872func (s *GetBotOutput) SetLastUpdatedDate(v time.Time) *GetBotOutput {
7873	s.LastUpdatedDate = &v
7874	return s
7875}
7876
7877// SetLocale sets the Locale field's value.
7878func (s *GetBotOutput) SetLocale(v string) *GetBotOutput {
7879	s.Locale = &v
7880	return s
7881}
7882
7883// SetName sets the Name field's value.
7884func (s *GetBotOutput) SetName(v string) *GetBotOutput {
7885	s.Name = &v
7886	return s
7887}
7888
7889// SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
7890func (s *GetBotOutput) SetNluIntentConfidenceThreshold(v float64) *GetBotOutput {
7891	s.NluIntentConfidenceThreshold = &v
7892	return s
7893}
7894
7895// SetStatus sets the Status field's value.
7896func (s *GetBotOutput) SetStatus(v string) *GetBotOutput {
7897	s.Status = &v
7898	return s
7899}
7900
7901// SetVersion sets the Version field's value.
7902func (s *GetBotOutput) SetVersion(v string) *GetBotOutput {
7903	s.Version = &v
7904	return s
7905}
7906
7907// SetVoiceId sets the VoiceId field's value.
7908func (s *GetBotOutput) SetVoiceId(v string) *GetBotOutput {
7909	s.VoiceId = &v
7910	return s
7911}
7912
7913type GetBotVersionsInput struct {
7914	_ struct{} `type:"structure"`
7915
7916	// The maximum number of bot versions to return in the response. The default
7917	// is 10.
7918	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7919
7920	// The name of the bot for which versions should be returned.
7921	//
7922	// Name is a required field
7923	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
7924
7925	// A pagination token for fetching the next page of bot versions. If the response
7926	// to this call is truncated, Amazon Lex returns a pagination token in the response.
7927	// To fetch the next page of versions, specify the pagination token in the next
7928	// request.
7929	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7930}
7931
7932// String returns the string representation
7933func (s GetBotVersionsInput) String() string {
7934	return awsutil.Prettify(s)
7935}
7936
7937// GoString returns the string representation
7938func (s GetBotVersionsInput) GoString() string {
7939	return s.String()
7940}
7941
7942// Validate inspects the fields of the type to determine if they are valid.
7943func (s *GetBotVersionsInput) Validate() error {
7944	invalidParams := request.ErrInvalidParams{Context: "GetBotVersionsInput"}
7945	if s.MaxResults != nil && *s.MaxResults < 1 {
7946		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7947	}
7948	if s.Name == nil {
7949		invalidParams.Add(request.NewErrParamRequired("Name"))
7950	}
7951	if s.Name != nil && len(*s.Name) < 2 {
7952		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
7953	}
7954
7955	if invalidParams.Len() > 0 {
7956		return invalidParams
7957	}
7958	return nil
7959}
7960
7961// SetMaxResults sets the MaxResults field's value.
7962func (s *GetBotVersionsInput) SetMaxResults(v int64) *GetBotVersionsInput {
7963	s.MaxResults = &v
7964	return s
7965}
7966
7967// SetName sets the Name field's value.
7968func (s *GetBotVersionsInput) SetName(v string) *GetBotVersionsInput {
7969	s.Name = &v
7970	return s
7971}
7972
7973// SetNextToken sets the NextToken field's value.
7974func (s *GetBotVersionsInput) SetNextToken(v string) *GetBotVersionsInput {
7975	s.NextToken = &v
7976	return s
7977}
7978
7979type GetBotVersionsOutput struct {
7980	_ struct{} `type:"structure"`
7981
7982	// An array of BotMetadata objects, one for each numbered version of the bot
7983	// plus one for the $LATEST version.
7984	Bots []*BotMetadata `locationName:"bots" type:"list"`
7985
7986	// A pagination token for fetching the next page of bot versions. If the response
7987	// to this call is truncated, Amazon Lex returns a pagination token in the response.
7988	// To fetch the next page of versions, specify the pagination token in the next
7989	// request.
7990	NextToken *string `locationName:"nextToken" type:"string"`
7991}
7992
7993// String returns the string representation
7994func (s GetBotVersionsOutput) String() string {
7995	return awsutil.Prettify(s)
7996}
7997
7998// GoString returns the string representation
7999func (s GetBotVersionsOutput) GoString() string {
8000	return s.String()
8001}
8002
8003// SetBots sets the Bots field's value.
8004func (s *GetBotVersionsOutput) SetBots(v []*BotMetadata) *GetBotVersionsOutput {
8005	s.Bots = v
8006	return s
8007}
8008
8009// SetNextToken sets the NextToken field's value.
8010func (s *GetBotVersionsOutput) SetNextToken(v string) *GetBotVersionsOutput {
8011	s.NextToken = &v
8012	return s
8013}
8014
8015type GetBotsInput struct {
8016	_ struct{} `type:"structure"`
8017
8018	// The maximum number of bots to return in the response that the request will
8019	// return. The default is 10.
8020	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
8021
8022	// Substring to match in bot names. A bot will be returned if any part of its
8023	// name matches the substring. For example, "xyz" matches both "xyzabc" and
8024	// "abcxyz."
8025	NameContains *string `location:"querystring" locationName:"nameContains" min:"2" type:"string"`
8026
8027	// A pagination token that fetches the next page of bots. If the response to
8028	// this call is truncated, Amazon Lex returns a pagination token in the response.
8029	// To fetch the next page of bots, specify the pagination token in the next
8030	// request.
8031	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
8032}
8033
8034// String returns the string representation
8035func (s GetBotsInput) String() string {
8036	return awsutil.Prettify(s)
8037}
8038
8039// GoString returns the string representation
8040func (s GetBotsInput) GoString() string {
8041	return s.String()
8042}
8043
8044// Validate inspects the fields of the type to determine if they are valid.
8045func (s *GetBotsInput) Validate() error {
8046	invalidParams := request.ErrInvalidParams{Context: "GetBotsInput"}
8047	if s.MaxResults != nil && *s.MaxResults < 1 {
8048		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8049	}
8050	if s.NameContains != nil && len(*s.NameContains) < 2 {
8051		invalidParams.Add(request.NewErrParamMinLen("NameContains", 2))
8052	}
8053
8054	if invalidParams.Len() > 0 {
8055		return invalidParams
8056	}
8057	return nil
8058}
8059
8060// SetMaxResults sets the MaxResults field's value.
8061func (s *GetBotsInput) SetMaxResults(v int64) *GetBotsInput {
8062	s.MaxResults = &v
8063	return s
8064}
8065
8066// SetNameContains sets the NameContains field's value.
8067func (s *GetBotsInput) SetNameContains(v string) *GetBotsInput {
8068	s.NameContains = &v
8069	return s
8070}
8071
8072// SetNextToken sets the NextToken field's value.
8073func (s *GetBotsInput) SetNextToken(v string) *GetBotsInput {
8074	s.NextToken = &v
8075	return s
8076}
8077
8078type GetBotsOutput struct {
8079	_ struct{} `type:"structure"`
8080
8081	// An array of botMetadata objects, with one entry for each bot.
8082	Bots []*BotMetadata `locationName:"bots" type:"list"`
8083
8084	// If the response is truncated, it includes a pagination token that you can
8085	// specify in your next request to fetch the next page of bots.
8086	NextToken *string `locationName:"nextToken" type:"string"`
8087}
8088
8089// String returns the string representation
8090func (s GetBotsOutput) String() string {
8091	return awsutil.Prettify(s)
8092}
8093
8094// GoString returns the string representation
8095func (s GetBotsOutput) GoString() string {
8096	return s.String()
8097}
8098
8099// SetBots sets the Bots field's value.
8100func (s *GetBotsOutput) SetBots(v []*BotMetadata) *GetBotsOutput {
8101	s.Bots = v
8102	return s
8103}
8104
8105// SetNextToken sets the NextToken field's value.
8106func (s *GetBotsOutput) SetNextToken(v string) *GetBotsOutput {
8107	s.NextToken = &v
8108	return s
8109}
8110
8111type GetBuiltinIntentInput struct {
8112	_ struct{} `type:"structure"`
8113
8114	// The unique identifier for a built-in intent. To find the signature for an
8115	// intent, see Standard Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
8116	// in the Alexa Skills Kit.
8117	//
8118	// Signature is a required field
8119	Signature *string `location:"uri" locationName:"signature" type:"string" required:"true"`
8120}
8121
8122// String returns the string representation
8123func (s GetBuiltinIntentInput) String() string {
8124	return awsutil.Prettify(s)
8125}
8126
8127// GoString returns the string representation
8128func (s GetBuiltinIntentInput) GoString() string {
8129	return s.String()
8130}
8131
8132// Validate inspects the fields of the type to determine if they are valid.
8133func (s *GetBuiltinIntentInput) Validate() error {
8134	invalidParams := request.ErrInvalidParams{Context: "GetBuiltinIntentInput"}
8135	if s.Signature == nil {
8136		invalidParams.Add(request.NewErrParamRequired("Signature"))
8137	}
8138	if s.Signature != nil && len(*s.Signature) < 1 {
8139		invalidParams.Add(request.NewErrParamMinLen("Signature", 1))
8140	}
8141
8142	if invalidParams.Len() > 0 {
8143		return invalidParams
8144	}
8145	return nil
8146}
8147
8148// SetSignature sets the Signature field's value.
8149func (s *GetBuiltinIntentInput) SetSignature(v string) *GetBuiltinIntentInput {
8150	s.Signature = &v
8151	return s
8152}
8153
8154type GetBuiltinIntentOutput struct {
8155	_ struct{} `type:"structure"`
8156
8157	// The unique identifier for a built-in intent.
8158	Signature *string `locationName:"signature" type:"string"`
8159
8160	// An array of BuiltinIntentSlot objects, one entry for each slot type in the
8161	// intent.
8162	Slots []*BuiltinIntentSlot `locationName:"slots" type:"list"`
8163
8164	// A list of locales that the intent supports.
8165	SupportedLocales []*string `locationName:"supportedLocales" type:"list"`
8166}
8167
8168// String returns the string representation
8169func (s GetBuiltinIntentOutput) String() string {
8170	return awsutil.Prettify(s)
8171}
8172
8173// GoString returns the string representation
8174func (s GetBuiltinIntentOutput) GoString() string {
8175	return s.String()
8176}
8177
8178// SetSignature sets the Signature field's value.
8179func (s *GetBuiltinIntentOutput) SetSignature(v string) *GetBuiltinIntentOutput {
8180	s.Signature = &v
8181	return s
8182}
8183
8184// SetSlots sets the Slots field's value.
8185func (s *GetBuiltinIntentOutput) SetSlots(v []*BuiltinIntentSlot) *GetBuiltinIntentOutput {
8186	s.Slots = v
8187	return s
8188}
8189
8190// SetSupportedLocales sets the SupportedLocales field's value.
8191func (s *GetBuiltinIntentOutput) SetSupportedLocales(v []*string) *GetBuiltinIntentOutput {
8192	s.SupportedLocales = v
8193	return s
8194}
8195
8196type GetBuiltinIntentsInput struct {
8197	_ struct{} `type:"structure"`
8198
8199	// A list of locales that the intent supports.
8200	Locale *string `location:"querystring" locationName:"locale" type:"string" enum:"Locale"`
8201
8202	// The maximum number of intents to return in the response. The default is 10.
8203	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
8204
8205	// A pagination token that fetches the next page of intents. If this API call
8206	// is truncated, Amazon Lex returns a pagination token in the response. To fetch
8207	// the next page of intents, use the pagination token in the next request.
8208	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
8209
8210	// Substring to match in built-in intent signatures. An intent will be returned
8211	// if any part of its signature matches the substring. For example, "xyz" matches
8212	// both "xyzabc" and "abcxyz." To find the signature for an intent, see Standard
8213	// Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
8214	// in the Alexa Skills Kit.
8215	SignatureContains *string `location:"querystring" locationName:"signatureContains" type:"string"`
8216}
8217
8218// String returns the string representation
8219func (s GetBuiltinIntentsInput) String() string {
8220	return awsutil.Prettify(s)
8221}
8222
8223// GoString returns the string representation
8224func (s GetBuiltinIntentsInput) GoString() string {
8225	return s.String()
8226}
8227
8228// Validate inspects the fields of the type to determine if they are valid.
8229func (s *GetBuiltinIntentsInput) Validate() error {
8230	invalidParams := request.ErrInvalidParams{Context: "GetBuiltinIntentsInput"}
8231	if s.MaxResults != nil && *s.MaxResults < 1 {
8232		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8233	}
8234
8235	if invalidParams.Len() > 0 {
8236		return invalidParams
8237	}
8238	return nil
8239}
8240
8241// SetLocale sets the Locale field's value.
8242func (s *GetBuiltinIntentsInput) SetLocale(v string) *GetBuiltinIntentsInput {
8243	s.Locale = &v
8244	return s
8245}
8246
8247// SetMaxResults sets the MaxResults field's value.
8248func (s *GetBuiltinIntentsInput) SetMaxResults(v int64) *GetBuiltinIntentsInput {
8249	s.MaxResults = &v
8250	return s
8251}
8252
8253// SetNextToken sets the NextToken field's value.
8254func (s *GetBuiltinIntentsInput) SetNextToken(v string) *GetBuiltinIntentsInput {
8255	s.NextToken = &v
8256	return s
8257}
8258
8259// SetSignatureContains sets the SignatureContains field's value.
8260func (s *GetBuiltinIntentsInput) SetSignatureContains(v string) *GetBuiltinIntentsInput {
8261	s.SignatureContains = &v
8262	return s
8263}
8264
8265type GetBuiltinIntentsOutput struct {
8266	_ struct{} `type:"structure"`
8267
8268	// An array of builtinIntentMetadata objects, one for each intent in the response.
8269	Intents []*BuiltinIntentMetadata `locationName:"intents" type:"list"`
8270
8271	// A pagination token that fetches the next page of intents. If the response
8272	// to this API call is truncated, Amazon Lex returns a pagination token in the
8273	// response. To fetch the next page of intents, specify the pagination token
8274	// in the next request.
8275	NextToken *string `locationName:"nextToken" type:"string"`
8276}
8277
8278// String returns the string representation
8279func (s GetBuiltinIntentsOutput) String() string {
8280	return awsutil.Prettify(s)
8281}
8282
8283// GoString returns the string representation
8284func (s GetBuiltinIntentsOutput) GoString() string {
8285	return s.String()
8286}
8287
8288// SetIntents sets the Intents field's value.
8289func (s *GetBuiltinIntentsOutput) SetIntents(v []*BuiltinIntentMetadata) *GetBuiltinIntentsOutput {
8290	s.Intents = v
8291	return s
8292}
8293
8294// SetNextToken sets the NextToken field's value.
8295func (s *GetBuiltinIntentsOutput) SetNextToken(v string) *GetBuiltinIntentsOutput {
8296	s.NextToken = &v
8297	return s
8298}
8299
8300type GetBuiltinSlotTypesInput struct {
8301	_ struct{} `type:"structure"`
8302
8303	// A list of locales that the slot type supports.
8304	Locale *string `location:"querystring" locationName:"locale" type:"string" enum:"Locale"`
8305
8306	// The maximum number of slot types to return in the response. The default is
8307	// 10.
8308	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
8309
8310	// A pagination token that fetches the next page of slot types. If the response
8311	// to this API call is truncated, Amazon Lex returns a pagination token in the
8312	// response. To fetch the next page of slot types, specify the pagination token
8313	// in the next request.
8314	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
8315
8316	// Substring to match in built-in slot type signatures. A slot type will be
8317	// returned if any part of its signature matches the substring. For example,
8318	// "xyz" matches both "xyzabc" and "abcxyz."
8319	SignatureContains *string `location:"querystring" locationName:"signatureContains" type:"string"`
8320}
8321
8322// String returns the string representation
8323func (s GetBuiltinSlotTypesInput) String() string {
8324	return awsutil.Prettify(s)
8325}
8326
8327// GoString returns the string representation
8328func (s GetBuiltinSlotTypesInput) GoString() string {
8329	return s.String()
8330}
8331
8332// Validate inspects the fields of the type to determine if they are valid.
8333func (s *GetBuiltinSlotTypesInput) Validate() error {
8334	invalidParams := request.ErrInvalidParams{Context: "GetBuiltinSlotTypesInput"}
8335	if s.MaxResults != nil && *s.MaxResults < 1 {
8336		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8337	}
8338
8339	if invalidParams.Len() > 0 {
8340		return invalidParams
8341	}
8342	return nil
8343}
8344
8345// SetLocale sets the Locale field's value.
8346func (s *GetBuiltinSlotTypesInput) SetLocale(v string) *GetBuiltinSlotTypesInput {
8347	s.Locale = &v
8348	return s
8349}
8350
8351// SetMaxResults sets the MaxResults field's value.
8352func (s *GetBuiltinSlotTypesInput) SetMaxResults(v int64) *GetBuiltinSlotTypesInput {
8353	s.MaxResults = &v
8354	return s
8355}
8356
8357// SetNextToken sets the NextToken field's value.
8358func (s *GetBuiltinSlotTypesInput) SetNextToken(v string) *GetBuiltinSlotTypesInput {
8359	s.NextToken = &v
8360	return s
8361}
8362
8363// SetSignatureContains sets the SignatureContains field's value.
8364func (s *GetBuiltinSlotTypesInput) SetSignatureContains(v string) *GetBuiltinSlotTypesInput {
8365	s.SignatureContains = &v
8366	return s
8367}
8368
8369type GetBuiltinSlotTypesOutput struct {
8370	_ struct{} `type:"structure"`
8371
8372	// If the response is truncated, the response includes a pagination token that
8373	// you can use in your next request to fetch the next page of slot types.
8374	NextToken *string `locationName:"nextToken" type:"string"`
8375
8376	// An array of BuiltInSlotTypeMetadata objects, one entry for each slot type
8377	// returned.
8378	SlotTypes []*BuiltinSlotTypeMetadata `locationName:"slotTypes" type:"list"`
8379}
8380
8381// String returns the string representation
8382func (s GetBuiltinSlotTypesOutput) String() string {
8383	return awsutil.Prettify(s)
8384}
8385
8386// GoString returns the string representation
8387func (s GetBuiltinSlotTypesOutput) GoString() string {
8388	return s.String()
8389}
8390
8391// SetNextToken sets the NextToken field's value.
8392func (s *GetBuiltinSlotTypesOutput) SetNextToken(v string) *GetBuiltinSlotTypesOutput {
8393	s.NextToken = &v
8394	return s
8395}
8396
8397// SetSlotTypes sets the SlotTypes field's value.
8398func (s *GetBuiltinSlotTypesOutput) SetSlotTypes(v []*BuiltinSlotTypeMetadata) *GetBuiltinSlotTypesOutput {
8399	s.SlotTypes = v
8400	return s
8401}
8402
8403type GetExportInput struct {
8404	_ struct{} `type:"structure"`
8405
8406	// The format of the exported data.
8407	//
8408	// ExportType is a required field
8409	ExportType *string `location:"querystring" locationName:"exportType" type:"string" required:"true" enum:"ExportType"`
8410
8411	// The name of the bot to export.
8412	//
8413	// Name is a required field
8414	Name *string `location:"querystring" locationName:"name" min:"1" type:"string" required:"true"`
8415
8416	// The type of resource to export.
8417	//
8418	// ResourceType is a required field
8419	ResourceType *string `location:"querystring" locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
8420
8421	// The version of the bot to export.
8422	//
8423	// Version is a required field
8424	Version *string `location:"querystring" locationName:"version" min:"1" type:"string" required:"true"`
8425}
8426
8427// String returns the string representation
8428func (s GetExportInput) String() string {
8429	return awsutil.Prettify(s)
8430}
8431
8432// GoString returns the string representation
8433func (s GetExportInput) GoString() string {
8434	return s.String()
8435}
8436
8437// Validate inspects the fields of the type to determine if they are valid.
8438func (s *GetExportInput) Validate() error {
8439	invalidParams := request.ErrInvalidParams{Context: "GetExportInput"}
8440	if s.ExportType == nil {
8441		invalidParams.Add(request.NewErrParamRequired("ExportType"))
8442	}
8443	if s.Name == nil {
8444		invalidParams.Add(request.NewErrParamRequired("Name"))
8445	}
8446	if s.Name != nil && len(*s.Name) < 1 {
8447		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8448	}
8449	if s.ResourceType == nil {
8450		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
8451	}
8452	if s.Version == nil {
8453		invalidParams.Add(request.NewErrParamRequired("Version"))
8454	}
8455	if s.Version != nil && len(*s.Version) < 1 {
8456		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
8457	}
8458
8459	if invalidParams.Len() > 0 {
8460		return invalidParams
8461	}
8462	return nil
8463}
8464
8465// SetExportType sets the ExportType field's value.
8466func (s *GetExportInput) SetExportType(v string) *GetExportInput {
8467	s.ExportType = &v
8468	return s
8469}
8470
8471// SetName sets the Name field's value.
8472func (s *GetExportInput) SetName(v string) *GetExportInput {
8473	s.Name = &v
8474	return s
8475}
8476
8477// SetResourceType sets the ResourceType field's value.
8478func (s *GetExportInput) SetResourceType(v string) *GetExportInput {
8479	s.ResourceType = &v
8480	return s
8481}
8482
8483// SetVersion sets the Version field's value.
8484func (s *GetExportInput) SetVersion(v string) *GetExportInput {
8485	s.Version = &v
8486	return s
8487}
8488
8489type GetExportOutput struct {
8490	_ struct{} `type:"structure"`
8491
8492	// The status of the export.
8493	//
8494	//    * IN_PROGRESS - The export is in progress.
8495	//
8496	//    * READY - The export is complete.
8497	//
8498	//    * FAILED - The export could not be completed.
8499	ExportStatus *string `locationName:"exportStatus" type:"string" enum:"ExportStatus"`
8500
8501	// The format of the exported data.
8502	ExportType *string `locationName:"exportType" type:"string" enum:"ExportType"`
8503
8504	// If status is FAILED, Amazon Lex provides the reason that it failed to export
8505	// the resource.
8506	FailureReason *string `locationName:"failureReason" type:"string"`
8507
8508	// The name of the bot being exported.
8509	Name *string `locationName:"name" min:"1" type:"string"`
8510
8511	// The type of the exported resource.
8512	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
8513
8514	// An S3 pre-signed URL that provides the location of the exported resource.
8515	// The exported resource is a ZIP archive that contains the exported resource
8516	// in JSON format. The structure of the archive may change. Your code should
8517	// not rely on the archive structure.
8518	Url *string `locationName:"url" type:"string"`
8519
8520	// The version of the bot being exported.
8521	Version *string `locationName:"version" min:"1" type:"string"`
8522}
8523
8524// String returns the string representation
8525func (s GetExportOutput) String() string {
8526	return awsutil.Prettify(s)
8527}
8528
8529// GoString returns the string representation
8530func (s GetExportOutput) GoString() string {
8531	return s.String()
8532}
8533
8534// SetExportStatus sets the ExportStatus field's value.
8535func (s *GetExportOutput) SetExportStatus(v string) *GetExportOutput {
8536	s.ExportStatus = &v
8537	return s
8538}
8539
8540// SetExportType sets the ExportType field's value.
8541func (s *GetExportOutput) SetExportType(v string) *GetExportOutput {
8542	s.ExportType = &v
8543	return s
8544}
8545
8546// SetFailureReason sets the FailureReason field's value.
8547func (s *GetExportOutput) SetFailureReason(v string) *GetExportOutput {
8548	s.FailureReason = &v
8549	return s
8550}
8551
8552// SetName sets the Name field's value.
8553func (s *GetExportOutput) SetName(v string) *GetExportOutput {
8554	s.Name = &v
8555	return s
8556}
8557
8558// SetResourceType sets the ResourceType field's value.
8559func (s *GetExportOutput) SetResourceType(v string) *GetExportOutput {
8560	s.ResourceType = &v
8561	return s
8562}
8563
8564// SetUrl sets the Url field's value.
8565func (s *GetExportOutput) SetUrl(v string) *GetExportOutput {
8566	s.Url = &v
8567	return s
8568}
8569
8570// SetVersion sets the Version field's value.
8571func (s *GetExportOutput) SetVersion(v string) *GetExportOutput {
8572	s.Version = &v
8573	return s
8574}
8575
8576type GetImportInput struct {
8577	_ struct{} `type:"structure"`
8578
8579	// The identifier of the import job information to return.
8580	//
8581	// ImportId is a required field
8582	ImportId *string `location:"uri" locationName:"importId" type:"string" required:"true"`
8583}
8584
8585// String returns the string representation
8586func (s GetImportInput) String() string {
8587	return awsutil.Prettify(s)
8588}
8589
8590// GoString returns the string representation
8591func (s GetImportInput) GoString() string {
8592	return s.String()
8593}
8594
8595// Validate inspects the fields of the type to determine if they are valid.
8596func (s *GetImportInput) Validate() error {
8597	invalidParams := request.ErrInvalidParams{Context: "GetImportInput"}
8598	if s.ImportId == nil {
8599		invalidParams.Add(request.NewErrParamRequired("ImportId"))
8600	}
8601	if s.ImportId != nil && len(*s.ImportId) < 1 {
8602		invalidParams.Add(request.NewErrParamMinLen("ImportId", 1))
8603	}
8604
8605	if invalidParams.Len() > 0 {
8606		return invalidParams
8607	}
8608	return nil
8609}
8610
8611// SetImportId sets the ImportId field's value.
8612func (s *GetImportInput) SetImportId(v string) *GetImportInput {
8613	s.ImportId = &v
8614	return s
8615}
8616
8617type GetImportOutput struct {
8618	_ struct{} `type:"structure"`
8619
8620	// A timestamp for the date and time that the import job was created.
8621	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
8622
8623	// A string that describes why an import job failed to complete.
8624	FailureReason []*string `locationName:"failureReason" type:"list"`
8625
8626	// The identifier for the specific import job.
8627	ImportId *string `locationName:"importId" type:"string"`
8628
8629	// The status of the import job. If the status is FAILED, you can get the reason
8630	// for the failure from the failureReason field.
8631	ImportStatus *string `locationName:"importStatus" type:"string" enum:"ImportStatus"`
8632
8633	// The action taken when there was a conflict between an existing resource and
8634	// a resource in the import file.
8635	MergeStrategy *string `locationName:"mergeStrategy" type:"string" enum:"MergeStrategy"`
8636
8637	// The name given to the import job.
8638	Name *string `locationName:"name" min:"1" type:"string"`
8639
8640	// The type of resource imported.
8641	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
8642}
8643
8644// String returns the string representation
8645func (s GetImportOutput) String() string {
8646	return awsutil.Prettify(s)
8647}
8648
8649// GoString returns the string representation
8650func (s GetImportOutput) GoString() string {
8651	return s.String()
8652}
8653
8654// SetCreatedDate sets the CreatedDate field's value.
8655func (s *GetImportOutput) SetCreatedDate(v time.Time) *GetImportOutput {
8656	s.CreatedDate = &v
8657	return s
8658}
8659
8660// SetFailureReason sets the FailureReason field's value.
8661func (s *GetImportOutput) SetFailureReason(v []*string) *GetImportOutput {
8662	s.FailureReason = v
8663	return s
8664}
8665
8666// SetImportId sets the ImportId field's value.
8667func (s *GetImportOutput) SetImportId(v string) *GetImportOutput {
8668	s.ImportId = &v
8669	return s
8670}
8671
8672// SetImportStatus sets the ImportStatus field's value.
8673func (s *GetImportOutput) SetImportStatus(v string) *GetImportOutput {
8674	s.ImportStatus = &v
8675	return s
8676}
8677
8678// SetMergeStrategy sets the MergeStrategy field's value.
8679func (s *GetImportOutput) SetMergeStrategy(v string) *GetImportOutput {
8680	s.MergeStrategy = &v
8681	return s
8682}
8683
8684// SetName sets the Name field's value.
8685func (s *GetImportOutput) SetName(v string) *GetImportOutput {
8686	s.Name = &v
8687	return s
8688}
8689
8690// SetResourceType sets the ResourceType field's value.
8691func (s *GetImportOutput) SetResourceType(v string) *GetImportOutput {
8692	s.ResourceType = &v
8693	return s
8694}
8695
8696type GetIntentInput struct {
8697	_ struct{} `type:"structure"`
8698
8699	// The name of the intent. The name is case sensitive.
8700	//
8701	// Name is a required field
8702	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
8703
8704	// The version of the intent.
8705	//
8706	// Version is a required field
8707	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
8708}
8709
8710// String returns the string representation
8711func (s GetIntentInput) String() string {
8712	return awsutil.Prettify(s)
8713}
8714
8715// GoString returns the string representation
8716func (s GetIntentInput) GoString() string {
8717	return s.String()
8718}
8719
8720// Validate inspects the fields of the type to determine if they are valid.
8721func (s *GetIntentInput) Validate() error {
8722	invalidParams := request.ErrInvalidParams{Context: "GetIntentInput"}
8723	if s.Name == nil {
8724		invalidParams.Add(request.NewErrParamRequired("Name"))
8725	}
8726	if s.Name != nil && len(*s.Name) < 1 {
8727		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8728	}
8729	if s.Version == nil {
8730		invalidParams.Add(request.NewErrParamRequired("Version"))
8731	}
8732	if s.Version != nil && len(*s.Version) < 1 {
8733		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
8734	}
8735
8736	if invalidParams.Len() > 0 {
8737		return invalidParams
8738	}
8739	return nil
8740}
8741
8742// SetName sets the Name field's value.
8743func (s *GetIntentInput) SetName(v string) *GetIntentInput {
8744	s.Name = &v
8745	return s
8746}
8747
8748// SetVersion sets the Version field's value.
8749func (s *GetIntentInput) SetVersion(v string) *GetIntentInput {
8750	s.Version = &v
8751	return s
8752}
8753
8754type GetIntentOutput struct {
8755	_ struct{} `type:"structure"`
8756
8757	// Checksum of the intent.
8758	Checksum *string `locationName:"checksum" type:"string"`
8759
8760	// After the Lambda function specified in the fulfillmentActivity element fulfills
8761	// the intent, Amazon Lex conveys this statement to the user.
8762	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
8763
8764	// If defined in the bot, Amazon Lex uses prompt to confirm the intent before
8765	// fulfilling the user's request. For more information, see PutIntent.
8766	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
8767
8768	// The date that the intent was created.
8769	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
8770
8771	// A description of the intent.
8772	Description *string `locationName:"description" type:"string"`
8773
8774	// If defined in the bot, Amazon Amazon Lex invokes this Lambda function for
8775	// each user input. For more information, see PutIntent.
8776	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
8777
8778	// If defined in the bot, Amazon Lex uses this prompt to solicit additional
8779	// user activity after the intent is fulfilled. For more information, see PutIntent.
8780	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
8781
8782	// Describes how the intent is fulfilled. For more information, see PutIntent.
8783	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
8784
8785	// An array of InputContext objects that lists the contexts that must be active
8786	// for Amazon Lex to choose the intent in a conversation with the user.
8787	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
8788
8789	// Configuration information, if any, to connect to an Amazon Kendra index with
8790	// the AMAZON.KendraSearchIntent intent.
8791	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
8792
8793	// The date that the intent was updated. When you create a resource, the creation
8794	// date and the last updated date are the same.
8795	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
8796
8797	// The name of the intent.
8798	Name *string `locationName:"name" min:"1" type:"string"`
8799
8800	// An array of OutputContext objects that lists the contexts that the intent
8801	// activates when the intent is fulfilled.
8802	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
8803
8804	// A unique identifier for a built-in intent.
8805	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
8806
8807	// If the user answers "no" to the question defined in confirmationPrompt, Amazon
8808	// Lex responds with this statement to acknowledge that the intent was canceled.
8809	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
8810
8811	// An array of sample utterances configured for the intent.
8812	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
8813
8814	// An array of intent slots configured for the intent.
8815	Slots []*Slot `locationName:"slots" type:"list"`
8816
8817	// The version of the intent.
8818	Version *string `locationName:"version" min:"1" type:"string"`
8819}
8820
8821// String returns the string representation
8822func (s GetIntentOutput) String() string {
8823	return awsutil.Prettify(s)
8824}
8825
8826// GoString returns the string representation
8827func (s GetIntentOutput) GoString() string {
8828	return s.String()
8829}
8830
8831// SetChecksum sets the Checksum field's value.
8832func (s *GetIntentOutput) SetChecksum(v string) *GetIntentOutput {
8833	s.Checksum = &v
8834	return s
8835}
8836
8837// SetConclusionStatement sets the ConclusionStatement field's value.
8838func (s *GetIntentOutput) SetConclusionStatement(v *Statement) *GetIntentOutput {
8839	s.ConclusionStatement = v
8840	return s
8841}
8842
8843// SetConfirmationPrompt sets the ConfirmationPrompt field's value.
8844func (s *GetIntentOutput) SetConfirmationPrompt(v *Prompt) *GetIntentOutput {
8845	s.ConfirmationPrompt = v
8846	return s
8847}
8848
8849// SetCreatedDate sets the CreatedDate field's value.
8850func (s *GetIntentOutput) SetCreatedDate(v time.Time) *GetIntentOutput {
8851	s.CreatedDate = &v
8852	return s
8853}
8854
8855// SetDescription sets the Description field's value.
8856func (s *GetIntentOutput) SetDescription(v string) *GetIntentOutput {
8857	s.Description = &v
8858	return s
8859}
8860
8861// SetDialogCodeHook sets the DialogCodeHook field's value.
8862func (s *GetIntentOutput) SetDialogCodeHook(v *CodeHook) *GetIntentOutput {
8863	s.DialogCodeHook = v
8864	return s
8865}
8866
8867// SetFollowUpPrompt sets the FollowUpPrompt field's value.
8868func (s *GetIntentOutput) SetFollowUpPrompt(v *FollowUpPrompt) *GetIntentOutput {
8869	s.FollowUpPrompt = v
8870	return s
8871}
8872
8873// SetFulfillmentActivity sets the FulfillmentActivity field's value.
8874func (s *GetIntentOutput) SetFulfillmentActivity(v *FulfillmentActivity) *GetIntentOutput {
8875	s.FulfillmentActivity = v
8876	return s
8877}
8878
8879// SetInputContexts sets the InputContexts field's value.
8880func (s *GetIntentOutput) SetInputContexts(v []*InputContext) *GetIntentOutput {
8881	s.InputContexts = v
8882	return s
8883}
8884
8885// SetKendraConfiguration sets the KendraConfiguration field's value.
8886func (s *GetIntentOutput) SetKendraConfiguration(v *KendraConfiguration) *GetIntentOutput {
8887	s.KendraConfiguration = v
8888	return s
8889}
8890
8891// SetLastUpdatedDate sets the LastUpdatedDate field's value.
8892func (s *GetIntentOutput) SetLastUpdatedDate(v time.Time) *GetIntentOutput {
8893	s.LastUpdatedDate = &v
8894	return s
8895}
8896
8897// SetName sets the Name field's value.
8898func (s *GetIntentOutput) SetName(v string) *GetIntentOutput {
8899	s.Name = &v
8900	return s
8901}
8902
8903// SetOutputContexts sets the OutputContexts field's value.
8904func (s *GetIntentOutput) SetOutputContexts(v []*OutputContext) *GetIntentOutput {
8905	s.OutputContexts = v
8906	return s
8907}
8908
8909// SetParentIntentSignature sets the ParentIntentSignature field's value.
8910func (s *GetIntentOutput) SetParentIntentSignature(v string) *GetIntentOutput {
8911	s.ParentIntentSignature = &v
8912	return s
8913}
8914
8915// SetRejectionStatement sets the RejectionStatement field's value.
8916func (s *GetIntentOutput) SetRejectionStatement(v *Statement) *GetIntentOutput {
8917	s.RejectionStatement = v
8918	return s
8919}
8920
8921// SetSampleUtterances sets the SampleUtterances field's value.
8922func (s *GetIntentOutput) SetSampleUtterances(v []*string) *GetIntentOutput {
8923	s.SampleUtterances = v
8924	return s
8925}
8926
8927// SetSlots sets the Slots field's value.
8928func (s *GetIntentOutput) SetSlots(v []*Slot) *GetIntentOutput {
8929	s.Slots = v
8930	return s
8931}
8932
8933// SetVersion sets the Version field's value.
8934func (s *GetIntentOutput) SetVersion(v string) *GetIntentOutput {
8935	s.Version = &v
8936	return s
8937}
8938
8939type GetIntentVersionsInput struct {
8940	_ struct{} `type:"structure"`
8941
8942	// The maximum number of intent versions to return in the response. The default
8943	// is 10.
8944	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
8945
8946	// The name of the intent for which versions should be returned.
8947	//
8948	// Name is a required field
8949	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
8950
8951	// A pagination token for fetching the next page of intent versions. If the
8952	// response to this call is truncated, Amazon Lex returns a pagination token
8953	// in the response. To fetch the next page of versions, specify the pagination
8954	// token in the next request.
8955	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
8956}
8957
8958// String returns the string representation
8959func (s GetIntentVersionsInput) String() string {
8960	return awsutil.Prettify(s)
8961}
8962
8963// GoString returns the string representation
8964func (s GetIntentVersionsInput) GoString() string {
8965	return s.String()
8966}
8967
8968// Validate inspects the fields of the type to determine if they are valid.
8969func (s *GetIntentVersionsInput) Validate() error {
8970	invalidParams := request.ErrInvalidParams{Context: "GetIntentVersionsInput"}
8971	if s.MaxResults != nil && *s.MaxResults < 1 {
8972		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8973	}
8974	if s.Name == nil {
8975		invalidParams.Add(request.NewErrParamRequired("Name"))
8976	}
8977	if s.Name != nil && len(*s.Name) < 1 {
8978		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8979	}
8980
8981	if invalidParams.Len() > 0 {
8982		return invalidParams
8983	}
8984	return nil
8985}
8986
8987// SetMaxResults sets the MaxResults field's value.
8988func (s *GetIntentVersionsInput) SetMaxResults(v int64) *GetIntentVersionsInput {
8989	s.MaxResults = &v
8990	return s
8991}
8992
8993// SetName sets the Name field's value.
8994func (s *GetIntentVersionsInput) SetName(v string) *GetIntentVersionsInput {
8995	s.Name = &v
8996	return s
8997}
8998
8999// SetNextToken sets the NextToken field's value.
9000func (s *GetIntentVersionsInput) SetNextToken(v string) *GetIntentVersionsInput {
9001	s.NextToken = &v
9002	return s
9003}
9004
9005type GetIntentVersionsOutput struct {
9006	_ struct{} `type:"structure"`
9007
9008	// An array of IntentMetadata objects, one for each numbered version of the
9009	// intent plus one for the $LATEST version.
9010	Intents []*IntentMetadata `locationName:"intents" type:"list"`
9011
9012	// A pagination token for fetching the next page of intent versions. If the
9013	// response to this call is truncated, Amazon Lex returns a pagination token
9014	// in the response. To fetch the next page of versions, specify the pagination
9015	// token in the next request.
9016	NextToken *string `locationName:"nextToken" type:"string"`
9017}
9018
9019// String returns the string representation
9020func (s GetIntentVersionsOutput) String() string {
9021	return awsutil.Prettify(s)
9022}
9023
9024// GoString returns the string representation
9025func (s GetIntentVersionsOutput) GoString() string {
9026	return s.String()
9027}
9028
9029// SetIntents sets the Intents field's value.
9030func (s *GetIntentVersionsOutput) SetIntents(v []*IntentMetadata) *GetIntentVersionsOutput {
9031	s.Intents = v
9032	return s
9033}
9034
9035// SetNextToken sets the NextToken field's value.
9036func (s *GetIntentVersionsOutput) SetNextToken(v string) *GetIntentVersionsOutput {
9037	s.NextToken = &v
9038	return s
9039}
9040
9041type GetIntentsInput struct {
9042	_ struct{} `type:"structure"`
9043
9044	// The maximum number of intents to return in the response. The default is 10.
9045	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
9046
9047	// Substring to match in intent names. An intent will be returned if any part
9048	// of its name matches the substring. For example, "xyz" matches both "xyzabc"
9049	// and "abcxyz."
9050	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
9051
9052	// A pagination token that fetches the next page of intents. If the response
9053	// to this API call is truncated, Amazon Lex returns a pagination token in the
9054	// response. To fetch the next page of intents, specify the pagination token
9055	// in the next request.
9056	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
9057}
9058
9059// String returns the string representation
9060func (s GetIntentsInput) String() string {
9061	return awsutil.Prettify(s)
9062}
9063
9064// GoString returns the string representation
9065func (s GetIntentsInput) GoString() string {
9066	return s.String()
9067}
9068
9069// Validate inspects the fields of the type to determine if they are valid.
9070func (s *GetIntentsInput) Validate() error {
9071	invalidParams := request.ErrInvalidParams{Context: "GetIntentsInput"}
9072	if s.MaxResults != nil && *s.MaxResults < 1 {
9073		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9074	}
9075	if s.NameContains != nil && len(*s.NameContains) < 1 {
9076		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
9077	}
9078
9079	if invalidParams.Len() > 0 {
9080		return invalidParams
9081	}
9082	return nil
9083}
9084
9085// SetMaxResults sets the MaxResults field's value.
9086func (s *GetIntentsInput) SetMaxResults(v int64) *GetIntentsInput {
9087	s.MaxResults = &v
9088	return s
9089}
9090
9091// SetNameContains sets the NameContains field's value.
9092func (s *GetIntentsInput) SetNameContains(v string) *GetIntentsInput {
9093	s.NameContains = &v
9094	return s
9095}
9096
9097// SetNextToken sets the NextToken field's value.
9098func (s *GetIntentsInput) SetNextToken(v string) *GetIntentsInput {
9099	s.NextToken = &v
9100	return s
9101}
9102
9103type GetIntentsOutput struct {
9104	_ struct{} `type:"structure"`
9105
9106	// An array of Intent objects. For more information, see PutBot.
9107	Intents []*IntentMetadata `locationName:"intents" type:"list"`
9108
9109	// If the response is truncated, the response includes a pagination token that
9110	// you can specify in your next request to fetch the next page of intents.
9111	NextToken *string `locationName:"nextToken" type:"string"`
9112}
9113
9114// String returns the string representation
9115func (s GetIntentsOutput) String() string {
9116	return awsutil.Prettify(s)
9117}
9118
9119// GoString returns the string representation
9120func (s GetIntentsOutput) GoString() string {
9121	return s.String()
9122}
9123
9124// SetIntents sets the Intents field's value.
9125func (s *GetIntentsOutput) SetIntents(v []*IntentMetadata) *GetIntentsOutput {
9126	s.Intents = v
9127	return s
9128}
9129
9130// SetNextToken sets the NextToken field's value.
9131func (s *GetIntentsOutput) SetNextToken(v string) *GetIntentsOutput {
9132	s.NextToken = &v
9133	return s
9134}
9135
9136type GetMigrationInput struct {
9137	_ struct{} `type:"structure"`
9138
9139	// The unique identifier of the migration to view. The migrationID is returned
9140	// by the operation.
9141	//
9142	// MigrationId is a required field
9143	MigrationId *string `location:"uri" locationName:"migrationId" min:"10" type:"string" required:"true"`
9144}
9145
9146// String returns the string representation
9147func (s GetMigrationInput) String() string {
9148	return awsutil.Prettify(s)
9149}
9150
9151// GoString returns the string representation
9152func (s GetMigrationInput) GoString() string {
9153	return s.String()
9154}
9155
9156// Validate inspects the fields of the type to determine if they are valid.
9157func (s *GetMigrationInput) Validate() error {
9158	invalidParams := request.ErrInvalidParams{Context: "GetMigrationInput"}
9159	if s.MigrationId == nil {
9160		invalidParams.Add(request.NewErrParamRequired("MigrationId"))
9161	}
9162	if s.MigrationId != nil && len(*s.MigrationId) < 10 {
9163		invalidParams.Add(request.NewErrParamMinLen("MigrationId", 10))
9164	}
9165
9166	if invalidParams.Len() > 0 {
9167		return invalidParams
9168	}
9169	return nil
9170}
9171
9172// SetMigrationId sets the MigrationId field's value.
9173func (s *GetMigrationInput) SetMigrationId(v string) *GetMigrationInput {
9174	s.MigrationId = &v
9175	return s
9176}
9177
9178type GetMigrationOutput struct {
9179	_ struct{} `type:"structure"`
9180
9181	// A list of alerts and warnings that indicate issues with the migration for
9182	// the Amazon Lex V1 bot to Amazon Lex V2. You receive a warning when an Amazon
9183	// Lex V1 feature has a different implementation if Amazon Lex V2.
9184	//
9185	// For more information, see Migrating a bot (https://docs.aws.amazon.com/lexv2/latest/dg/migrate.html)
9186	// in the Amazon Lex V2 developer guide.
9187	Alerts []*MigrationAlert `locationName:"alerts" type:"list"`
9188
9189	// The unique identifier of the migration. This is the same as the identifier
9190	// used when calling the GetMigration operation.
9191	MigrationId *string `locationName:"migrationId" min:"10" type:"string"`
9192
9193	// Indicates the status of the migration. When the status is COMPLETE the migration
9194	// is finished and the bot is available in Amazon Lex V2. There may be alerts
9195	// and warnings that need to be resolved to complete the migration.
9196	MigrationStatus *string `locationName:"migrationStatus" type:"string" enum:"MigrationStatus"`
9197
9198	// The strategy used to conduct the migration.
9199	//
9200	//    * CREATE_NEW - Creates a new Amazon Lex V2 bot and migrates the Amazon
9201	//    Lex V1 bot to the new bot.
9202	//
9203	//    * UPDATE_EXISTING - Overwrites the existing Amazon Lex V2 bot metadata
9204	//    and the locale being migrated. It doesn't change any other locales in
9205	//    the Amazon Lex V2 bot. If the locale doesn't exist, a new locale is created
9206	//    in the Amazon Lex V2 bot.
9207	MigrationStrategy *string `locationName:"migrationStrategy" type:"string" enum:"MigrationStrategy"`
9208
9209	// The date and time that the migration started.
9210	MigrationTimestamp *time.Time `locationName:"migrationTimestamp" type:"timestamp"`
9211
9212	// The locale of the Amazon Lex V1 bot migrated to Amazon Lex V2.
9213	V1BotLocale *string `locationName:"v1BotLocale" type:"string" enum:"Locale"`
9214
9215	// The name of the Amazon Lex V1 bot migrated to Amazon Lex V2.
9216	V1BotName *string `locationName:"v1BotName" min:"2" type:"string"`
9217
9218	// The version of the Amazon Lex V1 bot migrated to Amazon Lex V2.
9219	V1BotVersion *string `locationName:"v1BotVersion" min:"1" type:"string"`
9220
9221	// The unique identifier of the Amazon Lex V2 bot that the Amazon Lex V1 is
9222	// being migrated to.
9223	V2BotId *string `locationName:"v2BotId" min:"10" type:"string"`
9224
9225	// The IAM role that Amazon Lex uses to run the Amazon Lex V2 bot.
9226	V2BotRole *string `locationName:"v2BotRole" min:"20" type:"string"`
9227}
9228
9229// String returns the string representation
9230func (s GetMigrationOutput) String() string {
9231	return awsutil.Prettify(s)
9232}
9233
9234// GoString returns the string representation
9235func (s GetMigrationOutput) GoString() string {
9236	return s.String()
9237}
9238
9239// SetAlerts sets the Alerts field's value.
9240func (s *GetMigrationOutput) SetAlerts(v []*MigrationAlert) *GetMigrationOutput {
9241	s.Alerts = v
9242	return s
9243}
9244
9245// SetMigrationId sets the MigrationId field's value.
9246func (s *GetMigrationOutput) SetMigrationId(v string) *GetMigrationOutput {
9247	s.MigrationId = &v
9248	return s
9249}
9250
9251// SetMigrationStatus sets the MigrationStatus field's value.
9252func (s *GetMigrationOutput) SetMigrationStatus(v string) *GetMigrationOutput {
9253	s.MigrationStatus = &v
9254	return s
9255}
9256
9257// SetMigrationStrategy sets the MigrationStrategy field's value.
9258func (s *GetMigrationOutput) SetMigrationStrategy(v string) *GetMigrationOutput {
9259	s.MigrationStrategy = &v
9260	return s
9261}
9262
9263// SetMigrationTimestamp sets the MigrationTimestamp field's value.
9264func (s *GetMigrationOutput) SetMigrationTimestamp(v time.Time) *GetMigrationOutput {
9265	s.MigrationTimestamp = &v
9266	return s
9267}
9268
9269// SetV1BotLocale sets the V1BotLocale field's value.
9270func (s *GetMigrationOutput) SetV1BotLocale(v string) *GetMigrationOutput {
9271	s.V1BotLocale = &v
9272	return s
9273}
9274
9275// SetV1BotName sets the V1BotName field's value.
9276func (s *GetMigrationOutput) SetV1BotName(v string) *GetMigrationOutput {
9277	s.V1BotName = &v
9278	return s
9279}
9280
9281// SetV1BotVersion sets the V1BotVersion field's value.
9282func (s *GetMigrationOutput) SetV1BotVersion(v string) *GetMigrationOutput {
9283	s.V1BotVersion = &v
9284	return s
9285}
9286
9287// SetV2BotId sets the V2BotId field's value.
9288func (s *GetMigrationOutput) SetV2BotId(v string) *GetMigrationOutput {
9289	s.V2BotId = &v
9290	return s
9291}
9292
9293// SetV2BotRole sets the V2BotRole field's value.
9294func (s *GetMigrationOutput) SetV2BotRole(v string) *GetMigrationOutput {
9295	s.V2BotRole = &v
9296	return s
9297}
9298
9299type GetMigrationsInput struct {
9300	_ struct{} `type:"structure"`
9301
9302	// The maximum number of migrations to return in the response. The default is
9303	// 10.
9304	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
9305
9306	// Filters the list to contain only migrations in the specified state.
9307	MigrationStatusEquals *string `location:"querystring" locationName:"migrationStatusEquals" type:"string" enum:"MigrationStatus"`
9308
9309	// A pagination token that fetches the next page of migrations. If the response
9310	// to this operation is truncated, Amazon Lex returns a pagination token in
9311	// the response. To fetch the next page of migrations, specify the pagination
9312	// token in the request.
9313	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
9314
9315	// The field to sort the list of migrations by. You can sort by the Amazon Lex
9316	// V1 bot name or the date and time that the migration was started.
9317	SortByAttribute *string `location:"querystring" locationName:"sortByAttribute" type:"string" enum:"MigrationSortAttribute"`
9318
9319	// The order so sort the list.
9320	SortByOrder *string `location:"querystring" locationName:"sortByOrder" type:"string" enum:"SortOrder"`
9321
9322	// Filters the list to contain only bots whose name contains the specified string.
9323	// The string is matched anywhere in bot name.
9324	V1BotNameContains *string `location:"querystring" locationName:"v1BotNameContains" min:"2" type:"string"`
9325}
9326
9327// String returns the string representation
9328func (s GetMigrationsInput) String() string {
9329	return awsutil.Prettify(s)
9330}
9331
9332// GoString returns the string representation
9333func (s GetMigrationsInput) GoString() string {
9334	return s.String()
9335}
9336
9337// Validate inspects the fields of the type to determine if they are valid.
9338func (s *GetMigrationsInput) Validate() error {
9339	invalidParams := request.ErrInvalidParams{Context: "GetMigrationsInput"}
9340	if s.MaxResults != nil && *s.MaxResults < 1 {
9341		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9342	}
9343	if s.V1BotNameContains != nil && len(*s.V1BotNameContains) < 2 {
9344		invalidParams.Add(request.NewErrParamMinLen("V1BotNameContains", 2))
9345	}
9346
9347	if invalidParams.Len() > 0 {
9348		return invalidParams
9349	}
9350	return nil
9351}
9352
9353// SetMaxResults sets the MaxResults field's value.
9354func (s *GetMigrationsInput) SetMaxResults(v int64) *GetMigrationsInput {
9355	s.MaxResults = &v
9356	return s
9357}
9358
9359// SetMigrationStatusEquals sets the MigrationStatusEquals field's value.
9360func (s *GetMigrationsInput) SetMigrationStatusEquals(v string) *GetMigrationsInput {
9361	s.MigrationStatusEquals = &v
9362	return s
9363}
9364
9365// SetNextToken sets the NextToken field's value.
9366func (s *GetMigrationsInput) SetNextToken(v string) *GetMigrationsInput {
9367	s.NextToken = &v
9368	return s
9369}
9370
9371// SetSortByAttribute sets the SortByAttribute field's value.
9372func (s *GetMigrationsInput) SetSortByAttribute(v string) *GetMigrationsInput {
9373	s.SortByAttribute = &v
9374	return s
9375}
9376
9377// SetSortByOrder sets the SortByOrder field's value.
9378func (s *GetMigrationsInput) SetSortByOrder(v string) *GetMigrationsInput {
9379	s.SortByOrder = &v
9380	return s
9381}
9382
9383// SetV1BotNameContains sets the V1BotNameContains field's value.
9384func (s *GetMigrationsInput) SetV1BotNameContains(v string) *GetMigrationsInput {
9385	s.V1BotNameContains = &v
9386	return s
9387}
9388
9389type GetMigrationsOutput struct {
9390	_ struct{} `type:"structure"`
9391
9392	// An array of summaries for migrations from Amazon Lex V1 to Amazon Lex V2.
9393	// To see details of the migration, use the migrationId from the summary in
9394	// a call to the operation.
9395	MigrationSummaries []*MigrationSummary `locationName:"migrationSummaries" type:"list"`
9396
9397	// If the response is truncated, it includes a pagination token that you can
9398	// specify in your next request to fetch the next page of migrations.
9399	NextToken *string `locationName:"nextToken" type:"string"`
9400}
9401
9402// String returns the string representation
9403func (s GetMigrationsOutput) String() string {
9404	return awsutil.Prettify(s)
9405}
9406
9407// GoString returns the string representation
9408func (s GetMigrationsOutput) GoString() string {
9409	return s.String()
9410}
9411
9412// SetMigrationSummaries sets the MigrationSummaries field's value.
9413func (s *GetMigrationsOutput) SetMigrationSummaries(v []*MigrationSummary) *GetMigrationsOutput {
9414	s.MigrationSummaries = v
9415	return s
9416}
9417
9418// SetNextToken sets the NextToken field's value.
9419func (s *GetMigrationsOutput) SetNextToken(v string) *GetMigrationsOutput {
9420	s.NextToken = &v
9421	return s
9422}
9423
9424type GetSlotTypeInput struct {
9425	_ struct{} `type:"structure"`
9426
9427	// The name of the slot type. The name is case sensitive.
9428	//
9429	// Name is a required field
9430	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
9431
9432	// The version of the slot type.
9433	//
9434	// Version is a required field
9435	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
9436}
9437
9438// String returns the string representation
9439func (s GetSlotTypeInput) String() string {
9440	return awsutil.Prettify(s)
9441}
9442
9443// GoString returns the string representation
9444func (s GetSlotTypeInput) GoString() string {
9445	return s.String()
9446}
9447
9448// Validate inspects the fields of the type to determine if they are valid.
9449func (s *GetSlotTypeInput) Validate() error {
9450	invalidParams := request.ErrInvalidParams{Context: "GetSlotTypeInput"}
9451	if s.Name == nil {
9452		invalidParams.Add(request.NewErrParamRequired("Name"))
9453	}
9454	if s.Name != nil && len(*s.Name) < 1 {
9455		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9456	}
9457	if s.Version == nil {
9458		invalidParams.Add(request.NewErrParamRequired("Version"))
9459	}
9460	if s.Version != nil && len(*s.Version) < 1 {
9461		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
9462	}
9463
9464	if invalidParams.Len() > 0 {
9465		return invalidParams
9466	}
9467	return nil
9468}
9469
9470// SetName sets the Name field's value.
9471func (s *GetSlotTypeInput) SetName(v string) *GetSlotTypeInput {
9472	s.Name = &v
9473	return s
9474}
9475
9476// SetVersion sets the Version field's value.
9477func (s *GetSlotTypeInput) SetVersion(v string) *GetSlotTypeInput {
9478	s.Version = &v
9479	return s
9480}
9481
9482type GetSlotTypeOutput struct {
9483	_ struct{} `type:"structure"`
9484
9485	// Checksum of the $LATEST version of the slot type.
9486	Checksum *string `locationName:"checksum" type:"string"`
9487
9488	// The date that the slot type was created.
9489	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
9490
9491	// A description of the slot type.
9492	Description *string `locationName:"description" type:"string"`
9493
9494	// A list of EnumerationValue objects that defines the values that the slot
9495	// type can take.
9496	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" type:"list"`
9497
9498	// The date that the slot type was updated. When you create a resource, the
9499	// creation date and last update date are the same.
9500	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
9501
9502	// The name of the slot type.
9503	Name *string `locationName:"name" min:"1" type:"string"`
9504
9505	// The built-in slot type used as a parent for the slot type.
9506	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" min:"1" type:"string"`
9507
9508	// Configuration information that extends the parent built-in slot type.
9509	SlotTypeConfigurations []*SlotTypeConfiguration `locationName:"slotTypeConfigurations" type:"list"`
9510
9511	// The strategy that Amazon Lex uses to determine the value of the slot. For
9512	// more information, see PutSlotType.
9513	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
9514
9515	// The version of the slot type.
9516	Version *string `locationName:"version" min:"1" type:"string"`
9517}
9518
9519// String returns the string representation
9520func (s GetSlotTypeOutput) String() string {
9521	return awsutil.Prettify(s)
9522}
9523
9524// GoString returns the string representation
9525func (s GetSlotTypeOutput) GoString() string {
9526	return s.String()
9527}
9528
9529// SetChecksum sets the Checksum field's value.
9530func (s *GetSlotTypeOutput) SetChecksum(v string) *GetSlotTypeOutput {
9531	s.Checksum = &v
9532	return s
9533}
9534
9535// SetCreatedDate sets the CreatedDate field's value.
9536func (s *GetSlotTypeOutput) SetCreatedDate(v time.Time) *GetSlotTypeOutput {
9537	s.CreatedDate = &v
9538	return s
9539}
9540
9541// SetDescription sets the Description field's value.
9542func (s *GetSlotTypeOutput) SetDescription(v string) *GetSlotTypeOutput {
9543	s.Description = &v
9544	return s
9545}
9546
9547// SetEnumerationValues sets the EnumerationValues field's value.
9548func (s *GetSlotTypeOutput) SetEnumerationValues(v []*EnumerationValue) *GetSlotTypeOutput {
9549	s.EnumerationValues = v
9550	return s
9551}
9552
9553// SetLastUpdatedDate sets the LastUpdatedDate field's value.
9554func (s *GetSlotTypeOutput) SetLastUpdatedDate(v time.Time) *GetSlotTypeOutput {
9555	s.LastUpdatedDate = &v
9556	return s
9557}
9558
9559// SetName sets the Name field's value.
9560func (s *GetSlotTypeOutput) SetName(v string) *GetSlotTypeOutput {
9561	s.Name = &v
9562	return s
9563}
9564
9565// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
9566func (s *GetSlotTypeOutput) SetParentSlotTypeSignature(v string) *GetSlotTypeOutput {
9567	s.ParentSlotTypeSignature = &v
9568	return s
9569}
9570
9571// SetSlotTypeConfigurations sets the SlotTypeConfigurations field's value.
9572func (s *GetSlotTypeOutput) SetSlotTypeConfigurations(v []*SlotTypeConfiguration) *GetSlotTypeOutput {
9573	s.SlotTypeConfigurations = v
9574	return s
9575}
9576
9577// SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
9578func (s *GetSlotTypeOutput) SetValueSelectionStrategy(v string) *GetSlotTypeOutput {
9579	s.ValueSelectionStrategy = &v
9580	return s
9581}
9582
9583// SetVersion sets the Version field's value.
9584func (s *GetSlotTypeOutput) SetVersion(v string) *GetSlotTypeOutput {
9585	s.Version = &v
9586	return s
9587}
9588
9589type GetSlotTypeVersionsInput struct {
9590	_ struct{} `type:"structure"`
9591
9592	// The maximum number of slot type versions to return in the response. The default
9593	// is 10.
9594	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
9595
9596	// The name of the slot type for which versions should be returned.
9597	//
9598	// Name is a required field
9599	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
9600
9601	// A pagination token for fetching the next page of slot type versions. If the
9602	// response to this call is truncated, Amazon Lex returns a pagination token
9603	// in the response. To fetch the next page of versions, specify the pagination
9604	// token in the next request.
9605	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
9606}
9607
9608// String returns the string representation
9609func (s GetSlotTypeVersionsInput) String() string {
9610	return awsutil.Prettify(s)
9611}
9612
9613// GoString returns the string representation
9614func (s GetSlotTypeVersionsInput) GoString() string {
9615	return s.String()
9616}
9617
9618// Validate inspects the fields of the type to determine if they are valid.
9619func (s *GetSlotTypeVersionsInput) Validate() error {
9620	invalidParams := request.ErrInvalidParams{Context: "GetSlotTypeVersionsInput"}
9621	if s.MaxResults != nil && *s.MaxResults < 1 {
9622		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9623	}
9624	if s.Name == nil {
9625		invalidParams.Add(request.NewErrParamRequired("Name"))
9626	}
9627	if s.Name != nil && len(*s.Name) < 1 {
9628		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9629	}
9630
9631	if invalidParams.Len() > 0 {
9632		return invalidParams
9633	}
9634	return nil
9635}
9636
9637// SetMaxResults sets the MaxResults field's value.
9638func (s *GetSlotTypeVersionsInput) SetMaxResults(v int64) *GetSlotTypeVersionsInput {
9639	s.MaxResults = &v
9640	return s
9641}
9642
9643// SetName sets the Name field's value.
9644func (s *GetSlotTypeVersionsInput) SetName(v string) *GetSlotTypeVersionsInput {
9645	s.Name = &v
9646	return s
9647}
9648
9649// SetNextToken sets the NextToken field's value.
9650func (s *GetSlotTypeVersionsInput) SetNextToken(v string) *GetSlotTypeVersionsInput {
9651	s.NextToken = &v
9652	return s
9653}
9654
9655type GetSlotTypeVersionsOutput struct {
9656	_ struct{} `type:"structure"`
9657
9658	// A pagination token for fetching the next page of slot type versions. If the
9659	// response to this call is truncated, Amazon Lex returns a pagination token
9660	// in the response. To fetch the next page of versions, specify the pagination
9661	// token in the next request.
9662	NextToken *string `locationName:"nextToken" type:"string"`
9663
9664	// An array of SlotTypeMetadata objects, one for each numbered version of the
9665	// slot type plus one for the $LATEST version.
9666	SlotTypes []*SlotTypeMetadata `locationName:"slotTypes" type:"list"`
9667}
9668
9669// String returns the string representation
9670func (s GetSlotTypeVersionsOutput) String() string {
9671	return awsutil.Prettify(s)
9672}
9673
9674// GoString returns the string representation
9675func (s GetSlotTypeVersionsOutput) GoString() string {
9676	return s.String()
9677}
9678
9679// SetNextToken sets the NextToken field's value.
9680func (s *GetSlotTypeVersionsOutput) SetNextToken(v string) *GetSlotTypeVersionsOutput {
9681	s.NextToken = &v
9682	return s
9683}
9684
9685// SetSlotTypes sets the SlotTypes field's value.
9686func (s *GetSlotTypeVersionsOutput) SetSlotTypes(v []*SlotTypeMetadata) *GetSlotTypeVersionsOutput {
9687	s.SlotTypes = v
9688	return s
9689}
9690
9691type GetSlotTypesInput struct {
9692	_ struct{} `type:"structure"`
9693
9694	// The maximum number of slot types to return in the response. The default is
9695	// 10.
9696	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
9697
9698	// Substring to match in slot type names. A slot type will be returned if any
9699	// part of its name matches the substring. For example, "xyz" matches both "xyzabc"
9700	// and "abcxyz."
9701	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
9702
9703	// A pagination token that fetches the next page of slot types. If the response
9704	// to this API call is truncated, Amazon Lex returns a pagination token in the
9705	// response. To fetch next page of slot types, specify the pagination token
9706	// in the next request.
9707	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
9708}
9709
9710// String returns the string representation
9711func (s GetSlotTypesInput) String() string {
9712	return awsutil.Prettify(s)
9713}
9714
9715// GoString returns the string representation
9716func (s GetSlotTypesInput) GoString() string {
9717	return s.String()
9718}
9719
9720// Validate inspects the fields of the type to determine if they are valid.
9721func (s *GetSlotTypesInput) Validate() error {
9722	invalidParams := request.ErrInvalidParams{Context: "GetSlotTypesInput"}
9723	if s.MaxResults != nil && *s.MaxResults < 1 {
9724		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9725	}
9726	if s.NameContains != nil && len(*s.NameContains) < 1 {
9727		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
9728	}
9729
9730	if invalidParams.Len() > 0 {
9731		return invalidParams
9732	}
9733	return nil
9734}
9735
9736// SetMaxResults sets the MaxResults field's value.
9737func (s *GetSlotTypesInput) SetMaxResults(v int64) *GetSlotTypesInput {
9738	s.MaxResults = &v
9739	return s
9740}
9741
9742// SetNameContains sets the NameContains field's value.
9743func (s *GetSlotTypesInput) SetNameContains(v string) *GetSlotTypesInput {
9744	s.NameContains = &v
9745	return s
9746}
9747
9748// SetNextToken sets the NextToken field's value.
9749func (s *GetSlotTypesInput) SetNextToken(v string) *GetSlotTypesInput {
9750	s.NextToken = &v
9751	return s
9752}
9753
9754type GetSlotTypesOutput struct {
9755	_ struct{} `type:"structure"`
9756
9757	// If the response is truncated, it includes a pagination token that you can
9758	// specify in your next request to fetch the next page of slot types.
9759	NextToken *string `locationName:"nextToken" type:"string"`
9760
9761	// An array of objects, one for each slot type, that provides information such
9762	// as the name of the slot type, the version, and a description.
9763	SlotTypes []*SlotTypeMetadata `locationName:"slotTypes" type:"list"`
9764}
9765
9766// String returns the string representation
9767func (s GetSlotTypesOutput) String() string {
9768	return awsutil.Prettify(s)
9769}
9770
9771// GoString returns the string representation
9772func (s GetSlotTypesOutput) GoString() string {
9773	return s.String()
9774}
9775
9776// SetNextToken sets the NextToken field's value.
9777func (s *GetSlotTypesOutput) SetNextToken(v string) *GetSlotTypesOutput {
9778	s.NextToken = &v
9779	return s
9780}
9781
9782// SetSlotTypes sets the SlotTypes field's value.
9783func (s *GetSlotTypesOutput) SetSlotTypes(v []*SlotTypeMetadata) *GetSlotTypesOutput {
9784	s.SlotTypes = v
9785	return s
9786}
9787
9788type GetUtterancesViewInput struct {
9789	_ struct{} `type:"structure"`
9790
9791	// The name of the bot for which utterance information should be returned.
9792	//
9793	// BotName is a required field
9794	BotName *string `location:"uri" locationName:"botname" min:"2" type:"string" required:"true"`
9795
9796	// An array of bot versions for which utterance information should be returned.
9797	// The limit is 5 versions per request.
9798	//
9799	// BotVersions is a required field
9800	BotVersions []*string `location:"querystring" locationName:"bot_versions" min:"1" type:"list" required:"true"`
9801
9802	// To return utterances that were recognized and handled, use Detected. To return
9803	// utterances that were not recognized, use Missed.
9804	//
9805	// StatusType is a required field
9806	StatusType *string `location:"querystring" locationName:"status_type" type:"string" required:"true" enum:"StatusType"`
9807}
9808
9809// String returns the string representation
9810func (s GetUtterancesViewInput) String() string {
9811	return awsutil.Prettify(s)
9812}
9813
9814// GoString returns the string representation
9815func (s GetUtterancesViewInput) GoString() string {
9816	return s.String()
9817}
9818
9819// Validate inspects the fields of the type to determine if they are valid.
9820func (s *GetUtterancesViewInput) Validate() error {
9821	invalidParams := request.ErrInvalidParams{Context: "GetUtterancesViewInput"}
9822	if s.BotName == nil {
9823		invalidParams.Add(request.NewErrParamRequired("BotName"))
9824	}
9825	if s.BotName != nil && len(*s.BotName) < 2 {
9826		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
9827	}
9828	if s.BotVersions == nil {
9829		invalidParams.Add(request.NewErrParamRequired("BotVersions"))
9830	}
9831	if s.BotVersions != nil && len(s.BotVersions) < 1 {
9832		invalidParams.Add(request.NewErrParamMinLen("BotVersions", 1))
9833	}
9834	if s.StatusType == nil {
9835		invalidParams.Add(request.NewErrParamRequired("StatusType"))
9836	}
9837
9838	if invalidParams.Len() > 0 {
9839		return invalidParams
9840	}
9841	return nil
9842}
9843
9844// SetBotName sets the BotName field's value.
9845func (s *GetUtterancesViewInput) SetBotName(v string) *GetUtterancesViewInput {
9846	s.BotName = &v
9847	return s
9848}
9849
9850// SetBotVersions sets the BotVersions field's value.
9851func (s *GetUtterancesViewInput) SetBotVersions(v []*string) *GetUtterancesViewInput {
9852	s.BotVersions = v
9853	return s
9854}
9855
9856// SetStatusType sets the StatusType field's value.
9857func (s *GetUtterancesViewInput) SetStatusType(v string) *GetUtterancesViewInput {
9858	s.StatusType = &v
9859	return s
9860}
9861
9862type GetUtterancesViewOutput struct {
9863	_ struct{} `type:"structure"`
9864
9865	// The name of the bot for which utterance information was returned.
9866	BotName *string `locationName:"botName" min:"2" type:"string"`
9867
9868	// An array of UtteranceList objects, each containing a list of UtteranceData
9869	// objects describing the utterances that were processed by your bot. The response
9870	// contains a maximum of 100 UtteranceData objects for each version. Amazon
9871	// Lex returns the most frequent utterances received by the bot in the last
9872	// 15 days.
9873	Utterances []*UtteranceList `locationName:"utterances" type:"list"`
9874}
9875
9876// String returns the string representation
9877func (s GetUtterancesViewOutput) String() string {
9878	return awsutil.Prettify(s)
9879}
9880
9881// GoString returns the string representation
9882func (s GetUtterancesViewOutput) GoString() string {
9883	return s.String()
9884}
9885
9886// SetBotName sets the BotName field's value.
9887func (s *GetUtterancesViewOutput) SetBotName(v string) *GetUtterancesViewOutput {
9888	s.BotName = &v
9889	return s
9890}
9891
9892// SetUtterances sets the Utterances field's value.
9893func (s *GetUtterancesViewOutput) SetUtterances(v []*UtteranceList) *GetUtterancesViewOutput {
9894	s.Utterances = v
9895	return s
9896}
9897
9898// The name of a context that must be active for an intent to be selected by
9899// Amazon Lex.
9900type InputContext struct {
9901	_ struct{} `type:"structure"`
9902
9903	// The name of the context.
9904	//
9905	// Name is a required field
9906	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
9907}
9908
9909// String returns the string representation
9910func (s InputContext) String() string {
9911	return awsutil.Prettify(s)
9912}
9913
9914// GoString returns the string representation
9915func (s InputContext) GoString() string {
9916	return s.String()
9917}
9918
9919// Validate inspects the fields of the type to determine if they are valid.
9920func (s *InputContext) Validate() error {
9921	invalidParams := request.ErrInvalidParams{Context: "InputContext"}
9922	if s.Name == nil {
9923		invalidParams.Add(request.NewErrParamRequired("Name"))
9924	}
9925	if s.Name != nil && len(*s.Name) < 1 {
9926		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9927	}
9928
9929	if invalidParams.Len() > 0 {
9930		return invalidParams
9931	}
9932	return nil
9933}
9934
9935// SetName sets the Name field's value.
9936func (s *InputContext) SetName(v string) *InputContext {
9937	s.Name = &v
9938	return s
9939}
9940
9941// Identifies the specific version of an intent.
9942type Intent struct {
9943	_ struct{} `type:"structure"`
9944
9945	// The name of the intent.
9946	//
9947	// IntentName is a required field
9948	IntentName *string `locationName:"intentName" min:"1" type:"string" required:"true"`
9949
9950	// The version of the intent.
9951	//
9952	// IntentVersion is a required field
9953	IntentVersion *string `locationName:"intentVersion" min:"1" type:"string" required:"true"`
9954}
9955
9956// String returns the string representation
9957func (s Intent) String() string {
9958	return awsutil.Prettify(s)
9959}
9960
9961// GoString returns the string representation
9962func (s Intent) GoString() string {
9963	return s.String()
9964}
9965
9966// Validate inspects the fields of the type to determine if they are valid.
9967func (s *Intent) Validate() error {
9968	invalidParams := request.ErrInvalidParams{Context: "Intent"}
9969	if s.IntentName == nil {
9970		invalidParams.Add(request.NewErrParamRequired("IntentName"))
9971	}
9972	if s.IntentName != nil && len(*s.IntentName) < 1 {
9973		invalidParams.Add(request.NewErrParamMinLen("IntentName", 1))
9974	}
9975	if s.IntentVersion == nil {
9976		invalidParams.Add(request.NewErrParamRequired("IntentVersion"))
9977	}
9978	if s.IntentVersion != nil && len(*s.IntentVersion) < 1 {
9979		invalidParams.Add(request.NewErrParamMinLen("IntentVersion", 1))
9980	}
9981
9982	if invalidParams.Len() > 0 {
9983		return invalidParams
9984	}
9985	return nil
9986}
9987
9988// SetIntentName sets the IntentName field's value.
9989func (s *Intent) SetIntentName(v string) *Intent {
9990	s.IntentName = &v
9991	return s
9992}
9993
9994// SetIntentVersion sets the IntentVersion field's value.
9995func (s *Intent) SetIntentVersion(v string) *Intent {
9996	s.IntentVersion = &v
9997	return s
9998}
9999
10000// Provides information about an intent.
10001type IntentMetadata struct {
10002	_ struct{} `type:"structure"`
10003
10004	// The date that the intent was created.
10005	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
10006
10007	// A description of the intent.
10008	Description *string `locationName:"description" type:"string"`
10009
10010	// The date that the intent was updated. When you create an intent, the creation
10011	// date and last updated date are the same.
10012	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
10013
10014	// The name of the intent.
10015	Name *string `locationName:"name" min:"1" type:"string"`
10016
10017	// The version of the intent.
10018	Version *string `locationName:"version" min:"1" type:"string"`
10019}
10020
10021// String returns the string representation
10022func (s IntentMetadata) String() string {
10023	return awsutil.Prettify(s)
10024}
10025
10026// GoString returns the string representation
10027func (s IntentMetadata) GoString() string {
10028	return s.String()
10029}
10030
10031// SetCreatedDate sets the CreatedDate field's value.
10032func (s *IntentMetadata) SetCreatedDate(v time.Time) *IntentMetadata {
10033	s.CreatedDate = &v
10034	return s
10035}
10036
10037// SetDescription sets the Description field's value.
10038func (s *IntentMetadata) SetDescription(v string) *IntentMetadata {
10039	s.Description = &v
10040	return s
10041}
10042
10043// SetLastUpdatedDate sets the LastUpdatedDate field's value.
10044func (s *IntentMetadata) SetLastUpdatedDate(v time.Time) *IntentMetadata {
10045	s.LastUpdatedDate = &v
10046	return s
10047}
10048
10049// SetName sets the Name field's value.
10050func (s *IntentMetadata) SetName(v string) *IntentMetadata {
10051	s.Name = &v
10052	return s
10053}
10054
10055// SetVersion sets the Version field's value.
10056func (s *IntentMetadata) SetVersion(v string) *IntentMetadata {
10057	s.Version = &v
10058	return s
10059}
10060
10061// An internal Amazon Lex error occurred. Try your request again.
10062type InternalFailureException struct {
10063	_            struct{}                  `type:"structure"`
10064	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10065
10066	Message_ *string `locationName:"message" type:"string"`
10067}
10068
10069// String returns the string representation
10070func (s InternalFailureException) String() string {
10071	return awsutil.Prettify(s)
10072}
10073
10074// GoString returns the string representation
10075func (s InternalFailureException) GoString() string {
10076	return s.String()
10077}
10078
10079func newErrorInternalFailureException(v protocol.ResponseMetadata) error {
10080	return &InternalFailureException{
10081		RespMetadata: v,
10082	}
10083}
10084
10085// Code returns the exception type name.
10086func (s *InternalFailureException) Code() string {
10087	return "InternalFailureException"
10088}
10089
10090// Message returns the exception's message.
10091func (s *InternalFailureException) Message() string {
10092	if s.Message_ != nil {
10093		return *s.Message_
10094	}
10095	return ""
10096}
10097
10098// OrigErr always returns nil, satisfies awserr.Error interface.
10099func (s *InternalFailureException) OrigErr() error {
10100	return nil
10101}
10102
10103func (s *InternalFailureException) Error() string {
10104	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10105}
10106
10107// Status code returns the HTTP status code for the request's response error.
10108func (s *InternalFailureException) StatusCode() int {
10109	return s.RespMetadata.StatusCode
10110}
10111
10112// RequestID returns the service's response RequestID for request.
10113func (s *InternalFailureException) RequestID() string {
10114	return s.RespMetadata.RequestID
10115}
10116
10117// Provides configuration information for the AMAZON.KendraSearchIntent intent.
10118// When you use this intent, Amazon Lex searches the specified Amazon Kendra
10119// index and returns documents from the index that match the user's utterance.
10120// For more information, see AMAZON.KendraSearchIntent (http://docs.aws.amazon.com/lex/latest/dg/built-in-intent-kendra-search.html).
10121type KendraConfiguration struct {
10122	_ struct{} `type:"structure"`
10123
10124	// The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the
10125	// AMAZON.KendraSearchIntent intent to search. The index must be in the same
10126	// account and Region as the Amazon Lex bot. If the Amazon Kendra index does
10127	// not exist, you get an exception when you call the PutIntent operation.
10128	//
10129	// KendraIndex is a required field
10130	KendraIndex *string `locationName:"kendraIndex" min:"20" type:"string" required:"true"`
10131
10132	// A query filter that Amazon Lex sends to Amazon Kendra to filter the response
10133	// from the query. The filter is in the format defined by Amazon Kendra. For
10134	// more information, see Filtering queries (http://docs.aws.amazon.com/kendra/latest/dg/filtering.html).
10135	//
10136	// You can override this filter string with a new filter string at runtime.
10137	QueryFilterString *string `locationName:"queryFilterString" type:"string"`
10138
10139	// The Amazon Resource Name (ARN) of an IAM role that has permission to search
10140	// the Amazon Kendra index. The role must be in the same account and Region
10141	// as the Amazon Lex bot. If the role does not exist, you get an exception when
10142	// you call the PutIntent operation.
10143	//
10144	// Role is a required field
10145	Role *string `locationName:"role" min:"20" type:"string" required:"true"`
10146}
10147
10148// String returns the string representation
10149func (s KendraConfiguration) String() string {
10150	return awsutil.Prettify(s)
10151}
10152
10153// GoString returns the string representation
10154func (s KendraConfiguration) GoString() string {
10155	return s.String()
10156}
10157
10158// Validate inspects the fields of the type to determine if they are valid.
10159func (s *KendraConfiguration) Validate() error {
10160	invalidParams := request.ErrInvalidParams{Context: "KendraConfiguration"}
10161	if s.KendraIndex == nil {
10162		invalidParams.Add(request.NewErrParamRequired("KendraIndex"))
10163	}
10164	if s.KendraIndex != nil && len(*s.KendraIndex) < 20 {
10165		invalidParams.Add(request.NewErrParamMinLen("KendraIndex", 20))
10166	}
10167	if s.Role == nil {
10168		invalidParams.Add(request.NewErrParamRequired("Role"))
10169	}
10170	if s.Role != nil && len(*s.Role) < 20 {
10171		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
10172	}
10173
10174	if invalidParams.Len() > 0 {
10175		return invalidParams
10176	}
10177	return nil
10178}
10179
10180// SetKendraIndex sets the KendraIndex field's value.
10181func (s *KendraConfiguration) SetKendraIndex(v string) *KendraConfiguration {
10182	s.KendraIndex = &v
10183	return s
10184}
10185
10186// SetQueryFilterString sets the QueryFilterString field's value.
10187func (s *KendraConfiguration) SetQueryFilterString(v string) *KendraConfiguration {
10188	s.QueryFilterString = &v
10189	return s
10190}
10191
10192// SetRole sets the Role field's value.
10193func (s *KendraConfiguration) SetRole(v string) *KendraConfiguration {
10194	s.Role = &v
10195	return s
10196}
10197
10198// The request exceeded a limit. Try your request again.
10199type LimitExceededException struct {
10200	_            struct{}                  `type:"structure"`
10201	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10202
10203	Message_ *string `locationName:"message" type:"string"`
10204
10205	RetryAfterSeconds *string `location:"header" locationName:"Retry-After" type:"string"`
10206}
10207
10208// String returns the string representation
10209func (s LimitExceededException) String() string {
10210	return awsutil.Prettify(s)
10211}
10212
10213// GoString returns the string representation
10214func (s LimitExceededException) GoString() string {
10215	return s.String()
10216}
10217
10218func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
10219	return &LimitExceededException{
10220		RespMetadata: v,
10221	}
10222}
10223
10224// Code returns the exception type name.
10225func (s *LimitExceededException) Code() string {
10226	return "LimitExceededException"
10227}
10228
10229// Message returns the exception's message.
10230func (s *LimitExceededException) Message() string {
10231	if s.Message_ != nil {
10232		return *s.Message_
10233	}
10234	return ""
10235}
10236
10237// OrigErr always returns nil, satisfies awserr.Error interface.
10238func (s *LimitExceededException) OrigErr() error {
10239	return nil
10240}
10241
10242func (s *LimitExceededException) Error() string {
10243	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
10244}
10245
10246// Status code returns the HTTP status code for the request's response error.
10247func (s *LimitExceededException) StatusCode() int {
10248	return s.RespMetadata.StatusCode
10249}
10250
10251// RequestID returns the service's response RequestID for request.
10252func (s *LimitExceededException) RequestID() string {
10253	return s.RespMetadata.RequestID
10254}
10255
10256type ListTagsForResourceInput struct {
10257	_ struct{} `type:"structure"`
10258
10259	// The Amazon Resource Name (ARN) of the resource to get a list of tags for.
10260	//
10261	// ResourceArn is a required field
10262	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
10263}
10264
10265// String returns the string representation
10266func (s ListTagsForResourceInput) String() string {
10267	return awsutil.Prettify(s)
10268}
10269
10270// GoString returns the string representation
10271func (s ListTagsForResourceInput) GoString() string {
10272	return s.String()
10273}
10274
10275// Validate inspects the fields of the type to determine if they are valid.
10276func (s *ListTagsForResourceInput) Validate() error {
10277	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
10278	if s.ResourceArn == nil {
10279		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10280	}
10281	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
10282		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
10283	}
10284
10285	if invalidParams.Len() > 0 {
10286		return invalidParams
10287	}
10288	return nil
10289}
10290
10291// SetResourceArn sets the ResourceArn field's value.
10292func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
10293	s.ResourceArn = &v
10294	return s
10295}
10296
10297type ListTagsForResourceOutput struct {
10298	_ struct{} `type:"structure"`
10299
10300	// The tags associated with a resource.
10301	Tags []*Tag `locationName:"tags" type:"list"`
10302}
10303
10304// String returns the string representation
10305func (s ListTagsForResourceOutput) String() string {
10306	return awsutil.Prettify(s)
10307}
10308
10309// GoString returns the string representation
10310func (s ListTagsForResourceOutput) GoString() string {
10311	return s.String()
10312}
10313
10314// SetTags sets the Tags field's value.
10315func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
10316	s.Tags = v
10317	return s
10318}
10319
10320// Settings used to configure delivery mode and destination for conversation
10321// logs.
10322type LogSettingsRequest struct {
10323	_ struct{} `type:"structure"`
10324
10325	// Where the logs will be delivered. Text logs are delivered to a CloudWatch
10326	// Logs log group. Audio logs are delivered to an S3 bucket.
10327	//
10328	// Destination is a required field
10329	Destination *string `locationName:"destination" type:"string" required:"true" enum:"Destination"`
10330
10331	// The Amazon Resource Name (ARN) of the AWS KMS customer managed key for encrypting
10332	// audio logs delivered to an S3 bucket. The key does not apply to CloudWatch
10333	// Logs and is optional for S3 buckets.
10334	KmsKeyArn *string `locationName:"kmsKeyArn" min:"20" type:"string"`
10335
10336	// The type of logging to enable. Text logs are delivered to a CloudWatch Logs
10337	// log group. Audio logs are delivered to an S3 bucket.
10338	//
10339	// LogType is a required field
10340	LogType *string `locationName:"logType" type:"string" required:"true" enum:"LogType"`
10341
10342	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or S3 bucket
10343	// where the logs should be delivered.
10344	//
10345	// ResourceArn is a required field
10346	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"`
10347}
10348
10349// String returns the string representation
10350func (s LogSettingsRequest) String() string {
10351	return awsutil.Prettify(s)
10352}
10353
10354// GoString returns the string representation
10355func (s LogSettingsRequest) GoString() string {
10356	return s.String()
10357}
10358
10359// Validate inspects the fields of the type to determine if they are valid.
10360func (s *LogSettingsRequest) Validate() error {
10361	invalidParams := request.ErrInvalidParams{Context: "LogSettingsRequest"}
10362	if s.Destination == nil {
10363		invalidParams.Add(request.NewErrParamRequired("Destination"))
10364	}
10365	if s.KmsKeyArn != nil && len(*s.KmsKeyArn) < 20 {
10366		invalidParams.Add(request.NewErrParamMinLen("KmsKeyArn", 20))
10367	}
10368	if s.LogType == nil {
10369		invalidParams.Add(request.NewErrParamRequired("LogType"))
10370	}
10371	if s.ResourceArn == nil {
10372		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10373	}
10374	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
10375		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
10376	}
10377
10378	if invalidParams.Len() > 0 {
10379		return invalidParams
10380	}
10381	return nil
10382}
10383
10384// SetDestination sets the Destination field's value.
10385func (s *LogSettingsRequest) SetDestination(v string) *LogSettingsRequest {
10386	s.Destination = &v
10387	return s
10388}
10389
10390// SetKmsKeyArn sets the KmsKeyArn field's value.
10391func (s *LogSettingsRequest) SetKmsKeyArn(v string) *LogSettingsRequest {
10392	s.KmsKeyArn = &v
10393	return s
10394}
10395
10396// SetLogType sets the LogType field's value.
10397func (s *LogSettingsRequest) SetLogType(v string) *LogSettingsRequest {
10398	s.LogType = &v
10399	return s
10400}
10401
10402// SetResourceArn sets the ResourceArn field's value.
10403func (s *LogSettingsRequest) SetResourceArn(v string) *LogSettingsRequest {
10404	s.ResourceArn = &v
10405	return s
10406}
10407
10408// The settings for conversation logs.
10409type LogSettingsResponse struct {
10410	_ struct{} `type:"structure"`
10411
10412	// The destination where logs are delivered.
10413	Destination *string `locationName:"destination" type:"string" enum:"Destination"`
10414
10415	// The Amazon Resource Name (ARN) of the key used to encrypt audio logs in an
10416	// S3 bucket.
10417	KmsKeyArn *string `locationName:"kmsKeyArn" min:"20" type:"string"`
10418
10419	// The type of logging that is enabled.
10420	LogType *string `locationName:"logType" type:"string" enum:"LogType"`
10421
10422	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or S3 bucket
10423	// where the logs are delivered.
10424	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string"`
10425
10426	// The resource prefix is the first part of the S3 object key within the S3
10427	// bucket that you specified to contain audio logs. For CloudWatch Logs it is
10428	// the prefix of the log stream name within the log group that you specified.
10429	ResourcePrefix *string `locationName:"resourcePrefix" type:"string"`
10430}
10431
10432// String returns the string representation
10433func (s LogSettingsResponse) String() string {
10434	return awsutil.Prettify(s)
10435}
10436
10437// GoString returns the string representation
10438func (s LogSettingsResponse) GoString() string {
10439	return s.String()
10440}
10441
10442// SetDestination sets the Destination field's value.
10443func (s *LogSettingsResponse) SetDestination(v string) *LogSettingsResponse {
10444	s.Destination = &v
10445	return s
10446}
10447
10448// SetKmsKeyArn sets the KmsKeyArn field's value.
10449func (s *LogSettingsResponse) SetKmsKeyArn(v string) *LogSettingsResponse {
10450	s.KmsKeyArn = &v
10451	return s
10452}
10453
10454// SetLogType sets the LogType field's value.
10455func (s *LogSettingsResponse) SetLogType(v string) *LogSettingsResponse {
10456	s.LogType = &v
10457	return s
10458}
10459
10460// SetResourceArn sets the ResourceArn field's value.
10461func (s *LogSettingsResponse) SetResourceArn(v string) *LogSettingsResponse {
10462	s.ResourceArn = &v
10463	return s
10464}
10465
10466// SetResourcePrefix sets the ResourcePrefix field's value.
10467func (s *LogSettingsResponse) SetResourcePrefix(v string) *LogSettingsResponse {
10468	s.ResourcePrefix = &v
10469	return s
10470}
10471
10472// The message object that provides the message text and its type.
10473type Message struct {
10474	_ struct{} `type:"structure"`
10475
10476	// The text of the message.
10477	//
10478	// Content is a required field
10479	Content *string `locationName:"content" min:"1" type:"string" required:"true"`
10480
10481	// The content type of the message string.
10482	//
10483	// ContentType is a required field
10484	ContentType *string `locationName:"contentType" type:"string" required:"true" enum:"ContentType"`
10485
10486	// Identifies the message group that the message belongs to. When a group is
10487	// assigned to a message, Amazon Lex returns one message from each group in
10488	// the response.
10489	GroupNumber *int64 `locationName:"groupNumber" min:"1" type:"integer"`
10490}
10491
10492// String returns the string representation
10493func (s Message) String() string {
10494	return awsutil.Prettify(s)
10495}
10496
10497// GoString returns the string representation
10498func (s Message) GoString() string {
10499	return s.String()
10500}
10501
10502// Validate inspects the fields of the type to determine if they are valid.
10503func (s *Message) Validate() error {
10504	invalidParams := request.ErrInvalidParams{Context: "Message"}
10505	if s.Content == nil {
10506		invalidParams.Add(request.NewErrParamRequired("Content"))
10507	}
10508	if s.Content != nil && len(*s.Content) < 1 {
10509		invalidParams.Add(request.NewErrParamMinLen("Content", 1))
10510	}
10511	if s.ContentType == nil {
10512		invalidParams.Add(request.NewErrParamRequired("ContentType"))
10513	}
10514	if s.GroupNumber != nil && *s.GroupNumber < 1 {
10515		invalidParams.Add(request.NewErrParamMinValue("GroupNumber", 1))
10516	}
10517
10518	if invalidParams.Len() > 0 {
10519		return invalidParams
10520	}
10521	return nil
10522}
10523
10524// SetContent sets the Content field's value.
10525func (s *Message) SetContent(v string) *Message {
10526	s.Content = &v
10527	return s
10528}
10529
10530// SetContentType sets the ContentType field's value.
10531func (s *Message) SetContentType(v string) *Message {
10532	s.ContentType = &v
10533	return s
10534}
10535
10536// SetGroupNumber sets the GroupNumber field's value.
10537func (s *Message) SetGroupNumber(v int64) *Message {
10538	s.GroupNumber = &v
10539	return s
10540}
10541
10542// Provides information about alerts and warnings that Amazon Lex sends during
10543// a migration. The alerts include information about how to resolve the issue.
10544type MigrationAlert struct {
10545	_ struct{} `type:"structure"`
10546
10547	// Additional details about the alert.
10548	Details []*string `locationName:"details" type:"list"`
10549
10550	// A message that describes why the alert was issued.
10551	Message *string `locationName:"message" type:"string"`
10552
10553	// A link to the Amazon Lex documentation that describes how to resolve the
10554	// alert.
10555	ReferenceURLs []*string `locationName:"referenceURLs" type:"list"`
10556
10557	// The type of alert. There are two kinds of alerts:
10558	//
10559	//    * ERROR - There was an issue with the migration that can't be resolved.
10560	//    The migration stops.
10561	//
10562	//    * WARN - There was an issue with the migration that requires manual changes
10563	//    to the new Amazon Lex V2 bot. The migration continues.
10564	Type *string `locationName:"type" type:"string" enum:"MigrationAlertType"`
10565}
10566
10567// String returns the string representation
10568func (s MigrationAlert) String() string {
10569	return awsutil.Prettify(s)
10570}
10571
10572// GoString returns the string representation
10573func (s MigrationAlert) GoString() string {
10574	return s.String()
10575}
10576
10577// SetDetails sets the Details field's value.
10578func (s *MigrationAlert) SetDetails(v []*string) *MigrationAlert {
10579	s.Details = v
10580	return s
10581}
10582
10583// SetMessage sets the Message field's value.
10584func (s *MigrationAlert) SetMessage(v string) *MigrationAlert {
10585	s.Message = &v
10586	return s
10587}
10588
10589// SetReferenceURLs sets the ReferenceURLs field's value.
10590func (s *MigrationAlert) SetReferenceURLs(v []*string) *MigrationAlert {
10591	s.ReferenceURLs = v
10592	return s
10593}
10594
10595// SetType sets the Type field's value.
10596func (s *MigrationAlert) SetType(v string) *MigrationAlert {
10597	s.Type = &v
10598	return s
10599}
10600
10601// Provides information about migrating a bot from Amazon Lex V1 to Amazon Lex
10602// V2.
10603type MigrationSummary struct {
10604	_ struct{} `type:"structure"`
10605
10606	// The unique identifier that Amazon Lex assigned to the migration.
10607	MigrationId *string `locationName:"migrationId" min:"10" type:"string"`
10608
10609	// The status of the operation. When the status is COMPLETE the bot is available
10610	// in Amazon Lex V2. There may be alerts and warnings that need to be resolved
10611	// to complete the migration.
10612	MigrationStatus *string `locationName:"migrationStatus" type:"string" enum:"MigrationStatus"`
10613
10614	// The strategy used to conduct the migration.
10615	MigrationStrategy *string `locationName:"migrationStrategy" type:"string" enum:"MigrationStrategy"`
10616
10617	// The date and time that the migration started.
10618	MigrationTimestamp *time.Time `locationName:"migrationTimestamp" type:"timestamp"`
10619
10620	// The locale of the Amazon Lex V1 bot that is the source of the migration.
10621	V1BotLocale *string `locationName:"v1BotLocale" type:"string" enum:"Locale"`
10622
10623	// The name of the Amazon Lex V1 bot that is the source of the migration.
10624	V1BotName *string `locationName:"v1BotName" min:"2" type:"string"`
10625
10626	// The version of the Amazon Lex V1 bot that is the source of the migration.
10627	V1BotVersion *string `locationName:"v1BotVersion" min:"1" type:"string"`
10628
10629	// The unique identifier of the Amazon Lex V2 that is the destination of the
10630	// migration.
10631	V2BotId *string `locationName:"v2BotId" min:"10" type:"string"`
10632
10633	// The IAM role that Amazon Lex uses to run the Amazon Lex V2 bot.
10634	V2BotRole *string `locationName:"v2BotRole" min:"20" type:"string"`
10635}
10636
10637// String returns the string representation
10638func (s MigrationSummary) String() string {
10639	return awsutil.Prettify(s)
10640}
10641
10642// GoString returns the string representation
10643func (s MigrationSummary) GoString() string {
10644	return s.String()
10645}
10646
10647// SetMigrationId sets the MigrationId field's value.
10648func (s *MigrationSummary) SetMigrationId(v string) *MigrationSummary {
10649	s.MigrationId = &v
10650	return s
10651}
10652
10653// SetMigrationStatus sets the MigrationStatus field's value.
10654func (s *MigrationSummary) SetMigrationStatus(v string) *MigrationSummary {
10655	s.MigrationStatus = &v
10656	return s
10657}
10658
10659// SetMigrationStrategy sets the MigrationStrategy field's value.
10660func (s *MigrationSummary) SetMigrationStrategy(v string) *MigrationSummary {
10661	s.MigrationStrategy = &v
10662	return s
10663}
10664
10665// SetMigrationTimestamp sets the MigrationTimestamp field's value.
10666func (s *MigrationSummary) SetMigrationTimestamp(v time.Time) *MigrationSummary {
10667	s.MigrationTimestamp = &v
10668	return s
10669}
10670
10671// SetV1BotLocale sets the V1BotLocale field's value.
10672func (s *MigrationSummary) SetV1BotLocale(v string) *MigrationSummary {
10673	s.V1BotLocale = &v
10674	return s
10675}
10676
10677// SetV1BotName sets the V1BotName field's value.
10678func (s *MigrationSummary) SetV1BotName(v string) *MigrationSummary {
10679	s.V1BotName = &v
10680	return s
10681}
10682
10683// SetV1BotVersion sets the V1BotVersion field's value.
10684func (s *MigrationSummary) SetV1BotVersion(v string) *MigrationSummary {
10685	s.V1BotVersion = &v
10686	return s
10687}
10688
10689// SetV2BotId sets the V2BotId field's value.
10690func (s *MigrationSummary) SetV2BotId(v string) *MigrationSummary {
10691	s.V2BotId = &v
10692	return s
10693}
10694
10695// SetV2BotRole sets the V2BotRole field's value.
10696func (s *MigrationSummary) SetV2BotRole(v string) *MigrationSummary {
10697	s.V2BotRole = &v
10698	return s
10699}
10700
10701// The resource specified in the request was not found. Check the resource and
10702// try again.
10703type NotFoundException struct {
10704	_            struct{}                  `type:"structure"`
10705	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10706
10707	Message_ *string `locationName:"message" type:"string"`
10708}
10709
10710// String returns the string representation
10711func (s NotFoundException) String() string {
10712	return awsutil.Prettify(s)
10713}
10714
10715// GoString returns the string representation
10716func (s NotFoundException) GoString() string {
10717	return s.String()
10718}
10719
10720func newErrorNotFoundException(v protocol.ResponseMetadata) error {
10721	return &NotFoundException{
10722		RespMetadata: v,
10723	}
10724}
10725
10726// Code returns the exception type name.
10727func (s *NotFoundException) Code() string {
10728	return "NotFoundException"
10729}
10730
10731// Message returns the exception's message.
10732func (s *NotFoundException) Message() string {
10733	if s.Message_ != nil {
10734		return *s.Message_
10735	}
10736	return ""
10737}
10738
10739// OrigErr always returns nil, satisfies awserr.Error interface.
10740func (s *NotFoundException) OrigErr() error {
10741	return nil
10742}
10743
10744func (s *NotFoundException) Error() string {
10745	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10746}
10747
10748// Status code returns the HTTP status code for the request's response error.
10749func (s *NotFoundException) StatusCode() int {
10750	return s.RespMetadata.StatusCode
10751}
10752
10753// RequestID returns the service's response RequestID for request.
10754func (s *NotFoundException) RequestID() string {
10755	return s.RespMetadata.RequestID
10756}
10757
10758// The specification of an output context that is set when an intent is fulfilled.
10759type OutputContext struct {
10760	_ struct{} `type:"structure"`
10761
10762	// The name of the context.
10763	//
10764	// Name is a required field
10765	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
10766
10767	// The number of seconds that the context should be active after it is first
10768	// sent in a PostContent or PostText response. You can set the value between
10769	// 5 and 86,400 seconds (24 hours).
10770	//
10771	// TimeToLiveInSeconds is a required field
10772	TimeToLiveInSeconds *int64 `locationName:"timeToLiveInSeconds" min:"5" type:"integer" required:"true"`
10773
10774	// The number of conversation turns that the context should be active. A conversation
10775	// turn is one PostContent or PostText request and the corresponding response
10776	// from Amazon Lex.
10777	//
10778	// TurnsToLive is a required field
10779	TurnsToLive *int64 `locationName:"turnsToLive" min:"1" type:"integer" required:"true"`
10780}
10781
10782// String returns the string representation
10783func (s OutputContext) String() string {
10784	return awsutil.Prettify(s)
10785}
10786
10787// GoString returns the string representation
10788func (s OutputContext) GoString() string {
10789	return s.String()
10790}
10791
10792// Validate inspects the fields of the type to determine if they are valid.
10793func (s *OutputContext) Validate() error {
10794	invalidParams := request.ErrInvalidParams{Context: "OutputContext"}
10795	if s.Name == nil {
10796		invalidParams.Add(request.NewErrParamRequired("Name"))
10797	}
10798	if s.Name != nil && len(*s.Name) < 1 {
10799		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
10800	}
10801	if s.TimeToLiveInSeconds == nil {
10802		invalidParams.Add(request.NewErrParamRequired("TimeToLiveInSeconds"))
10803	}
10804	if s.TimeToLiveInSeconds != nil && *s.TimeToLiveInSeconds < 5 {
10805		invalidParams.Add(request.NewErrParamMinValue("TimeToLiveInSeconds", 5))
10806	}
10807	if s.TurnsToLive == nil {
10808		invalidParams.Add(request.NewErrParamRequired("TurnsToLive"))
10809	}
10810	if s.TurnsToLive != nil && *s.TurnsToLive < 1 {
10811		invalidParams.Add(request.NewErrParamMinValue("TurnsToLive", 1))
10812	}
10813
10814	if invalidParams.Len() > 0 {
10815		return invalidParams
10816	}
10817	return nil
10818}
10819
10820// SetName sets the Name field's value.
10821func (s *OutputContext) SetName(v string) *OutputContext {
10822	s.Name = &v
10823	return s
10824}
10825
10826// SetTimeToLiveInSeconds sets the TimeToLiveInSeconds field's value.
10827func (s *OutputContext) SetTimeToLiveInSeconds(v int64) *OutputContext {
10828	s.TimeToLiveInSeconds = &v
10829	return s
10830}
10831
10832// SetTurnsToLive sets the TurnsToLive field's value.
10833func (s *OutputContext) SetTurnsToLive(v int64) *OutputContext {
10834	s.TurnsToLive = &v
10835	return s
10836}
10837
10838// The checksum of the resource that you are trying to change does not match
10839// the checksum in the request. Check the resource's checksum and try again.
10840type PreconditionFailedException struct {
10841	_            struct{}                  `type:"structure"`
10842	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10843
10844	Message_ *string `locationName:"message" type:"string"`
10845}
10846
10847// String returns the string representation
10848func (s PreconditionFailedException) String() string {
10849	return awsutil.Prettify(s)
10850}
10851
10852// GoString returns the string representation
10853func (s PreconditionFailedException) GoString() string {
10854	return s.String()
10855}
10856
10857func newErrorPreconditionFailedException(v protocol.ResponseMetadata) error {
10858	return &PreconditionFailedException{
10859		RespMetadata: v,
10860	}
10861}
10862
10863// Code returns the exception type name.
10864func (s *PreconditionFailedException) Code() string {
10865	return "PreconditionFailedException"
10866}
10867
10868// Message returns the exception's message.
10869func (s *PreconditionFailedException) Message() string {
10870	if s.Message_ != nil {
10871		return *s.Message_
10872	}
10873	return ""
10874}
10875
10876// OrigErr always returns nil, satisfies awserr.Error interface.
10877func (s *PreconditionFailedException) OrigErr() error {
10878	return nil
10879}
10880
10881func (s *PreconditionFailedException) Error() string {
10882	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10883}
10884
10885// Status code returns the HTTP status code for the request's response error.
10886func (s *PreconditionFailedException) StatusCode() int {
10887	return s.RespMetadata.StatusCode
10888}
10889
10890// RequestID returns the service's response RequestID for request.
10891func (s *PreconditionFailedException) RequestID() string {
10892	return s.RespMetadata.RequestID
10893}
10894
10895// Obtains information from the user. To define a prompt, provide one or more
10896// messages and specify the number of attempts to get information from the user.
10897// If you provide more than one message, Amazon Lex chooses one of the messages
10898// to use to prompt the user. For more information, see how-it-works.
10899type Prompt struct {
10900	_ struct{} `type:"structure"`
10901
10902	// The number of times to prompt the user for information.
10903	//
10904	// MaxAttempts is a required field
10905	MaxAttempts *int64 `locationName:"maxAttempts" min:"1" type:"integer" required:"true"`
10906
10907	// An array of objects, each of which provides a message string and its type.
10908	// You can specify the message string in plain text or in Speech Synthesis Markup
10909	// Language (SSML).
10910	//
10911	// Messages is a required field
10912	Messages []*Message `locationName:"messages" min:"1" type:"list" required:"true"`
10913
10914	// A response card. Amazon Lex uses this prompt at runtime, in the PostText
10915	// API response. It substitutes session attributes and slot values for placeholders
10916	// in the response card. For more information, see ex-resp-card.
10917	ResponseCard *string `locationName:"responseCard" min:"1" type:"string"`
10918}
10919
10920// String returns the string representation
10921func (s Prompt) String() string {
10922	return awsutil.Prettify(s)
10923}
10924
10925// GoString returns the string representation
10926func (s Prompt) GoString() string {
10927	return s.String()
10928}
10929
10930// Validate inspects the fields of the type to determine if they are valid.
10931func (s *Prompt) Validate() error {
10932	invalidParams := request.ErrInvalidParams{Context: "Prompt"}
10933	if s.MaxAttempts == nil {
10934		invalidParams.Add(request.NewErrParamRequired("MaxAttempts"))
10935	}
10936	if s.MaxAttempts != nil && *s.MaxAttempts < 1 {
10937		invalidParams.Add(request.NewErrParamMinValue("MaxAttempts", 1))
10938	}
10939	if s.Messages == nil {
10940		invalidParams.Add(request.NewErrParamRequired("Messages"))
10941	}
10942	if s.Messages != nil && len(s.Messages) < 1 {
10943		invalidParams.Add(request.NewErrParamMinLen("Messages", 1))
10944	}
10945	if s.ResponseCard != nil && len(*s.ResponseCard) < 1 {
10946		invalidParams.Add(request.NewErrParamMinLen("ResponseCard", 1))
10947	}
10948	if s.Messages != nil {
10949		for i, v := range s.Messages {
10950			if v == nil {
10951				continue
10952			}
10953			if err := v.Validate(); err != nil {
10954				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Messages", i), err.(request.ErrInvalidParams))
10955			}
10956		}
10957	}
10958
10959	if invalidParams.Len() > 0 {
10960		return invalidParams
10961	}
10962	return nil
10963}
10964
10965// SetMaxAttempts sets the MaxAttempts field's value.
10966func (s *Prompt) SetMaxAttempts(v int64) *Prompt {
10967	s.MaxAttempts = &v
10968	return s
10969}
10970
10971// SetMessages sets the Messages field's value.
10972func (s *Prompt) SetMessages(v []*Message) *Prompt {
10973	s.Messages = v
10974	return s
10975}
10976
10977// SetResponseCard sets the ResponseCard field's value.
10978func (s *Prompt) SetResponseCard(v string) *Prompt {
10979	s.ResponseCard = &v
10980	return s
10981}
10982
10983type PutBotAliasInput struct {
10984	_ struct{} `type:"structure"`
10985
10986	// The name of the bot.
10987	//
10988	// BotName is a required field
10989	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
10990
10991	// The version of the bot.
10992	//
10993	// BotVersion is a required field
10994	BotVersion *string `locationName:"botVersion" min:"1" type:"string" required:"true"`
10995
10996	// Identifies a specific revision of the $LATEST version.
10997	//
10998	// When you create a new bot alias, leave the checksum field blank. If you specify
10999	// a checksum you get a BadRequestException exception.
11000	//
11001	// When you want to update a bot alias, set the checksum field to the checksum
11002	// of the most recent revision of the $LATEST version. If you don't specify
11003	// the checksum field, or if the checksum does not match the $LATEST version,
11004	// you get a PreconditionFailedException exception.
11005	Checksum *string `locationName:"checksum" type:"string"`
11006
11007	// Settings for conversation logs for the alias.
11008	ConversationLogs *ConversationLogsRequest `locationName:"conversationLogs" type:"structure"`
11009
11010	// A description of the alias.
11011	Description *string `locationName:"description" type:"string"`
11012
11013	// The name of the alias. The name is not case sensitive.
11014	//
11015	// Name is a required field
11016	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
11017
11018	// A list of tags to add to the bot alias. You can only add tags when you create
11019	// an alias, you can't use the PutBotAlias operation to update the tags on a
11020	// bot alias. To update tags, use the TagResource operation.
11021	Tags []*Tag `locationName:"tags" type:"list"`
11022}
11023
11024// String returns the string representation
11025func (s PutBotAliasInput) String() string {
11026	return awsutil.Prettify(s)
11027}
11028
11029// GoString returns the string representation
11030func (s PutBotAliasInput) GoString() string {
11031	return s.String()
11032}
11033
11034// Validate inspects the fields of the type to determine if they are valid.
11035func (s *PutBotAliasInput) Validate() error {
11036	invalidParams := request.ErrInvalidParams{Context: "PutBotAliasInput"}
11037	if s.BotName == nil {
11038		invalidParams.Add(request.NewErrParamRequired("BotName"))
11039	}
11040	if s.BotName != nil && len(*s.BotName) < 2 {
11041		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
11042	}
11043	if s.BotVersion == nil {
11044		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
11045	}
11046	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
11047		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
11048	}
11049	if s.Name == nil {
11050		invalidParams.Add(request.NewErrParamRequired("Name"))
11051	}
11052	if s.Name != nil && len(*s.Name) < 1 {
11053		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
11054	}
11055	if s.ConversationLogs != nil {
11056		if err := s.ConversationLogs.Validate(); err != nil {
11057			invalidParams.AddNested("ConversationLogs", err.(request.ErrInvalidParams))
11058		}
11059	}
11060	if s.Tags != nil {
11061		for i, v := range s.Tags {
11062			if v == nil {
11063				continue
11064			}
11065			if err := v.Validate(); err != nil {
11066				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11067			}
11068		}
11069	}
11070
11071	if invalidParams.Len() > 0 {
11072		return invalidParams
11073	}
11074	return nil
11075}
11076
11077// SetBotName sets the BotName field's value.
11078func (s *PutBotAliasInput) SetBotName(v string) *PutBotAliasInput {
11079	s.BotName = &v
11080	return s
11081}
11082
11083// SetBotVersion sets the BotVersion field's value.
11084func (s *PutBotAliasInput) SetBotVersion(v string) *PutBotAliasInput {
11085	s.BotVersion = &v
11086	return s
11087}
11088
11089// SetChecksum sets the Checksum field's value.
11090func (s *PutBotAliasInput) SetChecksum(v string) *PutBotAliasInput {
11091	s.Checksum = &v
11092	return s
11093}
11094
11095// SetConversationLogs sets the ConversationLogs field's value.
11096func (s *PutBotAliasInput) SetConversationLogs(v *ConversationLogsRequest) *PutBotAliasInput {
11097	s.ConversationLogs = v
11098	return s
11099}
11100
11101// SetDescription sets the Description field's value.
11102func (s *PutBotAliasInput) SetDescription(v string) *PutBotAliasInput {
11103	s.Description = &v
11104	return s
11105}
11106
11107// SetName sets the Name field's value.
11108func (s *PutBotAliasInput) SetName(v string) *PutBotAliasInput {
11109	s.Name = &v
11110	return s
11111}
11112
11113// SetTags sets the Tags field's value.
11114func (s *PutBotAliasInput) SetTags(v []*Tag) *PutBotAliasInput {
11115	s.Tags = v
11116	return s
11117}
11118
11119type PutBotAliasOutput struct {
11120	_ struct{} `type:"structure"`
11121
11122	// The name of the bot that the alias points to.
11123	BotName *string `locationName:"botName" min:"2" type:"string"`
11124
11125	// The version of the bot that the alias points to.
11126	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
11127
11128	// The checksum for the current version of the alias.
11129	Checksum *string `locationName:"checksum" type:"string"`
11130
11131	// The settings that determine how Amazon Lex uses conversation logs for the
11132	// alias.
11133	ConversationLogs *ConversationLogsResponse `locationName:"conversationLogs" type:"structure"`
11134
11135	// The date that the bot alias was created.
11136	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
11137
11138	// A description of the alias.
11139	Description *string `locationName:"description" type:"string"`
11140
11141	// The date that the bot alias was updated. When you create a resource, the
11142	// creation date and the last updated date are the same.
11143	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
11144
11145	// The name of the alias.
11146	Name *string `locationName:"name" min:"1" type:"string"`
11147
11148	// A list of tags associated with a bot.
11149	Tags []*Tag `locationName:"tags" type:"list"`
11150}
11151
11152// String returns the string representation
11153func (s PutBotAliasOutput) String() string {
11154	return awsutil.Prettify(s)
11155}
11156
11157// GoString returns the string representation
11158func (s PutBotAliasOutput) GoString() string {
11159	return s.String()
11160}
11161
11162// SetBotName sets the BotName field's value.
11163func (s *PutBotAliasOutput) SetBotName(v string) *PutBotAliasOutput {
11164	s.BotName = &v
11165	return s
11166}
11167
11168// SetBotVersion sets the BotVersion field's value.
11169func (s *PutBotAliasOutput) SetBotVersion(v string) *PutBotAliasOutput {
11170	s.BotVersion = &v
11171	return s
11172}
11173
11174// SetChecksum sets the Checksum field's value.
11175func (s *PutBotAliasOutput) SetChecksum(v string) *PutBotAliasOutput {
11176	s.Checksum = &v
11177	return s
11178}
11179
11180// SetConversationLogs sets the ConversationLogs field's value.
11181func (s *PutBotAliasOutput) SetConversationLogs(v *ConversationLogsResponse) *PutBotAliasOutput {
11182	s.ConversationLogs = v
11183	return s
11184}
11185
11186// SetCreatedDate sets the CreatedDate field's value.
11187func (s *PutBotAliasOutput) SetCreatedDate(v time.Time) *PutBotAliasOutput {
11188	s.CreatedDate = &v
11189	return s
11190}
11191
11192// SetDescription sets the Description field's value.
11193func (s *PutBotAliasOutput) SetDescription(v string) *PutBotAliasOutput {
11194	s.Description = &v
11195	return s
11196}
11197
11198// SetLastUpdatedDate sets the LastUpdatedDate field's value.
11199func (s *PutBotAliasOutput) SetLastUpdatedDate(v time.Time) *PutBotAliasOutput {
11200	s.LastUpdatedDate = &v
11201	return s
11202}
11203
11204// SetName sets the Name field's value.
11205func (s *PutBotAliasOutput) SetName(v string) *PutBotAliasOutput {
11206	s.Name = &v
11207	return s
11208}
11209
11210// SetTags sets the Tags field's value.
11211func (s *PutBotAliasOutput) SetTags(v []*Tag) *PutBotAliasOutput {
11212	s.Tags = v
11213	return s
11214}
11215
11216type PutBotInput struct {
11217	_ struct{} `type:"structure"`
11218
11219	// When Amazon Lex can't understand the user's input in context, it tries to
11220	// elicit the information a few times. After that, Amazon Lex sends the message
11221	// defined in abortStatement to the user, and then cancels the conversation.
11222	// To set the number of retries, use the valueElicitationPrompt field for the
11223	// slot type.
11224	//
11225	// For example, in a pizza ordering bot, Amazon Lex might ask a user "What type
11226	// of crust would you like?" If the user's response is not one of the expected
11227	// responses (for example, "thin crust, "deep dish," etc.), Amazon Lex tries
11228	// to elicit a correct response a few more times.
11229	//
11230	// For example, in a pizza ordering application, OrderPizza might be one of
11231	// the intents. This intent might require the CrustType slot. You specify the
11232	// valueElicitationPrompt field when you create the CrustType slot.
11233	//
11234	// If you have defined a fallback intent the cancel statement will not be sent
11235	// to the user, the fallback intent is used instead. For more information, see
11236	// AMAZON.FallbackIntent (https://docs.aws.amazon.com/lex/latest/dg/built-in-intent-fallback.html).
11237	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
11238
11239	// Identifies a specific revision of the $LATEST version.
11240	//
11241	// When you create a new bot, leave the checksum field blank. If you specify
11242	// a checksum you get a BadRequestException exception.
11243	//
11244	// When you want to update a bot, set the checksum field to the checksum of
11245	// the most recent revision of the $LATEST version. If you don't specify the
11246	// checksum field, or if the checksum does not match the $LATEST version, you
11247	// get a PreconditionFailedException exception.
11248	Checksum *string `locationName:"checksum" type:"string"`
11249
11250	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
11251	// you must specify whether your use of Amazon Lex is related to a website,
11252	// program, or other application that is directed or targeted, in whole or in
11253	// part, to children under age 13 and subject to the Children's Online Privacy
11254	// Protection Act (COPPA) by specifying true or false in the childDirected field.
11255	// By specifying true in the childDirected field, you confirm that your use
11256	// of Amazon Lex is related to a website, program, or other application that
11257	// is directed or targeted, in whole or in part, to children under age 13 and
11258	// subject to COPPA. By specifying false in the childDirected field, you confirm
11259	// that your use of Amazon Lex is not related to a website, program, or other
11260	// application that is directed or targeted, in whole or in part, to children
11261	// under age 13 and subject to COPPA. You may not specify a default value for
11262	// the childDirected field that does not accurately reflect whether your use
11263	// of Amazon Lex is related to a website, program, or other application that
11264	// is directed or targeted, in whole or in part, to children under age 13 and
11265	// subject to COPPA.
11266	//
11267	// If your use of Amazon Lex relates to a website, program, or other application
11268	// that is directed in whole or in part, to children under age 13, you must
11269	// obtain any required verifiable parental consent under COPPA. For information
11270	// regarding the use of Amazon Lex in connection with websites, programs, or
11271	// other applications that are directed or targeted, in whole or in part, to
11272	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
11273	//
11274	// ChildDirected is a required field
11275	ChildDirected *bool `locationName:"childDirected" type:"boolean" required:"true"`
11276
11277	// When Amazon Lex doesn't understand the user's intent, it uses this message
11278	// to get clarification. To specify how many times Amazon Lex should repeat
11279	// the clarification prompt, use the maxAttempts field. If Amazon Lex still
11280	// doesn't understand, it sends the message in the abortStatement field.
11281	//
11282	// When you create a clarification prompt, make sure that it suggests the correct
11283	// response from the user. for example, for a bot that orders pizza and drinks,
11284	// you might create this clarification prompt: "What would you like to do? You
11285	// can say 'Order a pizza' or 'Order a drink.'"
11286	//
11287	// If you have defined a fallback intent, it will be invoked if the clarification
11288	// prompt is repeated the number of times defined in the maxAttempts field.
11289	// For more information, see AMAZON.FallbackIntent (https://docs.aws.amazon.com/lex/latest/dg/built-in-intent-fallback.html).
11290	//
11291	// If you don't define a clarification prompt, at runtime Amazon Lex will return
11292	// a 400 Bad Request exception in three cases:
11293	//
11294	//    * Follow-up prompt - When the user responds to a follow-up prompt but
11295	//    does not provide an intent. For example, in response to a follow-up prompt
11296	//    that says "Would you like anything else today?" the user says "Yes." Amazon
11297	//    Lex will return a 400 Bad Request exception because it does not have a
11298	//    clarification prompt to send to the user to get an intent.
11299	//
11300	//    * Lambda function - When using a Lambda function, you return an ElicitIntent
11301	//    dialog type. Since Amazon Lex does not have a clarification prompt to
11302	//    get an intent from the user, it returns a 400 Bad Request exception.
11303	//
11304	//    * PutSession operation - When using the PutSession operation, you send
11305	//    an ElicitIntent dialog type. Since Amazon Lex does not have a clarification
11306	//    prompt to get an intent from the user, it returns a 400 Bad Request exception.
11307	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
11308
11309	// When set to true a new numbered version of the bot is created. This is the
11310	// same as calling the CreateBotVersion operation. If you don't specify createVersion,
11311	// the default is false.
11312	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
11313
11314	// A description of the bot.
11315	Description *string `locationName:"description" type:"string"`
11316
11317	// When set to true user utterances are sent to Amazon Comprehend for sentiment
11318	// analysis. If you don't specify detectSentiment, the default is false.
11319	DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"`
11320
11321	// Set to true to enable access to natural language understanding improvements.
11322	//
11323	// When you set the enableModelImprovements parameter to true you can use the
11324	// nluIntentConfidenceThreshold parameter to configure confidence scores. For
11325	// more information, see Confidence Scores (https://docs.aws.amazon.com/lex/latest/dg/confidence-scores.html).
11326	//
11327	// You can only set the enableModelImprovements parameter in certain Regions.
11328	// If you set the parameter to true, your bot has access to accuracy improvements.
11329	//
11330	// The Regions where you can set the enableModelImprovements parameter to true
11331	// are:
11332	//
11333	//    * US East (N. Virginia) (us-east-1)
11334	//
11335	//    * US West (Oregon) (us-west-2)
11336	//
11337	//    * Asia Pacific (Sydney) (ap-southeast-2)
11338	//
11339	//    * EU (Ireland) (eu-west-1)
11340	//
11341	// In other Regions, the enableModelImprovements parameter is set to true by
11342	// default. In these Regions setting the parameter to false throws a ValidationException
11343	// exception.
11344	EnableModelImprovements *bool `locationName:"enableModelImprovements" type:"boolean"`
11345
11346	// The maximum time in seconds that Amazon Lex retains the data gathered in
11347	// a conversation.
11348	//
11349	// A user interaction session remains active for the amount of time specified.
11350	// If no conversation occurs during this time, the session expires and Amazon
11351	// Lex deletes any data provided before the timeout.
11352	//
11353	// For example, suppose that a user chooses the OrderPizza intent, but gets
11354	// sidetracked halfway through placing an order. If the user doesn't complete
11355	// the order within the specified time, Amazon Lex discards the slot information
11356	// that it gathered, and the user must start over.
11357	//
11358	// If you don't include the idleSessionTTLInSeconds element in a PutBot operation
11359	// request, Amazon Lex uses the default value. This is also true if the request
11360	// replaces an existing bot.
11361	//
11362	// The default is 300 seconds (5 minutes).
11363	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
11364
11365	// An array of Intent objects. Each intent represents a command that a user
11366	// can express. For example, a pizza ordering bot might support an OrderPizza
11367	// intent. For more information, see how-it-works.
11368	Intents []*Intent `locationName:"intents" type:"list"`
11369
11370	// Specifies the target locale for the bot. Any intent used in the bot must
11371	// be compatible with the locale of the bot.
11372	//
11373	// The default is en-US.
11374	//
11375	// Locale is a required field
11376	Locale *string `locationName:"locale" type:"string" required:"true" enum:"Locale"`
11377
11378	// The name of the bot. The name is not case sensitive.
11379	//
11380	// Name is a required field
11381	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
11382
11383	// Determines the threshold where Amazon Lex will insert the AMAZON.FallbackIntent,
11384	// AMAZON.KendraSearchIntent, or both when returning alternative intents in
11385	// a PostContent (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html)
11386	// or PostText (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
11387	// response. AMAZON.FallbackIntent and AMAZON.KendraSearchIntent are only inserted
11388	// if they are configured for the bot.
11389	//
11390	// You must set the enableModelImprovements parameter to true to use confidence
11391	// scores in the following regions.
11392	//
11393	//    * US East (N. Virginia) (us-east-1)
11394	//
11395	//    * US West (Oregon) (us-west-2)
11396	//
11397	//    * Asia Pacific (Sydney) (ap-southeast-2)
11398	//
11399	//    * EU (Ireland) (eu-west-1)
11400	//
11401	// In other Regions, the enableModelImprovements parameter is set to true by
11402	// default.
11403	//
11404	// For example, suppose a bot is configured with the confidence threshold of
11405	// 0.80 and the AMAZON.FallbackIntent. Amazon Lex returns three alternative
11406	// intents with the following confidence scores: IntentA (0.70), IntentB (0.60),
11407	// IntentC (0.50). The response from the PostText operation would be:
11408	//
11409	//    * AMAZON.FallbackIntent
11410	//
11411	//    * IntentA
11412	//
11413	//    * IntentB
11414	//
11415	//    * IntentC
11416	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double"`
11417
11418	// If you set the processBehavior element to BUILD, Amazon Lex builds the bot
11419	// so that it can be run. If you set the element to SAVE Amazon Lex saves the
11420	// bot, but doesn't build it.
11421	//
11422	// If you don't specify this value, the default value is BUILD.
11423	ProcessBehavior *string `locationName:"processBehavior" type:"string" enum:"ProcessBehavior"`
11424
11425	// A list of tags to add to the bot. You can only add tags when you create a
11426	// bot, you can't use the PutBot operation to update the tags on a bot. To update
11427	// tags, use the TagResource operation.
11428	Tags []*Tag `locationName:"tags" type:"list"`
11429
11430	// The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions
11431	// with the user. The locale configured for the voice must match the locale
11432	// of the bot. For more information, see Voices in Amazon Polly (https://docs.aws.amazon.com/polly/latest/dg/voicelist.html)
11433	// in the Amazon Polly Developer Guide.
11434	VoiceId *string `locationName:"voiceId" type:"string"`
11435}
11436
11437// String returns the string representation
11438func (s PutBotInput) String() string {
11439	return awsutil.Prettify(s)
11440}
11441
11442// GoString returns the string representation
11443func (s PutBotInput) GoString() string {
11444	return s.String()
11445}
11446
11447// Validate inspects the fields of the type to determine if they are valid.
11448func (s *PutBotInput) Validate() error {
11449	invalidParams := request.ErrInvalidParams{Context: "PutBotInput"}
11450	if s.ChildDirected == nil {
11451		invalidParams.Add(request.NewErrParamRequired("ChildDirected"))
11452	}
11453	if s.IdleSessionTTLInSeconds != nil && *s.IdleSessionTTLInSeconds < 60 {
11454		invalidParams.Add(request.NewErrParamMinValue("IdleSessionTTLInSeconds", 60))
11455	}
11456	if s.Locale == nil {
11457		invalidParams.Add(request.NewErrParamRequired("Locale"))
11458	}
11459	if s.Name == nil {
11460		invalidParams.Add(request.NewErrParamRequired("Name"))
11461	}
11462	if s.Name != nil && len(*s.Name) < 2 {
11463		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
11464	}
11465	if s.AbortStatement != nil {
11466		if err := s.AbortStatement.Validate(); err != nil {
11467			invalidParams.AddNested("AbortStatement", err.(request.ErrInvalidParams))
11468		}
11469	}
11470	if s.ClarificationPrompt != nil {
11471		if err := s.ClarificationPrompt.Validate(); err != nil {
11472			invalidParams.AddNested("ClarificationPrompt", err.(request.ErrInvalidParams))
11473		}
11474	}
11475	if s.Intents != nil {
11476		for i, v := range s.Intents {
11477			if v == nil {
11478				continue
11479			}
11480			if err := v.Validate(); err != nil {
11481				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Intents", i), err.(request.ErrInvalidParams))
11482			}
11483		}
11484	}
11485	if s.Tags != nil {
11486		for i, v := range s.Tags {
11487			if v == nil {
11488				continue
11489			}
11490			if err := v.Validate(); err != nil {
11491				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11492			}
11493		}
11494	}
11495
11496	if invalidParams.Len() > 0 {
11497		return invalidParams
11498	}
11499	return nil
11500}
11501
11502// SetAbortStatement sets the AbortStatement field's value.
11503func (s *PutBotInput) SetAbortStatement(v *Statement) *PutBotInput {
11504	s.AbortStatement = v
11505	return s
11506}
11507
11508// SetChecksum sets the Checksum field's value.
11509func (s *PutBotInput) SetChecksum(v string) *PutBotInput {
11510	s.Checksum = &v
11511	return s
11512}
11513
11514// SetChildDirected sets the ChildDirected field's value.
11515func (s *PutBotInput) SetChildDirected(v bool) *PutBotInput {
11516	s.ChildDirected = &v
11517	return s
11518}
11519
11520// SetClarificationPrompt sets the ClarificationPrompt field's value.
11521func (s *PutBotInput) SetClarificationPrompt(v *Prompt) *PutBotInput {
11522	s.ClarificationPrompt = v
11523	return s
11524}
11525
11526// SetCreateVersion sets the CreateVersion field's value.
11527func (s *PutBotInput) SetCreateVersion(v bool) *PutBotInput {
11528	s.CreateVersion = &v
11529	return s
11530}
11531
11532// SetDescription sets the Description field's value.
11533func (s *PutBotInput) SetDescription(v string) *PutBotInput {
11534	s.Description = &v
11535	return s
11536}
11537
11538// SetDetectSentiment sets the DetectSentiment field's value.
11539func (s *PutBotInput) SetDetectSentiment(v bool) *PutBotInput {
11540	s.DetectSentiment = &v
11541	return s
11542}
11543
11544// SetEnableModelImprovements sets the EnableModelImprovements field's value.
11545func (s *PutBotInput) SetEnableModelImprovements(v bool) *PutBotInput {
11546	s.EnableModelImprovements = &v
11547	return s
11548}
11549
11550// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
11551func (s *PutBotInput) SetIdleSessionTTLInSeconds(v int64) *PutBotInput {
11552	s.IdleSessionTTLInSeconds = &v
11553	return s
11554}
11555
11556// SetIntents sets the Intents field's value.
11557func (s *PutBotInput) SetIntents(v []*Intent) *PutBotInput {
11558	s.Intents = v
11559	return s
11560}
11561
11562// SetLocale sets the Locale field's value.
11563func (s *PutBotInput) SetLocale(v string) *PutBotInput {
11564	s.Locale = &v
11565	return s
11566}
11567
11568// SetName sets the Name field's value.
11569func (s *PutBotInput) SetName(v string) *PutBotInput {
11570	s.Name = &v
11571	return s
11572}
11573
11574// SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
11575func (s *PutBotInput) SetNluIntentConfidenceThreshold(v float64) *PutBotInput {
11576	s.NluIntentConfidenceThreshold = &v
11577	return s
11578}
11579
11580// SetProcessBehavior sets the ProcessBehavior field's value.
11581func (s *PutBotInput) SetProcessBehavior(v string) *PutBotInput {
11582	s.ProcessBehavior = &v
11583	return s
11584}
11585
11586// SetTags sets the Tags field's value.
11587func (s *PutBotInput) SetTags(v []*Tag) *PutBotInput {
11588	s.Tags = v
11589	return s
11590}
11591
11592// SetVoiceId sets the VoiceId field's value.
11593func (s *PutBotInput) SetVoiceId(v string) *PutBotInput {
11594	s.VoiceId = &v
11595	return s
11596}
11597
11598type PutBotOutput struct {
11599	_ struct{} `type:"structure"`
11600
11601	// The message that Amazon Lex uses to cancel a conversation. For more information,
11602	// see PutBot.
11603	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
11604
11605	// Checksum of the bot that you created.
11606	Checksum *string `locationName:"checksum" type:"string"`
11607
11608	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
11609	// you must specify whether your use of Amazon Lex is related to a website,
11610	// program, or other application that is directed or targeted, in whole or in
11611	// part, to children under age 13 and subject to the Children's Online Privacy
11612	// Protection Act (COPPA) by specifying true or false in the childDirected field.
11613	// By specifying true in the childDirected field, you confirm that your use
11614	// of Amazon Lex is related to a website, program, or other application that
11615	// is directed or targeted, in whole or in part, to children under age 13 and
11616	// subject to COPPA. By specifying false in the childDirected field, you confirm
11617	// that your use of Amazon Lex is not related to a website, program, or other
11618	// application that is directed or targeted, in whole or in part, to children
11619	// under age 13 and subject to COPPA. You may not specify a default value for
11620	// the childDirected field that does not accurately reflect whether your use
11621	// of Amazon Lex is related to a website, program, or other application that
11622	// is directed or targeted, in whole or in part, to children under age 13 and
11623	// subject to COPPA.
11624	//
11625	// If your use of Amazon Lex relates to a website, program, or other application
11626	// that is directed in whole or in part, to children under age 13, you must
11627	// obtain any required verifiable parental consent under COPPA. For information
11628	// regarding the use of Amazon Lex in connection with websites, programs, or
11629	// other applications that are directed or targeted, in whole or in part, to
11630	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
11631	ChildDirected *bool `locationName:"childDirected" type:"boolean"`
11632
11633	// The prompts that Amazon Lex uses when it doesn't understand the user's intent.
11634	// For more information, see PutBot.
11635	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
11636
11637	// True if a new version of the bot was created. If the createVersion field
11638	// was not specified in the request, the createVersion field is set to false
11639	// in the response.
11640	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
11641
11642	// The date that the bot was created.
11643	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
11644
11645	// A description of the bot.
11646	Description *string `locationName:"description" type:"string"`
11647
11648	// true if the bot is configured to send user utterances to Amazon Comprehend
11649	// for sentiment analysis. If the detectSentiment field was not specified in
11650	// the request, the detectSentiment field is false in the response.
11651	DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"`
11652
11653	// Indicates whether the bot uses accuracy improvements. true indicates that
11654	// the bot is using the improvements, otherwise, false.
11655	EnableModelImprovements *bool `locationName:"enableModelImprovements" type:"boolean"`
11656
11657	// If status is FAILED, Amazon Lex provides the reason that it failed to build
11658	// the bot.
11659	FailureReason *string `locationName:"failureReason" type:"string"`
11660
11661	// The maximum length of time that Amazon Lex retains the data gathered in a
11662	// conversation. For more information, see PutBot.
11663	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
11664
11665	// An array of Intent objects. For more information, see PutBot.
11666	Intents []*Intent `locationName:"intents" type:"list"`
11667
11668	// The date that the bot was updated. When you create a resource, the creation
11669	// date and last updated date are the same.
11670	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
11671
11672	// The target locale for the bot.
11673	Locale *string `locationName:"locale" type:"string" enum:"Locale"`
11674
11675	// The name of the bot.
11676	Name *string `locationName:"name" min:"2" type:"string"`
11677
11678	// The score that determines where Amazon Lex inserts the AMAZON.FallbackIntent,
11679	// AMAZON.KendraSearchIntent, or both when returning alternative intents in
11680	// a PostContent (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html)
11681	// or PostText (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
11682	// response. AMAZON.FallbackIntent is inserted if the confidence score for all
11683	// intents is below this value. AMAZON.KendraSearchIntent is only inserted if
11684	// it is configured for the bot.
11685	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double"`
11686
11687	// When you send a request to create a bot with processBehavior set to BUILD,
11688	// Amazon Lex sets the status response element to BUILDING.
11689	//
11690	// In the READY_BASIC_TESTING state you can test the bot with user inputs that
11691	// exactly match the utterances configured for the bot's intents and values
11692	// in the slot types.
11693	//
11694	// If Amazon Lex can't build the bot, Amazon Lex sets status to FAILED. Amazon
11695	// Lex returns the reason for the failure in the failureReason response element.
11696	//
11697	// When you set processBehavior to SAVE, Amazon Lex sets the status code to
11698	// NOT BUILT.
11699	//
11700	// When the bot is in the READY state you can test and publish the bot.
11701	Status *string `locationName:"status" type:"string" enum:"Status"`
11702
11703	// A list of tags associated with the bot.
11704	Tags []*Tag `locationName:"tags" type:"list"`
11705
11706	// The version of the bot. For a new bot, the version is always $LATEST.
11707	Version *string `locationName:"version" min:"1" type:"string"`
11708
11709	// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with
11710	// the user. For more information, see PutBot.
11711	VoiceId *string `locationName:"voiceId" type:"string"`
11712}
11713
11714// String returns the string representation
11715func (s PutBotOutput) String() string {
11716	return awsutil.Prettify(s)
11717}
11718
11719// GoString returns the string representation
11720func (s PutBotOutput) GoString() string {
11721	return s.String()
11722}
11723
11724// SetAbortStatement sets the AbortStatement field's value.
11725func (s *PutBotOutput) SetAbortStatement(v *Statement) *PutBotOutput {
11726	s.AbortStatement = v
11727	return s
11728}
11729
11730// SetChecksum sets the Checksum field's value.
11731func (s *PutBotOutput) SetChecksum(v string) *PutBotOutput {
11732	s.Checksum = &v
11733	return s
11734}
11735
11736// SetChildDirected sets the ChildDirected field's value.
11737func (s *PutBotOutput) SetChildDirected(v bool) *PutBotOutput {
11738	s.ChildDirected = &v
11739	return s
11740}
11741
11742// SetClarificationPrompt sets the ClarificationPrompt field's value.
11743func (s *PutBotOutput) SetClarificationPrompt(v *Prompt) *PutBotOutput {
11744	s.ClarificationPrompt = v
11745	return s
11746}
11747
11748// SetCreateVersion sets the CreateVersion field's value.
11749func (s *PutBotOutput) SetCreateVersion(v bool) *PutBotOutput {
11750	s.CreateVersion = &v
11751	return s
11752}
11753
11754// SetCreatedDate sets the CreatedDate field's value.
11755func (s *PutBotOutput) SetCreatedDate(v time.Time) *PutBotOutput {
11756	s.CreatedDate = &v
11757	return s
11758}
11759
11760// SetDescription sets the Description field's value.
11761func (s *PutBotOutput) SetDescription(v string) *PutBotOutput {
11762	s.Description = &v
11763	return s
11764}
11765
11766// SetDetectSentiment sets the DetectSentiment field's value.
11767func (s *PutBotOutput) SetDetectSentiment(v bool) *PutBotOutput {
11768	s.DetectSentiment = &v
11769	return s
11770}
11771
11772// SetEnableModelImprovements sets the EnableModelImprovements field's value.
11773func (s *PutBotOutput) SetEnableModelImprovements(v bool) *PutBotOutput {
11774	s.EnableModelImprovements = &v
11775	return s
11776}
11777
11778// SetFailureReason sets the FailureReason field's value.
11779func (s *PutBotOutput) SetFailureReason(v string) *PutBotOutput {
11780	s.FailureReason = &v
11781	return s
11782}
11783
11784// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
11785func (s *PutBotOutput) SetIdleSessionTTLInSeconds(v int64) *PutBotOutput {
11786	s.IdleSessionTTLInSeconds = &v
11787	return s
11788}
11789
11790// SetIntents sets the Intents field's value.
11791func (s *PutBotOutput) SetIntents(v []*Intent) *PutBotOutput {
11792	s.Intents = v
11793	return s
11794}
11795
11796// SetLastUpdatedDate sets the LastUpdatedDate field's value.
11797func (s *PutBotOutput) SetLastUpdatedDate(v time.Time) *PutBotOutput {
11798	s.LastUpdatedDate = &v
11799	return s
11800}
11801
11802// SetLocale sets the Locale field's value.
11803func (s *PutBotOutput) SetLocale(v string) *PutBotOutput {
11804	s.Locale = &v
11805	return s
11806}
11807
11808// SetName sets the Name field's value.
11809func (s *PutBotOutput) SetName(v string) *PutBotOutput {
11810	s.Name = &v
11811	return s
11812}
11813
11814// SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
11815func (s *PutBotOutput) SetNluIntentConfidenceThreshold(v float64) *PutBotOutput {
11816	s.NluIntentConfidenceThreshold = &v
11817	return s
11818}
11819
11820// SetStatus sets the Status field's value.
11821func (s *PutBotOutput) SetStatus(v string) *PutBotOutput {
11822	s.Status = &v
11823	return s
11824}
11825
11826// SetTags sets the Tags field's value.
11827func (s *PutBotOutput) SetTags(v []*Tag) *PutBotOutput {
11828	s.Tags = v
11829	return s
11830}
11831
11832// SetVersion sets the Version field's value.
11833func (s *PutBotOutput) SetVersion(v string) *PutBotOutput {
11834	s.Version = &v
11835	return s
11836}
11837
11838// SetVoiceId sets the VoiceId field's value.
11839func (s *PutBotOutput) SetVoiceId(v string) *PutBotOutput {
11840	s.VoiceId = &v
11841	return s
11842}
11843
11844type PutIntentInput struct {
11845	_ struct{} `type:"structure"`
11846
11847	// Identifies a specific revision of the $LATEST version.
11848	//
11849	// When you create a new intent, leave the checksum field blank. If you specify
11850	// a checksum you get a BadRequestException exception.
11851	//
11852	// When you want to update a intent, set the checksum field to the checksum
11853	// of the most recent revision of the $LATEST version. If you don't specify
11854	// the checksum field, or if the checksum does not match the $LATEST version,
11855	// you get a PreconditionFailedException exception.
11856	Checksum *string `locationName:"checksum" type:"string"`
11857
11858	// The statement that you want Amazon Lex to convey to the user after the intent
11859	// is successfully fulfilled by the Lambda function.
11860	//
11861	// This element is relevant only if you provide a Lambda function in the fulfillmentActivity.
11862	// If you return the intent to the client application, you can't specify this
11863	// element.
11864	//
11865	// The followUpPrompt and conclusionStatement are mutually exclusive. You can
11866	// specify only one.
11867	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
11868
11869	// Prompts the user to confirm the intent. This question should have a yes or
11870	// no answer.
11871	//
11872	// Amazon Lex uses this prompt to ensure that the user acknowledges that the
11873	// intent is ready for fulfillment. For example, with the OrderPizza intent,
11874	// you might want to confirm that the order is correct before placing it. For
11875	// other intents, such as intents that simply respond to user questions, you
11876	// might not need to ask the user for confirmation before providing the information.
11877	//
11878	// You you must provide both the rejectionStatement and the confirmationPrompt,
11879	// or neither.
11880	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
11881
11882	// When set to true a new numbered version of the intent is created. This is
11883	// the same as calling the CreateIntentVersion operation. If you do not specify
11884	// createVersion, the default is false.
11885	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
11886
11887	// A description of the intent.
11888	Description *string `locationName:"description" type:"string"`
11889
11890	// Specifies a Lambda function to invoke for each user input. You can invoke
11891	// this Lambda function to personalize user interaction.
11892	//
11893	// For example, suppose your bot determines that the user is John. Your Lambda
11894	// function might retrieve John's information from a backend database and prepopulate
11895	// some of the values. For example, if you find that John is gluten intolerant,
11896	// you might set the corresponding intent slot, GlutenIntolerant, to true. You
11897	// might find John's phone number and set the corresponding session attribute.
11898	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
11899
11900	// Amazon Lex uses this prompt to solicit additional activity after fulfilling
11901	// an intent. For example, after the OrderPizza intent is fulfilled, you might
11902	// prompt the user to order a drink.
11903	//
11904	// The action that Amazon Lex takes depends on the user's response, as follows:
11905	//
11906	//    * If the user says "Yes" it responds with the clarification prompt that
11907	//    is configured for the bot.
11908	//
11909	//    * if the user says "Yes" and continues with an utterance that triggers
11910	//    an intent it starts a conversation for the intent.
11911	//
11912	//    * If the user says "No" it responds with the rejection statement configured
11913	//    for the the follow-up prompt.
11914	//
11915	//    * If it doesn't recognize the utterance it repeats the follow-up prompt
11916	//    again.
11917	//
11918	// The followUpPrompt field and the conclusionStatement field are mutually exclusive.
11919	// You can specify only one.
11920	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
11921
11922	// Required. Describes how the intent is fulfilled. For example, after a user
11923	// provides all of the information for a pizza order, fulfillmentActivity defines
11924	// how the bot places an order with a local pizza store.
11925	//
11926	// You might configure Amazon Lex to return all of the intent information to
11927	// the client application, or direct it to invoke a Lambda function that can
11928	// process the intent (for example, place an order with a pizzeria).
11929	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
11930
11931	// An array of InputContext objects that lists the contexts that must be active
11932	// for Amazon Lex to choose the intent in a conversation with the user.
11933	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
11934
11935	// Configuration information required to use the AMAZON.KendraSearchIntent intent
11936	// to connect to an Amazon Kendra index. For more information, see AMAZON.KendraSearchIntent
11937	// (http://docs.aws.amazon.com/lex/latest/dg/built-in-intent-kendra-search.html).
11938	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
11939
11940	// The name of the intent. The name is not case sensitive.
11941	//
11942	// The name can't match a built-in intent name, or a built-in intent name with
11943	// "AMAZON." removed. For example, because there is a built-in intent called
11944	// AMAZON.HelpIntent, you can't create a custom intent called HelpIntent.
11945	//
11946	// For a list of built-in intents, see Standard Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
11947	// in the Alexa Skills Kit.
11948	//
11949	// Name is a required field
11950	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
11951
11952	// An array of OutputContext objects that lists the contexts that the intent
11953	// activates when the intent is fulfilled.
11954	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
11955
11956	// A unique identifier for the built-in intent to base this intent on. To find
11957	// the signature for an intent, see Standard Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
11958	// in the Alexa Skills Kit.
11959	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
11960
11961	// When the user answers "no" to the question defined in confirmationPrompt,
11962	// Amazon Lex responds with this statement to acknowledge that the intent was
11963	// canceled.
11964	//
11965	// You must provide both the rejectionStatement and the confirmationPrompt,
11966	// or neither.
11967	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
11968
11969	// An array of utterances (strings) that a user might say to signal the intent.
11970	// For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas".
11971	//
11972	// In each utterance, a slot name is enclosed in curly braces.
11973	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
11974
11975	// An array of intent slots. At runtime, Amazon Lex elicits required slot values
11976	// from the user using prompts defined in the slots. For more information, see
11977	// how-it-works.
11978	Slots []*Slot `locationName:"slots" type:"list"`
11979}
11980
11981// String returns the string representation
11982func (s PutIntentInput) String() string {
11983	return awsutil.Prettify(s)
11984}
11985
11986// GoString returns the string representation
11987func (s PutIntentInput) GoString() string {
11988	return s.String()
11989}
11990
11991// Validate inspects the fields of the type to determine if they are valid.
11992func (s *PutIntentInput) Validate() error {
11993	invalidParams := request.ErrInvalidParams{Context: "PutIntentInput"}
11994	if s.Name == nil {
11995		invalidParams.Add(request.NewErrParamRequired("Name"))
11996	}
11997	if s.Name != nil && len(*s.Name) < 1 {
11998		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
11999	}
12000	if s.ConclusionStatement != nil {
12001		if err := s.ConclusionStatement.Validate(); err != nil {
12002			invalidParams.AddNested("ConclusionStatement", err.(request.ErrInvalidParams))
12003		}
12004	}
12005	if s.ConfirmationPrompt != nil {
12006		if err := s.ConfirmationPrompt.Validate(); err != nil {
12007			invalidParams.AddNested("ConfirmationPrompt", err.(request.ErrInvalidParams))
12008		}
12009	}
12010	if s.DialogCodeHook != nil {
12011		if err := s.DialogCodeHook.Validate(); err != nil {
12012			invalidParams.AddNested("DialogCodeHook", err.(request.ErrInvalidParams))
12013		}
12014	}
12015	if s.FollowUpPrompt != nil {
12016		if err := s.FollowUpPrompt.Validate(); err != nil {
12017			invalidParams.AddNested("FollowUpPrompt", err.(request.ErrInvalidParams))
12018		}
12019	}
12020	if s.FulfillmentActivity != nil {
12021		if err := s.FulfillmentActivity.Validate(); err != nil {
12022			invalidParams.AddNested("FulfillmentActivity", err.(request.ErrInvalidParams))
12023		}
12024	}
12025	if s.InputContexts != nil {
12026		for i, v := range s.InputContexts {
12027			if v == nil {
12028				continue
12029			}
12030			if err := v.Validate(); err != nil {
12031				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputContexts", i), err.(request.ErrInvalidParams))
12032			}
12033		}
12034	}
12035	if s.KendraConfiguration != nil {
12036		if err := s.KendraConfiguration.Validate(); err != nil {
12037			invalidParams.AddNested("KendraConfiguration", err.(request.ErrInvalidParams))
12038		}
12039	}
12040	if s.OutputContexts != nil {
12041		for i, v := range s.OutputContexts {
12042			if v == nil {
12043				continue
12044			}
12045			if err := v.Validate(); err != nil {
12046				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OutputContexts", i), err.(request.ErrInvalidParams))
12047			}
12048		}
12049	}
12050	if s.RejectionStatement != nil {
12051		if err := s.RejectionStatement.Validate(); err != nil {
12052			invalidParams.AddNested("RejectionStatement", err.(request.ErrInvalidParams))
12053		}
12054	}
12055	if s.Slots != nil {
12056		for i, v := range s.Slots {
12057			if v == nil {
12058				continue
12059			}
12060			if err := v.Validate(); err != nil {
12061				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Slots", i), err.(request.ErrInvalidParams))
12062			}
12063		}
12064	}
12065
12066	if invalidParams.Len() > 0 {
12067		return invalidParams
12068	}
12069	return nil
12070}
12071
12072// SetChecksum sets the Checksum field's value.
12073func (s *PutIntentInput) SetChecksum(v string) *PutIntentInput {
12074	s.Checksum = &v
12075	return s
12076}
12077
12078// SetConclusionStatement sets the ConclusionStatement field's value.
12079func (s *PutIntentInput) SetConclusionStatement(v *Statement) *PutIntentInput {
12080	s.ConclusionStatement = v
12081	return s
12082}
12083
12084// SetConfirmationPrompt sets the ConfirmationPrompt field's value.
12085func (s *PutIntentInput) SetConfirmationPrompt(v *Prompt) *PutIntentInput {
12086	s.ConfirmationPrompt = v
12087	return s
12088}
12089
12090// SetCreateVersion sets the CreateVersion field's value.
12091func (s *PutIntentInput) SetCreateVersion(v bool) *PutIntentInput {
12092	s.CreateVersion = &v
12093	return s
12094}
12095
12096// SetDescription sets the Description field's value.
12097func (s *PutIntentInput) SetDescription(v string) *PutIntentInput {
12098	s.Description = &v
12099	return s
12100}
12101
12102// SetDialogCodeHook sets the DialogCodeHook field's value.
12103func (s *PutIntentInput) SetDialogCodeHook(v *CodeHook) *PutIntentInput {
12104	s.DialogCodeHook = v
12105	return s
12106}
12107
12108// SetFollowUpPrompt sets the FollowUpPrompt field's value.
12109func (s *PutIntentInput) SetFollowUpPrompt(v *FollowUpPrompt) *PutIntentInput {
12110	s.FollowUpPrompt = v
12111	return s
12112}
12113
12114// SetFulfillmentActivity sets the FulfillmentActivity field's value.
12115func (s *PutIntentInput) SetFulfillmentActivity(v *FulfillmentActivity) *PutIntentInput {
12116	s.FulfillmentActivity = v
12117	return s
12118}
12119
12120// SetInputContexts sets the InputContexts field's value.
12121func (s *PutIntentInput) SetInputContexts(v []*InputContext) *PutIntentInput {
12122	s.InputContexts = v
12123	return s
12124}
12125
12126// SetKendraConfiguration sets the KendraConfiguration field's value.
12127func (s *PutIntentInput) SetKendraConfiguration(v *KendraConfiguration) *PutIntentInput {
12128	s.KendraConfiguration = v
12129	return s
12130}
12131
12132// SetName sets the Name field's value.
12133func (s *PutIntentInput) SetName(v string) *PutIntentInput {
12134	s.Name = &v
12135	return s
12136}
12137
12138// SetOutputContexts sets the OutputContexts field's value.
12139func (s *PutIntentInput) SetOutputContexts(v []*OutputContext) *PutIntentInput {
12140	s.OutputContexts = v
12141	return s
12142}
12143
12144// SetParentIntentSignature sets the ParentIntentSignature field's value.
12145func (s *PutIntentInput) SetParentIntentSignature(v string) *PutIntentInput {
12146	s.ParentIntentSignature = &v
12147	return s
12148}
12149
12150// SetRejectionStatement sets the RejectionStatement field's value.
12151func (s *PutIntentInput) SetRejectionStatement(v *Statement) *PutIntentInput {
12152	s.RejectionStatement = v
12153	return s
12154}
12155
12156// SetSampleUtterances sets the SampleUtterances field's value.
12157func (s *PutIntentInput) SetSampleUtterances(v []*string) *PutIntentInput {
12158	s.SampleUtterances = v
12159	return s
12160}
12161
12162// SetSlots sets the Slots field's value.
12163func (s *PutIntentInput) SetSlots(v []*Slot) *PutIntentInput {
12164	s.Slots = v
12165	return s
12166}
12167
12168type PutIntentOutput struct {
12169	_ struct{} `type:"structure"`
12170
12171	// Checksum of the $LATESTversion of the intent created or updated.
12172	Checksum *string `locationName:"checksum" type:"string"`
12173
12174	// After the Lambda function specified in thefulfillmentActivityintent fulfills
12175	// the intent, Amazon Lex conveys this statement to the user.
12176	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
12177
12178	// If defined in the intent, Amazon Lex prompts the user to confirm the intent
12179	// before fulfilling it.
12180	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
12181
12182	// True if a new version of the intent was created. If the createVersion field
12183	// was not specified in the request, the createVersion field is set to false
12184	// in the response.
12185	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
12186
12187	// The date that the intent was created.
12188	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
12189
12190	// A description of the intent.
12191	Description *string `locationName:"description" type:"string"`
12192
12193	// If defined in the intent, Amazon Lex invokes this Lambda function for each
12194	// user input.
12195	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
12196
12197	// If defined in the intent, Amazon Lex uses this prompt to solicit additional
12198	// user activity after the intent is fulfilled.
12199	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
12200
12201	// If defined in the intent, Amazon Lex invokes this Lambda function to fulfill
12202	// the intent after the user provides all of the information required by the
12203	// intent.
12204	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
12205
12206	// An array of InputContext objects that lists the contexts that must be active
12207	// for Amazon Lex to choose the intent in a conversation with the user.
12208	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
12209
12210	// Configuration information, if any, required to connect to an Amazon Kendra
12211	// index and use the AMAZON.KendraSearchIntent intent.
12212	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
12213
12214	// The date that the intent was updated. When you create a resource, the creation
12215	// date and last update dates are the same.
12216	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
12217
12218	// The name of the intent.
12219	Name *string `locationName:"name" min:"1" type:"string"`
12220
12221	// An array of OutputContext objects that lists the contexts that the intent
12222	// activates when the intent is fulfilled.
12223	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
12224
12225	// A unique identifier for the built-in intent that this intent is based on.
12226	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
12227
12228	// If the user answers "no" to the question defined in confirmationPrompt Amazon
12229	// Lex responds with this statement to acknowledge that the intent was canceled.
12230	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
12231
12232	// An array of sample utterances that are configured for the intent.
12233	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
12234
12235	// An array of intent slots that are configured for the intent.
12236	Slots []*Slot `locationName:"slots" type:"list"`
12237
12238	// The version of the intent. For a new intent, the version is always $LATEST.
12239	Version *string `locationName:"version" min:"1" type:"string"`
12240}
12241
12242// String returns the string representation
12243func (s PutIntentOutput) String() string {
12244	return awsutil.Prettify(s)
12245}
12246
12247// GoString returns the string representation
12248func (s PutIntentOutput) GoString() string {
12249	return s.String()
12250}
12251
12252// SetChecksum sets the Checksum field's value.
12253func (s *PutIntentOutput) SetChecksum(v string) *PutIntentOutput {
12254	s.Checksum = &v
12255	return s
12256}
12257
12258// SetConclusionStatement sets the ConclusionStatement field's value.
12259func (s *PutIntentOutput) SetConclusionStatement(v *Statement) *PutIntentOutput {
12260	s.ConclusionStatement = v
12261	return s
12262}
12263
12264// SetConfirmationPrompt sets the ConfirmationPrompt field's value.
12265func (s *PutIntentOutput) SetConfirmationPrompt(v *Prompt) *PutIntentOutput {
12266	s.ConfirmationPrompt = v
12267	return s
12268}
12269
12270// SetCreateVersion sets the CreateVersion field's value.
12271func (s *PutIntentOutput) SetCreateVersion(v bool) *PutIntentOutput {
12272	s.CreateVersion = &v
12273	return s
12274}
12275
12276// SetCreatedDate sets the CreatedDate field's value.
12277func (s *PutIntentOutput) SetCreatedDate(v time.Time) *PutIntentOutput {
12278	s.CreatedDate = &v
12279	return s
12280}
12281
12282// SetDescription sets the Description field's value.
12283func (s *PutIntentOutput) SetDescription(v string) *PutIntentOutput {
12284	s.Description = &v
12285	return s
12286}
12287
12288// SetDialogCodeHook sets the DialogCodeHook field's value.
12289func (s *PutIntentOutput) SetDialogCodeHook(v *CodeHook) *PutIntentOutput {
12290	s.DialogCodeHook = v
12291	return s
12292}
12293
12294// SetFollowUpPrompt sets the FollowUpPrompt field's value.
12295func (s *PutIntentOutput) SetFollowUpPrompt(v *FollowUpPrompt) *PutIntentOutput {
12296	s.FollowUpPrompt = v
12297	return s
12298}
12299
12300// SetFulfillmentActivity sets the FulfillmentActivity field's value.
12301func (s *PutIntentOutput) SetFulfillmentActivity(v *FulfillmentActivity) *PutIntentOutput {
12302	s.FulfillmentActivity = v
12303	return s
12304}
12305
12306// SetInputContexts sets the InputContexts field's value.
12307func (s *PutIntentOutput) SetInputContexts(v []*InputContext) *PutIntentOutput {
12308	s.InputContexts = v
12309	return s
12310}
12311
12312// SetKendraConfiguration sets the KendraConfiguration field's value.
12313func (s *PutIntentOutput) SetKendraConfiguration(v *KendraConfiguration) *PutIntentOutput {
12314	s.KendraConfiguration = v
12315	return s
12316}
12317
12318// SetLastUpdatedDate sets the LastUpdatedDate field's value.
12319func (s *PutIntentOutput) SetLastUpdatedDate(v time.Time) *PutIntentOutput {
12320	s.LastUpdatedDate = &v
12321	return s
12322}
12323
12324// SetName sets the Name field's value.
12325func (s *PutIntentOutput) SetName(v string) *PutIntentOutput {
12326	s.Name = &v
12327	return s
12328}
12329
12330// SetOutputContexts sets the OutputContexts field's value.
12331func (s *PutIntentOutput) SetOutputContexts(v []*OutputContext) *PutIntentOutput {
12332	s.OutputContexts = v
12333	return s
12334}
12335
12336// SetParentIntentSignature sets the ParentIntentSignature field's value.
12337func (s *PutIntentOutput) SetParentIntentSignature(v string) *PutIntentOutput {
12338	s.ParentIntentSignature = &v
12339	return s
12340}
12341
12342// SetRejectionStatement sets the RejectionStatement field's value.
12343func (s *PutIntentOutput) SetRejectionStatement(v *Statement) *PutIntentOutput {
12344	s.RejectionStatement = v
12345	return s
12346}
12347
12348// SetSampleUtterances sets the SampleUtterances field's value.
12349func (s *PutIntentOutput) SetSampleUtterances(v []*string) *PutIntentOutput {
12350	s.SampleUtterances = v
12351	return s
12352}
12353
12354// SetSlots sets the Slots field's value.
12355func (s *PutIntentOutput) SetSlots(v []*Slot) *PutIntentOutput {
12356	s.Slots = v
12357	return s
12358}
12359
12360// SetVersion sets the Version field's value.
12361func (s *PutIntentOutput) SetVersion(v string) *PutIntentOutput {
12362	s.Version = &v
12363	return s
12364}
12365
12366type PutSlotTypeInput struct {
12367	_ struct{} `type:"structure"`
12368
12369	// Identifies a specific revision of the $LATEST version.
12370	//
12371	// When you create a new slot type, leave the checksum field blank. If you specify
12372	// a checksum you get a BadRequestException exception.
12373	//
12374	// When you want to update a slot type, set the checksum field to the checksum
12375	// of the most recent revision of the $LATEST version. If you don't specify
12376	// the checksum field, or if the checksum does not match the $LATEST version,
12377	// you get a PreconditionFailedException exception.
12378	Checksum *string `locationName:"checksum" type:"string"`
12379
12380	// When set to true a new numbered version of the slot type is created. This
12381	// is the same as calling the CreateSlotTypeVersion operation. If you do not
12382	// specify createVersion, the default is false.
12383	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
12384
12385	// A description of the slot type.
12386	Description *string `locationName:"description" type:"string"`
12387
12388	// A list of EnumerationValue objects that defines the values that the slot
12389	// type can take. Each value can have a list of synonyms, which are additional
12390	// values that help train the machine learning model about the values that it
12391	// resolves for a slot.
12392	//
12393	// A regular expression slot type doesn't require enumeration values. All other
12394	// slot types require a list of enumeration values.
12395	//
12396	// When Amazon Lex resolves a slot value, it generates a resolution list that
12397	// contains up to five possible values for the slot. If you are using a Lambda
12398	// function, this resolution list is passed to the function. If you are not
12399	// using a Lambda function you can choose to return the value that the user
12400	// entered or the first value in the resolution list as the slot value. The
12401	// valueSelectionStrategy field indicates the option to use.
12402	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" type:"list"`
12403
12404	// The name of the slot type. The name is not case sensitive.
12405	//
12406	// The name can't match a built-in slot type name, or a built-in slot type name
12407	// with "AMAZON." removed. For example, because there is a built-in slot type
12408	// called AMAZON.DATE, you can't create a custom slot type called DATE.
12409	//
12410	// For a list of built-in slot types, see Slot Type Reference (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference)
12411	// in the Alexa Skills Kit.
12412	//
12413	// Name is a required field
12414	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
12415
12416	// The built-in slot type used as the parent of the slot type. When you define
12417	// a parent slot type, the new slot type has all of the same configuration as
12418	// the parent.
12419	//
12420	// Only AMAZON.AlphaNumeric is supported.
12421	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" min:"1" type:"string"`
12422
12423	// Configuration information that extends the parent built-in slot type. The
12424	// configuration is added to the settings for the parent slot type.
12425	SlotTypeConfigurations []*SlotTypeConfiguration `locationName:"slotTypeConfigurations" type:"list"`
12426
12427	// Determines the slot resolution strategy that Amazon Lex uses to return slot
12428	// type values. The field can be set to one of the following values:
12429	//
12430	//    * ORIGINAL_VALUE - Returns the value entered by the user, if the user
12431	//    value is similar to the slot value.
12432	//
12433	//    * TOP_RESOLUTION - If there is a resolution list for the slot, return
12434	//    the first value in the resolution list as the slot type value. If there
12435	//    is no resolution list, null is returned.
12436	//
12437	// If you don't specify the valueSelectionStrategy, the default is ORIGINAL_VALUE.
12438	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
12439}
12440
12441// String returns the string representation
12442func (s PutSlotTypeInput) String() string {
12443	return awsutil.Prettify(s)
12444}
12445
12446// GoString returns the string representation
12447func (s PutSlotTypeInput) GoString() string {
12448	return s.String()
12449}
12450
12451// Validate inspects the fields of the type to determine if they are valid.
12452func (s *PutSlotTypeInput) Validate() error {
12453	invalidParams := request.ErrInvalidParams{Context: "PutSlotTypeInput"}
12454	if s.Name == nil {
12455		invalidParams.Add(request.NewErrParamRequired("Name"))
12456	}
12457	if s.Name != nil && len(*s.Name) < 1 {
12458		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
12459	}
12460	if s.ParentSlotTypeSignature != nil && len(*s.ParentSlotTypeSignature) < 1 {
12461		invalidParams.Add(request.NewErrParamMinLen("ParentSlotTypeSignature", 1))
12462	}
12463	if s.EnumerationValues != nil {
12464		for i, v := range s.EnumerationValues {
12465			if v == nil {
12466				continue
12467			}
12468			if err := v.Validate(); err != nil {
12469				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnumerationValues", i), err.(request.ErrInvalidParams))
12470			}
12471		}
12472	}
12473	if s.SlotTypeConfigurations != nil {
12474		for i, v := range s.SlotTypeConfigurations {
12475			if v == nil {
12476				continue
12477			}
12478			if err := v.Validate(); err != nil {
12479				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SlotTypeConfigurations", i), err.(request.ErrInvalidParams))
12480			}
12481		}
12482	}
12483
12484	if invalidParams.Len() > 0 {
12485		return invalidParams
12486	}
12487	return nil
12488}
12489
12490// SetChecksum sets the Checksum field's value.
12491func (s *PutSlotTypeInput) SetChecksum(v string) *PutSlotTypeInput {
12492	s.Checksum = &v
12493	return s
12494}
12495
12496// SetCreateVersion sets the CreateVersion field's value.
12497func (s *PutSlotTypeInput) SetCreateVersion(v bool) *PutSlotTypeInput {
12498	s.CreateVersion = &v
12499	return s
12500}
12501
12502// SetDescription sets the Description field's value.
12503func (s *PutSlotTypeInput) SetDescription(v string) *PutSlotTypeInput {
12504	s.Description = &v
12505	return s
12506}
12507
12508// SetEnumerationValues sets the EnumerationValues field's value.
12509func (s *PutSlotTypeInput) SetEnumerationValues(v []*EnumerationValue) *PutSlotTypeInput {
12510	s.EnumerationValues = v
12511	return s
12512}
12513
12514// SetName sets the Name field's value.
12515func (s *PutSlotTypeInput) SetName(v string) *PutSlotTypeInput {
12516	s.Name = &v
12517	return s
12518}
12519
12520// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
12521func (s *PutSlotTypeInput) SetParentSlotTypeSignature(v string) *PutSlotTypeInput {
12522	s.ParentSlotTypeSignature = &v
12523	return s
12524}
12525
12526// SetSlotTypeConfigurations sets the SlotTypeConfigurations field's value.
12527func (s *PutSlotTypeInput) SetSlotTypeConfigurations(v []*SlotTypeConfiguration) *PutSlotTypeInput {
12528	s.SlotTypeConfigurations = v
12529	return s
12530}
12531
12532// SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
12533func (s *PutSlotTypeInput) SetValueSelectionStrategy(v string) *PutSlotTypeInput {
12534	s.ValueSelectionStrategy = &v
12535	return s
12536}
12537
12538type PutSlotTypeOutput struct {
12539	_ struct{} `type:"structure"`
12540
12541	// Checksum of the $LATEST version of the slot type.
12542	Checksum *string `locationName:"checksum" type:"string"`
12543
12544	// True if a new version of the slot type was created. If the createVersion
12545	// field was not specified in the request, the createVersion field is set to
12546	// false in the response.
12547	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
12548
12549	// The date that the slot type was created.
12550	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
12551
12552	// A description of the slot type.
12553	Description *string `locationName:"description" type:"string"`
12554
12555	// A list of EnumerationValue objects that defines the values that the slot
12556	// type can take.
12557	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" type:"list"`
12558
12559	// The date that the slot type was updated. When you create a slot type, the
12560	// creation date and last update date are the same.
12561	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
12562
12563	// The name of the slot type.
12564	Name *string `locationName:"name" min:"1" type:"string"`
12565
12566	// The built-in slot type used as the parent of the slot type.
12567	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" min:"1" type:"string"`
12568
12569	// Configuration information that extends the parent built-in slot type.
12570	SlotTypeConfigurations []*SlotTypeConfiguration `locationName:"slotTypeConfigurations" type:"list"`
12571
12572	// The slot resolution strategy that Amazon Lex uses to determine the value
12573	// of the slot. For more information, see PutSlotType.
12574	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
12575
12576	// The version of the slot type. For a new slot type, the version is always
12577	// $LATEST.
12578	Version *string `locationName:"version" min:"1" type:"string"`
12579}
12580
12581// String returns the string representation
12582func (s PutSlotTypeOutput) String() string {
12583	return awsutil.Prettify(s)
12584}
12585
12586// GoString returns the string representation
12587func (s PutSlotTypeOutput) GoString() string {
12588	return s.String()
12589}
12590
12591// SetChecksum sets the Checksum field's value.
12592func (s *PutSlotTypeOutput) SetChecksum(v string) *PutSlotTypeOutput {
12593	s.Checksum = &v
12594	return s
12595}
12596
12597// SetCreateVersion sets the CreateVersion field's value.
12598func (s *PutSlotTypeOutput) SetCreateVersion(v bool) *PutSlotTypeOutput {
12599	s.CreateVersion = &v
12600	return s
12601}
12602
12603// SetCreatedDate sets the CreatedDate field's value.
12604func (s *PutSlotTypeOutput) SetCreatedDate(v time.Time) *PutSlotTypeOutput {
12605	s.CreatedDate = &v
12606	return s
12607}
12608
12609// SetDescription sets the Description field's value.
12610func (s *PutSlotTypeOutput) SetDescription(v string) *PutSlotTypeOutput {
12611	s.Description = &v
12612	return s
12613}
12614
12615// SetEnumerationValues sets the EnumerationValues field's value.
12616func (s *PutSlotTypeOutput) SetEnumerationValues(v []*EnumerationValue) *PutSlotTypeOutput {
12617	s.EnumerationValues = v
12618	return s
12619}
12620
12621// SetLastUpdatedDate sets the LastUpdatedDate field's value.
12622func (s *PutSlotTypeOutput) SetLastUpdatedDate(v time.Time) *PutSlotTypeOutput {
12623	s.LastUpdatedDate = &v
12624	return s
12625}
12626
12627// SetName sets the Name field's value.
12628func (s *PutSlotTypeOutput) SetName(v string) *PutSlotTypeOutput {
12629	s.Name = &v
12630	return s
12631}
12632
12633// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
12634func (s *PutSlotTypeOutput) SetParentSlotTypeSignature(v string) *PutSlotTypeOutput {
12635	s.ParentSlotTypeSignature = &v
12636	return s
12637}
12638
12639// SetSlotTypeConfigurations sets the SlotTypeConfigurations field's value.
12640func (s *PutSlotTypeOutput) SetSlotTypeConfigurations(v []*SlotTypeConfiguration) *PutSlotTypeOutput {
12641	s.SlotTypeConfigurations = v
12642	return s
12643}
12644
12645// SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
12646func (s *PutSlotTypeOutput) SetValueSelectionStrategy(v string) *PutSlotTypeOutput {
12647	s.ValueSelectionStrategy = &v
12648	return s
12649}
12650
12651// SetVersion sets the Version field's value.
12652func (s *PutSlotTypeOutput) SetVersion(v string) *PutSlotTypeOutput {
12653	s.Version = &v
12654	return s
12655}
12656
12657// The resource that you are attempting to delete is referred to by another
12658// resource. Use this information to remove references to the resource that
12659// you are trying to delete.
12660//
12661// The body of the exception contains a JSON object that describes the resource.
12662//
12663// { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
12664//
12665// "resourceReference": {
12666//
12667// "name": string, "version": string } }
12668type ResourceInUseException struct {
12669	_            struct{}                  `type:"structure"`
12670	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12671
12672	// Describes the resource that refers to the resource that you are attempting
12673	// to delete. This object is returned as part of the ResourceInUseException
12674	// exception.
12675	ExampleReference *ResourceReference `locationName:"exampleReference" type:"structure"`
12676
12677	Message_ *string `locationName:"message" type:"string"`
12678
12679	ReferenceType *string `locationName:"referenceType" type:"string" enum:"ReferenceType"`
12680}
12681
12682// String returns the string representation
12683func (s ResourceInUseException) String() string {
12684	return awsutil.Prettify(s)
12685}
12686
12687// GoString returns the string representation
12688func (s ResourceInUseException) GoString() string {
12689	return s.String()
12690}
12691
12692func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
12693	return &ResourceInUseException{
12694		RespMetadata: v,
12695	}
12696}
12697
12698// Code returns the exception type name.
12699func (s *ResourceInUseException) Code() string {
12700	return "ResourceInUseException"
12701}
12702
12703// Message returns the exception's message.
12704func (s *ResourceInUseException) Message() string {
12705	if s.Message_ != nil {
12706		return *s.Message_
12707	}
12708	return ""
12709}
12710
12711// OrigErr always returns nil, satisfies awserr.Error interface.
12712func (s *ResourceInUseException) OrigErr() error {
12713	return nil
12714}
12715
12716func (s *ResourceInUseException) Error() string {
12717	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12718}
12719
12720// Status code returns the HTTP status code for the request's response error.
12721func (s *ResourceInUseException) StatusCode() int {
12722	return s.RespMetadata.StatusCode
12723}
12724
12725// RequestID returns the service's response RequestID for request.
12726func (s *ResourceInUseException) RequestID() string {
12727	return s.RespMetadata.RequestID
12728}
12729
12730// Describes the resource that refers to the resource that you are attempting
12731// to delete. This object is returned as part of the ResourceInUseException
12732// exception.
12733type ResourceReference struct {
12734	_ struct{} `type:"structure"`
12735
12736	// The name of the resource that is using the resource that you are trying to
12737	// delete.
12738	Name *string `locationName:"name" min:"1" type:"string"`
12739
12740	// The version of the resource that is using the resource that you are trying
12741	// to delete.
12742	Version *string `locationName:"version" min:"1" type:"string"`
12743}
12744
12745// String returns the string representation
12746func (s ResourceReference) String() string {
12747	return awsutil.Prettify(s)
12748}
12749
12750// GoString returns the string representation
12751func (s ResourceReference) GoString() string {
12752	return s.String()
12753}
12754
12755// SetName sets the Name field's value.
12756func (s *ResourceReference) SetName(v string) *ResourceReference {
12757	s.Name = &v
12758	return s
12759}
12760
12761// SetVersion sets the Version field's value.
12762func (s *ResourceReference) SetVersion(v string) *ResourceReference {
12763	s.Version = &v
12764	return s
12765}
12766
12767// Identifies the version of a specific slot.
12768type Slot struct {
12769	_ struct{} `type:"structure"`
12770
12771	// A list of default values for the slot. Default values are used when Amazon
12772	// Lex hasn't determined a value for a slot. You can specify default values
12773	// from context variables, session attributes, and defined values.
12774	DefaultValueSpec *SlotDefaultValueSpec `locationName:"defaultValueSpec" type:"structure"`
12775
12776	// A description of the slot.
12777	Description *string `locationName:"description" type:"string"`
12778
12779	// The name of the slot.
12780	//
12781	// Name is a required field
12782	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
12783
12784	// Determines whether a slot is obfuscated in conversation logs and stored utterances.
12785	// When you obfuscate a slot, the value is replaced by the slot name in curly
12786	// braces ({}). For example, if the slot name is "full_name", obfuscated values
12787	// are replaced with "{full_name}". For more information, see Slot Obfuscation
12788	// (https://docs.aws.amazon.com/lex/latest/dg/how-obfuscate.html).
12789	ObfuscationSetting *string `locationName:"obfuscationSetting" type:"string" enum:"ObfuscationSetting"`
12790
12791	// Directs Amazon Lex the order in which to elicit this slot value from the
12792	// user. For example, if the intent has two slots with priorities 1 and 2, AWS
12793	// Amazon Lex first elicits a value for the slot with priority 1.
12794	//
12795	// If multiple slots share the same priority, the order in which Amazon Lex
12796	// elicits values is arbitrary.
12797	Priority *int64 `locationName:"priority" type:"integer"`
12798
12799	// A set of possible responses for the slot type used by text-based clients.
12800	// A user chooses an option from the response card, instead of using text to
12801	// reply.
12802	ResponseCard *string `locationName:"responseCard" min:"1" type:"string"`
12803
12804	// If you know a specific pattern with which users might respond to an Amazon
12805	// Lex request for a slot value, you can provide those utterances to improve
12806	// accuracy. This is optional. In most cases, Amazon Lex is capable of understanding
12807	// user utterances.
12808	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
12809
12810	// Specifies whether the slot is required or optional.
12811	//
12812	// SlotConstraint is a required field
12813	SlotConstraint *string `locationName:"slotConstraint" type:"string" required:"true" enum:"SlotConstraint"`
12814
12815	// The type of the slot, either a custom slot type that you defined or one of
12816	// the built-in slot types.
12817	SlotType *string `locationName:"slotType" min:"1" type:"string"`
12818
12819	// The version of the slot type.
12820	SlotTypeVersion *string `locationName:"slotTypeVersion" min:"1" type:"string"`
12821
12822	// The prompt that Amazon Lex uses to elicit the slot value from the user.
12823	ValueElicitationPrompt *Prompt `locationName:"valueElicitationPrompt" type:"structure"`
12824}
12825
12826// String returns the string representation
12827func (s Slot) String() string {
12828	return awsutil.Prettify(s)
12829}
12830
12831// GoString returns the string representation
12832func (s Slot) GoString() string {
12833	return s.String()
12834}
12835
12836// Validate inspects the fields of the type to determine if they are valid.
12837func (s *Slot) Validate() error {
12838	invalidParams := request.ErrInvalidParams{Context: "Slot"}
12839	if s.Name == nil {
12840		invalidParams.Add(request.NewErrParamRequired("Name"))
12841	}
12842	if s.Name != nil && len(*s.Name) < 1 {
12843		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
12844	}
12845	if s.ResponseCard != nil && len(*s.ResponseCard) < 1 {
12846		invalidParams.Add(request.NewErrParamMinLen("ResponseCard", 1))
12847	}
12848	if s.SlotConstraint == nil {
12849		invalidParams.Add(request.NewErrParamRequired("SlotConstraint"))
12850	}
12851	if s.SlotType != nil && len(*s.SlotType) < 1 {
12852		invalidParams.Add(request.NewErrParamMinLen("SlotType", 1))
12853	}
12854	if s.SlotTypeVersion != nil && len(*s.SlotTypeVersion) < 1 {
12855		invalidParams.Add(request.NewErrParamMinLen("SlotTypeVersion", 1))
12856	}
12857	if s.DefaultValueSpec != nil {
12858		if err := s.DefaultValueSpec.Validate(); err != nil {
12859			invalidParams.AddNested("DefaultValueSpec", err.(request.ErrInvalidParams))
12860		}
12861	}
12862	if s.ValueElicitationPrompt != nil {
12863		if err := s.ValueElicitationPrompt.Validate(); err != nil {
12864			invalidParams.AddNested("ValueElicitationPrompt", err.(request.ErrInvalidParams))
12865		}
12866	}
12867
12868	if invalidParams.Len() > 0 {
12869		return invalidParams
12870	}
12871	return nil
12872}
12873
12874// SetDefaultValueSpec sets the DefaultValueSpec field's value.
12875func (s *Slot) SetDefaultValueSpec(v *SlotDefaultValueSpec) *Slot {
12876	s.DefaultValueSpec = v
12877	return s
12878}
12879
12880// SetDescription sets the Description field's value.
12881func (s *Slot) SetDescription(v string) *Slot {
12882	s.Description = &v
12883	return s
12884}
12885
12886// SetName sets the Name field's value.
12887func (s *Slot) SetName(v string) *Slot {
12888	s.Name = &v
12889	return s
12890}
12891
12892// SetObfuscationSetting sets the ObfuscationSetting field's value.
12893func (s *Slot) SetObfuscationSetting(v string) *Slot {
12894	s.ObfuscationSetting = &v
12895	return s
12896}
12897
12898// SetPriority sets the Priority field's value.
12899func (s *Slot) SetPriority(v int64) *Slot {
12900	s.Priority = &v
12901	return s
12902}
12903
12904// SetResponseCard sets the ResponseCard field's value.
12905func (s *Slot) SetResponseCard(v string) *Slot {
12906	s.ResponseCard = &v
12907	return s
12908}
12909
12910// SetSampleUtterances sets the SampleUtterances field's value.
12911func (s *Slot) SetSampleUtterances(v []*string) *Slot {
12912	s.SampleUtterances = v
12913	return s
12914}
12915
12916// SetSlotConstraint sets the SlotConstraint field's value.
12917func (s *Slot) SetSlotConstraint(v string) *Slot {
12918	s.SlotConstraint = &v
12919	return s
12920}
12921
12922// SetSlotType sets the SlotType field's value.
12923func (s *Slot) SetSlotType(v string) *Slot {
12924	s.SlotType = &v
12925	return s
12926}
12927
12928// SetSlotTypeVersion sets the SlotTypeVersion field's value.
12929func (s *Slot) SetSlotTypeVersion(v string) *Slot {
12930	s.SlotTypeVersion = &v
12931	return s
12932}
12933
12934// SetValueElicitationPrompt sets the ValueElicitationPrompt field's value.
12935func (s *Slot) SetValueElicitationPrompt(v *Prompt) *Slot {
12936	s.ValueElicitationPrompt = v
12937	return s
12938}
12939
12940// A default value for a slot.
12941type SlotDefaultValue struct {
12942	_ struct{} `type:"structure"`
12943
12944	// The default value for the slot. You can specify one of the following:
12945	//
12946	//    * #context-name.slot-name - The slot value "slot-name" in the context
12947	//    "context-name."
12948	//
12949	//    * {attribute} - The slot value of the session attribute "attribute."
12950	//
12951	//    * 'value' - The discrete value "value."
12952	//
12953	// DefaultValue is a required field
12954	DefaultValue *string `locationName:"defaultValue" min:"1" type:"string" required:"true"`
12955}
12956
12957// String returns the string representation
12958func (s SlotDefaultValue) String() string {
12959	return awsutil.Prettify(s)
12960}
12961
12962// GoString returns the string representation
12963func (s SlotDefaultValue) GoString() string {
12964	return s.String()
12965}
12966
12967// Validate inspects the fields of the type to determine if they are valid.
12968func (s *SlotDefaultValue) Validate() error {
12969	invalidParams := request.ErrInvalidParams{Context: "SlotDefaultValue"}
12970	if s.DefaultValue == nil {
12971		invalidParams.Add(request.NewErrParamRequired("DefaultValue"))
12972	}
12973	if s.DefaultValue != nil && len(*s.DefaultValue) < 1 {
12974		invalidParams.Add(request.NewErrParamMinLen("DefaultValue", 1))
12975	}
12976
12977	if invalidParams.Len() > 0 {
12978		return invalidParams
12979	}
12980	return nil
12981}
12982
12983// SetDefaultValue sets the DefaultValue field's value.
12984func (s *SlotDefaultValue) SetDefaultValue(v string) *SlotDefaultValue {
12985	s.DefaultValue = &v
12986	return s
12987}
12988
12989// Contains the default values for a slot. Default values are used when Amazon
12990// Lex hasn't determined a value for a slot.
12991type SlotDefaultValueSpec struct {
12992	_ struct{} `type:"structure"`
12993
12994	// The default values for a slot. You can specify more than one default. For
12995	// example, you can specify a default value to use from a matching context variable,
12996	// a session attribute, or a fixed value.
12997	//
12998	// The default value chosen is selected based on the order that you specify
12999	// them in the list. For example, if you specify a context variable and a fixed
13000	// value in that order, Amazon Lex uses the context variable if it is available,
13001	// else it uses the fixed value.
13002	//
13003	// DefaultValueList is a required field
13004	DefaultValueList []*SlotDefaultValue `locationName:"defaultValueList" type:"list" required:"true"`
13005}
13006
13007// String returns the string representation
13008func (s SlotDefaultValueSpec) String() string {
13009	return awsutil.Prettify(s)
13010}
13011
13012// GoString returns the string representation
13013func (s SlotDefaultValueSpec) GoString() string {
13014	return s.String()
13015}
13016
13017// Validate inspects the fields of the type to determine if they are valid.
13018func (s *SlotDefaultValueSpec) Validate() error {
13019	invalidParams := request.ErrInvalidParams{Context: "SlotDefaultValueSpec"}
13020	if s.DefaultValueList == nil {
13021		invalidParams.Add(request.NewErrParamRequired("DefaultValueList"))
13022	}
13023	if s.DefaultValueList != nil {
13024		for i, v := range s.DefaultValueList {
13025			if v == nil {
13026				continue
13027			}
13028			if err := v.Validate(); err != nil {
13029				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultValueList", i), err.(request.ErrInvalidParams))
13030			}
13031		}
13032	}
13033
13034	if invalidParams.Len() > 0 {
13035		return invalidParams
13036	}
13037	return nil
13038}
13039
13040// SetDefaultValueList sets the DefaultValueList field's value.
13041func (s *SlotDefaultValueSpec) SetDefaultValueList(v []*SlotDefaultValue) *SlotDefaultValueSpec {
13042	s.DefaultValueList = v
13043	return s
13044}
13045
13046// Provides configuration information for a slot type.
13047type SlotTypeConfiguration struct {
13048	_ struct{} `type:"structure"`
13049
13050	// A regular expression used to validate the value of a slot.
13051	RegexConfiguration *SlotTypeRegexConfiguration `locationName:"regexConfiguration" type:"structure"`
13052}
13053
13054// String returns the string representation
13055func (s SlotTypeConfiguration) String() string {
13056	return awsutil.Prettify(s)
13057}
13058
13059// GoString returns the string representation
13060func (s SlotTypeConfiguration) GoString() string {
13061	return s.String()
13062}
13063
13064// Validate inspects the fields of the type to determine if they are valid.
13065func (s *SlotTypeConfiguration) Validate() error {
13066	invalidParams := request.ErrInvalidParams{Context: "SlotTypeConfiguration"}
13067	if s.RegexConfiguration != nil {
13068		if err := s.RegexConfiguration.Validate(); err != nil {
13069			invalidParams.AddNested("RegexConfiguration", err.(request.ErrInvalidParams))
13070		}
13071	}
13072
13073	if invalidParams.Len() > 0 {
13074		return invalidParams
13075	}
13076	return nil
13077}
13078
13079// SetRegexConfiguration sets the RegexConfiguration field's value.
13080func (s *SlotTypeConfiguration) SetRegexConfiguration(v *SlotTypeRegexConfiguration) *SlotTypeConfiguration {
13081	s.RegexConfiguration = v
13082	return s
13083}
13084
13085// Provides information about a slot type..
13086type SlotTypeMetadata struct {
13087	_ struct{} `type:"structure"`
13088
13089	// The date that the slot type was created.
13090	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
13091
13092	// A description of the slot type.
13093	Description *string `locationName:"description" type:"string"`
13094
13095	// The date that the slot type was updated. When you create a resource, the
13096	// creation date and last updated date are the same.
13097	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
13098
13099	// The name of the slot type.
13100	Name *string `locationName:"name" min:"1" type:"string"`
13101
13102	// The version of the slot type.
13103	Version *string `locationName:"version" min:"1" type:"string"`
13104}
13105
13106// String returns the string representation
13107func (s SlotTypeMetadata) String() string {
13108	return awsutil.Prettify(s)
13109}
13110
13111// GoString returns the string representation
13112func (s SlotTypeMetadata) GoString() string {
13113	return s.String()
13114}
13115
13116// SetCreatedDate sets the CreatedDate field's value.
13117func (s *SlotTypeMetadata) SetCreatedDate(v time.Time) *SlotTypeMetadata {
13118	s.CreatedDate = &v
13119	return s
13120}
13121
13122// SetDescription sets the Description field's value.
13123func (s *SlotTypeMetadata) SetDescription(v string) *SlotTypeMetadata {
13124	s.Description = &v
13125	return s
13126}
13127
13128// SetLastUpdatedDate sets the LastUpdatedDate field's value.
13129func (s *SlotTypeMetadata) SetLastUpdatedDate(v time.Time) *SlotTypeMetadata {
13130	s.LastUpdatedDate = &v
13131	return s
13132}
13133
13134// SetName sets the Name field's value.
13135func (s *SlotTypeMetadata) SetName(v string) *SlotTypeMetadata {
13136	s.Name = &v
13137	return s
13138}
13139
13140// SetVersion sets the Version field's value.
13141func (s *SlotTypeMetadata) SetVersion(v string) *SlotTypeMetadata {
13142	s.Version = &v
13143	return s
13144}
13145
13146// Provides a regular expression used to validate the value of a slot.
13147type SlotTypeRegexConfiguration struct {
13148	_ struct{} `type:"structure"`
13149
13150	// A regular expression used to validate the value of a slot.
13151	//
13152	// Use a standard regular expression. Amazon Lex supports the following characters
13153	// in the regular expression:
13154	//
13155	//    * A-Z, a-z
13156	//
13157	//    * 0-9
13158	//
13159	//    * Unicode characters ("\ u<Unicode>")
13160	//
13161	// Represent Unicode characters with four digits, for example "\u0041" or "\u005A".
13162	//
13163	// The following regular expression operators are not supported:
13164	//
13165	//    * Infinite repeaters: *, +, or {x,} with no upper bound.
13166	//
13167	//    * Wild card (.)
13168	//
13169	// Pattern is a required field
13170	Pattern *string `locationName:"pattern" min:"1" type:"string" required:"true"`
13171}
13172
13173// String returns the string representation
13174func (s SlotTypeRegexConfiguration) String() string {
13175	return awsutil.Prettify(s)
13176}
13177
13178// GoString returns the string representation
13179func (s SlotTypeRegexConfiguration) GoString() string {
13180	return s.String()
13181}
13182
13183// Validate inspects the fields of the type to determine if they are valid.
13184func (s *SlotTypeRegexConfiguration) Validate() error {
13185	invalidParams := request.ErrInvalidParams{Context: "SlotTypeRegexConfiguration"}
13186	if s.Pattern == nil {
13187		invalidParams.Add(request.NewErrParamRequired("Pattern"))
13188	}
13189	if s.Pattern != nil && len(*s.Pattern) < 1 {
13190		invalidParams.Add(request.NewErrParamMinLen("Pattern", 1))
13191	}
13192
13193	if invalidParams.Len() > 0 {
13194		return invalidParams
13195	}
13196	return nil
13197}
13198
13199// SetPattern sets the Pattern field's value.
13200func (s *SlotTypeRegexConfiguration) SetPattern(v string) *SlotTypeRegexConfiguration {
13201	s.Pattern = &v
13202	return s
13203}
13204
13205type StartImportInput struct {
13206	_ struct{} `type:"structure"`
13207
13208	// Specifies the action that the StartImport operation should take when there
13209	// is an existing resource with the same name.
13210	//
13211	//    * FAIL_ON_CONFLICT - The import operation is stopped on the first conflict
13212	//    between a resource in the import file and an existing resource. The name
13213	//    of the resource causing the conflict is in the failureReason field of
13214	//    the response to the GetImport operation. OVERWRITE_LATEST - The import
13215	//    operation proceeds even if there is a conflict with an existing resource.
13216	//    The $LASTEST version of the existing resource is overwritten with the
13217	//    data from the import file.
13218	//
13219	// MergeStrategy is a required field
13220	MergeStrategy *string `locationName:"mergeStrategy" type:"string" required:"true" enum:"MergeStrategy"`
13221
13222	// A zip archive in binary format. The archive should contain one file, a JSON
13223	// file containing the resource to import. The resource should match the type
13224	// specified in the resourceType field.
13225	//
13226	// Payload is automatically base64 encoded/decoded by the SDK.
13227	//
13228	// Payload is a required field
13229	Payload []byte `locationName:"payload" type:"blob" required:"true"`
13230
13231	// Specifies the type of resource to export. Each resource also exports any
13232	// resources that it depends on.
13233	//
13234	//    * A bot exports dependent intents.
13235	//
13236	//    * An intent exports dependent slot types.
13237	//
13238	// ResourceType is a required field
13239	ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
13240
13241	// A list of tags to add to the imported bot. You can only add tags when you
13242	// import a bot, you can't add tags to an intent or slot type.
13243	Tags []*Tag `locationName:"tags" type:"list"`
13244}
13245
13246// String returns the string representation
13247func (s StartImportInput) String() string {
13248	return awsutil.Prettify(s)
13249}
13250
13251// GoString returns the string representation
13252func (s StartImportInput) GoString() string {
13253	return s.String()
13254}
13255
13256// Validate inspects the fields of the type to determine if they are valid.
13257func (s *StartImportInput) Validate() error {
13258	invalidParams := request.ErrInvalidParams{Context: "StartImportInput"}
13259	if s.MergeStrategy == nil {
13260		invalidParams.Add(request.NewErrParamRequired("MergeStrategy"))
13261	}
13262	if s.Payload == nil {
13263		invalidParams.Add(request.NewErrParamRequired("Payload"))
13264	}
13265	if s.ResourceType == nil {
13266		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
13267	}
13268	if s.Tags != nil {
13269		for i, v := range s.Tags {
13270			if v == nil {
13271				continue
13272			}
13273			if err := v.Validate(); err != nil {
13274				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
13275			}
13276		}
13277	}
13278
13279	if invalidParams.Len() > 0 {
13280		return invalidParams
13281	}
13282	return nil
13283}
13284
13285// SetMergeStrategy sets the MergeStrategy field's value.
13286func (s *StartImportInput) SetMergeStrategy(v string) *StartImportInput {
13287	s.MergeStrategy = &v
13288	return s
13289}
13290
13291// SetPayload sets the Payload field's value.
13292func (s *StartImportInput) SetPayload(v []byte) *StartImportInput {
13293	s.Payload = v
13294	return s
13295}
13296
13297// SetResourceType sets the ResourceType field's value.
13298func (s *StartImportInput) SetResourceType(v string) *StartImportInput {
13299	s.ResourceType = &v
13300	return s
13301}
13302
13303// SetTags sets the Tags field's value.
13304func (s *StartImportInput) SetTags(v []*Tag) *StartImportInput {
13305	s.Tags = v
13306	return s
13307}
13308
13309type StartImportOutput struct {
13310	_ struct{} `type:"structure"`
13311
13312	// A timestamp for the date and time that the import job was requested.
13313	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
13314
13315	// The identifier for the specific import job.
13316	ImportId *string `locationName:"importId" type:"string"`
13317
13318	// The status of the import job. If the status is FAILED, you can get the reason
13319	// for the failure using the GetImport operation.
13320	ImportStatus *string `locationName:"importStatus" type:"string" enum:"ImportStatus"`
13321
13322	// The action to take when there is a merge conflict.
13323	MergeStrategy *string `locationName:"mergeStrategy" type:"string" enum:"MergeStrategy"`
13324
13325	// The name given to the import job.
13326	Name *string `locationName:"name" min:"1" type:"string"`
13327
13328	// The type of resource to import.
13329	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
13330
13331	// A list of tags added to the imported bot.
13332	Tags []*Tag `locationName:"tags" type:"list"`
13333}
13334
13335// String returns the string representation
13336func (s StartImportOutput) String() string {
13337	return awsutil.Prettify(s)
13338}
13339
13340// GoString returns the string representation
13341func (s StartImportOutput) GoString() string {
13342	return s.String()
13343}
13344
13345// SetCreatedDate sets the CreatedDate field's value.
13346func (s *StartImportOutput) SetCreatedDate(v time.Time) *StartImportOutput {
13347	s.CreatedDate = &v
13348	return s
13349}
13350
13351// SetImportId sets the ImportId field's value.
13352func (s *StartImportOutput) SetImportId(v string) *StartImportOutput {
13353	s.ImportId = &v
13354	return s
13355}
13356
13357// SetImportStatus sets the ImportStatus field's value.
13358func (s *StartImportOutput) SetImportStatus(v string) *StartImportOutput {
13359	s.ImportStatus = &v
13360	return s
13361}
13362
13363// SetMergeStrategy sets the MergeStrategy field's value.
13364func (s *StartImportOutput) SetMergeStrategy(v string) *StartImportOutput {
13365	s.MergeStrategy = &v
13366	return s
13367}
13368
13369// SetName sets the Name field's value.
13370func (s *StartImportOutput) SetName(v string) *StartImportOutput {
13371	s.Name = &v
13372	return s
13373}
13374
13375// SetResourceType sets the ResourceType field's value.
13376func (s *StartImportOutput) SetResourceType(v string) *StartImportOutput {
13377	s.ResourceType = &v
13378	return s
13379}
13380
13381// SetTags sets the Tags field's value.
13382func (s *StartImportOutput) SetTags(v []*Tag) *StartImportOutput {
13383	s.Tags = v
13384	return s
13385}
13386
13387type StartMigrationInput struct {
13388	_ struct{} `type:"structure"`
13389
13390	// The strategy used to conduct the migration.
13391	//
13392	//    * CREATE_NEW - Creates a new Amazon Lex V2 bot and migrates the Amazon
13393	//    Lex V1 bot to the new bot.
13394	//
13395	//    * UPDATE_EXISTING - Overwrites the existing Amazon Lex V2 bot metadata
13396	//    and the locale being migrated. It doesn't change any other locales in
13397	//    the Amazon Lex V2 bot. If the locale doesn't exist, a new locale is created
13398	//    in the Amazon Lex V2 bot.
13399	//
13400	// MigrationStrategy is a required field
13401	MigrationStrategy *string `locationName:"migrationStrategy" type:"string" required:"true" enum:"MigrationStrategy"`
13402
13403	// The name of the Amazon Lex V1 bot that you are migrating to Amazon Lex V2.
13404	//
13405	// V1BotName is a required field
13406	V1BotName *string `locationName:"v1BotName" min:"2" type:"string" required:"true"`
13407
13408	// The version of the bot to migrate to Amazon Lex V2. You can migrate the $LATEST
13409	// version as well as any numbered version.
13410	//
13411	// V1BotVersion is a required field
13412	V1BotVersion *string `locationName:"v1BotVersion" min:"1" type:"string" required:"true"`
13413
13414	// The name of the Amazon Lex V2 bot that you are migrating the Amazon Lex V1
13415	// bot to.
13416	//
13417	//    * If the Amazon Lex V2 bot doesn't exist, you must use the CREATE_NEW
13418	//    migration strategy.
13419	//
13420	//    * If the Amazon Lex V2 bot exists, you must use the UPDATE_EXISTING migration
13421	//    strategy to change the contents of the Amazon Lex V2 bot.
13422	//
13423	// V2BotName is a required field
13424	V2BotName *string `locationName:"v2BotName" min:"1" type:"string" required:"true"`
13425
13426	// The IAM role that Amazon Lex uses to run the Amazon Lex V2 bot.
13427	//
13428	// V2BotRole is a required field
13429	V2BotRole *string `locationName:"v2BotRole" min:"20" type:"string" required:"true"`
13430}
13431
13432// String returns the string representation
13433func (s StartMigrationInput) String() string {
13434	return awsutil.Prettify(s)
13435}
13436
13437// GoString returns the string representation
13438func (s StartMigrationInput) GoString() string {
13439	return s.String()
13440}
13441
13442// Validate inspects the fields of the type to determine if they are valid.
13443func (s *StartMigrationInput) Validate() error {
13444	invalidParams := request.ErrInvalidParams{Context: "StartMigrationInput"}
13445	if s.MigrationStrategy == nil {
13446		invalidParams.Add(request.NewErrParamRequired("MigrationStrategy"))
13447	}
13448	if s.V1BotName == nil {
13449		invalidParams.Add(request.NewErrParamRequired("V1BotName"))
13450	}
13451	if s.V1BotName != nil && len(*s.V1BotName) < 2 {
13452		invalidParams.Add(request.NewErrParamMinLen("V1BotName", 2))
13453	}
13454	if s.V1BotVersion == nil {
13455		invalidParams.Add(request.NewErrParamRequired("V1BotVersion"))
13456	}
13457	if s.V1BotVersion != nil && len(*s.V1BotVersion) < 1 {
13458		invalidParams.Add(request.NewErrParamMinLen("V1BotVersion", 1))
13459	}
13460	if s.V2BotName == nil {
13461		invalidParams.Add(request.NewErrParamRequired("V2BotName"))
13462	}
13463	if s.V2BotName != nil && len(*s.V2BotName) < 1 {
13464		invalidParams.Add(request.NewErrParamMinLen("V2BotName", 1))
13465	}
13466	if s.V2BotRole == nil {
13467		invalidParams.Add(request.NewErrParamRequired("V2BotRole"))
13468	}
13469	if s.V2BotRole != nil && len(*s.V2BotRole) < 20 {
13470		invalidParams.Add(request.NewErrParamMinLen("V2BotRole", 20))
13471	}
13472
13473	if invalidParams.Len() > 0 {
13474		return invalidParams
13475	}
13476	return nil
13477}
13478
13479// SetMigrationStrategy sets the MigrationStrategy field's value.
13480func (s *StartMigrationInput) SetMigrationStrategy(v string) *StartMigrationInput {
13481	s.MigrationStrategy = &v
13482	return s
13483}
13484
13485// SetV1BotName sets the V1BotName field's value.
13486func (s *StartMigrationInput) SetV1BotName(v string) *StartMigrationInput {
13487	s.V1BotName = &v
13488	return s
13489}
13490
13491// SetV1BotVersion sets the V1BotVersion field's value.
13492func (s *StartMigrationInput) SetV1BotVersion(v string) *StartMigrationInput {
13493	s.V1BotVersion = &v
13494	return s
13495}
13496
13497// SetV2BotName sets the V2BotName field's value.
13498func (s *StartMigrationInput) SetV2BotName(v string) *StartMigrationInput {
13499	s.V2BotName = &v
13500	return s
13501}
13502
13503// SetV2BotRole sets the V2BotRole field's value.
13504func (s *StartMigrationInput) SetV2BotRole(v string) *StartMigrationInput {
13505	s.V2BotRole = &v
13506	return s
13507}
13508
13509type StartMigrationOutput struct {
13510	_ struct{} `type:"structure"`
13511
13512	// The unique identifier that Amazon Lex assigned to the migration.
13513	MigrationId *string `locationName:"migrationId" min:"10" type:"string"`
13514
13515	// The strategy used to conduct the migration.
13516	MigrationStrategy *string `locationName:"migrationStrategy" type:"string" enum:"MigrationStrategy"`
13517
13518	// The date and time that the migration started.
13519	MigrationTimestamp *time.Time `locationName:"migrationTimestamp" type:"timestamp"`
13520
13521	// The locale used for the Amazon Lex V1 bot.
13522	V1BotLocale *string `locationName:"v1BotLocale" type:"string" enum:"Locale"`
13523
13524	// The name of the Amazon Lex V1 bot that you are migrating to Amazon Lex V2.
13525	V1BotName *string `locationName:"v1BotName" min:"2" type:"string"`
13526
13527	// The version of the bot to migrate to Amazon Lex V2.
13528	V1BotVersion *string `locationName:"v1BotVersion" min:"1" type:"string"`
13529
13530	// The unique identifier for the Amazon Lex V2 bot.
13531	V2BotId *string `locationName:"v2BotId" min:"10" type:"string"`
13532
13533	// The IAM role that Amazon Lex uses to run the Amazon Lex V2 bot.
13534	V2BotRole *string `locationName:"v2BotRole" min:"20" type:"string"`
13535}
13536
13537// String returns the string representation
13538func (s StartMigrationOutput) String() string {
13539	return awsutil.Prettify(s)
13540}
13541
13542// GoString returns the string representation
13543func (s StartMigrationOutput) GoString() string {
13544	return s.String()
13545}
13546
13547// SetMigrationId sets the MigrationId field's value.
13548func (s *StartMigrationOutput) SetMigrationId(v string) *StartMigrationOutput {
13549	s.MigrationId = &v
13550	return s
13551}
13552
13553// SetMigrationStrategy sets the MigrationStrategy field's value.
13554func (s *StartMigrationOutput) SetMigrationStrategy(v string) *StartMigrationOutput {
13555	s.MigrationStrategy = &v
13556	return s
13557}
13558
13559// SetMigrationTimestamp sets the MigrationTimestamp field's value.
13560func (s *StartMigrationOutput) SetMigrationTimestamp(v time.Time) *StartMigrationOutput {
13561	s.MigrationTimestamp = &v
13562	return s
13563}
13564
13565// SetV1BotLocale sets the V1BotLocale field's value.
13566func (s *StartMigrationOutput) SetV1BotLocale(v string) *StartMigrationOutput {
13567	s.V1BotLocale = &v
13568	return s
13569}
13570
13571// SetV1BotName sets the V1BotName field's value.
13572func (s *StartMigrationOutput) SetV1BotName(v string) *StartMigrationOutput {
13573	s.V1BotName = &v
13574	return s
13575}
13576
13577// SetV1BotVersion sets the V1BotVersion field's value.
13578func (s *StartMigrationOutput) SetV1BotVersion(v string) *StartMigrationOutput {
13579	s.V1BotVersion = &v
13580	return s
13581}
13582
13583// SetV2BotId sets the V2BotId field's value.
13584func (s *StartMigrationOutput) SetV2BotId(v string) *StartMigrationOutput {
13585	s.V2BotId = &v
13586	return s
13587}
13588
13589// SetV2BotRole sets the V2BotRole field's value.
13590func (s *StartMigrationOutput) SetV2BotRole(v string) *StartMigrationOutput {
13591	s.V2BotRole = &v
13592	return s
13593}
13594
13595// A collection of messages that convey information to the user. At runtime,
13596// Amazon Lex selects the message to convey.
13597type Statement struct {
13598	_ struct{} `type:"structure"`
13599
13600	// A collection of message objects.
13601	//
13602	// Messages is a required field
13603	Messages []*Message `locationName:"messages" min:"1" type:"list" required:"true"`
13604
13605	// At runtime, if the client is using the PostText (http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
13606	// API, Amazon Lex includes the response card in the response. It substitutes
13607	// all of the session attributes and slot values for placeholders in the response
13608	// card.
13609	ResponseCard *string `locationName:"responseCard" min:"1" type:"string"`
13610}
13611
13612// String returns the string representation
13613func (s Statement) String() string {
13614	return awsutil.Prettify(s)
13615}
13616
13617// GoString returns the string representation
13618func (s Statement) GoString() string {
13619	return s.String()
13620}
13621
13622// Validate inspects the fields of the type to determine if they are valid.
13623func (s *Statement) Validate() error {
13624	invalidParams := request.ErrInvalidParams{Context: "Statement"}
13625	if s.Messages == nil {
13626		invalidParams.Add(request.NewErrParamRequired("Messages"))
13627	}
13628	if s.Messages != nil && len(s.Messages) < 1 {
13629		invalidParams.Add(request.NewErrParamMinLen("Messages", 1))
13630	}
13631	if s.ResponseCard != nil && len(*s.ResponseCard) < 1 {
13632		invalidParams.Add(request.NewErrParamMinLen("ResponseCard", 1))
13633	}
13634	if s.Messages != nil {
13635		for i, v := range s.Messages {
13636			if v == nil {
13637				continue
13638			}
13639			if err := v.Validate(); err != nil {
13640				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Messages", i), err.(request.ErrInvalidParams))
13641			}
13642		}
13643	}
13644
13645	if invalidParams.Len() > 0 {
13646		return invalidParams
13647	}
13648	return nil
13649}
13650
13651// SetMessages sets the Messages field's value.
13652func (s *Statement) SetMessages(v []*Message) *Statement {
13653	s.Messages = v
13654	return s
13655}
13656
13657// SetResponseCard sets the ResponseCard field's value.
13658func (s *Statement) SetResponseCard(v string) *Statement {
13659	s.ResponseCard = &v
13660	return s
13661}
13662
13663// A list of key/value pairs that identify a bot, bot alias, or bot channel.
13664// Tag keys and values can consist of Unicode letters, digits, white space,
13665// and any of the following symbols: _ . : / = + - @.
13666type Tag struct {
13667	_ struct{} `type:"structure"`
13668
13669	// The key for the tag. Keys are not case-sensitive and must be unique.
13670	//
13671	// Key is a required field
13672	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
13673
13674	// The value associated with a key. The value may be an empty string but it
13675	// can't be null.
13676	//
13677	// Value is a required field
13678	Value *string `locationName:"value" type:"string" required:"true"`
13679}
13680
13681// String returns the string representation
13682func (s Tag) String() string {
13683	return awsutil.Prettify(s)
13684}
13685
13686// GoString returns the string representation
13687func (s Tag) GoString() string {
13688	return s.String()
13689}
13690
13691// Validate inspects the fields of the type to determine if they are valid.
13692func (s *Tag) Validate() error {
13693	invalidParams := request.ErrInvalidParams{Context: "Tag"}
13694	if s.Key == nil {
13695		invalidParams.Add(request.NewErrParamRequired("Key"))
13696	}
13697	if s.Key != nil && len(*s.Key) < 1 {
13698		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
13699	}
13700	if s.Value == nil {
13701		invalidParams.Add(request.NewErrParamRequired("Value"))
13702	}
13703
13704	if invalidParams.Len() > 0 {
13705		return invalidParams
13706	}
13707	return nil
13708}
13709
13710// SetKey sets the Key field's value.
13711func (s *Tag) SetKey(v string) *Tag {
13712	s.Key = &v
13713	return s
13714}
13715
13716// SetValue sets the Value field's value.
13717func (s *Tag) SetValue(v string) *Tag {
13718	s.Value = &v
13719	return s
13720}
13721
13722type TagResourceInput struct {
13723	_ struct{} `type:"structure"`
13724
13725	// The Amazon Resource Name (ARN) of the bot, bot alias, or bot channel to tag.
13726	//
13727	// ResourceArn is a required field
13728	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
13729
13730	// A list of tag keys to add to the resource. If a tag key already exists, the
13731	// existing value is replaced with the new value.
13732	//
13733	// Tags is a required field
13734	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
13735}
13736
13737// String returns the string representation
13738func (s TagResourceInput) String() string {
13739	return awsutil.Prettify(s)
13740}
13741
13742// GoString returns the string representation
13743func (s TagResourceInput) GoString() string {
13744	return s.String()
13745}
13746
13747// Validate inspects the fields of the type to determine if they are valid.
13748func (s *TagResourceInput) Validate() error {
13749	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
13750	if s.ResourceArn == nil {
13751		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
13752	}
13753	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
13754		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
13755	}
13756	if s.Tags == nil {
13757		invalidParams.Add(request.NewErrParamRequired("Tags"))
13758	}
13759	if s.Tags != nil {
13760		for i, v := range s.Tags {
13761			if v == nil {
13762				continue
13763			}
13764			if err := v.Validate(); err != nil {
13765				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
13766			}
13767		}
13768	}
13769
13770	if invalidParams.Len() > 0 {
13771		return invalidParams
13772	}
13773	return nil
13774}
13775
13776// SetResourceArn sets the ResourceArn field's value.
13777func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
13778	s.ResourceArn = &v
13779	return s
13780}
13781
13782// SetTags sets the Tags field's value.
13783func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
13784	s.Tags = v
13785	return s
13786}
13787
13788type TagResourceOutput struct {
13789	_ struct{} `type:"structure"`
13790}
13791
13792// String returns the string representation
13793func (s TagResourceOutput) String() string {
13794	return awsutil.Prettify(s)
13795}
13796
13797// GoString returns the string representation
13798func (s TagResourceOutput) GoString() string {
13799	return s.String()
13800}
13801
13802type UntagResourceInput struct {
13803	_ struct{} `type:"structure"`
13804
13805	// The Amazon Resource Name (ARN) of the resource to remove the tags from.
13806	//
13807	// ResourceArn is a required field
13808	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
13809
13810	// A list of tag keys to remove from the resource. If a tag key does not exist
13811	// on the resource, it is ignored.
13812	//
13813	// TagKeys is a required field
13814	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
13815}
13816
13817// String returns the string representation
13818func (s UntagResourceInput) String() string {
13819	return awsutil.Prettify(s)
13820}
13821
13822// GoString returns the string representation
13823func (s UntagResourceInput) GoString() string {
13824	return s.String()
13825}
13826
13827// Validate inspects the fields of the type to determine if they are valid.
13828func (s *UntagResourceInput) Validate() error {
13829	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
13830	if s.ResourceArn == nil {
13831		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
13832	}
13833	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
13834		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
13835	}
13836	if s.TagKeys == nil {
13837		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
13838	}
13839
13840	if invalidParams.Len() > 0 {
13841		return invalidParams
13842	}
13843	return nil
13844}
13845
13846// SetResourceArn sets the ResourceArn field's value.
13847func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
13848	s.ResourceArn = &v
13849	return s
13850}
13851
13852// SetTagKeys sets the TagKeys field's value.
13853func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
13854	s.TagKeys = v
13855	return s
13856}
13857
13858type UntagResourceOutput struct {
13859	_ struct{} `type:"structure"`
13860}
13861
13862// String returns the string representation
13863func (s UntagResourceOutput) String() string {
13864	return awsutil.Prettify(s)
13865}
13866
13867// GoString returns the string representation
13868func (s UntagResourceOutput) GoString() string {
13869	return s.String()
13870}
13871
13872// Provides information about a single utterance that was made to your bot.
13873type UtteranceData struct {
13874	_ struct{} `type:"structure"`
13875
13876	// The number of times that the utterance was processed.
13877	Count *int64 `locationName:"count" type:"integer"`
13878
13879	// The total number of individuals that used the utterance.
13880	DistinctUsers *int64 `locationName:"distinctUsers" type:"integer"`
13881
13882	// The date that the utterance was first recorded.
13883	FirstUtteredDate *time.Time `locationName:"firstUtteredDate" type:"timestamp"`
13884
13885	// The date that the utterance was last recorded.
13886	LastUtteredDate *time.Time `locationName:"lastUtteredDate" type:"timestamp"`
13887
13888	// The text that was entered by the user or the text representation of an audio
13889	// clip.
13890	UtteranceString *string `locationName:"utteranceString" min:"1" type:"string"`
13891}
13892
13893// String returns the string representation
13894func (s UtteranceData) String() string {
13895	return awsutil.Prettify(s)
13896}
13897
13898// GoString returns the string representation
13899func (s UtteranceData) GoString() string {
13900	return s.String()
13901}
13902
13903// SetCount sets the Count field's value.
13904func (s *UtteranceData) SetCount(v int64) *UtteranceData {
13905	s.Count = &v
13906	return s
13907}
13908
13909// SetDistinctUsers sets the DistinctUsers field's value.
13910func (s *UtteranceData) SetDistinctUsers(v int64) *UtteranceData {
13911	s.DistinctUsers = &v
13912	return s
13913}
13914
13915// SetFirstUtteredDate sets the FirstUtteredDate field's value.
13916func (s *UtteranceData) SetFirstUtteredDate(v time.Time) *UtteranceData {
13917	s.FirstUtteredDate = &v
13918	return s
13919}
13920
13921// SetLastUtteredDate sets the LastUtteredDate field's value.
13922func (s *UtteranceData) SetLastUtteredDate(v time.Time) *UtteranceData {
13923	s.LastUtteredDate = &v
13924	return s
13925}
13926
13927// SetUtteranceString sets the UtteranceString field's value.
13928func (s *UtteranceData) SetUtteranceString(v string) *UtteranceData {
13929	s.UtteranceString = &v
13930	return s
13931}
13932
13933// Provides a list of utterances that have been made to a specific version of
13934// your bot. The list contains a maximum of 100 utterances.
13935type UtteranceList struct {
13936	_ struct{} `type:"structure"`
13937
13938	// The version of the bot that processed the list.
13939	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
13940
13941	// One or more UtteranceData objects that contain information about the utterances
13942	// that have been made to a bot. The maximum number of object is 100.
13943	Utterances []*UtteranceData `locationName:"utterances" type:"list"`
13944}
13945
13946// String returns the string representation
13947func (s UtteranceList) String() string {
13948	return awsutil.Prettify(s)
13949}
13950
13951// GoString returns the string representation
13952func (s UtteranceList) GoString() string {
13953	return s.String()
13954}
13955
13956// SetBotVersion sets the BotVersion field's value.
13957func (s *UtteranceList) SetBotVersion(v string) *UtteranceList {
13958	s.BotVersion = &v
13959	return s
13960}
13961
13962// SetUtterances sets the Utterances field's value.
13963func (s *UtteranceList) SetUtterances(v []*UtteranceData) *UtteranceList {
13964	s.Utterances = v
13965	return s
13966}
13967
13968const (
13969	// ChannelStatusInProgress is a ChannelStatus enum value
13970	ChannelStatusInProgress = "IN_PROGRESS"
13971
13972	// ChannelStatusCreated is a ChannelStatus enum value
13973	ChannelStatusCreated = "CREATED"
13974
13975	// ChannelStatusFailed is a ChannelStatus enum value
13976	ChannelStatusFailed = "FAILED"
13977)
13978
13979// ChannelStatus_Values returns all elements of the ChannelStatus enum
13980func ChannelStatus_Values() []string {
13981	return []string{
13982		ChannelStatusInProgress,
13983		ChannelStatusCreated,
13984		ChannelStatusFailed,
13985	}
13986}
13987
13988const (
13989	// ChannelTypeFacebook is a ChannelType enum value
13990	ChannelTypeFacebook = "Facebook"
13991
13992	// ChannelTypeSlack is a ChannelType enum value
13993	ChannelTypeSlack = "Slack"
13994
13995	// ChannelTypeTwilioSms is a ChannelType enum value
13996	ChannelTypeTwilioSms = "Twilio-Sms"
13997
13998	// ChannelTypeKik is a ChannelType enum value
13999	ChannelTypeKik = "Kik"
14000)
14001
14002// ChannelType_Values returns all elements of the ChannelType enum
14003func ChannelType_Values() []string {
14004	return []string{
14005		ChannelTypeFacebook,
14006		ChannelTypeSlack,
14007		ChannelTypeTwilioSms,
14008		ChannelTypeKik,
14009	}
14010}
14011
14012const (
14013	// ContentTypePlainText is a ContentType enum value
14014	ContentTypePlainText = "PlainText"
14015
14016	// ContentTypeSsml is a ContentType enum value
14017	ContentTypeSsml = "SSML"
14018
14019	// ContentTypeCustomPayload is a ContentType enum value
14020	ContentTypeCustomPayload = "CustomPayload"
14021)
14022
14023// ContentType_Values returns all elements of the ContentType enum
14024func ContentType_Values() []string {
14025	return []string{
14026		ContentTypePlainText,
14027		ContentTypeSsml,
14028		ContentTypeCustomPayload,
14029	}
14030}
14031
14032const (
14033	// DestinationCloudwatchLogs is a Destination enum value
14034	DestinationCloudwatchLogs = "CLOUDWATCH_LOGS"
14035
14036	// DestinationS3 is a Destination enum value
14037	DestinationS3 = "S3"
14038)
14039
14040// Destination_Values returns all elements of the Destination enum
14041func Destination_Values() []string {
14042	return []string{
14043		DestinationCloudwatchLogs,
14044		DestinationS3,
14045	}
14046}
14047
14048const (
14049	// ExportStatusInProgress is a ExportStatus enum value
14050	ExportStatusInProgress = "IN_PROGRESS"
14051
14052	// ExportStatusReady is a ExportStatus enum value
14053	ExportStatusReady = "READY"
14054
14055	// ExportStatusFailed is a ExportStatus enum value
14056	ExportStatusFailed = "FAILED"
14057)
14058
14059// ExportStatus_Values returns all elements of the ExportStatus enum
14060func ExportStatus_Values() []string {
14061	return []string{
14062		ExportStatusInProgress,
14063		ExportStatusReady,
14064		ExportStatusFailed,
14065	}
14066}
14067
14068const (
14069	// ExportTypeAlexaSkillsKit is a ExportType enum value
14070	ExportTypeAlexaSkillsKit = "ALEXA_SKILLS_KIT"
14071
14072	// ExportTypeLex is a ExportType enum value
14073	ExportTypeLex = "LEX"
14074)
14075
14076// ExportType_Values returns all elements of the ExportType enum
14077func ExportType_Values() []string {
14078	return []string{
14079		ExportTypeAlexaSkillsKit,
14080		ExportTypeLex,
14081	}
14082}
14083
14084const (
14085	// FulfillmentActivityTypeReturnIntent is a FulfillmentActivityType enum value
14086	FulfillmentActivityTypeReturnIntent = "ReturnIntent"
14087
14088	// FulfillmentActivityTypeCodeHook is a FulfillmentActivityType enum value
14089	FulfillmentActivityTypeCodeHook = "CodeHook"
14090)
14091
14092// FulfillmentActivityType_Values returns all elements of the FulfillmentActivityType enum
14093func FulfillmentActivityType_Values() []string {
14094	return []string{
14095		FulfillmentActivityTypeReturnIntent,
14096		FulfillmentActivityTypeCodeHook,
14097	}
14098}
14099
14100const (
14101	// ImportStatusInProgress is a ImportStatus enum value
14102	ImportStatusInProgress = "IN_PROGRESS"
14103
14104	// ImportStatusComplete is a ImportStatus enum value
14105	ImportStatusComplete = "COMPLETE"
14106
14107	// ImportStatusFailed is a ImportStatus enum value
14108	ImportStatusFailed = "FAILED"
14109)
14110
14111// ImportStatus_Values returns all elements of the ImportStatus enum
14112func ImportStatus_Values() []string {
14113	return []string{
14114		ImportStatusInProgress,
14115		ImportStatusComplete,
14116		ImportStatusFailed,
14117	}
14118}
14119
14120const (
14121	// LocaleDeDe is a Locale enum value
14122	LocaleDeDe = "de-DE"
14123
14124	// LocaleEnAu is a Locale enum value
14125	LocaleEnAu = "en-AU"
14126
14127	// LocaleEnGb is a Locale enum value
14128	LocaleEnGb = "en-GB"
14129
14130	// LocaleEnIn is a Locale enum value
14131	LocaleEnIn = "en-IN"
14132
14133	// LocaleEnUs is a Locale enum value
14134	LocaleEnUs = "en-US"
14135
14136	// LocaleEs419 is a Locale enum value
14137	LocaleEs419 = "es-419"
14138
14139	// LocaleEsEs is a Locale enum value
14140	LocaleEsEs = "es-ES"
14141
14142	// LocaleEsUs is a Locale enum value
14143	LocaleEsUs = "es-US"
14144
14145	// LocaleFrFr is a Locale enum value
14146	LocaleFrFr = "fr-FR"
14147
14148	// LocaleFrCa is a Locale enum value
14149	LocaleFrCa = "fr-CA"
14150
14151	// LocaleItIt is a Locale enum value
14152	LocaleItIt = "it-IT"
14153
14154	// LocaleJaJp is a Locale enum value
14155	LocaleJaJp = "ja-JP"
14156
14157	// LocaleKoKr is a Locale enum value
14158	LocaleKoKr = "ko-KR"
14159)
14160
14161// Locale_Values returns all elements of the Locale enum
14162func Locale_Values() []string {
14163	return []string{
14164		LocaleDeDe,
14165		LocaleEnAu,
14166		LocaleEnGb,
14167		LocaleEnIn,
14168		LocaleEnUs,
14169		LocaleEs419,
14170		LocaleEsEs,
14171		LocaleEsUs,
14172		LocaleFrFr,
14173		LocaleFrCa,
14174		LocaleItIt,
14175		LocaleJaJp,
14176		LocaleKoKr,
14177	}
14178}
14179
14180const (
14181	// LogTypeAudio is a LogType enum value
14182	LogTypeAudio = "AUDIO"
14183
14184	// LogTypeText is a LogType enum value
14185	LogTypeText = "TEXT"
14186)
14187
14188// LogType_Values returns all elements of the LogType enum
14189func LogType_Values() []string {
14190	return []string{
14191		LogTypeAudio,
14192		LogTypeText,
14193	}
14194}
14195
14196const (
14197	// MergeStrategyOverwriteLatest is a MergeStrategy enum value
14198	MergeStrategyOverwriteLatest = "OVERWRITE_LATEST"
14199
14200	// MergeStrategyFailOnConflict is a MergeStrategy enum value
14201	MergeStrategyFailOnConflict = "FAIL_ON_CONFLICT"
14202)
14203
14204// MergeStrategy_Values returns all elements of the MergeStrategy enum
14205func MergeStrategy_Values() []string {
14206	return []string{
14207		MergeStrategyOverwriteLatest,
14208		MergeStrategyFailOnConflict,
14209	}
14210}
14211
14212const (
14213	// MigrationAlertTypeError is a MigrationAlertType enum value
14214	MigrationAlertTypeError = "ERROR"
14215
14216	// MigrationAlertTypeWarn is a MigrationAlertType enum value
14217	MigrationAlertTypeWarn = "WARN"
14218)
14219
14220// MigrationAlertType_Values returns all elements of the MigrationAlertType enum
14221func MigrationAlertType_Values() []string {
14222	return []string{
14223		MigrationAlertTypeError,
14224		MigrationAlertTypeWarn,
14225	}
14226}
14227
14228const (
14229	// MigrationSortAttributeV1BotName is a MigrationSortAttribute enum value
14230	MigrationSortAttributeV1BotName = "V1_BOT_NAME"
14231
14232	// MigrationSortAttributeMigrationDateTime is a MigrationSortAttribute enum value
14233	MigrationSortAttributeMigrationDateTime = "MIGRATION_DATE_TIME"
14234)
14235
14236// MigrationSortAttribute_Values returns all elements of the MigrationSortAttribute enum
14237func MigrationSortAttribute_Values() []string {
14238	return []string{
14239		MigrationSortAttributeV1BotName,
14240		MigrationSortAttributeMigrationDateTime,
14241	}
14242}
14243
14244const (
14245	// MigrationStatusInProgress is a MigrationStatus enum value
14246	MigrationStatusInProgress = "IN_PROGRESS"
14247
14248	// MigrationStatusCompleted is a MigrationStatus enum value
14249	MigrationStatusCompleted = "COMPLETED"
14250
14251	// MigrationStatusFailed is a MigrationStatus enum value
14252	MigrationStatusFailed = "FAILED"
14253)
14254
14255// MigrationStatus_Values returns all elements of the MigrationStatus enum
14256func MigrationStatus_Values() []string {
14257	return []string{
14258		MigrationStatusInProgress,
14259		MigrationStatusCompleted,
14260		MigrationStatusFailed,
14261	}
14262}
14263
14264const (
14265	// MigrationStrategyCreateNew is a MigrationStrategy enum value
14266	MigrationStrategyCreateNew = "CREATE_NEW"
14267
14268	// MigrationStrategyUpdateExisting is a MigrationStrategy enum value
14269	MigrationStrategyUpdateExisting = "UPDATE_EXISTING"
14270)
14271
14272// MigrationStrategy_Values returns all elements of the MigrationStrategy enum
14273func MigrationStrategy_Values() []string {
14274	return []string{
14275		MigrationStrategyCreateNew,
14276		MigrationStrategyUpdateExisting,
14277	}
14278}
14279
14280const (
14281	// ObfuscationSettingNone is a ObfuscationSetting enum value
14282	ObfuscationSettingNone = "NONE"
14283
14284	// ObfuscationSettingDefaultObfuscation is a ObfuscationSetting enum value
14285	ObfuscationSettingDefaultObfuscation = "DEFAULT_OBFUSCATION"
14286)
14287
14288// ObfuscationSetting_Values returns all elements of the ObfuscationSetting enum
14289func ObfuscationSetting_Values() []string {
14290	return []string{
14291		ObfuscationSettingNone,
14292		ObfuscationSettingDefaultObfuscation,
14293	}
14294}
14295
14296const (
14297	// ProcessBehaviorSave is a ProcessBehavior enum value
14298	ProcessBehaviorSave = "SAVE"
14299
14300	// ProcessBehaviorBuild is a ProcessBehavior enum value
14301	ProcessBehaviorBuild = "BUILD"
14302)
14303
14304// ProcessBehavior_Values returns all elements of the ProcessBehavior enum
14305func ProcessBehavior_Values() []string {
14306	return []string{
14307		ProcessBehaviorSave,
14308		ProcessBehaviorBuild,
14309	}
14310}
14311
14312const (
14313	// ReferenceTypeIntent is a ReferenceType enum value
14314	ReferenceTypeIntent = "Intent"
14315
14316	// ReferenceTypeBot is a ReferenceType enum value
14317	ReferenceTypeBot = "Bot"
14318
14319	// ReferenceTypeBotAlias is a ReferenceType enum value
14320	ReferenceTypeBotAlias = "BotAlias"
14321
14322	// ReferenceTypeBotChannel is a ReferenceType enum value
14323	ReferenceTypeBotChannel = "BotChannel"
14324)
14325
14326// ReferenceType_Values returns all elements of the ReferenceType enum
14327func ReferenceType_Values() []string {
14328	return []string{
14329		ReferenceTypeIntent,
14330		ReferenceTypeBot,
14331		ReferenceTypeBotAlias,
14332		ReferenceTypeBotChannel,
14333	}
14334}
14335
14336const (
14337	// ResourceTypeBot is a ResourceType enum value
14338	ResourceTypeBot = "BOT"
14339
14340	// ResourceTypeIntent is a ResourceType enum value
14341	ResourceTypeIntent = "INTENT"
14342
14343	// ResourceTypeSlotType is a ResourceType enum value
14344	ResourceTypeSlotType = "SLOT_TYPE"
14345)
14346
14347// ResourceType_Values returns all elements of the ResourceType enum
14348func ResourceType_Values() []string {
14349	return []string{
14350		ResourceTypeBot,
14351		ResourceTypeIntent,
14352		ResourceTypeSlotType,
14353	}
14354}
14355
14356const (
14357	// SlotConstraintRequired is a SlotConstraint enum value
14358	SlotConstraintRequired = "Required"
14359
14360	// SlotConstraintOptional is a SlotConstraint enum value
14361	SlotConstraintOptional = "Optional"
14362)
14363
14364// SlotConstraint_Values returns all elements of the SlotConstraint enum
14365func SlotConstraint_Values() []string {
14366	return []string{
14367		SlotConstraintRequired,
14368		SlotConstraintOptional,
14369	}
14370}
14371
14372const (
14373	// SlotValueSelectionStrategyOriginalValue is a SlotValueSelectionStrategy enum value
14374	SlotValueSelectionStrategyOriginalValue = "ORIGINAL_VALUE"
14375
14376	// SlotValueSelectionStrategyTopResolution is a SlotValueSelectionStrategy enum value
14377	SlotValueSelectionStrategyTopResolution = "TOP_RESOLUTION"
14378)
14379
14380// SlotValueSelectionStrategy_Values returns all elements of the SlotValueSelectionStrategy enum
14381func SlotValueSelectionStrategy_Values() []string {
14382	return []string{
14383		SlotValueSelectionStrategyOriginalValue,
14384		SlotValueSelectionStrategyTopResolution,
14385	}
14386}
14387
14388const (
14389	// SortOrderAscending is a SortOrder enum value
14390	SortOrderAscending = "ASCENDING"
14391
14392	// SortOrderDescending is a SortOrder enum value
14393	SortOrderDescending = "DESCENDING"
14394)
14395
14396// SortOrder_Values returns all elements of the SortOrder enum
14397func SortOrder_Values() []string {
14398	return []string{
14399		SortOrderAscending,
14400		SortOrderDescending,
14401	}
14402}
14403
14404const (
14405	// StatusBuilding is a Status enum value
14406	StatusBuilding = "BUILDING"
14407
14408	// StatusReady is a Status enum value
14409	StatusReady = "READY"
14410
14411	// StatusReadyBasicTesting is a Status enum value
14412	StatusReadyBasicTesting = "READY_BASIC_TESTING"
14413
14414	// StatusFailed is a Status enum value
14415	StatusFailed = "FAILED"
14416
14417	// StatusNotBuilt is a Status enum value
14418	StatusNotBuilt = "NOT_BUILT"
14419)
14420
14421// Status_Values returns all elements of the Status enum
14422func Status_Values() []string {
14423	return []string{
14424		StatusBuilding,
14425		StatusReady,
14426		StatusReadyBasicTesting,
14427		StatusFailed,
14428		StatusNotBuilt,
14429	}
14430}
14431
14432const (
14433	// StatusTypeDetected is a StatusType enum value
14434	StatusTypeDetected = "Detected"
14435
14436	// StatusTypeMissed is a StatusType enum value
14437	StatusTypeMissed = "Missed"
14438)
14439
14440// StatusType_Values returns all elements of the StatusType enum
14441func StatusType_Values() []string {
14442	return []string{
14443		StatusTypeDetected,
14444		StatusTypeMissed,
14445	}
14446}
14447