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 opGetSlotType = "GetSlotType"
3213
3214// GetSlotTypeRequest generates a "aws/request.Request" representing the
3215// client's request for the GetSlotType 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 GetSlotType for more information on using the GetSlotType
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 GetSlotTypeRequest method.
3230//    req, resp := client.GetSlotTypeRequest(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/GetSlotType
3238func (c *LexModelBuildingService) GetSlotTypeRequest(input *GetSlotTypeInput) (req *request.Request, output *GetSlotTypeOutput) {
3239	op := &request.Operation{
3240		Name:       opGetSlotType,
3241		HTTPMethod: "GET",
3242		HTTPPath:   "/slottypes/{name}/versions/{version}",
3243	}
3244
3245	if input == nil {
3246		input = &GetSlotTypeInput{}
3247	}
3248
3249	output = &GetSlotTypeOutput{}
3250	req = c.newRequest(op, input, output)
3251	return
3252}
3253
3254// GetSlotType API operation for Amazon Lex Model Building Service.
3255//
3256// Returns information about a specific version of a slot type. In addition
3257// to specifying the slot type name, you must specify the slot type version.
3258//
3259// This operation requires permissions for the lex:GetSlotType action.
3260//
3261// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3262// with awserr.Error's Code and Message methods to get detailed information about
3263// the error.
3264//
3265// See the AWS API reference guide for Amazon Lex Model Building Service's
3266// API operation GetSlotType for usage and error information.
3267//
3268// Returned Error Types:
3269//   * NotFoundException
3270//   The resource specified in the request was not found. Check the resource and
3271//   try again.
3272//
3273//   * LimitExceededException
3274//   The request exceeded a limit. Try your request again.
3275//
3276//   * InternalFailureException
3277//   An internal Amazon Lex error occurred. Try your request again.
3278//
3279//   * BadRequestException
3280//   The request is not well formed. For example, a value is invalid or a required
3281//   field is missing. Check the field values, and try again.
3282//
3283// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotType
3284func (c *LexModelBuildingService) GetSlotType(input *GetSlotTypeInput) (*GetSlotTypeOutput, error) {
3285	req, out := c.GetSlotTypeRequest(input)
3286	return out, req.Send()
3287}
3288
3289// GetSlotTypeWithContext is the same as GetSlotType with the addition of
3290// the ability to pass a context and additional request options.
3291//
3292// See GetSlotType for details on how to use this API operation.
3293//
3294// The context must be non-nil and will be used for request cancellation. If
3295// the context is nil a panic will occur. In the future the SDK may create
3296// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3297// for more information on using Contexts.
3298func (c *LexModelBuildingService) GetSlotTypeWithContext(ctx aws.Context, input *GetSlotTypeInput, opts ...request.Option) (*GetSlotTypeOutput, error) {
3299	req, out := c.GetSlotTypeRequest(input)
3300	req.SetContext(ctx)
3301	req.ApplyOptions(opts...)
3302	return out, req.Send()
3303}
3304
3305const opGetSlotTypeVersions = "GetSlotTypeVersions"
3306
3307// GetSlotTypeVersionsRequest generates a "aws/request.Request" representing the
3308// client's request for the GetSlotTypeVersions operation. The "output" return
3309// value will be populated with the request's response once the request completes
3310// successfully.
3311//
3312// Use "Send" method on the returned Request to send the API call to the service.
3313// the "output" return value is not valid until after Send returns without error.
3314//
3315// See GetSlotTypeVersions for more information on using the GetSlotTypeVersions
3316// API call, and error handling.
3317//
3318// This method is useful when you want to inject custom logic or configuration
3319// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3320//
3321//
3322//    // Example sending a request using the GetSlotTypeVersionsRequest method.
3323//    req, resp := client.GetSlotTypeVersionsRequest(params)
3324//
3325//    err := req.Send()
3326//    if err == nil { // resp is now filled
3327//        fmt.Println(resp)
3328//    }
3329//
3330// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypeVersions
3331func (c *LexModelBuildingService) GetSlotTypeVersionsRequest(input *GetSlotTypeVersionsInput) (req *request.Request, output *GetSlotTypeVersionsOutput) {
3332	op := &request.Operation{
3333		Name:       opGetSlotTypeVersions,
3334		HTTPMethod: "GET",
3335		HTTPPath:   "/slottypes/{name}/versions/",
3336		Paginator: &request.Paginator{
3337			InputTokens:     []string{"nextToken"},
3338			OutputTokens:    []string{"nextToken"},
3339			LimitToken:      "maxResults",
3340			TruncationToken: "",
3341		},
3342	}
3343
3344	if input == nil {
3345		input = &GetSlotTypeVersionsInput{}
3346	}
3347
3348	output = &GetSlotTypeVersionsOutput{}
3349	req = c.newRequest(op, input, output)
3350	return
3351}
3352
3353// GetSlotTypeVersions API operation for Amazon Lex Model Building Service.
3354//
3355// Gets information about all versions of a slot type.
3356//
3357// The GetSlotTypeVersions operation returns a SlotTypeMetadata object for each
3358// version of a slot type. For example, if a slot type has three numbered versions,
3359// the GetSlotTypeVersions operation returns four SlotTypeMetadata objects in
3360// the response, one for each numbered version and one for the $LATEST version.
3361//
3362// The GetSlotTypeVersions operation always returns at least one version, the
3363// $LATEST version.
3364//
3365// This operation requires permissions for the lex:GetSlotTypeVersions action.
3366//
3367// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3368// with awserr.Error's Code and Message methods to get detailed information about
3369// the error.
3370//
3371// See the AWS API reference guide for Amazon Lex Model Building Service's
3372// API operation GetSlotTypeVersions for usage and error information.
3373//
3374// Returned Error Types:
3375//   * NotFoundException
3376//   The resource specified in the request was not found. Check the resource and
3377//   try again.
3378//
3379//   * LimitExceededException
3380//   The request exceeded a limit. Try your request again.
3381//
3382//   * InternalFailureException
3383//   An internal Amazon Lex error occurred. Try your request again.
3384//
3385//   * BadRequestException
3386//   The request is not well formed. For example, a value is invalid or a required
3387//   field is missing. Check the field values, and try again.
3388//
3389// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypeVersions
3390func (c *LexModelBuildingService) GetSlotTypeVersions(input *GetSlotTypeVersionsInput) (*GetSlotTypeVersionsOutput, error) {
3391	req, out := c.GetSlotTypeVersionsRequest(input)
3392	return out, req.Send()
3393}
3394
3395// GetSlotTypeVersionsWithContext is the same as GetSlotTypeVersions with the addition of
3396// the ability to pass a context and additional request options.
3397//
3398// See GetSlotTypeVersions for details on how to use this API operation.
3399//
3400// The context must be non-nil and will be used for request cancellation. If
3401// the context is nil a panic will occur. In the future the SDK may create
3402// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3403// for more information on using Contexts.
3404func (c *LexModelBuildingService) GetSlotTypeVersionsWithContext(ctx aws.Context, input *GetSlotTypeVersionsInput, opts ...request.Option) (*GetSlotTypeVersionsOutput, error) {
3405	req, out := c.GetSlotTypeVersionsRequest(input)
3406	req.SetContext(ctx)
3407	req.ApplyOptions(opts...)
3408	return out, req.Send()
3409}
3410
3411// GetSlotTypeVersionsPages iterates over the pages of a GetSlotTypeVersions operation,
3412// calling the "fn" function with the response data for each page. To stop
3413// iterating, return false from the fn function.
3414//
3415// See GetSlotTypeVersions method for more information on how to use this operation.
3416//
3417// Note: This operation can generate multiple requests to a service.
3418//
3419//    // Example iterating over at most 3 pages of a GetSlotTypeVersions operation.
3420//    pageNum := 0
3421//    err := client.GetSlotTypeVersionsPages(params,
3422//        func(page *lexmodelbuildingservice.GetSlotTypeVersionsOutput, lastPage bool) bool {
3423//            pageNum++
3424//            fmt.Println(page)
3425//            return pageNum <= 3
3426//        })
3427//
3428func (c *LexModelBuildingService) GetSlotTypeVersionsPages(input *GetSlotTypeVersionsInput, fn func(*GetSlotTypeVersionsOutput, bool) bool) error {
3429	return c.GetSlotTypeVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
3430}
3431
3432// GetSlotTypeVersionsPagesWithContext same as GetSlotTypeVersionsPages except
3433// it takes a Context and allows setting request options on the pages.
3434//
3435// The context must be non-nil and will be used for request cancellation. If
3436// the context is nil a panic will occur. In the future the SDK may create
3437// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3438// for more information on using Contexts.
3439func (c *LexModelBuildingService) GetSlotTypeVersionsPagesWithContext(ctx aws.Context, input *GetSlotTypeVersionsInput, fn func(*GetSlotTypeVersionsOutput, bool) bool, opts ...request.Option) error {
3440	p := request.Pagination{
3441		NewRequest: func() (*request.Request, error) {
3442			var inCpy *GetSlotTypeVersionsInput
3443			if input != nil {
3444				tmp := *input
3445				inCpy = &tmp
3446			}
3447			req, _ := c.GetSlotTypeVersionsRequest(inCpy)
3448			req.SetContext(ctx)
3449			req.ApplyOptions(opts...)
3450			return req, nil
3451		},
3452	}
3453
3454	for p.Next() {
3455		if !fn(p.Page().(*GetSlotTypeVersionsOutput), !p.HasNextPage()) {
3456			break
3457		}
3458	}
3459
3460	return p.Err()
3461}
3462
3463const opGetSlotTypes = "GetSlotTypes"
3464
3465// GetSlotTypesRequest generates a "aws/request.Request" representing the
3466// client's request for the GetSlotTypes operation. The "output" return
3467// value will be populated with the request's response once the request completes
3468// successfully.
3469//
3470// Use "Send" method on the returned Request to send the API call to the service.
3471// the "output" return value is not valid until after Send returns without error.
3472//
3473// See GetSlotTypes for more information on using the GetSlotTypes
3474// API call, and error handling.
3475//
3476// This method is useful when you want to inject custom logic or configuration
3477// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3478//
3479//
3480//    // Example sending a request using the GetSlotTypesRequest method.
3481//    req, resp := client.GetSlotTypesRequest(params)
3482//
3483//    err := req.Send()
3484//    if err == nil { // resp is now filled
3485//        fmt.Println(resp)
3486//    }
3487//
3488// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypes
3489func (c *LexModelBuildingService) GetSlotTypesRequest(input *GetSlotTypesInput) (req *request.Request, output *GetSlotTypesOutput) {
3490	op := &request.Operation{
3491		Name:       opGetSlotTypes,
3492		HTTPMethod: "GET",
3493		HTTPPath:   "/slottypes/",
3494		Paginator: &request.Paginator{
3495			InputTokens:     []string{"nextToken"},
3496			OutputTokens:    []string{"nextToken"},
3497			LimitToken:      "maxResults",
3498			TruncationToken: "",
3499		},
3500	}
3501
3502	if input == nil {
3503		input = &GetSlotTypesInput{}
3504	}
3505
3506	output = &GetSlotTypesOutput{}
3507	req = c.newRequest(op, input, output)
3508	return
3509}
3510
3511// GetSlotTypes API operation for Amazon Lex Model Building Service.
3512//
3513// Returns slot type information as follows:
3514//
3515//    * If you specify the nameContains field, returns the $LATEST version of
3516//    all slot types that contain the specified string.
3517//
3518//    * If you don't specify the nameContains field, returns information about
3519//    the $LATEST version of all slot types.
3520//
3521// The operation requires permission for the lex:GetSlotTypes action.
3522//
3523// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3524// with awserr.Error's Code and Message methods to get detailed information about
3525// the error.
3526//
3527// See the AWS API reference guide for Amazon Lex Model Building Service's
3528// API operation GetSlotTypes for usage and error information.
3529//
3530// Returned Error Types:
3531//   * NotFoundException
3532//   The resource specified in the request was not found. Check the resource and
3533//   try again.
3534//
3535//   * LimitExceededException
3536//   The request exceeded a limit. Try your request again.
3537//
3538//   * InternalFailureException
3539//   An internal Amazon Lex error occurred. Try your request again.
3540//
3541//   * BadRequestException
3542//   The request is not well formed. For example, a value is invalid or a required
3543//   field is missing. Check the field values, and try again.
3544//
3545// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypes
3546func (c *LexModelBuildingService) GetSlotTypes(input *GetSlotTypesInput) (*GetSlotTypesOutput, error) {
3547	req, out := c.GetSlotTypesRequest(input)
3548	return out, req.Send()
3549}
3550
3551// GetSlotTypesWithContext is the same as GetSlotTypes with the addition of
3552// the ability to pass a context and additional request options.
3553//
3554// See GetSlotTypes for details on how to use this API operation.
3555//
3556// The context must be non-nil and will be used for request cancellation. If
3557// the context is nil a panic will occur. In the future the SDK may create
3558// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3559// for more information on using Contexts.
3560func (c *LexModelBuildingService) GetSlotTypesWithContext(ctx aws.Context, input *GetSlotTypesInput, opts ...request.Option) (*GetSlotTypesOutput, error) {
3561	req, out := c.GetSlotTypesRequest(input)
3562	req.SetContext(ctx)
3563	req.ApplyOptions(opts...)
3564	return out, req.Send()
3565}
3566
3567// GetSlotTypesPages iterates over the pages of a GetSlotTypes operation,
3568// calling the "fn" function with the response data for each page. To stop
3569// iterating, return false from the fn function.
3570//
3571// See GetSlotTypes method for more information on how to use this operation.
3572//
3573// Note: This operation can generate multiple requests to a service.
3574//
3575//    // Example iterating over at most 3 pages of a GetSlotTypes operation.
3576//    pageNum := 0
3577//    err := client.GetSlotTypesPages(params,
3578//        func(page *lexmodelbuildingservice.GetSlotTypesOutput, lastPage bool) bool {
3579//            pageNum++
3580//            fmt.Println(page)
3581//            return pageNum <= 3
3582//        })
3583//
3584func (c *LexModelBuildingService) GetSlotTypesPages(input *GetSlotTypesInput, fn func(*GetSlotTypesOutput, bool) bool) error {
3585	return c.GetSlotTypesPagesWithContext(aws.BackgroundContext(), input, fn)
3586}
3587
3588// GetSlotTypesPagesWithContext same as GetSlotTypesPages except
3589// it takes a Context and allows setting request options on the pages.
3590//
3591// The context must be non-nil and will be used for request cancellation. If
3592// the context is nil a panic will occur. In the future the SDK may create
3593// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3594// for more information on using Contexts.
3595func (c *LexModelBuildingService) GetSlotTypesPagesWithContext(ctx aws.Context, input *GetSlotTypesInput, fn func(*GetSlotTypesOutput, bool) bool, opts ...request.Option) error {
3596	p := request.Pagination{
3597		NewRequest: func() (*request.Request, error) {
3598			var inCpy *GetSlotTypesInput
3599			if input != nil {
3600				tmp := *input
3601				inCpy = &tmp
3602			}
3603			req, _ := c.GetSlotTypesRequest(inCpy)
3604			req.SetContext(ctx)
3605			req.ApplyOptions(opts...)
3606			return req, nil
3607		},
3608	}
3609
3610	for p.Next() {
3611		if !fn(p.Page().(*GetSlotTypesOutput), !p.HasNextPage()) {
3612			break
3613		}
3614	}
3615
3616	return p.Err()
3617}
3618
3619const opGetUtterancesView = "GetUtterancesView"
3620
3621// GetUtterancesViewRequest generates a "aws/request.Request" representing the
3622// client's request for the GetUtterancesView operation. The "output" return
3623// value will be populated with the request's response once the request completes
3624// successfully.
3625//
3626// Use "Send" method on the returned Request to send the API call to the service.
3627// the "output" return value is not valid until after Send returns without error.
3628//
3629// See GetUtterancesView for more information on using the GetUtterancesView
3630// API call, and error handling.
3631//
3632// This method is useful when you want to inject custom logic or configuration
3633// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3634//
3635//
3636//    // Example sending a request using the GetUtterancesViewRequest method.
3637//    req, resp := client.GetUtterancesViewRequest(params)
3638//
3639//    err := req.Send()
3640//    if err == nil { // resp is now filled
3641//        fmt.Println(resp)
3642//    }
3643//
3644// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetUtterancesView
3645func (c *LexModelBuildingService) GetUtterancesViewRequest(input *GetUtterancesViewInput) (req *request.Request, output *GetUtterancesViewOutput) {
3646	op := &request.Operation{
3647		Name:       opGetUtterancesView,
3648		HTTPMethod: "GET",
3649		HTTPPath:   "/bots/{botname}/utterances?view=aggregation",
3650	}
3651
3652	if input == nil {
3653		input = &GetUtterancesViewInput{}
3654	}
3655
3656	output = &GetUtterancesViewOutput{}
3657	req = c.newRequest(op, input, output)
3658	return
3659}
3660
3661// GetUtterancesView API operation for Amazon Lex Model Building Service.
3662//
3663// Use the GetUtterancesView operation to get information about the utterances
3664// that your users have made to your bot. You can use this list to tune the
3665// utterances that your bot responds to.
3666//
3667// For example, say that you have created a bot to order flowers. After your
3668// users have used your bot for a while, use the GetUtterancesView operation
3669// to see the requests that they have made and whether they have been successful.
3670// You might find that the utterance "I want flowers" is not being recognized.
3671// You could add this utterance to the OrderFlowers intent so that your bot
3672// recognizes that utterance.
3673//
3674// After you publish a new version of a bot, you can get information about the
3675// old version and the new so that you can compare the performance across the
3676// two versions.
3677//
3678// Utterance statistics are generated once a day. Data is available for the
3679// last 15 days. You can request information for up to 5 versions of your bot
3680// in each request. Amazon Lex returns the most frequent utterances received
3681// by the bot in the last 15 days. The response contains information about a
3682// maximum of 100 utterances for each version.
3683//
3684// If you set childDirected field to true when you created your bot, or if you
3685// opted out of participating in improving Amazon Lex, utterances are not available.
3686//
3687// This operation requires permissions for the lex:GetUtterancesView action.
3688//
3689// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3690// with awserr.Error's Code and Message methods to get detailed information about
3691// the error.
3692//
3693// See the AWS API reference guide for Amazon Lex Model Building Service's
3694// API operation GetUtterancesView for usage and error information.
3695//
3696// Returned Error Types:
3697//   * LimitExceededException
3698//   The request exceeded a limit. Try your request again.
3699//
3700//   * InternalFailureException
3701//   An internal Amazon Lex error occurred. Try your request again.
3702//
3703//   * BadRequestException
3704//   The request is not well formed. For example, a value is invalid or a required
3705//   field is missing. Check the field values, and try again.
3706//
3707// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetUtterancesView
3708func (c *LexModelBuildingService) GetUtterancesView(input *GetUtterancesViewInput) (*GetUtterancesViewOutput, error) {
3709	req, out := c.GetUtterancesViewRequest(input)
3710	return out, req.Send()
3711}
3712
3713// GetUtterancesViewWithContext is the same as GetUtterancesView with the addition of
3714// the ability to pass a context and additional request options.
3715//
3716// See GetUtterancesView for details on how to use this API operation.
3717//
3718// The context must be non-nil and will be used for request cancellation. If
3719// the context is nil a panic will occur. In the future the SDK may create
3720// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3721// for more information on using Contexts.
3722func (c *LexModelBuildingService) GetUtterancesViewWithContext(ctx aws.Context, input *GetUtterancesViewInput, opts ...request.Option) (*GetUtterancesViewOutput, error) {
3723	req, out := c.GetUtterancesViewRequest(input)
3724	req.SetContext(ctx)
3725	req.ApplyOptions(opts...)
3726	return out, req.Send()
3727}
3728
3729const opListTagsForResource = "ListTagsForResource"
3730
3731// ListTagsForResourceRequest generates a "aws/request.Request" representing the
3732// client's request for the ListTagsForResource operation. The "output" return
3733// value will be populated with the request's response once the request completes
3734// successfully.
3735//
3736// Use "Send" method on the returned Request to send the API call to the service.
3737// the "output" return value is not valid until after Send returns without error.
3738//
3739// See ListTagsForResource for more information on using the ListTagsForResource
3740// API call, and error handling.
3741//
3742// This method is useful when you want to inject custom logic or configuration
3743// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3744//
3745//
3746//    // Example sending a request using the ListTagsForResourceRequest method.
3747//    req, resp := client.ListTagsForResourceRequest(params)
3748//
3749//    err := req.Send()
3750//    if err == nil { // resp is now filled
3751//        fmt.Println(resp)
3752//    }
3753//
3754// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/ListTagsForResource
3755func (c *LexModelBuildingService) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
3756	op := &request.Operation{
3757		Name:       opListTagsForResource,
3758		HTTPMethod: "GET",
3759		HTTPPath:   "/tags/{resourceArn}",
3760	}
3761
3762	if input == nil {
3763		input = &ListTagsForResourceInput{}
3764	}
3765
3766	output = &ListTagsForResourceOutput{}
3767	req = c.newRequest(op, input, output)
3768	return
3769}
3770
3771// ListTagsForResource API operation for Amazon Lex Model Building Service.
3772//
3773// Gets a list of tags associated with the specified resource. Only bots, bot
3774// aliases, and bot channels can have tags associated with them.
3775//
3776// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3777// with awserr.Error's Code and Message methods to get detailed information about
3778// the error.
3779//
3780// See the AWS API reference guide for Amazon Lex Model Building Service's
3781// API operation ListTagsForResource for usage and error information.
3782//
3783// Returned Error Types:
3784//   * NotFoundException
3785//   The resource specified in the request was not found. Check the resource and
3786//   try again.
3787//
3788//   * BadRequestException
3789//   The request is not well formed. For example, a value is invalid or a required
3790//   field is missing. Check the field values, and try again.
3791//
3792//   * InternalFailureException
3793//   An internal Amazon Lex error occurred. Try your request again.
3794//
3795//   * LimitExceededException
3796//   The request exceeded a limit. Try your request again.
3797//
3798// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/ListTagsForResource
3799func (c *LexModelBuildingService) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
3800	req, out := c.ListTagsForResourceRequest(input)
3801	return out, req.Send()
3802}
3803
3804// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
3805// the ability to pass a context and additional request options.
3806//
3807// See ListTagsForResource for details on how to use this API operation.
3808//
3809// The context must be non-nil and will be used for request cancellation. If
3810// the context is nil a panic will occur. In the future the SDK may create
3811// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3812// for more information on using Contexts.
3813func (c *LexModelBuildingService) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
3814	req, out := c.ListTagsForResourceRequest(input)
3815	req.SetContext(ctx)
3816	req.ApplyOptions(opts...)
3817	return out, req.Send()
3818}
3819
3820const opPutBot = "PutBot"
3821
3822// PutBotRequest generates a "aws/request.Request" representing the
3823// client's request for the PutBot operation. The "output" return
3824// value will be populated with the request's response once the request completes
3825// successfully.
3826//
3827// Use "Send" method on the returned Request to send the API call to the service.
3828// the "output" return value is not valid until after Send returns without error.
3829//
3830// See PutBot for more information on using the PutBot
3831// API call, and error handling.
3832//
3833// This method is useful when you want to inject custom logic or configuration
3834// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3835//
3836//
3837//    // Example sending a request using the PutBotRequest method.
3838//    req, resp := client.PutBotRequest(params)
3839//
3840//    err := req.Send()
3841//    if err == nil { // resp is now filled
3842//        fmt.Println(resp)
3843//    }
3844//
3845// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBot
3846func (c *LexModelBuildingService) PutBotRequest(input *PutBotInput) (req *request.Request, output *PutBotOutput) {
3847	op := &request.Operation{
3848		Name:       opPutBot,
3849		HTTPMethod: "PUT",
3850		HTTPPath:   "/bots/{name}/versions/$LATEST",
3851	}
3852
3853	if input == nil {
3854		input = &PutBotInput{}
3855	}
3856
3857	output = &PutBotOutput{}
3858	req = c.newRequest(op, input, output)
3859	return
3860}
3861
3862// PutBot API operation for Amazon Lex Model Building Service.
3863//
3864// Creates an Amazon Lex conversational bot or replaces an existing bot. When
3865// you create or update a bot you are only required to specify a name, a locale,
3866// and whether the bot is directed toward children under age 13. You can use
3867// this to add intents later, or to remove intents from an existing bot. When
3868// you create a bot with the minimum information, the bot is created or updated
3869// but Amazon Lex returns the response FAILED. You can build the bot after you
3870// add one or more intents. For more information about Amazon Lex bots, see
3871// how-it-works.
3872//
3873// If you specify the name of an existing bot, the fields in the request replace
3874// the existing values in the $LATEST version of the bot. Amazon Lex removes
3875// any fields that you don't provide values for in the request, except for the
3876// idleTTLInSeconds and privacySettings fields, which are set to their default
3877// values. If you don't specify values for required fields, Amazon Lex throws
3878// an exception.
3879//
3880// This operation requires permissions for the lex:PutBot action. For more information,
3881// see security-iam.
3882//
3883// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3884// with awserr.Error's Code and Message methods to get detailed information about
3885// the error.
3886//
3887// See the AWS API reference guide for Amazon Lex Model Building Service's
3888// API operation PutBot for usage and error information.
3889//
3890// Returned Error Types:
3891//   * ConflictException
3892//   There was a conflict processing the request. Try your request again.
3893//
3894//   * LimitExceededException
3895//   The request exceeded a limit. Try your request again.
3896//
3897//   * InternalFailureException
3898//   An internal Amazon Lex error occurred. Try your request again.
3899//
3900//   * BadRequestException
3901//   The request is not well formed. For example, a value is invalid or a required
3902//   field is missing. Check the field values, and try again.
3903//
3904//   * PreconditionFailedException
3905//   The checksum of the resource that you are trying to change does not match
3906//   the checksum in the request. Check the resource's checksum and try again.
3907//
3908// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBot
3909func (c *LexModelBuildingService) PutBot(input *PutBotInput) (*PutBotOutput, error) {
3910	req, out := c.PutBotRequest(input)
3911	return out, req.Send()
3912}
3913
3914// PutBotWithContext is the same as PutBot with the addition of
3915// the ability to pass a context and additional request options.
3916//
3917// See PutBot for details on how to use this API operation.
3918//
3919// The context must be non-nil and will be used for request cancellation. If
3920// the context is nil a panic will occur. In the future the SDK may create
3921// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3922// for more information on using Contexts.
3923func (c *LexModelBuildingService) PutBotWithContext(ctx aws.Context, input *PutBotInput, opts ...request.Option) (*PutBotOutput, error) {
3924	req, out := c.PutBotRequest(input)
3925	req.SetContext(ctx)
3926	req.ApplyOptions(opts...)
3927	return out, req.Send()
3928}
3929
3930const opPutBotAlias = "PutBotAlias"
3931
3932// PutBotAliasRequest generates a "aws/request.Request" representing the
3933// client's request for the PutBotAlias operation. The "output" return
3934// value will be populated with the request's response once the request completes
3935// successfully.
3936//
3937// Use "Send" method on the returned Request to send the API call to the service.
3938// the "output" return value is not valid until after Send returns without error.
3939//
3940// See PutBotAlias for more information on using the PutBotAlias
3941// API call, and error handling.
3942//
3943// This method is useful when you want to inject custom logic or configuration
3944// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3945//
3946//
3947//    // Example sending a request using the PutBotAliasRequest method.
3948//    req, resp := client.PutBotAliasRequest(params)
3949//
3950//    err := req.Send()
3951//    if err == nil { // resp is now filled
3952//        fmt.Println(resp)
3953//    }
3954//
3955// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBotAlias
3956func (c *LexModelBuildingService) PutBotAliasRequest(input *PutBotAliasInput) (req *request.Request, output *PutBotAliasOutput) {
3957	op := &request.Operation{
3958		Name:       opPutBotAlias,
3959		HTTPMethod: "PUT",
3960		HTTPPath:   "/bots/{botName}/aliases/{name}",
3961	}
3962
3963	if input == nil {
3964		input = &PutBotAliasInput{}
3965	}
3966
3967	output = &PutBotAliasOutput{}
3968	req = c.newRequest(op, input, output)
3969	return
3970}
3971
3972// PutBotAlias API operation for Amazon Lex Model Building Service.
3973//
3974// Creates an alias for the specified version of the bot or replaces an alias
3975// for the specified bot. To change the version of the bot that the alias points
3976// to, replace the alias. For more information about aliases, see versioning-aliases.
3977//
3978// This operation requires permissions for the lex:PutBotAlias action.
3979//
3980// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3981// with awserr.Error's Code and Message methods to get detailed information about
3982// the error.
3983//
3984// See the AWS API reference guide for Amazon Lex Model Building Service's
3985// API operation PutBotAlias for usage and error information.
3986//
3987// Returned Error Types:
3988//   * ConflictException
3989//   There was a conflict processing the request. Try your request again.
3990//
3991//   * LimitExceededException
3992//   The request exceeded a limit. Try your request again.
3993//
3994//   * InternalFailureException
3995//   An internal Amazon Lex error occurred. Try your request again.
3996//
3997//   * BadRequestException
3998//   The request is not well formed. For example, a value is invalid or a required
3999//   field is missing. Check the field values, and try again.
4000//
4001//   * PreconditionFailedException
4002//   The checksum of the resource that you are trying to change does not match
4003//   the checksum in the request. Check the resource's checksum and try again.
4004//
4005// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBotAlias
4006func (c *LexModelBuildingService) PutBotAlias(input *PutBotAliasInput) (*PutBotAliasOutput, error) {
4007	req, out := c.PutBotAliasRequest(input)
4008	return out, req.Send()
4009}
4010
4011// PutBotAliasWithContext is the same as PutBotAlias with the addition of
4012// the ability to pass a context and additional request options.
4013//
4014// See PutBotAlias for details on how to use this API operation.
4015//
4016// The context must be non-nil and will be used for request cancellation. If
4017// the context is nil a panic will occur. In the future the SDK may create
4018// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4019// for more information on using Contexts.
4020func (c *LexModelBuildingService) PutBotAliasWithContext(ctx aws.Context, input *PutBotAliasInput, opts ...request.Option) (*PutBotAliasOutput, error) {
4021	req, out := c.PutBotAliasRequest(input)
4022	req.SetContext(ctx)
4023	req.ApplyOptions(opts...)
4024	return out, req.Send()
4025}
4026
4027const opPutIntent = "PutIntent"
4028
4029// PutIntentRequest generates a "aws/request.Request" representing the
4030// client's request for the PutIntent operation. The "output" return
4031// value will be populated with the request's response once the request completes
4032// successfully.
4033//
4034// Use "Send" method on the returned Request to send the API call to the service.
4035// the "output" return value is not valid until after Send returns without error.
4036//
4037// See PutIntent for more information on using the PutIntent
4038// API call, and error handling.
4039//
4040// This method is useful when you want to inject custom logic or configuration
4041// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4042//
4043//
4044//    // Example sending a request using the PutIntentRequest method.
4045//    req, resp := client.PutIntentRequest(params)
4046//
4047//    err := req.Send()
4048//    if err == nil { // resp is now filled
4049//        fmt.Println(resp)
4050//    }
4051//
4052// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutIntent
4053func (c *LexModelBuildingService) PutIntentRequest(input *PutIntentInput) (req *request.Request, output *PutIntentOutput) {
4054	op := &request.Operation{
4055		Name:       opPutIntent,
4056		HTTPMethod: "PUT",
4057		HTTPPath:   "/intents/{name}/versions/$LATEST",
4058	}
4059
4060	if input == nil {
4061		input = &PutIntentInput{}
4062	}
4063
4064	output = &PutIntentOutput{}
4065	req = c.newRequest(op, input, output)
4066	return
4067}
4068
4069// PutIntent API operation for Amazon Lex Model Building Service.
4070//
4071// Creates an intent or replaces an existing intent.
4072//
4073// To define the interaction between the user and your bot, you use one or more
4074// intents. For a pizza ordering bot, for example, you would create an OrderPizza
4075// intent.
4076//
4077// To create an intent or replace an existing intent, you must provide the following:
4078//
4079//    * Intent name. For example, OrderPizza.
4080//
4081//    * Sample utterances. For example, "Can I order a pizza, please." and "I
4082//    want to order a pizza."
4083//
4084//    * Information to be gathered. You specify slot types for the information
4085//    that your bot will request from the user. You can specify standard slot
4086//    types, such as a date or a time, or custom slot types such as the size
4087//    and crust of a pizza.
4088//
4089//    * How the intent will be fulfilled. You can provide a Lambda function
4090//    or configure the intent to return the intent information to the client
4091//    application. If you use a Lambda function, when all of the intent information
4092//    is available, Amazon Lex invokes your Lambda function. If you configure
4093//    your intent to return the intent information to the client application.
4094//
4095// You can specify other optional information in the request, such as:
4096//
4097//    * A confirmation prompt to ask the user to confirm an intent. For example,
4098//    "Shall I order your pizza?"
4099//
4100//    * A conclusion statement to send to the user after the intent has been
4101//    fulfilled. For example, "I placed your pizza order."
4102//
4103//    * A follow-up prompt that asks the user for additional activity. For example,
4104//    asking "Do you want to order a drink with your pizza?"
4105//
4106// If you specify an existing intent name to update the intent, Amazon Lex replaces
4107// the values in the $LATEST version of the intent with the values in the request.
4108// Amazon Lex removes fields that you don't provide in the request. If you don't
4109// specify the required fields, Amazon Lex throws an exception. When you update
4110// the $LATEST version of an intent, the status field of any bot that uses the
4111// $LATEST version of the intent is set to NOT_BUILT.
4112//
4113// For more information, see how-it-works.
4114//
4115// This operation requires permissions for the lex:PutIntent action.
4116//
4117// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4118// with awserr.Error's Code and Message methods to get detailed information about
4119// the error.
4120//
4121// See the AWS API reference guide for Amazon Lex Model Building Service's
4122// API operation PutIntent for usage and error information.
4123//
4124// Returned Error Types:
4125//   * ConflictException
4126//   There was a conflict processing the request. Try your request again.
4127//
4128//   * LimitExceededException
4129//   The request exceeded a limit. Try your request again.
4130//
4131//   * InternalFailureException
4132//   An internal Amazon Lex error occurred. Try your request again.
4133//
4134//   * BadRequestException
4135//   The request is not well formed. For example, a value is invalid or a required
4136//   field is missing. Check the field values, and try again.
4137//
4138//   * PreconditionFailedException
4139//   The checksum of the resource that you are trying to change does not match
4140//   the checksum in the request. Check the resource's checksum and try again.
4141//
4142// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutIntent
4143func (c *LexModelBuildingService) PutIntent(input *PutIntentInput) (*PutIntentOutput, error) {
4144	req, out := c.PutIntentRequest(input)
4145	return out, req.Send()
4146}
4147
4148// PutIntentWithContext is the same as PutIntent with the addition of
4149// the ability to pass a context and additional request options.
4150//
4151// See PutIntent for details on how to use this API operation.
4152//
4153// The context must be non-nil and will be used for request cancellation. If
4154// the context is nil a panic will occur. In the future the SDK may create
4155// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4156// for more information on using Contexts.
4157func (c *LexModelBuildingService) PutIntentWithContext(ctx aws.Context, input *PutIntentInput, opts ...request.Option) (*PutIntentOutput, error) {
4158	req, out := c.PutIntentRequest(input)
4159	req.SetContext(ctx)
4160	req.ApplyOptions(opts...)
4161	return out, req.Send()
4162}
4163
4164const opPutSlotType = "PutSlotType"
4165
4166// PutSlotTypeRequest generates a "aws/request.Request" representing the
4167// client's request for the PutSlotType operation. The "output" return
4168// value will be populated with the request's response once the request completes
4169// successfully.
4170//
4171// Use "Send" method on the returned Request to send the API call to the service.
4172// the "output" return value is not valid until after Send returns without error.
4173//
4174// See PutSlotType for more information on using the PutSlotType
4175// API call, and error handling.
4176//
4177// This method is useful when you want to inject custom logic or configuration
4178// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4179//
4180//
4181//    // Example sending a request using the PutSlotTypeRequest method.
4182//    req, resp := client.PutSlotTypeRequest(params)
4183//
4184//    err := req.Send()
4185//    if err == nil { // resp is now filled
4186//        fmt.Println(resp)
4187//    }
4188//
4189// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutSlotType
4190func (c *LexModelBuildingService) PutSlotTypeRequest(input *PutSlotTypeInput) (req *request.Request, output *PutSlotTypeOutput) {
4191	op := &request.Operation{
4192		Name:       opPutSlotType,
4193		HTTPMethod: "PUT",
4194		HTTPPath:   "/slottypes/{name}/versions/$LATEST",
4195	}
4196
4197	if input == nil {
4198		input = &PutSlotTypeInput{}
4199	}
4200
4201	output = &PutSlotTypeOutput{}
4202	req = c.newRequest(op, input, output)
4203	return
4204}
4205
4206// PutSlotType API operation for Amazon Lex Model Building Service.
4207//
4208// Creates a custom slot type or replaces an existing custom slot type.
4209//
4210// To create a custom slot type, specify a name for the slot type and a set
4211// of enumeration values, which are the values that a slot of this type can
4212// assume. For more information, see how-it-works.
4213//
4214// If you specify the name of an existing slot type, the fields in the request
4215// replace the existing values in the $LATEST version of the slot type. Amazon
4216// Lex removes the fields that you don't provide in the request. If you don't
4217// specify required fields, Amazon Lex throws an exception. When you update
4218// the $LATEST version of a slot type, if a bot uses the $LATEST version of
4219// an intent that contains the slot type, the bot's status field is set to NOT_BUILT.
4220//
4221// This operation requires permissions for the lex:PutSlotType action.
4222//
4223// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4224// with awserr.Error's Code and Message methods to get detailed information about
4225// the error.
4226//
4227// See the AWS API reference guide for Amazon Lex Model Building Service's
4228// API operation PutSlotType for usage and error information.
4229//
4230// Returned Error Types:
4231//   * ConflictException
4232//   There was a conflict processing the request. Try your request again.
4233//
4234//   * LimitExceededException
4235//   The request exceeded a limit. Try your request again.
4236//
4237//   * InternalFailureException
4238//   An internal Amazon Lex error occurred. Try your request again.
4239//
4240//   * BadRequestException
4241//   The request is not well formed. For example, a value is invalid or a required
4242//   field is missing. Check the field values, and try again.
4243//
4244//   * PreconditionFailedException
4245//   The checksum of the resource that you are trying to change does not match
4246//   the checksum in the request. Check the resource's checksum and try again.
4247//
4248// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutSlotType
4249func (c *LexModelBuildingService) PutSlotType(input *PutSlotTypeInput) (*PutSlotTypeOutput, error) {
4250	req, out := c.PutSlotTypeRequest(input)
4251	return out, req.Send()
4252}
4253
4254// PutSlotTypeWithContext is the same as PutSlotType with the addition of
4255// the ability to pass a context and additional request options.
4256//
4257// See PutSlotType for details on how to use this API operation.
4258//
4259// The context must be non-nil and will be used for request cancellation. If
4260// the context is nil a panic will occur. In the future the SDK may create
4261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4262// for more information on using Contexts.
4263func (c *LexModelBuildingService) PutSlotTypeWithContext(ctx aws.Context, input *PutSlotTypeInput, opts ...request.Option) (*PutSlotTypeOutput, error) {
4264	req, out := c.PutSlotTypeRequest(input)
4265	req.SetContext(ctx)
4266	req.ApplyOptions(opts...)
4267	return out, req.Send()
4268}
4269
4270const opStartImport = "StartImport"
4271
4272// StartImportRequest generates a "aws/request.Request" representing the
4273// client's request for the StartImport operation. The "output" return
4274// value will be populated with the request's response once the request completes
4275// successfully.
4276//
4277// Use "Send" method on the returned Request to send the API call to the service.
4278// the "output" return value is not valid until after Send returns without error.
4279//
4280// See StartImport for more information on using the StartImport
4281// API call, and error handling.
4282//
4283// This method is useful when you want to inject custom logic or configuration
4284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4285//
4286//
4287//    // Example sending a request using the StartImportRequest method.
4288//    req, resp := client.StartImportRequest(params)
4289//
4290//    err := req.Send()
4291//    if err == nil { // resp is now filled
4292//        fmt.Println(resp)
4293//    }
4294//
4295// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/StartImport
4296func (c *LexModelBuildingService) StartImportRequest(input *StartImportInput) (req *request.Request, output *StartImportOutput) {
4297	op := &request.Operation{
4298		Name:       opStartImport,
4299		HTTPMethod: "POST",
4300		HTTPPath:   "/imports/",
4301	}
4302
4303	if input == nil {
4304		input = &StartImportInput{}
4305	}
4306
4307	output = &StartImportOutput{}
4308	req = c.newRequest(op, input, output)
4309	return
4310}
4311
4312// StartImport API operation for Amazon Lex Model Building Service.
4313//
4314// Starts a job to import a resource to Amazon Lex.
4315//
4316// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4317// with awserr.Error's Code and Message methods to get detailed information about
4318// the error.
4319//
4320// See the AWS API reference guide for Amazon Lex Model Building Service's
4321// API operation StartImport for usage and error information.
4322//
4323// Returned Error Types:
4324//   * LimitExceededException
4325//   The request exceeded a limit. Try your request again.
4326//
4327//   * InternalFailureException
4328//   An internal Amazon Lex error occurred. Try your request again.
4329//
4330//   * BadRequestException
4331//   The request is not well formed. For example, a value is invalid or a required
4332//   field is missing. Check the field values, and try again.
4333//
4334// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/StartImport
4335func (c *LexModelBuildingService) StartImport(input *StartImportInput) (*StartImportOutput, error) {
4336	req, out := c.StartImportRequest(input)
4337	return out, req.Send()
4338}
4339
4340// StartImportWithContext is the same as StartImport with the addition of
4341// the ability to pass a context and additional request options.
4342//
4343// See StartImport for details on how to use this API operation.
4344//
4345// The context must be non-nil and will be used for request cancellation. If
4346// the context is nil a panic will occur. In the future the SDK may create
4347// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4348// for more information on using Contexts.
4349func (c *LexModelBuildingService) StartImportWithContext(ctx aws.Context, input *StartImportInput, opts ...request.Option) (*StartImportOutput, error) {
4350	req, out := c.StartImportRequest(input)
4351	req.SetContext(ctx)
4352	req.ApplyOptions(opts...)
4353	return out, req.Send()
4354}
4355
4356const opTagResource = "TagResource"
4357
4358// TagResourceRequest generates a "aws/request.Request" representing the
4359// client's request for the TagResource operation. The "output" return
4360// value will be populated with the request's response once the request completes
4361// successfully.
4362//
4363// Use "Send" method on the returned Request to send the API call to the service.
4364// the "output" return value is not valid until after Send returns without error.
4365//
4366// See TagResource for more information on using the TagResource
4367// API call, and error handling.
4368//
4369// This method is useful when you want to inject custom logic or configuration
4370// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4371//
4372//
4373//    // Example sending a request using the TagResourceRequest method.
4374//    req, resp := client.TagResourceRequest(params)
4375//
4376//    err := req.Send()
4377//    if err == nil { // resp is now filled
4378//        fmt.Println(resp)
4379//    }
4380//
4381// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/TagResource
4382func (c *LexModelBuildingService) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
4383	op := &request.Operation{
4384		Name:       opTagResource,
4385		HTTPMethod: "POST",
4386		HTTPPath:   "/tags/{resourceArn}",
4387	}
4388
4389	if input == nil {
4390		input = &TagResourceInput{}
4391	}
4392
4393	output = &TagResourceOutput{}
4394	req = c.newRequest(op, input, output)
4395	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4396	return
4397}
4398
4399// TagResource API operation for Amazon Lex Model Building Service.
4400//
4401// Adds the specified tags to the specified resource. If a tag key already exists,
4402// the existing value is replaced with the new value.
4403//
4404// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4405// with awserr.Error's Code and Message methods to get detailed information about
4406// the error.
4407//
4408// See the AWS API reference guide for Amazon Lex Model Building Service's
4409// API operation TagResource for usage and error information.
4410//
4411// Returned Error Types:
4412//   * NotFoundException
4413//   The resource specified in the request was not found. Check the resource and
4414//   try again.
4415//
4416//   * BadRequestException
4417//   The request is not well formed. For example, a value is invalid or a required
4418//   field is missing. Check the field values, and try again.
4419//
4420//   * ConflictException
4421//   There was a conflict processing the request. Try your request again.
4422//
4423//   * InternalFailureException
4424//   An internal Amazon Lex error occurred. Try your request again.
4425//
4426//   * LimitExceededException
4427//   The request exceeded a limit. Try your request again.
4428//
4429// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/TagResource
4430func (c *LexModelBuildingService) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
4431	req, out := c.TagResourceRequest(input)
4432	return out, req.Send()
4433}
4434
4435// TagResourceWithContext is the same as TagResource with the addition of
4436// the ability to pass a context and additional request options.
4437//
4438// See TagResource for details on how to use this API operation.
4439//
4440// The context must be non-nil and will be used for request cancellation. If
4441// the context is nil a panic will occur. In the future the SDK may create
4442// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4443// for more information on using Contexts.
4444func (c *LexModelBuildingService) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
4445	req, out := c.TagResourceRequest(input)
4446	req.SetContext(ctx)
4447	req.ApplyOptions(opts...)
4448	return out, req.Send()
4449}
4450
4451const opUntagResource = "UntagResource"
4452
4453// UntagResourceRequest generates a "aws/request.Request" representing the
4454// client's request for the UntagResource operation. The "output" return
4455// value will be populated with the request's response once the request completes
4456// successfully.
4457//
4458// Use "Send" method on the returned Request to send the API call to the service.
4459// the "output" return value is not valid until after Send returns without error.
4460//
4461// See UntagResource for more information on using the UntagResource
4462// API call, and error handling.
4463//
4464// This method is useful when you want to inject custom logic or configuration
4465// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4466//
4467//
4468//    // Example sending a request using the UntagResourceRequest method.
4469//    req, resp := client.UntagResourceRequest(params)
4470//
4471//    err := req.Send()
4472//    if err == nil { // resp is now filled
4473//        fmt.Println(resp)
4474//    }
4475//
4476// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/UntagResource
4477func (c *LexModelBuildingService) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
4478	op := &request.Operation{
4479		Name:       opUntagResource,
4480		HTTPMethod: "DELETE",
4481		HTTPPath:   "/tags/{resourceArn}",
4482	}
4483
4484	if input == nil {
4485		input = &UntagResourceInput{}
4486	}
4487
4488	output = &UntagResourceOutput{}
4489	req = c.newRequest(op, input, output)
4490	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4491	return
4492}
4493
4494// UntagResource API operation for Amazon Lex Model Building Service.
4495//
4496// Removes tags from a bot, bot alias or bot channel.
4497//
4498// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4499// with awserr.Error's Code and Message methods to get detailed information about
4500// the error.
4501//
4502// See the AWS API reference guide for Amazon Lex Model Building Service's
4503// API operation UntagResource for usage and error information.
4504//
4505// Returned Error Types:
4506//   * NotFoundException
4507//   The resource specified in the request was not found. Check the resource and
4508//   try again.
4509//
4510//   * BadRequestException
4511//   The request is not well formed. For example, a value is invalid or a required
4512//   field is missing. Check the field values, and try again.
4513//
4514//   * ConflictException
4515//   There was a conflict processing the request. Try your request again.
4516//
4517//   * InternalFailureException
4518//   An internal Amazon Lex error occurred. Try your request again.
4519//
4520//   * LimitExceededException
4521//   The request exceeded a limit. Try your request again.
4522//
4523// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/UntagResource
4524func (c *LexModelBuildingService) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
4525	req, out := c.UntagResourceRequest(input)
4526	return out, req.Send()
4527}
4528
4529// UntagResourceWithContext is the same as UntagResource with the addition of
4530// the ability to pass a context and additional request options.
4531//
4532// See UntagResource for details on how to use this API operation.
4533//
4534// The context must be non-nil and will be used for request cancellation. If
4535// the context is nil a panic will occur. In the future the SDK may create
4536// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4537// for more information on using Contexts.
4538func (c *LexModelBuildingService) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
4539	req, out := c.UntagResourceRequest(input)
4540	req.SetContext(ctx)
4541	req.ApplyOptions(opts...)
4542	return out, req.Send()
4543}
4544
4545// The request is not well formed. For example, a value is invalid or a required
4546// field is missing. Check the field values, and try again.
4547type BadRequestException struct {
4548	_            struct{}                  `type:"structure"`
4549	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4550
4551	Message_ *string `locationName:"message" type:"string"`
4552}
4553
4554// String returns the string representation
4555func (s BadRequestException) String() string {
4556	return awsutil.Prettify(s)
4557}
4558
4559// GoString returns the string representation
4560func (s BadRequestException) GoString() string {
4561	return s.String()
4562}
4563
4564func newErrorBadRequestException(v protocol.ResponseMetadata) error {
4565	return &BadRequestException{
4566		RespMetadata: v,
4567	}
4568}
4569
4570// Code returns the exception type name.
4571func (s *BadRequestException) Code() string {
4572	return "BadRequestException"
4573}
4574
4575// Message returns the exception's message.
4576func (s *BadRequestException) Message() string {
4577	if s.Message_ != nil {
4578		return *s.Message_
4579	}
4580	return ""
4581}
4582
4583// OrigErr always returns nil, satisfies awserr.Error interface.
4584func (s *BadRequestException) OrigErr() error {
4585	return nil
4586}
4587
4588func (s *BadRequestException) Error() string {
4589	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4590}
4591
4592// Status code returns the HTTP status code for the request's response error.
4593func (s *BadRequestException) StatusCode() int {
4594	return s.RespMetadata.StatusCode
4595}
4596
4597// RequestID returns the service's response RequestID for request.
4598func (s *BadRequestException) RequestID() string {
4599	return s.RespMetadata.RequestID
4600}
4601
4602// Provides information about a bot alias.
4603type BotAliasMetadata struct {
4604	_ struct{} `type:"structure"`
4605
4606	// The name of the bot to which the alias points.
4607	BotName *string `locationName:"botName" min:"2" type:"string"`
4608
4609	// The version of the Amazon Lex bot to which the alias points.
4610	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
4611
4612	// Checksum of the bot alias.
4613	Checksum *string `locationName:"checksum" type:"string"`
4614
4615	// Settings that determine how Amazon Lex uses conversation logs for the alias.
4616	ConversationLogs *ConversationLogsResponse `locationName:"conversationLogs" type:"structure"`
4617
4618	// The date that the bot alias was created.
4619	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
4620
4621	// A description of the bot alias.
4622	Description *string `locationName:"description" type:"string"`
4623
4624	// The date that the bot alias was updated. When you create a resource, the
4625	// creation date and last updated date are the same.
4626	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
4627
4628	// The name of the bot alias.
4629	Name *string `locationName:"name" min:"1" type:"string"`
4630}
4631
4632// String returns the string representation
4633func (s BotAliasMetadata) String() string {
4634	return awsutil.Prettify(s)
4635}
4636
4637// GoString returns the string representation
4638func (s BotAliasMetadata) GoString() string {
4639	return s.String()
4640}
4641
4642// SetBotName sets the BotName field's value.
4643func (s *BotAliasMetadata) SetBotName(v string) *BotAliasMetadata {
4644	s.BotName = &v
4645	return s
4646}
4647
4648// SetBotVersion sets the BotVersion field's value.
4649func (s *BotAliasMetadata) SetBotVersion(v string) *BotAliasMetadata {
4650	s.BotVersion = &v
4651	return s
4652}
4653
4654// SetChecksum sets the Checksum field's value.
4655func (s *BotAliasMetadata) SetChecksum(v string) *BotAliasMetadata {
4656	s.Checksum = &v
4657	return s
4658}
4659
4660// SetConversationLogs sets the ConversationLogs field's value.
4661func (s *BotAliasMetadata) SetConversationLogs(v *ConversationLogsResponse) *BotAliasMetadata {
4662	s.ConversationLogs = v
4663	return s
4664}
4665
4666// SetCreatedDate sets the CreatedDate field's value.
4667func (s *BotAliasMetadata) SetCreatedDate(v time.Time) *BotAliasMetadata {
4668	s.CreatedDate = &v
4669	return s
4670}
4671
4672// SetDescription sets the Description field's value.
4673func (s *BotAliasMetadata) SetDescription(v string) *BotAliasMetadata {
4674	s.Description = &v
4675	return s
4676}
4677
4678// SetLastUpdatedDate sets the LastUpdatedDate field's value.
4679func (s *BotAliasMetadata) SetLastUpdatedDate(v time.Time) *BotAliasMetadata {
4680	s.LastUpdatedDate = &v
4681	return s
4682}
4683
4684// SetName sets the Name field's value.
4685func (s *BotAliasMetadata) SetName(v string) *BotAliasMetadata {
4686	s.Name = &v
4687	return s
4688}
4689
4690// Represents an association between an Amazon Lex bot and an external messaging
4691// platform.
4692type BotChannelAssociation struct {
4693	_ struct{} `type:"structure"`
4694
4695	// An alias pointing to the specific version of the Amazon Lex bot to which
4696	// this association is being made.
4697	BotAlias *string `locationName:"botAlias" min:"1" type:"string"`
4698
4699	// Provides information necessary to communicate with the messaging platform.
4700	BotConfiguration map[string]*string `locationName:"botConfiguration" min:"1" type:"map" sensitive:"true"`
4701
4702	// The name of the Amazon Lex bot to which this association is being made.
4703	//
4704	// Currently, Amazon Lex supports associations with Facebook and Slack, and
4705	// Twilio.
4706	BotName *string `locationName:"botName" min:"2" type:"string"`
4707
4708	// The date that the association between the Amazon Lex bot and the channel
4709	// was created.
4710	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
4711
4712	// A text description of the association you are creating.
4713	Description *string `locationName:"description" type:"string"`
4714
4715	// If status is FAILED, Amazon Lex provides the reason that it failed to create
4716	// the association.
4717	FailureReason *string `locationName:"failureReason" type:"string"`
4718
4719	// The name of the association between the bot and the channel.
4720	Name *string `locationName:"name" min:"1" type:"string"`
4721
4722	// The status of the bot channel.
4723	//
4724	//    * CREATED - The channel has been created and is ready for use.
4725	//
4726	//    * IN_PROGRESS - Channel creation is in progress.
4727	//
4728	//    * FAILED - There was an error creating the channel. For information about
4729	//    the reason for the failure, see the failureReason field.
4730	Status *string `locationName:"status" type:"string" enum:"ChannelStatus"`
4731
4732	// Specifies the type of association by indicating the type of channel being
4733	// established between the Amazon Lex bot and the external messaging platform.
4734	Type *string `locationName:"type" type:"string" enum:"ChannelType"`
4735}
4736
4737// String returns the string representation
4738func (s BotChannelAssociation) String() string {
4739	return awsutil.Prettify(s)
4740}
4741
4742// GoString returns the string representation
4743func (s BotChannelAssociation) GoString() string {
4744	return s.String()
4745}
4746
4747// SetBotAlias sets the BotAlias field's value.
4748func (s *BotChannelAssociation) SetBotAlias(v string) *BotChannelAssociation {
4749	s.BotAlias = &v
4750	return s
4751}
4752
4753// SetBotConfiguration sets the BotConfiguration field's value.
4754func (s *BotChannelAssociation) SetBotConfiguration(v map[string]*string) *BotChannelAssociation {
4755	s.BotConfiguration = v
4756	return s
4757}
4758
4759// SetBotName sets the BotName field's value.
4760func (s *BotChannelAssociation) SetBotName(v string) *BotChannelAssociation {
4761	s.BotName = &v
4762	return s
4763}
4764
4765// SetCreatedDate sets the CreatedDate field's value.
4766func (s *BotChannelAssociation) SetCreatedDate(v time.Time) *BotChannelAssociation {
4767	s.CreatedDate = &v
4768	return s
4769}
4770
4771// SetDescription sets the Description field's value.
4772func (s *BotChannelAssociation) SetDescription(v string) *BotChannelAssociation {
4773	s.Description = &v
4774	return s
4775}
4776
4777// SetFailureReason sets the FailureReason field's value.
4778func (s *BotChannelAssociation) SetFailureReason(v string) *BotChannelAssociation {
4779	s.FailureReason = &v
4780	return s
4781}
4782
4783// SetName sets the Name field's value.
4784func (s *BotChannelAssociation) SetName(v string) *BotChannelAssociation {
4785	s.Name = &v
4786	return s
4787}
4788
4789// SetStatus sets the Status field's value.
4790func (s *BotChannelAssociation) SetStatus(v string) *BotChannelAssociation {
4791	s.Status = &v
4792	return s
4793}
4794
4795// SetType sets the Type field's value.
4796func (s *BotChannelAssociation) SetType(v string) *BotChannelAssociation {
4797	s.Type = &v
4798	return s
4799}
4800
4801// Provides information about a bot. .
4802type BotMetadata struct {
4803	_ struct{} `type:"structure"`
4804
4805	// The date that the bot was created.
4806	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
4807
4808	// A description of the bot.
4809	Description *string `locationName:"description" type:"string"`
4810
4811	// The date that the bot was updated. When you create a bot, the creation date
4812	// and last updated date are the same.
4813	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
4814
4815	// The name of the bot.
4816	Name *string `locationName:"name" min:"2" type:"string"`
4817
4818	// The status of the bot.
4819	Status *string `locationName:"status" type:"string" enum:"Status"`
4820
4821	// The version of the bot. For a new bot, the version is always $LATEST.
4822	Version *string `locationName:"version" min:"1" type:"string"`
4823}
4824
4825// String returns the string representation
4826func (s BotMetadata) String() string {
4827	return awsutil.Prettify(s)
4828}
4829
4830// GoString returns the string representation
4831func (s BotMetadata) GoString() string {
4832	return s.String()
4833}
4834
4835// SetCreatedDate sets the CreatedDate field's value.
4836func (s *BotMetadata) SetCreatedDate(v time.Time) *BotMetadata {
4837	s.CreatedDate = &v
4838	return s
4839}
4840
4841// SetDescription sets the Description field's value.
4842func (s *BotMetadata) SetDescription(v string) *BotMetadata {
4843	s.Description = &v
4844	return s
4845}
4846
4847// SetLastUpdatedDate sets the LastUpdatedDate field's value.
4848func (s *BotMetadata) SetLastUpdatedDate(v time.Time) *BotMetadata {
4849	s.LastUpdatedDate = &v
4850	return s
4851}
4852
4853// SetName sets the Name field's value.
4854func (s *BotMetadata) SetName(v string) *BotMetadata {
4855	s.Name = &v
4856	return s
4857}
4858
4859// SetStatus sets the Status field's value.
4860func (s *BotMetadata) SetStatus(v string) *BotMetadata {
4861	s.Status = &v
4862	return s
4863}
4864
4865// SetVersion sets the Version field's value.
4866func (s *BotMetadata) SetVersion(v string) *BotMetadata {
4867	s.Version = &v
4868	return s
4869}
4870
4871// Provides metadata for a built-in intent.
4872type BuiltinIntentMetadata struct {
4873	_ struct{} `type:"structure"`
4874
4875	// A unique identifier for the built-in intent. To find the signature for an
4876	// intent, see Standard Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
4877	// in the Alexa Skills Kit.
4878	Signature *string `locationName:"signature" type:"string"`
4879
4880	// A list of identifiers for the locales that the intent supports.
4881	SupportedLocales []*string `locationName:"supportedLocales" type:"list"`
4882}
4883
4884// String returns the string representation
4885func (s BuiltinIntentMetadata) String() string {
4886	return awsutil.Prettify(s)
4887}
4888
4889// GoString returns the string representation
4890func (s BuiltinIntentMetadata) GoString() string {
4891	return s.String()
4892}
4893
4894// SetSignature sets the Signature field's value.
4895func (s *BuiltinIntentMetadata) SetSignature(v string) *BuiltinIntentMetadata {
4896	s.Signature = &v
4897	return s
4898}
4899
4900// SetSupportedLocales sets the SupportedLocales field's value.
4901func (s *BuiltinIntentMetadata) SetSupportedLocales(v []*string) *BuiltinIntentMetadata {
4902	s.SupportedLocales = v
4903	return s
4904}
4905
4906// Provides information about a slot used in a built-in intent.
4907type BuiltinIntentSlot struct {
4908	_ struct{} `type:"structure"`
4909
4910	// A list of the slots defined for the intent.
4911	Name *string `locationName:"name" type:"string"`
4912}
4913
4914// String returns the string representation
4915func (s BuiltinIntentSlot) String() string {
4916	return awsutil.Prettify(s)
4917}
4918
4919// GoString returns the string representation
4920func (s BuiltinIntentSlot) GoString() string {
4921	return s.String()
4922}
4923
4924// SetName sets the Name field's value.
4925func (s *BuiltinIntentSlot) SetName(v string) *BuiltinIntentSlot {
4926	s.Name = &v
4927	return s
4928}
4929
4930// Provides information about a built in slot type.
4931type BuiltinSlotTypeMetadata struct {
4932	_ struct{} `type:"structure"`
4933
4934	// A unique identifier for the built-in slot type. To find the signature for
4935	// 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)
4936	// in the Alexa Skills Kit.
4937	Signature *string `locationName:"signature" type:"string"`
4938
4939	// A list of target locales for the slot.
4940	SupportedLocales []*string `locationName:"supportedLocales" type:"list"`
4941}
4942
4943// String returns the string representation
4944func (s BuiltinSlotTypeMetadata) String() string {
4945	return awsutil.Prettify(s)
4946}
4947
4948// GoString returns the string representation
4949func (s BuiltinSlotTypeMetadata) GoString() string {
4950	return s.String()
4951}
4952
4953// SetSignature sets the Signature field's value.
4954func (s *BuiltinSlotTypeMetadata) SetSignature(v string) *BuiltinSlotTypeMetadata {
4955	s.Signature = &v
4956	return s
4957}
4958
4959// SetSupportedLocales sets the SupportedLocales field's value.
4960func (s *BuiltinSlotTypeMetadata) SetSupportedLocales(v []*string) *BuiltinSlotTypeMetadata {
4961	s.SupportedLocales = v
4962	return s
4963}
4964
4965// Specifies a Lambda function that verifies requests to a bot or fulfills the
4966// user's request to a bot..
4967type CodeHook struct {
4968	_ struct{} `type:"structure"`
4969
4970	// The version of the request-response that you want Amazon Lex to use to invoke
4971	// your Lambda function. For more information, see using-lambda.
4972	//
4973	// MessageVersion is a required field
4974	MessageVersion *string `locationName:"messageVersion" min:"1" type:"string" required:"true"`
4975
4976	// The Amazon Resource Name (ARN) of the Lambda function.
4977	//
4978	// Uri is a required field
4979	Uri *string `locationName:"uri" min:"20" type:"string" required:"true"`
4980}
4981
4982// String returns the string representation
4983func (s CodeHook) String() string {
4984	return awsutil.Prettify(s)
4985}
4986
4987// GoString returns the string representation
4988func (s CodeHook) GoString() string {
4989	return s.String()
4990}
4991
4992// Validate inspects the fields of the type to determine if they are valid.
4993func (s *CodeHook) Validate() error {
4994	invalidParams := request.ErrInvalidParams{Context: "CodeHook"}
4995	if s.MessageVersion == nil {
4996		invalidParams.Add(request.NewErrParamRequired("MessageVersion"))
4997	}
4998	if s.MessageVersion != nil && len(*s.MessageVersion) < 1 {
4999		invalidParams.Add(request.NewErrParamMinLen("MessageVersion", 1))
5000	}
5001	if s.Uri == nil {
5002		invalidParams.Add(request.NewErrParamRequired("Uri"))
5003	}
5004	if s.Uri != nil && len(*s.Uri) < 20 {
5005		invalidParams.Add(request.NewErrParamMinLen("Uri", 20))
5006	}
5007
5008	if invalidParams.Len() > 0 {
5009		return invalidParams
5010	}
5011	return nil
5012}
5013
5014// SetMessageVersion sets the MessageVersion field's value.
5015func (s *CodeHook) SetMessageVersion(v string) *CodeHook {
5016	s.MessageVersion = &v
5017	return s
5018}
5019
5020// SetUri sets the Uri field's value.
5021func (s *CodeHook) SetUri(v string) *CodeHook {
5022	s.Uri = &v
5023	return s
5024}
5025
5026// There was a conflict processing the request. Try your request again.
5027type ConflictException struct {
5028	_            struct{}                  `type:"structure"`
5029	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5030
5031	Message_ *string `locationName:"message" type:"string"`
5032}
5033
5034// String returns the string representation
5035func (s ConflictException) String() string {
5036	return awsutil.Prettify(s)
5037}
5038
5039// GoString returns the string representation
5040func (s ConflictException) GoString() string {
5041	return s.String()
5042}
5043
5044func newErrorConflictException(v protocol.ResponseMetadata) error {
5045	return &ConflictException{
5046		RespMetadata: v,
5047	}
5048}
5049
5050// Code returns the exception type name.
5051func (s *ConflictException) Code() string {
5052	return "ConflictException"
5053}
5054
5055// Message returns the exception's message.
5056func (s *ConflictException) Message() string {
5057	if s.Message_ != nil {
5058		return *s.Message_
5059	}
5060	return ""
5061}
5062
5063// OrigErr always returns nil, satisfies awserr.Error interface.
5064func (s *ConflictException) OrigErr() error {
5065	return nil
5066}
5067
5068func (s *ConflictException) Error() string {
5069	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5070}
5071
5072// Status code returns the HTTP status code for the request's response error.
5073func (s *ConflictException) StatusCode() int {
5074	return s.RespMetadata.StatusCode
5075}
5076
5077// RequestID returns the service's response RequestID for request.
5078func (s *ConflictException) RequestID() string {
5079	return s.RespMetadata.RequestID
5080}
5081
5082// Provides the settings needed for conversation logs.
5083type ConversationLogsRequest struct {
5084	_ struct{} `type:"structure"`
5085
5086	// The Amazon Resource Name (ARN) of an IAM role with permission to write to
5087	// your CloudWatch Logs for text logs and your S3 bucket for audio logs. If
5088	// audio encryption is enabled, this role also provides access permission for
5089	// the AWS KMS key used for encrypting audio logs. For more information, see
5090	// Creating an IAM Role and Policy for Conversation Logs (https://docs.aws.amazon.com/lex/latest/dg/conversation-logs-role-and-policy.html).
5091	//
5092	// IamRoleArn is a required field
5093	IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string" required:"true"`
5094
5095	// The settings for your conversation logs. You can log the conversation text,
5096	// conversation audio, or both.
5097	//
5098	// LogSettings is a required field
5099	LogSettings []*LogSettingsRequest `locationName:"logSettings" type:"list" required:"true"`
5100}
5101
5102// String returns the string representation
5103func (s ConversationLogsRequest) String() string {
5104	return awsutil.Prettify(s)
5105}
5106
5107// GoString returns the string representation
5108func (s ConversationLogsRequest) GoString() string {
5109	return s.String()
5110}
5111
5112// Validate inspects the fields of the type to determine if they are valid.
5113func (s *ConversationLogsRequest) Validate() error {
5114	invalidParams := request.ErrInvalidParams{Context: "ConversationLogsRequest"}
5115	if s.IamRoleArn == nil {
5116		invalidParams.Add(request.NewErrParamRequired("IamRoleArn"))
5117	}
5118	if s.IamRoleArn != nil && len(*s.IamRoleArn) < 20 {
5119		invalidParams.Add(request.NewErrParamMinLen("IamRoleArn", 20))
5120	}
5121	if s.LogSettings == nil {
5122		invalidParams.Add(request.NewErrParamRequired("LogSettings"))
5123	}
5124	if s.LogSettings != nil {
5125		for i, v := range s.LogSettings {
5126			if v == nil {
5127				continue
5128			}
5129			if err := v.Validate(); err != nil {
5130				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LogSettings", i), err.(request.ErrInvalidParams))
5131			}
5132		}
5133	}
5134
5135	if invalidParams.Len() > 0 {
5136		return invalidParams
5137	}
5138	return nil
5139}
5140
5141// SetIamRoleArn sets the IamRoleArn field's value.
5142func (s *ConversationLogsRequest) SetIamRoleArn(v string) *ConversationLogsRequest {
5143	s.IamRoleArn = &v
5144	return s
5145}
5146
5147// SetLogSettings sets the LogSettings field's value.
5148func (s *ConversationLogsRequest) SetLogSettings(v []*LogSettingsRequest) *ConversationLogsRequest {
5149	s.LogSettings = v
5150	return s
5151}
5152
5153// Contains information about conversation log settings.
5154type ConversationLogsResponse struct {
5155	_ struct{} `type:"structure"`
5156
5157	// The Amazon Resource Name (ARN) of the IAM role used to write your logs to
5158	// CloudWatch Logs or an S3 bucket.
5159	IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string"`
5160
5161	// The settings for your conversation logs. You can log text, audio, or both.
5162	LogSettings []*LogSettingsResponse `locationName:"logSettings" type:"list"`
5163}
5164
5165// String returns the string representation
5166func (s ConversationLogsResponse) String() string {
5167	return awsutil.Prettify(s)
5168}
5169
5170// GoString returns the string representation
5171func (s ConversationLogsResponse) GoString() string {
5172	return s.String()
5173}
5174
5175// SetIamRoleArn sets the IamRoleArn field's value.
5176func (s *ConversationLogsResponse) SetIamRoleArn(v string) *ConversationLogsResponse {
5177	s.IamRoleArn = &v
5178	return s
5179}
5180
5181// SetLogSettings sets the LogSettings field's value.
5182func (s *ConversationLogsResponse) SetLogSettings(v []*LogSettingsResponse) *ConversationLogsResponse {
5183	s.LogSettings = v
5184	return s
5185}
5186
5187type CreateBotVersionInput struct {
5188	_ struct{} `type:"structure"`
5189
5190	// Identifies a specific revision of the $LATEST version of the bot. If you
5191	// specify a checksum and the $LATEST version of the bot has a different checksum,
5192	// a PreconditionFailedException exception is returned and Amazon Lex doesn't
5193	// publish a new version. If you don't specify a checksum, Amazon Lex publishes
5194	// the $LATEST version.
5195	Checksum *string `locationName:"checksum" type:"string"`
5196
5197	// The name of the bot that you want to create a new version of. The name is
5198	// case sensitive.
5199	//
5200	// Name is a required field
5201	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
5202}
5203
5204// String returns the string representation
5205func (s CreateBotVersionInput) String() string {
5206	return awsutil.Prettify(s)
5207}
5208
5209// GoString returns the string representation
5210func (s CreateBotVersionInput) GoString() string {
5211	return s.String()
5212}
5213
5214// Validate inspects the fields of the type to determine if they are valid.
5215func (s *CreateBotVersionInput) Validate() error {
5216	invalidParams := request.ErrInvalidParams{Context: "CreateBotVersionInput"}
5217	if s.Name == nil {
5218		invalidParams.Add(request.NewErrParamRequired("Name"))
5219	}
5220	if s.Name != nil && len(*s.Name) < 2 {
5221		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
5222	}
5223
5224	if invalidParams.Len() > 0 {
5225		return invalidParams
5226	}
5227	return nil
5228}
5229
5230// SetChecksum sets the Checksum field's value.
5231func (s *CreateBotVersionInput) SetChecksum(v string) *CreateBotVersionInput {
5232	s.Checksum = &v
5233	return s
5234}
5235
5236// SetName sets the Name field's value.
5237func (s *CreateBotVersionInput) SetName(v string) *CreateBotVersionInput {
5238	s.Name = &v
5239	return s
5240}
5241
5242type CreateBotVersionOutput struct {
5243	_ struct{} `type:"structure"`
5244
5245	// The message that Amazon Lex uses to cancel a conversation. For more information,
5246	// see PutBot.
5247	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
5248
5249	// Checksum identifying the version of the bot that was created.
5250	Checksum *string `locationName:"checksum" type:"string"`
5251
5252	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
5253	// you must specify whether your use of Amazon Lex is related to a website,
5254	// program, or other application that is directed or targeted, in whole or in
5255	// part, to children under age 13 and subject to the Children's Online Privacy
5256	// Protection Act (COPPA) by specifying true or false in the childDirected field.
5257	// By specifying true in the childDirected field, you confirm that your use
5258	// of Amazon Lex is related to a website, program, or other application that
5259	// is directed or targeted, in whole or in part, to children under age 13 and
5260	// subject to COPPA. By specifying false in the childDirected field, you confirm
5261	// that your use of Amazon Lex is not related to a website, program, or other
5262	// application that is directed or targeted, in whole or in part, to children
5263	// under age 13 and subject to COPPA. You may not specify a default value for
5264	// the childDirected field that does not accurately reflect whether your use
5265	// of Amazon Lex is related to a website, program, or other application that
5266	// is directed or targeted, in whole or in part, to children under age 13 and
5267	// subject to COPPA.
5268	//
5269	// If your use of Amazon Lex relates to a website, program, or other application
5270	// that is directed in whole or in part, to children under age 13, you must
5271	// obtain any required verifiable parental consent under COPPA. For information
5272	// regarding the use of Amazon Lex in connection with websites, programs, or
5273	// other applications that are directed or targeted, in whole or in part, to
5274	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
5275	ChildDirected *bool `locationName:"childDirected" type:"boolean"`
5276
5277	// The message that Amazon Lex uses when it doesn't understand the user's request.
5278	// For more information, see PutBot.
5279	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
5280
5281	// The date when the bot version was created.
5282	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
5283
5284	// A description of the bot.
5285	Description *string `locationName:"description" type:"string"`
5286
5287	// Indicates whether utterances entered by the user should be sent to Amazon
5288	// Comprehend for sentiment analysis.
5289	DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"`
5290
5291	// Indicates whether the bot uses accuracy improvements. true indicates that
5292	// the bot is using the improvements, otherwise, false.
5293	EnableModelImprovements *bool `locationName:"enableModelImprovements" type:"boolean"`
5294
5295	// If status is FAILED, Amazon Lex provides the reason that it failed to build
5296	// the bot.
5297	FailureReason *string `locationName:"failureReason" type:"string"`
5298
5299	// The maximum time in seconds that Amazon Lex retains the data gathered in
5300	// a conversation. For more information, see PutBot.
5301	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
5302
5303	// An array of Intent objects. For more information, see PutBot.
5304	Intents []*Intent `locationName:"intents" type:"list"`
5305
5306	// The date when the $LATEST version of this bot was updated.
5307	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
5308
5309	// Specifies the target locale for the bot.
5310	Locale *string `locationName:"locale" type:"string" enum:"Locale"`
5311
5312	// The name of the bot.
5313	Name *string `locationName:"name" min:"2" type:"string"`
5314
5315	// When you send a request to create or update a bot, Amazon Lex sets the status
5316	// response element to BUILDING. After Amazon Lex builds the bot, it sets status
5317	// to READY. If Amazon Lex can't build the bot, it sets status to FAILED. Amazon
5318	// Lex returns the reason for the failure in the failureReason response element.
5319	Status *string `locationName:"status" type:"string" enum:"Status"`
5320
5321	// The version of the bot.
5322	Version *string `locationName:"version" min:"1" type:"string"`
5323
5324	// The Amazon Polly voice ID that Amazon Lex uses for voice interactions with
5325	// the user.
5326	VoiceId *string `locationName:"voiceId" type:"string"`
5327}
5328
5329// String returns the string representation
5330func (s CreateBotVersionOutput) String() string {
5331	return awsutil.Prettify(s)
5332}
5333
5334// GoString returns the string representation
5335func (s CreateBotVersionOutput) GoString() string {
5336	return s.String()
5337}
5338
5339// SetAbortStatement sets the AbortStatement field's value.
5340func (s *CreateBotVersionOutput) SetAbortStatement(v *Statement) *CreateBotVersionOutput {
5341	s.AbortStatement = v
5342	return s
5343}
5344
5345// SetChecksum sets the Checksum field's value.
5346func (s *CreateBotVersionOutput) SetChecksum(v string) *CreateBotVersionOutput {
5347	s.Checksum = &v
5348	return s
5349}
5350
5351// SetChildDirected sets the ChildDirected field's value.
5352func (s *CreateBotVersionOutput) SetChildDirected(v bool) *CreateBotVersionOutput {
5353	s.ChildDirected = &v
5354	return s
5355}
5356
5357// SetClarificationPrompt sets the ClarificationPrompt field's value.
5358func (s *CreateBotVersionOutput) SetClarificationPrompt(v *Prompt) *CreateBotVersionOutput {
5359	s.ClarificationPrompt = v
5360	return s
5361}
5362
5363// SetCreatedDate sets the CreatedDate field's value.
5364func (s *CreateBotVersionOutput) SetCreatedDate(v time.Time) *CreateBotVersionOutput {
5365	s.CreatedDate = &v
5366	return s
5367}
5368
5369// SetDescription sets the Description field's value.
5370func (s *CreateBotVersionOutput) SetDescription(v string) *CreateBotVersionOutput {
5371	s.Description = &v
5372	return s
5373}
5374
5375// SetDetectSentiment sets the DetectSentiment field's value.
5376func (s *CreateBotVersionOutput) SetDetectSentiment(v bool) *CreateBotVersionOutput {
5377	s.DetectSentiment = &v
5378	return s
5379}
5380
5381// SetEnableModelImprovements sets the EnableModelImprovements field's value.
5382func (s *CreateBotVersionOutput) SetEnableModelImprovements(v bool) *CreateBotVersionOutput {
5383	s.EnableModelImprovements = &v
5384	return s
5385}
5386
5387// SetFailureReason sets the FailureReason field's value.
5388func (s *CreateBotVersionOutput) SetFailureReason(v string) *CreateBotVersionOutput {
5389	s.FailureReason = &v
5390	return s
5391}
5392
5393// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
5394func (s *CreateBotVersionOutput) SetIdleSessionTTLInSeconds(v int64) *CreateBotVersionOutput {
5395	s.IdleSessionTTLInSeconds = &v
5396	return s
5397}
5398
5399// SetIntents sets the Intents field's value.
5400func (s *CreateBotVersionOutput) SetIntents(v []*Intent) *CreateBotVersionOutput {
5401	s.Intents = v
5402	return s
5403}
5404
5405// SetLastUpdatedDate sets the LastUpdatedDate field's value.
5406func (s *CreateBotVersionOutput) SetLastUpdatedDate(v time.Time) *CreateBotVersionOutput {
5407	s.LastUpdatedDate = &v
5408	return s
5409}
5410
5411// SetLocale sets the Locale field's value.
5412func (s *CreateBotVersionOutput) SetLocale(v string) *CreateBotVersionOutput {
5413	s.Locale = &v
5414	return s
5415}
5416
5417// SetName sets the Name field's value.
5418func (s *CreateBotVersionOutput) SetName(v string) *CreateBotVersionOutput {
5419	s.Name = &v
5420	return s
5421}
5422
5423// SetStatus sets the Status field's value.
5424func (s *CreateBotVersionOutput) SetStatus(v string) *CreateBotVersionOutput {
5425	s.Status = &v
5426	return s
5427}
5428
5429// SetVersion sets the Version field's value.
5430func (s *CreateBotVersionOutput) SetVersion(v string) *CreateBotVersionOutput {
5431	s.Version = &v
5432	return s
5433}
5434
5435// SetVoiceId sets the VoiceId field's value.
5436func (s *CreateBotVersionOutput) SetVoiceId(v string) *CreateBotVersionOutput {
5437	s.VoiceId = &v
5438	return s
5439}
5440
5441type CreateIntentVersionInput struct {
5442	_ struct{} `type:"structure"`
5443
5444	// Checksum of the $LATEST version of the intent that should be used to create
5445	// the new version. If you specify a checksum and the $LATEST version of the
5446	// intent has a different checksum, Amazon Lex returns a PreconditionFailedException
5447	// exception and doesn't publish a new version. If you don't specify a checksum,
5448	// Amazon Lex publishes the $LATEST version.
5449	Checksum *string `locationName:"checksum" type:"string"`
5450
5451	// The name of the intent that you want to create a new version of. The name
5452	// is case sensitive.
5453	//
5454	// Name is a required field
5455	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5456}
5457
5458// String returns the string representation
5459func (s CreateIntentVersionInput) String() string {
5460	return awsutil.Prettify(s)
5461}
5462
5463// GoString returns the string representation
5464func (s CreateIntentVersionInput) GoString() string {
5465	return s.String()
5466}
5467
5468// Validate inspects the fields of the type to determine if they are valid.
5469func (s *CreateIntentVersionInput) Validate() error {
5470	invalidParams := request.ErrInvalidParams{Context: "CreateIntentVersionInput"}
5471	if s.Name == nil {
5472		invalidParams.Add(request.NewErrParamRequired("Name"))
5473	}
5474	if s.Name != nil && len(*s.Name) < 1 {
5475		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5476	}
5477
5478	if invalidParams.Len() > 0 {
5479		return invalidParams
5480	}
5481	return nil
5482}
5483
5484// SetChecksum sets the Checksum field's value.
5485func (s *CreateIntentVersionInput) SetChecksum(v string) *CreateIntentVersionInput {
5486	s.Checksum = &v
5487	return s
5488}
5489
5490// SetName sets the Name field's value.
5491func (s *CreateIntentVersionInput) SetName(v string) *CreateIntentVersionInput {
5492	s.Name = &v
5493	return s
5494}
5495
5496type CreateIntentVersionOutput struct {
5497	_ struct{} `type:"structure"`
5498
5499	// Checksum of the intent version created.
5500	Checksum *string `locationName:"checksum" type:"string"`
5501
5502	// After the Lambda function specified in the fulfillmentActivity field fulfills
5503	// the intent, Amazon Lex conveys this statement to the user.
5504	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
5505
5506	// If defined, the prompt that Amazon Lex uses to confirm the user's intent
5507	// before fulfilling it.
5508	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
5509
5510	// The date that the intent was created.
5511	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
5512
5513	// A description of the intent.
5514	Description *string `locationName:"description" type:"string"`
5515
5516	// If defined, Amazon Lex invokes this Lambda function for each user input.
5517	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
5518
5519	// If defined, Amazon Lex uses this prompt to solicit additional user activity
5520	// after the intent is fulfilled.
5521	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
5522
5523	// Describes how the intent is fulfilled.
5524	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
5525
5526	// An array of InputContext objects that lists the contexts that must be active
5527	// for Amazon Lex to choose the intent in a conversation with the user.
5528	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
5529
5530	// Configuration information, if any, for connecting an Amazon Kendra index
5531	// with the AMAZON.KendraSearchIntent intent.
5532	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
5533
5534	// The date that the intent was updated.
5535	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
5536
5537	// The name of the intent.
5538	Name *string `locationName:"name" min:"1" type:"string"`
5539
5540	// An array of OutputContext objects that lists the contexts that the intent
5541	// activates when the intent is fulfilled.
5542	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
5543
5544	// A unique identifier for a built-in intent.
5545	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
5546
5547	// If the user answers "no" to the question defined in confirmationPrompt, Amazon
5548	// Lex responds with this statement to acknowledge that the intent was canceled.
5549	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
5550
5551	// An array of sample utterances configured for the intent.
5552	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
5553
5554	// An array of slot types that defines the information required to fulfill the
5555	// intent.
5556	Slots []*Slot `locationName:"slots" type:"list"`
5557
5558	// The version number assigned to the new version of the intent.
5559	Version *string `locationName:"version" min:"1" type:"string"`
5560}
5561
5562// String returns the string representation
5563func (s CreateIntentVersionOutput) String() string {
5564	return awsutil.Prettify(s)
5565}
5566
5567// GoString returns the string representation
5568func (s CreateIntentVersionOutput) GoString() string {
5569	return s.String()
5570}
5571
5572// SetChecksum sets the Checksum field's value.
5573func (s *CreateIntentVersionOutput) SetChecksum(v string) *CreateIntentVersionOutput {
5574	s.Checksum = &v
5575	return s
5576}
5577
5578// SetConclusionStatement sets the ConclusionStatement field's value.
5579func (s *CreateIntentVersionOutput) SetConclusionStatement(v *Statement) *CreateIntentVersionOutput {
5580	s.ConclusionStatement = v
5581	return s
5582}
5583
5584// SetConfirmationPrompt sets the ConfirmationPrompt field's value.
5585func (s *CreateIntentVersionOutput) SetConfirmationPrompt(v *Prompt) *CreateIntentVersionOutput {
5586	s.ConfirmationPrompt = v
5587	return s
5588}
5589
5590// SetCreatedDate sets the CreatedDate field's value.
5591func (s *CreateIntentVersionOutput) SetCreatedDate(v time.Time) *CreateIntentVersionOutput {
5592	s.CreatedDate = &v
5593	return s
5594}
5595
5596// SetDescription sets the Description field's value.
5597func (s *CreateIntentVersionOutput) SetDescription(v string) *CreateIntentVersionOutput {
5598	s.Description = &v
5599	return s
5600}
5601
5602// SetDialogCodeHook sets the DialogCodeHook field's value.
5603func (s *CreateIntentVersionOutput) SetDialogCodeHook(v *CodeHook) *CreateIntentVersionOutput {
5604	s.DialogCodeHook = v
5605	return s
5606}
5607
5608// SetFollowUpPrompt sets the FollowUpPrompt field's value.
5609func (s *CreateIntentVersionOutput) SetFollowUpPrompt(v *FollowUpPrompt) *CreateIntentVersionOutput {
5610	s.FollowUpPrompt = v
5611	return s
5612}
5613
5614// SetFulfillmentActivity sets the FulfillmentActivity field's value.
5615func (s *CreateIntentVersionOutput) SetFulfillmentActivity(v *FulfillmentActivity) *CreateIntentVersionOutput {
5616	s.FulfillmentActivity = v
5617	return s
5618}
5619
5620// SetInputContexts sets the InputContexts field's value.
5621func (s *CreateIntentVersionOutput) SetInputContexts(v []*InputContext) *CreateIntentVersionOutput {
5622	s.InputContexts = v
5623	return s
5624}
5625
5626// SetKendraConfiguration sets the KendraConfiguration field's value.
5627func (s *CreateIntentVersionOutput) SetKendraConfiguration(v *KendraConfiguration) *CreateIntentVersionOutput {
5628	s.KendraConfiguration = v
5629	return s
5630}
5631
5632// SetLastUpdatedDate sets the LastUpdatedDate field's value.
5633func (s *CreateIntentVersionOutput) SetLastUpdatedDate(v time.Time) *CreateIntentVersionOutput {
5634	s.LastUpdatedDate = &v
5635	return s
5636}
5637
5638// SetName sets the Name field's value.
5639func (s *CreateIntentVersionOutput) SetName(v string) *CreateIntentVersionOutput {
5640	s.Name = &v
5641	return s
5642}
5643
5644// SetOutputContexts sets the OutputContexts field's value.
5645func (s *CreateIntentVersionOutput) SetOutputContexts(v []*OutputContext) *CreateIntentVersionOutput {
5646	s.OutputContexts = v
5647	return s
5648}
5649
5650// SetParentIntentSignature sets the ParentIntentSignature field's value.
5651func (s *CreateIntentVersionOutput) SetParentIntentSignature(v string) *CreateIntentVersionOutput {
5652	s.ParentIntentSignature = &v
5653	return s
5654}
5655
5656// SetRejectionStatement sets the RejectionStatement field's value.
5657func (s *CreateIntentVersionOutput) SetRejectionStatement(v *Statement) *CreateIntentVersionOutput {
5658	s.RejectionStatement = v
5659	return s
5660}
5661
5662// SetSampleUtterances sets the SampleUtterances field's value.
5663func (s *CreateIntentVersionOutput) SetSampleUtterances(v []*string) *CreateIntentVersionOutput {
5664	s.SampleUtterances = v
5665	return s
5666}
5667
5668// SetSlots sets the Slots field's value.
5669func (s *CreateIntentVersionOutput) SetSlots(v []*Slot) *CreateIntentVersionOutput {
5670	s.Slots = v
5671	return s
5672}
5673
5674// SetVersion sets the Version field's value.
5675func (s *CreateIntentVersionOutput) SetVersion(v string) *CreateIntentVersionOutput {
5676	s.Version = &v
5677	return s
5678}
5679
5680type CreateSlotTypeVersionInput struct {
5681	_ struct{} `type:"structure"`
5682
5683	// Checksum for the $LATEST version of the slot type that you want to publish.
5684	// If you specify a checksum and the $LATEST version of the slot type has a
5685	// different checksum, Amazon Lex returns a PreconditionFailedException exception
5686	// and doesn't publish the new version. If you don't specify a checksum, Amazon
5687	// Lex publishes the $LATEST version.
5688	Checksum *string `locationName:"checksum" type:"string"`
5689
5690	// The name of the slot type that you want to create a new version for. The
5691	// name is case sensitive.
5692	//
5693	// Name is a required field
5694	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5695}
5696
5697// String returns the string representation
5698func (s CreateSlotTypeVersionInput) String() string {
5699	return awsutil.Prettify(s)
5700}
5701
5702// GoString returns the string representation
5703func (s CreateSlotTypeVersionInput) GoString() string {
5704	return s.String()
5705}
5706
5707// Validate inspects the fields of the type to determine if they are valid.
5708func (s *CreateSlotTypeVersionInput) Validate() error {
5709	invalidParams := request.ErrInvalidParams{Context: "CreateSlotTypeVersionInput"}
5710	if s.Name == nil {
5711		invalidParams.Add(request.NewErrParamRequired("Name"))
5712	}
5713	if s.Name != nil && len(*s.Name) < 1 {
5714		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5715	}
5716
5717	if invalidParams.Len() > 0 {
5718		return invalidParams
5719	}
5720	return nil
5721}
5722
5723// SetChecksum sets the Checksum field's value.
5724func (s *CreateSlotTypeVersionInput) SetChecksum(v string) *CreateSlotTypeVersionInput {
5725	s.Checksum = &v
5726	return s
5727}
5728
5729// SetName sets the Name field's value.
5730func (s *CreateSlotTypeVersionInput) SetName(v string) *CreateSlotTypeVersionInput {
5731	s.Name = &v
5732	return s
5733}
5734
5735type CreateSlotTypeVersionOutput struct {
5736	_ struct{} `type:"structure"`
5737
5738	// Checksum of the $LATEST version of the slot type.
5739	Checksum *string `locationName:"checksum" type:"string"`
5740
5741	// The date that the slot type was created.
5742	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
5743
5744	// A description of the slot type.
5745	Description *string `locationName:"description" type:"string"`
5746
5747	// A list of EnumerationValue objects that defines the values that the slot
5748	// type can take.
5749	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" type:"list"`
5750
5751	// The date that the slot type was updated. When you create a resource, the
5752	// creation date and last update date are the same.
5753	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
5754
5755	// The name of the slot type.
5756	Name *string `locationName:"name" min:"1" type:"string"`
5757
5758	// The built-in slot type used a the parent of the slot type.
5759	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" min:"1" type:"string"`
5760
5761	// Configuration information that extends the parent built-in slot type.
5762	SlotTypeConfigurations []*SlotTypeConfiguration `locationName:"slotTypeConfigurations" type:"list"`
5763
5764	// The strategy that Amazon Lex uses to determine the value of the slot. For
5765	// more information, see PutSlotType.
5766	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
5767
5768	// The version assigned to the new slot type version.
5769	Version *string `locationName:"version" min:"1" type:"string"`
5770}
5771
5772// String returns the string representation
5773func (s CreateSlotTypeVersionOutput) String() string {
5774	return awsutil.Prettify(s)
5775}
5776
5777// GoString returns the string representation
5778func (s CreateSlotTypeVersionOutput) GoString() string {
5779	return s.String()
5780}
5781
5782// SetChecksum sets the Checksum field's value.
5783func (s *CreateSlotTypeVersionOutput) SetChecksum(v string) *CreateSlotTypeVersionOutput {
5784	s.Checksum = &v
5785	return s
5786}
5787
5788// SetCreatedDate sets the CreatedDate field's value.
5789func (s *CreateSlotTypeVersionOutput) SetCreatedDate(v time.Time) *CreateSlotTypeVersionOutput {
5790	s.CreatedDate = &v
5791	return s
5792}
5793
5794// SetDescription sets the Description field's value.
5795func (s *CreateSlotTypeVersionOutput) SetDescription(v string) *CreateSlotTypeVersionOutput {
5796	s.Description = &v
5797	return s
5798}
5799
5800// SetEnumerationValues sets the EnumerationValues field's value.
5801func (s *CreateSlotTypeVersionOutput) SetEnumerationValues(v []*EnumerationValue) *CreateSlotTypeVersionOutput {
5802	s.EnumerationValues = v
5803	return s
5804}
5805
5806// SetLastUpdatedDate sets the LastUpdatedDate field's value.
5807func (s *CreateSlotTypeVersionOutput) SetLastUpdatedDate(v time.Time) *CreateSlotTypeVersionOutput {
5808	s.LastUpdatedDate = &v
5809	return s
5810}
5811
5812// SetName sets the Name field's value.
5813func (s *CreateSlotTypeVersionOutput) SetName(v string) *CreateSlotTypeVersionOutput {
5814	s.Name = &v
5815	return s
5816}
5817
5818// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
5819func (s *CreateSlotTypeVersionOutput) SetParentSlotTypeSignature(v string) *CreateSlotTypeVersionOutput {
5820	s.ParentSlotTypeSignature = &v
5821	return s
5822}
5823
5824// SetSlotTypeConfigurations sets the SlotTypeConfigurations field's value.
5825func (s *CreateSlotTypeVersionOutput) SetSlotTypeConfigurations(v []*SlotTypeConfiguration) *CreateSlotTypeVersionOutput {
5826	s.SlotTypeConfigurations = v
5827	return s
5828}
5829
5830// SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
5831func (s *CreateSlotTypeVersionOutput) SetValueSelectionStrategy(v string) *CreateSlotTypeVersionOutput {
5832	s.ValueSelectionStrategy = &v
5833	return s
5834}
5835
5836// SetVersion sets the Version field's value.
5837func (s *CreateSlotTypeVersionOutput) SetVersion(v string) *CreateSlotTypeVersionOutput {
5838	s.Version = &v
5839	return s
5840}
5841
5842type DeleteBotAliasInput struct {
5843	_ struct{} `type:"structure"`
5844
5845	// The name of the bot that the alias points to.
5846	//
5847	// BotName is a required field
5848	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
5849
5850	// The name of the alias to delete. The name is case sensitive.
5851	//
5852	// Name is a required field
5853	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5854}
5855
5856// String returns the string representation
5857func (s DeleteBotAliasInput) String() string {
5858	return awsutil.Prettify(s)
5859}
5860
5861// GoString returns the string representation
5862func (s DeleteBotAliasInput) GoString() string {
5863	return s.String()
5864}
5865
5866// Validate inspects the fields of the type to determine if they are valid.
5867func (s *DeleteBotAliasInput) Validate() error {
5868	invalidParams := request.ErrInvalidParams{Context: "DeleteBotAliasInput"}
5869	if s.BotName == nil {
5870		invalidParams.Add(request.NewErrParamRequired("BotName"))
5871	}
5872	if s.BotName != nil && len(*s.BotName) < 2 {
5873		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
5874	}
5875	if s.Name == nil {
5876		invalidParams.Add(request.NewErrParamRequired("Name"))
5877	}
5878	if s.Name != nil && len(*s.Name) < 1 {
5879		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5880	}
5881
5882	if invalidParams.Len() > 0 {
5883		return invalidParams
5884	}
5885	return nil
5886}
5887
5888// SetBotName sets the BotName field's value.
5889func (s *DeleteBotAliasInput) SetBotName(v string) *DeleteBotAliasInput {
5890	s.BotName = &v
5891	return s
5892}
5893
5894// SetName sets the Name field's value.
5895func (s *DeleteBotAliasInput) SetName(v string) *DeleteBotAliasInput {
5896	s.Name = &v
5897	return s
5898}
5899
5900type DeleteBotAliasOutput struct {
5901	_ struct{} `type:"structure"`
5902}
5903
5904// String returns the string representation
5905func (s DeleteBotAliasOutput) String() string {
5906	return awsutil.Prettify(s)
5907}
5908
5909// GoString returns the string representation
5910func (s DeleteBotAliasOutput) GoString() string {
5911	return s.String()
5912}
5913
5914type DeleteBotChannelAssociationInput struct {
5915	_ struct{} `type:"structure"`
5916
5917	// An alias that points to the specific version of the Amazon Lex bot to which
5918	// this association is being made.
5919	//
5920	// BotAlias is a required field
5921	BotAlias *string `location:"uri" locationName:"aliasName" min:"1" type:"string" required:"true"`
5922
5923	// The name of the Amazon Lex bot.
5924	//
5925	// BotName is a required field
5926	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
5927
5928	// The name of the association. The name is case sensitive.
5929	//
5930	// Name is a required field
5931	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5932}
5933
5934// String returns the string representation
5935func (s DeleteBotChannelAssociationInput) String() string {
5936	return awsutil.Prettify(s)
5937}
5938
5939// GoString returns the string representation
5940func (s DeleteBotChannelAssociationInput) GoString() string {
5941	return s.String()
5942}
5943
5944// Validate inspects the fields of the type to determine if they are valid.
5945func (s *DeleteBotChannelAssociationInput) Validate() error {
5946	invalidParams := request.ErrInvalidParams{Context: "DeleteBotChannelAssociationInput"}
5947	if s.BotAlias == nil {
5948		invalidParams.Add(request.NewErrParamRequired("BotAlias"))
5949	}
5950	if s.BotAlias != nil && len(*s.BotAlias) < 1 {
5951		invalidParams.Add(request.NewErrParamMinLen("BotAlias", 1))
5952	}
5953	if s.BotName == nil {
5954		invalidParams.Add(request.NewErrParamRequired("BotName"))
5955	}
5956	if s.BotName != nil && len(*s.BotName) < 2 {
5957		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
5958	}
5959	if s.Name == nil {
5960		invalidParams.Add(request.NewErrParamRequired("Name"))
5961	}
5962	if s.Name != nil && len(*s.Name) < 1 {
5963		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5964	}
5965
5966	if invalidParams.Len() > 0 {
5967		return invalidParams
5968	}
5969	return nil
5970}
5971
5972// SetBotAlias sets the BotAlias field's value.
5973func (s *DeleteBotChannelAssociationInput) SetBotAlias(v string) *DeleteBotChannelAssociationInput {
5974	s.BotAlias = &v
5975	return s
5976}
5977
5978// SetBotName sets the BotName field's value.
5979func (s *DeleteBotChannelAssociationInput) SetBotName(v string) *DeleteBotChannelAssociationInput {
5980	s.BotName = &v
5981	return s
5982}
5983
5984// SetName sets the Name field's value.
5985func (s *DeleteBotChannelAssociationInput) SetName(v string) *DeleteBotChannelAssociationInput {
5986	s.Name = &v
5987	return s
5988}
5989
5990type DeleteBotChannelAssociationOutput struct {
5991	_ struct{} `type:"structure"`
5992}
5993
5994// String returns the string representation
5995func (s DeleteBotChannelAssociationOutput) String() string {
5996	return awsutil.Prettify(s)
5997}
5998
5999// GoString returns the string representation
6000func (s DeleteBotChannelAssociationOutput) GoString() string {
6001	return s.String()
6002}
6003
6004type DeleteBotInput struct {
6005	_ struct{} `type:"structure"`
6006
6007	// The name of the bot. The name is case sensitive.
6008	//
6009	// Name is a required field
6010	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
6011}
6012
6013// String returns the string representation
6014func (s DeleteBotInput) String() string {
6015	return awsutil.Prettify(s)
6016}
6017
6018// GoString returns the string representation
6019func (s DeleteBotInput) GoString() string {
6020	return s.String()
6021}
6022
6023// Validate inspects the fields of the type to determine if they are valid.
6024func (s *DeleteBotInput) Validate() error {
6025	invalidParams := request.ErrInvalidParams{Context: "DeleteBotInput"}
6026	if s.Name == nil {
6027		invalidParams.Add(request.NewErrParamRequired("Name"))
6028	}
6029	if s.Name != nil && len(*s.Name) < 2 {
6030		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
6031	}
6032
6033	if invalidParams.Len() > 0 {
6034		return invalidParams
6035	}
6036	return nil
6037}
6038
6039// SetName sets the Name field's value.
6040func (s *DeleteBotInput) SetName(v string) *DeleteBotInput {
6041	s.Name = &v
6042	return s
6043}
6044
6045type DeleteBotOutput struct {
6046	_ struct{} `type:"structure"`
6047}
6048
6049// String returns the string representation
6050func (s DeleteBotOutput) String() string {
6051	return awsutil.Prettify(s)
6052}
6053
6054// GoString returns the string representation
6055func (s DeleteBotOutput) GoString() string {
6056	return s.String()
6057}
6058
6059type DeleteBotVersionInput struct {
6060	_ struct{} `type:"structure"`
6061
6062	// The name of the bot.
6063	//
6064	// Name is a required field
6065	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
6066
6067	// The version of the bot to delete. You cannot delete the $LATEST version of
6068	// the bot. To delete the $LATEST version, use the DeleteBot operation.
6069	//
6070	// Version is a required field
6071	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
6072}
6073
6074// String returns the string representation
6075func (s DeleteBotVersionInput) String() string {
6076	return awsutil.Prettify(s)
6077}
6078
6079// GoString returns the string representation
6080func (s DeleteBotVersionInput) GoString() string {
6081	return s.String()
6082}
6083
6084// Validate inspects the fields of the type to determine if they are valid.
6085func (s *DeleteBotVersionInput) Validate() error {
6086	invalidParams := request.ErrInvalidParams{Context: "DeleteBotVersionInput"}
6087	if s.Name == nil {
6088		invalidParams.Add(request.NewErrParamRequired("Name"))
6089	}
6090	if s.Name != nil && len(*s.Name) < 2 {
6091		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
6092	}
6093	if s.Version == nil {
6094		invalidParams.Add(request.NewErrParamRequired("Version"))
6095	}
6096	if s.Version != nil && len(*s.Version) < 1 {
6097		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
6098	}
6099
6100	if invalidParams.Len() > 0 {
6101		return invalidParams
6102	}
6103	return nil
6104}
6105
6106// SetName sets the Name field's value.
6107func (s *DeleteBotVersionInput) SetName(v string) *DeleteBotVersionInput {
6108	s.Name = &v
6109	return s
6110}
6111
6112// SetVersion sets the Version field's value.
6113func (s *DeleteBotVersionInput) SetVersion(v string) *DeleteBotVersionInput {
6114	s.Version = &v
6115	return s
6116}
6117
6118type DeleteBotVersionOutput struct {
6119	_ struct{} `type:"structure"`
6120}
6121
6122// String returns the string representation
6123func (s DeleteBotVersionOutput) String() string {
6124	return awsutil.Prettify(s)
6125}
6126
6127// GoString returns the string representation
6128func (s DeleteBotVersionOutput) GoString() string {
6129	return s.String()
6130}
6131
6132type DeleteIntentInput struct {
6133	_ struct{} `type:"structure"`
6134
6135	// The name of the intent. The name is case sensitive.
6136	//
6137	// Name is a required field
6138	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6139}
6140
6141// String returns the string representation
6142func (s DeleteIntentInput) String() string {
6143	return awsutil.Prettify(s)
6144}
6145
6146// GoString returns the string representation
6147func (s DeleteIntentInput) GoString() string {
6148	return s.String()
6149}
6150
6151// Validate inspects the fields of the type to determine if they are valid.
6152func (s *DeleteIntentInput) Validate() error {
6153	invalidParams := request.ErrInvalidParams{Context: "DeleteIntentInput"}
6154	if s.Name == nil {
6155		invalidParams.Add(request.NewErrParamRequired("Name"))
6156	}
6157	if s.Name != nil && len(*s.Name) < 1 {
6158		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6159	}
6160
6161	if invalidParams.Len() > 0 {
6162		return invalidParams
6163	}
6164	return nil
6165}
6166
6167// SetName sets the Name field's value.
6168func (s *DeleteIntentInput) SetName(v string) *DeleteIntentInput {
6169	s.Name = &v
6170	return s
6171}
6172
6173type DeleteIntentOutput struct {
6174	_ struct{} `type:"structure"`
6175}
6176
6177// String returns the string representation
6178func (s DeleteIntentOutput) String() string {
6179	return awsutil.Prettify(s)
6180}
6181
6182// GoString returns the string representation
6183func (s DeleteIntentOutput) GoString() string {
6184	return s.String()
6185}
6186
6187type DeleteIntentVersionInput struct {
6188	_ struct{} `type:"structure"`
6189
6190	// The name of the intent.
6191	//
6192	// Name is a required field
6193	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6194
6195	// The version of the intent to delete. You cannot delete the $LATEST version
6196	// of the intent. To delete the $LATEST version, use the DeleteIntent operation.
6197	//
6198	// Version is a required field
6199	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
6200}
6201
6202// String returns the string representation
6203func (s DeleteIntentVersionInput) String() string {
6204	return awsutil.Prettify(s)
6205}
6206
6207// GoString returns the string representation
6208func (s DeleteIntentVersionInput) GoString() string {
6209	return s.String()
6210}
6211
6212// Validate inspects the fields of the type to determine if they are valid.
6213func (s *DeleteIntentVersionInput) Validate() error {
6214	invalidParams := request.ErrInvalidParams{Context: "DeleteIntentVersionInput"}
6215	if s.Name == nil {
6216		invalidParams.Add(request.NewErrParamRequired("Name"))
6217	}
6218	if s.Name != nil && len(*s.Name) < 1 {
6219		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6220	}
6221	if s.Version == nil {
6222		invalidParams.Add(request.NewErrParamRequired("Version"))
6223	}
6224	if s.Version != nil && len(*s.Version) < 1 {
6225		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
6226	}
6227
6228	if invalidParams.Len() > 0 {
6229		return invalidParams
6230	}
6231	return nil
6232}
6233
6234// SetName sets the Name field's value.
6235func (s *DeleteIntentVersionInput) SetName(v string) *DeleteIntentVersionInput {
6236	s.Name = &v
6237	return s
6238}
6239
6240// SetVersion sets the Version field's value.
6241func (s *DeleteIntentVersionInput) SetVersion(v string) *DeleteIntentVersionInput {
6242	s.Version = &v
6243	return s
6244}
6245
6246type DeleteIntentVersionOutput struct {
6247	_ struct{} `type:"structure"`
6248}
6249
6250// String returns the string representation
6251func (s DeleteIntentVersionOutput) String() string {
6252	return awsutil.Prettify(s)
6253}
6254
6255// GoString returns the string representation
6256func (s DeleteIntentVersionOutput) GoString() string {
6257	return s.String()
6258}
6259
6260type DeleteSlotTypeInput struct {
6261	_ struct{} `type:"structure"`
6262
6263	// The name of the slot type. The name is case sensitive.
6264	//
6265	// Name is a required field
6266	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6267}
6268
6269// String returns the string representation
6270func (s DeleteSlotTypeInput) String() string {
6271	return awsutil.Prettify(s)
6272}
6273
6274// GoString returns the string representation
6275func (s DeleteSlotTypeInput) GoString() string {
6276	return s.String()
6277}
6278
6279// Validate inspects the fields of the type to determine if they are valid.
6280func (s *DeleteSlotTypeInput) Validate() error {
6281	invalidParams := request.ErrInvalidParams{Context: "DeleteSlotTypeInput"}
6282	if s.Name == nil {
6283		invalidParams.Add(request.NewErrParamRequired("Name"))
6284	}
6285	if s.Name != nil && len(*s.Name) < 1 {
6286		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6287	}
6288
6289	if invalidParams.Len() > 0 {
6290		return invalidParams
6291	}
6292	return nil
6293}
6294
6295// SetName sets the Name field's value.
6296func (s *DeleteSlotTypeInput) SetName(v string) *DeleteSlotTypeInput {
6297	s.Name = &v
6298	return s
6299}
6300
6301type DeleteSlotTypeOutput struct {
6302	_ struct{} `type:"structure"`
6303}
6304
6305// String returns the string representation
6306func (s DeleteSlotTypeOutput) String() string {
6307	return awsutil.Prettify(s)
6308}
6309
6310// GoString returns the string representation
6311func (s DeleteSlotTypeOutput) GoString() string {
6312	return s.String()
6313}
6314
6315type DeleteSlotTypeVersionInput struct {
6316	_ struct{} `type:"structure"`
6317
6318	// The name of the slot type.
6319	//
6320	// Name is a required field
6321	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6322
6323	// The version of the slot type to delete. You cannot delete the $LATEST version
6324	// of the slot type. To delete the $LATEST version, use the DeleteSlotType operation.
6325	//
6326	// Version is a required field
6327	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
6328}
6329
6330// String returns the string representation
6331func (s DeleteSlotTypeVersionInput) String() string {
6332	return awsutil.Prettify(s)
6333}
6334
6335// GoString returns the string representation
6336func (s DeleteSlotTypeVersionInput) GoString() string {
6337	return s.String()
6338}
6339
6340// Validate inspects the fields of the type to determine if they are valid.
6341func (s *DeleteSlotTypeVersionInput) Validate() error {
6342	invalidParams := request.ErrInvalidParams{Context: "DeleteSlotTypeVersionInput"}
6343	if s.Name == nil {
6344		invalidParams.Add(request.NewErrParamRequired("Name"))
6345	}
6346	if s.Name != nil && len(*s.Name) < 1 {
6347		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6348	}
6349	if s.Version == nil {
6350		invalidParams.Add(request.NewErrParamRequired("Version"))
6351	}
6352	if s.Version != nil && len(*s.Version) < 1 {
6353		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
6354	}
6355
6356	if invalidParams.Len() > 0 {
6357		return invalidParams
6358	}
6359	return nil
6360}
6361
6362// SetName sets the Name field's value.
6363func (s *DeleteSlotTypeVersionInput) SetName(v string) *DeleteSlotTypeVersionInput {
6364	s.Name = &v
6365	return s
6366}
6367
6368// SetVersion sets the Version field's value.
6369func (s *DeleteSlotTypeVersionInput) SetVersion(v string) *DeleteSlotTypeVersionInput {
6370	s.Version = &v
6371	return s
6372}
6373
6374type DeleteSlotTypeVersionOutput struct {
6375	_ struct{} `type:"structure"`
6376}
6377
6378// String returns the string representation
6379func (s DeleteSlotTypeVersionOutput) String() string {
6380	return awsutil.Prettify(s)
6381}
6382
6383// GoString returns the string representation
6384func (s DeleteSlotTypeVersionOutput) GoString() string {
6385	return s.String()
6386}
6387
6388type DeleteUtterancesInput struct {
6389	_ struct{} `type:"structure"`
6390
6391	// The name of the bot that stored the utterances.
6392	//
6393	// BotName is a required field
6394	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
6395
6396	// The unique identifier for the user that made the utterances. This is the
6397	// user ID that was sent in the PostContent (http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html)
6398	// or PostText (http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
6399	// operation request that contained the utterance.
6400	//
6401	// UserId is a required field
6402	UserId *string `location:"uri" locationName:"userId" min:"2" type:"string" required:"true"`
6403}
6404
6405// String returns the string representation
6406func (s DeleteUtterancesInput) String() string {
6407	return awsutil.Prettify(s)
6408}
6409
6410// GoString returns the string representation
6411func (s DeleteUtterancesInput) GoString() string {
6412	return s.String()
6413}
6414
6415// Validate inspects the fields of the type to determine if they are valid.
6416func (s *DeleteUtterancesInput) Validate() error {
6417	invalidParams := request.ErrInvalidParams{Context: "DeleteUtterancesInput"}
6418	if s.BotName == nil {
6419		invalidParams.Add(request.NewErrParamRequired("BotName"))
6420	}
6421	if s.BotName != nil && len(*s.BotName) < 2 {
6422		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
6423	}
6424	if s.UserId == nil {
6425		invalidParams.Add(request.NewErrParamRequired("UserId"))
6426	}
6427	if s.UserId != nil && len(*s.UserId) < 2 {
6428		invalidParams.Add(request.NewErrParamMinLen("UserId", 2))
6429	}
6430
6431	if invalidParams.Len() > 0 {
6432		return invalidParams
6433	}
6434	return nil
6435}
6436
6437// SetBotName sets the BotName field's value.
6438func (s *DeleteUtterancesInput) SetBotName(v string) *DeleteUtterancesInput {
6439	s.BotName = &v
6440	return s
6441}
6442
6443// SetUserId sets the UserId field's value.
6444func (s *DeleteUtterancesInput) SetUserId(v string) *DeleteUtterancesInput {
6445	s.UserId = &v
6446	return s
6447}
6448
6449type DeleteUtterancesOutput struct {
6450	_ struct{} `type:"structure"`
6451}
6452
6453// String returns the string representation
6454func (s DeleteUtterancesOutput) String() string {
6455	return awsutil.Prettify(s)
6456}
6457
6458// GoString returns the string representation
6459func (s DeleteUtterancesOutput) GoString() string {
6460	return s.String()
6461}
6462
6463// Each slot type can have a set of values. Each enumeration value represents
6464// a value the slot type can take.
6465//
6466// For example, a pizza ordering bot could have a slot type that specifies the
6467// type of crust that the pizza should have. The slot type could include the
6468// values
6469//
6470//    * thick
6471//
6472//    * thin
6473//
6474//    * stuffed
6475type EnumerationValue struct {
6476	_ struct{} `type:"structure"`
6477
6478	// Additional values related to the slot type value.
6479	Synonyms []*string `locationName:"synonyms" type:"list"`
6480
6481	// The value of the slot type.
6482	//
6483	// Value is a required field
6484	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
6485}
6486
6487// String returns the string representation
6488func (s EnumerationValue) String() string {
6489	return awsutil.Prettify(s)
6490}
6491
6492// GoString returns the string representation
6493func (s EnumerationValue) GoString() string {
6494	return s.String()
6495}
6496
6497// Validate inspects the fields of the type to determine if they are valid.
6498func (s *EnumerationValue) Validate() error {
6499	invalidParams := request.ErrInvalidParams{Context: "EnumerationValue"}
6500	if s.Value == nil {
6501		invalidParams.Add(request.NewErrParamRequired("Value"))
6502	}
6503	if s.Value != nil && len(*s.Value) < 1 {
6504		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
6505	}
6506
6507	if invalidParams.Len() > 0 {
6508		return invalidParams
6509	}
6510	return nil
6511}
6512
6513// SetSynonyms sets the Synonyms field's value.
6514func (s *EnumerationValue) SetSynonyms(v []*string) *EnumerationValue {
6515	s.Synonyms = v
6516	return s
6517}
6518
6519// SetValue sets the Value field's value.
6520func (s *EnumerationValue) SetValue(v string) *EnumerationValue {
6521	s.Value = &v
6522	return s
6523}
6524
6525// A prompt for additional activity after an intent is fulfilled. For example,
6526// after the OrderPizza intent is fulfilled, you might prompt the user to find
6527// out whether the user wants to order drinks.
6528type FollowUpPrompt struct {
6529	_ struct{} `type:"structure"`
6530
6531	// Prompts for information from the user.
6532	//
6533	// Prompt is a required field
6534	Prompt *Prompt `locationName:"prompt" type:"structure" required:"true"`
6535
6536	// If the user answers "no" to the question defined in the prompt field, Amazon
6537	// Lex responds with this statement to acknowledge that the intent was canceled.
6538	//
6539	// RejectionStatement is a required field
6540	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure" required:"true"`
6541}
6542
6543// String returns the string representation
6544func (s FollowUpPrompt) String() string {
6545	return awsutil.Prettify(s)
6546}
6547
6548// GoString returns the string representation
6549func (s FollowUpPrompt) GoString() string {
6550	return s.String()
6551}
6552
6553// Validate inspects the fields of the type to determine if they are valid.
6554func (s *FollowUpPrompt) Validate() error {
6555	invalidParams := request.ErrInvalidParams{Context: "FollowUpPrompt"}
6556	if s.Prompt == nil {
6557		invalidParams.Add(request.NewErrParamRequired("Prompt"))
6558	}
6559	if s.RejectionStatement == nil {
6560		invalidParams.Add(request.NewErrParamRequired("RejectionStatement"))
6561	}
6562	if s.Prompt != nil {
6563		if err := s.Prompt.Validate(); err != nil {
6564			invalidParams.AddNested("Prompt", err.(request.ErrInvalidParams))
6565		}
6566	}
6567	if s.RejectionStatement != nil {
6568		if err := s.RejectionStatement.Validate(); err != nil {
6569			invalidParams.AddNested("RejectionStatement", err.(request.ErrInvalidParams))
6570		}
6571	}
6572
6573	if invalidParams.Len() > 0 {
6574		return invalidParams
6575	}
6576	return nil
6577}
6578
6579// SetPrompt sets the Prompt field's value.
6580func (s *FollowUpPrompt) SetPrompt(v *Prompt) *FollowUpPrompt {
6581	s.Prompt = v
6582	return s
6583}
6584
6585// SetRejectionStatement sets the RejectionStatement field's value.
6586func (s *FollowUpPrompt) SetRejectionStatement(v *Statement) *FollowUpPrompt {
6587	s.RejectionStatement = v
6588	return s
6589}
6590
6591// Describes how the intent is fulfilled after the user provides all of the
6592// information required for the intent. You can provide a Lambda function to
6593// process the intent, or you can return the intent information to the client
6594// application. We recommend that you use a Lambda function so that the relevant
6595// logic lives in the Cloud and limit the client-side code primarily to presentation.
6596// If you need to update the logic, you only update the Lambda function; you
6597// don't need to upgrade your client application.
6598//
6599// Consider the following examples:
6600//
6601//    * In a pizza ordering application, after the user provides all of the
6602//    information for placing an order, you use a Lambda function to place an
6603//    order with a pizzeria.
6604//
6605//    * In a gaming application, when a user says "pick up a rock," this information
6606//    must go back to the client application so that it can perform the operation
6607//    and update the graphics. In this case, you want Amazon Lex to return the
6608//    intent data to the client.
6609type FulfillmentActivity struct {
6610	_ struct{} `type:"structure"`
6611
6612	// A description of the Lambda function that is run to fulfill the intent.
6613	CodeHook *CodeHook `locationName:"codeHook" type:"structure"`
6614
6615	// How the intent should be fulfilled, either by running a Lambda function or
6616	// by returning the slot data to the client application.
6617	//
6618	// Type is a required field
6619	Type *string `locationName:"type" type:"string" required:"true" enum:"FulfillmentActivityType"`
6620}
6621
6622// String returns the string representation
6623func (s FulfillmentActivity) String() string {
6624	return awsutil.Prettify(s)
6625}
6626
6627// GoString returns the string representation
6628func (s FulfillmentActivity) GoString() string {
6629	return s.String()
6630}
6631
6632// Validate inspects the fields of the type to determine if they are valid.
6633func (s *FulfillmentActivity) Validate() error {
6634	invalidParams := request.ErrInvalidParams{Context: "FulfillmentActivity"}
6635	if s.Type == nil {
6636		invalidParams.Add(request.NewErrParamRequired("Type"))
6637	}
6638	if s.CodeHook != nil {
6639		if err := s.CodeHook.Validate(); err != nil {
6640			invalidParams.AddNested("CodeHook", err.(request.ErrInvalidParams))
6641		}
6642	}
6643
6644	if invalidParams.Len() > 0 {
6645		return invalidParams
6646	}
6647	return nil
6648}
6649
6650// SetCodeHook sets the CodeHook field's value.
6651func (s *FulfillmentActivity) SetCodeHook(v *CodeHook) *FulfillmentActivity {
6652	s.CodeHook = v
6653	return s
6654}
6655
6656// SetType sets the Type field's value.
6657func (s *FulfillmentActivity) SetType(v string) *FulfillmentActivity {
6658	s.Type = &v
6659	return s
6660}
6661
6662type GetBotAliasInput struct {
6663	_ struct{} `type:"structure"`
6664
6665	// The name of the bot.
6666	//
6667	// BotName is a required field
6668	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
6669
6670	// The name of the bot alias. The name is case sensitive.
6671	//
6672	// Name is a required field
6673	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6674}
6675
6676// String returns the string representation
6677func (s GetBotAliasInput) String() string {
6678	return awsutil.Prettify(s)
6679}
6680
6681// GoString returns the string representation
6682func (s GetBotAliasInput) GoString() string {
6683	return s.String()
6684}
6685
6686// Validate inspects the fields of the type to determine if they are valid.
6687func (s *GetBotAliasInput) Validate() error {
6688	invalidParams := request.ErrInvalidParams{Context: "GetBotAliasInput"}
6689	if s.BotName == nil {
6690		invalidParams.Add(request.NewErrParamRequired("BotName"))
6691	}
6692	if s.BotName != nil && len(*s.BotName) < 2 {
6693		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
6694	}
6695	if s.Name == nil {
6696		invalidParams.Add(request.NewErrParamRequired("Name"))
6697	}
6698	if s.Name != nil && len(*s.Name) < 1 {
6699		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6700	}
6701
6702	if invalidParams.Len() > 0 {
6703		return invalidParams
6704	}
6705	return nil
6706}
6707
6708// SetBotName sets the BotName field's value.
6709func (s *GetBotAliasInput) SetBotName(v string) *GetBotAliasInput {
6710	s.BotName = &v
6711	return s
6712}
6713
6714// SetName sets the Name field's value.
6715func (s *GetBotAliasInput) SetName(v string) *GetBotAliasInput {
6716	s.Name = &v
6717	return s
6718}
6719
6720type GetBotAliasOutput struct {
6721	_ struct{} `type:"structure"`
6722
6723	// The name of the bot that the alias points to.
6724	BotName *string `locationName:"botName" min:"2" type:"string"`
6725
6726	// The version of the bot that the alias points to.
6727	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
6728
6729	// Checksum of the bot alias.
6730	Checksum *string `locationName:"checksum" type:"string"`
6731
6732	// The settings that determine how Amazon Lex uses conversation logs for the
6733	// alias.
6734	ConversationLogs *ConversationLogsResponse `locationName:"conversationLogs" type:"structure"`
6735
6736	// The date that the bot alias was created.
6737	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
6738
6739	// A description of the bot alias.
6740	Description *string `locationName:"description" type:"string"`
6741
6742	// The date that the bot alias was updated. When you create a resource, the
6743	// creation date and the last updated date are the same.
6744	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
6745
6746	// The name of the bot alias.
6747	Name *string `locationName:"name" min:"1" type:"string"`
6748}
6749
6750// String returns the string representation
6751func (s GetBotAliasOutput) String() string {
6752	return awsutil.Prettify(s)
6753}
6754
6755// GoString returns the string representation
6756func (s GetBotAliasOutput) GoString() string {
6757	return s.String()
6758}
6759
6760// SetBotName sets the BotName field's value.
6761func (s *GetBotAliasOutput) SetBotName(v string) *GetBotAliasOutput {
6762	s.BotName = &v
6763	return s
6764}
6765
6766// SetBotVersion sets the BotVersion field's value.
6767func (s *GetBotAliasOutput) SetBotVersion(v string) *GetBotAliasOutput {
6768	s.BotVersion = &v
6769	return s
6770}
6771
6772// SetChecksum sets the Checksum field's value.
6773func (s *GetBotAliasOutput) SetChecksum(v string) *GetBotAliasOutput {
6774	s.Checksum = &v
6775	return s
6776}
6777
6778// SetConversationLogs sets the ConversationLogs field's value.
6779func (s *GetBotAliasOutput) SetConversationLogs(v *ConversationLogsResponse) *GetBotAliasOutput {
6780	s.ConversationLogs = v
6781	return s
6782}
6783
6784// SetCreatedDate sets the CreatedDate field's value.
6785func (s *GetBotAliasOutput) SetCreatedDate(v time.Time) *GetBotAliasOutput {
6786	s.CreatedDate = &v
6787	return s
6788}
6789
6790// SetDescription sets the Description field's value.
6791func (s *GetBotAliasOutput) SetDescription(v string) *GetBotAliasOutput {
6792	s.Description = &v
6793	return s
6794}
6795
6796// SetLastUpdatedDate sets the LastUpdatedDate field's value.
6797func (s *GetBotAliasOutput) SetLastUpdatedDate(v time.Time) *GetBotAliasOutput {
6798	s.LastUpdatedDate = &v
6799	return s
6800}
6801
6802// SetName sets the Name field's value.
6803func (s *GetBotAliasOutput) SetName(v string) *GetBotAliasOutput {
6804	s.Name = &v
6805	return s
6806}
6807
6808type GetBotAliasesInput struct {
6809	_ struct{} `type:"structure"`
6810
6811	// The name of the bot.
6812	//
6813	// BotName is a required field
6814	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
6815
6816	// The maximum number of aliases to return in the response. The default is 50. .
6817	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
6818
6819	// Substring to match in bot alias names. An alias will be returned if any part
6820	// of its name matches the substring. For example, "xyz" matches both "xyzabc"
6821	// and "abcxyz."
6822	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
6823
6824	// A pagination token for fetching the next page of aliases. If the response
6825	// to this call is truncated, Amazon Lex returns a pagination token in the response.
6826	// To fetch the next page of aliases, specify the pagination token in the next
6827	// request.
6828	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
6829}
6830
6831// String returns the string representation
6832func (s GetBotAliasesInput) String() string {
6833	return awsutil.Prettify(s)
6834}
6835
6836// GoString returns the string representation
6837func (s GetBotAliasesInput) GoString() string {
6838	return s.String()
6839}
6840
6841// Validate inspects the fields of the type to determine if they are valid.
6842func (s *GetBotAliasesInput) Validate() error {
6843	invalidParams := request.ErrInvalidParams{Context: "GetBotAliasesInput"}
6844	if s.BotName == nil {
6845		invalidParams.Add(request.NewErrParamRequired("BotName"))
6846	}
6847	if s.BotName != nil && len(*s.BotName) < 2 {
6848		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
6849	}
6850	if s.MaxResults != nil && *s.MaxResults < 1 {
6851		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6852	}
6853	if s.NameContains != nil && len(*s.NameContains) < 1 {
6854		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
6855	}
6856
6857	if invalidParams.Len() > 0 {
6858		return invalidParams
6859	}
6860	return nil
6861}
6862
6863// SetBotName sets the BotName field's value.
6864func (s *GetBotAliasesInput) SetBotName(v string) *GetBotAliasesInput {
6865	s.BotName = &v
6866	return s
6867}
6868
6869// SetMaxResults sets the MaxResults field's value.
6870func (s *GetBotAliasesInput) SetMaxResults(v int64) *GetBotAliasesInput {
6871	s.MaxResults = &v
6872	return s
6873}
6874
6875// SetNameContains sets the NameContains field's value.
6876func (s *GetBotAliasesInput) SetNameContains(v string) *GetBotAliasesInput {
6877	s.NameContains = &v
6878	return s
6879}
6880
6881// SetNextToken sets the NextToken field's value.
6882func (s *GetBotAliasesInput) SetNextToken(v string) *GetBotAliasesInput {
6883	s.NextToken = &v
6884	return s
6885}
6886
6887type GetBotAliasesOutput struct {
6888	_ struct{} `type:"structure"`
6889
6890	// An array of BotAliasMetadata objects, each describing a bot alias.
6891	BotAliases []*BotAliasMetadata `type:"list"`
6892
6893	// A pagination token for fetching next page of aliases. If the response to
6894	// this call is truncated, Amazon Lex returns a pagination token in the response.
6895	// To fetch the next page of aliases, specify the pagination token in the next
6896	// request.
6897	NextToken *string `locationName:"nextToken" type:"string"`
6898}
6899
6900// String returns the string representation
6901func (s GetBotAliasesOutput) String() string {
6902	return awsutil.Prettify(s)
6903}
6904
6905// GoString returns the string representation
6906func (s GetBotAliasesOutput) GoString() string {
6907	return s.String()
6908}
6909
6910// SetBotAliases sets the BotAliases field's value.
6911func (s *GetBotAliasesOutput) SetBotAliases(v []*BotAliasMetadata) *GetBotAliasesOutput {
6912	s.BotAliases = v
6913	return s
6914}
6915
6916// SetNextToken sets the NextToken field's value.
6917func (s *GetBotAliasesOutput) SetNextToken(v string) *GetBotAliasesOutput {
6918	s.NextToken = &v
6919	return s
6920}
6921
6922type GetBotChannelAssociationInput struct {
6923	_ struct{} `type:"structure"`
6924
6925	// An alias pointing to the specific version of the Amazon Lex bot to which
6926	// this association is being made.
6927	//
6928	// BotAlias is a required field
6929	BotAlias *string `location:"uri" locationName:"aliasName" min:"1" type:"string" required:"true"`
6930
6931	// The name of the Amazon Lex bot.
6932	//
6933	// BotName is a required field
6934	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
6935
6936	// The name of the association between the bot and the channel. The name is
6937	// case sensitive.
6938	//
6939	// Name is a required field
6940	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6941}
6942
6943// String returns the string representation
6944func (s GetBotChannelAssociationInput) String() string {
6945	return awsutil.Prettify(s)
6946}
6947
6948// GoString returns the string representation
6949func (s GetBotChannelAssociationInput) GoString() string {
6950	return s.String()
6951}
6952
6953// Validate inspects the fields of the type to determine if they are valid.
6954func (s *GetBotChannelAssociationInput) Validate() error {
6955	invalidParams := request.ErrInvalidParams{Context: "GetBotChannelAssociationInput"}
6956	if s.BotAlias == nil {
6957		invalidParams.Add(request.NewErrParamRequired("BotAlias"))
6958	}
6959	if s.BotAlias != nil && len(*s.BotAlias) < 1 {
6960		invalidParams.Add(request.NewErrParamMinLen("BotAlias", 1))
6961	}
6962	if s.BotName == nil {
6963		invalidParams.Add(request.NewErrParamRequired("BotName"))
6964	}
6965	if s.BotName != nil && len(*s.BotName) < 2 {
6966		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
6967	}
6968	if s.Name == nil {
6969		invalidParams.Add(request.NewErrParamRequired("Name"))
6970	}
6971	if s.Name != nil && len(*s.Name) < 1 {
6972		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6973	}
6974
6975	if invalidParams.Len() > 0 {
6976		return invalidParams
6977	}
6978	return nil
6979}
6980
6981// SetBotAlias sets the BotAlias field's value.
6982func (s *GetBotChannelAssociationInput) SetBotAlias(v string) *GetBotChannelAssociationInput {
6983	s.BotAlias = &v
6984	return s
6985}
6986
6987// SetBotName sets the BotName field's value.
6988func (s *GetBotChannelAssociationInput) SetBotName(v string) *GetBotChannelAssociationInput {
6989	s.BotName = &v
6990	return s
6991}
6992
6993// SetName sets the Name field's value.
6994func (s *GetBotChannelAssociationInput) SetName(v string) *GetBotChannelAssociationInput {
6995	s.Name = &v
6996	return s
6997}
6998
6999type GetBotChannelAssociationOutput struct {
7000	_ struct{} `type:"structure"`
7001
7002	// An alias pointing to the specific version of the Amazon Lex bot to which
7003	// this association is being made.
7004	BotAlias *string `locationName:"botAlias" min:"1" type:"string"`
7005
7006	// Provides information that the messaging platform needs to communicate with
7007	// the Amazon Lex bot.
7008	BotConfiguration map[string]*string `locationName:"botConfiguration" min:"1" type:"map" sensitive:"true"`
7009
7010	// The name of the Amazon Lex bot.
7011	BotName *string `locationName:"botName" min:"2" type:"string"`
7012
7013	// The date that the association between the bot and the channel was created.
7014	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
7015
7016	// A description of the association between the bot and the channel.
7017	Description *string `locationName:"description" type:"string"`
7018
7019	// If status is FAILED, Amazon Lex provides the reason that it failed to create
7020	// the association.
7021	FailureReason *string `locationName:"failureReason" type:"string"`
7022
7023	// The name of the association between the bot and the channel.
7024	Name *string `locationName:"name" min:"1" type:"string"`
7025
7026	// The status of the bot channel.
7027	//
7028	//    * CREATED - The channel has been created and is ready for use.
7029	//
7030	//    * IN_PROGRESS - Channel creation is in progress.
7031	//
7032	//    * FAILED - There was an error creating the channel. For information about
7033	//    the reason for the failure, see the failureReason field.
7034	Status *string `locationName:"status" type:"string" enum:"ChannelStatus"`
7035
7036	// The type of the messaging platform.
7037	Type *string `locationName:"type" type:"string" enum:"ChannelType"`
7038}
7039
7040// String returns the string representation
7041func (s GetBotChannelAssociationOutput) String() string {
7042	return awsutil.Prettify(s)
7043}
7044
7045// GoString returns the string representation
7046func (s GetBotChannelAssociationOutput) GoString() string {
7047	return s.String()
7048}
7049
7050// SetBotAlias sets the BotAlias field's value.
7051func (s *GetBotChannelAssociationOutput) SetBotAlias(v string) *GetBotChannelAssociationOutput {
7052	s.BotAlias = &v
7053	return s
7054}
7055
7056// SetBotConfiguration sets the BotConfiguration field's value.
7057func (s *GetBotChannelAssociationOutput) SetBotConfiguration(v map[string]*string) *GetBotChannelAssociationOutput {
7058	s.BotConfiguration = v
7059	return s
7060}
7061
7062// SetBotName sets the BotName field's value.
7063func (s *GetBotChannelAssociationOutput) SetBotName(v string) *GetBotChannelAssociationOutput {
7064	s.BotName = &v
7065	return s
7066}
7067
7068// SetCreatedDate sets the CreatedDate field's value.
7069func (s *GetBotChannelAssociationOutput) SetCreatedDate(v time.Time) *GetBotChannelAssociationOutput {
7070	s.CreatedDate = &v
7071	return s
7072}
7073
7074// SetDescription sets the Description field's value.
7075func (s *GetBotChannelAssociationOutput) SetDescription(v string) *GetBotChannelAssociationOutput {
7076	s.Description = &v
7077	return s
7078}
7079
7080// SetFailureReason sets the FailureReason field's value.
7081func (s *GetBotChannelAssociationOutput) SetFailureReason(v string) *GetBotChannelAssociationOutput {
7082	s.FailureReason = &v
7083	return s
7084}
7085
7086// SetName sets the Name field's value.
7087func (s *GetBotChannelAssociationOutput) SetName(v string) *GetBotChannelAssociationOutput {
7088	s.Name = &v
7089	return s
7090}
7091
7092// SetStatus sets the Status field's value.
7093func (s *GetBotChannelAssociationOutput) SetStatus(v string) *GetBotChannelAssociationOutput {
7094	s.Status = &v
7095	return s
7096}
7097
7098// SetType sets the Type field's value.
7099func (s *GetBotChannelAssociationOutput) SetType(v string) *GetBotChannelAssociationOutput {
7100	s.Type = &v
7101	return s
7102}
7103
7104type GetBotChannelAssociationsInput struct {
7105	_ struct{} `type:"structure"`
7106
7107	// An alias pointing to the specific version of the Amazon Lex bot to which
7108	// this association is being made.
7109	//
7110	// BotAlias is a required field
7111	BotAlias *string `location:"uri" locationName:"aliasName" min:"1" type:"string" required:"true"`
7112
7113	// The name of the Amazon Lex bot in the association.
7114	//
7115	// BotName is a required field
7116	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
7117
7118	// The maximum number of associations to return in the response. The default
7119	// is 50.
7120	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7121
7122	// Substring to match in channel association names. An association will be returned
7123	// if any part of its name matches the substring. For example, "xyz" matches
7124	// both "xyzabc" and "abcxyz." To return all bot channel associations, use a
7125	// hyphen ("-") as the nameContains parameter.
7126	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
7127
7128	// A pagination token for fetching the next page of associations. If the response
7129	// to this call is truncated, Amazon Lex returns a pagination token in the response.
7130	// To fetch the next page of associations, specify the pagination token in the
7131	// next request.
7132	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7133}
7134
7135// String returns the string representation
7136func (s GetBotChannelAssociationsInput) String() string {
7137	return awsutil.Prettify(s)
7138}
7139
7140// GoString returns the string representation
7141func (s GetBotChannelAssociationsInput) GoString() string {
7142	return s.String()
7143}
7144
7145// Validate inspects the fields of the type to determine if they are valid.
7146func (s *GetBotChannelAssociationsInput) Validate() error {
7147	invalidParams := request.ErrInvalidParams{Context: "GetBotChannelAssociationsInput"}
7148	if s.BotAlias == nil {
7149		invalidParams.Add(request.NewErrParamRequired("BotAlias"))
7150	}
7151	if s.BotAlias != nil && len(*s.BotAlias) < 1 {
7152		invalidParams.Add(request.NewErrParamMinLen("BotAlias", 1))
7153	}
7154	if s.BotName == nil {
7155		invalidParams.Add(request.NewErrParamRequired("BotName"))
7156	}
7157	if s.BotName != nil && len(*s.BotName) < 2 {
7158		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
7159	}
7160	if s.MaxResults != nil && *s.MaxResults < 1 {
7161		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7162	}
7163	if s.NameContains != nil && len(*s.NameContains) < 1 {
7164		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
7165	}
7166
7167	if invalidParams.Len() > 0 {
7168		return invalidParams
7169	}
7170	return nil
7171}
7172
7173// SetBotAlias sets the BotAlias field's value.
7174func (s *GetBotChannelAssociationsInput) SetBotAlias(v string) *GetBotChannelAssociationsInput {
7175	s.BotAlias = &v
7176	return s
7177}
7178
7179// SetBotName sets the BotName field's value.
7180func (s *GetBotChannelAssociationsInput) SetBotName(v string) *GetBotChannelAssociationsInput {
7181	s.BotName = &v
7182	return s
7183}
7184
7185// SetMaxResults sets the MaxResults field's value.
7186func (s *GetBotChannelAssociationsInput) SetMaxResults(v int64) *GetBotChannelAssociationsInput {
7187	s.MaxResults = &v
7188	return s
7189}
7190
7191// SetNameContains sets the NameContains field's value.
7192func (s *GetBotChannelAssociationsInput) SetNameContains(v string) *GetBotChannelAssociationsInput {
7193	s.NameContains = &v
7194	return s
7195}
7196
7197// SetNextToken sets the NextToken field's value.
7198func (s *GetBotChannelAssociationsInput) SetNextToken(v string) *GetBotChannelAssociationsInput {
7199	s.NextToken = &v
7200	return s
7201}
7202
7203type GetBotChannelAssociationsOutput struct {
7204	_ struct{} `type:"structure"`
7205
7206	// An array of objects, one for each association, that provides information
7207	// about the Amazon Lex bot and its association with the channel.
7208	BotChannelAssociations []*BotChannelAssociation `locationName:"botChannelAssociations" type:"list"`
7209
7210	// A pagination token that fetches the next page of associations. If the response
7211	// to this call is truncated, Amazon Lex returns a pagination token in the response.
7212	// To fetch the next page of associations, specify the pagination token in the
7213	// next request.
7214	NextToken *string `locationName:"nextToken" type:"string"`
7215}
7216
7217// String returns the string representation
7218func (s GetBotChannelAssociationsOutput) String() string {
7219	return awsutil.Prettify(s)
7220}
7221
7222// GoString returns the string representation
7223func (s GetBotChannelAssociationsOutput) GoString() string {
7224	return s.String()
7225}
7226
7227// SetBotChannelAssociations sets the BotChannelAssociations field's value.
7228func (s *GetBotChannelAssociationsOutput) SetBotChannelAssociations(v []*BotChannelAssociation) *GetBotChannelAssociationsOutput {
7229	s.BotChannelAssociations = v
7230	return s
7231}
7232
7233// SetNextToken sets the NextToken field's value.
7234func (s *GetBotChannelAssociationsOutput) SetNextToken(v string) *GetBotChannelAssociationsOutput {
7235	s.NextToken = &v
7236	return s
7237}
7238
7239type GetBotInput struct {
7240	_ struct{} `type:"structure"`
7241
7242	// The name of the bot. The name is case sensitive.
7243	//
7244	// Name is a required field
7245	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
7246
7247	// The version or alias of the bot.
7248	//
7249	// VersionOrAlias is a required field
7250	VersionOrAlias *string `location:"uri" locationName:"versionoralias" type:"string" required:"true"`
7251}
7252
7253// String returns the string representation
7254func (s GetBotInput) String() string {
7255	return awsutil.Prettify(s)
7256}
7257
7258// GoString returns the string representation
7259func (s GetBotInput) GoString() string {
7260	return s.String()
7261}
7262
7263// Validate inspects the fields of the type to determine if they are valid.
7264func (s *GetBotInput) Validate() error {
7265	invalidParams := request.ErrInvalidParams{Context: "GetBotInput"}
7266	if s.Name == nil {
7267		invalidParams.Add(request.NewErrParamRequired("Name"))
7268	}
7269	if s.Name != nil && len(*s.Name) < 2 {
7270		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
7271	}
7272	if s.VersionOrAlias == nil {
7273		invalidParams.Add(request.NewErrParamRequired("VersionOrAlias"))
7274	}
7275	if s.VersionOrAlias != nil && len(*s.VersionOrAlias) < 1 {
7276		invalidParams.Add(request.NewErrParamMinLen("VersionOrAlias", 1))
7277	}
7278
7279	if invalidParams.Len() > 0 {
7280		return invalidParams
7281	}
7282	return nil
7283}
7284
7285// SetName sets the Name field's value.
7286func (s *GetBotInput) SetName(v string) *GetBotInput {
7287	s.Name = &v
7288	return s
7289}
7290
7291// SetVersionOrAlias sets the VersionOrAlias field's value.
7292func (s *GetBotInput) SetVersionOrAlias(v string) *GetBotInput {
7293	s.VersionOrAlias = &v
7294	return s
7295}
7296
7297type GetBotOutput struct {
7298	_ struct{} `type:"structure"`
7299
7300	// The message that Amazon Lex returns when the user elects to end the conversation
7301	// without completing it. For more information, see PutBot.
7302	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
7303
7304	// Checksum of the bot used to identify a specific revision of the bot's $LATEST
7305	// version.
7306	Checksum *string `locationName:"checksum" type:"string"`
7307
7308	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
7309	// you must specify whether your use of Amazon Lex is related to a website,
7310	// program, or other application that is directed or targeted, in whole or in
7311	// part, to children under age 13 and subject to the Children's Online Privacy
7312	// Protection Act (COPPA) by specifying true or false in the childDirected field.
7313	// By specifying true in the childDirected field, you confirm that your use
7314	// of Amazon Lex is related to a website, program, or other application that
7315	// is directed or targeted, in whole or in part, to children under age 13 and
7316	// subject to COPPA. By specifying false in the childDirected field, you confirm
7317	// that your use of Amazon Lex is not related to a website, program, or other
7318	// application that is directed or targeted, in whole or in part, to children
7319	// under age 13 and subject to COPPA. You may not specify a default value for
7320	// the childDirected field that does not accurately reflect whether your use
7321	// of Amazon Lex is related to a website, program, or other application that
7322	// is directed or targeted, in whole or in part, to children under age 13 and
7323	// subject to COPPA.
7324	//
7325	// If your use of Amazon Lex relates to a website, program, or other application
7326	// that is directed in whole or in part, to children under age 13, you must
7327	// obtain any required verifiable parental consent under COPPA. For information
7328	// regarding the use of Amazon Lex in connection with websites, programs, or
7329	// other applications that are directed or targeted, in whole or in part, to
7330	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
7331	ChildDirected *bool `locationName:"childDirected" type:"boolean"`
7332
7333	// The message Amazon Lex uses when it doesn't understand the user's request.
7334	// For more information, see PutBot.
7335	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
7336
7337	// The date that the bot was created.
7338	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
7339
7340	// A description of the bot.
7341	Description *string `locationName:"description" type:"string"`
7342
7343	// Indicates whether user utterances should be sent to Amazon Comprehend for
7344	// sentiment analysis.
7345	DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"`
7346
7347	// Indicates whether the bot uses accuracy improvements. true indicates that
7348	// the bot is using the improvements, otherwise, false.
7349	EnableModelImprovements *bool `locationName:"enableModelImprovements" type:"boolean"`
7350
7351	// If status is FAILED, Amazon Lex explains why it failed to build the bot.
7352	FailureReason *string `locationName:"failureReason" type:"string"`
7353
7354	// The maximum time in seconds that Amazon Lex retains the data gathered in
7355	// a conversation. For more information, see PutBot.
7356	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
7357
7358	// An array of intent objects. For more information, see PutBot.
7359	Intents []*Intent `locationName:"intents" type:"list"`
7360
7361	// The date that the bot was updated. When you create a resource, the creation
7362	// date and last updated date are the same.
7363	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
7364
7365	// The target locale for the bot.
7366	Locale *string `locationName:"locale" type:"string" enum:"Locale"`
7367
7368	// The name of the bot.
7369	Name *string `locationName:"name" min:"2" type:"string"`
7370
7371	// The score that determines where Amazon Lex inserts the AMAZON.FallbackIntent,
7372	// AMAZON.KendraSearchIntent, or both when returning alternative intents in
7373	// a PostContent (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html)
7374	// or PostText (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
7375	// response. AMAZON.FallbackIntent is inserted if the confidence score for all
7376	// intents is below this value. AMAZON.KendraSearchIntent is only inserted if
7377	// it is configured for the bot.
7378	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double"`
7379
7380	// The status of the bot.
7381	//
7382	// When the status is BUILDING Amazon Lex is building the bot for testing and
7383	// use.
7384	//
7385	// If the status of the bot is READY_BASIC_TESTING, you can test the bot using
7386	// the exact utterances specified in the bot's intents. When the bot is ready
7387	// for full testing or to run, the status is READY.
7388	//
7389	// If there was a problem with building the bot, the status is FAILED and the
7390	// failureReason field explains why the bot did not build.
7391	//
7392	// If the bot was saved but not built, the status is NOT_BUILT.
7393	Status *string `locationName:"status" type:"string" enum:"Status"`
7394
7395	// The version of the bot. For a new bot, the version is always $LATEST.
7396	Version *string `locationName:"version" min:"1" type:"string"`
7397
7398	// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with
7399	// the user. For more information, see PutBot.
7400	VoiceId *string `locationName:"voiceId" type:"string"`
7401}
7402
7403// String returns the string representation
7404func (s GetBotOutput) String() string {
7405	return awsutil.Prettify(s)
7406}
7407
7408// GoString returns the string representation
7409func (s GetBotOutput) GoString() string {
7410	return s.String()
7411}
7412
7413// SetAbortStatement sets the AbortStatement field's value.
7414func (s *GetBotOutput) SetAbortStatement(v *Statement) *GetBotOutput {
7415	s.AbortStatement = v
7416	return s
7417}
7418
7419// SetChecksum sets the Checksum field's value.
7420func (s *GetBotOutput) SetChecksum(v string) *GetBotOutput {
7421	s.Checksum = &v
7422	return s
7423}
7424
7425// SetChildDirected sets the ChildDirected field's value.
7426func (s *GetBotOutput) SetChildDirected(v bool) *GetBotOutput {
7427	s.ChildDirected = &v
7428	return s
7429}
7430
7431// SetClarificationPrompt sets the ClarificationPrompt field's value.
7432func (s *GetBotOutput) SetClarificationPrompt(v *Prompt) *GetBotOutput {
7433	s.ClarificationPrompt = v
7434	return s
7435}
7436
7437// SetCreatedDate sets the CreatedDate field's value.
7438func (s *GetBotOutput) SetCreatedDate(v time.Time) *GetBotOutput {
7439	s.CreatedDate = &v
7440	return s
7441}
7442
7443// SetDescription sets the Description field's value.
7444func (s *GetBotOutput) SetDescription(v string) *GetBotOutput {
7445	s.Description = &v
7446	return s
7447}
7448
7449// SetDetectSentiment sets the DetectSentiment field's value.
7450func (s *GetBotOutput) SetDetectSentiment(v bool) *GetBotOutput {
7451	s.DetectSentiment = &v
7452	return s
7453}
7454
7455// SetEnableModelImprovements sets the EnableModelImprovements field's value.
7456func (s *GetBotOutput) SetEnableModelImprovements(v bool) *GetBotOutput {
7457	s.EnableModelImprovements = &v
7458	return s
7459}
7460
7461// SetFailureReason sets the FailureReason field's value.
7462func (s *GetBotOutput) SetFailureReason(v string) *GetBotOutput {
7463	s.FailureReason = &v
7464	return s
7465}
7466
7467// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
7468func (s *GetBotOutput) SetIdleSessionTTLInSeconds(v int64) *GetBotOutput {
7469	s.IdleSessionTTLInSeconds = &v
7470	return s
7471}
7472
7473// SetIntents sets the Intents field's value.
7474func (s *GetBotOutput) SetIntents(v []*Intent) *GetBotOutput {
7475	s.Intents = v
7476	return s
7477}
7478
7479// SetLastUpdatedDate sets the LastUpdatedDate field's value.
7480func (s *GetBotOutput) SetLastUpdatedDate(v time.Time) *GetBotOutput {
7481	s.LastUpdatedDate = &v
7482	return s
7483}
7484
7485// SetLocale sets the Locale field's value.
7486func (s *GetBotOutput) SetLocale(v string) *GetBotOutput {
7487	s.Locale = &v
7488	return s
7489}
7490
7491// SetName sets the Name field's value.
7492func (s *GetBotOutput) SetName(v string) *GetBotOutput {
7493	s.Name = &v
7494	return s
7495}
7496
7497// SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
7498func (s *GetBotOutput) SetNluIntentConfidenceThreshold(v float64) *GetBotOutput {
7499	s.NluIntentConfidenceThreshold = &v
7500	return s
7501}
7502
7503// SetStatus sets the Status field's value.
7504func (s *GetBotOutput) SetStatus(v string) *GetBotOutput {
7505	s.Status = &v
7506	return s
7507}
7508
7509// SetVersion sets the Version field's value.
7510func (s *GetBotOutput) SetVersion(v string) *GetBotOutput {
7511	s.Version = &v
7512	return s
7513}
7514
7515// SetVoiceId sets the VoiceId field's value.
7516func (s *GetBotOutput) SetVoiceId(v string) *GetBotOutput {
7517	s.VoiceId = &v
7518	return s
7519}
7520
7521type GetBotVersionsInput struct {
7522	_ struct{} `type:"structure"`
7523
7524	// The maximum number of bot versions to return in the response. The default
7525	// is 10.
7526	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7527
7528	// The name of the bot for which versions should be returned.
7529	//
7530	// Name is a required field
7531	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
7532
7533	// A pagination token for fetching the next page of bot versions. If the response
7534	// to this call is truncated, Amazon Lex returns a pagination token in the response.
7535	// To fetch the next page of versions, specify the pagination token in the next
7536	// request.
7537	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7538}
7539
7540// String returns the string representation
7541func (s GetBotVersionsInput) String() string {
7542	return awsutil.Prettify(s)
7543}
7544
7545// GoString returns the string representation
7546func (s GetBotVersionsInput) GoString() string {
7547	return s.String()
7548}
7549
7550// Validate inspects the fields of the type to determine if they are valid.
7551func (s *GetBotVersionsInput) Validate() error {
7552	invalidParams := request.ErrInvalidParams{Context: "GetBotVersionsInput"}
7553	if s.MaxResults != nil && *s.MaxResults < 1 {
7554		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7555	}
7556	if s.Name == nil {
7557		invalidParams.Add(request.NewErrParamRequired("Name"))
7558	}
7559	if s.Name != nil && len(*s.Name) < 2 {
7560		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
7561	}
7562
7563	if invalidParams.Len() > 0 {
7564		return invalidParams
7565	}
7566	return nil
7567}
7568
7569// SetMaxResults sets the MaxResults field's value.
7570func (s *GetBotVersionsInput) SetMaxResults(v int64) *GetBotVersionsInput {
7571	s.MaxResults = &v
7572	return s
7573}
7574
7575// SetName sets the Name field's value.
7576func (s *GetBotVersionsInput) SetName(v string) *GetBotVersionsInput {
7577	s.Name = &v
7578	return s
7579}
7580
7581// SetNextToken sets the NextToken field's value.
7582func (s *GetBotVersionsInput) SetNextToken(v string) *GetBotVersionsInput {
7583	s.NextToken = &v
7584	return s
7585}
7586
7587type GetBotVersionsOutput struct {
7588	_ struct{} `type:"structure"`
7589
7590	// An array of BotMetadata objects, one for each numbered version of the bot
7591	// plus one for the $LATEST version.
7592	Bots []*BotMetadata `locationName:"bots" type:"list"`
7593
7594	// A pagination token for fetching the next page of bot versions. If the response
7595	// to this call is truncated, Amazon Lex returns a pagination token in the response.
7596	// To fetch the next page of versions, specify the pagination token in the next
7597	// request.
7598	NextToken *string `locationName:"nextToken" type:"string"`
7599}
7600
7601// String returns the string representation
7602func (s GetBotVersionsOutput) String() string {
7603	return awsutil.Prettify(s)
7604}
7605
7606// GoString returns the string representation
7607func (s GetBotVersionsOutput) GoString() string {
7608	return s.String()
7609}
7610
7611// SetBots sets the Bots field's value.
7612func (s *GetBotVersionsOutput) SetBots(v []*BotMetadata) *GetBotVersionsOutput {
7613	s.Bots = v
7614	return s
7615}
7616
7617// SetNextToken sets the NextToken field's value.
7618func (s *GetBotVersionsOutput) SetNextToken(v string) *GetBotVersionsOutput {
7619	s.NextToken = &v
7620	return s
7621}
7622
7623type GetBotsInput struct {
7624	_ struct{} `type:"structure"`
7625
7626	// The maximum number of bots to return in the response that the request will
7627	// return. The default is 10.
7628	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7629
7630	// Substring to match in bot names. A bot will be returned if any part of its
7631	// name matches the substring. For example, "xyz" matches both "xyzabc" and
7632	// "abcxyz."
7633	NameContains *string `location:"querystring" locationName:"nameContains" min:"2" type:"string"`
7634
7635	// A pagination token that fetches the next page of bots. If the response to
7636	// this call is truncated, Amazon Lex returns a pagination token in the response.
7637	// To fetch the next page of bots, specify the pagination token in the next
7638	// request.
7639	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7640}
7641
7642// String returns the string representation
7643func (s GetBotsInput) String() string {
7644	return awsutil.Prettify(s)
7645}
7646
7647// GoString returns the string representation
7648func (s GetBotsInput) GoString() string {
7649	return s.String()
7650}
7651
7652// Validate inspects the fields of the type to determine if they are valid.
7653func (s *GetBotsInput) Validate() error {
7654	invalidParams := request.ErrInvalidParams{Context: "GetBotsInput"}
7655	if s.MaxResults != nil && *s.MaxResults < 1 {
7656		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7657	}
7658	if s.NameContains != nil && len(*s.NameContains) < 2 {
7659		invalidParams.Add(request.NewErrParamMinLen("NameContains", 2))
7660	}
7661
7662	if invalidParams.Len() > 0 {
7663		return invalidParams
7664	}
7665	return nil
7666}
7667
7668// SetMaxResults sets the MaxResults field's value.
7669func (s *GetBotsInput) SetMaxResults(v int64) *GetBotsInput {
7670	s.MaxResults = &v
7671	return s
7672}
7673
7674// SetNameContains sets the NameContains field's value.
7675func (s *GetBotsInput) SetNameContains(v string) *GetBotsInput {
7676	s.NameContains = &v
7677	return s
7678}
7679
7680// SetNextToken sets the NextToken field's value.
7681func (s *GetBotsInput) SetNextToken(v string) *GetBotsInput {
7682	s.NextToken = &v
7683	return s
7684}
7685
7686type GetBotsOutput struct {
7687	_ struct{} `type:"structure"`
7688
7689	// An array of botMetadata objects, with one entry for each bot.
7690	Bots []*BotMetadata `locationName:"bots" type:"list"`
7691
7692	// If the response is truncated, it includes a pagination token that you can
7693	// specify in your next request to fetch the next page of bots.
7694	NextToken *string `locationName:"nextToken" type:"string"`
7695}
7696
7697// String returns the string representation
7698func (s GetBotsOutput) String() string {
7699	return awsutil.Prettify(s)
7700}
7701
7702// GoString returns the string representation
7703func (s GetBotsOutput) GoString() string {
7704	return s.String()
7705}
7706
7707// SetBots sets the Bots field's value.
7708func (s *GetBotsOutput) SetBots(v []*BotMetadata) *GetBotsOutput {
7709	s.Bots = v
7710	return s
7711}
7712
7713// SetNextToken sets the NextToken field's value.
7714func (s *GetBotsOutput) SetNextToken(v string) *GetBotsOutput {
7715	s.NextToken = &v
7716	return s
7717}
7718
7719type GetBuiltinIntentInput struct {
7720	_ struct{} `type:"structure"`
7721
7722	// The unique identifier for a built-in intent. To find the signature for an
7723	// intent, see Standard Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
7724	// in the Alexa Skills Kit.
7725	//
7726	// Signature is a required field
7727	Signature *string `location:"uri" locationName:"signature" type:"string" required:"true"`
7728}
7729
7730// String returns the string representation
7731func (s GetBuiltinIntentInput) String() string {
7732	return awsutil.Prettify(s)
7733}
7734
7735// GoString returns the string representation
7736func (s GetBuiltinIntentInput) GoString() string {
7737	return s.String()
7738}
7739
7740// Validate inspects the fields of the type to determine if they are valid.
7741func (s *GetBuiltinIntentInput) Validate() error {
7742	invalidParams := request.ErrInvalidParams{Context: "GetBuiltinIntentInput"}
7743	if s.Signature == nil {
7744		invalidParams.Add(request.NewErrParamRequired("Signature"))
7745	}
7746	if s.Signature != nil && len(*s.Signature) < 1 {
7747		invalidParams.Add(request.NewErrParamMinLen("Signature", 1))
7748	}
7749
7750	if invalidParams.Len() > 0 {
7751		return invalidParams
7752	}
7753	return nil
7754}
7755
7756// SetSignature sets the Signature field's value.
7757func (s *GetBuiltinIntentInput) SetSignature(v string) *GetBuiltinIntentInput {
7758	s.Signature = &v
7759	return s
7760}
7761
7762type GetBuiltinIntentOutput struct {
7763	_ struct{} `type:"structure"`
7764
7765	// The unique identifier for a built-in intent.
7766	Signature *string `locationName:"signature" type:"string"`
7767
7768	// An array of BuiltinIntentSlot objects, one entry for each slot type in the
7769	// intent.
7770	Slots []*BuiltinIntentSlot `locationName:"slots" type:"list"`
7771
7772	// A list of locales that the intent supports.
7773	SupportedLocales []*string `locationName:"supportedLocales" type:"list"`
7774}
7775
7776// String returns the string representation
7777func (s GetBuiltinIntentOutput) String() string {
7778	return awsutil.Prettify(s)
7779}
7780
7781// GoString returns the string representation
7782func (s GetBuiltinIntentOutput) GoString() string {
7783	return s.String()
7784}
7785
7786// SetSignature sets the Signature field's value.
7787func (s *GetBuiltinIntentOutput) SetSignature(v string) *GetBuiltinIntentOutput {
7788	s.Signature = &v
7789	return s
7790}
7791
7792// SetSlots sets the Slots field's value.
7793func (s *GetBuiltinIntentOutput) SetSlots(v []*BuiltinIntentSlot) *GetBuiltinIntentOutput {
7794	s.Slots = v
7795	return s
7796}
7797
7798// SetSupportedLocales sets the SupportedLocales field's value.
7799func (s *GetBuiltinIntentOutput) SetSupportedLocales(v []*string) *GetBuiltinIntentOutput {
7800	s.SupportedLocales = v
7801	return s
7802}
7803
7804type GetBuiltinIntentsInput struct {
7805	_ struct{} `type:"structure"`
7806
7807	// A list of locales that the intent supports.
7808	Locale *string `location:"querystring" locationName:"locale" type:"string" enum:"Locale"`
7809
7810	// The maximum number of intents to return in the response. The default is 10.
7811	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7812
7813	// A pagination token that fetches the next page of intents. If this API call
7814	// is truncated, Amazon Lex returns a pagination token in the response. To fetch
7815	// the next page of intents, use the pagination token in the next request.
7816	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7817
7818	// Substring to match in built-in intent signatures. An intent will be returned
7819	// if any part of its signature matches the substring. For example, "xyz" matches
7820	// both "xyzabc" and "abcxyz." To find the signature for an intent, see Standard
7821	// Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
7822	// in the Alexa Skills Kit.
7823	SignatureContains *string `location:"querystring" locationName:"signatureContains" type:"string"`
7824}
7825
7826// String returns the string representation
7827func (s GetBuiltinIntentsInput) String() string {
7828	return awsutil.Prettify(s)
7829}
7830
7831// GoString returns the string representation
7832func (s GetBuiltinIntentsInput) GoString() string {
7833	return s.String()
7834}
7835
7836// Validate inspects the fields of the type to determine if they are valid.
7837func (s *GetBuiltinIntentsInput) Validate() error {
7838	invalidParams := request.ErrInvalidParams{Context: "GetBuiltinIntentsInput"}
7839	if s.MaxResults != nil && *s.MaxResults < 1 {
7840		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7841	}
7842
7843	if invalidParams.Len() > 0 {
7844		return invalidParams
7845	}
7846	return nil
7847}
7848
7849// SetLocale sets the Locale field's value.
7850func (s *GetBuiltinIntentsInput) SetLocale(v string) *GetBuiltinIntentsInput {
7851	s.Locale = &v
7852	return s
7853}
7854
7855// SetMaxResults sets the MaxResults field's value.
7856func (s *GetBuiltinIntentsInput) SetMaxResults(v int64) *GetBuiltinIntentsInput {
7857	s.MaxResults = &v
7858	return s
7859}
7860
7861// SetNextToken sets the NextToken field's value.
7862func (s *GetBuiltinIntentsInput) SetNextToken(v string) *GetBuiltinIntentsInput {
7863	s.NextToken = &v
7864	return s
7865}
7866
7867// SetSignatureContains sets the SignatureContains field's value.
7868func (s *GetBuiltinIntentsInput) SetSignatureContains(v string) *GetBuiltinIntentsInput {
7869	s.SignatureContains = &v
7870	return s
7871}
7872
7873type GetBuiltinIntentsOutput struct {
7874	_ struct{} `type:"structure"`
7875
7876	// An array of builtinIntentMetadata objects, one for each intent in the response.
7877	Intents []*BuiltinIntentMetadata `locationName:"intents" type:"list"`
7878
7879	// A pagination token that fetches the next page of intents. If the response
7880	// to this API call is truncated, Amazon Lex returns a pagination token in the
7881	// response. To fetch the next page of intents, specify the pagination token
7882	// in the next request.
7883	NextToken *string `locationName:"nextToken" type:"string"`
7884}
7885
7886// String returns the string representation
7887func (s GetBuiltinIntentsOutput) String() string {
7888	return awsutil.Prettify(s)
7889}
7890
7891// GoString returns the string representation
7892func (s GetBuiltinIntentsOutput) GoString() string {
7893	return s.String()
7894}
7895
7896// SetIntents sets the Intents field's value.
7897func (s *GetBuiltinIntentsOutput) SetIntents(v []*BuiltinIntentMetadata) *GetBuiltinIntentsOutput {
7898	s.Intents = v
7899	return s
7900}
7901
7902// SetNextToken sets the NextToken field's value.
7903func (s *GetBuiltinIntentsOutput) SetNextToken(v string) *GetBuiltinIntentsOutput {
7904	s.NextToken = &v
7905	return s
7906}
7907
7908type GetBuiltinSlotTypesInput struct {
7909	_ struct{} `type:"structure"`
7910
7911	// A list of locales that the slot type supports.
7912	Locale *string `location:"querystring" locationName:"locale" type:"string" enum:"Locale"`
7913
7914	// The maximum number of slot types to return in the response. The default is
7915	// 10.
7916	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7917
7918	// A pagination token that fetches the next page of slot types. If the response
7919	// to this API call is truncated, Amazon Lex returns a pagination token in the
7920	// response. To fetch the next page of slot types, specify the pagination token
7921	// in the next request.
7922	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7923
7924	// Substring to match in built-in slot type signatures. A slot type will be
7925	// returned if any part of its signature matches the substring. For example,
7926	// "xyz" matches both "xyzabc" and "abcxyz."
7927	SignatureContains *string `location:"querystring" locationName:"signatureContains" type:"string"`
7928}
7929
7930// String returns the string representation
7931func (s GetBuiltinSlotTypesInput) String() string {
7932	return awsutil.Prettify(s)
7933}
7934
7935// GoString returns the string representation
7936func (s GetBuiltinSlotTypesInput) GoString() string {
7937	return s.String()
7938}
7939
7940// Validate inspects the fields of the type to determine if they are valid.
7941func (s *GetBuiltinSlotTypesInput) Validate() error {
7942	invalidParams := request.ErrInvalidParams{Context: "GetBuiltinSlotTypesInput"}
7943	if s.MaxResults != nil && *s.MaxResults < 1 {
7944		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7945	}
7946
7947	if invalidParams.Len() > 0 {
7948		return invalidParams
7949	}
7950	return nil
7951}
7952
7953// SetLocale sets the Locale field's value.
7954func (s *GetBuiltinSlotTypesInput) SetLocale(v string) *GetBuiltinSlotTypesInput {
7955	s.Locale = &v
7956	return s
7957}
7958
7959// SetMaxResults sets the MaxResults field's value.
7960func (s *GetBuiltinSlotTypesInput) SetMaxResults(v int64) *GetBuiltinSlotTypesInput {
7961	s.MaxResults = &v
7962	return s
7963}
7964
7965// SetNextToken sets the NextToken field's value.
7966func (s *GetBuiltinSlotTypesInput) SetNextToken(v string) *GetBuiltinSlotTypesInput {
7967	s.NextToken = &v
7968	return s
7969}
7970
7971// SetSignatureContains sets the SignatureContains field's value.
7972func (s *GetBuiltinSlotTypesInput) SetSignatureContains(v string) *GetBuiltinSlotTypesInput {
7973	s.SignatureContains = &v
7974	return s
7975}
7976
7977type GetBuiltinSlotTypesOutput struct {
7978	_ struct{} `type:"structure"`
7979
7980	// If the response is truncated, the response includes a pagination token that
7981	// you can use in your next request to fetch the next page of slot types.
7982	NextToken *string `locationName:"nextToken" type:"string"`
7983
7984	// An array of BuiltInSlotTypeMetadata objects, one entry for each slot type
7985	// returned.
7986	SlotTypes []*BuiltinSlotTypeMetadata `locationName:"slotTypes" type:"list"`
7987}
7988
7989// String returns the string representation
7990func (s GetBuiltinSlotTypesOutput) String() string {
7991	return awsutil.Prettify(s)
7992}
7993
7994// GoString returns the string representation
7995func (s GetBuiltinSlotTypesOutput) GoString() string {
7996	return s.String()
7997}
7998
7999// SetNextToken sets the NextToken field's value.
8000func (s *GetBuiltinSlotTypesOutput) SetNextToken(v string) *GetBuiltinSlotTypesOutput {
8001	s.NextToken = &v
8002	return s
8003}
8004
8005// SetSlotTypes sets the SlotTypes field's value.
8006func (s *GetBuiltinSlotTypesOutput) SetSlotTypes(v []*BuiltinSlotTypeMetadata) *GetBuiltinSlotTypesOutput {
8007	s.SlotTypes = v
8008	return s
8009}
8010
8011type GetExportInput struct {
8012	_ struct{} `type:"structure"`
8013
8014	// The format of the exported data.
8015	//
8016	// ExportType is a required field
8017	ExportType *string `location:"querystring" locationName:"exportType" type:"string" required:"true" enum:"ExportType"`
8018
8019	// The name of the bot to export.
8020	//
8021	// Name is a required field
8022	Name *string `location:"querystring" locationName:"name" min:"1" type:"string" required:"true"`
8023
8024	// The type of resource to export.
8025	//
8026	// ResourceType is a required field
8027	ResourceType *string `location:"querystring" locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
8028
8029	// The version of the bot to export.
8030	//
8031	// Version is a required field
8032	Version *string `location:"querystring" locationName:"version" min:"1" type:"string" required:"true"`
8033}
8034
8035// String returns the string representation
8036func (s GetExportInput) String() string {
8037	return awsutil.Prettify(s)
8038}
8039
8040// GoString returns the string representation
8041func (s GetExportInput) GoString() string {
8042	return s.String()
8043}
8044
8045// Validate inspects the fields of the type to determine if they are valid.
8046func (s *GetExportInput) Validate() error {
8047	invalidParams := request.ErrInvalidParams{Context: "GetExportInput"}
8048	if s.ExportType == nil {
8049		invalidParams.Add(request.NewErrParamRequired("ExportType"))
8050	}
8051	if s.Name == nil {
8052		invalidParams.Add(request.NewErrParamRequired("Name"))
8053	}
8054	if s.Name != nil && len(*s.Name) < 1 {
8055		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8056	}
8057	if s.ResourceType == nil {
8058		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
8059	}
8060	if s.Version == nil {
8061		invalidParams.Add(request.NewErrParamRequired("Version"))
8062	}
8063	if s.Version != nil && len(*s.Version) < 1 {
8064		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
8065	}
8066
8067	if invalidParams.Len() > 0 {
8068		return invalidParams
8069	}
8070	return nil
8071}
8072
8073// SetExportType sets the ExportType field's value.
8074func (s *GetExportInput) SetExportType(v string) *GetExportInput {
8075	s.ExportType = &v
8076	return s
8077}
8078
8079// SetName sets the Name field's value.
8080func (s *GetExportInput) SetName(v string) *GetExportInput {
8081	s.Name = &v
8082	return s
8083}
8084
8085// SetResourceType sets the ResourceType field's value.
8086func (s *GetExportInput) SetResourceType(v string) *GetExportInput {
8087	s.ResourceType = &v
8088	return s
8089}
8090
8091// SetVersion sets the Version field's value.
8092func (s *GetExportInput) SetVersion(v string) *GetExportInput {
8093	s.Version = &v
8094	return s
8095}
8096
8097type GetExportOutput struct {
8098	_ struct{} `type:"structure"`
8099
8100	// The status of the export.
8101	//
8102	//    * IN_PROGRESS - The export is in progress.
8103	//
8104	//    * READY - The export is complete.
8105	//
8106	//    * FAILED - The export could not be completed.
8107	ExportStatus *string `locationName:"exportStatus" type:"string" enum:"ExportStatus"`
8108
8109	// The format of the exported data.
8110	ExportType *string `locationName:"exportType" type:"string" enum:"ExportType"`
8111
8112	// If status is FAILED, Amazon Lex provides the reason that it failed to export
8113	// the resource.
8114	FailureReason *string `locationName:"failureReason" type:"string"`
8115
8116	// The name of the bot being exported.
8117	Name *string `locationName:"name" min:"1" type:"string"`
8118
8119	// The type of the exported resource.
8120	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
8121
8122	// An S3 pre-signed URL that provides the location of the exported resource.
8123	// The exported resource is a ZIP archive that contains the exported resource
8124	// in JSON format. The structure of the archive may change. Your code should
8125	// not rely on the archive structure.
8126	Url *string `locationName:"url" type:"string"`
8127
8128	// The version of the bot being exported.
8129	Version *string `locationName:"version" min:"1" type:"string"`
8130}
8131
8132// String returns the string representation
8133func (s GetExportOutput) String() string {
8134	return awsutil.Prettify(s)
8135}
8136
8137// GoString returns the string representation
8138func (s GetExportOutput) GoString() string {
8139	return s.String()
8140}
8141
8142// SetExportStatus sets the ExportStatus field's value.
8143func (s *GetExportOutput) SetExportStatus(v string) *GetExportOutput {
8144	s.ExportStatus = &v
8145	return s
8146}
8147
8148// SetExportType sets the ExportType field's value.
8149func (s *GetExportOutput) SetExportType(v string) *GetExportOutput {
8150	s.ExportType = &v
8151	return s
8152}
8153
8154// SetFailureReason sets the FailureReason field's value.
8155func (s *GetExportOutput) SetFailureReason(v string) *GetExportOutput {
8156	s.FailureReason = &v
8157	return s
8158}
8159
8160// SetName sets the Name field's value.
8161func (s *GetExportOutput) SetName(v string) *GetExportOutput {
8162	s.Name = &v
8163	return s
8164}
8165
8166// SetResourceType sets the ResourceType field's value.
8167func (s *GetExportOutput) SetResourceType(v string) *GetExportOutput {
8168	s.ResourceType = &v
8169	return s
8170}
8171
8172// SetUrl sets the Url field's value.
8173func (s *GetExportOutput) SetUrl(v string) *GetExportOutput {
8174	s.Url = &v
8175	return s
8176}
8177
8178// SetVersion sets the Version field's value.
8179func (s *GetExportOutput) SetVersion(v string) *GetExportOutput {
8180	s.Version = &v
8181	return s
8182}
8183
8184type GetImportInput struct {
8185	_ struct{} `type:"structure"`
8186
8187	// The identifier of the import job information to return.
8188	//
8189	// ImportId is a required field
8190	ImportId *string `location:"uri" locationName:"importId" type:"string" required:"true"`
8191}
8192
8193// String returns the string representation
8194func (s GetImportInput) String() string {
8195	return awsutil.Prettify(s)
8196}
8197
8198// GoString returns the string representation
8199func (s GetImportInput) GoString() string {
8200	return s.String()
8201}
8202
8203// Validate inspects the fields of the type to determine if they are valid.
8204func (s *GetImportInput) Validate() error {
8205	invalidParams := request.ErrInvalidParams{Context: "GetImportInput"}
8206	if s.ImportId == nil {
8207		invalidParams.Add(request.NewErrParamRequired("ImportId"))
8208	}
8209	if s.ImportId != nil && len(*s.ImportId) < 1 {
8210		invalidParams.Add(request.NewErrParamMinLen("ImportId", 1))
8211	}
8212
8213	if invalidParams.Len() > 0 {
8214		return invalidParams
8215	}
8216	return nil
8217}
8218
8219// SetImportId sets the ImportId field's value.
8220func (s *GetImportInput) SetImportId(v string) *GetImportInput {
8221	s.ImportId = &v
8222	return s
8223}
8224
8225type GetImportOutput struct {
8226	_ struct{} `type:"structure"`
8227
8228	// A timestamp for the date and time that the import job was created.
8229	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
8230
8231	// A string that describes why an import job failed to complete.
8232	FailureReason []*string `locationName:"failureReason" type:"list"`
8233
8234	// The identifier for the specific import job.
8235	ImportId *string `locationName:"importId" type:"string"`
8236
8237	// The status of the import job. If the status is FAILED, you can get the reason
8238	// for the failure from the failureReason field.
8239	ImportStatus *string `locationName:"importStatus" type:"string" enum:"ImportStatus"`
8240
8241	// The action taken when there was a conflict between an existing resource and
8242	// a resource in the import file.
8243	MergeStrategy *string `locationName:"mergeStrategy" type:"string" enum:"MergeStrategy"`
8244
8245	// The name given to the import job.
8246	Name *string `locationName:"name" min:"1" type:"string"`
8247
8248	// The type of resource imported.
8249	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
8250}
8251
8252// String returns the string representation
8253func (s GetImportOutput) String() string {
8254	return awsutil.Prettify(s)
8255}
8256
8257// GoString returns the string representation
8258func (s GetImportOutput) GoString() string {
8259	return s.String()
8260}
8261
8262// SetCreatedDate sets the CreatedDate field's value.
8263func (s *GetImportOutput) SetCreatedDate(v time.Time) *GetImportOutput {
8264	s.CreatedDate = &v
8265	return s
8266}
8267
8268// SetFailureReason sets the FailureReason field's value.
8269func (s *GetImportOutput) SetFailureReason(v []*string) *GetImportOutput {
8270	s.FailureReason = v
8271	return s
8272}
8273
8274// SetImportId sets the ImportId field's value.
8275func (s *GetImportOutput) SetImportId(v string) *GetImportOutput {
8276	s.ImportId = &v
8277	return s
8278}
8279
8280// SetImportStatus sets the ImportStatus field's value.
8281func (s *GetImportOutput) SetImportStatus(v string) *GetImportOutput {
8282	s.ImportStatus = &v
8283	return s
8284}
8285
8286// SetMergeStrategy sets the MergeStrategy field's value.
8287func (s *GetImportOutput) SetMergeStrategy(v string) *GetImportOutput {
8288	s.MergeStrategy = &v
8289	return s
8290}
8291
8292// SetName sets the Name field's value.
8293func (s *GetImportOutput) SetName(v string) *GetImportOutput {
8294	s.Name = &v
8295	return s
8296}
8297
8298// SetResourceType sets the ResourceType field's value.
8299func (s *GetImportOutput) SetResourceType(v string) *GetImportOutput {
8300	s.ResourceType = &v
8301	return s
8302}
8303
8304type GetIntentInput struct {
8305	_ struct{} `type:"structure"`
8306
8307	// The name of the intent. The name is case sensitive.
8308	//
8309	// Name is a required field
8310	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
8311
8312	// The version of the intent.
8313	//
8314	// Version is a required field
8315	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
8316}
8317
8318// String returns the string representation
8319func (s GetIntentInput) String() string {
8320	return awsutil.Prettify(s)
8321}
8322
8323// GoString returns the string representation
8324func (s GetIntentInput) GoString() string {
8325	return s.String()
8326}
8327
8328// Validate inspects the fields of the type to determine if they are valid.
8329func (s *GetIntentInput) Validate() error {
8330	invalidParams := request.ErrInvalidParams{Context: "GetIntentInput"}
8331	if s.Name == nil {
8332		invalidParams.Add(request.NewErrParamRequired("Name"))
8333	}
8334	if s.Name != nil && len(*s.Name) < 1 {
8335		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8336	}
8337	if s.Version == nil {
8338		invalidParams.Add(request.NewErrParamRequired("Version"))
8339	}
8340	if s.Version != nil && len(*s.Version) < 1 {
8341		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
8342	}
8343
8344	if invalidParams.Len() > 0 {
8345		return invalidParams
8346	}
8347	return nil
8348}
8349
8350// SetName sets the Name field's value.
8351func (s *GetIntentInput) SetName(v string) *GetIntentInput {
8352	s.Name = &v
8353	return s
8354}
8355
8356// SetVersion sets the Version field's value.
8357func (s *GetIntentInput) SetVersion(v string) *GetIntentInput {
8358	s.Version = &v
8359	return s
8360}
8361
8362type GetIntentOutput struct {
8363	_ struct{} `type:"structure"`
8364
8365	// Checksum of the intent.
8366	Checksum *string `locationName:"checksum" type:"string"`
8367
8368	// After the Lambda function specified in the fulfillmentActivity element fulfills
8369	// the intent, Amazon Lex conveys this statement to the user.
8370	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
8371
8372	// If defined in the bot, Amazon Lex uses prompt to confirm the intent before
8373	// fulfilling the user's request. For more information, see PutIntent.
8374	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
8375
8376	// The date that the intent was created.
8377	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
8378
8379	// A description of the intent.
8380	Description *string `locationName:"description" type:"string"`
8381
8382	// If defined in the bot, Amazon Amazon Lex invokes this Lambda function for
8383	// each user input. For more information, see PutIntent.
8384	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
8385
8386	// If defined in the bot, Amazon Lex uses this prompt to solicit additional
8387	// user activity after the intent is fulfilled. For more information, see PutIntent.
8388	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
8389
8390	// Describes how the intent is fulfilled. For more information, see PutIntent.
8391	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
8392
8393	// An array of InputContext objects that lists the contexts that must be active
8394	// for Amazon Lex to choose the intent in a conversation with the user.
8395	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
8396
8397	// Configuration information, if any, to connect to an Amazon Kendra index with
8398	// the AMAZON.KendraSearchIntent intent.
8399	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
8400
8401	// The date that the intent was updated. When you create a resource, the creation
8402	// date and the last updated date are the same.
8403	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
8404
8405	// The name of the intent.
8406	Name *string `locationName:"name" min:"1" type:"string"`
8407
8408	// An array of OutputContext objects that lists the contexts that the intent
8409	// activates when the intent is fulfilled.
8410	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
8411
8412	// A unique identifier for a built-in intent.
8413	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
8414
8415	// If the user answers "no" to the question defined in confirmationPrompt, Amazon
8416	// Lex responds with this statement to acknowledge that the intent was canceled.
8417	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
8418
8419	// An array of sample utterances configured for the intent.
8420	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
8421
8422	// An array of intent slots configured for the intent.
8423	Slots []*Slot `locationName:"slots" type:"list"`
8424
8425	// The version of the intent.
8426	Version *string `locationName:"version" min:"1" type:"string"`
8427}
8428
8429// String returns the string representation
8430func (s GetIntentOutput) String() string {
8431	return awsutil.Prettify(s)
8432}
8433
8434// GoString returns the string representation
8435func (s GetIntentOutput) GoString() string {
8436	return s.String()
8437}
8438
8439// SetChecksum sets the Checksum field's value.
8440func (s *GetIntentOutput) SetChecksum(v string) *GetIntentOutput {
8441	s.Checksum = &v
8442	return s
8443}
8444
8445// SetConclusionStatement sets the ConclusionStatement field's value.
8446func (s *GetIntentOutput) SetConclusionStatement(v *Statement) *GetIntentOutput {
8447	s.ConclusionStatement = v
8448	return s
8449}
8450
8451// SetConfirmationPrompt sets the ConfirmationPrompt field's value.
8452func (s *GetIntentOutput) SetConfirmationPrompt(v *Prompt) *GetIntentOutput {
8453	s.ConfirmationPrompt = v
8454	return s
8455}
8456
8457// SetCreatedDate sets the CreatedDate field's value.
8458func (s *GetIntentOutput) SetCreatedDate(v time.Time) *GetIntentOutput {
8459	s.CreatedDate = &v
8460	return s
8461}
8462
8463// SetDescription sets the Description field's value.
8464func (s *GetIntentOutput) SetDescription(v string) *GetIntentOutput {
8465	s.Description = &v
8466	return s
8467}
8468
8469// SetDialogCodeHook sets the DialogCodeHook field's value.
8470func (s *GetIntentOutput) SetDialogCodeHook(v *CodeHook) *GetIntentOutput {
8471	s.DialogCodeHook = v
8472	return s
8473}
8474
8475// SetFollowUpPrompt sets the FollowUpPrompt field's value.
8476func (s *GetIntentOutput) SetFollowUpPrompt(v *FollowUpPrompt) *GetIntentOutput {
8477	s.FollowUpPrompt = v
8478	return s
8479}
8480
8481// SetFulfillmentActivity sets the FulfillmentActivity field's value.
8482func (s *GetIntentOutput) SetFulfillmentActivity(v *FulfillmentActivity) *GetIntentOutput {
8483	s.FulfillmentActivity = v
8484	return s
8485}
8486
8487// SetInputContexts sets the InputContexts field's value.
8488func (s *GetIntentOutput) SetInputContexts(v []*InputContext) *GetIntentOutput {
8489	s.InputContexts = v
8490	return s
8491}
8492
8493// SetKendraConfiguration sets the KendraConfiguration field's value.
8494func (s *GetIntentOutput) SetKendraConfiguration(v *KendraConfiguration) *GetIntentOutput {
8495	s.KendraConfiguration = v
8496	return s
8497}
8498
8499// SetLastUpdatedDate sets the LastUpdatedDate field's value.
8500func (s *GetIntentOutput) SetLastUpdatedDate(v time.Time) *GetIntentOutput {
8501	s.LastUpdatedDate = &v
8502	return s
8503}
8504
8505// SetName sets the Name field's value.
8506func (s *GetIntentOutput) SetName(v string) *GetIntentOutput {
8507	s.Name = &v
8508	return s
8509}
8510
8511// SetOutputContexts sets the OutputContexts field's value.
8512func (s *GetIntentOutput) SetOutputContexts(v []*OutputContext) *GetIntentOutput {
8513	s.OutputContexts = v
8514	return s
8515}
8516
8517// SetParentIntentSignature sets the ParentIntentSignature field's value.
8518func (s *GetIntentOutput) SetParentIntentSignature(v string) *GetIntentOutput {
8519	s.ParentIntentSignature = &v
8520	return s
8521}
8522
8523// SetRejectionStatement sets the RejectionStatement field's value.
8524func (s *GetIntentOutput) SetRejectionStatement(v *Statement) *GetIntentOutput {
8525	s.RejectionStatement = v
8526	return s
8527}
8528
8529// SetSampleUtterances sets the SampleUtterances field's value.
8530func (s *GetIntentOutput) SetSampleUtterances(v []*string) *GetIntentOutput {
8531	s.SampleUtterances = v
8532	return s
8533}
8534
8535// SetSlots sets the Slots field's value.
8536func (s *GetIntentOutput) SetSlots(v []*Slot) *GetIntentOutput {
8537	s.Slots = v
8538	return s
8539}
8540
8541// SetVersion sets the Version field's value.
8542func (s *GetIntentOutput) SetVersion(v string) *GetIntentOutput {
8543	s.Version = &v
8544	return s
8545}
8546
8547type GetIntentVersionsInput struct {
8548	_ struct{} `type:"structure"`
8549
8550	// The maximum number of intent versions to return in the response. The default
8551	// is 10.
8552	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
8553
8554	// The name of the intent for which versions should be returned.
8555	//
8556	// Name is a required field
8557	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
8558
8559	// A pagination token for fetching the next page of intent versions. If the
8560	// response to this call is truncated, Amazon Lex returns a pagination token
8561	// in the response. To fetch the next page of versions, specify the pagination
8562	// token in the next request.
8563	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
8564}
8565
8566// String returns the string representation
8567func (s GetIntentVersionsInput) String() string {
8568	return awsutil.Prettify(s)
8569}
8570
8571// GoString returns the string representation
8572func (s GetIntentVersionsInput) GoString() string {
8573	return s.String()
8574}
8575
8576// Validate inspects the fields of the type to determine if they are valid.
8577func (s *GetIntentVersionsInput) Validate() error {
8578	invalidParams := request.ErrInvalidParams{Context: "GetIntentVersionsInput"}
8579	if s.MaxResults != nil && *s.MaxResults < 1 {
8580		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8581	}
8582	if s.Name == nil {
8583		invalidParams.Add(request.NewErrParamRequired("Name"))
8584	}
8585	if s.Name != nil && len(*s.Name) < 1 {
8586		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8587	}
8588
8589	if invalidParams.Len() > 0 {
8590		return invalidParams
8591	}
8592	return nil
8593}
8594
8595// SetMaxResults sets the MaxResults field's value.
8596func (s *GetIntentVersionsInput) SetMaxResults(v int64) *GetIntentVersionsInput {
8597	s.MaxResults = &v
8598	return s
8599}
8600
8601// SetName sets the Name field's value.
8602func (s *GetIntentVersionsInput) SetName(v string) *GetIntentVersionsInput {
8603	s.Name = &v
8604	return s
8605}
8606
8607// SetNextToken sets the NextToken field's value.
8608func (s *GetIntentVersionsInput) SetNextToken(v string) *GetIntentVersionsInput {
8609	s.NextToken = &v
8610	return s
8611}
8612
8613type GetIntentVersionsOutput struct {
8614	_ struct{} `type:"structure"`
8615
8616	// An array of IntentMetadata objects, one for each numbered version of the
8617	// intent plus one for the $LATEST version.
8618	Intents []*IntentMetadata `locationName:"intents" type:"list"`
8619
8620	// A pagination token for fetching the next page of intent versions. If the
8621	// response to this call is truncated, Amazon Lex returns a pagination token
8622	// in the response. To fetch the next page of versions, specify the pagination
8623	// token in the next request.
8624	NextToken *string `locationName:"nextToken" type:"string"`
8625}
8626
8627// String returns the string representation
8628func (s GetIntentVersionsOutput) String() string {
8629	return awsutil.Prettify(s)
8630}
8631
8632// GoString returns the string representation
8633func (s GetIntentVersionsOutput) GoString() string {
8634	return s.String()
8635}
8636
8637// SetIntents sets the Intents field's value.
8638func (s *GetIntentVersionsOutput) SetIntents(v []*IntentMetadata) *GetIntentVersionsOutput {
8639	s.Intents = v
8640	return s
8641}
8642
8643// SetNextToken sets the NextToken field's value.
8644func (s *GetIntentVersionsOutput) SetNextToken(v string) *GetIntentVersionsOutput {
8645	s.NextToken = &v
8646	return s
8647}
8648
8649type GetIntentsInput struct {
8650	_ struct{} `type:"structure"`
8651
8652	// The maximum number of intents to return in the response. The default is 10.
8653	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
8654
8655	// Substring to match in intent names. An intent will be returned if any part
8656	// of its name matches the substring. For example, "xyz" matches both "xyzabc"
8657	// and "abcxyz."
8658	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
8659
8660	// A pagination token that fetches the next page of intents. If the response
8661	// to this API call is truncated, Amazon Lex returns a pagination token in the
8662	// response. To fetch the next page of intents, specify the pagination token
8663	// in the next request.
8664	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
8665}
8666
8667// String returns the string representation
8668func (s GetIntentsInput) String() string {
8669	return awsutil.Prettify(s)
8670}
8671
8672// GoString returns the string representation
8673func (s GetIntentsInput) GoString() string {
8674	return s.String()
8675}
8676
8677// Validate inspects the fields of the type to determine if they are valid.
8678func (s *GetIntentsInput) Validate() error {
8679	invalidParams := request.ErrInvalidParams{Context: "GetIntentsInput"}
8680	if s.MaxResults != nil && *s.MaxResults < 1 {
8681		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8682	}
8683	if s.NameContains != nil && len(*s.NameContains) < 1 {
8684		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
8685	}
8686
8687	if invalidParams.Len() > 0 {
8688		return invalidParams
8689	}
8690	return nil
8691}
8692
8693// SetMaxResults sets the MaxResults field's value.
8694func (s *GetIntentsInput) SetMaxResults(v int64) *GetIntentsInput {
8695	s.MaxResults = &v
8696	return s
8697}
8698
8699// SetNameContains sets the NameContains field's value.
8700func (s *GetIntentsInput) SetNameContains(v string) *GetIntentsInput {
8701	s.NameContains = &v
8702	return s
8703}
8704
8705// SetNextToken sets the NextToken field's value.
8706func (s *GetIntentsInput) SetNextToken(v string) *GetIntentsInput {
8707	s.NextToken = &v
8708	return s
8709}
8710
8711type GetIntentsOutput struct {
8712	_ struct{} `type:"structure"`
8713
8714	// An array of Intent objects. For more information, see PutBot.
8715	Intents []*IntentMetadata `locationName:"intents" type:"list"`
8716
8717	// If the response is truncated, the response includes a pagination token that
8718	// you can specify in your next request to fetch the next page of intents.
8719	NextToken *string `locationName:"nextToken" type:"string"`
8720}
8721
8722// String returns the string representation
8723func (s GetIntentsOutput) String() string {
8724	return awsutil.Prettify(s)
8725}
8726
8727// GoString returns the string representation
8728func (s GetIntentsOutput) GoString() string {
8729	return s.String()
8730}
8731
8732// SetIntents sets the Intents field's value.
8733func (s *GetIntentsOutput) SetIntents(v []*IntentMetadata) *GetIntentsOutput {
8734	s.Intents = v
8735	return s
8736}
8737
8738// SetNextToken sets the NextToken field's value.
8739func (s *GetIntentsOutput) SetNextToken(v string) *GetIntentsOutput {
8740	s.NextToken = &v
8741	return s
8742}
8743
8744type GetSlotTypeInput struct {
8745	_ struct{} `type:"structure"`
8746
8747	// The name of the slot type. The name is case sensitive.
8748	//
8749	// Name is a required field
8750	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
8751
8752	// The version of the slot type.
8753	//
8754	// Version is a required field
8755	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
8756}
8757
8758// String returns the string representation
8759func (s GetSlotTypeInput) String() string {
8760	return awsutil.Prettify(s)
8761}
8762
8763// GoString returns the string representation
8764func (s GetSlotTypeInput) GoString() string {
8765	return s.String()
8766}
8767
8768// Validate inspects the fields of the type to determine if they are valid.
8769func (s *GetSlotTypeInput) Validate() error {
8770	invalidParams := request.ErrInvalidParams{Context: "GetSlotTypeInput"}
8771	if s.Name == nil {
8772		invalidParams.Add(request.NewErrParamRequired("Name"))
8773	}
8774	if s.Name != nil && len(*s.Name) < 1 {
8775		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8776	}
8777	if s.Version == nil {
8778		invalidParams.Add(request.NewErrParamRequired("Version"))
8779	}
8780	if s.Version != nil && len(*s.Version) < 1 {
8781		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
8782	}
8783
8784	if invalidParams.Len() > 0 {
8785		return invalidParams
8786	}
8787	return nil
8788}
8789
8790// SetName sets the Name field's value.
8791func (s *GetSlotTypeInput) SetName(v string) *GetSlotTypeInput {
8792	s.Name = &v
8793	return s
8794}
8795
8796// SetVersion sets the Version field's value.
8797func (s *GetSlotTypeInput) SetVersion(v string) *GetSlotTypeInput {
8798	s.Version = &v
8799	return s
8800}
8801
8802type GetSlotTypeOutput struct {
8803	_ struct{} `type:"structure"`
8804
8805	// Checksum of the $LATEST version of the slot type.
8806	Checksum *string `locationName:"checksum" type:"string"`
8807
8808	// The date that the slot type was created.
8809	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
8810
8811	// A description of the slot type.
8812	Description *string `locationName:"description" type:"string"`
8813
8814	// A list of EnumerationValue objects that defines the values that the slot
8815	// type can take.
8816	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" type:"list"`
8817
8818	// The date that the slot type was updated. When you create a resource, the
8819	// creation date and last update date are the same.
8820	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
8821
8822	// The name of the slot type.
8823	Name *string `locationName:"name" min:"1" type:"string"`
8824
8825	// The built-in slot type used as a parent for the slot type.
8826	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" min:"1" type:"string"`
8827
8828	// Configuration information that extends the parent built-in slot type.
8829	SlotTypeConfigurations []*SlotTypeConfiguration `locationName:"slotTypeConfigurations" type:"list"`
8830
8831	// The strategy that Amazon Lex uses to determine the value of the slot. For
8832	// more information, see PutSlotType.
8833	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
8834
8835	// The version of the slot type.
8836	Version *string `locationName:"version" min:"1" type:"string"`
8837}
8838
8839// String returns the string representation
8840func (s GetSlotTypeOutput) String() string {
8841	return awsutil.Prettify(s)
8842}
8843
8844// GoString returns the string representation
8845func (s GetSlotTypeOutput) GoString() string {
8846	return s.String()
8847}
8848
8849// SetChecksum sets the Checksum field's value.
8850func (s *GetSlotTypeOutput) SetChecksum(v string) *GetSlotTypeOutput {
8851	s.Checksum = &v
8852	return s
8853}
8854
8855// SetCreatedDate sets the CreatedDate field's value.
8856func (s *GetSlotTypeOutput) SetCreatedDate(v time.Time) *GetSlotTypeOutput {
8857	s.CreatedDate = &v
8858	return s
8859}
8860
8861// SetDescription sets the Description field's value.
8862func (s *GetSlotTypeOutput) SetDescription(v string) *GetSlotTypeOutput {
8863	s.Description = &v
8864	return s
8865}
8866
8867// SetEnumerationValues sets the EnumerationValues field's value.
8868func (s *GetSlotTypeOutput) SetEnumerationValues(v []*EnumerationValue) *GetSlotTypeOutput {
8869	s.EnumerationValues = v
8870	return s
8871}
8872
8873// SetLastUpdatedDate sets the LastUpdatedDate field's value.
8874func (s *GetSlotTypeOutput) SetLastUpdatedDate(v time.Time) *GetSlotTypeOutput {
8875	s.LastUpdatedDate = &v
8876	return s
8877}
8878
8879// SetName sets the Name field's value.
8880func (s *GetSlotTypeOutput) SetName(v string) *GetSlotTypeOutput {
8881	s.Name = &v
8882	return s
8883}
8884
8885// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
8886func (s *GetSlotTypeOutput) SetParentSlotTypeSignature(v string) *GetSlotTypeOutput {
8887	s.ParentSlotTypeSignature = &v
8888	return s
8889}
8890
8891// SetSlotTypeConfigurations sets the SlotTypeConfigurations field's value.
8892func (s *GetSlotTypeOutput) SetSlotTypeConfigurations(v []*SlotTypeConfiguration) *GetSlotTypeOutput {
8893	s.SlotTypeConfigurations = v
8894	return s
8895}
8896
8897// SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
8898func (s *GetSlotTypeOutput) SetValueSelectionStrategy(v string) *GetSlotTypeOutput {
8899	s.ValueSelectionStrategy = &v
8900	return s
8901}
8902
8903// SetVersion sets the Version field's value.
8904func (s *GetSlotTypeOutput) SetVersion(v string) *GetSlotTypeOutput {
8905	s.Version = &v
8906	return s
8907}
8908
8909type GetSlotTypeVersionsInput struct {
8910	_ struct{} `type:"structure"`
8911
8912	// The maximum number of slot type versions to return in the response. The default
8913	// is 10.
8914	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
8915
8916	// The name of the slot type for which versions should be returned.
8917	//
8918	// Name is a required field
8919	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
8920
8921	// A pagination token for fetching the next page of slot type versions. If the
8922	// response to this call is truncated, Amazon Lex returns a pagination token
8923	// in the response. To fetch the next page of versions, specify the pagination
8924	// token in the next request.
8925	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
8926}
8927
8928// String returns the string representation
8929func (s GetSlotTypeVersionsInput) String() string {
8930	return awsutil.Prettify(s)
8931}
8932
8933// GoString returns the string representation
8934func (s GetSlotTypeVersionsInput) GoString() string {
8935	return s.String()
8936}
8937
8938// Validate inspects the fields of the type to determine if they are valid.
8939func (s *GetSlotTypeVersionsInput) Validate() error {
8940	invalidParams := request.ErrInvalidParams{Context: "GetSlotTypeVersionsInput"}
8941	if s.MaxResults != nil && *s.MaxResults < 1 {
8942		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8943	}
8944	if s.Name == nil {
8945		invalidParams.Add(request.NewErrParamRequired("Name"))
8946	}
8947	if s.Name != nil && len(*s.Name) < 1 {
8948		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8949	}
8950
8951	if invalidParams.Len() > 0 {
8952		return invalidParams
8953	}
8954	return nil
8955}
8956
8957// SetMaxResults sets the MaxResults field's value.
8958func (s *GetSlotTypeVersionsInput) SetMaxResults(v int64) *GetSlotTypeVersionsInput {
8959	s.MaxResults = &v
8960	return s
8961}
8962
8963// SetName sets the Name field's value.
8964func (s *GetSlotTypeVersionsInput) SetName(v string) *GetSlotTypeVersionsInput {
8965	s.Name = &v
8966	return s
8967}
8968
8969// SetNextToken sets the NextToken field's value.
8970func (s *GetSlotTypeVersionsInput) SetNextToken(v string) *GetSlotTypeVersionsInput {
8971	s.NextToken = &v
8972	return s
8973}
8974
8975type GetSlotTypeVersionsOutput struct {
8976	_ struct{} `type:"structure"`
8977
8978	// A pagination token for fetching the next page of slot type versions. If the
8979	// response to this call is truncated, Amazon Lex returns a pagination token
8980	// in the response. To fetch the next page of versions, specify the pagination
8981	// token in the next request.
8982	NextToken *string `locationName:"nextToken" type:"string"`
8983
8984	// An array of SlotTypeMetadata objects, one for each numbered version of the
8985	// slot type plus one for the $LATEST version.
8986	SlotTypes []*SlotTypeMetadata `locationName:"slotTypes" type:"list"`
8987}
8988
8989// String returns the string representation
8990func (s GetSlotTypeVersionsOutput) String() string {
8991	return awsutil.Prettify(s)
8992}
8993
8994// GoString returns the string representation
8995func (s GetSlotTypeVersionsOutput) GoString() string {
8996	return s.String()
8997}
8998
8999// SetNextToken sets the NextToken field's value.
9000func (s *GetSlotTypeVersionsOutput) SetNextToken(v string) *GetSlotTypeVersionsOutput {
9001	s.NextToken = &v
9002	return s
9003}
9004
9005// SetSlotTypes sets the SlotTypes field's value.
9006func (s *GetSlotTypeVersionsOutput) SetSlotTypes(v []*SlotTypeMetadata) *GetSlotTypeVersionsOutput {
9007	s.SlotTypes = v
9008	return s
9009}
9010
9011type GetSlotTypesInput struct {
9012	_ struct{} `type:"structure"`
9013
9014	// The maximum number of slot types to return in the response. The default is
9015	// 10.
9016	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
9017
9018	// Substring to match in slot type names. A slot type will be returned if any
9019	// part of its name matches the substring. For example, "xyz" matches both "xyzabc"
9020	// and "abcxyz."
9021	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
9022
9023	// A pagination token that fetches the next page of slot types. If the response
9024	// to this API call is truncated, Amazon Lex returns a pagination token in the
9025	// response. To fetch next page of slot types, specify the pagination token
9026	// in the next request.
9027	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
9028}
9029
9030// String returns the string representation
9031func (s GetSlotTypesInput) String() string {
9032	return awsutil.Prettify(s)
9033}
9034
9035// GoString returns the string representation
9036func (s GetSlotTypesInput) GoString() string {
9037	return s.String()
9038}
9039
9040// Validate inspects the fields of the type to determine if they are valid.
9041func (s *GetSlotTypesInput) Validate() error {
9042	invalidParams := request.ErrInvalidParams{Context: "GetSlotTypesInput"}
9043	if s.MaxResults != nil && *s.MaxResults < 1 {
9044		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9045	}
9046	if s.NameContains != nil && len(*s.NameContains) < 1 {
9047		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
9048	}
9049
9050	if invalidParams.Len() > 0 {
9051		return invalidParams
9052	}
9053	return nil
9054}
9055
9056// SetMaxResults sets the MaxResults field's value.
9057func (s *GetSlotTypesInput) SetMaxResults(v int64) *GetSlotTypesInput {
9058	s.MaxResults = &v
9059	return s
9060}
9061
9062// SetNameContains sets the NameContains field's value.
9063func (s *GetSlotTypesInput) SetNameContains(v string) *GetSlotTypesInput {
9064	s.NameContains = &v
9065	return s
9066}
9067
9068// SetNextToken sets the NextToken field's value.
9069func (s *GetSlotTypesInput) SetNextToken(v string) *GetSlotTypesInput {
9070	s.NextToken = &v
9071	return s
9072}
9073
9074type GetSlotTypesOutput struct {
9075	_ struct{} `type:"structure"`
9076
9077	// If the response is truncated, it includes a pagination token that you can
9078	// specify in your next request to fetch the next page of slot types.
9079	NextToken *string `locationName:"nextToken" type:"string"`
9080
9081	// An array of objects, one for each slot type, that provides information such
9082	// as the name of the slot type, the version, and a description.
9083	SlotTypes []*SlotTypeMetadata `locationName:"slotTypes" type:"list"`
9084}
9085
9086// String returns the string representation
9087func (s GetSlotTypesOutput) String() string {
9088	return awsutil.Prettify(s)
9089}
9090
9091// GoString returns the string representation
9092func (s GetSlotTypesOutput) GoString() string {
9093	return s.String()
9094}
9095
9096// SetNextToken sets the NextToken field's value.
9097func (s *GetSlotTypesOutput) SetNextToken(v string) *GetSlotTypesOutput {
9098	s.NextToken = &v
9099	return s
9100}
9101
9102// SetSlotTypes sets the SlotTypes field's value.
9103func (s *GetSlotTypesOutput) SetSlotTypes(v []*SlotTypeMetadata) *GetSlotTypesOutput {
9104	s.SlotTypes = v
9105	return s
9106}
9107
9108type GetUtterancesViewInput struct {
9109	_ struct{} `type:"structure"`
9110
9111	// The name of the bot for which utterance information should be returned.
9112	//
9113	// BotName is a required field
9114	BotName *string `location:"uri" locationName:"botname" min:"2" type:"string" required:"true"`
9115
9116	// An array of bot versions for which utterance information should be returned.
9117	// The limit is 5 versions per request.
9118	//
9119	// BotVersions is a required field
9120	BotVersions []*string `location:"querystring" locationName:"bot_versions" min:"1" type:"list" required:"true"`
9121
9122	// To return utterances that were recognized and handled, use Detected. To return
9123	// utterances that were not recognized, use Missed.
9124	//
9125	// StatusType is a required field
9126	StatusType *string `location:"querystring" locationName:"status_type" type:"string" required:"true" enum:"StatusType"`
9127}
9128
9129// String returns the string representation
9130func (s GetUtterancesViewInput) String() string {
9131	return awsutil.Prettify(s)
9132}
9133
9134// GoString returns the string representation
9135func (s GetUtterancesViewInput) GoString() string {
9136	return s.String()
9137}
9138
9139// Validate inspects the fields of the type to determine if they are valid.
9140func (s *GetUtterancesViewInput) Validate() error {
9141	invalidParams := request.ErrInvalidParams{Context: "GetUtterancesViewInput"}
9142	if s.BotName == nil {
9143		invalidParams.Add(request.NewErrParamRequired("BotName"))
9144	}
9145	if s.BotName != nil && len(*s.BotName) < 2 {
9146		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
9147	}
9148	if s.BotVersions == nil {
9149		invalidParams.Add(request.NewErrParamRequired("BotVersions"))
9150	}
9151	if s.BotVersions != nil && len(s.BotVersions) < 1 {
9152		invalidParams.Add(request.NewErrParamMinLen("BotVersions", 1))
9153	}
9154	if s.StatusType == nil {
9155		invalidParams.Add(request.NewErrParamRequired("StatusType"))
9156	}
9157
9158	if invalidParams.Len() > 0 {
9159		return invalidParams
9160	}
9161	return nil
9162}
9163
9164// SetBotName sets the BotName field's value.
9165func (s *GetUtterancesViewInput) SetBotName(v string) *GetUtterancesViewInput {
9166	s.BotName = &v
9167	return s
9168}
9169
9170// SetBotVersions sets the BotVersions field's value.
9171func (s *GetUtterancesViewInput) SetBotVersions(v []*string) *GetUtterancesViewInput {
9172	s.BotVersions = v
9173	return s
9174}
9175
9176// SetStatusType sets the StatusType field's value.
9177func (s *GetUtterancesViewInput) SetStatusType(v string) *GetUtterancesViewInput {
9178	s.StatusType = &v
9179	return s
9180}
9181
9182type GetUtterancesViewOutput struct {
9183	_ struct{} `type:"structure"`
9184
9185	// The name of the bot for which utterance information was returned.
9186	BotName *string `locationName:"botName" min:"2" type:"string"`
9187
9188	// An array of UtteranceList objects, each containing a list of UtteranceData
9189	// objects describing the utterances that were processed by your bot. The response
9190	// contains a maximum of 100 UtteranceData objects for each version. Amazon
9191	// Lex returns the most frequent utterances received by the bot in the last
9192	// 15 days.
9193	Utterances []*UtteranceList `locationName:"utterances" type:"list"`
9194}
9195
9196// String returns the string representation
9197func (s GetUtterancesViewOutput) String() string {
9198	return awsutil.Prettify(s)
9199}
9200
9201// GoString returns the string representation
9202func (s GetUtterancesViewOutput) GoString() string {
9203	return s.String()
9204}
9205
9206// SetBotName sets the BotName field's value.
9207func (s *GetUtterancesViewOutput) SetBotName(v string) *GetUtterancesViewOutput {
9208	s.BotName = &v
9209	return s
9210}
9211
9212// SetUtterances sets the Utterances field's value.
9213func (s *GetUtterancesViewOutput) SetUtterances(v []*UtteranceList) *GetUtterancesViewOutput {
9214	s.Utterances = v
9215	return s
9216}
9217
9218// The name of a context that must be active for an intent to be selected by
9219// Amazon Lex.
9220type InputContext struct {
9221	_ struct{} `type:"structure"`
9222
9223	// The name of the context.
9224	//
9225	// Name is a required field
9226	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
9227}
9228
9229// String returns the string representation
9230func (s InputContext) String() string {
9231	return awsutil.Prettify(s)
9232}
9233
9234// GoString returns the string representation
9235func (s InputContext) GoString() string {
9236	return s.String()
9237}
9238
9239// Validate inspects the fields of the type to determine if they are valid.
9240func (s *InputContext) Validate() error {
9241	invalidParams := request.ErrInvalidParams{Context: "InputContext"}
9242	if s.Name == nil {
9243		invalidParams.Add(request.NewErrParamRequired("Name"))
9244	}
9245	if s.Name != nil && len(*s.Name) < 1 {
9246		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9247	}
9248
9249	if invalidParams.Len() > 0 {
9250		return invalidParams
9251	}
9252	return nil
9253}
9254
9255// SetName sets the Name field's value.
9256func (s *InputContext) SetName(v string) *InputContext {
9257	s.Name = &v
9258	return s
9259}
9260
9261// Identifies the specific version of an intent.
9262type Intent struct {
9263	_ struct{} `type:"structure"`
9264
9265	// The name of the intent.
9266	//
9267	// IntentName is a required field
9268	IntentName *string `locationName:"intentName" min:"1" type:"string" required:"true"`
9269
9270	// The version of the intent.
9271	//
9272	// IntentVersion is a required field
9273	IntentVersion *string `locationName:"intentVersion" min:"1" type:"string" required:"true"`
9274}
9275
9276// String returns the string representation
9277func (s Intent) String() string {
9278	return awsutil.Prettify(s)
9279}
9280
9281// GoString returns the string representation
9282func (s Intent) GoString() string {
9283	return s.String()
9284}
9285
9286// Validate inspects the fields of the type to determine if they are valid.
9287func (s *Intent) Validate() error {
9288	invalidParams := request.ErrInvalidParams{Context: "Intent"}
9289	if s.IntentName == nil {
9290		invalidParams.Add(request.NewErrParamRequired("IntentName"))
9291	}
9292	if s.IntentName != nil && len(*s.IntentName) < 1 {
9293		invalidParams.Add(request.NewErrParamMinLen("IntentName", 1))
9294	}
9295	if s.IntentVersion == nil {
9296		invalidParams.Add(request.NewErrParamRequired("IntentVersion"))
9297	}
9298	if s.IntentVersion != nil && len(*s.IntentVersion) < 1 {
9299		invalidParams.Add(request.NewErrParamMinLen("IntentVersion", 1))
9300	}
9301
9302	if invalidParams.Len() > 0 {
9303		return invalidParams
9304	}
9305	return nil
9306}
9307
9308// SetIntentName sets the IntentName field's value.
9309func (s *Intent) SetIntentName(v string) *Intent {
9310	s.IntentName = &v
9311	return s
9312}
9313
9314// SetIntentVersion sets the IntentVersion field's value.
9315func (s *Intent) SetIntentVersion(v string) *Intent {
9316	s.IntentVersion = &v
9317	return s
9318}
9319
9320// Provides information about an intent.
9321type IntentMetadata struct {
9322	_ struct{} `type:"structure"`
9323
9324	// The date that the intent was created.
9325	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
9326
9327	// A description of the intent.
9328	Description *string `locationName:"description" type:"string"`
9329
9330	// The date that the intent was updated. When you create an intent, the creation
9331	// date and last updated date are the same.
9332	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
9333
9334	// The name of the intent.
9335	Name *string `locationName:"name" min:"1" type:"string"`
9336
9337	// The version of the intent.
9338	Version *string `locationName:"version" min:"1" type:"string"`
9339}
9340
9341// String returns the string representation
9342func (s IntentMetadata) String() string {
9343	return awsutil.Prettify(s)
9344}
9345
9346// GoString returns the string representation
9347func (s IntentMetadata) GoString() string {
9348	return s.String()
9349}
9350
9351// SetCreatedDate sets the CreatedDate field's value.
9352func (s *IntentMetadata) SetCreatedDate(v time.Time) *IntentMetadata {
9353	s.CreatedDate = &v
9354	return s
9355}
9356
9357// SetDescription sets the Description field's value.
9358func (s *IntentMetadata) SetDescription(v string) *IntentMetadata {
9359	s.Description = &v
9360	return s
9361}
9362
9363// SetLastUpdatedDate sets the LastUpdatedDate field's value.
9364func (s *IntentMetadata) SetLastUpdatedDate(v time.Time) *IntentMetadata {
9365	s.LastUpdatedDate = &v
9366	return s
9367}
9368
9369// SetName sets the Name field's value.
9370func (s *IntentMetadata) SetName(v string) *IntentMetadata {
9371	s.Name = &v
9372	return s
9373}
9374
9375// SetVersion sets the Version field's value.
9376func (s *IntentMetadata) SetVersion(v string) *IntentMetadata {
9377	s.Version = &v
9378	return s
9379}
9380
9381// An internal Amazon Lex error occurred. Try your request again.
9382type InternalFailureException struct {
9383	_            struct{}                  `type:"structure"`
9384	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9385
9386	Message_ *string `locationName:"message" type:"string"`
9387}
9388
9389// String returns the string representation
9390func (s InternalFailureException) String() string {
9391	return awsutil.Prettify(s)
9392}
9393
9394// GoString returns the string representation
9395func (s InternalFailureException) GoString() string {
9396	return s.String()
9397}
9398
9399func newErrorInternalFailureException(v protocol.ResponseMetadata) error {
9400	return &InternalFailureException{
9401		RespMetadata: v,
9402	}
9403}
9404
9405// Code returns the exception type name.
9406func (s *InternalFailureException) Code() string {
9407	return "InternalFailureException"
9408}
9409
9410// Message returns the exception's message.
9411func (s *InternalFailureException) Message() string {
9412	if s.Message_ != nil {
9413		return *s.Message_
9414	}
9415	return ""
9416}
9417
9418// OrigErr always returns nil, satisfies awserr.Error interface.
9419func (s *InternalFailureException) OrigErr() error {
9420	return nil
9421}
9422
9423func (s *InternalFailureException) Error() string {
9424	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9425}
9426
9427// Status code returns the HTTP status code for the request's response error.
9428func (s *InternalFailureException) StatusCode() int {
9429	return s.RespMetadata.StatusCode
9430}
9431
9432// RequestID returns the service's response RequestID for request.
9433func (s *InternalFailureException) RequestID() string {
9434	return s.RespMetadata.RequestID
9435}
9436
9437// Provides configuration information for the AMAZON.KendraSearchIntent intent.
9438// When you use this intent, Amazon Lex searches the specified Amazon Kendra
9439// index and returns documents from the index that match the user's utterance.
9440// For more information, see AMAZON.KendraSearchIntent (http://docs.aws.amazon.com/lex/latest/dg/built-in-intent-kendra-search.html).
9441type KendraConfiguration struct {
9442	_ struct{} `type:"structure"`
9443
9444	// The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the
9445	// AMAZON.KendraSearchIntent intent to search. The index must be in the same
9446	// account and Region as the Amazon Lex bot. If the Amazon Kendra index does
9447	// not exist, you get an exception when you call the PutIntent operation.
9448	//
9449	// KendraIndex is a required field
9450	KendraIndex *string `locationName:"kendraIndex" min:"20" type:"string" required:"true"`
9451
9452	// A query filter that Amazon Lex sends to Amazon Kendra to filter the response
9453	// from the query. The filter is in the format defined by Amazon Kendra. For
9454	// more information, see Filtering queries (http://docs.aws.amazon.com/kendra/latest/dg/filtering.html).
9455	//
9456	// You can override this filter string with a new filter string at runtime.
9457	QueryFilterString *string `locationName:"queryFilterString" type:"string"`
9458
9459	// The Amazon Resource Name (ARN) of an IAM role that has permission to search
9460	// the Amazon Kendra index. The role must be in the same account and Region
9461	// as the Amazon Lex bot. If the role does not exist, you get an exception when
9462	// you call the PutIntent operation.
9463	//
9464	// Role is a required field
9465	Role *string `locationName:"role" min:"20" type:"string" required:"true"`
9466}
9467
9468// String returns the string representation
9469func (s KendraConfiguration) String() string {
9470	return awsutil.Prettify(s)
9471}
9472
9473// GoString returns the string representation
9474func (s KendraConfiguration) GoString() string {
9475	return s.String()
9476}
9477
9478// Validate inspects the fields of the type to determine if they are valid.
9479func (s *KendraConfiguration) Validate() error {
9480	invalidParams := request.ErrInvalidParams{Context: "KendraConfiguration"}
9481	if s.KendraIndex == nil {
9482		invalidParams.Add(request.NewErrParamRequired("KendraIndex"))
9483	}
9484	if s.KendraIndex != nil && len(*s.KendraIndex) < 20 {
9485		invalidParams.Add(request.NewErrParamMinLen("KendraIndex", 20))
9486	}
9487	if s.Role == nil {
9488		invalidParams.Add(request.NewErrParamRequired("Role"))
9489	}
9490	if s.Role != nil && len(*s.Role) < 20 {
9491		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
9492	}
9493
9494	if invalidParams.Len() > 0 {
9495		return invalidParams
9496	}
9497	return nil
9498}
9499
9500// SetKendraIndex sets the KendraIndex field's value.
9501func (s *KendraConfiguration) SetKendraIndex(v string) *KendraConfiguration {
9502	s.KendraIndex = &v
9503	return s
9504}
9505
9506// SetQueryFilterString sets the QueryFilterString field's value.
9507func (s *KendraConfiguration) SetQueryFilterString(v string) *KendraConfiguration {
9508	s.QueryFilterString = &v
9509	return s
9510}
9511
9512// SetRole sets the Role field's value.
9513func (s *KendraConfiguration) SetRole(v string) *KendraConfiguration {
9514	s.Role = &v
9515	return s
9516}
9517
9518// The request exceeded a limit. Try your request again.
9519type LimitExceededException struct {
9520	_            struct{}                  `type:"structure"`
9521	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9522
9523	Message_ *string `locationName:"message" type:"string"`
9524
9525	RetryAfterSeconds *string `location:"header" locationName:"Retry-After" type:"string"`
9526}
9527
9528// String returns the string representation
9529func (s LimitExceededException) String() string {
9530	return awsutil.Prettify(s)
9531}
9532
9533// GoString returns the string representation
9534func (s LimitExceededException) GoString() string {
9535	return s.String()
9536}
9537
9538func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
9539	return &LimitExceededException{
9540		RespMetadata: v,
9541	}
9542}
9543
9544// Code returns the exception type name.
9545func (s *LimitExceededException) Code() string {
9546	return "LimitExceededException"
9547}
9548
9549// Message returns the exception's message.
9550func (s *LimitExceededException) Message() string {
9551	if s.Message_ != nil {
9552		return *s.Message_
9553	}
9554	return ""
9555}
9556
9557// OrigErr always returns nil, satisfies awserr.Error interface.
9558func (s *LimitExceededException) OrigErr() error {
9559	return nil
9560}
9561
9562func (s *LimitExceededException) Error() string {
9563	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
9564}
9565
9566// Status code returns the HTTP status code for the request's response error.
9567func (s *LimitExceededException) StatusCode() int {
9568	return s.RespMetadata.StatusCode
9569}
9570
9571// RequestID returns the service's response RequestID for request.
9572func (s *LimitExceededException) RequestID() string {
9573	return s.RespMetadata.RequestID
9574}
9575
9576type ListTagsForResourceInput struct {
9577	_ struct{} `type:"structure"`
9578
9579	// The Amazon Resource Name (ARN) of the resource to get a list of tags for.
9580	//
9581	// ResourceArn is a required field
9582	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
9583}
9584
9585// String returns the string representation
9586func (s ListTagsForResourceInput) String() string {
9587	return awsutil.Prettify(s)
9588}
9589
9590// GoString returns the string representation
9591func (s ListTagsForResourceInput) GoString() string {
9592	return s.String()
9593}
9594
9595// Validate inspects the fields of the type to determine if they are valid.
9596func (s *ListTagsForResourceInput) Validate() error {
9597	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
9598	if s.ResourceArn == nil {
9599		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9600	}
9601	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
9602		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
9603	}
9604
9605	if invalidParams.Len() > 0 {
9606		return invalidParams
9607	}
9608	return nil
9609}
9610
9611// SetResourceArn sets the ResourceArn field's value.
9612func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
9613	s.ResourceArn = &v
9614	return s
9615}
9616
9617type ListTagsForResourceOutput struct {
9618	_ struct{} `type:"structure"`
9619
9620	// The tags associated with a resource.
9621	Tags []*Tag `locationName:"tags" type:"list"`
9622}
9623
9624// String returns the string representation
9625func (s ListTagsForResourceOutput) String() string {
9626	return awsutil.Prettify(s)
9627}
9628
9629// GoString returns the string representation
9630func (s ListTagsForResourceOutput) GoString() string {
9631	return s.String()
9632}
9633
9634// SetTags sets the Tags field's value.
9635func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
9636	s.Tags = v
9637	return s
9638}
9639
9640// Settings used to configure delivery mode and destination for conversation
9641// logs.
9642type LogSettingsRequest struct {
9643	_ struct{} `type:"structure"`
9644
9645	// Where the logs will be delivered. Text logs are delivered to a CloudWatch
9646	// Logs log group. Audio logs are delivered to an S3 bucket.
9647	//
9648	// Destination is a required field
9649	Destination *string `locationName:"destination" type:"string" required:"true" enum:"Destination"`
9650
9651	// The Amazon Resource Name (ARN) of the AWS KMS customer managed key for encrypting
9652	// audio logs delivered to an S3 bucket. The key does not apply to CloudWatch
9653	// Logs and is optional for S3 buckets.
9654	KmsKeyArn *string `locationName:"kmsKeyArn" min:"20" type:"string"`
9655
9656	// The type of logging to enable. Text logs are delivered to a CloudWatch Logs
9657	// log group. Audio logs are delivered to an S3 bucket.
9658	//
9659	// LogType is a required field
9660	LogType *string `locationName:"logType" type:"string" required:"true" enum:"LogType"`
9661
9662	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or S3 bucket
9663	// where the logs should be delivered.
9664	//
9665	// ResourceArn is a required field
9666	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"`
9667}
9668
9669// String returns the string representation
9670func (s LogSettingsRequest) String() string {
9671	return awsutil.Prettify(s)
9672}
9673
9674// GoString returns the string representation
9675func (s LogSettingsRequest) GoString() string {
9676	return s.String()
9677}
9678
9679// Validate inspects the fields of the type to determine if they are valid.
9680func (s *LogSettingsRequest) Validate() error {
9681	invalidParams := request.ErrInvalidParams{Context: "LogSettingsRequest"}
9682	if s.Destination == nil {
9683		invalidParams.Add(request.NewErrParamRequired("Destination"))
9684	}
9685	if s.KmsKeyArn != nil && len(*s.KmsKeyArn) < 20 {
9686		invalidParams.Add(request.NewErrParamMinLen("KmsKeyArn", 20))
9687	}
9688	if s.LogType == nil {
9689		invalidParams.Add(request.NewErrParamRequired("LogType"))
9690	}
9691	if s.ResourceArn == nil {
9692		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9693	}
9694	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
9695		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
9696	}
9697
9698	if invalidParams.Len() > 0 {
9699		return invalidParams
9700	}
9701	return nil
9702}
9703
9704// SetDestination sets the Destination field's value.
9705func (s *LogSettingsRequest) SetDestination(v string) *LogSettingsRequest {
9706	s.Destination = &v
9707	return s
9708}
9709
9710// SetKmsKeyArn sets the KmsKeyArn field's value.
9711func (s *LogSettingsRequest) SetKmsKeyArn(v string) *LogSettingsRequest {
9712	s.KmsKeyArn = &v
9713	return s
9714}
9715
9716// SetLogType sets the LogType field's value.
9717func (s *LogSettingsRequest) SetLogType(v string) *LogSettingsRequest {
9718	s.LogType = &v
9719	return s
9720}
9721
9722// SetResourceArn sets the ResourceArn field's value.
9723func (s *LogSettingsRequest) SetResourceArn(v string) *LogSettingsRequest {
9724	s.ResourceArn = &v
9725	return s
9726}
9727
9728// The settings for conversation logs.
9729type LogSettingsResponse struct {
9730	_ struct{} `type:"structure"`
9731
9732	// The destination where logs are delivered.
9733	Destination *string `locationName:"destination" type:"string" enum:"Destination"`
9734
9735	// The Amazon Resource Name (ARN) of the key used to encrypt audio logs in an
9736	// S3 bucket.
9737	KmsKeyArn *string `locationName:"kmsKeyArn" min:"20" type:"string"`
9738
9739	// The type of logging that is enabled.
9740	LogType *string `locationName:"logType" type:"string" enum:"LogType"`
9741
9742	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or S3 bucket
9743	// where the logs are delivered.
9744	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string"`
9745
9746	// The resource prefix is the first part of the S3 object key within the S3
9747	// bucket that you specified to contain audio logs. For CloudWatch Logs it is
9748	// the prefix of the log stream name within the log group that you specified.
9749	ResourcePrefix *string `locationName:"resourcePrefix" type:"string"`
9750}
9751
9752// String returns the string representation
9753func (s LogSettingsResponse) String() string {
9754	return awsutil.Prettify(s)
9755}
9756
9757// GoString returns the string representation
9758func (s LogSettingsResponse) GoString() string {
9759	return s.String()
9760}
9761
9762// SetDestination sets the Destination field's value.
9763func (s *LogSettingsResponse) SetDestination(v string) *LogSettingsResponse {
9764	s.Destination = &v
9765	return s
9766}
9767
9768// SetKmsKeyArn sets the KmsKeyArn field's value.
9769func (s *LogSettingsResponse) SetKmsKeyArn(v string) *LogSettingsResponse {
9770	s.KmsKeyArn = &v
9771	return s
9772}
9773
9774// SetLogType sets the LogType field's value.
9775func (s *LogSettingsResponse) SetLogType(v string) *LogSettingsResponse {
9776	s.LogType = &v
9777	return s
9778}
9779
9780// SetResourceArn sets the ResourceArn field's value.
9781func (s *LogSettingsResponse) SetResourceArn(v string) *LogSettingsResponse {
9782	s.ResourceArn = &v
9783	return s
9784}
9785
9786// SetResourcePrefix sets the ResourcePrefix field's value.
9787func (s *LogSettingsResponse) SetResourcePrefix(v string) *LogSettingsResponse {
9788	s.ResourcePrefix = &v
9789	return s
9790}
9791
9792// The message object that provides the message text and its type.
9793type Message struct {
9794	_ struct{} `type:"structure"`
9795
9796	// The text of the message.
9797	//
9798	// Content is a required field
9799	Content *string `locationName:"content" min:"1" type:"string" required:"true"`
9800
9801	// The content type of the message string.
9802	//
9803	// ContentType is a required field
9804	ContentType *string `locationName:"contentType" type:"string" required:"true" enum:"ContentType"`
9805
9806	// Identifies the message group that the message belongs to. When a group is
9807	// assigned to a message, Amazon Lex returns one message from each group in
9808	// the response.
9809	GroupNumber *int64 `locationName:"groupNumber" min:"1" type:"integer"`
9810}
9811
9812// String returns the string representation
9813func (s Message) String() string {
9814	return awsutil.Prettify(s)
9815}
9816
9817// GoString returns the string representation
9818func (s Message) GoString() string {
9819	return s.String()
9820}
9821
9822// Validate inspects the fields of the type to determine if they are valid.
9823func (s *Message) Validate() error {
9824	invalidParams := request.ErrInvalidParams{Context: "Message"}
9825	if s.Content == nil {
9826		invalidParams.Add(request.NewErrParamRequired("Content"))
9827	}
9828	if s.Content != nil && len(*s.Content) < 1 {
9829		invalidParams.Add(request.NewErrParamMinLen("Content", 1))
9830	}
9831	if s.ContentType == nil {
9832		invalidParams.Add(request.NewErrParamRequired("ContentType"))
9833	}
9834	if s.GroupNumber != nil && *s.GroupNumber < 1 {
9835		invalidParams.Add(request.NewErrParamMinValue("GroupNumber", 1))
9836	}
9837
9838	if invalidParams.Len() > 0 {
9839		return invalidParams
9840	}
9841	return nil
9842}
9843
9844// SetContent sets the Content field's value.
9845func (s *Message) SetContent(v string) *Message {
9846	s.Content = &v
9847	return s
9848}
9849
9850// SetContentType sets the ContentType field's value.
9851func (s *Message) SetContentType(v string) *Message {
9852	s.ContentType = &v
9853	return s
9854}
9855
9856// SetGroupNumber sets the GroupNumber field's value.
9857func (s *Message) SetGroupNumber(v int64) *Message {
9858	s.GroupNumber = &v
9859	return s
9860}
9861
9862// The resource specified in the request was not found. Check the resource and
9863// try again.
9864type NotFoundException struct {
9865	_            struct{}                  `type:"structure"`
9866	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9867
9868	Message_ *string `locationName:"message" type:"string"`
9869}
9870
9871// String returns the string representation
9872func (s NotFoundException) String() string {
9873	return awsutil.Prettify(s)
9874}
9875
9876// GoString returns the string representation
9877func (s NotFoundException) GoString() string {
9878	return s.String()
9879}
9880
9881func newErrorNotFoundException(v protocol.ResponseMetadata) error {
9882	return &NotFoundException{
9883		RespMetadata: v,
9884	}
9885}
9886
9887// Code returns the exception type name.
9888func (s *NotFoundException) Code() string {
9889	return "NotFoundException"
9890}
9891
9892// Message returns the exception's message.
9893func (s *NotFoundException) Message() string {
9894	if s.Message_ != nil {
9895		return *s.Message_
9896	}
9897	return ""
9898}
9899
9900// OrigErr always returns nil, satisfies awserr.Error interface.
9901func (s *NotFoundException) OrigErr() error {
9902	return nil
9903}
9904
9905func (s *NotFoundException) Error() string {
9906	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9907}
9908
9909// Status code returns the HTTP status code for the request's response error.
9910func (s *NotFoundException) StatusCode() int {
9911	return s.RespMetadata.StatusCode
9912}
9913
9914// RequestID returns the service's response RequestID for request.
9915func (s *NotFoundException) RequestID() string {
9916	return s.RespMetadata.RequestID
9917}
9918
9919// The specification of an output context that is set when an intent is fulfilled.
9920type OutputContext struct {
9921	_ struct{} `type:"structure"`
9922
9923	// The name of the context.
9924	//
9925	// Name is a required field
9926	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
9927
9928	// The number of seconds that the context should be active after it is first
9929	// sent in a PostContent or PostText response. You can set the value between
9930	// 5 and 86,400 seconds (24 hours).
9931	//
9932	// TimeToLiveInSeconds is a required field
9933	TimeToLiveInSeconds *int64 `locationName:"timeToLiveInSeconds" min:"5" type:"integer" required:"true"`
9934
9935	// The number of conversation turns that the context should be active. A conversation
9936	// turn is one PostContent or PostText request and the corresponding response
9937	// from Amazon Lex.
9938	//
9939	// TurnsToLive is a required field
9940	TurnsToLive *int64 `locationName:"turnsToLive" min:"1" type:"integer" required:"true"`
9941}
9942
9943// String returns the string representation
9944func (s OutputContext) String() string {
9945	return awsutil.Prettify(s)
9946}
9947
9948// GoString returns the string representation
9949func (s OutputContext) GoString() string {
9950	return s.String()
9951}
9952
9953// Validate inspects the fields of the type to determine if they are valid.
9954func (s *OutputContext) Validate() error {
9955	invalidParams := request.ErrInvalidParams{Context: "OutputContext"}
9956	if s.Name == nil {
9957		invalidParams.Add(request.NewErrParamRequired("Name"))
9958	}
9959	if s.Name != nil && len(*s.Name) < 1 {
9960		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9961	}
9962	if s.TimeToLiveInSeconds == nil {
9963		invalidParams.Add(request.NewErrParamRequired("TimeToLiveInSeconds"))
9964	}
9965	if s.TimeToLiveInSeconds != nil && *s.TimeToLiveInSeconds < 5 {
9966		invalidParams.Add(request.NewErrParamMinValue("TimeToLiveInSeconds", 5))
9967	}
9968	if s.TurnsToLive == nil {
9969		invalidParams.Add(request.NewErrParamRequired("TurnsToLive"))
9970	}
9971	if s.TurnsToLive != nil && *s.TurnsToLive < 1 {
9972		invalidParams.Add(request.NewErrParamMinValue("TurnsToLive", 1))
9973	}
9974
9975	if invalidParams.Len() > 0 {
9976		return invalidParams
9977	}
9978	return nil
9979}
9980
9981// SetName sets the Name field's value.
9982func (s *OutputContext) SetName(v string) *OutputContext {
9983	s.Name = &v
9984	return s
9985}
9986
9987// SetTimeToLiveInSeconds sets the TimeToLiveInSeconds field's value.
9988func (s *OutputContext) SetTimeToLiveInSeconds(v int64) *OutputContext {
9989	s.TimeToLiveInSeconds = &v
9990	return s
9991}
9992
9993// SetTurnsToLive sets the TurnsToLive field's value.
9994func (s *OutputContext) SetTurnsToLive(v int64) *OutputContext {
9995	s.TurnsToLive = &v
9996	return s
9997}
9998
9999// The checksum of the resource that you are trying to change does not match
10000// the checksum in the request. Check the resource's checksum and try again.
10001type PreconditionFailedException struct {
10002	_            struct{}                  `type:"structure"`
10003	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10004
10005	Message_ *string `locationName:"message" type:"string"`
10006}
10007
10008// String returns the string representation
10009func (s PreconditionFailedException) String() string {
10010	return awsutil.Prettify(s)
10011}
10012
10013// GoString returns the string representation
10014func (s PreconditionFailedException) GoString() string {
10015	return s.String()
10016}
10017
10018func newErrorPreconditionFailedException(v protocol.ResponseMetadata) error {
10019	return &PreconditionFailedException{
10020		RespMetadata: v,
10021	}
10022}
10023
10024// Code returns the exception type name.
10025func (s *PreconditionFailedException) Code() string {
10026	return "PreconditionFailedException"
10027}
10028
10029// Message returns the exception's message.
10030func (s *PreconditionFailedException) Message() string {
10031	if s.Message_ != nil {
10032		return *s.Message_
10033	}
10034	return ""
10035}
10036
10037// OrigErr always returns nil, satisfies awserr.Error interface.
10038func (s *PreconditionFailedException) OrigErr() error {
10039	return nil
10040}
10041
10042func (s *PreconditionFailedException) Error() string {
10043	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10044}
10045
10046// Status code returns the HTTP status code for the request's response error.
10047func (s *PreconditionFailedException) StatusCode() int {
10048	return s.RespMetadata.StatusCode
10049}
10050
10051// RequestID returns the service's response RequestID for request.
10052func (s *PreconditionFailedException) RequestID() string {
10053	return s.RespMetadata.RequestID
10054}
10055
10056// Obtains information from the user. To define a prompt, provide one or more
10057// messages and specify the number of attempts to get information from the user.
10058// If you provide more than one message, Amazon Lex chooses one of the messages
10059// to use to prompt the user. For more information, see how-it-works.
10060type Prompt struct {
10061	_ struct{} `type:"structure"`
10062
10063	// The number of times to prompt the user for information.
10064	//
10065	// MaxAttempts is a required field
10066	MaxAttempts *int64 `locationName:"maxAttempts" min:"1" type:"integer" required:"true"`
10067
10068	// An array of objects, each of which provides a message string and its type.
10069	// You can specify the message string in plain text or in Speech Synthesis Markup
10070	// Language (SSML).
10071	//
10072	// Messages is a required field
10073	Messages []*Message `locationName:"messages" min:"1" type:"list" required:"true"`
10074
10075	// A response card. Amazon Lex uses this prompt at runtime, in the PostText
10076	// API response. It substitutes session attributes and slot values for placeholders
10077	// in the response card. For more information, see ex-resp-card.
10078	ResponseCard *string `locationName:"responseCard" min:"1" type:"string"`
10079}
10080
10081// String returns the string representation
10082func (s Prompt) String() string {
10083	return awsutil.Prettify(s)
10084}
10085
10086// GoString returns the string representation
10087func (s Prompt) GoString() string {
10088	return s.String()
10089}
10090
10091// Validate inspects the fields of the type to determine if they are valid.
10092func (s *Prompt) Validate() error {
10093	invalidParams := request.ErrInvalidParams{Context: "Prompt"}
10094	if s.MaxAttempts == nil {
10095		invalidParams.Add(request.NewErrParamRequired("MaxAttempts"))
10096	}
10097	if s.MaxAttempts != nil && *s.MaxAttempts < 1 {
10098		invalidParams.Add(request.NewErrParamMinValue("MaxAttempts", 1))
10099	}
10100	if s.Messages == nil {
10101		invalidParams.Add(request.NewErrParamRequired("Messages"))
10102	}
10103	if s.Messages != nil && len(s.Messages) < 1 {
10104		invalidParams.Add(request.NewErrParamMinLen("Messages", 1))
10105	}
10106	if s.ResponseCard != nil && len(*s.ResponseCard) < 1 {
10107		invalidParams.Add(request.NewErrParamMinLen("ResponseCard", 1))
10108	}
10109	if s.Messages != nil {
10110		for i, v := range s.Messages {
10111			if v == nil {
10112				continue
10113			}
10114			if err := v.Validate(); err != nil {
10115				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Messages", i), err.(request.ErrInvalidParams))
10116			}
10117		}
10118	}
10119
10120	if invalidParams.Len() > 0 {
10121		return invalidParams
10122	}
10123	return nil
10124}
10125
10126// SetMaxAttempts sets the MaxAttempts field's value.
10127func (s *Prompt) SetMaxAttempts(v int64) *Prompt {
10128	s.MaxAttempts = &v
10129	return s
10130}
10131
10132// SetMessages sets the Messages field's value.
10133func (s *Prompt) SetMessages(v []*Message) *Prompt {
10134	s.Messages = v
10135	return s
10136}
10137
10138// SetResponseCard sets the ResponseCard field's value.
10139func (s *Prompt) SetResponseCard(v string) *Prompt {
10140	s.ResponseCard = &v
10141	return s
10142}
10143
10144type PutBotAliasInput struct {
10145	_ struct{} `type:"structure"`
10146
10147	// The name of the bot.
10148	//
10149	// BotName is a required field
10150	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
10151
10152	// The version of the bot.
10153	//
10154	// BotVersion is a required field
10155	BotVersion *string `locationName:"botVersion" min:"1" type:"string" required:"true"`
10156
10157	// Identifies a specific revision of the $LATEST version.
10158	//
10159	// When you create a new bot alias, leave the checksum field blank. If you specify
10160	// a checksum you get a BadRequestException exception.
10161	//
10162	// When you want to update a bot alias, set the checksum field to the checksum
10163	// of the most recent revision of the $LATEST version. If you don't specify
10164	// the checksum field, or if the checksum does not match the $LATEST version,
10165	// you get a PreconditionFailedException exception.
10166	Checksum *string `locationName:"checksum" type:"string"`
10167
10168	// Settings for conversation logs for the alias.
10169	ConversationLogs *ConversationLogsRequest `locationName:"conversationLogs" type:"structure"`
10170
10171	// A description of the alias.
10172	Description *string `locationName:"description" type:"string"`
10173
10174	// The name of the alias. The name is not case sensitive.
10175	//
10176	// Name is a required field
10177	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
10178
10179	// A list of tags to add to the bot alias. You can only add tags when you create
10180	// an alias, you can't use the PutBotAlias operation to update the tags on a
10181	// bot alias. To update tags, use the TagResource operation.
10182	Tags []*Tag `locationName:"tags" type:"list"`
10183}
10184
10185// String returns the string representation
10186func (s PutBotAliasInput) String() string {
10187	return awsutil.Prettify(s)
10188}
10189
10190// GoString returns the string representation
10191func (s PutBotAliasInput) GoString() string {
10192	return s.String()
10193}
10194
10195// Validate inspects the fields of the type to determine if they are valid.
10196func (s *PutBotAliasInput) Validate() error {
10197	invalidParams := request.ErrInvalidParams{Context: "PutBotAliasInput"}
10198	if s.BotName == nil {
10199		invalidParams.Add(request.NewErrParamRequired("BotName"))
10200	}
10201	if s.BotName != nil && len(*s.BotName) < 2 {
10202		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
10203	}
10204	if s.BotVersion == nil {
10205		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
10206	}
10207	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
10208		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
10209	}
10210	if s.Name == nil {
10211		invalidParams.Add(request.NewErrParamRequired("Name"))
10212	}
10213	if s.Name != nil && len(*s.Name) < 1 {
10214		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
10215	}
10216	if s.ConversationLogs != nil {
10217		if err := s.ConversationLogs.Validate(); err != nil {
10218			invalidParams.AddNested("ConversationLogs", err.(request.ErrInvalidParams))
10219		}
10220	}
10221	if s.Tags != nil {
10222		for i, v := range s.Tags {
10223			if v == nil {
10224				continue
10225			}
10226			if err := v.Validate(); err != nil {
10227				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10228			}
10229		}
10230	}
10231
10232	if invalidParams.Len() > 0 {
10233		return invalidParams
10234	}
10235	return nil
10236}
10237
10238// SetBotName sets the BotName field's value.
10239func (s *PutBotAliasInput) SetBotName(v string) *PutBotAliasInput {
10240	s.BotName = &v
10241	return s
10242}
10243
10244// SetBotVersion sets the BotVersion field's value.
10245func (s *PutBotAliasInput) SetBotVersion(v string) *PutBotAliasInput {
10246	s.BotVersion = &v
10247	return s
10248}
10249
10250// SetChecksum sets the Checksum field's value.
10251func (s *PutBotAliasInput) SetChecksum(v string) *PutBotAliasInput {
10252	s.Checksum = &v
10253	return s
10254}
10255
10256// SetConversationLogs sets the ConversationLogs field's value.
10257func (s *PutBotAliasInput) SetConversationLogs(v *ConversationLogsRequest) *PutBotAliasInput {
10258	s.ConversationLogs = v
10259	return s
10260}
10261
10262// SetDescription sets the Description field's value.
10263func (s *PutBotAliasInput) SetDescription(v string) *PutBotAliasInput {
10264	s.Description = &v
10265	return s
10266}
10267
10268// SetName sets the Name field's value.
10269func (s *PutBotAliasInput) SetName(v string) *PutBotAliasInput {
10270	s.Name = &v
10271	return s
10272}
10273
10274// SetTags sets the Tags field's value.
10275func (s *PutBotAliasInput) SetTags(v []*Tag) *PutBotAliasInput {
10276	s.Tags = v
10277	return s
10278}
10279
10280type PutBotAliasOutput struct {
10281	_ struct{} `type:"structure"`
10282
10283	// The name of the bot that the alias points to.
10284	BotName *string `locationName:"botName" min:"2" type:"string"`
10285
10286	// The version of the bot that the alias points to.
10287	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
10288
10289	// The checksum for the current version of the alias.
10290	Checksum *string `locationName:"checksum" type:"string"`
10291
10292	// The settings that determine how Amazon Lex uses conversation logs for the
10293	// alias.
10294	ConversationLogs *ConversationLogsResponse `locationName:"conversationLogs" type:"structure"`
10295
10296	// The date that the bot alias was created.
10297	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
10298
10299	// A description of the alias.
10300	Description *string `locationName:"description" type:"string"`
10301
10302	// The date that the bot alias was updated. When you create a resource, the
10303	// creation date and the last updated date are the same.
10304	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
10305
10306	// The name of the alias.
10307	Name *string `locationName:"name" min:"1" type:"string"`
10308
10309	// A list of tags associated with a bot.
10310	Tags []*Tag `locationName:"tags" type:"list"`
10311}
10312
10313// String returns the string representation
10314func (s PutBotAliasOutput) String() string {
10315	return awsutil.Prettify(s)
10316}
10317
10318// GoString returns the string representation
10319func (s PutBotAliasOutput) GoString() string {
10320	return s.String()
10321}
10322
10323// SetBotName sets the BotName field's value.
10324func (s *PutBotAliasOutput) SetBotName(v string) *PutBotAliasOutput {
10325	s.BotName = &v
10326	return s
10327}
10328
10329// SetBotVersion sets the BotVersion field's value.
10330func (s *PutBotAliasOutput) SetBotVersion(v string) *PutBotAliasOutput {
10331	s.BotVersion = &v
10332	return s
10333}
10334
10335// SetChecksum sets the Checksum field's value.
10336func (s *PutBotAliasOutput) SetChecksum(v string) *PutBotAliasOutput {
10337	s.Checksum = &v
10338	return s
10339}
10340
10341// SetConversationLogs sets the ConversationLogs field's value.
10342func (s *PutBotAliasOutput) SetConversationLogs(v *ConversationLogsResponse) *PutBotAliasOutput {
10343	s.ConversationLogs = v
10344	return s
10345}
10346
10347// SetCreatedDate sets the CreatedDate field's value.
10348func (s *PutBotAliasOutput) SetCreatedDate(v time.Time) *PutBotAliasOutput {
10349	s.CreatedDate = &v
10350	return s
10351}
10352
10353// SetDescription sets the Description field's value.
10354func (s *PutBotAliasOutput) SetDescription(v string) *PutBotAliasOutput {
10355	s.Description = &v
10356	return s
10357}
10358
10359// SetLastUpdatedDate sets the LastUpdatedDate field's value.
10360func (s *PutBotAliasOutput) SetLastUpdatedDate(v time.Time) *PutBotAliasOutput {
10361	s.LastUpdatedDate = &v
10362	return s
10363}
10364
10365// SetName sets the Name field's value.
10366func (s *PutBotAliasOutput) SetName(v string) *PutBotAliasOutput {
10367	s.Name = &v
10368	return s
10369}
10370
10371// SetTags sets the Tags field's value.
10372func (s *PutBotAliasOutput) SetTags(v []*Tag) *PutBotAliasOutput {
10373	s.Tags = v
10374	return s
10375}
10376
10377type PutBotInput struct {
10378	_ struct{} `type:"structure"`
10379
10380	// When Amazon Lex can't understand the user's input in context, it tries to
10381	// elicit the information a few times. After that, Amazon Lex sends the message
10382	// defined in abortStatement to the user, and then cancels the conversation.
10383	// To set the number of retries, use the valueElicitationPrompt field for the
10384	// slot type.
10385	//
10386	// For example, in a pizza ordering bot, Amazon Lex might ask a user "What type
10387	// of crust would you like?" If the user's response is not one of the expected
10388	// responses (for example, "thin crust, "deep dish," etc.), Amazon Lex tries
10389	// to elicit a correct response a few more times.
10390	//
10391	// For example, in a pizza ordering application, OrderPizza might be one of
10392	// the intents. This intent might require the CrustType slot. You specify the
10393	// valueElicitationPrompt field when you create the CrustType slot.
10394	//
10395	// If you have defined a fallback intent the cancel statement will not be sent
10396	// to the user, the fallback intent is used instead. For more information, see
10397	// AMAZON.FallbackIntent (https://docs.aws.amazon.com/lex/latest/dg/built-in-intent-fallback.html).
10398	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
10399
10400	// Identifies a specific revision of the $LATEST version.
10401	//
10402	// When you create a new bot, leave the checksum field blank. If you specify
10403	// a checksum you get a BadRequestException exception.
10404	//
10405	// When you want to update a bot, set the checksum field to the checksum of
10406	// the most recent revision of the $LATEST version. If you don't specify the
10407	// checksum field, or if the checksum does not match the $LATEST version, you
10408	// get a PreconditionFailedException exception.
10409	Checksum *string `locationName:"checksum" type:"string"`
10410
10411	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
10412	// you must specify whether your use of Amazon Lex is related to a website,
10413	// program, or other application that is directed or targeted, in whole or in
10414	// part, to children under age 13 and subject to the Children's Online Privacy
10415	// Protection Act (COPPA) by specifying true or false in the childDirected field.
10416	// By specifying true in the childDirected field, you confirm that your use
10417	// of Amazon Lex is related to a website, program, or other application that
10418	// is directed or targeted, in whole or in part, to children under age 13 and
10419	// subject to COPPA. By specifying false in the childDirected field, you confirm
10420	// that your use of Amazon Lex is not related to a website, program, or other
10421	// application that is directed or targeted, in whole or in part, to children
10422	// under age 13 and subject to COPPA. You may not specify a default value for
10423	// the childDirected field that does not accurately reflect whether your use
10424	// of Amazon Lex is related to a website, program, or other application that
10425	// is directed or targeted, in whole or in part, to children under age 13 and
10426	// subject to COPPA.
10427	//
10428	// If your use of Amazon Lex relates to a website, program, or other application
10429	// that is directed in whole or in part, to children under age 13, you must
10430	// obtain any required verifiable parental consent under COPPA. For information
10431	// regarding the use of Amazon Lex in connection with websites, programs, or
10432	// other applications that are directed or targeted, in whole or in part, to
10433	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
10434	//
10435	// ChildDirected is a required field
10436	ChildDirected *bool `locationName:"childDirected" type:"boolean" required:"true"`
10437
10438	// When Amazon Lex doesn't understand the user's intent, it uses this message
10439	// to get clarification. To specify how many times Amazon Lex should repeat
10440	// the clarification prompt, use the maxAttempts field. If Amazon Lex still
10441	// doesn't understand, it sends the message in the abortStatement field.
10442	//
10443	// When you create a clarification prompt, make sure that it suggests the correct
10444	// response from the user. for example, for a bot that orders pizza and drinks,
10445	// you might create this clarification prompt: "What would you like to do? You
10446	// can say 'Order a pizza' or 'Order a drink.'"
10447	//
10448	// If you have defined a fallback intent, it will be invoked if the clarification
10449	// prompt is repeated the number of times defined in the maxAttempts field.
10450	// For more information, see AMAZON.FallbackIntent (https://docs.aws.amazon.com/lex/latest/dg/built-in-intent-fallback.html).
10451	//
10452	// If you don't define a clarification prompt, at runtime Amazon Lex will return
10453	// a 400 Bad Request exception in three cases:
10454	//
10455	//    * Follow-up prompt - When the user responds to a follow-up prompt but
10456	//    does not provide an intent. For example, in response to a follow-up prompt
10457	//    that says "Would you like anything else today?" the user says "Yes." Amazon
10458	//    Lex will return a 400 Bad Request exception because it does not have a
10459	//    clarification prompt to send to the user to get an intent.
10460	//
10461	//    * Lambda function - When using a Lambda function, you return an ElicitIntent
10462	//    dialog type. Since Amazon Lex does not have a clarification prompt to
10463	//    get an intent from the user, it returns a 400 Bad Request exception.
10464	//
10465	//    * PutSession operation - When using the PutSession operation, you send
10466	//    an ElicitIntent dialog type. Since Amazon Lex does not have a clarification
10467	//    prompt to get an intent from the user, it returns a 400 Bad Request exception.
10468	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
10469
10470	// When set to true a new numbered version of the bot is created. This is the
10471	// same as calling the CreateBotVersion operation. If you don't specify createVersion,
10472	// the default is false.
10473	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
10474
10475	// A description of the bot.
10476	Description *string `locationName:"description" type:"string"`
10477
10478	// When set to true user utterances are sent to Amazon Comprehend for sentiment
10479	// analysis. If you don't specify detectSentiment, the default is false.
10480	DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"`
10481
10482	// Set to true to enable access to natural language understanding improvements.
10483	//
10484	// When you set the enableModelImprovements parameter to true you can use the
10485	// nluIntentConfidenceThreshold parameter to configure confidence scores. For
10486	// more information, see Confidence Scores (https://docs.aws.amazon.com/lex/latest/dg/confidence-scores.html).
10487	//
10488	// You can only set the enableModelImprovements parameter in certain Regions.
10489	// If you set the parameter to true, your bot has access to accuracy improvements.
10490	//
10491	// The Regions where you can set the enableModelImprovements parameter to true
10492	// are:
10493	//
10494	//    * US East (N. Virginia) (us-east-1)
10495	//
10496	//    * US West (Oregon) (us-west-2)
10497	//
10498	//    * Asia Pacific (Sydney) (ap-southeast-2)
10499	//
10500	//    * EU (Ireland) (eu-west-1)
10501	//
10502	// In other Regions, the enableModelImprovements parameter is set to true by
10503	// default. In these Regions setting the parameter to false throws a ValidationException
10504	// exception.
10505	EnableModelImprovements *bool `locationName:"enableModelImprovements" type:"boolean"`
10506
10507	// The maximum time in seconds that Amazon Lex retains the data gathered in
10508	// a conversation.
10509	//
10510	// A user interaction session remains active for the amount of time specified.
10511	// If no conversation occurs during this time, the session expires and Amazon
10512	// Lex deletes any data provided before the timeout.
10513	//
10514	// For example, suppose that a user chooses the OrderPizza intent, but gets
10515	// sidetracked halfway through placing an order. If the user doesn't complete
10516	// the order within the specified time, Amazon Lex discards the slot information
10517	// that it gathered, and the user must start over.
10518	//
10519	// If you don't include the idleSessionTTLInSeconds element in a PutBot operation
10520	// request, Amazon Lex uses the default value. This is also true if the request
10521	// replaces an existing bot.
10522	//
10523	// The default is 300 seconds (5 minutes).
10524	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
10525
10526	// An array of Intent objects. Each intent represents a command that a user
10527	// can express. For example, a pizza ordering bot might support an OrderPizza
10528	// intent. For more information, see how-it-works.
10529	Intents []*Intent `locationName:"intents" type:"list"`
10530
10531	// Specifies the target locale for the bot. Any intent used in the bot must
10532	// be compatible with the locale of the bot.
10533	//
10534	// The default is en-US.
10535	//
10536	// Locale is a required field
10537	Locale *string `locationName:"locale" type:"string" required:"true" enum:"Locale"`
10538
10539	// The name of the bot. The name is not case sensitive.
10540	//
10541	// Name is a required field
10542	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
10543
10544	// Determines the threshold where Amazon Lex will insert the AMAZON.FallbackIntent,
10545	// AMAZON.KendraSearchIntent, or both when returning alternative intents in
10546	// a PostContent (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html)
10547	// or PostText (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
10548	// response. AMAZON.FallbackIntent and AMAZON.KendraSearchIntent are only inserted
10549	// if they are configured for the bot.
10550	//
10551	// You must set the enableModelImprovements parameter to true to use confidence
10552	// scores in the following regions.
10553	//
10554	//    * US East (N. Virginia) (us-east-1)
10555	//
10556	//    * US West (Oregon) (us-west-2)
10557	//
10558	//    * Asia Pacific (Sydney) (ap-southeast-2)
10559	//
10560	//    * EU (Ireland) (eu-west-1)
10561	//
10562	// In other Regions, the enableModelImprovements parameter is set to true by
10563	// default.
10564	//
10565	// For example, suppose a bot is configured with the confidence threshold of
10566	// 0.80 and the AMAZON.FallbackIntent. Amazon Lex returns three alternative
10567	// intents with the following confidence scores: IntentA (0.70), IntentB (0.60),
10568	// IntentC (0.50). The response from the PostText operation would be:
10569	//
10570	//    * AMAZON.FallbackIntent
10571	//
10572	//    * IntentA
10573	//
10574	//    * IntentB
10575	//
10576	//    * IntentC
10577	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double"`
10578
10579	// If you set the processBehavior element to BUILD, Amazon Lex builds the bot
10580	// so that it can be run. If you set the element to SAVE Amazon Lex saves the
10581	// bot, but doesn't build it.
10582	//
10583	// If you don't specify this value, the default value is BUILD.
10584	ProcessBehavior *string `locationName:"processBehavior" type:"string" enum:"ProcessBehavior"`
10585
10586	// A list of tags to add to the bot. You can only add tags when you create a
10587	// bot, you can't use the PutBot operation to update the tags on a bot. To update
10588	// tags, use the TagResource operation.
10589	Tags []*Tag `locationName:"tags" type:"list"`
10590
10591	// The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions
10592	// with the user. The locale configured for the voice must match the locale
10593	// of the bot. For more information, see Voices in Amazon Polly (https://docs.aws.amazon.com/polly/latest/dg/voicelist.html)
10594	// in the Amazon Polly Developer Guide.
10595	VoiceId *string `locationName:"voiceId" type:"string"`
10596}
10597
10598// String returns the string representation
10599func (s PutBotInput) String() string {
10600	return awsutil.Prettify(s)
10601}
10602
10603// GoString returns the string representation
10604func (s PutBotInput) GoString() string {
10605	return s.String()
10606}
10607
10608// Validate inspects the fields of the type to determine if they are valid.
10609func (s *PutBotInput) Validate() error {
10610	invalidParams := request.ErrInvalidParams{Context: "PutBotInput"}
10611	if s.ChildDirected == nil {
10612		invalidParams.Add(request.NewErrParamRequired("ChildDirected"))
10613	}
10614	if s.IdleSessionTTLInSeconds != nil && *s.IdleSessionTTLInSeconds < 60 {
10615		invalidParams.Add(request.NewErrParamMinValue("IdleSessionTTLInSeconds", 60))
10616	}
10617	if s.Locale == nil {
10618		invalidParams.Add(request.NewErrParamRequired("Locale"))
10619	}
10620	if s.Name == nil {
10621		invalidParams.Add(request.NewErrParamRequired("Name"))
10622	}
10623	if s.Name != nil && len(*s.Name) < 2 {
10624		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
10625	}
10626	if s.AbortStatement != nil {
10627		if err := s.AbortStatement.Validate(); err != nil {
10628			invalidParams.AddNested("AbortStatement", err.(request.ErrInvalidParams))
10629		}
10630	}
10631	if s.ClarificationPrompt != nil {
10632		if err := s.ClarificationPrompt.Validate(); err != nil {
10633			invalidParams.AddNested("ClarificationPrompt", err.(request.ErrInvalidParams))
10634		}
10635	}
10636	if s.Intents != nil {
10637		for i, v := range s.Intents {
10638			if v == nil {
10639				continue
10640			}
10641			if err := v.Validate(); err != nil {
10642				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Intents", i), err.(request.ErrInvalidParams))
10643			}
10644		}
10645	}
10646	if s.Tags != nil {
10647		for i, v := range s.Tags {
10648			if v == nil {
10649				continue
10650			}
10651			if err := v.Validate(); err != nil {
10652				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10653			}
10654		}
10655	}
10656
10657	if invalidParams.Len() > 0 {
10658		return invalidParams
10659	}
10660	return nil
10661}
10662
10663// SetAbortStatement sets the AbortStatement field's value.
10664func (s *PutBotInput) SetAbortStatement(v *Statement) *PutBotInput {
10665	s.AbortStatement = v
10666	return s
10667}
10668
10669// SetChecksum sets the Checksum field's value.
10670func (s *PutBotInput) SetChecksum(v string) *PutBotInput {
10671	s.Checksum = &v
10672	return s
10673}
10674
10675// SetChildDirected sets the ChildDirected field's value.
10676func (s *PutBotInput) SetChildDirected(v bool) *PutBotInput {
10677	s.ChildDirected = &v
10678	return s
10679}
10680
10681// SetClarificationPrompt sets the ClarificationPrompt field's value.
10682func (s *PutBotInput) SetClarificationPrompt(v *Prompt) *PutBotInput {
10683	s.ClarificationPrompt = v
10684	return s
10685}
10686
10687// SetCreateVersion sets the CreateVersion field's value.
10688func (s *PutBotInput) SetCreateVersion(v bool) *PutBotInput {
10689	s.CreateVersion = &v
10690	return s
10691}
10692
10693// SetDescription sets the Description field's value.
10694func (s *PutBotInput) SetDescription(v string) *PutBotInput {
10695	s.Description = &v
10696	return s
10697}
10698
10699// SetDetectSentiment sets the DetectSentiment field's value.
10700func (s *PutBotInput) SetDetectSentiment(v bool) *PutBotInput {
10701	s.DetectSentiment = &v
10702	return s
10703}
10704
10705// SetEnableModelImprovements sets the EnableModelImprovements field's value.
10706func (s *PutBotInput) SetEnableModelImprovements(v bool) *PutBotInput {
10707	s.EnableModelImprovements = &v
10708	return s
10709}
10710
10711// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
10712func (s *PutBotInput) SetIdleSessionTTLInSeconds(v int64) *PutBotInput {
10713	s.IdleSessionTTLInSeconds = &v
10714	return s
10715}
10716
10717// SetIntents sets the Intents field's value.
10718func (s *PutBotInput) SetIntents(v []*Intent) *PutBotInput {
10719	s.Intents = v
10720	return s
10721}
10722
10723// SetLocale sets the Locale field's value.
10724func (s *PutBotInput) SetLocale(v string) *PutBotInput {
10725	s.Locale = &v
10726	return s
10727}
10728
10729// SetName sets the Name field's value.
10730func (s *PutBotInput) SetName(v string) *PutBotInput {
10731	s.Name = &v
10732	return s
10733}
10734
10735// SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
10736func (s *PutBotInput) SetNluIntentConfidenceThreshold(v float64) *PutBotInput {
10737	s.NluIntentConfidenceThreshold = &v
10738	return s
10739}
10740
10741// SetProcessBehavior sets the ProcessBehavior field's value.
10742func (s *PutBotInput) SetProcessBehavior(v string) *PutBotInput {
10743	s.ProcessBehavior = &v
10744	return s
10745}
10746
10747// SetTags sets the Tags field's value.
10748func (s *PutBotInput) SetTags(v []*Tag) *PutBotInput {
10749	s.Tags = v
10750	return s
10751}
10752
10753// SetVoiceId sets the VoiceId field's value.
10754func (s *PutBotInput) SetVoiceId(v string) *PutBotInput {
10755	s.VoiceId = &v
10756	return s
10757}
10758
10759type PutBotOutput struct {
10760	_ struct{} `type:"structure"`
10761
10762	// The message that Amazon Lex uses to cancel a conversation. For more information,
10763	// see PutBot.
10764	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
10765
10766	// Checksum of the bot that you created.
10767	Checksum *string `locationName:"checksum" type:"string"`
10768
10769	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
10770	// you must specify whether your use of Amazon Lex is related to a website,
10771	// program, or other application that is directed or targeted, in whole or in
10772	// part, to children under age 13 and subject to the Children's Online Privacy
10773	// Protection Act (COPPA) by specifying true or false in the childDirected field.
10774	// By specifying true in the childDirected field, you confirm that your use
10775	// of Amazon Lex is related to a website, program, or other application that
10776	// is directed or targeted, in whole or in part, to children under age 13 and
10777	// subject to COPPA. By specifying false in the childDirected field, you confirm
10778	// that your use of Amazon Lex is not related to a website, program, or other
10779	// application that is directed or targeted, in whole or in part, to children
10780	// under age 13 and subject to COPPA. You may not specify a default value for
10781	// the childDirected field that does not accurately reflect whether your use
10782	// of Amazon Lex is related to a website, program, or other application that
10783	// is directed or targeted, in whole or in part, to children under age 13 and
10784	// subject to COPPA.
10785	//
10786	// If your use of Amazon Lex relates to a website, program, or other application
10787	// that is directed in whole or in part, to children under age 13, you must
10788	// obtain any required verifiable parental consent under COPPA. For information
10789	// regarding the use of Amazon Lex in connection with websites, programs, or
10790	// other applications that are directed or targeted, in whole or in part, to
10791	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
10792	ChildDirected *bool `locationName:"childDirected" type:"boolean"`
10793
10794	// The prompts that Amazon Lex uses when it doesn't understand the user's intent.
10795	// For more information, see PutBot.
10796	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
10797
10798	// True if a new version of the bot was created. If the createVersion field
10799	// was not specified in the request, the createVersion field is set to false
10800	// in the response.
10801	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
10802
10803	// The date that the bot was created.
10804	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
10805
10806	// A description of the bot.
10807	Description *string `locationName:"description" type:"string"`
10808
10809	// true if the bot is configured to send user utterances to Amazon Comprehend
10810	// for sentiment analysis. If the detectSentiment field was not specified in
10811	// the request, the detectSentiment field is false in the response.
10812	DetectSentiment *bool `locationName:"detectSentiment" type:"boolean"`
10813
10814	// Indicates whether the bot uses accuracy improvements. true indicates that
10815	// the bot is using the improvements, otherwise, false.
10816	EnableModelImprovements *bool `locationName:"enableModelImprovements" type:"boolean"`
10817
10818	// If status is FAILED, Amazon Lex provides the reason that it failed to build
10819	// the bot.
10820	FailureReason *string `locationName:"failureReason" type:"string"`
10821
10822	// The maximum length of time that Amazon Lex retains the data gathered in a
10823	// conversation. For more information, see PutBot.
10824	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
10825
10826	// An array of Intent objects. For more information, see PutBot.
10827	Intents []*Intent `locationName:"intents" type:"list"`
10828
10829	// The date that the bot was updated. When you create a resource, the creation
10830	// date and last updated date are the same.
10831	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
10832
10833	// The target locale for the bot.
10834	Locale *string `locationName:"locale" type:"string" enum:"Locale"`
10835
10836	// The name of the bot.
10837	Name *string `locationName:"name" min:"2" type:"string"`
10838
10839	// The score that determines where Amazon Lex inserts the AMAZON.FallbackIntent,
10840	// AMAZON.KendraSearchIntent, or both when returning alternative intents in
10841	// a PostContent (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html)
10842	// or PostText (https://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
10843	// response. AMAZON.FallbackIntent is inserted if the confidence score for all
10844	// intents is below this value. AMAZON.KendraSearchIntent is only inserted if
10845	// it is configured for the bot.
10846	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double"`
10847
10848	// When you send a request to create a bot with processBehavior set to BUILD,
10849	// Amazon Lex sets the status response element to BUILDING.
10850	//
10851	// In the READY_BASIC_TESTING state you can test the bot with user inputs that
10852	// exactly match the utterances configured for the bot's intents and values
10853	// in the slot types.
10854	//
10855	// If Amazon Lex can't build the bot, Amazon Lex sets status to FAILED. Amazon
10856	// Lex returns the reason for the failure in the failureReason response element.
10857	//
10858	// When you set processBehavior to SAVE, Amazon Lex sets the status code to
10859	// NOT BUILT.
10860	//
10861	// When the bot is in the READY state you can test and publish the bot.
10862	Status *string `locationName:"status" type:"string" enum:"Status"`
10863
10864	// A list of tags associated with the bot.
10865	Tags []*Tag `locationName:"tags" type:"list"`
10866
10867	// The version of the bot. For a new bot, the version is always $LATEST.
10868	Version *string `locationName:"version" min:"1" type:"string"`
10869
10870	// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with
10871	// the user. For more information, see PutBot.
10872	VoiceId *string `locationName:"voiceId" type:"string"`
10873}
10874
10875// String returns the string representation
10876func (s PutBotOutput) String() string {
10877	return awsutil.Prettify(s)
10878}
10879
10880// GoString returns the string representation
10881func (s PutBotOutput) GoString() string {
10882	return s.String()
10883}
10884
10885// SetAbortStatement sets the AbortStatement field's value.
10886func (s *PutBotOutput) SetAbortStatement(v *Statement) *PutBotOutput {
10887	s.AbortStatement = v
10888	return s
10889}
10890
10891// SetChecksum sets the Checksum field's value.
10892func (s *PutBotOutput) SetChecksum(v string) *PutBotOutput {
10893	s.Checksum = &v
10894	return s
10895}
10896
10897// SetChildDirected sets the ChildDirected field's value.
10898func (s *PutBotOutput) SetChildDirected(v bool) *PutBotOutput {
10899	s.ChildDirected = &v
10900	return s
10901}
10902
10903// SetClarificationPrompt sets the ClarificationPrompt field's value.
10904func (s *PutBotOutput) SetClarificationPrompt(v *Prompt) *PutBotOutput {
10905	s.ClarificationPrompt = v
10906	return s
10907}
10908
10909// SetCreateVersion sets the CreateVersion field's value.
10910func (s *PutBotOutput) SetCreateVersion(v bool) *PutBotOutput {
10911	s.CreateVersion = &v
10912	return s
10913}
10914
10915// SetCreatedDate sets the CreatedDate field's value.
10916func (s *PutBotOutput) SetCreatedDate(v time.Time) *PutBotOutput {
10917	s.CreatedDate = &v
10918	return s
10919}
10920
10921// SetDescription sets the Description field's value.
10922func (s *PutBotOutput) SetDescription(v string) *PutBotOutput {
10923	s.Description = &v
10924	return s
10925}
10926
10927// SetDetectSentiment sets the DetectSentiment field's value.
10928func (s *PutBotOutput) SetDetectSentiment(v bool) *PutBotOutput {
10929	s.DetectSentiment = &v
10930	return s
10931}
10932
10933// SetEnableModelImprovements sets the EnableModelImprovements field's value.
10934func (s *PutBotOutput) SetEnableModelImprovements(v bool) *PutBotOutput {
10935	s.EnableModelImprovements = &v
10936	return s
10937}
10938
10939// SetFailureReason sets the FailureReason field's value.
10940func (s *PutBotOutput) SetFailureReason(v string) *PutBotOutput {
10941	s.FailureReason = &v
10942	return s
10943}
10944
10945// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
10946func (s *PutBotOutput) SetIdleSessionTTLInSeconds(v int64) *PutBotOutput {
10947	s.IdleSessionTTLInSeconds = &v
10948	return s
10949}
10950
10951// SetIntents sets the Intents field's value.
10952func (s *PutBotOutput) SetIntents(v []*Intent) *PutBotOutput {
10953	s.Intents = v
10954	return s
10955}
10956
10957// SetLastUpdatedDate sets the LastUpdatedDate field's value.
10958func (s *PutBotOutput) SetLastUpdatedDate(v time.Time) *PutBotOutput {
10959	s.LastUpdatedDate = &v
10960	return s
10961}
10962
10963// SetLocale sets the Locale field's value.
10964func (s *PutBotOutput) SetLocale(v string) *PutBotOutput {
10965	s.Locale = &v
10966	return s
10967}
10968
10969// SetName sets the Name field's value.
10970func (s *PutBotOutput) SetName(v string) *PutBotOutput {
10971	s.Name = &v
10972	return s
10973}
10974
10975// SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
10976func (s *PutBotOutput) SetNluIntentConfidenceThreshold(v float64) *PutBotOutput {
10977	s.NluIntentConfidenceThreshold = &v
10978	return s
10979}
10980
10981// SetStatus sets the Status field's value.
10982func (s *PutBotOutput) SetStatus(v string) *PutBotOutput {
10983	s.Status = &v
10984	return s
10985}
10986
10987// SetTags sets the Tags field's value.
10988func (s *PutBotOutput) SetTags(v []*Tag) *PutBotOutput {
10989	s.Tags = v
10990	return s
10991}
10992
10993// SetVersion sets the Version field's value.
10994func (s *PutBotOutput) SetVersion(v string) *PutBotOutput {
10995	s.Version = &v
10996	return s
10997}
10998
10999// SetVoiceId sets the VoiceId field's value.
11000func (s *PutBotOutput) SetVoiceId(v string) *PutBotOutput {
11001	s.VoiceId = &v
11002	return s
11003}
11004
11005type PutIntentInput struct {
11006	_ struct{} `type:"structure"`
11007
11008	// Identifies a specific revision of the $LATEST version.
11009	//
11010	// When you create a new intent, leave the checksum field blank. If you specify
11011	// a checksum you get a BadRequestException exception.
11012	//
11013	// When you want to update a intent, set the checksum field to the checksum
11014	// of the most recent revision of the $LATEST version. If you don't specify
11015	// the checksum field, or if the checksum does not match the $LATEST version,
11016	// you get a PreconditionFailedException exception.
11017	Checksum *string `locationName:"checksum" type:"string"`
11018
11019	// The statement that you want Amazon Lex to convey to the user after the intent
11020	// is successfully fulfilled by the Lambda function.
11021	//
11022	// This element is relevant only if you provide a Lambda function in the fulfillmentActivity.
11023	// If you return the intent to the client application, you can't specify this
11024	// element.
11025	//
11026	// The followUpPrompt and conclusionStatement are mutually exclusive. You can
11027	// specify only one.
11028	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
11029
11030	// Prompts the user to confirm the intent. This question should have a yes or
11031	// no answer.
11032	//
11033	// Amazon Lex uses this prompt to ensure that the user acknowledges that the
11034	// intent is ready for fulfillment. For example, with the OrderPizza intent,
11035	// you might want to confirm that the order is correct before placing it. For
11036	// other intents, such as intents that simply respond to user questions, you
11037	// might not need to ask the user for confirmation before providing the information.
11038	//
11039	// You you must provide both the rejectionStatement and the confirmationPrompt,
11040	// or neither.
11041	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
11042
11043	// When set to true a new numbered version of the intent is created. This is
11044	// the same as calling the CreateIntentVersion operation. If you do not specify
11045	// createVersion, the default is false.
11046	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
11047
11048	// A description of the intent.
11049	Description *string `locationName:"description" type:"string"`
11050
11051	// Specifies a Lambda function to invoke for each user input. You can invoke
11052	// this Lambda function to personalize user interaction.
11053	//
11054	// For example, suppose your bot determines that the user is John. Your Lambda
11055	// function might retrieve John's information from a backend database and prepopulate
11056	// some of the values. For example, if you find that John is gluten intolerant,
11057	// you might set the corresponding intent slot, GlutenIntolerant, to true. You
11058	// might find John's phone number and set the corresponding session attribute.
11059	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
11060
11061	// Amazon Lex uses this prompt to solicit additional activity after fulfilling
11062	// an intent. For example, after the OrderPizza intent is fulfilled, you might
11063	// prompt the user to order a drink.
11064	//
11065	// The action that Amazon Lex takes depends on the user's response, as follows:
11066	//
11067	//    * If the user says "Yes" it responds with the clarification prompt that
11068	//    is configured for the bot.
11069	//
11070	//    * if the user says "Yes" and continues with an utterance that triggers
11071	//    an intent it starts a conversation for the intent.
11072	//
11073	//    * If the user says "No" it responds with the rejection statement configured
11074	//    for the the follow-up prompt.
11075	//
11076	//    * If it doesn't recognize the utterance it repeats the follow-up prompt
11077	//    again.
11078	//
11079	// The followUpPrompt field and the conclusionStatement field are mutually exclusive.
11080	// You can specify only one.
11081	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
11082
11083	// Required. Describes how the intent is fulfilled. For example, after a user
11084	// provides all of the information for a pizza order, fulfillmentActivity defines
11085	// how the bot places an order with a local pizza store.
11086	//
11087	// You might configure Amazon Lex to return all of the intent information to
11088	// the client application, or direct it to invoke a Lambda function that can
11089	// process the intent (for example, place an order with a pizzeria).
11090	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
11091
11092	// An array of InputContext objects that lists the contexts that must be active
11093	// for Amazon Lex to choose the intent in a conversation with the user.
11094	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
11095
11096	// Configuration information required to use the AMAZON.KendraSearchIntent intent
11097	// to connect to an Amazon Kendra index. For more information, see AMAZON.KendraSearchIntent
11098	// (http://docs.aws.amazon.com/lex/latest/dg/built-in-intent-kendra-search.html).
11099	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
11100
11101	// The name of the intent. The name is not case sensitive.
11102	//
11103	// The name can't match a built-in intent name, or a built-in intent name with
11104	// "AMAZON." removed. For example, because there is a built-in intent called
11105	// AMAZON.HelpIntent, you can't create a custom intent called HelpIntent.
11106	//
11107	// 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)
11108	// in the Alexa Skills Kit.
11109	//
11110	// Name is a required field
11111	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
11112
11113	// An array of OutputContext objects that lists the contexts that the intent
11114	// activates when the intent is fulfilled.
11115	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
11116
11117	// A unique identifier for the built-in intent to base this intent on. To find
11118	// 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)
11119	// in the Alexa Skills Kit.
11120	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
11121
11122	// When the user answers "no" to the question defined in confirmationPrompt,
11123	// Amazon Lex responds with this statement to acknowledge that the intent was
11124	// canceled.
11125	//
11126	// You must provide both the rejectionStatement and the confirmationPrompt,
11127	// or neither.
11128	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
11129
11130	// An array of utterances (strings) that a user might say to signal the intent.
11131	// For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas".
11132	//
11133	// In each utterance, a slot name is enclosed in curly braces.
11134	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
11135
11136	// An array of intent slots. At runtime, Amazon Lex elicits required slot values
11137	// from the user using prompts defined in the slots. For more information, see
11138	// how-it-works.
11139	Slots []*Slot `locationName:"slots" type:"list"`
11140}
11141
11142// String returns the string representation
11143func (s PutIntentInput) String() string {
11144	return awsutil.Prettify(s)
11145}
11146
11147// GoString returns the string representation
11148func (s PutIntentInput) GoString() string {
11149	return s.String()
11150}
11151
11152// Validate inspects the fields of the type to determine if they are valid.
11153func (s *PutIntentInput) Validate() error {
11154	invalidParams := request.ErrInvalidParams{Context: "PutIntentInput"}
11155	if s.Name == nil {
11156		invalidParams.Add(request.NewErrParamRequired("Name"))
11157	}
11158	if s.Name != nil && len(*s.Name) < 1 {
11159		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
11160	}
11161	if s.ConclusionStatement != nil {
11162		if err := s.ConclusionStatement.Validate(); err != nil {
11163			invalidParams.AddNested("ConclusionStatement", err.(request.ErrInvalidParams))
11164		}
11165	}
11166	if s.ConfirmationPrompt != nil {
11167		if err := s.ConfirmationPrompt.Validate(); err != nil {
11168			invalidParams.AddNested("ConfirmationPrompt", err.(request.ErrInvalidParams))
11169		}
11170	}
11171	if s.DialogCodeHook != nil {
11172		if err := s.DialogCodeHook.Validate(); err != nil {
11173			invalidParams.AddNested("DialogCodeHook", err.(request.ErrInvalidParams))
11174		}
11175	}
11176	if s.FollowUpPrompt != nil {
11177		if err := s.FollowUpPrompt.Validate(); err != nil {
11178			invalidParams.AddNested("FollowUpPrompt", err.(request.ErrInvalidParams))
11179		}
11180	}
11181	if s.FulfillmentActivity != nil {
11182		if err := s.FulfillmentActivity.Validate(); err != nil {
11183			invalidParams.AddNested("FulfillmentActivity", err.(request.ErrInvalidParams))
11184		}
11185	}
11186	if s.InputContexts != nil {
11187		for i, v := range s.InputContexts {
11188			if v == nil {
11189				continue
11190			}
11191			if err := v.Validate(); err != nil {
11192				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputContexts", i), err.(request.ErrInvalidParams))
11193			}
11194		}
11195	}
11196	if s.KendraConfiguration != nil {
11197		if err := s.KendraConfiguration.Validate(); err != nil {
11198			invalidParams.AddNested("KendraConfiguration", err.(request.ErrInvalidParams))
11199		}
11200	}
11201	if s.OutputContexts != nil {
11202		for i, v := range s.OutputContexts {
11203			if v == nil {
11204				continue
11205			}
11206			if err := v.Validate(); err != nil {
11207				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OutputContexts", i), err.(request.ErrInvalidParams))
11208			}
11209		}
11210	}
11211	if s.RejectionStatement != nil {
11212		if err := s.RejectionStatement.Validate(); err != nil {
11213			invalidParams.AddNested("RejectionStatement", err.(request.ErrInvalidParams))
11214		}
11215	}
11216	if s.Slots != nil {
11217		for i, v := range s.Slots {
11218			if v == nil {
11219				continue
11220			}
11221			if err := v.Validate(); err != nil {
11222				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Slots", i), err.(request.ErrInvalidParams))
11223			}
11224		}
11225	}
11226
11227	if invalidParams.Len() > 0 {
11228		return invalidParams
11229	}
11230	return nil
11231}
11232
11233// SetChecksum sets the Checksum field's value.
11234func (s *PutIntentInput) SetChecksum(v string) *PutIntentInput {
11235	s.Checksum = &v
11236	return s
11237}
11238
11239// SetConclusionStatement sets the ConclusionStatement field's value.
11240func (s *PutIntentInput) SetConclusionStatement(v *Statement) *PutIntentInput {
11241	s.ConclusionStatement = v
11242	return s
11243}
11244
11245// SetConfirmationPrompt sets the ConfirmationPrompt field's value.
11246func (s *PutIntentInput) SetConfirmationPrompt(v *Prompt) *PutIntentInput {
11247	s.ConfirmationPrompt = v
11248	return s
11249}
11250
11251// SetCreateVersion sets the CreateVersion field's value.
11252func (s *PutIntentInput) SetCreateVersion(v bool) *PutIntentInput {
11253	s.CreateVersion = &v
11254	return s
11255}
11256
11257// SetDescription sets the Description field's value.
11258func (s *PutIntentInput) SetDescription(v string) *PutIntentInput {
11259	s.Description = &v
11260	return s
11261}
11262
11263// SetDialogCodeHook sets the DialogCodeHook field's value.
11264func (s *PutIntentInput) SetDialogCodeHook(v *CodeHook) *PutIntentInput {
11265	s.DialogCodeHook = v
11266	return s
11267}
11268
11269// SetFollowUpPrompt sets the FollowUpPrompt field's value.
11270func (s *PutIntentInput) SetFollowUpPrompt(v *FollowUpPrompt) *PutIntentInput {
11271	s.FollowUpPrompt = v
11272	return s
11273}
11274
11275// SetFulfillmentActivity sets the FulfillmentActivity field's value.
11276func (s *PutIntentInput) SetFulfillmentActivity(v *FulfillmentActivity) *PutIntentInput {
11277	s.FulfillmentActivity = v
11278	return s
11279}
11280
11281// SetInputContexts sets the InputContexts field's value.
11282func (s *PutIntentInput) SetInputContexts(v []*InputContext) *PutIntentInput {
11283	s.InputContexts = v
11284	return s
11285}
11286
11287// SetKendraConfiguration sets the KendraConfiguration field's value.
11288func (s *PutIntentInput) SetKendraConfiguration(v *KendraConfiguration) *PutIntentInput {
11289	s.KendraConfiguration = v
11290	return s
11291}
11292
11293// SetName sets the Name field's value.
11294func (s *PutIntentInput) SetName(v string) *PutIntentInput {
11295	s.Name = &v
11296	return s
11297}
11298
11299// SetOutputContexts sets the OutputContexts field's value.
11300func (s *PutIntentInput) SetOutputContexts(v []*OutputContext) *PutIntentInput {
11301	s.OutputContexts = v
11302	return s
11303}
11304
11305// SetParentIntentSignature sets the ParentIntentSignature field's value.
11306func (s *PutIntentInput) SetParentIntentSignature(v string) *PutIntentInput {
11307	s.ParentIntentSignature = &v
11308	return s
11309}
11310
11311// SetRejectionStatement sets the RejectionStatement field's value.
11312func (s *PutIntentInput) SetRejectionStatement(v *Statement) *PutIntentInput {
11313	s.RejectionStatement = v
11314	return s
11315}
11316
11317// SetSampleUtterances sets the SampleUtterances field's value.
11318func (s *PutIntentInput) SetSampleUtterances(v []*string) *PutIntentInput {
11319	s.SampleUtterances = v
11320	return s
11321}
11322
11323// SetSlots sets the Slots field's value.
11324func (s *PutIntentInput) SetSlots(v []*Slot) *PutIntentInput {
11325	s.Slots = v
11326	return s
11327}
11328
11329type PutIntentOutput struct {
11330	_ struct{} `type:"structure"`
11331
11332	// Checksum of the $LATESTversion of the intent created or updated.
11333	Checksum *string `locationName:"checksum" type:"string"`
11334
11335	// After the Lambda function specified in thefulfillmentActivityintent fulfills
11336	// the intent, Amazon Lex conveys this statement to the user.
11337	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
11338
11339	// If defined in the intent, Amazon Lex prompts the user to confirm the intent
11340	// before fulfilling it.
11341	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
11342
11343	// True if a new version of the intent was created. If the createVersion field
11344	// was not specified in the request, the createVersion field is set to false
11345	// in the response.
11346	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
11347
11348	// The date that the intent was created.
11349	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
11350
11351	// A description of the intent.
11352	Description *string `locationName:"description" type:"string"`
11353
11354	// If defined in the intent, Amazon Lex invokes this Lambda function for each
11355	// user input.
11356	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
11357
11358	// If defined in the intent, Amazon Lex uses this prompt to solicit additional
11359	// user activity after the intent is fulfilled.
11360	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
11361
11362	// If defined in the intent, Amazon Lex invokes this Lambda function to fulfill
11363	// the intent after the user provides all of the information required by the
11364	// intent.
11365	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
11366
11367	// An array of InputContext objects that lists the contexts that must be active
11368	// for Amazon Lex to choose the intent in a conversation with the user.
11369	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
11370
11371	// Configuration information, if any, required to connect to an Amazon Kendra
11372	// index and use the AMAZON.KendraSearchIntent intent.
11373	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
11374
11375	// The date that the intent was updated. When you create a resource, the creation
11376	// date and last update dates are the same.
11377	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
11378
11379	// The name of the intent.
11380	Name *string `locationName:"name" min:"1" type:"string"`
11381
11382	// An array of OutputContext objects that lists the contexts that the intent
11383	// activates when the intent is fulfilled.
11384	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
11385
11386	// A unique identifier for the built-in intent that this intent is based on.
11387	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
11388
11389	// If the user answers "no" to the question defined in confirmationPrompt Amazon
11390	// Lex responds with this statement to acknowledge that the intent was canceled.
11391	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
11392
11393	// An array of sample utterances that are configured for the intent.
11394	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
11395
11396	// An array of intent slots that are configured for the intent.
11397	Slots []*Slot `locationName:"slots" type:"list"`
11398
11399	// The version of the intent. For a new intent, the version is always $LATEST.
11400	Version *string `locationName:"version" min:"1" type:"string"`
11401}
11402
11403// String returns the string representation
11404func (s PutIntentOutput) String() string {
11405	return awsutil.Prettify(s)
11406}
11407
11408// GoString returns the string representation
11409func (s PutIntentOutput) GoString() string {
11410	return s.String()
11411}
11412
11413// SetChecksum sets the Checksum field's value.
11414func (s *PutIntentOutput) SetChecksum(v string) *PutIntentOutput {
11415	s.Checksum = &v
11416	return s
11417}
11418
11419// SetConclusionStatement sets the ConclusionStatement field's value.
11420func (s *PutIntentOutput) SetConclusionStatement(v *Statement) *PutIntentOutput {
11421	s.ConclusionStatement = v
11422	return s
11423}
11424
11425// SetConfirmationPrompt sets the ConfirmationPrompt field's value.
11426func (s *PutIntentOutput) SetConfirmationPrompt(v *Prompt) *PutIntentOutput {
11427	s.ConfirmationPrompt = v
11428	return s
11429}
11430
11431// SetCreateVersion sets the CreateVersion field's value.
11432func (s *PutIntentOutput) SetCreateVersion(v bool) *PutIntentOutput {
11433	s.CreateVersion = &v
11434	return s
11435}
11436
11437// SetCreatedDate sets the CreatedDate field's value.
11438func (s *PutIntentOutput) SetCreatedDate(v time.Time) *PutIntentOutput {
11439	s.CreatedDate = &v
11440	return s
11441}
11442
11443// SetDescription sets the Description field's value.
11444func (s *PutIntentOutput) SetDescription(v string) *PutIntentOutput {
11445	s.Description = &v
11446	return s
11447}
11448
11449// SetDialogCodeHook sets the DialogCodeHook field's value.
11450func (s *PutIntentOutput) SetDialogCodeHook(v *CodeHook) *PutIntentOutput {
11451	s.DialogCodeHook = v
11452	return s
11453}
11454
11455// SetFollowUpPrompt sets the FollowUpPrompt field's value.
11456func (s *PutIntentOutput) SetFollowUpPrompt(v *FollowUpPrompt) *PutIntentOutput {
11457	s.FollowUpPrompt = v
11458	return s
11459}
11460
11461// SetFulfillmentActivity sets the FulfillmentActivity field's value.
11462func (s *PutIntentOutput) SetFulfillmentActivity(v *FulfillmentActivity) *PutIntentOutput {
11463	s.FulfillmentActivity = v
11464	return s
11465}
11466
11467// SetInputContexts sets the InputContexts field's value.
11468func (s *PutIntentOutput) SetInputContexts(v []*InputContext) *PutIntentOutput {
11469	s.InputContexts = v
11470	return s
11471}
11472
11473// SetKendraConfiguration sets the KendraConfiguration field's value.
11474func (s *PutIntentOutput) SetKendraConfiguration(v *KendraConfiguration) *PutIntentOutput {
11475	s.KendraConfiguration = v
11476	return s
11477}
11478
11479// SetLastUpdatedDate sets the LastUpdatedDate field's value.
11480func (s *PutIntentOutput) SetLastUpdatedDate(v time.Time) *PutIntentOutput {
11481	s.LastUpdatedDate = &v
11482	return s
11483}
11484
11485// SetName sets the Name field's value.
11486func (s *PutIntentOutput) SetName(v string) *PutIntentOutput {
11487	s.Name = &v
11488	return s
11489}
11490
11491// SetOutputContexts sets the OutputContexts field's value.
11492func (s *PutIntentOutput) SetOutputContexts(v []*OutputContext) *PutIntentOutput {
11493	s.OutputContexts = v
11494	return s
11495}
11496
11497// SetParentIntentSignature sets the ParentIntentSignature field's value.
11498func (s *PutIntentOutput) SetParentIntentSignature(v string) *PutIntentOutput {
11499	s.ParentIntentSignature = &v
11500	return s
11501}
11502
11503// SetRejectionStatement sets the RejectionStatement field's value.
11504func (s *PutIntentOutput) SetRejectionStatement(v *Statement) *PutIntentOutput {
11505	s.RejectionStatement = v
11506	return s
11507}
11508
11509// SetSampleUtterances sets the SampleUtterances field's value.
11510func (s *PutIntentOutput) SetSampleUtterances(v []*string) *PutIntentOutput {
11511	s.SampleUtterances = v
11512	return s
11513}
11514
11515// SetSlots sets the Slots field's value.
11516func (s *PutIntentOutput) SetSlots(v []*Slot) *PutIntentOutput {
11517	s.Slots = v
11518	return s
11519}
11520
11521// SetVersion sets the Version field's value.
11522func (s *PutIntentOutput) SetVersion(v string) *PutIntentOutput {
11523	s.Version = &v
11524	return s
11525}
11526
11527type PutSlotTypeInput struct {
11528	_ struct{} `type:"structure"`
11529
11530	// Identifies a specific revision of the $LATEST version.
11531	//
11532	// When you create a new slot type, leave the checksum field blank. If you specify
11533	// a checksum you get a BadRequestException exception.
11534	//
11535	// When you want to update a slot type, set the checksum field to the checksum
11536	// of the most recent revision of the $LATEST version. If you don't specify
11537	// the checksum field, or if the checksum does not match the $LATEST version,
11538	// you get a PreconditionFailedException exception.
11539	Checksum *string `locationName:"checksum" type:"string"`
11540
11541	// When set to true a new numbered version of the slot type is created. This
11542	// is the same as calling the CreateSlotTypeVersion operation. If you do not
11543	// specify createVersion, the default is false.
11544	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
11545
11546	// A description of the slot type.
11547	Description *string `locationName:"description" type:"string"`
11548
11549	// A list of EnumerationValue objects that defines the values that the slot
11550	// type can take. Each value can have a list of synonyms, which are additional
11551	// values that help train the machine learning model about the values that it
11552	// resolves for a slot.
11553	//
11554	// A regular expression slot type doesn't require enumeration values. All other
11555	// slot types require a list of enumeration values.
11556	//
11557	// When Amazon Lex resolves a slot value, it generates a resolution list that
11558	// contains up to five possible values for the slot. If you are using a Lambda
11559	// function, this resolution list is passed to the function. If you are not
11560	// using a Lambda function you can choose to return the value that the user
11561	// entered or the first value in the resolution list as the slot value. The
11562	// valueSelectionStrategy field indicates the option to use.
11563	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" type:"list"`
11564
11565	// The name of the slot type. The name is not case sensitive.
11566	//
11567	// The name can't match a built-in slot type name, or a built-in slot type name
11568	// with "AMAZON." removed. For example, because there is a built-in slot type
11569	// called AMAZON.DATE, you can't create a custom slot type called DATE.
11570	//
11571	// 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)
11572	// in the Alexa Skills Kit.
11573	//
11574	// Name is a required field
11575	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
11576
11577	// The built-in slot type used as the parent of the slot type. When you define
11578	// a parent slot type, the new slot type has all of the same configuration as
11579	// the parent.
11580	//
11581	// Only AMAZON.AlphaNumeric is supported.
11582	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" min:"1" type:"string"`
11583
11584	// Configuration information that extends the parent built-in slot type. The
11585	// configuration is added to the settings for the parent slot type.
11586	SlotTypeConfigurations []*SlotTypeConfiguration `locationName:"slotTypeConfigurations" type:"list"`
11587
11588	// Determines the slot resolution strategy that Amazon Lex uses to return slot
11589	// type values. The field can be set to one of the following values:
11590	//
11591	//    * ORIGINAL_VALUE - Returns the value entered by the user, if the user
11592	//    value is similar to the slot value.
11593	//
11594	//    * TOP_RESOLUTION - If there is a resolution list for the slot, return
11595	//    the first value in the resolution list as the slot type value. If there
11596	//    is no resolution list, null is returned.
11597	//
11598	// If you don't specify the valueSelectionStrategy, the default is ORIGINAL_VALUE.
11599	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
11600}
11601
11602// String returns the string representation
11603func (s PutSlotTypeInput) String() string {
11604	return awsutil.Prettify(s)
11605}
11606
11607// GoString returns the string representation
11608func (s PutSlotTypeInput) GoString() string {
11609	return s.String()
11610}
11611
11612// Validate inspects the fields of the type to determine if they are valid.
11613func (s *PutSlotTypeInput) Validate() error {
11614	invalidParams := request.ErrInvalidParams{Context: "PutSlotTypeInput"}
11615	if s.Name == nil {
11616		invalidParams.Add(request.NewErrParamRequired("Name"))
11617	}
11618	if s.Name != nil && len(*s.Name) < 1 {
11619		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
11620	}
11621	if s.ParentSlotTypeSignature != nil && len(*s.ParentSlotTypeSignature) < 1 {
11622		invalidParams.Add(request.NewErrParamMinLen("ParentSlotTypeSignature", 1))
11623	}
11624	if s.EnumerationValues != nil {
11625		for i, v := range s.EnumerationValues {
11626			if v == nil {
11627				continue
11628			}
11629			if err := v.Validate(); err != nil {
11630				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnumerationValues", i), err.(request.ErrInvalidParams))
11631			}
11632		}
11633	}
11634	if s.SlotTypeConfigurations != nil {
11635		for i, v := range s.SlotTypeConfigurations {
11636			if v == nil {
11637				continue
11638			}
11639			if err := v.Validate(); err != nil {
11640				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SlotTypeConfigurations", i), err.(request.ErrInvalidParams))
11641			}
11642		}
11643	}
11644
11645	if invalidParams.Len() > 0 {
11646		return invalidParams
11647	}
11648	return nil
11649}
11650
11651// SetChecksum sets the Checksum field's value.
11652func (s *PutSlotTypeInput) SetChecksum(v string) *PutSlotTypeInput {
11653	s.Checksum = &v
11654	return s
11655}
11656
11657// SetCreateVersion sets the CreateVersion field's value.
11658func (s *PutSlotTypeInput) SetCreateVersion(v bool) *PutSlotTypeInput {
11659	s.CreateVersion = &v
11660	return s
11661}
11662
11663// SetDescription sets the Description field's value.
11664func (s *PutSlotTypeInput) SetDescription(v string) *PutSlotTypeInput {
11665	s.Description = &v
11666	return s
11667}
11668
11669// SetEnumerationValues sets the EnumerationValues field's value.
11670func (s *PutSlotTypeInput) SetEnumerationValues(v []*EnumerationValue) *PutSlotTypeInput {
11671	s.EnumerationValues = v
11672	return s
11673}
11674
11675// SetName sets the Name field's value.
11676func (s *PutSlotTypeInput) SetName(v string) *PutSlotTypeInput {
11677	s.Name = &v
11678	return s
11679}
11680
11681// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
11682func (s *PutSlotTypeInput) SetParentSlotTypeSignature(v string) *PutSlotTypeInput {
11683	s.ParentSlotTypeSignature = &v
11684	return s
11685}
11686
11687// SetSlotTypeConfigurations sets the SlotTypeConfigurations field's value.
11688func (s *PutSlotTypeInput) SetSlotTypeConfigurations(v []*SlotTypeConfiguration) *PutSlotTypeInput {
11689	s.SlotTypeConfigurations = v
11690	return s
11691}
11692
11693// SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
11694func (s *PutSlotTypeInput) SetValueSelectionStrategy(v string) *PutSlotTypeInput {
11695	s.ValueSelectionStrategy = &v
11696	return s
11697}
11698
11699type PutSlotTypeOutput struct {
11700	_ struct{} `type:"structure"`
11701
11702	// Checksum of the $LATEST version of the slot type.
11703	Checksum *string `locationName:"checksum" type:"string"`
11704
11705	// True if a new version of the slot type was created. If the createVersion
11706	// field was not specified in the request, the createVersion field is set to
11707	// false in the response.
11708	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
11709
11710	// The date that the slot type was created.
11711	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
11712
11713	// A description of the slot type.
11714	Description *string `locationName:"description" type:"string"`
11715
11716	// A list of EnumerationValue objects that defines the values that the slot
11717	// type can take.
11718	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" type:"list"`
11719
11720	// The date that the slot type was updated. When you create a slot type, the
11721	// creation date and last update date are the same.
11722	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
11723
11724	// The name of the slot type.
11725	Name *string `locationName:"name" min:"1" type:"string"`
11726
11727	// The built-in slot type used as the parent of the slot type.
11728	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" min:"1" type:"string"`
11729
11730	// Configuration information that extends the parent built-in slot type.
11731	SlotTypeConfigurations []*SlotTypeConfiguration `locationName:"slotTypeConfigurations" type:"list"`
11732
11733	// The slot resolution strategy that Amazon Lex uses to determine the value
11734	// of the slot. For more information, see PutSlotType.
11735	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
11736
11737	// The version of the slot type. For a new slot type, the version is always
11738	// $LATEST.
11739	Version *string `locationName:"version" min:"1" type:"string"`
11740}
11741
11742// String returns the string representation
11743func (s PutSlotTypeOutput) String() string {
11744	return awsutil.Prettify(s)
11745}
11746
11747// GoString returns the string representation
11748func (s PutSlotTypeOutput) GoString() string {
11749	return s.String()
11750}
11751
11752// SetChecksum sets the Checksum field's value.
11753func (s *PutSlotTypeOutput) SetChecksum(v string) *PutSlotTypeOutput {
11754	s.Checksum = &v
11755	return s
11756}
11757
11758// SetCreateVersion sets the CreateVersion field's value.
11759func (s *PutSlotTypeOutput) SetCreateVersion(v bool) *PutSlotTypeOutput {
11760	s.CreateVersion = &v
11761	return s
11762}
11763
11764// SetCreatedDate sets the CreatedDate field's value.
11765func (s *PutSlotTypeOutput) SetCreatedDate(v time.Time) *PutSlotTypeOutput {
11766	s.CreatedDate = &v
11767	return s
11768}
11769
11770// SetDescription sets the Description field's value.
11771func (s *PutSlotTypeOutput) SetDescription(v string) *PutSlotTypeOutput {
11772	s.Description = &v
11773	return s
11774}
11775
11776// SetEnumerationValues sets the EnumerationValues field's value.
11777func (s *PutSlotTypeOutput) SetEnumerationValues(v []*EnumerationValue) *PutSlotTypeOutput {
11778	s.EnumerationValues = v
11779	return s
11780}
11781
11782// SetLastUpdatedDate sets the LastUpdatedDate field's value.
11783func (s *PutSlotTypeOutput) SetLastUpdatedDate(v time.Time) *PutSlotTypeOutput {
11784	s.LastUpdatedDate = &v
11785	return s
11786}
11787
11788// SetName sets the Name field's value.
11789func (s *PutSlotTypeOutput) SetName(v string) *PutSlotTypeOutput {
11790	s.Name = &v
11791	return s
11792}
11793
11794// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
11795func (s *PutSlotTypeOutput) SetParentSlotTypeSignature(v string) *PutSlotTypeOutput {
11796	s.ParentSlotTypeSignature = &v
11797	return s
11798}
11799
11800// SetSlotTypeConfigurations sets the SlotTypeConfigurations field's value.
11801func (s *PutSlotTypeOutput) SetSlotTypeConfigurations(v []*SlotTypeConfiguration) *PutSlotTypeOutput {
11802	s.SlotTypeConfigurations = v
11803	return s
11804}
11805
11806// SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
11807func (s *PutSlotTypeOutput) SetValueSelectionStrategy(v string) *PutSlotTypeOutput {
11808	s.ValueSelectionStrategy = &v
11809	return s
11810}
11811
11812// SetVersion sets the Version field's value.
11813func (s *PutSlotTypeOutput) SetVersion(v string) *PutSlotTypeOutput {
11814	s.Version = &v
11815	return s
11816}
11817
11818// The resource that you are attempting to delete is referred to by another
11819// resource. Use this information to remove references to the resource that
11820// you are trying to delete.
11821//
11822// The body of the exception contains a JSON object that describes the resource.
11823//
11824// { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
11825//
11826// "resourceReference": {
11827//
11828// "name": string, "version": string } }
11829type ResourceInUseException struct {
11830	_            struct{}                  `type:"structure"`
11831	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11832
11833	// Describes the resource that refers to the resource that you are attempting
11834	// to delete. This object is returned as part of the ResourceInUseException
11835	// exception.
11836	ExampleReference *ResourceReference `locationName:"exampleReference" type:"structure"`
11837
11838	Message_ *string `locationName:"message" type:"string"`
11839
11840	ReferenceType *string `locationName:"referenceType" type:"string" enum:"ReferenceType"`
11841}
11842
11843// String returns the string representation
11844func (s ResourceInUseException) String() string {
11845	return awsutil.Prettify(s)
11846}
11847
11848// GoString returns the string representation
11849func (s ResourceInUseException) GoString() string {
11850	return s.String()
11851}
11852
11853func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
11854	return &ResourceInUseException{
11855		RespMetadata: v,
11856	}
11857}
11858
11859// Code returns the exception type name.
11860func (s *ResourceInUseException) Code() string {
11861	return "ResourceInUseException"
11862}
11863
11864// Message returns the exception's message.
11865func (s *ResourceInUseException) Message() string {
11866	if s.Message_ != nil {
11867		return *s.Message_
11868	}
11869	return ""
11870}
11871
11872// OrigErr always returns nil, satisfies awserr.Error interface.
11873func (s *ResourceInUseException) OrigErr() error {
11874	return nil
11875}
11876
11877func (s *ResourceInUseException) Error() string {
11878	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11879}
11880
11881// Status code returns the HTTP status code for the request's response error.
11882func (s *ResourceInUseException) StatusCode() int {
11883	return s.RespMetadata.StatusCode
11884}
11885
11886// RequestID returns the service's response RequestID for request.
11887func (s *ResourceInUseException) RequestID() string {
11888	return s.RespMetadata.RequestID
11889}
11890
11891// Describes the resource that refers to the resource that you are attempting
11892// to delete. This object is returned as part of the ResourceInUseException
11893// exception.
11894type ResourceReference struct {
11895	_ struct{} `type:"structure"`
11896
11897	// The name of the resource that is using the resource that you are trying to
11898	// delete.
11899	Name *string `locationName:"name" min:"1" type:"string"`
11900
11901	// The version of the resource that is using the resource that you are trying
11902	// to delete.
11903	Version *string `locationName:"version" min:"1" type:"string"`
11904}
11905
11906// String returns the string representation
11907func (s ResourceReference) String() string {
11908	return awsutil.Prettify(s)
11909}
11910
11911// GoString returns the string representation
11912func (s ResourceReference) GoString() string {
11913	return s.String()
11914}
11915
11916// SetName sets the Name field's value.
11917func (s *ResourceReference) SetName(v string) *ResourceReference {
11918	s.Name = &v
11919	return s
11920}
11921
11922// SetVersion sets the Version field's value.
11923func (s *ResourceReference) SetVersion(v string) *ResourceReference {
11924	s.Version = &v
11925	return s
11926}
11927
11928// Identifies the version of a specific slot.
11929type Slot struct {
11930	_ struct{} `type:"structure"`
11931
11932	// A list of default values for the slot. Default values are used when Amazon
11933	// Lex hasn't determined a value for a slot. You can specify default values
11934	// from context variables, session attributes, and defined values.
11935	DefaultValueSpec *SlotDefaultValueSpec `locationName:"defaultValueSpec" type:"structure"`
11936
11937	// A description of the slot.
11938	Description *string `locationName:"description" type:"string"`
11939
11940	// The name of the slot.
11941	//
11942	// Name is a required field
11943	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
11944
11945	// Determines whether a slot is obfuscated in conversation logs and stored utterances.
11946	// When you obfuscate a slot, the value is replaced by the slot name in curly
11947	// braces ({}). For example, if the slot name is "full_name", obfuscated values
11948	// are replaced with "{full_name}". For more information, see Slot Obfuscation
11949	// (https://docs.aws.amazon.com/lex/latest/dg/how-obfuscate.html).
11950	ObfuscationSetting *string `locationName:"obfuscationSetting" type:"string" enum:"ObfuscationSetting"`
11951
11952	// Directs Amazon Lex the order in which to elicit this slot value from the
11953	// user. For example, if the intent has two slots with priorities 1 and 2, AWS
11954	// Amazon Lex first elicits a value for the slot with priority 1.
11955	//
11956	// If multiple slots share the same priority, the order in which Amazon Lex
11957	// elicits values is arbitrary.
11958	Priority *int64 `locationName:"priority" type:"integer"`
11959
11960	// A set of possible responses for the slot type used by text-based clients.
11961	// A user chooses an option from the response card, instead of using text to
11962	// reply.
11963	ResponseCard *string `locationName:"responseCard" min:"1" type:"string"`
11964
11965	// If you know a specific pattern with which users might respond to an Amazon
11966	// Lex request for a slot value, you can provide those utterances to improve
11967	// accuracy. This is optional. In most cases, Amazon Lex is capable of understanding
11968	// user utterances.
11969	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
11970
11971	// Specifies whether the slot is required or optional.
11972	//
11973	// SlotConstraint is a required field
11974	SlotConstraint *string `locationName:"slotConstraint" type:"string" required:"true" enum:"SlotConstraint"`
11975
11976	// The type of the slot, either a custom slot type that you defined or one of
11977	// the built-in slot types.
11978	SlotType *string `locationName:"slotType" min:"1" type:"string"`
11979
11980	// The version of the slot type.
11981	SlotTypeVersion *string `locationName:"slotTypeVersion" min:"1" type:"string"`
11982
11983	// The prompt that Amazon Lex uses to elicit the slot value from the user.
11984	ValueElicitationPrompt *Prompt `locationName:"valueElicitationPrompt" type:"structure"`
11985}
11986
11987// String returns the string representation
11988func (s Slot) String() string {
11989	return awsutil.Prettify(s)
11990}
11991
11992// GoString returns the string representation
11993func (s Slot) GoString() string {
11994	return s.String()
11995}
11996
11997// Validate inspects the fields of the type to determine if they are valid.
11998func (s *Slot) Validate() error {
11999	invalidParams := request.ErrInvalidParams{Context: "Slot"}
12000	if s.Name == nil {
12001		invalidParams.Add(request.NewErrParamRequired("Name"))
12002	}
12003	if s.Name != nil && len(*s.Name) < 1 {
12004		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
12005	}
12006	if s.ResponseCard != nil && len(*s.ResponseCard) < 1 {
12007		invalidParams.Add(request.NewErrParamMinLen("ResponseCard", 1))
12008	}
12009	if s.SlotConstraint == nil {
12010		invalidParams.Add(request.NewErrParamRequired("SlotConstraint"))
12011	}
12012	if s.SlotType != nil && len(*s.SlotType) < 1 {
12013		invalidParams.Add(request.NewErrParamMinLen("SlotType", 1))
12014	}
12015	if s.SlotTypeVersion != nil && len(*s.SlotTypeVersion) < 1 {
12016		invalidParams.Add(request.NewErrParamMinLen("SlotTypeVersion", 1))
12017	}
12018	if s.DefaultValueSpec != nil {
12019		if err := s.DefaultValueSpec.Validate(); err != nil {
12020			invalidParams.AddNested("DefaultValueSpec", err.(request.ErrInvalidParams))
12021		}
12022	}
12023	if s.ValueElicitationPrompt != nil {
12024		if err := s.ValueElicitationPrompt.Validate(); err != nil {
12025			invalidParams.AddNested("ValueElicitationPrompt", err.(request.ErrInvalidParams))
12026		}
12027	}
12028
12029	if invalidParams.Len() > 0 {
12030		return invalidParams
12031	}
12032	return nil
12033}
12034
12035// SetDefaultValueSpec sets the DefaultValueSpec field's value.
12036func (s *Slot) SetDefaultValueSpec(v *SlotDefaultValueSpec) *Slot {
12037	s.DefaultValueSpec = v
12038	return s
12039}
12040
12041// SetDescription sets the Description field's value.
12042func (s *Slot) SetDescription(v string) *Slot {
12043	s.Description = &v
12044	return s
12045}
12046
12047// SetName sets the Name field's value.
12048func (s *Slot) SetName(v string) *Slot {
12049	s.Name = &v
12050	return s
12051}
12052
12053// SetObfuscationSetting sets the ObfuscationSetting field's value.
12054func (s *Slot) SetObfuscationSetting(v string) *Slot {
12055	s.ObfuscationSetting = &v
12056	return s
12057}
12058
12059// SetPriority sets the Priority field's value.
12060func (s *Slot) SetPriority(v int64) *Slot {
12061	s.Priority = &v
12062	return s
12063}
12064
12065// SetResponseCard sets the ResponseCard field's value.
12066func (s *Slot) SetResponseCard(v string) *Slot {
12067	s.ResponseCard = &v
12068	return s
12069}
12070
12071// SetSampleUtterances sets the SampleUtterances field's value.
12072func (s *Slot) SetSampleUtterances(v []*string) *Slot {
12073	s.SampleUtterances = v
12074	return s
12075}
12076
12077// SetSlotConstraint sets the SlotConstraint field's value.
12078func (s *Slot) SetSlotConstraint(v string) *Slot {
12079	s.SlotConstraint = &v
12080	return s
12081}
12082
12083// SetSlotType sets the SlotType field's value.
12084func (s *Slot) SetSlotType(v string) *Slot {
12085	s.SlotType = &v
12086	return s
12087}
12088
12089// SetSlotTypeVersion sets the SlotTypeVersion field's value.
12090func (s *Slot) SetSlotTypeVersion(v string) *Slot {
12091	s.SlotTypeVersion = &v
12092	return s
12093}
12094
12095// SetValueElicitationPrompt sets the ValueElicitationPrompt field's value.
12096func (s *Slot) SetValueElicitationPrompt(v *Prompt) *Slot {
12097	s.ValueElicitationPrompt = v
12098	return s
12099}
12100
12101// A default value for a slot.
12102type SlotDefaultValue struct {
12103	_ struct{} `type:"structure"`
12104
12105	// The default value for the slot. You can specify one of the following:
12106	//
12107	//    * #context-name.slot-name - The slot value "slot-name" in the context
12108	//    "context-name."
12109	//
12110	//    * {attribute} - The slot value of the session attribute "attribute."
12111	//
12112	//    * 'value' - The discrete value "value."
12113	//
12114	// DefaultValue is a required field
12115	DefaultValue *string `locationName:"defaultValue" min:"1" type:"string" required:"true"`
12116}
12117
12118// String returns the string representation
12119func (s SlotDefaultValue) String() string {
12120	return awsutil.Prettify(s)
12121}
12122
12123// GoString returns the string representation
12124func (s SlotDefaultValue) GoString() string {
12125	return s.String()
12126}
12127
12128// Validate inspects the fields of the type to determine if they are valid.
12129func (s *SlotDefaultValue) Validate() error {
12130	invalidParams := request.ErrInvalidParams{Context: "SlotDefaultValue"}
12131	if s.DefaultValue == nil {
12132		invalidParams.Add(request.NewErrParamRequired("DefaultValue"))
12133	}
12134	if s.DefaultValue != nil && len(*s.DefaultValue) < 1 {
12135		invalidParams.Add(request.NewErrParamMinLen("DefaultValue", 1))
12136	}
12137
12138	if invalidParams.Len() > 0 {
12139		return invalidParams
12140	}
12141	return nil
12142}
12143
12144// SetDefaultValue sets the DefaultValue field's value.
12145func (s *SlotDefaultValue) SetDefaultValue(v string) *SlotDefaultValue {
12146	s.DefaultValue = &v
12147	return s
12148}
12149
12150// Contains the default values for a slot. Default values are used when Amazon
12151// Lex hasn't determined a value for a slot.
12152type SlotDefaultValueSpec struct {
12153	_ struct{} `type:"structure"`
12154
12155	// The default values for a slot. You can specify more than one default. For
12156	// example, you can specify a default value to use from a matching context variable,
12157	// a session attribute, or a fixed value.
12158	//
12159	// The default value chosen is selected based on the order that you specify
12160	// them in the list. For example, if you specify a context variable and a fixed
12161	// value in that order, Amazon Lex uses the context variable if it is available,
12162	// else it uses the fixed value.
12163	//
12164	// DefaultValueList is a required field
12165	DefaultValueList []*SlotDefaultValue `locationName:"defaultValueList" type:"list" required:"true"`
12166}
12167
12168// String returns the string representation
12169func (s SlotDefaultValueSpec) String() string {
12170	return awsutil.Prettify(s)
12171}
12172
12173// GoString returns the string representation
12174func (s SlotDefaultValueSpec) GoString() string {
12175	return s.String()
12176}
12177
12178// Validate inspects the fields of the type to determine if they are valid.
12179func (s *SlotDefaultValueSpec) Validate() error {
12180	invalidParams := request.ErrInvalidParams{Context: "SlotDefaultValueSpec"}
12181	if s.DefaultValueList == nil {
12182		invalidParams.Add(request.NewErrParamRequired("DefaultValueList"))
12183	}
12184	if s.DefaultValueList != nil {
12185		for i, v := range s.DefaultValueList {
12186			if v == nil {
12187				continue
12188			}
12189			if err := v.Validate(); err != nil {
12190				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultValueList", i), err.(request.ErrInvalidParams))
12191			}
12192		}
12193	}
12194
12195	if invalidParams.Len() > 0 {
12196		return invalidParams
12197	}
12198	return nil
12199}
12200
12201// SetDefaultValueList sets the DefaultValueList field's value.
12202func (s *SlotDefaultValueSpec) SetDefaultValueList(v []*SlotDefaultValue) *SlotDefaultValueSpec {
12203	s.DefaultValueList = v
12204	return s
12205}
12206
12207// Provides configuration information for a slot type.
12208type SlotTypeConfiguration struct {
12209	_ struct{} `type:"structure"`
12210
12211	// A regular expression used to validate the value of a slot.
12212	RegexConfiguration *SlotTypeRegexConfiguration `locationName:"regexConfiguration" type:"structure"`
12213}
12214
12215// String returns the string representation
12216func (s SlotTypeConfiguration) String() string {
12217	return awsutil.Prettify(s)
12218}
12219
12220// GoString returns the string representation
12221func (s SlotTypeConfiguration) GoString() string {
12222	return s.String()
12223}
12224
12225// Validate inspects the fields of the type to determine if they are valid.
12226func (s *SlotTypeConfiguration) Validate() error {
12227	invalidParams := request.ErrInvalidParams{Context: "SlotTypeConfiguration"}
12228	if s.RegexConfiguration != nil {
12229		if err := s.RegexConfiguration.Validate(); err != nil {
12230			invalidParams.AddNested("RegexConfiguration", err.(request.ErrInvalidParams))
12231		}
12232	}
12233
12234	if invalidParams.Len() > 0 {
12235		return invalidParams
12236	}
12237	return nil
12238}
12239
12240// SetRegexConfiguration sets the RegexConfiguration field's value.
12241func (s *SlotTypeConfiguration) SetRegexConfiguration(v *SlotTypeRegexConfiguration) *SlotTypeConfiguration {
12242	s.RegexConfiguration = v
12243	return s
12244}
12245
12246// Provides information about a slot type..
12247type SlotTypeMetadata struct {
12248	_ struct{} `type:"structure"`
12249
12250	// The date that the slot type was created.
12251	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
12252
12253	// A description of the slot type.
12254	Description *string `locationName:"description" type:"string"`
12255
12256	// The date that the slot type was updated. When you create a resource, the
12257	// creation date and last updated date are the same.
12258	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
12259
12260	// The name of the slot type.
12261	Name *string `locationName:"name" min:"1" type:"string"`
12262
12263	// The version of the slot type.
12264	Version *string `locationName:"version" min:"1" type:"string"`
12265}
12266
12267// String returns the string representation
12268func (s SlotTypeMetadata) String() string {
12269	return awsutil.Prettify(s)
12270}
12271
12272// GoString returns the string representation
12273func (s SlotTypeMetadata) GoString() string {
12274	return s.String()
12275}
12276
12277// SetCreatedDate sets the CreatedDate field's value.
12278func (s *SlotTypeMetadata) SetCreatedDate(v time.Time) *SlotTypeMetadata {
12279	s.CreatedDate = &v
12280	return s
12281}
12282
12283// SetDescription sets the Description field's value.
12284func (s *SlotTypeMetadata) SetDescription(v string) *SlotTypeMetadata {
12285	s.Description = &v
12286	return s
12287}
12288
12289// SetLastUpdatedDate sets the LastUpdatedDate field's value.
12290func (s *SlotTypeMetadata) SetLastUpdatedDate(v time.Time) *SlotTypeMetadata {
12291	s.LastUpdatedDate = &v
12292	return s
12293}
12294
12295// SetName sets the Name field's value.
12296func (s *SlotTypeMetadata) SetName(v string) *SlotTypeMetadata {
12297	s.Name = &v
12298	return s
12299}
12300
12301// SetVersion sets the Version field's value.
12302func (s *SlotTypeMetadata) SetVersion(v string) *SlotTypeMetadata {
12303	s.Version = &v
12304	return s
12305}
12306
12307// Provides a regular expression used to validate the value of a slot.
12308type SlotTypeRegexConfiguration struct {
12309	_ struct{} `type:"structure"`
12310
12311	// A regular expression used to validate the value of a slot.
12312	//
12313	// Use a standard regular expression. Amazon Lex supports the following characters
12314	// in the regular expression:
12315	//
12316	//    * A-Z, a-z
12317	//
12318	//    * 0-9
12319	//
12320	//    * Unicode characters ("\ u<Unicode>")
12321	//
12322	// Represent Unicode characters with four digits, for example "\u0041" or "\u005A".
12323	//
12324	// The following regular expression operators are not supported:
12325	//
12326	//    * Infinite repeaters: *, +, or {x,} with no upper bound.
12327	//
12328	//    * Wild card (.)
12329	//
12330	// Pattern is a required field
12331	Pattern *string `locationName:"pattern" min:"1" type:"string" required:"true"`
12332}
12333
12334// String returns the string representation
12335func (s SlotTypeRegexConfiguration) String() string {
12336	return awsutil.Prettify(s)
12337}
12338
12339// GoString returns the string representation
12340func (s SlotTypeRegexConfiguration) GoString() string {
12341	return s.String()
12342}
12343
12344// Validate inspects the fields of the type to determine if they are valid.
12345func (s *SlotTypeRegexConfiguration) Validate() error {
12346	invalidParams := request.ErrInvalidParams{Context: "SlotTypeRegexConfiguration"}
12347	if s.Pattern == nil {
12348		invalidParams.Add(request.NewErrParamRequired("Pattern"))
12349	}
12350	if s.Pattern != nil && len(*s.Pattern) < 1 {
12351		invalidParams.Add(request.NewErrParamMinLen("Pattern", 1))
12352	}
12353
12354	if invalidParams.Len() > 0 {
12355		return invalidParams
12356	}
12357	return nil
12358}
12359
12360// SetPattern sets the Pattern field's value.
12361func (s *SlotTypeRegexConfiguration) SetPattern(v string) *SlotTypeRegexConfiguration {
12362	s.Pattern = &v
12363	return s
12364}
12365
12366type StartImportInput struct {
12367	_ struct{} `type:"structure"`
12368
12369	// Specifies the action that the StartImport operation should take when there
12370	// is an existing resource with the same name.
12371	//
12372	//    * FAIL_ON_CONFLICT - The import operation is stopped on the first conflict
12373	//    between a resource in the import file and an existing resource. The name
12374	//    of the resource causing the conflict is in the failureReason field of
12375	//    the response to the GetImport operation. OVERWRITE_LATEST - The import
12376	//    operation proceeds even if there is a conflict with an existing resource.
12377	//    The $LASTEST version of the existing resource is overwritten with the
12378	//    data from the import file.
12379	//
12380	// MergeStrategy is a required field
12381	MergeStrategy *string `locationName:"mergeStrategy" type:"string" required:"true" enum:"MergeStrategy"`
12382
12383	// A zip archive in binary format. The archive should contain one file, a JSON
12384	// file containing the resource to import. The resource should match the type
12385	// specified in the resourceType field.
12386	//
12387	// Payload is automatically base64 encoded/decoded by the SDK.
12388	//
12389	// Payload is a required field
12390	Payload []byte `locationName:"payload" type:"blob" required:"true"`
12391
12392	// Specifies the type of resource to export. Each resource also exports any
12393	// resources that it depends on.
12394	//
12395	//    * A bot exports dependent intents.
12396	//
12397	//    * An intent exports dependent slot types.
12398	//
12399	// ResourceType is a required field
12400	ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
12401
12402	// A list of tags to add to the imported bot. You can only add tags when you
12403	// import a bot, you can't add tags to an intent or slot type.
12404	Tags []*Tag `locationName:"tags" type:"list"`
12405}
12406
12407// String returns the string representation
12408func (s StartImportInput) String() string {
12409	return awsutil.Prettify(s)
12410}
12411
12412// GoString returns the string representation
12413func (s StartImportInput) GoString() string {
12414	return s.String()
12415}
12416
12417// Validate inspects the fields of the type to determine if they are valid.
12418func (s *StartImportInput) Validate() error {
12419	invalidParams := request.ErrInvalidParams{Context: "StartImportInput"}
12420	if s.MergeStrategy == nil {
12421		invalidParams.Add(request.NewErrParamRequired("MergeStrategy"))
12422	}
12423	if s.Payload == nil {
12424		invalidParams.Add(request.NewErrParamRequired("Payload"))
12425	}
12426	if s.ResourceType == nil {
12427		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
12428	}
12429	if s.Tags != nil {
12430		for i, v := range s.Tags {
12431			if v == nil {
12432				continue
12433			}
12434			if err := v.Validate(); err != nil {
12435				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12436			}
12437		}
12438	}
12439
12440	if invalidParams.Len() > 0 {
12441		return invalidParams
12442	}
12443	return nil
12444}
12445
12446// SetMergeStrategy sets the MergeStrategy field's value.
12447func (s *StartImportInput) SetMergeStrategy(v string) *StartImportInput {
12448	s.MergeStrategy = &v
12449	return s
12450}
12451
12452// SetPayload sets the Payload field's value.
12453func (s *StartImportInput) SetPayload(v []byte) *StartImportInput {
12454	s.Payload = v
12455	return s
12456}
12457
12458// SetResourceType sets the ResourceType field's value.
12459func (s *StartImportInput) SetResourceType(v string) *StartImportInput {
12460	s.ResourceType = &v
12461	return s
12462}
12463
12464// SetTags sets the Tags field's value.
12465func (s *StartImportInput) SetTags(v []*Tag) *StartImportInput {
12466	s.Tags = v
12467	return s
12468}
12469
12470type StartImportOutput struct {
12471	_ struct{} `type:"structure"`
12472
12473	// A timestamp for the date and time that the import job was requested.
12474	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
12475
12476	// The identifier for the specific import job.
12477	ImportId *string `locationName:"importId" type:"string"`
12478
12479	// The status of the import job. If the status is FAILED, you can get the reason
12480	// for the failure using the GetImport operation.
12481	ImportStatus *string `locationName:"importStatus" type:"string" enum:"ImportStatus"`
12482
12483	// The action to take when there is a merge conflict.
12484	MergeStrategy *string `locationName:"mergeStrategy" type:"string" enum:"MergeStrategy"`
12485
12486	// The name given to the import job.
12487	Name *string `locationName:"name" min:"1" type:"string"`
12488
12489	// The type of resource to import.
12490	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
12491
12492	// A list of tags added to the imported bot.
12493	Tags []*Tag `locationName:"tags" type:"list"`
12494}
12495
12496// String returns the string representation
12497func (s StartImportOutput) String() string {
12498	return awsutil.Prettify(s)
12499}
12500
12501// GoString returns the string representation
12502func (s StartImportOutput) GoString() string {
12503	return s.String()
12504}
12505
12506// SetCreatedDate sets the CreatedDate field's value.
12507func (s *StartImportOutput) SetCreatedDate(v time.Time) *StartImportOutput {
12508	s.CreatedDate = &v
12509	return s
12510}
12511
12512// SetImportId sets the ImportId field's value.
12513func (s *StartImportOutput) SetImportId(v string) *StartImportOutput {
12514	s.ImportId = &v
12515	return s
12516}
12517
12518// SetImportStatus sets the ImportStatus field's value.
12519func (s *StartImportOutput) SetImportStatus(v string) *StartImportOutput {
12520	s.ImportStatus = &v
12521	return s
12522}
12523
12524// SetMergeStrategy sets the MergeStrategy field's value.
12525func (s *StartImportOutput) SetMergeStrategy(v string) *StartImportOutput {
12526	s.MergeStrategy = &v
12527	return s
12528}
12529
12530// SetName sets the Name field's value.
12531func (s *StartImportOutput) SetName(v string) *StartImportOutput {
12532	s.Name = &v
12533	return s
12534}
12535
12536// SetResourceType sets the ResourceType field's value.
12537func (s *StartImportOutput) SetResourceType(v string) *StartImportOutput {
12538	s.ResourceType = &v
12539	return s
12540}
12541
12542// SetTags sets the Tags field's value.
12543func (s *StartImportOutput) SetTags(v []*Tag) *StartImportOutput {
12544	s.Tags = v
12545	return s
12546}
12547
12548// A collection of messages that convey information to the user. At runtime,
12549// Amazon Lex selects the message to convey.
12550type Statement struct {
12551	_ struct{} `type:"structure"`
12552
12553	// A collection of message objects.
12554	//
12555	// Messages is a required field
12556	Messages []*Message `locationName:"messages" min:"1" type:"list" required:"true"`
12557
12558	// At runtime, if the client is using the PostText (http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
12559	// API, Amazon Lex includes the response card in the response. It substitutes
12560	// all of the session attributes and slot values for placeholders in the response
12561	// card.
12562	ResponseCard *string `locationName:"responseCard" min:"1" type:"string"`
12563}
12564
12565// String returns the string representation
12566func (s Statement) String() string {
12567	return awsutil.Prettify(s)
12568}
12569
12570// GoString returns the string representation
12571func (s Statement) GoString() string {
12572	return s.String()
12573}
12574
12575// Validate inspects the fields of the type to determine if they are valid.
12576func (s *Statement) Validate() error {
12577	invalidParams := request.ErrInvalidParams{Context: "Statement"}
12578	if s.Messages == nil {
12579		invalidParams.Add(request.NewErrParamRequired("Messages"))
12580	}
12581	if s.Messages != nil && len(s.Messages) < 1 {
12582		invalidParams.Add(request.NewErrParamMinLen("Messages", 1))
12583	}
12584	if s.ResponseCard != nil && len(*s.ResponseCard) < 1 {
12585		invalidParams.Add(request.NewErrParamMinLen("ResponseCard", 1))
12586	}
12587	if s.Messages != nil {
12588		for i, v := range s.Messages {
12589			if v == nil {
12590				continue
12591			}
12592			if err := v.Validate(); err != nil {
12593				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Messages", i), err.(request.ErrInvalidParams))
12594			}
12595		}
12596	}
12597
12598	if invalidParams.Len() > 0 {
12599		return invalidParams
12600	}
12601	return nil
12602}
12603
12604// SetMessages sets the Messages field's value.
12605func (s *Statement) SetMessages(v []*Message) *Statement {
12606	s.Messages = v
12607	return s
12608}
12609
12610// SetResponseCard sets the ResponseCard field's value.
12611func (s *Statement) SetResponseCard(v string) *Statement {
12612	s.ResponseCard = &v
12613	return s
12614}
12615
12616// A list of key/value pairs that identify a bot, bot alias, or bot channel.
12617// Tag keys and values can consist of Unicode letters, digits, white space,
12618// and any of the following symbols: _ . : / = + - @.
12619type Tag struct {
12620	_ struct{} `type:"structure"`
12621
12622	// The key for the tag. Keys are not case-sensitive and must be unique.
12623	//
12624	// Key is a required field
12625	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
12626
12627	// The value associated with a key. The value may be an empty string but it
12628	// can't be null.
12629	//
12630	// Value is a required field
12631	Value *string `locationName:"value" type:"string" required:"true"`
12632}
12633
12634// String returns the string representation
12635func (s Tag) String() string {
12636	return awsutil.Prettify(s)
12637}
12638
12639// GoString returns the string representation
12640func (s Tag) GoString() string {
12641	return s.String()
12642}
12643
12644// Validate inspects the fields of the type to determine if they are valid.
12645func (s *Tag) Validate() error {
12646	invalidParams := request.ErrInvalidParams{Context: "Tag"}
12647	if s.Key == nil {
12648		invalidParams.Add(request.NewErrParamRequired("Key"))
12649	}
12650	if s.Key != nil && len(*s.Key) < 1 {
12651		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
12652	}
12653	if s.Value == nil {
12654		invalidParams.Add(request.NewErrParamRequired("Value"))
12655	}
12656
12657	if invalidParams.Len() > 0 {
12658		return invalidParams
12659	}
12660	return nil
12661}
12662
12663// SetKey sets the Key field's value.
12664func (s *Tag) SetKey(v string) *Tag {
12665	s.Key = &v
12666	return s
12667}
12668
12669// SetValue sets the Value field's value.
12670func (s *Tag) SetValue(v string) *Tag {
12671	s.Value = &v
12672	return s
12673}
12674
12675type TagResourceInput struct {
12676	_ struct{} `type:"structure"`
12677
12678	// The Amazon Resource Name (ARN) of the bot, bot alias, or bot channel to tag.
12679	//
12680	// ResourceArn is a required field
12681	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
12682
12683	// A list of tag keys to add to the resource. If a tag key already exists, the
12684	// existing value is replaced with the new value.
12685	//
12686	// Tags is a required field
12687	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
12688}
12689
12690// String returns the string representation
12691func (s TagResourceInput) String() string {
12692	return awsutil.Prettify(s)
12693}
12694
12695// GoString returns the string representation
12696func (s TagResourceInput) GoString() string {
12697	return s.String()
12698}
12699
12700// Validate inspects the fields of the type to determine if they are valid.
12701func (s *TagResourceInput) Validate() error {
12702	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
12703	if s.ResourceArn == nil {
12704		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
12705	}
12706	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
12707		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
12708	}
12709	if s.Tags == nil {
12710		invalidParams.Add(request.NewErrParamRequired("Tags"))
12711	}
12712	if s.Tags != nil {
12713		for i, v := range s.Tags {
12714			if v == nil {
12715				continue
12716			}
12717			if err := v.Validate(); err != nil {
12718				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12719			}
12720		}
12721	}
12722
12723	if invalidParams.Len() > 0 {
12724		return invalidParams
12725	}
12726	return nil
12727}
12728
12729// SetResourceArn sets the ResourceArn field's value.
12730func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
12731	s.ResourceArn = &v
12732	return s
12733}
12734
12735// SetTags sets the Tags field's value.
12736func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
12737	s.Tags = v
12738	return s
12739}
12740
12741type TagResourceOutput struct {
12742	_ struct{} `type:"structure"`
12743}
12744
12745// String returns the string representation
12746func (s TagResourceOutput) String() string {
12747	return awsutil.Prettify(s)
12748}
12749
12750// GoString returns the string representation
12751func (s TagResourceOutput) GoString() string {
12752	return s.String()
12753}
12754
12755type UntagResourceInput struct {
12756	_ struct{} `type:"structure"`
12757
12758	// The Amazon Resource Name (ARN) of the resource to remove the tags from.
12759	//
12760	// ResourceArn is a required field
12761	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
12762
12763	// A list of tag keys to remove from the resource. If a tag key does not exist
12764	// on the resource, it is ignored.
12765	//
12766	// TagKeys is a required field
12767	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
12768}
12769
12770// String returns the string representation
12771func (s UntagResourceInput) String() string {
12772	return awsutil.Prettify(s)
12773}
12774
12775// GoString returns the string representation
12776func (s UntagResourceInput) GoString() string {
12777	return s.String()
12778}
12779
12780// Validate inspects the fields of the type to determine if they are valid.
12781func (s *UntagResourceInput) Validate() error {
12782	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
12783	if s.ResourceArn == nil {
12784		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
12785	}
12786	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
12787		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
12788	}
12789	if s.TagKeys == nil {
12790		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
12791	}
12792
12793	if invalidParams.Len() > 0 {
12794		return invalidParams
12795	}
12796	return nil
12797}
12798
12799// SetResourceArn sets the ResourceArn field's value.
12800func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
12801	s.ResourceArn = &v
12802	return s
12803}
12804
12805// SetTagKeys sets the TagKeys field's value.
12806func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
12807	s.TagKeys = v
12808	return s
12809}
12810
12811type UntagResourceOutput struct {
12812	_ struct{} `type:"structure"`
12813}
12814
12815// String returns the string representation
12816func (s UntagResourceOutput) String() string {
12817	return awsutil.Prettify(s)
12818}
12819
12820// GoString returns the string representation
12821func (s UntagResourceOutput) GoString() string {
12822	return s.String()
12823}
12824
12825// Provides information about a single utterance that was made to your bot.
12826type UtteranceData struct {
12827	_ struct{} `type:"structure"`
12828
12829	// The number of times that the utterance was processed.
12830	Count *int64 `locationName:"count" type:"integer"`
12831
12832	// The total number of individuals that used the utterance.
12833	DistinctUsers *int64 `locationName:"distinctUsers" type:"integer"`
12834
12835	// The date that the utterance was first recorded.
12836	FirstUtteredDate *time.Time `locationName:"firstUtteredDate" type:"timestamp"`
12837
12838	// The date that the utterance was last recorded.
12839	LastUtteredDate *time.Time `locationName:"lastUtteredDate" type:"timestamp"`
12840
12841	// The text that was entered by the user or the text representation of an audio
12842	// clip.
12843	UtteranceString *string `locationName:"utteranceString" min:"1" type:"string"`
12844}
12845
12846// String returns the string representation
12847func (s UtteranceData) String() string {
12848	return awsutil.Prettify(s)
12849}
12850
12851// GoString returns the string representation
12852func (s UtteranceData) GoString() string {
12853	return s.String()
12854}
12855
12856// SetCount sets the Count field's value.
12857func (s *UtteranceData) SetCount(v int64) *UtteranceData {
12858	s.Count = &v
12859	return s
12860}
12861
12862// SetDistinctUsers sets the DistinctUsers field's value.
12863func (s *UtteranceData) SetDistinctUsers(v int64) *UtteranceData {
12864	s.DistinctUsers = &v
12865	return s
12866}
12867
12868// SetFirstUtteredDate sets the FirstUtteredDate field's value.
12869func (s *UtteranceData) SetFirstUtteredDate(v time.Time) *UtteranceData {
12870	s.FirstUtteredDate = &v
12871	return s
12872}
12873
12874// SetLastUtteredDate sets the LastUtteredDate field's value.
12875func (s *UtteranceData) SetLastUtteredDate(v time.Time) *UtteranceData {
12876	s.LastUtteredDate = &v
12877	return s
12878}
12879
12880// SetUtteranceString sets the UtteranceString field's value.
12881func (s *UtteranceData) SetUtteranceString(v string) *UtteranceData {
12882	s.UtteranceString = &v
12883	return s
12884}
12885
12886// Provides a list of utterances that have been made to a specific version of
12887// your bot. The list contains a maximum of 100 utterances.
12888type UtteranceList struct {
12889	_ struct{} `type:"structure"`
12890
12891	// The version of the bot that processed the list.
12892	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
12893
12894	// One or more UtteranceData objects that contain information about the utterances
12895	// that have been made to a bot. The maximum number of object is 100.
12896	Utterances []*UtteranceData `locationName:"utterances" type:"list"`
12897}
12898
12899// String returns the string representation
12900func (s UtteranceList) String() string {
12901	return awsutil.Prettify(s)
12902}
12903
12904// GoString returns the string representation
12905func (s UtteranceList) GoString() string {
12906	return s.String()
12907}
12908
12909// SetBotVersion sets the BotVersion field's value.
12910func (s *UtteranceList) SetBotVersion(v string) *UtteranceList {
12911	s.BotVersion = &v
12912	return s
12913}
12914
12915// SetUtterances sets the Utterances field's value.
12916func (s *UtteranceList) SetUtterances(v []*UtteranceData) *UtteranceList {
12917	s.Utterances = v
12918	return s
12919}
12920
12921const (
12922	// ChannelStatusInProgress is a ChannelStatus enum value
12923	ChannelStatusInProgress = "IN_PROGRESS"
12924
12925	// ChannelStatusCreated is a ChannelStatus enum value
12926	ChannelStatusCreated = "CREATED"
12927
12928	// ChannelStatusFailed is a ChannelStatus enum value
12929	ChannelStatusFailed = "FAILED"
12930)
12931
12932// ChannelStatus_Values returns all elements of the ChannelStatus enum
12933func ChannelStatus_Values() []string {
12934	return []string{
12935		ChannelStatusInProgress,
12936		ChannelStatusCreated,
12937		ChannelStatusFailed,
12938	}
12939}
12940
12941const (
12942	// ChannelTypeFacebook is a ChannelType enum value
12943	ChannelTypeFacebook = "Facebook"
12944
12945	// ChannelTypeSlack is a ChannelType enum value
12946	ChannelTypeSlack = "Slack"
12947
12948	// ChannelTypeTwilioSms is a ChannelType enum value
12949	ChannelTypeTwilioSms = "Twilio-Sms"
12950
12951	// ChannelTypeKik is a ChannelType enum value
12952	ChannelTypeKik = "Kik"
12953)
12954
12955// ChannelType_Values returns all elements of the ChannelType enum
12956func ChannelType_Values() []string {
12957	return []string{
12958		ChannelTypeFacebook,
12959		ChannelTypeSlack,
12960		ChannelTypeTwilioSms,
12961		ChannelTypeKik,
12962	}
12963}
12964
12965const (
12966	// ContentTypePlainText is a ContentType enum value
12967	ContentTypePlainText = "PlainText"
12968
12969	// ContentTypeSsml is a ContentType enum value
12970	ContentTypeSsml = "SSML"
12971
12972	// ContentTypeCustomPayload is a ContentType enum value
12973	ContentTypeCustomPayload = "CustomPayload"
12974)
12975
12976// ContentType_Values returns all elements of the ContentType enum
12977func ContentType_Values() []string {
12978	return []string{
12979		ContentTypePlainText,
12980		ContentTypeSsml,
12981		ContentTypeCustomPayload,
12982	}
12983}
12984
12985const (
12986	// DestinationCloudwatchLogs is a Destination enum value
12987	DestinationCloudwatchLogs = "CLOUDWATCH_LOGS"
12988
12989	// DestinationS3 is a Destination enum value
12990	DestinationS3 = "S3"
12991)
12992
12993// Destination_Values returns all elements of the Destination enum
12994func Destination_Values() []string {
12995	return []string{
12996		DestinationCloudwatchLogs,
12997		DestinationS3,
12998	}
12999}
13000
13001const (
13002	// ExportStatusInProgress is a ExportStatus enum value
13003	ExportStatusInProgress = "IN_PROGRESS"
13004
13005	// ExportStatusReady is a ExportStatus enum value
13006	ExportStatusReady = "READY"
13007
13008	// ExportStatusFailed is a ExportStatus enum value
13009	ExportStatusFailed = "FAILED"
13010)
13011
13012// ExportStatus_Values returns all elements of the ExportStatus enum
13013func ExportStatus_Values() []string {
13014	return []string{
13015		ExportStatusInProgress,
13016		ExportStatusReady,
13017		ExportStatusFailed,
13018	}
13019}
13020
13021const (
13022	// ExportTypeAlexaSkillsKit is a ExportType enum value
13023	ExportTypeAlexaSkillsKit = "ALEXA_SKILLS_KIT"
13024
13025	// ExportTypeLex is a ExportType enum value
13026	ExportTypeLex = "LEX"
13027)
13028
13029// ExportType_Values returns all elements of the ExportType enum
13030func ExportType_Values() []string {
13031	return []string{
13032		ExportTypeAlexaSkillsKit,
13033		ExportTypeLex,
13034	}
13035}
13036
13037const (
13038	// FulfillmentActivityTypeReturnIntent is a FulfillmentActivityType enum value
13039	FulfillmentActivityTypeReturnIntent = "ReturnIntent"
13040
13041	// FulfillmentActivityTypeCodeHook is a FulfillmentActivityType enum value
13042	FulfillmentActivityTypeCodeHook = "CodeHook"
13043)
13044
13045// FulfillmentActivityType_Values returns all elements of the FulfillmentActivityType enum
13046func FulfillmentActivityType_Values() []string {
13047	return []string{
13048		FulfillmentActivityTypeReturnIntent,
13049		FulfillmentActivityTypeCodeHook,
13050	}
13051}
13052
13053const (
13054	// ImportStatusInProgress is a ImportStatus enum value
13055	ImportStatusInProgress = "IN_PROGRESS"
13056
13057	// ImportStatusComplete is a ImportStatus enum value
13058	ImportStatusComplete = "COMPLETE"
13059
13060	// ImportStatusFailed is a ImportStatus enum value
13061	ImportStatusFailed = "FAILED"
13062)
13063
13064// ImportStatus_Values returns all elements of the ImportStatus enum
13065func ImportStatus_Values() []string {
13066	return []string{
13067		ImportStatusInProgress,
13068		ImportStatusComplete,
13069		ImportStatusFailed,
13070	}
13071}
13072
13073const (
13074	// LocaleDeDe is a Locale enum value
13075	LocaleDeDe = "de-DE"
13076
13077	// LocaleEnAu is a Locale enum value
13078	LocaleEnAu = "en-AU"
13079
13080	// LocaleEnGb is a Locale enum value
13081	LocaleEnGb = "en-GB"
13082
13083	// LocaleEnUs is a Locale enum value
13084	LocaleEnUs = "en-US"
13085
13086	// LocaleEs419 is a Locale enum value
13087	LocaleEs419 = "es-419"
13088
13089	// LocaleEsEs is a Locale enum value
13090	LocaleEsEs = "es-ES"
13091
13092	// LocaleEsUs is a Locale enum value
13093	LocaleEsUs = "es-US"
13094
13095	// LocaleFrFr is a Locale enum value
13096	LocaleFrFr = "fr-FR"
13097
13098	// LocaleFrCa is a Locale enum value
13099	LocaleFrCa = "fr-CA"
13100
13101	// LocaleItIt is a Locale enum value
13102	LocaleItIt = "it-IT"
13103
13104	// LocaleJaJp is a Locale enum value
13105	LocaleJaJp = "ja-JP"
13106)
13107
13108// Locale_Values returns all elements of the Locale enum
13109func Locale_Values() []string {
13110	return []string{
13111		LocaleDeDe,
13112		LocaleEnAu,
13113		LocaleEnGb,
13114		LocaleEnUs,
13115		LocaleEs419,
13116		LocaleEsEs,
13117		LocaleEsUs,
13118		LocaleFrFr,
13119		LocaleFrCa,
13120		LocaleItIt,
13121		LocaleJaJp,
13122	}
13123}
13124
13125const (
13126	// LogTypeAudio is a LogType enum value
13127	LogTypeAudio = "AUDIO"
13128
13129	// LogTypeText is a LogType enum value
13130	LogTypeText = "TEXT"
13131)
13132
13133// LogType_Values returns all elements of the LogType enum
13134func LogType_Values() []string {
13135	return []string{
13136		LogTypeAudio,
13137		LogTypeText,
13138	}
13139}
13140
13141const (
13142	// MergeStrategyOverwriteLatest is a MergeStrategy enum value
13143	MergeStrategyOverwriteLatest = "OVERWRITE_LATEST"
13144
13145	// MergeStrategyFailOnConflict is a MergeStrategy enum value
13146	MergeStrategyFailOnConflict = "FAIL_ON_CONFLICT"
13147)
13148
13149// MergeStrategy_Values returns all elements of the MergeStrategy enum
13150func MergeStrategy_Values() []string {
13151	return []string{
13152		MergeStrategyOverwriteLatest,
13153		MergeStrategyFailOnConflict,
13154	}
13155}
13156
13157const (
13158	// ObfuscationSettingNone is a ObfuscationSetting enum value
13159	ObfuscationSettingNone = "NONE"
13160
13161	// ObfuscationSettingDefaultObfuscation is a ObfuscationSetting enum value
13162	ObfuscationSettingDefaultObfuscation = "DEFAULT_OBFUSCATION"
13163)
13164
13165// ObfuscationSetting_Values returns all elements of the ObfuscationSetting enum
13166func ObfuscationSetting_Values() []string {
13167	return []string{
13168		ObfuscationSettingNone,
13169		ObfuscationSettingDefaultObfuscation,
13170	}
13171}
13172
13173const (
13174	// ProcessBehaviorSave is a ProcessBehavior enum value
13175	ProcessBehaviorSave = "SAVE"
13176
13177	// ProcessBehaviorBuild is a ProcessBehavior enum value
13178	ProcessBehaviorBuild = "BUILD"
13179)
13180
13181// ProcessBehavior_Values returns all elements of the ProcessBehavior enum
13182func ProcessBehavior_Values() []string {
13183	return []string{
13184		ProcessBehaviorSave,
13185		ProcessBehaviorBuild,
13186	}
13187}
13188
13189const (
13190	// ReferenceTypeIntent is a ReferenceType enum value
13191	ReferenceTypeIntent = "Intent"
13192
13193	// ReferenceTypeBot is a ReferenceType enum value
13194	ReferenceTypeBot = "Bot"
13195
13196	// ReferenceTypeBotAlias is a ReferenceType enum value
13197	ReferenceTypeBotAlias = "BotAlias"
13198
13199	// ReferenceTypeBotChannel is a ReferenceType enum value
13200	ReferenceTypeBotChannel = "BotChannel"
13201)
13202
13203// ReferenceType_Values returns all elements of the ReferenceType enum
13204func ReferenceType_Values() []string {
13205	return []string{
13206		ReferenceTypeIntent,
13207		ReferenceTypeBot,
13208		ReferenceTypeBotAlias,
13209		ReferenceTypeBotChannel,
13210	}
13211}
13212
13213const (
13214	// ResourceTypeBot is a ResourceType enum value
13215	ResourceTypeBot = "BOT"
13216
13217	// ResourceTypeIntent is a ResourceType enum value
13218	ResourceTypeIntent = "INTENT"
13219
13220	// ResourceTypeSlotType is a ResourceType enum value
13221	ResourceTypeSlotType = "SLOT_TYPE"
13222)
13223
13224// ResourceType_Values returns all elements of the ResourceType enum
13225func ResourceType_Values() []string {
13226	return []string{
13227		ResourceTypeBot,
13228		ResourceTypeIntent,
13229		ResourceTypeSlotType,
13230	}
13231}
13232
13233const (
13234	// SlotConstraintRequired is a SlotConstraint enum value
13235	SlotConstraintRequired = "Required"
13236
13237	// SlotConstraintOptional is a SlotConstraint enum value
13238	SlotConstraintOptional = "Optional"
13239)
13240
13241// SlotConstraint_Values returns all elements of the SlotConstraint enum
13242func SlotConstraint_Values() []string {
13243	return []string{
13244		SlotConstraintRequired,
13245		SlotConstraintOptional,
13246	}
13247}
13248
13249const (
13250	// SlotValueSelectionStrategyOriginalValue is a SlotValueSelectionStrategy enum value
13251	SlotValueSelectionStrategyOriginalValue = "ORIGINAL_VALUE"
13252
13253	// SlotValueSelectionStrategyTopResolution is a SlotValueSelectionStrategy enum value
13254	SlotValueSelectionStrategyTopResolution = "TOP_RESOLUTION"
13255)
13256
13257// SlotValueSelectionStrategy_Values returns all elements of the SlotValueSelectionStrategy enum
13258func SlotValueSelectionStrategy_Values() []string {
13259	return []string{
13260		SlotValueSelectionStrategyOriginalValue,
13261		SlotValueSelectionStrategyTopResolution,
13262	}
13263}
13264
13265const (
13266	// StatusBuilding is a Status enum value
13267	StatusBuilding = "BUILDING"
13268
13269	// StatusReady is a Status enum value
13270	StatusReady = "READY"
13271
13272	// StatusReadyBasicTesting is a Status enum value
13273	StatusReadyBasicTesting = "READY_BASIC_TESTING"
13274
13275	// StatusFailed is a Status enum value
13276	StatusFailed = "FAILED"
13277
13278	// StatusNotBuilt is a Status enum value
13279	StatusNotBuilt = "NOT_BUILT"
13280)
13281
13282// Status_Values returns all elements of the Status enum
13283func Status_Values() []string {
13284	return []string{
13285		StatusBuilding,
13286		StatusReady,
13287		StatusReadyBasicTesting,
13288		StatusFailed,
13289		StatusNotBuilt,
13290	}
13291}
13292
13293const (
13294	// StatusTypeDetected is a StatusType enum value
13295	StatusTypeDetected = "Detected"
13296
13297	// StatusTypeMissed is a StatusType enum value
13298	StatusTypeMissed = "Missed"
13299)
13300
13301// StatusType_Values returns all elements of the StatusType enum
13302func StatusType_Values() []string {
13303	return []string{
13304		StatusTypeDetected,
13305		StatusTypeMissed,
13306	}
13307}
13308