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 Codes:
80//   * ErrCodeNotFoundException "NotFoundException"
81//   The resource specified in the request was not found. Check the resource and
82//   try again.
83//
84//   * ErrCodeConflictException "ConflictException"
85//   There was a conflict processing the request. Try your request again.
86//
87//   * ErrCodeLimitExceededException "LimitExceededException"
88//   The request exceeded a limit. Try your request again.
89//
90//   * ErrCodeInternalFailureException "InternalFailureException"
91//   An internal Amazon Lex error occurred. Try your request again.
92//
93//   * ErrCodeBadRequestException "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//   * ErrCodePreconditionFailedException "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 Codes:
189//   * ErrCodeNotFoundException "NotFoundException"
190//   The resource specified in the request was not found. Check the resource and
191//   try again.
192//
193//   * ErrCodeConflictException "ConflictException"
194//   There was a conflict processing the request. Try your request again.
195//
196//   * ErrCodeLimitExceededException "LimitExceededException"
197//   The request exceeded a limit. Try your request again.
198//
199//   * ErrCodeInternalFailureException "InternalFailureException"
200//   An internal Amazon Lex error occurred. Try your request again.
201//
202//   * ErrCodeBadRequestException "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//   * ErrCodePreconditionFailedException "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 Codes:
297//   * ErrCodeNotFoundException "NotFoundException"
298//   The resource specified in the request was not found. Check the resource and
299//   try again.
300//
301//   * ErrCodeConflictException "ConflictException"
302//   There was a conflict processing the request. Try your request again.
303//
304//   * ErrCodeLimitExceededException "LimitExceededException"
305//   The request exceeded a limit. Try your request again.
306//
307//   * ErrCodeInternalFailureException "InternalFailureException"
308//   An internal Amazon Lex error occurred. Try your request again.
309//
310//   * ErrCodeBadRequestException "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//   * ErrCodePreconditionFailedException "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.
387//
388// If a bot has an alias, you can't delete it. Instead, the DeleteBot operation
389// returns a ResourceInUseException exception that includes a reference to the
390// alias that refers to the bot. To remove the reference to the bot, delete
391// the alias. If you get the same exception again, delete the referring alias
392// until the DeleteBot operation is successful.
393//
394// This operation requires permissions for the lex:DeleteBot action.
395//
396// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
397// with awserr.Error's Code and Message methods to get detailed information about
398// the error.
399//
400// See the AWS API reference guide for Amazon Lex Model Building Service's
401// API operation DeleteBot for usage and error information.
402//
403// Returned Error Codes:
404//   * ErrCodeNotFoundException "NotFoundException"
405//   The resource specified in the request was not found. Check the resource and
406//   try again.
407//
408//   * ErrCodeConflictException "ConflictException"
409//   There was a conflict processing the request. Try your request again.
410//
411//   * ErrCodeLimitExceededException "LimitExceededException"
412//   The request exceeded a limit. Try your request again.
413//
414//   * ErrCodeInternalFailureException "InternalFailureException"
415//   An internal Amazon Lex error occurred. Try your request again.
416//
417//   * ErrCodeBadRequestException "BadRequestException"
418//   The request is not well formed. For example, a value is invalid or a required
419//   field is missing. Check the field values, and try again.
420//
421//   * ErrCodeResourceInUseException "ResourceInUseException"
422//   The resource that you are attempting to delete is referred to by another
423//   resource. Use this information to remove references to the resource that
424//   you are trying to delete.
425//
426//   The body of the exception contains a JSON object that describes the resource.
427//
428//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
429//
430//   "resourceReference": {
431//
432//   "name": string, "version": string } }
433//
434// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBot
435func (c *LexModelBuildingService) DeleteBot(input *DeleteBotInput) (*DeleteBotOutput, error) {
436	req, out := c.DeleteBotRequest(input)
437	return out, req.Send()
438}
439
440// DeleteBotWithContext is the same as DeleteBot with the addition of
441// the ability to pass a context and additional request options.
442//
443// See DeleteBot for details on how to use this API operation.
444//
445// The context must be non-nil and will be used for request cancellation. If
446// the context is nil a panic will occur. In the future the SDK may create
447// sub-contexts for http.Requests. See https://golang.org/pkg/context/
448// for more information on using Contexts.
449func (c *LexModelBuildingService) DeleteBotWithContext(ctx aws.Context, input *DeleteBotInput, opts ...request.Option) (*DeleteBotOutput, error) {
450	req, out := c.DeleteBotRequest(input)
451	req.SetContext(ctx)
452	req.ApplyOptions(opts...)
453	return out, req.Send()
454}
455
456const opDeleteBotAlias = "DeleteBotAlias"
457
458// DeleteBotAliasRequest generates a "aws/request.Request" representing the
459// client's request for the DeleteBotAlias operation. The "output" return
460// value will be populated with the request's response once the request completes
461// successfully.
462//
463// Use "Send" method on the returned Request to send the API call to the service.
464// the "output" return value is not valid until after Send returns without error.
465//
466// See DeleteBotAlias for more information on using the DeleteBotAlias
467// API call, and error handling.
468//
469// This method is useful when you want to inject custom logic or configuration
470// into the SDK's request lifecycle. Such as custom headers, or retry logic.
471//
472//
473//    // Example sending a request using the DeleteBotAliasRequest method.
474//    req, resp := client.DeleteBotAliasRequest(params)
475//
476//    err := req.Send()
477//    if err == nil { // resp is now filled
478//        fmt.Println(resp)
479//    }
480//
481// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotAlias
482func (c *LexModelBuildingService) DeleteBotAliasRequest(input *DeleteBotAliasInput) (req *request.Request, output *DeleteBotAliasOutput) {
483	op := &request.Operation{
484		Name:       opDeleteBotAlias,
485		HTTPMethod: "DELETE",
486		HTTPPath:   "/bots/{botName}/aliases/{name}",
487	}
488
489	if input == nil {
490		input = &DeleteBotAliasInput{}
491	}
492
493	output = &DeleteBotAliasOutput{}
494	req = c.newRequest(op, input, output)
495	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
496	return
497}
498
499// DeleteBotAlias API operation for Amazon Lex Model Building Service.
500//
501// Deletes an alias for the specified bot.
502//
503// You can't delete an alias that is used in the association between a bot and
504// a messaging channel. If an alias is used in a channel association, the DeleteBot
505// operation returns a ResourceInUseException exception that includes a reference
506// to the channel association that refers to the bot. You can remove the reference
507// to the alias by deleting the channel association. If you get the same exception
508// again, delete the referring association until the DeleteBotAlias operation
509// is successful.
510//
511// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
512// with awserr.Error's Code and Message methods to get detailed information about
513// the error.
514//
515// See the AWS API reference guide for Amazon Lex Model Building Service's
516// API operation DeleteBotAlias for usage and error information.
517//
518// Returned Error Codes:
519//   * ErrCodeNotFoundException "NotFoundException"
520//   The resource specified in the request was not found. Check the resource and
521//   try again.
522//
523//   * ErrCodeConflictException "ConflictException"
524//   There was a conflict processing the request. Try your request again.
525//
526//   * ErrCodeLimitExceededException "LimitExceededException"
527//   The request exceeded a limit. Try your request again.
528//
529//   * ErrCodeInternalFailureException "InternalFailureException"
530//   An internal Amazon Lex error occurred. Try your request again.
531//
532//   * ErrCodeBadRequestException "BadRequestException"
533//   The request is not well formed. For example, a value is invalid or a required
534//   field is missing. Check the field values, and try again.
535//
536//   * ErrCodeResourceInUseException "ResourceInUseException"
537//   The resource that you are attempting to delete is referred to by another
538//   resource. Use this information to remove references to the resource that
539//   you are trying to delete.
540//
541//   The body of the exception contains a JSON object that describes the resource.
542//
543//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
544//
545//   "resourceReference": {
546//
547//   "name": string, "version": string } }
548//
549// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotAlias
550func (c *LexModelBuildingService) DeleteBotAlias(input *DeleteBotAliasInput) (*DeleteBotAliasOutput, error) {
551	req, out := c.DeleteBotAliasRequest(input)
552	return out, req.Send()
553}
554
555// DeleteBotAliasWithContext is the same as DeleteBotAlias with the addition of
556// the ability to pass a context and additional request options.
557//
558// See DeleteBotAlias for details on how to use this API operation.
559//
560// The context must be non-nil and will be used for request cancellation. If
561// the context is nil a panic will occur. In the future the SDK may create
562// sub-contexts for http.Requests. See https://golang.org/pkg/context/
563// for more information on using Contexts.
564func (c *LexModelBuildingService) DeleteBotAliasWithContext(ctx aws.Context, input *DeleteBotAliasInput, opts ...request.Option) (*DeleteBotAliasOutput, error) {
565	req, out := c.DeleteBotAliasRequest(input)
566	req.SetContext(ctx)
567	req.ApplyOptions(opts...)
568	return out, req.Send()
569}
570
571const opDeleteBotChannelAssociation = "DeleteBotChannelAssociation"
572
573// DeleteBotChannelAssociationRequest generates a "aws/request.Request" representing the
574// client's request for the DeleteBotChannelAssociation operation. The "output" return
575// value will be populated with the request's response once the request completes
576// successfully.
577//
578// Use "Send" method on the returned Request to send the API call to the service.
579// the "output" return value is not valid until after Send returns without error.
580//
581// See DeleteBotChannelAssociation for more information on using the DeleteBotChannelAssociation
582// API call, and error handling.
583//
584// This method is useful when you want to inject custom logic or configuration
585// into the SDK's request lifecycle. Such as custom headers, or retry logic.
586//
587//
588//    // Example sending a request using the DeleteBotChannelAssociationRequest method.
589//    req, resp := client.DeleteBotChannelAssociationRequest(params)
590//
591//    err := req.Send()
592//    if err == nil { // resp is now filled
593//        fmt.Println(resp)
594//    }
595//
596// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotChannelAssociation
597func (c *LexModelBuildingService) DeleteBotChannelAssociationRequest(input *DeleteBotChannelAssociationInput) (req *request.Request, output *DeleteBotChannelAssociationOutput) {
598	op := &request.Operation{
599		Name:       opDeleteBotChannelAssociation,
600		HTTPMethod: "DELETE",
601		HTTPPath:   "/bots/{botName}/aliases/{aliasName}/channels/{name}",
602	}
603
604	if input == nil {
605		input = &DeleteBotChannelAssociationInput{}
606	}
607
608	output = &DeleteBotChannelAssociationOutput{}
609	req = c.newRequest(op, input, output)
610	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
611	return
612}
613
614// DeleteBotChannelAssociation API operation for Amazon Lex Model Building Service.
615//
616// Deletes the association between an Amazon Lex bot and a messaging platform.
617//
618// This operation requires permission for the lex:DeleteBotChannelAssociation
619// action.
620//
621// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
622// with awserr.Error's Code and Message methods to get detailed information about
623// the error.
624//
625// See the AWS API reference guide for Amazon Lex Model Building Service's
626// API operation DeleteBotChannelAssociation for usage and error information.
627//
628// Returned Error Codes:
629//   * ErrCodeNotFoundException "NotFoundException"
630//   The resource specified in the request was not found. Check the resource and
631//   try again.
632//
633//   * ErrCodeConflictException "ConflictException"
634//   There was a conflict processing the request. Try your request again.
635//
636//   * ErrCodeLimitExceededException "LimitExceededException"
637//   The request exceeded a limit. Try your request again.
638//
639//   * ErrCodeInternalFailureException "InternalFailureException"
640//   An internal Amazon Lex error occurred. Try your request again.
641//
642//   * ErrCodeBadRequestException "BadRequestException"
643//   The request is not well formed. For example, a value is invalid or a required
644//   field is missing. Check the field values, and try again.
645//
646// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotChannelAssociation
647func (c *LexModelBuildingService) DeleteBotChannelAssociation(input *DeleteBotChannelAssociationInput) (*DeleteBotChannelAssociationOutput, error) {
648	req, out := c.DeleteBotChannelAssociationRequest(input)
649	return out, req.Send()
650}
651
652// DeleteBotChannelAssociationWithContext is the same as DeleteBotChannelAssociation with the addition of
653// the ability to pass a context and additional request options.
654//
655// See DeleteBotChannelAssociation for details on how to use this API operation.
656//
657// The context must be non-nil and will be used for request cancellation. If
658// the context is nil a panic will occur. In the future the SDK may create
659// sub-contexts for http.Requests. See https://golang.org/pkg/context/
660// for more information on using Contexts.
661func (c *LexModelBuildingService) DeleteBotChannelAssociationWithContext(ctx aws.Context, input *DeleteBotChannelAssociationInput, opts ...request.Option) (*DeleteBotChannelAssociationOutput, error) {
662	req, out := c.DeleteBotChannelAssociationRequest(input)
663	req.SetContext(ctx)
664	req.ApplyOptions(opts...)
665	return out, req.Send()
666}
667
668const opDeleteBotVersion = "DeleteBotVersion"
669
670// DeleteBotVersionRequest generates a "aws/request.Request" representing the
671// client's request for the DeleteBotVersion operation. The "output" return
672// value will be populated with the request's response once the request completes
673// successfully.
674//
675// Use "Send" method on the returned Request to send the API call to the service.
676// the "output" return value is not valid until after Send returns without error.
677//
678// See DeleteBotVersion for more information on using the DeleteBotVersion
679// API call, and error handling.
680//
681// This method is useful when you want to inject custom logic or configuration
682// into the SDK's request lifecycle. Such as custom headers, or retry logic.
683//
684//
685//    // Example sending a request using the DeleteBotVersionRequest method.
686//    req, resp := client.DeleteBotVersionRequest(params)
687//
688//    err := req.Send()
689//    if err == nil { // resp is now filled
690//        fmt.Println(resp)
691//    }
692//
693// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotVersion
694func (c *LexModelBuildingService) DeleteBotVersionRequest(input *DeleteBotVersionInput) (req *request.Request, output *DeleteBotVersionOutput) {
695	op := &request.Operation{
696		Name:       opDeleteBotVersion,
697		HTTPMethod: "DELETE",
698		HTTPPath:   "/bots/{name}/versions/{version}",
699	}
700
701	if input == nil {
702		input = &DeleteBotVersionInput{}
703	}
704
705	output = &DeleteBotVersionOutput{}
706	req = c.newRequest(op, input, output)
707	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
708	return
709}
710
711// DeleteBotVersion API operation for Amazon Lex Model Building Service.
712//
713// Deletes a specific version of a bot. To delete all versions of a bot, use
714// the DeleteBot operation.
715//
716// This operation requires permissions for the lex:DeleteBotVersion action.
717//
718// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
719// with awserr.Error's Code and Message methods to get detailed information about
720// the error.
721//
722// See the AWS API reference guide for Amazon Lex Model Building Service's
723// API operation DeleteBotVersion for usage and error information.
724//
725// Returned Error Codes:
726//   * ErrCodeNotFoundException "NotFoundException"
727//   The resource specified in the request was not found. Check the resource and
728//   try again.
729//
730//   * ErrCodeConflictException "ConflictException"
731//   There was a conflict processing the request. Try your request again.
732//
733//   * ErrCodeLimitExceededException "LimitExceededException"
734//   The request exceeded a limit. Try your request again.
735//
736//   * ErrCodeInternalFailureException "InternalFailureException"
737//   An internal Amazon Lex error occurred. Try your request again.
738//
739//   * ErrCodeBadRequestException "BadRequestException"
740//   The request is not well formed. For example, a value is invalid or a required
741//   field is missing. Check the field values, and try again.
742//
743//   * ErrCodeResourceInUseException "ResourceInUseException"
744//   The resource that you are attempting to delete is referred to by another
745//   resource. Use this information to remove references to the resource that
746//   you are trying to delete.
747//
748//   The body of the exception contains a JSON object that describes the resource.
749//
750//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
751//
752//   "resourceReference": {
753//
754//   "name": string, "version": string } }
755//
756// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteBotVersion
757func (c *LexModelBuildingService) DeleteBotVersion(input *DeleteBotVersionInput) (*DeleteBotVersionOutput, error) {
758	req, out := c.DeleteBotVersionRequest(input)
759	return out, req.Send()
760}
761
762// DeleteBotVersionWithContext is the same as DeleteBotVersion with the addition of
763// the ability to pass a context and additional request options.
764//
765// See DeleteBotVersion for details on how to use this API operation.
766//
767// The context must be non-nil and will be used for request cancellation. If
768// the context is nil a panic will occur. In the future the SDK may create
769// sub-contexts for http.Requests. See https://golang.org/pkg/context/
770// for more information on using Contexts.
771func (c *LexModelBuildingService) DeleteBotVersionWithContext(ctx aws.Context, input *DeleteBotVersionInput, opts ...request.Option) (*DeleteBotVersionOutput, error) {
772	req, out := c.DeleteBotVersionRequest(input)
773	req.SetContext(ctx)
774	req.ApplyOptions(opts...)
775	return out, req.Send()
776}
777
778const opDeleteIntent = "DeleteIntent"
779
780// DeleteIntentRequest generates a "aws/request.Request" representing the
781// client's request for the DeleteIntent operation. The "output" return
782// value will be populated with the request's response once the request completes
783// successfully.
784//
785// Use "Send" method on the returned Request to send the API call to the service.
786// the "output" return value is not valid until after Send returns without error.
787//
788// See DeleteIntent for more information on using the DeleteIntent
789// API call, and error handling.
790//
791// This method is useful when you want to inject custom logic or configuration
792// into the SDK's request lifecycle. Such as custom headers, or retry logic.
793//
794//
795//    // Example sending a request using the DeleteIntentRequest method.
796//    req, resp := client.DeleteIntentRequest(params)
797//
798//    err := req.Send()
799//    if err == nil { // resp is now filled
800//        fmt.Println(resp)
801//    }
802//
803// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteIntent
804func (c *LexModelBuildingService) DeleteIntentRequest(input *DeleteIntentInput) (req *request.Request, output *DeleteIntentOutput) {
805	op := &request.Operation{
806		Name:       opDeleteIntent,
807		HTTPMethod: "DELETE",
808		HTTPPath:   "/intents/{name}",
809	}
810
811	if input == nil {
812		input = &DeleteIntentInput{}
813	}
814
815	output = &DeleteIntentOutput{}
816	req = c.newRequest(op, input, output)
817	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
818	return
819}
820
821// DeleteIntent API operation for Amazon Lex Model Building Service.
822//
823// Deletes all versions of the intent, including the $LATEST version. To delete
824// a specific version of the intent, use the DeleteIntentVersion operation.
825//
826// You can delete a version of an intent only if it is not referenced. To delete
827// an intent that is referred to in one or more bots (see how-it-works), you
828// must remove those references first.
829//
830// If you get the ResourceInUseException exception, it provides an example reference
831// that shows where the intent is referenced. To remove the reference to the
832// intent, either update the bot or delete it. If you get the same exception
833// when you attempt to delete the intent again, repeat until the intent has
834// no references and the call to DeleteIntent is successful.
835//
836// This operation requires permission for the lex:DeleteIntent action.
837//
838// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
839// with awserr.Error's Code and Message methods to get detailed information about
840// the error.
841//
842// See the AWS API reference guide for Amazon Lex Model Building Service's
843// API operation DeleteIntent for usage and error information.
844//
845// Returned Error Codes:
846//   * ErrCodeNotFoundException "NotFoundException"
847//   The resource specified in the request was not found. Check the resource and
848//   try again.
849//
850//   * ErrCodeConflictException "ConflictException"
851//   There was a conflict processing the request. Try your request again.
852//
853//   * ErrCodeLimitExceededException "LimitExceededException"
854//   The request exceeded a limit. Try your request again.
855//
856//   * ErrCodeInternalFailureException "InternalFailureException"
857//   An internal Amazon Lex error occurred. Try your request again.
858//
859//   * ErrCodeBadRequestException "BadRequestException"
860//   The request is not well formed. For example, a value is invalid or a required
861//   field is missing. Check the field values, and try again.
862//
863//   * ErrCodeResourceInUseException "ResourceInUseException"
864//   The resource that you are attempting to delete is referred to by another
865//   resource. Use this information to remove references to the resource that
866//   you are trying to delete.
867//
868//   The body of the exception contains a JSON object that describes the resource.
869//
870//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
871//
872//   "resourceReference": {
873//
874//   "name": string, "version": string } }
875//
876// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteIntent
877func (c *LexModelBuildingService) DeleteIntent(input *DeleteIntentInput) (*DeleteIntentOutput, error) {
878	req, out := c.DeleteIntentRequest(input)
879	return out, req.Send()
880}
881
882// DeleteIntentWithContext is the same as DeleteIntent with the addition of
883// the ability to pass a context and additional request options.
884//
885// See DeleteIntent for details on how to use this API operation.
886//
887// The context must be non-nil and will be used for request cancellation. If
888// the context is nil a panic will occur. In the future the SDK may create
889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
890// for more information on using Contexts.
891func (c *LexModelBuildingService) DeleteIntentWithContext(ctx aws.Context, input *DeleteIntentInput, opts ...request.Option) (*DeleteIntentOutput, error) {
892	req, out := c.DeleteIntentRequest(input)
893	req.SetContext(ctx)
894	req.ApplyOptions(opts...)
895	return out, req.Send()
896}
897
898const opDeleteIntentVersion = "DeleteIntentVersion"
899
900// DeleteIntentVersionRequest generates a "aws/request.Request" representing the
901// client's request for the DeleteIntentVersion operation. The "output" return
902// value will be populated with the request's response once the request completes
903// successfully.
904//
905// Use "Send" method on the returned Request to send the API call to the service.
906// the "output" return value is not valid until after Send returns without error.
907//
908// See DeleteIntentVersion for more information on using the DeleteIntentVersion
909// API call, and error handling.
910//
911// This method is useful when you want to inject custom logic or configuration
912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
913//
914//
915//    // Example sending a request using the DeleteIntentVersionRequest method.
916//    req, resp := client.DeleteIntentVersionRequest(params)
917//
918//    err := req.Send()
919//    if err == nil { // resp is now filled
920//        fmt.Println(resp)
921//    }
922//
923// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteIntentVersion
924func (c *LexModelBuildingService) DeleteIntentVersionRequest(input *DeleteIntentVersionInput) (req *request.Request, output *DeleteIntentVersionOutput) {
925	op := &request.Operation{
926		Name:       opDeleteIntentVersion,
927		HTTPMethod: "DELETE",
928		HTTPPath:   "/intents/{name}/versions/{version}",
929	}
930
931	if input == nil {
932		input = &DeleteIntentVersionInput{}
933	}
934
935	output = &DeleteIntentVersionOutput{}
936	req = c.newRequest(op, input, output)
937	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
938	return
939}
940
941// DeleteIntentVersion API operation for Amazon Lex Model Building Service.
942//
943// Deletes a specific version of an intent. To delete all versions of a intent,
944// use the DeleteIntent operation.
945//
946// This operation requires permissions for the lex:DeleteIntentVersion action.
947//
948// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
949// with awserr.Error's Code and Message methods to get detailed information about
950// the error.
951//
952// See the AWS API reference guide for Amazon Lex Model Building Service's
953// API operation DeleteIntentVersion for usage and error information.
954//
955// Returned Error Codes:
956//   * ErrCodeNotFoundException "NotFoundException"
957//   The resource specified in the request was not found. Check the resource and
958//   try again.
959//
960//   * ErrCodeConflictException "ConflictException"
961//   There was a conflict processing the request. Try your request again.
962//
963//   * ErrCodeLimitExceededException "LimitExceededException"
964//   The request exceeded a limit. Try your request again.
965//
966//   * ErrCodeInternalFailureException "InternalFailureException"
967//   An internal Amazon Lex error occurred. Try your request again.
968//
969//   * ErrCodeBadRequestException "BadRequestException"
970//   The request is not well formed. For example, a value is invalid or a required
971//   field is missing. Check the field values, and try again.
972//
973//   * ErrCodeResourceInUseException "ResourceInUseException"
974//   The resource that you are attempting to delete is referred to by another
975//   resource. Use this information to remove references to the resource that
976//   you are trying to delete.
977//
978//   The body of the exception contains a JSON object that describes the resource.
979//
980//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
981//
982//   "resourceReference": {
983//
984//   "name": string, "version": string } }
985//
986// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteIntentVersion
987func (c *LexModelBuildingService) DeleteIntentVersion(input *DeleteIntentVersionInput) (*DeleteIntentVersionOutput, error) {
988	req, out := c.DeleteIntentVersionRequest(input)
989	return out, req.Send()
990}
991
992// DeleteIntentVersionWithContext is the same as DeleteIntentVersion with the addition of
993// the ability to pass a context and additional request options.
994//
995// See DeleteIntentVersion for details on how to use this API operation.
996//
997// The context must be non-nil and will be used for request cancellation. If
998// the context is nil a panic will occur. In the future the SDK may create
999// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1000// for more information on using Contexts.
1001func (c *LexModelBuildingService) DeleteIntentVersionWithContext(ctx aws.Context, input *DeleteIntentVersionInput, opts ...request.Option) (*DeleteIntentVersionOutput, error) {
1002	req, out := c.DeleteIntentVersionRequest(input)
1003	req.SetContext(ctx)
1004	req.ApplyOptions(opts...)
1005	return out, req.Send()
1006}
1007
1008const opDeleteSlotType = "DeleteSlotType"
1009
1010// DeleteSlotTypeRequest generates a "aws/request.Request" representing the
1011// client's request for the DeleteSlotType operation. The "output" return
1012// value will be populated with the request's response once the request completes
1013// successfully.
1014//
1015// Use "Send" method on the returned Request to send the API call to the service.
1016// the "output" return value is not valid until after Send returns without error.
1017//
1018// See DeleteSlotType for more information on using the DeleteSlotType
1019// API call, and error handling.
1020//
1021// This method is useful when you want to inject custom logic or configuration
1022// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1023//
1024//
1025//    // Example sending a request using the DeleteSlotTypeRequest method.
1026//    req, resp := client.DeleteSlotTypeRequest(params)
1027//
1028//    err := req.Send()
1029//    if err == nil { // resp is now filled
1030//        fmt.Println(resp)
1031//    }
1032//
1033// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteSlotType
1034func (c *LexModelBuildingService) DeleteSlotTypeRequest(input *DeleteSlotTypeInput) (req *request.Request, output *DeleteSlotTypeOutput) {
1035	op := &request.Operation{
1036		Name:       opDeleteSlotType,
1037		HTTPMethod: "DELETE",
1038		HTTPPath:   "/slottypes/{name}",
1039	}
1040
1041	if input == nil {
1042		input = &DeleteSlotTypeInput{}
1043	}
1044
1045	output = &DeleteSlotTypeOutput{}
1046	req = c.newRequest(op, input, output)
1047	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1048	return
1049}
1050
1051// DeleteSlotType API operation for Amazon Lex Model Building Service.
1052//
1053// Deletes all versions of the slot type, including the $LATEST version. To
1054// delete a specific version of the slot type, use the DeleteSlotTypeVersion
1055// operation.
1056//
1057// You can delete a version of a slot type only if it is not referenced. To
1058// delete a slot type that is referred to in one or more intents, you must remove
1059// those references first.
1060//
1061// If you get the ResourceInUseException exception, the exception provides an
1062// example reference that shows the intent where the slot type is referenced.
1063// To remove the reference to the slot type, either update the intent or delete
1064// it. If you get the same exception when you attempt to delete the slot type
1065// again, repeat until the slot type has no references and the DeleteSlotType
1066// call is successful.
1067//
1068// This operation requires permission for the lex:DeleteSlotType action.
1069//
1070// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1071// with awserr.Error's Code and Message methods to get detailed information about
1072// the error.
1073//
1074// See the AWS API reference guide for Amazon Lex Model Building Service's
1075// API operation DeleteSlotType for usage and error information.
1076//
1077// Returned Error Codes:
1078//   * ErrCodeNotFoundException "NotFoundException"
1079//   The resource specified in the request was not found. Check the resource and
1080//   try again.
1081//
1082//   * ErrCodeConflictException "ConflictException"
1083//   There was a conflict processing the request. Try your request again.
1084//
1085//   * ErrCodeLimitExceededException "LimitExceededException"
1086//   The request exceeded a limit. Try your request again.
1087//
1088//   * ErrCodeInternalFailureException "InternalFailureException"
1089//   An internal Amazon Lex error occurred. Try your request again.
1090//
1091//   * ErrCodeBadRequestException "BadRequestException"
1092//   The request is not well formed. For example, a value is invalid or a required
1093//   field is missing. Check the field values, and try again.
1094//
1095//   * ErrCodeResourceInUseException "ResourceInUseException"
1096//   The resource that you are attempting to delete is referred to by another
1097//   resource. Use this information to remove references to the resource that
1098//   you are trying to delete.
1099//
1100//   The body of the exception contains a JSON object that describes the resource.
1101//
1102//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
1103//
1104//   "resourceReference": {
1105//
1106//   "name": string, "version": string } }
1107//
1108// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteSlotType
1109func (c *LexModelBuildingService) DeleteSlotType(input *DeleteSlotTypeInput) (*DeleteSlotTypeOutput, error) {
1110	req, out := c.DeleteSlotTypeRequest(input)
1111	return out, req.Send()
1112}
1113
1114// DeleteSlotTypeWithContext is the same as DeleteSlotType with the addition of
1115// the ability to pass a context and additional request options.
1116//
1117// See DeleteSlotType for details on how to use this API operation.
1118//
1119// The context must be non-nil and will be used for request cancellation. If
1120// the context is nil a panic will occur. In the future the SDK may create
1121// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1122// for more information on using Contexts.
1123func (c *LexModelBuildingService) DeleteSlotTypeWithContext(ctx aws.Context, input *DeleteSlotTypeInput, opts ...request.Option) (*DeleteSlotTypeOutput, error) {
1124	req, out := c.DeleteSlotTypeRequest(input)
1125	req.SetContext(ctx)
1126	req.ApplyOptions(opts...)
1127	return out, req.Send()
1128}
1129
1130const opDeleteSlotTypeVersion = "DeleteSlotTypeVersion"
1131
1132// DeleteSlotTypeVersionRequest generates a "aws/request.Request" representing the
1133// client's request for the DeleteSlotTypeVersion operation. The "output" return
1134// value will be populated with the request's response once the request completes
1135// successfully.
1136//
1137// Use "Send" method on the returned Request to send the API call to the service.
1138// the "output" return value is not valid until after Send returns without error.
1139//
1140// See DeleteSlotTypeVersion for more information on using the DeleteSlotTypeVersion
1141// API call, and error handling.
1142//
1143// This method is useful when you want to inject custom logic or configuration
1144// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1145//
1146//
1147//    // Example sending a request using the DeleteSlotTypeVersionRequest method.
1148//    req, resp := client.DeleteSlotTypeVersionRequest(params)
1149//
1150//    err := req.Send()
1151//    if err == nil { // resp is now filled
1152//        fmt.Println(resp)
1153//    }
1154//
1155// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteSlotTypeVersion
1156func (c *LexModelBuildingService) DeleteSlotTypeVersionRequest(input *DeleteSlotTypeVersionInput) (req *request.Request, output *DeleteSlotTypeVersionOutput) {
1157	op := &request.Operation{
1158		Name:       opDeleteSlotTypeVersion,
1159		HTTPMethod: "DELETE",
1160		HTTPPath:   "/slottypes/{name}/version/{version}",
1161	}
1162
1163	if input == nil {
1164		input = &DeleteSlotTypeVersionInput{}
1165	}
1166
1167	output = &DeleteSlotTypeVersionOutput{}
1168	req = c.newRequest(op, input, output)
1169	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1170	return
1171}
1172
1173// DeleteSlotTypeVersion API operation for Amazon Lex Model Building Service.
1174//
1175// Deletes a specific version of a slot type. To delete all versions of a slot
1176// type, use the DeleteSlotType operation.
1177//
1178// This operation requires permissions for the lex:DeleteSlotTypeVersion action.
1179//
1180// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1181// with awserr.Error's Code and Message methods to get detailed information about
1182// the error.
1183//
1184// See the AWS API reference guide for Amazon Lex Model Building Service's
1185// API operation DeleteSlotTypeVersion for usage and error information.
1186//
1187// Returned Error Codes:
1188//   * ErrCodeNotFoundException "NotFoundException"
1189//   The resource specified in the request was not found. Check the resource and
1190//   try again.
1191//
1192//   * ErrCodeConflictException "ConflictException"
1193//   There was a conflict processing the request. Try your request again.
1194//
1195//   * ErrCodeLimitExceededException "LimitExceededException"
1196//   The request exceeded a limit. Try your request again.
1197//
1198//   * ErrCodeInternalFailureException "InternalFailureException"
1199//   An internal Amazon Lex error occurred. Try your request again.
1200//
1201//   * ErrCodeBadRequestException "BadRequestException"
1202//   The request is not well formed. For example, a value is invalid or a required
1203//   field is missing. Check the field values, and try again.
1204//
1205//   * ErrCodeResourceInUseException "ResourceInUseException"
1206//   The resource that you are attempting to delete is referred to by another
1207//   resource. Use this information to remove references to the resource that
1208//   you are trying to delete.
1209//
1210//   The body of the exception contains a JSON object that describes the resource.
1211//
1212//   { "resourceType": BOT | BOTALIAS | BOTCHANNEL | INTENT,
1213//
1214//   "resourceReference": {
1215//
1216//   "name": string, "version": string } }
1217//
1218// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteSlotTypeVersion
1219func (c *LexModelBuildingService) DeleteSlotTypeVersion(input *DeleteSlotTypeVersionInput) (*DeleteSlotTypeVersionOutput, error) {
1220	req, out := c.DeleteSlotTypeVersionRequest(input)
1221	return out, req.Send()
1222}
1223
1224// DeleteSlotTypeVersionWithContext is the same as DeleteSlotTypeVersion with the addition of
1225// the ability to pass a context and additional request options.
1226//
1227// See DeleteSlotTypeVersion for details on how to use this API operation.
1228//
1229// The context must be non-nil and will be used for request cancellation. If
1230// the context is nil a panic will occur. In the future the SDK may create
1231// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1232// for more information on using Contexts.
1233func (c *LexModelBuildingService) DeleteSlotTypeVersionWithContext(ctx aws.Context, input *DeleteSlotTypeVersionInput, opts ...request.Option) (*DeleteSlotTypeVersionOutput, error) {
1234	req, out := c.DeleteSlotTypeVersionRequest(input)
1235	req.SetContext(ctx)
1236	req.ApplyOptions(opts...)
1237	return out, req.Send()
1238}
1239
1240const opDeleteUtterances = "DeleteUtterances"
1241
1242// DeleteUtterancesRequest generates a "aws/request.Request" representing the
1243// client's request for the DeleteUtterances operation. The "output" return
1244// value will be populated with the request's response once the request completes
1245// successfully.
1246//
1247// Use "Send" method on the returned Request to send the API call to the service.
1248// the "output" return value is not valid until after Send returns without error.
1249//
1250// See DeleteUtterances for more information on using the DeleteUtterances
1251// API call, and error handling.
1252//
1253// This method is useful when you want to inject custom logic or configuration
1254// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1255//
1256//
1257//    // Example sending a request using the DeleteUtterancesRequest method.
1258//    req, resp := client.DeleteUtterancesRequest(params)
1259//
1260//    err := req.Send()
1261//    if err == nil { // resp is now filled
1262//        fmt.Println(resp)
1263//    }
1264//
1265// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteUtterances
1266func (c *LexModelBuildingService) DeleteUtterancesRequest(input *DeleteUtterancesInput) (req *request.Request, output *DeleteUtterancesOutput) {
1267	op := &request.Operation{
1268		Name:       opDeleteUtterances,
1269		HTTPMethod: "DELETE",
1270		HTTPPath:   "/bots/{botName}/utterances/{userId}",
1271	}
1272
1273	if input == nil {
1274		input = &DeleteUtterancesInput{}
1275	}
1276
1277	output = &DeleteUtterancesOutput{}
1278	req = c.newRequest(op, input, output)
1279	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1280	return
1281}
1282
1283// DeleteUtterances API operation for Amazon Lex Model Building Service.
1284//
1285// Deletes stored utterances.
1286//
1287// Amazon Lex stores the utterances that users send to your bot. Utterances
1288// are stored for 15 days for use with the GetUtterancesView operation, and
1289// then stored indefinitely for use in improving the ability of your bot to
1290// respond to user input.
1291//
1292// Use the DeleteStoredUtterances operation to manually delete stored utterances
1293// for a specific user.
1294//
1295// This operation requires permissions for the lex:DeleteUtterances action.
1296//
1297// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1298// with awserr.Error's Code and Message methods to get detailed information about
1299// the error.
1300//
1301// See the AWS API reference guide for Amazon Lex Model Building Service's
1302// API operation DeleteUtterances for usage and error information.
1303//
1304// Returned Error Codes:
1305//   * ErrCodeNotFoundException "NotFoundException"
1306//   The resource specified in the request was not found. Check the resource and
1307//   try again.
1308//
1309//   * ErrCodeLimitExceededException "LimitExceededException"
1310//   The request exceeded a limit. Try your request again.
1311//
1312//   * ErrCodeInternalFailureException "InternalFailureException"
1313//   An internal Amazon Lex error occurred. Try your request again.
1314//
1315//   * ErrCodeBadRequestException "BadRequestException"
1316//   The request is not well formed. For example, a value is invalid or a required
1317//   field is missing. Check the field values, and try again.
1318//
1319// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/DeleteUtterances
1320func (c *LexModelBuildingService) DeleteUtterances(input *DeleteUtterancesInput) (*DeleteUtterancesOutput, error) {
1321	req, out := c.DeleteUtterancesRequest(input)
1322	return out, req.Send()
1323}
1324
1325// DeleteUtterancesWithContext is the same as DeleteUtterances with the addition of
1326// the ability to pass a context and additional request options.
1327//
1328// See DeleteUtterances for details on how to use this API operation.
1329//
1330// The context must be non-nil and will be used for request cancellation. If
1331// the context is nil a panic will occur. In the future the SDK may create
1332// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1333// for more information on using Contexts.
1334func (c *LexModelBuildingService) DeleteUtterancesWithContext(ctx aws.Context, input *DeleteUtterancesInput, opts ...request.Option) (*DeleteUtterancesOutput, error) {
1335	req, out := c.DeleteUtterancesRequest(input)
1336	req.SetContext(ctx)
1337	req.ApplyOptions(opts...)
1338	return out, req.Send()
1339}
1340
1341const opGetBot = "GetBot"
1342
1343// GetBotRequest generates a "aws/request.Request" representing the
1344// client's request for the GetBot operation. The "output" return
1345// value will be populated with the request's response once the request completes
1346// successfully.
1347//
1348// Use "Send" method on the returned Request to send the API call to the service.
1349// the "output" return value is not valid until after Send returns without error.
1350//
1351// See GetBot for more information on using the GetBot
1352// API call, and error handling.
1353//
1354// This method is useful when you want to inject custom logic or configuration
1355// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1356//
1357//
1358//    // Example sending a request using the GetBotRequest method.
1359//    req, resp := client.GetBotRequest(params)
1360//
1361//    err := req.Send()
1362//    if err == nil { // resp is now filled
1363//        fmt.Println(resp)
1364//    }
1365//
1366// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBot
1367func (c *LexModelBuildingService) GetBotRequest(input *GetBotInput) (req *request.Request, output *GetBotOutput) {
1368	op := &request.Operation{
1369		Name:       opGetBot,
1370		HTTPMethod: "GET",
1371		HTTPPath:   "/bots/{name}/versions/{versionoralias}",
1372	}
1373
1374	if input == nil {
1375		input = &GetBotInput{}
1376	}
1377
1378	output = &GetBotOutput{}
1379	req = c.newRequest(op, input, output)
1380	return
1381}
1382
1383// GetBot API operation for Amazon Lex Model Building Service.
1384//
1385// Returns metadata information for a specific bot. You must provide the bot
1386// name and the bot version or alias.
1387//
1388// This operation requires permissions for the lex:GetBot action.
1389//
1390// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1391// with awserr.Error's Code and Message methods to get detailed information about
1392// the error.
1393//
1394// See the AWS API reference guide for Amazon Lex Model Building Service's
1395// API operation GetBot for usage and error information.
1396//
1397// Returned Error Codes:
1398//   * ErrCodeNotFoundException "NotFoundException"
1399//   The resource specified in the request was not found. Check the resource and
1400//   try again.
1401//
1402//   * ErrCodeLimitExceededException "LimitExceededException"
1403//   The request exceeded a limit. Try your request again.
1404//
1405//   * ErrCodeInternalFailureException "InternalFailureException"
1406//   An internal Amazon Lex error occurred. Try your request again.
1407//
1408//   * ErrCodeBadRequestException "BadRequestException"
1409//   The request is not well formed. For example, a value is invalid or a required
1410//   field is missing. Check the field values, and try again.
1411//
1412// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBot
1413func (c *LexModelBuildingService) GetBot(input *GetBotInput) (*GetBotOutput, error) {
1414	req, out := c.GetBotRequest(input)
1415	return out, req.Send()
1416}
1417
1418// GetBotWithContext is the same as GetBot with the addition of
1419// the ability to pass a context and additional request options.
1420//
1421// See GetBot for details on how to use this API operation.
1422//
1423// The context must be non-nil and will be used for request cancellation. If
1424// the context is nil a panic will occur. In the future the SDK may create
1425// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1426// for more information on using Contexts.
1427func (c *LexModelBuildingService) GetBotWithContext(ctx aws.Context, input *GetBotInput, opts ...request.Option) (*GetBotOutput, error) {
1428	req, out := c.GetBotRequest(input)
1429	req.SetContext(ctx)
1430	req.ApplyOptions(opts...)
1431	return out, req.Send()
1432}
1433
1434const opGetBotAlias = "GetBotAlias"
1435
1436// GetBotAliasRequest generates a "aws/request.Request" representing the
1437// client's request for the GetBotAlias operation. The "output" return
1438// value will be populated with the request's response once the request completes
1439// successfully.
1440//
1441// Use "Send" method on the returned Request to send the API call to the service.
1442// the "output" return value is not valid until after Send returns without error.
1443//
1444// See GetBotAlias for more information on using the GetBotAlias
1445// API call, and error handling.
1446//
1447// This method is useful when you want to inject custom logic or configuration
1448// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1449//
1450//
1451//    // Example sending a request using the GetBotAliasRequest method.
1452//    req, resp := client.GetBotAliasRequest(params)
1453//
1454//    err := req.Send()
1455//    if err == nil { // resp is now filled
1456//        fmt.Println(resp)
1457//    }
1458//
1459// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotAlias
1460func (c *LexModelBuildingService) GetBotAliasRequest(input *GetBotAliasInput) (req *request.Request, output *GetBotAliasOutput) {
1461	op := &request.Operation{
1462		Name:       opGetBotAlias,
1463		HTTPMethod: "GET",
1464		HTTPPath:   "/bots/{botName}/aliases/{name}",
1465	}
1466
1467	if input == nil {
1468		input = &GetBotAliasInput{}
1469	}
1470
1471	output = &GetBotAliasOutput{}
1472	req = c.newRequest(op, input, output)
1473	return
1474}
1475
1476// GetBotAlias API operation for Amazon Lex Model Building Service.
1477//
1478// Returns information about an Amazon Lex bot alias. For more information about
1479// aliases, see versioning-aliases.
1480//
1481// This operation requires permissions for the lex:GetBotAlias action.
1482//
1483// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1484// with awserr.Error's Code and Message methods to get detailed information about
1485// the error.
1486//
1487// See the AWS API reference guide for Amazon Lex Model Building Service's
1488// API operation GetBotAlias for usage and error information.
1489//
1490// Returned Error Codes:
1491//   * ErrCodeNotFoundException "NotFoundException"
1492//   The resource specified in the request was not found. Check the resource and
1493//   try again.
1494//
1495//   * ErrCodeLimitExceededException "LimitExceededException"
1496//   The request exceeded a limit. Try your request again.
1497//
1498//   * ErrCodeInternalFailureException "InternalFailureException"
1499//   An internal Amazon Lex error occurred. Try your request again.
1500//
1501//   * ErrCodeBadRequestException "BadRequestException"
1502//   The request is not well formed. For example, a value is invalid or a required
1503//   field is missing. Check the field values, and try again.
1504//
1505// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotAlias
1506func (c *LexModelBuildingService) GetBotAlias(input *GetBotAliasInput) (*GetBotAliasOutput, error) {
1507	req, out := c.GetBotAliasRequest(input)
1508	return out, req.Send()
1509}
1510
1511// GetBotAliasWithContext is the same as GetBotAlias with the addition of
1512// the ability to pass a context and additional request options.
1513//
1514// See GetBotAlias for details on how to use this API operation.
1515//
1516// The context must be non-nil and will be used for request cancellation. If
1517// the context is nil a panic will occur. In the future the SDK may create
1518// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1519// for more information on using Contexts.
1520func (c *LexModelBuildingService) GetBotAliasWithContext(ctx aws.Context, input *GetBotAliasInput, opts ...request.Option) (*GetBotAliasOutput, error) {
1521	req, out := c.GetBotAliasRequest(input)
1522	req.SetContext(ctx)
1523	req.ApplyOptions(opts...)
1524	return out, req.Send()
1525}
1526
1527const opGetBotAliases = "GetBotAliases"
1528
1529// GetBotAliasesRequest generates a "aws/request.Request" representing the
1530// client's request for the GetBotAliases operation. The "output" return
1531// value will be populated with the request's response once the request completes
1532// successfully.
1533//
1534// Use "Send" method on the returned Request to send the API call to the service.
1535// the "output" return value is not valid until after Send returns without error.
1536//
1537// See GetBotAliases for more information on using the GetBotAliases
1538// API call, and error handling.
1539//
1540// This method is useful when you want to inject custom logic or configuration
1541// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1542//
1543//
1544//    // Example sending a request using the GetBotAliasesRequest method.
1545//    req, resp := client.GetBotAliasesRequest(params)
1546//
1547//    err := req.Send()
1548//    if err == nil { // resp is now filled
1549//        fmt.Println(resp)
1550//    }
1551//
1552// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotAliases
1553func (c *LexModelBuildingService) GetBotAliasesRequest(input *GetBotAliasesInput) (req *request.Request, output *GetBotAliasesOutput) {
1554	op := &request.Operation{
1555		Name:       opGetBotAliases,
1556		HTTPMethod: "GET",
1557		HTTPPath:   "/bots/{botName}/aliases/",
1558		Paginator: &request.Paginator{
1559			InputTokens:     []string{"nextToken"},
1560			OutputTokens:    []string{"nextToken"},
1561			LimitToken:      "maxResults",
1562			TruncationToken: "",
1563		},
1564	}
1565
1566	if input == nil {
1567		input = &GetBotAliasesInput{}
1568	}
1569
1570	output = &GetBotAliasesOutput{}
1571	req = c.newRequest(op, input, output)
1572	return
1573}
1574
1575// GetBotAliases API operation for Amazon Lex Model Building Service.
1576//
1577// Returns a list of aliases for a specified Amazon Lex bot.
1578//
1579// This operation requires permissions for the lex:GetBotAliases action.
1580//
1581// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1582// with awserr.Error's Code and Message methods to get detailed information about
1583// the error.
1584//
1585// See the AWS API reference guide for Amazon Lex Model Building Service's
1586// API operation GetBotAliases for usage and error information.
1587//
1588// Returned Error Codes:
1589//   * ErrCodeLimitExceededException "LimitExceededException"
1590//   The request exceeded a limit. Try your request again.
1591//
1592//   * ErrCodeInternalFailureException "InternalFailureException"
1593//   An internal Amazon Lex error occurred. Try your request again.
1594//
1595//   * ErrCodeBadRequestException "BadRequestException"
1596//   The request is not well formed. For example, a value is invalid or a required
1597//   field is missing. Check the field values, and try again.
1598//
1599// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotAliases
1600func (c *LexModelBuildingService) GetBotAliases(input *GetBotAliasesInput) (*GetBotAliasesOutput, error) {
1601	req, out := c.GetBotAliasesRequest(input)
1602	return out, req.Send()
1603}
1604
1605// GetBotAliasesWithContext is the same as GetBotAliases with the addition of
1606// the ability to pass a context and additional request options.
1607//
1608// See GetBotAliases for details on how to use this API operation.
1609//
1610// The context must be non-nil and will be used for request cancellation. If
1611// the context is nil a panic will occur. In the future the SDK may create
1612// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1613// for more information on using Contexts.
1614func (c *LexModelBuildingService) GetBotAliasesWithContext(ctx aws.Context, input *GetBotAliasesInput, opts ...request.Option) (*GetBotAliasesOutput, error) {
1615	req, out := c.GetBotAliasesRequest(input)
1616	req.SetContext(ctx)
1617	req.ApplyOptions(opts...)
1618	return out, req.Send()
1619}
1620
1621// GetBotAliasesPages iterates over the pages of a GetBotAliases operation,
1622// calling the "fn" function with the response data for each page. To stop
1623// iterating, return false from the fn function.
1624//
1625// See GetBotAliases method for more information on how to use this operation.
1626//
1627// Note: This operation can generate multiple requests to a service.
1628//
1629//    // Example iterating over at most 3 pages of a GetBotAliases operation.
1630//    pageNum := 0
1631//    err := client.GetBotAliasesPages(params,
1632//        func(page *lexmodelbuildingservice.GetBotAliasesOutput, lastPage bool) bool {
1633//            pageNum++
1634//            fmt.Println(page)
1635//            return pageNum <= 3
1636//        })
1637//
1638func (c *LexModelBuildingService) GetBotAliasesPages(input *GetBotAliasesInput, fn func(*GetBotAliasesOutput, bool) bool) error {
1639	return c.GetBotAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
1640}
1641
1642// GetBotAliasesPagesWithContext same as GetBotAliasesPages except
1643// it takes a Context and allows setting request options on the pages.
1644//
1645// The context must be non-nil and will be used for request cancellation. If
1646// the context is nil a panic will occur. In the future the SDK may create
1647// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1648// for more information on using Contexts.
1649func (c *LexModelBuildingService) GetBotAliasesPagesWithContext(ctx aws.Context, input *GetBotAliasesInput, fn func(*GetBotAliasesOutput, bool) bool, opts ...request.Option) error {
1650	p := request.Pagination{
1651		NewRequest: func() (*request.Request, error) {
1652			var inCpy *GetBotAliasesInput
1653			if input != nil {
1654				tmp := *input
1655				inCpy = &tmp
1656			}
1657			req, _ := c.GetBotAliasesRequest(inCpy)
1658			req.SetContext(ctx)
1659			req.ApplyOptions(opts...)
1660			return req, nil
1661		},
1662	}
1663
1664	cont := true
1665	for p.Next() && cont {
1666		cont = fn(p.Page().(*GetBotAliasesOutput), !p.HasNextPage())
1667	}
1668	return p.Err()
1669}
1670
1671const opGetBotChannelAssociation = "GetBotChannelAssociation"
1672
1673// GetBotChannelAssociationRequest generates a "aws/request.Request" representing the
1674// client's request for the GetBotChannelAssociation operation. The "output" return
1675// value will be populated with the request's response once the request completes
1676// successfully.
1677//
1678// Use "Send" method on the returned Request to send the API call to the service.
1679// the "output" return value is not valid until after Send returns without error.
1680//
1681// See GetBotChannelAssociation for more information on using the GetBotChannelAssociation
1682// API call, and error handling.
1683//
1684// This method is useful when you want to inject custom logic or configuration
1685// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1686//
1687//
1688//    // Example sending a request using the GetBotChannelAssociationRequest method.
1689//    req, resp := client.GetBotChannelAssociationRequest(params)
1690//
1691//    err := req.Send()
1692//    if err == nil { // resp is now filled
1693//        fmt.Println(resp)
1694//    }
1695//
1696// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotChannelAssociation
1697func (c *LexModelBuildingService) GetBotChannelAssociationRequest(input *GetBotChannelAssociationInput) (req *request.Request, output *GetBotChannelAssociationOutput) {
1698	op := &request.Operation{
1699		Name:       opGetBotChannelAssociation,
1700		HTTPMethod: "GET",
1701		HTTPPath:   "/bots/{botName}/aliases/{aliasName}/channels/{name}",
1702	}
1703
1704	if input == nil {
1705		input = &GetBotChannelAssociationInput{}
1706	}
1707
1708	output = &GetBotChannelAssociationOutput{}
1709	req = c.newRequest(op, input, output)
1710	return
1711}
1712
1713// GetBotChannelAssociation API operation for Amazon Lex Model Building Service.
1714//
1715// Returns information about the association between an Amazon Lex bot and a
1716// messaging platform.
1717//
1718// This operation requires permissions for the lex:GetBotChannelAssociation
1719// action.
1720//
1721// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1722// with awserr.Error's Code and Message methods to get detailed information about
1723// the error.
1724//
1725// See the AWS API reference guide for Amazon Lex Model Building Service's
1726// API operation GetBotChannelAssociation for usage and error information.
1727//
1728// Returned Error Codes:
1729//   * ErrCodeNotFoundException "NotFoundException"
1730//   The resource specified in the request was not found. Check the resource and
1731//   try again.
1732//
1733//   * ErrCodeLimitExceededException "LimitExceededException"
1734//   The request exceeded a limit. Try your request again.
1735//
1736//   * ErrCodeInternalFailureException "InternalFailureException"
1737//   An internal Amazon Lex error occurred. Try your request again.
1738//
1739//   * ErrCodeBadRequestException "BadRequestException"
1740//   The request is not well formed. For example, a value is invalid or a required
1741//   field is missing. Check the field values, and try again.
1742//
1743// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotChannelAssociation
1744func (c *LexModelBuildingService) GetBotChannelAssociation(input *GetBotChannelAssociationInput) (*GetBotChannelAssociationOutput, error) {
1745	req, out := c.GetBotChannelAssociationRequest(input)
1746	return out, req.Send()
1747}
1748
1749// GetBotChannelAssociationWithContext is the same as GetBotChannelAssociation with the addition of
1750// the ability to pass a context and additional request options.
1751//
1752// See GetBotChannelAssociation for details on how to use this API operation.
1753//
1754// The context must be non-nil and will be used for request cancellation. If
1755// the context is nil a panic will occur. In the future the SDK may create
1756// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1757// for more information on using Contexts.
1758func (c *LexModelBuildingService) GetBotChannelAssociationWithContext(ctx aws.Context, input *GetBotChannelAssociationInput, opts ...request.Option) (*GetBotChannelAssociationOutput, error) {
1759	req, out := c.GetBotChannelAssociationRequest(input)
1760	req.SetContext(ctx)
1761	req.ApplyOptions(opts...)
1762	return out, req.Send()
1763}
1764
1765const opGetBotChannelAssociations = "GetBotChannelAssociations"
1766
1767// GetBotChannelAssociationsRequest generates a "aws/request.Request" representing the
1768// client's request for the GetBotChannelAssociations operation. The "output" return
1769// value will be populated with the request's response once the request completes
1770// successfully.
1771//
1772// Use "Send" method on the returned Request to send the API call to the service.
1773// the "output" return value is not valid until after Send returns without error.
1774//
1775// See GetBotChannelAssociations for more information on using the GetBotChannelAssociations
1776// API call, and error handling.
1777//
1778// This method is useful when you want to inject custom logic or configuration
1779// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1780//
1781//
1782//    // Example sending a request using the GetBotChannelAssociationsRequest method.
1783//    req, resp := client.GetBotChannelAssociationsRequest(params)
1784//
1785//    err := req.Send()
1786//    if err == nil { // resp is now filled
1787//        fmt.Println(resp)
1788//    }
1789//
1790// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotChannelAssociations
1791func (c *LexModelBuildingService) GetBotChannelAssociationsRequest(input *GetBotChannelAssociationsInput) (req *request.Request, output *GetBotChannelAssociationsOutput) {
1792	op := &request.Operation{
1793		Name:       opGetBotChannelAssociations,
1794		HTTPMethod: "GET",
1795		HTTPPath:   "/bots/{botName}/aliases/{aliasName}/channels/",
1796		Paginator: &request.Paginator{
1797			InputTokens:     []string{"nextToken"},
1798			OutputTokens:    []string{"nextToken"},
1799			LimitToken:      "maxResults",
1800			TruncationToken: "",
1801		},
1802	}
1803
1804	if input == nil {
1805		input = &GetBotChannelAssociationsInput{}
1806	}
1807
1808	output = &GetBotChannelAssociationsOutput{}
1809	req = c.newRequest(op, input, output)
1810	return
1811}
1812
1813// GetBotChannelAssociations API operation for Amazon Lex Model Building Service.
1814//
1815// Returns a list of all of the channels associated with the specified bot.
1816//
1817// The GetBotChannelAssociations operation requires permissions for the lex:GetBotChannelAssociations
1818// action.
1819//
1820// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1821// with awserr.Error's Code and Message methods to get detailed information about
1822// the error.
1823//
1824// See the AWS API reference guide for Amazon Lex Model Building Service's
1825// API operation GetBotChannelAssociations for usage and error information.
1826//
1827// Returned Error Codes:
1828//   * ErrCodeLimitExceededException "LimitExceededException"
1829//   The request exceeded a limit. Try your request again.
1830//
1831//   * ErrCodeInternalFailureException "InternalFailureException"
1832//   An internal Amazon Lex error occurred. Try your request again.
1833//
1834//   * ErrCodeBadRequestException "BadRequestException"
1835//   The request is not well formed. For example, a value is invalid or a required
1836//   field is missing. Check the field values, and try again.
1837//
1838// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotChannelAssociations
1839func (c *LexModelBuildingService) GetBotChannelAssociations(input *GetBotChannelAssociationsInput) (*GetBotChannelAssociationsOutput, error) {
1840	req, out := c.GetBotChannelAssociationsRequest(input)
1841	return out, req.Send()
1842}
1843
1844// GetBotChannelAssociationsWithContext is the same as GetBotChannelAssociations with the addition of
1845// the ability to pass a context and additional request options.
1846//
1847// See GetBotChannelAssociations for details on how to use this API operation.
1848//
1849// The context must be non-nil and will be used for request cancellation. If
1850// the context is nil a panic will occur. In the future the SDK may create
1851// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1852// for more information on using Contexts.
1853func (c *LexModelBuildingService) GetBotChannelAssociationsWithContext(ctx aws.Context, input *GetBotChannelAssociationsInput, opts ...request.Option) (*GetBotChannelAssociationsOutput, error) {
1854	req, out := c.GetBotChannelAssociationsRequest(input)
1855	req.SetContext(ctx)
1856	req.ApplyOptions(opts...)
1857	return out, req.Send()
1858}
1859
1860// GetBotChannelAssociationsPages iterates over the pages of a GetBotChannelAssociations operation,
1861// calling the "fn" function with the response data for each page. To stop
1862// iterating, return false from the fn function.
1863//
1864// See GetBotChannelAssociations method for more information on how to use this operation.
1865//
1866// Note: This operation can generate multiple requests to a service.
1867//
1868//    // Example iterating over at most 3 pages of a GetBotChannelAssociations operation.
1869//    pageNum := 0
1870//    err := client.GetBotChannelAssociationsPages(params,
1871//        func(page *lexmodelbuildingservice.GetBotChannelAssociationsOutput, lastPage bool) bool {
1872//            pageNum++
1873//            fmt.Println(page)
1874//            return pageNum <= 3
1875//        })
1876//
1877func (c *LexModelBuildingService) GetBotChannelAssociationsPages(input *GetBotChannelAssociationsInput, fn func(*GetBotChannelAssociationsOutput, bool) bool) error {
1878	return c.GetBotChannelAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
1879}
1880
1881// GetBotChannelAssociationsPagesWithContext same as GetBotChannelAssociationsPages except
1882// it takes a Context and allows setting request options on the pages.
1883//
1884// The context must be non-nil and will be used for request cancellation. If
1885// the context is nil a panic will occur. In the future the SDK may create
1886// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1887// for more information on using Contexts.
1888func (c *LexModelBuildingService) GetBotChannelAssociationsPagesWithContext(ctx aws.Context, input *GetBotChannelAssociationsInput, fn func(*GetBotChannelAssociationsOutput, bool) bool, opts ...request.Option) error {
1889	p := request.Pagination{
1890		NewRequest: func() (*request.Request, error) {
1891			var inCpy *GetBotChannelAssociationsInput
1892			if input != nil {
1893				tmp := *input
1894				inCpy = &tmp
1895			}
1896			req, _ := c.GetBotChannelAssociationsRequest(inCpy)
1897			req.SetContext(ctx)
1898			req.ApplyOptions(opts...)
1899			return req, nil
1900		},
1901	}
1902
1903	cont := true
1904	for p.Next() && cont {
1905		cont = fn(p.Page().(*GetBotChannelAssociationsOutput), !p.HasNextPage())
1906	}
1907	return p.Err()
1908}
1909
1910const opGetBotVersions = "GetBotVersions"
1911
1912// GetBotVersionsRequest generates a "aws/request.Request" representing the
1913// client's request for the GetBotVersions operation. The "output" return
1914// value will be populated with the request's response once the request completes
1915// successfully.
1916//
1917// Use "Send" method on the returned Request to send the API call to the service.
1918// the "output" return value is not valid until after Send returns without error.
1919//
1920// See GetBotVersions for more information on using the GetBotVersions
1921// API call, and error handling.
1922//
1923// This method is useful when you want to inject custom logic or configuration
1924// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1925//
1926//
1927//    // Example sending a request using the GetBotVersionsRequest method.
1928//    req, resp := client.GetBotVersionsRequest(params)
1929//
1930//    err := req.Send()
1931//    if err == nil { // resp is now filled
1932//        fmt.Println(resp)
1933//    }
1934//
1935// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotVersions
1936func (c *LexModelBuildingService) GetBotVersionsRequest(input *GetBotVersionsInput) (req *request.Request, output *GetBotVersionsOutput) {
1937	op := &request.Operation{
1938		Name:       opGetBotVersions,
1939		HTTPMethod: "GET",
1940		HTTPPath:   "/bots/{name}/versions/",
1941		Paginator: &request.Paginator{
1942			InputTokens:     []string{"nextToken"},
1943			OutputTokens:    []string{"nextToken"},
1944			LimitToken:      "maxResults",
1945			TruncationToken: "",
1946		},
1947	}
1948
1949	if input == nil {
1950		input = &GetBotVersionsInput{}
1951	}
1952
1953	output = &GetBotVersionsOutput{}
1954	req = c.newRequest(op, input, output)
1955	return
1956}
1957
1958// GetBotVersions API operation for Amazon Lex Model Building Service.
1959//
1960// Gets information about all of the versions of a bot.
1961//
1962// The GetBotVersions operation returns a BotMetadata object for each version
1963// of a bot. For example, if a bot has three numbered versions, the GetBotVersions
1964// operation returns four BotMetadata objects in the response, one for each
1965// numbered version and one for the $LATEST version.
1966//
1967// The GetBotVersions operation always returns at least one version, the $LATEST
1968// version.
1969//
1970// This operation requires permissions for the lex:GetBotVersions action.
1971//
1972// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1973// with awserr.Error's Code and Message methods to get detailed information about
1974// the error.
1975//
1976// See the AWS API reference guide for Amazon Lex Model Building Service's
1977// API operation GetBotVersions for usage and error information.
1978//
1979// Returned Error Codes:
1980//   * ErrCodeNotFoundException "NotFoundException"
1981//   The resource specified in the request was not found. Check the resource and
1982//   try again.
1983//
1984//   * ErrCodeLimitExceededException "LimitExceededException"
1985//   The request exceeded a limit. Try your request again.
1986//
1987//   * ErrCodeInternalFailureException "InternalFailureException"
1988//   An internal Amazon Lex error occurred. Try your request again.
1989//
1990//   * ErrCodeBadRequestException "BadRequestException"
1991//   The request is not well formed. For example, a value is invalid or a required
1992//   field is missing. Check the field values, and try again.
1993//
1994// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBotVersions
1995func (c *LexModelBuildingService) GetBotVersions(input *GetBotVersionsInput) (*GetBotVersionsOutput, error) {
1996	req, out := c.GetBotVersionsRequest(input)
1997	return out, req.Send()
1998}
1999
2000// GetBotVersionsWithContext is the same as GetBotVersions with the addition of
2001// the ability to pass a context and additional request options.
2002//
2003// See GetBotVersions for details on how to use this API operation.
2004//
2005// The context must be non-nil and will be used for request cancellation. If
2006// the context is nil a panic will occur. In the future the SDK may create
2007// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2008// for more information on using Contexts.
2009func (c *LexModelBuildingService) GetBotVersionsWithContext(ctx aws.Context, input *GetBotVersionsInput, opts ...request.Option) (*GetBotVersionsOutput, error) {
2010	req, out := c.GetBotVersionsRequest(input)
2011	req.SetContext(ctx)
2012	req.ApplyOptions(opts...)
2013	return out, req.Send()
2014}
2015
2016// GetBotVersionsPages iterates over the pages of a GetBotVersions operation,
2017// calling the "fn" function with the response data for each page. To stop
2018// iterating, return false from the fn function.
2019//
2020// See GetBotVersions method for more information on how to use this operation.
2021//
2022// Note: This operation can generate multiple requests to a service.
2023//
2024//    // Example iterating over at most 3 pages of a GetBotVersions operation.
2025//    pageNum := 0
2026//    err := client.GetBotVersionsPages(params,
2027//        func(page *lexmodelbuildingservice.GetBotVersionsOutput, lastPage bool) bool {
2028//            pageNum++
2029//            fmt.Println(page)
2030//            return pageNum <= 3
2031//        })
2032//
2033func (c *LexModelBuildingService) GetBotVersionsPages(input *GetBotVersionsInput, fn func(*GetBotVersionsOutput, bool) bool) error {
2034	return c.GetBotVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
2035}
2036
2037// GetBotVersionsPagesWithContext same as GetBotVersionsPages except
2038// it takes a Context and allows setting request options on the pages.
2039//
2040// The context must be non-nil and will be used for request cancellation. If
2041// the context is nil a panic will occur. In the future the SDK may create
2042// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2043// for more information on using Contexts.
2044func (c *LexModelBuildingService) GetBotVersionsPagesWithContext(ctx aws.Context, input *GetBotVersionsInput, fn func(*GetBotVersionsOutput, bool) bool, opts ...request.Option) error {
2045	p := request.Pagination{
2046		NewRequest: func() (*request.Request, error) {
2047			var inCpy *GetBotVersionsInput
2048			if input != nil {
2049				tmp := *input
2050				inCpy = &tmp
2051			}
2052			req, _ := c.GetBotVersionsRequest(inCpy)
2053			req.SetContext(ctx)
2054			req.ApplyOptions(opts...)
2055			return req, nil
2056		},
2057	}
2058
2059	cont := true
2060	for p.Next() && cont {
2061		cont = fn(p.Page().(*GetBotVersionsOutput), !p.HasNextPage())
2062	}
2063	return p.Err()
2064}
2065
2066const opGetBots = "GetBots"
2067
2068// GetBotsRequest generates a "aws/request.Request" representing the
2069// client's request for the GetBots operation. The "output" return
2070// value will be populated with the request's response once the request completes
2071// successfully.
2072//
2073// Use "Send" method on the returned Request to send the API call to the service.
2074// the "output" return value is not valid until after Send returns without error.
2075//
2076// See GetBots for more information on using the GetBots
2077// API call, and error handling.
2078//
2079// This method is useful when you want to inject custom logic or configuration
2080// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2081//
2082//
2083//    // Example sending a request using the GetBotsRequest method.
2084//    req, resp := client.GetBotsRequest(params)
2085//
2086//    err := req.Send()
2087//    if err == nil { // resp is now filled
2088//        fmt.Println(resp)
2089//    }
2090//
2091// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBots
2092func (c *LexModelBuildingService) GetBotsRequest(input *GetBotsInput) (req *request.Request, output *GetBotsOutput) {
2093	op := &request.Operation{
2094		Name:       opGetBots,
2095		HTTPMethod: "GET",
2096		HTTPPath:   "/bots/",
2097		Paginator: &request.Paginator{
2098			InputTokens:     []string{"nextToken"},
2099			OutputTokens:    []string{"nextToken"},
2100			LimitToken:      "maxResults",
2101			TruncationToken: "",
2102		},
2103	}
2104
2105	if input == nil {
2106		input = &GetBotsInput{}
2107	}
2108
2109	output = &GetBotsOutput{}
2110	req = c.newRequest(op, input, output)
2111	return
2112}
2113
2114// GetBots API operation for Amazon Lex Model Building Service.
2115//
2116// Returns bot information as follows:
2117//
2118//    * If you provide the nameContains field, the response includes information
2119//    for the $LATEST version of all bots whose name contains the specified
2120//    string.
2121//
2122//    * If you don't specify the nameContains field, the operation returns information
2123//    about the $LATEST version of all of your bots.
2124//
2125// This operation requires permission for the lex:GetBots action.
2126//
2127// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2128// with awserr.Error's Code and Message methods to get detailed information about
2129// the error.
2130//
2131// See the AWS API reference guide for Amazon Lex Model Building Service's
2132// API operation GetBots for usage and error information.
2133//
2134// Returned Error Codes:
2135//   * ErrCodeNotFoundException "NotFoundException"
2136//   The resource specified in the request was not found. Check the resource and
2137//   try again.
2138//
2139//   * ErrCodeLimitExceededException "LimitExceededException"
2140//   The request exceeded a limit. Try your request again.
2141//
2142//   * ErrCodeInternalFailureException "InternalFailureException"
2143//   An internal Amazon Lex error occurred. Try your request again.
2144//
2145//   * ErrCodeBadRequestException "BadRequestException"
2146//   The request is not well formed. For example, a value is invalid or a required
2147//   field is missing. Check the field values, and try again.
2148//
2149// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBots
2150func (c *LexModelBuildingService) GetBots(input *GetBotsInput) (*GetBotsOutput, error) {
2151	req, out := c.GetBotsRequest(input)
2152	return out, req.Send()
2153}
2154
2155// GetBotsWithContext is the same as GetBots with the addition of
2156// the ability to pass a context and additional request options.
2157//
2158// See GetBots for details on how to use this API operation.
2159//
2160// The context must be non-nil and will be used for request cancellation. If
2161// the context is nil a panic will occur. In the future the SDK may create
2162// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2163// for more information on using Contexts.
2164func (c *LexModelBuildingService) GetBotsWithContext(ctx aws.Context, input *GetBotsInput, opts ...request.Option) (*GetBotsOutput, error) {
2165	req, out := c.GetBotsRequest(input)
2166	req.SetContext(ctx)
2167	req.ApplyOptions(opts...)
2168	return out, req.Send()
2169}
2170
2171// GetBotsPages iterates over the pages of a GetBots operation,
2172// calling the "fn" function with the response data for each page. To stop
2173// iterating, return false from the fn function.
2174//
2175// See GetBots method for more information on how to use this operation.
2176//
2177// Note: This operation can generate multiple requests to a service.
2178//
2179//    // Example iterating over at most 3 pages of a GetBots operation.
2180//    pageNum := 0
2181//    err := client.GetBotsPages(params,
2182//        func(page *lexmodelbuildingservice.GetBotsOutput, lastPage bool) bool {
2183//            pageNum++
2184//            fmt.Println(page)
2185//            return pageNum <= 3
2186//        })
2187//
2188func (c *LexModelBuildingService) GetBotsPages(input *GetBotsInput, fn func(*GetBotsOutput, bool) bool) error {
2189	return c.GetBotsPagesWithContext(aws.BackgroundContext(), input, fn)
2190}
2191
2192// GetBotsPagesWithContext same as GetBotsPages except
2193// it takes a Context and allows setting request options on the pages.
2194//
2195// The context must be non-nil and will be used for request cancellation. If
2196// the context is nil a panic will occur. In the future the SDK may create
2197// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2198// for more information on using Contexts.
2199func (c *LexModelBuildingService) GetBotsPagesWithContext(ctx aws.Context, input *GetBotsInput, fn func(*GetBotsOutput, bool) bool, opts ...request.Option) error {
2200	p := request.Pagination{
2201		NewRequest: func() (*request.Request, error) {
2202			var inCpy *GetBotsInput
2203			if input != nil {
2204				tmp := *input
2205				inCpy = &tmp
2206			}
2207			req, _ := c.GetBotsRequest(inCpy)
2208			req.SetContext(ctx)
2209			req.ApplyOptions(opts...)
2210			return req, nil
2211		},
2212	}
2213
2214	cont := true
2215	for p.Next() && cont {
2216		cont = fn(p.Page().(*GetBotsOutput), !p.HasNextPage())
2217	}
2218	return p.Err()
2219}
2220
2221const opGetBuiltinIntent = "GetBuiltinIntent"
2222
2223// GetBuiltinIntentRequest generates a "aws/request.Request" representing the
2224// client's request for the GetBuiltinIntent operation. The "output" return
2225// value will be populated with the request's response once the request completes
2226// successfully.
2227//
2228// Use "Send" method on the returned Request to send the API call to the service.
2229// the "output" return value is not valid until after Send returns without error.
2230//
2231// See GetBuiltinIntent for more information on using the GetBuiltinIntent
2232// API call, and error handling.
2233//
2234// This method is useful when you want to inject custom logic or configuration
2235// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2236//
2237//
2238//    // Example sending a request using the GetBuiltinIntentRequest method.
2239//    req, resp := client.GetBuiltinIntentRequest(params)
2240//
2241//    err := req.Send()
2242//    if err == nil { // resp is now filled
2243//        fmt.Println(resp)
2244//    }
2245//
2246// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinIntent
2247func (c *LexModelBuildingService) GetBuiltinIntentRequest(input *GetBuiltinIntentInput) (req *request.Request, output *GetBuiltinIntentOutput) {
2248	op := &request.Operation{
2249		Name:       opGetBuiltinIntent,
2250		HTTPMethod: "GET",
2251		HTTPPath:   "/builtins/intents/{signature}",
2252	}
2253
2254	if input == nil {
2255		input = &GetBuiltinIntentInput{}
2256	}
2257
2258	output = &GetBuiltinIntentOutput{}
2259	req = c.newRequest(op, input, output)
2260	return
2261}
2262
2263// GetBuiltinIntent API operation for Amazon Lex Model Building Service.
2264//
2265// Returns information about a built-in intent.
2266//
2267// This operation requires permission for the lex:GetBuiltinIntent action.
2268//
2269// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2270// with awserr.Error's Code and Message methods to get detailed information about
2271// the error.
2272//
2273// See the AWS API reference guide for Amazon Lex Model Building Service's
2274// API operation GetBuiltinIntent for usage and error information.
2275//
2276// Returned Error Codes:
2277//   * ErrCodeNotFoundException "NotFoundException"
2278//   The resource specified in the request was not found. Check the resource and
2279//   try again.
2280//
2281//   * ErrCodeLimitExceededException "LimitExceededException"
2282//   The request exceeded a limit. Try your request again.
2283//
2284//   * ErrCodeInternalFailureException "InternalFailureException"
2285//   An internal Amazon Lex error occurred. Try your request again.
2286//
2287//   * ErrCodeBadRequestException "BadRequestException"
2288//   The request is not well formed. For example, a value is invalid or a required
2289//   field is missing. Check the field values, and try again.
2290//
2291// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinIntent
2292func (c *LexModelBuildingService) GetBuiltinIntent(input *GetBuiltinIntentInput) (*GetBuiltinIntentOutput, error) {
2293	req, out := c.GetBuiltinIntentRequest(input)
2294	return out, req.Send()
2295}
2296
2297// GetBuiltinIntentWithContext is the same as GetBuiltinIntent with the addition of
2298// the ability to pass a context and additional request options.
2299//
2300// See GetBuiltinIntent for details on how to use this API operation.
2301//
2302// The context must be non-nil and will be used for request cancellation. If
2303// the context is nil a panic will occur. In the future the SDK may create
2304// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2305// for more information on using Contexts.
2306func (c *LexModelBuildingService) GetBuiltinIntentWithContext(ctx aws.Context, input *GetBuiltinIntentInput, opts ...request.Option) (*GetBuiltinIntentOutput, error) {
2307	req, out := c.GetBuiltinIntentRequest(input)
2308	req.SetContext(ctx)
2309	req.ApplyOptions(opts...)
2310	return out, req.Send()
2311}
2312
2313const opGetBuiltinIntents = "GetBuiltinIntents"
2314
2315// GetBuiltinIntentsRequest generates a "aws/request.Request" representing the
2316// client's request for the GetBuiltinIntents operation. The "output" return
2317// value will be populated with the request's response once the request completes
2318// successfully.
2319//
2320// Use "Send" method on the returned Request to send the API call to the service.
2321// the "output" return value is not valid until after Send returns without error.
2322//
2323// See GetBuiltinIntents for more information on using the GetBuiltinIntents
2324// API call, and error handling.
2325//
2326// This method is useful when you want to inject custom logic or configuration
2327// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2328//
2329//
2330//    // Example sending a request using the GetBuiltinIntentsRequest method.
2331//    req, resp := client.GetBuiltinIntentsRequest(params)
2332//
2333//    err := req.Send()
2334//    if err == nil { // resp is now filled
2335//        fmt.Println(resp)
2336//    }
2337//
2338// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinIntents
2339func (c *LexModelBuildingService) GetBuiltinIntentsRequest(input *GetBuiltinIntentsInput) (req *request.Request, output *GetBuiltinIntentsOutput) {
2340	op := &request.Operation{
2341		Name:       opGetBuiltinIntents,
2342		HTTPMethod: "GET",
2343		HTTPPath:   "/builtins/intents/",
2344		Paginator: &request.Paginator{
2345			InputTokens:     []string{"nextToken"},
2346			OutputTokens:    []string{"nextToken"},
2347			LimitToken:      "maxResults",
2348			TruncationToken: "",
2349		},
2350	}
2351
2352	if input == nil {
2353		input = &GetBuiltinIntentsInput{}
2354	}
2355
2356	output = &GetBuiltinIntentsOutput{}
2357	req = c.newRequest(op, input, output)
2358	return
2359}
2360
2361// GetBuiltinIntents API operation for Amazon Lex Model Building Service.
2362//
2363// Gets a list of built-in intents that meet the specified criteria.
2364//
2365// This operation requires permission for the lex:GetBuiltinIntents action.
2366//
2367// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2368// with awserr.Error's Code and Message methods to get detailed information about
2369// the error.
2370//
2371// See the AWS API reference guide for Amazon Lex Model Building Service's
2372// API operation GetBuiltinIntents for usage and error information.
2373//
2374// Returned Error Codes:
2375//   * ErrCodeLimitExceededException "LimitExceededException"
2376//   The request exceeded a limit. Try your request again.
2377//
2378//   * ErrCodeInternalFailureException "InternalFailureException"
2379//   An internal Amazon Lex error occurred. Try your request again.
2380//
2381//   * ErrCodeBadRequestException "BadRequestException"
2382//   The request is not well formed. For example, a value is invalid or a required
2383//   field is missing. Check the field values, and try again.
2384//
2385// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinIntents
2386func (c *LexModelBuildingService) GetBuiltinIntents(input *GetBuiltinIntentsInput) (*GetBuiltinIntentsOutput, error) {
2387	req, out := c.GetBuiltinIntentsRequest(input)
2388	return out, req.Send()
2389}
2390
2391// GetBuiltinIntentsWithContext is the same as GetBuiltinIntents with the addition of
2392// the ability to pass a context and additional request options.
2393//
2394// See GetBuiltinIntents for details on how to use this API operation.
2395//
2396// The context must be non-nil and will be used for request cancellation. If
2397// the context is nil a panic will occur. In the future the SDK may create
2398// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2399// for more information on using Contexts.
2400func (c *LexModelBuildingService) GetBuiltinIntentsWithContext(ctx aws.Context, input *GetBuiltinIntentsInput, opts ...request.Option) (*GetBuiltinIntentsOutput, error) {
2401	req, out := c.GetBuiltinIntentsRequest(input)
2402	req.SetContext(ctx)
2403	req.ApplyOptions(opts...)
2404	return out, req.Send()
2405}
2406
2407// GetBuiltinIntentsPages iterates over the pages of a GetBuiltinIntents operation,
2408// calling the "fn" function with the response data for each page. To stop
2409// iterating, return false from the fn function.
2410//
2411// See GetBuiltinIntents method for more information on how to use this operation.
2412//
2413// Note: This operation can generate multiple requests to a service.
2414//
2415//    // Example iterating over at most 3 pages of a GetBuiltinIntents operation.
2416//    pageNum := 0
2417//    err := client.GetBuiltinIntentsPages(params,
2418//        func(page *lexmodelbuildingservice.GetBuiltinIntentsOutput, lastPage bool) bool {
2419//            pageNum++
2420//            fmt.Println(page)
2421//            return pageNum <= 3
2422//        })
2423//
2424func (c *LexModelBuildingService) GetBuiltinIntentsPages(input *GetBuiltinIntentsInput, fn func(*GetBuiltinIntentsOutput, bool) bool) error {
2425	return c.GetBuiltinIntentsPagesWithContext(aws.BackgroundContext(), input, fn)
2426}
2427
2428// GetBuiltinIntentsPagesWithContext same as GetBuiltinIntentsPages except
2429// it takes a Context and allows setting request options on the pages.
2430//
2431// The context must be non-nil and will be used for request cancellation. If
2432// the context is nil a panic will occur. In the future the SDK may create
2433// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2434// for more information on using Contexts.
2435func (c *LexModelBuildingService) GetBuiltinIntentsPagesWithContext(ctx aws.Context, input *GetBuiltinIntentsInput, fn func(*GetBuiltinIntentsOutput, bool) bool, opts ...request.Option) error {
2436	p := request.Pagination{
2437		NewRequest: func() (*request.Request, error) {
2438			var inCpy *GetBuiltinIntentsInput
2439			if input != nil {
2440				tmp := *input
2441				inCpy = &tmp
2442			}
2443			req, _ := c.GetBuiltinIntentsRequest(inCpy)
2444			req.SetContext(ctx)
2445			req.ApplyOptions(opts...)
2446			return req, nil
2447		},
2448	}
2449
2450	cont := true
2451	for p.Next() && cont {
2452		cont = fn(p.Page().(*GetBuiltinIntentsOutput), !p.HasNextPage())
2453	}
2454	return p.Err()
2455}
2456
2457const opGetBuiltinSlotTypes = "GetBuiltinSlotTypes"
2458
2459// GetBuiltinSlotTypesRequest generates a "aws/request.Request" representing the
2460// client's request for the GetBuiltinSlotTypes operation. The "output" return
2461// value will be populated with the request's response once the request completes
2462// successfully.
2463//
2464// Use "Send" method on the returned Request to send the API call to the service.
2465// the "output" return value is not valid until after Send returns without error.
2466//
2467// See GetBuiltinSlotTypes for more information on using the GetBuiltinSlotTypes
2468// API call, and error handling.
2469//
2470// This method is useful when you want to inject custom logic or configuration
2471// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2472//
2473//
2474//    // Example sending a request using the GetBuiltinSlotTypesRequest method.
2475//    req, resp := client.GetBuiltinSlotTypesRequest(params)
2476//
2477//    err := req.Send()
2478//    if err == nil { // resp is now filled
2479//        fmt.Println(resp)
2480//    }
2481//
2482// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinSlotTypes
2483func (c *LexModelBuildingService) GetBuiltinSlotTypesRequest(input *GetBuiltinSlotTypesInput) (req *request.Request, output *GetBuiltinSlotTypesOutput) {
2484	op := &request.Operation{
2485		Name:       opGetBuiltinSlotTypes,
2486		HTTPMethod: "GET",
2487		HTTPPath:   "/builtins/slottypes/",
2488		Paginator: &request.Paginator{
2489			InputTokens:     []string{"nextToken"},
2490			OutputTokens:    []string{"nextToken"},
2491			LimitToken:      "maxResults",
2492			TruncationToken: "",
2493		},
2494	}
2495
2496	if input == nil {
2497		input = &GetBuiltinSlotTypesInput{}
2498	}
2499
2500	output = &GetBuiltinSlotTypesOutput{}
2501	req = c.newRequest(op, input, output)
2502	return
2503}
2504
2505// GetBuiltinSlotTypes API operation for Amazon Lex Model Building Service.
2506//
2507// Gets a list of built-in slot types that meet the specified criteria.
2508//
2509// 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)
2510// in the Alexa Skills Kit.
2511//
2512// This operation requires permission for the lex:GetBuiltInSlotTypes action.
2513//
2514// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2515// with awserr.Error's Code and Message methods to get detailed information about
2516// the error.
2517//
2518// See the AWS API reference guide for Amazon Lex Model Building Service's
2519// API operation GetBuiltinSlotTypes for usage and error information.
2520//
2521// Returned Error Codes:
2522//   * ErrCodeLimitExceededException "LimitExceededException"
2523//   The request exceeded a limit. Try your request again.
2524//
2525//   * ErrCodeInternalFailureException "InternalFailureException"
2526//   An internal Amazon Lex error occurred. Try your request again.
2527//
2528//   * ErrCodeBadRequestException "BadRequestException"
2529//   The request is not well formed. For example, a value is invalid or a required
2530//   field is missing. Check the field values, and try again.
2531//
2532// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetBuiltinSlotTypes
2533func (c *LexModelBuildingService) GetBuiltinSlotTypes(input *GetBuiltinSlotTypesInput) (*GetBuiltinSlotTypesOutput, error) {
2534	req, out := c.GetBuiltinSlotTypesRequest(input)
2535	return out, req.Send()
2536}
2537
2538// GetBuiltinSlotTypesWithContext is the same as GetBuiltinSlotTypes with the addition of
2539// the ability to pass a context and additional request options.
2540//
2541// See GetBuiltinSlotTypes for details on how to use this API operation.
2542//
2543// The context must be non-nil and will be used for request cancellation. If
2544// the context is nil a panic will occur. In the future the SDK may create
2545// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2546// for more information on using Contexts.
2547func (c *LexModelBuildingService) GetBuiltinSlotTypesWithContext(ctx aws.Context, input *GetBuiltinSlotTypesInput, opts ...request.Option) (*GetBuiltinSlotTypesOutput, error) {
2548	req, out := c.GetBuiltinSlotTypesRequest(input)
2549	req.SetContext(ctx)
2550	req.ApplyOptions(opts...)
2551	return out, req.Send()
2552}
2553
2554// GetBuiltinSlotTypesPages iterates over the pages of a GetBuiltinSlotTypes operation,
2555// calling the "fn" function with the response data for each page. To stop
2556// iterating, return false from the fn function.
2557//
2558// See GetBuiltinSlotTypes method for more information on how to use this operation.
2559//
2560// Note: This operation can generate multiple requests to a service.
2561//
2562//    // Example iterating over at most 3 pages of a GetBuiltinSlotTypes operation.
2563//    pageNum := 0
2564//    err := client.GetBuiltinSlotTypesPages(params,
2565//        func(page *lexmodelbuildingservice.GetBuiltinSlotTypesOutput, lastPage bool) bool {
2566//            pageNum++
2567//            fmt.Println(page)
2568//            return pageNum <= 3
2569//        })
2570//
2571func (c *LexModelBuildingService) GetBuiltinSlotTypesPages(input *GetBuiltinSlotTypesInput, fn func(*GetBuiltinSlotTypesOutput, bool) bool) error {
2572	return c.GetBuiltinSlotTypesPagesWithContext(aws.BackgroundContext(), input, fn)
2573}
2574
2575// GetBuiltinSlotTypesPagesWithContext same as GetBuiltinSlotTypesPages except
2576// it takes a Context and allows setting request options on the pages.
2577//
2578// The context must be non-nil and will be used for request cancellation. If
2579// the context is nil a panic will occur. In the future the SDK may create
2580// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2581// for more information on using Contexts.
2582func (c *LexModelBuildingService) GetBuiltinSlotTypesPagesWithContext(ctx aws.Context, input *GetBuiltinSlotTypesInput, fn func(*GetBuiltinSlotTypesOutput, bool) bool, opts ...request.Option) error {
2583	p := request.Pagination{
2584		NewRequest: func() (*request.Request, error) {
2585			var inCpy *GetBuiltinSlotTypesInput
2586			if input != nil {
2587				tmp := *input
2588				inCpy = &tmp
2589			}
2590			req, _ := c.GetBuiltinSlotTypesRequest(inCpy)
2591			req.SetContext(ctx)
2592			req.ApplyOptions(opts...)
2593			return req, nil
2594		},
2595	}
2596
2597	cont := true
2598	for p.Next() && cont {
2599		cont = fn(p.Page().(*GetBuiltinSlotTypesOutput), !p.HasNextPage())
2600	}
2601	return p.Err()
2602}
2603
2604const opGetExport = "GetExport"
2605
2606// GetExportRequest generates a "aws/request.Request" representing the
2607// client's request for the GetExport operation. The "output" return
2608// value will be populated with the request's response once the request completes
2609// successfully.
2610//
2611// Use "Send" method on the returned Request to send the API call to the service.
2612// the "output" return value is not valid until after Send returns without error.
2613//
2614// See GetExport for more information on using the GetExport
2615// API call, and error handling.
2616//
2617// This method is useful when you want to inject custom logic or configuration
2618// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2619//
2620//
2621//    // Example sending a request using the GetExportRequest method.
2622//    req, resp := client.GetExportRequest(params)
2623//
2624//    err := req.Send()
2625//    if err == nil { // resp is now filled
2626//        fmt.Println(resp)
2627//    }
2628//
2629// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetExport
2630func (c *LexModelBuildingService) GetExportRequest(input *GetExportInput) (req *request.Request, output *GetExportOutput) {
2631	op := &request.Operation{
2632		Name:       opGetExport,
2633		HTTPMethod: "GET",
2634		HTTPPath:   "/exports/",
2635	}
2636
2637	if input == nil {
2638		input = &GetExportInput{}
2639	}
2640
2641	output = &GetExportOutput{}
2642	req = c.newRequest(op, input, output)
2643	return
2644}
2645
2646// GetExport API operation for Amazon Lex Model Building Service.
2647//
2648// Exports the contents of a Amazon Lex resource in a specified format.
2649//
2650// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2651// with awserr.Error's Code and Message methods to get detailed information about
2652// the error.
2653//
2654// See the AWS API reference guide for Amazon Lex Model Building Service's
2655// API operation GetExport for usage and error information.
2656//
2657// Returned Error Codes:
2658//   * ErrCodeNotFoundException "NotFoundException"
2659//   The resource specified in the request was not found. Check the resource and
2660//   try again.
2661//
2662//   * ErrCodeLimitExceededException "LimitExceededException"
2663//   The request exceeded a limit. Try your request again.
2664//
2665//   * ErrCodeInternalFailureException "InternalFailureException"
2666//   An internal Amazon Lex error occurred. Try your request again.
2667//
2668//   * ErrCodeBadRequestException "BadRequestException"
2669//   The request is not well formed. For example, a value is invalid or a required
2670//   field is missing. Check the field values, and try again.
2671//
2672// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetExport
2673func (c *LexModelBuildingService) GetExport(input *GetExportInput) (*GetExportOutput, error) {
2674	req, out := c.GetExportRequest(input)
2675	return out, req.Send()
2676}
2677
2678// GetExportWithContext is the same as GetExport with the addition of
2679// the ability to pass a context and additional request options.
2680//
2681// See GetExport for details on how to use this API operation.
2682//
2683// The context must be non-nil and will be used for request cancellation. If
2684// the context is nil a panic will occur. In the future the SDK may create
2685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2686// for more information on using Contexts.
2687func (c *LexModelBuildingService) GetExportWithContext(ctx aws.Context, input *GetExportInput, opts ...request.Option) (*GetExportOutput, error) {
2688	req, out := c.GetExportRequest(input)
2689	req.SetContext(ctx)
2690	req.ApplyOptions(opts...)
2691	return out, req.Send()
2692}
2693
2694const opGetImport = "GetImport"
2695
2696// GetImportRequest generates a "aws/request.Request" representing the
2697// client's request for the GetImport operation. The "output" return
2698// value will be populated with the request's response once the request completes
2699// successfully.
2700//
2701// Use "Send" method on the returned Request to send the API call to the service.
2702// the "output" return value is not valid until after Send returns without error.
2703//
2704// See GetImport for more information on using the GetImport
2705// API call, and error handling.
2706//
2707// This method is useful when you want to inject custom logic or configuration
2708// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2709//
2710//
2711//    // Example sending a request using the GetImportRequest method.
2712//    req, resp := client.GetImportRequest(params)
2713//
2714//    err := req.Send()
2715//    if err == nil { // resp is now filled
2716//        fmt.Println(resp)
2717//    }
2718//
2719// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetImport
2720func (c *LexModelBuildingService) GetImportRequest(input *GetImportInput) (req *request.Request, output *GetImportOutput) {
2721	op := &request.Operation{
2722		Name:       opGetImport,
2723		HTTPMethod: "GET",
2724		HTTPPath:   "/imports/{importId}",
2725	}
2726
2727	if input == nil {
2728		input = &GetImportInput{}
2729	}
2730
2731	output = &GetImportOutput{}
2732	req = c.newRequest(op, input, output)
2733	return
2734}
2735
2736// GetImport API operation for Amazon Lex Model Building Service.
2737//
2738// Gets information about an import job started with the StartImport operation.
2739//
2740// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2741// with awserr.Error's Code and Message methods to get detailed information about
2742// the error.
2743//
2744// See the AWS API reference guide for Amazon Lex Model Building Service's
2745// API operation GetImport for usage and error information.
2746//
2747// Returned Error Codes:
2748//   * ErrCodeNotFoundException "NotFoundException"
2749//   The resource specified in the request was not found. Check the resource and
2750//   try again.
2751//
2752//   * ErrCodeLimitExceededException "LimitExceededException"
2753//   The request exceeded a limit. Try your request again.
2754//
2755//   * ErrCodeInternalFailureException "InternalFailureException"
2756//   An internal Amazon Lex error occurred. Try your request again.
2757//
2758//   * ErrCodeBadRequestException "BadRequestException"
2759//   The request is not well formed. For example, a value is invalid or a required
2760//   field is missing. Check the field values, and try again.
2761//
2762// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetImport
2763func (c *LexModelBuildingService) GetImport(input *GetImportInput) (*GetImportOutput, error) {
2764	req, out := c.GetImportRequest(input)
2765	return out, req.Send()
2766}
2767
2768// GetImportWithContext is the same as GetImport with the addition of
2769// the ability to pass a context and additional request options.
2770//
2771// See GetImport for details on how to use this API operation.
2772//
2773// The context must be non-nil and will be used for request cancellation. If
2774// the context is nil a panic will occur. In the future the SDK may create
2775// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2776// for more information on using Contexts.
2777func (c *LexModelBuildingService) GetImportWithContext(ctx aws.Context, input *GetImportInput, opts ...request.Option) (*GetImportOutput, error) {
2778	req, out := c.GetImportRequest(input)
2779	req.SetContext(ctx)
2780	req.ApplyOptions(opts...)
2781	return out, req.Send()
2782}
2783
2784const opGetIntent = "GetIntent"
2785
2786// GetIntentRequest generates a "aws/request.Request" representing the
2787// client's request for the GetIntent operation. The "output" return
2788// value will be populated with the request's response once the request completes
2789// successfully.
2790//
2791// Use "Send" method on the returned Request to send the API call to the service.
2792// the "output" return value is not valid until after Send returns without error.
2793//
2794// See GetIntent for more information on using the GetIntent
2795// API call, and error handling.
2796//
2797// This method is useful when you want to inject custom logic or configuration
2798// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2799//
2800//
2801//    // Example sending a request using the GetIntentRequest method.
2802//    req, resp := client.GetIntentRequest(params)
2803//
2804//    err := req.Send()
2805//    if err == nil { // resp is now filled
2806//        fmt.Println(resp)
2807//    }
2808//
2809// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntent
2810func (c *LexModelBuildingService) GetIntentRequest(input *GetIntentInput) (req *request.Request, output *GetIntentOutput) {
2811	op := &request.Operation{
2812		Name:       opGetIntent,
2813		HTTPMethod: "GET",
2814		HTTPPath:   "/intents/{name}/versions/{version}",
2815	}
2816
2817	if input == nil {
2818		input = &GetIntentInput{}
2819	}
2820
2821	output = &GetIntentOutput{}
2822	req = c.newRequest(op, input, output)
2823	return
2824}
2825
2826// GetIntent API operation for Amazon Lex Model Building Service.
2827//
2828// Returns information about an intent. In addition to the intent name, you
2829// must specify the intent version.
2830//
2831// This operation requires permissions to perform the lex:GetIntent action.
2832//
2833// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2834// with awserr.Error's Code and Message methods to get detailed information about
2835// the error.
2836//
2837// See the AWS API reference guide for Amazon Lex Model Building Service's
2838// API operation GetIntent for usage and error information.
2839//
2840// Returned Error Codes:
2841//   * ErrCodeNotFoundException "NotFoundException"
2842//   The resource specified in the request was not found. Check the resource and
2843//   try again.
2844//
2845//   * ErrCodeLimitExceededException "LimitExceededException"
2846//   The request exceeded a limit. Try your request again.
2847//
2848//   * ErrCodeInternalFailureException "InternalFailureException"
2849//   An internal Amazon Lex error occurred. Try your request again.
2850//
2851//   * ErrCodeBadRequestException "BadRequestException"
2852//   The request is not well formed. For example, a value is invalid or a required
2853//   field is missing. Check the field values, and try again.
2854//
2855// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntent
2856func (c *LexModelBuildingService) GetIntent(input *GetIntentInput) (*GetIntentOutput, error) {
2857	req, out := c.GetIntentRequest(input)
2858	return out, req.Send()
2859}
2860
2861// GetIntentWithContext is the same as GetIntent with the addition of
2862// the ability to pass a context and additional request options.
2863//
2864// See GetIntent for details on how to use this API operation.
2865//
2866// The context must be non-nil and will be used for request cancellation. If
2867// the context is nil a panic will occur. In the future the SDK may create
2868// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2869// for more information on using Contexts.
2870func (c *LexModelBuildingService) GetIntentWithContext(ctx aws.Context, input *GetIntentInput, opts ...request.Option) (*GetIntentOutput, error) {
2871	req, out := c.GetIntentRequest(input)
2872	req.SetContext(ctx)
2873	req.ApplyOptions(opts...)
2874	return out, req.Send()
2875}
2876
2877const opGetIntentVersions = "GetIntentVersions"
2878
2879// GetIntentVersionsRequest generates a "aws/request.Request" representing the
2880// client's request for the GetIntentVersions operation. The "output" return
2881// value will be populated with the request's response once the request completes
2882// successfully.
2883//
2884// Use "Send" method on the returned Request to send the API call to the service.
2885// the "output" return value is not valid until after Send returns without error.
2886//
2887// See GetIntentVersions for more information on using the GetIntentVersions
2888// API call, and error handling.
2889//
2890// This method is useful when you want to inject custom logic or configuration
2891// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2892//
2893//
2894//    // Example sending a request using the GetIntentVersionsRequest method.
2895//    req, resp := client.GetIntentVersionsRequest(params)
2896//
2897//    err := req.Send()
2898//    if err == nil { // resp is now filled
2899//        fmt.Println(resp)
2900//    }
2901//
2902// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntentVersions
2903func (c *LexModelBuildingService) GetIntentVersionsRequest(input *GetIntentVersionsInput) (req *request.Request, output *GetIntentVersionsOutput) {
2904	op := &request.Operation{
2905		Name:       opGetIntentVersions,
2906		HTTPMethod: "GET",
2907		HTTPPath:   "/intents/{name}/versions/",
2908		Paginator: &request.Paginator{
2909			InputTokens:     []string{"nextToken"},
2910			OutputTokens:    []string{"nextToken"},
2911			LimitToken:      "maxResults",
2912			TruncationToken: "",
2913		},
2914	}
2915
2916	if input == nil {
2917		input = &GetIntentVersionsInput{}
2918	}
2919
2920	output = &GetIntentVersionsOutput{}
2921	req = c.newRequest(op, input, output)
2922	return
2923}
2924
2925// GetIntentVersions API operation for Amazon Lex Model Building Service.
2926//
2927// Gets information about all of the versions of an intent.
2928//
2929// The GetIntentVersions operation returns an IntentMetadata object for each
2930// version of an intent. For example, if an intent has three numbered versions,
2931// the GetIntentVersions operation returns four IntentMetadata objects in the
2932// response, one for each numbered version and one for the $LATEST version.
2933//
2934// The GetIntentVersions operation always returns at least one version, the
2935// $LATEST version.
2936//
2937// This operation requires permissions for the lex:GetIntentVersions action.
2938//
2939// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2940// with awserr.Error's Code and Message methods to get detailed information about
2941// the error.
2942//
2943// See the AWS API reference guide for Amazon Lex Model Building Service's
2944// API operation GetIntentVersions for usage and error information.
2945//
2946// Returned Error Codes:
2947//   * ErrCodeNotFoundException "NotFoundException"
2948//   The resource specified in the request was not found. Check the resource and
2949//   try again.
2950//
2951//   * ErrCodeLimitExceededException "LimitExceededException"
2952//   The request exceeded a limit. Try your request again.
2953//
2954//   * ErrCodeInternalFailureException "InternalFailureException"
2955//   An internal Amazon Lex error occurred. Try your request again.
2956//
2957//   * ErrCodeBadRequestException "BadRequestException"
2958//   The request is not well formed. For example, a value is invalid or a required
2959//   field is missing. Check the field values, and try again.
2960//
2961// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntentVersions
2962func (c *LexModelBuildingService) GetIntentVersions(input *GetIntentVersionsInput) (*GetIntentVersionsOutput, error) {
2963	req, out := c.GetIntentVersionsRequest(input)
2964	return out, req.Send()
2965}
2966
2967// GetIntentVersionsWithContext is the same as GetIntentVersions with the addition of
2968// the ability to pass a context and additional request options.
2969//
2970// See GetIntentVersions for details on how to use this API operation.
2971//
2972// The context must be non-nil and will be used for request cancellation. If
2973// the context is nil a panic will occur. In the future the SDK may create
2974// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2975// for more information on using Contexts.
2976func (c *LexModelBuildingService) GetIntentVersionsWithContext(ctx aws.Context, input *GetIntentVersionsInput, opts ...request.Option) (*GetIntentVersionsOutput, error) {
2977	req, out := c.GetIntentVersionsRequest(input)
2978	req.SetContext(ctx)
2979	req.ApplyOptions(opts...)
2980	return out, req.Send()
2981}
2982
2983// GetIntentVersionsPages iterates over the pages of a GetIntentVersions operation,
2984// calling the "fn" function with the response data for each page. To stop
2985// iterating, return false from the fn function.
2986//
2987// See GetIntentVersions method for more information on how to use this operation.
2988//
2989// Note: This operation can generate multiple requests to a service.
2990//
2991//    // Example iterating over at most 3 pages of a GetIntentVersions operation.
2992//    pageNum := 0
2993//    err := client.GetIntentVersionsPages(params,
2994//        func(page *lexmodelbuildingservice.GetIntentVersionsOutput, lastPage bool) bool {
2995//            pageNum++
2996//            fmt.Println(page)
2997//            return pageNum <= 3
2998//        })
2999//
3000func (c *LexModelBuildingService) GetIntentVersionsPages(input *GetIntentVersionsInput, fn func(*GetIntentVersionsOutput, bool) bool) error {
3001	return c.GetIntentVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
3002}
3003
3004// GetIntentVersionsPagesWithContext same as GetIntentVersionsPages except
3005// it takes a Context and allows setting request options on the pages.
3006//
3007// The context must be non-nil and will be used for request cancellation. If
3008// the context is nil a panic will occur. In the future the SDK may create
3009// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3010// for more information on using Contexts.
3011func (c *LexModelBuildingService) GetIntentVersionsPagesWithContext(ctx aws.Context, input *GetIntentVersionsInput, fn func(*GetIntentVersionsOutput, bool) bool, opts ...request.Option) error {
3012	p := request.Pagination{
3013		NewRequest: func() (*request.Request, error) {
3014			var inCpy *GetIntentVersionsInput
3015			if input != nil {
3016				tmp := *input
3017				inCpy = &tmp
3018			}
3019			req, _ := c.GetIntentVersionsRequest(inCpy)
3020			req.SetContext(ctx)
3021			req.ApplyOptions(opts...)
3022			return req, nil
3023		},
3024	}
3025
3026	cont := true
3027	for p.Next() && cont {
3028		cont = fn(p.Page().(*GetIntentVersionsOutput), !p.HasNextPage())
3029	}
3030	return p.Err()
3031}
3032
3033const opGetIntents = "GetIntents"
3034
3035// GetIntentsRequest generates a "aws/request.Request" representing the
3036// client's request for the GetIntents operation. The "output" return
3037// value will be populated with the request's response once the request completes
3038// successfully.
3039//
3040// Use "Send" method on the returned Request to send the API call to the service.
3041// the "output" return value is not valid until after Send returns without error.
3042//
3043// See GetIntents for more information on using the GetIntents
3044// API call, and error handling.
3045//
3046// This method is useful when you want to inject custom logic or configuration
3047// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3048//
3049//
3050//    // Example sending a request using the GetIntentsRequest method.
3051//    req, resp := client.GetIntentsRequest(params)
3052//
3053//    err := req.Send()
3054//    if err == nil { // resp is now filled
3055//        fmt.Println(resp)
3056//    }
3057//
3058// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntents
3059func (c *LexModelBuildingService) GetIntentsRequest(input *GetIntentsInput) (req *request.Request, output *GetIntentsOutput) {
3060	op := &request.Operation{
3061		Name:       opGetIntents,
3062		HTTPMethod: "GET",
3063		HTTPPath:   "/intents/",
3064		Paginator: &request.Paginator{
3065			InputTokens:     []string{"nextToken"},
3066			OutputTokens:    []string{"nextToken"},
3067			LimitToken:      "maxResults",
3068			TruncationToken: "",
3069		},
3070	}
3071
3072	if input == nil {
3073		input = &GetIntentsInput{}
3074	}
3075
3076	output = &GetIntentsOutput{}
3077	req = c.newRequest(op, input, output)
3078	return
3079}
3080
3081// GetIntents API operation for Amazon Lex Model Building Service.
3082//
3083// Returns intent information as follows:
3084//
3085//    * If you specify the nameContains field, returns the $LATEST version of
3086//    all intents that contain the specified string.
3087//
3088//    * If you don't specify the nameContains field, returns information about
3089//    the $LATEST version of all intents.
3090//
3091// The operation requires permission for the lex:GetIntents action.
3092//
3093// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3094// with awserr.Error's Code and Message methods to get detailed information about
3095// the error.
3096//
3097// See the AWS API reference guide for Amazon Lex Model Building Service's
3098// API operation GetIntents for usage and error information.
3099//
3100// Returned Error Codes:
3101//   * ErrCodeNotFoundException "NotFoundException"
3102//   The resource specified in the request was not found. Check the resource and
3103//   try again.
3104//
3105//   * ErrCodeLimitExceededException "LimitExceededException"
3106//   The request exceeded a limit. Try your request again.
3107//
3108//   * ErrCodeInternalFailureException "InternalFailureException"
3109//   An internal Amazon Lex error occurred. Try your request again.
3110//
3111//   * ErrCodeBadRequestException "BadRequestException"
3112//   The request is not well formed. For example, a value is invalid or a required
3113//   field is missing. Check the field values, and try again.
3114//
3115// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetIntents
3116func (c *LexModelBuildingService) GetIntents(input *GetIntentsInput) (*GetIntentsOutput, error) {
3117	req, out := c.GetIntentsRequest(input)
3118	return out, req.Send()
3119}
3120
3121// GetIntentsWithContext is the same as GetIntents with the addition of
3122// the ability to pass a context and additional request options.
3123//
3124// See GetIntents for details on how to use this API operation.
3125//
3126// The context must be non-nil and will be used for request cancellation. If
3127// the context is nil a panic will occur. In the future the SDK may create
3128// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3129// for more information on using Contexts.
3130func (c *LexModelBuildingService) GetIntentsWithContext(ctx aws.Context, input *GetIntentsInput, opts ...request.Option) (*GetIntentsOutput, error) {
3131	req, out := c.GetIntentsRequest(input)
3132	req.SetContext(ctx)
3133	req.ApplyOptions(opts...)
3134	return out, req.Send()
3135}
3136
3137// GetIntentsPages iterates over the pages of a GetIntents operation,
3138// calling the "fn" function with the response data for each page. To stop
3139// iterating, return false from the fn function.
3140//
3141// See GetIntents method for more information on how to use this operation.
3142//
3143// Note: This operation can generate multiple requests to a service.
3144//
3145//    // Example iterating over at most 3 pages of a GetIntents operation.
3146//    pageNum := 0
3147//    err := client.GetIntentsPages(params,
3148//        func(page *lexmodelbuildingservice.GetIntentsOutput, lastPage bool) bool {
3149//            pageNum++
3150//            fmt.Println(page)
3151//            return pageNum <= 3
3152//        })
3153//
3154func (c *LexModelBuildingService) GetIntentsPages(input *GetIntentsInput, fn func(*GetIntentsOutput, bool) bool) error {
3155	return c.GetIntentsPagesWithContext(aws.BackgroundContext(), input, fn)
3156}
3157
3158// GetIntentsPagesWithContext same as GetIntentsPages except
3159// it takes a Context and allows setting request options on the pages.
3160//
3161// The context must be non-nil and will be used for request cancellation. If
3162// the context is nil a panic will occur. In the future the SDK may create
3163// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3164// for more information on using Contexts.
3165func (c *LexModelBuildingService) GetIntentsPagesWithContext(ctx aws.Context, input *GetIntentsInput, fn func(*GetIntentsOutput, bool) bool, opts ...request.Option) error {
3166	p := request.Pagination{
3167		NewRequest: func() (*request.Request, error) {
3168			var inCpy *GetIntentsInput
3169			if input != nil {
3170				tmp := *input
3171				inCpy = &tmp
3172			}
3173			req, _ := c.GetIntentsRequest(inCpy)
3174			req.SetContext(ctx)
3175			req.ApplyOptions(opts...)
3176			return req, nil
3177		},
3178	}
3179
3180	cont := true
3181	for p.Next() && cont {
3182		cont = fn(p.Page().(*GetIntentsOutput), !p.HasNextPage())
3183	}
3184	return p.Err()
3185}
3186
3187const opGetSlotType = "GetSlotType"
3188
3189// GetSlotTypeRequest generates a "aws/request.Request" representing the
3190// client's request for the GetSlotType operation. The "output" return
3191// value will be populated with the request's response once the request completes
3192// successfully.
3193//
3194// Use "Send" method on the returned Request to send the API call to the service.
3195// the "output" return value is not valid until after Send returns without error.
3196//
3197// See GetSlotType for more information on using the GetSlotType
3198// API call, and error handling.
3199//
3200// This method is useful when you want to inject custom logic or configuration
3201// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3202//
3203//
3204//    // Example sending a request using the GetSlotTypeRequest method.
3205//    req, resp := client.GetSlotTypeRequest(params)
3206//
3207//    err := req.Send()
3208//    if err == nil { // resp is now filled
3209//        fmt.Println(resp)
3210//    }
3211//
3212// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotType
3213func (c *LexModelBuildingService) GetSlotTypeRequest(input *GetSlotTypeInput) (req *request.Request, output *GetSlotTypeOutput) {
3214	op := &request.Operation{
3215		Name:       opGetSlotType,
3216		HTTPMethod: "GET",
3217		HTTPPath:   "/slottypes/{name}/versions/{version}",
3218	}
3219
3220	if input == nil {
3221		input = &GetSlotTypeInput{}
3222	}
3223
3224	output = &GetSlotTypeOutput{}
3225	req = c.newRequest(op, input, output)
3226	return
3227}
3228
3229// GetSlotType API operation for Amazon Lex Model Building Service.
3230//
3231// Returns information about a specific version of a slot type. In addition
3232// to specifying the slot type name, you must specify the slot type version.
3233//
3234// This operation requires permissions for the lex:GetSlotType action.
3235//
3236// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3237// with awserr.Error's Code and Message methods to get detailed information about
3238// the error.
3239//
3240// See the AWS API reference guide for Amazon Lex Model Building Service's
3241// API operation GetSlotType for usage and error information.
3242//
3243// Returned Error Codes:
3244//   * ErrCodeNotFoundException "NotFoundException"
3245//   The resource specified in the request was not found. Check the resource and
3246//   try again.
3247//
3248//   * ErrCodeLimitExceededException "LimitExceededException"
3249//   The request exceeded a limit. Try your request again.
3250//
3251//   * ErrCodeInternalFailureException "InternalFailureException"
3252//   An internal Amazon Lex error occurred. Try your request again.
3253//
3254//   * ErrCodeBadRequestException "BadRequestException"
3255//   The request is not well formed. For example, a value is invalid or a required
3256//   field is missing. Check the field values, and try again.
3257//
3258// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotType
3259func (c *LexModelBuildingService) GetSlotType(input *GetSlotTypeInput) (*GetSlotTypeOutput, error) {
3260	req, out := c.GetSlotTypeRequest(input)
3261	return out, req.Send()
3262}
3263
3264// GetSlotTypeWithContext is the same as GetSlotType with the addition of
3265// the ability to pass a context and additional request options.
3266//
3267// See GetSlotType for details on how to use this API operation.
3268//
3269// The context must be non-nil and will be used for request cancellation. If
3270// the context is nil a panic will occur. In the future the SDK may create
3271// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3272// for more information on using Contexts.
3273func (c *LexModelBuildingService) GetSlotTypeWithContext(ctx aws.Context, input *GetSlotTypeInput, opts ...request.Option) (*GetSlotTypeOutput, error) {
3274	req, out := c.GetSlotTypeRequest(input)
3275	req.SetContext(ctx)
3276	req.ApplyOptions(opts...)
3277	return out, req.Send()
3278}
3279
3280const opGetSlotTypeVersions = "GetSlotTypeVersions"
3281
3282// GetSlotTypeVersionsRequest generates a "aws/request.Request" representing the
3283// client's request for the GetSlotTypeVersions operation. The "output" return
3284// value will be populated with the request's response once the request completes
3285// successfully.
3286//
3287// Use "Send" method on the returned Request to send the API call to the service.
3288// the "output" return value is not valid until after Send returns without error.
3289//
3290// See GetSlotTypeVersions for more information on using the GetSlotTypeVersions
3291// API call, and error handling.
3292//
3293// This method is useful when you want to inject custom logic or configuration
3294// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3295//
3296//
3297//    // Example sending a request using the GetSlotTypeVersionsRequest method.
3298//    req, resp := client.GetSlotTypeVersionsRequest(params)
3299//
3300//    err := req.Send()
3301//    if err == nil { // resp is now filled
3302//        fmt.Println(resp)
3303//    }
3304//
3305// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypeVersions
3306func (c *LexModelBuildingService) GetSlotTypeVersionsRequest(input *GetSlotTypeVersionsInput) (req *request.Request, output *GetSlotTypeVersionsOutput) {
3307	op := &request.Operation{
3308		Name:       opGetSlotTypeVersions,
3309		HTTPMethod: "GET",
3310		HTTPPath:   "/slottypes/{name}/versions/",
3311		Paginator: &request.Paginator{
3312			InputTokens:     []string{"nextToken"},
3313			OutputTokens:    []string{"nextToken"},
3314			LimitToken:      "maxResults",
3315			TruncationToken: "",
3316		},
3317	}
3318
3319	if input == nil {
3320		input = &GetSlotTypeVersionsInput{}
3321	}
3322
3323	output = &GetSlotTypeVersionsOutput{}
3324	req = c.newRequest(op, input, output)
3325	return
3326}
3327
3328// GetSlotTypeVersions API operation for Amazon Lex Model Building Service.
3329//
3330// Gets information about all versions of a slot type.
3331//
3332// The GetSlotTypeVersions operation returns a SlotTypeMetadata object for each
3333// version of a slot type. For example, if a slot type has three numbered versions,
3334// the GetSlotTypeVersions operation returns four SlotTypeMetadata objects in
3335// the response, one for each numbered version and one for the $LATEST version.
3336//
3337// The GetSlotTypeVersions operation always returns at least one version, the
3338// $LATEST version.
3339//
3340// This operation requires permissions for the lex:GetSlotTypeVersions action.
3341//
3342// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3343// with awserr.Error's Code and Message methods to get detailed information about
3344// the error.
3345//
3346// See the AWS API reference guide for Amazon Lex Model Building Service's
3347// API operation GetSlotTypeVersions for usage and error information.
3348//
3349// Returned Error Codes:
3350//   * ErrCodeNotFoundException "NotFoundException"
3351//   The resource specified in the request was not found. Check the resource and
3352//   try again.
3353//
3354//   * ErrCodeLimitExceededException "LimitExceededException"
3355//   The request exceeded a limit. Try your request again.
3356//
3357//   * ErrCodeInternalFailureException "InternalFailureException"
3358//   An internal Amazon Lex error occurred. Try your request again.
3359//
3360//   * ErrCodeBadRequestException "BadRequestException"
3361//   The request is not well formed. For example, a value is invalid or a required
3362//   field is missing. Check the field values, and try again.
3363//
3364// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypeVersions
3365func (c *LexModelBuildingService) GetSlotTypeVersions(input *GetSlotTypeVersionsInput) (*GetSlotTypeVersionsOutput, error) {
3366	req, out := c.GetSlotTypeVersionsRequest(input)
3367	return out, req.Send()
3368}
3369
3370// GetSlotTypeVersionsWithContext is the same as GetSlotTypeVersions with the addition of
3371// the ability to pass a context and additional request options.
3372//
3373// See GetSlotTypeVersions for details on how to use this API operation.
3374//
3375// The context must be non-nil and will be used for request cancellation. If
3376// the context is nil a panic will occur. In the future the SDK may create
3377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3378// for more information on using Contexts.
3379func (c *LexModelBuildingService) GetSlotTypeVersionsWithContext(ctx aws.Context, input *GetSlotTypeVersionsInput, opts ...request.Option) (*GetSlotTypeVersionsOutput, error) {
3380	req, out := c.GetSlotTypeVersionsRequest(input)
3381	req.SetContext(ctx)
3382	req.ApplyOptions(opts...)
3383	return out, req.Send()
3384}
3385
3386// GetSlotTypeVersionsPages iterates over the pages of a GetSlotTypeVersions operation,
3387// calling the "fn" function with the response data for each page. To stop
3388// iterating, return false from the fn function.
3389//
3390// See GetSlotTypeVersions method for more information on how to use this operation.
3391//
3392// Note: This operation can generate multiple requests to a service.
3393//
3394//    // Example iterating over at most 3 pages of a GetSlotTypeVersions operation.
3395//    pageNum := 0
3396//    err := client.GetSlotTypeVersionsPages(params,
3397//        func(page *lexmodelbuildingservice.GetSlotTypeVersionsOutput, lastPage bool) bool {
3398//            pageNum++
3399//            fmt.Println(page)
3400//            return pageNum <= 3
3401//        })
3402//
3403func (c *LexModelBuildingService) GetSlotTypeVersionsPages(input *GetSlotTypeVersionsInput, fn func(*GetSlotTypeVersionsOutput, bool) bool) error {
3404	return c.GetSlotTypeVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
3405}
3406
3407// GetSlotTypeVersionsPagesWithContext same as GetSlotTypeVersionsPages except
3408// it takes a Context and allows setting request options on the pages.
3409//
3410// The context must be non-nil and will be used for request cancellation. If
3411// the context is nil a panic will occur. In the future the SDK may create
3412// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3413// for more information on using Contexts.
3414func (c *LexModelBuildingService) GetSlotTypeVersionsPagesWithContext(ctx aws.Context, input *GetSlotTypeVersionsInput, fn func(*GetSlotTypeVersionsOutput, bool) bool, opts ...request.Option) error {
3415	p := request.Pagination{
3416		NewRequest: func() (*request.Request, error) {
3417			var inCpy *GetSlotTypeVersionsInput
3418			if input != nil {
3419				tmp := *input
3420				inCpy = &tmp
3421			}
3422			req, _ := c.GetSlotTypeVersionsRequest(inCpy)
3423			req.SetContext(ctx)
3424			req.ApplyOptions(opts...)
3425			return req, nil
3426		},
3427	}
3428
3429	cont := true
3430	for p.Next() && cont {
3431		cont = fn(p.Page().(*GetSlotTypeVersionsOutput), !p.HasNextPage())
3432	}
3433	return p.Err()
3434}
3435
3436const opGetSlotTypes = "GetSlotTypes"
3437
3438// GetSlotTypesRequest generates a "aws/request.Request" representing the
3439// client's request for the GetSlotTypes operation. The "output" return
3440// value will be populated with the request's response once the request completes
3441// successfully.
3442//
3443// Use "Send" method on the returned Request to send the API call to the service.
3444// the "output" return value is not valid until after Send returns without error.
3445//
3446// See GetSlotTypes for more information on using the GetSlotTypes
3447// API call, and error handling.
3448//
3449// This method is useful when you want to inject custom logic or configuration
3450// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3451//
3452//
3453//    // Example sending a request using the GetSlotTypesRequest method.
3454//    req, resp := client.GetSlotTypesRequest(params)
3455//
3456//    err := req.Send()
3457//    if err == nil { // resp is now filled
3458//        fmt.Println(resp)
3459//    }
3460//
3461// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypes
3462func (c *LexModelBuildingService) GetSlotTypesRequest(input *GetSlotTypesInput) (req *request.Request, output *GetSlotTypesOutput) {
3463	op := &request.Operation{
3464		Name:       opGetSlotTypes,
3465		HTTPMethod: "GET",
3466		HTTPPath:   "/slottypes/",
3467		Paginator: &request.Paginator{
3468			InputTokens:     []string{"nextToken"},
3469			OutputTokens:    []string{"nextToken"},
3470			LimitToken:      "maxResults",
3471			TruncationToken: "",
3472		},
3473	}
3474
3475	if input == nil {
3476		input = &GetSlotTypesInput{}
3477	}
3478
3479	output = &GetSlotTypesOutput{}
3480	req = c.newRequest(op, input, output)
3481	return
3482}
3483
3484// GetSlotTypes API operation for Amazon Lex Model Building Service.
3485//
3486// Returns slot type information as follows:
3487//
3488//    * If you specify the nameContains field, returns the $LATEST version of
3489//    all slot types that contain the specified string.
3490//
3491//    * If you don't specify the nameContains field, returns information about
3492//    the $LATEST version of all slot types.
3493//
3494// The operation requires permission for the lex:GetSlotTypes action.
3495//
3496// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3497// with awserr.Error's Code and Message methods to get detailed information about
3498// the error.
3499//
3500// See the AWS API reference guide for Amazon Lex Model Building Service's
3501// API operation GetSlotTypes for usage and error information.
3502//
3503// Returned Error Codes:
3504//   * ErrCodeNotFoundException "NotFoundException"
3505//   The resource specified in the request was not found. Check the resource and
3506//   try again.
3507//
3508//   * ErrCodeLimitExceededException "LimitExceededException"
3509//   The request exceeded a limit. Try your request again.
3510//
3511//   * ErrCodeInternalFailureException "InternalFailureException"
3512//   An internal Amazon Lex error occurred. Try your request again.
3513//
3514//   * ErrCodeBadRequestException "BadRequestException"
3515//   The request is not well formed. For example, a value is invalid or a required
3516//   field is missing. Check the field values, and try again.
3517//
3518// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetSlotTypes
3519func (c *LexModelBuildingService) GetSlotTypes(input *GetSlotTypesInput) (*GetSlotTypesOutput, error) {
3520	req, out := c.GetSlotTypesRequest(input)
3521	return out, req.Send()
3522}
3523
3524// GetSlotTypesWithContext is the same as GetSlotTypes with the addition of
3525// the ability to pass a context and additional request options.
3526//
3527// See GetSlotTypes for details on how to use this API operation.
3528//
3529// The context must be non-nil and will be used for request cancellation. If
3530// the context is nil a panic will occur. In the future the SDK may create
3531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3532// for more information on using Contexts.
3533func (c *LexModelBuildingService) GetSlotTypesWithContext(ctx aws.Context, input *GetSlotTypesInput, opts ...request.Option) (*GetSlotTypesOutput, error) {
3534	req, out := c.GetSlotTypesRequest(input)
3535	req.SetContext(ctx)
3536	req.ApplyOptions(opts...)
3537	return out, req.Send()
3538}
3539
3540// GetSlotTypesPages iterates over the pages of a GetSlotTypes operation,
3541// calling the "fn" function with the response data for each page. To stop
3542// iterating, return false from the fn function.
3543//
3544// See GetSlotTypes method for more information on how to use this operation.
3545//
3546// Note: This operation can generate multiple requests to a service.
3547//
3548//    // Example iterating over at most 3 pages of a GetSlotTypes operation.
3549//    pageNum := 0
3550//    err := client.GetSlotTypesPages(params,
3551//        func(page *lexmodelbuildingservice.GetSlotTypesOutput, lastPage bool) bool {
3552//            pageNum++
3553//            fmt.Println(page)
3554//            return pageNum <= 3
3555//        })
3556//
3557func (c *LexModelBuildingService) GetSlotTypesPages(input *GetSlotTypesInput, fn func(*GetSlotTypesOutput, bool) bool) error {
3558	return c.GetSlotTypesPagesWithContext(aws.BackgroundContext(), input, fn)
3559}
3560
3561// GetSlotTypesPagesWithContext same as GetSlotTypesPages except
3562// it takes a Context and allows setting request options on the pages.
3563//
3564// The context must be non-nil and will be used for request cancellation. If
3565// the context is nil a panic will occur. In the future the SDK may create
3566// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3567// for more information on using Contexts.
3568func (c *LexModelBuildingService) GetSlotTypesPagesWithContext(ctx aws.Context, input *GetSlotTypesInput, fn func(*GetSlotTypesOutput, bool) bool, opts ...request.Option) error {
3569	p := request.Pagination{
3570		NewRequest: func() (*request.Request, error) {
3571			var inCpy *GetSlotTypesInput
3572			if input != nil {
3573				tmp := *input
3574				inCpy = &tmp
3575			}
3576			req, _ := c.GetSlotTypesRequest(inCpy)
3577			req.SetContext(ctx)
3578			req.ApplyOptions(opts...)
3579			return req, nil
3580		},
3581	}
3582
3583	cont := true
3584	for p.Next() && cont {
3585		cont = fn(p.Page().(*GetSlotTypesOutput), !p.HasNextPage())
3586	}
3587	return p.Err()
3588}
3589
3590const opGetUtterancesView = "GetUtterancesView"
3591
3592// GetUtterancesViewRequest generates a "aws/request.Request" representing the
3593// client's request for the GetUtterancesView operation. The "output" return
3594// value will be populated with the request's response once the request completes
3595// successfully.
3596//
3597// Use "Send" method on the returned Request to send the API call to the service.
3598// the "output" return value is not valid until after Send returns without error.
3599//
3600// See GetUtterancesView for more information on using the GetUtterancesView
3601// API call, and error handling.
3602//
3603// This method is useful when you want to inject custom logic or configuration
3604// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3605//
3606//
3607//    // Example sending a request using the GetUtterancesViewRequest method.
3608//    req, resp := client.GetUtterancesViewRequest(params)
3609//
3610//    err := req.Send()
3611//    if err == nil { // resp is now filled
3612//        fmt.Println(resp)
3613//    }
3614//
3615// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetUtterancesView
3616func (c *LexModelBuildingService) GetUtterancesViewRequest(input *GetUtterancesViewInput) (req *request.Request, output *GetUtterancesViewOutput) {
3617	op := &request.Operation{
3618		Name:       opGetUtterancesView,
3619		HTTPMethod: "GET",
3620		HTTPPath:   "/bots/{botname}/utterances?view=aggregation",
3621	}
3622
3623	if input == nil {
3624		input = &GetUtterancesViewInput{}
3625	}
3626
3627	output = &GetUtterancesViewOutput{}
3628	req = c.newRequest(op, input, output)
3629	return
3630}
3631
3632// GetUtterancesView API operation for Amazon Lex Model Building Service.
3633//
3634// Use the GetUtterancesView operation to get information about the utterances
3635// that your users have made to your bot. You can use this list to tune the
3636// utterances that your bot responds to.
3637//
3638// For example, say that you have created a bot to order flowers. After your
3639// users have used your bot for a while, use the GetUtterancesView operation
3640// to see the requests that they have made and whether they have been successful.
3641// You might find that the utterance "I want flowers" is not being recognized.
3642// You could add this utterance to the OrderFlowers intent so that your bot
3643// recognizes that utterance.
3644//
3645// After you publish a new version of a bot, you can get information about the
3646// old version and the new so that you can compare the performance across the
3647// two versions.
3648//
3649// Utterance statistics are generated once a day. Data is available for the
3650// last 15 days. You can request information for up to 5 versions in each request.
3651// The response contains information about a maximum of 100 utterances for each
3652// version.
3653//
3654// This operation requires permissions for the lex:GetUtterancesView action.
3655//
3656// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3657// with awserr.Error's Code and Message methods to get detailed information about
3658// the error.
3659//
3660// See the AWS API reference guide for Amazon Lex Model Building Service's
3661// API operation GetUtterancesView for usage and error information.
3662//
3663// Returned Error Codes:
3664//   * ErrCodeLimitExceededException "LimitExceededException"
3665//   The request exceeded a limit. Try your request again.
3666//
3667//   * ErrCodeInternalFailureException "InternalFailureException"
3668//   An internal Amazon Lex error occurred. Try your request again.
3669//
3670//   * ErrCodeBadRequestException "BadRequestException"
3671//   The request is not well formed. For example, a value is invalid or a required
3672//   field is missing. Check the field values, and try again.
3673//
3674// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/GetUtterancesView
3675func (c *LexModelBuildingService) GetUtterancesView(input *GetUtterancesViewInput) (*GetUtterancesViewOutput, error) {
3676	req, out := c.GetUtterancesViewRequest(input)
3677	return out, req.Send()
3678}
3679
3680// GetUtterancesViewWithContext is the same as GetUtterancesView with the addition of
3681// the ability to pass a context and additional request options.
3682//
3683// See GetUtterancesView for details on how to use this API operation.
3684//
3685// The context must be non-nil and will be used for request cancellation. If
3686// the context is nil a panic will occur. In the future the SDK may create
3687// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3688// for more information on using Contexts.
3689func (c *LexModelBuildingService) GetUtterancesViewWithContext(ctx aws.Context, input *GetUtterancesViewInput, opts ...request.Option) (*GetUtterancesViewOutput, error) {
3690	req, out := c.GetUtterancesViewRequest(input)
3691	req.SetContext(ctx)
3692	req.ApplyOptions(opts...)
3693	return out, req.Send()
3694}
3695
3696const opPutBot = "PutBot"
3697
3698// PutBotRequest generates a "aws/request.Request" representing the
3699// client's request for the PutBot operation. The "output" return
3700// value will be populated with the request's response once the request completes
3701// successfully.
3702//
3703// Use "Send" method on the returned Request to send the API call to the service.
3704// the "output" return value is not valid until after Send returns without error.
3705//
3706// See PutBot for more information on using the PutBot
3707// API call, and error handling.
3708//
3709// This method is useful when you want to inject custom logic or configuration
3710// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3711//
3712//
3713//    // Example sending a request using the PutBotRequest method.
3714//    req, resp := client.PutBotRequest(params)
3715//
3716//    err := req.Send()
3717//    if err == nil { // resp is now filled
3718//        fmt.Println(resp)
3719//    }
3720//
3721// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBot
3722func (c *LexModelBuildingService) PutBotRequest(input *PutBotInput) (req *request.Request, output *PutBotOutput) {
3723	op := &request.Operation{
3724		Name:       opPutBot,
3725		HTTPMethod: "PUT",
3726		HTTPPath:   "/bots/{name}/versions/$LATEST",
3727	}
3728
3729	if input == nil {
3730		input = &PutBotInput{}
3731	}
3732
3733	output = &PutBotOutput{}
3734	req = c.newRequest(op, input, output)
3735	return
3736}
3737
3738// PutBot API operation for Amazon Lex Model Building Service.
3739//
3740// Creates an Amazon Lex conversational bot or replaces an existing bot. When
3741// you create or update a bot you are only required to specify a name, a locale,
3742// and whether the bot is directed toward children under age 13. You can use
3743// this to add intents later, or to remove intents from an existing bot. When
3744// you create a bot with the minimum information, the bot is created or updated
3745// but Amazon Lex returns the response FAILED. You can build the bot after you
3746// add one or more intents. For more information about Amazon Lex bots, see
3747// how-it-works.
3748//
3749// If you specify the name of an existing bot, the fields in the request replace
3750// the existing values in the $LATEST version of the bot. Amazon Lex removes
3751// any fields that you don't provide values for in the request, except for the
3752// idleTTLInSeconds and privacySettings fields, which are set to their default
3753// values. If you don't specify values for required fields, Amazon Lex throws
3754// an exception.
3755//
3756// This operation requires permissions for the lex:PutBot action. For more information,
3757// see auth-and-access-control.
3758//
3759// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3760// with awserr.Error's Code and Message methods to get detailed information about
3761// the error.
3762//
3763// See the AWS API reference guide for Amazon Lex Model Building Service's
3764// API operation PutBot for usage and error information.
3765//
3766// Returned Error Codes:
3767//   * ErrCodeConflictException "ConflictException"
3768//   There was a conflict processing the request. Try your request again.
3769//
3770//   * ErrCodeLimitExceededException "LimitExceededException"
3771//   The request exceeded a limit. Try your request again.
3772//
3773//   * ErrCodeInternalFailureException "InternalFailureException"
3774//   An internal Amazon Lex error occurred. Try your request again.
3775//
3776//   * ErrCodeBadRequestException "BadRequestException"
3777//   The request is not well formed. For example, a value is invalid or a required
3778//   field is missing. Check the field values, and try again.
3779//
3780//   * ErrCodePreconditionFailedException "PreconditionFailedException"
3781//   The checksum of the resource that you are trying to change does not match
3782//   the checksum in the request. Check the resource's checksum and try again.
3783//
3784// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBot
3785func (c *LexModelBuildingService) PutBot(input *PutBotInput) (*PutBotOutput, error) {
3786	req, out := c.PutBotRequest(input)
3787	return out, req.Send()
3788}
3789
3790// PutBotWithContext is the same as PutBot with the addition of
3791// the ability to pass a context and additional request options.
3792//
3793// See PutBot for details on how to use this API operation.
3794//
3795// The context must be non-nil and will be used for request cancellation. If
3796// the context is nil a panic will occur. In the future the SDK may create
3797// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3798// for more information on using Contexts.
3799func (c *LexModelBuildingService) PutBotWithContext(ctx aws.Context, input *PutBotInput, opts ...request.Option) (*PutBotOutput, error) {
3800	req, out := c.PutBotRequest(input)
3801	req.SetContext(ctx)
3802	req.ApplyOptions(opts...)
3803	return out, req.Send()
3804}
3805
3806const opPutBotAlias = "PutBotAlias"
3807
3808// PutBotAliasRequest generates a "aws/request.Request" representing the
3809// client's request for the PutBotAlias operation. The "output" return
3810// value will be populated with the request's response once the request completes
3811// successfully.
3812//
3813// Use "Send" method on the returned Request to send the API call to the service.
3814// the "output" return value is not valid until after Send returns without error.
3815//
3816// See PutBotAlias for more information on using the PutBotAlias
3817// API call, and error handling.
3818//
3819// This method is useful when you want to inject custom logic or configuration
3820// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3821//
3822//
3823//    // Example sending a request using the PutBotAliasRequest method.
3824//    req, resp := client.PutBotAliasRequest(params)
3825//
3826//    err := req.Send()
3827//    if err == nil { // resp is now filled
3828//        fmt.Println(resp)
3829//    }
3830//
3831// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBotAlias
3832func (c *LexModelBuildingService) PutBotAliasRequest(input *PutBotAliasInput) (req *request.Request, output *PutBotAliasOutput) {
3833	op := &request.Operation{
3834		Name:       opPutBotAlias,
3835		HTTPMethod: "PUT",
3836		HTTPPath:   "/bots/{botName}/aliases/{name}",
3837	}
3838
3839	if input == nil {
3840		input = &PutBotAliasInput{}
3841	}
3842
3843	output = &PutBotAliasOutput{}
3844	req = c.newRequest(op, input, output)
3845	return
3846}
3847
3848// PutBotAlias API operation for Amazon Lex Model Building Service.
3849//
3850// Creates an alias for the specified version of the bot or replaces an alias
3851// for the specified bot. To change the version of the bot that the alias points
3852// to, replace the alias. For more information about aliases, see versioning-aliases.
3853//
3854// This operation requires permissions for the lex:PutBotAlias action.
3855//
3856// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3857// with awserr.Error's Code and Message methods to get detailed information about
3858// the error.
3859//
3860// See the AWS API reference guide for Amazon Lex Model Building Service's
3861// API operation PutBotAlias for usage and error information.
3862//
3863// Returned Error Codes:
3864//   * ErrCodeConflictException "ConflictException"
3865//   There was a conflict processing the request. Try your request again.
3866//
3867//   * ErrCodeLimitExceededException "LimitExceededException"
3868//   The request exceeded a limit. Try your request again.
3869//
3870//   * ErrCodeInternalFailureException "InternalFailureException"
3871//   An internal Amazon Lex error occurred. Try your request again.
3872//
3873//   * ErrCodeBadRequestException "BadRequestException"
3874//   The request is not well formed. For example, a value is invalid or a required
3875//   field is missing. Check the field values, and try again.
3876//
3877//   * ErrCodePreconditionFailedException "PreconditionFailedException"
3878//   The checksum of the resource that you are trying to change does not match
3879//   the checksum in the request. Check the resource's checksum and try again.
3880//
3881// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutBotAlias
3882func (c *LexModelBuildingService) PutBotAlias(input *PutBotAliasInput) (*PutBotAliasOutput, error) {
3883	req, out := c.PutBotAliasRequest(input)
3884	return out, req.Send()
3885}
3886
3887// PutBotAliasWithContext is the same as PutBotAlias with the addition of
3888// the ability to pass a context and additional request options.
3889//
3890// See PutBotAlias for details on how to use this API operation.
3891//
3892// The context must be non-nil and will be used for request cancellation. If
3893// the context is nil a panic will occur. In the future the SDK may create
3894// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3895// for more information on using Contexts.
3896func (c *LexModelBuildingService) PutBotAliasWithContext(ctx aws.Context, input *PutBotAliasInput, opts ...request.Option) (*PutBotAliasOutput, error) {
3897	req, out := c.PutBotAliasRequest(input)
3898	req.SetContext(ctx)
3899	req.ApplyOptions(opts...)
3900	return out, req.Send()
3901}
3902
3903const opPutIntent = "PutIntent"
3904
3905// PutIntentRequest generates a "aws/request.Request" representing the
3906// client's request for the PutIntent operation. The "output" return
3907// value will be populated with the request's response once the request completes
3908// successfully.
3909//
3910// Use "Send" method on the returned Request to send the API call to the service.
3911// the "output" return value is not valid until after Send returns without error.
3912//
3913// See PutIntent for more information on using the PutIntent
3914// API call, and error handling.
3915//
3916// This method is useful when you want to inject custom logic or configuration
3917// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3918//
3919//
3920//    // Example sending a request using the PutIntentRequest method.
3921//    req, resp := client.PutIntentRequest(params)
3922//
3923//    err := req.Send()
3924//    if err == nil { // resp is now filled
3925//        fmt.Println(resp)
3926//    }
3927//
3928// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutIntent
3929func (c *LexModelBuildingService) PutIntentRequest(input *PutIntentInput) (req *request.Request, output *PutIntentOutput) {
3930	op := &request.Operation{
3931		Name:       opPutIntent,
3932		HTTPMethod: "PUT",
3933		HTTPPath:   "/intents/{name}/versions/$LATEST",
3934	}
3935
3936	if input == nil {
3937		input = &PutIntentInput{}
3938	}
3939
3940	output = &PutIntentOutput{}
3941	req = c.newRequest(op, input, output)
3942	return
3943}
3944
3945// PutIntent API operation for Amazon Lex Model Building Service.
3946//
3947// Creates an intent or replaces an existing intent.
3948//
3949// To define the interaction between the user and your bot, you use one or more
3950// intents. For a pizza ordering bot, for example, you would create an OrderPizza
3951// intent.
3952//
3953// To create an intent or replace an existing intent, you must provide the following:
3954//
3955//    * Intent name. For example, OrderPizza.
3956//
3957//    * Sample utterances. For example, "Can I order a pizza, please." and "I
3958//    want to order a pizza."
3959//
3960//    * Information to be gathered. You specify slot types for the information
3961//    that your bot will request from the user. You can specify standard slot
3962//    types, such as a date or a time, or custom slot types such as the size
3963//    and crust of a pizza.
3964//
3965//    * How the intent will be fulfilled. You can provide a Lambda function
3966//    or configure the intent to return the intent information to the client
3967//    application. If you use a Lambda function, when all of the intent information
3968//    is available, Amazon Lex invokes your Lambda function. If you configure
3969//    your intent to return the intent information to the client application.
3970//
3971// You can specify other optional information in the request, such as:
3972//
3973//    * A confirmation prompt to ask the user to confirm an intent. For example,
3974//    "Shall I order your pizza?"
3975//
3976//    * A conclusion statement to send to the user after the intent has been
3977//    fulfilled. For example, "I placed your pizza order."
3978//
3979//    * A follow-up prompt that asks the user for additional activity. For example,
3980//    asking "Do you want to order a drink with your pizza?"
3981//
3982// If you specify an existing intent name to update the intent, Amazon Lex replaces
3983// the values in the $LATEST version of the intent with the values in the request.
3984// Amazon Lex removes fields that you don't provide in the request. If you don't
3985// specify the required fields, Amazon Lex throws an exception. When you update
3986// the $LATEST version of an intent, the status field of any bot that uses the
3987// $LATEST version of the intent is set to NOT_BUILT.
3988//
3989// For more information, see how-it-works.
3990//
3991// This operation requires permissions for the lex:PutIntent action.
3992//
3993// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3994// with awserr.Error's Code and Message methods to get detailed information about
3995// the error.
3996//
3997// See the AWS API reference guide for Amazon Lex Model Building Service's
3998// API operation PutIntent for usage and error information.
3999//
4000// Returned Error Codes:
4001//   * ErrCodeConflictException "ConflictException"
4002//   There was a conflict processing the request. Try your request again.
4003//
4004//   * ErrCodeLimitExceededException "LimitExceededException"
4005//   The request exceeded a limit. Try your request again.
4006//
4007//   * ErrCodeInternalFailureException "InternalFailureException"
4008//   An internal Amazon Lex error occurred. Try your request again.
4009//
4010//   * ErrCodeBadRequestException "BadRequestException"
4011//   The request is not well formed. For example, a value is invalid or a required
4012//   field is missing. Check the field values, and try again.
4013//
4014//   * ErrCodePreconditionFailedException "PreconditionFailedException"
4015//   The checksum of the resource that you are trying to change does not match
4016//   the checksum in the request. Check the resource's checksum and try again.
4017//
4018// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutIntent
4019func (c *LexModelBuildingService) PutIntent(input *PutIntentInput) (*PutIntentOutput, error) {
4020	req, out := c.PutIntentRequest(input)
4021	return out, req.Send()
4022}
4023
4024// PutIntentWithContext is the same as PutIntent with the addition of
4025// the ability to pass a context and additional request options.
4026//
4027// See PutIntent for details on how to use this API operation.
4028//
4029// The context must be non-nil and will be used for request cancellation. If
4030// the context is nil a panic will occur. In the future the SDK may create
4031// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4032// for more information on using Contexts.
4033func (c *LexModelBuildingService) PutIntentWithContext(ctx aws.Context, input *PutIntentInput, opts ...request.Option) (*PutIntentOutput, error) {
4034	req, out := c.PutIntentRequest(input)
4035	req.SetContext(ctx)
4036	req.ApplyOptions(opts...)
4037	return out, req.Send()
4038}
4039
4040const opPutSlotType = "PutSlotType"
4041
4042// PutSlotTypeRequest generates a "aws/request.Request" representing the
4043// client's request for the PutSlotType operation. The "output" return
4044// value will be populated with the request's response once the request completes
4045// successfully.
4046//
4047// Use "Send" method on the returned Request to send the API call to the service.
4048// the "output" return value is not valid until after Send returns without error.
4049//
4050// See PutSlotType for more information on using the PutSlotType
4051// API call, and error handling.
4052//
4053// This method is useful when you want to inject custom logic or configuration
4054// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4055//
4056//
4057//    // Example sending a request using the PutSlotTypeRequest method.
4058//    req, resp := client.PutSlotTypeRequest(params)
4059//
4060//    err := req.Send()
4061//    if err == nil { // resp is now filled
4062//        fmt.Println(resp)
4063//    }
4064//
4065// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutSlotType
4066func (c *LexModelBuildingService) PutSlotTypeRequest(input *PutSlotTypeInput) (req *request.Request, output *PutSlotTypeOutput) {
4067	op := &request.Operation{
4068		Name:       opPutSlotType,
4069		HTTPMethod: "PUT",
4070		HTTPPath:   "/slottypes/{name}/versions/$LATEST",
4071	}
4072
4073	if input == nil {
4074		input = &PutSlotTypeInput{}
4075	}
4076
4077	output = &PutSlotTypeOutput{}
4078	req = c.newRequest(op, input, output)
4079	return
4080}
4081
4082// PutSlotType API operation for Amazon Lex Model Building Service.
4083//
4084// Creates a custom slot type or replaces an existing custom slot type.
4085//
4086// To create a custom slot type, specify a name for the slot type and a set
4087// of enumeration values, which are the values that a slot of this type can
4088// assume. For more information, see how-it-works.
4089//
4090// If you specify the name of an existing slot type, the fields in the request
4091// replace the existing values in the $LATEST version of the slot type. Amazon
4092// Lex removes the fields that you don't provide in the request. If you don't
4093// specify required fields, Amazon Lex throws an exception. When you update
4094// the $LATEST version of a slot type, if a bot uses the $LATEST version of
4095// an intent that contains the slot type, the bot's status field is set to NOT_BUILT.
4096//
4097// This operation requires permissions for the lex:PutSlotType action.
4098//
4099// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4100// with awserr.Error's Code and Message methods to get detailed information about
4101// the error.
4102//
4103// See the AWS API reference guide for Amazon Lex Model Building Service's
4104// API operation PutSlotType for usage and error information.
4105//
4106// Returned Error Codes:
4107//   * ErrCodeConflictException "ConflictException"
4108//   There was a conflict processing the request. Try your request again.
4109//
4110//   * ErrCodeLimitExceededException "LimitExceededException"
4111//   The request exceeded a limit. Try your request again.
4112//
4113//   * ErrCodeInternalFailureException "InternalFailureException"
4114//   An internal Amazon Lex error occurred. Try your request again.
4115//
4116//   * ErrCodeBadRequestException "BadRequestException"
4117//   The request is not well formed. For example, a value is invalid or a required
4118//   field is missing. Check the field values, and try again.
4119//
4120//   * ErrCodePreconditionFailedException "PreconditionFailedException"
4121//   The checksum of the resource that you are trying to change does not match
4122//   the checksum in the request. Check the resource's checksum and try again.
4123//
4124// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/PutSlotType
4125func (c *LexModelBuildingService) PutSlotType(input *PutSlotTypeInput) (*PutSlotTypeOutput, error) {
4126	req, out := c.PutSlotTypeRequest(input)
4127	return out, req.Send()
4128}
4129
4130// PutSlotTypeWithContext is the same as PutSlotType with the addition of
4131// the ability to pass a context and additional request options.
4132//
4133// See PutSlotType for details on how to use this API operation.
4134//
4135// The context must be non-nil and will be used for request cancellation. If
4136// the context is nil a panic will occur. In the future the SDK may create
4137// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4138// for more information on using Contexts.
4139func (c *LexModelBuildingService) PutSlotTypeWithContext(ctx aws.Context, input *PutSlotTypeInput, opts ...request.Option) (*PutSlotTypeOutput, error) {
4140	req, out := c.PutSlotTypeRequest(input)
4141	req.SetContext(ctx)
4142	req.ApplyOptions(opts...)
4143	return out, req.Send()
4144}
4145
4146const opStartImport = "StartImport"
4147
4148// StartImportRequest generates a "aws/request.Request" representing the
4149// client's request for the StartImport operation. The "output" return
4150// value will be populated with the request's response once the request completes
4151// successfully.
4152//
4153// Use "Send" method on the returned Request to send the API call to the service.
4154// the "output" return value is not valid until after Send returns without error.
4155//
4156// See StartImport for more information on using the StartImport
4157// API call, and error handling.
4158//
4159// This method is useful when you want to inject custom logic or configuration
4160// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4161//
4162//
4163//    // Example sending a request using the StartImportRequest method.
4164//    req, resp := client.StartImportRequest(params)
4165//
4166//    err := req.Send()
4167//    if err == nil { // resp is now filled
4168//        fmt.Println(resp)
4169//    }
4170//
4171// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/StartImport
4172func (c *LexModelBuildingService) StartImportRequest(input *StartImportInput) (req *request.Request, output *StartImportOutput) {
4173	op := &request.Operation{
4174		Name:       opStartImport,
4175		HTTPMethod: "POST",
4176		HTTPPath:   "/imports/",
4177	}
4178
4179	if input == nil {
4180		input = &StartImportInput{}
4181	}
4182
4183	output = &StartImportOutput{}
4184	req = c.newRequest(op, input, output)
4185	return
4186}
4187
4188// StartImport API operation for Amazon Lex Model Building Service.
4189//
4190// Starts a job to import a resource to Amazon Lex.
4191//
4192// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4193// with awserr.Error's Code and Message methods to get detailed information about
4194// the error.
4195//
4196// See the AWS API reference guide for Amazon Lex Model Building Service's
4197// API operation StartImport for usage and error information.
4198//
4199// Returned Error Codes:
4200//   * ErrCodeLimitExceededException "LimitExceededException"
4201//   The request exceeded a limit. Try your request again.
4202//
4203//   * ErrCodeInternalFailureException "InternalFailureException"
4204//   An internal Amazon Lex error occurred. Try your request again.
4205//
4206//   * ErrCodeBadRequestException "BadRequestException"
4207//   The request is not well formed. For example, a value is invalid or a required
4208//   field is missing. Check the field values, and try again.
4209//
4210// See also, https://docs.aws.amazon.com/goto/WebAPI/lex-models-2017-04-19/StartImport
4211func (c *LexModelBuildingService) StartImport(input *StartImportInput) (*StartImportOutput, error) {
4212	req, out := c.StartImportRequest(input)
4213	return out, req.Send()
4214}
4215
4216// StartImportWithContext is the same as StartImport with the addition of
4217// the ability to pass a context and additional request options.
4218//
4219// See StartImport for details on how to use this API operation.
4220//
4221// The context must be non-nil and will be used for request cancellation. If
4222// the context is nil a panic will occur. In the future the SDK may create
4223// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4224// for more information on using Contexts.
4225func (c *LexModelBuildingService) StartImportWithContext(ctx aws.Context, input *StartImportInput, opts ...request.Option) (*StartImportOutput, error) {
4226	req, out := c.StartImportRequest(input)
4227	req.SetContext(ctx)
4228	req.ApplyOptions(opts...)
4229	return out, req.Send()
4230}
4231
4232// Provides information about a bot alias.
4233type BotAliasMetadata struct {
4234	_ struct{} `type:"structure"`
4235
4236	// The name of the bot to which the alias points.
4237	BotName *string `locationName:"botName" min:"2" type:"string"`
4238
4239	// The version of the Amazon Lex bot to which the alias points.
4240	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
4241
4242	// Checksum of the bot alias.
4243	Checksum *string `locationName:"checksum" type:"string"`
4244
4245	// The date that the bot alias was created.
4246	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
4247
4248	// A description of the bot alias.
4249	Description *string `locationName:"description" type:"string"`
4250
4251	// The date that the bot alias was updated. When you create a resource, the
4252	// creation date and last updated date are the same.
4253	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
4254
4255	// The name of the bot alias.
4256	Name *string `locationName:"name" min:"1" type:"string"`
4257}
4258
4259// String returns the string representation
4260func (s BotAliasMetadata) String() string {
4261	return awsutil.Prettify(s)
4262}
4263
4264// GoString returns the string representation
4265func (s BotAliasMetadata) GoString() string {
4266	return s.String()
4267}
4268
4269// SetBotName sets the BotName field's value.
4270func (s *BotAliasMetadata) SetBotName(v string) *BotAliasMetadata {
4271	s.BotName = &v
4272	return s
4273}
4274
4275// SetBotVersion sets the BotVersion field's value.
4276func (s *BotAliasMetadata) SetBotVersion(v string) *BotAliasMetadata {
4277	s.BotVersion = &v
4278	return s
4279}
4280
4281// SetChecksum sets the Checksum field's value.
4282func (s *BotAliasMetadata) SetChecksum(v string) *BotAliasMetadata {
4283	s.Checksum = &v
4284	return s
4285}
4286
4287// SetCreatedDate sets the CreatedDate field's value.
4288func (s *BotAliasMetadata) SetCreatedDate(v time.Time) *BotAliasMetadata {
4289	s.CreatedDate = &v
4290	return s
4291}
4292
4293// SetDescription sets the Description field's value.
4294func (s *BotAliasMetadata) SetDescription(v string) *BotAliasMetadata {
4295	s.Description = &v
4296	return s
4297}
4298
4299// SetLastUpdatedDate sets the LastUpdatedDate field's value.
4300func (s *BotAliasMetadata) SetLastUpdatedDate(v time.Time) *BotAliasMetadata {
4301	s.LastUpdatedDate = &v
4302	return s
4303}
4304
4305// SetName sets the Name field's value.
4306func (s *BotAliasMetadata) SetName(v string) *BotAliasMetadata {
4307	s.Name = &v
4308	return s
4309}
4310
4311// Represents an association between an Amazon Lex bot and an external messaging
4312// platform.
4313type BotChannelAssociation struct {
4314	_ struct{} `type:"structure"`
4315
4316	// An alias pointing to the specific version of the Amazon Lex bot to which
4317	// this association is being made.
4318	BotAlias *string `locationName:"botAlias" min:"1" type:"string"`
4319
4320	// Provides information necessary to communicate with the messaging platform.
4321	BotConfiguration map[string]*string `locationName:"botConfiguration" min:"1" type:"map" sensitive:"true"`
4322
4323	// The name of the Amazon Lex bot to which this association is being made.
4324	//
4325	// Currently, Amazon Lex supports associations with Facebook and Slack, and
4326	// Twilio.
4327	BotName *string `locationName:"botName" min:"2" type:"string"`
4328
4329	// The date that the association between the Amazon Lex bot and the channel
4330	// was created.
4331	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
4332
4333	// A text description of the association you are creating.
4334	Description *string `locationName:"description" type:"string"`
4335
4336	// If status is FAILED, Amazon Lex provides the reason that it failed to create
4337	// the association.
4338	FailureReason *string `locationName:"failureReason" type:"string"`
4339
4340	// The name of the association between the bot and the channel.
4341	Name *string `locationName:"name" min:"1" type:"string"`
4342
4343	// The status of the bot channel.
4344	//
4345	//    * CREATED - The channel has been created and is ready for use.
4346	//
4347	//    * IN_PROGRESS - Channel creation is in progress.
4348	//
4349	//    * FAILED - There was an error creating the channel. For information about
4350	//    the reason for the failure, see the failureReason field.
4351	Status *string `locationName:"status" type:"string" enum:"ChannelStatus"`
4352
4353	// Specifies the type of association by indicating the type of channel being
4354	// established between the Amazon Lex bot and the external messaging platform.
4355	Type *string `locationName:"type" type:"string" enum:"ChannelType"`
4356}
4357
4358// String returns the string representation
4359func (s BotChannelAssociation) String() string {
4360	return awsutil.Prettify(s)
4361}
4362
4363// GoString returns the string representation
4364func (s BotChannelAssociation) GoString() string {
4365	return s.String()
4366}
4367
4368// SetBotAlias sets the BotAlias field's value.
4369func (s *BotChannelAssociation) SetBotAlias(v string) *BotChannelAssociation {
4370	s.BotAlias = &v
4371	return s
4372}
4373
4374// SetBotConfiguration sets the BotConfiguration field's value.
4375func (s *BotChannelAssociation) SetBotConfiguration(v map[string]*string) *BotChannelAssociation {
4376	s.BotConfiguration = v
4377	return s
4378}
4379
4380// SetBotName sets the BotName field's value.
4381func (s *BotChannelAssociation) SetBotName(v string) *BotChannelAssociation {
4382	s.BotName = &v
4383	return s
4384}
4385
4386// SetCreatedDate sets the CreatedDate field's value.
4387func (s *BotChannelAssociation) SetCreatedDate(v time.Time) *BotChannelAssociation {
4388	s.CreatedDate = &v
4389	return s
4390}
4391
4392// SetDescription sets the Description field's value.
4393func (s *BotChannelAssociation) SetDescription(v string) *BotChannelAssociation {
4394	s.Description = &v
4395	return s
4396}
4397
4398// SetFailureReason sets the FailureReason field's value.
4399func (s *BotChannelAssociation) SetFailureReason(v string) *BotChannelAssociation {
4400	s.FailureReason = &v
4401	return s
4402}
4403
4404// SetName sets the Name field's value.
4405func (s *BotChannelAssociation) SetName(v string) *BotChannelAssociation {
4406	s.Name = &v
4407	return s
4408}
4409
4410// SetStatus sets the Status field's value.
4411func (s *BotChannelAssociation) SetStatus(v string) *BotChannelAssociation {
4412	s.Status = &v
4413	return s
4414}
4415
4416// SetType sets the Type field's value.
4417func (s *BotChannelAssociation) SetType(v string) *BotChannelAssociation {
4418	s.Type = &v
4419	return s
4420}
4421
4422// Provides information about a bot. .
4423type BotMetadata struct {
4424	_ struct{} `type:"structure"`
4425
4426	// The date that the bot was created.
4427	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
4428
4429	// A description of the bot.
4430	Description *string `locationName:"description" type:"string"`
4431
4432	// The date that the bot was updated. When you create a bot, the creation date
4433	// and last updated date are the same.
4434	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
4435
4436	// The name of the bot.
4437	Name *string `locationName:"name" min:"2" type:"string"`
4438
4439	// The status of the bot.
4440	Status *string `locationName:"status" type:"string" enum:"Status"`
4441
4442	// The version of the bot. For a new bot, the version is always $LATEST.
4443	Version *string `locationName:"version" min:"1" type:"string"`
4444}
4445
4446// String returns the string representation
4447func (s BotMetadata) String() string {
4448	return awsutil.Prettify(s)
4449}
4450
4451// GoString returns the string representation
4452func (s BotMetadata) GoString() string {
4453	return s.String()
4454}
4455
4456// SetCreatedDate sets the CreatedDate field's value.
4457func (s *BotMetadata) SetCreatedDate(v time.Time) *BotMetadata {
4458	s.CreatedDate = &v
4459	return s
4460}
4461
4462// SetDescription sets the Description field's value.
4463func (s *BotMetadata) SetDescription(v string) *BotMetadata {
4464	s.Description = &v
4465	return s
4466}
4467
4468// SetLastUpdatedDate sets the LastUpdatedDate field's value.
4469func (s *BotMetadata) SetLastUpdatedDate(v time.Time) *BotMetadata {
4470	s.LastUpdatedDate = &v
4471	return s
4472}
4473
4474// SetName sets the Name field's value.
4475func (s *BotMetadata) SetName(v string) *BotMetadata {
4476	s.Name = &v
4477	return s
4478}
4479
4480// SetStatus sets the Status field's value.
4481func (s *BotMetadata) SetStatus(v string) *BotMetadata {
4482	s.Status = &v
4483	return s
4484}
4485
4486// SetVersion sets the Version field's value.
4487func (s *BotMetadata) SetVersion(v string) *BotMetadata {
4488	s.Version = &v
4489	return s
4490}
4491
4492// Provides metadata for a built-in intent.
4493type BuiltinIntentMetadata struct {
4494	_ struct{} `type:"structure"`
4495
4496	// A unique identifier for the built-in intent. To find the signature for an
4497	// intent, see Standard Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
4498	// in the Alexa Skills Kit.
4499	Signature *string `locationName:"signature" type:"string"`
4500
4501	// A list of identifiers for the locales that the intent supports.
4502	SupportedLocales []*string `locationName:"supportedLocales" type:"list"`
4503}
4504
4505// String returns the string representation
4506func (s BuiltinIntentMetadata) String() string {
4507	return awsutil.Prettify(s)
4508}
4509
4510// GoString returns the string representation
4511func (s BuiltinIntentMetadata) GoString() string {
4512	return s.String()
4513}
4514
4515// SetSignature sets the Signature field's value.
4516func (s *BuiltinIntentMetadata) SetSignature(v string) *BuiltinIntentMetadata {
4517	s.Signature = &v
4518	return s
4519}
4520
4521// SetSupportedLocales sets the SupportedLocales field's value.
4522func (s *BuiltinIntentMetadata) SetSupportedLocales(v []*string) *BuiltinIntentMetadata {
4523	s.SupportedLocales = v
4524	return s
4525}
4526
4527// Provides information about a slot used in a built-in intent.
4528type BuiltinIntentSlot struct {
4529	_ struct{} `type:"structure"`
4530
4531	// A list of the slots defined for the intent.
4532	Name *string `locationName:"name" type:"string"`
4533}
4534
4535// String returns the string representation
4536func (s BuiltinIntentSlot) String() string {
4537	return awsutil.Prettify(s)
4538}
4539
4540// GoString returns the string representation
4541func (s BuiltinIntentSlot) GoString() string {
4542	return s.String()
4543}
4544
4545// SetName sets the Name field's value.
4546func (s *BuiltinIntentSlot) SetName(v string) *BuiltinIntentSlot {
4547	s.Name = &v
4548	return s
4549}
4550
4551// Provides information about a built in slot type.
4552type BuiltinSlotTypeMetadata struct {
4553	_ struct{} `type:"structure"`
4554
4555	// A unique identifier for the built-in slot type. To find the signature for
4556	// 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)
4557	// in the Alexa Skills Kit.
4558	Signature *string `locationName:"signature" type:"string"`
4559
4560	// A list of target locales for the slot.
4561	SupportedLocales []*string `locationName:"supportedLocales" type:"list"`
4562}
4563
4564// String returns the string representation
4565func (s BuiltinSlotTypeMetadata) String() string {
4566	return awsutil.Prettify(s)
4567}
4568
4569// GoString returns the string representation
4570func (s BuiltinSlotTypeMetadata) GoString() string {
4571	return s.String()
4572}
4573
4574// SetSignature sets the Signature field's value.
4575func (s *BuiltinSlotTypeMetadata) SetSignature(v string) *BuiltinSlotTypeMetadata {
4576	s.Signature = &v
4577	return s
4578}
4579
4580// SetSupportedLocales sets the SupportedLocales field's value.
4581func (s *BuiltinSlotTypeMetadata) SetSupportedLocales(v []*string) *BuiltinSlotTypeMetadata {
4582	s.SupportedLocales = v
4583	return s
4584}
4585
4586// Specifies a Lambda function that verifies requests to a bot or fulfills the
4587// user's request to a bot..
4588type CodeHook struct {
4589	_ struct{} `type:"structure"`
4590
4591	// The version of the request-response that you want Amazon Lex to use to invoke
4592	// your Lambda function. For more information, see using-lambda.
4593	//
4594	// MessageVersion is a required field
4595	MessageVersion *string `locationName:"messageVersion" min:"1" type:"string" required:"true"`
4596
4597	// The Amazon Resource Name (ARN) of the Lambda function.
4598	//
4599	// Uri is a required field
4600	Uri *string `locationName:"uri" min:"20" type:"string" required:"true"`
4601}
4602
4603// String returns the string representation
4604func (s CodeHook) String() string {
4605	return awsutil.Prettify(s)
4606}
4607
4608// GoString returns the string representation
4609func (s CodeHook) GoString() string {
4610	return s.String()
4611}
4612
4613// Validate inspects the fields of the type to determine if they are valid.
4614func (s *CodeHook) Validate() error {
4615	invalidParams := request.ErrInvalidParams{Context: "CodeHook"}
4616	if s.MessageVersion == nil {
4617		invalidParams.Add(request.NewErrParamRequired("MessageVersion"))
4618	}
4619	if s.MessageVersion != nil && len(*s.MessageVersion) < 1 {
4620		invalidParams.Add(request.NewErrParamMinLen("MessageVersion", 1))
4621	}
4622	if s.Uri == nil {
4623		invalidParams.Add(request.NewErrParamRequired("Uri"))
4624	}
4625	if s.Uri != nil && len(*s.Uri) < 20 {
4626		invalidParams.Add(request.NewErrParamMinLen("Uri", 20))
4627	}
4628
4629	if invalidParams.Len() > 0 {
4630		return invalidParams
4631	}
4632	return nil
4633}
4634
4635// SetMessageVersion sets the MessageVersion field's value.
4636func (s *CodeHook) SetMessageVersion(v string) *CodeHook {
4637	s.MessageVersion = &v
4638	return s
4639}
4640
4641// SetUri sets the Uri field's value.
4642func (s *CodeHook) SetUri(v string) *CodeHook {
4643	s.Uri = &v
4644	return s
4645}
4646
4647type CreateBotVersionInput struct {
4648	_ struct{} `type:"structure"`
4649
4650	// Identifies a specific revision of the $LATEST version of the bot. If you
4651	// specify a checksum and the $LATEST version of the bot has a different checksum,
4652	// a PreconditionFailedException exception is returned and Amazon Lex doesn't
4653	// publish a new version. If you don't specify a checksum, Amazon Lex publishes
4654	// the $LATEST version.
4655	Checksum *string `locationName:"checksum" type:"string"`
4656
4657	// The name of the bot that you want to create a new version of. The name is
4658	// case sensitive.
4659	//
4660	// Name is a required field
4661	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
4662}
4663
4664// String returns the string representation
4665func (s CreateBotVersionInput) String() string {
4666	return awsutil.Prettify(s)
4667}
4668
4669// GoString returns the string representation
4670func (s CreateBotVersionInput) GoString() string {
4671	return s.String()
4672}
4673
4674// Validate inspects the fields of the type to determine if they are valid.
4675func (s *CreateBotVersionInput) Validate() error {
4676	invalidParams := request.ErrInvalidParams{Context: "CreateBotVersionInput"}
4677	if s.Name == nil {
4678		invalidParams.Add(request.NewErrParamRequired("Name"))
4679	}
4680	if s.Name != nil && len(*s.Name) < 2 {
4681		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
4682	}
4683
4684	if invalidParams.Len() > 0 {
4685		return invalidParams
4686	}
4687	return nil
4688}
4689
4690// SetChecksum sets the Checksum field's value.
4691func (s *CreateBotVersionInput) SetChecksum(v string) *CreateBotVersionInput {
4692	s.Checksum = &v
4693	return s
4694}
4695
4696// SetName sets the Name field's value.
4697func (s *CreateBotVersionInput) SetName(v string) *CreateBotVersionInput {
4698	s.Name = &v
4699	return s
4700}
4701
4702type CreateBotVersionOutput struct {
4703	_ struct{} `type:"structure"`
4704
4705	// The message that Amazon Lex uses to abort a conversation. For more information,
4706	// see PutBot.
4707	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
4708
4709	// Checksum identifying the version of the bot that was created.
4710	Checksum *string `locationName:"checksum" type:"string"`
4711
4712	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
4713	// you must specify whether your use of Amazon Lex is related to a website,
4714	// program, or other application that is directed or targeted, in whole or in
4715	// part, to children under age 13 and subject to the Children's Online Privacy
4716	// Protection Act (COPPA) by specifying true or false in the childDirected field.
4717	// By specifying true in the childDirected field, you confirm that your use
4718	// of Amazon Lex is related to a website, program, or other application that
4719	// is directed or targeted, in whole or in part, to children under age 13 and
4720	// subject to COPPA. By specifying false in the childDirected field, you confirm
4721	// that your use of Amazon Lex is not related to a website, program, or other
4722	// application that is directed or targeted, in whole or in part, to children
4723	// under age 13 and subject to COPPA. You may not specify a default value for
4724	// the childDirected field that does not accurately reflect whether your use
4725	// of Amazon Lex is related to a website, program, or other application that
4726	// is directed or targeted, in whole or in part, to children under age 13 and
4727	// subject to COPPA.
4728	//
4729	// If your use of Amazon Lex relates to a website, program, or other application
4730	// that is directed in whole or in part, to children under age 13, you must
4731	// obtain any required verifiable parental consent under COPPA. For information
4732	// regarding the use of Amazon Lex in connection with websites, programs, or
4733	// other applications that are directed or targeted, in whole or in part, to
4734	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
4735	ChildDirected *bool `locationName:"childDirected" type:"boolean"`
4736
4737	// The message that Amazon Lex uses when it doesn't understand the user's request.
4738	// For more information, see PutBot.
4739	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
4740
4741	// The date when the bot version was created.
4742	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
4743
4744	// A description of the bot.
4745	Description *string `locationName:"description" type:"string"`
4746
4747	// If status is FAILED, Amazon Lex provides the reason that it failed to build
4748	// the bot.
4749	FailureReason *string `locationName:"failureReason" type:"string"`
4750
4751	// The maximum time in seconds that Amazon Lex retains the data gathered in
4752	// a conversation. For more information, see PutBot.
4753	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
4754
4755	// An array of Intent objects. For more information, see PutBot.
4756	Intents []*Intent `locationName:"intents" type:"list"`
4757
4758	// The date when the $LATEST version of this bot was updated.
4759	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
4760
4761	// Specifies the target locale for the bot.
4762	Locale *string `locationName:"locale" type:"string" enum:"Locale"`
4763
4764	// The name of the bot.
4765	Name *string `locationName:"name" min:"2" type:"string"`
4766
4767	// When you send a request to create or update a bot, Amazon Lex sets the status
4768	// response element to BUILDING. After Amazon Lex builds the bot, it sets status
4769	// to READY. If Amazon Lex can't build the bot, it sets status to FAILED. Amazon
4770	// Lex returns the reason for the failure in the failureReason response element.
4771	Status *string `locationName:"status" type:"string" enum:"Status"`
4772
4773	// The version of the bot.
4774	Version *string `locationName:"version" min:"1" type:"string"`
4775
4776	// The Amazon Polly voice ID that Amazon Lex uses for voice interactions with
4777	// the user.
4778	VoiceId *string `locationName:"voiceId" type:"string"`
4779}
4780
4781// String returns the string representation
4782func (s CreateBotVersionOutput) String() string {
4783	return awsutil.Prettify(s)
4784}
4785
4786// GoString returns the string representation
4787func (s CreateBotVersionOutput) GoString() string {
4788	return s.String()
4789}
4790
4791// SetAbortStatement sets the AbortStatement field's value.
4792func (s *CreateBotVersionOutput) SetAbortStatement(v *Statement) *CreateBotVersionOutput {
4793	s.AbortStatement = v
4794	return s
4795}
4796
4797// SetChecksum sets the Checksum field's value.
4798func (s *CreateBotVersionOutput) SetChecksum(v string) *CreateBotVersionOutput {
4799	s.Checksum = &v
4800	return s
4801}
4802
4803// SetChildDirected sets the ChildDirected field's value.
4804func (s *CreateBotVersionOutput) SetChildDirected(v bool) *CreateBotVersionOutput {
4805	s.ChildDirected = &v
4806	return s
4807}
4808
4809// SetClarificationPrompt sets the ClarificationPrompt field's value.
4810func (s *CreateBotVersionOutput) SetClarificationPrompt(v *Prompt) *CreateBotVersionOutput {
4811	s.ClarificationPrompt = v
4812	return s
4813}
4814
4815// SetCreatedDate sets the CreatedDate field's value.
4816func (s *CreateBotVersionOutput) SetCreatedDate(v time.Time) *CreateBotVersionOutput {
4817	s.CreatedDate = &v
4818	return s
4819}
4820
4821// SetDescription sets the Description field's value.
4822func (s *CreateBotVersionOutput) SetDescription(v string) *CreateBotVersionOutput {
4823	s.Description = &v
4824	return s
4825}
4826
4827// SetFailureReason sets the FailureReason field's value.
4828func (s *CreateBotVersionOutput) SetFailureReason(v string) *CreateBotVersionOutput {
4829	s.FailureReason = &v
4830	return s
4831}
4832
4833// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
4834func (s *CreateBotVersionOutput) SetIdleSessionTTLInSeconds(v int64) *CreateBotVersionOutput {
4835	s.IdleSessionTTLInSeconds = &v
4836	return s
4837}
4838
4839// SetIntents sets the Intents field's value.
4840func (s *CreateBotVersionOutput) SetIntents(v []*Intent) *CreateBotVersionOutput {
4841	s.Intents = v
4842	return s
4843}
4844
4845// SetLastUpdatedDate sets the LastUpdatedDate field's value.
4846func (s *CreateBotVersionOutput) SetLastUpdatedDate(v time.Time) *CreateBotVersionOutput {
4847	s.LastUpdatedDate = &v
4848	return s
4849}
4850
4851// SetLocale sets the Locale field's value.
4852func (s *CreateBotVersionOutput) SetLocale(v string) *CreateBotVersionOutput {
4853	s.Locale = &v
4854	return s
4855}
4856
4857// SetName sets the Name field's value.
4858func (s *CreateBotVersionOutput) SetName(v string) *CreateBotVersionOutput {
4859	s.Name = &v
4860	return s
4861}
4862
4863// SetStatus sets the Status field's value.
4864func (s *CreateBotVersionOutput) SetStatus(v string) *CreateBotVersionOutput {
4865	s.Status = &v
4866	return s
4867}
4868
4869// SetVersion sets the Version field's value.
4870func (s *CreateBotVersionOutput) SetVersion(v string) *CreateBotVersionOutput {
4871	s.Version = &v
4872	return s
4873}
4874
4875// SetVoiceId sets the VoiceId field's value.
4876func (s *CreateBotVersionOutput) SetVoiceId(v string) *CreateBotVersionOutput {
4877	s.VoiceId = &v
4878	return s
4879}
4880
4881type CreateIntentVersionInput struct {
4882	_ struct{} `type:"structure"`
4883
4884	// Checksum of the $LATEST version of the intent that should be used to create
4885	// the new version. If you specify a checksum and the $LATEST version of the
4886	// intent has a different checksum, Amazon Lex returns a PreconditionFailedException
4887	// exception and doesn't publish a new version. If you don't specify a checksum,
4888	// Amazon Lex publishes the $LATEST version.
4889	Checksum *string `locationName:"checksum" type:"string"`
4890
4891	// The name of the intent that you want to create a new version of. The name
4892	// is case sensitive.
4893	//
4894	// Name is a required field
4895	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
4896}
4897
4898// String returns the string representation
4899func (s CreateIntentVersionInput) String() string {
4900	return awsutil.Prettify(s)
4901}
4902
4903// GoString returns the string representation
4904func (s CreateIntentVersionInput) GoString() string {
4905	return s.String()
4906}
4907
4908// Validate inspects the fields of the type to determine if they are valid.
4909func (s *CreateIntentVersionInput) Validate() error {
4910	invalidParams := request.ErrInvalidParams{Context: "CreateIntentVersionInput"}
4911	if s.Name == nil {
4912		invalidParams.Add(request.NewErrParamRequired("Name"))
4913	}
4914	if s.Name != nil && len(*s.Name) < 1 {
4915		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
4916	}
4917
4918	if invalidParams.Len() > 0 {
4919		return invalidParams
4920	}
4921	return nil
4922}
4923
4924// SetChecksum sets the Checksum field's value.
4925func (s *CreateIntentVersionInput) SetChecksum(v string) *CreateIntentVersionInput {
4926	s.Checksum = &v
4927	return s
4928}
4929
4930// SetName sets the Name field's value.
4931func (s *CreateIntentVersionInput) SetName(v string) *CreateIntentVersionInput {
4932	s.Name = &v
4933	return s
4934}
4935
4936type CreateIntentVersionOutput struct {
4937	_ struct{} `type:"structure"`
4938
4939	// Checksum of the intent version created.
4940	Checksum *string `locationName:"checksum" type:"string"`
4941
4942	// After the Lambda function specified in the fulfillmentActivity field fulfills
4943	// the intent, Amazon Lex conveys this statement to the user.
4944	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
4945
4946	// If defined, the prompt that Amazon Lex uses to confirm the user's intent
4947	// before fulfilling it.
4948	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
4949
4950	// The date that the intent was created.
4951	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
4952
4953	// A description of the intent.
4954	Description *string `locationName:"description" type:"string"`
4955
4956	// If defined, Amazon Lex invokes this Lambda function for each user input.
4957	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
4958
4959	// If defined, Amazon Lex uses this prompt to solicit additional user activity
4960	// after the intent is fulfilled.
4961	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
4962
4963	// Describes how the intent is fulfilled.
4964	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
4965
4966	// The date that the intent was updated.
4967	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
4968
4969	// The name of the intent.
4970	Name *string `locationName:"name" min:"1" type:"string"`
4971
4972	// A unique identifier for a built-in intent.
4973	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
4974
4975	// If the user answers "no" to the question defined in confirmationPrompt, Amazon
4976	// Lex responds with this statement to acknowledge that the intent was canceled.
4977	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
4978
4979	// An array of sample utterances configured for the intent.
4980	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
4981
4982	// An array of slot types that defines the information required to fulfill the
4983	// intent.
4984	Slots []*Slot `locationName:"slots" type:"list"`
4985
4986	// The version number assigned to the new version of the intent.
4987	Version *string `locationName:"version" min:"1" type:"string"`
4988}
4989
4990// String returns the string representation
4991func (s CreateIntentVersionOutput) String() string {
4992	return awsutil.Prettify(s)
4993}
4994
4995// GoString returns the string representation
4996func (s CreateIntentVersionOutput) GoString() string {
4997	return s.String()
4998}
4999
5000// SetChecksum sets the Checksum field's value.
5001func (s *CreateIntentVersionOutput) SetChecksum(v string) *CreateIntentVersionOutput {
5002	s.Checksum = &v
5003	return s
5004}
5005
5006// SetConclusionStatement sets the ConclusionStatement field's value.
5007func (s *CreateIntentVersionOutput) SetConclusionStatement(v *Statement) *CreateIntentVersionOutput {
5008	s.ConclusionStatement = v
5009	return s
5010}
5011
5012// SetConfirmationPrompt sets the ConfirmationPrompt field's value.
5013func (s *CreateIntentVersionOutput) SetConfirmationPrompt(v *Prompt) *CreateIntentVersionOutput {
5014	s.ConfirmationPrompt = v
5015	return s
5016}
5017
5018// SetCreatedDate sets the CreatedDate field's value.
5019func (s *CreateIntentVersionOutput) SetCreatedDate(v time.Time) *CreateIntentVersionOutput {
5020	s.CreatedDate = &v
5021	return s
5022}
5023
5024// SetDescription sets the Description field's value.
5025func (s *CreateIntentVersionOutput) SetDescription(v string) *CreateIntentVersionOutput {
5026	s.Description = &v
5027	return s
5028}
5029
5030// SetDialogCodeHook sets the DialogCodeHook field's value.
5031func (s *CreateIntentVersionOutput) SetDialogCodeHook(v *CodeHook) *CreateIntentVersionOutput {
5032	s.DialogCodeHook = v
5033	return s
5034}
5035
5036// SetFollowUpPrompt sets the FollowUpPrompt field's value.
5037func (s *CreateIntentVersionOutput) SetFollowUpPrompt(v *FollowUpPrompt) *CreateIntentVersionOutput {
5038	s.FollowUpPrompt = v
5039	return s
5040}
5041
5042// SetFulfillmentActivity sets the FulfillmentActivity field's value.
5043func (s *CreateIntentVersionOutput) SetFulfillmentActivity(v *FulfillmentActivity) *CreateIntentVersionOutput {
5044	s.FulfillmentActivity = v
5045	return s
5046}
5047
5048// SetLastUpdatedDate sets the LastUpdatedDate field's value.
5049func (s *CreateIntentVersionOutput) SetLastUpdatedDate(v time.Time) *CreateIntentVersionOutput {
5050	s.LastUpdatedDate = &v
5051	return s
5052}
5053
5054// SetName sets the Name field's value.
5055func (s *CreateIntentVersionOutput) SetName(v string) *CreateIntentVersionOutput {
5056	s.Name = &v
5057	return s
5058}
5059
5060// SetParentIntentSignature sets the ParentIntentSignature field's value.
5061func (s *CreateIntentVersionOutput) SetParentIntentSignature(v string) *CreateIntentVersionOutput {
5062	s.ParentIntentSignature = &v
5063	return s
5064}
5065
5066// SetRejectionStatement sets the RejectionStatement field's value.
5067func (s *CreateIntentVersionOutput) SetRejectionStatement(v *Statement) *CreateIntentVersionOutput {
5068	s.RejectionStatement = v
5069	return s
5070}
5071
5072// SetSampleUtterances sets the SampleUtterances field's value.
5073func (s *CreateIntentVersionOutput) SetSampleUtterances(v []*string) *CreateIntentVersionOutput {
5074	s.SampleUtterances = v
5075	return s
5076}
5077
5078// SetSlots sets the Slots field's value.
5079func (s *CreateIntentVersionOutput) SetSlots(v []*Slot) *CreateIntentVersionOutput {
5080	s.Slots = v
5081	return s
5082}
5083
5084// SetVersion sets the Version field's value.
5085func (s *CreateIntentVersionOutput) SetVersion(v string) *CreateIntentVersionOutput {
5086	s.Version = &v
5087	return s
5088}
5089
5090type CreateSlotTypeVersionInput struct {
5091	_ struct{} `type:"structure"`
5092
5093	// Checksum for the $LATEST version of the slot type that you want to publish.
5094	// If you specify a checksum and the $LATEST version of the slot type has a
5095	// different checksum, Amazon Lex returns a PreconditionFailedException exception
5096	// and doesn't publish the new version. If you don't specify a checksum, Amazon
5097	// Lex publishes the $LATEST version.
5098	Checksum *string `locationName:"checksum" type:"string"`
5099
5100	// The name of the slot type that you want to create a new version for. The
5101	// name is case sensitive.
5102	//
5103	// Name is a required field
5104	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5105}
5106
5107// String returns the string representation
5108func (s CreateSlotTypeVersionInput) String() string {
5109	return awsutil.Prettify(s)
5110}
5111
5112// GoString returns the string representation
5113func (s CreateSlotTypeVersionInput) GoString() string {
5114	return s.String()
5115}
5116
5117// Validate inspects the fields of the type to determine if they are valid.
5118func (s *CreateSlotTypeVersionInput) Validate() error {
5119	invalidParams := request.ErrInvalidParams{Context: "CreateSlotTypeVersionInput"}
5120	if s.Name == nil {
5121		invalidParams.Add(request.NewErrParamRequired("Name"))
5122	}
5123	if s.Name != nil && len(*s.Name) < 1 {
5124		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5125	}
5126
5127	if invalidParams.Len() > 0 {
5128		return invalidParams
5129	}
5130	return nil
5131}
5132
5133// SetChecksum sets the Checksum field's value.
5134func (s *CreateSlotTypeVersionInput) SetChecksum(v string) *CreateSlotTypeVersionInput {
5135	s.Checksum = &v
5136	return s
5137}
5138
5139// SetName sets the Name field's value.
5140func (s *CreateSlotTypeVersionInput) SetName(v string) *CreateSlotTypeVersionInput {
5141	s.Name = &v
5142	return s
5143}
5144
5145type CreateSlotTypeVersionOutput struct {
5146	_ struct{} `type:"structure"`
5147
5148	// Checksum of the $LATEST version of the slot type.
5149	Checksum *string `locationName:"checksum" type:"string"`
5150
5151	// The date that the slot type was created.
5152	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
5153
5154	// A description of the slot type.
5155	Description *string `locationName:"description" type:"string"`
5156
5157	// A list of EnumerationValue objects that defines the values that the slot
5158	// type can take.
5159	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" min:"1" type:"list"`
5160
5161	// The date that the slot type was updated. When you create a resource, the
5162	// creation date and last update date are the same.
5163	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
5164
5165	// The name of the slot type.
5166	Name *string `locationName:"name" min:"1" type:"string"`
5167
5168	// The strategy that Amazon Lex uses to determine the value of the slot. For
5169	// more information, see PutSlotType.
5170	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
5171
5172	// The version assigned to the new slot type version.
5173	Version *string `locationName:"version" min:"1" type:"string"`
5174}
5175
5176// String returns the string representation
5177func (s CreateSlotTypeVersionOutput) String() string {
5178	return awsutil.Prettify(s)
5179}
5180
5181// GoString returns the string representation
5182func (s CreateSlotTypeVersionOutput) GoString() string {
5183	return s.String()
5184}
5185
5186// SetChecksum sets the Checksum field's value.
5187func (s *CreateSlotTypeVersionOutput) SetChecksum(v string) *CreateSlotTypeVersionOutput {
5188	s.Checksum = &v
5189	return s
5190}
5191
5192// SetCreatedDate sets the CreatedDate field's value.
5193func (s *CreateSlotTypeVersionOutput) SetCreatedDate(v time.Time) *CreateSlotTypeVersionOutput {
5194	s.CreatedDate = &v
5195	return s
5196}
5197
5198// SetDescription sets the Description field's value.
5199func (s *CreateSlotTypeVersionOutput) SetDescription(v string) *CreateSlotTypeVersionOutput {
5200	s.Description = &v
5201	return s
5202}
5203
5204// SetEnumerationValues sets the EnumerationValues field's value.
5205func (s *CreateSlotTypeVersionOutput) SetEnumerationValues(v []*EnumerationValue) *CreateSlotTypeVersionOutput {
5206	s.EnumerationValues = v
5207	return s
5208}
5209
5210// SetLastUpdatedDate sets the LastUpdatedDate field's value.
5211func (s *CreateSlotTypeVersionOutput) SetLastUpdatedDate(v time.Time) *CreateSlotTypeVersionOutput {
5212	s.LastUpdatedDate = &v
5213	return s
5214}
5215
5216// SetName sets the Name field's value.
5217func (s *CreateSlotTypeVersionOutput) SetName(v string) *CreateSlotTypeVersionOutput {
5218	s.Name = &v
5219	return s
5220}
5221
5222// SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
5223func (s *CreateSlotTypeVersionOutput) SetValueSelectionStrategy(v string) *CreateSlotTypeVersionOutput {
5224	s.ValueSelectionStrategy = &v
5225	return s
5226}
5227
5228// SetVersion sets the Version field's value.
5229func (s *CreateSlotTypeVersionOutput) SetVersion(v string) *CreateSlotTypeVersionOutput {
5230	s.Version = &v
5231	return s
5232}
5233
5234type DeleteBotAliasInput struct {
5235	_ struct{} `type:"structure"`
5236
5237	// The name of the bot that the alias points to.
5238	//
5239	// BotName is a required field
5240	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
5241
5242	// The name of the alias to delete. The name is case sensitive.
5243	//
5244	// Name is a required field
5245	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5246}
5247
5248// String returns the string representation
5249func (s DeleteBotAliasInput) String() string {
5250	return awsutil.Prettify(s)
5251}
5252
5253// GoString returns the string representation
5254func (s DeleteBotAliasInput) GoString() string {
5255	return s.String()
5256}
5257
5258// Validate inspects the fields of the type to determine if they are valid.
5259func (s *DeleteBotAliasInput) Validate() error {
5260	invalidParams := request.ErrInvalidParams{Context: "DeleteBotAliasInput"}
5261	if s.BotName == nil {
5262		invalidParams.Add(request.NewErrParamRequired("BotName"))
5263	}
5264	if s.BotName != nil && len(*s.BotName) < 2 {
5265		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
5266	}
5267	if s.Name == nil {
5268		invalidParams.Add(request.NewErrParamRequired("Name"))
5269	}
5270	if s.Name != nil && len(*s.Name) < 1 {
5271		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5272	}
5273
5274	if invalidParams.Len() > 0 {
5275		return invalidParams
5276	}
5277	return nil
5278}
5279
5280// SetBotName sets the BotName field's value.
5281func (s *DeleteBotAliasInput) SetBotName(v string) *DeleteBotAliasInput {
5282	s.BotName = &v
5283	return s
5284}
5285
5286// SetName sets the Name field's value.
5287func (s *DeleteBotAliasInput) SetName(v string) *DeleteBotAliasInput {
5288	s.Name = &v
5289	return s
5290}
5291
5292type DeleteBotAliasOutput struct {
5293	_ struct{} `type:"structure"`
5294}
5295
5296// String returns the string representation
5297func (s DeleteBotAliasOutput) String() string {
5298	return awsutil.Prettify(s)
5299}
5300
5301// GoString returns the string representation
5302func (s DeleteBotAliasOutput) GoString() string {
5303	return s.String()
5304}
5305
5306type DeleteBotChannelAssociationInput struct {
5307	_ struct{} `type:"structure"`
5308
5309	// An alias that points to the specific version of the Amazon Lex bot to which
5310	// this association is being made.
5311	//
5312	// BotAlias is a required field
5313	BotAlias *string `location:"uri" locationName:"aliasName" min:"1" type:"string" required:"true"`
5314
5315	// The name of the Amazon Lex bot.
5316	//
5317	// BotName is a required field
5318	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
5319
5320	// The name of the association. The name is case sensitive.
5321	//
5322	// Name is a required field
5323	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5324}
5325
5326// String returns the string representation
5327func (s DeleteBotChannelAssociationInput) String() string {
5328	return awsutil.Prettify(s)
5329}
5330
5331// GoString returns the string representation
5332func (s DeleteBotChannelAssociationInput) GoString() string {
5333	return s.String()
5334}
5335
5336// Validate inspects the fields of the type to determine if they are valid.
5337func (s *DeleteBotChannelAssociationInput) Validate() error {
5338	invalidParams := request.ErrInvalidParams{Context: "DeleteBotChannelAssociationInput"}
5339	if s.BotAlias == nil {
5340		invalidParams.Add(request.NewErrParamRequired("BotAlias"))
5341	}
5342	if s.BotAlias != nil && len(*s.BotAlias) < 1 {
5343		invalidParams.Add(request.NewErrParamMinLen("BotAlias", 1))
5344	}
5345	if s.BotName == nil {
5346		invalidParams.Add(request.NewErrParamRequired("BotName"))
5347	}
5348	if s.BotName != nil && len(*s.BotName) < 2 {
5349		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
5350	}
5351	if s.Name == nil {
5352		invalidParams.Add(request.NewErrParamRequired("Name"))
5353	}
5354	if s.Name != nil && len(*s.Name) < 1 {
5355		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5356	}
5357
5358	if invalidParams.Len() > 0 {
5359		return invalidParams
5360	}
5361	return nil
5362}
5363
5364// SetBotAlias sets the BotAlias field's value.
5365func (s *DeleteBotChannelAssociationInput) SetBotAlias(v string) *DeleteBotChannelAssociationInput {
5366	s.BotAlias = &v
5367	return s
5368}
5369
5370// SetBotName sets the BotName field's value.
5371func (s *DeleteBotChannelAssociationInput) SetBotName(v string) *DeleteBotChannelAssociationInput {
5372	s.BotName = &v
5373	return s
5374}
5375
5376// SetName sets the Name field's value.
5377func (s *DeleteBotChannelAssociationInput) SetName(v string) *DeleteBotChannelAssociationInput {
5378	s.Name = &v
5379	return s
5380}
5381
5382type DeleteBotChannelAssociationOutput struct {
5383	_ struct{} `type:"structure"`
5384}
5385
5386// String returns the string representation
5387func (s DeleteBotChannelAssociationOutput) String() string {
5388	return awsutil.Prettify(s)
5389}
5390
5391// GoString returns the string representation
5392func (s DeleteBotChannelAssociationOutput) GoString() string {
5393	return s.String()
5394}
5395
5396type DeleteBotInput struct {
5397	_ struct{} `type:"structure"`
5398
5399	// The name of the bot. The name is case sensitive.
5400	//
5401	// Name is a required field
5402	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
5403}
5404
5405// String returns the string representation
5406func (s DeleteBotInput) String() string {
5407	return awsutil.Prettify(s)
5408}
5409
5410// GoString returns the string representation
5411func (s DeleteBotInput) GoString() string {
5412	return s.String()
5413}
5414
5415// Validate inspects the fields of the type to determine if they are valid.
5416func (s *DeleteBotInput) Validate() error {
5417	invalidParams := request.ErrInvalidParams{Context: "DeleteBotInput"}
5418	if s.Name == nil {
5419		invalidParams.Add(request.NewErrParamRequired("Name"))
5420	}
5421	if s.Name != nil && len(*s.Name) < 2 {
5422		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
5423	}
5424
5425	if invalidParams.Len() > 0 {
5426		return invalidParams
5427	}
5428	return nil
5429}
5430
5431// SetName sets the Name field's value.
5432func (s *DeleteBotInput) SetName(v string) *DeleteBotInput {
5433	s.Name = &v
5434	return s
5435}
5436
5437type DeleteBotOutput struct {
5438	_ struct{} `type:"structure"`
5439}
5440
5441// String returns the string representation
5442func (s DeleteBotOutput) String() string {
5443	return awsutil.Prettify(s)
5444}
5445
5446// GoString returns the string representation
5447func (s DeleteBotOutput) GoString() string {
5448	return s.String()
5449}
5450
5451type DeleteBotVersionInput struct {
5452	_ struct{} `type:"structure"`
5453
5454	// The name of the bot.
5455	//
5456	// Name is a required field
5457	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
5458
5459	// The version of the bot to delete. You cannot delete the $LATEST version of
5460	// the bot. To delete the $LATEST version, use the DeleteBot operation.
5461	//
5462	// Version is a required field
5463	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
5464}
5465
5466// String returns the string representation
5467func (s DeleteBotVersionInput) String() string {
5468	return awsutil.Prettify(s)
5469}
5470
5471// GoString returns the string representation
5472func (s DeleteBotVersionInput) GoString() string {
5473	return s.String()
5474}
5475
5476// Validate inspects the fields of the type to determine if they are valid.
5477func (s *DeleteBotVersionInput) Validate() error {
5478	invalidParams := request.ErrInvalidParams{Context: "DeleteBotVersionInput"}
5479	if s.Name == nil {
5480		invalidParams.Add(request.NewErrParamRequired("Name"))
5481	}
5482	if s.Name != nil && len(*s.Name) < 2 {
5483		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
5484	}
5485	if s.Version == nil {
5486		invalidParams.Add(request.NewErrParamRequired("Version"))
5487	}
5488	if s.Version != nil && len(*s.Version) < 1 {
5489		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
5490	}
5491
5492	if invalidParams.Len() > 0 {
5493		return invalidParams
5494	}
5495	return nil
5496}
5497
5498// SetName sets the Name field's value.
5499func (s *DeleteBotVersionInput) SetName(v string) *DeleteBotVersionInput {
5500	s.Name = &v
5501	return s
5502}
5503
5504// SetVersion sets the Version field's value.
5505func (s *DeleteBotVersionInput) SetVersion(v string) *DeleteBotVersionInput {
5506	s.Version = &v
5507	return s
5508}
5509
5510type DeleteBotVersionOutput struct {
5511	_ struct{} `type:"structure"`
5512}
5513
5514// String returns the string representation
5515func (s DeleteBotVersionOutput) String() string {
5516	return awsutil.Prettify(s)
5517}
5518
5519// GoString returns the string representation
5520func (s DeleteBotVersionOutput) GoString() string {
5521	return s.String()
5522}
5523
5524type DeleteIntentInput struct {
5525	_ struct{} `type:"structure"`
5526
5527	// The name of the intent. The name is case sensitive.
5528	//
5529	// Name is a required field
5530	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5531}
5532
5533// String returns the string representation
5534func (s DeleteIntentInput) String() string {
5535	return awsutil.Prettify(s)
5536}
5537
5538// GoString returns the string representation
5539func (s DeleteIntentInput) GoString() string {
5540	return s.String()
5541}
5542
5543// Validate inspects the fields of the type to determine if they are valid.
5544func (s *DeleteIntentInput) Validate() error {
5545	invalidParams := request.ErrInvalidParams{Context: "DeleteIntentInput"}
5546	if s.Name == nil {
5547		invalidParams.Add(request.NewErrParamRequired("Name"))
5548	}
5549	if s.Name != nil && len(*s.Name) < 1 {
5550		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5551	}
5552
5553	if invalidParams.Len() > 0 {
5554		return invalidParams
5555	}
5556	return nil
5557}
5558
5559// SetName sets the Name field's value.
5560func (s *DeleteIntentInput) SetName(v string) *DeleteIntentInput {
5561	s.Name = &v
5562	return s
5563}
5564
5565type DeleteIntentOutput struct {
5566	_ struct{} `type:"structure"`
5567}
5568
5569// String returns the string representation
5570func (s DeleteIntentOutput) String() string {
5571	return awsutil.Prettify(s)
5572}
5573
5574// GoString returns the string representation
5575func (s DeleteIntentOutput) GoString() string {
5576	return s.String()
5577}
5578
5579type DeleteIntentVersionInput struct {
5580	_ struct{} `type:"structure"`
5581
5582	// The name of the intent.
5583	//
5584	// Name is a required field
5585	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5586
5587	// The version of the intent to delete. You cannot delete the $LATEST version
5588	// of the intent. To delete the $LATEST version, use the DeleteIntent operation.
5589	//
5590	// Version is a required field
5591	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
5592}
5593
5594// String returns the string representation
5595func (s DeleteIntentVersionInput) String() string {
5596	return awsutil.Prettify(s)
5597}
5598
5599// GoString returns the string representation
5600func (s DeleteIntentVersionInput) GoString() string {
5601	return s.String()
5602}
5603
5604// Validate inspects the fields of the type to determine if they are valid.
5605func (s *DeleteIntentVersionInput) Validate() error {
5606	invalidParams := request.ErrInvalidParams{Context: "DeleteIntentVersionInput"}
5607	if s.Name == nil {
5608		invalidParams.Add(request.NewErrParamRequired("Name"))
5609	}
5610	if s.Name != nil && len(*s.Name) < 1 {
5611		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5612	}
5613	if s.Version == nil {
5614		invalidParams.Add(request.NewErrParamRequired("Version"))
5615	}
5616	if s.Version != nil && len(*s.Version) < 1 {
5617		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
5618	}
5619
5620	if invalidParams.Len() > 0 {
5621		return invalidParams
5622	}
5623	return nil
5624}
5625
5626// SetName sets the Name field's value.
5627func (s *DeleteIntentVersionInput) SetName(v string) *DeleteIntentVersionInput {
5628	s.Name = &v
5629	return s
5630}
5631
5632// SetVersion sets the Version field's value.
5633func (s *DeleteIntentVersionInput) SetVersion(v string) *DeleteIntentVersionInput {
5634	s.Version = &v
5635	return s
5636}
5637
5638type DeleteIntentVersionOutput struct {
5639	_ struct{} `type:"structure"`
5640}
5641
5642// String returns the string representation
5643func (s DeleteIntentVersionOutput) String() string {
5644	return awsutil.Prettify(s)
5645}
5646
5647// GoString returns the string representation
5648func (s DeleteIntentVersionOutput) GoString() string {
5649	return s.String()
5650}
5651
5652type DeleteSlotTypeInput struct {
5653	_ struct{} `type:"structure"`
5654
5655	// The name of the slot type. The name is case sensitive.
5656	//
5657	// Name is a required field
5658	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5659}
5660
5661// String returns the string representation
5662func (s DeleteSlotTypeInput) String() string {
5663	return awsutil.Prettify(s)
5664}
5665
5666// GoString returns the string representation
5667func (s DeleteSlotTypeInput) GoString() string {
5668	return s.String()
5669}
5670
5671// Validate inspects the fields of the type to determine if they are valid.
5672func (s *DeleteSlotTypeInput) Validate() error {
5673	invalidParams := request.ErrInvalidParams{Context: "DeleteSlotTypeInput"}
5674	if s.Name == nil {
5675		invalidParams.Add(request.NewErrParamRequired("Name"))
5676	}
5677	if s.Name != nil && len(*s.Name) < 1 {
5678		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5679	}
5680
5681	if invalidParams.Len() > 0 {
5682		return invalidParams
5683	}
5684	return nil
5685}
5686
5687// SetName sets the Name field's value.
5688func (s *DeleteSlotTypeInput) SetName(v string) *DeleteSlotTypeInput {
5689	s.Name = &v
5690	return s
5691}
5692
5693type DeleteSlotTypeOutput struct {
5694	_ struct{} `type:"structure"`
5695}
5696
5697// String returns the string representation
5698func (s DeleteSlotTypeOutput) String() string {
5699	return awsutil.Prettify(s)
5700}
5701
5702// GoString returns the string representation
5703func (s DeleteSlotTypeOutput) GoString() string {
5704	return s.String()
5705}
5706
5707type DeleteSlotTypeVersionInput struct {
5708	_ struct{} `type:"structure"`
5709
5710	// The name of the slot type.
5711	//
5712	// Name is a required field
5713	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
5714
5715	// The version of the slot type to delete. You cannot delete the $LATEST version
5716	// of the slot type. To delete the $LATEST version, use the DeleteSlotType operation.
5717	//
5718	// Version is a required field
5719	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
5720}
5721
5722// String returns the string representation
5723func (s DeleteSlotTypeVersionInput) String() string {
5724	return awsutil.Prettify(s)
5725}
5726
5727// GoString returns the string representation
5728func (s DeleteSlotTypeVersionInput) GoString() string {
5729	return s.String()
5730}
5731
5732// Validate inspects the fields of the type to determine if they are valid.
5733func (s *DeleteSlotTypeVersionInput) Validate() error {
5734	invalidParams := request.ErrInvalidParams{Context: "DeleteSlotTypeVersionInput"}
5735	if s.Name == nil {
5736		invalidParams.Add(request.NewErrParamRequired("Name"))
5737	}
5738	if s.Name != nil && len(*s.Name) < 1 {
5739		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5740	}
5741	if s.Version == nil {
5742		invalidParams.Add(request.NewErrParamRequired("Version"))
5743	}
5744	if s.Version != nil && len(*s.Version) < 1 {
5745		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
5746	}
5747
5748	if invalidParams.Len() > 0 {
5749		return invalidParams
5750	}
5751	return nil
5752}
5753
5754// SetName sets the Name field's value.
5755func (s *DeleteSlotTypeVersionInput) SetName(v string) *DeleteSlotTypeVersionInput {
5756	s.Name = &v
5757	return s
5758}
5759
5760// SetVersion sets the Version field's value.
5761func (s *DeleteSlotTypeVersionInput) SetVersion(v string) *DeleteSlotTypeVersionInput {
5762	s.Version = &v
5763	return s
5764}
5765
5766type DeleteSlotTypeVersionOutput struct {
5767	_ struct{} `type:"structure"`
5768}
5769
5770// String returns the string representation
5771func (s DeleteSlotTypeVersionOutput) String() string {
5772	return awsutil.Prettify(s)
5773}
5774
5775// GoString returns the string representation
5776func (s DeleteSlotTypeVersionOutput) GoString() string {
5777	return s.String()
5778}
5779
5780type DeleteUtterancesInput struct {
5781	_ struct{} `type:"structure"`
5782
5783	// The name of the bot that stored the utterances.
5784	//
5785	// BotName is a required field
5786	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
5787
5788	// The unique identifier for the user that made the utterances. This is the
5789	// user ID that was sent in the PostContent (http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostContent.html)
5790	// or PostText (http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
5791	// operation request that contained the utterance.
5792	//
5793	// UserId is a required field
5794	UserId *string `location:"uri" locationName:"userId" min:"2" type:"string" required:"true"`
5795}
5796
5797// String returns the string representation
5798func (s DeleteUtterancesInput) String() string {
5799	return awsutil.Prettify(s)
5800}
5801
5802// GoString returns the string representation
5803func (s DeleteUtterancesInput) GoString() string {
5804	return s.String()
5805}
5806
5807// Validate inspects the fields of the type to determine if they are valid.
5808func (s *DeleteUtterancesInput) Validate() error {
5809	invalidParams := request.ErrInvalidParams{Context: "DeleteUtterancesInput"}
5810	if s.BotName == nil {
5811		invalidParams.Add(request.NewErrParamRequired("BotName"))
5812	}
5813	if s.BotName != nil && len(*s.BotName) < 2 {
5814		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
5815	}
5816	if s.UserId == nil {
5817		invalidParams.Add(request.NewErrParamRequired("UserId"))
5818	}
5819	if s.UserId != nil && len(*s.UserId) < 2 {
5820		invalidParams.Add(request.NewErrParamMinLen("UserId", 2))
5821	}
5822
5823	if invalidParams.Len() > 0 {
5824		return invalidParams
5825	}
5826	return nil
5827}
5828
5829// SetBotName sets the BotName field's value.
5830func (s *DeleteUtterancesInput) SetBotName(v string) *DeleteUtterancesInput {
5831	s.BotName = &v
5832	return s
5833}
5834
5835// SetUserId sets the UserId field's value.
5836func (s *DeleteUtterancesInput) SetUserId(v string) *DeleteUtterancesInput {
5837	s.UserId = &v
5838	return s
5839}
5840
5841type DeleteUtterancesOutput struct {
5842	_ struct{} `type:"structure"`
5843}
5844
5845// String returns the string representation
5846func (s DeleteUtterancesOutput) String() string {
5847	return awsutil.Prettify(s)
5848}
5849
5850// GoString returns the string representation
5851func (s DeleteUtterancesOutput) GoString() string {
5852	return s.String()
5853}
5854
5855// Each slot type can have a set of values. Each enumeration value represents
5856// a value the slot type can take.
5857//
5858// For example, a pizza ordering bot could have a slot type that specifies the
5859// type of crust that the pizza should have. The slot type could include the
5860// values
5861//
5862//    * thick
5863//
5864//    * thin
5865//
5866//    * stuffed
5867type EnumerationValue struct {
5868	_ struct{} `type:"structure"`
5869
5870	// Additional values related to the slot type value.
5871	Synonyms []*string `locationName:"synonyms" type:"list"`
5872
5873	// The value of the slot type.
5874	//
5875	// Value is a required field
5876	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
5877}
5878
5879// String returns the string representation
5880func (s EnumerationValue) String() string {
5881	return awsutil.Prettify(s)
5882}
5883
5884// GoString returns the string representation
5885func (s EnumerationValue) GoString() string {
5886	return s.String()
5887}
5888
5889// Validate inspects the fields of the type to determine if they are valid.
5890func (s *EnumerationValue) Validate() error {
5891	invalidParams := request.ErrInvalidParams{Context: "EnumerationValue"}
5892	if s.Value == nil {
5893		invalidParams.Add(request.NewErrParamRequired("Value"))
5894	}
5895	if s.Value != nil && len(*s.Value) < 1 {
5896		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
5897	}
5898
5899	if invalidParams.Len() > 0 {
5900		return invalidParams
5901	}
5902	return nil
5903}
5904
5905// SetSynonyms sets the Synonyms field's value.
5906func (s *EnumerationValue) SetSynonyms(v []*string) *EnumerationValue {
5907	s.Synonyms = v
5908	return s
5909}
5910
5911// SetValue sets the Value field's value.
5912func (s *EnumerationValue) SetValue(v string) *EnumerationValue {
5913	s.Value = &v
5914	return s
5915}
5916
5917// A prompt for additional activity after an intent is fulfilled. For example,
5918// after the OrderPizza intent is fulfilled, you might prompt the user to find
5919// out whether the user wants to order drinks.
5920type FollowUpPrompt struct {
5921	_ struct{} `type:"structure"`
5922
5923	// Prompts for information from the user.
5924	//
5925	// Prompt is a required field
5926	Prompt *Prompt `locationName:"prompt" type:"structure" required:"true"`
5927
5928	// If the user answers "no" to the question defined in the prompt field, Amazon
5929	// Lex responds with this statement to acknowledge that the intent was canceled.
5930	//
5931	// RejectionStatement is a required field
5932	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure" required:"true"`
5933}
5934
5935// String returns the string representation
5936func (s FollowUpPrompt) String() string {
5937	return awsutil.Prettify(s)
5938}
5939
5940// GoString returns the string representation
5941func (s FollowUpPrompt) GoString() string {
5942	return s.String()
5943}
5944
5945// Validate inspects the fields of the type to determine if they are valid.
5946func (s *FollowUpPrompt) Validate() error {
5947	invalidParams := request.ErrInvalidParams{Context: "FollowUpPrompt"}
5948	if s.Prompt == nil {
5949		invalidParams.Add(request.NewErrParamRequired("Prompt"))
5950	}
5951	if s.RejectionStatement == nil {
5952		invalidParams.Add(request.NewErrParamRequired("RejectionStatement"))
5953	}
5954	if s.Prompt != nil {
5955		if err := s.Prompt.Validate(); err != nil {
5956			invalidParams.AddNested("Prompt", err.(request.ErrInvalidParams))
5957		}
5958	}
5959	if s.RejectionStatement != nil {
5960		if err := s.RejectionStatement.Validate(); err != nil {
5961			invalidParams.AddNested("RejectionStatement", err.(request.ErrInvalidParams))
5962		}
5963	}
5964
5965	if invalidParams.Len() > 0 {
5966		return invalidParams
5967	}
5968	return nil
5969}
5970
5971// SetPrompt sets the Prompt field's value.
5972func (s *FollowUpPrompt) SetPrompt(v *Prompt) *FollowUpPrompt {
5973	s.Prompt = v
5974	return s
5975}
5976
5977// SetRejectionStatement sets the RejectionStatement field's value.
5978func (s *FollowUpPrompt) SetRejectionStatement(v *Statement) *FollowUpPrompt {
5979	s.RejectionStatement = v
5980	return s
5981}
5982
5983// Describes how the intent is fulfilled after the user provides all of the
5984// information required for the intent. You can provide a Lambda function to
5985// process the intent, or you can return the intent information to the client
5986// application. We recommend that you use a Lambda function so that the relevant
5987// logic lives in the Cloud and limit the client-side code primarily to presentation.
5988// If you need to update the logic, you only update the Lambda function; you
5989// don't need to upgrade your client application.
5990//
5991// Consider the following examples:
5992//
5993//    * In a pizza ordering application, after the user provides all of the
5994//    information for placing an order, you use a Lambda function to place an
5995//    order with a pizzeria.
5996//
5997//    * In a gaming application, when a user says "pick up a rock," this information
5998//    must go back to the client application so that it can perform the operation
5999//    and update the graphics. In this case, you want Amazon Lex to return the
6000//    intent data to the client.
6001type FulfillmentActivity struct {
6002	_ struct{} `type:"structure"`
6003
6004	// A description of the Lambda function that is run to fulfill the intent.
6005	CodeHook *CodeHook `locationName:"codeHook" type:"structure"`
6006
6007	// How the intent should be fulfilled, either by running a Lambda function or
6008	// by returning the slot data to the client application.
6009	//
6010	// Type is a required field
6011	Type *string `locationName:"type" type:"string" required:"true" enum:"FulfillmentActivityType"`
6012}
6013
6014// String returns the string representation
6015func (s FulfillmentActivity) String() string {
6016	return awsutil.Prettify(s)
6017}
6018
6019// GoString returns the string representation
6020func (s FulfillmentActivity) GoString() string {
6021	return s.String()
6022}
6023
6024// Validate inspects the fields of the type to determine if they are valid.
6025func (s *FulfillmentActivity) Validate() error {
6026	invalidParams := request.ErrInvalidParams{Context: "FulfillmentActivity"}
6027	if s.Type == nil {
6028		invalidParams.Add(request.NewErrParamRequired("Type"))
6029	}
6030	if s.CodeHook != nil {
6031		if err := s.CodeHook.Validate(); err != nil {
6032			invalidParams.AddNested("CodeHook", err.(request.ErrInvalidParams))
6033		}
6034	}
6035
6036	if invalidParams.Len() > 0 {
6037		return invalidParams
6038	}
6039	return nil
6040}
6041
6042// SetCodeHook sets the CodeHook field's value.
6043func (s *FulfillmentActivity) SetCodeHook(v *CodeHook) *FulfillmentActivity {
6044	s.CodeHook = v
6045	return s
6046}
6047
6048// SetType sets the Type field's value.
6049func (s *FulfillmentActivity) SetType(v string) *FulfillmentActivity {
6050	s.Type = &v
6051	return s
6052}
6053
6054type GetBotAliasInput struct {
6055	_ struct{} `type:"structure"`
6056
6057	// The name of the bot.
6058	//
6059	// BotName is a required field
6060	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
6061
6062	// The name of the bot alias. The name is case sensitive.
6063	//
6064	// Name is a required field
6065	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6066}
6067
6068// String returns the string representation
6069func (s GetBotAliasInput) String() string {
6070	return awsutil.Prettify(s)
6071}
6072
6073// GoString returns the string representation
6074func (s GetBotAliasInput) GoString() string {
6075	return s.String()
6076}
6077
6078// Validate inspects the fields of the type to determine if they are valid.
6079func (s *GetBotAliasInput) Validate() error {
6080	invalidParams := request.ErrInvalidParams{Context: "GetBotAliasInput"}
6081	if s.BotName == nil {
6082		invalidParams.Add(request.NewErrParamRequired("BotName"))
6083	}
6084	if s.BotName != nil && len(*s.BotName) < 2 {
6085		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
6086	}
6087	if s.Name == nil {
6088		invalidParams.Add(request.NewErrParamRequired("Name"))
6089	}
6090	if s.Name != nil && len(*s.Name) < 1 {
6091		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6092	}
6093
6094	if invalidParams.Len() > 0 {
6095		return invalidParams
6096	}
6097	return nil
6098}
6099
6100// SetBotName sets the BotName field's value.
6101func (s *GetBotAliasInput) SetBotName(v string) *GetBotAliasInput {
6102	s.BotName = &v
6103	return s
6104}
6105
6106// SetName sets the Name field's value.
6107func (s *GetBotAliasInput) SetName(v string) *GetBotAliasInput {
6108	s.Name = &v
6109	return s
6110}
6111
6112type GetBotAliasOutput struct {
6113	_ struct{} `type:"structure"`
6114
6115	// The name of the bot that the alias points to.
6116	BotName *string `locationName:"botName" min:"2" type:"string"`
6117
6118	// The version of the bot that the alias points to.
6119	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
6120
6121	// Checksum of the bot alias.
6122	Checksum *string `locationName:"checksum" type:"string"`
6123
6124	// The date that the bot alias was created.
6125	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
6126
6127	// A description of the bot alias.
6128	Description *string `locationName:"description" type:"string"`
6129
6130	// The date that the bot alias was updated. When you create a resource, the
6131	// creation date and the last updated date are the same.
6132	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
6133
6134	// The name of the bot alias.
6135	Name *string `locationName:"name" min:"1" type:"string"`
6136}
6137
6138// String returns the string representation
6139func (s GetBotAliasOutput) String() string {
6140	return awsutil.Prettify(s)
6141}
6142
6143// GoString returns the string representation
6144func (s GetBotAliasOutput) GoString() string {
6145	return s.String()
6146}
6147
6148// SetBotName sets the BotName field's value.
6149func (s *GetBotAliasOutput) SetBotName(v string) *GetBotAliasOutput {
6150	s.BotName = &v
6151	return s
6152}
6153
6154// SetBotVersion sets the BotVersion field's value.
6155func (s *GetBotAliasOutput) SetBotVersion(v string) *GetBotAliasOutput {
6156	s.BotVersion = &v
6157	return s
6158}
6159
6160// SetChecksum sets the Checksum field's value.
6161func (s *GetBotAliasOutput) SetChecksum(v string) *GetBotAliasOutput {
6162	s.Checksum = &v
6163	return s
6164}
6165
6166// SetCreatedDate sets the CreatedDate field's value.
6167func (s *GetBotAliasOutput) SetCreatedDate(v time.Time) *GetBotAliasOutput {
6168	s.CreatedDate = &v
6169	return s
6170}
6171
6172// SetDescription sets the Description field's value.
6173func (s *GetBotAliasOutput) SetDescription(v string) *GetBotAliasOutput {
6174	s.Description = &v
6175	return s
6176}
6177
6178// SetLastUpdatedDate sets the LastUpdatedDate field's value.
6179func (s *GetBotAliasOutput) SetLastUpdatedDate(v time.Time) *GetBotAliasOutput {
6180	s.LastUpdatedDate = &v
6181	return s
6182}
6183
6184// SetName sets the Name field's value.
6185func (s *GetBotAliasOutput) SetName(v string) *GetBotAliasOutput {
6186	s.Name = &v
6187	return s
6188}
6189
6190type GetBotAliasesInput struct {
6191	_ struct{} `type:"structure"`
6192
6193	// The name of the bot.
6194	//
6195	// BotName is a required field
6196	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
6197
6198	// The maximum number of aliases to return in the response. The default is 50. .
6199	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
6200
6201	// Substring to match in bot alias names. An alias will be returned if any part
6202	// of its name matches the substring. For example, "xyz" matches both "xyzabc"
6203	// and "abcxyz."
6204	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
6205
6206	// A pagination token for fetching the next page of aliases. If the response
6207	// to this call is truncated, Amazon Lex returns a pagination token in the response.
6208	// To fetch the next page of aliases, specify the pagination token in the next
6209	// request.
6210	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
6211}
6212
6213// String returns the string representation
6214func (s GetBotAliasesInput) String() string {
6215	return awsutil.Prettify(s)
6216}
6217
6218// GoString returns the string representation
6219func (s GetBotAliasesInput) GoString() string {
6220	return s.String()
6221}
6222
6223// Validate inspects the fields of the type to determine if they are valid.
6224func (s *GetBotAliasesInput) Validate() error {
6225	invalidParams := request.ErrInvalidParams{Context: "GetBotAliasesInput"}
6226	if s.BotName == nil {
6227		invalidParams.Add(request.NewErrParamRequired("BotName"))
6228	}
6229	if s.BotName != nil && len(*s.BotName) < 2 {
6230		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
6231	}
6232	if s.MaxResults != nil && *s.MaxResults < 1 {
6233		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6234	}
6235	if s.NameContains != nil && len(*s.NameContains) < 1 {
6236		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
6237	}
6238
6239	if invalidParams.Len() > 0 {
6240		return invalidParams
6241	}
6242	return nil
6243}
6244
6245// SetBotName sets the BotName field's value.
6246func (s *GetBotAliasesInput) SetBotName(v string) *GetBotAliasesInput {
6247	s.BotName = &v
6248	return s
6249}
6250
6251// SetMaxResults sets the MaxResults field's value.
6252func (s *GetBotAliasesInput) SetMaxResults(v int64) *GetBotAliasesInput {
6253	s.MaxResults = &v
6254	return s
6255}
6256
6257// SetNameContains sets the NameContains field's value.
6258func (s *GetBotAliasesInput) SetNameContains(v string) *GetBotAliasesInput {
6259	s.NameContains = &v
6260	return s
6261}
6262
6263// SetNextToken sets the NextToken field's value.
6264func (s *GetBotAliasesInput) SetNextToken(v string) *GetBotAliasesInput {
6265	s.NextToken = &v
6266	return s
6267}
6268
6269type GetBotAliasesOutput struct {
6270	_ struct{} `type:"structure"`
6271
6272	// An array of BotAliasMetadata objects, each describing a bot alias.
6273	BotAliases []*BotAliasMetadata `type:"list"`
6274
6275	// A pagination token for fetching next page of aliases. If the response to
6276	// this call is truncated, Amazon Lex returns a pagination token in the response.
6277	// To fetch the next page of aliases, specify the pagination token in the next
6278	// request.
6279	NextToken *string `locationName:"nextToken" type:"string"`
6280}
6281
6282// String returns the string representation
6283func (s GetBotAliasesOutput) String() string {
6284	return awsutil.Prettify(s)
6285}
6286
6287// GoString returns the string representation
6288func (s GetBotAliasesOutput) GoString() string {
6289	return s.String()
6290}
6291
6292// SetBotAliases sets the BotAliases field's value.
6293func (s *GetBotAliasesOutput) SetBotAliases(v []*BotAliasMetadata) *GetBotAliasesOutput {
6294	s.BotAliases = v
6295	return s
6296}
6297
6298// SetNextToken sets the NextToken field's value.
6299func (s *GetBotAliasesOutput) SetNextToken(v string) *GetBotAliasesOutput {
6300	s.NextToken = &v
6301	return s
6302}
6303
6304type GetBotChannelAssociationInput struct {
6305	_ struct{} `type:"structure"`
6306
6307	// An alias pointing to the specific version of the Amazon Lex bot to which
6308	// this association is being made.
6309	//
6310	// BotAlias is a required field
6311	BotAlias *string `location:"uri" locationName:"aliasName" min:"1" type:"string" required:"true"`
6312
6313	// The name of the Amazon Lex bot.
6314	//
6315	// BotName is a required field
6316	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
6317
6318	// The name of the association between the bot and the channel. The name is
6319	// case sensitive.
6320	//
6321	// Name is a required field
6322	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
6323}
6324
6325// String returns the string representation
6326func (s GetBotChannelAssociationInput) String() string {
6327	return awsutil.Prettify(s)
6328}
6329
6330// GoString returns the string representation
6331func (s GetBotChannelAssociationInput) GoString() string {
6332	return s.String()
6333}
6334
6335// Validate inspects the fields of the type to determine if they are valid.
6336func (s *GetBotChannelAssociationInput) Validate() error {
6337	invalidParams := request.ErrInvalidParams{Context: "GetBotChannelAssociationInput"}
6338	if s.BotAlias == nil {
6339		invalidParams.Add(request.NewErrParamRequired("BotAlias"))
6340	}
6341	if s.BotAlias != nil && len(*s.BotAlias) < 1 {
6342		invalidParams.Add(request.NewErrParamMinLen("BotAlias", 1))
6343	}
6344	if s.BotName == nil {
6345		invalidParams.Add(request.NewErrParamRequired("BotName"))
6346	}
6347	if s.BotName != nil && len(*s.BotName) < 2 {
6348		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
6349	}
6350	if s.Name == nil {
6351		invalidParams.Add(request.NewErrParamRequired("Name"))
6352	}
6353	if s.Name != nil && len(*s.Name) < 1 {
6354		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6355	}
6356
6357	if invalidParams.Len() > 0 {
6358		return invalidParams
6359	}
6360	return nil
6361}
6362
6363// SetBotAlias sets the BotAlias field's value.
6364func (s *GetBotChannelAssociationInput) SetBotAlias(v string) *GetBotChannelAssociationInput {
6365	s.BotAlias = &v
6366	return s
6367}
6368
6369// SetBotName sets the BotName field's value.
6370func (s *GetBotChannelAssociationInput) SetBotName(v string) *GetBotChannelAssociationInput {
6371	s.BotName = &v
6372	return s
6373}
6374
6375// SetName sets the Name field's value.
6376func (s *GetBotChannelAssociationInput) SetName(v string) *GetBotChannelAssociationInput {
6377	s.Name = &v
6378	return s
6379}
6380
6381type GetBotChannelAssociationOutput struct {
6382	_ struct{} `type:"structure"`
6383
6384	// An alias pointing to the specific version of the Amazon Lex bot to which
6385	// this association is being made.
6386	BotAlias *string `locationName:"botAlias" min:"1" type:"string"`
6387
6388	// Provides information that the messaging platform needs to communicate with
6389	// the Amazon Lex bot.
6390	BotConfiguration map[string]*string `locationName:"botConfiguration" min:"1" type:"map" sensitive:"true"`
6391
6392	// The name of the Amazon Lex bot.
6393	BotName *string `locationName:"botName" min:"2" type:"string"`
6394
6395	// The date that the association between the bot and the channel was created.
6396	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
6397
6398	// A description of the association between the bot and the channel.
6399	Description *string `locationName:"description" type:"string"`
6400
6401	// If status is FAILED, Amazon Lex provides the reason that it failed to create
6402	// the association.
6403	FailureReason *string `locationName:"failureReason" type:"string"`
6404
6405	// The name of the association between the bot and the channel.
6406	Name *string `locationName:"name" min:"1" type:"string"`
6407
6408	// The status of the bot channel.
6409	//
6410	//    * CREATED - The channel has been created and is ready for use.
6411	//
6412	//    * IN_PROGRESS - Channel creation is in progress.
6413	//
6414	//    * FAILED - There was an error creating the channel. For information about
6415	//    the reason for the failure, see the failureReason field.
6416	Status *string `locationName:"status" type:"string" enum:"ChannelStatus"`
6417
6418	// The type of the messaging platform.
6419	Type *string `locationName:"type" type:"string" enum:"ChannelType"`
6420}
6421
6422// String returns the string representation
6423func (s GetBotChannelAssociationOutput) String() string {
6424	return awsutil.Prettify(s)
6425}
6426
6427// GoString returns the string representation
6428func (s GetBotChannelAssociationOutput) GoString() string {
6429	return s.String()
6430}
6431
6432// SetBotAlias sets the BotAlias field's value.
6433func (s *GetBotChannelAssociationOutput) SetBotAlias(v string) *GetBotChannelAssociationOutput {
6434	s.BotAlias = &v
6435	return s
6436}
6437
6438// SetBotConfiguration sets the BotConfiguration field's value.
6439func (s *GetBotChannelAssociationOutput) SetBotConfiguration(v map[string]*string) *GetBotChannelAssociationOutput {
6440	s.BotConfiguration = v
6441	return s
6442}
6443
6444// SetBotName sets the BotName field's value.
6445func (s *GetBotChannelAssociationOutput) SetBotName(v string) *GetBotChannelAssociationOutput {
6446	s.BotName = &v
6447	return s
6448}
6449
6450// SetCreatedDate sets the CreatedDate field's value.
6451func (s *GetBotChannelAssociationOutput) SetCreatedDate(v time.Time) *GetBotChannelAssociationOutput {
6452	s.CreatedDate = &v
6453	return s
6454}
6455
6456// SetDescription sets the Description field's value.
6457func (s *GetBotChannelAssociationOutput) SetDescription(v string) *GetBotChannelAssociationOutput {
6458	s.Description = &v
6459	return s
6460}
6461
6462// SetFailureReason sets the FailureReason field's value.
6463func (s *GetBotChannelAssociationOutput) SetFailureReason(v string) *GetBotChannelAssociationOutput {
6464	s.FailureReason = &v
6465	return s
6466}
6467
6468// SetName sets the Name field's value.
6469func (s *GetBotChannelAssociationOutput) SetName(v string) *GetBotChannelAssociationOutput {
6470	s.Name = &v
6471	return s
6472}
6473
6474// SetStatus sets the Status field's value.
6475func (s *GetBotChannelAssociationOutput) SetStatus(v string) *GetBotChannelAssociationOutput {
6476	s.Status = &v
6477	return s
6478}
6479
6480// SetType sets the Type field's value.
6481func (s *GetBotChannelAssociationOutput) SetType(v string) *GetBotChannelAssociationOutput {
6482	s.Type = &v
6483	return s
6484}
6485
6486type GetBotChannelAssociationsInput struct {
6487	_ struct{} `type:"structure"`
6488
6489	// An alias pointing to the specific version of the Amazon Lex bot to which
6490	// this association is being made.
6491	//
6492	// BotAlias is a required field
6493	BotAlias *string `location:"uri" locationName:"aliasName" min:"1" type:"string" required:"true"`
6494
6495	// The name of the Amazon Lex bot in the association.
6496	//
6497	// BotName is a required field
6498	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
6499
6500	// The maximum number of associations to return in the response. The default
6501	// is 50.
6502	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
6503
6504	// Substring to match in channel association names. An association will be returned
6505	// if any part of its name matches the substring. For example, "xyz" matches
6506	// both "xyzabc" and "abcxyz." To return all bot channel associations, use a
6507	// hyphen ("-") as the nameContains parameter.
6508	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
6509
6510	// A pagination token for fetching the next page of associations. If the response
6511	// to this call is truncated, Amazon Lex returns a pagination token in the response.
6512	// To fetch the next page of associations, specify the pagination token in the
6513	// next request.
6514	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
6515}
6516
6517// String returns the string representation
6518func (s GetBotChannelAssociationsInput) String() string {
6519	return awsutil.Prettify(s)
6520}
6521
6522// GoString returns the string representation
6523func (s GetBotChannelAssociationsInput) GoString() string {
6524	return s.String()
6525}
6526
6527// Validate inspects the fields of the type to determine if they are valid.
6528func (s *GetBotChannelAssociationsInput) Validate() error {
6529	invalidParams := request.ErrInvalidParams{Context: "GetBotChannelAssociationsInput"}
6530	if s.BotAlias == nil {
6531		invalidParams.Add(request.NewErrParamRequired("BotAlias"))
6532	}
6533	if s.BotAlias != nil && len(*s.BotAlias) < 1 {
6534		invalidParams.Add(request.NewErrParamMinLen("BotAlias", 1))
6535	}
6536	if s.BotName == nil {
6537		invalidParams.Add(request.NewErrParamRequired("BotName"))
6538	}
6539	if s.BotName != nil && len(*s.BotName) < 2 {
6540		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
6541	}
6542	if s.MaxResults != nil && *s.MaxResults < 1 {
6543		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6544	}
6545	if s.NameContains != nil && len(*s.NameContains) < 1 {
6546		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
6547	}
6548
6549	if invalidParams.Len() > 0 {
6550		return invalidParams
6551	}
6552	return nil
6553}
6554
6555// SetBotAlias sets the BotAlias field's value.
6556func (s *GetBotChannelAssociationsInput) SetBotAlias(v string) *GetBotChannelAssociationsInput {
6557	s.BotAlias = &v
6558	return s
6559}
6560
6561// SetBotName sets the BotName field's value.
6562func (s *GetBotChannelAssociationsInput) SetBotName(v string) *GetBotChannelAssociationsInput {
6563	s.BotName = &v
6564	return s
6565}
6566
6567// SetMaxResults sets the MaxResults field's value.
6568func (s *GetBotChannelAssociationsInput) SetMaxResults(v int64) *GetBotChannelAssociationsInput {
6569	s.MaxResults = &v
6570	return s
6571}
6572
6573// SetNameContains sets the NameContains field's value.
6574func (s *GetBotChannelAssociationsInput) SetNameContains(v string) *GetBotChannelAssociationsInput {
6575	s.NameContains = &v
6576	return s
6577}
6578
6579// SetNextToken sets the NextToken field's value.
6580func (s *GetBotChannelAssociationsInput) SetNextToken(v string) *GetBotChannelAssociationsInput {
6581	s.NextToken = &v
6582	return s
6583}
6584
6585type GetBotChannelAssociationsOutput struct {
6586	_ struct{} `type:"structure"`
6587
6588	// An array of objects, one for each association, that provides information
6589	// about the Amazon Lex bot and its association with the channel.
6590	BotChannelAssociations []*BotChannelAssociation `locationName:"botChannelAssociations" type:"list"`
6591
6592	// A pagination token that fetches the next page of associations. If the response
6593	// to this call is truncated, Amazon Lex returns a pagination token in the response.
6594	// To fetch the next page of associations, specify the pagination token in the
6595	// next request.
6596	NextToken *string `locationName:"nextToken" type:"string"`
6597}
6598
6599// String returns the string representation
6600func (s GetBotChannelAssociationsOutput) String() string {
6601	return awsutil.Prettify(s)
6602}
6603
6604// GoString returns the string representation
6605func (s GetBotChannelAssociationsOutput) GoString() string {
6606	return s.String()
6607}
6608
6609// SetBotChannelAssociations sets the BotChannelAssociations field's value.
6610func (s *GetBotChannelAssociationsOutput) SetBotChannelAssociations(v []*BotChannelAssociation) *GetBotChannelAssociationsOutput {
6611	s.BotChannelAssociations = v
6612	return s
6613}
6614
6615// SetNextToken sets the NextToken field's value.
6616func (s *GetBotChannelAssociationsOutput) SetNextToken(v string) *GetBotChannelAssociationsOutput {
6617	s.NextToken = &v
6618	return s
6619}
6620
6621type GetBotInput struct {
6622	_ struct{} `type:"structure"`
6623
6624	// The name of the bot. The name is case sensitive.
6625	//
6626	// Name is a required field
6627	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
6628
6629	// The version or alias of the bot.
6630	//
6631	// VersionOrAlias is a required field
6632	VersionOrAlias *string `location:"uri" locationName:"versionoralias" type:"string" required:"true"`
6633}
6634
6635// String returns the string representation
6636func (s GetBotInput) String() string {
6637	return awsutil.Prettify(s)
6638}
6639
6640// GoString returns the string representation
6641func (s GetBotInput) GoString() string {
6642	return s.String()
6643}
6644
6645// Validate inspects the fields of the type to determine if they are valid.
6646func (s *GetBotInput) Validate() error {
6647	invalidParams := request.ErrInvalidParams{Context: "GetBotInput"}
6648	if s.Name == nil {
6649		invalidParams.Add(request.NewErrParamRequired("Name"))
6650	}
6651	if s.Name != nil && len(*s.Name) < 2 {
6652		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
6653	}
6654	if s.VersionOrAlias == nil {
6655		invalidParams.Add(request.NewErrParamRequired("VersionOrAlias"))
6656	}
6657	if s.VersionOrAlias != nil && len(*s.VersionOrAlias) < 1 {
6658		invalidParams.Add(request.NewErrParamMinLen("VersionOrAlias", 1))
6659	}
6660
6661	if invalidParams.Len() > 0 {
6662		return invalidParams
6663	}
6664	return nil
6665}
6666
6667// SetName sets the Name field's value.
6668func (s *GetBotInput) SetName(v string) *GetBotInput {
6669	s.Name = &v
6670	return s
6671}
6672
6673// SetVersionOrAlias sets the VersionOrAlias field's value.
6674func (s *GetBotInput) SetVersionOrAlias(v string) *GetBotInput {
6675	s.VersionOrAlias = &v
6676	return s
6677}
6678
6679type GetBotOutput struct {
6680	_ struct{} `type:"structure"`
6681
6682	// The message that Amazon Lex returns when the user elects to end the conversation
6683	// without completing it. For more information, see PutBot.
6684	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
6685
6686	// Checksum of the bot used to identify a specific revision of the bot's $LATEST
6687	// version.
6688	Checksum *string `locationName:"checksum" type:"string"`
6689
6690	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
6691	// you must specify whether your use of Amazon Lex is related to a website,
6692	// program, or other application that is directed or targeted, in whole or in
6693	// part, to children under age 13 and subject to the Children's Online Privacy
6694	// Protection Act (COPPA) by specifying true or false in the childDirected field.
6695	// By specifying true in the childDirected field, you confirm that your use
6696	// of Amazon Lex is related to a website, program, or other application that
6697	// is directed or targeted, in whole or in part, to children under age 13 and
6698	// subject to COPPA. By specifying false in the childDirected field, you confirm
6699	// that your use of Amazon Lex is not related to a website, program, or other
6700	// application that is directed or targeted, in whole or in part, to children
6701	// under age 13 and subject to COPPA. You may not specify a default value for
6702	// the childDirected field that does not accurately reflect whether your use
6703	// of Amazon Lex is related to a website, program, or other application that
6704	// is directed or targeted, in whole or in part, to children under age 13 and
6705	// subject to COPPA.
6706	//
6707	// If your use of Amazon Lex relates to a website, program, or other application
6708	// that is directed in whole or in part, to children under age 13, you must
6709	// obtain any required verifiable parental consent under COPPA. For information
6710	// regarding the use of Amazon Lex in connection with websites, programs, or
6711	// other applications that are directed or targeted, in whole or in part, to
6712	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
6713	ChildDirected *bool `locationName:"childDirected" type:"boolean"`
6714
6715	// The message Amazon Lex uses when it doesn't understand the user's request.
6716	// For more information, see PutBot.
6717	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
6718
6719	// The date that the bot was created.
6720	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
6721
6722	// A description of the bot.
6723	Description *string `locationName:"description" type:"string"`
6724
6725	// If status is FAILED, Amazon Lex explains why it failed to build the bot.
6726	FailureReason *string `locationName:"failureReason" type:"string"`
6727
6728	// The maximum time in seconds that Amazon Lex retains the data gathered in
6729	// a conversation. For more information, see PutBot.
6730	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
6731
6732	// An array of intent objects. For more information, see PutBot.
6733	Intents []*Intent `locationName:"intents" type:"list"`
6734
6735	// The date that the bot was updated. When you create a resource, the creation
6736	// date and last updated date are the same.
6737	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
6738
6739	// The target locale for the bot.
6740	Locale *string `locationName:"locale" type:"string" enum:"Locale"`
6741
6742	// The name of the bot.
6743	Name *string `locationName:"name" min:"2" type:"string"`
6744
6745	// The status of the bot. If the bot is ready to run, the status is READY. If
6746	// there was a problem with building the bot, the status is FAILED and the failureReason
6747	// explains why the bot did not build. If the bot was saved but not built, the
6748	// status is NOT BUILT.
6749	Status *string `locationName:"status" type:"string" enum:"Status"`
6750
6751	// The version of the bot. For a new bot, the version is always $LATEST.
6752	Version *string `locationName:"version" min:"1" type:"string"`
6753
6754	// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with
6755	// the user. For more information, see PutBot.
6756	VoiceId *string `locationName:"voiceId" type:"string"`
6757}
6758
6759// String returns the string representation
6760func (s GetBotOutput) String() string {
6761	return awsutil.Prettify(s)
6762}
6763
6764// GoString returns the string representation
6765func (s GetBotOutput) GoString() string {
6766	return s.String()
6767}
6768
6769// SetAbortStatement sets the AbortStatement field's value.
6770func (s *GetBotOutput) SetAbortStatement(v *Statement) *GetBotOutput {
6771	s.AbortStatement = v
6772	return s
6773}
6774
6775// SetChecksum sets the Checksum field's value.
6776func (s *GetBotOutput) SetChecksum(v string) *GetBotOutput {
6777	s.Checksum = &v
6778	return s
6779}
6780
6781// SetChildDirected sets the ChildDirected field's value.
6782func (s *GetBotOutput) SetChildDirected(v bool) *GetBotOutput {
6783	s.ChildDirected = &v
6784	return s
6785}
6786
6787// SetClarificationPrompt sets the ClarificationPrompt field's value.
6788func (s *GetBotOutput) SetClarificationPrompt(v *Prompt) *GetBotOutput {
6789	s.ClarificationPrompt = v
6790	return s
6791}
6792
6793// SetCreatedDate sets the CreatedDate field's value.
6794func (s *GetBotOutput) SetCreatedDate(v time.Time) *GetBotOutput {
6795	s.CreatedDate = &v
6796	return s
6797}
6798
6799// SetDescription sets the Description field's value.
6800func (s *GetBotOutput) SetDescription(v string) *GetBotOutput {
6801	s.Description = &v
6802	return s
6803}
6804
6805// SetFailureReason sets the FailureReason field's value.
6806func (s *GetBotOutput) SetFailureReason(v string) *GetBotOutput {
6807	s.FailureReason = &v
6808	return s
6809}
6810
6811// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
6812func (s *GetBotOutput) SetIdleSessionTTLInSeconds(v int64) *GetBotOutput {
6813	s.IdleSessionTTLInSeconds = &v
6814	return s
6815}
6816
6817// SetIntents sets the Intents field's value.
6818func (s *GetBotOutput) SetIntents(v []*Intent) *GetBotOutput {
6819	s.Intents = v
6820	return s
6821}
6822
6823// SetLastUpdatedDate sets the LastUpdatedDate field's value.
6824func (s *GetBotOutput) SetLastUpdatedDate(v time.Time) *GetBotOutput {
6825	s.LastUpdatedDate = &v
6826	return s
6827}
6828
6829// SetLocale sets the Locale field's value.
6830func (s *GetBotOutput) SetLocale(v string) *GetBotOutput {
6831	s.Locale = &v
6832	return s
6833}
6834
6835// SetName sets the Name field's value.
6836func (s *GetBotOutput) SetName(v string) *GetBotOutput {
6837	s.Name = &v
6838	return s
6839}
6840
6841// SetStatus sets the Status field's value.
6842func (s *GetBotOutput) SetStatus(v string) *GetBotOutput {
6843	s.Status = &v
6844	return s
6845}
6846
6847// SetVersion sets the Version field's value.
6848func (s *GetBotOutput) SetVersion(v string) *GetBotOutput {
6849	s.Version = &v
6850	return s
6851}
6852
6853// SetVoiceId sets the VoiceId field's value.
6854func (s *GetBotOutput) SetVoiceId(v string) *GetBotOutput {
6855	s.VoiceId = &v
6856	return s
6857}
6858
6859type GetBotVersionsInput struct {
6860	_ struct{} `type:"structure"`
6861
6862	// The maximum number of bot versions to return in the response. The default
6863	// is 10.
6864	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
6865
6866	// The name of the bot for which versions should be returned.
6867	//
6868	// Name is a required field
6869	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
6870
6871	// A pagination token for fetching the next page of bot versions. If the response
6872	// to this call is truncated, Amazon Lex returns a pagination token in the response.
6873	// To fetch the next page of versions, specify the pagination token in the next
6874	// request.
6875	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
6876}
6877
6878// String returns the string representation
6879func (s GetBotVersionsInput) String() string {
6880	return awsutil.Prettify(s)
6881}
6882
6883// GoString returns the string representation
6884func (s GetBotVersionsInput) GoString() string {
6885	return s.String()
6886}
6887
6888// Validate inspects the fields of the type to determine if they are valid.
6889func (s *GetBotVersionsInput) Validate() error {
6890	invalidParams := request.ErrInvalidParams{Context: "GetBotVersionsInput"}
6891	if s.MaxResults != nil && *s.MaxResults < 1 {
6892		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6893	}
6894	if s.Name == nil {
6895		invalidParams.Add(request.NewErrParamRequired("Name"))
6896	}
6897	if s.Name != nil && len(*s.Name) < 2 {
6898		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
6899	}
6900
6901	if invalidParams.Len() > 0 {
6902		return invalidParams
6903	}
6904	return nil
6905}
6906
6907// SetMaxResults sets the MaxResults field's value.
6908func (s *GetBotVersionsInput) SetMaxResults(v int64) *GetBotVersionsInput {
6909	s.MaxResults = &v
6910	return s
6911}
6912
6913// SetName sets the Name field's value.
6914func (s *GetBotVersionsInput) SetName(v string) *GetBotVersionsInput {
6915	s.Name = &v
6916	return s
6917}
6918
6919// SetNextToken sets the NextToken field's value.
6920func (s *GetBotVersionsInput) SetNextToken(v string) *GetBotVersionsInput {
6921	s.NextToken = &v
6922	return s
6923}
6924
6925type GetBotVersionsOutput struct {
6926	_ struct{} `type:"structure"`
6927
6928	// An array of BotMetadata objects, one for each numbered version of the bot
6929	// plus one for the $LATEST version.
6930	Bots []*BotMetadata `locationName:"bots" type:"list"`
6931
6932	// A pagination token for fetching the next page of bot versions. If the response
6933	// to this call is truncated, Amazon Lex returns a pagination token in the response.
6934	// To fetch the next page of versions, specify the pagination token in the next
6935	// request.
6936	NextToken *string `locationName:"nextToken" type:"string"`
6937}
6938
6939// String returns the string representation
6940func (s GetBotVersionsOutput) String() string {
6941	return awsutil.Prettify(s)
6942}
6943
6944// GoString returns the string representation
6945func (s GetBotVersionsOutput) GoString() string {
6946	return s.String()
6947}
6948
6949// SetBots sets the Bots field's value.
6950func (s *GetBotVersionsOutput) SetBots(v []*BotMetadata) *GetBotVersionsOutput {
6951	s.Bots = v
6952	return s
6953}
6954
6955// SetNextToken sets the NextToken field's value.
6956func (s *GetBotVersionsOutput) SetNextToken(v string) *GetBotVersionsOutput {
6957	s.NextToken = &v
6958	return s
6959}
6960
6961type GetBotsInput struct {
6962	_ struct{} `type:"structure"`
6963
6964	// The maximum number of bots to return in the response that the request will
6965	// return. The default is 10.
6966	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
6967
6968	// Substring to match in bot names. A bot will be returned if any part of its
6969	// name matches the substring. For example, "xyz" matches both "xyzabc" and
6970	// "abcxyz."
6971	NameContains *string `location:"querystring" locationName:"nameContains" min:"2" type:"string"`
6972
6973	// A pagination token that fetches the next page of bots. If the response to
6974	// this call is truncated, Amazon Lex returns a pagination token in the response.
6975	// To fetch the next page of bots, specify the pagination token in the next
6976	// request.
6977	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
6978}
6979
6980// String returns the string representation
6981func (s GetBotsInput) String() string {
6982	return awsutil.Prettify(s)
6983}
6984
6985// GoString returns the string representation
6986func (s GetBotsInput) GoString() string {
6987	return s.String()
6988}
6989
6990// Validate inspects the fields of the type to determine if they are valid.
6991func (s *GetBotsInput) Validate() error {
6992	invalidParams := request.ErrInvalidParams{Context: "GetBotsInput"}
6993	if s.MaxResults != nil && *s.MaxResults < 1 {
6994		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6995	}
6996	if s.NameContains != nil && len(*s.NameContains) < 2 {
6997		invalidParams.Add(request.NewErrParamMinLen("NameContains", 2))
6998	}
6999
7000	if invalidParams.Len() > 0 {
7001		return invalidParams
7002	}
7003	return nil
7004}
7005
7006// SetMaxResults sets the MaxResults field's value.
7007func (s *GetBotsInput) SetMaxResults(v int64) *GetBotsInput {
7008	s.MaxResults = &v
7009	return s
7010}
7011
7012// SetNameContains sets the NameContains field's value.
7013func (s *GetBotsInput) SetNameContains(v string) *GetBotsInput {
7014	s.NameContains = &v
7015	return s
7016}
7017
7018// SetNextToken sets the NextToken field's value.
7019func (s *GetBotsInput) SetNextToken(v string) *GetBotsInput {
7020	s.NextToken = &v
7021	return s
7022}
7023
7024type GetBotsOutput struct {
7025	_ struct{} `type:"structure"`
7026
7027	// An array of botMetadata objects, with one entry for each bot.
7028	Bots []*BotMetadata `locationName:"bots" type:"list"`
7029
7030	// If the response is truncated, it includes a pagination token that you can
7031	// specify in your next request to fetch the next page of bots.
7032	NextToken *string `locationName:"nextToken" type:"string"`
7033}
7034
7035// String returns the string representation
7036func (s GetBotsOutput) String() string {
7037	return awsutil.Prettify(s)
7038}
7039
7040// GoString returns the string representation
7041func (s GetBotsOutput) GoString() string {
7042	return s.String()
7043}
7044
7045// SetBots sets the Bots field's value.
7046func (s *GetBotsOutput) SetBots(v []*BotMetadata) *GetBotsOutput {
7047	s.Bots = v
7048	return s
7049}
7050
7051// SetNextToken sets the NextToken field's value.
7052func (s *GetBotsOutput) SetNextToken(v string) *GetBotsOutput {
7053	s.NextToken = &v
7054	return s
7055}
7056
7057type GetBuiltinIntentInput struct {
7058	_ struct{} `type:"structure"`
7059
7060	// The unique identifier for a built-in intent. To find the signature for an
7061	// intent, see Standard Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
7062	// in the Alexa Skills Kit.
7063	//
7064	// Signature is a required field
7065	Signature *string `location:"uri" locationName:"signature" type:"string" required:"true"`
7066}
7067
7068// String returns the string representation
7069func (s GetBuiltinIntentInput) String() string {
7070	return awsutil.Prettify(s)
7071}
7072
7073// GoString returns the string representation
7074func (s GetBuiltinIntentInput) GoString() string {
7075	return s.String()
7076}
7077
7078// Validate inspects the fields of the type to determine if they are valid.
7079func (s *GetBuiltinIntentInput) Validate() error {
7080	invalidParams := request.ErrInvalidParams{Context: "GetBuiltinIntentInput"}
7081	if s.Signature == nil {
7082		invalidParams.Add(request.NewErrParamRequired("Signature"))
7083	}
7084	if s.Signature != nil && len(*s.Signature) < 1 {
7085		invalidParams.Add(request.NewErrParamMinLen("Signature", 1))
7086	}
7087
7088	if invalidParams.Len() > 0 {
7089		return invalidParams
7090	}
7091	return nil
7092}
7093
7094// SetSignature sets the Signature field's value.
7095func (s *GetBuiltinIntentInput) SetSignature(v string) *GetBuiltinIntentInput {
7096	s.Signature = &v
7097	return s
7098}
7099
7100type GetBuiltinIntentOutput struct {
7101	_ struct{} `type:"structure"`
7102
7103	// The unique identifier for a built-in intent.
7104	Signature *string `locationName:"signature" type:"string"`
7105
7106	// An array of BuiltinIntentSlot objects, one entry for each slot type in the
7107	// intent.
7108	Slots []*BuiltinIntentSlot `locationName:"slots" type:"list"`
7109
7110	// A list of locales that the intent supports.
7111	SupportedLocales []*string `locationName:"supportedLocales" type:"list"`
7112}
7113
7114// String returns the string representation
7115func (s GetBuiltinIntentOutput) String() string {
7116	return awsutil.Prettify(s)
7117}
7118
7119// GoString returns the string representation
7120func (s GetBuiltinIntentOutput) GoString() string {
7121	return s.String()
7122}
7123
7124// SetSignature sets the Signature field's value.
7125func (s *GetBuiltinIntentOutput) SetSignature(v string) *GetBuiltinIntentOutput {
7126	s.Signature = &v
7127	return s
7128}
7129
7130// SetSlots sets the Slots field's value.
7131func (s *GetBuiltinIntentOutput) SetSlots(v []*BuiltinIntentSlot) *GetBuiltinIntentOutput {
7132	s.Slots = v
7133	return s
7134}
7135
7136// SetSupportedLocales sets the SupportedLocales field's value.
7137func (s *GetBuiltinIntentOutput) SetSupportedLocales(v []*string) *GetBuiltinIntentOutput {
7138	s.SupportedLocales = v
7139	return s
7140}
7141
7142type GetBuiltinIntentsInput struct {
7143	_ struct{} `type:"structure"`
7144
7145	// A list of locales that the intent supports.
7146	Locale *string `location:"querystring" locationName:"locale" type:"string" enum:"Locale"`
7147
7148	// The maximum number of intents to return in the response. The default is 10.
7149	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7150
7151	// A pagination token that fetches the next page of intents. If this API call
7152	// is truncated, Amazon Lex returns a pagination token in the response. To fetch
7153	// the next page of intents, use the pagination token in the next request.
7154	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7155
7156	// Substring to match in built-in intent signatures. An intent will be returned
7157	// if any part of its signature matches the substring. For example, "xyz" matches
7158	// both "xyzabc" and "abcxyz." To find the signature for an intent, see Standard
7159	// Built-in Intents (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents)
7160	// in the Alexa Skills Kit.
7161	SignatureContains *string `location:"querystring" locationName:"signatureContains" type:"string"`
7162}
7163
7164// String returns the string representation
7165func (s GetBuiltinIntentsInput) String() string {
7166	return awsutil.Prettify(s)
7167}
7168
7169// GoString returns the string representation
7170func (s GetBuiltinIntentsInput) GoString() string {
7171	return s.String()
7172}
7173
7174// Validate inspects the fields of the type to determine if they are valid.
7175func (s *GetBuiltinIntentsInput) Validate() error {
7176	invalidParams := request.ErrInvalidParams{Context: "GetBuiltinIntentsInput"}
7177	if s.MaxResults != nil && *s.MaxResults < 1 {
7178		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7179	}
7180
7181	if invalidParams.Len() > 0 {
7182		return invalidParams
7183	}
7184	return nil
7185}
7186
7187// SetLocale sets the Locale field's value.
7188func (s *GetBuiltinIntentsInput) SetLocale(v string) *GetBuiltinIntentsInput {
7189	s.Locale = &v
7190	return s
7191}
7192
7193// SetMaxResults sets the MaxResults field's value.
7194func (s *GetBuiltinIntentsInput) SetMaxResults(v int64) *GetBuiltinIntentsInput {
7195	s.MaxResults = &v
7196	return s
7197}
7198
7199// SetNextToken sets the NextToken field's value.
7200func (s *GetBuiltinIntentsInput) SetNextToken(v string) *GetBuiltinIntentsInput {
7201	s.NextToken = &v
7202	return s
7203}
7204
7205// SetSignatureContains sets the SignatureContains field's value.
7206func (s *GetBuiltinIntentsInput) SetSignatureContains(v string) *GetBuiltinIntentsInput {
7207	s.SignatureContains = &v
7208	return s
7209}
7210
7211type GetBuiltinIntentsOutput struct {
7212	_ struct{} `type:"structure"`
7213
7214	// An array of builtinIntentMetadata objects, one for each intent in the response.
7215	Intents []*BuiltinIntentMetadata `locationName:"intents" type:"list"`
7216
7217	// A pagination token that fetches the next page of intents. If the response
7218	// to this API call is truncated, Amazon Lex returns a pagination token in the
7219	// response. To fetch the next page of intents, specify the pagination token
7220	// in the next request.
7221	NextToken *string `locationName:"nextToken" type:"string"`
7222}
7223
7224// String returns the string representation
7225func (s GetBuiltinIntentsOutput) String() string {
7226	return awsutil.Prettify(s)
7227}
7228
7229// GoString returns the string representation
7230func (s GetBuiltinIntentsOutput) GoString() string {
7231	return s.String()
7232}
7233
7234// SetIntents sets the Intents field's value.
7235func (s *GetBuiltinIntentsOutput) SetIntents(v []*BuiltinIntentMetadata) *GetBuiltinIntentsOutput {
7236	s.Intents = v
7237	return s
7238}
7239
7240// SetNextToken sets the NextToken field's value.
7241func (s *GetBuiltinIntentsOutput) SetNextToken(v string) *GetBuiltinIntentsOutput {
7242	s.NextToken = &v
7243	return s
7244}
7245
7246type GetBuiltinSlotTypesInput struct {
7247	_ struct{} `type:"structure"`
7248
7249	// A list of locales that the slot type supports.
7250	Locale *string `location:"querystring" locationName:"locale" type:"string" enum:"Locale"`
7251
7252	// The maximum number of slot types to return in the response. The default is
7253	// 10.
7254	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7255
7256	// A pagination token that fetches the next page of slot types. If the response
7257	// to this API call is truncated, Amazon Lex returns a pagination token in the
7258	// response. To fetch the next page of slot types, specify the pagination token
7259	// in the next request.
7260	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7261
7262	// Substring to match in built-in slot type signatures. A slot type will be
7263	// returned if any part of its signature matches the substring. For example,
7264	// "xyz" matches both "xyzabc" and "abcxyz."
7265	SignatureContains *string `location:"querystring" locationName:"signatureContains" type:"string"`
7266}
7267
7268// String returns the string representation
7269func (s GetBuiltinSlotTypesInput) String() string {
7270	return awsutil.Prettify(s)
7271}
7272
7273// GoString returns the string representation
7274func (s GetBuiltinSlotTypesInput) GoString() string {
7275	return s.String()
7276}
7277
7278// Validate inspects the fields of the type to determine if they are valid.
7279func (s *GetBuiltinSlotTypesInput) Validate() error {
7280	invalidParams := request.ErrInvalidParams{Context: "GetBuiltinSlotTypesInput"}
7281	if s.MaxResults != nil && *s.MaxResults < 1 {
7282		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7283	}
7284
7285	if invalidParams.Len() > 0 {
7286		return invalidParams
7287	}
7288	return nil
7289}
7290
7291// SetLocale sets the Locale field's value.
7292func (s *GetBuiltinSlotTypesInput) SetLocale(v string) *GetBuiltinSlotTypesInput {
7293	s.Locale = &v
7294	return s
7295}
7296
7297// SetMaxResults sets the MaxResults field's value.
7298func (s *GetBuiltinSlotTypesInput) SetMaxResults(v int64) *GetBuiltinSlotTypesInput {
7299	s.MaxResults = &v
7300	return s
7301}
7302
7303// SetNextToken sets the NextToken field's value.
7304func (s *GetBuiltinSlotTypesInput) SetNextToken(v string) *GetBuiltinSlotTypesInput {
7305	s.NextToken = &v
7306	return s
7307}
7308
7309// SetSignatureContains sets the SignatureContains field's value.
7310func (s *GetBuiltinSlotTypesInput) SetSignatureContains(v string) *GetBuiltinSlotTypesInput {
7311	s.SignatureContains = &v
7312	return s
7313}
7314
7315type GetBuiltinSlotTypesOutput struct {
7316	_ struct{} `type:"structure"`
7317
7318	// If the response is truncated, the response includes a pagination token that
7319	// you can use in your next request to fetch the next page of slot types.
7320	NextToken *string `locationName:"nextToken" type:"string"`
7321
7322	// An array of BuiltInSlotTypeMetadata objects, one entry for each slot type
7323	// returned.
7324	SlotTypes []*BuiltinSlotTypeMetadata `locationName:"slotTypes" type:"list"`
7325}
7326
7327// String returns the string representation
7328func (s GetBuiltinSlotTypesOutput) String() string {
7329	return awsutil.Prettify(s)
7330}
7331
7332// GoString returns the string representation
7333func (s GetBuiltinSlotTypesOutput) GoString() string {
7334	return s.String()
7335}
7336
7337// SetNextToken sets the NextToken field's value.
7338func (s *GetBuiltinSlotTypesOutput) SetNextToken(v string) *GetBuiltinSlotTypesOutput {
7339	s.NextToken = &v
7340	return s
7341}
7342
7343// SetSlotTypes sets the SlotTypes field's value.
7344func (s *GetBuiltinSlotTypesOutput) SetSlotTypes(v []*BuiltinSlotTypeMetadata) *GetBuiltinSlotTypesOutput {
7345	s.SlotTypes = v
7346	return s
7347}
7348
7349type GetExportInput struct {
7350	_ struct{} `type:"structure"`
7351
7352	// The format of the exported data.
7353	//
7354	// ExportType is a required field
7355	ExportType *string `location:"querystring" locationName:"exportType" type:"string" required:"true" enum:"ExportType"`
7356
7357	// The name of the bot to export.
7358	//
7359	// Name is a required field
7360	Name *string `location:"querystring" locationName:"name" min:"1" type:"string" required:"true"`
7361
7362	// The type of resource to export.
7363	//
7364	// ResourceType is a required field
7365	ResourceType *string `location:"querystring" locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
7366
7367	// The version of the bot to export.
7368	//
7369	// Version is a required field
7370	Version *string `location:"querystring" locationName:"version" min:"1" type:"string" required:"true"`
7371}
7372
7373// String returns the string representation
7374func (s GetExportInput) String() string {
7375	return awsutil.Prettify(s)
7376}
7377
7378// GoString returns the string representation
7379func (s GetExportInput) GoString() string {
7380	return s.String()
7381}
7382
7383// Validate inspects the fields of the type to determine if they are valid.
7384func (s *GetExportInput) Validate() error {
7385	invalidParams := request.ErrInvalidParams{Context: "GetExportInput"}
7386	if s.ExportType == nil {
7387		invalidParams.Add(request.NewErrParamRequired("ExportType"))
7388	}
7389	if s.Name == nil {
7390		invalidParams.Add(request.NewErrParamRequired("Name"))
7391	}
7392	if s.Name != nil && len(*s.Name) < 1 {
7393		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
7394	}
7395	if s.ResourceType == nil {
7396		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
7397	}
7398	if s.Version == nil {
7399		invalidParams.Add(request.NewErrParamRequired("Version"))
7400	}
7401	if s.Version != nil && len(*s.Version) < 1 {
7402		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
7403	}
7404
7405	if invalidParams.Len() > 0 {
7406		return invalidParams
7407	}
7408	return nil
7409}
7410
7411// SetExportType sets the ExportType field's value.
7412func (s *GetExportInput) SetExportType(v string) *GetExportInput {
7413	s.ExportType = &v
7414	return s
7415}
7416
7417// SetName sets the Name field's value.
7418func (s *GetExportInput) SetName(v string) *GetExportInput {
7419	s.Name = &v
7420	return s
7421}
7422
7423// SetResourceType sets the ResourceType field's value.
7424func (s *GetExportInput) SetResourceType(v string) *GetExportInput {
7425	s.ResourceType = &v
7426	return s
7427}
7428
7429// SetVersion sets the Version field's value.
7430func (s *GetExportInput) SetVersion(v string) *GetExportInput {
7431	s.Version = &v
7432	return s
7433}
7434
7435type GetExportOutput struct {
7436	_ struct{} `type:"structure"`
7437
7438	// The status of the export.
7439	//
7440	//    * IN_PROGRESS - The export is in progress.
7441	//
7442	//    * READY - The export is complete.
7443	//
7444	//    * FAILED - The export could not be completed.
7445	ExportStatus *string `locationName:"exportStatus" type:"string" enum:"ExportStatus"`
7446
7447	// The format of the exported data.
7448	ExportType *string `locationName:"exportType" type:"string" enum:"ExportType"`
7449
7450	// If status is FAILED, Amazon Lex provides the reason that it failed to export
7451	// the resource.
7452	FailureReason *string `locationName:"failureReason" type:"string"`
7453
7454	// The name of the bot being exported.
7455	Name *string `locationName:"name" min:"1" type:"string"`
7456
7457	// The type of the exported resource.
7458	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
7459
7460	// An S3 pre-signed URL that provides the location of the exported resource.
7461	// The exported resource is a ZIP archive that contains the exported resource
7462	// in JSON format. The structure of the archive may change. Your code should
7463	// not rely on the archive structure.
7464	Url *string `locationName:"url" type:"string"`
7465
7466	// The version of the bot being exported.
7467	Version *string `locationName:"version" min:"1" type:"string"`
7468}
7469
7470// String returns the string representation
7471func (s GetExportOutput) String() string {
7472	return awsutil.Prettify(s)
7473}
7474
7475// GoString returns the string representation
7476func (s GetExportOutput) GoString() string {
7477	return s.String()
7478}
7479
7480// SetExportStatus sets the ExportStatus field's value.
7481func (s *GetExportOutput) SetExportStatus(v string) *GetExportOutput {
7482	s.ExportStatus = &v
7483	return s
7484}
7485
7486// SetExportType sets the ExportType field's value.
7487func (s *GetExportOutput) SetExportType(v string) *GetExportOutput {
7488	s.ExportType = &v
7489	return s
7490}
7491
7492// SetFailureReason sets the FailureReason field's value.
7493func (s *GetExportOutput) SetFailureReason(v string) *GetExportOutput {
7494	s.FailureReason = &v
7495	return s
7496}
7497
7498// SetName sets the Name field's value.
7499func (s *GetExportOutput) SetName(v string) *GetExportOutput {
7500	s.Name = &v
7501	return s
7502}
7503
7504// SetResourceType sets the ResourceType field's value.
7505func (s *GetExportOutput) SetResourceType(v string) *GetExportOutput {
7506	s.ResourceType = &v
7507	return s
7508}
7509
7510// SetUrl sets the Url field's value.
7511func (s *GetExportOutput) SetUrl(v string) *GetExportOutput {
7512	s.Url = &v
7513	return s
7514}
7515
7516// SetVersion sets the Version field's value.
7517func (s *GetExportOutput) SetVersion(v string) *GetExportOutput {
7518	s.Version = &v
7519	return s
7520}
7521
7522type GetImportInput struct {
7523	_ struct{} `type:"structure"`
7524
7525	// The identifier of the import job information to return.
7526	//
7527	// ImportId is a required field
7528	ImportId *string `location:"uri" locationName:"importId" type:"string" required:"true"`
7529}
7530
7531// String returns the string representation
7532func (s GetImportInput) String() string {
7533	return awsutil.Prettify(s)
7534}
7535
7536// GoString returns the string representation
7537func (s GetImportInput) GoString() string {
7538	return s.String()
7539}
7540
7541// Validate inspects the fields of the type to determine if they are valid.
7542func (s *GetImportInput) Validate() error {
7543	invalidParams := request.ErrInvalidParams{Context: "GetImportInput"}
7544	if s.ImportId == nil {
7545		invalidParams.Add(request.NewErrParamRequired("ImportId"))
7546	}
7547	if s.ImportId != nil && len(*s.ImportId) < 1 {
7548		invalidParams.Add(request.NewErrParamMinLen("ImportId", 1))
7549	}
7550
7551	if invalidParams.Len() > 0 {
7552		return invalidParams
7553	}
7554	return nil
7555}
7556
7557// SetImportId sets the ImportId field's value.
7558func (s *GetImportInput) SetImportId(v string) *GetImportInput {
7559	s.ImportId = &v
7560	return s
7561}
7562
7563type GetImportOutput struct {
7564	_ struct{} `type:"structure"`
7565
7566	// A timestamp for the date and time that the import job was created.
7567	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
7568
7569	// A string that describes why an import job failed to complete.
7570	FailureReason []*string `locationName:"failureReason" type:"list"`
7571
7572	// The identifier for the specific import job.
7573	ImportId *string `locationName:"importId" type:"string"`
7574
7575	// The status of the import job. If the status is FAILED, you can get the reason
7576	// for the failure from the failureReason field.
7577	ImportStatus *string `locationName:"importStatus" type:"string" enum:"ImportStatus"`
7578
7579	// The action taken when there was a conflict between an existing resource and
7580	// a resource in the import file.
7581	MergeStrategy *string `locationName:"mergeStrategy" type:"string" enum:"MergeStrategy"`
7582
7583	// The name given to the import job.
7584	Name *string `locationName:"name" min:"1" type:"string"`
7585
7586	// The type of resource imported.
7587	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
7588}
7589
7590// String returns the string representation
7591func (s GetImportOutput) String() string {
7592	return awsutil.Prettify(s)
7593}
7594
7595// GoString returns the string representation
7596func (s GetImportOutput) GoString() string {
7597	return s.String()
7598}
7599
7600// SetCreatedDate sets the CreatedDate field's value.
7601func (s *GetImportOutput) SetCreatedDate(v time.Time) *GetImportOutput {
7602	s.CreatedDate = &v
7603	return s
7604}
7605
7606// SetFailureReason sets the FailureReason field's value.
7607func (s *GetImportOutput) SetFailureReason(v []*string) *GetImportOutput {
7608	s.FailureReason = v
7609	return s
7610}
7611
7612// SetImportId sets the ImportId field's value.
7613func (s *GetImportOutput) SetImportId(v string) *GetImportOutput {
7614	s.ImportId = &v
7615	return s
7616}
7617
7618// SetImportStatus sets the ImportStatus field's value.
7619func (s *GetImportOutput) SetImportStatus(v string) *GetImportOutput {
7620	s.ImportStatus = &v
7621	return s
7622}
7623
7624// SetMergeStrategy sets the MergeStrategy field's value.
7625func (s *GetImportOutput) SetMergeStrategy(v string) *GetImportOutput {
7626	s.MergeStrategy = &v
7627	return s
7628}
7629
7630// SetName sets the Name field's value.
7631func (s *GetImportOutput) SetName(v string) *GetImportOutput {
7632	s.Name = &v
7633	return s
7634}
7635
7636// SetResourceType sets the ResourceType field's value.
7637func (s *GetImportOutput) SetResourceType(v string) *GetImportOutput {
7638	s.ResourceType = &v
7639	return s
7640}
7641
7642type GetIntentInput struct {
7643	_ struct{} `type:"structure"`
7644
7645	// The name of the intent. The name is case sensitive.
7646	//
7647	// Name is a required field
7648	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
7649
7650	// The version of the intent.
7651	//
7652	// Version is a required field
7653	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
7654}
7655
7656// String returns the string representation
7657func (s GetIntentInput) String() string {
7658	return awsutil.Prettify(s)
7659}
7660
7661// GoString returns the string representation
7662func (s GetIntentInput) GoString() string {
7663	return s.String()
7664}
7665
7666// Validate inspects the fields of the type to determine if they are valid.
7667func (s *GetIntentInput) Validate() error {
7668	invalidParams := request.ErrInvalidParams{Context: "GetIntentInput"}
7669	if s.Name == nil {
7670		invalidParams.Add(request.NewErrParamRequired("Name"))
7671	}
7672	if s.Name != nil && len(*s.Name) < 1 {
7673		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
7674	}
7675	if s.Version == nil {
7676		invalidParams.Add(request.NewErrParamRequired("Version"))
7677	}
7678	if s.Version != nil && len(*s.Version) < 1 {
7679		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
7680	}
7681
7682	if invalidParams.Len() > 0 {
7683		return invalidParams
7684	}
7685	return nil
7686}
7687
7688// SetName sets the Name field's value.
7689func (s *GetIntentInput) SetName(v string) *GetIntentInput {
7690	s.Name = &v
7691	return s
7692}
7693
7694// SetVersion sets the Version field's value.
7695func (s *GetIntentInput) SetVersion(v string) *GetIntentInput {
7696	s.Version = &v
7697	return s
7698}
7699
7700type GetIntentOutput struct {
7701	_ struct{} `type:"structure"`
7702
7703	// Checksum of the intent.
7704	Checksum *string `locationName:"checksum" type:"string"`
7705
7706	// After the Lambda function specified in the fulfillmentActivity element fulfills
7707	// the intent, Amazon Lex conveys this statement to the user.
7708	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
7709
7710	// If defined in the bot, Amazon Lex uses prompt to confirm the intent before
7711	// fulfilling the user's request. For more information, see PutIntent.
7712	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
7713
7714	// The date that the intent was created.
7715	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
7716
7717	// A description of the intent.
7718	Description *string `locationName:"description" type:"string"`
7719
7720	// If defined in the bot, Amazon Amazon Lex invokes this Lambda function for
7721	// each user input. For more information, see PutIntent.
7722	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
7723
7724	// If defined in the bot, Amazon Lex uses this prompt to solicit additional
7725	// user activity after the intent is fulfilled. For more information, see PutIntent.
7726	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
7727
7728	// Describes how the intent is fulfilled. For more information, see PutIntent.
7729	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
7730
7731	// The date that the intent was updated. When you create a resource, the creation
7732	// date and the last updated date are the same.
7733	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
7734
7735	// The name of the intent.
7736	Name *string `locationName:"name" min:"1" type:"string"`
7737
7738	// A unique identifier for a built-in intent.
7739	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
7740
7741	// If the user answers "no" to the question defined in confirmationPrompt, Amazon
7742	// Lex responds with this statement to acknowledge that the intent was canceled.
7743	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
7744
7745	// An array of sample utterances configured for the intent.
7746	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
7747
7748	// An array of intent slots configured for the intent.
7749	Slots []*Slot `locationName:"slots" type:"list"`
7750
7751	// The version of the intent.
7752	Version *string `locationName:"version" min:"1" type:"string"`
7753}
7754
7755// String returns the string representation
7756func (s GetIntentOutput) String() string {
7757	return awsutil.Prettify(s)
7758}
7759
7760// GoString returns the string representation
7761func (s GetIntentOutput) GoString() string {
7762	return s.String()
7763}
7764
7765// SetChecksum sets the Checksum field's value.
7766func (s *GetIntentOutput) SetChecksum(v string) *GetIntentOutput {
7767	s.Checksum = &v
7768	return s
7769}
7770
7771// SetConclusionStatement sets the ConclusionStatement field's value.
7772func (s *GetIntentOutput) SetConclusionStatement(v *Statement) *GetIntentOutput {
7773	s.ConclusionStatement = v
7774	return s
7775}
7776
7777// SetConfirmationPrompt sets the ConfirmationPrompt field's value.
7778func (s *GetIntentOutput) SetConfirmationPrompt(v *Prompt) *GetIntentOutput {
7779	s.ConfirmationPrompt = v
7780	return s
7781}
7782
7783// SetCreatedDate sets the CreatedDate field's value.
7784func (s *GetIntentOutput) SetCreatedDate(v time.Time) *GetIntentOutput {
7785	s.CreatedDate = &v
7786	return s
7787}
7788
7789// SetDescription sets the Description field's value.
7790func (s *GetIntentOutput) SetDescription(v string) *GetIntentOutput {
7791	s.Description = &v
7792	return s
7793}
7794
7795// SetDialogCodeHook sets the DialogCodeHook field's value.
7796func (s *GetIntentOutput) SetDialogCodeHook(v *CodeHook) *GetIntentOutput {
7797	s.DialogCodeHook = v
7798	return s
7799}
7800
7801// SetFollowUpPrompt sets the FollowUpPrompt field's value.
7802func (s *GetIntentOutput) SetFollowUpPrompt(v *FollowUpPrompt) *GetIntentOutput {
7803	s.FollowUpPrompt = v
7804	return s
7805}
7806
7807// SetFulfillmentActivity sets the FulfillmentActivity field's value.
7808func (s *GetIntentOutput) SetFulfillmentActivity(v *FulfillmentActivity) *GetIntentOutput {
7809	s.FulfillmentActivity = v
7810	return s
7811}
7812
7813// SetLastUpdatedDate sets the LastUpdatedDate field's value.
7814func (s *GetIntentOutput) SetLastUpdatedDate(v time.Time) *GetIntentOutput {
7815	s.LastUpdatedDate = &v
7816	return s
7817}
7818
7819// SetName sets the Name field's value.
7820func (s *GetIntentOutput) SetName(v string) *GetIntentOutput {
7821	s.Name = &v
7822	return s
7823}
7824
7825// SetParentIntentSignature sets the ParentIntentSignature field's value.
7826func (s *GetIntentOutput) SetParentIntentSignature(v string) *GetIntentOutput {
7827	s.ParentIntentSignature = &v
7828	return s
7829}
7830
7831// SetRejectionStatement sets the RejectionStatement field's value.
7832func (s *GetIntentOutput) SetRejectionStatement(v *Statement) *GetIntentOutput {
7833	s.RejectionStatement = v
7834	return s
7835}
7836
7837// SetSampleUtterances sets the SampleUtterances field's value.
7838func (s *GetIntentOutput) SetSampleUtterances(v []*string) *GetIntentOutput {
7839	s.SampleUtterances = v
7840	return s
7841}
7842
7843// SetSlots sets the Slots field's value.
7844func (s *GetIntentOutput) SetSlots(v []*Slot) *GetIntentOutput {
7845	s.Slots = v
7846	return s
7847}
7848
7849// SetVersion sets the Version field's value.
7850func (s *GetIntentOutput) SetVersion(v string) *GetIntentOutput {
7851	s.Version = &v
7852	return s
7853}
7854
7855type GetIntentVersionsInput struct {
7856	_ struct{} `type:"structure"`
7857
7858	// The maximum number of intent versions to return in the response. The default
7859	// is 10.
7860	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7861
7862	// The name of the intent for which versions should be returned.
7863	//
7864	// Name is a required field
7865	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
7866
7867	// A pagination token for fetching the next page of intent versions. If the
7868	// response to this call is truncated, Amazon Lex returns a pagination token
7869	// in the response. To fetch the next page of versions, specify the pagination
7870	// token in the next request.
7871	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7872}
7873
7874// String returns the string representation
7875func (s GetIntentVersionsInput) String() string {
7876	return awsutil.Prettify(s)
7877}
7878
7879// GoString returns the string representation
7880func (s GetIntentVersionsInput) GoString() string {
7881	return s.String()
7882}
7883
7884// Validate inspects the fields of the type to determine if they are valid.
7885func (s *GetIntentVersionsInput) Validate() error {
7886	invalidParams := request.ErrInvalidParams{Context: "GetIntentVersionsInput"}
7887	if s.MaxResults != nil && *s.MaxResults < 1 {
7888		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7889	}
7890	if s.Name == nil {
7891		invalidParams.Add(request.NewErrParamRequired("Name"))
7892	}
7893	if s.Name != nil && len(*s.Name) < 1 {
7894		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
7895	}
7896
7897	if invalidParams.Len() > 0 {
7898		return invalidParams
7899	}
7900	return nil
7901}
7902
7903// SetMaxResults sets the MaxResults field's value.
7904func (s *GetIntentVersionsInput) SetMaxResults(v int64) *GetIntentVersionsInput {
7905	s.MaxResults = &v
7906	return s
7907}
7908
7909// SetName sets the Name field's value.
7910func (s *GetIntentVersionsInput) SetName(v string) *GetIntentVersionsInput {
7911	s.Name = &v
7912	return s
7913}
7914
7915// SetNextToken sets the NextToken field's value.
7916func (s *GetIntentVersionsInput) SetNextToken(v string) *GetIntentVersionsInput {
7917	s.NextToken = &v
7918	return s
7919}
7920
7921type GetIntentVersionsOutput struct {
7922	_ struct{} `type:"structure"`
7923
7924	// An array of IntentMetadata objects, one for each numbered version of the
7925	// intent plus one for the $LATEST version.
7926	Intents []*IntentMetadata `locationName:"intents" type:"list"`
7927
7928	// A pagination token for fetching the next page of intent versions. If the
7929	// response to this call is truncated, Amazon Lex returns a pagination token
7930	// in the response. To fetch the next page of versions, specify the pagination
7931	// token in the next request.
7932	NextToken *string `locationName:"nextToken" type:"string"`
7933}
7934
7935// String returns the string representation
7936func (s GetIntentVersionsOutput) String() string {
7937	return awsutil.Prettify(s)
7938}
7939
7940// GoString returns the string representation
7941func (s GetIntentVersionsOutput) GoString() string {
7942	return s.String()
7943}
7944
7945// SetIntents sets the Intents field's value.
7946func (s *GetIntentVersionsOutput) SetIntents(v []*IntentMetadata) *GetIntentVersionsOutput {
7947	s.Intents = v
7948	return s
7949}
7950
7951// SetNextToken sets the NextToken field's value.
7952func (s *GetIntentVersionsOutput) SetNextToken(v string) *GetIntentVersionsOutput {
7953	s.NextToken = &v
7954	return s
7955}
7956
7957type GetIntentsInput struct {
7958	_ struct{} `type:"structure"`
7959
7960	// The maximum number of intents to return in the response. The default is 10.
7961	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
7962
7963	// Substring to match in intent names. An intent will be returned if any part
7964	// of its name matches the substring. For example, "xyz" matches both "xyzabc"
7965	// and "abcxyz."
7966	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
7967
7968	// A pagination token that fetches the next page of intents. If the response
7969	// to this API call is truncated, Amazon Lex returns a pagination token in the
7970	// response. To fetch the next page of intents, specify the pagination token
7971	// in the next request.
7972	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
7973}
7974
7975// String returns the string representation
7976func (s GetIntentsInput) String() string {
7977	return awsutil.Prettify(s)
7978}
7979
7980// GoString returns the string representation
7981func (s GetIntentsInput) GoString() string {
7982	return s.String()
7983}
7984
7985// Validate inspects the fields of the type to determine if they are valid.
7986func (s *GetIntentsInput) Validate() error {
7987	invalidParams := request.ErrInvalidParams{Context: "GetIntentsInput"}
7988	if s.MaxResults != nil && *s.MaxResults < 1 {
7989		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7990	}
7991	if s.NameContains != nil && len(*s.NameContains) < 1 {
7992		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
7993	}
7994
7995	if invalidParams.Len() > 0 {
7996		return invalidParams
7997	}
7998	return nil
7999}
8000
8001// SetMaxResults sets the MaxResults field's value.
8002func (s *GetIntentsInput) SetMaxResults(v int64) *GetIntentsInput {
8003	s.MaxResults = &v
8004	return s
8005}
8006
8007// SetNameContains sets the NameContains field's value.
8008func (s *GetIntentsInput) SetNameContains(v string) *GetIntentsInput {
8009	s.NameContains = &v
8010	return s
8011}
8012
8013// SetNextToken sets the NextToken field's value.
8014func (s *GetIntentsInput) SetNextToken(v string) *GetIntentsInput {
8015	s.NextToken = &v
8016	return s
8017}
8018
8019type GetIntentsOutput struct {
8020	_ struct{} `type:"structure"`
8021
8022	// An array of Intent objects. For more information, see PutBot.
8023	Intents []*IntentMetadata `locationName:"intents" type:"list"`
8024
8025	// If the response is truncated, the response includes a pagination token that
8026	// you can specify in your next request to fetch the next page of intents.
8027	NextToken *string `locationName:"nextToken" type:"string"`
8028}
8029
8030// String returns the string representation
8031func (s GetIntentsOutput) String() string {
8032	return awsutil.Prettify(s)
8033}
8034
8035// GoString returns the string representation
8036func (s GetIntentsOutput) GoString() string {
8037	return s.String()
8038}
8039
8040// SetIntents sets the Intents field's value.
8041func (s *GetIntentsOutput) SetIntents(v []*IntentMetadata) *GetIntentsOutput {
8042	s.Intents = v
8043	return s
8044}
8045
8046// SetNextToken sets the NextToken field's value.
8047func (s *GetIntentsOutput) SetNextToken(v string) *GetIntentsOutput {
8048	s.NextToken = &v
8049	return s
8050}
8051
8052type GetSlotTypeInput struct {
8053	_ struct{} `type:"structure"`
8054
8055	// The name of the slot type. The name is case sensitive.
8056	//
8057	// Name is a required field
8058	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
8059
8060	// The version of the slot type.
8061	//
8062	// Version is a required field
8063	Version *string `location:"uri" locationName:"version" min:"1" type:"string" required:"true"`
8064}
8065
8066// String returns the string representation
8067func (s GetSlotTypeInput) String() string {
8068	return awsutil.Prettify(s)
8069}
8070
8071// GoString returns the string representation
8072func (s GetSlotTypeInput) GoString() string {
8073	return s.String()
8074}
8075
8076// Validate inspects the fields of the type to determine if they are valid.
8077func (s *GetSlotTypeInput) Validate() error {
8078	invalidParams := request.ErrInvalidParams{Context: "GetSlotTypeInput"}
8079	if s.Name == nil {
8080		invalidParams.Add(request.NewErrParamRequired("Name"))
8081	}
8082	if s.Name != nil && len(*s.Name) < 1 {
8083		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8084	}
8085	if s.Version == nil {
8086		invalidParams.Add(request.NewErrParamRequired("Version"))
8087	}
8088	if s.Version != nil && len(*s.Version) < 1 {
8089		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
8090	}
8091
8092	if invalidParams.Len() > 0 {
8093		return invalidParams
8094	}
8095	return nil
8096}
8097
8098// SetName sets the Name field's value.
8099func (s *GetSlotTypeInput) SetName(v string) *GetSlotTypeInput {
8100	s.Name = &v
8101	return s
8102}
8103
8104// SetVersion sets the Version field's value.
8105func (s *GetSlotTypeInput) SetVersion(v string) *GetSlotTypeInput {
8106	s.Version = &v
8107	return s
8108}
8109
8110type GetSlotTypeOutput struct {
8111	_ struct{} `type:"structure"`
8112
8113	// Checksum of the $LATEST version of the slot type.
8114	Checksum *string `locationName:"checksum" type:"string"`
8115
8116	// The date that the slot type was created.
8117	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
8118
8119	// A description of the slot type.
8120	Description *string `locationName:"description" type:"string"`
8121
8122	// A list of EnumerationValue objects that defines the values that the slot
8123	// type can take.
8124	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" min:"1" type:"list"`
8125
8126	// The date that the slot type was updated. When you create a resource, the
8127	// creation date and last update date are the same.
8128	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
8129
8130	// The name of the slot type.
8131	Name *string `locationName:"name" min:"1" type:"string"`
8132
8133	// The strategy that Amazon Lex uses to determine the value of the slot. For
8134	// more information, see PutSlotType.
8135	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
8136
8137	// The version of the slot type.
8138	Version *string `locationName:"version" min:"1" type:"string"`
8139}
8140
8141// String returns the string representation
8142func (s GetSlotTypeOutput) String() string {
8143	return awsutil.Prettify(s)
8144}
8145
8146// GoString returns the string representation
8147func (s GetSlotTypeOutput) GoString() string {
8148	return s.String()
8149}
8150
8151// SetChecksum sets the Checksum field's value.
8152func (s *GetSlotTypeOutput) SetChecksum(v string) *GetSlotTypeOutput {
8153	s.Checksum = &v
8154	return s
8155}
8156
8157// SetCreatedDate sets the CreatedDate field's value.
8158func (s *GetSlotTypeOutput) SetCreatedDate(v time.Time) *GetSlotTypeOutput {
8159	s.CreatedDate = &v
8160	return s
8161}
8162
8163// SetDescription sets the Description field's value.
8164func (s *GetSlotTypeOutput) SetDescription(v string) *GetSlotTypeOutput {
8165	s.Description = &v
8166	return s
8167}
8168
8169// SetEnumerationValues sets the EnumerationValues field's value.
8170func (s *GetSlotTypeOutput) SetEnumerationValues(v []*EnumerationValue) *GetSlotTypeOutput {
8171	s.EnumerationValues = v
8172	return s
8173}
8174
8175// SetLastUpdatedDate sets the LastUpdatedDate field's value.
8176func (s *GetSlotTypeOutput) SetLastUpdatedDate(v time.Time) *GetSlotTypeOutput {
8177	s.LastUpdatedDate = &v
8178	return s
8179}
8180
8181// SetName sets the Name field's value.
8182func (s *GetSlotTypeOutput) SetName(v string) *GetSlotTypeOutput {
8183	s.Name = &v
8184	return s
8185}
8186
8187// SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
8188func (s *GetSlotTypeOutput) SetValueSelectionStrategy(v string) *GetSlotTypeOutput {
8189	s.ValueSelectionStrategy = &v
8190	return s
8191}
8192
8193// SetVersion sets the Version field's value.
8194func (s *GetSlotTypeOutput) SetVersion(v string) *GetSlotTypeOutput {
8195	s.Version = &v
8196	return s
8197}
8198
8199type GetSlotTypeVersionsInput struct {
8200	_ struct{} `type:"structure"`
8201
8202	// The maximum number of slot type versions to return in the response. The default
8203	// is 10.
8204	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
8205
8206	// The name of the slot type for which versions should be returned.
8207	//
8208	// Name is a required field
8209	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
8210
8211	// A pagination token for fetching the next page of slot type versions. If the
8212	// response to this call is truncated, Amazon Lex returns a pagination token
8213	// in the response. To fetch the next page of versions, specify the pagination
8214	// token in the next request.
8215	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
8216}
8217
8218// String returns the string representation
8219func (s GetSlotTypeVersionsInput) String() string {
8220	return awsutil.Prettify(s)
8221}
8222
8223// GoString returns the string representation
8224func (s GetSlotTypeVersionsInput) GoString() string {
8225	return s.String()
8226}
8227
8228// Validate inspects the fields of the type to determine if they are valid.
8229func (s *GetSlotTypeVersionsInput) Validate() error {
8230	invalidParams := request.ErrInvalidParams{Context: "GetSlotTypeVersionsInput"}
8231	if s.MaxResults != nil && *s.MaxResults < 1 {
8232		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8233	}
8234	if s.Name == nil {
8235		invalidParams.Add(request.NewErrParamRequired("Name"))
8236	}
8237	if s.Name != nil && len(*s.Name) < 1 {
8238		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8239	}
8240
8241	if invalidParams.Len() > 0 {
8242		return invalidParams
8243	}
8244	return nil
8245}
8246
8247// SetMaxResults sets the MaxResults field's value.
8248func (s *GetSlotTypeVersionsInput) SetMaxResults(v int64) *GetSlotTypeVersionsInput {
8249	s.MaxResults = &v
8250	return s
8251}
8252
8253// SetName sets the Name field's value.
8254func (s *GetSlotTypeVersionsInput) SetName(v string) *GetSlotTypeVersionsInput {
8255	s.Name = &v
8256	return s
8257}
8258
8259// SetNextToken sets the NextToken field's value.
8260func (s *GetSlotTypeVersionsInput) SetNextToken(v string) *GetSlotTypeVersionsInput {
8261	s.NextToken = &v
8262	return s
8263}
8264
8265type GetSlotTypeVersionsOutput struct {
8266	_ struct{} `type:"structure"`
8267
8268	// A pagination token for fetching the next page of slot type versions. If the
8269	// response to this call is truncated, Amazon Lex returns a pagination token
8270	// in the response. To fetch the next page of versions, specify the pagination
8271	// token in the next request.
8272	NextToken *string `locationName:"nextToken" type:"string"`
8273
8274	// An array of SlotTypeMetadata objects, one for each numbered version of the
8275	// slot type plus one for the $LATEST version.
8276	SlotTypes []*SlotTypeMetadata `locationName:"slotTypes" type:"list"`
8277}
8278
8279// String returns the string representation
8280func (s GetSlotTypeVersionsOutput) String() string {
8281	return awsutil.Prettify(s)
8282}
8283
8284// GoString returns the string representation
8285func (s GetSlotTypeVersionsOutput) GoString() string {
8286	return s.String()
8287}
8288
8289// SetNextToken sets the NextToken field's value.
8290func (s *GetSlotTypeVersionsOutput) SetNextToken(v string) *GetSlotTypeVersionsOutput {
8291	s.NextToken = &v
8292	return s
8293}
8294
8295// SetSlotTypes sets the SlotTypes field's value.
8296func (s *GetSlotTypeVersionsOutput) SetSlotTypes(v []*SlotTypeMetadata) *GetSlotTypeVersionsOutput {
8297	s.SlotTypes = v
8298	return s
8299}
8300
8301type GetSlotTypesInput struct {
8302	_ struct{} `type:"structure"`
8303
8304	// The maximum number of slot types to return in the response. The default is
8305	// 10.
8306	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
8307
8308	// Substring to match in slot type names. A slot type will be returned if any
8309	// part of its name matches the substring. For example, "xyz" matches both "xyzabc"
8310	// and "abcxyz."
8311	NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"`
8312
8313	// A pagination token that fetches the next page of slot types. If the response
8314	// to this API call is truncated, Amazon Lex returns a pagination token in the
8315	// response. To fetch next page of slot types, specify the pagination token
8316	// in the next request.
8317	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
8318}
8319
8320// String returns the string representation
8321func (s GetSlotTypesInput) String() string {
8322	return awsutil.Prettify(s)
8323}
8324
8325// GoString returns the string representation
8326func (s GetSlotTypesInput) GoString() string {
8327	return s.String()
8328}
8329
8330// Validate inspects the fields of the type to determine if they are valid.
8331func (s *GetSlotTypesInput) Validate() error {
8332	invalidParams := request.ErrInvalidParams{Context: "GetSlotTypesInput"}
8333	if s.MaxResults != nil && *s.MaxResults < 1 {
8334		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8335	}
8336	if s.NameContains != nil && len(*s.NameContains) < 1 {
8337		invalidParams.Add(request.NewErrParamMinLen("NameContains", 1))
8338	}
8339
8340	if invalidParams.Len() > 0 {
8341		return invalidParams
8342	}
8343	return nil
8344}
8345
8346// SetMaxResults sets the MaxResults field's value.
8347func (s *GetSlotTypesInput) SetMaxResults(v int64) *GetSlotTypesInput {
8348	s.MaxResults = &v
8349	return s
8350}
8351
8352// SetNameContains sets the NameContains field's value.
8353func (s *GetSlotTypesInput) SetNameContains(v string) *GetSlotTypesInput {
8354	s.NameContains = &v
8355	return s
8356}
8357
8358// SetNextToken sets the NextToken field's value.
8359func (s *GetSlotTypesInput) SetNextToken(v string) *GetSlotTypesInput {
8360	s.NextToken = &v
8361	return s
8362}
8363
8364type GetSlotTypesOutput struct {
8365	_ struct{} `type:"structure"`
8366
8367	// If the response is truncated, it includes a pagination token that you can
8368	// specify in your next request to fetch the next page of slot types.
8369	NextToken *string `locationName:"nextToken" type:"string"`
8370
8371	// An array of objects, one for each slot type, that provides information such
8372	// as the name of the slot type, the version, and a description.
8373	SlotTypes []*SlotTypeMetadata `locationName:"slotTypes" type:"list"`
8374}
8375
8376// String returns the string representation
8377func (s GetSlotTypesOutput) String() string {
8378	return awsutil.Prettify(s)
8379}
8380
8381// GoString returns the string representation
8382func (s GetSlotTypesOutput) GoString() string {
8383	return s.String()
8384}
8385
8386// SetNextToken sets the NextToken field's value.
8387func (s *GetSlotTypesOutput) SetNextToken(v string) *GetSlotTypesOutput {
8388	s.NextToken = &v
8389	return s
8390}
8391
8392// SetSlotTypes sets the SlotTypes field's value.
8393func (s *GetSlotTypesOutput) SetSlotTypes(v []*SlotTypeMetadata) *GetSlotTypesOutput {
8394	s.SlotTypes = v
8395	return s
8396}
8397
8398type GetUtterancesViewInput struct {
8399	_ struct{} `type:"structure"`
8400
8401	// The name of the bot for which utterance information should be returned.
8402	//
8403	// BotName is a required field
8404	BotName *string `location:"uri" locationName:"botname" min:"2" type:"string" required:"true"`
8405
8406	// An array of bot versions for which utterance information should be returned.
8407	// The limit is 5 versions per request.
8408	//
8409	// BotVersions is a required field
8410	BotVersions []*string `location:"querystring" locationName:"bot_versions" min:"1" type:"list" required:"true"`
8411
8412	// To return utterances that were recognized and handled, useDetected. To return
8413	// utterances that were not recognized, use Missed.
8414	//
8415	// StatusType is a required field
8416	StatusType *string `location:"querystring" locationName:"status_type" type:"string" required:"true" enum:"StatusType"`
8417}
8418
8419// String returns the string representation
8420func (s GetUtterancesViewInput) String() string {
8421	return awsutil.Prettify(s)
8422}
8423
8424// GoString returns the string representation
8425func (s GetUtterancesViewInput) GoString() string {
8426	return s.String()
8427}
8428
8429// Validate inspects the fields of the type to determine if they are valid.
8430func (s *GetUtterancesViewInput) Validate() error {
8431	invalidParams := request.ErrInvalidParams{Context: "GetUtterancesViewInput"}
8432	if s.BotName == nil {
8433		invalidParams.Add(request.NewErrParamRequired("BotName"))
8434	}
8435	if s.BotName != nil && len(*s.BotName) < 2 {
8436		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
8437	}
8438	if s.BotVersions == nil {
8439		invalidParams.Add(request.NewErrParamRequired("BotVersions"))
8440	}
8441	if s.BotVersions != nil && len(s.BotVersions) < 1 {
8442		invalidParams.Add(request.NewErrParamMinLen("BotVersions", 1))
8443	}
8444	if s.StatusType == nil {
8445		invalidParams.Add(request.NewErrParamRequired("StatusType"))
8446	}
8447
8448	if invalidParams.Len() > 0 {
8449		return invalidParams
8450	}
8451	return nil
8452}
8453
8454// SetBotName sets the BotName field's value.
8455func (s *GetUtterancesViewInput) SetBotName(v string) *GetUtterancesViewInput {
8456	s.BotName = &v
8457	return s
8458}
8459
8460// SetBotVersions sets the BotVersions field's value.
8461func (s *GetUtterancesViewInput) SetBotVersions(v []*string) *GetUtterancesViewInput {
8462	s.BotVersions = v
8463	return s
8464}
8465
8466// SetStatusType sets the StatusType field's value.
8467func (s *GetUtterancesViewInput) SetStatusType(v string) *GetUtterancesViewInput {
8468	s.StatusType = &v
8469	return s
8470}
8471
8472type GetUtterancesViewOutput struct {
8473	_ struct{} `type:"structure"`
8474
8475	// The name of the bot for which utterance information was returned.
8476	BotName *string `locationName:"botName" min:"2" type:"string"`
8477
8478	// An array of UtteranceList objects, each containing a list of UtteranceData
8479	// objects describing the utterances that were processed by your bot. The response
8480	// contains a maximum of 100 UtteranceData objects for each version.
8481	Utterances []*UtteranceList `locationName:"utterances" type:"list"`
8482}
8483
8484// String returns the string representation
8485func (s GetUtterancesViewOutput) String() string {
8486	return awsutil.Prettify(s)
8487}
8488
8489// GoString returns the string representation
8490func (s GetUtterancesViewOutput) GoString() string {
8491	return s.String()
8492}
8493
8494// SetBotName sets the BotName field's value.
8495func (s *GetUtterancesViewOutput) SetBotName(v string) *GetUtterancesViewOutput {
8496	s.BotName = &v
8497	return s
8498}
8499
8500// SetUtterances sets the Utterances field's value.
8501func (s *GetUtterancesViewOutput) SetUtterances(v []*UtteranceList) *GetUtterancesViewOutput {
8502	s.Utterances = v
8503	return s
8504}
8505
8506// Identifies the specific version of an intent.
8507type Intent struct {
8508	_ struct{} `type:"structure"`
8509
8510	// The name of the intent.
8511	//
8512	// IntentName is a required field
8513	IntentName *string `locationName:"intentName" min:"1" type:"string" required:"true"`
8514
8515	// The version of the intent.
8516	//
8517	// IntentVersion is a required field
8518	IntentVersion *string `locationName:"intentVersion" min:"1" type:"string" required:"true"`
8519}
8520
8521// String returns the string representation
8522func (s Intent) String() string {
8523	return awsutil.Prettify(s)
8524}
8525
8526// GoString returns the string representation
8527func (s Intent) GoString() string {
8528	return s.String()
8529}
8530
8531// Validate inspects the fields of the type to determine if they are valid.
8532func (s *Intent) Validate() error {
8533	invalidParams := request.ErrInvalidParams{Context: "Intent"}
8534	if s.IntentName == nil {
8535		invalidParams.Add(request.NewErrParamRequired("IntentName"))
8536	}
8537	if s.IntentName != nil && len(*s.IntentName) < 1 {
8538		invalidParams.Add(request.NewErrParamMinLen("IntentName", 1))
8539	}
8540	if s.IntentVersion == nil {
8541		invalidParams.Add(request.NewErrParamRequired("IntentVersion"))
8542	}
8543	if s.IntentVersion != nil && len(*s.IntentVersion) < 1 {
8544		invalidParams.Add(request.NewErrParamMinLen("IntentVersion", 1))
8545	}
8546
8547	if invalidParams.Len() > 0 {
8548		return invalidParams
8549	}
8550	return nil
8551}
8552
8553// SetIntentName sets the IntentName field's value.
8554func (s *Intent) SetIntentName(v string) *Intent {
8555	s.IntentName = &v
8556	return s
8557}
8558
8559// SetIntentVersion sets the IntentVersion field's value.
8560func (s *Intent) SetIntentVersion(v string) *Intent {
8561	s.IntentVersion = &v
8562	return s
8563}
8564
8565// Provides information about an intent.
8566type IntentMetadata struct {
8567	_ struct{} `type:"structure"`
8568
8569	// The date that the intent was created.
8570	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
8571
8572	// A description of the intent.
8573	Description *string `locationName:"description" type:"string"`
8574
8575	// The date that the intent was updated. When you create an intent, the creation
8576	// date and last updated date are the same.
8577	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
8578
8579	// The name of the intent.
8580	Name *string `locationName:"name" min:"1" type:"string"`
8581
8582	// The version of the intent.
8583	Version *string `locationName:"version" min:"1" type:"string"`
8584}
8585
8586// String returns the string representation
8587func (s IntentMetadata) String() string {
8588	return awsutil.Prettify(s)
8589}
8590
8591// GoString returns the string representation
8592func (s IntentMetadata) GoString() string {
8593	return s.String()
8594}
8595
8596// SetCreatedDate sets the CreatedDate field's value.
8597func (s *IntentMetadata) SetCreatedDate(v time.Time) *IntentMetadata {
8598	s.CreatedDate = &v
8599	return s
8600}
8601
8602// SetDescription sets the Description field's value.
8603func (s *IntentMetadata) SetDescription(v string) *IntentMetadata {
8604	s.Description = &v
8605	return s
8606}
8607
8608// SetLastUpdatedDate sets the LastUpdatedDate field's value.
8609func (s *IntentMetadata) SetLastUpdatedDate(v time.Time) *IntentMetadata {
8610	s.LastUpdatedDate = &v
8611	return s
8612}
8613
8614// SetName sets the Name field's value.
8615func (s *IntentMetadata) SetName(v string) *IntentMetadata {
8616	s.Name = &v
8617	return s
8618}
8619
8620// SetVersion sets the Version field's value.
8621func (s *IntentMetadata) SetVersion(v string) *IntentMetadata {
8622	s.Version = &v
8623	return s
8624}
8625
8626// The message object that provides the message text and its type.
8627type Message struct {
8628	_ struct{} `type:"structure"`
8629
8630	// The text of the message.
8631	//
8632	// Content is a required field
8633	Content *string `locationName:"content" min:"1" type:"string" required:"true"`
8634
8635	// The content type of the message string.
8636	//
8637	// ContentType is a required field
8638	ContentType *string `locationName:"contentType" type:"string" required:"true" enum:"ContentType"`
8639
8640	// Identifies the message group that the message belongs to. When a group is
8641	// assigned to a message, Amazon Lex returns one message from each group in
8642	// the response.
8643	GroupNumber *int64 `locationName:"groupNumber" min:"1" type:"integer"`
8644}
8645
8646// String returns the string representation
8647func (s Message) String() string {
8648	return awsutil.Prettify(s)
8649}
8650
8651// GoString returns the string representation
8652func (s Message) GoString() string {
8653	return s.String()
8654}
8655
8656// Validate inspects the fields of the type to determine if they are valid.
8657func (s *Message) Validate() error {
8658	invalidParams := request.ErrInvalidParams{Context: "Message"}
8659	if s.Content == nil {
8660		invalidParams.Add(request.NewErrParamRequired("Content"))
8661	}
8662	if s.Content != nil && len(*s.Content) < 1 {
8663		invalidParams.Add(request.NewErrParamMinLen("Content", 1))
8664	}
8665	if s.ContentType == nil {
8666		invalidParams.Add(request.NewErrParamRequired("ContentType"))
8667	}
8668	if s.GroupNumber != nil && *s.GroupNumber < 1 {
8669		invalidParams.Add(request.NewErrParamMinValue("GroupNumber", 1))
8670	}
8671
8672	if invalidParams.Len() > 0 {
8673		return invalidParams
8674	}
8675	return nil
8676}
8677
8678// SetContent sets the Content field's value.
8679func (s *Message) SetContent(v string) *Message {
8680	s.Content = &v
8681	return s
8682}
8683
8684// SetContentType sets the ContentType field's value.
8685func (s *Message) SetContentType(v string) *Message {
8686	s.ContentType = &v
8687	return s
8688}
8689
8690// SetGroupNumber sets the GroupNumber field's value.
8691func (s *Message) SetGroupNumber(v int64) *Message {
8692	s.GroupNumber = &v
8693	return s
8694}
8695
8696// Obtains information from the user. To define a prompt, provide one or more
8697// messages and specify the number of attempts to get information from the user.
8698// If you provide more than one message, Amazon Lex chooses one of the messages
8699// to use to prompt the user. For more information, see how-it-works.
8700type Prompt struct {
8701	_ struct{} `type:"structure"`
8702
8703	// The number of times to prompt the user for information.
8704	//
8705	// MaxAttempts is a required field
8706	MaxAttempts *int64 `locationName:"maxAttempts" min:"1" type:"integer" required:"true"`
8707
8708	// An array of objects, each of which provides a message string and its type.
8709	// You can specify the message string in plain text or in Speech Synthesis Markup
8710	// Language (SSML).
8711	//
8712	// Messages is a required field
8713	Messages []*Message `locationName:"messages" min:"1" type:"list" required:"true"`
8714
8715	// A response card. Amazon Lex uses this prompt at runtime, in the PostText
8716	// API response. It substitutes session attributes and slot values for placeholders
8717	// in the response card. For more information, see ex-resp-card.
8718	ResponseCard *string `locationName:"responseCard" min:"1" type:"string"`
8719}
8720
8721// String returns the string representation
8722func (s Prompt) String() string {
8723	return awsutil.Prettify(s)
8724}
8725
8726// GoString returns the string representation
8727func (s Prompt) GoString() string {
8728	return s.String()
8729}
8730
8731// Validate inspects the fields of the type to determine if they are valid.
8732func (s *Prompt) Validate() error {
8733	invalidParams := request.ErrInvalidParams{Context: "Prompt"}
8734	if s.MaxAttempts == nil {
8735		invalidParams.Add(request.NewErrParamRequired("MaxAttempts"))
8736	}
8737	if s.MaxAttempts != nil && *s.MaxAttempts < 1 {
8738		invalidParams.Add(request.NewErrParamMinValue("MaxAttempts", 1))
8739	}
8740	if s.Messages == nil {
8741		invalidParams.Add(request.NewErrParamRequired("Messages"))
8742	}
8743	if s.Messages != nil && len(s.Messages) < 1 {
8744		invalidParams.Add(request.NewErrParamMinLen("Messages", 1))
8745	}
8746	if s.ResponseCard != nil && len(*s.ResponseCard) < 1 {
8747		invalidParams.Add(request.NewErrParamMinLen("ResponseCard", 1))
8748	}
8749	if s.Messages != nil {
8750		for i, v := range s.Messages {
8751			if v == nil {
8752				continue
8753			}
8754			if err := v.Validate(); err != nil {
8755				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Messages", i), err.(request.ErrInvalidParams))
8756			}
8757		}
8758	}
8759
8760	if invalidParams.Len() > 0 {
8761		return invalidParams
8762	}
8763	return nil
8764}
8765
8766// SetMaxAttempts sets the MaxAttempts field's value.
8767func (s *Prompt) SetMaxAttempts(v int64) *Prompt {
8768	s.MaxAttempts = &v
8769	return s
8770}
8771
8772// SetMessages sets the Messages field's value.
8773func (s *Prompt) SetMessages(v []*Message) *Prompt {
8774	s.Messages = v
8775	return s
8776}
8777
8778// SetResponseCard sets the ResponseCard field's value.
8779func (s *Prompt) SetResponseCard(v string) *Prompt {
8780	s.ResponseCard = &v
8781	return s
8782}
8783
8784type PutBotAliasInput struct {
8785	_ struct{} `type:"structure"`
8786
8787	// The name of the bot.
8788	//
8789	// BotName is a required field
8790	BotName *string `location:"uri" locationName:"botName" min:"2" type:"string" required:"true"`
8791
8792	// The version of the bot.
8793	//
8794	// BotVersion is a required field
8795	BotVersion *string `locationName:"botVersion" min:"1" type:"string" required:"true"`
8796
8797	// Identifies a specific revision of the $LATEST version.
8798	//
8799	// When you create a new bot alias, leave the checksum field blank. If you specify
8800	// a checksum you get a BadRequestException exception.
8801	//
8802	// When you want to update a bot alias, set the checksum field to the checksum
8803	// of the most recent revision of the $LATEST version. If you don't specify
8804	// the checksum field, or if the checksum does not match the $LATEST version,
8805	// you get a PreconditionFailedException exception.
8806	Checksum *string `locationName:"checksum" type:"string"`
8807
8808	// A description of the alias.
8809	Description *string `locationName:"description" type:"string"`
8810
8811	// The name of the alias. The name is not case sensitive.
8812	//
8813	// Name is a required field
8814	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
8815}
8816
8817// String returns the string representation
8818func (s PutBotAliasInput) String() string {
8819	return awsutil.Prettify(s)
8820}
8821
8822// GoString returns the string representation
8823func (s PutBotAliasInput) GoString() string {
8824	return s.String()
8825}
8826
8827// Validate inspects the fields of the type to determine if they are valid.
8828func (s *PutBotAliasInput) Validate() error {
8829	invalidParams := request.ErrInvalidParams{Context: "PutBotAliasInput"}
8830	if s.BotName == nil {
8831		invalidParams.Add(request.NewErrParamRequired("BotName"))
8832	}
8833	if s.BotName != nil && len(*s.BotName) < 2 {
8834		invalidParams.Add(request.NewErrParamMinLen("BotName", 2))
8835	}
8836	if s.BotVersion == nil {
8837		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
8838	}
8839	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
8840		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
8841	}
8842	if s.Name == nil {
8843		invalidParams.Add(request.NewErrParamRequired("Name"))
8844	}
8845	if s.Name != nil && len(*s.Name) < 1 {
8846		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8847	}
8848
8849	if invalidParams.Len() > 0 {
8850		return invalidParams
8851	}
8852	return nil
8853}
8854
8855// SetBotName sets the BotName field's value.
8856func (s *PutBotAliasInput) SetBotName(v string) *PutBotAliasInput {
8857	s.BotName = &v
8858	return s
8859}
8860
8861// SetBotVersion sets the BotVersion field's value.
8862func (s *PutBotAliasInput) SetBotVersion(v string) *PutBotAliasInput {
8863	s.BotVersion = &v
8864	return s
8865}
8866
8867// SetChecksum sets the Checksum field's value.
8868func (s *PutBotAliasInput) SetChecksum(v string) *PutBotAliasInput {
8869	s.Checksum = &v
8870	return s
8871}
8872
8873// SetDescription sets the Description field's value.
8874func (s *PutBotAliasInput) SetDescription(v string) *PutBotAliasInput {
8875	s.Description = &v
8876	return s
8877}
8878
8879// SetName sets the Name field's value.
8880func (s *PutBotAliasInput) SetName(v string) *PutBotAliasInput {
8881	s.Name = &v
8882	return s
8883}
8884
8885type PutBotAliasOutput struct {
8886	_ struct{} `type:"structure"`
8887
8888	// The name of the bot that the alias points to.
8889	BotName *string `locationName:"botName" min:"2" type:"string"`
8890
8891	// The version of the bot that the alias points to.
8892	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
8893
8894	// The checksum for the current version of the alias.
8895	Checksum *string `locationName:"checksum" type:"string"`
8896
8897	// The date that the bot alias was created.
8898	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
8899
8900	// A description of the alias.
8901	Description *string `locationName:"description" type:"string"`
8902
8903	// The date that the bot alias was updated. When you create a resource, the
8904	// creation date and the last updated date are the same.
8905	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
8906
8907	// The name of the alias.
8908	Name *string `locationName:"name" min:"1" type:"string"`
8909}
8910
8911// String returns the string representation
8912func (s PutBotAliasOutput) String() string {
8913	return awsutil.Prettify(s)
8914}
8915
8916// GoString returns the string representation
8917func (s PutBotAliasOutput) GoString() string {
8918	return s.String()
8919}
8920
8921// SetBotName sets the BotName field's value.
8922func (s *PutBotAliasOutput) SetBotName(v string) *PutBotAliasOutput {
8923	s.BotName = &v
8924	return s
8925}
8926
8927// SetBotVersion sets the BotVersion field's value.
8928func (s *PutBotAliasOutput) SetBotVersion(v string) *PutBotAliasOutput {
8929	s.BotVersion = &v
8930	return s
8931}
8932
8933// SetChecksum sets the Checksum field's value.
8934func (s *PutBotAliasOutput) SetChecksum(v string) *PutBotAliasOutput {
8935	s.Checksum = &v
8936	return s
8937}
8938
8939// SetCreatedDate sets the CreatedDate field's value.
8940func (s *PutBotAliasOutput) SetCreatedDate(v time.Time) *PutBotAliasOutput {
8941	s.CreatedDate = &v
8942	return s
8943}
8944
8945// SetDescription sets the Description field's value.
8946func (s *PutBotAliasOutput) SetDescription(v string) *PutBotAliasOutput {
8947	s.Description = &v
8948	return s
8949}
8950
8951// SetLastUpdatedDate sets the LastUpdatedDate field's value.
8952func (s *PutBotAliasOutput) SetLastUpdatedDate(v time.Time) *PutBotAliasOutput {
8953	s.LastUpdatedDate = &v
8954	return s
8955}
8956
8957// SetName sets the Name field's value.
8958func (s *PutBotAliasOutput) SetName(v string) *PutBotAliasOutput {
8959	s.Name = &v
8960	return s
8961}
8962
8963type PutBotInput struct {
8964	_ struct{} `type:"structure"`
8965
8966	// When Amazon Lex can't understand the user's input in context, it tries to
8967	// elicit the information a few times. After that, Amazon Lex sends the message
8968	// defined in abortStatement to the user, and then aborts the conversation.
8969	// To set the number of retries, use the valueElicitationPrompt field for the
8970	// slot type.
8971	//
8972	// For example, in a pizza ordering bot, Amazon Lex might ask a user "What type
8973	// of crust would you like?" If the user's response is not one of the expected
8974	// responses (for example, "thin crust, "deep dish," etc.), Amazon Lex tries
8975	// to elicit a correct response a few more times.
8976	//
8977	// For example, in a pizza ordering application, OrderPizza might be one of
8978	// the intents. This intent might require the CrustType slot. You specify the
8979	// valueElicitationPrompt field when you create the CrustType slot.
8980	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
8981
8982	// Identifies a specific revision of the $LATEST version.
8983	//
8984	// When you create a new bot, leave the checksum field blank. If you specify
8985	// a checksum you get a BadRequestException exception.
8986	//
8987	// When you want to update a bot, set the checksum field to the checksum of
8988	// the most recent revision of the $LATEST version. If you don't specify the
8989	// checksum field, or if the checksum does not match the $LATEST version, you
8990	// get a PreconditionFailedException exception.
8991	Checksum *string `locationName:"checksum" type:"string"`
8992
8993	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
8994	// you must specify whether your use of Amazon Lex is related to a website,
8995	// program, or other application that is directed or targeted, in whole or in
8996	// part, to children under age 13 and subject to the Children's Online Privacy
8997	// Protection Act (COPPA) by specifying true or false in the childDirected field.
8998	// By specifying true in the childDirected field, you confirm that your use
8999	// of Amazon Lex is related to a website, program, or other application that
9000	// is directed or targeted, in whole or in part, to children under age 13 and
9001	// subject to COPPA. By specifying false in the childDirected field, you confirm
9002	// that your use of Amazon Lex is not related to a website, program, or other
9003	// application that is directed or targeted, in whole or in part, to children
9004	// under age 13 and subject to COPPA. You may not specify a default value for
9005	// the childDirected field that does not accurately reflect whether your use
9006	// of Amazon Lex is related to a website, program, or other application that
9007	// is directed or targeted, in whole or in part, to children under age 13 and
9008	// subject to COPPA.
9009	//
9010	// If your use of Amazon Lex relates to a website, program, or other application
9011	// that is directed in whole or in part, to children under age 13, you must
9012	// obtain any required verifiable parental consent under COPPA. For information
9013	// regarding the use of Amazon Lex in connection with websites, programs, or
9014	// other applications that are directed or targeted, in whole or in part, to
9015	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
9016	//
9017	// ChildDirected is a required field
9018	ChildDirected *bool `locationName:"childDirected" type:"boolean" required:"true"`
9019
9020	// When Amazon Lex doesn't understand the user's intent, it uses this message
9021	// to get clarification. To specify how many times Amazon Lex should repeate
9022	// the clarification prompt, use the maxAttempts field. If Amazon Lex still
9023	// doesn't understand, it sends the message in the abortStatement field.
9024	//
9025	// When you create a clarification prompt, make sure that it suggests the correct
9026	// response from the user. for example, for a bot that orders pizza and drinks,
9027	// you might create this clarification prompt: "What would you like to do? You
9028	// can say 'Order a pizza' or 'Order a drink.'"
9029	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
9030
9031	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
9032
9033	// A description of the bot.
9034	Description *string `locationName:"description" type:"string"`
9035
9036	// The maximum time in seconds that Amazon Lex retains the data gathered in
9037	// a conversation.
9038	//
9039	// A user interaction session remains active for the amount of time specified.
9040	// If no conversation occurs during this time, the session expires and Amazon
9041	// Lex deletes any data provided before the timeout.
9042	//
9043	// For example, suppose that a user chooses the OrderPizza intent, but gets
9044	// sidetracked halfway through placing an order. If the user doesn't complete
9045	// the order within the specified time, Amazon Lex discards the slot information
9046	// that it gathered, and the user must start over.
9047	//
9048	// If you don't include the idleSessionTTLInSeconds element in a PutBot operation
9049	// request, Amazon Lex uses the default value. This is also true if the request
9050	// replaces an existing bot.
9051	//
9052	// The default is 300 seconds (5 minutes).
9053	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
9054
9055	// An array of Intent objects. Each intent represents a command that a user
9056	// can express. For example, a pizza ordering bot might support an OrderPizza
9057	// intent. For more information, see how-it-works.
9058	Intents []*Intent `locationName:"intents" type:"list"`
9059
9060	// Specifies the target locale for the bot. Any intent used in the bot must
9061	// be compatible with the locale of the bot.
9062	//
9063	// The default is en-US.
9064	//
9065	// Locale is a required field
9066	Locale *string `locationName:"locale" type:"string" required:"true" enum:"Locale"`
9067
9068	// The name of the bot. The name is not case sensitive.
9069	//
9070	// Name is a required field
9071	Name *string `location:"uri" locationName:"name" min:"2" type:"string" required:"true"`
9072
9073	// If you set the processBehavior element to BUILD, Amazon Lex builds the bot
9074	// so that it can be run. If you set the element to SAVE Amazon Lex saves the
9075	// bot, but doesn't build it.
9076	//
9077	// If you don't specify this value, the default value is BUILD.
9078	ProcessBehavior *string `locationName:"processBehavior" type:"string" enum:"ProcessBehavior"`
9079
9080	// The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions
9081	// with the user. The locale configured for the voice must match the locale
9082	// of the bot. For more information, see Available Voices (http://docs.aws.amazon.com/polly/latest/dg/voicelist.html)
9083	// in the Amazon Polly Developer Guide.
9084	VoiceId *string `locationName:"voiceId" type:"string"`
9085}
9086
9087// String returns the string representation
9088func (s PutBotInput) String() string {
9089	return awsutil.Prettify(s)
9090}
9091
9092// GoString returns the string representation
9093func (s PutBotInput) GoString() string {
9094	return s.String()
9095}
9096
9097// Validate inspects the fields of the type to determine if they are valid.
9098func (s *PutBotInput) Validate() error {
9099	invalidParams := request.ErrInvalidParams{Context: "PutBotInput"}
9100	if s.ChildDirected == nil {
9101		invalidParams.Add(request.NewErrParamRequired("ChildDirected"))
9102	}
9103	if s.IdleSessionTTLInSeconds != nil && *s.IdleSessionTTLInSeconds < 60 {
9104		invalidParams.Add(request.NewErrParamMinValue("IdleSessionTTLInSeconds", 60))
9105	}
9106	if s.Locale == nil {
9107		invalidParams.Add(request.NewErrParamRequired("Locale"))
9108	}
9109	if s.Name == nil {
9110		invalidParams.Add(request.NewErrParamRequired("Name"))
9111	}
9112	if s.Name != nil && len(*s.Name) < 2 {
9113		invalidParams.Add(request.NewErrParamMinLen("Name", 2))
9114	}
9115	if s.AbortStatement != nil {
9116		if err := s.AbortStatement.Validate(); err != nil {
9117			invalidParams.AddNested("AbortStatement", err.(request.ErrInvalidParams))
9118		}
9119	}
9120	if s.ClarificationPrompt != nil {
9121		if err := s.ClarificationPrompt.Validate(); err != nil {
9122			invalidParams.AddNested("ClarificationPrompt", err.(request.ErrInvalidParams))
9123		}
9124	}
9125	if s.Intents != nil {
9126		for i, v := range s.Intents {
9127			if v == nil {
9128				continue
9129			}
9130			if err := v.Validate(); err != nil {
9131				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Intents", i), err.(request.ErrInvalidParams))
9132			}
9133		}
9134	}
9135
9136	if invalidParams.Len() > 0 {
9137		return invalidParams
9138	}
9139	return nil
9140}
9141
9142// SetAbortStatement sets the AbortStatement field's value.
9143func (s *PutBotInput) SetAbortStatement(v *Statement) *PutBotInput {
9144	s.AbortStatement = v
9145	return s
9146}
9147
9148// SetChecksum sets the Checksum field's value.
9149func (s *PutBotInput) SetChecksum(v string) *PutBotInput {
9150	s.Checksum = &v
9151	return s
9152}
9153
9154// SetChildDirected sets the ChildDirected field's value.
9155func (s *PutBotInput) SetChildDirected(v bool) *PutBotInput {
9156	s.ChildDirected = &v
9157	return s
9158}
9159
9160// SetClarificationPrompt sets the ClarificationPrompt field's value.
9161func (s *PutBotInput) SetClarificationPrompt(v *Prompt) *PutBotInput {
9162	s.ClarificationPrompt = v
9163	return s
9164}
9165
9166// SetCreateVersion sets the CreateVersion field's value.
9167func (s *PutBotInput) SetCreateVersion(v bool) *PutBotInput {
9168	s.CreateVersion = &v
9169	return s
9170}
9171
9172// SetDescription sets the Description field's value.
9173func (s *PutBotInput) SetDescription(v string) *PutBotInput {
9174	s.Description = &v
9175	return s
9176}
9177
9178// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
9179func (s *PutBotInput) SetIdleSessionTTLInSeconds(v int64) *PutBotInput {
9180	s.IdleSessionTTLInSeconds = &v
9181	return s
9182}
9183
9184// SetIntents sets the Intents field's value.
9185func (s *PutBotInput) SetIntents(v []*Intent) *PutBotInput {
9186	s.Intents = v
9187	return s
9188}
9189
9190// SetLocale sets the Locale field's value.
9191func (s *PutBotInput) SetLocale(v string) *PutBotInput {
9192	s.Locale = &v
9193	return s
9194}
9195
9196// SetName sets the Name field's value.
9197func (s *PutBotInput) SetName(v string) *PutBotInput {
9198	s.Name = &v
9199	return s
9200}
9201
9202// SetProcessBehavior sets the ProcessBehavior field's value.
9203func (s *PutBotInput) SetProcessBehavior(v string) *PutBotInput {
9204	s.ProcessBehavior = &v
9205	return s
9206}
9207
9208// SetVoiceId sets the VoiceId field's value.
9209func (s *PutBotInput) SetVoiceId(v string) *PutBotInput {
9210	s.VoiceId = &v
9211	return s
9212}
9213
9214type PutBotOutput struct {
9215	_ struct{} `type:"structure"`
9216
9217	// The message that Amazon Lex uses to abort a conversation. For more information,
9218	// see PutBot.
9219	AbortStatement *Statement `locationName:"abortStatement" type:"structure"`
9220
9221	// Checksum of the bot that you created.
9222	Checksum *string `locationName:"checksum" type:"string"`
9223
9224	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
9225	// you must specify whether your use of Amazon Lex is related to a website,
9226	// program, or other application that is directed or targeted, in whole or in
9227	// part, to children under age 13 and subject to the Children's Online Privacy
9228	// Protection Act (COPPA) by specifying true or false in the childDirected field.
9229	// By specifying true in the childDirected field, you confirm that your use
9230	// of Amazon Lex is related to a website, program, or other application that
9231	// is directed or targeted, in whole or in part, to children under age 13 and
9232	// subject to COPPA. By specifying false in the childDirected field, you confirm
9233	// that your use of Amazon Lex is not related to a website, program, or other
9234	// application that is directed or targeted, in whole or in part, to children
9235	// under age 13 and subject to COPPA. You may not specify a default value for
9236	// the childDirected field that does not accurately reflect whether your use
9237	// of Amazon Lex is related to a website, program, or other application that
9238	// is directed or targeted, in whole or in part, to children under age 13 and
9239	// subject to COPPA.
9240	//
9241	// If your use of Amazon Lex relates to a website, program, or other application
9242	// that is directed in whole or in part, to children under age 13, you must
9243	// obtain any required verifiable parental consent under COPPA. For information
9244	// regarding the use of Amazon Lex in connection with websites, programs, or
9245	// other applications that are directed or targeted, in whole or in part, to
9246	// children under age 13, see the Amazon Lex FAQ. (https://aws.amazon.com/lex/faqs#data-security)
9247	ChildDirected *bool `locationName:"childDirected" type:"boolean"`
9248
9249	// The prompts that Amazon Lex uses when it doesn't understand the user's intent.
9250	// For more information, see PutBot.
9251	ClarificationPrompt *Prompt `locationName:"clarificationPrompt" type:"structure"`
9252
9253	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
9254
9255	// The date that the bot was created.
9256	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
9257
9258	// A description of the bot.
9259	Description *string `locationName:"description" type:"string"`
9260
9261	// If status is FAILED, Amazon Lex provides the reason that it failed to build
9262	// the bot.
9263	FailureReason *string `locationName:"failureReason" type:"string"`
9264
9265	// The maximum length of time that Amazon Lex retains the data gathered in a
9266	// conversation. For more information, see PutBot.
9267	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
9268
9269	// An array of Intent objects. For more information, see PutBot.
9270	Intents []*Intent `locationName:"intents" type:"list"`
9271
9272	// The date that the bot was updated. When you create a resource, the creation
9273	// date and last updated date are the same.
9274	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
9275
9276	// The target locale for the bot.
9277	Locale *string `locationName:"locale" type:"string" enum:"Locale"`
9278
9279	// The name of the bot.
9280	Name *string `locationName:"name" min:"2" type:"string"`
9281
9282	// When you send a request to create a bot with processBehavior set to BUILD,
9283	// Amazon Lex sets the status response element to BUILDING. After Amazon Lex
9284	// builds the bot, it sets status to READY. If Amazon Lex can't build the bot,
9285	// Amazon Lex sets status to FAILED. Amazon Lex returns the reason for the failure
9286	// in the failureReason response element.
9287	//
9288	// When you set processBehaviorto SAVE, Amazon Lex sets the status code to NOT
9289	// BUILT.
9290	Status *string `locationName:"status" type:"string" enum:"Status"`
9291
9292	// The version of the bot. For a new bot, the version is always $LATEST.
9293	Version *string `locationName:"version" min:"1" type:"string"`
9294
9295	// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with
9296	// the user. For more information, see PutBot.
9297	VoiceId *string `locationName:"voiceId" type:"string"`
9298}
9299
9300// String returns the string representation
9301func (s PutBotOutput) String() string {
9302	return awsutil.Prettify(s)
9303}
9304
9305// GoString returns the string representation
9306func (s PutBotOutput) GoString() string {
9307	return s.String()
9308}
9309
9310// SetAbortStatement sets the AbortStatement field's value.
9311func (s *PutBotOutput) SetAbortStatement(v *Statement) *PutBotOutput {
9312	s.AbortStatement = v
9313	return s
9314}
9315
9316// SetChecksum sets the Checksum field's value.
9317func (s *PutBotOutput) SetChecksum(v string) *PutBotOutput {
9318	s.Checksum = &v
9319	return s
9320}
9321
9322// SetChildDirected sets the ChildDirected field's value.
9323func (s *PutBotOutput) SetChildDirected(v bool) *PutBotOutput {
9324	s.ChildDirected = &v
9325	return s
9326}
9327
9328// SetClarificationPrompt sets the ClarificationPrompt field's value.
9329func (s *PutBotOutput) SetClarificationPrompt(v *Prompt) *PutBotOutput {
9330	s.ClarificationPrompt = v
9331	return s
9332}
9333
9334// SetCreateVersion sets the CreateVersion field's value.
9335func (s *PutBotOutput) SetCreateVersion(v bool) *PutBotOutput {
9336	s.CreateVersion = &v
9337	return s
9338}
9339
9340// SetCreatedDate sets the CreatedDate field's value.
9341func (s *PutBotOutput) SetCreatedDate(v time.Time) *PutBotOutput {
9342	s.CreatedDate = &v
9343	return s
9344}
9345
9346// SetDescription sets the Description field's value.
9347func (s *PutBotOutput) SetDescription(v string) *PutBotOutput {
9348	s.Description = &v
9349	return s
9350}
9351
9352// SetFailureReason sets the FailureReason field's value.
9353func (s *PutBotOutput) SetFailureReason(v string) *PutBotOutput {
9354	s.FailureReason = &v
9355	return s
9356}
9357
9358// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
9359func (s *PutBotOutput) SetIdleSessionTTLInSeconds(v int64) *PutBotOutput {
9360	s.IdleSessionTTLInSeconds = &v
9361	return s
9362}
9363
9364// SetIntents sets the Intents field's value.
9365func (s *PutBotOutput) SetIntents(v []*Intent) *PutBotOutput {
9366	s.Intents = v
9367	return s
9368}
9369
9370// SetLastUpdatedDate sets the LastUpdatedDate field's value.
9371func (s *PutBotOutput) SetLastUpdatedDate(v time.Time) *PutBotOutput {
9372	s.LastUpdatedDate = &v
9373	return s
9374}
9375
9376// SetLocale sets the Locale field's value.
9377func (s *PutBotOutput) SetLocale(v string) *PutBotOutput {
9378	s.Locale = &v
9379	return s
9380}
9381
9382// SetName sets the Name field's value.
9383func (s *PutBotOutput) SetName(v string) *PutBotOutput {
9384	s.Name = &v
9385	return s
9386}
9387
9388// SetStatus sets the Status field's value.
9389func (s *PutBotOutput) SetStatus(v string) *PutBotOutput {
9390	s.Status = &v
9391	return s
9392}
9393
9394// SetVersion sets the Version field's value.
9395func (s *PutBotOutput) SetVersion(v string) *PutBotOutput {
9396	s.Version = &v
9397	return s
9398}
9399
9400// SetVoiceId sets the VoiceId field's value.
9401func (s *PutBotOutput) SetVoiceId(v string) *PutBotOutput {
9402	s.VoiceId = &v
9403	return s
9404}
9405
9406type PutIntentInput struct {
9407	_ struct{} `type:"structure"`
9408
9409	// Identifies a specific revision of the $LATEST version.
9410	//
9411	// When you create a new intent, leave the checksum field blank. If you specify
9412	// a checksum you get a BadRequestException exception.
9413	//
9414	// When you want to update a intent, set the checksum field to the checksum
9415	// of the most recent revision of the $LATEST version. If you don't specify
9416	// the checksum field, or if the checksum does not match the $LATEST version,
9417	// you get a PreconditionFailedException exception.
9418	Checksum *string `locationName:"checksum" type:"string"`
9419
9420	// The statement that you want Amazon Lex to convey to the user after the intent
9421	// is successfully fulfilled by the Lambda function.
9422	//
9423	// This element is relevant only if you provide a Lambda function in the fulfillmentActivity.
9424	// If you return the intent to the client application, you can't specify this
9425	// element.
9426	//
9427	// The followUpPrompt and conclusionStatement are mutually exclusive. You can
9428	// specify only one.
9429	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
9430
9431	// Prompts the user to confirm the intent. This question should have a yes or
9432	// no answer.
9433	//
9434	// Amazon Lex uses this prompt to ensure that the user acknowledges that the
9435	// intent is ready for fulfillment. For example, with the OrderPizza intent,
9436	// you might want to confirm that the order is correct before placing it. For
9437	// other intents, such as intents that simply respond to user questions, you
9438	// might not need to ask the user for confirmation before providing the information.
9439	//
9440	// You you must provide both the rejectionStatement and the confirmationPrompt,
9441	// or neither.
9442	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
9443
9444	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
9445
9446	// A description of the intent.
9447	Description *string `locationName:"description" type:"string"`
9448
9449	// Specifies a Lambda function to invoke for each user input. You can invoke
9450	// this Lambda function to personalize user interaction.
9451	//
9452	// For example, suppose your bot determines that the user is John. Your Lambda
9453	// function might retrieve John's information from a backend database and prepopulate
9454	// some of the values. For example, if you find that John is gluten intolerant,
9455	// you might set the corresponding intent slot, GlutenIntolerant, to true. You
9456	// might find John's phone number and set the corresponding session attribute.
9457	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
9458
9459	// Amazon Lex uses this prompt to solicit additional activity after fulfilling
9460	// an intent. For example, after the OrderPizza intent is fulfilled, you might
9461	// prompt the user to order a drink.
9462	//
9463	// The action that Amazon Lex takes depends on the user's response, as follows:
9464	//
9465	//    * If the user says "Yes" it responds with the clarification prompt that
9466	//    is configured for the bot.
9467	//
9468	//    * if the user says "Yes" and continues with an utterance that triggers
9469	//    an intent it starts a conversation for the intent.
9470	//
9471	//    * If the user says "No" it responds with the rejection statement configured
9472	//    for the the follow-up prompt.
9473	//
9474	//    * If it doesn't recognize the utterance it repeats the follow-up prompt
9475	//    again.
9476	//
9477	// The followUpPrompt field and the conclusionStatement field are mutually exclusive.
9478	// You can specify only one.
9479	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
9480
9481	// Required. Describes how the intent is fulfilled. For example, after a user
9482	// provides all of the information for a pizza order, fulfillmentActivity defines
9483	// how the bot places an order with a local pizza store.
9484	//
9485	// You might configure Amazon Lex to return all of the intent information to
9486	// the client application, or direct it to invoke a Lambda function that can
9487	// process the intent (for example, place an order with a pizzeria).
9488	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
9489
9490	// The name of the intent. The name is not case sensitive.
9491	//
9492	// The name can't match a built-in intent name, or a built-in intent name with
9493	// "AMAZON." removed. For example, because there is a built-in intent called
9494	// AMAZON.HelpIntent, you can't create a custom intent called HelpIntent.
9495	//
9496	// 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)
9497	// in the Alexa Skills Kit.
9498	//
9499	// Name is a required field
9500	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
9501
9502	// A unique identifier for the built-in intent to base this intent on. To find
9503	// 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)
9504	// in the Alexa Skills Kit.
9505	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
9506
9507	// When the user answers "no" to the question defined in confirmationPrompt,
9508	// Amazon Lex responds with this statement to acknowledge that the intent was
9509	// canceled.
9510	//
9511	// You must provide both the rejectionStatement and the confirmationPrompt,
9512	// or neither.
9513	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
9514
9515	// An array of utterances (strings) that a user might say to signal the intent.
9516	// For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas".
9517	//
9518	// In each utterance, a slot name is enclosed in curly braces.
9519	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
9520
9521	// An array of intent slots. At runtime, Amazon Lex elicits required slot values
9522	// from the user using prompts defined in the slots. For more information, see
9523	// how-it-works.
9524	Slots []*Slot `locationName:"slots" type:"list"`
9525}
9526
9527// String returns the string representation
9528func (s PutIntentInput) String() string {
9529	return awsutil.Prettify(s)
9530}
9531
9532// GoString returns the string representation
9533func (s PutIntentInput) GoString() string {
9534	return s.String()
9535}
9536
9537// Validate inspects the fields of the type to determine if they are valid.
9538func (s *PutIntentInput) Validate() error {
9539	invalidParams := request.ErrInvalidParams{Context: "PutIntentInput"}
9540	if s.Name == nil {
9541		invalidParams.Add(request.NewErrParamRequired("Name"))
9542	}
9543	if s.Name != nil && len(*s.Name) < 1 {
9544		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9545	}
9546	if s.ConclusionStatement != nil {
9547		if err := s.ConclusionStatement.Validate(); err != nil {
9548			invalidParams.AddNested("ConclusionStatement", err.(request.ErrInvalidParams))
9549		}
9550	}
9551	if s.ConfirmationPrompt != nil {
9552		if err := s.ConfirmationPrompt.Validate(); err != nil {
9553			invalidParams.AddNested("ConfirmationPrompt", err.(request.ErrInvalidParams))
9554		}
9555	}
9556	if s.DialogCodeHook != nil {
9557		if err := s.DialogCodeHook.Validate(); err != nil {
9558			invalidParams.AddNested("DialogCodeHook", err.(request.ErrInvalidParams))
9559		}
9560	}
9561	if s.FollowUpPrompt != nil {
9562		if err := s.FollowUpPrompt.Validate(); err != nil {
9563			invalidParams.AddNested("FollowUpPrompt", err.(request.ErrInvalidParams))
9564		}
9565	}
9566	if s.FulfillmentActivity != nil {
9567		if err := s.FulfillmentActivity.Validate(); err != nil {
9568			invalidParams.AddNested("FulfillmentActivity", err.(request.ErrInvalidParams))
9569		}
9570	}
9571	if s.RejectionStatement != nil {
9572		if err := s.RejectionStatement.Validate(); err != nil {
9573			invalidParams.AddNested("RejectionStatement", err.(request.ErrInvalidParams))
9574		}
9575	}
9576	if s.Slots != nil {
9577		for i, v := range s.Slots {
9578			if v == nil {
9579				continue
9580			}
9581			if err := v.Validate(); err != nil {
9582				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Slots", i), err.(request.ErrInvalidParams))
9583			}
9584		}
9585	}
9586
9587	if invalidParams.Len() > 0 {
9588		return invalidParams
9589	}
9590	return nil
9591}
9592
9593// SetChecksum sets the Checksum field's value.
9594func (s *PutIntentInput) SetChecksum(v string) *PutIntentInput {
9595	s.Checksum = &v
9596	return s
9597}
9598
9599// SetConclusionStatement sets the ConclusionStatement field's value.
9600func (s *PutIntentInput) SetConclusionStatement(v *Statement) *PutIntentInput {
9601	s.ConclusionStatement = v
9602	return s
9603}
9604
9605// SetConfirmationPrompt sets the ConfirmationPrompt field's value.
9606func (s *PutIntentInput) SetConfirmationPrompt(v *Prompt) *PutIntentInput {
9607	s.ConfirmationPrompt = v
9608	return s
9609}
9610
9611// SetCreateVersion sets the CreateVersion field's value.
9612func (s *PutIntentInput) SetCreateVersion(v bool) *PutIntentInput {
9613	s.CreateVersion = &v
9614	return s
9615}
9616
9617// SetDescription sets the Description field's value.
9618func (s *PutIntentInput) SetDescription(v string) *PutIntentInput {
9619	s.Description = &v
9620	return s
9621}
9622
9623// SetDialogCodeHook sets the DialogCodeHook field's value.
9624func (s *PutIntentInput) SetDialogCodeHook(v *CodeHook) *PutIntentInput {
9625	s.DialogCodeHook = v
9626	return s
9627}
9628
9629// SetFollowUpPrompt sets the FollowUpPrompt field's value.
9630func (s *PutIntentInput) SetFollowUpPrompt(v *FollowUpPrompt) *PutIntentInput {
9631	s.FollowUpPrompt = v
9632	return s
9633}
9634
9635// SetFulfillmentActivity sets the FulfillmentActivity field's value.
9636func (s *PutIntentInput) SetFulfillmentActivity(v *FulfillmentActivity) *PutIntentInput {
9637	s.FulfillmentActivity = v
9638	return s
9639}
9640
9641// SetName sets the Name field's value.
9642func (s *PutIntentInput) SetName(v string) *PutIntentInput {
9643	s.Name = &v
9644	return s
9645}
9646
9647// SetParentIntentSignature sets the ParentIntentSignature field's value.
9648func (s *PutIntentInput) SetParentIntentSignature(v string) *PutIntentInput {
9649	s.ParentIntentSignature = &v
9650	return s
9651}
9652
9653// SetRejectionStatement sets the RejectionStatement field's value.
9654func (s *PutIntentInput) SetRejectionStatement(v *Statement) *PutIntentInput {
9655	s.RejectionStatement = v
9656	return s
9657}
9658
9659// SetSampleUtterances sets the SampleUtterances field's value.
9660func (s *PutIntentInput) SetSampleUtterances(v []*string) *PutIntentInput {
9661	s.SampleUtterances = v
9662	return s
9663}
9664
9665// SetSlots sets the Slots field's value.
9666func (s *PutIntentInput) SetSlots(v []*Slot) *PutIntentInput {
9667	s.Slots = v
9668	return s
9669}
9670
9671type PutIntentOutput struct {
9672	_ struct{} `type:"structure"`
9673
9674	// Checksum of the $LATESTversion of the intent created or updated.
9675	Checksum *string `locationName:"checksum" type:"string"`
9676
9677	// After the Lambda function specified in thefulfillmentActivityintent fulfills
9678	// the intent, Amazon Lex conveys this statement to the user.
9679	ConclusionStatement *Statement `locationName:"conclusionStatement" type:"structure"`
9680
9681	// If defined in the intent, Amazon Lex prompts the user to confirm the intent
9682	// before fulfilling it.
9683	ConfirmationPrompt *Prompt `locationName:"confirmationPrompt" type:"structure"`
9684
9685	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
9686
9687	// The date that the intent was created.
9688	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
9689
9690	// A description of the intent.
9691	Description *string `locationName:"description" type:"string"`
9692
9693	// If defined in the intent, Amazon Lex invokes this Lambda function for each
9694	// user input.
9695	DialogCodeHook *CodeHook `locationName:"dialogCodeHook" type:"structure"`
9696
9697	// If defined in the intent, Amazon Lex uses this prompt to solicit additional
9698	// user activity after the intent is fulfilled.
9699	FollowUpPrompt *FollowUpPrompt `locationName:"followUpPrompt" type:"structure"`
9700
9701	// If defined in the intent, Amazon Lex invokes this Lambda function to fulfill
9702	// the intent after the user provides all of the information required by the
9703	// intent.
9704	FulfillmentActivity *FulfillmentActivity `locationName:"fulfillmentActivity" type:"structure"`
9705
9706	// The date that the intent was updated. When you create a resource, the creation
9707	// date and last update dates are the same.
9708	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
9709
9710	// The name of the intent.
9711	Name *string `locationName:"name" min:"1" type:"string"`
9712
9713	// A unique identifier for the built-in intent that this intent is based on.
9714	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
9715
9716	// If the user answers "no" to the question defined in confirmationPrompt Amazon
9717	// Lex responds with this statement to acknowledge that the intent was canceled.
9718	RejectionStatement *Statement `locationName:"rejectionStatement" type:"structure"`
9719
9720	// An array of sample utterances that are configured for the intent.
9721	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
9722
9723	// An array of intent slots that are configured for the intent.
9724	Slots []*Slot `locationName:"slots" type:"list"`
9725
9726	// The version of the intent. For a new intent, the version is always $LATEST.
9727	Version *string `locationName:"version" min:"1" type:"string"`
9728}
9729
9730// String returns the string representation
9731func (s PutIntentOutput) String() string {
9732	return awsutil.Prettify(s)
9733}
9734
9735// GoString returns the string representation
9736func (s PutIntentOutput) GoString() string {
9737	return s.String()
9738}
9739
9740// SetChecksum sets the Checksum field's value.
9741func (s *PutIntentOutput) SetChecksum(v string) *PutIntentOutput {
9742	s.Checksum = &v
9743	return s
9744}
9745
9746// SetConclusionStatement sets the ConclusionStatement field's value.
9747func (s *PutIntentOutput) SetConclusionStatement(v *Statement) *PutIntentOutput {
9748	s.ConclusionStatement = v
9749	return s
9750}
9751
9752// SetConfirmationPrompt sets the ConfirmationPrompt field's value.
9753func (s *PutIntentOutput) SetConfirmationPrompt(v *Prompt) *PutIntentOutput {
9754	s.ConfirmationPrompt = v
9755	return s
9756}
9757
9758// SetCreateVersion sets the CreateVersion field's value.
9759func (s *PutIntentOutput) SetCreateVersion(v bool) *PutIntentOutput {
9760	s.CreateVersion = &v
9761	return s
9762}
9763
9764// SetCreatedDate sets the CreatedDate field's value.
9765func (s *PutIntentOutput) SetCreatedDate(v time.Time) *PutIntentOutput {
9766	s.CreatedDate = &v
9767	return s
9768}
9769
9770// SetDescription sets the Description field's value.
9771func (s *PutIntentOutput) SetDescription(v string) *PutIntentOutput {
9772	s.Description = &v
9773	return s
9774}
9775
9776// SetDialogCodeHook sets the DialogCodeHook field's value.
9777func (s *PutIntentOutput) SetDialogCodeHook(v *CodeHook) *PutIntentOutput {
9778	s.DialogCodeHook = v
9779	return s
9780}
9781
9782// SetFollowUpPrompt sets the FollowUpPrompt field's value.
9783func (s *PutIntentOutput) SetFollowUpPrompt(v *FollowUpPrompt) *PutIntentOutput {
9784	s.FollowUpPrompt = v
9785	return s
9786}
9787
9788// SetFulfillmentActivity sets the FulfillmentActivity field's value.
9789func (s *PutIntentOutput) SetFulfillmentActivity(v *FulfillmentActivity) *PutIntentOutput {
9790	s.FulfillmentActivity = v
9791	return s
9792}
9793
9794// SetLastUpdatedDate sets the LastUpdatedDate field's value.
9795func (s *PutIntentOutput) SetLastUpdatedDate(v time.Time) *PutIntentOutput {
9796	s.LastUpdatedDate = &v
9797	return s
9798}
9799
9800// SetName sets the Name field's value.
9801func (s *PutIntentOutput) SetName(v string) *PutIntentOutput {
9802	s.Name = &v
9803	return s
9804}
9805
9806// SetParentIntentSignature sets the ParentIntentSignature field's value.
9807func (s *PutIntentOutput) SetParentIntentSignature(v string) *PutIntentOutput {
9808	s.ParentIntentSignature = &v
9809	return s
9810}
9811
9812// SetRejectionStatement sets the RejectionStatement field's value.
9813func (s *PutIntentOutput) SetRejectionStatement(v *Statement) *PutIntentOutput {
9814	s.RejectionStatement = v
9815	return s
9816}
9817
9818// SetSampleUtterances sets the SampleUtterances field's value.
9819func (s *PutIntentOutput) SetSampleUtterances(v []*string) *PutIntentOutput {
9820	s.SampleUtterances = v
9821	return s
9822}
9823
9824// SetSlots sets the Slots field's value.
9825func (s *PutIntentOutput) SetSlots(v []*Slot) *PutIntentOutput {
9826	s.Slots = v
9827	return s
9828}
9829
9830// SetVersion sets the Version field's value.
9831func (s *PutIntentOutput) SetVersion(v string) *PutIntentOutput {
9832	s.Version = &v
9833	return s
9834}
9835
9836type PutSlotTypeInput struct {
9837	_ struct{} `type:"structure"`
9838
9839	// Identifies a specific revision of the $LATEST version.
9840	//
9841	// When you create a new slot type, leave the checksum field blank. If you specify
9842	// a checksum you get a BadRequestException exception.
9843	//
9844	// When you want to update a slot type, set the checksum field to the checksum
9845	// of the most recent revision of the $LATEST version. If you don't specify
9846	// the checksum field, or if the checksum does not match the $LATEST version,
9847	// you get a PreconditionFailedException exception.
9848	Checksum *string `locationName:"checksum" type:"string"`
9849
9850	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
9851
9852	// A description of the slot type.
9853	Description *string `locationName:"description" type:"string"`
9854
9855	// A list of EnumerationValue objects that defines the values that the slot
9856	// type can take. Each value can have a list of synonyms, which are additional
9857	// values that help train the machine learning model about the values that it
9858	// resolves for a slot.
9859	//
9860	// When Amazon Lex resolves a slot value, it generates a resolution list that
9861	// contains up to five possible values for the slot. If you are using a Lambda
9862	// function, this resolution list is passed to the function. If you are not
9863	// using a Lambda function you can choose to return the value that the user
9864	// entered or the first value in the resolution list as the slot value. The
9865	// valueSelectionStrategy field indicates the option to use.
9866	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" min:"1" type:"list"`
9867
9868	// The name of the slot type. The name is not case sensitive.
9869	//
9870	// The name can't match a built-in slot type name, or a built-in slot type name
9871	// with "AMAZON." removed. For example, because there is a built-in slot type
9872	// called AMAZON.DATE, you can't create a custom slot type called DATE.
9873	//
9874	// 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)
9875	// in the Alexa Skills Kit.
9876	//
9877	// Name is a required field
9878	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
9879
9880	// Determines the slot resolution strategy that Amazon Lex uses to return slot
9881	// type values. The field can be set to one of the following values:
9882	//
9883	//    * ORIGINAL_VALUE - Returns the value entered by the user, if the user
9884	//    value is similar to the slot value.
9885	//
9886	//    * TOP_RESOLUTION - If there is a resolution list for the slot, return
9887	//    the first value in the resolution list as the slot type value. If there
9888	//    is no resolution list, null is returned.
9889	//
9890	// If you don't specify the valueSelectionStrategy, the default is ORIGINAL_VALUE.
9891	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
9892}
9893
9894// String returns the string representation
9895func (s PutSlotTypeInput) String() string {
9896	return awsutil.Prettify(s)
9897}
9898
9899// GoString returns the string representation
9900func (s PutSlotTypeInput) GoString() string {
9901	return s.String()
9902}
9903
9904// Validate inspects the fields of the type to determine if they are valid.
9905func (s *PutSlotTypeInput) Validate() error {
9906	invalidParams := request.ErrInvalidParams{Context: "PutSlotTypeInput"}
9907	if s.EnumerationValues != nil && len(s.EnumerationValues) < 1 {
9908		invalidParams.Add(request.NewErrParamMinLen("EnumerationValues", 1))
9909	}
9910	if s.Name == nil {
9911		invalidParams.Add(request.NewErrParamRequired("Name"))
9912	}
9913	if s.Name != nil && len(*s.Name) < 1 {
9914		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9915	}
9916	if s.EnumerationValues != nil {
9917		for i, v := range s.EnumerationValues {
9918			if v == nil {
9919				continue
9920			}
9921			if err := v.Validate(); err != nil {
9922				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EnumerationValues", i), err.(request.ErrInvalidParams))
9923			}
9924		}
9925	}
9926
9927	if invalidParams.Len() > 0 {
9928		return invalidParams
9929	}
9930	return nil
9931}
9932
9933// SetChecksum sets the Checksum field's value.
9934func (s *PutSlotTypeInput) SetChecksum(v string) *PutSlotTypeInput {
9935	s.Checksum = &v
9936	return s
9937}
9938
9939// SetCreateVersion sets the CreateVersion field's value.
9940func (s *PutSlotTypeInput) SetCreateVersion(v bool) *PutSlotTypeInput {
9941	s.CreateVersion = &v
9942	return s
9943}
9944
9945// SetDescription sets the Description field's value.
9946func (s *PutSlotTypeInput) SetDescription(v string) *PutSlotTypeInput {
9947	s.Description = &v
9948	return s
9949}
9950
9951// SetEnumerationValues sets the EnumerationValues field's value.
9952func (s *PutSlotTypeInput) SetEnumerationValues(v []*EnumerationValue) *PutSlotTypeInput {
9953	s.EnumerationValues = v
9954	return s
9955}
9956
9957// SetName sets the Name field's value.
9958func (s *PutSlotTypeInput) SetName(v string) *PutSlotTypeInput {
9959	s.Name = &v
9960	return s
9961}
9962
9963// SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
9964func (s *PutSlotTypeInput) SetValueSelectionStrategy(v string) *PutSlotTypeInput {
9965	s.ValueSelectionStrategy = &v
9966	return s
9967}
9968
9969type PutSlotTypeOutput struct {
9970	_ struct{} `type:"structure"`
9971
9972	// Checksum of the $LATEST version of the slot type.
9973	Checksum *string `locationName:"checksum" type:"string"`
9974
9975	CreateVersion *bool `locationName:"createVersion" type:"boolean"`
9976
9977	// The date that the slot type was created.
9978	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
9979
9980	// A description of the slot type.
9981	Description *string `locationName:"description" type:"string"`
9982
9983	// A list of EnumerationValue objects that defines the values that the slot
9984	// type can take.
9985	EnumerationValues []*EnumerationValue `locationName:"enumerationValues" min:"1" type:"list"`
9986
9987	// The date that the slot type was updated. When you create a slot type, the
9988	// creation date and last update date are the same.
9989	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
9990
9991	// The name of the slot type.
9992	Name *string `locationName:"name" min:"1" type:"string"`
9993
9994	// The slot resolution strategy that Amazon Lex uses to determine the value
9995	// of the slot. For more information, see PutSlotType.
9996	ValueSelectionStrategy *string `locationName:"valueSelectionStrategy" type:"string" enum:"SlotValueSelectionStrategy"`
9997
9998	// The version of the slot type. For a new slot type, the version is always
9999	// $LATEST.
10000	Version *string `locationName:"version" min:"1" type:"string"`
10001}
10002
10003// String returns the string representation
10004func (s PutSlotTypeOutput) String() string {
10005	return awsutil.Prettify(s)
10006}
10007
10008// GoString returns the string representation
10009func (s PutSlotTypeOutput) GoString() string {
10010	return s.String()
10011}
10012
10013// SetChecksum sets the Checksum field's value.
10014func (s *PutSlotTypeOutput) SetChecksum(v string) *PutSlotTypeOutput {
10015	s.Checksum = &v
10016	return s
10017}
10018
10019// SetCreateVersion sets the CreateVersion field's value.
10020func (s *PutSlotTypeOutput) SetCreateVersion(v bool) *PutSlotTypeOutput {
10021	s.CreateVersion = &v
10022	return s
10023}
10024
10025// SetCreatedDate sets the CreatedDate field's value.
10026func (s *PutSlotTypeOutput) SetCreatedDate(v time.Time) *PutSlotTypeOutput {
10027	s.CreatedDate = &v
10028	return s
10029}
10030
10031// SetDescription sets the Description field's value.
10032func (s *PutSlotTypeOutput) SetDescription(v string) *PutSlotTypeOutput {
10033	s.Description = &v
10034	return s
10035}
10036
10037// SetEnumerationValues sets the EnumerationValues field's value.
10038func (s *PutSlotTypeOutput) SetEnumerationValues(v []*EnumerationValue) *PutSlotTypeOutput {
10039	s.EnumerationValues = v
10040	return s
10041}
10042
10043// SetLastUpdatedDate sets the LastUpdatedDate field's value.
10044func (s *PutSlotTypeOutput) SetLastUpdatedDate(v time.Time) *PutSlotTypeOutput {
10045	s.LastUpdatedDate = &v
10046	return s
10047}
10048
10049// SetName sets the Name field's value.
10050func (s *PutSlotTypeOutput) SetName(v string) *PutSlotTypeOutput {
10051	s.Name = &v
10052	return s
10053}
10054
10055// SetValueSelectionStrategy sets the ValueSelectionStrategy field's value.
10056func (s *PutSlotTypeOutput) SetValueSelectionStrategy(v string) *PutSlotTypeOutput {
10057	s.ValueSelectionStrategy = &v
10058	return s
10059}
10060
10061// SetVersion sets the Version field's value.
10062func (s *PutSlotTypeOutput) SetVersion(v string) *PutSlotTypeOutput {
10063	s.Version = &v
10064	return s
10065}
10066
10067// Describes the resource that refers to the resource that you are attempting
10068// to delete. This object is returned as part of the ResourceInUseException
10069// exception.
10070type ResourceReference struct {
10071	_ struct{} `type:"structure"`
10072
10073	// The name of the resource that is using the resource that you are trying to
10074	// delete.
10075	Name *string `locationName:"name" min:"1" type:"string"`
10076
10077	// The version of the resource that is using the resource that you are trying
10078	// to delete.
10079	Version *string `locationName:"version" min:"1" type:"string"`
10080}
10081
10082// String returns the string representation
10083func (s ResourceReference) String() string {
10084	return awsutil.Prettify(s)
10085}
10086
10087// GoString returns the string representation
10088func (s ResourceReference) GoString() string {
10089	return s.String()
10090}
10091
10092// SetName sets the Name field's value.
10093func (s *ResourceReference) SetName(v string) *ResourceReference {
10094	s.Name = &v
10095	return s
10096}
10097
10098// SetVersion sets the Version field's value.
10099func (s *ResourceReference) SetVersion(v string) *ResourceReference {
10100	s.Version = &v
10101	return s
10102}
10103
10104// Identifies the version of a specific slot.
10105type Slot struct {
10106	_ struct{} `type:"structure"`
10107
10108	// A description of the slot.
10109	Description *string `locationName:"description" type:"string"`
10110
10111	// The name of the slot.
10112	//
10113	// Name is a required field
10114	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
10115
10116	// Directs Lex the order in which to elicit this slot value from the user. For
10117	// example, if the intent has two slots with priorities 1 and 2, AWS Lex first
10118	// elicits a value for the slot with priority 1.
10119	//
10120	// If multiple slots share the same priority, the order in which Lex elicits
10121	// values is arbitrary.
10122	Priority *int64 `locationName:"priority" type:"integer"`
10123
10124	// A set of possible responses for the slot type used by text-based clients.
10125	// A user chooses an option from the response card, instead of using text to
10126	// reply.
10127	ResponseCard *string `locationName:"responseCard" min:"1" type:"string"`
10128
10129	// If you know a specific pattern with which users might respond to an Amazon
10130	// Lex request for a slot value, you can provide those utterances to improve
10131	// accuracy. This is optional. In most cases, Amazon Lex is capable of understanding
10132	// user utterances.
10133	SampleUtterances []*string `locationName:"sampleUtterances" type:"list"`
10134
10135	// Specifies whether the slot is required or optional.
10136	//
10137	// SlotConstraint is a required field
10138	SlotConstraint *string `locationName:"slotConstraint" type:"string" required:"true" enum:"SlotConstraint"`
10139
10140	// The type of the slot, either a custom slot type that you defined or one of
10141	// the built-in slot types.
10142	SlotType *string `locationName:"slotType" min:"1" type:"string"`
10143
10144	// The version of the slot type.
10145	SlotTypeVersion *string `locationName:"slotTypeVersion" min:"1" type:"string"`
10146
10147	// The prompt that Amazon Lex uses to elicit the slot value from the user.
10148	ValueElicitationPrompt *Prompt `locationName:"valueElicitationPrompt" type:"structure"`
10149}
10150
10151// String returns the string representation
10152func (s Slot) String() string {
10153	return awsutil.Prettify(s)
10154}
10155
10156// GoString returns the string representation
10157func (s Slot) GoString() string {
10158	return s.String()
10159}
10160
10161// Validate inspects the fields of the type to determine if they are valid.
10162func (s *Slot) Validate() error {
10163	invalidParams := request.ErrInvalidParams{Context: "Slot"}
10164	if s.Name == nil {
10165		invalidParams.Add(request.NewErrParamRequired("Name"))
10166	}
10167	if s.Name != nil && len(*s.Name) < 1 {
10168		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
10169	}
10170	if s.ResponseCard != nil && len(*s.ResponseCard) < 1 {
10171		invalidParams.Add(request.NewErrParamMinLen("ResponseCard", 1))
10172	}
10173	if s.SlotConstraint == nil {
10174		invalidParams.Add(request.NewErrParamRequired("SlotConstraint"))
10175	}
10176	if s.SlotType != nil && len(*s.SlotType) < 1 {
10177		invalidParams.Add(request.NewErrParamMinLen("SlotType", 1))
10178	}
10179	if s.SlotTypeVersion != nil && len(*s.SlotTypeVersion) < 1 {
10180		invalidParams.Add(request.NewErrParamMinLen("SlotTypeVersion", 1))
10181	}
10182	if s.ValueElicitationPrompt != nil {
10183		if err := s.ValueElicitationPrompt.Validate(); err != nil {
10184			invalidParams.AddNested("ValueElicitationPrompt", err.(request.ErrInvalidParams))
10185		}
10186	}
10187
10188	if invalidParams.Len() > 0 {
10189		return invalidParams
10190	}
10191	return nil
10192}
10193
10194// SetDescription sets the Description field's value.
10195func (s *Slot) SetDescription(v string) *Slot {
10196	s.Description = &v
10197	return s
10198}
10199
10200// SetName sets the Name field's value.
10201func (s *Slot) SetName(v string) *Slot {
10202	s.Name = &v
10203	return s
10204}
10205
10206// SetPriority sets the Priority field's value.
10207func (s *Slot) SetPriority(v int64) *Slot {
10208	s.Priority = &v
10209	return s
10210}
10211
10212// SetResponseCard sets the ResponseCard field's value.
10213func (s *Slot) SetResponseCard(v string) *Slot {
10214	s.ResponseCard = &v
10215	return s
10216}
10217
10218// SetSampleUtterances sets the SampleUtterances field's value.
10219func (s *Slot) SetSampleUtterances(v []*string) *Slot {
10220	s.SampleUtterances = v
10221	return s
10222}
10223
10224// SetSlotConstraint sets the SlotConstraint field's value.
10225func (s *Slot) SetSlotConstraint(v string) *Slot {
10226	s.SlotConstraint = &v
10227	return s
10228}
10229
10230// SetSlotType sets the SlotType field's value.
10231func (s *Slot) SetSlotType(v string) *Slot {
10232	s.SlotType = &v
10233	return s
10234}
10235
10236// SetSlotTypeVersion sets the SlotTypeVersion field's value.
10237func (s *Slot) SetSlotTypeVersion(v string) *Slot {
10238	s.SlotTypeVersion = &v
10239	return s
10240}
10241
10242// SetValueElicitationPrompt sets the ValueElicitationPrompt field's value.
10243func (s *Slot) SetValueElicitationPrompt(v *Prompt) *Slot {
10244	s.ValueElicitationPrompt = v
10245	return s
10246}
10247
10248// Provides information about a slot type..
10249type SlotTypeMetadata struct {
10250	_ struct{} `type:"structure"`
10251
10252	// The date that the slot type was created.
10253	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
10254
10255	// A description of the slot type.
10256	Description *string `locationName:"description" type:"string"`
10257
10258	// The date that the slot type was updated. When you create a resource, the
10259	// creation date and last updated date are the same.
10260	LastUpdatedDate *time.Time `locationName:"lastUpdatedDate" type:"timestamp"`
10261
10262	// The name of the slot type.
10263	Name *string `locationName:"name" min:"1" type:"string"`
10264
10265	// The version of the slot type.
10266	Version *string `locationName:"version" min:"1" type:"string"`
10267}
10268
10269// String returns the string representation
10270func (s SlotTypeMetadata) String() string {
10271	return awsutil.Prettify(s)
10272}
10273
10274// GoString returns the string representation
10275func (s SlotTypeMetadata) GoString() string {
10276	return s.String()
10277}
10278
10279// SetCreatedDate sets the CreatedDate field's value.
10280func (s *SlotTypeMetadata) SetCreatedDate(v time.Time) *SlotTypeMetadata {
10281	s.CreatedDate = &v
10282	return s
10283}
10284
10285// SetDescription sets the Description field's value.
10286func (s *SlotTypeMetadata) SetDescription(v string) *SlotTypeMetadata {
10287	s.Description = &v
10288	return s
10289}
10290
10291// SetLastUpdatedDate sets the LastUpdatedDate field's value.
10292func (s *SlotTypeMetadata) SetLastUpdatedDate(v time.Time) *SlotTypeMetadata {
10293	s.LastUpdatedDate = &v
10294	return s
10295}
10296
10297// SetName sets the Name field's value.
10298func (s *SlotTypeMetadata) SetName(v string) *SlotTypeMetadata {
10299	s.Name = &v
10300	return s
10301}
10302
10303// SetVersion sets the Version field's value.
10304func (s *SlotTypeMetadata) SetVersion(v string) *SlotTypeMetadata {
10305	s.Version = &v
10306	return s
10307}
10308
10309type StartImportInput struct {
10310	_ struct{} `type:"structure"`
10311
10312	// Specifies the action that the StartImport operation should take when there
10313	// is an existing resource with the same name.
10314	//
10315	//    * FAIL_ON_CONFLICT - The import operation is stopped on the first conflict
10316	//    between a resource in the import file and an existing resource. The name
10317	//    of the resource causing the conflict is in the failureReason field of
10318	//    the response to the GetImport operation. OVERWRITE_LATEST - The import
10319	//    operation proceeds even if there is a conflict with an existing resource.
10320	//    The $LASTEST version of the existing resource is overwritten with the
10321	//    data from the import file.
10322	//
10323	// MergeStrategy is a required field
10324	MergeStrategy *string `locationName:"mergeStrategy" type:"string" required:"true" enum:"MergeStrategy"`
10325
10326	// A zip archive in binary format. The archive should contain one file, a JSON
10327	// file containing the resource to import. The resource should match the type
10328	// specified in the resourceType field.
10329	//
10330	// Payload is automatically base64 encoded/decoded by the SDK.
10331	//
10332	// Payload is a required field
10333	Payload []byte `locationName:"payload" type:"blob" required:"true"`
10334
10335	// Specifies the type of resource to export. Each resource also exports any
10336	// resources that it depends on.
10337	//
10338	//    * A bot exports dependent intents.
10339	//
10340	//    * An intent exports dependent slot types.
10341	//
10342	// ResourceType is a required field
10343	ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
10344}
10345
10346// String returns the string representation
10347func (s StartImportInput) String() string {
10348	return awsutil.Prettify(s)
10349}
10350
10351// GoString returns the string representation
10352func (s StartImportInput) GoString() string {
10353	return s.String()
10354}
10355
10356// Validate inspects the fields of the type to determine if they are valid.
10357func (s *StartImportInput) Validate() error {
10358	invalidParams := request.ErrInvalidParams{Context: "StartImportInput"}
10359	if s.MergeStrategy == nil {
10360		invalidParams.Add(request.NewErrParamRequired("MergeStrategy"))
10361	}
10362	if s.Payload == nil {
10363		invalidParams.Add(request.NewErrParamRequired("Payload"))
10364	}
10365	if s.ResourceType == nil {
10366		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
10367	}
10368
10369	if invalidParams.Len() > 0 {
10370		return invalidParams
10371	}
10372	return nil
10373}
10374
10375// SetMergeStrategy sets the MergeStrategy field's value.
10376func (s *StartImportInput) SetMergeStrategy(v string) *StartImportInput {
10377	s.MergeStrategy = &v
10378	return s
10379}
10380
10381// SetPayload sets the Payload field's value.
10382func (s *StartImportInput) SetPayload(v []byte) *StartImportInput {
10383	s.Payload = v
10384	return s
10385}
10386
10387// SetResourceType sets the ResourceType field's value.
10388func (s *StartImportInput) SetResourceType(v string) *StartImportInput {
10389	s.ResourceType = &v
10390	return s
10391}
10392
10393type StartImportOutput struct {
10394	_ struct{} `type:"structure"`
10395
10396	// A timestamp for the date and time that the import job was requested.
10397	CreatedDate *time.Time `locationName:"createdDate" type:"timestamp"`
10398
10399	// The identifier for the specific import job.
10400	ImportId *string `locationName:"importId" type:"string"`
10401
10402	// The status of the import job. If the status is FAILED, you can get the reason
10403	// for the failure using the GetImport operation.
10404	ImportStatus *string `locationName:"importStatus" type:"string" enum:"ImportStatus"`
10405
10406	// The action to take when there is a merge conflict.
10407	MergeStrategy *string `locationName:"mergeStrategy" type:"string" enum:"MergeStrategy"`
10408
10409	// The name given to the import job.
10410	Name *string `locationName:"name" min:"1" type:"string"`
10411
10412	// The type of resource to import.
10413	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
10414}
10415
10416// String returns the string representation
10417func (s StartImportOutput) String() string {
10418	return awsutil.Prettify(s)
10419}
10420
10421// GoString returns the string representation
10422func (s StartImportOutput) GoString() string {
10423	return s.String()
10424}
10425
10426// SetCreatedDate sets the CreatedDate field's value.
10427func (s *StartImportOutput) SetCreatedDate(v time.Time) *StartImportOutput {
10428	s.CreatedDate = &v
10429	return s
10430}
10431
10432// SetImportId sets the ImportId field's value.
10433func (s *StartImportOutput) SetImportId(v string) *StartImportOutput {
10434	s.ImportId = &v
10435	return s
10436}
10437
10438// SetImportStatus sets the ImportStatus field's value.
10439func (s *StartImportOutput) SetImportStatus(v string) *StartImportOutput {
10440	s.ImportStatus = &v
10441	return s
10442}
10443
10444// SetMergeStrategy sets the MergeStrategy field's value.
10445func (s *StartImportOutput) SetMergeStrategy(v string) *StartImportOutput {
10446	s.MergeStrategy = &v
10447	return s
10448}
10449
10450// SetName sets the Name field's value.
10451func (s *StartImportOutput) SetName(v string) *StartImportOutput {
10452	s.Name = &v
10453	return s
10454}
10455
10456// SetResourceType sets the ResourceType field's value.
10457func (s *StartImportOutput) SetResourceType(v string) *StartImportOutput {
10458	s.ResourceType = &v
10459	return s
10460}
10461
10462// A collection of messages that convey information to the user. At runtime,
10463// Amazon Lex selects the message to convey.
10464type Statement struct {
10465	_ struct{} `type:"structure"`
10466
10467	// A collection of message objects.
10468	//
10469	// Messages is a required field
10470	Messages []*Message `locationName:"messages" min:"1" type:"list" required:"true"`
10471
10472	// At runtime, if the client is using the PostText (http://docs.aws.amazon.com/lex/latest/dg/API_runtime_PostText.html)
10473	// API, Amazon Lex includes the response card in the response. It substitutes
10474	// all of the session attributes and slot values for placeholders in the response
10475	// card.
10476	ResponseCard *string `locationName:"responseCard" min:"1" type:"string"`
10477}
10478
10479// String returns the string representation
10480func (s Statement) String() string {
10481	return awsutil.Prettify(s)
10482}
10483
10484// GoString returns the string representation
10485func (s Statement) GoString() string {
10486	return s.String()
10487}
10488
10489// Validate inspects the fields of the type to determine if they are valid.
10490func (s *Statement) Validate() error {
10491	invalidParams := request.ErrInvalidParams{Context: "Statement"}
10492	if s.Messages == nil {
10493		invalidParams.Add(request.NewErrParamRequired("Messages"))
10494	}
10495	if s.Messages != nil && len(s.Messages) < 1 {
10496		invalidParams.Add(request.NewErrParamMinLen("Messages", 1))
10497	}
10498	if s.ResponseCard != nil && len(*s.ResponseCard) < 1 {
10499		invalidParams.Add(request.NewErrParamMinLen("ResponseCard", 1))
10500	}
10501	if s.Messages != nil {
10502		for i, v := range s.Messages {
10503			if v == nil {
10504				continue
10505			}
10506			if err := v.Validate(); err != nil {
10507				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Messages", i), err.(request.ErrInvalidParams))
10508			}
10509		}
10510	}
10511
10512	if invalidParams.Len() > 0 {
10513		return invalidParams
10514	}
10515	return nil
10516}
10517
10518// SetMessages sets the Messages field's value.
10519func (s *Statement) SetMessages(v []*Message) *Statement {
10520	s.Messages = v
10521	return s
10522}
10523
10524// SetResponseCard sets the ResponseCard field's value.
10525func (s *Statement) SetResponseCard(v string) *Statement {
10526	s.ResponseCard = &v
10527	return s
10528}
10529
10530// Provides information about a single utterance that was made to your bot.
10531type UtteranceData struct {
10532	_ struct{} `type:"structure"`
10533
10534	// The number of times that the utterance was processed.
10535	Count *int64 `locationName:"count" type:"integer"`
10536
10537	// The total number of individuals that used the utterance.
10538	DistinctUsers *int64 `locationName:"distinctUsers" type:"integer"`
10539
10540	// The date that the utterance was first recorded.
10541	FirstUtteredDate *time.Time `locationName:"firstUtteredDate" type:"timestamp"`
10542
10543	// The date that the utterance was last recorded.
10544	LastUtteredDate *time.Time `locationName:"lastUtteredDate" type:"timestamp"`
10545
10546	// The text that was entered by the user or the text representation of an audio
10547	// clip.
10548	UtteranceString *string `locationName:"utteranceString" min:"1" type:"string"`
10549}
10550
10551// String returns the string representation
10552func (s UtteranceData) String() string {
10553	return awsutil.Prettify(s)
10554}
10555
10556// GoString returns the string representation
10557func (s UtteranceData) GoString() string {
10558	return s.String()
10559}
10560
10561// SetCount sets the Count field's value.
10562func (s *UtteranceData) SetCount(v int64) *UtteranceData {
10563	s.Count = &v
10564	return s
10565}
10566
10567// SetDistinctUsers sets the DistinctUsers field's value.
10568func (s *UtteranceData) SetDistinctUsers(v int64) *UtteranceData {
10569	s.DistinctUsers = &v
10570	return s
10571}
10572
10573// SetFirstUtteredDate sets the FirstUtteredDate field's value.
10574func (s *UtteranceData) SetFirstUtteredDate(v time.Time) *UtteranceData {
10575	s.FirstUtteredDate = &v
10576	return s
10577}
10578
10579// SetLastUtteredDate sets the LastUtteredDate field's value.
10580func (s *UtteranceData) SetLastUtteredDate(v time.Time) *UtteranceData {
10581	s.LastUtteredDate = &v
10582	return s
10583}
10584
10585// SetUtteranceString sets the UtteranceString field's value.
10586func (s *UtteranceData) SetUtteranceString(v string) *UtteranceData {
10587	s.UtteranceString = &v
10588	return s
10589}
10590
10591// Provides a list of utterances that have been made to a specific version of
10592// your bot. The list contains a maximum of 100 utterances.
10593type UtteranceList struct {
10594	_ struct{} `type:"structure"`
10595
10596	// The version of the bot that processed the list.
10597	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
10598
10599	// One or more UtteranceData objects that contain information about the utterances
10600	// that have been made to a bot. The maximum number of object is 100.
10601	Utterances []*UtteranceData `locationName:"utterances" type:"list"`
10602}
10603
10604// String returns the string representation
10605func (s UtteranceList) String() string {
10606	return awsutil.Prettify(s)
10607}
10608
10609// GoString returns the string representation
10610func (s UtteranceList) GoString() string {
10611	return s.String()
10612}
10613
10614// SetBotVersion sets the BotVersion field's value.
10615func (s *UtteranceList) SetBotVersion(v string) *UtteranceList {
10616	s.BotVersion = &v
10617	return s
10618}
10619
10620// SetUtterances sets the Utterances field's value.
10621func (s *UtteranceList) SetUtterances(v []*UtteranceData) *UtteranceList {
10622	s.Utterances = v
10623	return s
10624}
10625
10626const (
10627	// ChannelStatusInProgress is a ChannelStatus enum value
10628	ChannelStatusInProgress = "IN_PROGRESS"
10629
10630	// ChannelStatusCreated is a ChannelStatus enum value
10631	ChannelStatusCreated = "CREATED"
10632
10633	// ChannelStatusFailed is a ChannelStatus enum value
10634	ChannelStatusFailed = "FAILED"
10635)
10636
10637const (
10638	// ChannelTypeFacebook is a ChannelType enum value
10639	ChannelTypeFacebook = "Facebook"
10640
10641	// ChannelTypeSlack is a ChannelType enum value
10642	ChannelTypeSlack = "Slack"
10643
10644	// ChannelTypeTwilioSms is a ChannelType enum value
10645	ChannelTypeTwilioSms = "Twilio-Sms"
10646
10647	// ChannelTypeKik is a ChannelType enum value
10648	ChannelTypeKik = "Kik"
10649)
10650
10651const (
10652	// ContentTypePlainText is a ContentType enum value
10653	ContentTypePlainText = "PlainText"
10654
10655	// ContentTypeSsml is a ContentType enum value
10656	ContentTypeSsml = "SSML"
10657
10658	// ContentTypeCustomPayload is a ContentType enum value
10659	ContentTypeCustomPayload = "CustomPayload"
10660)
10661
10662const (
10663	// ExportStatusInProgress is a ExportStatus enum value
10664	ExportStatusInProgress = "IN_PROGRESS"
10665
10666	// ExportStatusReady is a ExportStatus enum value
10667	ExportStatusReady = "READY"
10668
10669	// ExportStatusFailed is a ExportStatus enum value
10670	ExportStatusFailed = "FAILED"
10671)
10672
10673const (
10674	// ExportTypeAlexaSkillsKit is a ExportType enum value
10675	ExportTypeAlexaSkillsKit = "ALEXA_SKILLS_KIT"
10676
10677	// ExportTypeLex is a ExportType enum value
10678	ExportTypeLex = "LEX"
10679)
10680
10681const (
10682	// FulfillmentActivityTypeReturnIntent is a FulfillmentActivityType enum value
10683	FulfillmentActivityTypeReturnIntent = "ReturnIntent"
10684
10685	// FulfillmentActivityTypeCodeHook is a FulfillmentActivityType enum value
10686	FulfillmentActivityTypeCodeHook = "CodeHook"
10687)
10688
10689const (
10690	// ImportStatusInProgress is a ImportStatus enum value
10691	ImportStatusInProgress = "IN_PROGRESS"
10692
10693	// ImportStatusComplete is a ImportStatus enum value
10694	ImportStatusComplete = "COMPLETE"
10695
10696	// ImportStatusFailed is a ImportStatus enum value
10697	ImportStatusFailed = "FAILED"
10698)
10699
10700const (
10701	// LocaleEnUs is a Locale enum value
10702	LocaleEnUs = "en-US"
10703
10704	// LocaleEnGb is a Locale enum value
10705	LocaleEnGb = "en-GB"
10706
10707	// LocaleDeDe is a Locale enum value
10708	LocaleDeDe = "de-DE"
10709)
10710
10711const (
10712	// MergeStrategyOverwriteLatest is a MergeStrategy enum value
10713	MergeStrategyOverwriteLatest = "OVERWRITE_LATEST"
10714
10715	// MergeStrategyFailOnConflict is a MergeStrategy enum value
10716	MergeStrategyFailOnConflict = "FAIL_ON_CONFLICT"
10717)
10718
10719const (
10720	// ProcessBehaviorSave is a ProcessBehavior enum value
10721	ProcessBehaviorSave = "SAVE"
10722
10723	// ProcessBehaviorBuild is a ProcessBehavior enum value
10724	ProcessBehaviorBuild = "BUILD"
10725)
10726
10727const (
10728	// ReferenceTypeIntent is a ReferenceType enum value
10729	ReferenceTypeIntent = "Intent"
10730
10731	// ReferenceTypeBot is a ReferenceType enum value
10732	ReferenceTypeBot = "Bot"
10733
10734	// ReferenceTypeBotAlias is a ReferenceType enum value
10735	ReferenceTypeBotAlias = "BotAlias"
10736
10737	// ReferenceTypeBotChannel is a ReferenceType enum value
10738	ReferenceTypeBotChannel = "BotChannel"
10739)
10740
10741const (
10742	// ResourceTypeBot is a ResourceType enum value
10743	ResourceTypeBot = "BOT"
10744
10745	// ResourceTypeIntent is a ResourceType enum value
10746	ResourceTypeIntent = "INTENT"
10747
10748	// ResourceTypeSlotType is a ResourceType enum value
10749	ResourceTypeSlotType = "SLOT_TYPE"
10750)
10751
10752const (
10753	// SlotConstraintRequired is a SlotConstraint enum value
10754	SlotConstraintRequired = "Required"
10755
10756	// SlotConstraintOptional is a SlotConstraint enum value
10757	SlotConstraintOptional = "Optional"
10758)
10759
10760const (
10761	// SlotValueSelectionStrategyOriginalValue is a SlotValueSelectionStrategy enum value
10762	SlotValueSelectionStrategyOriginalValue = "ORIGINAL_VALUE"
10763
10764	// SlotValueSelectionStrategyTopResolution is a SlotValueSelectionStrategy enum value
10765	SlotValueSelectionStrategyTopResolution = "TOP_RESOLUTION"
10766)
10767
10768const (
10769	// StatusBuilding is a Status enum value
10770	StatusBuilding = "BUILDING"
10771
10772	// StatusReady is a Status enum value
10773	StatusReady = "READY"
10774
10775	// StatusReadyBasicTesting is a Status enum value
10776	StatusReadyBasicTesting = "READY_BASIC_TESTING"
10777
10778	// StatusFailed is a Status enum value
10779	StatusFailed = "FAILED"
10780
10781	// StatusNotBuilt is a Status enum value
10782	StatusNotBuilt = "NOT_BUILT"
10783)
10784
10785const (
10786	// StatusTypeDetected is a StatusType enum value
10787	StatusTypeDetected = "Detected"
10788
10789	// StatusTypeMissed is a StatusType enum value
10790	StatusTypeMissed = "Missed"
10791)
10792