1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package lexmodelsv2
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 opBuildBotLocale = "BuildBotLocale"
17
18// BuildBotLocaleRequest generates a "aws/request.Request" representing the
19// client's request for the BuildBotLocale 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 BuildBotLocale for more information on using the BuildBotLocale
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 BuildBotLocaleRequest method.
34//    req, resp := client.BuildBotLocaleRequest(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/models.lex.v2-2020-08-07/BuildBotLocale
42func (c *LexModelsV2) BuildBotLocaleRequest(input *BuildBotLocaleInput) (req *request.Request, output *BuildBotLocaleOutput) {
43	op := &request.Operation{
44		Name:       opBuildBotLocale,
45		HTTPMethod: "POST",
46		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/",
47	}
48
49	if input == nil {
50		input = &BuildBotLocaleInput{}
51	}
52
53	output = &BuildBotLocaleOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// BuildBotLocale API operation for Amazon Lex Model Building V2.
59//
60// Builds a bot, its intents, and its slot types into a specific locale. A bot
61// can be built into multiple locales. At runtime the locale is used to choose
62// a specific build of the bot.
63//
64// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
65// with awserr.Error's Code and Message methods to get detailed information about
66// the error.
67//
68// See the AWS API reference guide for Amazon Lex Model Building V2's
69// API operation BuildBotLocale for usage and error information.
70//
71// Returned Error Types:
72//   * ThrottlingException
73//   Your request rate is too high. Reduce the frequency of requests.
74//
75//   * ServiceQuotaExceededException
76//   You have reached a quota for your bot.
77//
78//   * ValidationException
79//   One of the input parameters in your request isn't valid. Check the parameters
80//   and try your request again.
81//
82//   * PreconditionFailedException
83//   Your request couldn't be completed because one or more request fields aren't
84//   valid. Check the fields in your request and try again.
85//
86//   * ConflictException
87//   The action that you tried to perform couldn't be completed because the resource
88//   is in a conflicting state. For example, deleting a bot that is in the CREATING
89//   state. Try your request again.
90//
91//   * InternalServerException
92//   The service encountered an unexpected condition. Try your request again.
93//
94// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/BuildBotLocale
95func (c *LexModelsV2) BuildBotLocale(input *BuildBotLocaleInput) (*BuildBotLocaleOutput, error) {
96	req, out := c.BuildBotLocaleRequest(input)
97	return out, req.Send()
98}
99
100// BuildBotLocaleWithContext is the same as BuildBotLocale with the addition of
101// the ability to pass a context and additional request options.
102//
103// See BuildBotLocale for details on how to use this API operation.
104//
105// The context must be non-nil and will be used for request cancellation. If
106// the context is nil a panic will occur. In the future the SDK may create
107// sub-contexts for http.Requests. See https://golang.org/pkg/context/
108// for more information on using Contexts.
109func (c *LexModelsV2) BuildBotLocaleWithContext(ctx aws.Context, input *BuildBotLocaleInput, opts ...request.Option) (*BuildBotLocaleOutput, error) {
110	req, out := c.BuildBotLocaleRequest(input)
111	req.SetContext(ctx)
112	req.ApplyOptions(opts...)
113	return out, req.Send()
114}
115
116const opCreateBot = "CreateBot"
117
118// CreateBotRequest generates a "aws/request.Request" representing the
119// client's request for the CreateBot operation. The "output" return
120// value will be populated with the request's response once the request completes
121// successfully.
122//
123// Use "Send" method on the returned Request to send the API call to the service.
124// the "output" return value is not valid until after Send returns without error.
125//
126// See CreateBot for more information on using the CreateBot
127// API call, and error handling.
128//
129// This method is useful when you want to inject custom logic or configuration
130// into the SDK's request lifecycle. Such as custom headers, or retry logic.
131//
132//
133//    // Example sending a request using the CreateBotRequest method.
134//    req, resp := client.CreateBotRequest(params)
135//
136//    err := req.Send()
137//    if err == nil { // resp is now filled
138//        fmt.Println(resp)
139//    }
140//
141// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateBot
142func (c *LexModelsV2) CreateBotRequest(input *CreateBotInput) (req *request.Request, output *CreateBotOutput) {
143	op := &request.Operation{
144		Name:       opCreateBot,
145		HTTPMethod: "PUT",
146		HTTPPath:   "/bots/",
147	}
148
149	if input == nil {
150		input = &CreateBotInput{}
151	}
152
153	output = &CreateBotOutput{}
154	req = c.newRequest(op, input, output)
155	return
156}
157
158// CreateBot API operation for Amazon Lex Model Building V2.
159//
160// Creates an Amazon Lex conversational bot.
161//
162// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
163// with awserr.Error's Code and Message methods to get detailed information about
164// the error.
165//
166// See the AWS API reference guide for Amazon Lex Model Building V2's
167// API operation CreateBot for usage and error information.
168//
169// Returned Error Types:
170//   * ThrottlingException
171//   Your request rate is too high. Reduce the frequency of requests.
172//
173//   * ServiceQuotaExceededException
174//   You have reached a quota for your bot.
175//
176//   * ValidationException
177//   One of the input parameters in your request isn't valid. Check the parameters
178//   and try your request again.
179//
180//   * PreconditionFailedException
181//   Your request couldn't be completed because one or more request fields aren't
182//   valid. Check the fields in your request and try again.
183//
184//   * ConflictException
185//   The action that you tried to perform couldn't be completed because the resource
186//   is in a conflicting state. For example, deleting a bot that is in the CREATING
187//   state. Try your request again.
188//
189//   * InternalServerException
190//   The service encountered an unexpected condition. Try your request again.
191//
192// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateBot
193func (c *LexModelsV2) CreateBot(input *CreateBotInput) (*CreateBotOutput, error) {
194	req, out := c.CreateBotRequest(input)
195	return out, req.Send()
196}
197
198// CreateBotWithContext is the same as CreateBot with the addition of
199// the ability to pass a context and additional request options.
200//
201// See CreateBot for details on how to use this API operation.
202//
203// The context must be non-nil and will be used for request cancellation. If
204// the context is nil a panic will occur. In the future the SDK may create
205// sub-contexts for http.Requests. See https://golang.org/pkg/context/
206// for more information on using Contexts.
207func (c *LexModelsV2) CreateBotWithContext(ctx aws.Context, input *CreateBotInput, opts ...request.Option) (*CreateBotOutput, error) {
208	req, out := c.CreateBotRequest(input)
209	req.SetContext(ctx)
210	req.ApplyOptions(opts...)
211	return out, req.Send()
212}
213
214const opCreateBotAlias = "CreateBotAlias"
215
216// CreateBotAliasRequest generates a "aws/request.Request" representing the
217// client's request for the CreateBotAlias operation. The "output" return
218// value will be populated with the request's response once the request completes
219// successfully.
220//
221// Use "Send" method on the returned Request to send the API call to the service.
222// the "output" return value is not valid until after Send returns without error.
223//
224// See CreateBotAlias for more information on using the CreateBotAlias
225// API call, and error handling.
226//
227// This method is useful when you want to inject custom logic or configuration
228// into the SDK's request lifecycle. Such as custom headers, or retry logic.
229//
230//
231//    // Example sending a request using the CreateBotAliasRequest method.
232//    req, resp := client.CreateBotAliasRequest(params)
233//
234//    err := req.Send()
235//    if err == nil { // resp is now filled
236//        fmt.Println(resp)
237//    }
238//
239// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateBotAlias
240func (c *LexModelsV2) CreateBotAliasRequest(input *CreateBotAliasInput) (req *request.Request, output *CreateBotAliasOutput) {
241	op := &request.Operation{
242		Name:       opCreateBotAlias,
243		HTTPMethod: "PUT",
244		HTTPPath:   "/bots/{botId}/botaliases/",
245	}
246
247	if input == nil {
248		input = &CreateBotAliasInput{}
249	}
250
251	output = &CreateBotAliasOutput{}
252	req = c.newRequest(op, input, output)
253	return
254}
255
256// CreateBotAlias API operation for Amazon Lex Model Building V2.
257//
258// Creates an alias for the specified version of a bot. Use an alias to enable
259// you to change the version of a bot without updating applications that use
260// the bot.
261//
262// For example, you can create an alias called "PROD" that your applications
263// use to call the Amazon Lex bot.
264//
265// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
266// with awserr.Error's Code and Message methods to get detailed information about
267// the error.
268//
269// See the AWS API reference guide for Amazon Lex Model Building V2's
270// API operation CreateBotAlias for usage and error information.
271//
272// Returned Error Types:
273//   * ThrottlingException
274//   Your request rate is too high. Reduce the frequency of requests.
275//
276//   * ServiceQuotaExceededException
277//   You have reached a quota for your bot.
278//
279//   * ValidationException
280//   One of the input parameters in your request isn't valid. Check the parameters
281//   and try your request again.
282//
283//   * PreconditionFailedException
284//   Your request couldn't be completed because one or more request fields aren't
285//   valid. Check the fields in your request and try again.
286//
287//   * ConflictException
288//   The action that you tried to perform couldn't be completed because the resource
289//   is in a conflicting state. For example, deleting a bot that is in the CREATING
290//   state. Try your request again.
291//
292//   * InternalServerException
293//   The service encountered an unexpected condition. Try your request again.
294//
295// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateBotAlias
296func (c *LexModelsV2) CreateBotAlias(input *CreateBotAliasInput) (*CreateBotAliasOutput, error) {
297	req, out := c.CreateBotAliasRequest(input)
298	return out, req.Send()
299}
300
301// CreateBotAliasWithContext is the same as CreateBotAlias with the addition of
302// the ability to pass a context and additional request options.
303//
304// See CreateBotAlias for details on how to use this API operation.
305//
306// The context must be non-nil and will be used for request cancellation. If
307// the context is nil a panic will occur. In the future the SDK may create
308// sub-contexts for http.Requests. See https://golang.org/pkg/context/
309// for more information on using Contexts.
310func (c *LexModelsV2) CreateBotAliasWithContext(ctx aws.Context, input *CreateBotAliasInput, opts ...request.Option) (*CreateBotAliasOutput, error) {
311	req, out := c.CreateBotAliasRequest(input)
312	req.SetContext(ctx)
313	req.ApplyOptions(opts...)
314	return out, req.Send()
315}
316
317const opCreateBotLocale = "CreateBotLocale"
318
319// CreateBotLocaleRequest generates a "aws/request.Request" representing the
320// client's request for the CreateBotLocale operation. The "output" return
321// value will be populated with the request's response once the request completes
322// successfully.
323//
324// Use "Send" method on the returned Request to send the API call to the service.
325// the "output" return value is not valid until after Send returns without error.
326//
327// See CreateBotLocale for more information on using the CreateBotLocale
328// API call, and error handling.
329//
330// This method is useful when you want to inject custom logic or configuration
331// into the SDK's request lifecycle. Such as custom headers, or retry logic.
332//
333//
334//    // Example sending a request using the CreateBotLocaleRequest method.
335//    req, resp := client.CreateBotLocaleRequest(params)
336//
337//    err := req.Send()
338//    if err == nil { // resp is now filled
339//        fmt.Println(resp)
340//    }
341//
342// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateBotLocale
343func (c *LexModelsV2) CreateBotLocaleRequest(input *CreateBotLocaleInput) (req *request.Request, output *CreateBotLocaleOutput) {
344	op := &request.Operation{
345		Name:       opCreateBotLocale,
346		HTTPMethod: "PUT",
347		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/",
348	}
349
350	if input == nil {
351		input = &CreateBotLocaleInput{}
352	}
353
354	output = &CreateBotLocaleOutput{}
355	req = c.newRequest(op, input, output)
356	return
357}
358
359// CreateBotLocale API operation for Amazon Lex Model Building V2.
360//
361// Creates a locale in the bot. The locale contains the intents and slot types
362// that the bot uses in conversations with users in the specified language and
363// locale. You must add a locale to a bot before you can add intents and slot
364// types to the bot.
365//
366// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
367// with awserr.Error's Code and Message methods to get detailed information about
368// the error.
369//
370// See the AWS API reference guide for Amazon Lex Model Building V2's
371// API operation CreateBotLocale for usage and error information.
372//
373// Returned Error Types:
374//   * ThrottlingException
375//   Your request rate is too high. Reduce the frequency of requests.
376//
377//   * ServiceQuotaExceededException
378//   You have reached a quota for your bot.
379//
380//   * ValidationException
381//   One of the input parameters in your request isn't valid. Check the parameters
382//   and try your request again.
383//
384//   * PreconditionFailedException
385//   Your request couldn't be completed because one or more request fields aren't
386//   valid. Check the fields in your request and try again.
387//
388//   * ConflictException
389//   The action that you tried to perform couldn't be completed because the resource
390//   is in a conflicting state. For example, deleting a bot that is in the CREATING
391//   state. Try your request again.
392//
393//   * InternalServerException
394//   The service encountered an unexpected condition. Try your request again.
395//
396// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateBotLocale
397func (c *LexModelsV2) CreateBotLocale(input *CreateBotLocaleInput) (*CreateBotLocaleOutput, error) {
398	req, out := c.CreateBotLocaleRequest(input)
399	return out, req.Send()
400}
401
402// CreateBotLocaleWithContext is the same as CreateBotLocale with the addition of
403// the ability to pass a context and additional request options.
404//
405// See CreateBotLocale for details on how to use this API operation.
406//
407// The context must be non-nil and will be used for request cancellation. If
408// the context is nil a panic will occur. In the future the SDK may create
409// sub-contexts for http.Requests. See https://golang.org/pkg/context/
410// for more information on using Contexts.
411func (c *LexModelsV2) CreateBotLocaleWithContext(ctx aws.Context, input *CreateBotLocaleInput, opts ...request.Option) (*CreateBotLocaleOutput, error) {
412	req, out := c.CreateBotLocaleRequest(input)
413	req.SetContext(ctx)
414	req.ApplyOptions(opts...)
415	return out, req.Send()
416}
417
418const opCreateBotVersion = "CreateBotVersion"
419
420// CreateBotVersionRequest generates a "aws/request.Request" representing the
421// client's request for the CreateBotVersion operation. The "output" return
422// value will be populated with the request's response once the request completes
423// successfully.
424//
425// Use "Send" method on the returned Request to send the API call to the service.
426// the "output" return value is not valid until after Send returns without error.
427//
428// See CreateBotVersion for more information on using the CreateBotVersion
429// API call, and error handling.
430//
431// This method is useful when you want to inject custom logic or configuration
432// into the SDK's request lifecycle. Such as custom headers, or retry logic.
433//
434//
435//    // Example sending a request using the CreateBotVersionRequest method.
436//    req, resp := client.CreateBotVersionRequest(params)
437//
438//    err := req.Send()
439//    if err == nil { // resp is now filled
440//        fmt.Println(resp)
441//    }
442//
443// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateBotVersion
444func (c *LexModelsV2) CreateBotVersionRequest(input *CreateBotVersionInput) (req *request.Request, output *CreateBotVersionOutput) {
445	op := &request.Operation{
446		Name:       opCreateBotVersion,
447		HTTPMethod: "PUT",
448		HTTPPath:   "/bots/{botId}/botversions/",
449	}
450
451	if input == nil {
452		input = &CreateBotVersionInput{}
453	}
454
455	output = &CreateBotVersionOutput{}
456	req = c.newRequest(op, input, output)
457	return
458}
459
460// CreateBotVersion API operation for Amazon Lex Model Building V2.
461//
462// Creates a new version of the bot based on the DRAFT version. If the DRAFT
463// version of this resource hasn't changed since you created the last version,
464// Amazon Lex doesn't create a new version, it returns the last created version.
465//
466// When you create the first version of a bot, Amazon Lex sets the version to
467// 1. Subsequent versions increment by 1.
468//
469// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
470// with awserr.Error's Code and Message methods to get detailed information about
471// the error.
472//
473// See the AWS API reference guide for Amazon Lex Model Building V2's
474// API operation CreateBotVersion for usage and error information.
475//
476// Returned Error Types:
477//   * ThrottlingException
478//   Your request rate is too high. Reduce the frequency of requests.
479//
480//   * ServiceQuotaExceededException
481//   You have reached a quota for your bot.
482//
483//   * ValidationException
484//   One of the input parameters in your request isn't valid. Check the parameters
485//   and try your request again.
486//
487//   * PreconditionFailedException
488//   Your request couldn't be completed because one or more request fields aren't
489//   valid. Check the fields in your request and try again.
490//
491//   * ConflictException
492//   The action that you tried to perform couldn't be completed because the resource
493//   is in a conflicting state. For example, deleting a bot that is in the CREATING
494//   state. Try your request again.
495//
496//   * InternalServerException
497//   The service encountered an unexpected condition. Try your request again.
498//
499// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateBotVersion
500func (c *LexModelsV2) CreateBotVersion(input *CreateBotVersionInput) (*CreateBotVersionOutput, error) {
501	req, out := c.CreateBotVersionRequest(input)
502	return out, req.Send()
503}
504
505// CreateBotVersionWithContext is the same as CreateBotVersion with the addition of
506// the ability to pass a context and additional request options.
507//
508// See CreateBotVersion for details on how to use this API operation.
509//
510// The context must be non-nil and will be used for request cancellation. If
511// the context is nil a panic will occur. In the future the SDK may create
512// sub-contexts for http.Requests. See https://golang.org/pkg/context/
513// for more information on using Contexts.
514func (c *LexModelsV2) CreateBotVersionWithContext(ctx aws.Context, input *CreateBotVersionInput, opts ...request.Option) (*CreateBotVersionOutput, error) {
515	req, out := c.CreateBotVersionRequest(input)
516	req.SetContext(ctx)
517	req.ApplyOptions(opts...)
518	return out, req.Send()
519}
520
521const opCreateExport = "CreateExport"
522
523// CreateExportRequest generates a "aws/request.Request" representing the
524// client's request for the CreateExport operation. The "output" return
525// value will be populated with the request's response once the request completes
526// successfully.
527//
528// Use "Send" method on the returned Request to send the API call to the service.
529// the "output" return value is not valid until after Send returns without error.
530//
531// See CreateExport for more information on using the CreateExport
532// API call, and error handling.
533//
534// This method is useful when you want to inject custom logic or configuration
535// into the SDK's request lifecycle. Such as custom headers, or retry logic.
536//
537//
538//    // Example sending a request using the CreateExportRequest method.
539//    req, resp := client.CreateExportRequest(params)
540//
541//    err := req.Send()
542//    if err == nil { // resp is now filled
543//        fmt.Println(resp)
544//    }
545//
546// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateExport
547func (c *LexModelsV2) CreateExportRequest(input *CreateExportInput) (req *request.Request, output *CreateExportOutput) {
548	op := &request.Operation{
549		Name:       opCreateExport,
550		HTTPMethod: "PUT",
551		HTTPPath:   "/exports/",
552	}
553
554	if input == nil {
555		input = &CreateExportInput{}
556	}
557
558	output = &CreateExportOutput{}
559	req = c.newRequest(op, input, output)
560	return
561}
562
563// CreateExport API operation for Amazon Lex Model Building V2.
564//
565// Creates a zip archive containing the contents of a bot or a bot locale. The
566// archive contains a directory structure that contains JSON files that define
567// the bot.
568//
569// You can create an archive that contains the complete definition of a bot,
570// or you can specify that the archive contain only the definition of a single
571// bot locale.
572//
573// For more information about exporting bots, and about the structure of the
574// export archive, see Importing and exporting bots (https://docs.aws.amazon.com/lexv2/latest/dg/importing-exporting.html)
575//
576// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
577// with awserr.Error's Code and Message methods to get detailed information about
578// the error.
579//
580// See the AWS API reference guide for Amazon Lex Model Building V2's
581// API operation CreateExport for usage and error information.
582//
583// Returned Error Types:
584//   * ThrottlingException
585//   Your request rate is too high. Reduce the frequency of requests.
586//
587//   * ServiceQuotaExceededException
588//   You have reached a quota for your bot.
589//
590//   * ValidationException
591//   One of the input parameters in your request isn't valid. Check the parameters
592//   and try your request again.
593//
594//   * ResourceNotFoundException
595//   You asked to describe a resource that doesn't exist. Check the resource that
596//   you are requesting and try again.
597//
598//   * ConflictException
599//   The action that you tried to perform couldn't be completed because the resource
600//   is in a conflicting state. For example, deleting a bot that is in the CREATING
601//   state. Try your request again.
602//
603//   * InternalServerException
604//   The service encountered an unexpected condition. Try your request again.
605//
606// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateExport
607func (c *LexModelsV2) CreateExport(input *CreateExportInput) (*CreateExportOutput, error) {
608	req, out := c.CreateExportRequest(input)
609	return out, req.Send()
610}
611
612// CreateExportWithContext is the same as CreateExport with the addition of
613// the ability to pass a context and additional request options.
614//
615// See CreateExport for details on how to use this API operation.
616//
617// The context must be non-nil and will be used for request cancellation. If
618// the context is nil a panic will occur. In the future the SDK may create
619// sub-contexts for http.Requests. See https://golang.org/pkg/context/
620// for more information on using Contexts.
621func (c *LexModelsV2) CreateExportWithContext(ctx aws.Context, input *CreateExportInput, opts ...request.Option) (*CreateExportOutput, error) {
622	req, out := c.CreateExportRequest(input)
623	req.SetContext(ctx)
624	req.ApplyOptions(opts...)
625	return out, req.Send()
626}
627
628const opCreateIntent = "CreateIntent"
629
630// CreateIntentRequest generates a "aws/request.Request" representing the
631// client's request for the CreateIntent operation. The "output" return
632// value will be populated with the request's response once the request completes
633// successfully.
634//
635// Use "Send" method on the returned Request to send the API call to the service.
636// the "output" return value is not valid until after Send returns without error.
637//
638// See CreateIntent for more information on using the CreateIntent
639// API call, and error handling.
640//
641// This method is useful when you want to inject custom logic or configuration
642// into the SDK's request lifecycle. Such as custom headers, or retry logic.
643//
644//
645//    // Example sending a request using the CreateIntentRequest method.
646//    req, resp := client.CreateIntentRequest(params)
647//
648//    err := req.Send()
649//    if err == nil { // resp is now filled
650//        fmt.Println(resp)
651//    }
652//
653// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateIntent
654func (c *LexModelsV2) CreateIntentRequest(input *CreateIntentInput) (req *request.Request, output *CreateIntentOutput) {
655	op := &request.Operation{
656		Name:       opCreateIntent,
657		HTTPMethod: "PUT",
658		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/",
659	}
660
661	if input == nil {
662		input = &CreateIntentInput{}
663	}
664
665	output = &CreateIntentOutput{}
666	req = c.newRequest(op, input, output)
667	return
668}
669
670// CreateIntent API operation for Amazon Lex Model Building V2.
671//
672// Creates an intent.
673//
674// To define the interaction between the user and your bot, you define one or
675// more intents. For example, for a pizza ordering bot you would create an OrderPizza
676// intent.
677//
678// When you create an intent, you must provide a name. You can optionally provide
679// the following:
680//
681//    * Sample utterances. For example, "I want to order a pizza" and "Can I
682//    order a pizza." You can't provide utterances for built-in intents.
683//
684//    * Information to be gathered. You specify slots for the information that
685//    you bot requests from the user. You can specify standard slot types, such
686//    as date and time, or custom slot types for your application.
687//
688//    * How the intent is fulfilled. You can provide a Lambda function or configure
689//    the intent to return the intent information to your client application.
690//    If you use a Lambda function, Amazon Lex invokes the function when all
691//    of the intent information is available.
692//
693//    * A confirmation prompt to send to the user to confirm an intent. For
694//    example, "Shall I order your pizza?"
695//
696//    * A conclusion statement to send to the user after the intent is fulfilled.
697//    For example, "I ordered your pizza."
698//
699//    * A follow-up prompt that asks the user for additional activity. For example,
700//    "Do you want a drink with your pizza?"
701//
702// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
703// with awserr.Error's Code and Message methods to get detailed information about
704// the error.
705//
706// See the AWS API reference guide for Amazon Lex Model Building V2's
707// API operation CreateIntent for usage and error information.
708//
709// Returned Error Types:
710//   * ThrottlingException
711//   Your request rate is too high. Reduce the frequency of requests.
712//
713//   * ServiceQuotaExceededException
714//   You have reached a quota for your bot.
715//
716//   * ValidationException
717//   One of the input parameters in your request isn't valid. Check the parameters
718//   and try your request again.
719//
720//   * PreconditionFailedException
721//   Your request couldn't be completed because one or more request fields aren't
722//   valid. Check the fields in your request and try again.
723//
724//   * ConflictException
725//   The action that you tried to perform couldn't be completed because the resource
726//   is in a conflicting state. For example, deleting a bot that is in the CREATING
727//   state. Try your request again.
728//
729//   * InternalServerException
730//   The service encountered an unexpected condition. Try your request again.
731//
732// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateIntent
733func (c *LexModelsV2) CreateIntent(input *CreateIntentInput) (*CreateIntentOutput, error) {
734	req, out := c.CreateIntentRequest(input)
735	return out, req.Send()
736}
737
738// CreateIntentWithContext is the same as CreateIntent with the addition of
739// the ability to pass a context and additional request options.
740//
741// See CreateIntent for details on how to use this API operation.
742//
743// The context must be non-nil and will be used for request cancellation. If
744// the context is nil a panic will occur. In the future the SDK may create
745// sub-contexts for http.Requests. See https://golang.org/pkg/context/
746// for more information on using Contexts.
747func (c *LexModelsV2) CreateIntentWithContext(ctx aws.Context, input *CreateIntentInput, opts ...request.Option) (*CreateIntentOutput, error) {
748	req, out := c.CreateIntentRequest(input)
749	req.SetContext(ctx)
750	req.ApplyOptions(opts...)
751	return out, req.Send()
752}
753
754const opCreateResourcePolicy = "CreateResourcePolicy"
755
756// CreateResourcePolicyRequest generates a "aws/request.Request" representing the
757// client's request for the CreateResourcePolicy operation. The "output" return
758// value will be populated with the request's response once the request completes
759// successfully.
760//
761// Use "Send" method on the returned Request to send the API call to the service.
762// the "output" return value is not valid until after Send returns without error.
763//
764// See CreateResourcePolicy for more information on using the CreateResourcePolicy
765// API call, and error handling.
766//
767// This method is useful when you want to inject custom logic or configuration
768// into the SDK's request lifecycle. Such as custom headers, or retry logic.
769//
770//
771//    // Example sending a request using the CreateResourcePolicyRequest method.
772//    req, resp := client.CreateResourcePolicyRequest(params)
773//
774//    err := req.Send()
775//    if err == nil { // resp is now filled
776//        fmt.Println(resp)
777//    }
778//
779// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateResourcePolicy
780func (c *LexModelsV2) CreateResourcePolicyRequest(input *CreateResourcePolicyInput) (req *request.Request, output *CreateResourcePolicyOutput) {
781	op := &request.Operation{
782		Name:       opCreateResourcePolicy,
783		HTTPMethod: "POST",
784		HTTPPath:   "/policy/{resourceArn}/",
785	}
786
787	if input == nil {
788		input = &CreateResourcePolicyInput{}
789	}
790
791	output = &CreateResourcePolicyOutput{}
792	req = c.newRequest(op, input, output)
793	return
794}
795
796// CreateResourcePolicy API operation for Amazon Lex Model Building V2.
797//
798// Creates a new resource policy with the specified policy statements.
799//
800// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
801// with awserr.Error's Code and Message methods to get detailed information about
802// the error.
803//
804// See the AWS API reference guide for Amazon Lex Model Building V2's
805// API operation CreateResourcePolicy for usage and error information.
806//
807// Returned Error Types:
808//   * ResourceNotFoundException
809//   You asked to describe a resource that doesn't exist. Check the resource that
810//   you are requesting and try again.
811//
812//   * ServiceQuotaExceededException
813//   You have reached a quota for your bot.
814//
815//   * PreconditionFailedException
816//   Your request couldn't be completed because one or more request fields aren't
817//   valid. Check the fields in your request and try again.
818//
819//   * ValidationException
820//   One of the input parameters in your request isn't valid. Check the parameters
821//   and try your request again.
822//
823//   * InternalServerException
824//   The service encountered an unexpected condition. Try your request again.
825//
826//   * ThrottlingException
827//   Your request rate is too high. Reduce the frequency of requests.
828//
829// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateResourcePolicy
830func (c *LexModelsV2) CreateResourcePolicy(input *CreateResourcePolicyInput) (*CreateResourcePolicyOutput, error) {
831	req, out := c.CreateResourcePolicyRequest(input)
832	return out, req.Send()
833}
834
835// CreateResourcePolicyWithContext is the same as CreateResourcePolicy with the addition of
836// the ability to pass a context and additional request options.
837//
838// See CreateResourcePolicy for details on how to use this API operation.
839//
840// The context must be non-nil and will be used for request cancellation. If
841// the context is nil a panic will occur. In the future the SDK may create
842// sub-contexts for http.Requests. See https://golang.org/pkg/context/
843// for more information on using Contexts.
844func (c *LexModelsV2) CreateResourcePolicyWithContext(ctx aws.Context, input *CreateResourcePolicyInput, opts ...request.Option) (*CreateResourcePolicyOutput, error) {
845	req, out := c.CreateResourcePolicyRequest(input)
846	req.SetContext(ctx)
847	req.ApplyOptions(opts...)
848	return out, req.Send()
849}
850
851const opCreateResourcePolicyStatement = "CreateResourcePolicyStatement"
852
853// CreateResourcePolicyStatementRequest generates a "aws/request.Request" representing the
854// client's request for the CreateResourcePolicyStatement operation. The "output" return
855// value will be populated with the request's response once the request completes
856// successfully.
857//
858// Use "Send" method on the returned Request to send the API call to the service.
859// the "output" return value is not valid until after Send returns without error.
860//
861// See CreateResourcePolicyStatement for more information on using the CreateResourcePolicyStatement
862// API call, and error handling.
863//
864// This method is useful when you want to inject custom logic or configuration
865// into the SDK's request lifecycle. Such as custom headers, or retry logic.
866//
867//
868//    // Example sending a request using the CreateResourcePolicyStatementRequest method.
869//    req, resp := client.CreateResourcePolicyStatementRequest(params)
870//
871//    err := req.Send()
872//    if err == nil { // resp is now filled
873//        fmt.Println(resp)
874//    }
875//
876// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateResourcePolicyStatement
877func (c *LexModelsV2) CreateResourcePolicyStatementRequest(input *CreateResourcePolicyStatementInput) (req *request.Request, output *CreateResourcePolicyStatementOutput) {
878	op := &request.Operation{
879		Name:       opCreateResourcePolicyStatement,
880		HTTPMethod: "POST",
881		HTTPPath:   "/policy/{resourceArn}/statements/",
882	}
883
884	if input == nil {
885		input = &CreateResourcePolicyStatementInput{}
886	}
887
888	output = &CreateResourcePolicyStatementOutput{}
889	req = c.newRequest(op, input, output)
890	return
891}
892
893// CreateResourcePolicyStatement API operation for Amazon Lex Model Building V2.
894//
895// Adds a new resource policy statement to a bot or bot alias. If a resource
896// policy exists, the statement is added to the current resource policy. If
897// a policy doesn't exist, a new policy is created.
898//
899// You can't create a resource policy statement that allows cross-account access.
900//
901// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
902// with awserr.Error's Code and Message methods to get detailed information about
903// the error.
904//
905// See the AWS API reference guide for Amazon Lex Model Building V2's
906// API operation CreateResourcePolicyStatement for usage and error information.
907//
908// Returned Error Types:
909//   * ResourceNotFoundException
910//   You asked to describe a resource that doesn't exist. Check the resource that
911//   you are requesting and try again.
912//
913//   * ConflictException
914//   The action that you tried to perform couldn't be completed because the resource
915//   is in a conflicting state. For example, deleting a bot that is in the CREATING
916//   state. Try your request again.
917//
918//   * ServiceQuotaExceededException
919//   You have reached a quota for your bot.
920//
921//   * PreconditionFailedException
922//   Your request couldn't be completed because one or more request fields aren't
923//   valid. Check the fields in your request and try again.
924//
925//   * ValidationException
926//   One of the input parameters in your request isn't valid. Check the parameters
927//   and try your request again.
928//
929//   * InternalServerException
930//   The service encountered an unexpected condition. Try your request again.
931//
932//   * ThrottlingException
933//   Your request rate is too high. Reduce the frequency of requests.
934//
935// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateResourcePolicyStatement
936func (c *LexModelsV2) CreateResourcePolicyStatement(input *CreateResourcePolicyStatementInput) (*CreateResourcePolicyStatementOutput, error) {
937	req, out := c.CreateResourcePolicyStatementRequest(input)
938	return out, req.Send()
939}
940
941// CreateResourcePolicyStatementWithContext is the same as CreateResourcePolicyStatement with the addition of
942// the ability to pass a context and additional request options.
943//
944// See CreateResourcePolicyStatement for details on how to use this API operation.
945//
946// The context must be non-nil and will be used for request cancellation. If
947// the context is nil a panic will occur. In the future the SDK may create
948// sub-contexts for http.Requests. See https://golang.org/pkg/context/
949// for more information on using Contexts.
950func (c *LexModelsV2) CreateResourcePolicyStatementWithContext(ctx aws.Context, input *CreateResourcePolicyStatementInput, opts ...request.Option) (*CreateResourcePolicyStatementOutput, error) {
951	req, out := c.CreateResourcePolicyStatementRequest(input)
952	req.SetContext(ctx)
953	req.ApplyOptions(opts...)
954	return out, req.Send()
955}
956
957const opCreateSlot = "CreateSlot"
958
959// CreateSlotRequest generates a "aws/request.Request" representing the
960// client's request for the CreateSlot operation. The "output" return
961// value will be populated with the request's response once the request completes
962// successfully.
963//
964// Use "Send" method on the returned Request to send the API call to the service.
965// the "output" return value is not valid until after Send returns without error.
966//
967// See CreateSlot for more information on using the CreateSlot
968// API call, and error handling.
969//
970// This method is useful when you want to inject custom logic or configuration
971// into the SDK's request lifecycle. Such as custom headers, or retry logic.
972//
973//
974//    // Example sending a request using the CreateSlotRequest method.
975//    req, resp := client.CreateSlotRequest(params)
976//
977//    err := req.Send()
978//    if err == nil { // resp is now filled
979//        fmt.Println(resp)
980//    }
981//
982// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateSlot
983func (c *LexModelsV2) CreateSlotRequest(input *CreateSlotInput) (req *request.Request, output *CreateSlotOutput) {
984	op := &request.Operation{
985		Name:       opCreateSlot,
986		HTTPMethod: "PUT",
987		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/slots/",
988	}
989
990	if input == nil {
991		input = &CreateSlotInput{}
992	}
993
994	output = &CreateSlotOutput{}
995	req = c.newRequest(op, input, output)
996	return
997}
998
999// CreateSlot API operation for Amazon Lex Model Building V2.
1000//
1001// Creates a slot in an intent. A slot is a variable needed to fulfill an intent.
1002// For example, an OrderPizza intent might need slots for size, crust, and number
1003// of pizzas. For each slot, you define one or more utterances that Amazon Lex
1004// uses to elicit a response from the user.
1005//
1006// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1007// with awserr.Error's Code and Message methods to get detailed information about
1008// the error.
1009//
1010// See the AWS API reference guide for Amazon Lex Model Building V2's
1011// API operation CreateSlot for usage and error information.
1012//
1013// Returned Error Types:
1014//   * ThrottlingException
1015//   Your request rate is too high. Reduce the frequency of requests.
1016//
1017//   * ServiceQuotaExceededException
1018//   You have reached a quota for your bot.
1019//
1020//   * ValidationException
1021//   One of the input parameters in your request isn't valid. Check the parameters
1022//   and try your request again.
1023//
1024//   * PreconditionFailedException
1025//   Your request couldn't be completed because one or more request fields aren't
1026//   valid. Check the fields in your request and try again.
1027//
1028//   * ConflictException
1029//   The action that you tried to perform couldn't be completed because the resource
1030//   is in a conflicting state. For example, deleting a bot that is in the CREATING
1031//   state. Try your request again.
1032//
1033//   * InternalServerException
1034//   The service encountered an unexpected condition. Try your request again.
1035//
1036// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateSlot
1037func (c *LexModelsV2) CreateSlot(input *CreateSlotInput) (*CreateSlotOutput, error) {
1038	req, out := c.CreateSlotRequest(input)
1039	return out, req.Send()
1040}
1041
1042// CreateSlotWithContext is the same as CreateSlot with the addition of
1043// the ability to pass a context and additional request options.
1044//
1045// See CreateSlot for details on how to use this API operation.
1046//
1047// The context must be non-nil and will be used for request cancellation. If
1048// the context is nil a panic will occur. In the future the SDK may create
1049// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1050// for more information on using Contexts.
1051func (c *LexModelsV2) CreateSlotWithContext(ctx aws.Context, input *CreateSlotInput, opts ...request.Option) (*CreateSlotOutput, error) {
1052	req, out := c.CreateSlotRequest(input)
1053	req.SetContext(ctx)
1054	req.ApplyOptions(opts...)
1055	return out, req.Send()
1056}
1057
1058const opCreateSlotType = "CreateSlotType"
1059
1060// CreateSlotTypeRequest generates a "aws/request.Request" representing the
1061// client's request for the CreateSlotType operation. The "output" return
1062// value will be populated with the request's response once the request completes
1063// successfully.
1064//
1065// Use "Send" method on the returned Request to send the API call to the service.
1066// the "output" return value is not valid until after Send returns without error.
1067//
1068// See CreateSlotType for more information on using the CreateSlotType
1069// API call, and error handling.
1070//
1071// This method is useful when you want to inject custom logic or configuration
1072// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1073//
1074//
1075//    // Example sending a request using the CreateSlotTypeRequest method.
1076//    req, resp := client.CreateSlotTypeRequest(params)
1077//
1078//    err := req.Send()
1079//    if err == nil { // resp is now filled
1080//        fmt.Println(resp)
1081//    }
1082//
1083// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateSlotType
1084func (c *LexModelsV2) CreateSlotTypeRequest(input *CreateSlotTypeInput) (req *request.Request, output *CreateSlotTypeOutput) {
1085	op := &request.Operation{
1086		Name:       opCreateSlotType,
1087		HTTPMethod: "PUT",
1088		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/slottypes/",
1089	}
1090
1091	if input == nil {
1092		input = &CreateSlotTypeInput{}
1093	}
1094
1095	output = &CreateSlotTypeOutput{}
1096	req = c.newRequest(op, input, output)
1097	return
1098}
1099
1100// CreateSlotType API operation for Amazon Lex Model Building V2.
1101//
1102// Creates a custom slot type
1103//
1104// To create a custom slot type, specify a name for the slot type and a set
1105// of enumeration values, the values that a slot of this type can assume.
1106//
1107// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1108// with awserr.Error's Code and Message methods to get detailed information about
1109// the error.
1110//
1111// See the AWS API reference guide for Amazon Lex Model Building V2's
1112// API operation CreateSlotType for usage and error information.
1113//
1114// Returned Error Types:
1115//   * ThrottlingException
1116//   Your request rate is too high. Reduce the frequency of requests.
1117//
1118//   * ServiceQuotaExceededException
1119//   You have reached a quota for your bot.
1120//
1121//   * ValidationException
1122//   One of the input parameters in your request isn't valid. Check the parameters
1123//   and try your request again.
1124//
1125//   * PreconditionFailedException
1126//   Your request couldn't be completed because one or more request fields aren't
1127//   valid. Check the fields in your request and try again.
1128//
1129//   * ConflictException
1130//   The action that you tried to perform couldn't be completed because the resource
1131//   is in a conflicting state. For example, deleting a bot that is in the CREATING
1132//   state. Try your request again.
1133//
1134//   * InternalServerException
1135//   The service encountered an unexpected condition. Try your request again.
1136//
1137// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateSlotType
1138func (c *LexModelsV2) CreateSlotType(input *CreateSlotTypeInput) (*CreateSlotTypeOutput, error) {
1139	req, out := c.CreateSlotTypeRequest(input)
1140	return out, req.Send()
1141}
1142
1143// CreateSlotTypeWithContext is the same as CreateSlotType with the addition of
1144// the ability to pass a context and additional request options.
1145//
1146// See CreateSlotType for details on how to use this API operation.
1147//
1148// The context must be non-nil and will be used for request cancellation. If
1149// the context is nil a panic will occur. In the future the SDK may create
1150// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1151// for more information on using Contexts.
1152func (c *LexModelsV2) CreateSlotTypeWithContext(ctx aws.Context, input *CreateSlotTypeInput, opts ...request.Option) (*CreateSlotTypeOutput, error) {
1153	req, out := c.CreateSlotTypeRequest(input)
1154	req.SetContext(ctx)
1155	req.ApplyOptions(opts...)
1156	return out, req.Send()
1157}
1158
1159const opCreateUploadUrl = "CreateUploadUrl"
1160
1161// CreateUploadUrlRequest generates a "aws/request.Request" representing the
1162// client's request for the CreateUploadUrl operation. The "output" return
1163// value will be populated with the request's response once the request completes
1164// successfully.
1165//
1166// Use "Send" method on the returned Request to send the API call to the service.
1167// the "output" return value is not valid until after Send returns without error.
1168//
1169// See CreateUploadUrl for more information on using the CreateUploadUrl
1170// API call, and error handling.
1171//
1172// This method is useful when you want to inject custom logic or configuration
1173// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1174//
1175//
1176//    // Example sending a request using the CreateUploadUrlRequest method.
1177//    req, resp := client.CreateUploadUrlRequest(params)
1178//
1179//    err := req.Send()
1180//    if err == nil { // resp is now filled
1181//        fmt.Println(resp)
1182//    }
1183//
1184// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateUploadUrl
1185func (c *LexModelsV2) CreateUploadUrlRequest(input *CreateUploadUrlInput) (req *request.Request, output *CreateUploadUrlOutput) {
1186	op := &request.Operation{
1187		Name:       opCreateUploadUrl,
1188		HTTPMethod: "POST",
1189		HTTPPath:   "/createuploadurl/",
1190	}
1191
1192	if input == nil {
1193		input = &CreateUploadUrlInput{}
1194	}
1195
1196	output = &CreateUploadUrlOutput{}
1197	req = c.newRequest(op, input, output)
1198	return
1199}
1200
1201// CreateUploadUrl API operation for Amazon Lex Model Building V2.
1202//
1203// Gets a pre-signed S3 write URL that you use to upload the zip archive when
1204// importing a bot or a bot locale.
1205//
1206// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1207// with awserr.Error's Code and Message methods to get detailed information about
1208// the error.
1209//
1210// See the AWS API reference guide for Amazon Lex Model Building V2's
1211// API operation CreateUploadUrl for usage and error information.
1212//
1213// Returned Error Types:
1214//   * ThrottlingException
1215//   Your request rate is too high. Reduce the frequency of requests.
1216//
1217//   * ValidationException
1218//   One of the input parameters in your request isn't valid. Check the parameters
1219//   and try your request again.
1220//
1221//   * ResourceNotFoundException
1222//   You asked to describe a resource that doesn't exist. Check the resource that
1223//   you are requesting and try again.
1224//
1225//   * ConflictException
1226//   The action that you tried to perform couldn't be completed because the resource
1227//   is in a conflicting state. For example, deleting a bot that is in the CREATING
1228//   state. Try your request again.
1229//
1230//   * InternalServerException
1231//   The service encountered an unexpected condition. Try your request again.
1232//
1233// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateUploadUrl
1234func (c *LexModelsV2) CreateUploadUrl(input *CreateUploadUrlInput) (*CreateUploadUrlOutput, error) {
1235	req, out := c.CreateUploadUrlRequest(input)
1236	return out, req.Send()
1237}
1238
1239// CreateUploadUrlWithContext is the same as CreateUploadUrl with the addition of
1240// the ability to pass a context and additional request options.
1241//
1242// See CreateUploadUrl for details on how to use this API operation.
1243//
1244// The context must be non-nil and will be used for request cancellation. If
1245// the context is nil a panic will occur. In the future the SDK may create
1246// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1247// for more information on using Contexts.
1248func (c *LexModelsV2) CreateUploadUrlWithContext(ctx aws.Context, input *CreateUploadUrlInput, opts ...request.Option) (*CreateUploadUrlOutput, error) {
1249	req, out := c.CreateUploadUrlRequest(input)
1250	req.SetContext(ctx)
1251	req.ApplyOptions(opts...)
1252	return out, req.Send()
1253}
1254
1255const opDeleteBot = "DeleteBot"
1256
1257// DeleteBotRequest generates a "aws/request.Request" representing the
1258// client's request for the DeleteBot operation. The "output" return
1259// value will be populated with the request's response once the request completes
1260// successfully.
1261//
1262// Use "Send" method on the returned Request to send the API call to the service.
1263// the "output" return value is not valid until after Send returns without error.
1264//
1265// See DeleteBot for more information on using the DeleteBot
1266// API call, and error handling.
1267//
1268// This method is useful when you want to inject custom logic or configuration
1269// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1270//
1271//
1272//    // Example sending a request using the DeleteBotRequest method.
1273//    req, resp := client.DeleteBotRequest(params)
1274//
1275//    err := req.Send()
1276//    if err == nil { // resp is now filled
1277//        fmt.Println(resp)
1278//    }
1279//
1280// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteBot
1281func (c *LexModelsV2) DeleteBotRequest(input *DeleteBotInput) (req *request.Request, output *DeleteBotOutput) {
1282	op := &request.Operation{
1283		Name:       opDeleteBot,
1284		HTTPMethod: "DELETE",
1285		HTTPPath:   "/bots/{botId}/",
1286	}
1287
1288	if input == nil {
1289		input = &DeleteBotInput{}
1290	}
1291
1292	output = &DeleteBotOutput{}
1293	req = c.newRequest(op, input, output)
1294	return
1295}
1296
1297// DeleteBot API operation for Amazon Lex Model Building V2.
1298//
1299// Deletes all versions of a bot, including the Draft version. To delete a specific
1300// version, use the DeleteBotVersion operation.
1301//
1302// When you delete a bot, all of the resources contained in the bot are also
1303// deleted. Deleting a bot removes all locales, intents, slot, and slot types
1304// defined for the bot.
1305//
1306// If a bot has an alias, the DeleteBot operation returns a ResourceInUseException
1307// exception. If you want to delete the bot and the alias, set the skipResourceInUseCheck
1308// parameter to true.
1309//
1310// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1311// with awserr.Error's Code and Message methods to get detailed information about
1312// the error.
1313//
1314// See the AWS API reference guide for Amazon Lex Model Building V2's
1315// API operation DeleteBot for usage and error information.
1316//
1317// Returned Error Types:
1318//   * ThrottlingException
1319//   Your request rate is too high. Reduce the frequency of requests.
1320//
1321//   * ServiceQuotaExceededException
1322//   You have reached a quota for your bot.
1323//
1324//   * ValidationException
1325//   One of the input parameters in your request isn't valid. Check the parameters
1326//   and try your request again.
1327//
1328//   * ConflictException
1329//   The action that you tried to perform couldn't be completed because the resource
1330//   is in a conflicting state. For example, deleting a bot that is in the CREATING
1331//   state. Try your request again.
1332//
1333//   * PreconditionFailedException
1334//   Your request couldn't be completed because one or more request fields aren't
1335//   valid. Check the fields in your request and try again.
1336//
1337//   * InternalServerException
1338//   The service encountered an unexpected condition. Try your request again.
1339//
1340// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteBot
1341func (c *LexModelsV2) DeleteBot(input *DeleteBotInput) (*DeleteBotOutput, error) {
1342	req, out := c.DeleteBotRequest(input)
1343	return out, req.Send()
1344}
1345
1346// DeleteBotWithContext is the same as DeleteBot with the addition of
1347// the ability to pass a context and additional request options.
1348//
1349// See DeleteBot for details on how to use this API operation.
1350//
1351// The context must be non-nil and will be used for request cancellation. If
1352// the context is nil a panic will occur. In the future the SDK may create
1353// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1354// for more information on using Contexts.
1355func (c *LexModelsV2) DeleteBotWithContext(ctx aws.Context, input *DeleteBotInput, opts ...request.Option) (*DeleteBotOutput, error) {
1356	req, out := c.DeleteBotRequest(input)
1357	req.SetContext(ctx)
1358	req.ApplyOptions(opts...)
1359	return out, req.Send()
1360}
1361
1362const opDeleteBotAlias = "DeleteBotAlias"
1363
1364// DeleteBotAliasRequest generates a "aws/request.Request" representing the
1365// client's request for the DeleteBotAlias operation. The "output" return
1366// value will be populated with the request's response once the request completes
1367// successfully.
1368//
1369// Use "Send" method on the returned Request to send the API call to the service.
1370// the "output" return value is not valid until after Send returns without error.
1371//
1372// See DeleteBotAlias for more information on using the DeleteBotAlias
1373// API call, and error handling.
1374//
1375// This method is useful when you want to inject custom logic or configuration
1376// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1377//
1378//
1379//    // Example sending a request using the DeleteBotAliasRequest method.
1380//    req, resp := client.DeleteBotAliasRequest(params)
1381//
1382//    err := req.Send()
1383//    if err == nil { // resp is now filled
1384//        fmt.Println(resp)
1385//    }
1386//
1387// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteBotAlias
1388func (c *LexModelsV2) DeleteBotAliasRequest(input *DeleteBotAliasInput) (req *request.Request, output *DeleteBotAliasOutput) {
1389	op := &request.Operation{
1390		Name:       opDeleteBotAlias,
1391		HTTPMethod: "DELETE",
1392		HTTPPath:   "/bots/{botId}/botaliases/{botAliasId}/",
1393	}
1394
1395	if input == nil {
1396		input = &DeleteBotAliasInput{}
1397	}
1398
1399	output = &DeleteBotAliasOutput{}
1400	req = c.newRequest(op, input, output)
1401	return
1402}
1403
1404// DeleteBotAlias API operation for Amazon Lex Model Building V2.
1405//
1406// Deletes the specified bot alias.
1407//
1408// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1409// with awserr.Error's Code and Message methods to get detailed information about
1410// the error.
1411//
1412// See the AWS API reference guide for Amazon Lex Model Building V2's
1413// API operation DeleteBotAlias for usage and error information.
1414//
1415// Returned Error Types:
1416//   * ThrottlingException
1417//   Your request rate is too high. Reduce the frequency of requests.
1418//
1419//   * ServiceQuotaExceededException
1420//   You have reached a quota for your bot.
1421//
1422//   * ValidationException
1423//   One of the input parameters in your request isn't valid. Check the parameters
1424//   and try your request again.
1425//
1426//   * ConflictException
1427//   The action that you tried to perform couldn't be completed because the resource
1428//   is in a conflicting state. For example, deleting a bot that is in the CREATING
1429//   state. Try your request again.
1430//
1431//   * PreconditionFailedException
1432//   Your request couldn't be completed because one or more request fields aren't
1433//   valid. Check the fields in your request and try again.
1434//
1435//   * InternalServerException
1436//   The service encountered an unexpected condition. Try your request again.
1437//
1438// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteBotAlias
1439func (c *LexModelsV2) DeleteBotAlias(input *DeleteBotAliasInput) (*DeleteBotAliasOutput, error) {
1440	req, out := c.DeleteBotAliasRequest(input)
1441	return out, req.Send()
1442}
1443
1444// DeleteBotAliasWithContext is the same as DeleteBotAlias with the addition of
1445// the ability to pass a context and additional request options.
1446//
1447// See DeleteBotAlias for details on how to use this API operation.
1448//
1449// The context must be non-nil and will be used for request cancellation. If
1450// the context is nil a panic will occur. In the future the SDK may create
1451// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1452// for more information on using Contexts.
1453func (c *LexModelsV2) DeleteBotAliasWithContext(ctx aws.Context, input *DeleteBotAliasInput, opts ...request.Option) (*DeleteBotAliasOutput, error) {
1454	req, out := c.DeleteBotAliasRequest(input)
1455	req.SetContext(ctx)
1456	req.ApplyOptions(opts...)
1457	return out, req.Send()
1458}
1459
1460const opDeleteBotLocale = "DeleteBotLocale"
1461
1462// DeleteBotLocaleRequest generates a "aws/request.Request" representing the
1463// client's request for the DeleteBotLocale operation. The "output" return
1464// value will be populated with the request's response once the request completes
1465// successfully.
1466//
1467// Use "Send" method on the returned Request to send the API call to the service.
1468// the "output" return value is not valid until after Send returns without error.
1469//
1470// See DeleteBotLocale for more information on using the DeleteBotLocale
1471// API call, and error handling.
1472//
1473// This method is useful when you want to inject custom logic or configuration
1474// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1475//
1476//
1477//    // Example sending a request using the DeleteBotLocaleRequest method.
1478//    req, resp := client.DeleteBotLocaleRequest(params)
1479//
1480//    err := req.Send()
1481//    if err == nil { // resp is now filled
1482//        fmt.Println(resp)
1483//    }
1484//
1485// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteBotLocale
1486func (c *LexModelsV2) DeleteBotLocaleRequest(input *DeleteBotLocaleInput) (req *request.Request, output *DeleteBotLocaleOutput) {
1487	op := &request.Operation{
1488		Name:       opDeleteBotLocale,
1489		HTTPMethod: "DELETE",
1490		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/",
1491	}
1492
1493	if input == nil {
1494		input = &DeleteBotLocaleInput{}
1495	}
1496
1497	output = &DeleteBotLocaleOutput{}
1498	req = c.newRequest(op, input, output)
1499	return
1500}
1501
1502// DeleteBotLocale API operation for Amazon Lex Model Building V2.
1503//
1504// Removes a locale from a bot.
1505//
1506// When you delete a locale, all intents, slots, and slot types defined for
1507// the locale are also deleted.
1508//
1509// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1510// with awserr.Error's Code and Message methods to get detailed information about
1511// the error.
1512//
1513// See the AWS API reference guide for Amazon Lex Model Building V2's
1514// API operation DeleteBotLocale for usage and error information.
1515//
1516// Returned Error Types:
1517//   * ThrottlingException
1518//   Your request rate is too high. Reduce the frequency of requests.
1519//
1520//   * ServiceQuotaExceededException
1521//   You have reached a quota for your bot.
1522//
1523//   * ValidationException
1524//   One of the input parameters in your request isn't valid. Check the parameters
1525//   and try your request again.
1526//
1527//   * PreconditionFailedException
1528//   Your request couldn't be completed because one or more request fields aren't
1529//   valid. Check the fields in your request and try again.
1530//
1531//   * ConflictException
1532//   The action that you tried to perform couldn't be completed because the resource
1533//   is in a conflicting state. For example, deleting a bot that is in the CREATING
1534//   state. Try your request again.
1535//
1536//   * InternalServerException
1537//   The service encountered an unexpected condition. Try your request again.
1538//
1539// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteBotLocale
1540func (c *LexModelsV2) DeleteBotLocale(input *DeleteBotLocaleInput) (*DeleteBotLocaleOutput, error) {
1541	req, out := c.DeleteBotLocaleRequest(input)
1542	return out, req.Send()
1543}
1544
1545// DeleteBotLocaleWithContext is the same as DeleteBotLocale with the addition of
1546// the ability to pass a context and additional request options.
1547//
1548// See DeleteBotLocale for details on how to use this API operation.
1549//
1550// The context must be non-nil and will be used for request cancellation. If
1551// the context is nil a panic will occur. In the future the SDK may create
1552// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1553// for more information on using Contexts.
1554func (c *LexModelsV2) DeleteBotLocaleWithContext(ctx aws.Context, input *DeleteBotLocaleInput, opts ...request.Option) (*DeleteBotLocaleOutput, error) {
1555	req, out := c.DeleteBotLocaleRequest(input)
1556	req.SetContext(ctx)
1557	req.ApplyOptions(opts...)
1558	return out, req.Send()
1559}
1560
1561const opDeleteBotVersion = "DeleteBotVersion"
1562
1563// DeleteBotVersionRequest generates a "aws/request.Request" representing the
1564// client's request for the DeleteBotVersion operation. The "output" return
1565// value will be populated with the request's response once the request completes
1566// successfully.
1567//
1568// Use "Send" method on the returned Request to send the API call to the service.
1569// the "output" return value is not valid until after Send returns without error.
1570//
1571// See DeleteBotVersion for more information on using the DeleteBotVersion
1572// API call, and error handling.
1573//
1574// This method is useful when you want to inject custom logic or configuration
1575// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1576//
1577//
1578//    // Example sending a request using the DeleteBotVersionRequest method.
1579//    req, resp := client.DeleteBotVersionRequest(params)
1580//
1581//    err := req.Send()
1582//    if err == nil { // resp is now filled
1583//        fmt.Println(resp)
1584//    }
1585//
1586// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteBotVersion
1587func (c *LexModelsV2) DeleteBotVersionRequest(input *DeleteBotVersionInput) (req *request.Request, output *DeleteBotVersionOutput) {
1588	op := &request.Operation{
1589		Name:       opDeleteBotVersion,
1590		HTTPMethod: "DELETE",
1591		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/",
1592	}
1593
1594	if input == nil {
1595		input = &DeleteBotVersionInput{}
1596	}
1597
1598	output = &DeleteBotVersionOutput{}
1599	req = c.newRequest(op, input, output)
1600	return
1601}
1602
1603// DeleteBotVersion API operation for Amazon Lex Model Building V2.
1604//
1605// Deletes a specific version of a bot. To delete all version of a bot, use
1606// the DeleteBot operation.
1607//
1608// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1609// with awserr.Error's Code and Message methods to get detailed information about
1610// the error.
1611//
1612// See the AWS API reference guide for Amazon Lex Model Building V2's
1613// API operation DeleteBotVersion for usage and error information.
1614//
1615// Returned Error Types:
1616//   * ThrottlingException
1617//   Your request rate is too high. Reduce the frequency of requests.
1618//
1619//   * ServiceQuotaExceededException
1620//   You have reached a quota for your bot.
1621//
1622//   * ValidationException
1623//   One of the input parameters in your request isn't valid. Check the parameters
1624//   and try your request again.
1625//
1626//   * ConflictException
1627//   The action that you tried to perform couldn't be completed because the resource
1628//   is in a conflicting state. For example, deleting a bot that is in the CREATING
1629//   state. Try your request again.
1630//
1631//   * PreconditionFailedException
1632//   Your request couldn't be completed because one or more request fields aren't
1633//   valid. Check the fields in your request and try again.
1634//
1635//   * InternalServerException
1636//   The service encountered an unexpected condition. Try your request again.
1637//
1638// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteBotVersion
1639func (c *LexModelsV2) DeleteBotVersion(input *DeleteBotVersionInput) (*DeleteBotVersionOutput, error) {
1640	req, out := c.DeleteBotVersionRequest(input)
1641	return out, req.Send()
1642}
1643
1644// DeleteBotVersionWithContext is the same as DeleteBotVersion with the addition of
1645// the ability to pass a context and additional request options.
1646//
1647// See DeleteBotVersion for details on how to use this API operation.
1648//
1649// The context must be non-nil and will be used for request cancellation. If
1650// the context is nil a panic will occur. In the future the SDK may create
1651// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1652// for more information on using Contexts.
1653func (c *LexModelsV2) DeleteBotVersionWithContext(ctx aws.Context, input *DeleteBotVersionInput, opts ...request.Option) (*DeleteBotVersionOutput, error) {
1654	req, out := c.DeleteBotVersionRequest(input)
1655	req.SetContext(ctx)
1656	req.ApplyOptions(opts...)
1657	return out, req.Send()
1658}
1659
1660const opDeleteExport = "DeleteExport"
1661
1662// DeleteExportRequest generates a "aws/request.Request" representing the
1663// client's request for the DeleteExport operation. The "output" return
1664// value will be populated with the request's response once the request completes
1665// successfully.
1666//
1667// Use "Send" method on the returned Request to send the API call to the service.
1668// the "output" return value is not valid until after Send returns without error.
1669//
1670// See DeleteExport for more information on using the DeleteExport
1671// API call, and error handling.
1672//
1673// This method is useful when you want to inject custom logic or configuration
1674// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1675//
1676//
1677//    // Example sending a request using the DeleteExportRequest method.
1678//    req, resp := client.DeleteExportRequest(params)
1679//
1680//    err := req.Send()
1681//    if err == nil { // resp is now filled
1682//        fmt.Println(resp)
1683//    }
1684//
1685// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteExport
1686func (c *LexModelsV2) DeleteExportRequest(input *DeleteExportInput) (req *request.Request, output *DeleteExportOutput) {
1687	op := &request.Operation{
1688		Name:       opDeleteExport,
1689		HTTPMethod: "DELETE",
1690		HTTPPath:   "/exports/{exportId}/",
1691	}
1692
1693	if input == nil {
1694		input = &DeleteExportInput{}
1695	}
1696
1697	output = &DeleteExportOutput{}
1698	req = c.newRequest(op, input, output)
1699	return
1700}
1701
1702// DeleteExport API operation for Amazon Lex Model Building V2.
1703//
1704// Removes a previous export and the associated files stored in an S3 bucket.
1705//
1706// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1707// with awserr.Error's Code and Message methods to get detailed information about
1708// the error.
1709//
1710// See the AWS API reference guide for Amazon Lex Model Building V2's
1711// API operation DeleteExport for usage and error information.
1712//
1713// Returned Error Types:
1714//   * ThrottlingException
1715//   Your request rate is too high. Reduce the frequency of requests.
1716//
1717//   * ServiceQuotaExceededException
1718//   You have reached a quota for your bot.
1719//
1720//   * ValidationException
1721//   One of the input parameters in your request isn't valid. Check the parameters
1722//   and try your request again.
1723//
1724//   * PreconditionFailedException
1725//   Your request couldn't be completed because one or more request fields aren't
1726//   valid. Check the fields in your request and try again.
1727//
1728//   * InternalServerException
1729//   The service encountered an unexpected condition. Try your request again.
1730//
1731// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteExport
1732func (c *LexModelsV2) DeleteExport(input *DeleteExportInput) (*DeleteExportOutput, error) {
1733	req, out := c.DeleteExportRequest(input)
1734	return out, req.Send()
1735}
1736
1737// DeleteExportWithContext is the same as DeleteExport with the addition of
1738// the ability to pass a context and additional request options.
1739//
1740// See DeleteExport for details on how to use this API operation.
1741//
1742// The context must be non-nil and will be used for request cancellation. If
1743// the context is nil a panic will occur. In the future the SDK may create
1744// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1745// for more information on using Contexts.
1746func (c *LexModelsV2) DeleteExportWithContext(ctx aws.Context, input *DeleteExportInput, opts ...request.Option) (*DeleteExportOutput, error) {
1747	req, out := c.DeleteExportRequest(input)
1748	req.SetContext(ctx)
1749	req.ApplyOptions(opts...)
1750	return out, req.Send()
1751}
1752
1753const opDeleteImport = "DeleteImport"
1754
1755// DeleteImportRequest generates a "aws/request.Request" representing the
1756// client's request for the DeleteImport operation. The "output" return
1757// value will be populated with the request's response once the request completes
1758// successfully.
1759//
1760// Use "Send" method on the returned Request to send the API call to the service.
1761// the "output" return value is not valid until after Send returns without error.
1762//
1763// See DeleteImport for more information on using the DeleteImport
1764// API call, and error handling.
1765//
1766// This method is useful when you want to inject custom logic or configuration
1767// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1768//
1769//
1770//    // Example sending a request using the DeleteImportRequest method.
1771//    req, resp := client.DeleteImportRequest(params)
1772//
1773//    err := req.Send()
1774//    if err == nil { // resp is now filled
1775//        fmt.Println(resp)
1776//    }
1777//
1778// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteImport
1779func (c *LexModelsV2) DeleteImportRequest(input *DeleteImportInput) (req *request.Request, output *DeleteImportOutput) {
1780	op := &request.Operation{
1781		Name:       opDeleteImport,
1782		HTTPMethod: "DELETE",
1783		HTTPPath:   "/imports/{importId}/",
1784	}
1785
1786	if input == nil {
1787		input = &DeleteImportInput{}
1788	}
1789
1790	output = &DeleteImportOutput{}
1791	req = c.newRequest(op, input, output)
1792	return
1793}
1794
1795// DeleteImport API operation for Amazon Lex Model Building V2.
1796//
1797// Removes a previous import and the associated file stored in an S3 bucket.
1798//
1799// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1800// with awserr.Error's Code and Message methods to get detailed information about
1801// the error.
1802//
1803// See the AWS API reference guide for Amazon Lex Model Building V2's
1804// API operation DeleteImport for usage and error information.
1805//
1806// Returned Error Types:
1807//   * ThrottlingException
1808//   Your request rate is too high. Reduce the frequency of requests.
1809//
1810//   * ServiceQuotaExceededException
1811//   You have reached a quota for your bot.
1812//
1813//   * ValidationException
1814//   One of the input parameters in your request isn't valid. Check the parameters
1815//   and try your request again.
1816//
1817//   * PreconditionFailedException
1818//   Your request couldn't be completed because one or more request fields aren't
1819//   valid. Check the fields in your request and try again.
1820//
1821//   * InternalServerException
1822//   The service encountered an unexpected condition. Try your request again.
1823//
1824// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteImport
1825func (c *LexModelsV2) DeleteImport(input *DeleteImportInput) (*DeleteImportOutput, error) {
1826	req, out := c.DeleteImportRequest(input)
1827	return out, req.Send()
1828}
1829
1830// DeleteImportWithContext is the same as DeleteImport with the addition of
1831// the ability to pass a context and additional request options.
1832//
1833// See DeleteImport for details on how to use this API operation.
1834//
1835// The context must be non-nil and will be used for request cancellation. If
1836// the context is nil a panic will occur. In the future the SDK may create
1837// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1838// for more information on using Contexts.
1839func (c *LexModelsV2) DeleteImportWithContext(ctx aws.Context, input *DeleteImportInput, opts ...request.Option) (*DeleteImportOutput, error) {
1840	req, out := c.DeleteImportRequest(input)
1841	req.SetContext(ctx)
1842	req.ApplyOptions(opts...)
1843	return out, req.Send()
1844}
1845
1846const opDeleteIntent = "DeleteIntent"
1847
1848// DeleteIntentRequest generates a "aws/request.Request" representing the
1849// client's request for the DeleteIntent operation. The "output" return
1850// value will be populated with the request's response once the request completes
1851// successfully.
1852//
1853// Use "Send" method on the returned Request to send the API call to the service.
1854// the "output" return value is not valid until after Send returns without error.
1855//
1856// See DeleteIntent for more information on using the DeleteIntent
1857// API call, and error handling.
1858//
1859// This method is useful when you want to inject custom logic or configuration
1860// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1861//
1862//
1863//    // Example sending a request using the DeleteIntentRequest method.
1864//    req, resp := client.DeleteIntentRequest(params)
1865//
1866//    err := req.Send()
1867//    if err == nil { // resp is now filled
1868//        fmt.Println(resp)
1869//    }
1870//
1871// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteIntent
1872func (c *LexModelsV2) DeleteIntentRequest(input *DeleteIntentInput) (req *request.Request, output *DeleteIntentOutput) {
1873	op := &request.Operation{
1874		Name:       opDeleteIntent,
1875		HTTPMethod: "DELETE",
1876		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/",
1877	}
1878
1879	if input == nil {
1880		input = &DeleteIntentInput{}
1881	}
1882
1883	output = &DeleteIntentOutput{}
1884	req = c.newRequest(op, input, output)
1885	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1886	return
1887}
1888
1889// DeleteIntent API operation for Amazon Lex Model Building V2.
1890//
1891// Removes the specified intent.
1892//
1893// Deleting an intent also deletes the slots associated with the intent.
1894//
1895// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1896// with awserr.Error's Code and Message methods to get detailed information about
1897// the error.
1898//
1899// See the AWS API reference guide for Amazon Lex Model Building V2's
1900// API operation DeleteIntent for usage and error information.
1901//
1902// Returned Error Types:
1903//   * ThrottlingException
1904//   Your request rate is too high. Reduce the frequency of requests.
1905//
1906//   * ServiceQuotaExceededException
1907//   You have reached a quota for your bot.
1908//
1909//   * ValidationException
1910//   One of the input parameters in your request isn't valid. Check the parameters
1911//   and try your request again.
1912//
1913//   * ConflictException
1914//   The action that you tried to perform couldn't be completed because the resource
1915//   is in a conflicting state. For example, deleting a bot that is in the CREATING
1916//   state. Try your request again.
1917//
1918//   * PreconditionFailedException
1919//   Your request couldn't be completed because one or more request fields aren't
1920//   valid. Check the fields in your request and try again.
1921//
1922//   * InternalServerException
1923//   The service encountered an unexpected condition. Try your request again.
1924//
1925// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteIntent
1926func (c *LexModelsV2) DeleteIntent(input *DeleteIntentInput) (*DeleteIntentOutput, error) {
1927	req, out := c.DeleteIntentRequest(input)
1928	return out, req.Send()
1929}
1930
1931// DeleteIntentWithContext is the same as DeleteIntent with the addition of
1932// the ability to pass a context and additional request options.
1933//
1934// See DeleteIntent for details on how to use this API operation.
1935//
1936// The context must be non-nil and will be used for request cancellation. If
1937// the context is nil a panic will occur. In the future the SDK may create
1938// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1939// for more information on using Contexts.
1940func (c *LexModelsV2) DeleteIntentWithContext(ctx aws.Context, input *DeleteIntentInput, opts ...request.Option) (*DeleteIntentOutput, error) {
1941	req, out := c.DeleteIntentRequest(input)
1942	req.SetContext(ctx)
1943	req.ApplyOptions(opts...)
1944	return out, req.Send()
1945}
1946
1947const opDeleteResourcePolicy = "DeleteResourcePolicy"
1948
1949// DeleteResourcePolicyRequest generates a "aws/request.Request" representing the
1950// client's request for the DeleteResourcePolicy operation. The "output" return
1951// value will be populated with the request's response once the request completes
1952// successfully.
1953//
1954// Use "Send" method on the returned Request to send the API call to the service.
1955// the "output" return value is not valid until after Send returns without error.
1956//
1957// See DeleteResourcePolicy for more information on using the DeleteResourcePolicy
1958// API call, and error handling.
1959//
1960// This method is useful when you want to inject custom logic or configuration
1961// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1962//
1963//
1964//    // Example sending a request using the DeleteResourcePolicyRequest method.
1965//    req, resp := client.DeleteResourcePolicyRequest(params)
1966//
1967//    err := req.Send()
1968//    if err == nil { // resp is now filled
1969//        fmt.Println(resp)
1970//    }
1971//
1972// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteResourcePolicy
1973func (c *LexModelsV2) DeleteResourcePolicyRequest(input *DeleteResourcePolicyInput) (req *request.Request, output *DeleteResourcePolicyOutput) {
1974	op := &request.Operation{
1975		Name:       opDeleteResourcePolicy,
1976		HTTPMethod: "DELETE",
1977		HTTPPath:   "/policy/{resourceArn}/",
1978	}
1979
1980	if input == nil {
1981		input = &DeleteResourcePolicyInput{}
1982	}
1983
1984	output = &DeleteResourcePolicyOutput{}
1985	req = c.newRequest(op, input, output)
1986	return
1987}
1988
1989// DeleteResourcePolicy API operation for Amazon Lex Model Building V2.
1990//
1991// Removes an existing policy from a bot or bot alias. If the resource doesn't
1992// have a policy attached, Amazon Lex returns an exception.
1993//
1994// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1995// with awserr.Error's Code and Message methods to get detailed information about
1996// the error.
1997//
1998// See the AWS API reference guide for Amazon Lex Model Building V2's
1999// API operation DeleteResourcePolicy for usage and error information.
2000//
2001// Returned Error Types:
2002//   * ResourceNotFoundException
2003//   You asked to describe a resource that doesn't exist. Check the resource that
2004//   you are requesting and try again.
2005//
2006//   * PreconditionFailedException
2007//   Your request couldn't be completed because one or more request fields aren't
2008//   valid. Check the fields in your request and try again.
2009//
2010//   * InternalServerException
2011//   The service encountered an unexpected condition. Try your request again.
2012//
2013//   * ThrottlingException
2014//   Your request rate is too high. Reduce the frequency of requests.
2015//
2016// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteResourcePolicy
2017func (c *LexModelsV2) DeleteResourcePolicy(input *DeleteResourcePolicyInput) (*DeleteResourcePolicyOutput, error) {
2018	req, out := c.DeleteResourcePolicyRequest(input)
2019	return out, req.Send()
2020}
2021
2022// DeleteResourcePolicyWithContext is the same as DeleteResourcePolicy with the addition of
2023// the ability to pass a context and additional request options.
2024//
2025// See DeleteResourcePolicy for details on how to use this API operation.
2026//
2027// The context must be non-nil and will be used for request cancellation. If
2028// the context is nil a panic will occur. In the future the SDK may create
2029// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2030// for more information on using Contexts.
2031func (c *LexModelsV2) DeleteResourcePolicyWithContext(ctx aws.Context, input *DeleteResourcePolicyInput, opts ...request.Option) (*DeleteResourcePolicyOutput, error) {
2032	req, out := c.DeleteResourcePolicyRequest(input)
2033	req.SetContext(ctx)
2034	req.ApplyOptions(opts...)
2035	return out, req.Send()
2036}
2037
2038const opDeleteResourcePolicyStatement = "DeleteResourcePolicyStatement"
2039
2040// DeleteResourcePolicyStatementRequest generates a "aws/request.Request" representing the
2041// client's request for the DeleteResourcePolicyStatement operation. The "output" return
2042// value will be populated with the request's response once the request completes
2043// successfully.
2044//
2045// Use "Send" method on the returned Request to send the API call to the service.
2046// the "output" return value is not valid until after Send returns without error.
2047//
2048// See DeleteResourcePolicyStatement for more information on using the DeleteResourcePolicyStatement
2049// API call, and error handling.
2050//
2051// This method is useful when you want to inject custom logic or configuration
2052// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2053//
2054//
2055//    // Example sending a request using the DeleteResourcePolicyStatementRequest method.
2056//    req, resp := client.DeleteResourcePolicyStatementRequest(params)
2057//
2058//    err := req.Send()
2059//    if err == nil { // resp is now filled
2060//        fmt.Println(resp)
2061//    }
2062//
2063// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteResourcePolicyStatement
2064func (c *LexModelsV2) DeleteResourcePolicyStatementRequest(input *DeleteResourcePolicyStatementInput) (req *request.Request, output *DeleteResourcePolicyStatementOutput) {
2065	op := &request.Operation{
2066		Name:       opDeleteResourcePolicyStatement,
2067		HTTPMethod: "DELETE",
2068		HTTPPath:   "/policy/{resourceArn}/statements/{statementId}/",
2069	}
2070
2071	if input == nil {
2072		input = &DeleteResourcePolicyStatementInput{}
2073	}
2074
2075	output = &DeleteResourcePolicyStatementOutput{}
2076	req = c.newRequest(op, input, output)
2077	return
2078}
2079
2080// DeleteResourcePolicyStatement API operation for Amazon Lex Model Building V2.
2081//
2082// Deletes a policy statement from a resource policy. If you delete the last
2083// statement from a policy, the policy is deleted. If you specify a statement
2084// ID that doesn't exist in the policy, or if the bot or bot alias doesn't have
2085// a policy attached, Amazon Lex returns an exception.
2086//
2087// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2088// with awserr.Error's Code and Message methods to get detailed information about
2089// the error.
2090//
2091// See the AWS API reference guide for Amazon Lex Model Building V2's
2092// API operation DeleteResourcePolicyStatement for usage and error information.
2093//
2094// Returned Error Types:
2095//   * ResourceNotFoundException
2096//   You asked to describe a resource that doesn't exist. Check the resource that
2097//   you are requesting and try again.
2098//
2099//   * PreconditionFailedException
2100//   Your request couldn't be completed because one or more request fields aren't
2101//   valid. Check the fields in your request and try again.
2102//
2103//   * InternalServerException
2104//   The service encountered an unexpected condition. Try your request again.
2105//
2106//   * ThrottlingException
2107//   Your request rate is too high. Reduce the frequency of requests.
2108//
2109// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteResourcePolicyStatement
2110func (c *LexModelsV2) DeleteResourcePolicyStatement(input *DeleteResourcePolicyStatementInput) (*DeleteResourcePolicyStatementOutput, error) {
2111	req, out := c.DeleteResourcePolicyStatementRequest(input)
2112	return out, req.Send()
2113}
2114
2115// DeleteResourcePolicyStatementWithContext is the same as DeleteResourcePolicyStatement with the addition of
2116// the ability to pass a context and additional request options.
2117//
2118// See DeleteResourcePolicyStatement for details on how to use this API operation.
2119//
2120// The context must be non-nil and will be used for request cancellation. If
2121// the context is nil a panic will occur. In the future the SDK may create
2122// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2123// for more information on using Contexts.
2124func (c *LexModelsV2) DeleteResourcePolicyStatementWithContext(ctx aws.Context, input *DeleteResourcePolicyStatementInput, opts ...request.Option) (*DeleteResourcePolicyStatementOutput, error) {
2125	req, out := c.DeleteResourcePolicyStatementRequest(input)
2126	req.SetContext(ctx)
2127	req.ApplyOptions(opts...)
2128	return out, req.Send()
2129}
2130
2131const opDeleteSlot = "DeleteSlot"
2132
2133// DeleteSlotRequest generates a "aws/request.Request" representing the
2134// client's request for the DeleteSlot operation. The "output" return
2135// value will be populated with the request's response once the request completes
2136// successfully.
2137//
2138// Use "Send" method on the returned Request to send the API call to the service.
2139// the "output" return value is not valid until after Send returns without error.
2140//
2141// See DeleteSlot for more information on using the DeleteSlot
2142// API call, and error handling.
2143//
2144// This method is useful when you want to inject custom logic or configuration
2145// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2146//
2147//
2148//    // Example sending a request using the DeleteSlotRequest method.
2149//    req, resp := client.DeleteSlotRequest(params)
2150//
2151//    err := req.Send()
2152//    if err == nil { // resp is now filled
2153//        fmt.Println(resp)
2154//    }
2155//
2156// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteSlot
2157func (c *LexModelsV2) DeleteSlotRequest(input *DeleteSlotInput) (req *request.Request, output *DeleteSlotOutput) {
2158	op := &request.Operation{
2159		Name:       opDeleteSlot,
2160		HTTPMethod: "DELETE",
2161		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/slots/{slotId}/",
2162	}
2163
2164	if input == nil {
2165		input = &DeleteSlotInput{}
2166	}
2167
2168	output = &DeleteSlotOutput{}
2169	req = c.newRequest(op, input, output)
2170	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2171	return
2172}
2173
2174// DeleteSlot API operation for Amazon Lex Model Building V2.
2175//
2176// Deletes the specified slot from an intent.
2177//
2178// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2179// with awserr.Error's Code and Message methods to get detailed information about
2180// the error.
2181//
2182// See the AWS API reference guide for Amazon Lex Model Building V2's
2183// API operation DeleteSlot for usage and error information.
2184//
2185// Returned Error Types:
2186//   * ThrottlingException
2187//   Your request rate is too high. Reduce the frequency of requests.
2188//
2189//   * ServiceQuotaExceededException
2190//   You have reached a quota for your bot.
2191//
2192//   * ValidationException
2193//   One of the input parameters in your request isn't valid. Check the parameters
2194//   and try your request again.
2195//
2196//   * ConflictException
2197//   The action that you tried to perform couldn't be completed because the resource
2198//   is in a conflicting state. For example, deleting a bot that is in the CREATING
2199//   state. Try your request again.
2200//
2201//   * PreconditionFailedException
2202//   Your request couldn't be completed because one or more request fields aren't
2203//   valid. Check the fields in your request and try again.
2204//
2205//   * InternalServerException
2206//   The service encountered an unexpected condition. Try your request again.
2207//
2208// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteSlot
2209func (c *LexModelsV2) DeleteSlot(input *DeleteSlotInput) (*DeleteSlotOutput, error) {
2210	req, out := c.DeleteSlotRequest(input)
2211	return out, req.Send()
2212}
2213
2214// DeleteSlotWithContext is the same as DeleteSlot with the addition of
2215// the ability to pass a context and additional request options.
2216//
2217// See DeleteSlot for details on how to use this API operation.
2218//
2219// The context must be non-nil and will be used for request cancellation. If
2220// the context is nil a panic will occur. In the future the SDK may create
2221// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2222// for more information on using Contexts.
2223func (c *LexModelsV2) DeleteSlotWithContext(ctx aws.Context, input *DeleteSlotInput, opts ...request.Option) (*DeleteSlotOutput, error) {
2224	req, out := c.DeleteSlotRequest(input)
2225	req.SetContext(ctx)
2226	req.ApplyOptions(opts...)
2227	return out, req.Send()
2228}
2229
2230const opDeleteSlotType = "DeleteSlotType"
2231
2232// DeleteSlotTypeRequest generates a "aws/request.Request" representing the
2233// client's request for the DeleteSlotType operation. The "output" return
2234// value will be populated with the request's response once the request completes
2235// successfully.
2236//
2237// Use "Send" method on the returned Request to send the API call to the service.
2238// the "output" return value is not valid until after Send returns without error.
2239//
2240// See DeleteSlotType for more information on using the DeleteSlotType
2241// API call, and error handling.
2242//
2243// This method is useful when you want to inject custom logic or configuration
2244// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2245//
2246//
2247//    // Example sending a request using the DeleteSlotTypeRequest method.
2248//    req, resp := client.DeleteSlotTypeRequest(params)
2249//
2250//    err := req.Send()
2251//    if err == nil { // resp is now filled
2252//        fmt.Println(resp)
2253//    }
2254//
2255// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteSlotType
2256func (c *LexModelsV2) DeleteSlotTypeRequest(input *DeleteSlotTypeInput) (req *request.Request, output *DeleteSlotTypeOutput) {
2257	op := &request.Operation{
2258		Name:       opDeleteSlotType,
2259		HTTPMethod: "DELETE",
2260		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/slottypes/{slotTypeId}/",
2261	}
2262
2263	if input == nil {
2264		input = &DeleteSlotTypeInput{}
2265	}
2266
2267	output = &DeleteSlotTypeOutput{}
2268	req = c.newRequest(op, input, output)
2269	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2270	return
2271}
2272
2273// DeleteSlotType API operation for Amazon Lex Model Building V2.
2274//
2275// Deletes a slot type from a bot locale.
2276//
2277// If a slot is using the slot type, Amazon Lex throws a ResourceInUseException
2278// exception. To avoid the exception, set the skipResourceInUseCheck parameter
2279// to true.
2280//
2281// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2282// with awserr.Error's Code and Message methods to get detailed information about
2283// the error.
2284//
2285// See the AWS API reference guide for Amazon Lex Model Building V2's
2286// API operation DeleteSlotType for usage and error information.
2287//
2288// Returned Error Types:
2289//   * ThrottlingException
2290//   Your request rate is too high. Reduce the frequency of requests.
2291//
2292//   * ServiceQuotaExceededException
2293//   You have reached a quota for your bot.
2294//
2295//   * ValidationException
2296//   One of the input parameters in your request isn't valid. Check the parameters
2297//   and try your request again.
2298//
2299//   * ConflictException
2300//   The action that you tried to perform couldn't be completed because the resource
2301//   is in a conflicting state. For example, deleting a bot that is in the CREATING
2302//   state. Try your request again.
2303//
2304//   * PreconditionFailedException
2305//   Your request couldn't be completed because one or more request fields aren't
2306//   valid. Check the fields in your request and try again.
2307//
2308//   * InternalServerException
2309//   The service encountered an unexpected condition. Try your request again.
2310//
2311// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteSlotType
2312func (c *LexModelsV2) DeleteSlotType(input *DeleteSlotTypeInput) (*DeleteSlotTypeOutput, error) {
2313	req, out := c.DeleteSlotTypeRequest(input)
2314	return out, req.Send()
2315}
2316
2317// DeleteSlotTypeWithContext is the same as DeleteSlotType with the addition of
2318// the ability to pass a context and additional request options.
2319//
2320// See DeleteSlotType for details on how to use this API operation.
2321//
2322// The context must be non-nil and will be used for request cancellation. If
2323// the context is nil a panic will occur. In the future the SDK may create
2324// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2325// for more information on using Contexts.
2326func (c *LexModelsV2) DeleteSlotTypeWithContext(ctx aws.Context, input *DeleteSlotTypeInput, opts ...request.Option) (*DeleteSlotTypeOutput, error) {
2327	req, out := c.DeleteSlotTypeRequest(input)
2328	req.SetContext(ctx)
2329	req.ApplyOptions(opts...)
2330	return out, req.Send()
2331}
2332
2333const opDeleteUtterances = "DeleteUtterances"
2334
2335// DeleteUtterancesRequest generates a "aws/request.Request" representing the
2336// client's request for the DeleteUtterances operation. The "output" return
2337// value will be populated with the request's response once the request completes
2338// successfully.
2339//
2340// Use "Send" method on the returned Request to send the API call to the service.
2341// the "output" return value is not valid until after Send returns without error.
2342//
2343// See DeleteUtterances for more information on using the DeleteUtterances
2344// API call, and error handling.
2345//
2346// This method is useful when you want to inject custom logic or configuration
2347// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2348//
2349//
2350//    // Example sending a request using the DeleteUtterancesRequest method.
2351//    req, resp := client.DeleteUtterancesRequest(params)
2352//
2353//    err := req.Send()
2354//    if err == nil { // resp is now filled
2355//        fmt.Println(resp)
2356//    }
2357//
2358// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteUtterances
2359func (c *LexModelsV2) DeleteUtterancesRequest(input *DeleteUtterancesInput) (req *request.Request, output *DeleteUtterancesOutput) {
2360	op := &request.Operation{
2361		Name:       opDeleteUtterances,
2362		HTTPMethod: "DELETE",
2363		HTTPPath:   "/bots/{botId}/utterances/",
2364	}
2365
2366	if input == nil {
2367		input = &DeleteUtterancesInput{}
2368	}
2369
2370	output = &DeleteUtterancesOutput{}
2371	req = c.newRequest(op, input, output)
2372	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2373	return
2374}
2375
2376// DeleteUtterances API operation for Amazon Lex Model Building V2.
2377//
2378// Deletes stored utterances.
2379//
2380// Amazon Lex stores the utterances that users send to your bot. Utterances
2381// are stored for 15 days for use with the operation, and then stored indefinitely
2382// for use in improving the ability of your bot to respond to user input..
2383//
2384// Use the DeleteUtterances operation to manually delete utterances for a specific
2385// session. When you use the DeleteUtterances operation, utterances stored for
2386// improving your bot's ability to respond to user input are deleted immediately.
2387// Utterances stored for use with the ListAggregatedUtterances operation are
2388// deleted after 15 days.
2389//
2390// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2391// with awserr.Error's Code and Message methods to get detailed information about
2392// the error.
2393//
2394// See the AWS API reference guide for Amazon Lex Model Building V2's
2395// API operation DeleteUtterances for usage and error information.
2396//
2397// Returned Error Types:
2398//   * ValidationException
2399//   One of the input parameters in your request isn't valid. Check the parameters
2400//   and try your request again.
2401//
2402//   * ThrottlingException
2403//   Your request rate is too high. Reduce the frequency of requests.
2404//
2405//   * InternalServerException
2406//   The service encountered an unexpected condition. Try your request again.
2407//
2408// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DeleteUtterances
2409func (c *LexModelsV2) DeleteUtterances(input *DeleteUtterancesInput) (*DeleteUtterancesOutput, error) {
2410	req, out := c.DeleteUtterancesRequest(input)
2411	return out, req.Send()
2412}
2413
2414// DeleteUtterancesWithContext is the same as DeleteUtterances with the addition of
2415// the ability to pass a context and additional request options.
2416//
2417// See DeleteUtterances for details on how to use this API operation.
2418//
2419// The context must be non-nil and will be used for request cancellation. If
2420// the context is nil a panic will occur. In the future the SDK may create
2421// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2422// for more information on using Contexts.
2423func (c *LexModelsV2) DeleteUtterancesWithContext(ctx aws.Context, input *DeleteUtterancesInput, opts ...request.Option) (*DeleteUtterancesOutput, error) {
2424	req, out := c.DeleteUtterancesRequest(input)
2425	req.SetContext(ctx)
2426	req.ApplyOptions(opts...)
2427	return out, req.Send()
2428}
2429
2430const opDescribeBot = "DescribeBot"
2431
2432// DescribeBotRequest generates a "aws/request.Request" representing the
2433// client's request for the DescribeBot operation. The "output" return
2434// value will be populated with the request's response once the request completes
2435// successfully.
2436//
2437// Use "Send" method on the returned Request to send the API call to the service.
2438// the "output" return value is not valid until after Send returns without error.
2439//
2440// See DescribeBot for more information on using the DescribeBot
2441// API call, and error handling.
2442//
2443// This method is useful when you want to inject custom logic or configuration
2444// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2445//
2446//
2447//    // Example sending a request using the DescribeBotRequest method.
2448//    req, resp := client.DescribeBotRequest(params)
2449//
2450//    err := req.Send()
2451//    if err == nil { // resp is now filled
2452//        fmt.Println(resp)
2453//    }
2454//
2455// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeBot
2456func (c *LexModelsV2) DescribeBotRequest(input *DescribeBotInput) (req *request.Request, output *DescribeBotOutput) {
2457	op := &request.Operation{
2458		Name:       opDescribeBot,
2459		HTTPMethod: "GET",
2460		HTTPPath:   "/bots/{botId}/",
2461	}
2462
2463	if input == nil {
2464		input = &DescribeBotInput{}
2465	}
2466
2467	output = &DescribeBotOutput{}
2468	req = c.newRequest(op, input, output)
2469	return
2470}
2471
2472// DescribeBot API operation for Amazon Lex Model Building V2.
2473//
2474// Provides metadata information about a bot.
2475//
2476// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2477// with awserr.Error's Code and Message methods to get detailed information about
2478// the error.
2479//
2480// See the AWS API reference guide for Amazon Lex Model Building V2's
2481// API operation DescribeBot for usage and error information.
2482//
2483// Returned Error Types:
2484//   * ThrottlingException
2485//   Your request rate is too high. Reduce the frequency of requests.
2486//
2487//   * ServiceQuotaExceededException
2488//   You have reached a quota for your bot.
2489//
2490//   * ValidationException
2491//   One of the input parameters in your request isn't valid. Check the parameters
2492//   and try your request again.
2493//
2494//   * ResourceNotFoundException
2495//   You asked to describe a resource that doesn't exist. Check the resource that
2496//   you are requesting and try again.
2497//
2498//   * InternalServerException
2499//   The service encountered an unexpected condition. Try your request again.
2500//
2501// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeBot
2502func (c *LexModelsV2) DescribeBot(input *DescribeBotInput) (*DescribeBotOutput, error) {
2503	req, out := c.DescribeBotRequest(input)
2504	return out, req.Send()
2505}
2506
2507// DescribeBotWithContext is the same as DescribeBot with the addition of
2508// the ability to pass a context and additional request options.
2509//
2510// See DescribeBot for details on how to use this API operation.
2511//
2512// The context must be non-nil and will be used for request cancellation. If
2513// the context is nil a panic will occur. In the future the SDK may create
2514// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2515// for more information on using Contexts.
2516func (c *LexModelsV2) DescribeBotWithContext(ctx aws.Context, input *DescribeBotInput, opts ...request.Option) (*DescribeBotOutput, error) {
2517	req, out := c.DescribeBotRequest(input)
2518	req.SetContext(ctx)
2519	req.ApplyOptions(opts...)
2520	return out, req.Send()
2521}
2522
2523const opDescribeBotAlias = "DescribeBotAlias"
2524
2525// DescribeBotAliasRequest generates a "aws/request.Request" representing the
2526// client's request for the DescribeBotAlias operation. The "output" return
2527// value will be populated with the request's response once the request completes
2528// successfully.
2529//
2530// Use "Send" method on the returned Request to send the API call to the service.
2531// the "output" return value is not valid until after Send returns without error.
2532//
2533// See DescribeBotAlias for more information on using the DescribeBotAlias
2534// API call, and error handling.
2535//
2536// This method is useful when you want to inject custom logic or configuration
2537// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2538//
2539//
2540//    // Example sending a request using the DescribeBotAliasRequest method.
2541//    req, resp := client.DescribeBotAliasRequest(params)
2542//
2543//    err := req.Send()
2544//    if err == nil { // resp is now filled
2545//        fmt.Println(resp)
2546//    }
2547//
2548// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeBotAlias
2549func (c *LexModelsV2) DescribeBotAliasRequest(input *DescribeBotAliasInput) (req *request.Request, output *DescribeBotAliasOutput) {
2550	op := &request.Operation{
2551		Name:       opDescribeBotAlias,
2552		HTTPMethod: "GET",
2553		HTTPPath:   "/bots/{botId}/botaliases/{botAliasId}/",
2554	}
2555
2556	if input == nil {
2557		input = &DescribeBotAliasInput{}
2558	}
2559
2560	output = &DescribeBotAliasOutput{}
2561	req = c.newRequest(op, input, output)
2562	return
2563}
2564
2565// DescribeBotAlias API operation for Amazon Lex Model Building V2.
2566//
2567// Get information about a specific bot alias.
2568//
2569// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2570// with awserr.Error's Code and Message methods to get detailed information about
2571// the error.
2572//
2573// See the AWS API reference guide for Amazon Lex Model Building V2's
2574// API operation DescribeBotAlias for usage and error information.
2575//
2576// Returned Error Types:
2577//   * ThrottlingException
2578//   Your request rate is too high. Reduce the frequency of requests.
2579//
2580//   * ServiceQuotaExceededException
2581//   You have reached a quota for your bot.
2582//
2583//   * ValidationException
2584//   One of the input parameters in your request isn't valid. Check the parameters
2585//   and try your request again.
2586//
2587//   * ResourceNotFoundException
2588//   You asked to describe a resource that doesn't exist. Check the resource that
2589//   you are requesting and try again.
2590//
2591//   * InternalServerException
2592//   The service encountered an unexpected condition. Try your request again.
2593//
2594// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeBotAlias
2595func (c *LexModelsV2) DescribeBotAlias(input *DescribeBotAliasInput) (*DescribeBotAliasOutput, error) {
2596	req, out := c.DescribeBotAliasRequest(input)
2597	return out, req.Send()
2598}
2599
2600// DescribeBotAliasWithContext is the same as DescribeBotAlias with the addition of
2601// the ability to pass a context and additional request options.
2602//
2603// See DescribeBotAlias for details on how to use this API operation.
2604//
2605// The context must be non-nil and will be used for request cancellation. If
2606// the context is nil a panic will occur. In the future the SDK may create
2607// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2608// for more information on using Contexts.
2609func (c *LexModelsV2) DescribeBotAliasWithContext(ctx aws.Context, input *DescribeBotAliasInput, opts ...request.Option) (*DescribeBotAliasOutput, error) {
2610	req, out := c.DescribeBotAliasRequest(input)
2611	req.SetContext(ctx)
2612	req.ApplyOptions(opts...)
2613	return out, req.Send()
2614}
2615
2616const opDescribeBotLocale = "DescribeBotLocale"
2617
2618// DescribeBotLocaleRequest generates a "aws/request.Request" representing the
2619// client's request for the DescribeBotLocale operation. The "output" return
2620// value will be populated with the request's response once the request completes
2621// successfully.
2622//
2623// Use "Send" method on the returned Request to send the API call to the service.
2624// the "output" return value is not valid until after Send returns without error.
2625//
2626// See DescribeBotLocale for more information on using the DescribeBotLocale
2627// API call, and error handling.
2628//
2629// This method is useful when you want to inject custom logic or configuration
2630// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2631//
2632//
2633//    // Example sending a request using the DescribeBotLocaleRequest method.
2634//    req, resp := client.DescribeBotLocaleRequest(params)
2635//
2636//    err := req.Send()
2637//    if err == nil { // resp is now filled
2638//        fmt.Println(resp)
2639//    }
2640//
2641// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeBotLocale
2642func (c *LexModelsV2) DescribeBotLocaleRequest(input *DescribeBotLocaleInput) (req *request.Request, output *DescribeBotLocaleOutput) {
2643	op := &request.Operation{
2644		Name:       opDescribeBotLocale,
2645		HTTPMethod: "GET",
2646		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/",
2647	}
2648
2649	if input == nil {
2650		input = &DescribeBotLocaleInput{}
2651	}
2652
2653	output = &DescribeBotLocaleOutput{}
2654	req = c.newRequest(op, input, output)
2655	return
2656}
2657
2658// DescribeBotLocale API operation for Amazon Lex Model Building V2.
2659//
2660// Describes the settings that a bot has for a specific locale.
2661//
2662// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2663// with awserr.Error's Code and Message methods to get detailed information about
2664// the error.
2665//
2666// See the AWS API reference guide for Amazon Lex Model Building V2's
2667// API operation DescribeBotLocale for usage and error information.
2668//
2669// Returned Error Types:
2670//   * ThrottlingException
2671//   Your request rate is too high. Reduce the frequency of requests.
2672//
2673//   * ServiceQuotaExceededException
2674//   You have reached a quota for your bot.
2675//
2676//   * ValidationException
2677//   One of the input parameters in your request isn't valid. Check the parameters
2678//   and try your request again.
2679//
2680//   * ResourceNotFoundException
2681//   You asked to describe a resource that doesn't exist. Check the resource that
2682//   you are requesting and try again.
2683//
2684//   * InternalServerException
2685//   The service encountered an unexpected condition. Try your request again.
2686//
2687// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeBotLocale
2688func (c *LexModelsV2) DescribeBotLocale(input *DescribeBotLocaleInput) (*DescribeBotLocaleOutput, error) {
2689	req, out := c.DescribeBotLocaleRequest(input)
2690	return out, req.Send()
2691}
2692
2693// DescribeBotLocaleWithContext is the same as DescribeBotLocale with the addition of
2694// the ability to pass a context and additional request options.
2695//
2696// See DescribeBotLocale for details on how to use this API operation.
2697//
2698// The context must be non-nil and will be used for request cancellation. If
2699// the context is nil a panic will occur. In the future the SDK may create
2700// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2701// for more information on using Contexts.
2702func (c *LexModelsV2) DescribeBotLocaleWithContext(ctx aws.Context, input *DescribeBotLocaleInput, opts ...request.Option) (*DescribeBotLocaleOutput, error) {
2703	req, out := c.DescribeBotLocaleRequest(input)
2704	req.SetContext(ctx)
2705	req.ApplyOptions(opts...)
2706	return out, req.Send()
2707}
2708
2709const opDescribeBotVersion = "DescribeBotVersion"
2710
2711// DescribeBotVersionRequest generates a "aws/request.Request" representing the
2712// client's request for the DescribeBotVersion operation. The "output" return
2713// value will be populated with the request's response once the request completes
2714// successfully.
2715//
2716// Use "Send" method on the returned Request to send the API call to the service.
2717// the "output" return value is not valid until after Send returns without error.
2718//
2719// See DescribeBotVersion for more information on using the DescribeBotVersion
2720// API call, and error handling.
2721//
2722// This method is useful when you want to inject custom logic or configuration
2723// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2724//
2725//
2726//    // Example sending a request using the DescribeBotVersionRequest method.
2727//    req, resp := client.DescribeBotVersionRequest(params)
2728//
2729//    err := req.Send()
2730//    if err == nil { // resp is now filled
2731//        fmt.Println(resp)
2732//    }
2733//
2734// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeBotVersion
2735func (c *LexModelsV2) DescribeBotVersionRequest(input *DescribeBotVersionInput) (req *request.Request, output *DescribeBotVersionOutput) {
2736	op := &request.Operation{
2737		Name:       opDescribeBotVersion,
2738		HTTPMethod: "GET",
2739		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/",
2740	}
2741
2742	if input == nil {
2743		input = &DescribeBotVersionInput{}
2744	}
2745
2746	output = &DescribeBotVersionOutput{}
2747	req = c.newRequest(op, input, output)
2748	return
2749}
2750
2751// DescribeBotVersion API operation for Amazon Lex Model Building V2.
2752//
2753// Provides metadata about a version of a bot.
2754//
2755// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2756// with awserr.Error's Code and Message methods to get detailed information about
2757// the error.
2758//
2759// See the AWS API reference guide for Amazon Lex Model Building V2's
2760// API operation DescribeBotVersion for usage and error information.
2761//
2762// Returned Error Types:
2763//   * ThrottlingException
2764//   Your request rate is too high. Reduce the frequency of requests.
2765//
2766//   * ServiceQuotaExceededException
2767//   You have reached a quota for your bot.
2768//
2769//   * ValidationException
2770//   One of the input parameters in your request isn't valid. Check the parameters
2771//   and try your request again.
2772//
2773//   * ResourceNotFoundException
2774//   You asked to describe a resource that doesn't exist. Check the resource that
2775//   you are requesting and try again.
2776//
2777//   * InternalServerException
2778//   The service encountered an unexpected condition. Try your request again.
2779//
2780// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeBotVersion
2781func (c *LexModelsV2) DescribeBotVersion(input *DescribeBotVersionInput) (*DescribeBotVersionOutput, error) {
2782	req, out := c.DescribeBotVersionRequest(input)
2783	return out, req.Send()
2784}
2785
2786// DescribeBotVersionWithContext is the same as DescribeBotVersion with the addition of
2787// the ability to pass a context and additional request options.
2788//
2789// See DescribeBotVersion for details on how to use this API operation.
2790//
2791// The context must be non-nil and will be used for request cancellation. If
2792// the context is nil a panic will occur. In the future the SDK may create
2793// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2794// for more information on using Contexts.
2795func (c *LexModelsV2) DescribeBotVersionWithContext(ctx aws.Context, input *DescribeBotVersionInput, opts ...request.Option) (*DescribeBotVersionOutput, error) {
2796	req, out := c.DescribeBotVersionRequest(input)
2797	req.SetContext(ctx)
2798	req.ApplyOptions(opts...)
2799	return out, req.Send()
2800}
2801
2802const opDescribeExport = "DescribeExport"
2803
2804// DescribeExportRequest generates a "aws/request.Request" representing the
2805// client's request for the DescribeExport operation. The "output" return
2806// value will be populated with the request's response once the request completes
2807// successfully.
2808//
2809// Use "Send" method on the returned Request to send the API call to the service.
2810// the "output" return value is not valid until after Send returns without error.
2811//
2812// See DescribeExport for more information on using the DescribeExport
2813// API call, and error handling.
2814//
2815// This method is useful when you want to inject custom logic or configuration
2816// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2817//
2818//
2819//    // Example sending a request using the DescribeExportRequest method.
2820//    req, resp := client.DescribeExportRequest(params)
2821//
2822//    err := req.Send()
2823//    if err == nil { // resp is now filled
2824//        fmt.Println(resp)
2825//    }
2826//
2827// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeExport
2828func (c *LexModelsV2) DescribeExportRequest(input *DescribeExportInput) (req *request.Request, output *DescribeExportOutput) {
2829	op := &request.Operation{
2830		Name:       opDescribeExport,
2831		HTTPMethod: "GET",
2832		HTTPPath:   "/exports/{exportId}/",
2833	}
2834
2835	if input == nil {
2836		input = &DescribeExportInput{}
2837	}
2838
2839	output = &DescribeExportOutput{}
2840	req = c.newRequest(op, input, output)
2841	return
2842}
2843
2844// DescribeExport API operation for Amazon Lex Model Building V2.
2845//
2846// Gets information about a specific export.
2847//
2848// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2849// with awserr.Error's Code and Message methods to get detailed information about
2850// the error.
2851//
2852// See the AWS API reference guide for Amazon Lex Model Building V2's
2853// API operation DescribeExport for usage and error information.
2854//
2855// Returned Error Types:
2856//   * ThrottlingException
2857//   Your request rate is too high. Reduce the frequency of requests.
2858//
2859//   * ValidationException
2860//   One of the input parameters in your request isn't valid. Check the parameters
2861//   and try your request again.
2862//
2863//   * ResourceNotFoundException
2864//   You asked to describe a resource that doesn't exist. Check the resource that
2865//   you are requesting and try again.
2866//
2867//   * InternalServerException
2868//   The service encountered an unexpected condition. Try your request again.
2869//
2870// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeExport
2871func (c *LexModelsV2) DescribeExport(input *DescribeExportInput) (*DescribeExportOutput, error) {
2872	req, out := c.DescribeExportRequest(input)
2873	return out, req.Send()
2874}
2875
2876// DescribeExportWithContext is the same as DescribeExport with the addition of
2877// the ability to pass a context and additional request options.
2878//
2879// See DescribeExport for details on how to use this API operation.
2880//
2881// The context must be non-nil and will be used for request cancellation. If
2882// the context is nil a panic will occur. In the future the SDK may create
2883// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2884// for more information on using Contexts.
2885func (c *LexModelsV2) DescribeExportWithContext(ctx aws.Context, input *DescribeExportInput, opts ...request.Option) (*DescribeExportOutput, error) {
2886	req, out := c.DescribeExportRequest(input)
2887	req.SetContext(ctx)
2888	req.ApplyOptions(opts...)
2889	return out, req.Send()
2890}
2891
2892const opDescribeImport = "DescribeImport"
2893
2894// DescribeImportRequest generates a "aws/request.Request" representing the
2895// client's request for the DescribeImport operation. The "output" return
2896// value will be populated with the request's response once the request completes
2897// successfully.
2898//
2899// Use "Send" method on the returned Request to send the API call to the service.
2900// the "output" return value is not valid until after Send returns without error.
2901//
2902// See DescribeImport for more information on using the DescribeImport
2903// API call, and error handling.
2904//
2905// This method is useful when you want to inject custom logic or configuration
2906// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2907//
2908//
2909//    // Example sending a request using the DescribeImportRequest method.
2910//    req, resp := client.DescribeImportRequest(params)
2911//
2912//    err := req.Send()
2913//    if err == nil { // resp is now filled
2914//        fmt.Println(resp)
2915//    }
2916//
2917// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeImport
2918func (c *LexModelsV2) DescribeImportRequest(input *DescribeImportInput) (req *request.Request, output *DescribeImportOutput) {
2919	op := &request.Operation{
2920		Name:       opDescribeImport,
2921		HTTPMethod: "GET",
2922		HTTPPath:   "/imports/{importId}/",
2923	}
2924
2925	if input == nil {
2926		input = &DescribeImportInput{}
2927	}
2928
2929	output = &DescribeImportOutput{}
2930	req = c.newRequest(op, input, output)
2931	return
2932}
2933
2934// DescribeImport API operation for Amazon Lex Model Building V2.
2935//
2936// Gets information about a specific import.
2937//
2938// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2939// with awserr.Error's Code and Message methods to get detailed information about
2940// the error.
2941//
2942// See the AWS API reference guide for Amazon Lex Model Building V2's
2943// API operation DescribeImport for usage and error information.
2944//
2945// Returned Error Types:
2946//   * ThrottlingException
2947//   Your request rate is too high. Reduce the frequency of requests.
2948//
2949//   * ValidationException
2950//   One of the input parameters in your request isn't valid. Check the parameters
2951//   and try your request again.
2952//
2953//   * ResourceNotFoundException
2954//   You asked to describe a resource that doesn't exist. Check the resource that
2955//   you are requesting and try again.
2956//
2957//   * InternalServerException
2958//   The service encountered an unexpected condition. Try your request again.
2959//
2960// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeImport
2961func (c *LexModelsV2) DescribeImport(input *DescribeImportInput) (*DescribeImportOutput, error) {
2962	req, out := c.DescribeImportRequest(input)
2963	return out, req.Send()
2964}
2965
2966// DescribeImportWithContext is the same as DescribeImport with the addition of
2967// the ability to pass a context and additional request options.
2968//
2969// See DescribeImport for details on how to use this API operation.
2970//
2971// The context must be non-nil and will be used for request cancellation. If
2972// the context is nil a panic will occur. In the future the SDK may create
2973// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2974// for more information on using Contexts.
2975func (c *LexModelsV2) DescribeImportWithContext(ctx aws.Context, input *DescribeImportInput, opts ...request.Option) (*DescribeImportOutput, error) {
2976	req, out := c.DescribeImportRequest(input)
2977	req.SetContext(ctx)
2978	req.ApplyOptions(opts...)
2979	return out, req.Send()
2980}
2981
2982const opDescribeIntent = "DescribeIntent"
2983
2984// DescribeIntentRequest generates a "aws/request.Request" representing the
2985// client's request for the DescribeIntent operation. The "output" return
2986// value will be populated with the request's response once the request completes
2987// successfully.
2988//
2989// Use "Send" method on the returned Request to send the API call to the service.
2990// the "output" return value is not valid until after Send returns without error.
2991//
2992// See DescribeIntent for more information on using the DescribeIntent
2993// API call, and error handling.
2994//
2995// This method is useful when you want to inject custom logic or configuration
2996// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2997//
2998//
2999//    // Example sending a request using the DescribeIntentRequest method.
3000//    req, resp := client.DescribeIntentRequest(params)
3001//
3002//    err := req.Send()
3003//    if err == nil { // resp is now filled
3004//        fmt.Println(resp)
3005//    }
3006//
3007// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeIntent
3008func (c *LexModelsV2) DescribeIntentRequest(input *DescribeIntentInput) (req *request.Request, output *DescribeIntentOutput) {
3009	op := &request.Operation{
3010		Name:       opDescribeIntent,
3011		HTTPMethod: "GET",
3012		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/",
3013	}
3014
3015	if input == nil {
3016		input = &DescribeIntentInput{}
3017	}
3018
3019	output = &DescribeIntentOutput{}
3020	req = c.newRequest(op, input, output)
3021	return
3022}
3023
3024// DescribeIntent API operation for Amazon Lex Model Building V2.
3025//
3026// Returns metadata about an intent.
3027//
3028// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3029// with awserr.Error's Code and Message methods to get detailed information about
3030// the error.
3031//
3032// See the AWS API reference guide for Amazon Lex Model Building V2's
3033// API operation DescribeIntent for usage and error information.
3034//
3035// Returned Error Types:
3036//   * ThrottlingException
3037//   Your request rate is too high. Reduce the frequency of requests.
3038//
3039//   * ServiceQuotaExceededException
3040//   You have reached a quota for your bot.
3041//
3042//   * ValidationException
3043//   One of the input parameters in your request isn't valid. Check the parameters
3044//   and try your request again.
3045//
3046//   * ResourceNotFoundException
3047//   You asked to describe a resource that doesn't exist. Check the resource that
3048//   you are requesting and try again.
3049//
3050//   * InternalServerException
3051//   The service encountered an unexpected condition. Try your request again.
3052//
3053// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeIntent
3054func (c *LexModelsV2) DescribeIntent(input *DescribeIntentInput) (*DescribeIntentOutput, error) {
3055	req, out := c.DescribeIntentRequest(input)
3056	return out, req.Send()
3057}
3058
3059// DescribeIntentWithContext is the same as DescribeIntent with the addition of
3060// the ability to pass a context and additional request options.
3061//
3062// See DescribeIntent for details on how to use this API operation.
3063//
3064// The context must be non-nil and will be used for request cancellation. If
3065// the context is nil a panic will occur. In the future the SDK may create
3066// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3067// for more information on using Contexts.
3068func (c *LexModelsV2) DescribeIntentWithContext(ctx aws.Context, input *DescribeIntentInput, opts ...request.Option) (*DescribeIntentOutput, error) {
3069	req, out := c.DescribeIntentRequest(input)
3070	req.SetContext(ctx)
3071	req.ApplyOptions(opts...)
3072	return out, req.Send()
3073}
3074
3075const opDescribeResourcePolicy = "DescribeResourcePolicy"
3076
3077// DescribeResourcePolicyRequest generates a "aws/request.Request" representing the
3078// client's request for the DescribeResourcePolicy operation. The "output" return
3079// value will be populated with the request's response once the request completes
3080// successfully.
3081//
3082// Use "Send" method on the returned Request to send the API call to the service.
3083// the "output" return value is not valid until after Send returns without error.
3084//
3085// See DescribeResourcePolicy for more information on using the DescribeResourcePolicy
3086// API call, and error handling.
3087//
3088// This method is useful when you want to inject custom logic or configuration
3089// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3090//
3091//
3092//    // Example sending a request using the DescribeResourcePolicyRequest method.
3093//    req, resp := client.DescribeResourcePolicyRequest(params)
3094//
3095//    err := req.Send()
3096//    if err == nil { // resp is now filled
3097//        fmt.Println(resp)
3098//    }
3099//
3100// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeResourcePolicy
3101func (c *LexModelsV2) DescribeResourcePolicyRequest(input *DescribeResourcePolicyInput) (req *request.Request, output *DescribeResourcePolicyOutput) {
3102	op := &request.Operation{
3103		Name:       opDescribeResourcePolicy,
3104		HTTPMethod: "GET",
3105		HTTPPath:   "/policy/{resourceArn}/",
3106	}
3107
3108	if input == nil {
3109		input = &DescribeResourcePolicyInput{}
3110	}
3111
3112	output = &DescribeResourcePolicyOutput{}
3113	req = c.newRequest(op, input, output)
3114	return
3115}
3116
3117// DescribeResourcePolicy API operation for Amazon Lex Model Building V2.
3118//
3119// Gets the resource policy and policy revision for a bot or bot alias.
3120//
3121// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3122// with awserr.Error's Code and Message methods to get detailed information about
3123// the error.
3124//
3125// See the AWS API reference guide for Amazon Lex Model Building V2's
3126// API operation DescribeResourcePolicy for usage and error information.
3127//
3128// Returned Error Types:
3129//   * ResourceNotFoundException
3130//   You asked to describe a resource that doesn't exist. Check the resource that
3131//   you are requesting and try again.
3132//
3133//   * InternalServerException
3134//   The service encountered an unexpected condition. Try your request again.
3135//
3136//   * ThrottlingException
3137//   Your request rate is too high. Reduce the frequency of requests.
3138//
3139// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeResourcePolicy
3140func (c *LexModelsV2) DescribeResourcePolicy(input *DescribeResourcePolicyInput) (*DescribeResourcePolicyOutput, error) {
3141	req, out := c.DescribeResourcePolicyRequest(input)
3142	return out, req.Send()
3143}
3144
3145// DescribeResourcePolicyWithContext is the same as DescribeResourcePolicy with the addition of
3146// the ability to pass a context and additional request options.
3147//
3148// See DescribeResourcePolicy for details on how to use this API operation.
3149//
3150// The context must be non-nil and will be used for request cancellation. If
3151// the context is nil a panic will occur. In the future the SDK may create
3152// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3153// for more information on using Contexts.
3154func (c *LexModelsV2) DescribeResourcePolicyWithContext(ctx aws.Context, input *DescribeResourcePolicyInput, opts ...request.Option) (*DescribeResourcePolicyOutput, error) {
3155	req, out := c.DescribeResourcePolicyRequest(input)
3156	req.SetContext(ctx)
3157	req.ApplyOptions(opts...)
3158	return out, req.Send()
3159}
3160
3161const opDescribeSlot = "DescribeSlot"
3162
3163// DescribeSlotRequest generates a "aws/request.Request" representing the
3164// client's request for the DescribeSlot operation. The "output" return
3165// value will be populated with the request's response once the request completes
3166// successfully.
3167//
3168// Use "Send" method on the returned Request to send the API call to the service.
3169// the "output" return value is not valid until after Send returns without error.
3170//
3171// See DescribeSlot for more information on using the DescribeSlot
3172// API call, and error handling.
3173//
3174// This method is useful when you want to inject custom logic or configuration
3175// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3176//
3177//
3178//    // Example sending a request using the DescribeSlotRequest method.
3179//    req, resp := client.DescribeSlotRequest(params)
3180//
3181//    err := req.Send()
3182//    if err == nil { // resp is now filled
3183//        fmt.Println(resp)
3184//    }
3185//
3186// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeSlot
3187func (c *LexModelsV2) DescribeSlotRequest(input *DescribeSlotInput) (req *request.Request, output *DescribeSlotOutput) {
3188	op := &request.Operation{
3189		Name:       opDescribeSlot,
3190		HTTPMethod: "GET",
3191		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/slots/{slotId}/",
3192	}
3193
3194	if input == nil {
3195		input = &DescribeSlotInput{}
3196	}
3197
3198	output = &DescribeSlotOutput{}
3199	req = c.newRequest(op, input, output)
3200	return
3201}
3202
3203// DescribeSlot API operation for Amazon Lex Model Building V2.
3204//
3205// Gets metadata information about a slot.
3206//
3207// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3208// with awserr.Error's Code and Message methods to get detailed information about
3209// the error.
3210//
3211// See the AWS API reference guide for Amazon Lex Model Building V2's
3212// API operation DescribeSlot for usage and error information.
3213//
3214// Returned Error Types:
3215//   * ThrottlingException
3216//   Your request rate is too high. Reduce the frequency of requests.
3217//
3218//   * ServiceQuotaExceededException
3219//   You have reached a quota for your bot.
3220//
3221//   * ValidationException
3222//   One of the input parameters in your request isn't valid. Check the parameters
3223//   and try your request again.
3224//
3225//   * ResourceNotFoundException
3226//   You asked to describe a resource that doesn't exist. Check the resource that
3227//   you are requesting and try again.
3228//
3229//   * InternalServerException
3230//   The service encountered an unexpected condition. Try your request again.
3231//
3232// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeSlot
3233func (c *LexModelsV2) DescribeSlot(input *DescribeSlotInput) (*DescribeSlotOutput, error) {
3234	req, out := c.DescribeSlotRequest(input)
3235	return out, req.Send()
3236}
3237
3238// DescribeSlotWithContext is the same as DescribeSlot with the addition of
3239// the ability to pass a context and additional request options.
3240//
3241// See DescribeSlot for details on how to use this API operation.
3242//
3243// The context must be non-nil and will be used for request cancellation. If
3244// the context is nil a panic will occur. In the future the SDK may create
3245// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3246// for more information on using Contexts.
3247func (c *LexModelsV2) DescribeSlotWithContext(ctx aws.Context, input *DescribeSlotInput, opts ...request.Option) (*DescribeSlotOutput, error) {
3248	req, out := c.DescribeSlotRequest(input)
3249	req.SetContext(ctx)
3250	req.ApplyOptions(opts...)
3251	return out, req.Send()
3252}
3253
3254const opDescribeSlotType = "DescribeSlotType"
3255
3256// DescribeSlotTypeRequest generates a "aws/request.Request" representing the
3257// client's request for the DescribeSlotType operation. The "output" return
3258// value will be populated with the request's response once the request completes
3259// successfully.
3260//
3261// Use "Send" method on the returned Request to send the API call to the service.
3262// the "output" return value is not valid until after Send returns without error.
3263//
3264// See DescribeSlotType for more information on using the DescribeSlotType
3265// API call, and error handling.
3266//
3267// This method is useful when you want to inject custom logic or configuration
3268// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3269//
3270//
3271//    // Example sending a request using the DescribeSlotTypeRequest method.
3272//    req, resp := client.DescribeSlotTypeRequest(params)
3273//
3274//    err := req.Send()
3275//    if err == nil { // resp is now filled
3276//        fmt.Println(resp)
3277//    }
3278//
3279// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeSlotType
3280func (c *LexModelsV2) DescribeSlotTypeRequest(input *DescribeSlotTypeInput) (req *request.Request, output *DescribeSlotTypeOutput) {
3281	op := &request.Operation{
3282		Name:       opDescribeSlotType,
3283		HTTPMethod: "GET",
3284		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/slottypes/{slotTypeId}/",
3285	}
3286
3287	if input == nil {
3288		input = &DescribeSlotTypeInput{}
3289	}
3290
3291	output = &DescribeSlotTypeOutput{}
3292	req = c.newRequest(op, input, output)
3293	return
3294}
3295
3296// DescribeSlotType API operation for Amazon Lex Model Building V2.
3297//
3298// Gets metadata information about a slot type.
3299//
3300// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3301// with awserr.Error's Code and Message methods to get detailed information about
3302// the error.
3303//
3304// See the AWS API reference guide for Amazon Lex Model Building V2's
3305// API operation DescribeSlotType for usage and error information.
3306//
3307// Returned Error Types:
3308//   * ThrottlingException
3309//   Your request rate is too high. Reduce the frequency of requests.
3310//
3311//   * ServiceQuotaExceededException
3312//   You have reached a quota for your bot.
3313//
3314//   * ValidationException
3315//   One of the input parameters in your request isn't valid. Check the parameters
3316//   and try your request again.
3317//
3318//   * ResourceNotFoundException
3319//   You asked to describe a resource that doesn't exist. Check the resource that
3320//   you are requesting and try again.
3321//
3322//   * InternalServerException
3323//   The service encountered an unexpected condition. Try your request again.
3324//
3325// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/DescribeSlotType
3326func (c *LexModelsV2) DescribeSlotType(input *DescribeSlotTypeInput) (*DescribeSlotTypeOutput, error) {
3327	req, out := c.DescribeSlotTypeRequest(input)
3328	return out, req.Send()
3329}
3330
3331// DescribeSlotTypeWithContext is the same as DescribeSlotType with the addition of
3332// the ability to pass a context and additional request options.
3333//
3334// See DescribeSlotType for details on how to use this API operation.
3335//
3336// The context must be non-nil and will be used for request cancellation. If
3337// the context is nil a panic will occur. In the future the SDK may create
3338// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3339// for more information on using Contexts.
3340func (c *LexModelsV2) DescribeSlotTypeWithContext(ctx aws.Context, input *DescribeSlotTypeInput, opts ...request.Option) (*DescribeSlotTypeOutput, error) {
3341	req, out := c.DescribeSlotTypeRequest(input)
3342	req.SetContext(ctx)
3343	req.ApplyOptions(opts...)
3344	return out, req.Send()
3345}
3346
3347const opListAggregatedUtterances = "ListAggregatedUtterances"
3348
3349// ListAggregatedUtterancesRequest generates a "aws/request.Request" representing the
3350// client's request for the ListAggregatedUtterances operation. The "output" return
3351// value will be populated with the request's response once the request completes
3352// successfully.
3353//
3354// Use "Send" method on the returned Request to send the API call to the service.
3355// the "output" return value is not valid until after Send returns without error.
3356//
3357// See ListAggregatedUtterances for more information on using the ListAggregatedUtterances
3358// API call, and error handling.
3359//
3360// This method is useful when you want to inject custom logic or configuration
3361// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3362//
3363//
3364//    // Example sending a request using the ListAggregatedUtterancesRequest method.
3365//    req, resp := client.ListAggregatedUtterancesRequest(params)
3366//
3367//    err := req.Send()
3368//    if err == nil { // resp is now filled
3369//        fmt.Println(resp)
3370//    }
3371//
3372// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListAggregatedUtterances
3373func (c *LexModelsV2) ListAggregatedUtterancesRequest(input *ListAggregatedUtterancesInput) (req *request.Request, output *ListAggregatedUtterancesOutput) {
3374	op := &request.Operation{
3375		Name:       opListAggregatedUtterances,
3376		HTTPMethod: "POST",
3377		HTTPPath:   "/bots/{botId}/aggregatedutterances/",
3378		Paginator: &request.Paginator{
3379			InputTokens:     []string{"nextToken"},
3380			OutputTokens:    []string{"nextToken"},
3381			LimitToken:      "maxResults",
3382			TruncationToken: "",
3383		},
3384	}
3385
3386	if input == nil {
3387		input = &ListAggregatedUtterancesInput{}
3388	}
3389
3390	output = &ListAggregatedUtterancesOutput{}
3391	req = c.newRequest(op, input, output)
3392	return
3393}
3394
3395// ListAggregatedUtterances API operation for Amazon Lex Model Building V2.
3396//
3397// Provides a list of utterances that users have sent to the bot.
3398//
3399// Utterances are aggregated by the text of the utterance. For example, all
3400// instances where customers used the phrase "I want to order pizza" are aggregated
3401// into the same line in the response.
3402//
3403// You can see both detected utterances and missed utterances. A detected utterance
3404// is where the bot properly recognized the utterance and activated the associated
3405// intent. A missed utterance was not recognized by the bot and didn't activate
3406// an intent.
3407//
3408// Utterances can be aggregated for a bot alias or for a bot version, but not
3409// both at the same time.
3410//
3411// Utterances statistics are not generated under the following conditions:
3412//
3413//    * The childDirected field was set to true when the bot was created.
3414//
3415//    * You are using slot obfuscation with one or more slots.
3416//
3417//    * You opted out of participating in improving Amazon Lex.
3418//
3419// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3420// with awserr.Error's Code and Message methods to get detailed information about
3421// the error.
3422//
3423// See the AWS API reference guide for Amazon Lex Model Building V2's
3424// API operation ListAggregatedUtterances for usage and error information.
3425//
3426// Returned Error Types:
3427//   * ValidationException
3428//   One of the input parameters in your request isn't valid. Check the parameters
3429//   and try your request again.
3430//
3431//   * PreconditionFailedException
3432//   Your request couldn't be completed because one or more request fields aren't
3433//   valid. Check the fields in your request and try again.
3434//
3435//   * ThrottlingException
3436//   Your request rate is too high. Reduce the frequency of requests.
3437//
3438//   * InternalServerException
3439//   The service encountered an unexpected condition. Try your request again.
3440//
3441// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListAggregatedUtterances
3442func (c *LexModelsV2) ListAggregatedUtterances(input *ListAggregatedUtterancesInput) (*ListAggregatedUtterancesOutput, error) {
3443	req, out := c.ListAggregatedUtterancesRequest(input)
3444	return out, req.Send()
3445}
3446
3447// ListAggregatedUtterancesWithContext is the same as ListAggregatedUtterances with the addition of
3448// the ability to pass a context and additional request options.
3449//
3450// See ListAggregatedUtterances for details on how to use this API operation.
3451//
3452// The context must be non-nil and will be used for request cancellation. If
3453// the context is nil a panic will occur. In the future the SDK may create
3454// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3455// for more information on using Contexts.
3456func (c *LexModelsV2) ListAggregatedUtterancesWithContext(ctx aws.Context, input *ListAggregatedUtterancesInput, opts ...request.Option) (*ListAggregatedUtterancesOutput, error) {
3457	req, out := c.ListAggregatedUtterancesRequest(input)
3458	req.SetContext(ctx)
3459	req.ApplyOptions(opts...)
3460	return out, req.Send()
3461}
3462
3463// ListAggregatedUtterancesPages iterates over the pages of a ListAggregatedUtterances operation,
3464// calling the "fn" function with the response data for each page. To stop
3465// iterating, return false from the fn function.
3466//
3467// See ListAggregatedUtterances method for more information on how to use this operation.
3468//
3469// Note: This operation can generate multiple requests to a service.
3470//
3471//    // Example iterating over at most 3 pages of a ListAggregatedUtterances operation.
3472//    pageNum := 0
3473//    err := client.ListAggregatedUtterancesPages(params,
3474//        func(page *lexmodelsv2.ListAggregatedUtterancesOutput, lastPage bool) bool {
3475//            pageNum++
3476//            fmt.Println(page)
3477//            return pageNum <= 3
3478//        })
3479//
3480func (c *LexModelsV2) ListAggregatedUtterancesPages(input *ListAggregatedUtterancesInput, fn func(*ListAggregatedUtterancesOutput, bool) bool) error {
3481	return c.ListAggregatedUtterancesPagesWithContext(aws.BackgroundContext(), input, fn)
3482}
3483
3484// ListAggregatedUtterancesPagesWithContext same as ListAggregatedUtterancesPages except
3485// it takes a Context and allows setting request options on the pages.
3486//
3487// The context must be non-nil and will be used for request cancellation. If
3488// the context is nil a panic will occur. In the future the SDK may create
3489// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3490// for more information on using Contexts.
3491func (c *LexModelsV2) ListAggregatedUtterancesPagesWithContext(ctx aws.Context, input *ListAggregatedUtterancesInput, fn func(*ListAggregatedUtterancesOutput, bool) bool, opts ...request.Option) error {
3492	p := request.Pagination{
3493		NewRequest: func() (*request.Request, error) {
3494			var inCpy *ListAggregatedUtterancesInput
3495			if input != nil {
3496				tmp := *input
3497				inCpy = &tmp
3498			}
3499			req, _ := c.ListAggregatedUtterancesRequest(inCpy)
3500			req.SetContext(ctx)
3501			req.ApplyOptions(opts...)
3502			return req, nil
3503		},
3504	}
3505
3506	for p.Next() {
3507		if !fn(p.Page().(*ListAggregatedUtterancesOutput), !p.HasNextPage()) {
3508			break
3509		}
3510	}
3511
3512	return p.Err()
3513}
3514
3515const opListBotAliases = "ListBotAliases"
3516
3517// ListBotAliasesRequest generates a "aws/request.Request" representing the
3518// client's request for the ListBotAliases operation. The "output" return
3519// value will be populated with the request's response once the request completes
3520// successfully.
3521//
3522// Use "Send" method on the returned Request to send the API call to the service.
3523// the "output" return value is not valid until after Send returns without error.
3524//
3525// See ListBotAliases for more information on using the ListBotAliases
3526// API call, and error handling.
3527//
3528// This method is useful when you want to inject custom logic or configuration
3529// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3530//
3531//
3532//    // Example sending a request using the ListBotAliasesRequest method.
3533//    req, resp := client.ListBotAliasesRequest(params)
3534//
3535//    err := req.Send()
3536//    if err == nil { // resp is now filled
3537//        fmt.Println(resp)
3538//    }
3539//
3540// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBotAliases
3541func (c *LexModelsV2) ListBotAliasesRequest(input *ListBotAliasesInput) (req *request.Request, output *ListBotAliasesOutput) {
3542	op := &request.Operation{
3543		Name:       opListBotAliases,
3544		HTTPMethod: "POST",
3545		HTTPPath:   "/bots/{botId}/botaliases/",
3546		Paginator: &request.Paginator{
3547			InputTokens:     []string{"nextToken"},
3548			OutputTokens:    []string{"nextToken"},
3549			LimitToken:      "maxResults",
3550			TruncationToken: "",
3551		},
3552	}
3553
3554	if input == nil {
3555		input = &ListBotAliasesInput{}
3556	}
3557
3558	output = &ListBotAliasesOutput{}
3559	req = c.newRequest(op, input, output)
3560	return
3561}
3562
3563// ListBotAliases API operation for Amazon Lex Model Building V2.
3564//
3565// Gets a list of aliases for the specified bot.
3566//
3567// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3568// with awserr.Error's Code and Message methods to get detailed information about
3569// the error.
3570//
3571// See the AWS API reference guide for Amazon Lex Model Building V2's
3572// API operation ListBotAliases for usage and error information.
3573//
3574// Returned Error Types:
3575//   * ThrottlingException
3576//   Your request rate is too high. Reduce the frequency of requests.
3577//
3578//   * ServiceQuotaExceededException
3579//   You have reached a quota for your bot.
3580//
3581//   * ValidationException
3582//   One of the input parameters in your request isn't valid. Check the parameters
3583//   and try your request again.
3584//
3585//   * InternalServerException
3586//   The service encountered an unexpected condition. Try your request again.
3587//
3588// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBotAliases
3589func (c *LexModelsV2) ListBotAliases(input *ListBotAliasesInput) (*ListBotAliasesOutput, error) {
3590	req, out := c.ListBotAliasesRequest(input)
3591	return out, req.Send()
3592}
3593
3594// ListBotAliasesWithContext is the same as ListBotAliases with the addition of
3595// the ability to pass a context and additional request options.
3596//
3597// See ListBotAliases for details on how to use this API operation.
3598//
3599// The context must be non-nil and will be used for request cancellation. If
3600// the context is nil a panic will occur. In the future the SDK may create
3601// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3602// for more information on using Contexts.
3603func (c *LexModelsV2) ListBotAliasesWithContext(ctx aws.Context, input *ListBotAliasesInput, opts ...request.Option) (*ListBotAliasesOutput, error) {
3604	req, out := c.ListBotAliasesRequest(input)
3605	req.SetContext(ctx)
3606	req.ApplyOptions(opts...)
3607	return out, req.Send()
3608}
3609
3610// ListBotAliasesPages iterates over the pages of a ListBotAliases operation,
3611// calling the "fn" function with the response data for each page. To stop
3612// iterating, return false from the fn function.
3613//
3614// See ListBotAliases method for more information on how to use this operation.
3615//
3616// Note: This operation can generate multiple requests to a service.
3617//
3618//    // Example iterating over at most 3 pages of a ListBotAliases operation.
3619//    pageNum := 0
3620//    err := client.ListBotAliasesPages(params,
3621//        func(page *lexmodelsv2.ListBotAliasesOutput, lastPage bool) bool {
3622//            pageNum++
3623//            fmt.Println(page)
3624//            return pageNum <= 3
3625//        })
3626//
3627func (c *LexModelsV2) ListBotAliasesPages(input *ListBotAliasesInput, fn func(*ListBotAliasesOutput, bool) bool) error {
3628	return c.ListBotAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
3629}
3630
3631// ListBotAliasesPagesWithContext same as ListBotAliasesPages except
3632// it takes a Context and allows setting request options on the pages.
3633//
3634// The context must be non-nil and will be used for request cancellation. If
3635// the context is nil a panic will occur. In the future the SDK may create
3636// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3637// for more information on using Contexts.
3638func (c *LexModelsV2) ListBotAliasesPagesWithContext(ctx aws.Context, input *ListBotAliasesInput, fn func(*ListBotAliasesOutput, bool) bool, opts ...request.Option) error {
3639	p := request.Pagination{
3640		NewRequest: func() (*request.Request, error) {
3641			var inCpy *ListBotAliasesInput
3642			if input != nil {
3643				tmp := *input
3644				inCpy = &tmp
3645			}
3646			req, _ := c.ListBotAliasesRequest(inCpy)
3647			req.SetContext(ctx)
3648			req.ApplyOptions(opts...)
3649			return req, nil
3650		},
3651	}
3652
3653	for p.Next() {
3654		if !fn(p.Page().(*ListBotAliasesOutput), !p.HasNextPage()) {
3655			break
3656		}
3657	}
3658
3659	return p.Err()
3660}
3661
3662const opListBotLocales = "ListBotLocales"
3663
3664// ListBotLocalesRequest generates a "aws/request.Request" representing the
3665// client's request for the ListBotLocales operation. The "output" return
3666// value will be populated with the request's response once the request completes
3667// successfully.
3668//
3669// Use "Send" method on the returned Request to send the API call to the service.
3670// the "output" return value is not valid until after Send returns without error.
3671//
3672// See ListBotLocales for more information on using the ListBotLocales
3673// API call, and error handling.
3674//
3675// This method is useful when you want to inject custom logic or configuration
3676// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3677//
3678//
3679//    // Example sending a request using the ListBotLocalesRequest method.
3680//    req, resp := client.ListBotLocalesRequest(params)
3681//
3682//    err := req.Send()
3683//    if err == nil { // resp is now filled
3684//        fmt.Println(resp)
3685//    }
3686//
3687// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBotLocales
3688func (c *LexModelsV2) ListBotLocalesRequest(input *ListBotLocalesInput) (req *request.Request, output *ListBotLocalesOutput) {
3689	op := &request.Operation{
3690		Name:       opListBotLocales,
3691		HTTPMethod: "POST",
3692		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/",
3693		Paginator: &request.Paginator{
3694			InputTokens:     []string{"nextToken"},
3695			OutputTokens:    []string{"nextToken"},
3696			LimitToken:      "maxResults",
3697			TruncationToken: "",
3698		},
3699	}
3700
3701	if input == nil {
3702		input = &ListBotLocalesInput{}
3703	}
3704
3705	output = &ListBotLocalesOutput{}
3706	req = c.newRequest(op, input, output)
3707	return
3708}
3709
3710// ListBotLocales API operation for Amazon Lex Model Building V2.
3711//
3712// Gets a list of locales for the specified bot.
3713//
3714// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3715// with awserr.Error's Code and Message methods to get detailed information about
3716// the error.
3717//
3718// See the AWS API reference guide for Amazon Lex Model Building V2's
3719// API operation ListBotLocales for usage and error information.
3720//
3721// Returned Error Types:
3722//   * ThrottlingException
3723//   Your request rate is too high. Reduce the frequency of requests.
3724//
3725//   * ServiceQuotaExceededException
3726//   You have reached a quota for your bot.
3727//
3728//   * ValidationException
3729//   One of the input parameters in your request isn't valid. Check the parameters
3730//   and try your request again.
3731//
3732//   * InternalServerException
3733//   The service encountered an unexpected condition. Try your request again.
3734//
3735// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBotLocales
3736func (c *LexModelsV2) ListBotLocales(input *ListBotLocalesInput) (*ListBotLocalesOutput, error) {
3737	req, out := c.ListBotLocalesRequest(input)
3738	return out, req.Send()
3739}
3740
3741// ListBotLocalesWithContext is the same as ListBotLocales with the addition of
3742// the ability to pass a context and additional request options.
3743//
3744// See ListBotLocales for details on how to use this API operation.
3745//
3746// The context must be non-nil and will be used for request cancellation. If
3747// the context is nil a panic will occur. In the future the SDK may create
3748// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3749// for more information on using Contexts.
3750func (c *LexModelsV2) ListBotLocalesWithContext(ctx aws.Context, input *ListBotLocalesInput, opts ...request.Option) (*ListBotLocalesOutput, error) {
3751	req, out := c.ListBotLocalesRequest(input)
3752	req.SetContext(ctx)
3753	req.ApplyOptions(opts...)
3754	return out, req.Send()
3755}
3756
3757// ListBotLocalesPages iterates over the pages of a ListBotLocales operation,
3758// calling the "fn" function with the response data for each page. To stop
3759// iterating, return false from the fn function.
3760//
3761// See ListBotLocales method for more information on how to use this operation.
3762//
3763// Note: This operation can generate multiple requests to a service.
3764//
3765//    // Example iterating over at most 3 pages of a ListBotLocales operation.
3766//    pageNum := 0
3767//    err := client.ListBotLocalesPages(params,
3768//        func(page *lexmodelsv2.ListBotLocalesOutput, lastPage bool) bool {
3769//            pageNum++
3770//            fmt.Println(page)
3771//            return pageNum <= 3
3772//        })
3773//
3774func (c *LexModelsV2) ListBotLocalesPages(input *ListBotLocalesInput, fn func(*ListBotLocalesOutput, bool) bool) error {
3775	return c.ListBotLocalesPagesWithContext(aws.BackgroundContext(), input, fn)
3776}
3777
3778// ListBotLocalesPagesWithContext same as ListBotLocalesPages except
3779// it takes a Context and allows setting request options on the pages.
3780//
3781// The context must be non-nil and will be used for request cancellation. If
3782// the context is nil a panic will occur. In the future the SDK may create
3783// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3784// for more information on using Contexts.
3785func (c *LexModelsV2) ListBotLocalesPagesWithContext(ctx aws.Context, input *ListBotLocalesInput, fn func(*ListBotLocalesOutput, bool) bool, opts ...request.Option) error {
3786	p := request.Pagination{
3787		NewRequest: func() (*request.Request, error) {
3788			var inCpy *ListBotLocalesInput
3789			if input != nil {
3790				tmp := *input
3791				inCpy = &tmp
3792			}
3793			req, _ := c.ListBotLocalesRequest(inCpy)
3794			req.SetContext(ctx)
3795			req.ApplyOptions(opts...)
3796			return req, nil
3797		},
3798	}
3799
3800	for p.Next() {
3801		if !fn(p.Page().(*ListBotLocalesOutput), !p.HasNextPage()) {
3802			break
3803		}
3804	}
3805
3806	return p.Err()
3807}
3808
3809const opListBotVersions = "ListBotVersions"
3810
3811// ListBotVersionsRequest generates a "aws/request.Request" representing the
3812// client's request for the ListBotVersions operation. The "output" return
3813// value will be populated with the request's response once the request completes
3814// successfully.
3815//
3816// Use "Send" method on the returned Request to send the API call to the service.
3817// the "output" return value is not valid until after Send returns without error.
3818//
3819// See ListBotVersions for more information on using the ListBotVersions
3820// API call, and error handling.
3821//
3822// This method is useful when you want to inject custom logic or configuration
3823// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3824//
3825//
3826//    // Example sending a request using the ListBotVersionsRequest method.
3827//    req, resp := client.ListBotVersionsRequest(params)
3828//
3829//    err := req.Send()
3830//    if err == nil { // resp is now filled
3831//        fmt.Println(resp)
3832//    }
3833//
3834// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBotVersions
3835func (c *LexModelsV2) ListBotVersionsRequest(input *ListBotVersionsInput) (req *request.Request, output *ListBotVersionsOutput) {
3836	op := &request.Operation{
3837		Name:       opListBotVersions,
3838		HTTPMethod: "POST",
3839		HTTPPath:   "/bots/{botId}/botversions/",
3840		Paginator: &request.Paginator{
3841			InputTokens:     []string{"nextToken"},
3842			OutputTokens:    []string{"nextToken"},
3843			LimitToken:      "maxResults",
3844			TruncationToken: "",
3845		},
3846	}
3847
3848	if input == nil {
3849		input = &ListBotVersionsInput{}
3850	}
3851
3852	output = &ListBotVersionsOutput{}
3853	req = c.newRequest(op, input, output)
3854	return
3855}
3856
3857// ListBotVersions API operation for Amazon Lex Model Building V2.
3858//
3859// Gets information about all of the versions of a bot.
3860//
3861// The ListBotVersions operation returns a summary of each version of a bot.
3862// For example, if a bot has three numbered versions, the ListBotVersions operation
3863// returns for summaries, one for each numbered version and one for the DRAFT
3864// version.
3865//
3866// The ListBotVersions operation always returns at least one version, the DRAFT
3867// version.
3868//
3869// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3870// with awserr.Error's Code and Message methods to get detailed information about
3871// the error.
3872//
3873// See the AWS API reference guide for Amazon Lex Model Building V2's
3874// API operation ListBotVersions for usage and error information.
3875//
3876// Returned Error Types:
3877//   * ThrottlingException
3878//   Your request rate is too high. Reduce the frequency of requests.
3879//
3880//   * ServiceQuotaExceededException
3881//   You have reached a quota for your bot.
3882//
3883//   * ValidationException
3884//   One of the input parameters in your request isn't valid. Check the parameters
3885//   and try your request again.
3886//
3887//   * InternalServerException
3888//   The service encountered an unexpected condition. Try your request again.
3889//
3890// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBotVersions
3891func (c *LexModelsV2) ListBotVersions(input *ListBotVersionsInput) (*ListBotVersionsOutput, error) {
3892	req, out := c.ListBotVersionsRequest(input)
3893	return out, req.Send()
3894}
3895
3896// ListBotVersionsWithContext is the same as ListBotVersions with the addition of
3897// the ability to pass a context and additional request options.
3898//
3899// See ListBotVersions for details on how to use this API operation.
3900//
3901// The context must be non-nil and will be used for request cancellation. If
3902// the context is nil a panic will occur. In the future the SDK may create
3903// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3904// for more information on using Contexts.
3905func (c *LexModelsV2) ListBotVersionsWithContext(ctx aws.Context, input *ListBotVersionsInput, opts ...request.Option) (*ListBotVersionsOutput, error) {
3906	req, out := c.ListBotVersionsRequest(input)
3907	req.SetContext(ctx)
3908	req.ApplyOptions(opts...)
3909	return out, req.Send()
3910}
3911
3912// ListBotVersionsPages iterates over the pages of a ListBotVersions operation,
3913// calling the "fn" function with the response data for each page. To stop
3914// iterating, return false from the fn function.
3915//
3916// See ListBotVersions method for more information on how to use this operation.
3917//
3918// Note: This operation can generate multiple requests to a service.
3919//
3920//    // Example iterating over at most 3 pages of a ListBotVersions operation.
3921//    pageNum := 0
3922//    err := client.ListBotVersionsPages(params,
3923//        func(page *lexmodelsv2.ListBotVersionsOutput, lastPage bool) bool {
3924//            pageNum++
3925//            fmt.Println(page)
3926//            return pageNum <= 3
3927//        })
3928//
3929func (c *LexModelsV2) ListBotVersionsPages(input *ListBotVersionsInput, fn func(*ListBotVersionsOutput, bool) bool) error {
3930	return c.ListBotVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
3931}
3932
3933// ListBotVersionsPagesWithContext same as ListBotVersionsPages except
3934// it takes a Context and allows setting request options on the pages.
3935//
3936// The context must be non-nil and will be used for request cancellation. If
3937// the context is nil a panic will occur. In the future the SDK may create
3938// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3939// for more information on using Contexts.
3940func (c *LexModelsV2) ListBotVersionsPagesWithContext(ctx aws.Context, input *ListBotVersionsInput, fn func(*ListBotVersionsOutput, bool) bool, opts ...request.Option) error {
3941	p := request.Pagination{
3942		NewRequest: func() (*request.Request, error) {
3943			var inCpy *ListBotVersionsInput
3944			if input != nil {
3945				tmp := *input
3946				inCpy = &tmp
3947			}
3948			req, _ := c.ListBotVersionsRequest(inCpy)
3949			req.SetContext(ctx)
3950			req.ApplyOptions(opts...)
3951			return req, nil
3952		},
3953	}
3954
3955	for p.Next() {
3956		if !fn(p.Page().(*ListBotVersionsOutput), !p.HasNextPage()) {
3957			break
3958		}
3959	}
3960
3961	return p.Err()
3962}
3963
3964const opListBots = "ListBots"
3965
3966// ListBotsRequest generates a "aws/request.Request" representing the
3967// client's request for the ListBots operation. The "output" return
3968// value will be populated with the request's response once the request completes
3969// successfully.
3970//
3971// Use "Send" method on the returned Request to send the API call to the service.
3972// the "output" return value is not valid until after Send returns without error.
3973//
3974// See ListBots for more information on using the ListBots
3975// API call, and error handling.
3976//
3977// This method is useful when you want to inject custom logic or configuration
3978// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3979//
3980//
3981//    // Example sending a request using the ListBotsRequest method.
3982//    req, resp := client.ListBotsRequest(params)
3983//
3984//    err := req.Send()
3985//    if err == nil { // resp is now filled
3986//        fmt.Println(resp)
3987//    }
3988//
3989// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBots
3990func (c *LexModelsV2) ListBotsRequest(input *ListBotsInput) (req *request.Request, output *ListBotsOutput) {
3991	op := &request.Operation{
3992		Name:       opListBots,
3993		HTTPMethod: "POST",
3994		HTTPPath:   "/bots/",
3995		Paginator: &request.Paginator{
3996			InputTokens:     []string{"nextToken"},
3997			OutputTokens:    []string{"nextToken"},
3998			LimitToken:      "maxResults",
3999			TruncationToken: "",
4000		},
4001	}
4002
4003	if input == nil {
4004		input = &ListBotsInput{}
4005	}
4006
4007	output = &ListBotsOutput{}
4008	req = c.newRequest(op, input, output)
4009	return
4010}
4011
4012// ListBots API operation for Amazon Lex Model Building V2.
4013//
4014// Gets a list of available bots.
4015//
4016// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4017// with awserr.Error's Code and Message methods to get detailed information about
4018// the error.
4019//
4020// See the AWS API reference guide for Amazon Lex Model Building V2's
4021// API operation ListBots for usage and error information.
4022//
4023// Returned Error Types:
4024//   * ThrottlingException
4025//   Your request rate is too high. Reduce the frequency of requests.
4026//
4027//   * ServiceQuotaExceededException
4028//   You have reached a quota for your bot.
4029//
4030//   * ValidationException
4031//   One of the input parameters in your request isn't valid. Check the parameters
4032//   and try your request again.
4033//
4034//   * InternalServerException
4035//   The service encountered an unexpected condition. Try your request again.
4036//
4037// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBots
4038func (c *LexModelsV2) ListBots(input *ListBotsInput) (*ListBotsOutput, error) {
4039	req, out := c.ListBotsRequest(input)
4040	return out, req.Send()
4041}
4042
4043// ListBotsWithContext is the same as ListBots with the addition of
4044// the ability to pass a context and additional request options.
4045//
4046// See ListBots for details on how to use this API operation.
4047//
4048// The context must be non-nil and will be used for request cancellation. If
4049// the context is nil a panic will occur. In the future the SDK may create
4050// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4051// for more information on using Contexts.
4052func (c *LexModelsV2) ListBotsWithContext(ctx aws.Context, input *ListBotsInput, opts ...request.Option) (*ListBotsOutput, error) {
4053	req, out := c.ListBotsRequest(input)
4054	req.SetContext(ctx)
4055	req.ApplyOptions(opts...)
4056	return out, req.Send()
4057}
4058
4059// ListBotsPages iterates over the pages of a ListBots operation,
4060// calling the "fn" function with the response data for each page. To stop
4061// iterating, return false from the fn function.
4062//
4063// See ListBots method for more information on how to use this operation.
4064//
4065// Note: This operation can generate multiple requests to a service.
4066//
4067//    // Example iterating over at most 3 pages of a ListBots operation.
4068//    pageNum := 0
4069//    err := client.ListBotsPages(params,
4070//        func(page *lexmodelsv2.ListBotsOutput, lastPage bool) bool {
4071//            pageNum++
4072//            fmt.Println(page)
4073//            return pageNum <= 3
4074//        })
4075//
4076func (c *LexModelsV2) ListBotsPages(input *ListBotsInput, fn func(*ListBotsOutput, bool) bool) error {
4077	return c.ListBotsPagesWithContext(aws.BackgroundContext(), input, fn)
4078}
4079
4080// ListBotsPagesWithContext same as ListBotsPages except
4081// it takes a Context and allows setting request options on the pages.
4082//
4083// The context must be non-nil and will be used for request cancellation. If
4084// the context is nil a panic will occur. In the future the SDK may create
4085// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4086// for more information on using Contexts.
4087func (c *LexModelsV2) ListBotsPagesWithContext(ctx aws.Context, input *ListBotsInput, fn func(*ListBotsOutput, bool) bool, opts ...request.Option) error {
4088	p := request.Pagination{
4089		NewRequest: func() (*request.Request, error) {
4090			var inCpy *ListBotsInput
4091			if input != nil {
4092				tmp := *input
4093				inCpy = &tmp
4094			}
4095			req, _ := c.ListBotsRequest(inCpy)
4096			req.SetContext(ctx)
4097			req.ApplyOptions(opts...)
4098			return req, nil
4099		},
4100	}
4101
4102	for p.Next() {
4103		if !fn(p.Page().(*ListBotsOutput), !p.HasNextPage()) {
4104			break
4105		}
4106	}
4107
4108	return p.Err()
4109}
4110
4111const opListBuiltInIntents = "ListBuiltInIntents"
4112
4113// ListBuiltInIntentsRequest generates a "aws/request.Request" representing the
4114// client's request for the ListBuiltInIntents operation. The "output" return
4115// value will be populated with the request's response once the request completes
4116// successfully.
4117//
4118// Use "Send" method on the returned Request to send the API call to the service.
4119// the "output" return value is not valid until after Send returns without error.
4120//
4121// See ListBuiltInIntents for more information on using the ListBuiltInIntents
4122// API call, and error handling.
4123//
4124// This method is useful when you want to inject custom logic or configuration
4125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4126//
4127//
4128//    // Example sending a request using the ListBuiltInIntentsRequest method.
4129//    req, resp := client.ListBuiltInIntentsRequest(params)
4130//
4131//    err := req.Send()
4132//    if err == nil { // resp is now filled
4133//        fmt.Println(resp)
4134//    }
4135//
4136// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBuiltInIntents
4137func (c *LexModelsV2) ListBuiltInIntentsRequest(input *ListBuiltInIntentsInput) (req *request.Request, output *ListBuiltInIntentsOutput) {
4138	op := &request.Operation{
4139		Name:       opListBuiltInIntents,
4140		HTTPMethod: "POST",
4141		HTTPPath:   "/builtins/locales/{localeId}/intents/",
4142		Paginator: &request.Paginator{
4143			InputTokens:     []string{"nextToken"},
4144			OutputTokens:    []string{"nextToken"},
4145			LimitToken:      "maxResults",
4146			TruncationToken: "",
4147		},
4148	}
4149
4150	if input == nil {
4151		input = &ListBuiltInIntentsInput{}
4152	}
4153
4154	output = &ListBuiltInIntentsOutput{}
4155	req = c.newRequest(op, input, output)
4156	return
4157}
4158
4159// ListBuiltInIntents API operation for Amazon Lex Model Building V2.
4160//
4161// Gets a list of built-in intents provided by Amazon Lex that you can use in
4162// your bot.
4163//
4164// To use a built-in intent as a the base for your own intent, include the built-in
4165// intent signature in the parentIntentSignature parameter when you call the
4166// CreateIntent operation. For more information, see CreateIntent.
4167//
4168// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4169// with awserr.Error's Code and Message methods to get detailed information about
4170// the error.
4171//
4172// See the AWS API reference guide for Amazon Lex Model Building V2's
4173// API operation ListBuiltInIntents for usage and error information.
4174//
4175// Returned Error Types:
4176//   * ThrottlingException
4177//   Your request rate is too high. Reduce the frequency of requests.
4178//
4179//   * ServiceQuotaExceededException
4180//   You have reached a quota for your bot.
4181//
4182//   * ValidationException
4183//   One of the input parameters in your request isn't valid. Check the parameters
4184//   and try your request again.
4185//
4186//   * InternalServerException
4187//   The service encountered an unexpected condition. Try your request again.
4188//
4189// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBuiltInIntents
4190func (c *LexModelsV2) ListBuiltInIntents(input *ListBuiltInIntentsInput) (*ListBuiltInIntentsOutput, error) {
4191	req, out := c.ListBuiltInIntentsRequest(input)
4192	return out, req.Send()
4193}
4194
4195// ListBuiltInIntentsWithContext is the same as ListBuiltInIntents with the addition of
4196// the ability to pass a context and additional request options.
4197//
4198// See ListBuiltInIntents for details on how to use this API operation.
4199//
4200// The context must be non-nil and will be used for request cancellation. If
4201// the context is nil a panic will occur. In the future the SDK may create
4202// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4203// for more information on using Contexts.
4204func (c *LexModelsV2) ListBuiltInIntentsWithContext(ctx aws.Context, input *ListBuiltInIntentsInput, opts ...request.Option) (*ListBuiltInIntentsOutput, error) {
4205	req, out := c.ListBuiltInIntentsRequest(input)
4206	req.SetContext(ctx)
4207	req.ApplyOptions(opts...)
4208	return out, req.Send()
4209}
4210
4211// ListBuiltInIntentsPages iterates over the pages of a ListBuiltInIntents operation,
4212// calling the "fn" function with the response data for each page. To stop
4213// iterating, return false from the fn function.
4214//
4215// See ListBuiltInIntents method for more information on how to use this operation.
4216//
4217// Note: This operation can generate multiple requests to a service.
4218//
4219//    // Example iterating over at most 3 pages of a ListBuiltInIntents operation.
4220//    pageNum := 0
4221//    err := client.ListBuiltInIntentsPages(params,
4222//        func(page *lexmodelsv2.ListBuiltInIntentsOutput, lastPage bool) bool {
4223//            pageNum++
4224//            fmt.Println(page)
4225//            return pageNum <= 3
4226//        })
4227//
4228func (c *LexModelsV2) ListBuiltInIntentsPages(input *ListBuiltInIntentsInput, fn func(*ListBuiltInIntentsOutput, bool) bool) error {
4229	return c.ListBuiltInIntentsPagesWithContext(aws.BackgroundContext(), input, fn)
4230}
4231
4232// ListBuiltInIntentsPagesWithContext same as ListBuiltInIntentsPages except
4233// it takes a Context and allows setting request options on the pages.
4234//
4235// The context must be non-nil and will be used for request cancellation. If
4236// the context is nil a panic will occur. In the future the SDK may create
4237// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4238// for more information on using Contexts.
4239func (c *LexModelsV2) ListBuiltInIntentsPagesWithContext(ctx aws.Context, input *ListBuiltInIntentsInput, fn func(*ListBuiltInIntentsOutput, bool) bool, opts ...request.Option) error {
4240	p := request.Pagination{
4241		NewRequest: func() (*request.Request, error) {
4242			var inCpy *ListBuiltInIntentsInput
4243			if input != nil {
4244				tmp := *input
4245				inCpy = &tmp
4246			}
4247			req, _ := c.ListBuiltInIntentsRequest(inCpy)
4248			req.SetContext(ctx)
4249			req.ApplyOptions(opts...)
4250			return req, nil
4251		},
4252	}
4253
4254	for p.Next() {
4255		if !fn(p.Page().(*ListBuiltInIntentsOutput), !p.HasNextPage()) {
4256			break
4257		}
4258	}
4259
4260	return p.Err()
4261}
4262
4263const opListBuiltInSlotTypes = "ListBuiltInSlotTypes"
4264
4265// ListBuiltInSlotTypesRequest generates a "aws/request.Request" representing the
4266// client's request for the ListBuiltInSlotTypes operation. The "output" return
4267// value will be populated with the request's response once the request completes
4268// successfully.
4269//
4270// Use "Send" method on the returned Request to send the API call to the service.
4271// the "output" return value is not valid until after Send returns without error.
4272//
4273// See ListBuiltInSlotTypes for more information on using the ListBuiltInSlotTypes
4274// API call, and error handling.
4275//
4276// This method is useful when you want to inject custom logic or configuration
4277// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4278//
4279//
4280//    // Example sending a request using the ListBuiltInSlotTypesRequest method.
4281//    req, resp := client.ListBuiltInSlotTypesRequest(params)
4282//
4283//    err := req.Send()
4284//    if err == nil { // resp is now filled
4285//        fmt.Println(resp)
4286//    }
4287//
4288// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBuiltInSlotTypes
4289func (c *LexModelsV2) ListBuiltInSlotTypesRequest(input *ListBuiltInSlotTypesInput) (req *request.Request, output *ListBuiltInSlotTypesOutput) {
4290	op := &request.Operation{
4291		Name:       opListBuiltInSlotTypes,
4292		HTTPMethod: "POST",
4293		HTTPPath:   "/builtins/locales/{localeId}/slottypes/",
4294		Paginator: &request.Paginator{
4295			InputTokens:     []string{"nextToken"},
4296			OutputTokens:    []string{"nextToken"},
4297			LimitToken:      "maxResults",
4298			TruncationToken: "",
4299		},
4300	}
4301
4302	if input == nil {
4303		input = &ListBuiltInSlotTypesInput{}
4304	}
4305
4306	output = &ListBuiltInSlotTypesOutput{}
4307	req = c.newRequest(op, input, output)
4308	return
4309}
4310
4311// ListBuiltInSlotTypes API operation for Amazon Lex Model Building V2.
4312//
4313// Gets a list of built-in slot types that meet the specified criteria.
4314//
4315// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4316// with awserr.Error's Code and Message methods to get detailed information about
4317// the error.
4318//
4319// See the AWS API reference guide for Amazon Lex Model Building V2's
4320// API operation ListBuiltInSlotTypes for usage and error information.
4321//
4322// Returned Error Types:
4323//   * ThrottlingException
4324//   Your request rate is too high. Reduce the frequency of requests.
4325//
4326//   * ServiceQuotaExceededException
4327//   You have reached a quota for your bot.
4328//
4329//   * ValidationException
4330//   One of the input parameters in your request isn't valid. Check the parameters
4331//   and try your request again.
4332//
4333//   * InternalServerException
4334//   The service encountered an unexpected condition. Try your request again.
4335//
4336// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListBuiltInSlotTypes
4337func (c *LexModelsV2) ListBuiltInSlotTypes(input *ListBuiltInSlotTypesInput) (*ListBuiltInSlotTypesOutput, error) {
4338	req, out := c.ListBuiltInSlotTypesRequest(input)
4339	return out, req.Send()
4340}
4341
4342// ListBuiltInSlotTypesWithContext is the same as ListBuiltInSlotTypes with the addition of
4343// the ability to pass a context and additional request options.
4344//
4345// See ListBuiltInSlotTypes for details on how to use this API operation.
4346//
4347// The context must be non-nil and will be used for request cancellation. If
4348// the context is nil a panic will occur. In the future the SDK may create
4349// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4350// for more information on using Contexts.
4351func (c *LexModelsV2) ListBuiltInSlotTypesWithContext(ctx aws.Context, input *ListBuiltInSlotTypesInput, opts ...request.Option) (*ListBuiltInSlotTypesOutput, error) {
4352	req, out := c.ListBuiltInSlotTypesRequest(input)
4353	req.SetContext(ctx)
4354	req.ApplyOptions(opts...)
4355	return out, req.Send()
4356}
4357
4358// ListBuiltInSlotTypesPages iterates over the pages of a ListBuiltInSlotTypes operation,
4359// calling the "fn" function with the response data for each page. To stop
4360// iterating, return false from the fn function.
4361//
4362// See ListBuiltInSlotTypes method for more information on how to use this operation.
4363//
4364// Note: This operation can generate multiple requests to a service.
4365//
4366//    // Example iterating over at most 3 pages of a ListBuiltInSlotTypes operation.
4367//    pageNum := 0
4368//    err := client.ListBuiltInSlotTypesPages(params,
4369//        func(page *lexmodelsv2.ListBuiltInSlotTypesOutput, lastPage bool) bool {
4370//            pageNum++
4371//            fmt.Println(page)
4372//            return pageNum <= 3
4373//        })
4374//
4375func (c *LexModelsV2) ListBuiltInSlotTypesPages(input *ListBuiltInSlotTypesInput, fn func(*ListBuiltInSlotTypesOutput, bool) bool) error {
4376	return c.ListBuiltInSlotTypesPagesWithContext(aws.BackgroundContext(), input, fn)
4377}
4378
4379// ListBuiltInSlotTypesPagesWithContext same as ListBuiltInSlotTypesPages except
4380// it takes a Context and allows setting request options on the pages.
4381//
4382// The context must be non-nil and will be used for request cancellation. If
4383// the context is nil a panic will occur. In the future the SDK may create
4384// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4385// for more information on using Contexts.
4386func (c *LexModelsV2) ListBuiltInSlotTypesPagesWithContext(ctx aws.Context, input *ListBuiltInSlotTypesInput, fn func(*ListBuiltInSlotTypesOutput, bool) bool, opts ...request.Option) error {
4387	p := request.Pagination{
4388		NewRequest: func() (*request.Request, error) {
4389			var inCpy *ListBuiltInSlotTypesInput
4390			if input != nil {
4391				tmp := *input
4392				inCpy = &tmp
4393			}
4394			req, _ := c.ListBuiltInSlotTypesRequest(inCpy)
4395			req.SetContext(ctx)
4396			req.ApplyOptions(opts...)
4397			return req, nil
4398		},
4399	}
4400
4401	for p.Next() {
4402		if !fn(p.Page().(*ListBuiltInSlotTypesOutput), !p.HasNextPage()) {
4403			break
4404		}
4405	}
4406
4407	return p.Err()
4408}
4409
4410const opListExports = "ListExports"
4411
4412// ListExportsRequest generates a "aws/request.Request" representing the
4413// client's request for the ListExports operation. The "output" return
4414// value will be populated with the request's response once the request completes
4415// successfully.
4416//
4417// Use "Send" method on the returned Request to send the API call to the service.
4418// the "output" return value is not valid until after Send returns without error.
4419//
4420// See ListExports for more information on using the ListExports
4421// API call, and error handling.
4422//
4423// This method is useful when you want to inject custom logic or configuration
4424// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4425//
4426//
4427//    // Example sending a request using the ListExportsRequest method.
4428//    req, resp := client.ListExportsRequest(params)
4429//
4430//    err := req.Send()
4431//    if err == nil { // resp is now filled
4432//        fmt.Println(resp)
4433//    }
4434//
4435// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListExports
4436func (c *LexModelsV2) ListExportsRequest(input *ListExportsInput) (req *request.Request, output *ListExportsOutput) {
4437	op := &request.Operation{
4438		Name:       opListExports,
4439		HTTPMethod: "POST",
4440		HTTPPath:   "/exports/",
4441		Paginator: &request.Paginator{
4442			InputTokens:     []string{"nextToken"},
4443			OutputTokens:    []string{"nextToken"},
4444			LimitToken:      "maxResults",
4445			TruncationToken: "",
4446		},
4447	}
4448
4449	if input == nil {
4450		input = &ListExportsInput{}
4451	}
4452
4453	output = &ListExportsOutput{}
4454	req = c.newRequest(op, input, output)
4455	return
4456}
4457
4458// ListExports API operation for Amazon Lex Model Building V2.
4459//
4460// Lists the exports for a bot or bot locale. Exports are kept in the list for
4461// 7 days.
4462//
4463// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4464// with awserr.Error's Code and Message methods to get detailed information about
4465// the error.
4466//
4467// See the AWS API reference guide for Amazon Lex Model Building V2's
4468// API operation ListExports for usage and error information.
4469//
4470// Returned Error Types:
4471//   * ThrottlingException
4472//   Your request rate is too high. Reduce the frequency of requests.
4473//
4474//   * ValidationException
4475//   One of the input parameters in your request isn't valid. Check the parameters
4476//   and try your request again.
4477//
4478//   * InternalServerException
4479//   The service encountered an unexpected condition. Try your request again.
4480//
4481// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListExports
4482func (c *LexModelsV2) ListExports(input *ListExportsInput) (*ListExportsOutput, error) {
4483	req, out := c.ListExportsRequest(input)
4484	return out, req.Send()
4485}
4486
4487// ListExportsWithContext is the same as ListExports with the addition of
4488// the ability to pass a context and additional request options.
4489//
4490// See ListExports for details on how to use this API operation.
4491//
4492// The context must be non-nil and will be used for request cancellation. If
4493// the context is nil a panic will occur. In the future the SDK may create
4494// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4495// for more information on using Contexts.
4496func (c *LexModelsV2) ListExportsWithContext(ctx aws.Context, input *ListExportsInput, opts ...request.Option) (*ListExportsOutput, error) {
4497	req, out := c.ListExportsRequest(input)
4498	req.SetContext(ctx)
4499	req.ApplyOptions(opts...)
4500	return out, req.Send()
4501}
4502
4503// ListExportsPages iterates over the pages of a ListExports operation,
4504// calling the "fn" function with the response data for each page. To stop
4505// iterating, return false from the fn function.
4506//
4507// See ListExports method for more information on how to use this operation.
4508//
4509// Note: This operation can generate multiple requests to a service.
4510//
4511//    // Example iterating over at most 3 pages of a ListExports operation.
4512//    pageNum := 0
4513//    err := client.ListExportsPages(params,
4514//        func(page *lexmodelsv2.ListExportsOutput, lastPage bool) bool {
4515//            pageNum++
4516//            fmt.Println(page)
4517//            return pageNum <= 3
4518//        })
4519//
4520func (c *LexModelsV2) ListExportsPages(input *ListExportsInput, fn func(*ListExportsOutput, bool) bool) error {
4521	return c.ListExportsPagesWithContext(aws.BackgroundContext(), input, fn)
4522}
4523
4524// ListExportsPagesWithContext same as ListExportsPages except
4525// it takes a Context and allows setting request options on the pages.
4526//
4527// The context must be non-nil and will be used for request cancellation. If
4528// the context is nil a panic will occur. In the future the SDK may create
4529// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4530// for more information on using Contexts.
4531func (c *LexModelsV2) ListExportsPagesWithContext(ctx aws.Context, input *ListExportsInput, fn func(*ListExportsOutput, bool) bool, opts ...request.Option) error {
4532	p := request.Pagination{
4533		NewRequest: func() (*request.Request, error) {
4534			var inCpy *ListExportsInput
4535			if input != nil {
4536				tmp := *input
4537				inCpy = &tmp
4538			}
4539			req, _ := c.ListExportsRequest(inCpy)
4540			req.SetContext(ctx)
4541			req.ApplyOptions(opts...)
4542			return req, nil
4543		},
4544	}
4545
4546	for p.Next() {
4547		if !fn(p.Page().(*ListExportsOutput), !p.HasNextPage()) {
4548			break
4549		}
4550	}
4551
4552	return p.Err()
4553}
4554
4555const opListImports = "ListImports"
4556
4557// ListImportsRequest generates a "aws/request.Request" representing the
4558// client's request for the ListImports operation. The "output" return
4559// value will be populated with the request's response once the request completes
4560// successfully.
4561//
4562// Use "Send" method on the returned Request to send the API call to the service.
4563// the "output" return value is not valid until after Send returns without error.
4564//
4565// See ListImports for more information on using the ListImports
4566// API call, and error handling.
4567//
4568// This method is useful when you want to inject custom logic or configuration
4569// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4570//
4571//
4572//    // Example sending a request using the ListImportsRequest method.
4573//    req, resp := client.ListImportsRequest(params)
4574//
4575//    err := req.Send()
4576//    if err == nil { // resp is now filled
4577//        fmt.Println(resp)
4578//    }
4579//
4580// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListImports
4581func (c *LexModelsV2) ListImportsRequest(input *ListImportsInput) (req *request.Request, output *ListImportsOutput) {
4582	op := &request.Operation{
4583		Name:       opListImports,
4584		HTTPMethod: "POST",
4585		HTTPPath:   "/imports/",
4586		Paginator: &request.Paginator{
4587			InputTokens:     []string{"nextToken"},
4588			OutputTokens:    []string{"nextToken"},
4589			LimitToken:      "maxResults",
4590			TruncationToken: "",
4591		},
4592	}
4593
4594	if input == nil {
4595		input = &ListImportsInput{}
4596	}
4597
4598	output = &ListImportsOutput{}
4599	req = c.newRequest(op, input, output)
4600	return
4601}
4602
4603// ListImports API operation for Amazon Lex Model Building V2.
4604//
4605// Lists the imports for a bot or bot locale. Imports are kept in the list for
4606// 7 days.
4607//
4608// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4609// with awserr.Error's Code and Message methods to get detailed information about
4610// the error.
4611//
4612// See the AWS API reference guide for Amazon Lex Model Building V2's
4613// API operation ListImports for usage and error information.
4614//
4615// Returned Error Types:
4616//   * ThrottlingException
4617//   Your request rate is too high. Reduce the frequency of requests.
4618//
4619//   * ValidationException
4620//   One of the input parameters in your request isn't valid. Check the parameters
4621//   and try your request again.
4622//
4623//   * InternalServerException
4624//   The service encountered an unexpected condition. Try your request again.
4625//
4626// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListImports
4627func (c *LexModelsV2) ListImports(input *ListImportsInput) (*ListImportsOutput, error) {
4628	req, out := c.ListImportsRequest(input)
4629	return out, req.Send()
4630}
4631
4632// ListImportsWithContext is the same as ListImports with the addition of
4633// the ability to pass a context and additional request options.
4634//
4635// See ListImports for details on how to use this API operation.
4636//
4637// The context must be non-nil and will be used for request cancellation. If
4638// the context is nil a panic will occur. In the future the SDK may create
4639// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4640// for more information on using Contexts.
4641func (c *LexModelsV2) ListImportsWithContext(ctx aws.Context, input *ListImportsInput, opts ...request.Option) (*ListImportsOutput, error) {
4642	req, out := c.ListImportsRequest(input)
4643	req.SetContext(ctx)
4644	req.ApplyOptions(opts...)
4645	return out, req.Send()
4646}
4647
4648// ListImportsPages iterates over the pages of a ListImports operation,
4649// calling the "fn" function with the response data for each page. To stop
4650// iterating, return false from the fn function.
4651//
4652// See ListImports method for more information on how to use this operation.
4653//
4654// Note: This operation can generate multiple requests to a service.
4655//
4656//    // Example iterating over at most 3 pages of a ListImports operation.
4657//    pageNum := 0
4658//    err := client.ListImportsPages(params,
4659//        func(page *lexmodelsv2.ListImportsOutput, lastPage bool) bool {
4660//            pageNum++
4661//            fmt.Println(page)
4662//            return pageNum <= 3
4663//        })
4664//
4665func (c *LexModelsV2) ListImportsPages(input *ListImportsInput, fn func(*ListImportsOutput, bool) bool) error {
4666	return c.ListImportsPagesWithContext(aws.BackgroundContext(), input, fn)
4667}
4668
4669// ListImportsPagesWithContext same as ListImportsPages except
4670// it takes a Context and allows setting request options on the pages.
4671//
4672// The context must be non-nil and will be used for request cancellation. If
4673// the context is nil a panic will occur. In the future the SDK may create
4674// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4675// for more information on using Contexts.
4676func (c *LexModelsV2) ListImportsPagesWithContext(ctx aws.Context, input *ListImportsInput, fn func(*ListImportsOutput, bool) bool, opts ...request.Option) error {
4677	p := request.Pagination{
4678		NewRequest: func() (*request.Request, error) {
4679			var inCpy *ListImportsInput
4680			if input != nil {
4681				tmp := *input
4682				inCpy = &tmp
4683			}
4684			req, _ := c.ListImportsRequest(inCpy)
4685			req.SetContext(ctx)
4686			req.ApplyOptions(opts...)
4687			return req, nil
4688		},
4689	}
4690
4691	for p.Next() {
4692		if !fn(p.Page().(*ListImportsOutput), !p.HasNextPage()) {
4693			break
4694		}
4695	}
4696
4697	return p.Err()
4698}
4699
4700const opListIntents = "ListIntents"
4701
4702// ListIntentsRequest generates a "aws/request.Request" representing the
4703// client's request for the ListIntents operation. The "output" return
4704// value will be populated with the request's response once the request completes
4705// successfully.
4706//
4707// Use "Send" method on the returned Request to send the API call to the service.
4708// the "output" return value is not valid until after Send returns without error.
4709//
4710// See ListIntents for more information on using the ListIntents
4711// API call, and error handling.
4712//
4713// This method is useful when you want to inject custom logic or configuration
4714// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4715//
4716//
4717//    // Example sending a request using the ListIntentsRequest method.
4718//    req, resp := client.ListIntentsRequest(params)
4719//
4720//    err := req.Send()
4721//    if err == nil { // resp is now filled
4722//        fmt.Println(resp)
4723//    }
4724//
4725// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListIntents
4726func (c *LexModelsV2) ListIntentsRequest(input *ListIntentsInput) (req *request.Request, output *ListIntentsOutput) {
4727	op := &request.Operation{
4728		Name:       opListIntents,
4729		HTTPMethod: "POST",
4730		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/",
4731		Paginator: &request.Paginator{
4732			InputTokens:     []string{"nextToken"},
4733			OutputTokens:    []string{"nextToken"},
4734			LimitToken:      "maxResults",
4735			TruncationToken: "",
4736		},
4737	}
4738
4739	if input == nil {
4740		input = &ListIntentsInput{}
4741	}
4742
4743	output = &ListIntentsOutput{}
4744	req = c.newRequest(op, input, output)
4745	return
4746}
4747
4748// ListIntents API operation for Amazon Lex Model Building V2.
4749//
4750// Get a list of intents that meet the specified criteria.
4751//
4752// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4753// with awserr.Error's Code and Message methods to get detailed information about
4754// the error.
4755//
4756// See the AWS API reference guide for Amazon Lex Model Building V2's
4757// API operation ListIntents for usage and error information.
4758//
4759// Returned Error Types:
4760//   * ThrottlingException
4761//   Your request rate is too high. Reduce the frequency of requests.
4762//
4763//   * ServiceQuotaExceededException
4764//   You have reached a quota for your bot.
4765//
4766//   * ValidationException
4767//   One of the input parameters in your request isn't valid. Check the parameters
4768//   and try your request again.
4769//
4770//   * InternalServerException
4771//   The service encountered an unexpected condition. Try your request again.
4772//
4773// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListIntents
4774func (c *LexModelsV2) ListIntents(input *ListIntentsInput) (*ListIntentsOutput, error) {
4775	req, out := c.ListIntentsRequest(input)
4776	return out, req.Send()
4777}
4778
4779// ListIntentsWithContext is the same as ListIntents with the addition of
4780// the ability to pass a context and additional request options.
4781//
4782// See ListIntents for details on how to use this API operation.
4783//
4784// The context must be non-nil and will be used for request cancellation. If
4785// the context is nil a panic will occur. In the future the SDK may create
4786// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4787// for more information on using Contexts.
4788func (c *LexModelsV2) ListIntentsWithContext(ctx aws.Context, input *ListIntentsInput, opts ...request.Option) (*ListIntentsOutput, error) {
4789	req, out := c.ListIntentsRequest(input)
4790	req.SetContext(ctx)
4791	req.ApplyOptions(opts...)
4792	return out, req.Send()
4793}
4794
4795// ListIntentsPages iterates over the pages of a ListIntents operation,
4796// calling the "fn" function with the response data for each page. To stop
4797// iterating, return false from the fn function.
4798//
4799// See ListIntents method for more information on how to use this operation.
4800//
4801// Note: This operation can generate multiple requests to a service.
4802//
4803//    // Example iterating over at most 3 pages of a ListIntents operation.
4804//    pageNum := 0
4805//    err := client.ListIntentsPages(params,
4806//        func(page *lexmodelsv2.ListIntentsOutput, lastPage bool) bool {
4807//            pageNum++
4808//            fmt.Println(page)
4809//            return pageNum <= 3
4810//        })
4811//
4812func (c *LexModelsV2) ListIntentsPages(input *ListIntentsInput, fn func(*ListIntentsOutput, bool) bool) error {
4813	return c.ListIntentsPagesWithContext(aws.BackgroundContext(), input, fn)
4814}
4815
4816// ListIntentsPagesWithContext same as ListIntentsPages except
4817// it takes a Context and allows setting request options on the pages.
4818//
4819// The context must be non-nil and will be used for request cancellation. If
4820// the context is nil a panic will occur. In the future the SDK may create
4821// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4822// for more information on using Contexts.
4823func (c *LexModelsV2) ListIntentsPagesWithContext(ctx aws.Context, input *ListIntentsInput, fn func(*ListIntentsOutput, bool) bool, opts ...request.Option) error {
4824	p := request.Pagination{
4825		NewRequest: func() (*request.Request, error) {
4826			var inCpy *ListIntentsInput
4827			if input != nil {
4828				tmp := *input
4829				inCpy = &tmp
4830			}
4831			req, _ := c.ListIntentsRequest(inCpy)
4832			req.SetContext(ctx)
4833			req.ApplyOptions(opts...)
4834			return req, nil
4835		},
4836	}
4837
4838	for p.Next() {
4839		if !fn(p.Page().(*ListIntentsOutput), !p.HasNextPage()) {
4840			break
4841		}
4842	}
4843
4844	return p.Err()
4845}
4846
4847const opListSlotTypes = "ListSlotTypes"
4848
4849// ListSlotTypesRequest generates a "aws/request.Request" representing the
4850// client's request for the ListSlotTypes operation. The "output" return
4851// value will be populated with the request's response once the request completes
4852// successfully.
4853//
4854// Use "Send" method on the returned Request to send the API call to the service.
4855// the "output" return value is not valid until after Send returns without error.
4856//
4857// See ListSlotTypes for more information on using the ListSlotTypes
4858// API call, and error handling.
4859//
4860// This method is useful when you want to inject custom logic or configuration
4861// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4862//
4863//
4864//    // Example sending a request using the ListSlotTypesRequest method.
4865//    req, resp := client.ListSlotTypesRequest(params)
4866//
4867//    err := req.Send()
4868//    if err == nil { // resp is now filled
4869//        fmt.Println(resp)
4870//    }
4871//
4872// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListSlotTypes
4873func (c *LexModelsV2) ListSlotTypesRequest(input *ListSlotTypesInput) (req *request.Request, output *ListSlotTypesOutput) {
4874	op := &request.Operation{
4875		Name:       opListSlotTypes,
4876		HTTPMethod: "POST",
4877		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/slottypes/",
4878		Paginator: &request.Paginator{
4879			InputTokens:     []string{"nextToken"},
4880			OutputTokens:    []string{"nextToken"},
4881			LimitToken:      "maxResults",
4882			TruncationToken: "",
4883		},
4884	}
4885
4886	if input == nil {
4887		input = &ListSlotTypesInput{}
4888	}
4889
4890	output = &ListSlotTypesOutput{}
4891	req = c.newRequest(op, input, output)
4892	return
4893}
4894
4895// ListSlotTypes API operation for Amazon Lex Model Building V2.
4896//
4897// Gets a list of slot types that match the specified criteria.
4898//
4899// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4900// with awserr.Error's Code and Message methods to get detailed information about
4901// the error.
4902//
4903// See the AWS API reference guide for Amazon Lex Model Building V2's
4904// API operation ListSlotTypes for usage and error information.
4905//
4906// Returned Error Types:
4907//   * ThrottlingException
4908//   Your request rate is too high. Reduce the frequency of requests.
4909//
4910//   * ServiceQuotaExceededException
4911//   You have reached a quota for your bot.
4912//
4913//   * ValidationException
4914//   One of the input parameters in your request isn't valid. Check the parameters
4915//   and try your request again.
4916//
4917//   * InternalServerException
4918//   The service encountered an unexpected condition. Try your request again.
4919//
4920// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListSlotTypes
4921func (c *LexModelsV2) ListSlotTypes(input *ListSlotTypesInput) (*ListSlotTypesOutput, error) {
4922	req, out := c.ListSlotTypesRequest(input)
4923	return out, req.Send()
4924}
4925
4926// ListSlotTypesWithContext is the same as ListSlotTypes with the addition of
4927// the ability to pass a context and additional request options.
4928//
4929// See ListSlotTypes for details on how to use this API operation.
4930//
4931// The context must be non-nil and will be used for request cancellation. If
4932// the context is nil a panic will occur. In the future the SDK may create
4933// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4934// for more information on using Contexts.
4935func (c *LexModelsV2) ListSlotTypesWithContext(ctx aws.Context, input *ListSlotTypesInput, opts ...request.Option) (*ListSlotTypesOutput, error) {
4936	req, out := c.ListSlotTypesRequest(input)
4937	req.SetContext(ctx)
4938	req.ApplyOptions(opts...)
4939	return out, req.Send()
4940}
4941
4942// ListSlotTypesPages iterates over the pages of a ListSlotTypes operation,
4943// calling the "fn" function with the response data for each page. To stop
4944// iterating, return false from the fn function.
4945//
4946// See ListSlotTypes method for more information on how to use this operation.
4947//
4948// Note: This operation can generate multiple requests to a service.
4949//
4950//    // Example iterating over at most 3 pages of a ListSlotTypes operation.
4951//    pageNum := 0
4952//    err := client.ListSlotTypesPages(params,
4953//        func(page *lexmodelsv2.ListSlotTypesOutput, lastPage bool) bool {
4954//            pageNum++
4955//            fmt.Println(page)
4956//            return pageNum <= 3
4957//        })
4958//
4959func (c *LexModelsV2) ListSlotTypesPages(input *ListSlotTypesInput, fn func(*ListSlotTypesOutput, bool) bool) error {
4960	return c.ListSlotTypesPagesWithContext(aws.BackgroundContext(), input, fn)
4961}
4962
4963// ListSlotTypesPagesWithContext same as ListSlotTypesPages except
4964// it takes a Context and allows setting request options on the pages.
4965//
4966// The context must be non-nil and will be used for request cancellation. If
4967// the context is nil a panic will occur. In the future the SDK may create
4968// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4969// for more information on using Contexts.
4970func (c *LexModelsV2) ListSlotTypesPagesWithContext(ctx aws.Context, input *ListSlotTypesInput, fn func(*ListSlotTypesOutput, bool) bool, opts ...request.Option) error {
4971	p := request.Pagination{
4972		NewRequest: func() (*request.Request, error) {
4973			var inCpy *ListSlotTypesInput
4974			if input != nil {
4975				tmp := *input
4976				inCpy = &tmp
4977			}
4978			req, _ := c.ListSlotTypesRequest(inCpy)
4979			req.SetContext(ctx)
4980			req.ApplyOptions(opts...)
4981			return req, nil
4982		},
4983	}
4984
4985	for p.Next() {
4986		if !fn(p.Page().(*ListSlotTypesOutput), !p.HasNextPage()) {
4987			break
4988		}
4989	}
4990
4991	return p.Err()
4992}
4993
4994const opListSlots = "ListSlots"
4995
4996// ListSlotsRequest generates a "aws/request.Request" representing the
4997// client's request for the ListSlots operation. The "output" return
4998// value will be populated with the request's response once the request completes
4999// successfully.
5000//
5001// Use "Send" method on the returned Request to send the API call to the service.
5002// the "output" return value is not valid until after Send returns without error.
5003//
5004// See ListSlots for more information on using the ListSlots
5005// API call, and error handling.
5006//
5007// This method is useful when you want to inject custom logic or configuration
5008// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5009//
5010//
5011//    // Example sending a request using the ListSlotsRequest method.
5012//    req, resp := client.ListSlotsRequest(params)
5013//
5014//    err := req.Send()
5015//    if err == nil { // resp is now filled
5016//        fmt.Println(resp)
5017//    }
5018//
5019// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListSlots
5020func (c *LexModelsV2) ListSlotsRequest(input *ListSlotsInput) (req *request.Request, output *ListSlotsOutput) {
5021	op := &request.Operation{
5022		Name:       opListSlots,
5023		HTTPMethod: "POST",
5024		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/slots/",
5025		Paginator: &request.Paginator{
5026			InputTokens:     []string{"nextToken"},
5027			OutputTokens:    []string{"nextToken"},
5028			LimitToken:      "maxResults",
5029			TruncationToken: "",
5030		},
5031	}
5032
5033	if input == nil {
5034		input = &ListSlotsInput{}
5035	}
5036
5037	output = &ListSlotsOutput{}
5038	req = c.newRequest(op, input, output)
5039	return
5040}
5041
5042// ListSlots API operation for Amazon Lex Model Building V2.
5043//
5044// Gets a list of slots that match the specified criteria.
5045//
5046// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5047// with awserr.Error's Code and Message methods to get detailed information about
5048// the error.
5049//
5050// See the AWS API reference guide for Amazon Lex Model Building V2's
5051// API operation ListSlots for usage and error information.
5052//
5053// Returned Error Types:
5054//   * ThrottlingException
5055//   Your request rate is too high. Reduce the frequency of requests.
5056//
5057//   * ServiceQuotaExceededException
5058//   You have reached a quota for your bot.
5059//
5060//   * ValidationException
5061//   One of the input parameters in your request isn't valid. Check the parameters
5062//   and try your request again.
5063//
5064//   * InternalServerException
5065//   The service encountered an unexpected condition. Try your request again.
5066//
5067// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListSlots
5068func (c *LexModelsV2) ListSlots(input *ListSlotsInput) (*ListSlotsOutput, error) {
5069	req, out := c.ListSlotsRequest(input)
5070	return out, req.Send()
5071}
5072
5073// ListSlotsWithContext is the same as ListSlots with the addition of
5074// the ability to pass a context and additional request options.
5075//
5076// See ListSlots for details on how to use this API operation.
5077//
5078// The context must be non-nil and will be used for request cancellation. If
5079// the context is nil a panic will occur. In the future the SDK may create
5080// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5081// for more information on using Contexts.
5082func (c *LexModelsV2) ListSlotsWithContext(ctx aws.Context, input *ListSlotsInput, opts ...request.Option) (*ListSlotsOutput, error) {
5083	req, out := c.ListSlotsRequest(input)
5084	req.SetContext(ctx)
5085	req.ApplyOptions(opts...)
5086	return out, req.Send()
5087}
5088
5089// ListSlotsPages iterates over the pages of a ListSlots operation,
5090// calling the "fn" function with the response data for each page. To stop
5091// iterating, return false from the fn function.
5092//
5093// See ListSlots method for more information on how to use this operation.
5094//
5095// Note: This operation can generate multiple requests to a service.
5096//
5097//    // Example iterating over at most 3 pages of a ListSlots operation.
5098//    pageNum := 0
5099//    err := client.ListSlotsPages(params,
5100//        func(page *lexmodelsv2.ListSlotsOutput, lastPage bool) bool {
5101//            pageNum++
5102//            fmt.Println(page)
5103//            return pageNum <= 3
5104//        })
5105//
5106func (c *LexModelsV2) ListSlotsPages(input *ListSlotsInput, fn func(*ListSlotsOutput, bool) bool) error {
5107	return c.ListSlotsPagesWithContext(aws.BackgroundContext(), input, fn)
5108}
5109
5110// ListSlotsPagesWithContext same as ListSlotsPages except
5111// it takes a Context and allows setting request options on the pages.
5112//
5113// The context must be non-nil and will be used for request cancellation. If
5114// the context is nil a panic will occur. In the future the SDK may create
5115// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5116// for more information on using Contexts.
5117func (c *LexModelsV2) ListSlotsPagesWithContext(ctx aws.Context, input *ListSlotsInput, fn func(*ListSlotsOutput, bool) bool, opts ...request.Option) error {
5118	p := request.Pagination{
5119		NewRequest: func() (*request.Request, error) {
5120			var inCpy *ListSlotsInput
5121			if input != nil {
5122				tmp := *input
5123				inCpy = &tmp
5124			}
5125			req, _ := c.ListSlotsRequest(inCpy)
5126			req.SetContext(ctx)
5127			req.ApplyOptions(opts...)
5128			return req, nil
5129		},
5130	}
5131
5132	for p.Next() {
5133		if !fn(p.Page().(*ListSlotsOutput), !p.HasNextPage()) {
5134			break
5135		}
5136	}
5137
5138	return p.Err()
5139}
5140
5141const opListTagsForResource = "ListTagsForResource"
5142
5143// ListTagsForResourceRequest generates a "aws/request.Request" representing the
5144// client's request for the ListTagsForResource operation. The "output" return
5145// value will be populated with the request's response once the request completes
5146// successfully.
5147//
5148// Use "Send" method on the returned Request to send the API call to the service.
5149// the "output" return value is not valid until after Send returns without error.
5150//
5151// See ListTagsForResource for more information on using the ListTagsForResource
5152// API call, and error handling.
5153//
5154// This method is useful when you want to inject custom logic or configuration
5155// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5156//
5157//
5158//    // Example sending a request using the ListTagsForResourceRequest method.
5159//    req, resp := client.ListTagsForResourceRequest(params)
5160//
5161//    err := req.Send()
5162//    if err == nil { // resp is now filled
5163//        fmt.Println(resp)
5164//    }
5165//
5166// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListTagsForResource
5167func (c *LexModelsV2) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
5168	op := &request.Operation{
5169		Name:       opListTagsForResource,
5170		HTTPMethod: "GET",
5171		HTTPPath:   "/tags/{resourceARN}",
5172	}
5173
5174	if input == nil {
5175		input = &ListTagsForResourceInput{}
5176	}
5177
5178	output = &ListTagsForResourceOutput{}
5179	req = c.newRequest(op, input, output)
5180	return
5181}
5182
5183// ListTagsForResource API operation for Amazon Lex Model Building V2.
5184//
5185// Gets a list of tags associated with a resource. Only bots, bot aliases, and
5186// bot channels can have tags associated with them.
5187//
5188// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5189// with awserr.Error's Code and Message methods to get detailed information about
5190// the error.
5191//
5192// See the AWS API reference guide for Amazon Lex Model Building V2's
5193// API operation ListTagsForResource for usage and error information.
5194//
5195// Returned Error Types:
5196//   * InternalServerException
5197//   The service encountered an unexpected condition. Try your request again.
5198//
5199//   * ThrottlingException
5200//   Your request rate is too high. Reduce the frequency of requests.
5201//
5202//   * ResourceNotFoundException
5203//   You asked to describe a resource that doesn't exist. Check the resource that
5204//   you are requesting and try again.
5205//
5206//   * ValidationException
5207//   One of the input parameters in your request isn't valid. Check the parameters
5208//   and try your request again.
5209//
5210// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/ListTagsForResource
5211func (c *LexModelsV2) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
5212	req, out := c.ListTagsForResourceRequest(input)
5213	return out, req.Send()
5214}
5215
5216// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
5217// the ability to pass a context and additional request options.
5218//
5219// See ListTagsForResource for details on how to use this API operation.
5220//
5221// The context must be non-nil and will be used for request cancellation. If
5222// the context is nil a panic will occur. In the future the SDK may create
5223// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5224// for more information on using Contexts.
5225func (c *LexModelsV2) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
5226	req, out := c.ListTagsForResourceRequest(input)
5227	req.SetContext(ctx)
5228	req.ApplyOptions(opts...)
5229	return out, req.Send()
5230}
5231
5232const opStartImport = "StartImport"
5233
5234// StartImportRequest generates a "aws/request.Request" representing the
5235// client's request for the StartImport operation. The "output" return
5236// value will be populated with the request's response once the request completes
5237// successfully.
5238//
5239// Use "Send" method on the returned Request to send the API call to the service.
5240// the "output" return value is not valid until after Send returns without error.
5241//
5242// See StartImport for more information on using the StartImport
5243// API call, and error handling.
5244//
5245// This method is useful when you want to inject custom logic or configuration
5246// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5247//
5248//
5249//    // Example sending a request using the StartImportRequest method.
5250//    req, resp := client.StartImportRequest(params)
5251//
5252//    err := req.Send()
5253//    if err == nil { // resp is now filled
5254//        fmt.Println(resp)
5255//    }
5256//
5257// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/StartImport
5258func (c *LexModelsV2) StartImportRequest(input *StartImportInput) (req *request.Request, output *StartImportOutput) {
5259	op := &request.Operation{
5260		Name:       opStartImport,
5261		HTTPMethod: "PUT",
5262		HTTPPath:   "/imports/",
5263	}
5264
5265	if input == nil {
5266		input = &StartImportInput{}
5267	}
5268
5269	output = &StartImportOutput{}
5270	req = c.newRequest(op, input, output)
5271	return
5272}
5273
5274// StartImport API operation for Amazon Lex Model Building V2.
5275//
5276// Starts importing a bot or bot locale from a zip archive that you uploaded
5277// to an S3 bucket.
5278//
5279// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5280// with awserr.Error's Code and Message methods to get detailed information about
5281// the error.
5282//
5283// See the AWS API reference guide for Amazon Lex Model Building V2's
5284// API operation StartImport for usage and error information.
5285//
5286// Returned Error Types:
5287//   * ThrottlingException
5288//   Your request rate is too high. Reduce the frequency of requests.
5289//
5290//   * ServiceQuotaExceededException
5291//   You have reached a quota for your bot.
5292//
5293//   * ValidationException
5294//   One of the input parameters in your request isn't valid. Check the parameters
5295//   and try your request again.
5296//
5297//   * ResourceNotFoundException
5298//   You asked to describe a resource that doesn't exist. Check the resource that
5299//   you are requesting and try again.
5300//
5301//   * ConflictException
5302//   The action that you tried to perform couldn't be completed because the resource
5303//   is in a conflicting state. For example, deleting a bot that is in the CREATING
5304//   state. Try your request again.
5305//
5306//   * InternalServerException
5307//   The service encountered an unexpected condition. Try your request again.
5308//
5309// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/StartImport
5310func (c *LexModelsV2) StartImport(input *StartImportInput) (*StartImportOutput, error) {
5311	req, out := c.StartImportRequest(input)
5312	return out, req.Send()
5313}
5314
5315// StartImportWithContext is the same as StartImport with the addition of
5316// the ability to pass a context and additional request options.
5317//
5318// See StartImport for details on how to use this API operation.
5319//
5320// The context must be non-nil and will be used for request cancellation. If
5321// the context is nil a panic will occur. In the future the SDK may create
5322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5323// for more information on using Contexts.
5324func (c *LexModelsV2) StartImportWithContext(ctx aws.Context, input *StartImportInput, opts ...request.Option) (*StartImportOutput, error) {
5325	req, out := c.StartImportRequest(input)
5326	req.SetContext(ctx)
5327	req.ApplyOptions(opts...)
5328	return out, req.Send()
5329}
5330
5331const opTagResource = "TagResource"
5332
5333// TagResourceRequest generates a "aws/request.Request" representing the
5334// client's request for the TagResource operation. The "output" return
5335// value will be populated with the request's response once the request completes
5336// successfully.
5337//
5338// Use "Send" method on the returned Request to send the API call to the service.
5339// the "output" return value is not valid until after Send returns without error.
5340//
5341// See TagResource for more information on using the TagResource
5342// API call, and error handling.
5343//
5344// This method is useful when you want to inject custom logic or configuration
5345// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5346//
5347//
5348//    // Example sending a request using the TagResourceRequest method.
5349//    req, resp := client.TagResourceRequest(params)
5350//
5351//    err := req.Send()
5352//    if err == nil { // resp is now filled
5353//        fmt.Println(resp)
5354//    }
5355//
5356// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/TagResource
5357func (c *LexModelsV2) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
5358	op := &request.Operation{
5359		Name:       opTagResource,
5360		HTTPMethod: "POST",
5361		HTTPPath:   "/tags/{resourceARN}",
5362	}
5363
5364	if input == nil {
5365		input = &TagResourceInput{}
5366	}
5367
5368	output = &TagResourceOutput{}
5369	req = c.newRequest(op, input, output)
5370	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5371	return
5372}
5373
5374// TagResource API operation for Amazon Lex Model Building V2.
5375//
5376// Adds the specified tags to the specified resource. If a tag key already exists,
5377// the existing value is replaced with the new value.
5378//
5379// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5380// with awserr.Error's Code and Message methods to get detailed information about
5381// the error.
5382//
5383// See the AWS API reference guide for Amazon Lex Model Building V2's
5384// API operation TagResource for usage and error information.
5385//
5386// Returned Error Types:
5387//   * InternalServerException
5388//   The service encountered an unexpected condition. Try your request again.
5389//
5390//   * ThrottlingException
5391//   Your request rate is too high. Reduce the frequency of requests.
5392//
5393//   * ResourceNotFoundException
5394//   You asked to describe a resource that doesn't exist. Check the resource that
5395//   you are requesting and try again.
5396//
5397//   * ValidationException
5398//   One of the input parameters in your request isn't valid. Check the parameters
5399//   and try your request again.
5400//
5401// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/TagResource
5402func (c *LexModelsV2) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
5403	req, out := c.TagResourceRequest(input)
5404	return out, req.Send()
5405}
5406
5407// TagResourceWithContext is the same as TagResource with the addition of
5408// the ability to pass a context and additional request options.
5409//
5410// See TagResource for details on how to use this API operation.
5411//
5412// The context must be non-nil and will be used for request cancellation. If
5413// the context is nil a panic will occur. In the future the SDK may create
5414// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5415// for more information on using Contexts.
5416func (c *LexModelsV2) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
5417	req, out := c.TagResourceRequest(input)
5418	req.SetContext(ctx)
5419	req.ApplyOptions(opts...)
5420	return out, req.Send()
5421}
5422
5423const opUntagResource = "UntagResource"
5424
5425// UntagResourceRequest generates a "aws/request.Request" representing the
5426// client's request for the UntagResource operation. The "output" return
5427// value will be populated with the request's response once the request completes
5428// successfully.
5429//
5430// Use "Send" method on the returned Request to send the API call to the service.
5431// the "output" return value is not valid until after Send returns without error.
5432//
5433// See UntagResource for more information on using the UntagResource
5434// API call, and error handling.
5435//
5436// This method is useful when you want to inject custom logic or configuration
5437// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5438//
5439//
5440//    // Example sending a request using the UntagResourceRequest method.
5441//    req, resp := client.UntagResourceRequest(params)
5442//
5443//    err := req.Send()
5444//    if err == nil { // resp is now filled
5445//        fmt.Println(resp)
5446//    }
5447//
5448// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UntagResource
5449func (c *LexModelsV2) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
5450	op := &request.Operation{
5451		Name:       opUntagResource,
5452		HTTPMethod: "DELETE",
5453		HTTPPath:   "/tags/{resourceARN}",
5454	}
5455
5456	if input == nil {
5457		input = &UntagResourceInput{}
5458	}
5459
5460	output = &UntagResourceOutput{}
5461	req = c.newRequest(op, input, output)
5462	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5463	return
5464}
5465
5466// UntagResource API operation for Amazon Lex Model Building V2.
5467//
5468// Removes tags from a bot, bot alias, or bot channel.
5469//
5470// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5471// with awserr.Error's Code and Message methods to get detailed information about
5472// the error.
5473//
5474// See the AWS API reference guide for Amazon Lex Model Building V2's
5475// API operation UntagResource for usage and error information.
5476//
5477// Returned Error Types:
5478//   * InternalServerException
5479//   The service encountered an unexpected condition. Try your request again.
5480//
5481//   * ThrottlingException
5482//   Your request rate is too high. Reduce the frequency of requests.
5483//
5484//   * ResourceNotFoundException
5485//   You asked to describe a resource that doesn't exist. Check the resource that
5486//   you are requesting and try again.
5487//
5488//   * ValidationException
5489//   One of the input parameters in your request isn't valid. Check the parameters
5490//   and try your request again.
5491//
5492// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UntagResource
5493func (c *LexModelsV2) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
5494	req, out := c.UntagResourceRequest(input)
5495	return out, req.Send()
5496}
5497
5498// UntagResourceWithContext is the same as UntagResource with the addition of
5499// the ability to pass a context and additional request options.
5500//
5501// See UntagResource for details on how to use this API operation.
5502//
5503// The context must be non-nil and will be used for request cancellation. If
5504// the context is nil a panic will occur. In the future the SDK may create
5505// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5506// for more information on using Contexts.
5507func (c *LexModelsV2) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
5508	req, out := c.UntagResourceRequest(input)
5509	req.SetContext(ctx)
5510	req.ApplyOptions(opts...)
5511	return out, req.Send()
5512}
5513
5514const opUpdateBot = "UpdateBot"
5515
5516// UpdateBotRequest generates a "aws/request.Request" representing the
5517// client's request for the UpdateBot operation. The "output" return
5518// value will be populated with the request's response once the request completes
5519// successfully.
5520//
5521// Use "Send" method on the returned Request to send the API call to the service.
5522// the "output" return value is not valid until after Send returns without error.
5523//
5524// See UpdateBot for more information on using the UpdateBot
5525// API call, and error handling.
5526//
5527// This method is useful when you want to inject custom logic or configuration
5528// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5529//
5530//
5531//    // Example sending a request using the UpdateBotRequest method.
5532//    req, resp := client.UpdateBotRequest(params)
5533//
5534//    err := req.Send()
5535//    if err == nil { // resp is now filled
5536//        fmt.Println(resp)
5537//    }
5538//
5539// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateBot
5540func (c *LexModelsV2) UpdateBotRequest(input *UpdateBotInput) (req *request.Request, output *UpdateBotOutput) {
5541	op := &request.Operation{
5542		Name:       opUpdateBot,
5543		HTTPMethod: "PUT",
5544		HTTPPath:   "/bots/{botId}/",
5545	}
5546
5547	if input == nil {
5548		input = &UpdateBotInput{}
5549	}
5550
5551	output = &UpdateBotOutput{}
5552	req = c.newRequest(op, input, output)
5553	return
5554}
5555
5556// UpdateBot API operation for Amazon Lex Model Building V2.
5557//
5558// Updates the configuration of an existing bot.
5559//
5560// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5561// with awserr.Error's Code and Message methods to get detailed information about
5562// the error.
5563//
5564// See the AWS API reference guide for Amazon Lex Model Building V2's
5565// API operation UpdateBot for usage and error information.
5566//
5567// Returned Error Types:
5568//   * ThrottlingException
5569//   Your request rate is too high. Reduce the frequency of requests.
5570//
5571//   * ServiceQuotaExceededException
5572//   You have reached a quota for your bot.
5573//
5574//   * ValidationException
5575//   One of the input parameters in your request isn't valid. Check the parameters
5576//   and try your request again.
5577//
5578//   * PreconditionFailedException
5579//   Your request couldn't be completed because one or more request fields aren't
5580//   valid. Check the fields in your request and try again.
5581//
5582//   * ConflictException
5583//   The action that you tried to perform couldn't be completed because the resource
5584//   is in a conflicting state. For example, deleting a bot that is in the CREATING
5585//   state. Try your request again.
5586//
5587//   * InternalServerException
5588//   The service encountered an unexpected condition. Try your request again.
5589//
5590// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateBot
5591func (c *LexModelsV2) UpdateBot(input *UpdateBotInput) (*UpdateBotOutput, error) {
5592	req, out := c.UpdateBotRequest(input)
5593	return out, req.Send()
5594}
5595
5596// UpdateBotWithContext is the same as UpdateBot with the addition of
5597// the ability to pass a context and additional request options.
5598//
5599// See UpdateBot for details on how to use this API operation.
5600//
5601// The context must be non-nil and will be used for request cancellation. If
5602// the context is nil a panic will occur. In the future the SDK may create
5603// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5604// for more information on using Contexts.
5605func (c *LexModelsV2) UpdateBotWithContext(ctx aws.Context, input *UpdateBotInput, opts ...request.Option) (*UpdateBotOutput, error) {
5606	req, out := c.UpdateBotRequest(input)
5607	req.SetContext(ctx)
5608	req.ApplyOptions(opts...)
5609	return out, req.Send()
5610}
5611
5612const opUpdateBotAlias = "UpdateBotAlias"
5613
5614// UpdateBotAliasRequest generates a "aws/request.Request" representing the
5615// client's request for the UpdateBotAlias operation. The "output" return
5616// value will be populated with the request's response once the request completes
5617// successfully.
5618//
5619// Use "Send" method on the returned Request to send the API call to the service.
5620// the "output" return value is not valid until after Send returns without error.
5621//
5622// See UpdateBotAlias for more information on using the UpdateBotAlias
5623// API call, and error handling.
5624//
5625// This method is useful when you want to inject custom logic or configuration
5626// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5627//
5628//
5629//    // Example sending a request using the UpdateBotAliasRequest method.
5630//    req, resp := client.UpdateBotAliasRequest(params)
5631//
5632//    err := req.Send()
5633//    if err == nil { // resp is now filled
5634//        fmt.Println(resp)
5635//    }
5636//
5637// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateBotAlias
5638func (c *LexModelsV2) UpdateBotAliasRequest(input *UpdateBotAliasInput) (req *request.Request, output *UpdateBotAliasOutput) {
5639	op := &request.Operation{
5640		Name:       opUpdateBotAlias,
5641		HTTPMethod: "PUT",
5642		HTTPPath:   "/bots/{botId}/botaliases/{botAliasId}/",
5643	}
5644
5645	if input == nil {
5646		input = &UpdateBotAliasInput{}
5647	}
5648
5649	output = &UpdateBotAliasOutput{}
5650	req = c.newRequest(op, input, output)
5651	return
5652}
5653
5654// UpdateBotAlias API operation for Amazon Lex Model Building V2.
5655//
5656// Updates the configuration of an existing bot alias.
5657//
5658// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5659// with awserr.Error's Code and Message methods to get detailed information about
5660// the error.
5661//
5662// See the AWS API reference guide for Amazon Lex Model Building V2's
5663// API operation UpdateBotAlias for usage and error information.
5664//
5665// Returned Error Types:
5666//   * ThrottlingException
5667//   Your request rate is too high. Reduce the frequency of requests.
5668//
5669//   * ServiceQuotaExceededException
5670//   You have reached a quota for your bot.
5671//
5672//   * ValidationException
5673//   One of the input parameters in your request isn't valid. Check the parameters
5674//   and try your request again.
5675//
5676//   * PreconditionFailedException
5677//   Your request couldn't be completed because one or more request fields aren't
5678//   valid. Check the fields in your request and try again.
5679//
5680//   * ConflictException
5681//   The action that you tried to perform couldn't be completed because the resource
5682//   is in a conflicting state. For example, deleting a bot that is in the CREATING
5683//   state. Try your request again.
5684//
5685//   * InternalServerException
5686//   The service encountered an unexpected condition. Try your request again.
5687//
5688// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateBotAlias
5689func (c *LexModelsV2) UpdateBotAlias(input *UpdateBotAliasInput) (*UpdateBotAliasOutput, error) {
5690	req, out := c.UpdateBotAliasRequest(input)
5691	return out, req.Send()
5692}
5693
5694// UpdateBotAliasWithContext is the same as UpdateBotAlias with the addition of
5695// the ability to pass a context and additional request options.
5696//
5697// See UpdateBotAlias for details on how to use this API operation.
5698//
5699// The context must be non-nil and will be used for request cancellation. If
5700// the context is nil a panic will occur. In the future the SDK may create
5701// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5702// for more information on using Contexts.
5703func (c *LexModelsV2) UpdateBotAliasWithContext(ctx aws.Context, input *UpdateBotAliasInput, opts ...request.Option) (*UpdateBotAliasOutput, error) {
5704	req, out := c.UpdateBotAliasRequest(input)
5705	req.SetContext(ctx)
5706	req.ApplyOptions(opts...)
5707	return out, req.Send()
5708}
5709
5710const opUpdateBotLocale = "UpdateBotLocale"
5711
5712// UpdateBotLocaleRequest generates a "aws/request.Request" representing the
5713// client's request for the UpdateBotLocale operation. The "output" return
5714// value will be populated with the request's response once the request completes
5715// successfully.
5716//
5717// Use "Send" method on the returned Request to send the API call to the service.
5718// the "output" return value is not valid until after Send returns without error.
5719//
5720// See UpdateBotLocale for more information on using the UpdateBotLocale
5721// API call, and error handling.
5722//
5723// This method is useful when you want to inject custom logic or configuration
5724// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5725//
5726//
5727//    // Example sending a request using the UpdateBotLocaleRequest method.
5728//    req, resp := client.UpdateBotLocaleRequest(params)
5729//
5730//    err := req.Send()
5731//    if err == nil { // resp is now filled
5732//        fmt.Println(resp)
5733//    }
5734//
5735// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateBotLocale
5736func (c *LexModelsV2) UpdateBotLocaleRequest(input *UpdateBotLocaleInput) (req *request.Request, output *UpdateBotLocaleOutput) {
5737	op := &request.Operation{
5738		Name:       opUpdateBotLocale,
5739		HTTPMethod: "PUT",
5740		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/",
5741	}
5742
5743	if input == nil {
5744		input = &UpdateBotLocaleInput{}
5745	}
5746
5747	output = &UpdateBotLocaleOutput{}
5748	req = c.newRequest(op, input, output)
5749	return
5750}
5751
5752// UpdateBotLocale API operation for Amazon Lex Model Building V2.
5753//
5754// Updates the settings that a bot has for a specific locale.
5755//
5756// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5757// with awserr.Error's Code and Message methods to get detailed information about
5758// the error.
5759//
5760// See the AWS API reference guide for Amazon Lex Model Building V2's
5761// API operation UpdateBotLocale for usage and error information.
5762//
5763// Returned Error Types:
5764//   * ThrottlingException
5765//   Your request rate is too high. Reduce the frequency of requests.
5766//
5767//   * ServiceQuotaExceededException
5768//   You have reached a quota for your bot.
5769//
5770//   * ValidationException
5771//   One of the input parameters in your request isn't valid. Check the parameters
5772//   and try your request again.
5773//
5774//   * PreconditionFailedException
5775//   Your request couldn't be completed because one or more request fields aren't
5776//   valid. Check the fields in your request and try again.
5777//
5778//   * ConflictException
5779//   The action that you tried to perform couldn't be completed because the resource
5780//   is in a conflicting state. For example, deleting a bot that is in the CREATING
5781//   state. Try your request again.
5782//
5783//   * InternalServerException
5784//   The service encountered an unexpected condition. Try your request again.
5785//
5786// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateBotLocale
5787func (c *LexModelsV2) UpdateBotLocale(input *UpdateBotLocaleInput) (*UpdateBotLocaleOutput, error) {
5788	req, out := c.UpdateBotLocaleRequest(input)
5789	return out, req.Send()
5790}
5791
5792// UpdateBotLocaleWithContext is the same as UpdateBotLocale with the addition of
5793// the ability to pass a context and additional request options.
5794//
5795// See UpdateBotLocale for details on how to use this API operation.
5796//
5797// The context must be non-nil and will be used for request cancellation. If
5798// the context is nil a panic will occur. In the future the SDK may create
5799// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5800// for more information on using Contexts.
5801func (c *LexModelsV2) UpdateBotLocaleWithContext(ctx aws.Context, input *UpdateBotLocaleInput, opts ...request.Option) (*UpdateBotLocaleOutput, error) {
5802	req, out := c.UpdateBotLocaleRequest(input)
5803	req.SetContext(ctx)
5804	req.ApplyOptions(opts...)
5805	return out, req.Send()
5806}
5807
5808const opUpdateExport = "UpdateExport"
5809
5810// UpdateExportRequest generates a "aws/request.Request" representing the
5811// client's request for the UpdateExport operation. The "output" return
5812// value will be populated with the request's response once the request completes
5813// successfully.
5814//
5815// Use "Send" method on the returned Request to send the API call to the service.
5816// the "output" return value is not valid until after Send returns without error.
5817//
5818// See UpdateExport for more information on using the UpdateExport
5819// API call, and error handling.
5820//
5821// This method is useful when you want to inject custom logic or configuration
5822// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5823//
5824//
5825//    // Example sending a request using the UpdateExportRequest method.
5826//    req, resp := client.UpdateExportRequest(params)
5827//
5828//    err := req.Send()
5829//    if err == nil { // resp is now filled
5830//        fmt.Println(resp)
5831//    }
5832//
5833// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateExport
5834func (c *LexModelsV2) UpdateExportRequest(input *UpdateExportInput) (req *request.Request, output *UpdateExportOutput) {
5835	op := &request.Operation{
5836		Name:       opUpdateExport,
5837		HTTPMethod: "PUT",
5838		HTTPPath:   "/exports/{exportId}/",
5839	}
5840
5841	if input == nil {
5842		input = &UpdateExportInput{}
5843	}
5844
5845	output = &UpdateExportOutput{}
5846	req = c.newRequest(op, input, output)
5847	return
5848}
5849
5850// UpdateExport API operation for Amazon Lex Model Building V2.
5851//
5852// Updates the password used to protect an export zip archive.
5853//
5854// The password is not required. If you don't supply a password, Amazon Lex
5855// generates a zip file that is not protected by a password. This is the archive
5856// that is available at the pre-signed S3 URL provided by the operation.
5857//
5858// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5859// with awserr.Error's Code and Message methods to get detailed information about
5860// the error.
5861//
5862// See the AWS API reference guide for Amazon Lex Model Building V2's
5863// API operation UpdateExport for usage and error information.
5864//
5865// Returned Error Types:
5866//   * ThrottlingException
5867//   Your request rate is too high. Reduce the frequency of requests.
5868//
5869//   * ServiceQuotaExceededException
5870//   You have reached a quota for your bot.
5871//
5872//   * ValidationException
5873//   One of the input parameters in your request isn't valid. Check the parameters
5874//   and try your request again.
5875//
5876//   * ResourceNotFoundException
5877//   You asked to describe a resource that doesn't exist. Check the resource that
5878//   you are requesting and try again.
5879//
5880//   * ConflictException
5881//   The action that you tried to perform couldn't be completed because the resource
5882//   is in a conflicting state. For example, deleting a bot that is in the CREATING
5883//   state. Try your request again.
5884//
5885//   * InternalServerException
5886//   The service encountered an unexpected condition. Try your request again.
5887//
5888// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateExport
5889func (c *LexModelsV2) UpdateExport(input *UpdateExportInput) (*UpdateExportOutput, error) {
5890	req, out := c.UpdateExportRequest(input)
5891	return out, req.Send()
5892}
5893
5894// UpdateExportWithContext is the same as UpdateExport with the addition of
5895// the ability to pass a context and additional request options.
5896//
5897// See UpdateExport for details on how to use this API operation.
5898//
5899// The context must be non-nil and will be used for request cancellation. If
5900// the context is nil a panic will occur. In the future the SDK may create
5901// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5902// for more information on using Contexts.
5903func (c *LexModelsV2) UpdateExportWithContext(ctx aws.Context, input *UpdateExportInput, opts ...request.Option) (*UpdateExportOutput, error) {
5904	req, out := c.UpdateExportRequest(input)
5905	req.SetContext(ctx)
5906	req.ApplyOptions(opts...)
5907	return out, req.Send()
5908}
5909
5910const opUpdateIntent = "UpdateIntent"
5911
5912// UpdateIntentRequest generates a "aws/request.Request" representing the
5913// client's request for the UpdateIntent operation. The "output" return
5914// value will be populated with the request's response once the request completes
5915// successfully.
5916//
5917// Use "Send" method on the returned Request to send the API call to the service.
5918// the "output" return value is not valid until after Send returns without error.
5919//
5920// See UpdateIntent for more information on using the UpdateIntent
5921// API call, and error handling.
5922//
5923// This method is useful when you want to inject custom logic or configuration
5924// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5925//
5926//
5927//    // Example sending a request using the UpdateIntentRequest method.
5928//    req, resp := client.UpdateIntentRequest(params)
5929//
5930//    err := req.Send()
5931//    if err == nil { // resp is now filled
5932//        fmt.Println(resp)
5933//    }
5934//
5935// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateIntent
5936func (c *LexModelsV2) UpdateIntentRequest(input *UpdateIntentInput) (req *request.Request, output *UpdateIntentOutput) {
5937	op := &request.Operation{
5938		Name:       opUpdateIntent,
5939		HTTPMethod: "PUT",
5940		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/",
5941	}
5942
5943	if input == nil {
5944		input = &UpdateIntentInput{}
5945	}
5946
5947	output = &UpdateIntentOutput{}
5948	req = c.newRequest(op, input, output)
5949	return
5950}
5951
5952// UpdateIntent API operation for Amazon Lex Model Building V2.
5953//
5954// Updates the settings for an intent.
5955//
5956// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5957// with awserr.Error's Code and Message methods to get detailed information about
5958// the error.
5959//
5960// See the AWS API reference guide for Amazon Lex Model Building V2's
5961// API operation UpdateIntent for usage and error information.
5962//
5963// Returned Error Types:
5964//   * ThrottlingException
5965//   Your request rate is too high. Reduce the frequency of requests.
5966//
5967//   * ServiceQuotaExceededException
5968//   You have reached a quota for your bot.
5969//
5970//   * ValidationException
5971//   One of the input parameters in your request isn't valid. Check the parameters
5972//   and try your request again.
5973//
5974//   * PreconditionFailedException
5975//   Your request couldn't be completed because one or more request fields aren't
5976//   valid. Check the fields in your request and try again.
5977//
5978//   * ConflictException
5979//   The action that you tried to perform couldn't be completed because the resource
5980//   is in a conflicting state. For example, deleting a bot that is in the CREATING
5981//   state. Try your request again.
5982//
5983//   * InternalServerException
5984//   The service encountered an unexpected condition. Try your request again.
5985//
5986// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateIntent
5987func (c *LexModelsV2) UpdateIntent(input *UpdateIntentInput) (*UpdateIntentOutput, error) {
5988	req, out := c.UpdateIntentRequest(input)
5989	return out, req.Send()
5990}
5991
5992// UpdateIntentWithContext is the same as UpdateIntent with the addition of
5993// the ability to pass a context and additional request options.
5994//
5995// See UpdateIntent for details on how to use this API operation.
5996//
5997// The context must be non-nil and will be used for request cancellation. If
5998// the context is nil a panic will occur. In the future the SDK may create
5999// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6000// for more information on using Contexts.
6001func (c *LexModelsV2) UpdateIntentWithContext(ctx aws.Context, input *UpdateIntentInput, opts ...request.Option) (*UpdateIntentOutput, error) {
6002	req, out := c.UpdateIntentRequest(input)
6003	req.SetContext(ctx)
6004	req.ApplyOptions(opts...)
6005	return out, req.Send()
6006}
6007
6008const opUpdateResourcePolicy = "UpdateResourcePolicy"
6009
6010// UpdateResourcePolicyRequest generates a "aws/request.Request" representing the
6011// client's request for the UpdateResourcePolicy operation. The "output" return
6012// value will be populated with the request's response once the request completes
6013// successfully.
6014//
6015// Use "Send" method on the returned Request to send the API call to the service.
6016// the "output" return value is not valid until after Send returns without error.
6017//
6018// See UpdateResourcePolicy for more information on using the UpdateResourcePolicy
6019// API call, and error handling.
6020//
6021// This method is useful when you want to inject custom logic or configuration
6022// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6023//
6024//
6025//    // Example sending a request using the UpdateResourcePolicyRequest method.
6026//    req, resp := client.UpdateResourcePolicyRequest(params)
6027//
6028//    err := req.Send()
6029//    if err == nil { // resp is now filled
6030//        fmt.Println(resp)
6031//    }
6032//
6033// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateResourcePolicy
6034func (c *LexModelsV2) UpdateResourcePolicyRequest(input *UpdateResourcePolicyInput) (req *request.Request, output *UpdateResourcePolicyOutput) {
6035	op := &request.Operation{
6036		Name:       opUpdateResourcePolicy,
6037		HTTPMethod: "PUT",
6038		HTTPPath:   "/policy/{resourceArn}/",
6039	}
6040
6041	if input == nil {
6042		input = &UpdateResourcePolicyInput{}
6043	}
6044
6045	output = &UpdateResourcePolicyOutput{}
6046	req = c.newRequest(op, input, output)
6047	return
6048}
6049
6050// UpdateResourcePolicy API operation for Amazon Lex Model Building V2.
6051//
6052// Replaces the existing resource policy for a bot or bot alias with a new one.
6053// If the policy doesn't exist, Amazon Lex returns an exception.
6054//
6055// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6056// with awserr.Error's Code and Message methods to get detailed information about
6057// the error.
6058//
6059// See the AWS API reference guide for Amazon Lex Model Building V2's
6060// API operation UpdateResourcePolicy for usage and error information.
6061//
6062// Returned Error Types:
6063//   * ResourceNotFoundException
6064//   You asked to describe a resource that doesn't exist. Check the resource that
6065//   you are requesting and try again.
6066//
6067//   * ServiceQuotaExceededException
6068//   You have reached a quota for your bot.
6069//
6070//   * PreconditionFailedException
6071//   Your request couldn't be completed because one or more request fields aren't
6072//   valid. Check the fields in your request and try again.
6073//
6074//   * ValidationException
6075//   One of the input parameters in your request isn't valid. Check the parameters
6076//   and try your request again.
6077//
6078//   * InternalServerException
6079//   The service encountered an unexpected condition. Try your request again.
6080//
6081//   * ThrottlingException
6082//   Your request rate is too high. Reduce the frequency of requests.
6083//
6084// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateResourcePolicy
6085func (c *LexModelsV2) UpdateResourcePolicy(input *UpdateResourcePolicyInput) (*UpdateResourcePolicyOutput, error) {
6086	req, out := c.UpdateResourcePolicyRequest(input)
6087	return out, req.Send()
6088}
6089
6090// UpdateResourcePolicyWithContext is the same as UpdateResourcePolicy with the addition of
6091// the ability to pass a context and additional request options.
6092//
6093// See UpdateResourcePolicy for details on how to use this API operation.
6094//
6095// The context must be non-nil and will be used for request cancellation. If
6096// the context is nil a panic will occur. In the future the SDK may create
6097// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6098// for more information on using Contexts.
6099func (c *LexModelsV2) UpdateResourcePolicyWithContext(ctx aws.Context, input *UpdateResourcePolicyInput, opts ...request.Option) (*UpdateResourcePolicyOutput, error) {
6100	req, out := c.UpdateResourcePolicyRequest(input)
6101	req.SetContext(ctx)
6102	req.ApplyOptions(opts...)
6103	return out, req.Send()
6104}
6105
6106const opUpdateSlot = "UpdateSlot"
6107
6108// UpdateSlotRequest generates a "aws/request.Request" representing the
6109// client's request for the UpdateSlot operation. The "output" return
6110// value will be populated with the request's response once the request completes
6111// successfully.
6112//
6113// Use "Send" method on the returned Request to send the API call to the service.
6114// the "output" return value is not valid until after Send returns without error.
6115//
6116// See UpdateSlot for more information on using the UpdateSlot
6117// API call, and error handling.
6118//
6119// This method is useful when you want to inject custom logic or configuration
6120// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6121//
6122//
6123//    // Example sending a request using the UpdateSlotRequest method.
6124//    req, resp := client.UpdateSlotRequest(params)
6125//
6126//    err := req.Send()
6127//    if err == nil { // resp is now filled
6128//        fmt.Println(resp)
6129//    }
6130//
6131// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateSlot
6132func (c *LexModelsV2) UpdateSlotRequest(input *UpdateSlotInput) (req *request.Request, output *UpdateSlotOutput) {
6133	op := &request.Operation{
6134		Name:       opUpdateSlot,
6135		HTTPMethod: "PUT",
6136		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/slots/{slotId}/",
6137	}
6138
6139	if input == nil {
6140		input = &UpdateSlotInput{}
6141	}
6142
6143	output = &UpdateSlotOutput{}
6144	req = c.newRequest(op, input, output)
6145	return
6146}
6147
6148// UpdateSlot API operation for Amazon Lex Model Building V2.
6149//
6150// Updates the settings for a slot.
6151//
6152// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6153// with awserr.Error's Code and Message methods to get detailed information about
6154// the error.
6155//
6156// See the AWS API reference guide for Amazon Lex Model Building V2's
6157// API operation UpdateSlot for usage and error information.
6158//
6159// Returned Error Types:
6160//   * ThrottlingException
6161//   Your request rate is too high. Reduce the frequency of requests.
6162//
6163//   * ServiceQuotaExceededException
6164//   You have reached a quota for your bot.
6165//
6166//   * ValidationException
6167//   One of the input parameters in your request isn't valid. Check the parameters
6168//   and try your request again.
6169//
6170//   * PreconditionFailedException
6171//   Your request couldn't be completed because one or more request fields aren't
6172//   valid. Check the fields in your request and try again.
6173//
6174//   * ConflictException
6175//   The action that you tried to perform couldn't be completed because the resource
6176//   is in a conflicting state. For example, deleting a bot that is in the CREATING
6177//   state. Try your request again.
6178//
6179//   * InternalServerException
6180//   The service encountered an unexpected condition. Try your request again.
6181//
6182// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateSlot
6183func (c *LexModelsV2) UpdateSlot(input *UpdateSlotInput) (*UpdateSlotOutput, error) {
6184	req, out := c.UpdateSlotRequest(input)
6185	return out, req.Send()
6186}
6187
6188// UpdateSlotWithContext is the same as UpdateSlot with the addition of
6189// the ability to pass a context and additional request options.
6190//
6191// See UpdateSlot for details on how to use this API operation.
6192//
6193// The context must be non-nil and will be used for request cancellation. If
6194// the context is nil a panic will occur. In the future the SDK may create
6195// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6196// for more information on using Contexts.
6197func (c *LexModelsV2) UpdateSlotWithContext(ctx aws.Context, input *UpdateSlotInput, opts ...request.Option) (*UpdateSlotOutput, error) {
6198	req, out := c.UpdateSlotRequest(input)
6199	req.SetContext(ctx)
6200	req.ApplyOptions(opts...)
6201	return out, req.Send()
6202}
6203
6204const opUpdateSlotType = "UpdateSlotType"
6205
6206// UpdateSlotTypeRequest generates a "aws/request.Request" representing the
6207// client's request for the UpdateSlotType operation. The "output" return
6208// value will be populated with the request's response once the request completes
6209// successfully.
6210//
6211// Use "Send" method on the returned Request to send the API call to the service.
6212// the "output" return value is not valid until after Send returns without error.
6213//
6214// See UpdateSlotType for more information on using the UpdateSlotType
6215// API call, and error handling.
6216//
6217// This method is useful when you want to inject custom logic or configuration
6218// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6219//
6220//
6221//    // Example sending a request using the UpdateSlotTypeRequest method.
6222//    req, resp := client.UpdateSlotTypeRequest(params)
6223//
6224//    err := req.Send()
6225//    if err == nil { // resp is now filled
6226//        fmt.Println(resp)
6227//    }
6228//
6229// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateSlotType
6230func (c *LexModelsV2) UpdateSlotTypeRequest(input *UpdateSlotTypeInput) (req *request.Request, output *UpdateSlotTypeOutput) {
6231	op := &request.Operation{
6232		Name:       opUpdateSlotType,
6233		HTTPMethod: "PUT",
6234		HTTPPath:   "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/slottypes/{slotTypeId}/",
6235	}
6236
6237	if input == nil {
6238		input = &UpdateSlotTypeInput{}
6239	}
6240
6241	output = &UpdateSlotTypeOutput{}
6242	req = c.newRequest(op, input, output)
6243	return
6244}
6245
6246// UpdateSlotType API operation for Amazon Lex Model Building V2.
6247//
6248// Updates the configuration of an existing slot type.
6249//
6250// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6251// with awserr.Error's Code and Message methods to get detailed information about
6252// the error.
6253//
6254// See the AWS API reference guide for Amazon Lex Model Building V2's
6255// API operation UpdateSlotType for usage and error information.
6256//
6257// Returned Error Types:
6258//   * ThrottlingException
6259//   Your request rate is too high. Reduce the frequency of requests.
6260//
6261//   * ServiceQuotaExceededException
6262//   You have reached a quota for your bot.
6263//
6264//   * ValidationException
6265//   One of the input parameters in your request isn't valid. Check the parameters
6266//   and try your request again.
6267//
6268//   * PreconditionFailedException
6269//   Your request couldn't be completed because one or more request fields aren't
6270//   valid. Check the fields in your request and try again.
6271//
6272//   * ConflictException
6273//   The action that you tried to perform couldn't be completed because the resource
6274//   is in a conflicting state. For example, deleting a bot that is in the CREATING
6275//   state. Try your request again.
6276//
6277//   * InternalServerException
6278//   The service encountered an unexpected condition. Try your request again.
6279//
6280// See also, https://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/UpdateSlotType
6281func (c *LexModelsV2) UpdateSlotType(input *UpdateSlotTypeInput) (*UpdateSlotTypeOutput, error) {
6282	req, out := c.UpdateSlotTypeRequest(input)
6283	return out, req.Send()
6284}
6285
6286// UpdateSlotTypeWithContext is the same as UpdateSlotType with the addition of
6287// the ability to pass a context and additional request options.
6288//
6289// See UpdateSlotType for details on how to use this API operation.
6290//
6291// The context must be non-nil and will be used for request cancellation. If
6292// the context is nil a panic will occur. In the future the SDK may create
6293// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6294// for more information on using Contexts.
6295func (c *LexModelsV2) UpdateSlotTypeWithContext(ctx aws.Context, input *UpdateSlotTypeInput, opts ...request.Option) (*UpdateSlotTypeOutput, error) {
6296	req, out := c.UpdateSlotTypeRequest(input)
6297	req.SetContext(ctx)
6298	req.ApplyOptions(opts...)
6299	return out, req.Send()
6300}
6301
6302// Filters responses returned by the ListAggregatedUtterances operation.
6303type AggregatedUtterancesFilter struct {
6304	_ struct{} `type:"structure"`
6305
6306	// The name of the field to filter the utterance list.
6307	//
6308	// Name is a required field
6309	Name *string `locationName:"name" type:"string" required:"true" enum:"AggregatedUtterancesFilterName"`
6310
6311	// The operator to use for the filter. Specify EQ when the ListAggregatedUtterances
6312	// operation should return only utterances that equal the specified value. Specify
6313	// CO when the ListAggregatedUtterances operation should return utterances that
6314	// contain the specified value.
6315	//
6316	// Operator is a required field
6317	Operator *string `locationName:"operator" type:"string" required:"true" enum:"AggregatedUtterancesFilterOperator"`
6318
6319	// The value to use for filtering the list of bots.
6320	//
6321	// Values is a required field
6322	Values []*string `locationName:"values" min:"1" type:"list" required:"true"`
6323}
6324
6325// String returns the string representation.
6326//
6327// API parameter values that are decorated as "sensitive" in the API will not
6328// be included in the string output. The member name will be present, but the
6329// value will be replaced with "sensitive".
6330func (s AggregatedUtterancesFilter) String() string {
6331	return awsutil.Prettify(s)
6332}
6333
6334// GoString returns the string representation.
6335//
6336// API parameter values that are decorated as "sensitive" in the API will not
6337// be included in the string output. The member name will be present, but the
6338// value will be replaced with "sensitive".
6339func (s AggregatedUtterancesFilter) GoString() string {
6340	return s.String()
6341}
6342
6343// Validate inspects the fields of the type to determine if they are valid.
6344func (s *AggregatedUtterancesFilter) Validate() error {
6345	invalidParams := request.ErrInvalidParams{Context: "AggregatedUtterancesFilter"}
6346	if s.Name == nil {
6347		invalidParams.Add(request.NewErrParamRequired("Name"))
6348	}
6349	if s.Operator == nil {
6350		invalidParams.Add(request.NewErrParamRequired("Operator"))
6351	}
6352	if s.Values == nil {
6353		invalidParams.Add(request.NewErrParamRequired("Values"))
6354	}
6355	if s.Values != nil && len(s.Values) < 1 {
6356		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
6357	}
6358
6359	if invalidParams.Len() > 0 {
6360		return invalidParams
6361	}
6362	return nil
6363}
6364
6365// SetName sets the Name field's value.
6366func (s *AggregatedUtterancesFilter) SetName(v string) *AggregatedUtterancesFilter {
6367	s.Name = &v
6368	return s
6369}
6370
6371// SetOperator sets the Operator field's value.
6372func (s *AggregatedUtterancesFilter) SetOperator(v string) *AggregatedUtterancesFilter {
6373	s.Operator = &v
6374	return s
6375}
6376
6377// SetValues sets the Values field's value.
6378func (s *AggregatedUtterancesFilter) SetValues(v []*string) *AggregatedUtterancesFilter {
6379	s.Values = v
6380	return s
6381}
6382
6383// Specifies attributes for sorting a list of utterances.
6384type AggregatedUtterancesSortBy struct {
6385	_ struct{} `type:"structure"`
6386
6387	// The utterance attribute to sort by.
6388	//
6389	// Attribute is a required field
6390	Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"AggregatedUtterancesSortAttribute"`
6391
6392	// Specifies whether to sort the aggregated utterances in ascending or descending
6393	// order.
6394	//
6395	// Order is a required field
6396	Order *string `locationName:"order" type:"string" required:"true" enum:"SortOrder"`
6397}
6398
6399// String returns the string representation.
6400//
6401// API parameter values that are decorated as "sensitive" in the API will not
6402// be included in the string output. The member name will be present, but the
6403// value will be replaced with "sensitive".
6404func (s AggregatedUtterancesSortBy) String() string {
6405	return awsutil.Prettify(s)
6406}
6407
6408// GoString returns the string representation.
6409//
6410// API parameter values that are decorated as "sensitive" in the API will not
6411// be included in the string output. The member name will be present, but the
6412// value will be replaced with "sensitive".
6413func (s AggregatedUtterancesSortBy) GoString() string {
6414	return s.String()
6415}
6416
6417// Validate inspects the fields of the type to determine if they are valid.
6418func (s *AggregatedUtterancesSortBy) Validate() error {
6419	invalidParams := request.ErrInvalidParams{Context: "AggregatedUtterancesSortBy"}
6420	if s.Attribute == nil {
6421		invalidParams.Add(request.NewErrParamRequired("Attribute"))
6422	}
6423	if s.Order == nil {
6424		invalidParams.Add(request.NewErrParamRequired("Order"))
6425	}
6426
6427	if invalidParams.Len() > 0 {
6428		return invalidParams
6429	}
6430	return nil
6431}
6432
6433// SetAttribute sets the Attribute field's value.
6434func (s *AggregatedUtterancesSortBy) SetAttribute(v string) *AggregatedUtterancesSortBy {
6435	s.Attribute = &v
6436	return s
6437}
6438
6439// SetOrder sets the Order field's value.
6440func (s *AggregatedUtterancesSortBy) SetOrder(v string) *AggregatedUtterancesSortBy {
6441	s.Order = &v
6442	return s
6443}
6444
6445// Provides summary information for aggregated utterances. The ListAggregatedUtterances
6446// operations combines all instances of the same utterance into a single aggregated
6447// summary.
6448type AggregatedUtterancesSummary struct {
6449	_ struct{} `type:"structure"`
6450
6451	// Aggregated utterance data may contain utterances from versions of your bot
6452	// that have since been deleted. When the aggregated contains this kind of data,
6453	// this field is set to true.
6454	ContainsDataFromDeletedResources *bool `locationName:"containsDataFromDeletedResources" type:"boolean"`
6455
6456	// The number of times that the utterance was detected by Amazon Lex during
6457	// the time period. When an utterance is detected, it activates an intent or
6458	// a slot.
6459	HitCount *int64 `locationName:"hitCount" type:"integer"`
6460
6461	// The number of times that the utterance was missed by Amazon Lex An utterance
6462	// is missed when it doesn't activate an intent or slot.
6463	MissedCount *int64 `locationName:"missedCount" type:"integer"`
6464
6465	// The text of the utterance. If the utterance was used with the RecognizeUtterance
6466	// operation, the text is the transcription of the audio utterance.
6467	Utterance *string `locationName:"utterance" type:"string"`
6468
6469	// The date and time that the utterance was first recorded in the time window
6470	// for aggregation. An utterance may have been sent to Amazon Lex before that
6471	// time, but only utterances within the time window are counted.
6472	UtteranceFirstRecordedInAggregationDuration *time.Time `locationName:"utteranceFirstRecordedInAggregationDuration" type:"timestamp"`
6473
6474	// The last date and time that an utterance was recorded in the time window
6475	// for aggregation. An utterance may be sent to Amazon Lex after that time,
6476	// but only utterances within the time window are counted.
6477	UtteranceLastRecordedInAggregationDuration *time.Time `locationName:"utteranceLastRecordedInAggregationDuration" type:"timestamp"`
6478}
6479
6480// String returns the string representation.
6481//
6482// API parameter values that are decorated as "sensitive" in the API will not
6483// be included in the string output. The member name will be present, but the
6484// value will be replaced with "sensitive".
6485func (s AggregatedUtterancesSummary) String() string {
6486	return awsutil.Prettify(s)
6487}
6488
6489// GoString returns the string representation.
6490//
6491// API parameter values that are decorated as "sensitive" in the API will not
6492// be included in the string output. The member name will be present, but the
6493// value will be replaced with "sensitive".
6494func (s AggregatedUtterancesSummary) GoString() string {
6495	return s.String()
6496}
6497
6498// SetContainsDataFromDeletedResources sets the ContainsDataFromDeletedResources field's value.
6499func (s *AggregatedUtterancesSummary) SetContainsDataFromDeletedResources(v bool) *AggregatedUtterancesSummary {
6500	s.ContainsDataFromDeletedResources = &v
6501	return s
6502}
6503
6504// SetHitCount sets the HitCount field's value.
6505func (s *AggregatedUtterancesSummary) SetHitCount(v int64) *AggregatedUtterancesSummary {
6506	s.HitCount = &v
6507	return s
6508}
6509
6510// SetMissedCount sets the MissedCount field's value.
6511func (s *AggregatedUtterancesSummary) SetMissedCount(v int64) *AggregatedUtterancesSummary {
6512	s.MissedCount = &v
6513	return s
6514}
6515
6516// SetUtterance sets the Utterance field's value.
6517func (s *AggregatedUtterancesSummary) SetUtterance(v string) *AggregatedUtterancesSummary {
6518	s.Utterance = &v
6519	return s
6520}
6521
6522// SetUtteranceFirstRecordedInAggregationDuration sets the UtteranceFirstRecordedInAggregationDuration field's value.
6523func (s *AggregatedUtterancesSummary) SetUtteranceFirstRecordedInAggregationDuration(v time.Time) *AggregatedUtterancesSummary {
6524	s.UtteranceFirstRecordedInAggregationDuration = &v
6525	return s
6526}
6527
6528// SetUtteranceLastRecordedInAggregationDuration sets the UtteranceLastRecordedInAggregationDuration field's value.
6529func (s *AggregatedUtterancesSummary) SetUtteranceLastRecordedInAggregationDuration(v time.Time) *AggregatedUtterancesSummary {
6530	s.UtteranceLastRecordedInAggregationDuration = &v
6531	return s
6532}
6533
6534// The location of audio log files collected when conversation logging is enabled
6535// for a bot.
6536type AudioLogDestination struct {
6537	_ struct{} `type:"structure"`
6538
6539	// The Amazon S3 bucket where the audio log files are stored. The IAM role specified
6540	// in the roleArn parameter of the CreateBot operation must have permission
6541	// to write to this bucket.
6542	//
6543	// S3Bucket is a required field
6544	S3Bucket *S3BucketLogDestination `locationName:"s3Bucket" type:"structure" required:"true"`
6545}
6546
6547// String returns the string representation.
6548//
6549// API parameter values that are decorated as "sensitive" in the API will not
6550// be included in the string output. The member name will be present, but the
6551// value will be replaced with "sensitive".
6552func (s AudioLogDestination) String() string {
6553	return awsutil.Prettify(s)
6554}
6555
6556// GoString returns the string representation.
6557//
6558// API parameter values that are decorated as "sensitive" in the API will not
6559// be included in the string output. The member name will be present, but the
6560// value will be replaced with "sensitive".
6561func (s AudioLogDestination) GoString() string {
6562	return s.String()
6563}
6564
6565// Validate inspects the fields of the type to determine if they are valid.
6566func (s *AudioLogDestination) Validate() error {
6567	invalidParams := request.ErrInvalidParams{Context: "AudioLogDestination"}
6568	if s.S3Bucket == nil {
6569		invalidParams.Add(request.NewErrParamRequired("S3Bucket"))
6570	}
6571	if s.S3Bucket != nil {
6572		if err := s.S3Bucket.Validate(); err != nil {
6573			invalidParams.AddNested("S3Bucket", err.(request.ErrInvalidParams))
6574		}
6575	}
6576
6577	if invalidParams.Len() > 0 {
6578		return invalidParams
6579	}
6580	return nil
6581}
6582
6583// SetS3Bucket sets the S3Bucket field's value.
6584func (s *AudioLogDestination) SetS3Bucket(v *S3BucketLogDestination) *AudioLogDestination {
6585	s.S3Bucket = v
6586	return s
6587}
6588
6589// Settings for logging audio of conversations between Amazon Lex and a user.
6590// You specify whether to log audio and the Amazon S3 bucket where the audio
6591// file is stored.
6592type AudioLogSetting struct {
6593	_ struct{} `type:"structure"`
6594
6595	// The location of audio log files collected when conversation logging is enabled
6596	// for a bot.
6597	//
6598	// Destination is a required field
6599	Destination *AudioLogDestination `locationName:"destination" type:"structure" required:"true"`
6600
6601	// Determines whether audio logging in enabled for the bot.
6602	//
6603	// Enabled is a required field
6604	Enabled *bool `locationName:"enabled" type:"boolean" required:"true"`
6605}
6606
6607// String returns the string representation.
6608//
6609// API parameter values that are decorated as "sensitive" in the API will not
6610// be included in the string output. The member name will be present, but the
6611// value will be replaced with "sensitive".
6612func (s AudioLogSetting) String() string {
6613	return awsutil.Prettify(s)
6614}
6615
6616// GoString returns the string representation.
6617//
6618// API parameter values that are decorated as "sensitive" in the API will not
6619// be included in the string output. The member name will be present, but the
6620// value will be replaced with "sensitive".
6621func (s AudioLogSetting) GoString() string {
6622	return s.String()
6623}
6624
6625// Validate inspects the fields of the type to determine if they are valid.
6626func (s *AudioLogSetting) Validate() error {
6627	invalidParams := request.ErrInvalidParams{Context: "AudioLogSetting"}
6628	if s.Destination == nil {
6629		invalidParams.Add(request.NewErrParamRequired("Destination"))
6630	}
6631	if s.Enabled == nil {
6632		invalidParams.Add(request.NewErrParamRequired("Enabled"))
6633	}
6634	if s.Destination != nil {
6635		if err := s.Destination.Validate(); err != nil {
6636			invalidParams.AddNested("Destination", err.(request.ErrInvalidParams))
6637		}
6638	}
6639
6640	if invalidParams.Len() > 0 {
6641		return invalidParams
6642	}
6643	return nil
6644}
6645
6646// SetDestination sets the Destination field's value.
6647func (s *AudioLogSetting) SetDestination(v *AudioLogDestination) *AudioLogSetting {
6648	s.Destination = v
6649	return s
6650}
6651
6652// SetEnabled sets the Enabled field's value.
6653func (s *AudioLogSetting) SetEnabled(v bool) *AudioLogSetting {
6654	s.Enabled = &v
6655	return s
6656}
6657
6658// Provides a record of an event that affects a bot alias. For example, when
6659// the version of a bot that the alias points to changes.
6660type BotAliasHistoryEvent struct {
6661	_ struct{} `type:"structure"`
6662
6663	// The version of the bot that was used in the event.
6664	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
6665
6666	// The date and time that the event ended.
6667	EndDate *time.Time `locationName:"endDate" type:"timestamp"`
6668
6669	// The date and time that the event started.
6670	StartDate *time.Time `locationName:"startDate" type:"timestamp"`
6671}
6672
6673// String returns the string representation.
6674//
6675// API parameter values that are decorated as "sensitive" in the API will not
6676// be included in the string output. The member name will be present, but the
6677// value will be replaced with "sensitive".
6678func (s BotAliasHistoryEvent) String() string {
6679	return awsutil.Prettify(s)
6680}
6681
6682// GoString returns the string representation.
6683//
6684// API parameter values that are decorated as "sensitive" in the API will not
6685// be included in the string output. The member name will be present, but the
6686// value will be replaced with "sensitive".
6687func (s BotAliasHistoryEvent) GoString() string {
6688	return s.String()
6689}
6690
6691// SetBotVersion sets the BotVersion field's value.
6692func (s *BotAliasHistoryEvent) SetBotVersion(v string) *BotAliasHistoryEvent {
6693	s.BotVersion = &v
6694	return s
6695}
6696
6697// SetEndDate sets the EndDate field's value.
6698func (s *BotAliasHistoryEvent) SetEndDate(v time.Time) *BotAliasHistoryEvent {
6699	s.EndDate = &v
6700	return s
6701}
6702
6703// SetStartDate sets the StartDate field's value.
6704func (s *BotAliasHistoryEvent) SetStartDate(v time.Time) *BotAliasHistoryEvent {
6705	s.StartDate = &v
6706	return s
6707}
6708
6709// Specifies settings that are unique to a locale. For example, you can use
6710// different Lambda function depending on the bot's locale.
6711type BotAliasLocaleSettings struct {
6712	_ struct{} `type:"structure"`
6713
6714	// Specifies the Lambda function that should be used in the locale.
6715	CodeHookSpecification *CodeHookSpecification `locationName:"codeHookSpecification" type:"structure"`
6716
6717	// Determines whether the locale is enabled for the bot. If the value is false,
6718	// the locale isn't available for use.
6719	//
6720	// Enabled is a required field
6721	Enabled *bool `locationName:"enabled" type:"boolean" required:"true"`
6722}
6723
6724// String returns the string representation.
6725//
6726// API parameter values that are decorated as "sensitive" in the API will not
6727// be included in the string output. The member name will be present, but the
6728// value will be replaced with "sensitive".
6729func (s BotAliasLocaleSettings) String() string {
6730	return awsutil.Prettify(s)
6731}
6732
6733// GoString returns the string representation.
6734//
6735// API parameter values that are decorated as "sensitive" in the API will not
6736// be included in the string output. The member name will be present, but the
6737// value will be replaced with "sensitive".
6738func (s BotAliasLocaleSettings) GoString() string {
6739	return s.String()
6740}
6741
6742// Validate inspects the fields of the type to determine if they are valid.
6743func (s *BotAliasLocaleSettings) Validate() error {
6744	invalidParams := request.ErrInvalidParams{Context: "BotAliasLocaleSettings"}
6745	if s.Enabled == nil {
6746		invalidParams.Add(request.NewErrParamRequired("Enabled"))
6747	}
6748	if s.CodeHookSpecification != nil {
6749		if err := s.CodeHookSpecification.Validate(); err != nil {
6750			invalidParams.AddNested("CodeHookSpecification", err.(request.ErrInvalidParams))
6751		}
6752	}
6753
6754	if invalidParams.Len() > 0 {
6755		return invalidParams
6756	}
6757	return nil
6758}
6759
6760// SetCodeHookSpecification sets the CodeHookSpecification field's value.
6761func (s *BotAliasLocaleSettings) SetCodeHookSpecification(v *CodeHookSpecification) *BotAliasLocaleSettings {
6762	s.CodeHookSpecification = v
6763	return s
6764}
6765
6766// SetEnabled sets the Enabled field's value.
6767func (s *BotAliasLocaleSettings) SetEnabled(v bool) *BotAliasLocaleSettings {
6768	s.Enabled = &v
6769	return s
6770}
6771
6772// Summary information about bot aliases returned from the ListBotAliases operation.
6773type BotAliasSummary struct {
6774	_ struct{} `type:"structure"`
6775
6776	// The unique identifier assigned to the bot alias. You can use this ID to get
6777	// detailed information about the alias using the DescribeBotAlias operation.
6778	BotAliasId *string `locationName:"botAliasId" min:"10" type:"string"`
6779
6780	// The name of the bot alias.
6781	BotAliasName *string `locationName:"botAliasName" min:"1" type:"string"`
6782
6783	// The current state of the bot alias. If the status is Available, the alias
6784	// is ready for use.
6785	BotAliasStatus *string `locationName:"botAliasStatus" type:"string" enum:"BotAliasStatus"`
6786
6787	// The version of the bot that the bot alias references.
6788	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
6789
6790	// A timestamp of the date and time that the bot alias was created.
6791	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
6792
6793	// The description of the bot alias.
6794	Description *string `locationName:"description" type:"string"`
6795
6796	// A timestamp of the date and time that the bot alias was last updated.
6797	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
6798}
6799
6800// String returns the string representation.
6801//
6802// API parameter values that are decorated as "sensitive" in the API will not
6803// be included in the string output. The member name will be present, but the
6804// value will be replaced with "sensitive".
6805func (s BotAliasSummary) String() string {
6806	return awsutil.Prettify(s)
6807}
6808
6809// GoString returns the string representation.
6810//
6811// API parameter values that are decorated as "sensitive" in the API will not
6812// be included in the string output. The member name will be present, but the
6813// value will be replaced with "sensitive".
6814func (s BotAliasSummary) GoString() string {
6815	return s.String()
6816}
6817
6818// SetBotAliasId sets the BotAliasId field's value.
6819func (s *BotAliasSummary) SetBotAliasId(v string) *BotAliasSummary {
6820	s.BotAliasId = &v
6821	return s
6822}
6823
6824// SetBotAliasName sets the BotAliasName field's value.
6825func (s *BotAliasSummary) SetBotAliasName(v string) *BotAliasSummary {
6826	s.BotAliasName = &v
6827	return s
6828}
6829
6830// SetBotAliasStatus sets the BotAliasStatus field's value.
6831func (s *BotAliasSummary) SetBotAliasStatus(v string) *BotAliasSummary {
6832	s.BotAliasStatus = &v
6833	return s
6834}
6835
6836// SetBotVersion sets the BotVersion field's value.
6837func (s *BotAliasSummary) SetBotVersion(v string) *BotAliasSummary {
6838	s.BotVersion = &v
6839	return s
6840}
6841
6842// SetCreationDateTime sets the CreationDateTime field's value.
6843func (s *BotAliasSummary) SetCreationDateTime(v time.Time) *BotAliasSummary {
6844	s.CreationDateTime = &v
6845	return s
6846}
6847
6848// SetDescription sets the Description field's value.
6849func (s *BotAliasSummary) SetDescription(v string) *BotAliasSummary {
6850	s.Description = &v
6851	return s
6852}
6853
6854// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
6855func (s *BotAliasSummary) SetLastUpdatedDateTime(v time.Time) *BotAliasSummary {
6856	s.LastUpdatedDateTime = &v
6857	return s
6858}
6859
6860// Provides the identity of a the bot that was exported.
6861type BotExportSpecification struct {
6862	_ struct{} `type:"structure"`
6863
6864	// The identifier of the bot assigned by Amazon Lex.
6865	//
6866	// BotId is a required field
6867	BotId *string `locationName:"botId" min:"10" type:"string" required:"true"`
6868
6869	// The version of the bot that was exported. This will be either DRAFT or the
6870	// version number.
6871	//
6872	// BotVersion is a required field
6873	BotVersion *string `locationName:"botVersion" min:"1" type:"string" required:"true"`
6874}
6875
6876// String returns the string representation.
6877//
6878// API parameter values that are decorated as "sensitive" in the API will not
6879// be included in the string output. The member name will be present, but the
6880// value will be replaced with "sensitive".
6881func (s BotExportSpecification) String() string {
6882	return awsutil.Prettify(s)
6883}
6884
6885// GoString returns the string representation.
6886//
6887// API parameter values that are decorated as "sensitive" in the API will not
6888// be included in the string output. The member name will be present, but the
6889// value will be replaced with "sensitive".
6890func (s BotExportSpecification) GoString() string {
6891	return s.String()
6892}
6893
6894// Validate inspects the fields of the type to determine if they are valid.
6895func (s *BotExportSpecification) Validate() error {
6896	invalidParams := request.ErrInvalidParams{Context: "BotExportSpecification"}
6897	if s.BotId == nil {
6898		invalidParams.Add(request.NewErrParamRequired("BotId"))
6899	}
6900	if s.BotId != nil && len(*s.BotId) < 10 {
6901		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
6902	}
6903	if s.BotVersion == nil {
6904		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
6905	}
6906	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
6907		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
6908	}
6909
6910	if invalidParams.Len() > 0 {
6911		return invalidParams
6912	}
6913	return nil
6914}
6915
6916// SetBotId sets the BotId field's value.
6917func (s *BotExportSpecification) SetBotId(v string) *BotExportSpecification {
6918	s.BotId = &v
6919	return s
6920}
6921
6922// SetBotVersion sets the BotVersion field's value.
6923func (s *BotExportSpecification) SetBotVersion(v string) *BotExportSpecification {
6924	s.BotVersion = &v
6925	return s
6926}
6927
6928// Filters the responses returned by the ListBots operation.
6929type BotFilter struct {
6930	_ struct{} `type:"structure"`
6931
6932	// The name of the field to filter the list of bots.
6933	//
6934	// Name is a required field
6935	Name *string `locationName:"name" type:"string" required:"true" enum:"BotFilterName"`
6936
6937	// The operator to use for the filter. Specify EQ when the ListBots operation
6938	// should return only aliases that equal the specified value. Specify CO when
6939	// the ListBots operation should return aliases that contain the specified value.
6940	//
6941	// Operator is a required field
6942	Operator *string `locationName:"operator" type:"string" required:"true" enum:"BotFilterOperator"`
6943
6944	// The value to use for filtering the list of bots.
6945	//
6946	// Values is a required field
6947	Values []*string `locationName:"values" min:"1" type:"list" required:"true"`
6948}
6949
6950// String returns the string representation.
6951//
6952// API parameter values that are decorated as "sensitive" in the API will not
6953// be included in the string output. The member name will be present, but the
6954// value will be replaced with "sensitive".
6955func (s BotFilter) String() string {
6956	return awsutil.Prettify(s)
6957}
6958
6959// GoString returns the string representation.
6960//
6961// API parameter values that are decorated as "sensitive" in the API will not
6962// be included in the string output. The member name will be present, but the
6963// value will be replaced with "sensitive".
6964func (s BotFilter) GoString() string {
6965	return s.String()
6966}
6967
6968// Validate inspects the fields of the type to determine if they are valid.
6969func (s *BotFilter) Validate() error {
6970	invalidParams := request.ErrInvalidParams{Context: "BotFilter"}
6971	if s.Name == nil {
6972		invalidParams.Add(request.NewErrParamRequired("Name"))
6973	}
6974	if s.Operator == nil {
6975		invalidParams.Add(request.NewErrParamRequired("Operator"))
6976	}
6977	if s.Values == nil {
6978		invalidParams.Add(request.NewErrParamRequired("Values"))
6979	}
6980	if s.Values != nil && len(s.Values) < 1 {
6981		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
6982	}
6983
6984	if invalidParams.Len() > 0 {
6985		return invalidParams
6986	}
6987	return nil
6988}
6989
6990// SetName sets the Name field's value.
6991func (s *BotFilter) SetName(v string) *BotFilter {
6992	s.Name = &v
6993	return s
6994}
6995
6996// SetOperator sets the Operator field's value.
6997func (s *BotFilter) SetOperator(v string) *BotFilter {
6998	s.Operator = &v
6999	return s
7000}
7001
7002// SetValues sets the Values field's value.
7003func (s *BotFilter) SetValues(v []*string) *BotFilter {
7004	s.Values = v
7005	return s
7006}
7007
7008// Provides the bot parameters required for importing a bot.
7009type BotImportSpecification struct {
7010	_ struct{} `type:"structure"`
7011
7012	// The name that Amazon Lex should use for the bot.
7013	//
7014	// BotName is a required field
7015	BotName *string `locationName:"botName" min:"1" type:"string" required:"true"`
7016
7017	// A list of tags to add to the bot. You can only add tags when you import a
7018	// bot. You can't use the UpdateBot operation to update tags. To update tags,
7019	// use the TagResource operation.
7020	BotTags map[string]*string `locationName:"botTags" type:"map"`
7021
7022	// By default, data stored by Amazon Lex is encrypted. The DataPrivacy structure
7023	// provides settings that determine how Amazon Lex handles special cases of
7024	// securing the data for your bot.
7025	//
7026	// DataPrivacy is a required field
7027	DataPrivacy *DataPrivacy `locationName:"dataPrivacy" type:"structure" required:"true"`
7028
7029	// The time, in seconds, that Amazon Lex should keep information about a user's
7030	// conversation with the bot.
7031	//
7032	// A user interaction remains active for the amount of time specified. If no
7033	// conversation occurs during this time, the session expires and Amazon Lex
7034	// deletes any data provided before the timeout.
7035	//
7036	// You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.
7037	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
7038
7039	// The Amazon Resource Name (ARN) of the IAM role used to build and run the
7040	// bot.
7041	//
7042	// RoleArn is a required field
7043	RoleArn *string `locationName:"roleArn" min:"32" type:"string" required:"true"`
7044
7045	// A list of tags to add to the test alias for a bot. You can only add tags
7046	// when you import a bot. You can't use the UpdateAlias operation to update
7047	// tags. To update tags on the test alias, use the TagResource operation.
7048	TestBotAliasTags map[string]*string `locationName:"testBotAliasTags" type:"map"`
7049}
7050
7051// String returns the string representation.
7052//
7053// API parameter values that are decorated as "sensitive" in the API will not
7054// be included in the string output. The member name will be present, but the
7055// value will be replaced with "sensitive".
7056func (s BotImportSpecification) String() string {
7057	return awsutil.Prettify(s)
7058}
7059
7060// GoString returns the string representation.
7061//
7062// API parameter values that are decorated as "sensitive" in the API will not
7063// be included in the string output. The member name will be present, but the
7064// value will be replaced with "sensitive".
7065func (s BotImportSpecification) GoString() string {
7066	return s.String()
7067}
7068
7069// Validate inspects the fields of the type to determine if they are valid.
7070func (s *BotImportSpecification) Validate() error {
7071	invalidParams := request.ErrInvalidParams{Context: "BotImportSpecification"}
7072	if s.BotName == nil {
7073		invalidParams.Add(request.NewErrParamRequired("BotName"))
7074	}
7075	if s.BotName != nil && len(*s.BotName) < 1 {
7076		invalidParams.Add(request.NewErrParamMinLen("BotName", 1))
7077	}
7078	if s.DataPrivacy == nil {
7079		invalidParams.Add(request.NewErrParamRequired("DataPrivacy"))
7080	}
7081	if s.IdleSessionTTLInSeconds != nil && *s.IdleSessionTTLInSeconds < 60 {
7082		invalidParams.Add(request.NewErrParamMinValue("IdleSessionTTLInSeconds", 60))
7083	}
7084	if s.RoleArn == nil {
7085		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
7086	}
7087	if s.RoleArn != nil && len(*s.RoleArn) < 32 {
7088		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 32))
7089	}
7090	if s.DataPrivacy != nil {
7091		if err := s.DataPrivacy.Validate(); err != nil {
7092			invalidParams.AddNested("DataPrivacy", err.(request.ErrInvalidParams))
7093		}
7094	}
7095
7096	if invalidParams.Len() > 0 {
7097		return invalidParams
7098	}
7099	return nil
7100}
7101
7102// SetBotName sets the BotName field's value.
7103func (s *BotImportSpecification) SetBotName(v string) *BotImportSpecification {
7104	s.BotName = &v
7105	return s
7106}
7107
7108// SetBotTags sets the BotTags field's value.
7109func (s *BotImportSpecification) SetBotTags(v map[string]*string) *BotImportSpecification {
7110	s.BotTags = v
7111	return s
7112}
7113
7114// SetDataPrivacy sets the DataPrivacy field's value.
7115func (s *BotImportSpecification) SetDataPrivacy(v *DataPrivacy) *BotImportSpecification {
7116	s.DataPrivacy = v
7117	return s
7118}
7119
7120// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
7121func (s *BotImportSpecification) SetIdleSessionTTLInSeconds(v int64) *BotImportSpecification {
7122	s.IdleSessionTTLInSeconds = &v
7123	return s
7124}
7125
7126// SetRoleArn sets the RoleArn field's value.
7127func (s *BotImportSpecification) SetRoleArn(v string) *BotImportSpecification {
7128	s.RoleArn = &v
7129	return s
7130}
7131
7132// SetTestBotAliasTags sets the TestBotAliasTags field's value.
7133func (s *BotImportSpecification) SetTestBotAliasTags(v map[string]*string) *BotImportSpecification {
7134	s.TestBotAliasTags = v
7135	return s
7136}
7137
7138// Provides the bot locale parameters required for exporting a bot locale.
7139type BotLocaleExportSpecification struct {
7140	_ struct{} `type:"structure"`
7141
7142	// The identifier of the bot to create the locale for.
7143	//
7144	// BotId is a required field
7145	BotId *string `locationName:"botId" min:"10" type:"string" required:"true"`
7146
7147	// The version of the bot to export.
7148	//
7149	// BotVersion is a required field
7150	BotVersion *string `locationName:"botVersion" min:"1" type:"string" required:"true"`
7151
7152	// The identifier of the language and locale to export. The string must match
7153	// one of the locales in the bot.
7154	//
7155	// LocaleId is a required field
7156	LocaleId *string `locationName:"localeId" type:"string" required:"true"`
7157}
7158
7159// String returns the string representation.
7160//
7161// API parameter values that are decorated as "sensitive" in the API will not
7162// be included in the string output. The member name will be present, but the
7163// value will be replaced with "sensitive".
7164func (s BotLocaleExportSpecification) String() string {
7165	return awsutil.Prettify(s)
7166}
7167
7168// GoString returns the string representation.
7169//
7170// API parameter values that are decorated as "sensitive" in the API will not
7171// be included in the string output. The member name will be present, but the
7172// value will be replaced with "sensitive".
7173func (s BotLocaleExportSpecification) GoString() string {
7174	return s.String()
7175}
7176
7177// Validate inspects the fields of the type to determine if they are valid.
7178func (s *BotLocaleExportSpecification) Validate() error {
7179	invalidParams := request.ErrInvalidParams{Context: "BotLocaleExportSpecification"}
7180	if s.BotId == nil {
7181		invalidParams.Add(request.NewErrParamRequired("BotId"))
7182	}
7183	if s.BotId != nil && len(*s.BotId) < 10 {
7184		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
7185	}
7186	if s.BotVersion == nil {
7187		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
7188	}
7189	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
7190		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
7191	}
7192	if s.LocaleId == nil {
7193		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
7194	}
7195
7196	if invalidParams.Len() > 0 {
7197		return invalidParams
7198	}
7199	return nil
7200}
7201
7202// SetBotId sets the BotId field's value.
7203func (s *BotLocaleExportSpecification) SetBotId(v string) *BotLocaleExportSpecification {
7204	s.BotId = &v
7205	return s
7206}
7207
7208// SetBotVersion sets the BotVersion field's value.
7209func (s *BotLocaleExportSpecification) SetBotVersion(v string) *BotLocaleExportSpecification {
7210	s.BotVersion = &v
7211	return s
7212}
7213
7214// SetLocaleId sets the LocaleId field's value.
7215func (s *BotLocaleExportSpecification) SetLocaleId(v string) *BotLocaleExportSpecification {
7216	s.LocaleId = &v
7217	return s
7218}
7219
7220// Filters responses returned by the ListBotLocales operation.
7221type BotLocaleFilter struct {
7222	_ struct{} `type:"structure"`
7223
7224	// The name of the field to filter the list of bots.
7225	//
7226	// Name is a required field
7227	Name *string `locationName:"name" type:"string" required:"true" enum:"BotLocaleFilterName"`
7228
7229	// The operator to use for the filter. Specify EQ when the ListBotLocales operation
7230	// should return only aliases that equal the specified value. Specify CO when
7231	// the ListBotLocales operation should return aliases that contain the specified
7232	// value.
7233	//
7234	// Operator is a required field
7235	Operator *string `locationName:"operator" type:"string" required:"true" enum:"BotLocaleFilterOperator"`
7236
7237	// The value to use for filtering the list of bots.
7238	//
7239	// Values is a required field
7240	Values []*string `locationName:"values" min:"1" type:"list" required:"true"`
7241}
7242
7243// String returns the string representation.
7244//
7245// API parameter values that are decorated as "sensitive" in the API will not
7246// be included in the string output. The member name will be present, but the
7247// value will be replaced with "sensitive".
7248func (s BotLocaleFilter) String() string {
7249	return awsutil.Prettify(s)
7250}
7251
7252// GoString returns the string representation.
7253//
7254// API parameter values that are decorated as "sensitive" in the API will not
7255// be included in the string output. The member name will be present, but the
7256// value will be replaced with "sensitive".
7257func (s BotLocaleFilter) GoString() string {
7258	return s.String()
7259}
7260
7261// Validate inspects the fields of the type to determine if they are valid.
7262func (s *BotLocaleFilter) Validate() error {
7263	invalidParams := request.ErrInvalidParams{Context: "BotLocaleFilter"}
7264	if s.Name == nil {
7265		invalidParams.Add(request.NewErrParamRequired("Name"))
7266	}
7267	if s.Operator == nil {
7268		invalidParams.Add(request.NewErrParamRequired("Operator"))
7269	}
7270	if s.Values == nil {
7271		invalidParams.Add(request.NewErrParamRequired("Values"))
7272	}
7273	if s.Values != nil && len(s.Values) < 1 {
7274		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
7275	}
7276
7277	if invalidParams.Len() > 0 {
7278		return invalidParams
7279	}
7280	return nil
7281}
7282
7283// SetName sets the Name field's value.
7284func (s *BotLocaleFilter) SetName(v string) *BotLocaleFilter {
7285	s.Name = &v
7286	return s
7287}
7288
7289// SetOperator sets the Operator field's value.
7290func (s *BotLocaleFilter) SetOperator(v string) *BotLocaleFilter {
7291	s.Operator = &v
7292	return s
7293}
7294
7295// SetValues sets the Values field's value.
7296func (s *BotLocaleFilter) SetValues(v []*string) *BotLocaleFilter {
7297	s.Values = v
7298	return s
7299}
7300
7301// Provides information about an event that occurred affecting the bot locale.
7302type BotLocaleHistoryEvent struct {
7303	_ struct{} `type:"structure"`
7304
7305	// A description of the event that occurred.
7306	//
7307	// Event is a required field
7308	Event *string `locationName:"event" type:"string" required:"true"`
7309
7310	// A timestamp of the date and time that the event occurred.
7311	//
7312	// EventDate is a required field
7313	EventDate *time.Time `locationName:"eventDate" type:"timestamp" required:"true"`
7314}
7315
7316// String returns the string representation.
7317//
7318// API parameter values that are decorated as "sensitive" in the API will not
7319// be included in the string output. The member name will be present, but the
7320// value will be replaced with "sensitive".
7321func (s BotLocaleHistoryEvent) String() string {
7322	return awsutil.Prettify(s)
7323}
7324
7325// GoString returns the string representation.
7326//
7327// API parameter values that are decorated as "sensitive" in the API will not
7328// be included in the string output. The member name will be present, but the
7329// value will be replaced with "sensitive".
7330func (s BotLocaleHistoryEvent) GoString() string {
7331	return s.String()
7332}
7333
7334// SetEvent sets the Event field's value.
7335func (s *BotLocaleHistoryEvent) SetEvent(v string) *BotLocaleHistoryEvent {
7336	s.Event = &v
7337	return s
7338}
7339
7340// SetEventDate sets the EventDate field's value.
7341func (s *BotLocaleHistoryEvent) SetEventDate(v time.Time) *BotLocaleHistoryEvent {
7342	s.EventDate = &v
7343	return s
7344}
7345
7346// Provides the bot locale parameters required for importing a bot locale.
7347type BotLocaleImportSpecification struct {
7348	_ struct{} `type:"structure"`
7349
7350	// The identifier of the bot to import the locale to.
7351	//
7352	// BotId is a required field
7353	BotId *string `locationName:"botId" min:"10" type:"string" required:"true"`
7354
7355	// The version of the bot to import the locale to. This can only be the DRAFT
7356	// version of the bot.
7357	//
7358	// BotVersion is a required field
7359	BotVersion *string `locationName:"botVersion" min:"5" type:"string" required:"true"`
7360
7361	// The identifier of the language and locale that the bot will be used in. The
7362	// string must match one of the supported locales. All of the intents, slot
7363	// types, and slots used in the bot must have the same locale. For more information,
7364	// see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
7365	//
7366	// LocaleId is a required field
7367	LocaleId *string `locationName:"localeId" type:"string" required:"true"`
7368
7369	// Determines the threshold where Amazon Lex will insert the AMAZON.FallbackIntent,
7370	// AMAZON.KendraSearchIntent, or both when returning alternative intents. AMAZON.FallbackIntent
7371	// and AMAZON.KendraSearchIntent are only inserted if they are configured for
7372	// the bot.
7373	//
7374	// For example, suppose a bot is configured with the confidence threshold of
7375	// 0.80 and the AMAZON.FallbackIntent. Amazon Lex returns three alternative
7376	// intents with the following confidence scores: IntentA (0.70), IntentB (0.60),
7377	// IntentC (0.50). The response from the PostText operation would be:
7378	//
7379	//    * AMAZON.FallbackIntent
7380	//
7381	//    * IntentA
7382	//
7383	//    * IntentB
7384	//
7385	//    * IntentC
7386	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double"`
7387
7388	// Defines settings for using an Amazon Polly voice to communicate with a user.
7389	VoiceSettings *VoiceSettings `locationName:"voiceSettings" type:"structure"`
7390}
7391
7392// String returns the string representation.
7393//
7394// API parameter values that are decorated as "sensitive" in the API will not
7395// be included in the string output. The member name will be present, but the
7396// value will be replaced with "sensitive".
7397func (s BotLocaleImportSpecification) String() string {
7398	return awsutil.Prettify(s)
7399}
7400
7401// GoString returns the string representation.
7402//
7403// API parameter values that are decorated as "sensitive" in the API will not
7404// be included in the string output. The member name will be present, but the
7405// value will be replaced with "sensitive".
7406func (s BotLocaleImportSpecification) GoString() string {
7407	return s.String()
7408}
7409
7410// Validate inspects the fields of the type to determine if they are valid.
7411func (s *BotLocaleImportSpecification) Validate() error {
7412	invalidParams := request.ErrInvalidParams{Context: "BotLocaleImportSpecification"}
7413	if s.BotId == nil {
7414		invalidParams.Add(request.NewErrParamRequired("BotId"))
7415	}
7416	if s.BotId != nil && len(*s.BotId) < 10 {
7417		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
7418	}
7419	if s.BotVersion == nil {
7420		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
7421	}
7422	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
7423		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
7424	}
7425	if s.LocaleId == nil {
7426		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
7427	}
7428	if s.VoiceSettings != nil {
7429		if err := s.VoiceSettings.Validate(); err != nil {
7430			invalidParams.AddNested("VoiceSettings", err.(request.ErrInvalidParams))
7431		}
7432	}
7433
7434	if invalidParams.Len() > 0 {
7435		return invalidParams
7436	}
7437	return nil
7438}
7439
7440// SetBotId sets the BotId field's value.
7441func (s *BotLocaleImportSpecification) SetBotId(v string) *BotLocaleImportSpecification {
7442	s.BotId = &v
7443	return s
7444}
7445
7446// SetBotVersion sets the BotVersion field's value.
7447func (s *BotLocaleImportSpecification) SetBotVersion(v string) *BotLocaleImportSpecification {
7448	s.BotVersion = &v
7449	return s
7450}
7451
7452// SetLocaleId sets the LocaleId field's value.
7453func (s *BotLocaleImportSpecification) SetLocaleId(v string) *BotLocaleImportSpecification {
7454	s.LocaleId = &v
7455	return s
7456}
7457
7458// SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
7459func (s *BotLocaleImportSpecification) SetNluIntentConfidenceThreshold(v float64) *BotLocaleImportSpecification {
7460	s.NluIntentConfidenceThreshold = &v
7461	return s
7462}
7463
7464// SetVoiceSettings sets the VoiceSettings field's value.
7465func (s *BotLocaleImportSpecification) SetVoiceSettings(v *VoiceSettings) *BotLocaleImportSpecification {
7466	s.VoiceSettings = v
7467	return s
7468}
7469
7470// Specifies attributes for sorting a list of bot locales.
7471type BotLocaleSortBy struct {
7472	_ struct{} `type:"structure"`
7473
7474	// The bot locale attribute to sort by.
7475	//
7476	// Attribute is a required field
7477	Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"BotLocaleSortAttribute"`
7478
7479	// Specifies whether to sort the bot locales in ascending or descending order.
7480	//
7481	// Order is a required field
7482	Order *string `locationName:"order" type:"string" required:"true" enum:"SortOrder"`
7483}
7484
7485// String returns the string representation.
7486//
7487// API parameter values that are decorated as "sensitive" in the API will not
7488// be included in the string output. The member name will be present, but the
7489// value will be replaced with "sensitive".
7490func (s BotLocaleSortBy) String() string {
7491	return awsutil.Prettify(s)
7492}
7493
7494// GoString returns the string representation.
7495//
7496// API parameter values that are decorated as "sensitive" in the API will not
7497// be included in the string output. The member name will be present, but the
7498// value will be replaced with "sensitive".
7499func (s BotLocaleSortBy) GoString() string {
7500	return s.String()
7501}
7502
7503// Validate inspects the fields of the type to determine if they are valid.
7504func (s *BotLocaleSortBy) Validate() error {
7505	invalidParams := request.ErrInvalidParams{Context: "BotLocaleSortBy"}
7506	if s.Attribute == nil {
7507		invalidParams.Add(request.NewErrParamRequired("Attribute"))
7508	}
7509	if s.Order == nil {
7510		invalidParams.Add(request.NewErrParamRequired("Order"))
7511	}
7512
7513	if invalidParams.Len() > 0 {
7514		return invalidParams
7515	}
7516	return nil
7517}
7518
7519// SetAttribute sets the Attribute field's value.
7520func (s *BotLocaleSortBy) SetAttribute(v string) *BotLocaleSortBy {
7521	s.Attribute = &v
7522	return s
7523}
7524
7525// SetOrder sets the Order field's value.
7526func (s *BotLocaleSortBy) SetOrder(v string) *BotLocaleSortBy {
7527	s.Order = &v
7528	return s
7529}
7530
7531// Summary information about bot locales returned by the ListBotLocales operation.
7532type BotLocaleSummary struct {
7533	_ struct{} `type:"structure"`
7534
7535	// The current status of the bot locale. When the status is Built the locale
7536	// is ready for use.
7537	BotLocaleStatus *string `locationName:"botLocaleStatus" type:"string" enum:"BotLocaleStatus"`
7538
7539	// The description of the bot locale.
7540	Description *string `locationName:"description" type:"string"`
7541
7542	// A timestamp of the date and time that the bot locale was last built.
7543	LastBuildSubmittedDateTime *time.Time `locationName:"lastBuildSubmittedDateTime" type:"timestamp"`
7544
7545	// A timestamp of the date and time that the bot locale was last updated.
7546	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
7547
7548	// The language and locale of the bot locale.
7549	LocaleId *string `locationName:"localeId" type:"string"`
7550
7551	// The name of the bot locale.
7552	LocaleName *string `locationName:"localeName" type:"string"`
7553}
7554
7555// String returns the string representation.
7556//
7557// API parameter values that are decorated as "sensitive" in the API will not
7558// be included in the string output. The member name will be present, but the
7559// value will be replaced with "sensitive".
7560func (s BotLocaleSummary) String() string {
7561	return awsutil.Prettify(s)
7562}
7563
7564// GoString returns the string representation.
7565//
7566// API parameter values that are decorated as "sensitive" in the API will not
7567// be included in the string output. The member name will be present, but the
7568// value will be replaced with "sensitive".
7569func (s BotLocaleSummary) GoString() string {
7570	return s.String()
7571}
7572
7573// SetBotLocaleStatus sets the BotLocaleStatus field's value.
7574func (s *BotLocaleSummary) SetBotLocaleStatus(v string) *BotLocaleSummary {
7575	s.BotLocaleStatus = &v
7576	return s
7577}
7578
7579// SetDescription sets the Description field's value.
7580func (s *BotLocaleSummary) SetDescription(v string) *BotLocaleSummary {
7581	s.Description = &v
7582	return s
7583}
7584
7585// SetLastBuildSubmittedDateTime sets the LastBuildSubmittedDateTime field's value.
7586func (s *BotLocaleSummary) SetLastBuildSubmittedDateTime(v time.Time) *BotLocaleSummary {
7587	s.LastBuildSubmittedDateTime = &v
7588	return s
7589}
7590
7591// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
7592func (s *BotLocaleSummary) SetLastUpdatedDateTime(v time.Time) *BotLocaleSummary {
7593	s.LastUpdatedDateTime = &v
7594	return s
7595}
7596
7597// SetLocaleId sets the LocaleId field's value.
7598func (s *BotLocaleSummary) SetLocaleId(v string) *BotLocaleSummary {
7599	s.LocaleId = &v
7600	return s
7601}
7602
7603// SetLocaleName sets the LocaleName field's value.
7604func (s *BotLocaleSummary) SetLocaleName(v string) *BotLocaleSummary {
7605	s.LocaleName = &v
7606	return s
7607}
7608
7609// Specifies attributes for sorting a list of bots.
7610type BotSortBy struct {
7611	_ struct{} `type:"structure"`
7612
7613	// The attribute to use to sort the list of bots.
7614	//
7615	// Attribute is a required field
7616	Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"BotSortAttribute"`
7617
7618	// The order to sort the list. You can choose ascending or descending.
7619	//
7620	// Order is a required field
7621	Order *string `locationName:"order" type:"string" required:"true" enum:"SortOrder"`
7622}
7623
7624// String returns the string representation.
7625//
7626// API parameter values that are decorated as "sensitive" in the API will not
7627// be included in the string output. The member name will be present, but the
7628// value will be replaced with "sensitive".
7629func (s BotSortBy) String() string {
7630	return awsutil.Prettify(s)
7631}
7632
7633// GoString returns the string representation.
7634//
7635// API parameter values that are decorated as "sensitive" in the API will not
7636// be included in the string output. The member name will be present, but the
7637// value will be replaced with "sensitive".
7638func (s BotSortBy) GoString() string {
7639	return s.String()
7640}
7641
7642// Validate inspects the fields of the type to determine if they are valid.
7643func (s *BotSortBy) Validate() error {
7644	invalidParams := request.ErrInvalidParams{Context: "BotSortBy"}
7645	if s.Attribute == nil {
7646		invalidParams.Add(request.NewErrParamRequired("Attribute"))
7647	}
7648	if s.Order == nil {
7649		invalidParams.Add(request.NewErrParamRequired("Order"))
7650	}
7651
7652	if invalidParams.Len() > 0 {
7653		return invalidParams
7654	}
7655	return nil
7656}
7657
7658// SetAttribute sets the Attribute field's value.
7659func (s *BotSortBy) SetAttribute(v string) *BotSortBy {
7660	s.Attribute = &v
7661	return s
7662}
7663
7664// SetOrder sets the Order field's value.
7665func (s *BotSortBy) SetOrder(v string) *BotSortBy {
7666	s.Order = &v
7667	return s
7668}
7669
7670// Summary information about a bot returned by the ListBots operation.
7671type BotSummary struct {
7672	_ struct{} `type:"structure"`
7673
7674	// The unique identifier assigned to the bot. Use this ID to get detailed information
7675	// about the bot with the DescribeBot operation.
7676	BotId *string `locationName:"botId" min:"10" type:"string"`
7677
7678	// The name of the bot.
7679	BotName *string `locationName:"botName" min:"1" type:"string"`
7680
7681	// The current status of the bot. When the status is Available the bot is ready
7682	// for use.
7683	BotStatus *string `locationName:"botStatus" type:"string" enum:"BotStatus"`
7684
7685	// The description of the bot.
7686	Description *string `locationName:"description" type:"string"`
7687
7688	// The date and time that the bot was last updated.
7689	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
7690
7691	// The latest numerical version in use for the bot.
7692	LatestBotVersion *string `locationName:"latestBotVersion" min:"1" type:"string"`
7693}
7694
7695// String returns the string representation.
7696//
7697// API parameter values that are decorated as "sensitive" in the API will not
7698// be included in the string output. The member name will be present, but the
7699// value will be replaced with "sensitive".
7700func (s BotSummary) String() string {
7701	return awsutil.Prettify(s)
7702}
7703
7704// GoString returns the string representation.
7705//
7706// API parameter values that are decorated as "sensitive" in the API will not
7707// be included in the string output. The member name will be present, but the
7708// value will be replaced with "sensitive".
7709func (s BotSummary) GoString() string {
7710	return s.String()
7711}
7712
7713// SetBotId sets the BotId field's value.
7714func (s *BotSummary) SetBotId(v string) *BotSummary {
7715	s.BotId = &v
7716	return s
7717}
7718
7719// SetBotName sets the BotName field's value.
7720func (s *BotSummary) SetBotName(v string) *BotSummary {
7721	s.BotName = &v
7722	return s
7723}
7724
7725// SetBotStatus sets the BotStatus field's value.
7726func (s *BotSummary) SetBotStatus(v string) *BotSummary {
7727	s.BotStatus = &v
7728	return s
7729}
7730
7731// SetDescription sets the Description field's value.
7732func (s *BotSummary) SetDescription(v string) *BotSummary {
7733	s.Description = &v
7734	return s
7735}
7736
7737// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
7738func (s *BotSummary) SetLastUpdatedDateTime(v time.Time) *BotSummary {
7739	s.LastUpdatedDateTime = &v
7740	return s
7741}
7742
7743// SetLatestBotVersion sets the LatestBotVersion field's value.
7744func (s *BotSummary) SetLatestBotVersion(v string) *BotSummary {
7745	s.LatestBotVersion = &v
7746	return s
7747}
7748
7749// The version of a bot used for a bot locale.
7750type BotVersionLocaleDetails struct {
7751	_ struct{} `type:"structure"`
7752
7753	// The version of a bot used for a bot locale.
7754	//
7755	// SourceBotVersion is a required field
7756	SourceBotVersion *string `locationName:"sourceBotVersion" min:"1" type:"string" required:"true"`
7757}
7758
7759// String returns the string representation.
7760//
7761// API parameter values that are decorated as "sensitive" in the API will not
7762// be included in the string output. The member name will be present, but the
7763// value will be replaced with "sensitive".
7764func (s BotVersionLocaleDetails) String() string {
7765	return awsutil.Prettify(s)
7766}
7767
7768// GoString returns the string representation.
7769//
7770// API parameter values that are decorated as "sensitive" in the API will not
7771// be included in the string output. The member name will be present, but the
7772// value will be replaced with "sensitive".
7773func (s BotVersionLocaleDetails) GoString() string {
7774	return s.String()
7775}
7776
7777// Validate inspects the fields of the type to determine if they are valid.
7778func (s *BotVersionLocaleDetails) Validate() error {
7779	invalidParams := request.ErrInvalidParams{Context: "BotVersionLocaleDetails"}
7780	if s.SourceBotVersion == nil {
7781		invalidParams.Add(request.NewErrParamRequired("SourceBotVersion"))
7782	}
7783	if s.SourceBotVersion != nil && len(*s.SourceBotVersion) < 1 {
7784		invalidParams.Add(request.NewErrParamMinLen("SourceBotVersion", 1))
7785	}
7786
7787	if invalidParams.Len() > 0 {
7788		return invalidParams
7789	}
7790	return nil
7791}
7792
7793// SetSourceBotVersion sets the SourceBotVersion field's value.
7794func (s *BotVersionLocaleDetails) SetSourceBotVersion(v string) *BotVersionLocaleDetails {
7795	s.SourceBotVersion = &v
7796	return s
7797}
7798
7799// Specifies attributes for sorting a list of bot versions.
7800type BotVersionSortBy struct {
7801	_ struct{} `type:"structure"`
7802
7803	// The attribute to use to sort the list of versions.
7804	//
7805	// Attribute is a required field
7806	Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"BotVersionSortAttribute"`
7807
7808	// The order to sort the list. You can specify ascending or descending order.
7809	//
7810	// Order is a required field
7811	Order *string `locationName:"order" type:"string" required:"true" enum:"SortOrder"`
7812}
7813
7814// String returns the string representation.
7815//
7816// API parameter values that are decorated as "sensitive" in the API will not
7817// be included in the string output. The member name will be present, but the
7818// value will be replaced with "sensitive".
7819func (s BotVersionSortBy) String() string {
7820	return awsutil.Prettify(s)
7821}
7822
7823// GoString returns the string representation.
7824//
7825// API parameter values that are decorated as "sensitive" in the API will not
7826// be included in the string output. The member name will be present, but the
7827// value will be replaced with "sensitive".
7828func (s BotVersionSortBy) GoString() string {
7829	return s.String()
7830}
7831
7832// Validate inspects the fields of the type to determine if they are valid.
7833func (s *BotVersionSortBy) Validate() error {
7834	invalidParams := request.ErrInvalidParams{Context: "BotVersionSortBy"}
7835	if s.Attribute == nil {
7836		invalidParams.Add(request.NewErrParamRequired("Attribute"))
7837	}
7838	if s.Order == nil {
7839		invalidParams.Add(request.NewErrParamRequired("Order"))
7840	}
7841
7842	if invalidParams.Len() > 0 {
7843		return invalidParams
7844	}
7845	return nil
7846}
7847
7848// SetAttribute sets the Attribute field's value.
7849func (s *BotVersionSortBy) SetAttribute(v string) *BotVersionSortBy {
7850	s.Attribute = &v
7851	return s
7852}
7853
7854// SetOrder sets the Order field's value.
7855func (s *BotVersionSortBy) SetOrder(v string) *BotVersionSortBy {
7856	s.Order = &v
7857	return s
7858}
7859
7860// Summary information about a bot version returned by the ListBotVersions operation.
7861type BotVersionSummary struct {
7862	_ struct{} `type:"structure"`
7863
7864	// The name of the bot associated with the version.
7865	BotName *string `locationName:"botName" min:"1" type:"string"`
7866
7867	// The status of the bot. When the status is available, the version of the bot
7868	// is ready for use.
7869	BotStatus *string `locationName:"botStatus" type:"string" enum:"BotStatus"`
7870
7871	// The numeric version of the bot, or DRAFT to indicate that this is the version
7872	// of the bot that can be updated..
7873	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
7874
7875	// A timestamp of the date and time that the version was created.
7876	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
7877
7878	// The description of the version.
7879	Description *string `locationName:"description" type:"string"`
7880}
7881
7882// String returns the string representation.
7883//
7884// API parameter values that are decorated as "sensitive" in the API will not
7885// be included in the string output. The member name will be present, but the
7886// value will be replaced with "sensitive".
7887func (s BotVersionSummary) String() string {
7888	return awsutil.Prettify(s)
7889}
7890
7891// GoString returns the string representation.
7892//
7893// API parameter values that are decorated as "sensitive" in the API will not
7894// be included in the string output. The member name will be present, but the
7895// value will be replaced with "sensitive".
7896func (s BotVersionSummary) GoString() string {
7897	return s.String()
7898}
7899
7900// SetBotName sets the BotName field's value.
7901func (s *BotVersionSummary) SetBotName(v string) *BotVersionSummary {
7902	s.BotName = &v
7903	return s
7904}
7905
7906// SetBotStatus sets the BotStatus field's value.
7907func (s *BotVersionSummary) SetBotStatus(v string) *BotVersionSummary {
7908	s.BotStatus = &v
7909	return s
7910}
7911
7912// SetBotVersion sets the BotVersion field's value.
7913func (s *BotVersionSummary) SetBotVersion(v string) *BotVersionSummary {
7914	s.BotVersion = &v
7915	return s
7916}
7917
7918// SetCreationDateTime sets the CreationDateTime field's value.
7919func (s *BotVersionSummary) SetCreationDateTime(v time.Time) *BotVersionSummary {
7920	s.CreationDateTime = &v
7921	return s
7922}
7923
7924// SetDescription sets the Description field's value.
7925func (s *BotVersionSummary) SetDescription(v string) *BotVersionSummary {
7926	s.Description = &v
7927	return s
7928}
7929
7930type BuildBotLocaleInput struct {
7931	_ struct{} `type:"structure" nopayload:"true"`
7932
7933	// The identifier of the bot to build. The identifier is returned in the response
7934	// from the operation.
7935	//
7936	// BotId is a required field
7937	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
7938
7939	// The version of the bot to build. This can only be the draft version of the
7940	// bot.
7941	//
7942	// BotVersion is a required field
7943	BotVersion *string `location:"uri" locationName:"botVersion" min:"5" type:"string" required:"true"`
7944
7945	// The identifier of the language and locale that the bot will be used in. The
7946	// string must match one of the supported locales. All of the intents, slot
7947	// types, and slots used in the bot must have the same locale. For more information,
7948	// see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
7949	//
7950	// LocaleId is a required field
7951	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
7952}
7953
7954// String returns the string representation.
7955//
7956// API parameter values that are decorated as "sensitive" in the API will not
7957// be included in the string output. The member name will be present, but the
7958// value will be replaced with "sensitive".
7959func (s BuildBotLocaleInput) String() string {
7960	return awsutil.Prettify(s)
7961}
7962
7963// GoString returns the string representation.
7964//
7965// API parameter values that are decorated as "sensitive" in the API will not
7966// be included in the string output. The member name will be present, but the
7967// value will be replaced with "sensitive".
7968func (s BuildBotLocaleInput) GoString() string {
7969	return s.String()
7970}
7971
7972// Validate inspects the fields of the type to determine if they are valid.
7973func (s *BuildBotLocaleInput) Validate() error {
7974	invalidParams := request.ErrInvalidParams{Context: "BuildBotLocaleInput"}
7975	if s.BotId == nil {
7976		invalidParams.Add(request.NewErrParamRequired("BotId"))
7977	}
7978	if s.BotId != nil && len(*s.BotId) < 10 {
7979		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
7980	}
7981	if s.BotVersion == nil {
7982		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
7983	}
7984	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
7985		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
7986	}
7987	if s.LocaleId == nil {
7988		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
7989	}
7990	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
7991		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
7992	}
7993
7994	if invalidParams.Len() > 0 {
7995		return invalidParams
7996	}
7997	return nil
7998}
7999
8000// SetBotId sets the BotId field's value.
8001func (s *BuildBotLocaleInput) SetBotId(v string) *BuildBotLocaleInput {
8002	s.BotId = &v
8003	return s
8004}
8005
8006// SetBotVersion sets the BotVersion field's value.
8007func (s *BuildBotLocaleInput) SetBotVersion(v string) *BuildBotLocaleInput {
8008	s.BotVersion = &v
8009	return s
8010}
8011
8012// SetLocaleId sets the LocaleId field's value.
8013func (s *BuildBotLocaleInput) SetLocaleId(v string) *BuildBotLocaleInput {
8014	s.LocaleId = &v
8015	return s
8016}
8017
8018type BuildBotLocaleOutput struct {
8019	_ struct{} `type:"structure"`
8020
8021	// The identifier of the specified bot.
8022	BotId *string `locationName:"botId" min:"10" type:"string"`
8023
8024	// The bot's build status. When the status is ReadyExpressTesting you can test
8025	// the bot using the utterances defined for the intents and slot types. When
8026	// the status is Built, the bot is ready for use and can be tested using any
8027	// utterance.
8028	BotLocaleStatus *string `locationName:"botLocaleStatus" type:"string" enum:"BotLocaleStatus"`
8029
8030	// The version of the bot that was built. This is only the draft version of
8031	// the bot.
8032	BotVersion *string `locationName:"botVersion" min:"5" type:"string"`
8033
8034	// A timestamp indicating the date and time that the bot was last built for
8035	// this locale.
8036	LastBuildSubmittedDateTime *time.Time `locationName:"lastBuildSubmittedDateTime" type:"timestamp"`
8037
8038	// The language and locale specified of where the bot can be used.
8039	LocaleId *string `locationName:"localeId" type:"string"`
8040}
8041
8042// String returns the string representation.
8043//
8044// API parameter values that are decorated as "sensitive" in the API will not
8045// be included in the string output. The member name will be present, but the
8046// value will be replaced with "sensitive".
8047func (s BuildBotLocaleOutput) String() string {
8048	return awsutil.Prettify(s)
8049}
8050
8051// GoString returns the string representation.
8052//
8053// API parameter values that are decorated as "sensitive" in the API will not
8054// be included in the string output. The member name will be present, but the
8055// value will be replaced with "sensitive".
8056func (s BuildBotLocaleOutput) GoString() string {
8057	return s.String()
8058}
8059
8060// SetBotId sets the BotId field's value.
8061func (s *BuildBotLocaleOutput) SetBotId(v string) *BuildBotLocaleOutput {
8062	s.BotId = &v
8063	return s
8064}
8065
8066// SetBotLocaleStatus sets the BotLocaleStatus field's value.
8067func (s *BuildBotLocaleOutput) SetBotLocaleStatus(v string) *BuildBotLocaleOutput {
8068	s.BotLocaleStatus = &v
8069	return s
8070}
8071
8072// SetBotVersion sets the BotVersion field's value.
8073func (s *BuildBotLocaleOutput) SetBotVersion(v string) *BuildBotLocaleOutput {
8074	s.BotVersion = &v
8075	return s
8076}
8077
8078// SetLastBuildSubmittedDateTime sets the LastBuildSubmittedDateTime field's value.
8079func (s *BuildBotLocaleOutput) SetLastBuildSubmittedDateTime(v time.Time) *BuildBotLocaleOutput {
8080	s.LastBuildSubmittedDateTime = &v
8081	return s
8082}
8083
8084// SetLocaleId sets the LocaleId field's value.
8085func (s *BuildBotLocaleOutput) SetLocaleId(v string) *BuildBotLocaleOutput {
8086	s.LocaleId = &v
8087	return s
8088}
8089
8090// Specifies attributes for sorting a list of built-in intents.
8091type BuiltInIntentSortBy struct {
8092	_ struct{} `type:"structure"`
8093
8094	// The attribute to use to sort the list of built-in intents.
8095	//
8096	// Attribute is a required field
8097	Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"BuiltInIntentSortAttribute"`
8098
8099	// The order to sort the list. You can specify ascending or descending order.
8100	//
8101	// Order is a required field
8102	Order *string `locationName:"order" type:"string" required:"true" enum:"SortOrder"`
8103}
8104
8105// String returns the string representation.
8106//
8107// API parameter values that are decorated as "sensitive" in the API will not
8108// be included in the string output. The member name will be present, but the
8109// value will be replaced with "sensitive".
8110func (s BuiltInIntentSortBy) String() string {
8111	return awsutil.Prettify(s)
8112}
8113
8114// GoString returns the string representation.
8115//
8116// API parameter values that are decorated as "sensitive" in the API will not
8117// be included in the string output. The member name will be present, but the
8118// value will be replaced with "sensitive".
8119func (s BuiltInIntentSortBy) GoString() string {
8120	return s.String()
8121}
8122
8123// Validate inspects the fields of the type to determine if they are valid.
8124func (s *BuiltInIntentSortBy) Validate() error {
8125	invalidParams := request.ErrInvalidParams{Context: "BuiltInIntentSortBy"}
8126	if s.Attribute == nil {
8127		invalidParams.Add(request.NewErrParamRequired("Attribute"))
8128	}
8129	if s.Order == nil {
8130		invalidParams.Add(request.NewErrParamRequired("Order"))
8131	}
8132
8133	if invalidParams.Len() > 0 {
8134		return invalidParams
8135	}
8136	return nil
8137}
8138
8139// SetAttribute sets the Attribute field's value.
8140func (s *BuiltInIntentSortBy) SetAttribute(v string) *BuiltInIntentSortBy {
8141	s.Attribute = &v
8142	return s
8143}
8144
8145// SetOrder sets the Order field's value.
8146func (s *BuiltInIntentSortBy) SetOrder(v string) *BuiltInIntentSortBy {
8147	s.Order = &v
8148	return s
8149}
8150
8151// Provides summary information about a built-in intent for the ListBuiltInIntents
8152// operation.
8153type BuiltInIntentSummary struct {
8154	_ struct{} `type:"structure"`
8155
8156	// The description of the intent.
8157	Description *string `locationName:"description" type:"string"`
8158
8159	// The signature of the built-in intent. Use this to specify the parent intent
8160	// of a derived intent.
8161	IntentSignature *string `locationName:"intentSignature" type:"string"`
8162}
8163
8164// String returns the string representation.
8165//
8166// API parameter values that are decorated as "sensitive" in the API will not
8167// be included in the string output. The member name will be present, but the
8168// value will be replaced with "sensitive".
8169func (s BuiltInIntentSummary) String() string {
8170	return awsutil.Prettify(s)
8171}
8172
8173// GoString returns the string representation.
8174//
8175// API parameter values that are decorated as "sensitive" in the API will not
8176// be included in the string output. The member name will be present, but the
8177// value will be replaced with "sensitive".
8178func (s BuiltInIntentSummary) GoString() string {
8179	return s.String()
8180}
8181
8182// SetDescription sets the Description field's value.
8183func (s *BuiltInIntentSummary) SetDescription(v string) *BuiltInIntentSummary {
8184	s.Description = &v
8185	return s
8186}
8187
8188// SetIntentSignature sets the IntentSignature field's value.
8189func (s *BuiltInIntentSummary) SetIntentSignature(v string) *BuiltInIntentSummary {
8190	s.IntentSignature = &v
8191	return s
8192}
8193
8194// Specifies attributes for sorting a list of built-in slot types.
8195type BuiltInSlotTypeSortBy struct {
8196	_ struct{} `type:"structure"`
8197
8198	// The attribute to use to sort the list of built-in intents.
8199	//
8200	// Attribute is a required field
8201	Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"BuiltInSlotTypeSortAttribute"`
8202
8203	// The order to sort the list. You can choose ascending or descending.
8204	//
8205	// Order is a required field
8206	Order *string `locationName:"order" type:"string" required:"true" enum:"SortOrder"`
8207}
8208
8209// String returns the string representation.
8210//
8211// API parameter values that are decorated as "sensitive" in the API will not
8212// be included in the string output. The member name will be present, but the
8213// value will be replaced with "sensitive".
8214func (s BuiltInSlotTypeSortBy) String() string {
8215	return awsutil.Prettify(s)
8216}
8217
8218// GoString returns the string representation.
8219//
8220// API parameter values that are decorated as "sensitive" in the API will not
8221// be included in the string output. The member name will be present, but the
8222// value will be replaced with "sensitive".
8223func (s BuiltInSlotTypeSortBy) GoString() string {
8224	return s.String()
8225}
8226
8227// Validate inspects the fields of the type to determine if they are valid.
8228func (s *BuiltInSlotTypeSortBy) Validate() error {
8229	invalidParams := request.ErrInvalidParams{Context: "BuiltInSlotTypeSortBy"}
8230	if s.Attribute == nil {
8231		invalidParams.Add(request.NewErrParamRequired("Attribute"))
8232	}
8233	if s.Order == nil {
8234		invalidParams.Add(request.NewErrParamRequired("Order"))
8235	}
8236
8237	if invalidParams.Len() > 0 {
8238		return invalidParams
8239	}
8240	return nil
8241}
8242
8243// SetAttribute sets the Attribute field's value.
8244func (s *BuiltInSlotTypeSortBy) SetAttribute(v string) *BuiltInSlotTypeSortBy {
8245	s.Attribute = &v
8246	return s
8247}
8248
8249// SetOrder sets the Order field's value.
8250func (s *BuiltInSlotTypeSortBy) SetOrder(v string) *BuiltInSlotTypeSortBy {
8251	s.Order = &v
8252	return s
8253}
8254
8255// Provides summary information about a built-in slot type for the ListBuiltInSlotTypes
8256// operation.
8257type BuiltInSlotTypeSummary struct {
8258	_ struct{} `type:"structure"`
8259
8260	// The description of the built-in slot type.
8261	Description *string `locationName:"description" type:"string"`
8262
8263	// The signature of the built-in slot type. Use this to specify the parent slot
8264	// type of a derived slot type.
8265	SlotTypeSignature *string `locationName:"slotTypeSignature" type:"string"`
8266}
8267
8268// String returns the string representation.
8269//
8270// API parameter values that are decorated as "sensitive" in the API will not
8271// be included in the string output. The member name will be present, but the
8272// value will be replaced with "sensitive".
8273func (s BuiltInSlotTypeSummary) String() string {
8274	return awsutil.Prettify(s)
8275}
8276
8277// GoString returns the string representation.
8278//
8279// API parameter values that are decorated as "sensitive" in the API will not
8280// be included in the string output. The member name will be present, but the
8281// value will be replaced with "sensitive".
8282func (s BuiltInSlotTypeSummary) GoString() string {
8283	return s.String()
8284}
8285
8286// SetDescription sets the Description field's value.
8287func (s *BuiltInSlotTypeSummary) SetDescription(v string) *BuiltInSlotTypeSummary {
8288	s.Description = &v
8289	return s
8290}
8291
8292// SetSlotTypeSignature sets the SlotTypeSignature field's value.
8293func (s *BuiltInSlotTypeSummary) SetSlotTypeSignature(v string) *BuiltInSlotTypeSummary {
8294	s.SlotTypeSignature = &v
8295	return s
8296}
8297
8298// Describes a button to use on a response card used to gather slot values from
8299// a user.
8300type Button struct {
8301	_ struct{} `type:"structure"`
8302
8303	// The text that appears on the button. Use this to tell the user what value
8304	// is returned when they choose this button.
8305	//
8306	// Text is a required field
8307	Text *string `locationName:"text" min:"1" type:"string" required:"true"`
8308
8309	// The value returned to Amazon Lex when the user chooses this button. This
8310	// must be one of the slot values configured for the slot.
8311	//
8312	// Value is a required field
8313	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
8314}
8315
8316// String returns the string representation.
8317//
8318// API parameter values that are decorated as "sensitive" in the API will not
8319// be included in the string output. The member name will be present, but the
8320// value will be replaced with "sensitive".
8321func (s Button) String() string {
8322	return awsutil.Prettify(s)
8323}
8324
8325// GoString returns the string representation.
8326//
8327// API parameter values that are decorated as "sensitive" in the API will not
8328// be included in the string output. The member name will be present, but the
8329// value will be replaced with "sensitive".
8330func (s Button) GoString() string {
8331	return s.String()
8332}
8333
8334// Validate inspects the fields of the type to determine if they are valid.
8335func (s *Button) Validate() error {
8336	invalidParams := request.ErrInvalidParams{Context: "Button"}
8337	if s.Text == nil {
8338		invalidParams.Add(request.NewErrParamRequired("Text"))
8339	}
8340	if s.Text != nil && len(*s.Text) < 1 {
8341		invalidParams.Add(request.NewErrParamMinLen("Text", 1))
8342	}
8343	if s.Value == nil {
8344		invalidParams.Add(request.NewErrParamRequired("Value"))
8345	}
8346	if s.Value != nil && len(*s.Value) < 1 {
8347		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
8348	}
8349
8350	if invalidParams.Len() > 0 {
8351		return invalidParams
8352	}
8353	return nil
8354}
8355
8356// SetText sets the Text field's value.
8357func (s *Button) SetText(v string) *Button {
8358	s.Text = &v
8359	return s
8360}
8361
8362// SetValue sets the Value field's value.
8363func (s *Button) SetValue(v string) *Button {
8364	s.Value = &v
8365	return s
8366}
8367
8368// The Amazon CloudWatch Logs log group where the text and metadata logs are
8369// delivered. The log group must exist before you enable logging.
8370type CloudWatchLogGroupLogDestination struct {
8371	_ struct{} `type:"structure"`
8372
8373	// The Amazon Resource Name (ARN) of the log group where text and metadata logs
8374	// are delivered.
8375	//
8376	// CloudWatchLogGroupArn is a required field
8377	CloudWatchLogGroupArn *string `locationName:"cloudWatchLogGroupArn" min:"1" type:"string" required:"true"`
8378
8379	// The prefix of the log stream name within the log group that you specified
8380	//
8381	// LogPrefix is a required field
8382	LogPrefix *string `locationName:"logPrefix" type:"string" required:"true"`
8383}
8384
8385// String returns the string representation.
8386//
8387// API parameter values that are decorated as "sensitive" in the API will not
8388// be included in the string output. The member name will be present, but the
8389// value will be replaced with "sensitive".
8390func (s CloudWatchLogGroupLogDestination) String() string {
8391	return awsutil.Prettify(s)
8392}
8393
8394// GoString returns the string representation.
8395//
8396// API parameter values that are decorated as "sensitive" in the API will not
8397// be included in the string output. The member name will be present, but the
8398// value will be replaced with "sensitive".
8399func (s CloudWatchLogGroupLogDestination) GoString() string {
8400	return s.String()
8401}
8402
8403// Validate inspects the fields of the type to determine if they are valid.
8404func (s *CloudWatchLogGroupLogDestination) Validate() error {
8405	invalidParams := request.ErrInvalidParams{Context: "CloudWatchLogGroupLogDestination"}
8406	if s.CloudWatchLogGroupArn == nil {
8407		invalidParams.Add(request.NewErrParamRequired("CloudWatchLogGroupArn"))
8408	}
8409	if s.CloudWatchLogGroupArn != nil && len(*s.CloudWatchLogGroupArn) < 1 {
8410		invalidParams.Add(request.NewErrParamMinLen("CloudWatchLogGroupArn", 1))
8411	}
8412	if s.LogPrefix == nil {
8413		invalidParams.Add(request.NewErrParamRequired("LogPrefix"))
8414	}
8415
8416	if invalidParams.Len() > 0 {
8417		return invalidParams
8418	}
8419	return nil
8420}
8421
8422// SetCloudWatchLogGroupArn sets the CloudWatchLogGroupArn field's value.
8423func (s *CloudWatchLogGroupLogDestination) SetCloudWatchLogGroupArn(v string) *CloudWatchLogGroupLogDestination {
8424	s.CloudWatchLogGroupArn = &v
8425	return s
8426}
8427
8428// SetLogPrefix sets the LogPrefix field's value.
8429func (s *CloudWatchLogGroupLogDestination) SetLogPrefix(v string) *CloudWatchLogGroupLogDestination {
8430	s.LogPrefix = &v
8431	return s
8432}
8433
8434// Contains information about code hooks that Amazon Lex calls during a conversation.
8435type CodeHookSpecification struct {
8436	_ struct{} `type:"structure"`
8437
8438	// Specifies a Lambda function that verifies requests to a bot or fulfills the
8439	// user's request to a bot.
8440	//
8441	// LambdaCodeHook is a required field
8442	LambdaCodeHook *LambdaCodeHook `locationName:"lambdaCodeHook" type:"structure" required:"true"`
8443}
8444
8445// String returns the string representation.
8446//
8447// API parameter values that are decorated as "sensitive" in the API will not
8448// be included in the string output. The member name will be present, but the
8449// value will be replaced with "sensitive".
8450func (s CodeHookSpecification) String() string {
8451	return awsutil.Prettify(s)
8452}
8453
8454// GoString returns the string representation.
8455//
8456// API parameter values that are decorated as "sensitive" in the API will not
8457// be included in the string output. The member name will be present, but the
8458// value will be replaced with "sensitive".
8459func (s CodeHookSpecification) GoString() string {
8460	return s.String()
8461}
8462
8463// Validate inspects the fields of the type to determine if they are valid.
8464func (s *CodeHookSpecification) Validate() error {
8465	invalidParams := request.ErrInvalidParams{Context: "CodeHookSpecification"}
8466	if s.LambdaCodeHook == nil {
8467		invalidParams.Add(request.NewErrParamRequired("LambdaCodeHook"))
8468	}
8469	if s.LambdaCodeHook != nil {
8470		if err := s.LambdaCodeHook.Validate(); err != nil {
8471			invalidParams.AddNested("LambdaCodeHook", err.(request.ErrInvalidParams))
8472		}
8473	}
8474
8475	if invalidParams.Len() > 0 {
8476		return invalidParams
8477	}
8478	return nil
8479}
8480
8481// SetLambdaCodeHook sets the LambdaCodeHook field's value.
8482func (s *CodeHookSpecification) SetLambdaCodeHook(v *LambdaCodeHook) *CodeHookSpecification {
8483	s.LambdaCodeHook = v
8484	return s
8485}
8486
8487// The action that you tried to perform couldn't be completed because the resource
8488// is in a conflicting state. For example, deleting a bot that is in the CREATING
8489// state. Try your request again.
8490type ConflictException struct {
8491	_            struct{}                  `type:"structure"`
8492	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8493
8494	Message_ *string `locationName:"message" type:"string"`
8495}
8496
8497// String returns the string representation.
8498//
8499// API parameter values that are decorated as "sensitive" in the API will not
8500// be included in the string output. The member name will be present, but the
8501// value will be replaced with "sensitive".
8502func (s ConflictException) String() string {
8503	return awsutil.Prettify(s)
8504}
8505
8506// GoString returns the string representation.
8507//
8508// API parameter values that are decorated as "sensitive" in the API will not
8509// be included in the string output. The member name will be present, but the
8510// value will be replaced with "sensitive".
8511func (s ConflictException) GoString() string {
8512	return s.String()
8513}
8514
8515func newErrorConflictException(v protocol.ResponseMetadata) error {
8516	return &ConflictException{
8517		RespMetadata: v,
8518	}
8519}
8520
8521// Code returns the exception type name.
8522func (s *ConflictException) Code() string {
8523	return "ConflictException"
8524}
8525
8526// Message returns the exception's message.
8527func (s *ConflictException) Message() string {
8528	if s.Message_ != nil {
8529		return *s.Message_
8530	}
8531	return ""
8532}
8533
8534// OrigErr always returns nil, satisfies awserr.Error interface.
8535func (s *ConflictException) OrigErr() error {
8536	return nil
8537}
8538
8539func (s *ConflictException) Error() string {
8540	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8541}
8542
8543// Status code returns the HTTP status code for the request's response error.
8544func (s *ConflictException) StatusCode() int {
8545	return s.RespMetadata.StatusCode
8546}
8547
8548// RequestID returns the service's response RequestID for request.
8549func (s *ConflictException) RequestID() string {
8550	return s.RespMetadata.RequestID
8551}
8552
8553// Configures conversation logging that saves audio, text, and metadata for
8554// the conversations with your users.
8555type ConversationLogSettings struct {
8556	_ struct{} `type:"structure"`
8557
8558	// The Amazon S3 settings for logging audio to an S3 bucket.
8559	AudioLogSettings []*AudioLogSetting `locationName:"audioLogSettings" min:"1" type:"list"`
8560
8561	// The Amazon CloudWatch Logs settings for logging text and metadata.
8562	TextLogSettings []*TextLogSetting `locationName:"textLogSettings" min:"1" type:"list"`
8563}
8564
8565// String returns the string representation.
8566//
8567// API parameter values that are decorated as "sensitive" in the API will not
8568// be included in the string output. The member name will be present, but the
8569// value will be replaced with "sensitive".
8570func (s ConversationLogSettings) String() string {
8571	return awsutil.Prettify(s)
8572}
8573
8574// GoString returns the string representation.
8575//
8576// API parameter values that are decorated as "sensitive" in the API will not
8577// be included in the string output. The member name will be present, but the
8578// value will be replaced with "sensitive".
8579func (s ConversationLogSettings) GoString() string {
8580	return s.String()
8581}
8582
8583// Validate inspects the fields of the type to determine if they are valid.
8584func (s *ConversationLogSettings) Validate() error {
8585	invalidParams := request.ErrInvalidParams{Context: "ConversationLogSettings"}
8586	if s.AudioLogSettings != nil && len(s.AudioLogSettings) < 1 {
8587		invalidParams.Add(request.NewErrParamMinLen("AudioLogSettings", 1))
8588	}
8589	if s.TextLogSettings != nil && len(s.TextLogSettings) < 1 {
8590		invalidParams.Add(request.NewErrParamMinLen("TextLogSettings", 1))
8591	}
8592	if s.AudioLogSettings != nil {
8593		for i, v := range s.AudioLogSettings {
8594			if v == nil {
8595				continue
8596			}
8597			if err := v.Validate(); err != nil {
8598				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AudioLogSettings", i), err.(request.ErrInvalidParams))
8599			}
8600		}
8601	}
8602	if s.TextLogSettings != nil {
8603		for i, v := range s.TextLogSettings {
8604			if v == nil {
8605				continue
8606			}
8607			if err := v.Validate(); err != nil {
8608				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TextLogSettings", i), err.(request.ErrInvalidParams))
8609			}
8610		}
8611	}
8612
8613	if invalidParams.Len() > 0 {
8614		return invalidParams
8615	}
8616	return nil
8617}
8618
8619// SetAudioLogSettings sets the AudioLogSettings field's value.
8620func (s *ConversationLogSettings) SetAudioLogSettings(v []*AudioLogSetting) *ConversationLogSettings {
8621	s.AudioLogSettings = v
8622	return s
8623}
8624
8625// SetTextLogSettings sets the TextLogSettings field's value.
8626func (s *ConversationLogSettings) SetTextLogSettings(v []*TextLogSetting) *ConversationLogSettings {
8627	s.TextLogSettings = v
8628	return s
8629}
8630
8631type CreateBotAliasInput struct {
8632	_ struct{} `type:"structure"`
8633
8634	// Maps configuration information to a specific locale. You can use this parameter
8635	// to specify a specific Lambda function to run different functions in different
8636	// locales.
8637	BotAliasLocaleSettings map[string]*BotAliasLocaleSettings `locationName:"botAliasLocaleSettings" min:"1" type:"map"`
8638
8639	// The alias to create. The name must be unique for the bot.
8640	//
8641	// BotAliasName is a required field
8642	BotAliasName *string `locationName:"botAliasName" min:"1" type:"string" required:"true"`
8643
8644	// The unique identifier of the bot that the alias applies to.
8645	//
8646	// BotId is a required field
8647	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
8648
8649	// The version of the bot that this alias points to. You can use the operation
8650	// to change the bot version associated with the alias.
8651	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
8652
8653	// Specifies whether Amazon Lex logs text and audio for a conversation with
8654	// the bot. When you enable conversation logs, text logs store text input, transcripts
8655	// of audio input, and associated metadata in Amazon CloudWatch Logs. Audio
8656	// logs store audio input in Amazon S3.
8657	ConversationLogSettings *ConversationLogSettings `locationName:"conversationLogSettings" type:"structure"`
8658
8659	// A description of the alias. Use this description to help identify the alias.
8660	Description *string `locationName:"description" type:"string"`
8661
8662	// Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment
8663	// of user utterances.
8664	SentimentAnalysisSettings *SentimentAnalysisSettings `locationName:"sentimentAnalysisSettings" type:"structure"`
8665
8666	// A list of tags to add to the bot alias. You can only add tags when you create
8667	// an alias, you can't use the UpdateBotAlias operation to update the tags on
8668	// a bot alias. To update tags, use the TagResource operation.
8669	Tags map[string]*string `locationName:"tags" type:"map"`
8670}
8671
8672// String returns the string representation.
8673//
8674// API parameter values that are decorated as "sensitive" in the API will not
8675// be included in the string output. The member name will be present, but the
8676// value will be replaced with "sensitive".
8677func (s CreateBotAliasInput) String() string {
8678	return awsutil.Prettify(s)
8679}
8680
8681// GoString returns the string representation.
8682//
8683// API parameter values that are decorated as "sensitive" in the API will not
8684// be included in the string output. The member name will be present, but the
8685// value will be replaced with "sensitive".
8686func (s CreateBotAliasInput) GoString() string {
8687	return s.String()
8688}
8689
8690// Validate inspects the fields of the type to determine if they are valid.
8691func (s *CreateBotAliasInput) Validate() error {
8692	invalidParams := request.ErrInvalidParams{Context: "CreateBotAliasInput"}
8693	if s.BotAliasLocaleSettings != nil && len(s.BotAliasLocaleSettings) < 1 {
8694		invalidParams.Add(request.NewErrParamMinLen("BotAliasLocaleSettings", 1))
8695	}
8696	if s.BotAliasName == nil {
8697		invalidParams.Add(request.NewErrParamRequired("BotAliasName"))
8698	}
8699	if s.BotAliasName != nil && len(*s.BotAliasName) < 1 {
8700		invalidParams.Add(request.NewErrParamMinLen("BotAliasName", 1))
8701	}
8702	if s.BotId == nil {
8703		invalidParams.Add(request.NewErrParamRequired("BotId"))
8704	}
8705	if s.BotId != nil && len(*s.BotId) < 10 {
8706		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
8707	}
8708	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
8709		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
8710	}
8711	if s.BotAliasLocaleSettings != nil {
8712		for i, v := range s.BotAliasLocaleSettings {
8713			if v == nil {
8714				continue
8715			}
8716			if err := v.Validate(); err != nil {
8717				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BotAliasLocaleSettings", i), err.(request.ErrInvalidParams))
8718			}
8719		}
8720	}
8721	if s.ConversationLogSettings != nil {
8722		if err := s.ConversationLogSettings.Validate(); err != nil {
8723			invalidParams.AddNested("ConversationLogSettings", err.(request.ErrInvalidParams))
8724		}
8725	}
8726	if s.SentimentAnalysisSettings != nil {
8727		if err := s.SentimentAnalysisSettings.Validate(); err != nil {
8728			invalidParams.AddNested("SentimentAnalysisSettings", err.(request.ErrInvalidParams))
8729		}
8730	}
8731
8732	if invalidParams.Len() > 0 {
8733		return invalidParams
8734	}
8735	return nil
8736}
8737
8738// SetBotAliasLocaleSettings sets the BotAliasLocaleSettings field's value.
8739func (s *CreateBotAliasInput) SetBotAliasLocaleSettings(v map[string]*BotAliasLocaleSettings) *CreateBotAliasInput {
8740	s.BotAliasLocaleSettings = v
8741	return s
8742}
8743
8744// SetBotAliasName sets the BotAliasName field's value.
8745func (s *CreateBotAliasInput) SetBotAliasName(v string) *CreateBotAliasInput {
8746	s.BotAliasName = &v
8747	return s
8748}
8749
8750// SetBotId sets the BotId field's value.
8751func (s *CreateBotAliasInput) SetBotId(v string) *CreateBotAliasInput {
8752	s.BotId = &v
8753	return s
8754}
8755
8756// SetBotVersion sets the BotVersion field's value.
8757func (s *CreateBotAliasInput) SetBotVersion(v string) *CreateBotAliasInput {
8758	s.BotVersion = &v
8759	return s
8760}
8761
8762// SetConversationLogSettings sets the ConversationLogSettings field's value.
8763func (s *CreateBotAliasInput) SetConversationLogSettings(v *ConversationLogSettings) *CreateBotAliasInput {
8764	s.ConversationLogSettings = v
8765	return s
8766}
8767
8768// SetDescription sets the Description field's value.
8769func (s *CreateBotAliasInput) SetDescription(v string) *CreateBotAliasInput {
8770	s.Description = &v
8771	return s
8772}
8773
8774// SetSentimentAnalysisSettings sets the SentimentAnalysisSettings field's value.
8775func (s *CreateBotAliasInput) SetSentimentAnalysisSettings(v *SentimentAnalysisSettings) *CreateBotAliasInput {
8776	s.SentimentAnalysisSettings = v
8777	return s
8778}
8779
8780// SetTags sets the Tags field's value.
8781func (s *CreateBotAliasInput) SetTags(v map[string]*string) *CreateBotAliasInput {
8782	s.Tags = v
8783	return s
8784}
8785
8786type CreateBotAliasOutput struct {
8787	_ struct{} `type:"structure"`
8788
8789	// The unique identifier of the bot alias.
8790	BotAliasId *string `locationName:"botAliasId" min:"10" type:"string"`
8791
8792	// Configuration information for a specific locale.
8793	BotAliasLocaleSettings map[string]*BotAliasLocaleSettings `locationName:"botAliasLocaleSettings" min:"1" type:"map"`
8794
8795	// The name specified for the bot alias.
8796	BotAliasName *string `locationName:"botAliasName" min:"1" type:"string"`
8797
8798	// The current status of the alias. The alias is first put into the Creating
8799	// state. When the alias is ready to be used, it is put into the Available state.
8800	// You can use the DescribeBotAlias operation to get the current state of an
8801	// alias.
8802	BotAliasStatus *string `locationName:"botAliasStatus" type:"string" enum:"BotAliasStatus"`
8803
8804	// The unique identifier of the bot that this alias applies to.
8805	BotId *string `locationName:"botId" min:"10" type:"string"`
8806
8807	// The version of the bot associated with this alias.
8808	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
8809
8810	// The conversation log settings specified for the alias.
8811	ConversationLogSettings *ConversationLogSettings `locationName:"conversationLogSettings" type:"structure"`
8812
8813	// A Unix timestamp indicating the date and time that the bot alias was created.
8814	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
8815
8816	// The description specified for the bot alias.
8817	Description *string `locationName:"description" type:"string"`
8818
8819	// Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment
8820	// of user utterances.
8821	SentimentAnalysisSettings *SentimentAnalysisSettings `locationName:"sentimentAnalysisSettings" type:"structure"`
8822
8823	// A list of tags associated with the bot alias.
8824	Tags map[string]*string `locationName:"tags" type:"map"`
8825}
8826
8827// String returns the string representation.
8828//
8829// API parameter values that are decorated as "sensitive" in the API will not
8830// be included in the string output. The member name will be present, but the
8831// value will be replaced with "sensitive".
8832func (s CreateBotAliasOutput) String() string {
8833	return awsutil.Prettify(s)
8834}
8835
8836// GoString returns the string representation.
8837//
8838// API parameter values that are decorated as "sensitive" in the API will not
8839// be included in the string output. The member name will be present, but the
8840// value will be replaced with "sensitive".
8841func (s CreateBotAliasOutput) GoString() string {
8842	return s.String()
8843}
8844
8845// SetBotAliasId sets the BotAliasId field's value.
8846func (s *CreateBotAliasOutput) SetBotAliasId(v string) *CreateBotAliasOutput {
8847	s.BotAliasId = &v
8848	return s
8849}
8850
8851// SetBotAliasLocaleSettings sets the BotAliasLocaleSettings field's value.
8852func (s *CreateBotAliasOutput) SetBotAliasLocaleSettings(v map[string]*BotAliasLocaleSettings) *CreateBotAliasOutput {
8853	s.BotAliasLocaleSettings = v
8854	return s
8855}
8856
8857// SetBotAliasName sets the BotAliasName field's value.
8858func (s *CreateBotAliasOutput) SetBotAliasName(v string) *CreateBotAliasOutput {
8859	s.BotAliasName = &v
8860	return s
8861}
8862
8863// SetBotAliasStatus sets the BotAliasStatus field's value.
8864func (s *CreateBotAliasOutput) SetBotAliasStatus(v string) *CreateBotAliasOutput {
8865	s.BotAliasStatus = &v
8866	return s
8867}
8868
8869// SetBotId sets the BotId field's value.
8870func (s *CreateBotAliasOutput) SetBotId(v string) *CreateBotAliasOutput {
8871	s.BotId = &v
8872	return s
8873}
8874
8875// SetBotVersion sets the BotVersion field's value.
8876func (s *CreateBotAliasOutput) SetBotVersion(v string) *CreateBotAliasOutput {
8877	s.BotVersion = &v
8878	return s
8879}
8880
8881// SetConversationLogSettings sets the ConversationLogSettings field's value.
8882func (s *CreateBotAliasOutput) SetConversationLogSettings(v *ConversationLogSettings) *CreateBotAliasOutput {
8883	s.ConversationLogSettings = v
8884	return s
8885}
8886
8887// SetCreationDateTime sets the CreationDateTime field's value.
8888func (s *CreateBotAliasOutput) SetCreationDateTime(v time.Time) *CreateBotAliasOutput {
8889	s.CreationDateTime = &v
8890	return s
8891}
8892
8893// SetDescription sets the Description field's value.
8894func (s *CreateBotAliasOutput) SetDescription(v string) *CreateBotAliasOutput {
8895	s.Description = &v
8896	return s
8897}
8898
8899// SetSentimentAnalysisSettings sets the SentimentAnalysisSettings field's value.
8900func (s *CreateBotAliasOutput) SetSentimentAnalysisSettings(v *SentimentAnalysisSettings) *CreateBotAliasOutput {
8901	s.SentimentAnalysisSettings = v
8902	return s
8903}
8904
8905// SetTags sets the Tags field's value.
8906func (s *CreateBotAliasOutput) SetTags(v map[string]*string) *CreateBotAliasOutput {
8907	s.Tags = v
8908	return s
8909}
8910
8911type CreateBotInput struct {
8912	_ struct{} `type:"structure"`
8913
8914	// The name of the bot. The bot name must be unique in the account that creates
8915	// the bot.
8916	//
8917	// BotName is a required field
8918	BotName *string `locationName:"botName" min:"1" type:"string" required:"true"`
8919
8920	// A list of tags to add to the bot. You can only add tags when you create a
8921	// bot. You can't use the UpdateBot operation to update tags. To update tags,
8922	// use the TagResource operation.
8923	BotTags map[string]*string `locationName:"botTags" type:"map"`
8924
8925	// Provides information on additional privacy protections Amazon Lex should
8926	// use with the bot's data.
8927	//
8928	// DataPrivacy is a required field
8929	DataPrivacy *DataPrivacy `locationName:"dataPrivacy" type:"structure" required:"true"`
8930
8931	// A description of the bot. It appears in lists to help you identify a particular
8932	// bot.
8933	Description *string `locationName:"description" type:"string"`
8934
8935	// The time, in seconds, that Amazon Lex should keep information about a user's
8936	// conversation with the bot.
8937	//
8938	// A user interaction remains active for the amount of time specified. If no
8939	// conversation occurs during this time, the session expires and Amazon Lex
8940	// deletes any data provided before the timeout.
8941	//
8942	// You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.
8943	//
8944	// IdleSessionTTLInSeconds is a required field
8945	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer" required:"true"`
8946
8947	// The Amazon Resource Name (ARN) of an IAM role that has permission to access
8948	// the bot.
8949	//
8950	// RoleArn is a required field
8951	RoleArn *string `locationName:"roleArn" min:"32" type:"string" required:"true"`
8952
8953	// A list of tags to add to the test alias for a bot. You can only add tags
8954	// when you create a bot. You can't use the UpdateAlias operation to update
8955	// tags. To update tags on the test alias, use the TagResource operation.
8956	TestBotAliasTags map[string]*string `locationName:"testBotAliasTags" type:"map"`
8957}
8958
8959// String returns the string representation.
8960//
8961// API parameter values that are decorated as "sensitive" in the API will not
8962// be included in the string output. The member name will be present, but the
8963// value will be replaced with "sensitive".
8964func (s CreateBotInput) String() string {
8965	return awsutil.Prettify(s)
8966}
8967
8968// GoString returns the string representation.
8969//
8970// API parameter values that are decorated as "sensitive" in the API will not
8971// be included in the string output. The member name will be present, but the
8972// value will be replaced with "sensitive".
8973func (s CreateBotInput) GoString() string {
8974	return s.String()
8975}
8976
8977// Validate inspects the fields of the type to determine if they are valid.
8978func (s *CreateBotInput) Validate() error {
8979	invalidParams := request.ErrInvalidParams{Context: "CreateBotInput"}
8980	if s.BotName == nil {
8981		invalidParams.Add(request.NewErrParamRequired("BotName"))
8982	}
8983	if s.BotName != nil && len(*s.BotName) < 1 {
8984		invalidParams.Add(request.NewErrParamMinLen("BotName", 1))
8985	}
8986	if s.DataPrivacy == nil {
8987		invalidParams.Add(request.NewErrParamRequired("DataPrivacy"))
8988	}
8989	if s.IdleSessionTTLInSeconds == nil {
8990		invalidParams.Add(request.NewErrParamRequired("IdleSessionTTLInSeconds"))
8991	}
8992	if s.IdleSessionTTLInSeconds != nil && *s.IdleSessionTTLInSeconds < 60 {
8993		invalidParams.Add(request.NewErrParamMinValue("IdleSessionTTLInSeconds", 60))
8994	}
8995	if s.RoleArn == nil {
8996		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
8997	}
8998	if s.RoleArn != nil && len(*s.RoleArn) < 32 {
8999		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 32))
9000	}
9001	if s.DataPrivacy != nil {
9002		if err := s.DataPrivacy.Validate(); err != nil {
9003			invalidParams.AddNested("DataPrivacy", err.(request.ErrInvalidParams))
9004		}
9005	}
9006
9007	if invalidParams.Len() > 0 {
9008		return invalidParams
9009	}
9010	return nil
9011}
9012
9013// SetBotName sets the BotName field's value.
9014func (s *CreateBotInput) SetBotName(v string) *CreateBotInput {
9015	s.BotName = &v
9016	return s
9017}
9018
9019// SetBotTags sets the BotTags field's value.
9020func (s *CreateBotInput) SetBotTags(v map[string]*string) *CreateBotInput {
9021	s.BotTags = v
9022	return s
9023}
9024
9025// SetDataPrivacy sets the DataPrivacy field's value.
9026func (s *CreateBotInput) SetDataPrivacy(v *DataPrivacy) *CreateBotInput {
9027	s.DataPrivacy = v
9028	return s
9029}
9030
9031// SetDescription sets the Description field's value.
9032func (s *CreateBotInput) SetDescription(v string) *CreateBotInput {
9033	s.Description = &v
9034	return s
9035}
9036
9037// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
9038func (s *CreateBotInput) SetIdleSessionTTLInSeconds(v int64) *CreateBotInput {
9039	s.IdleSessionTTLInSeconds = &v
9040	return s
9041}
9042
9043// SetRoleArn sets the RoleArn field's value.
9044func (s *CreateBotInput) SetRoleArn(v string) *CreateBotInput {
9045	s.RoleArn = &v
9046	return s
9047}
9048
9049// SetTestBotAliasTags sets the TestBotAliasTags field's value.
9050func (s *CreateBotInput) SetTestBotAliasTags(v map[string]*string) *CreateBotInput {
9051	s.TestBotAliasTags = v
9052	return s
9053}
9054
9055type CreateBotLocaleInput struct {
9056	_ struct{} `type:"structure"`
9057
9058	// The identifier of the bot to create the locale for.
9059	//
9060	// BotId is a required field
9061	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
9062
9063	// The version of the bot to create the locale for. This can only be the draft
9064	// version of the bot.
9065	//
9066	// BotVersion is a required field
9067	BotVersion *string `location:"uri" locationName:"botVersion" min:"5" type:"string" required:"true"`
9068
9069	// A description of the bot locale. Use this to help identify the bot locale
9070	// in lists.
9071	Description *string `locationName:"description" type:"string"`
9072
9073	// The identifier of the language and locale that the bot will be used in. The
9074	// string must match one of the supported locales. All of the intents, slot
9075	// types, and slots used in the bot must have the same locale. For more information,
9076	// see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
9077	//
9078	// LocaleId is a required field
9079	LocaleId *string `locationName:"localeId" type:"string" required:"true"`
9080
9081	// Determines the threshold where Amazon Lex will insert the AMAZON.FallbackIntent,
9082	// AMAZON.KendraSearchIntent, or both when returning alternative intents. AMAZON.FallbackIntent
9083	// and AMAZON.KendraSearchIntent are only inserted if they are configured for
9084	// the bot.
9085	//
9086	// For example, suppose a bot is configured with the confidence threshold of
9087	// 0.80 and the AMAZON.FallbackIntent. Amazon Lex returns three alternative
9088	// intents with the following confidence scores: IntentA (0.70), IntentB (0.60),
9089	// IntentC (0.50). The response from the RecognizeText operation would be:
9090	//
9091	//    * AMAZON.FallbackIntent
9092	//
9093	//    * IntentA
9094	//
9095	//    * IntentB
9096	//
9097	//    * IntentC
9098	//
9099	// NluIntentConfidenceThreshold is a required field
9100	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double" required:"true"`
9101
9102	// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with
9103	// the user.
9104	VoiceSettings *VoiceSettings `locationName:"voiceSettings" type:"structure"`
9105}
9106
9107// String returns the string representation.
9108//
9109// API parameter values that are decorated as "sensitive" in the API will not
9110// be included in the string output. The member name will be present, but the
9111// value will be replaced with "sensitive".
9112func (s CreateBotLocaleInput) String() string {
9113	return awsutil.Prettify(s)
9114}
9115
9116// GoString returns the string representation.
9117//
9118// API parameter values that are decorated as "sensitive" in the API will not
9119// be included in the string output. The member name will be present, but the
9120// value will be replaced with "sensitive".
9121func (s CreateBotLocaleInput) GoString() string {
9122	return s.String()
9123}
9124
9125// Validate inspects the fields of the type to determine if they are valid.
9126func (s *CreateBotLocaleInput) Validate() error {
9127	invalidParams := request.ErrInvalidParams{Context: "CreateBotLocaleInput"}
9128	if s.BotId == nil {
9129		invalidParams.Add(request.NewErrParamRequired("BotId"))
9130	}
9131	if s.BotId != nil && len(*s.BotId) < 10 {
9132		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
9133	}
9134	if s.BotVersion == nil {
9135		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
9136	}
9137	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
9138		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
9139	}
9140	if s.LocaleId == nil {
9141		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
9142	}
9143	if s.NluIntentConfidenceThreshold == nil {
9144		invalidParams.Add(request.NewErrParamRequired("NluIntentConfidenceThreshold"))
9145	}
9146	if s.VoiceSettings != nil {
9147		if err := s.VoiceSettings.Validate(); err != nil {
9148			invalidParams.AddNested("VoiceSettings", err.(request.ErrInvalidParams))
9149		}
9150	}
9151
9152	if invalidParams.Len() > 0 {
9153		return invalidParams
9154	}
9155	return nil
9156}
9157
9158// SetBotId sets the BotId field's value.
9159func (s *CreateBotLocaleInput) SetBotId(v string) *CreateBotLocaleInput {
9160	s.BotId = &v
9161	return s
9162}
9163
9164// SetBotVersion sets the BotVersion field's value.
9165func (s *CreateBotLocaleInput) SetBotVersion(v string) *CreateBotLocaleInput {
9166	s.BotVersion = &v
9167	return s
9168}
9169
9170// SetDescription sets the Description field's value.
9171func (s *CreateBotLocaleInput) SetDescription(v string) *CreateBotLocaleInput {
9172	s.Description = &v
9173	return s
9174}
9175
9176// SetLocaleId sets the LocaleId field's value.
9177func (s *CreateBotLocaleInput) SetLocaleId(v string) *CreateBotLocaleInput {
9178	s.LocaleId = &v
9179	return s
9180}
9181
9182// SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
9183func (s *CreateBotLocaleInput) SetNluIntentConfidenceThreshold(v float64) *CreateBotLocaleInput {
9184	s.NluIntentConfidenceThreshold = &v
9185	return s
9186}
9187
9188// SetVoiceSettings sets the VoiceSettings field's value.
9189func (s *CreateBotLocaleInput) SetVoiceSettings(v *VoiceSettings) *CreateBotLocaleInput {
9190	s.VoiceSettings = v
9191	return s
9192}
9193
9194type CreateBotLocaleOutput struct {
9195	_ struct{} `type:"structure"`
9196
9197	// The specified bot identifier.
9198	BotId *string `locationName:"botId" min:"10" type:"string"`
9199
9200	// The status of the bot.
9201	//
9202	// When the status is Creating the bot locale is being configured. When the
9203	// status is Building Amazon Lex is building the bot for testing and use.
9204	//
9205	// If the status of the bot is ReadyExpressTesting, you can test the bot using
9206	// the exact utterances specified in the bots' intents. When the bot is ready
9207	// for full testing or to run, the status is Built.
9208	//
9209	// If there was a problem with building the bot, the status is Failed. If the
9210	// bot was saved but not built, the status is NotBuilt.
9211	BotLocaleStatus *string `locationName:"botLocaleStatus" type:"string" enum:"BotLocaleStatus"`
9212
9213	// The specified bot version.
9214	BotVersion *string `locationName:"botVersion" min:"5" type:"string"`
9215
9216	// A timestamp specifying the date and time that the bot locale was created.
9217	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
9218
9219	// The specified description of the bot locale.
9220	Description *string `locationName:"description" type:"string"`
9221
9222	// The specified locale identifier.
9223	LocaleId *string `locationName:"localeId" type:"string"`
9224
9225	// The specified locale name.
9226	LocaleName *string `locationName:"localeName" type:"string"`
9227
9228	// The specified confidence threshold for inserting the AMAZON.FallbackIntent
9229	// and AMAZON.KendraSearchIntent intents.
9230	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double"`
9231
9232	// The Amazon Polly voice ID that Amazon Lex uses for voice interaction with
9233	// the user.
9234	VoiceSettings *VoiceSettings `locationName:"voiceSettings" type:"structure"`
9235}
9236
9237// String returns the string representation.
9238//
9239// API parameter values that are decorated as "sensitive" in the API will not
9240// be included in the string output. The member name will be present, but the
9241// value will be replaced with "sensitive".
9242func (s CreateBotLocaleOutput) String() string {
9243	return awsutil.Prettify(s)
9244}
9245
9246// GoString returns the string representation.
9247//
9248// API parameter values that are decorated as "sensitive" in the API will not
9249// be included in the string output. The member name will be present, but the
9250// value will be replaced with "sensitive".
9251func (s CreateBotLocaleOutput) GoString() string {
9252	return s.String()
9253}
9254
9255// SetBotId sets the BotId field's value.
9256func (s *CreateBotLocaleOutput) SetBotId(v string) *CreateBotLocaleOutput {
9257	s.BotId = &v
9258	return s
9259}
9260
9261// SetBotLocaleStatus sets the BotLocaleStatus field's value.
9262func (s *CreateBotLocaleOutput) SetBotLocaleStatus(v string) *CreateBotLocaleOutput {
9263	s.BotLocaleStatus = &v
9264	return s
9265}
9266
9267// SetBotVersion sets the BotVersion field's value.
9268func (s *CreateBotLocaleOutput) SetBotVersion(v string) *CreateBotLocaleOutput {
9269	s.BotVersion = &v
9270	return s
9271}
9272
9273// SetCreationDateTime sets the CreationDateTime field's value.
9274func (s *CreateBotLocaleOutput) SetCreationDateTime(v time.Time) *CreateBotLocaleOutput {
9275	s.CreationDateTime = &v
9276	return s
9277}
9278
9279// SetDescription sets the Description field's value.
9280func (s *CreateBotLocaleOutput) SetDescription(v string) *CreateBotLocaleOutput {
9281	s.Description = &v
9282	return s
9283}
9284
9285// SetLocaleId sets the LocaleId field's value.
9286func (s *CreateBotLocaleOutput) SetLocaleId(v string) *CreateBotLocaleOutput {
9287	s.LocaleId = &v
9288	return s
9289}
9290
9291// SetLocaleName sets the LocaleName field's value.
9292func (s *CreateBotLocaleOutput) SetLocaleName(v string) *CreateBotLocaleOutput {
9293	s.LocaleName = &v
9294	return s
9295}
9296
9297// SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
9298func (s *CreateBotLocaleOutput) SetNluIntentConfidenceThreshold(v float64) *CreateBotLocaleOutput {
9299	s.NluIntentConfidenceThreshold = &v
9300	return s
9301}
9302
9303// SetVoiceSettings sets the VoiceSettings field's value.
9304func (s *CreateBotLocaleOutput) SetVoiceSettings(v *VoiceSettings) *CreateBotLocaleOutput {
9305	s.VoiceSettings = v
9306	return s
9307}
9308
9309type CreateBotOutput struct {
9310	_ struct{} `type:"structure"`
9311
9312	// A unique identifier for a particular bot. You use this to identify the bot
9313	// when you call other Amazon Lex API operations.
9314	BotId *string `locationName:"botId" min:"10" type:"string"`
9315
9316	// The name specified for the bot.
9317	BotName *string `locationName:"botName" min:"1" type:"string"`
9318
9319	// Shows the current status of the bot. The bot is first in the Creating status.
9320	// Once the bot is read for use, it changes to the Available status. After the
9321	// bot is created, you can use the Draft version of the bot.
9322	BotStatus *string `locationName:"botStatus" type:"string" enum:"BotStatus"`
9323
9324	// A list of tags associated with the bot.
9325	BotTags map[string]*string `locationName:"botTags" type:"map"`
9326
9327	// A timestamp indicating the date and time that the bot was created.
9328	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
9329
9330	// The data privacy settings specified for the bot.
9331	DataPrivacy *DataPrivacy `locationName:"dataPrivacy" type:"structure"`
9332
9333	// The description specified for the bot.
9334	Description *string `locationName:"description" type:"string"`
9335
9336	// The session idle time specified for the bot.
9337	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
9338
9339	// The IAM role specified for the bot.
9340	RoleArn *string `locationName:"roleArn" min:"32" type:"string"`
9341
9342	// A list of tags associated with the test alias for the bot.
9343	TestBotAliasTags map[string]*string `locationName:"testBotAliasTags" type:"map"`
9344}
9345
9346// String returns the string representation.
9347//
9348// API parameter values that are decorated as "sensitive" in the API will not
9349// be included in the string output. The member name will be present, but the
9350// value will be replaced with "sensitive".
9351func (s CreateBotOutput) String() string {
9352	return awsutil.Prettify(s)
9353}
9354
9355// GoString returns the string representation.
9356//
9357// API parameter values that are decorated as "sensitive" in the API will not
9358// be included in the string output. The member name will be present, but the
9359// value will be replaced with "sensitive".
9360func (s CreateBotOutput) GoString() string {
9361	return s.String()
9362}
9363
9364// SetBotId sets the BotId field's value.
9365func (s *CreateBotOutput) SetBotId(v string) *CreateBotOutput {
9366	s.BotId = &v
9367	return s
9368}
9369
9370// SetBotName sets the BotName field's value.
9371func (s *CreateBotOutput) SetBotName(v string) *CreateBotOutput {
9372	s.BotName = &v
9373	return s
9374}
9375
9376// SetBotStatus sets the BotStatus field's value.
9377func (s *CreateBotOutput) SetBotStatus(v string) *CreateBotOutput {
9378	s.BotStatus = &v
9379	return s
9380}
9381
9382// SetBotTags sets the BotTags field's value.
9383func (s *CreateBotOutput) SetBotTags(v map[string]*string) *CreateBotOutput {
9384	s.BotTags = v
9385	return s
9386}
9387
9388// SetCreationDateTime sets the CreationDateTime field's value.
9389func (s *CreateBotOutput) SetCreationDateTime(v time.Time) *CreateBotOutput {
9390	s.CreationDateTime = &v
9391	return s
9392}
9393
9394// SetDataPrivacy sets the DataPrivacy field's value.
9395func (s *CreateBotOutput) SetDataPrivacy(v *DataPrivacy) *CreateBotOutput {
9396	s.DataPrivacy = v
9397	return s
9398}
9399
9400// SetDescription sets the Description field's value.
9401func (s *CreateBotOutput) SetDescription(v string) *CreateBotOutput {
9402	s.Description = &v
9403	return s
9404}
9405
9406// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
9407func (s *CreateBotOutput) SetIdleSessionTTLInSeconds(v int64) *CreateBotOutput {
9408	s.IdleSessionTTLInSeconds = &v
9409	return s
9410}
9411
9412// SetRoleArn sets the RoleArn field's value.
9413func (s *CreateBotOutput) SetRoleArn(v string) *CreateBotOutput {
9414	s.RoleArn = &v
9415	return s
9416}
9417
9418// SetTestBotAliasTags sets the TestBotAliasTags field's value.
9419func (s *CreateBotOutput) SetTestBotAliasTags(v map[string]*string) *CreateBotOutput {
9420	s.TestBotAliasTags = v
9421	return s
9422}
9423
9424type CreateBotVersionInput struct {
9425	_ struct{} `type:"structure"`
9426
9427	// The identifier of the bot to create the version for.
9428	//
9429	// BotId is a required field
9430	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
9431
9432	// Specifies the locales that Amazon Lex adds to this version. You can choose
9433	// the Draft version or any other previously published version for each locale.
9434	// When you specify a source version, the locale data is copied from the source
9435	// version to the new version.
9436	//
9437	// BotVersionLocaleSpecification is a required field
9438	BotVersionLocaleSpecification map[string]*BotVersionLocaleDetails `locationName:"botVersionLocaleSpecification" min:"1" type:"map" required:"true"`
9439
9440	// A description of the version. Use the description to help identify the version
9441	// in lists.
9442	Description *string `locationName:"description" type:"string"`
9443}
9444
9445// String returns the string representation.
9446//
9447// API parameter values that are decorated as "sensitive" in the API will not
9448// be included in the string output. The member name will be present, but the
9449// value will be replaced with "sensitive".
9450func (s CreateBotVersionInput) String() string {
9451	return awsutil.Prettify(s)
9452}
9453
9454// GoString returns the string representation.
9455//
9456// API parameter values that are decorated as "sensitive" in the API will not
9457// be included in the string output. The member name will be present, but the
9458// value will be replaced with "sensitive".
9459func (s CreateBotVersionInput) GoString() string {
9460	return s.String()
9461}
9462
9463// Validate inspects the fields of the type to determine if they are valid.
9464func (s *CreateBotVersionInput) Validate() error {
9465	invalidParams := request.ErrInvalidParams{Context: "CreateBotVersionInput"}
9466	if s.BotId == nil {
9467		invalidParams.Add(request.NewErrParamRequired("BotId"))
9468	}
9469	if s.BotId != nil && len(*s.BotId) < 10 {
9470		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
9471	}
9472	if s.BotVersionLocaleSpecification == nil {
9473		invalidParams.Add(request.NewErrParamRequired("BotVersionLocaleSpecification"))
9474	}
9475	if s.BotVersionLocaleSpecification != nil && len(s.BotVersionLocaleSpecification) < 1 {
9476		invalidParams.Add(request.NewErrParamMinLen("BotVersionLocaleSpecification", 1))
9477	}
9478	if s.BotVersionLocaleSpecification != nil {
9479		for i, v := range s.BotVersionLocaleSpecification {
9480			if v == nil {
9481				continue
9482			}
9483			if err := v.Validate(); err != nil {
9484				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BotVersionLocaleSpecification", i), err.(request.ErrInvalidParams))
9485			}
9486		}
9487	}
9488
9489	if invalidParams.Len() > 0 {
9490		return invalidParams
9491	}
9492	return nil
9493}
9494
9495// SetBotId sets the BotId field's value.
9496func (s *CreateBotVersionInput) SetBotId(v string) *CreateBotVersionInput {
9497	s.BotId = &v
9498	return s
9499}
9500
9501// SetBotVersionLocaleSpecification sets the BotVersionLocaleSpecification field's value.
9502func (s *CreateBotVersionInput) SetBotVersionLocaleSpecification(v map[string]*BotVersionLocaleDetails) *CreateBotVersionInput {
9503	s.BotVersionLocaleSpecification = v
9504	return s
9505}
9506
9507// SetDescription sets the Description field's value.
9508func (s *CreateBotVersionInput) SetDescription(v string) *CreateBotVersionInput {
9509	s.Description = &v
9510	return s
9511}
9512
9513type CreateBotVersionOutput struct {
9514	_ struct{} `type:"structure"`
9515
9516	// The bot identifier specified in the request.
9517	BotId *string `locationName:"botId" min:"10" type:"string"`
9518
9519	// When you send a request to create or update a bot, Amazon Lex sets the status
9520	// response element to Creating. After Amazon Lex builds the bot, it sets status
9521	// to Available. If Amazon Lex can't build the bot, it sets status to Failed.
9522	BotStatus *string `locationName:"botStatus" type:"string" enum:"BotStatus"`
9523
9524	// The version number assigned to the version.
9525	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
9526
9527	// The source versions used for each locale in the new version.
9528	BotVersionLocaleSpecification map[string]*BotVersionLocaleDetails `locationName:"botVersionLocaleSpecification" min:"1" type:"map"`
9529
9530	// A timestamp of the date and time that the version was created.
9531	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
9532
9533	// The description of the version specified in the request.
9534	Description *string `locationName:"description" type:"string"`
9535}
9536
9537// String returns the string representation.
9538//
9539// API parameter values that are decorated as "sensitive" in the API will not
9540// be included in the string output. The member name will be present, but the
9541// value will be replaced with "sensitive".
9542func (s CreateBotVersionOutput) String() string {
9543	return awsutil.Prettify(s)
9544}
9545
9546// GoString returns the string representation.
9547//
9548// API parameter values that are decorated as "sensitive" in the API will not
9549// be included in the string output. The member name will be present, but the
9550// value will be replaced with "sensitive".
9551func (s CreateBotVersionOutput) GoString() string {
9552	return s.String()
9553}
9554
9555// SetBotId sets the BotId field's value.
9556func (s *CreateBotVersionOutput) SetBotId(v string) *CreateBotVersionOutput {
9557	s.BotId = &v
9558	return s
9559}
9560
9561// SetBotStatus sets the BotStatus field's value.
9562func (s *CreateBotVersionOutput) SetBotStatus(v string) *CreateBotVersionOutput {
9563	s.BotStatus = &v
9564	return s
9565}
9566
9567// SetBotVersion sets the BotVersion field's value.
9568func (s *CreateBotVersionOutput) SetBotVersion(v string) *CreateBotVersionOutput {
9569	s.BotVersion = &v
9570	return s
9571}
9572
9573// SetBotVersionLocaleSpecification sets the BotVersionLocaleSpecification field's value.
9574func (s *CreateBotVersionOutput) SetBotVersionLocaleSpecification(v map[string]*BotVersionLocaleDetails) *CreateBotVersionOutput {
9575	s.BotVersionLocaleSpecification = v
9576	return s
9577}
9578
9579// SetCreationDateTime sets the CreationDateTime field's value.
9580func (s *CreateBotVersionOutput) SetCreationDateTime(v time.Time) *CreateBotVersionOutput {
9581	s.CreationDateTime = &v
9582	return s
9583}
9584
9585// SetDescription sets the Description field's value.
9586func (s *CreateBotVersionOutput) SetDescription(v string) *CreateBotVersionOutput {
9587	s.Description = &v
9588	return s
9589}
9590
9591type CreateExportInput struct {
9592	_ struct{} `type:"structure"`
9593
9594	// The file format of the bot or bot locale definition files.
9595	//
9596	// FileFormat is a required field
9597	FileFormat *string `locationName:"fileFormat" type:"string" required:"true" enum:"ImportExportFileFormat"`
9598
9599	// An password to use to encrypt the exported archive. Using a password is optional,
9600	// but you should encrypt the archive to protect the data in transit between
9601	// Amazon Lex and your local computer.
9602	//
9603	// FilePassword is a sensitive parameter and its value will be
9604	// replaced with "sensitive" in string returned by CreateExportInput's
9605	// String and GoString methods.
9606	FilePassword *string `locationName:"filePassword" min:"1" type:"string" sensitive:"true"`
9607
9608	// Specifies the type of resource to export, either a bot or a bot locale. You
9609	// can only specify one type of resource to export.
9610	//
9611	// ResourceSpecification is a required field
9612	ResourceSpecification *ExportResourceSpecification `locationName:"resourceSpecification" type:"structure" required:"true"`
9613}
9614
9615// String returns the string representation.
9616//
9617// API parameter values that are decorated as "sensitive" in the API will not
9618// be included in the string output. The member name will be present, but the
9619// value will be replaced with "sensitive".
9620func (s CreateExportInput) String() string {
9621	return awsutil.Prettify(s)
9622}
9623
9624// GoString returns the string representation.
9625//
9626// API parameter values that are decorated as "sensitive" in the API will not
9627// be included in the string output. The member name will be present, but the
9628// value will be replaced with "sensitive".
9629func (s CreateExportInput) GoString() string {
9630	return s.String()
9631}
9632
9633// Validate inspects the fields of the type to determine if they are valid.
9634func (s *CreateExportInput) Validate() error {
9635	invalidParams := request.ErrInvalidParams{Context: "CreateExportInput"}
9636	if s.FileFormat == nil {
9637		invalidParams.Add(request.NewErrParamRequired("FileFormat"))
9638	}
9639	if s.FilePassword != nil && len(*s.FilePassword) < 1 {
9640		invalidParams.Add(request.NewErrParamMinLen("FilePassword", 1))
9641	}
9642	if s.ResourceSpecification == nil {
9643		invalidParams.Add(request.NewErrParamRequired("ResourceSpecification"))
9644	}
9645	if s.ResourceSpecification != nil {
9646		if err := s.ResourceSpecification.Validate(); err != nil {
9647			invalidParams.AddNested("ResourceSpecification", err.(request.ErrInvalidParams))
9648		}
9649	}
9650
9651	if invalidParams.Len() > 0 {
9652		return invalidParams
9653	}
9654	return nil
9655}
9656
9657// SetFileFormat sets the FileFormat field's value.
9658func (s *CreateExportInput) SetFileFormat(v string) *CreateExportInput {
9659	s.FileFormat = &v
9660	return s
9661}
9662
9663// SetFilePassword sets the FilePassword field's value.
9664func (s *CreateExportInput) SetFilePassword(v string) *CreateExportInput {
9665	s.FilePassword = &v
9666	return s
9667}
9668
9669// SetResourceSpecification sets the ResourceSpecification field's value.
9670func (s *CreateExportInput) SetResourceSpecification(v *ExportResourceSpecification) *CreateExportInput {
9671	s.ResourceSpecification = v
9672	return s
9673}
9674
9675type CreateExportOutput struct {
9676	_ struct{} `type:"structure"`
9677
9678	// The date and time that the request to export a bot was created.
9679	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
9680
9681	// An identifier for a specific request to create an export.
9682	ExportId *string `locationName:"exportId" min:"10" type:"string"`
9683
9684	// The status of the export. When the status is Completed, you can use the operation
9685	// to get the pre-signed S3 URL link to your exported bot or bot locale.
9686	ExportStatus *string `locationName:"exportStatus" type:"string" enum:"ExportStatus"`
9687
9688	// The file format used for the bot or bot locale definition files.
9689	FileFormat *string `locationName:"fileFormat" type:"string" enum:"ImportExportFileFormat"`
9690
9691	// A description of the type of resource that was exported, either a bot or
9692	// a bot locale.
9693	ResourceSpecification *ExportResourceSpecification `locationName:"resourceSpecification" type:"structure"`
9694}
9695
9696// String returns the string representation.
9697//
9698// API parameter values that are decorated as "sensitive" in the API will not
9699// be included in the string output. The member name will be present, but the
9700// value will be replaced with "sensitive".
9701func (s CreateExportOutput) String() string {
9702	return awsutil.Prettify(s)
9703}
9704
9705// GoString returns the string representation.
9706//
9707// API parameter values that are decorated as "sensitive" in the API will not
9708// be included in the string output. The member name will be present, but the
9709// value will be replaced with "sensitive".
9710func (s CreateExportOutput) GoString() string {
9711	return s.String()
9712}
9713
9714// SetCreationDateTime sets the CreationDateTime field's value.
9715func (s *CreateExportOutput) SetCreationDateTime(v time.Time) *CreateExportOutput {
9716	s.CreationDateTime = &v
9717	return s
9718}
9719
9720// SetExportId sets the ExportId field's value.
9721func (s *CreateExportOutput) SetExportId(v string) *CreateExportOutput {
9722	s.ExportId = &v
9723	return s
9724}
9725
9726// SetExportStatus sets the ExportStatus field's value.
9727func (s *CreateExportOutput) SetExportStatus(v string) *CreateExportOutput {
9728	s.ExportStatus = &v
9729	return s
9730}
9731
9732// SetFileFormat sets the FileFormat field's value.
9733func (s *CreateExportOutput) SetFileFormat(v string) *CreateExportOutput {
9734	s.FileFormat = &v
9735	return s
9736}
9737
9738// SetResourceSpecification sets the ResourceSpecification field's value.
9739func (s *CreateExportOutput) SetResourceSpecification(v *ExportResourceSpecification) *CreateExportOutput {
9740	s.ResourceSpecification = v
9741	return s
9742}
9743
9744type CreateIntentInput struct {
9745	_ struct{} `type:"structure"`
9746
9747	// The identifier of the bot associated with this intent.
9748	//
9749	// BotId is a required field
9750	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
9751
9752	// The identifier of the version of the bot associated with this intent.
9753	//
9754	// BotVersion is a required field
9755	BotVersion *string `location:"uri" locationName:"botVersion" min:"5" type:"string" required:"true"`
9756
9757	// A description of the intent. Use the description to help identify the intent
9758	// in lists.
9759	Description *string `locationName:"description" type:"string"`
9760
9761	// Specifies that Amazon Lex invokes the alias Lambda function for each user
9762	// input. You can invoke this Lambda function to personalize user interaction.
9763	//
9764	// For example, suppose that your bot determines that the user's name is John.
9765	// You Lambda function might retrieve John's information from a backend database
9766	// and prepopulate some of the values. For example, if you find that John is
9767	// gluten intolerant, you might set the corresponding intent slot, glutenIntolerant
9768	// to true. You might find John's phone number and set the corresponding session
9769	// attribute.
9770	DialogCodeHook *DialogCodeHookSettings `locationName:"dialogCodeHook" type:"structure"`
9771
9772	// Specifies that Amazon Lex invokes the alias Lambda function when the intent
9773	// is ready for fulfillment. You can invoke this function to complete the bot's
9774	// transaction with the user.
9775	//
9776	// For example, in a pizza ordering bot, the Lambda function can look up the
9777	// closest pizza restaurant to the customer's location and then place an order
9778	// on the customer's behalf.
9779	FulfillmentCodeHook *FulfillmentCodeHookSettings `locationName:"fulfillmentCodeHook" type:"structure"`
9780
9781	// A list of contexts that must be active for this intent to be considered by
9782	// Amazon Lex.
9783	//
9784	// When an intent has an input context list, Amazon Lex only considers using
9785	// the intent in an interaction with the user when the specified contexts are
9786	// included in the active context list for the session. If the contexts are
9787	// not active, then Amazon Lex will not use the intent.
9788	//
9789	// A context can be automatically activated using the outputContexts property
9790	// or it can be set at runtime.
9791	//
9792	// For example, if there are two intents with different input contexts that
9793	// respond to the same utterances, only the intent with the active context will
9794	// respond.
9795	//
9796	// An intent may have up to 5 input contexts. If an intent has multiple input
9797	// contexts, all of the contexts must be active to consider the intent.
9798	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
9799
9800	// Sets the response that Amazon Lex sends to the user when the intent is closed.
9801	IntentClosingSetting *IntentClosingSetting `locationName:"intentClosingSetting" type:"structure"`
9802
9803	// Provides prompts that Amazon Lex sends to the user to confirm the completion
9804	// of an intent. If the user answers "no," the settings contain a statement
9805	// that is sent to the user to end the intent.
9806	IntentConfirmationSetting *IntentConfirmationSetting `locationName:"intentConfirmationSetting" type:"structure"`
9807
9808	// The name of the intent. Intent names must be unique in the locale that contains
9809	// the intent and cannot match the name of any built-in intent.
9810	//
9811	// IntentName is a required field
9812	IntentName *string `locationName:"intentName" min:"1" type:"string" required:"true"`
9813
9814	// Configuration information required to use the AMAZON.KendraSearchIntent intent
9815	// to connect to an Amazon Kendra index. The AMAZON.KendraSearchIntent intent
9816	// is called when Amazon Lex can't determine another intent to invoke.
9817	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
9818
9819	// The identifier of the language and locale where this intent is used. All
9820	// of the bots, slot types, and slots used by the intent must have the same
9821	// locale. For more information, see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
9822	//
9823	// LocaleId is a required field
9824	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
9825
9826	// A lists of contexts that the intent activates when it is fulfilled.
9827	//
9828	// You can use an output context to indicate the intents that Amazon Lex should
9829	// consider for the next turn of the conversation with a customer.
9830	//
9831	// When you use the outputContextsList property, all of the contexts specified
9832	// in the list are activated when the intent is fulfilled. You can set up to
9833	// 10 output contexts. You can also set the number of conversation turns that
9834	// the context should be active, or the length of time that the context should
9835	// be active.
9836	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
9837
9838	// A unique identifier for the built-in intent to base this intent on.
9839	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
9840
9841	// An array of strings that a user might say to signal the intent. For example,
9842	// "I want a pizza", or "I want a {PizzaSize} pizza".
9843	//
9844	// In an utterance, slot names are enclosed in curly braces ("{", "}") to indicate
9845	// where they should be displayed in the utterance shown to the user..
9846	SampleUtterances []*SampleUtterance `locationName:"sampleUtterances" type:"list"`
9847}
9848
9849// String returns the string representation.
9850//
9851// API parameter values that are decorated as "sensitive" in the API will not
9852// be included in the string output. The member name will be present, but the
9853// value will be replaced with "sensitive".
9854func (s CreateIntentInput) String() string {
9855	return awsutil.Prettify(s)
9856}
9857
9858// GoString returns the string representation.
9859//
9860// API parameter values that are decorated as "sensitive" in the API will not
9861// be included in the string output. The member name will be present, but the
9862// value will be replaced with "sensitive".
9863func (s CreateIntentInput) GoString() string {
9864	return s.String()
9865}
9866
9867// Validate inspects the fields of the type to determine if they are valid.
9868func (s *CreateIntentInput) Validate() error {
9869	invalidParams := request.ErrInvalidParams{Context: "CreateIntentInput"}
9870	if s.BotId == nil {
9871		invalidParams.Add(request.NewErrParamRequired("BotId"))
9872	}
9873	if s.BotId != nil && len(*s.BotId) < 10 {
9874		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
9875	}
9876	if s.BotVersion == nil {
9877		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
9878	}
9879	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
9880		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
9881	}
9882	if s.IntentName == nil {
9883		invalidParams.Add(request.NewErrParamRequired("IntentName"))
9884	}
9885	if s.IntentName != nil && len(*s.IntentName) < 1 {
9886		invalidParams.Add(request.NewErrParamMinLen("IntentName", 1))
9887	}
9888	if s.LocaleId == nil {
9889		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
9890	}
9891	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
9892		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
9893	}
9894	if s.DialogCodeHook != nil {
9895		if err := s.DialogCodeHook.Validate(); err != nil {
9896			invalidParams.AddNested("DialogCodeHook", err.(request.ErrInvalidParams))
9897		}
9898	}
9899	if s.FulfillmentCodeHook != nil {
9900		if err := s.FulfillmentCodeHook.Validate(); err != nil {
9901			invalidParams.AddNested("FulfillmentCodeHook", err.(request.ErrInvalidParams))
9902		}
9903	}
9904	if s.InputContexts != nil {
9905		for i, v := range s.InputContexts {
9906			if v == nil {
9907				continue
9908			}
9909			if err := v.Validate(); err != nil {
9910				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputContexts", i), err.(request.ErrInvalidParams))
9911			}
9912		}
9913	}
9914	if s.IntentClosingSetting != nil {
9915		if err := s.IntentClosingSetting.Validate(); err != nil {
9916			invalidParams.AddNested("IntentClosingSetting", err.(request.ErrInvalidParams))
9917		}
9918	}
9919	if s.IntentConfirmationSetting != nil {
9920		if err := s.IntentConfirmationSetting.Validate(); err != nil {
9921			invalidParams.AddNested("IntentConfirmationSetting", err.(request.ErrInvalidParams))
9922		}
9923	}
9924	if s.KendraConfiguration != nil {
9925		if err := s.KendraConfiguration.Validate(); err != nil {
9926			invalidParams.AddNested("KendraConfiguration", err.(request.ErrInvalidParams))
9927		}
9928	}
9929	if s.OutputContexts != nil {
9930		for i, v := range s.OutputContexts {
9931			if v == nil {
9932				continue
9933			}
9934			if err := v.Validate(); err != nil {
9935				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OutputContexts", i), err.(request.ErrInvalidParams))
9936			}
9937		}
9938	}
9939	if s.SampleUtterances != nil {
9940		for i, v := range s.SampleUtterances {
9941			if v == nil {
9942				continue
9943			}
9944			if err := v.Validate(); err != nil {
9945				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SampleUtterances", i), err.(request.ErrInvalidParams))
9946			}
9947		}
9948	}
9949
9950	if invalidParams.Len() > 0 {
9951		return invalidParams
9952	}
9953	return nil
9954}
9955
9956// SetBotId sets the BotId field's value.
9957func (s *CreateIntentInput) SetBotId(v string) *CreateIntentInput {
9958	s.BotId = &v
9959	return s
9960}
9961
9962// SetBotVersion sets the BotVersion field's value.
9963func (s *CreateIntentInput) SetBotVersion(v string) *CreateIntentInput {
9964	s.BotVersion = &v
9965	return s
9966}
9967
9968// SetDescription sets the Description field's value.
9969func (s *CreateIntentInput) SetDescription(v string) *CreateIntentInput {
9970	s.Description = &v
9971	return s
9972}
9973
9974// SetDialogCodeHook sets the DialogCodeHook field's value.
9975func (s *CreateIntentInput) SetDialogCodeHook(v *DialogCodeHookSettings) *CreateIntentInput {
9976	s.DialogCodeHook = v
9977	return s
9978}
9979
9980// SetFulfillmentCodeHook sets the FulfillmentCodeHook field's value.
9981func (s *CreateIntentInput) SetFulfillmentCodeHook(v *FulfillmentCodeHookSettings) *CreateIntentInput {
9982	s.FulfillmentCodeHook = v
9983	return s
9984}
9985
9986// SetInputContexts sets the InputContexts field's value.
9987func (s *CreateIntentInput) SetInputContexts(v []*InputContext) *CreateIntentInput {
9988	s.InputContexts = v
9989	return s
9990}
9991
9992// SetIntentClosingSetting sets the IntentClosingSetting field's value.
9993func (s *CreateIntentInput) SetIntentClosingSetting(v *IntentClosingSetting) *CreateIntentInput {
9994	s.IntentClosingSetting = v
9995	return s
9996}
9997
9998// SetIntentConfirmationSetting sets the IntentConfirmationSetting field's value.
9999func (s *CreateIntentInput) SetIntentConfirmationSetting(v *IntentConfirmationSetting) *CreateIntentInput {
10000	s.IntentConfirmationSetting = v
10001	return s
10002}
10003
10004// SetIntentName sets the IntentName field's value.
10005func (s *CreateIntentInput) SetIntentName(v string) *CreateIntentInput {
10006	s.IntentName = &v
10007	return s
10008}
10009
10010// SetKendraConfiguration sets the KendraConfiguration field's value.
10011func (s *CreateIntentInput) SetKendraConfiguration(v *KendraConfiguration) *CreateIntentInput {
10012	s.KendraConfiguration = v
10013	return s
10014}
10015
10016// SetLocaleId sets the LocaleId field's value.
10017func (s *CreateIntentInput) SetLocaleId(v string) *CreateIntentInput {
10018	s.LocaleId = &v
10019	return s
10020}
10021
10022// SetOutputContexts sets the OutputContexts field's value.
10023func (s *CreateIntentInput) SetOutputContexts(v []*OutputContext) *CreateIntentInput {
10024	s.OutputContexts = v
10025	return s
10026}
10027
10028// SetParentIntentSignature sets the ParentIntentSignature field's value.
10029func (s *CreateIntentInput) SetParentIntentSignature(v string) *CreateIntentInput {
10030	s.ParentIntentSignature = &v
10031	return s
10032}
10033
10034// SetSampleUtterances sets the SampleUtterances field's value.
10035func (s *CreateIntentInput) SetSampleUtterances(v []*SampleUtterance) *CreateIntentInput {
10036	s.SampleUtterances = v
10037	return s
10038}
10039
10040type CreateIntentOutput struct {
10041	_ struct{} `type:"structure"`
10042
10043	// The identifier of the bot associated with the intent.
10044	BotId *string `locationName:"botId" min:"10" type:"string"`
10045
10046	// The identifier of the version of the bot associated with the intent.
10047	BotVersion *string `locationName:"botVersion" min:"5" type:"string"`
10048
10049	// A timestamp of the date and time that the intent was created.
10050	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
10051
10052	// The description specified for the intent.
10053	Description *string `locationName:"description" type:"string"`
10054
10055	// The dialog Lambda function specified for the intent.
10056	DialogCodeHook *DialogCodeHookSettings `locationName:"dialogCodeHook" type:"structure"`
10057
10058	// The fulfillment Lambda function specified for the intent.
10059	FulfillmentCodeHook *FulfillmentCodeHookSettings `locationName:"fulfillmentCodeHook" type:"structure"`
10060
10061	// The list of input contexts specified for the intent.
10062	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
10063
10064	// The closing setting specified for the intent.
10065	IntentClosingSetting *IntentClosingSetting `locationName:"intentClosingSetting" type:"structure"`
10066
10067	// The confirmation setting specified for the intent.
10068	IntentConfirmationSetting *IntentConfirmationSetting `locationName:"intentConfirmationSetting" type:"structure"`
10069
10070	// A unique identifier for the intent.
10071	IntentId *string `locationName:"intentId" min:"10" type:"string"`
10072
10073	// The name specified for the intent.
10074	IntentName *string `locationName:"intentName" min:"1" type:"string"`
10075
10076	// Configuration for searching a Amazon Kendra index specified for the intent.
10077	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
10078
10079	// The locale that the intent is specified to use.
10080	LocaleId *string `locationName:"localeId" type:"string"`
10081
10082	// The list of output contexts specified for the intent.
10083	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
10084
10085	// The signature of the parent intent specified for the intent.
10086	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
10087
10088	// The sample utterances specified for the intent.
10089	SampleUtterances []*SampleUtterance `locationName:"sampleUtterances" type:"list"`
10090}
10091
10092// String returns the string representation.
10093//
10094// API parameter values that are decorated as "sensitive" in the API will not
10095// be included in the string output. The member name will be present, but the
10096// value will be replaced with "sensitive".
10097func (s CreateIntentOutput) String() string {
10098	return awsutil.Prettify(s)
10099}
10100
10101// GoString returns the string representation.
10102//
10103// API parameter values that are decorated as "sensitive" in the API will not
10104// be included in the string output. The member name will be present, but the
10105// value will be replaced with "sensitive".
10106func (s CreateIntentOutput) GoString() string {
10107	return s.String()
10108}
10109
10110// SetBotId sets the BotId field's value.
10111func (s *CreateIntentOutput) SetBotId(v string) *CreateIntentOutput {
10112	s.BotId = &v
10113	return s
10114}
10115
10116// SetBotVersion sets the BotVersion field's value.
10117func (s *CreateIntentOutput) SetBotVersion(v string) *CreateIntentOutput {
10118	s.BotVersion = &v
10119	return s
10120}
10121
10122// SetCreationDateTime sets the CreationDateTime field's value.
10123func (s *CreateIntentOutput) SetCreationDateTime(v time.Time) *CreateIntentOutput {
10124	s.CreationDateTime = &v
10125	return s
10126}
10127
10128// SetDescription sets the Description field's value.
10129func (s *CreateIntentOutput) SetDescription(v string) *CreateIntentOutput {
10130	s.Description = &v
10131	return s
10132}
10133
10134// SetDialogCodeHook sets the DialogCodeHook field's value.
10135func (s *CreateIntentOutput) SetDialogCodeHook(v *DialogCodeHookSettings) *CreateIntentOutput {
10136	s.DialogCodeHook = v
10137	return s
10138}
10139
10140// SetFulfillmentCodeHook sets the FulfillmentCodeHook field's value.
10141func (s *CreateIntentOutput) SetFulfillmentCodeHook(v *FulfillmentCodeHookSettings) *CreateIntentOutput {
10142	s.FulfillmentCodeHook = v
10143	return s
10144}
10145
10146// SetInputContexts sets the InputContexts field's value.
10147func (s *CreateIntentOutput) SetInputContexts(v []*InputContext) *CreateIntentOutput {
10148	s.InputContexts = v
10149	return s
10150}
10151
10152// SetIntentClosingSetting sets the IntentClosingSetting field's value.
10153func (s *CreateIntentOutput) SetIntentClosingSetting(v *IntentClosingSetting) *CreateIntentOutput {
10154	s.IntentClosingSetting = v
10155	return s
10156}
10157
10158// SetIntentConfirmationSetting sets the IntentConfirmationSetting field's value.
10159func (s *CreateIntentOutput) SetIntentConfirmationSetting(v *IntentConfirmationSetting) *CreateIntentOutput {
10160	s.IntentConfirmationSetting = v
10161	return s
10162}
10163
10164// SetIntentId sets the IntentId field's value.
10165func (s *CreateIntentOutput) SetIntentId(v string) *CreateIntentOutput {
10166	s.IntentId = &v
10167	return s
10168}
10169
10170// SetIntentName sets the IntentName field's value.
10171func (s *CreateIntentOutput) SetIntentName(v string) *CreateIntentOutput {
10172	s.IntentName = &v
10173	return s
10174}
10175
10176// SetKendraConfiguration sets the KendraConfiguration field's value.
10177func (s *CreateIntentOutput) SetKendraConfiguration(v *KendraConfiguration) *CreateIntentOutput {
10178	s.KendraConfiguration = v
10179	return s
10180}
10181
10182// SetLocaleId sets the LocaleId field's value.
10183func (s *CreateIntentOutput) SetLocaleId(v string) *CreateIntentOutput {
10184	s.LocaleId = &v
10185	return s
10186}
10187
10188// SetOutputContexts sets the OutputContexts field's value.
10189func (s *CreateIntentOutput) SetOutputContexts(v []*OutputContext) *CreateIntentOutput {
10190	s.OutputContexts = v
10191	return s
10192}
10193
10194// SetParentIntentSignature sets the ParentIntentSignature field's value.
10195func (s *CreateIntentOutput) SetParentIntentSignature(v string) *CreateIntentOutput {
10196	s.ParentIntentSignature = &v
10197	return s
10198}
10199
10200// SetSampleUtterances sets the SampleUtterances field's value.
10201func (s *CreateIntentOutput) SetSampleUtterances(v []*SampleUtterance) *CreateIntentOutput {
10202	s.SampleUtterances = v
10203	return s
10204}
10205
10206type CreateResourcePolicyInput struct {
10207	_ struct{} `type:"structure"`
10208
10209	// A resource policy to add to the resource. The policy is a JSON structure
10210	// that contains one or more statements that define the policy. The policy must
10211	// follow the IAM syntax. For more information about the contents of a JSON
10212	// policy document, see IAM JSON policy reference (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html).
10213	//
10214	// If the policy isn't valid, Amazon Lex returns a validation exception.
10215	//
10216	// Policy is a required field
10217	Policy *string `locationName:"policy" min:"2" type:"string" required:"true"`
10218
10219	// The Amazon Resource Name (ARN) of the bot or bot alias that the resource
10220	// policy is attached to.
10221	//
10222	// ResourceArn is a required field
10223	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
10224}
10225
10226// String returns the string representation.
10227//
10228// API parameter values that are decorated as "sensitive" in the API will not
10229// be included in the string output. The member name will be present, but the
10230// value will be replaced with "sensitive".
10231func (s CreateResourcePolicyInput) String() string {
10232	return awsutil.Prettify(s)
10233}
10234
10235// GoString returns the string representation.
10236//
10237// API parameter values that are decorated as "sensitive" in the API will not
10238// be included in the string output. The member name will be present, but the
10239// value will be replaced with "sensitive".
10240func (s CreateResourcePolicyInput) GoString() string {
10241	return s.String()
10242}
10243
10244// Validate inspects the fields of the type to determine if they are valid.
10245func (s *CreateResourcePolicyInput) Validate() error {
10246	invalidParams := request.ErrInvalidParams{Context: "CreateResourcePolicyInput"}
10247	if s.Policy == nil {
10248		invalidParams.Add(request.NewErrParamRequired("Policy"))
10249	}
10250	if s.Policy != nil && len(*s.Policy) < 2 {
10251		invalidParams.Add(request.NewErrParamMinLen("Policy", 2))
10252	}
10253	if s.ResourceArn == nil {
10254		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10255	}
10256	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
10257		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
10258	}
10259
10260	if invalidParams.Len() > 0 {
10261		return invalidParams
10262	}
10263	return nil
10264}
10265
10266// SetPolicy sets the Policy field's value.
10267func (s *CreateResourcePolicyInput) SetPolicy(v string) *CreateResourcePolicyInput {
10268	s.Policy = &v
10269	return s
10270}
10271
10272// SetResourceArn sets the ResourceArn field's value.
10273func (s *CreateResourcePolicyInput) SetResourceArn(v string) *CreateResourcePolicyInput {
10274	s.ResourceArn = &v
10275	return s
10276}
10277
10278type CreateResourcePolicyOutput struct {
10279	_ struct{} `type:"structure"`
10280
10281	// The Amazon Resource Name (ARN) of the bot or bot alias that the resource
10282	// policy was attached to.
10283	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string"`
10284
10285	// The current revision of the resource policy. Use the revision ID to make
10286	// sure that you are updating the most current version of a resource policy
10287	// when you add a policy statement to a resource, delete a resource, or update
10288	// a resource.
10289	RevisionId *string `locationName:"revisionId" min:"1" type:"string"`
10290}
10291
10292// String returns the string representation.
10293//
10294// API parameter values that are decorated as "sensitive" in the API will not
10295// be included in the string output. The member name will be present, but the
10296// value will be replaced with "sensitive".
10297func (s CreateResourcePolicyOutput) String() string {
10298	return awsutil.Prettify(s)
10299}
10300
10301// GoString returns the string representation.
10302//
10303// API parameter values that are decorated as "sensitive" in the API will not
10304// be included in the string output. The member name will be present, but the
10305// value will be replaced with "sensitive".
10306func (s CreateResourcePolicyOutput) GoString() string {
10307	return s.String()
10308}
10309
10310// SetResourceArn sets the ResourceArn field's value.
10311func (s *CreateResourcePolicyOutput) SetResourceArn(v string) *CreateResourcePolicyOutput {
10312	s.ResourceArn = &v
10313	return s
10314}
10315
10316// SetRevisionId sets the RevisionId field's value.
10317func (s *CreateResourcePolicyOutput) SetRevisionId(v string) *CreateResourcePolicyOutput {
10318	s.RevisionId = &v
10319	return s
10320}
10321
10322type CreateResourcePolicyStatementInput struct {
10323	_ struct{} `type:"structure"`
10324
10325	// The Amazon Lex action that this policy either allows or denies. The action
10326	// must apply to the resource type of the specified ARN. For more information,
10327	// see Actions, resources, and condition keys for Amazon Lex V2 (https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlexv2.html).
10328	//
10329	// Action is a required field
10330	Action []*string `locationName:"action" type:"list" required:"true"`
10331
10332	// Specifies a condition when the policy is in effect. If the principal of the
10333	// policy is a service principal, you must provide two condition blocks, one
10334	// with a SourceAccount global condition key and one with a SourceArn global
10335	// condition key.
10336	//
10337	// For more information, see IAM JSON policy elements: Condition (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html).
10338	Condition map[string]map[string]*string `locationName:"condition" type:"map"`
10339
10340	// Determines whether the statement allows or denies access to the resource.
10341	//
10342	// Effect is a required field
10343	Effect *string `locationName:"effect" type:"string" required:"true" enum:"Effect"`
10344
10345	// The identifier of the revision of the policy to edit. If this revision ID
10346	// doesn't match the current revision ID, Amazon Lex throws an exception.
10347	//
10348	// If you don't specify a revision, Amazon Lex overwrites the contents of the
10349	// policy with the new values.
10350	ExpectedRevisionId *string `location:"querystring" locationName:"expectedRevisionId" min:"1" type:"string"`
10351
10352	// An IAM principal, such as an IAM users, IAM roles, or AWS services that is
10353	// allowed or denied access to a resource. For more information, see AWS JSON
10354	// policy elements: Principal (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html).
10355	//
10356	// Principal is a required field
10357	Principal []*Principal `locationName:"principal" type:"list" required:"true"`
10358
10359	// The Amazon Resource Name (ARN) of the bot or bot alias that the resource
10360	// policy is attached to.
10361	//
10362	// ResourceArn is a required field
10363	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
10364
10365	// The name of the statement. The ID is the same as the Sid IAM property. The
10366	// statement name must be unique within the policy. For more information, see
10367	// IAM JSON policy elements: Sid (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html).
10368	//
10369	// StatementId is a required field
10370	StatementId *string `locationName:"statementId" min:"1" type:"string" required:"true"`
10371}
10372
10373// String returns the string representation.
10374//
10375// API parameter values that are decorated as "sensitive" in the API will not
10376// be included in the string output. The member name will be present, but the
10377// value will be replaced with "sensitive".
10378func (s CreateResourcePolicyStatementInput) String() string {
10379	return awsutil.Prettify(s)
10380}
10381
10382// GoString returns the string representation.
10383//
10384// API parameter values that are decorated as "sensitive" in the API will not
10385// be included in the string output. The member name will be present, but the
10386// value will be replaced with "sensitive".
10387func (s CreateResourcePolicyStatementInput) GoString() string {
10388	return s.String()
10389}
10390
10391// Validate inspects the fields of the type to determine if they are valid.
10392func (s *CreateResourcePolicyStatementInput) Validate() error {
10393	invalidParams := request.ErrInvalidParams{Context: "CreateResourcePolicyStatementInput"}
10394	if s.Action == nil {
10395		invalidParams.Add(request.NewErrParamRequired("Action"))
10396	}
10397	if s.Effect == nil {
10398		invalidParams.Add(request.NewErrParamRequired("Effect"))
10399	}
10400	if s.ExpectedRevisionId != nil && len(*s.ExpectedRevisionId) < 1 {
10401		invalidParams.Add(request.NewErrParamMinLen("ExpectedRevisionId", 1))
10402	}
10403	if s.Principal == nil {
10404		invalidParams.Add(request.NewErrParamRequired("Principal"))
10405	}
10406	if s.ResourceArn == nil {
10407		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10408	}
10409	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
10410		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
10411	}
10412	if s.StatementId == nil {
10413		invalidParams.Add(request.NewErrParamRequired("StatementId"))
10414	}
10415	if s.StatementId != nil && len(*s.StatementId) < 1 {
10416		invalidParams.Add(request.NewErrParamMinLen("StatementId", 1))
10417	}
10418	if s.Principal != nil {
10419		for i, v := range s.Principal {
10420			if v == nil {
10421				continue
10422			}
10423			if err := v.Validate(); err != nil {
10424				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Principal", i), err.(request.ErrInvalidParams))
10425			}
10426		}
10427	}
10428
10429	if invalidParams.Len() > 0 {
10430		return invalidParams
10431	}
10432	return nil
10433}
10434
10435// SetAction sets the Action field's value.
10436func (s *CreateResourcePolicyStatementInput) SetAction(v []*string) *CreateResourcePolicyStatementInput {
10437	s.Action = v
10438	return s
10439}
10440
10441// SetCondition sets the Condition field's value.
10442func (s *CreateResourcePolicyStatementInput) SetCondition(v map[string]map[string]*string) *CreateResourcePolicyStatementInput {
10443	s.Condition = v
10444	return s
10445}
10446
10447// SetEffect sets the Effect field's value.
10448func (s *CreateResourcePolicyStatementInput) SetEffect(v string) *CreateResourcePolicyStatementInput {
10449	s.Effect = &v
10450	return s
10451}
10452
10453// SetExpectedRevisionId sets the ExpectedRevisionId field's value.
10454func (s *CreateResourcePolicyStatementInput) SetExpectedRevisionId(v string) *CreateResourcePolicyStatementInput {
10455	s.ExpectedRevisionId = &v
10456	return s
10457}
10458
10459// SetPrincipal sets the Principal field's value.
10460func (s *CreateResourcePolicyStatementInput) SetPrincipal(v []*Principal) *CreateResourcePolicyStatementInput {
10461	s.Principal = v
10462	return s
10463}
10464
10465// SetResourceArn sets the ResourceArn field's value.
10466func (s *CreateResourcePolicyStatementInput) SetResourceArn(v string) *CreateResourcePolicyStatementInput {
10467	s.ResourceArn = &v
10468	return s
10469}
10470
10471// SetStatementId sets the StatementId field's value.
10472func (s *CreateResourcePolicyStatementInput) SetStatementId(v string) *CreateResourcePolicyStatementInput {
10473	s.StatementId = &v
10474	return s
10475}
10476
10477type CreateResourcePolicyStatementOutput struct {
10478	_ struct{} `type:"structure"`
10479
10480	// The Amazon Resource Name (ARN) of the bot or bot alias that the resource
10481	// policy is attached to.
10482	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string"`
10483
10484	// The current revision of the resource policy. Use the revision ID to make
10485	// sure that you are updating the most current version of a resource policy
10486	// when you add a policy statement to a resource, delete a resource, or update
10487	// a resource.
10488	RevisionId *string `locationName:"revisionId" min:"1" type:"string"`
10489}
10490
10491// String returns the string representation.
10492//
10493// API parameter values that are decorated as "sensitive" in the API will not
10494// be included in the string output. The member name will be present, but the
10495// value will be replaced with "sensitive".
10496func (s CreateResourcePolicyStatementOutput) String() string {
10497	return awsutil.Prettify(s)
10498}
10499
10500// GoString returns the string representation.
10501//
10502// API parameter values that are decorated as "sensitive" in the API will not
10503// be included in the string output. The member name will be present, but the
10504// value will be replaced with "sensitive".
10505func (s CreateResourcePolicyStatementOutput) GoString() string {
10506	return s.String()
10507}
10508
10509// SetResourceArn sets the ResourceArn field's value.
10510func (s *CreateResourcePolicyStatementOutput) SetResourceArn(v string) *CreateResourcePolicyStatementOutput {
10511	s.ResourceArn = &v
10512	return s
10513}
10514
10515// SetRevisionId sets the RevisionId field's value.
10516func (s *CreateResourcePolicyStatementOutput) SetRevisionId(v string) *CreateResourcePolicyStatementOutput {
10517	s.RevisionId = &v
10518	return s
10519}
10520
10521type CreateSlotInput struct {
10522	_ struct{} `type:"structure"`
10523
10524	// The identifier of the bot associated with the slot.
10525	//
10526	// BotId is a required field
10527	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
10528
10529	// The version of the bot associated with the slot.
10530	//
10531	// BotVersion is a required field
10532	BotVersion *string `location:"uri" locationName:"botVersion" min:"5" type:"string" required:"true"`
10533
10534	// A description of the slot. Use this to help identify the slot in lists.
10535	Description *string `locationName:"description" type:"string"`
10536
10537	// The identifier of the intent that contains the slot.
10538	//
10539	// IntentId is a required field
10540	IntentId *string `location:"uri" locationName:"intentId" min:"10" type:"string" required:"true"`
10541
10542	// The identifier of the language and locale that the slot will be used in.
10543	// The string must match one of the supported locales. All of the bots, intents,
10544	// slot types used by the slot must have the same locale. For more information,
10545	// see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
10546	//
10547	// LocaleId is a required field
10548	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
10549
10550	// Indicates whether the slot returns multiple values in one response. Multi-value
10551	// slots are only available in the en-US locale. If you set this value to true
10552	// in any other locale, Amazon Lex throws a ValidationException.
10553	//
10554	// If the multipleValuesSetting is not set, the default value is false.
10555	MultipleValuesSetting *MultipleValuesSetting `locationName:"multipleValuesSetting" type:"structure"`
10556
10557	// Determines how slot values are used in Amazon CloudWatch logs. If the value
10558	// of the obfuscationSetting parameter is DefaultObfuscation, slot values are
10559	// obfuscated in the log output. If the value is None, the actual value is present
10560	// in the log output.
10561	//
10562	// The default is to obfuscate values in the CloudWatch logs.
10563	ObfuscationSetting *ObfuscationSetting `locationName:"obfuscationSetting" type:"structure"`
10564
10565	// The name of the slot. Slot names must be unique within the bot that contains
10566	// the slot.
10567	//
10568	// SlotName is a required field
10569	SlotName *string `locationName:"slotName" min:"1" type:"string" required:"true"`
10570
10571	// The unique identifier for the slot type associated with this slot. The slot
10572	// type determines the values that can be entered into the slot.
10573	//
10574	// SlotTypeId is a required field
10575	SlotTypeId *string `locationName:"slotTypeId" min:"1" type:"string" required:"true"`
10576
10577	// Specifies prompts that Amazon Lex sends to the user to elicit a response
10578	// that provides the value for the slot.
10579	//
10580	// ValueElicitationSetting is a required field
10581	ValueElicitationSetting *SlotValueElicitationSetting `locationName:"valueElicitationSetting" type:"structure" required:"true"`
10582}
10583
10584// String returns the string representation.
10585//
10586// API parameter values that are decorated as "sensitive" in the API will not
10587// be included in the string output. The member name will be present, but the
10588// value will be replaced with "sensitive".
10589func (s CreateSlotInput) String() string {
10590	return awsutil.Prettify(s)
10591}
10592
10593// GoString returns the string representation.
10594//
10595// API parameter values that are decorated as "sensitive" in the API will not
10596// be included in the string output. The member name will be present, but the
10597// value will be replaced with "sensitive".
10598func (s CreateSlotInput) GoString() string {
10599	return s.String()
10600}
10601
10602// Validate inspects the fields of the type to determine if they are valid.
10603func (s *CreateSlotInput) Validate() error {
10604	invalidParams := request.ErrInvalidParams{Context: "CreateSlotInput"}
10605	if s.BotId == nil {
10606		invalidParams.Add(request.NewErrParamRequired("BotId"))
10607	}
10608	if s.BotId != nil && len(*s.BotId) < 10 {
10609		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
10610	}
10611	if s.BotVersion == nil {
10612		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
10613	}
10614	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
10615		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
10616	}
10617	if s.IntentId == nil {
10618		invalidParams.Add(request.NewErrParamRequired("IntentId"))
10619	}
10620	if s.IntentId != nil && len(*s.IntentId) < 10 {
10621		invalidParams.Add(request.NewErrParamMinLen("IntentId", 10))
10622	}
10623	if s.LocaleId == nil {
10624		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
10625	}
10626	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
10627		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
10628	}
10629	if s.SlotName == nil {
10630		invalidParams.Add(request.NewErrParamRequired("SlotName"))
10631	}
10632	if s.SlotName != nil && len(*s.SlotName) < 1 {
10633		invalidParams.Add(request.NewErrParamMinLen("SlotName", 1))
10634	}
10635	if s.SlotTypeId == nil {
10636		invalidParams.Add(request.NewErrParamRequired("SlotTypeId"))
10637	}
10638	if s.SlotTypeId != nil && len(*s.SlotTypeId) < 1 {
10639		invalidParams.Add(request.NewErrParamMinLen("SlotTypeId", 1))
10640	}
10641	if s.ValueElicitationSetting == nil {
10642		invalidParams.Add(request.NewErrParamRequired("ValueElicitationSetting"))
10643	}
10644	if s.ObfuscationSetting != nil {
10645		if err := s.ObfuscationSetting.Validate(); err != nil {
10646			invalidParams.AddNested("ObfuscationSetting", err.(request.ErrInvalidParams))
10647		}
10648	}
10649	if s.ValueElicitationSetting != nil {
10650		if err := s.ValueElicitationSetting.Validate(); err != nil {
10651			invalidParams.AddNested("ValueElicitationSetting", err.(request.ErrInvalidParams))
10652		}
10653	}
10654
10655	if invalidParams.Len() > 0 {
10656		return invalidParams
10657	}
10658	return nil
10659}
10660
10661// SetBotId sets the BotId field's value.
10662func (s *CreateSlotInput) SetBotId(v string) *CreateSlotInput {
10663	s.BotId = &v
10664	return s
10665}
10666
10667// SetBotVersion sets the BotVersion field's value.
10668func (s *CreateSlotInput) SetBotVersion(v string) *CreateSlotInput {
10669	s.BotVersion = &v
10670	return s
10671}
10672
10673// SetDescription sets the Description field's value.
10674func (s *CreateSlotInput) SetDescription(v string) *CreateSlotInput {
10675	s.Description = &v
10676	return s
10677}
10678
10679// SetIntentId sets the IntentId field's value.
10680func (s *CreateSlotInput) SetIntentId(v string) *CreateSlotInput {
10681	s.IntentId = &v
10682	return s
10683}
10684
10685// SetLocaleId sets the LocaleId field's value.
10686func (s *CreateSlotInput) SetLocaleId(v string) *CreateSlotInput {
10687	s.LocaleId = &v
10688	return s
10689}
10690
10691// SetMultipleValuesSetting sets the MultipleValuesSetting field's value.
10692func (s *CreateSlotInput) SetMultipleValuesSetting(v *MultipleValuesSetting) *CreateSlotInput {
10693	s.MultipleValuesSetting = v
10694	return s
10695}
10696
10697// SetObfuscationSetting sets the ObfuscationSetting field's value.
10698func (s *CreateSlotInput) SetObfuscationSetting(v *ObfuscationSetting) *CreateSlotInput {
10699	s.ObfuscationSetting = v
10700	return s
10701}
10702
10703// SetSlotName sets the SlotName field's value.
10704func (s *CreateSlotInput) SetSlotName(v string) *CreateSlotInput {
10705	s.SlotName = &v
10706	return s
10707}
10708
10709// SetSlotTypeId sets the SlotTypeId field's value.
10710func (s *CreateSlotInput) SetSlotTypeId(v string) *CreateSlotInput {
10711	s.SlotTypeId = &v
10712	return s
10713}
10714
10715// SetValueElicitationSetting sets the ValueElicitationSetting field's value.
10716func (s *CreateSlotInput) SetValueElicitationSetting(v *SlotValueElicitationSetting) *CreateSlotInput {
10717	s.ValueElicitationSetting = v
10718	return s
10719}
10720
10721type CreateSlotOutput struct {
10722	_ struct{} `type:"structure"`
10723
10724	// The unique identifier of the bot associated with the slot.
10725	BotId *string `locationName:"botId" min:"10" type:"string"`
10726
10727	// The version of the bot associated with the slot.
10728	BotVersion *string `locationName:"botVersion" min:"5" type:"string"`
10729
10730	// The timestamp of the date and time that the slot was created.
10731	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
10732
10733	// The description associated with the slot.
10734	Description *string `locationName:"description" type:"string"`
10735
10736	// The unique identifier of the intent associated with the slot.
10737	IntentId *string `locationName:"intentId" min:"10" type:"string"`
10738
10739	// The language and local specified for the slot.
10740	LocaleId *string `locationName:"localeId" type:"string"`
10741
10742	// Indicates whether the slot returns multiple values in one response.
10743	MultipleValuesSetting *MultipleValuesSetting `locationName:"multipleValuesSetting" type:"structure"`
10744
10745	// Indicates whether the slot is configured to obfuscate values in Amazon CloudWatch
10746	// logs.
10747	ObfuscationSetting *ObfuscationSetting `locationName:"obfuscationSetting" type:"structure"`
10748
10749	// The unique identifier associated with the slot. Use this to identify the
10750	// slot when you update or delete it.
10751	SlotId *string `locationName:"slotId" min:"10" type:"string"`
10752
10753	// The name specified for the slot.
10754	SlotName *string `locationName:"slotName" min:"1" type:"string"`
10755
10756	// The unique identifier of the slot type associated with this slot.
10757	SlotTypeId *string `locationName:"slotTypeId" min:"1" type:"string"`
10758
10759	// The value elicitation settings specified for the slot.
10760	ValueElicitationSetting *SlotValueElicitationSetting `locationName:"valueElicitationSetting" type:"structure"`
10761}
10762
10763// String returns the string representation.
10764//
10765// API parameter values that are decorated as "sensitive" in the API will not
10766// be included in the string output. The member name will be present, but the
10767// value will be replaced with "sensitive".
10768func (s CreateSlotOutput) String() string {
10769	return awsutil.Prettify(s)
10770}
10771
10772// GoString returns the string representation.
10773//
10774// API parameter values that are decorated as "sensitive" in the API will not
10775// be included in the string output. The member name will be present, but the
10776// value will be replaced with "sensitive".
10777func (s CreateSlotOutput) GoString() string {
10778	return s.String()
10779}
10780
10781// SetBotId sets the BotId field's value.
10782func (s *CreateSlotOutput) SetBotId(v string) *CreateSlotOutput {
10783	s.BotId = &v
10784	return s
10785}
10786
10787// SetBotVersion sets the BotVersion field's value.
10788func (s *CreateSlotOutput) SetBotVersion(v string) *CreateSlotOutput {
10789	s.BotVersion = &v
10790	return s
10791}
10792
10793// SetCreationDateTime sets the CreationDateTime field's value.
10794func (s *CreateSlotOutput) SetCreationDateTime(v time.Time) *CreateSlotOutput {
10795	s.CreationDateTime = &v
10796	return s
10797}
10798
10799// SetDescription sets the Description field's value.
10800func (s *CreateSlotOutput) SetDescription(v string) *CreateSlotOutput {
10801	s.Description = &v
10802	return s
10803}
10804
10805// SetIntentId sets the IntentId field's value.
10806func (s *CreateSlotOutput) SetIntentId(v string) *CreateSlotOutput {
10807	s.IntentId = &v
10808	return s
10809}
10810
10811// SetLocaleId sets the LocaleId field's value.
10812func (s *CreateSlotOutput) SetLocaleId(v string) *CreateSlotOutput {
10813	s.LocaleId = &v
10814	return s
10815}
10816
10817// SetMultipleValuesSetting sets the MultipleValuesSetting field's value.
10818func (s *CreateSlotOutput) SetMultipleValuesSetting(v *MultipleValuesSetting) *CreateSlotOutput {
10819	s.MultipleValuesSetting = v
10820	return s
10821}
10822
10823// SetObfuscationSetting sets the ObfuscationSetting field's value.
10824func (s *CreateSlotOutput) SetObfuscationSetting(v *ObfuscationSetting) *CreateSlotOutput {
10825	s.ObfuscationSetting = v
10826	return s
10827}
10828
10829// SetSlotId sets the SlotId field's value.
10830func (s *CreateSlotOutput) SetSlotId(v string) *CreateSlotOutput {
10831	s.SlotId = &v
10832	return s
10833}
10834
10835// SetSlotName sets the SlotName field's value.
10836func (s *CreateSlotOutput) SetSlotName(v string) *CreateSlotOutput {
10837	s.SlotName = &v
10838	return s
10839}
10840
10841// SetSlotTypeId sets the SlotTypeId field's value.
10842func (s *CreateSlotOutput) SetSlotTypeId(v string) *CreateSlotOutput {
10843	s.SlotTypeId = &v
10844	return s
10845}
10846
10847// SetValueElicitationSetting sets the ValueElicitationSetting field's value.
10848func (s *CreateSlotOutput) SetValueElicitationSetting(v *SlotValueElicitationSetting) *CreateSlotOutput {
10849	s.ValueElicitationSetting = v
10850	return s
10851}
10852
10853type CreateSlotTypeInput struct {
10854	_ struct{} `type:"structure"`
10855
10856	// The identifier of the bot associated with this slot type.
10857	//
10858	// BotId is a required field
10859	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
10860
10861	// The identifier of the bot version associated with this slot type.
10862	//
10863	// BotVersion is a required field
10864	BotVersion *string `location:"uri" locationName:"botVersion" min:"5" type:"string" required:"true"`
10865
10866	// A description of the slot type. Use the description to help identify the
10867	// slot type in lists.
10868	Description *string `locationName:"description" type:"string"`
10869
10870	// The identifier of the language and locale that the slot type will be used
10871	// in. The string must match one of the supported locales. All of the bots,
10872	// intents, and slots used by the slot type must have the same locale. For more
10873	// information, see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
10874	//
10875	// LocaleId is a required field
10876	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
10877
10878	// The built-in slot type used as a parent of this slot type. When you define
10879	// a parent slot type, the new slot type has the configuration of the parent
10880	// slot type.
10881	//
10882	// Only AMAZON.AlphaNumeric is supported.
10883	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" type:"string"`
10884
10885	// The name for the slot. A slot type name must be unique within the account.
10886	//
10887	// SlotTypeName is a required field
10888	SlotTypeName *string `locationName:"slotTypeName" min:"1" type:"string" required:"true"`
10889
10890	// A list of SlotTypeValue objects that defines the values that the slot type
10891	// can take. Each value can have a list of synonyms, additional values that
10892	// help train the machine learning model about the values that it resolves for
10893	// a slot.
10894	SlotTypeValues []*SlotTypeValue `locationName:"slotTypeValues" min:"1" type:"list"`
10895
10896	// Determines the strategy that Amazon Lex uses to select a value from the list
10897	// of possible values. The field can be set to one of the following values:
10898	//
10899	//    * OriginalValue - Returns the value entered by the user, if the user value
10900	//    is similar to the slot value.
10901	//
10902	//    * TopResolution - If there is a resolution list for the slot, return the
10903	//    first value in the resolution list. If there is no resolution list, return
10904	//    null.
10905	//
10906	// If you don't specify the valueSelectionSetting parameter, the default is
10907	// OriginalValue.
10908	//
10909	// ValueSelectionSetting is a required field
10910	ValueSelectionSetting *SlotValueSelectionSetting `locationName:"valueSelectionSetting" type:"structure" required:"true"`
10911}
10912
10913// String returns the string representation.
10914//
10915// API parameter values that are decorated as "sensitive" in the API will not
10916// be included in the string output. The member name will be present, but the
10917// value will be replaced with "sensitive".
10918func (s CreateSlotTypeInput) String() string {
10919	return awsutil.Prettify(s)
10920}
10921
10922// GoString returns the string representation.
10923//
10924// API parameter values that are decorated as "sensitive" in the API will not
10925// be included in the string output. The member name will be present, but the
10926// value will be replaced with "sensitive".
10927func (s CreateSlotTypeInput) GoString() string {
10928	return s.String()
10929}
10930
10931// Validate inspects the fields of the type to determine if they are valid.
10932func (s *CreateSlotTypeInput) Validate() error {
10933	invalidParams := request.ErrInvalidParams{Context: "CreateSlotTypeInput"}
10934	if s.BotId == nil {
10935		invalidParams.Add(request.NewErrParamRequired("BotId"))
10936	}
10937	if s.BotId != nil && len(*s.BotId) < 10 {
10938		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
10939	}
10940	if s.BotVersion == nil {
10941		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
10942	}
10943	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
10944		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
10945	}
10946	if s.LocaleId == nil {
10947		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
10948	}
10949	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
10950		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
10951	}
10952	if s.SlotTypeName == nil {
10953		invalidParams.Add(request.NewErrParamRequired("SlotTypeName"))
10954	}
10955	if s.SlotTypeName != nil && len(*s.SlotTypeName) < 1 {
10956		invalidParams.Add(request.NewErrParamMinLen("SlotTypeName", 1))
10957	}
10958	if s.SlotTypeValues != nil && len(s.SlotTypeValues) < 1 {
10959		invalidParams.Add(request.NewErrParamMinLen("SlotTypeValues", 1))
10960	}
10961	if s.ValueSelectionSetting == nil {
10962		invalidParams.Add(request.NewErrParamRequired("ValueSelectionSetting"))
10963	}
10964	if s.SlotTypeValues != nil {
10965		for i, v := range s.SlotTypeValues {
10966			if v == nil {
10967				continue
10968			}
10969			if err := v.Validate(); err != nil {
10970				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SlotTypeValues", i), err.(request.ErrInvalidParams))
10971			}
10972		}
10973	}
10974	if s.ValueSelectionSetting != nil {
10975		if err := s.ValueSelectionSetting.Validate(); err != nil {
10976			invalidParams.AddNested("ValueSelectionSetting", err.(request.ErrInvalidParams))
10977		}
10978	}
10979
10980	if invalidParams.Len() > 0 {
10981		return invalidParams
10982	}
10983	return nil
10984}
10985
10986// SetBotId sets the BotId field's value.
10987func (s *CreateSlotTypeInput) SetBotId(v string) *CreateSlotTypeInput {
10988	s.BotId = &v
10989	return s
10990}
10991
10992// SetBotVersion sets the BotVersion field's value.
10993func (s *CreateSlotTypeInput) SetBotVersion(v string) *CreateSlotTypeInput {
10994	s.BotVersion = &v
10995	return s
10996}
10997
10998// SetDescription sets the Description field's value.
10999func (s *CreateSlotTypeInput) SetDescription(v string) *CreateSlotTypeInput {
11000	s.Description = &v
11001	return s
11002}
11003
11004// SetLocaleId sets the LocaleId field's value.
11005func (s *CreateSlotTypeInput) SetLocaleId(v string) *CreateSlotTypeInput {
11006	s.LocaleId = &v
11007	return s
11008}
11009
11010// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
11011func (s *CreateSlotTypeInput) SetParentSlotTypeSignature(v string) *CreateSlotTypeInput {
11012	s.ParentSlotTypeSignature = &v
11013	return s
11014}
11015
11016// SetSlotTypeName sets the SlotTypeName field's value.
11017func (s *CreateSlotTypeInput) SetSlotTypeName(v string) *CreateSlotTypeInput {
11018	s.SlotTypeName = &v
11019	return s
11020}
11021
11022// SetSlotTypeValues sets the SlotTypeValues field's value.
11023func (s *CreateSlotTypeInput) SetSlotTypeValues(v []*SlotTypeValue) *CreateSlotTypeInput {
11024	s.SlotTypeValues = v
11025	return s
11026}
11027
11028// SetValueSelectionSetting sets the ValueSelectionSetting field's value.
11029func (s *CreateSlotTypeInput) SetValueSelectionSetting(v *SlotValueSelectionSetting) *CreateSlotTypeInput {
11030	s.ValueSelectionSetting = v
11031	return s
11032}
11033
11034type CreateSlotTypeOutput struct {
11035	_ struct{} `type:"structure"`
11036
11037	// The identifier for the bot associated with the slot type.
11038	BotId *string `locationName:"botId" min:"10" type:"string"`
11039
11040	// The version of the bot associated with the slot type.
11041	BotVersion *string `locationName:"botVersion" min:"5" type:"string"`
11042
11043	// A timestamp of the date and time that the slot type was created.
11044	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
11045
11046	// The description specified for the slot type.
11047	Description *string `locationName:"description" type:"string"`
11048
11049	// The specified language and local specified for the slot type.
11050	LocaleId *string `locationName:"localeId" type:"string"`
11051
11052	// The signature of the base slot type specified for the slot type.
11053	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" type:"string"`
11054
11055	// The unique identifier assigned to the slot type. Use this to identify the
11056	// slot type in the UpdateSlotType and DeleteSlotType operations.
11057	SlotTypeId *string `locationName:"slotTypeId" min:"10" type:"string"`
11058
11059	// The name specified for the slot type.
11060	SlotTypeName *string `locationName:"slotTypeName" min:"1" type:"string"`
11061
11062	// The list of values that the slot type can assume.
11063	SlotTypeValues []*SlotTypeValue `locationName:"slotTypeValues" min:"1" type:"list"`
11064
11065	// The strategy that Amazon Lex uses to select a value from the list of possible
11066	// values.
11067	ValueSelectionSetting *SlotValueSelectionSetting `locationName:"valueSelectionSetting" type:"structure"`
11068}
11069
11070// String returns the string representation.
11071//
11072// API parameter values that are decorated as "sensitive" in the API will not
11073// be included in the string output. The member name will be present, but the
11074// value will be replaced with "sensitive".
11075func (s CreateSlotTypeOutput) String() string {
11076	return awsutil.Prettify(s)
11077}
11078
11079// GoString returns the string representation.
11080//
11081// API parameter values that are decorated as "sensitive" in the API will not
11082// be included in the string output. The member name will be present, but the
11083// value will be replaced with "sensitive".
11084func (s CreateSlotTypeOutput) GoString() string {
11085	return s.String()
11086}
11087
11088// SetBotId sets the BotId field's value.
11089func (s *CreateSlotTypeOutput) SetBotId(v string) *CreateSlotTypeOutput {
11090	s.BotId = &v
11091	return s
11092}
11093
11094// SetBotVersion sets the BotVersion field's value.
11095func (s *CreateSlotTypeOutput) SetBotVersion(v string) *CreateSlotTypeOutput {
11096	s.BotVersion = &v
11097	return s
11098}
11099
11100// SetCreationDateTime sets the CreationDateTime field's value.
11101func (s *CreateSlotTypeOutput) SetCreationDateTime(v time.Time) *CreateSlotTypeOutput {
11102	s.CreationDateTime = &v
11103	return s
11104}
11105
11106// SetDescription sets the Description field's value.
11107func (s *CreateSlotTypeOutput) SetDescription(v string) *CreateSlotTypeOutput {
11108	s.Description = &v
11109	return s
11110}
11111
11112// SetLocaleId sets the LocaleId field's value.
11113func (s *CreateSlotTypeOutput) SetLocaleId(v string) *CreateSlotTypeOutput {
11114	s.LocaleId = &v
11115	return s
11116}
11117
11118// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
11119func (s *CreateSlotTypeOutput) SetParentSlotTypeSignature(v string) *CreateSlotTypeOutput {
11120	s.ParentSlotTypeSignature = &v
11121	return s
11122}
11123
11124// SetSlotTypeId sets the SlotTypeId field's value.
11125func (s *CreateSlotTypeOutput) SetSlotTypeId(v string) *CreateSlotTypeOutput {
11126	s.SlotTypeId = &v
11127	return s
11128}
11129
11130// SetSlotTypeName sets the SlotTypeName field's value.
11131func (s *CreateSlotTypeOutput) SetSlotTypeName(v string) *CreateSlotTypeOutput {
11132	s.SlotTypeName = &v
11133	return s
11134}
11135
11136// SetSlotTypeValues sets the SlotTypeValues field's value.
11137func (s *CreateSlotTypeOutput) SetSlotTypeValues(v []*SlotTypeValue) *CreateSlotTypeOutput {
11138	s.SlotTypeValues = v
11139	return s
11140}
11141
11142// SetValueSelectionSetting sets the ValueSelectionSetting field's value.
11143func (s *CreateSlotTypeOutput) SetValueSelectionSetting(v *SlotValueSelectionSetting) *CreateSlotTypeOutput {
11144	s.ValueSelectionSetting = v
11145	return s
11146}
11147
11148type CreateUploadUrlInput struct {
11149	_ struct{} `type:"structure" nopayload:"true"`
11150}
11151
11152// String returns the string representation.
11153//
11154// API parameter values that are decorated as "sensitive" in the API will not
11155// be included in the string output. The member name will be present, but the
11156// value will be replaced with "sensitive".
11157func (s CreateUploadUrlInput) String() string {
11158	return awsutil.Prettify(s)
11159}
11160
11161// GoString returns the string representation.
11162//
11163// API parameter values that are decorated as "sensitive" in the API will not
11164// be included in the string output. The member name will be present, but the
11165// value will be replaced with "sensitive".
11166func (s CreateUploadUrlInput) GoString() string {
11167	return s.String()
11168}
11169
11170type CreateUploadUrlOutput struct {
11171	_ struct{} `type:"structure"`
11172
11173	// An identifier for a unique import job. Use it when you call the operation.
11174	ImportId *string `locationName:"importId" min:"10" type:"string"`
11175
11176	// A pre-signed S3 write URL. Upload the zip archive file that contains the
11177	// definition of your bot or bot locale.
11178	UploadUrl *string `locationName:"uploadUrl" min:"1" type:"string"`
11179}
11180
11181// String returns the string representation.
11182//
11183// API parameter values that are decorated as "sensitive" in the API will not
11184// be included in the string output. The member name will be present, but the
11185// value will be replaced with "sensitive".
11186func (s CreateUploadUrlOutput) String() string {
11187	return awsutil.Prettify(s)
11188}
11189
11190// GoString returns the string representation.
11191//
11192// API parameter values that are decorated as "sensitive" in the API will not
11193// be included in the string output. The member name will be present, but the
11194// value will be replaced with "sensitive".
11195func (s CreateUploadUrlOutput) GoString() string {
11196	return s.String()
11197}
11198
11199// SetImportId sets the ImportId field's value.
11200func (s *CreateUploadUrlOutput) SetImportId(v string) *CreateUploadUrlOutput {
11201	s.ImportId = &v
11202	return s
11203}
11204
11205// SetUploadUrl sets the UploadUrl field's value.
11206func (s *CreateUploadUrlOutput) SetUploadUrl(v string) *CreateUploadUrlOutput {
11207	s.UploadUrl = &v
11208	return s
11209}
11210
11211// A custom response string that Amazon Lex sends to your application. You define
11212// the content and structure the string.
11213type CustomPayload struct {
11214	_ struct{} `type:"structure"`
11215
11216	// The string that is sent to your application.
11217	//
11218	// Value is a required field
11219	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
11220}
11221
11222// String returns the string representation.
11223//
11224// API parameter values that are decorated as "sensitive" in the API will not
11225// be included in the string output. The member name will be present, but the
11226// value will be replaced with "sensitive".
11227func (s CustomPayload) String() string {
11228	return awsutil.Prettify(s)
11229}
11230
11231// GoString returns the string representation.
11232//
11233// API parameter values that are decorated as "sensitive" in the API will not
11234// be included in the string output. The member name will be present, but the
11235// value will be replaced with "sensitive".
11236func (s CustomPayload) GoString() string {
11237	return s.String()
11238}
11239
11240// Validate inspects the fields of the type to determine if they are valid.
11241func (s *CustomPayload) Validate() error {
11242	invalidParams := request.ErrInvalidParams{Context: "CustomPayload"}
11243	if s.Value == nil {
11244		invalidParams.Add(request.NewErrParamRequired("Value"))
11245	}
11246	if s.Value != nil && len(*s.Value) < 1 {
11247		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
11248	}
11249
11250	if invalidParams.Len() > 0 {
11251		return invalidParams
11252	}
11253	return nil
11254}
11255
11256// SetValue sets the Value field's value.
11257func (s *CustomPayload) SetValue(v string) *CustomPayload {
11258	s.Value = &v
11259	return s
11260}
11261
11262// By default, data stored by Amazon Lex is encrypted. The DataPrivacy structure
11263// provides settings that determine how Amazon Lex handles special cases of
11264// securing the data for your bot.
11265type DataPrivacy struct {
11266	_ struct{} `type:"structure"`
11267
11268	// For each Amazon Lex bot created with the Amazon Lex Model Building Service,
11269	// you must specify whether your use of Amazon Lex is related to a website,
11270	// program, or other application that is directed or targeted, in whole or in
11271	// part, to children under age 13 and subject to the Children's Online Privacy
11272	// Protection Act (COPPA) by specifying true or false in the childDirected field.
11273	// By specifying true in the childDirected field, you confirm that your use
11274	// of Amazon Lex is related to a website, program, or other application that
11275	// is directed or targeted, in whole or in part, to children under age 13 and
11276	// subject to COPPA. By specifying false in the childDirected field, you confirm
11277	// that your use of Amazon Lex is not related to a website, program, or other
11278	// application that is directed or targeted, in whole or in part, to children
11279	// under age 13 and subject to COPPA. You may not specify a default value for
11280	// the childDirected field that does not accurately reflect whether your use
11281	// of Amazon Lex is related to a website, program, or other application that
11282	// is directed or targeted, in whole or in part, to children under age 13 and
11283	// subject to COPPA. If your use of Amazon Lex relates to a website, program,
11284	// or other application that is directed in whole or in part, to children under
11285	// age 13, you must obtain any required verifiable parental consent under COPPA.
11286	// For information regarding the use of Amazon Lex in connection with websites,
11287	// programs, or other applications that are directed or targeted, in whole or
11288	// in part, to children under age 13, see the Amazon Lex FAQ (https://aws.amazon.com/lex/faqs#data-security).
11289	//
11290	// ChildDirected is a required field
11291	ChildDirected *bool `locationName:"childDirected" type:"boolean" required:"true"`
11292}
11293
11294// String returns the string representation.
11295//
11296// API parameter values that are decorated as "sensitive" in the API will not
11297// be included in the string output. The member name will be present, but the
11298// value will be replaced with "sensitive".
11299func (s DataPrivacy) String() string {
11300	return awsutil.Prettify(s)
11301}
11302
11303// GoString returns the string representation.
11304//
11305// API parameter values that are decorated as "sensitive" in the API will not
11306// be included in the string output. The member name will be present, but the
11307// value will be replaced with "sensitive".
11308func (s DataPrivacy) GoString() string {
11309	return s.String()
11310}
11311
11312// Validate inspects the fields of the type to determine if they are valid.
11313func (s *DataPrivacy) Validate() error {
11314	invalidParams := request.ErrInvalidParams{Context: "DataPrivacy"}
11315	if s.ChildDirected == nil {
11316		invalidParams.Add(request.NewErrParamRequired("ChildDirected"))
11317	}
11318
11319	if invalidParams.Len() > 0 {
11320		return invalidParams
11321	}
11322	return nil
11323}
11324
11325// SetChildDirected sets the ChildDirected field's value.
11326func (s *DataPrivacy) SetChildDirected(v bool) *DataPrivacy {
11327	s.ChildDirected = &v
11328	return s
11329}
11330
11331type DeleteBotAliasInput struct {
11332	_ struct{} `type:"structure" nopayload:"true"`
11333
11334	// The unique identifier of the bot alias to delete.
11335	//
11336	// BotAliasId is a required field
11337	BotAliasId *string `location:"uri" locationName:"botAliasId" min:"10" type:"string" required:"true"`
11338
11339	// The unique identifier of the bot associated with the alias to delete.
11340	//
11341	// BotId is a required field
11342	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
11343
11344	// When this parameter is true, Amazon Lex doesn't check to see if any other
11345	// resource is using the alias before it is deleted.
11346	SkipResourceInUseCheck *bool `location:"querystring" locationName:"skipResourceInUseCheck" type:"boolean"`
11347}
11348
11349// String returns the string representation.
11350//
11351// API parameter values that are decorated as "sensitive" in the API will not
11352// be included in the string output. The member name will be present, but the
11353// value will be replaced with "sensitive".
11354func (s DeleteBotAliasInput) String() string {
11355	return awsutil.Prettify(s)
11356}
11357
11358// GoString returns the string representation.
11359//
11360// API parameter values that are decorated as "sensitive" in the API will not
11361// be included in the string output. The member name will be present, but the
11362// value will be replaced with "sensitive".
11363func (s DeleteBotAliasInput) GoString() string {
11364	return s.String()
11365}
11366
11367// Validate inspects the fields of the type to determine if they are valid.
11368func (s *DeleteBotAliasInput) Validate() error {
11369	invalidParams := request.ErrInvalidParams{Context: "DeleteBotAliasInput"}
11370	if s.BotAliasId == nil {
11371		invalidParams.Add(request.NewErrParamRequired("BotAliasId"))
11372	}
11373	if s.BotAliasId != nil && len(*s.BotAliasId) < 10 {
11374		invalidParams.Add(request.NewErrParamMinLen("BotAliasId", 10))
11375	}
11376	if s.BotId == nil {
11377		invalidParams.Add(request.NewErrParamRequired("BotId"))
11378	}
11379	if s.BotId != nil && len(*s.BotId) < 10 {
11380		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
11381	}
11382
11383	if invalidParams.Len() > 0 {
11384		return invalidParams
11385	}
11386	return nil
11387}
11388
11389// SetBotAliasId sets the BotAliasId field's value.
11390func (s *DeleteBotAliasInput) SetBotAliasId(v string) *DeleteBotAliasInput {
11391	s.BotAliasId = &v
11392	return s
11393}
11394
11395// SetBotId sets the BotId field's value.
11396func (s *DeleteBotAliasInput) SetBotId(v string) *DeleteBotAliasInput {
11397	s.BotId = &v
11398	return s
11399}
11400
11401// SetSkipResourceInUseCheck sets the SkipResourceInUseCheck field's value.
11402func (s *DeleteBotAliasInput) SetSkipResourceInUseCheck(v bool) *DeleteBotAliasInput {
11403	s.SkipResourceInUseCheck = &v
11404	return s
11405}
11406
11407type DeleteBotAliasOutput struct {
11408	_ struct{} `type:"structure"`
11409
11410	// The unique identifier of the bot alias to delete.
11411	BotAliasId *string `locationName:"botAliasId" min:"10" type:"string"`
11412
11413	// The current status of the alias. The status is Deleting while the alias is
11414	// in the process of being deleted. Once the alias is deleted, it will no longer
11415	// appear in the list of aliases returned by the ListBotAliases operation.
11416	BotAliasStatus *string `locationName:"botAliasStatus" type:"string" enum:"BotAliasStatus"`
11417
11418	// The unique identifier of the bot that contains the alias to delete.
11419	BotId *string `locationName:"botId" min:"10" type:"string"`
11420}
11421
11422// String returns the string representation.
11423//
11424// API parameter values that are decorated as "sensitive" in the API will not
11425// be included in the string output. The member name will be present, but the
11426// value will be replaced with "sensitive".
11427func (s DeleteBotAliasOutput) String() string {
11428	return awsutil.Prettify(s)
11429}
11430
11431// GoString returns the string representation.
11432//
11433// API parameter values that are decorated as "sensitive" in the API will not
11434// be included in the string output. The member name will be present, but the
11435// value will be replaced with "sensitive".
11436func (s DeleteBotAliasOutput) GoString() string {
11437	return s.String()
11438}
11439
11440// SetBotAliasId sets the BotAliasId field's value.
11441func (s *DeleteBotAliasOutput) SetBotAliasId(v string) *DeleteBotAliasOutput {
11442	s.BotAliasId = &v
11443	return s
11444}
11445
11446// SetBotAliasStatus sets the BotAliasStatus field's value.
11447func (s *DeleteBotAliasOutput) SetBotAliasStatus(v string) *DeleteBotAliasOutput {
11448	s.BotAliasStatus = &v
11449	return s
11450}
11451
11452// SetBotId sets the BotId field's value.
11453func (s *DeleteBotAliasOutput) SetBotId(v string) *DeleteBotAliasOutput {
11454	s.BotId = &v
11455	return s
11456}
11457
11458type DeleteBotInput struct {
11459	_ struct{} `type:"structure" nopayload:"true"`
11460
11461	// The identifier of the bot to delete.
11462	//
11463	// BotId is a required field
11464	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
11465
11466	// When true, Amazon Lex doesn't check to see if another resource, such as an
11467	// alias, is using the bot before it is deleted.
11468	SkipResourceInUseCheck *bool `location:"querystring" locationName:"skipResourceInUseCheck" type:"boolean"`
11469}
11470
11471// String returns the string representation.
11472//
11473// API parameter values that are decorated as "sensitive" in the API will not
11474// be included in the string output. The member name will be present, but the
11475// value will be replaced with "sensitive".
11476func (s DeleteBotInput) String() string {
11477	return awsutil.Prettify(s)
11478}
11479
11480// GoString returns the string representation.
11481//
11482// API parameter values that are decorated as "sensitive" in the API will not
11483// be included in the string output. The member name will be present, but the
11484// value will be replaced with "sensitive".
11485func (s DeleteBotInput) GoString() string {
11486	return s.String()
11487}
11488
11489// Validate inspects the fields of the type to determine if they are valid.
11490func (s *DeleteBotInput) Validate() error {
11491	invalidParams := request.ErrInvalidParams{Context: "DeleteBotInput"}
11492	if s.BotId == nil {
11493		invalidParams.Add(request.NewErrParamRequired("BotId"))
11494	}
11495	if s.BotId != nil && len(*s.BotId) < 10 {
11496		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
11497	}
11498
11499	if invalidParams.Len() > 0 {
11500		return invalidParams
11501	}
11502	return nil
11503}
11504
11505// SetBotId sets the BotId field's value.
11506func (s *DeleteBotInput) SetBotId(v string) *DeleteBotInput {
11507	s.BotId = &v
11508	return s
11509}
11510
11511// SetSkipResourceInUseCheck sets the SkipResourceInUseCheck field's value.
11512func (s *DeleteBotInput) SetSkipResourceInUseCheck(v bool) *DeleteBotInput {
11513	s.SkipResourceInUseCheck = &v
11514	return s
11515}
11516
11517type DeleteBotLocaleInput struct {
11518	_ struct{} `type:"structure" nopayload:"true"`
11519
11520	// The unique identifier of the bot that contains the locale.
11521	//
11522	// BotId is a required field
11523	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
11524
11525	// The version of the bot that contains the locale.
11526	//
11527	// BotVersion is a required field
11528	BotVersion *string `location:"uri" locationName:"botVersion" min:"5" type:"string" required:"true"`
11529
11530	// The identifier of the language and locale that will be deleted. The string
11531	// must match one of the supported locales. For more information, see Supported
11532	// languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
11533	//
11534	// LocaleId is a required field
11535	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
11536}
11537
11538// String returns the string representation.
11539//
11540// API parameter values that are decorated as "sensitive" in the API will not
11541// be included in the string output. The member name will be present, but the
11542// value will be replaced with "sensitive".
11543func (s DeleteBotLocaleInput) String() string {
11544	return awsutil.Prettify(s)
11545}
11546
11547// GoString returns the string representation.
11548//
11549// API parameter values that are decorated as "sensitive" in the API will not
11550// be included in the string output. The member name will be present, but the
11551// value will be replaced with "sensitive".
11552func (s DeleteBotLocaleInput) GoString() string {
11553	return s.String()
11554}
11555
11556// Validate inspects the fields of the type to determine if they are valid.
11557func (s *DeleteBotLocaleInput) Validate() error {
11558	invalidParams := request.ErrInvalidParams{Context: "DeleteBotLocaleInput"}
11559	if s.BotId == nil {
11560		invalidParams.Add(request.NewErrParamRequired("BotId"))
11561	}
11562	if s.BotId != nil && len(*s.BotId) < 10 {
11563		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
11564	}
11565	if s.BotVersion == nil {
11566		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
11567	}
11568	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
11569		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
11570	}
11571	if s.LocaleId == nil {
11572		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
11573	}
11574	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
11575		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
11576	}
11577
11578	if invalidParams.Len() > 0 {
11579		return invalidParams
11580	}
11581	return nil
11582}
11583
11584// SetBotId sets the BotId field's value.
11585func (s *DeleteBotLocaleInput) SetBotId(v string) *DeleteBotLocaleInput {
11586	s.BotId = &v
11587	return s
11588}
11589
11590// SetBotVersion sets the BotVersion field's value.
11591func (s *DeleteBotLocaleInput) SetBotVersion(v string) *DeleteBotLocaleInput {
11592	s.BotVersion = &v
11593	return s
11594}
11595
11596// SetLocaleId sets the LocaleId field's value.
11597func (s *DeleteBotLocaleInput) SetLocaleId(v string) *DeleteBotLocaleInput {
11598	s.LocaleId = &v
11599	return s
11600}
11601
11602type DeleteBotLocaleOutput struct {
11603	_ struct{} `type:"structure"`
11604
11605	// The identifier of the bot that contained the deleted locale.
11606	BotId *string `locationName:"botId" min:"10" type:"string"`
11607
11608	// The status of deleting the bot locale. The locale first enters the Deleting
11609	// status. Once the locale is deleted it no longer appears in the list of locales
11610	// for the bot.
11611	BotLocaleStatus *string `locationName:"botLocaleStatus" type:"string" enum:"BotLocaleStatus"`
11612
11613	// The version of the bot that contained the deleted locale.
11614	BotVersion *string `locationName:"botVersion" min:"5" type:"string"`
11615
11616	// The language and locale of the deleted locale.
11617	LocaleId *string `locationName:"localeId" type:"string"`
11618}
11619
11620// String returns the string representation.
11621//
11622// API parameter values that are decorated as "sensitive" in the API will not
11623// be included in the string output. The member name will be present, but the
11624// value will be replaced with "sensitive".
11625func (s DeleteBotLocaleOutput) String() string {
11626	return awsutil.Prettify(s)
11627}
11628
11629// GoString returns the string representation.
11630//
11631// API parameter values that are decorated as "sensitive" in the API will not
11632// be included in the string output. The member name will be present, but the
11633// value will be replaced with "sensitive".
11634func (s DeleteBotLocaleOutput) GoString() string {
11635	return s.String()
11636}
11637
11638// SetBotId sets the BotId field's value.
11639func (s *DeleteBotLocaleOutput) SetBotId(v string) *DeleteBotLocaleOutput {
11640	s.BotId = &v
11641	return s
11642}
11643
11644// SetBotLocaleStatus sets the BotLocaleStatus field's value.
11645func (s *DeleteBotLocaleOutput) SetBotLocaleStatus(v string) *DeleteBotLocaleOutput {
11646	s.BotLocaleStatus = &v
11647	return s
11648}
11649
11650// SetBotVersion sets the BotVersion field's value.
11651func (s *DeleteBotLocaleOutput) SetBotVersion(v string) *DeleteBotLocaleOutput {
11652	s.BotVersion = &v
11653	return s
11654}
11655
11656// SetLocaleId sets the LocaleId field's value.
11657func (s *DeleteBotLocaleOutput) SetLocaleId(v string) *DeleteBotLocaleOutput {
11658	s.LocaleId = &v
11659	return s
11660}
11661
11662type DeleteBotOutput struct {
11663	_ struct{} `type:"structure"`
11664
11665	// The unique identifier of the bot that Amazon Lex is deleting.
11666	BotId *string `locationName:"botId" min:"10" type:"string"`
11667
11668	// The current status of the bot. The status is Deleting while the bot and its
11669	// associated resources are being deleted.
11670	BotStatus *string `locationName:"botStatus" type:"string" enum:"BotStatus"`
11671}
11672
11673// String returns the string representation.
11674//
11675// API parameter values that are decorated as "sensitive" in the API will not
11676// be included in the string output. The member name will be present, but the
11677// value will be replaced with "sensitive".
11678func (s DeleteBotOutput) String() string {
11679	return awsutil.Prettify(s)
11680}
11681
11682// GoString returns the string representation.
11683//
11684// API parameter values that are decorated as "sensitive" in the API will not
11685// be included in the string output. The member name will be present, but the
11686// value will be replaced with "sensitive".
11687func (s DeleteBotOutput) GoString() string {
11688	return s.String()
11689}
11690
11691// SetBotId sets the BotId field's value.
11692func (s *DeleteBotOutput) SetBotId(v string) *DeleteBotOutput {
11693	s.BotId = &v
11694	return s
11695}
11696
11697// SetBotStatus sets the BotStatus field's value.
11698func (s *DeleteBotOutput) SetBotStatus(v string) *DeleteBotOutput {
11699	s.BotStatus = &v
11700	return s
11701}
11702
11703type DeleteBotVersionInput struct {
11704	_ struct{} `type:"structure" nopayload:"true"`
11705
11706	// The identifier of the bot that contains the version.
11707	//
11708	// BotId is a required field
11709	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
11710
11711	// The version of the bot to delete.
11712	//
11713	// BotVersion is a required field
11714	BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"`
11715
11716	// By default, the DeleteBotVersion operations throws a ResourceInUseException
11717	// exception if you try to delete a bot version that has an alias pointing at
11718	// it. Set the skipResourceInUseCheck parameter to true to skip this check and
11719	// remove the version even if an alias points to it.
11720	SkipResourceInUseCheck *bool `location:"querystring" locationName:"skipResourceInUseCheck" type:"boolean"`
11721}
11722
11723// String returns the string representation.
11724//
11725// API parameter values that are decorated as "sensitive" in the API will not
11726// be included in the string output. The member name will be present, but the
11727// value will be replaced with "sensitive".
11728func (s DeleteBotVersionInput) String() string {
11729	return awsutil.Prettify(s)
11730}
11731
11732// GoString returns the string representation.
11733//
11734// API parameter values that are decorated as "sensitive" in the API will not
11735// be included in the string output. The member name will be present, but the
11736// value will be replaced with "sensitive".
11737func (s DeleteBotVersionInput) GoString() string {
11738	return s.String()
11739}
11740
11741// Validate inspects the fields of the type to determine if they are valid.
11742func (s *DeleteBotVersionInput) Validate() error {
11743	invalidParams := request.ErrInvalidParams{Context: "DeleteBotVersionInput"}
11744	if s.BotId == nil {
11745		invalidParams.Add(request.NewErrParamRequired("BotId"))
11746	}
11747	if s.BotId != nil && len(*s.BotId) < 10 {
11748		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
11749	}
11750	if s.BotVersion == nil {
11751		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
11752	}
11753	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
11754		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
11755	}
11756
11757	if invalidParams.Len() > 0 {
11758		return invalidParams
11759	}
11760	return nil
11761}
11762
11763// SetBotId sets the BotId field's value.
11764func (s *DeleteBotVersionInput) SetBotId(v string) *DeleteBotVersionInput {
11765	s.BotId = &v
11766	return s
11767}
11768
11769// SetBotVersion sets the BotVersion field's value.
11770func (s *DeleteBotVersionInput) SetBotVersion(v string) *DeleteBotVersionInput {
11771	s.BotVersion = &v
11772	return s
11773}
11774
11775// SetSkipResourceInUseCheck sets the SkipResourceInUseCheck field's value.
11776func (s *DeleteBotVersionInput) SetSkipResourceInUseCheck(v bool) *DeleteBotVersionInput {
11777	s.SkipResourceInUseCheck = &v
11778	return s
11779}
11780
11781type DeleteBotVersionOutput struct {
11782	_ struct{} `type:"structure"`
11783
11784	// The identifier of the bot that is being deleted.
11785	BotId *string `locationName:"botId" min:"10" type:"string"`
11786
11787	// The current status of the bot.
11788	BotStatus *string `locationName:"botStatus" type:"string" enum:"BotStatus"`
11789
11790	// The version of the bot that is being deleted.
11791	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
11792}
11793
11794// String returns the string representation.
11795//
11796// API parameter values that are decorated as "sensitive" in the API will not
11797// be included in the string output. The member name will be present, but the
11798// value will be replaced with "sensitive".
11799func (s DeleteBotVersionOutput) String() string {
11800	return awsutil.Prettify(s)
11801}
11802
11803// GoString returns the string representation.
11804//
11805// API parameter values that are decorated as "sensitive" in the API will not
11806// be included in the string output. The member name will be present, but the
11807// value will be replaced with "sensitive".
11808func (s DeleteBotVersionOutput) GoString() string {
11809	return s.String()
11810}
11811
11812// SetBotId sets the BotId field's value.
11813func (s *DeleteBotVersionOutput) SetBotId(v string) *DeleteBotVersionOutput {
11814	s.BotId = &v
11815	return s
11816}
11817
11818// SetBotStatus sets the BotStatus field's value.
11819func (s *DeleteBotVersionOutput) SetBotStatus(v string) *DeleteBotVersionOutput {
11820	s.BotStatus = &v
11821	return s
11822}
11823
11824// SetBotVersion sets the BotVersion field's value.
11825func (s *DeleteBotVersionOutput) SetBotVersion(v string) *DeleteBotVersionOutput {
11826	s.BotVersion = &v
11827	return s
11828}
11829
11830type DeleteExportInput struct {
11831	_ struct{} `type:"structure" nopayload:"true"`
11832
11833	// The unique identifier of the export to delete.
11834	//
11835	// ExportId is a required field
11836	ExportId *string `location:"uri" locationName:"exportId" min:"10" type:"string" required:"true"`
11837}
11838
11839// String returns the string representation.
11840//
11841// API parameter values that are decorated as "sensitive" in the API will not
11842// be included in the string output. The member name will be present, but the
11843// value will be replaced with "sensitive".
11844func (s DeleteExportInput) String() string {
11845	return awsutil.Prettify(s)
11846}
11847
11848// GoString returns the string representation.
11849//
11850// API parameter values that are decorated as "sensitive" in the API will not
11851// be included in the string output. The member name will be present, but the
11852// value will be replaced with "sensitive".
11853func (s DeleteExportInput) GoString() string {
11854	return s.String()
11855}
11856
11857// Validate inspects the fields of the type to determine if they are valid.
11858func (s *DeleteExportInput) Validate() error {
11859	invalidParams := request.ErrInvalidParams{Context: "DeleteExportInput"}
11860	if s.ExportId == nil {
11861		invalidParams.Add(request.NewErrParamRequired("ExportId"))
11862	}
11863	if s.ExportId != nil && len(*s.ExportId) < 10 {
11864		invalidParams.Add(request.NewErrParamMinLen("ExportId", 10))
11865	}
11866
11867	if invalidParams.Len() > 0 {
11868		return invalidParams
11869	}
11870	return nil
11871}
11872
11873// SetExportId sets the ExportId field's value.
11874func (s *DeleteExportInput) SetExportId(v string) *DeleteExportInput {
11875	s.ExportId = &v
11876	return s
11877}
11878
11879type DeleteExportOutput struct {
11880	_ struct{} `type:"structure"`
11881
11882	// The unique identifier of the deleted export.
11883	ExportId *string `locationName:"exportId" min:"10" type:"string"`
11884
11885	// The current status of the deletion. When the deletion is complete, the export
11886	// will no longer be returned by the operation and calls to the with the export
11887	// identifier will fail.
11888	ExportStatus *string `locationName:"exportStatus" type:"string" enum:"ExportStatus"`
11889}
11890
11891// String returns the string representation.
11892//
11893// API parameter values that are decorated as "sensitive" in the API will not
11894// be included in the string output. The member name will be present, but the
11895// value will be replaced with "sensitive".
11896func (s DeleteExportOutput) String() string {
11897	return awsutil.Prettify(s)
11898}
11899
11900// GoString returns the string representation.
11901//
11902// API parameter values that are decorated as "sensitive" in the API will not
11903// be included in the string output. The member name will be present, but the
11904// value will be replaced with "sensitive".
11905func (s DeleteExportOutput) GoString() string {
11906	return s.String()
11907}
11908
11909// SetExportId sets the ExportId field's value.
11910func (s *DeleteExportOutput) SetExportId(v string) *DeleteExportOutput {
11911	s.ExportId = &v
11912	return s
11913}
11914
11915// SetExportStatus sets the ExportStatus field's value.
11916func (s *DeleteExportOutput) SetExportStatus(v string) *DeleteExportOutput {
11917	s.ExportStatus = &v
11918	return s
11919}
11920
11921type DeleteImportInput struct {
11922	_ struct{} `type:"structure" nopayload:"true"`
11923
11924	// The unique identifier of the import to delete.
11925	//
11926	// ImportId is a required field
11927	ImportId *string `location:"uri" locationName:"importId" min:"10" type:"string" required:"true"`
11928}
11929
11930// String returns the string representation.
11931//
11932// API parameter values that are decorated as "sensitive" in the API will not
11933// be included in the string output. The member name will be present, but the
11934// value will be replaced with "sensitive".
11935func (s DeleteImportInput) String() string {
11936	return awsutil.Prettify(s)
11937}
11938
11939// GoString returns the string representation.
11940//
11941// API parameter values that are decorated as "sensitive" in the API will not
11942// be included in the string output. The member name will be present, but the
11943// value will be replaced with "sensitive".
11944func (s DeleteImportInput) GoString() string {
11945	return s.String()
11946}
11947
11948// Validate inspects the fields of the type to determine if they are valid.
11949func (s *DeleteImportInput) Validate() error {
11950	invalidParams := request.ErrInvalidParams{Context: "DeleteImportInput"}
11951	if s.ImportId == nil {
11952		invalidParams.Add(request.NewErrParamRequired("ImportId"))
11953	}
11954	if s.ImportId != nil && len(*s.ImportId) < 10 {
11955		invalidParams.Add(request.NewErrParamMinLen("ImportId", 10))
11956	}
11957
11958	if invalidParams.Len() > 0 {
11959		return invalidParams
11960	}
11961	return nil
11962}
11963
11964// SetImportId sets the ImportId field's value.
11965func (s *DeleteImportInput) SetImportId(v string) *DeleteImportInput {
11966	s.ImportId = &v
11967	return s
11968}
11969
11970type DeleteImportOutput struct {
11971	_ struct{} `type:"structure"`
11972
11973	// The unique identifier of the deleted import.
11974	ImportId *string `locationName:"importId" min:"10" type:"string"`
11975
11976	// The current status of the deletion. When the deletion is complete, the import
11977	// will no longer be returned by the operation and calls to the with the import
11978	// identifier will fail.
11979	ImportStatus *string `locationName:"importStatus" type:"string" enum:"ImportStatus"`
11980}
11981
11982// String returns the string representation.
11983//
11984// API parameter values that are decorated as "sensitive" in the API will not
11985// be included in the string output. The member name will be present, but the
11986// value will be replaced with "sensitive".
11987func (s DeleteImportOutput) String() string {
11988	return awsutil.Prettify(s)
11989}
11990
11991// GoString returns the string representation.
11992//
11993// API parameter values that are decorated as "sensitive" in the API will not
11994// be included in the string output. The member name will be present, but the
11995// value will be replaced with "sensitive".
11996func (s DeleteImportOutput) GoString() string {
11997	return s.String()
11998}
11999
12000// SetImportId sets the ImportId field's value.
12001func (s *DeleteImportOutput) SetImportId(v string) *DeleteImportOutput {
12002	s.ImportId = &v
12003	return s
12004}
12005
12006// SetImportStatus sets the ImportStatus field's value.
12007func (s *DeleteImportOutput) SetImportStatus(v string) *DeleteImportOutput {
12008	s.ImportStatus = &v
12009	return s
12010}
12011
12012type DeleteIntentInput struct {
12013	_ struct{} `type:"structure" nopayload:"true"`
12014
12015	// The identifier of the bot associated with the intent.
12016	//
12017	// BotId is a required field
12018	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
12019
12020	// The version of the bot associated with the intent.
12021	//
12022	// BotVersion is a required field
12023	BotVersion *string `location:"uri" locationName:"botVersion" min:"5" type:"string" required:"true"`
12024
12025	// The unique identifier of the intent to delete.
12026	//
12027	// IntentId is a required field
12028	IntentId *string `location:"uri" locationName:"intentId" min:"10" type:"string" required:"true"`
12029
12030	// The identifier of the language and locale where the bot will be deleted.
12031	// The string must match one of the supported locales. For more information,
12032	// see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
12033	//
12034	// LocaleId is a required field
12035	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
12036}
12037
12038// String returns the string representation.
12039//
12040// API parameter values that are decorated as "sensitive" in the API will not
12041// be included in the string output. The member name will be present, but the
12042// value will be replaced with "sensitive".
12043func (s DeleteIntentInput) String() string {
12044	return awsutil.Prettify(s)
12045}
12046
12047// GoString returns the string representation.
12048//
12049// API parameter values that are decorated as "sensitive" in the API will not
12050// be included in the string output. The member name will be present, but the
12051// value will be replaced with "sensitive".
12052func (s DeleteIntentInput) GoString() string {
12053	return s.String()
12054}
12055
12056// Validate inspects the fields of the type to determine if they are valid.
12057func (s *DeleteIntentInput) Validate() error {
12058	invalidParams := request.ErrInvalidParams{Context: "DeleteIntentInput"}
12059	if s.BotId == nil {
12060		invalidParams.Add(request.NewErrParamRequired("BotId"))
12061	}
12062	if s.BotId != nil && len(*s.BotId) < 10 {
12063		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
12064	}
12065	if s.BotVersion == nil {
12066		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
12067	}
12068	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
12069		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
12070	}
12071	if s.IntentId == nil {
12072		invalidParams.Add(request.NewErrParamRequired("IntentId"))
12073	}
12074	if s.IntentId != nil && len(*s.IntentId) < 10 {
12075		invalidParams.Add(request.NewErrParamMinLen("IntentId", 10))
12076	}
12077	if s.LocaleId == nil {
12078		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
12079	}
12080	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
12081		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
12082	}
12083
12084	if invalidParams.Len() > 0 {
12085		return invalidParams
12086	}
12087	return nil
12088}
12089
12090// SetBotId sets the BotId field's value.
12091func (s *DeleteIntentInput) SetBotId(v string) *DeleteIntentInput {
12092	s.BotId = &v
12093	return s
12094}
12095
12096// SetBotVersion sets the BotVersion field's value.
12097func (s *DeleteIntentInput) SetBotVersion(v string) *DeleteIntentInput {
12098	s.BotVersion = &v
12099	return s
12100}
12101
12102// SetIntentId sets the IntentId field's value.
12103func (s *DeleteIntentInput) SetIntentId(v string) *DeleteIntentInput {
12104	s.IntentId = &v
12105	return s
12106}
12107
12108// SetLocaleId sets the LocaleId field's value.
12109func (s *DeleteIntentInput) SetLocaleId(v string) *DeleteIntentInput {
12110	s.LocaleId = &v
12111	return s
12112}
12113
12114type DeleteIntentOutput struct {
12115	_ struct{} `type:"structure"`
12116}
12117
12118// String returns the string representation.
12119//
12120// API parameter values that are decorated as "sensitive" in the API will not
12121// be included in the string output. The member name will be present, but the
12122// value will be replaced with "sensitive".
12123func (s DeleteIntentOutput) String() string {
12124	return awsutil.Prettify(s)
12125}
12126
12127// GoString returns the string representation.
12128//
12129// API parameter values that are decorated as "sensitive" in the API will not
12130// be included in the string output. The member name will be present, but the
12131// value will be replaced with "sensitive".
12132func (s DeleteIntentOutput) GoString() string {
12133	return s.String()
12134}
12135
12136type DeleteResourcePolicyInput struct {
12137	_ struct{} `type:"structure" nopayload:"true"`
12138
12139	// The identifier of the revision to edit. If this ID doesn't match the current
12140	// revision number, Amazon Lex returns an exception
12141	//
12142	// If you don't specify a revision ID, Amazon Lex will delete the current policy.
12143	ExpectedRevisionId *string `location:"querystring" locationName:"expectedRevisionId" min:"1" type:"string"`
12144
12145	// The Amazon Resource Name (ARN) of the bot or bot alias that has the resource
12146	// policy attached.
12147	//
12148	// ResourceArn is a required field
12149	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
12150}
12151
12152// String returns the string representation.
12153//
12154// API parameter values that are decorated as "sensitive" in the API will not
12155// be included in the string output. The member name will be present, but the
12156// value will be replaced with "sensitive".
12157func (s DeleteResourcePolicyInput) String() string {
12158	return awsutil.Prettify(s)
12159}
12160
12161// GoString returns the string representation.
12162//
12163// API parameter values that are decorated as "sensitive" in the API will not
12164// be included in the string output. The member name will be present, but the
12165// value will be replaced with "sensitive".
12166func (s DeleteResourcePolicyInput) GoString() string {
12167	return s.String()
12168}
12169
12170// Validate inspects the fields of the type to determine if they are valid.
12171func (s *DeleteResourcePolicyInput) Validate() error {
12172	invalidParams := request.ErrInvalidParams{Context: "DeleteResourcePolicyInput"}
12173	if s.ExpectedRevisionId != nil && len(*s.ExpectedRevisionId) < 1 {
12174		invalidParams.Add(request.NewErrParamMinLen("ExpectedRevisionId", 1))
12175	}
12176	if s.ResourceArn == nil {
12177		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
12178	}
12179	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
12180		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
12181	}
12182
12183	if invalidParams.Len() > 0 {
12184		return invalidParams
12185	}
12186	return nil
12187}
12188
12189// SetExpectedRevisionId sets the ExpectedRevisionId field's value.
12190func (s *DeleteResourcePolicyInput) SetExpectedRevisionId(v string) *DeleteResourcePolicyInput {
12191	s.ExpectedRevisionId = &v
12192	return s
12193}
12194
12195// SetResourceArn sets the ResourceArn field's value.
12196func (s *DeleteResourcePolicyInput) SetResourceArn(v string) *DeleteResourcePolicyInput {
12197	s.ResourceArn = &v
12198	return s
12199}
12200
12201type DeleteResourcePolicyOutput struct {
12202	_ struct{} `type:"structure"`
12203
12204	// The Amazon Resource Name (ARN) of the bot or bot alias that the resource
12205	// policy was deleted from.
12206	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string"`
12207
12208	// The current revision of the resource policy. Use the revision ID to make
12209	// sure that you are updating the most current version of a resource policy
12210	// when you add a policy statement to a resource, delete a resource, or update
12211	// a resource.
12212	RevisionId *string `locationName:"revisionId" min:"1" type:"string"`
12213}
12214
12215// String returns the string representation.
12216//
12217// API parameter values that are decorated as "sensitive" in the API will not
12218// be included in the string output. The member name will be present, but the
12219// value will be replaced with "sensitive".
12220func (s DeleteResourcePolicyOutput) String() string {
12221	return awsutil.Prettify(s)
12222}
12223
12224// GoString returns the string representation.
12225//
12226// API parameter values that are decorated as "sensitive" in the API will not
12227// be included in the string output. The member name will be present, but the
12228// value will be replaced with "sensitive".
12229func (s DeleteResourcePolicyOutput) GoString() string {
12230	return s.String()
12231}
12232
12233// SetResourceArn sets the ResourceArn field's value.
12234func (s *DeleteResourcePolicyOutput) SetResourceArn(v string) *DeleteResourcePolicyOutput {
12235	s.ResourceArn = &v
12236	return s
12237}
12238
12239// SetRevisionId sets the RevisionId field's value.
12240func (s *DeleteResourcePolicyOutput) SetRevisionId(v string) *DeleteResourcePolicyOutput {
12241	s.RevisionId = &v
12242	return s
12243}
12244
12245type DeleteResourcePolicyStatementInput struct {
12246	_ struct{} `type:"structure" nopayload:"true"`
12247
12248	// The identifier of the revision of the policy to delete the statement from.
12249	// If this revision ID doesn't match the current revision ID, Amazon Lex throws
12250	// an exception.
12251	//
12252	// If you don't specify a revision, Amazon Lex removes the current contents
12253	// of the statement.
12254	ExpectedRevisionId *string `location:"querystring" locationName:"expectedRevisionId" min:"1" type:"string"`
12255
12256	// The Amazon Resource Name (ARN) of the bot or bot alias that the resource
12257	// policy is attached to.
12258	//
12259	// ResourceArn is a required field
12260	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
12261
12262	// The name of the statement (SID) to delete from the policy.
12263	//
12264	// StatementId is a required field
12265	StatementId *string `location:"uri" locationName:"statementId" min:"1" type:"string" required:"true"`
12266}
12267
12268// String returns the string representation.
12269//
12270// API parameter values that are decorated as "sensitive" in the API will not
12271// be included in the string output. The member name will be present, but the
12272// value will be replaced with "sensitive".
12273func (s DeleteResourcePolicyStatementInput) String() string {
12274	return awsutil.Prettify(s)
12275}
12276
12277// GoString returns the string representation.
12278//
12279// API parameter values that are decorated as "sensitive" in the API will not
12280// be included in the string output. The member name will be present, but the
12281// value will be replaced with "sensitive".
12282func (s DeleteResourcePolicyStatementInput) GoString() string {
12283	return s.String()
12284}
12285
12286// Validate inspects the fields of the type to determine if they are valid.
12287func (s *DeleteResourcePolicyStatementInput) Validate() error {
12288	invalidParams := request.ErrInvalidParams{Context: "DeleteResourcePolicyStatementInput"}
12289	if s.ExpectedRevisionId != nil && len(*s.ExpectedRevisionId) < 1 {
12290		invalidParams.Add(request.NewErrParamMinLen("ExpectedRevisionId", 1))
12291	}
12292	if s.ResourceArn == nil {
12293		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
12294	}
12295	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
12296		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
12297	}
12298	if s.StatementId == nil {
12299		invalidParams.Add(request.NewErrParamRequired("StatementId"))
12300	}
12301	if s.StatementId != nil && len(*s.StatementId) < 1 {
12302		invalidParams.Add(request.NewErrParamMinLen("StatementId", 1))
12303	}
12304
12305	if invalidParams.Len() > 0 {
12306		return invalidParams
12307	}
12308	return nil
12309}
12310
12311// SetExpectedRevisionId sets the ExpectedRevisionId field's value.
12312func (s *DeleteResourcePolicyStatementInput) SetExpectedRevisionId(v string) *DeleteResourcePolicyStatementInput {
12313	s.ExpectedRevisionId = &v
12314	return s
12315}
12316
12317// SetResourceArn sets the ResourceArn field's value.
12318func (s *DeleteResourcePolicyStatementInput) SetResourceArn(v string) *DeleteResourcePolicyStatementInput {
12319	s.ResourceArn = &v
12320	return s
12321}
12322
12323// SetStatementId sets the StatementId field's value.
12324func (s *DeleteResourcePolicyStatementInput) SetStatementId(v string) *DeleteResourcePolicyStatementInput {
12325	s.StatementId = &v
12326	return s
12327}
12328
12329type DeleteResourcePolicyStatementOutput struct {
12330	_ struct{} `type:"structure"`
12331
12332	// The Amazon Resource Name (ARN) of the bot or bot alias that the resource
12333	// policy statement was removed from.
12334	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string"`
12335
12336	// The current revision of the resource policy. Use the revision ID to make
12337	// sure that you are updating the most current version of a resource policy
12338	// when you add a policy statement to a resource, delete a resource, or update
12339	// a resource.
12340	RevisionId *string `locationName:"revisionId" min:"1" type:"string"`
12341}
12342
12343// String returns the string representation.
12344//
12345// API parameter values that are decorated as "sensitive" in the API will not
12346// be included in the string output. The member name will be present, but the
12347// value will be replaced with "sensitive".
12348func (s DeleteResourcePolicyStatementOutput) String() string {
12349	return awsutil.Prettify(s)
12350}
12351
12352// GoString returns the string representation.
12353//
12354// API parameter values that are decorated as "sensitive" in the API will not
12355// be included in the string output. The member name will be present, but the
12356// value will be replaced with "sensitive".
12357func (s DeleteResourcePolicyStatementOutput) GoString() string {
12358	return s.String()
12359}
12360
12361// SetResourceArn sets the ResourceArn field's value.
12362func (s *DeleteResourcePolicyStatementOutput) SetResourceArn(v string) *DeleteResourcePolicyStatementOutput {
12363	s.ResourceArn = &v
12364	return s
12365}
12366
12367// SetRevisionId sets the RevisionId field's value.
12368func (s *DeleteResourcePolicyStatementOutput) SetRevisionId(v string) *DeleteResourcePolicyStatementOutput {
12369	s.RevisionId = &v
12370	return s
12371}
12372
12373type DeleteSlotInput struct {
12374	_ struct{} `type:"structure" nopayload:"true"`
12375
12376	// The identifier of the bot associated with the slot to delete.
12377	//
12378	// BotId is a required field
12379	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
12380
12381	// The version of the bot associated with the slot to delete.
12382	//
12383	// BotVersion is a required field
12384	BotVersion *string `location:"uri" locationName:"botVersion" min:"5" type:"string" required:"true"`
12385
12386	// The identifier of the intent associated with the slot.
12387	//
12388	// IntentId is a required field
12389	IntentId *string `location:"uri" locationName:"intentId" min:"10" type:"string" required:"true"`
12390
12391	// The identifier of the language and locale that the slot will be deleted from.
12392	// The string must match one of the supported locales. For more information,
12393	// see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
12394	//
12395	// LocaleId is a required field
12396	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
12397
12398	// The identifier of the slot to delete.
12399	//
12400	// SlotId is a required field
12401	SlotId *string `location:"uri" locationName:"slotId" min:"10" type:"string" required:"true"`
12402}
12403
12404// String returns the string representation.
12405//
12406// API parameter values that are decorated as "sensitive" in the API will not
12407// be included in the string output. The member name will be present, but the
12408// value will be replaced with "sensitive".
12409func (s DeleteSlotInput) String() string {
12410	return awsutil.Prettify(s)
12411}
12412
12413// GoString returns the string representation.
12414//
12415// API parameter values that are decorated as "sensitive" in the API will not
12416// be included in the string output. The member name will be present, but the
12417// value will be replaced with "sensitive".
12418func (s DeleteSlotInput) GoString() string {
12419	return s.String()
12420}
12421
12422// Validate inspects the fields of the type to determine if they are valid.
12423func (s *DeleteSlotInput) Validate() error {
12424	invalidParams := request.ErrInvalidParams{Context: "DeleteSlotInput"}
12425	if s.BotId == nil {
12426		invalidParams.Add(request.NewErrParamRequired("BotId"))
12427	}
12428	if s.BotId != nil && len(*s.BotId) < 10 {
12429		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
12430	}
12431	if s.BotVersion == nil {
12432		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
12433	}
12434	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
12435		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
12436	}
12437	if s.IntentId == nil {
12438		invalidParams.Add(request.NewErrParamRequired("IntentId"))
12439	}
12440	if s.IntentId != nil && len(*s.IntentId) < 10 {
12441		invalidParams.Add(request.NewErrParamMinLen("IntentId", 10))
12442	}
12443	if s.LocaleId == nil {
12444		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
12445	}
12446	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
12447		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
12448	}
12449	if s.SlotId == nil {
12450		invalidParams.Add(request.NewErrParamRequired("SlotId"))
12451	}
12452	if s.SlotId != nil && len(*s.SlotId) < 10 {
12453		invalidParams.Add(request.NewErrParamMinLen("SlotId", 10))
12454	}
12455
12456	if invalidParams.Len() > 0 {
12457		return invalidParams
12458	}
12459	return nil
12460}
12461
12462// SetBotId sets the BotId field's value.
12463func (s *DeleteSlotInput) SetBotId(v string) *DeleteSlotInput {
12464	s.BotId = &v
12465	return s
12466}
12467
12468// SetBotVersion sets the BotVersion field's value.
12469func (s *DeleteSlotInput) SetBotVersion(v string) *DeleteSlotInput {
12470	s.BotVersion = &v
12471	return s
12472}
12473
12474// SetIntentId sets the IntentId field's value.
12475func (s *DeleteSlotInput) SetIntentId(v string) *DeleteSlotInput {
12476	s.IntentId = &v
12477	return s
12478}
12479
12480// SetLocaleId sets the LocaleId field's value.
12481func (s *DeleteSlotInput) SetLocaleId(v string) *DeleteSlotInput {
12482	s.LocaleId = &v
12483	return s
12484}
12485
12486// SetSlotId sets the SlotId field's value.
12487func (s *DeleteSlotInput) SetSlotId(v string) *DeleteSlotInput {
12488	s.SlotId = &v
12489	return s
12490}
12491
12492type DeleteSlotOutput struct {
12493	_ struct{} `type:"structure"`
12494}
12495
12496// String returns the string representation.
12497//
12498// API parameter values that are decorated as "sensitive" in the API will not
12499// be included in the string output. The member name will be present, but the
12500// value will be replaced with "sensitive".
12501func (s DeleteSlotOutput) String() string {
12502	return awsutil.Prettify(s)
12503}
12504
12505// GoString returns the string representation.
12506//
12507// API parameter values that are decorated as "sensitive" in the API will not
12508// be included in the string output. The member name will be present, but the
12509// value will be replaced with "sensitive".
12510func (s DeleteSlotOutput) GoString() string {
12511	return s.String()
12512}
12513
12514type DeleteSlotTypeInput struct {
12515	_ struct{} `type:"structure" nopayload:"true"`
12516
12517	// The identifier of the bot associated with the slot type.
12518	//
12519	// BotId is a required field
12520	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
12521
12522	// The version of the bot associated with the slot type.
12523	//
12524	// BotVersion is a required field
12525	BotVersion *string `location:"uri" locationName:"botVersion" min:"5" type:"string" required:"true"`
12526
12527	// The identifier of the language and locale that the slot type will be deleted
12528	// from. The string must match one of the supported locales. For more information,
12529	// see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
12530	//
12531	// LocaleId is a required field
12532	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
12533
12534	// By default, the DeleteSlotType operations throws a ResourceInUseException
12535	// exception if you try to delete a slot type used by a slot. Set the skipResourceInUseCheck
12536	// parameter to true to skip this check and remove the slot type even if a slot
12537	// uses it.
12538	SkipResourceInUseCheck *bool `location:"querystring" locationName:"skipResourceInUseCheck" type:"boolean"`
12539
12540	// The identifier of the slot type to delete.
12541	//
12542	// SlotTypeId is a required field
12543	SlotTypeId *string `location:"uri" locationName:"slotTypeId" min:"10" type:"string" required:"true"`
12544}
12545
12546// String returns the string representation.
12547//
12548// API parameter values that are decorated as "sensitive" in the API will not
12549// be included in the string output. The member name will be present, but the
12550// value will be replaced with "sensitive".
12551func (s DeleteSlotTypeInput) String() string {
12552	return awsutil.Prettify(s)
12553}
12554
12555// GoString returns the string representation.
12556//
12557// API parameter values that are decorated as "sensitive" in the API will not
12558// be included in the string output. The member name will be present, but the
12559// value will be replaced with "sensitive".
12560func (s DeleteSlotTypeInput) GoString() string {
12561	return s.String()
12562}
12563
12564// Validate inspects the fields of the type to determine if they are valid.
12565func (s *DeleteSlotTypeInput) Validate() error {
12566	invalidParams := request.ErrInvalidParams{Context: "DeleteSlotTypeInput"}
12567	if s.BotId == nil {
12568		invalidParams.Add(request.NewErrParamRequired("BotId"))
12569	}
12570	if s.BotId != nil && len(*s.BotId) < 10 {
12571		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
12572	}
12573	if s.BotVersion == nil {
12574		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
12575	}
12576	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
12577		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
12578	}
12579	if s.LocaleId == nil {
12580		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
12581	}
12582	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
12583		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
12584	}
12585	if s.SlotTypeId == nil {
12586		invalidParams.Add(request.NewErrParamRequired("SlotTypeId"))
12587	}
12588	if s.SlotTypeId != nil && len(*s.SlotTypeId) < 10 {
12589		invalidParams.Add(request.NewErrParamMinLen("SlotTypeId", 10))
12590	}
12591
12592	if invalidParams.Len() > 0 {
12593		return invalidParams
12594	}
12595	return nil
12596}
12597
12598// SetBotId sets the BotId field's value.
12599func (s *DeleteSlotTypeInput) SetBotId(v string) *DeleteSlotTypeInput {
12600	s.BotId = &v
12601	return s
12602}
12603
12604// SetBotVersion sets the BotVersion field's value.
12605func (s *DeleteSlotTypeInput) SetBotVersion(v string) *DeleteSlotTypeInput {
12606	s.BotVersion = &v
12607	return s
12608}
12609
12610// SetLocaleId sets the LocaleId field's value.
12611func (s *DeleteSlotTypeInput) SetLocaleId(v string) *DeleteSlotTypeInput {
12612	s.LocaleId = &v
12613	return s
12614}
12615
12616// SetSkipResourceInUseCheck sets the SkipResourceInUseCheck field's value.
12617func (s *DeleteSlotTypeInput) SetSkipResourceInUseCheck(v bool) *DeleteSlotTypeInput {
12618	s.SkipResourceInUseCheck = &v
12619	return s
12620}
12621
12622// SetSlotTypeId sets the SlotTypeId field's value.
12623func (s *DeleteSlotTypeInput) SetSlotTypeId(v string) *DeleteSlotTypeInput {
12624	s.SlotTypeId = &v
12625	return s
12626}
12627
12628type DeleteSlotTypeOutput struct {
12629	_ struct{} `type:"structure"`
12630}
12631
12632// String returns the string representation.
12633//
12634// API parameter values that are decorated as "sensitive" in the API will not
12635// be included in the string output. The member name will be present, but the
12636// value will be replaced with "sensitive".
12637func (s DeleteSlotTypeOutput) String() string {
12638	return awsutil.Prettify(s)
12639}
12640
12641// GoString returns the string representation.
12642//
12643// API parameter values that are decorated as "sensitive" in the API will not
12644// be included in the string output. The member name will be present, but the
12645// value will be replaced with "sensitive".
12646func (s DeleteSlotTypeOutput) GoString() string {
12647	return s.String()
12648}
12649
12650type DeleteUtterancesInput struct {
12651	_ struct{} `type:"structure" nopayload:"true"`
12652
12653	// The unique identifier of the bot that contains the utterances.
12654	//
12655	// BotId is a required field
12656	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
12657
12658	// The identifier of the language and locale where the utterances were collected.
12659	// The string must match one of the supported locales. For more information,
12660	// see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
12661	LocaleId *string `location:"querystring" locationName:"localeId" type:"string"`
12662
12663	// The unique identifier of the session with the user. The ID is returned in
12664	// the response from the and operations.
12665	SessionId *string `location:"querystring" locationName:"sessionId" min:"2" type:"string"`
12666}
12667
12668// String returns the string representation.
12669//
12670// API parameter values that are decorated as "sensitive" in the API will not
12671// be included in the string output. The member name will be present, but the
12672// value will be replaced with "sensitive".
12673func (s DeleteUtterancesInput) String() string {
12674	return awsutil.Prettify(s)
12675}
12676
12677// GoString returns the string representation.
12678//
12679// API parameter values that are decorated as "sensitive" in the API will not
12680// be included in the string output. The member name will be present, but the
12681// value will be replaced with "sensitive".
12682func (s DeleteUtterancesInput) GoString() string {
12683	return s.String()
12684}
12685
12686// Validate inspects the fields of the type to determine if they are valid.
12687func (s *DeleteUtterancesInput) Validate() error {
12688	invalidParams := request.ErrInvalidParams{Context: "DeleteUtterancesInput"}
12689	if s.BotId == nil {
12690		invalidParams.Add(request.NewErrParamRequired("BotId"))
12691	}
12692	if s.BotId != nil && len(*s.BotId) < 10 {
12693		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
12694	}
12695	if s.SessionId != nil && len(*s.SessionId) < 2 {
12696		invalidParams.Add(request.NewErrParamMinLen("SessionId", 2))
12697	}
12698
12699	if invalidParams.Len() > 0 {
12700		return invalidParams
12701	}
12702	return nil
12703}
12704
12705// SetBotId sets the BotId field's value.
12706func (s *DeleteUtterancesInput) SetBotId(v string) *DeleteUtterancesInput {
12707	s.BotId = &v
12708	return s
12709}
12710
12711// SetLocaleId sets the LocaleId field's value.
12712func (s *DeleteUtterancesInput) SetLocaleId(v string) *DeleteUtterancesInput {
12713	s.LocaleId = &v
12714	return s
12715}
12716
12717// SetSessionId sets the SessionId field's value.
12718func (s *DeleteUtterancesInput) SetSessionId(v string) *DeleteUtterancesInput {
12719	s.SessionId = &v
12720	return s
12721}
12722
12723type DeleteUtterancesOutput struct {
12724	_ struct{} `type:"structure"`
12725}
12726
12727// String returns the string representation.
12728//
12729// API parameter values that are decorated as "sensitive" in the API will not
12730// be included in the string output. The member name will be present, but the
12731// value will be replaced with "sensitive".
12732func (s DeleteUtterancesOutput) String() string {
12733	return awsutil.Prettify(s)
12734}
12735
12736// GoString returns the string representation.
12737//
12738// API parameter values that are decorated as "sensitive" in the API will not
12739// be included in the string output. The member name will be present, but the
12740// value will be replaced with "sensitive".
12741func (s DeleteUtterancesOutput) GoString() string {
12742	return s.String()
12743}
12744
12745type DescribeBotAliasInput struct {
12746	_ struct{} `type:"structure" nopayload:"true"`
12747
12748	// The identifier of the bot alias to describe.
12749	//
12750	// BotAliasId is a required field
12751	BotAliasId *string `location:"uri" locationName:"botAliasId" min:"10" type:"string" required:"true"`
12752
12753	// The identifier of the bot associated with the bot alias to describe.
12754	//
12755	// BotId is a required field
12756	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
12757}
12758
12759// String returns the string representation.
12760//
12761// API parameter values that are decorated as "sensitive" in the API will not
12762// be included in the string output. The member name will be present, but the
12763// value will be replaced with "sensitive".
12764func (s DescribeBotAliasInput) String() string {
12765	return awsutil.Prettify(s)
12766}
12767
12768// GoString returns the string representation.
12769//
12770// API parameter values that are decorated as "sensitive" in the API will not
12771// be included in the string output. The member name will be present, but the
12772// value will be replaced with "sensitive".
12773func (s DescribeBotAliasInput) GoString() string {
12774	return s.String()
12775}
12776
12777// Validate inspects the fields of the type to determine if they are valid.
12778func (s *DescribeBotAliasInput) Validate() error {
12779	invalidParams := request.ErrInvalidParams{Context: "DescribeBotAliasInput"}
12780	if s.BotAliasId == nil {
12781		invalidParams.Add(request.NewErrParamRequired("BotAliasId"))
12782	}
12783	if s.BotAliasId != nil && len(*s.BotAliasId) < 10 {
12784		invalidParams.Add(request.NewErrParamMinLen("BotAliasId", 10))
12785	}
12786	if s.BotId == nil {
12787		invalidParams.Add(request.NewErrParamRequired("BotId"))
12788	}
12789	if s.BotId != nil && len(*s.BotId) < 10 {
12790		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
12791	}
12792
12793	if invalidParams.Len() > 0 {
12794		return invalidParams
12795	}
12796	return nil
12797}
12798
12799// SetBotAliasId sets the BotAliasId field's value.
12800func (s *DescribeBotAliasInput) SetBotAliasId(v string) *DescribeBotAliasInput {
12801	s.BotAliasId = &v
12802	return s
12803}
12804
12805// SetBotId sets the BotId field's value.
12806func (s *DescribeBotAliasInput) SetBotId(v string) *DescribeBotAliasInput {
12807	s.BotId = &v
12808	return s
12809}
12810
12811type DescribeBotAliasOutput struct {
12812	_ struct{} `type:"structure"`
12813
12814	// A list of events that affect a bot alias. For example, an event is recorded
12815	// when the version that the alias points to changes.
12816	BotAliasHistoryEvents []*BotAliasHistoryEvent `locationName:"botAliasHistoryEvents" type:"list"`
12817
12818	// The identifier of the bot alias.
12819	BotAliasId *string `locationName:"botAliasId" min:"10" type:"string"`
12820
12821	// The locale settings that are unique to the alias.
12822	BotAliasLocaleSettings map[string]*BotAliasLocaleSettings `locationName:"botAliasLocaleSettings" min:"1" type:"map"`
12823
12824	// The name of the bot alias.
12825	BotAliasName *string `locationName:"botAliasName" min:"1" type:"string"`
12826
12827	// The current status of the alias. When the alias is Available, the alias is
12828	// ready for use with your bot.
12829	BotAliasStatus *string `locationName:"botAliasStatus" type:"string" enum:"BotAliasStatus"`
12830
12831	// The identifier of the bot associated with the bot alias.
12832	BotId *string `locationName:"botId" min:"10" type:"string"`
12833
12834	// The version of the bot associated with the bot alias.
12835	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
12836
12837	// Specifics of how Amazon Lex logs text and audio conversations with the bot
12838	// associated with the alias.
12839	ConversationLogSettings *ConversationLogSettings `locationName:"conversationLogSettings" type:"structure"`
12840
12841	// A timestamp of the date and time that the alias was created.
12842	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
12843
12844	// The description of the bot alias.
12845	Description *string `locationName:"description" type:"string"`
12846
12847	// A timestamp of the date and time that the alias was last updated.
12848	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
12849
12850	// Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment
12851	// of user utterances.
12852	SentimentAnalysisSettings *SentimentAnalysisSettings `locationName:"sentimentAnalysisSettings" type:"structure"`
12853}
12854
12855// String returns the string representation.
12856//
12857// API parameter values that are decorated as "sensitive" in the API will not
12858// be included in the string output. The member name will be present, but the
12859// value will be replaced with "sensitive".
12860func (s DescribeBotAliasOutput) String() string {
12861	return awsutil.Prettify(s)
12862}
12863
12864// GoString returns the string representation.
12865//
12866// API parameter values that are decorated as "sensitive" in the API will not
12867// be included in the string output. The member name will be present, but the
12868// value will be replaced with "sensitive".
12869func (s DescribeBotAliasOutput) GoString() string {
12870	return s.String()
12871}
12872
12873// SetBotAliasHistoryEvents sets the BotAliasHistoryEvents field's value.
12874func (s *DescribeBotAliasOutput) SetBotAliasHistoryEvents(v []*BotAliasHistoryEvent) *DescribeBotAliasOutput {
12875	s.BotAliasHistoryEvents = v
12876	return s
12877}
12878
12879// SetBotAliasId sets the BotAliasId field's value.
12880func (s *DescribeBotAliasOutput) SetBotAliasId(v string) *DescribeBotAliasOutput {
12881	s.BotAliasId = &v
12882	return s
12883}
12884
12885// SetBotAliasLocaleSettings sets the BotAliasLocaleSettings field's value.
12886func (s *DescribeBotAliasOutput) SetBotAliasLocaleSettings(v map[string]*BotAliasLocaleSettings) *DescribeBotAliasOutput {
12887	s.BotAliasLocaleSettings = v
12888	return s
12889}
12890
12891// SetBotAliasName sets the BotAliasName field's value.
12892func (s *DescribeBotAliasOutput) SetBotAliasName(v string) *DescribeBotAliasOutput {
12893	s.BotAliasName = &v
12894	return s
12895}
12896
12897// SetBotAliasStatus sets the BotAliasStatus field's value.
12898func (s *DescribeBotAliasOutput) SetBotAliasStatus(v string) *DescribeBotAliasOutput {
12899	s.BotAliasStatus = &v
12900	return s
12901}
12902
12903// SetBotId sets the BotId field's value.
12904func (s *DescribeBotAliasOutput) SetBotId(v string) *DescribeBotAliasOutput {
12905	s.BotId = &v
12906	return s
12907}
12908
12909// SetBotVersion sets the BotVersion field's value.
12910func (s *DescribeBotAliasOutput) SetBotVersion(v string) *DescribeBotAliasOutput {
12911	s.BotVersion = &v
12912	return s
12913}
12914
12915// SetConversationLogSettings sets the ConversationLogSettings field's value.
12916func (s *DescribeBotAliasOutput) SetConversationLogSettings(v *ConversationLogSettings) *DescribeBotAliasOutput {
12917	s.ConversationLogSettings = v
12918	return s
12919}
12920
12921// SetCreationDateTime sets the CreationDateTime field's value.
12922func (s *DescribeBotAliasOutput) SetCreationDateTime(v time.Time) *DescribeBotAliasOutput {
12923	s.CreationDateTime = &v
12924	return s
12925}
12926
12927// SetDescription sets the Description field's value.
12928func (s *DescribeBotAliasOutput) SetDescription(v string) *DescribeBotAliasOutput {
12929	s.Description = &v
12930	return s
12931}
12932
12933// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
12934func (s *DescribeBotAliasOutput) SetLastUpdatedDateTime(v time.Time) *DescribeBotAliasOutput {
12935	s.LastUpdatedDateTime = &v
12936	return s
12937}
12938
12939// SetSentimentAnalysisSettings sets the SentimentAnalysisSettings field's value.
12940func (s *DescribeBotAliasOutput) SetSentimentAnalysisSettings(v *SentimentAnalysisSettings) *DescribeBotAliasOutput {
12941	s.SentimentAnalysisSettings = v
12942	return s
12943}
12944
12945type DescribeBotInput struct {
12946	_ struct{} `type:"structure" nopayload:"true"`
12947
12948	// The unique identifier of the bot to describe.
12949	//
12950	// BotId is a required field
12951	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
12952}
12953
12954// String returns the string representation.
12955//
12956// API parameter values that are decorated as "sensitive" in the API will not
12957// be included in the string output. The member name will be present, but the
12958// value will be replaced with "sensitive".
12959func (s DescribeBotInput) String() string {
12960	return awsutil.Prettify(s)
12961}
12962
12963// GoString returns the string representation.
12964//
12965// API parameter values that are decorated as "sensitive" in the API will not
12966// be included in the string output. The member name will be present, but the
12967// value will be replaced with "sensitive".
12968func (s DescribeBotInput) GoString() string {
12969	return s.String()
12970}
12971
12972// Validate inspects the fields of the type to determine if they are valid.
12973func (s *DescribeBotInput) Validate() error {
12974	invalidParams := request.ErrInvalidParams{Context: "DescribeBotInput"}
12975	if s.BotId == nil {
12976		invalidParams.Add(request.NewErrParamRequired("BotId"))
12977	}
12978	if s.BotId != nil && len(*s.BotId) < 10 {
12979		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
12980	}
12981
12982	if invalidParams.Len() > 0 {
12983		return invalidParams
12984	}
12985	return nil
12986}
12987
12988// SetBotId sets the BotId field's value.
12989func (s *DescribeBotInput) SetBotId(v string) *DescribeBotInput {
12990	s.BotId = &v
12991	return s
12992}
12993
12994type DescribeBotLocaleInput struct {
12995	_ struct{} `type:"structure" nopayload:"true"`
12996
12997	// The identifier of the bot associated with the locale.
12998	//
12999	// BotId is a required field
13000	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
13001
13002	// The identifier of the version of the bot associated with the locale.
13003	//
13004	// BotVersion is a required field
13005	BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"`
13006
13007	// The unique identifier of the locale to describe. The string must match one
13008	// of the supported locales. For more information, see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
13009	//
13010	// LocaleId is a required field
13011	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
13012}
13013
13014// String returns the string representation.
13015//
13016// API parameter values that are decorated as "sensitive" in the API will not
13017// be included in the string output. The member name will be present, but the
13018// value will be replaced with "sensitive".
13019func (s DescribeBotLocaleInput) String() string {
13020	return awsutil.Prettify(s)
13021}
13022
13023// GoString returns the string representation.
13024//
13025// API parameter values that are decorated as "sensitive" in the API will not
13026// be included in the string output. The member name will be present, but the
13027// value will be replaced with "sensitive".
13028func (s DescribeBotLocaleInput) GoString() string {
13029	return s.String()
13030}
13031
13032// Validate inspects the fields of the type to determine if they are valid.
13033func (s *DescribeBotLocaleInput) Validate() error {
13034	invalidParams := request.ErrInvalidParams{Context: "DescribeBotLocaleInput"}
13035	if s.BotId == nil {
13036		invalidParams.Add(request.NewErrParamRequired("BotId"))
13037	}
13038	if s.BotId != nil && len(*s.BotId) < 10 {
13039		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
13040	}
13041	if s.BotVersion == nil {
13042		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
13043	}
13044	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
13045		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
13046	}
13047	if s.LocaleId == nil {
13048		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
13049	}
13050	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
13051		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
13052	}
13053
13054	if invalidParams.Len() > 0 {
13055		return invalidParams
13056	}
13057	return nil
13058}
13059
13060// SetBotId sets the BotId field's value.
13061func (s *DescribeBotLocaleInput) SetBotId(v string) *DescribeBotLocaleInput {
13062	s.BotId = &v
13063	return s
13064}
13065
13066// SetBotVersion sets the BotVersion field's value.
13067func (s *DescribeBotLocaleInput) SetBotVersion(v string) *DescribeBotLocaleInput {
13068	s.BotVersion = &v
13069	return s
13070}
13071
13072// SetLocaleId sets the LocaleId field's value.
13073func (s *DescribeBotLocaleInput) SetLocaleId(v string) *DescribeBotLocaleInput {
13074	s.LocaleId = &v
13075	return s
13076}
13077
13078type DescribeBotLocaleOutput struct {
13079	_ struct{} `type:"structure"`
13080
13081	// The identifier of the bot associated with the locale.
13082	BotId *string `locationName:"botId" min:"10" type:"string"`
13083
13084	// History of changes, such as when a locale is used in an alias, that have
13085	// taken place for the locale.
13086	BotLocaleHistoryEvents []*BotLocaleHistoryEvent `locationName:"botLocaleHistoryEvents" type:"list"`
13087
13088	// The status of the bot. If the status is Failed, the reasons for the failure
13089	// are listed in the failureReasons field.
13090	BotLocaleStatus *string `locationName:"botLocaleStatus" type:"string" enum:"BotLocaleStatus"`
13091
13092	// The identifier of the version of the bot associated with the locale.
13093	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
13094
13095	// The date and time that the locale was created.
13096	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
13097
13098	// The description of the locale.
13099	Description *string `locationName:"description" type:"string"`
13100
13101	// if botLocaleStatus is Failed, Amazon Lex explains why it failed to build
13102	// the bot.
13103	FailureReasons []*string `locationName:"failureReasons" type:"list"`
13104
13105	// The number of intents defined for the locale.
13106	IntentsCount *int64 `locationName:"intentsCount" type:"integer"`
13107
13108	// The date and time that the locale was last submitted for building.
13109	LastBuildSubmittedDateTime *time.Time `locationName:"lastBuildSubmittedDateTime" type:"timestamp"`
13110
13111	// The date and time that the locale was last updated.
13112	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
13113
13114	// The unique identifier of the described locale.
13115	LocaleId *string `locationName:"localeId" type:"string"`
13116
13117	// The name of the locale.
13118	LocaleName *string `locationName:"localeName" type:"string"`
13119
13120	// The confidence threshold where Amazon Lex inserts the AMAZON.FallbackIntent
13121	// and AMAZON.KendraSearchIntent intents in the list of possible intents for
13122	// an utterance.
13123	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double"`
13124
13125	// The number of slot types defined for the locale.
13126	SlotTypesCount *int64 `locationName:"slotTypesCount" type:"integer"`
13127
13128	// The Amazon Polly voice Amazon Lex uses for voice interaction with the user.
13129	VoiceSettings *VoiceSettings `locationName:"voiceSettings" type:"structure"`
13130}
13131
13132// String returns the string representation.
13133//
13134// API parameter values that are decorated as "sensitive" in the API will not
13135// be included in the string output. The member name will be present, but the
13136// value will be replaced with "sensitive".
13137func (s DescribeBotLocaleOutput) String() string {
13138	return awsutil.Prettify(s)
13139}
13140
13141// GoString returns the string representation.
13142//
13143// API parameter values that are decorated as "sensitive" in the API will not
13144// be included in the string output. The member name will be present, but the
13145// value will be replaced with "sensitive".
13146func (s DescribeBotLocaleOutput) GoString() string {
13147	return s.String()
13148}
13149
13150// SetBotId sets the BotId field's value.
13151func (s *DescribeBotLocaleOutput) SetBotId(v string) *DescribeBotLocaleOutput {
13152	s.BotId = &v
13153	return s
13154}
13155
13156// SetBotLocaleHistoryEvents sets the BotLocaleHistoryEvents field's value.
13157func (s *DescribeBotLocaleOutput) SetBotLocaleHistoryEvents(v []*BotLocaleHistoryEvent) *DescribeBotLocaleOutput {
13158	s.BotLocaleHistoryEvents = v
13159	return s
13160}
13161
13162// SetBotLocaleStatus sets the BotLocaleStatus field's value.
13163func (s *DescribeBotLocaleOutput) SetBotLocaleStatus(v string) *DescribeBotLocaleOutput {
13164	s.BotLocaleStatus = &v
13165	return s
13166}
13167
13168// SetBotVersion sets the BotVersion field's value.
13169func (s *DescribeBotLocaleOutput) SetBotVersion(v string) *DescribeBotLocaleOutput {
13170	s.BotVersion = &v
13171	return s
13172}
13173
13174// SetCreationDateTime sets the CreationDateTime field's value.
13175func (s *DescribeBotLocaleOutput) SetCreationDateTime(v time.Time) *DescribeBotLocaleOutput {
13176	s.CreationDateTime = &v
13177	return s
13178}
13179
13180// SetDescription sets the Description field's value.
13181func (s *DescribeBotLocaleOutput) SetDescription(v string) *DescribeBotLocaleOutput {
13182	s.Description = &v
13183	return s
13184}
13185
13186// SetFailureReasons sets the FailureReasons field's value.
13187func (s *DescribeBotLocaleOutput) SetFailureReasons(v []*string) *DescribeBotLocaleOutput {
13188	s.FailureReasons = v
13189	return s
13190}
13191
13192// SetIntentsCount sets the IntentsCount field's value.
13193func (s *DescribeBotLocaleOutput) SetIntentsCount(v int64) *DescribeBotLocaleOutput {
13194	s.IntentsCount = &v
13195	return s
13196}
13197
13198// SetLastBuildSubmittedDateTime sets the LastBuildSubmittedDateTime field's value.
13199func (s *DescribeBotLocaleOutput) SetLastBuildSubmittedDateTime(v time.Time) *DescribeBotLocaleOutput {
13200	s.LastBuildSubmittedDateTime = &v
13201	return s
13202}
13203
13204// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
13205func (s *DescribeBotLocaleOutput) SetLastUpdatedDateTime(v time.Time) *DescribeBotLocaleOutput {
13206	s.LastUpdatedDateTime = &v
13207	return s
13208}
13209
13210// SetLocaleId sets the LocaleId field's value.
13211func (s *DescribeBotLocaleOutput) SetLocaleId(v string) *DescribeBotLocaleOutput {
13212	s.LocaleId = &v
13213	return s
13214}
13215
13216// SetLocaleName sets the LocaleName field's value.
13217func (s *DescribeBotLocaleOutput) SetLocaleName(v string) *DescribeBotLocaleOutput {
13218	s.LocaleName = &v
13219	return s
13220}
13221
13222// SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
13223func (s *DescribeBotLocaleOutput) SetNluIntentConfidenceThreshold(v float64) *DescribeBotLocaleOutput {
13224	s.NluIntentConfidenceThreshold = &v
13225	return s
13226}
13227
13228// SetSlotTypesCount sets the SlotTypesCount field's value.
13229func (s *DescribeBotLocaleOutput) SetSlotTypesCount(v int64) *DescribeBotLocaleOutput {
13230	s.SlotTypesCount = &v
13231	return s
13232}
13233
13234// SetVoiceSettings sets the VoiceSettings field's value.
13235func (s *DescribeBotLocaleOutput) SetVoiceSettings(v *VoiceSettings) *DescribeBotLocaleOutput {
13236	s.VoiceSettings = v
13237	return s
13238}
13239
13240type DescribeBotOutput struct {
13241	_ struct{} `type:"structure"`
13242
13243	// The unique identifier of the bot.
13244	BotId *string `locationName:"botId" min:"10" type:"string"`
13245
13246	// The name of the bot.
13247	BotName *string `locationName:"botName" min:"1" type:"string"`
13248
13249	// The current status of the bot. When the status is Available the bot is ready
13250	// to be used in conversations with users.
13251	BotStatus *string `locationName:"botStatus" type:"string" enum:"BotStatus"`
13252
13253	// A timestamp of the date and time that the bot was created.
13254	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
13255
13256	// Settings for managing data privacy of the bot and its conversations with
13257	// users.
13258	DataPrivacy *DataPrivacy `locationName:"dataPrivacy" type:"structure"`
13259
13260	// The description of the bot.
13261	Description *string `locationName:"description" type:"string"`
13262
13263	// The maximum time in seconds that Amazon Lex retains the data gathered in
13264	// a conversation.
13265	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
13266
13267	// A timestamp of the date and time that the bot was last updated.
13268	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
13269
13270	// The Amazon Resource Name (ARN) of an IAM role that has permission to access
13271	// the bot.
13272	RoleArn *string `locationName:"roleArn" min:"32" type:"string"`
13273}
13274
13275// String returns the string representation.
13276//
13277// API parameter values that are decorated as "sensitive" in the API will not
13278// be included in the string output. The member name will be present, but the
13279// value will be replaced with "sensitive".
13280func (s DescribeBotOutput) String() string {
13281	return awsutil.Prettify(s)
13282}
13283
13284// GoString returns the string representation.
13285//
13286// API parameter values that are decorated as "sensitive" in the API will not
13287// be included in the string output. The member name will be present, but the
13288// value will be replaced with "sensitive".
13289func (s DescribeBotOutput) GoString() string {
13290	return s.String()
13291}
13292
13293// SetBotId sets the BotId field's value.
13294func (s *DescribeBotOutput) SetBotId(v string) *DescribeBotOutput {
13295	s.BotId = &v
13296	return s
13297}
13298
13299// SetBotName sets the BotName field's value.
13300func (s *DescribeBotOutput) SetBotName(v string) *DescribeBotOutput {
13301	s.BotName = &v
13302	return s
13303}
13304
13305// SetBotStatus sets the BotStatus field's value.
13306func (s *DescribeBotOutput) SetBotStatus(v string) *DescribeBotOutput {
13307	s.BotStatus = &v
13308	return s
13309}
13310
13311// SetCreationDateTime sets the CreationDateTime field's value.
13312func (s *DescribeBotOutput) SetCreationDateTime(v time.Time) *DescribeBotOutput {
13313	s.CreationDateTime = &v
13314	return s
13315}
13316
13317// SetDataPrivacy sets the DataPrivacy field's value.
13318func (s *DescribeBotOutput) SetDataPrivacy(v *DataPrivacy) *DescribeBotOutput {
13319	s.DataPrivacy = v
13320	return s
13321}
13322
13323// SetDescription sets the Description field's value.
13324func (s *DescribeBotOutput) SetDescription(v string) *DescribeBotOutput {
13325	s.Description = &v
13326	return s
13327}
13328
13329// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
13330func (s *DescribeBotOutput) SetIdleSessionTTLInSeconds(v int64) *DescribeBotOutput {
13331	s.IdleSessionTTLInSeconds = &v
13332	return s
13333}
13334
13335// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
13336func (s *DescribeBotOutput) SetLastUpdatedDateTime(v time.Time) *DescribeBotOutput {
13337	s.LastUpdatedDateTime = &v
13338	return s
13339}
13340
13341// SetRoleArn sets the RoleArn field's value.
13342func (s *DescribeBotOutput) SetRoleArn(v string) *DescribeBotOutput {
13343	s.RoleArn = &v
13344	return s
13345}
13346
13347type DescribeBotVersionInput struct {
13348	_ struct{} `type:"structure" nopayload:"true"`
13349
13350	// The identifier of the bot containing the version to return metadata for.
13351	//
13352	// BotId is a required field
13353	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
13354
13355	// The version of the bot to return metadata for.
13356	//
13357	// BotVersion is a required field
13358	BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"`
13359}
13360
13361// String returns the string representation.
13362//
13363// API parameter values that are decorated as "sensitive" in the API will not
13364// be included in the string output. The member name will be present, but the
13365// value will be replaced with "sensitive".
13366func (s DescribeBotVersionInput) String() string {
13367	return awsutil.Prettify(s)
13368}
13369
13370// GoString returns the string representation.
13371//
13372// API parameter values that are decorated as "sensitive" in the API will not
13373// be included in the string output. The member name will be present, but the
13374// value will be replaced with "sensitive".
13375func (s DescribeBotVersionInput) GoString() string {
13376	return s.String()
13377}
13378
13379// Validate inspects the fields of the type to determine if they are valid.
13380func (s *DescribeBotVersionInput) Validate() error {
13381	invalidParams := request.ErrInvalidParams{Context: "DescribeBotVersionInput"}
13382	if s.BotId == nil {
13383		invalidParams.Add(request.NewErrParamRequired("BotId"))
13384	}
13385	if s.BotId != nil && len(*s.BotId) < 10 {
13386		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
13387	}
13388	if s.BotVersion == nil {
13389		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
13390	}
13391	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
13392		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
13393	}
13394
13395	if invalidParams.Len() > 0 {
13396		return invalidParams
13397	}
13398	return nil
13399}
13400
13401// SetBotId sets the BotId field's value.
13402func (s *DescribeBotVersionInput) SetBotId(v string) *DescribeBotVersionInput {
13403	s.BotId = &v
13404	return s
13405}
13406
13407// SetBotVersion sets the BotVersion field's value.
13408func (s *DescribeBotVersionInput) SetBotVersion(v string) *DescribeBotVersionInput {
13409	s.BotVersion = &v
13410	return s
13411}
13412
13413type DescribeBotVersionOutput struct {
13414	_ struct{} `type:"structure"`
13415
13416	// The identifier of the bot that contains the version.
13417	BotId *string `locationName:"botId" min:"10" type:"string"`
13418
13419	// The name of the bot that contains the version.
13420	BotName *string `locationName:"botName" min:"1" type:"string"`
13421
13422	// The current status of the bot. When the status is Available, the bot version
13423	// is ready for use.
13424	BotStatus *string `locationName:"botStatus" type:"string" enum:"BotStatus"`
13425
13426	// The version of the bot to describe.
13427	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
13428
13429	// A timestamp of the date and time that the bot version was created.
13430	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
13431
13432	// Data privacy settings for the bot version.
13433	DataPrivacy *DataPrivacy `locationName:"dataPrivacy" type:"structure"`
13434
13435	// The description specified for the bot.
13436	Description *string `locationName:"description" type:"string"`
13437
13438	// If the botStatus is Failed, this contains a list of reasons that the version
13439	// couldn't be built.
13440	FailureReasons []*string `locationName:"failureReasons" type:"list"`
13441
13442	// The number of seconds that a session with the bot remains active before it
13443	// is discarded by Amazon Lex.
13444	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
13445
13446	// The Amazon Resource Name (ARN) of an IAM role that has permission to access
13447	// the bot version.
13448	RoleArn *string `locationName:"roleArn" min:"32" type:"string"`
13449}
13450
13451// String returns the string representation.
13452//
13453// API parameter values that are decorated as "sensitive" in the API will not
13454// be included in the string output. The member name will be present, but the
13455// value will be replaced with "sensitive".
13456func (s DescribeBotVersionOutput) String() string {
13457	return awsutil.Prettify(s)
13458}
13459
13460// GoString returns the string representation.
13461//
13462// API parameter values that are decorated as "sensitive" in the API will not
13463// be included in the string output. The member name will be present, but the
13464// value will be replaced with "sensitive".
13465func (s DescribeBotVersionOutput) GoString() string {
13466	return s.String()
13467}
13468
13469// SetBotId sets the BotId field's value.
13470func (s *DescribeBotVersionOutput) SetBotId(v string) *DescribeBotVersionOutput {
13471	s.BotId = &v
13472	return s
13473}
13474
13475// SetBotName sets the BotName field's value.
13476func (s *DescribeBotVersionOutput) SetBotName(v string) *DescribeBotVersionOutput {
13477	s.BotName = &v
13478	return s
13479}
13480
13481// SetBotStatus sets the BotStatus field's value.
13482func (s *DescribeBotVersionOutput) SetBotStatus(v string) *DescribeBotVersionOutput {
13483	s.BotStatus = &v
13484	return s
13485}
13486
13487// SetBotVersion sets the BotVersion field's value.
13488func (s *DescribeBotVersionOutput) SetBotVersion(v string) *DescribeBotVersionOutput {
13489	s.BotVersion = &v
13490	return s
13491}
13492
13493// SetCreationDateTime sets the CreationDateTime field's value.
13494func (s *DescribeBotVersionOutput) SetCreationDateTime(v time.Time) *DescribeBotVersionOutput {
13495	s.CreationDateTime = &v
13496	return s
13497}
13498
13499// SetDataPrivacy sets the DataPrivacy field's value.
13500func (s *DescribeBotVersionOutput) SetDataPrivacy(v *DataPrivacy) *DescribeBotVersionOutput {
13501	s.DataPrivacy = v
13502	return s
13503}
13504
13505// SetDescription sets the Description field's value.
13506func (s *DescribeBotVersionOutput) SetDescription(v string) *DescribeBotVersionOutput {
13507	s.Description = &v
13508	return s
13509}
13510
13511// SetFailureReasons sets the FailureReasons field's value.
13512func (s *DescribeBotVersionOutput) SetFailureReasons(v []*string) *DescribeBotVersionOutput {
13513	s.FailureReasons = v
13514	return s
13515}
13516
13517// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
13518func (s *DescribeBotVersionOutput) SetIdleSessionTTLInSeconds(v int64) *DescribeBotVersionOutput {
13519	s.IdleSessionTTLInSeconds = &v
13520	return s
13521}
13522
13523// SetRoleArn sets the RoleArn field's value.
13524func (s *DescribeBotVersionOutput) SetRoleArn(v string) *DescribeBotVersionOutput {
13525	s.RoleArn = &v
13526	return s
13527}
13528
13529type DescribeExportInput struct {
13530	_ struct{} `type:"structure" nopayload:"true"`
13531
13532	// The unique identifier of the export to describe.
13533	//
13534	// ExportId is a required field
13535	ExportId *string `location:"uri" locationName:"exportId" min:"10" type:"string" required:"true"`
13536}
13537
13538// String returns the string representation.
13539//
13540// API parameter values that are decorated as "sensitive" in the API will not
13541// be included in the string output. The member name will be present, but the
13542// value will be replaced with "sensitive".
13543func (s DescribeExportInput) String() string {
13544	return awsutil.Prettify(s)
13545}
13546
13547// GoString returns the string representation.
13548//
13549// API parameter values that are decorated as "sensitive" in the API will not
13550// be included in the string output. The member name will be present, but the
13551// value will be replaced with "sensitive".
13552func (s DescribeExportInput) GoString() string {
13553	return s.String()
13554}
13555
13556// Validate inspects the fields of the type to determine if they are valid.
13557func (s *DescribeExportInput) Validate() error {
13558	invalidParams := request.ErrInvalidParams{Context: "DescribeExportInput"}
13559	if s.ExportId == nil {
13560		invalidParams.Add(request.NewErrParamRequired("ExportId"))
13561	}
13562	if s.ExportId != nil && len(*s.ExportId) < 10 {
13563		invalidParams.Add(request.NewErrParamMinLen("ExportId", 10))
13564	}
13565
13566	if invalidParams.Len() > 0 {
13567		return invalidParams
13568	}
13569	return nil
13570}
13571
13572// SetExportId sets the ExportId field's value.
13573func (s *DescribeExportInput) SetExportId(v string) *DescribeExportInput {
13574	s.ExportId = &v
13575	return s
13576}
13577
13578type DescribeExportOutput struct {
13579	_ struct{} `type:"structure"`
13580
13581	// The date and time that the export was created.
13582	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
13583
13584	// A pre-signed S3 URL that points to the bot or bot locale archive. The URL
13585	// is only available for 5 minutes after calling the DescribeExport operation.
13586	DownloadUrl *string `locationName:"downloadUrl" min:"1" type:"string"`
13587
13588	// The unique identifier of the described export.
13589	ExportId *string `locationName:"exportId" min:"10" type:"string"`
13590
13591	// The status of the export. When the status is Complete the export archive
13592	// file is available for download.
13593	ExportStatus *string `locationName:"exportStatus" type:"string" enum:"ExportStatus"`
13594
13595	// If the exportStatus is failed, contains one or more reasons why the export
13596	// could not be completed.
13597	FailureReasons []*string `locationName:"failureReasons" type:"list"`
13598
13599	// The file format used in the files that describe the bot or bot locale.
13600	FileFormat *string `locationName:"fileFormat" type:"string" enum:"ImportExportFileFormat"`
13601
13602	// The last date and time that the export was updated.
13603	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
13604
13605	// The bot, bot ID, and optional locale ID of the exported bot or bot locale.
13606	ResourceSpecification *ExportResourceSpecification `locationName:"resourceSpecification" type:"structure"`
13607}
13608
13609// String returns the string representation.
13610//
13611// API parameter values that are decorated as "sensitive" in the API will not
13612// be included in the string output. The member name will be present, but the
13613// value will be replaced with "sensitive".
13614func (s DescribeExportOutput) String() string {
13615	return awsutil.Prettify(s)
13616}
13617
13618// GoString returns the string representation.
13619//
13620// API parameter values that are decorated as "sensitive" in the API will not
13621// be included in the string output. The member name will be present, but the
13622// value will be replaced with "sensitive".
13623func (s DescribeExportOutput) GoString() string {
13624	return s.String()
13625}
13626
13627// SetCreationDateTime sets the CreationDateTime field's value.
13628func (s *DescribeExportOutput) SetCreationDateTime(v time.Time) *DescribeExportOutput {
13629	s.CreationDateTime = &v
13630	return s
13631}
13632
13633// SetDownloadUrl sets the DownloadUrl field's value.
13634func (s *DescribeExportOutput) SetDownloadUrl(v string) *DescribeExportOutput {
13635	s.DownloadUrl = &v
13636	return s
13637}
13638
13639// SetExportId sets the ExportId field's value.
13640func (s *DescribeExportOutput) SetExportId(v string) *DescribeExportOutput {
13641	s.ExportId = &v
13642	return s
13643}
13644
13645// SetExportStatus sets the ExportStatus field's value.
13646func (s *DescribeExportOutput) SetExportStatus(v string) *DescribeExportOutput {
13647	s.ExportStatus = &v
13648	return s
13649}
13650
13651// SetFailureReasons sets the FailureReasons field's value.
13652func (s *DescribeExportOutput) SetFailureReasons(v []*string) *DescribeExportOutput {
13653	s.FailureReasons = v
13654	return s
13655}
13656
13657// SetFileFormat sets the FileFormat field's value.
13658func (s *DescribeExportOutput) SetFileFormat(v string) *DescribeExportOutput {
13659	s.FileFormat = &v
13660	return s
13661}
13662
13663// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
13664func (s *DescribeExportOutput) SetLastUpdatedDateTime(v time.Time) *DescribeExportOutput {
13665	s.LastUpdatedDateTime = &v
13666	return s
13667}
13668
13669// SetResourceSpecification sets the ResourceSpecification field's value.
13670func (s *DescribeExportOutput) SetResourceSpecification(v *ExportResourceSpecification) *DescribeExportOutput {
13671	s.ResourceSpecification = v
13672	return s
13673}
13674
13675type DescribeImportInput struct {
13676	_ struct{} `type:"structure" nopayload:"true"`
13677
13678	// The unique identifier of the import to describe.
13679	//
13680	// ImportId is a required field
13681	ImportId *string `location:"uri" locationName:"importId" min:"10" type:"string" required:"true"`
13682}
13683
13684// String returns the string representation.
13685//
13686// API parameter values that are decorated as "sensitive" in the API will not
13687// be included in the string output. The member name will be present, but the
13688// value will be replaced with "sensitive".
13689func (s DescribeImportInput) String() string {
13690	return awsutil.Prettify(s)
13691}
13692
13693// GoString returns the string representation.
13694//
13695// API parameter values that are decorated as "sensitive" in the API will not
13696// be included in the string output. The member name will be present, but the
13697// value will be replaced with "sensitive".
13698func (s DescribeImportInput) GoString() string {
13699	return s.String()
13700}
13701
13702// Validate inspects the fields of the type to determine if they are valid.
13703func (s *DescribeImportInput) Validate() error {
13704	invalidParams := request.ErrInvalidParams{Context: "DescribeImportInput"}
13705	if s.ImportId == nil {
13706		invalidParams.Add(request.NewErrParamRequired("ImportId"))
13707	}
13708	if s.ImportId != nil && len(*s.ImportId) < 10 {
13709		invalidParams.Add(request.NewErrParamMinLen("ImportId", 10))
13710	}
13711
13712	if invalidParams.Len() > 0 {
13713		return invalidParams
13714	}
13715	return nil
13716}
13717
13718// SetImportId sets the ImportId field's value.
13719func (s *DescribeImportInput) SetImportId(v string) *DescribeImportInput {
13720	s.ImportId = &v
13721	return s
13722}
13723
13724type DescribeImportOutput struct {
13725	_ struct{} `type:"structure"`
13726
13727	// The date and time that the import was created.
13728	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
13729
13730	// If the importStatus field is Failed, this provides one or more reasons for
13731	// the failure.
13732	FailureReasons []*string `locationName:"failureReasons" type:"list"`
13733
13734	// The unique identifier of the described import.
13735	ImportId *string `locationName:"importId" min:"10" type:"string"`
13736
13737	// The status of the import process. When the status is Completed the resource
13738	// is imported and ready for use.
13739	ImportStatus *string `locationName:"importStatus" type:"string" enum:"ImportStatus"`
13740
13741	// The unique identifier that Amazon Lex assigned to the resource created by
13742	// the import.
13743	ImportedResourceId *string `locationName:"importedResourceId" min:"5" type:"string"`
13744
13745	// The name of the imported resource.
13746	ImportedResourceName *string `locationName:"importedResourceName" min:"1" type:"string"`
13747
13748	// The date and time that the import was last updated.
13749	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
13750
13751	// The strategy used when there was a name conflict between the imported resource
13752	// and an existing resource. When the merge strategy is FailOnConflict existing
13753	// resources are not overwritten and the import fails.
13754	MergeStrategy *string `locationName:"mergeStrategy" type:"string" enum:"MergeStrategy"`
13755
13756	// The specifications of the imported bot or bot locale.
13757	ResourceSpecification *ImportResourceSpecification `locationName:"resourceSpecification" type:"structure"`
13758}
13759
13760// String returns the string representation.
13761//
13762// API parameter values that are decorated as "sensitive" in the API will not
13763// be included in the string output. The member name will be present, but the
13764// value will be replaced with "sensitive".
13765func (s DescribeImportOutput) String() string {
13766	return awsutil.Prettify(s)
13767}
13768
13769// GoString returns the string representation.
13770//
13771// API parameter values that are decorated as "sensitive" in the API will not
13772// be included in the string output. The member name will be present, but the
13773// value will be replaced with "sensitive".
13774func (s DescribeImportOutput) GoString() string {
13775	return s.String()
13776}
13777
13778// SetCreationDateTime sets the CreationDateTime field's value.
13779func (s *DescribeImportOutput) SetCreationDateTime(v time.Time) *DescribeImportOutput {
13780	s.CreationDateTime = &v
13781	return s
13782}
13783
13784// SetFailureReasons sets the FailureReasons field's value.
13785func (s *DescribeImportOutput) SetFailureReasons(v []*string) *DescribeImportOutput {
13786	s.FailureReasons = v
13787	return s
13788}
13789
13790// SetImportId sets the ImportId field's value.
13791func (s *DescribeImportOutput) SetImportId(v string) *DescribeImportOutput {
13792	s.ImportId = &v
13793	return s
13794}
13795
13796// SetImportStatus sets the ImportStatus field's value.
13797func (s *DescribeImportOutput) SetImportStatus(v string) *DescribeImportOutput {
13798	s.ImportStatus = &v
13799	return s
13800}
13801
13802// SetImportedResourceId sets the ImportedResourceId field's value.
13803func (s *DescribeImportOutput) SetImportedResourceId(v string) *DescribeImportOutput {
13804	s.ImportedResourceId = &v
13805	return s
13806}
13807
13808// SetImportedResourceName sets the ImportedResourceName field's value.
13809func (s *DescribeImportOutput) SetImportedResourceName(v string) *DescribeImportOutput {
13810	s.ImportedResourceName = &v
13811	return s
13812}
13813
13814// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
13815func (s *DescribeImportOutput) SetLastUpdatedDateTime(v time.Time) *DescribeImportOutput {
13816	s.LastUpdatedDateTime = &v
13817	return s
13818}
13819
13820// SetMergeStrategy sets the MergeStrategy field's value.
13821func (s *DescribeImportOutput) SetMergeStrategy(v string) *DescribeImportOutput {
13822	s.MergeStrategy = &v
13823	return s
13824}
13825
13826// SetResourceSpecification sets the ResourceSpecification field's value.
13827func (s *DescribeImportOutput) SetResourceSpecification(v *ImportResourceSpecification) *DescribeImportOutput {
13828	s.ResourceSpecification = v
13829	return s
13830}
13831
13832type DescribeIntentInput struct {
13833	_ struct{} `type:"structure" nopayload:"true"`
13834
13835	// The identifier of the bot associated with the intent.
13836	//
13837	// BotId is a required field
13838	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
13839
13840	// The version of the bot associated with the intent.
13841	//
13842	// BotVersion is a required field
13843	BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"`
13844
13845	// The identifier of the intent to describe.
13846	//
13847	// IntentId is a required field
13848	IntentId *string `location:"uri" locationName:"intentId" min:"10" type:"string" required:"true"`
13849
13850	// The identifier of the language and locale of the intent to describe. The
13851	// string must match one of the supported locales. For more information, see
13852	// Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
13853	//
13854	// LocaleId is a required field
13855	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
13856}
13857
13858// String returns the string representation.
13859//
13860// API parameter values that are decorated as "sensitive" in the API will not
13861// be included in the string output. The member name will be present, but the
13862// value will be replaced with "sensitive".
13863func (s DescribeIntentInput) String() string {
13864	return awsutil.Prettify(s)
13865}
13866
13867// GoString returns the string representation.
13868//
13869// API parameter values that are decorated as "sensitive" in the API will not
13870// be included in the string output. The member name will be present, but the
13871// value will be replaced with "sensitive".
13872func (s DescribeIntentInput) GoString() string {
13873	return s.String()
13874}
13875
13876// Validate inspects the fields of the type to determine if they are valid.
13877func (s *DescribeIntentInput) Validate() error {
13878	invalidParams := request.ErrInvalidParams{Context: "DescribeIntentInput"}
13879	if s.BotId == nil {
13880		invalidParams.Add(request.NewErrParamRequired("BotId"))
13881	}
13882	if s.BotId != nil && len(*s.BotId) < 10 {
13883		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
13884	}
13885	if s.BotVersion == nil {
13886		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
13887	}
13888	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
13889		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
13890	}
13891	if s.IntentId == nil {
13892		invalidParams.Add(request.NewErrParamRequired("IntentId"))
13893	}
13894	if s.IntentId != nil && len(*s.IntentId) < 10 {
13895		invalidParams.Add(request.NewErrParamMinLen("IntentId", 10))
13896	}
13897	if s.LocaleId == nil {
13898		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
13899	}
13900	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
13901		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
13902	}
13903
13904	if invalidParams.Len() > 0 {
13905		return invalidParams
13906	}
13907	return nil
13908}
13909
13910// SetBotId sets the BotId field's value.
13911func (s *DescribeIntentInput) SetBotId(v string) *DescribeIntentInput {
13912	s.BotId = &v
13913	return s
13914}
13915
13916// SetBotVersion sets the BotVersion field's value.
13917func (s *DescribeIntentInput) SetBotVersion(v string) *DescribeIntentInput {
13918	s.BotVersion = &v
13919	return s
13920}
13921
13922// SetIntentId sets the IntentId field's value.
13923func (s *DescribeIntentInput) SetIntentId(v string) *DescribeIntentInput {
13924	s.IntentId = &v
13925	return s
13926}
13927
13928// SetLocaleId sets the LocaleId field's value.
13929func (s *DescribeIntentInput) SetLocaleId(v string) *DescribeIntentInput {
13930	s.LocaleId = &v
13931	return s
13932}
13933
13934type DescribeIntentOutput struct {
13935	_ struct{} `type:"structure"`
13936
13937	// The identifier of the bot associated with the intent.
13938	BotId *string `locationName:"botId" min:"10" type:"string"`
13939
13940	// The version of the bot associated with the intent.
13941	BotVersion *string `locationName:"botVersion" min:"5" type:"string"`
13942
13943	// A timestamp of the date and time that the intent was created.
13944	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
13945
13946	// The description of the intent.
13947	Description *string `locationName:"description" type:"string"`
13948
13949	// The Lambda function called during each turn of a conversation with the intent.
13950	DialogCodeHook *DialogCodeHookSettings `locationName:"dialogCodeHook" type:"structure"`
13951
13952	// The Lambda function called when the intent is complete and ready for fulfillment.
13953	FulfillmentCodeHook *FulfillmentCodeHookSettings `locationName:"fulfillmentCodeHook" type:"structure"`
13954
13955	// A list of contexts that must be active for the intent to be considered for
13956	// sending to the user.
13957	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
13958
13959	// The response that Amazon Lex sends to when the intent is closed.
13960	IntentClosingSetting *IntentClosingSetting `locationName:"intentClosingSetting" type:"structure"`
13961
13962	// Prompts that Amazon Lex sends to the user to confirm completion of an intent.
13963	IntentConfirmationSetting *IntentConfirmationSetting `locationName:"intentConfirmationSetting" type:"structure"`
13964
13965	// The unique identifier assigned to the intent when it was created.
13966	IntentId *string `locationName:"intentId" min:"10" type:"string"`
13967
13968	// The name specified for the intent.
13969	IntentName *string `locationName:"intentName" min:"1" type:"string"`
13970
13971	// Configuration information required to use the AMAZON.KendraSearchIntent intent.
13972	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
13973
13974	// A timestamp of the date and time that the intent was last updated.
13975	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
13976
13977	// The language and locale specified for the intent.
13978	LocaleId *string `locationName:"localeId" type:"string"`
13979
13980	// A list of contexts that are activated when the intent is fulfilled.
13981	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
13982
13983	// The identifier of the built-in intent that this intent is derived from, if
13984	// any.
13985	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
13986
13987	// User utterances that trigger this intent.
13988	SampleUtterances []*SampleUtterance `locationName:"sampleUtterances" type:"list"`
13989
13990	// The list that determines the priority that slots should be elicited from
13991	// the user.
13992	SlotPriorities []*SlotPriority `locationName:"slotPriorities" type:"list"`
13993}
13994
13995// String returns the string representation.
13996//
13997// API parameter values that are decorated as "sensitive" in the API will not
13998// be included in the string output. The member name will be present, but the
13999// value will be replaced with "sensitive".
14000func (s DescribeIntentOutput) String() string {
14001	return awsutil.Prettify(s)
14002}
14003
14004// GoString returns the string representation.
14005//
14006// API parameter values that are decorated as "sensitive" in the API will not
14007// be included in the string output. The member name will be present, but the
14008// value will be replaced with "sensitive".
14009func (s DescribeIntentOutput) GoString() string {
14010	return s.String()
14011}
14012
14013// SetBotId sets the BotId field's value.
14014func (s *DescribeIntentOutput) SetBotId(v string) *DescribeIntentOutput {
14015	s.BotId = &v
14016	return s
14017}
14018
14019// SetBotVersion sets the BotVersion field's value.
14020func (s *DescribeIntentOutput) SetBotVersion(v string) *DescribeIntentOutput {
14021	s.BotVersion = &v
14022	return s
14023}
14024
14025// SetCreationDateTime sets the CreationDateTime field's value.
14026func (s *DescribeIntentOutput) SetCreationDateTime(v time.Time) *DescribeIntentOutput {
14027	s.CreationDateTime = &v
14028	return s
14029}
14030
14031// SetDescription sets the Description field's value.
14032func (s *DescribeIntentOutput) SetDescription(v string) *DescribeIntentOutput {
14033	s.Description = &v
14034	return s
14035}
14036
14037// SetDialogCodeHook sets the DialogCodeHook field's value.
14038func (s *DescribeIntentOutput) SetDialogCodeHook(v *DialogCodeHookSettings) *DescribeIntentOutput {
14039	s.DialogCodeHook = v
14040	return s
14041}
14042
14043// SetFulfillmentCodeHook sets the FulfillmentCodeHook field's value.
14044func (s *DescribeIntentOutput) SetFulfillmentCodeHook(v *FulfillmentCodeHookSettings) *DescribeIntentOutput {
14045	s.FulfillmentCodeHook = v
14046	return s
14047}
14048
14049// SetInputContexts sets the InputContexts field's value.
14050func (s *DescribeIntentOutput) SetInputContexts(v []*InputContext) *DescribeIntentOutput {
14051	s.InputContexts = v
14052	return s
14053}
14054
14055// SetIntentClosingSetting sets the IntentClosingSetting field's value.
14056func (s *DescribeIntentOutput) SetIntentClosingSetting(v *IntentClosingSetting) *DescribeIntentOutput {
14057	s.IntentClosingSetting = v
14058	return s
14059}
14060
14061// SetIntentConfirmationSetting sets the IntentConfirmationSetting field's value.
14062func (s *DescribeIntentOutput) SetIntentConfirmationSetting(v *IntentConfirmationSetting) *DescribeIntentOutput {
14063	s.IntentConfirmationSetting = v
14064	return s
14065}
14066
14067// SetIntentId sets the IntentId field's value.
14068func (s *DescribeIntentOutput) SetIntentId(v string) *DescribeIntentOutput {
14069	s.IntentId = &v
14070	return s
14071}
14072
14073// SetIntentName sets the IntentName field's value.
14074func (s *DescribeIntentOutput) SetIntentName(v string) *DescribeIntentOutput {
14075	s.IntentName = &v
14076	return s
14077}
14078
14079// SetKendraConfiguration sets the KendraConfiguration field's value.
14080func (s *DescribeIntentOutput) SetKendraConfiguration(v *KendraConfiguration) *DescribeIntentOutput {
14081	s.KendraConfiguration = v
14082	return s
14083}
14084
14085// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
14086func (s *DescribeIntentOutput) SetLastUpdatedDateTime(v time.Time) *DescribeIntentOutput {
14087	s.LastUpdatedDateTime = &v
14088	return s
14089}
14090
14091// SetLocaleId sets the LocaleId field's value.
14092func (s *DescribeIntentOutput) SetLocaleId(v string) *DescribeIntentOutput {
14093	s.LocaleId = &v
14094	return s
14095}
14096
14097// SetOutputContexts sets the OutputContexts field's value.
14098func (s *DescribeIntentOutput) SetOutputContexts(v []*OutputContext) *DescribeIntentOutput {
14099	s.OutputContexts = v
14100	return s
14101}
14102
14103// SetParentIntentSignature sets the ParentIntentSignature field's value.
14104func (s *DescribeIntentOutput) SetParentIntentSignature(v string) *DescribeIntentOutput {
14105	s.ParentIntentSignature = &v
14106	return s
14107}
14108
14109// SetSampleUtterances sets the SampleUtterances field's value.
14110func (s *DescribeIntentOutput) SetSampleUtterances(v []*SampleUtterance) *DescribeIntentOutput {
14111	s.SampleUtterances = v
14112	return s
14113}
14114
14115// SetSlotPriorities sets the SlotPriorities field's value.
14116func (s *DescribeIntentOutput) SetSlotPriorities(v []*SlotPriority) *DescribeIntentOutput {
14117	s.SlotPriorities = v
14118	return s
14119}
14120
14121type DescribeResourcePolicyInput struct {
14122	_ struct{} `type:"structure" nopayload:"true"`
14123
14124	// The Amazon Resource Name (ARN) of the bot or bot alias that the resource
14125	// policy is attached to.
14126	//
14127	// ResourceArn is a required field
14128	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
14129}
14130
14131// String returns the string representation.
14132//
14133// API parameter values that are decorated as "sensitive" in the API will not
14134// be included in the string output. The member name will be present, but the
14135// value will be replaced with "sensitive".
14136func (s DescribeResourcePolicyInput) String() string {
14137	return awsutil.Prettify(s)
14138}
14139
14140// GoString returns the string representation.
14141//
14142// API parameter values that are decorated as "sensitive" in the API will not
14143// be included in the string output. The member name will be present, but the
14144// value will be replaced with "sensitive".
14145func (s DescribeResourcePolicyInput) GoString() string {
14146	return s.String()
14147}
14148
14149// Validate inspects the fields of the type to determine if they are valid.
14150func (s *DescribeResourcePolicyInput) Validate() error {
14151	invalidParams := request.ErrInvalidParams{Context: "DescribeResourcePolicyInput"}
14152	if s.ResourceArn == nil {
14153		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
14154	}
14155	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
14156		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
14157	}
14158
14159	if invalidParams.Len() > 0 {
14160		return invalidParams
14161	}
14162	return nil
14163}
14164
14165// SetResourceArn sets the ResourceArn field's value.
14166func (s *DescribeResourcePolicyInput) SetResourceArn(v string) *DescribeResourcePolicyInput {
14167	s.ResourceArn = &v
14168	return s
14169}
14170
14171type DescribeResourcePolicyOutput struct {
14172	_ struct{} `type:"structure"`
14173
14174	// The JSON structure that contains the resource policy. For more information
14175	// about the contents of a JSON policy document, see IAM JSON policy reference
14176	// (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html).
14177	Policy *string `locationName:"policy" min:"2" type:"string"`
14178
14179	// The Amazon Resource Name (ARN) of the bot or bot alias that the resource
14180	// policy is attached to.
14181	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string"`
14182
14183	// The current revision of the resource policy. Use the revision ID to make
14184	// sure that you are updating the most current version of a resource policy
14185	// when you add a policy statement to a resource, delete a resource, or update
14186	// a resource.
14187	RevisionId *string `locationName:"revisionId" min:"1" type:"string"`
14188}
14189
14190// String returns the string representation.
14191//
14192// API parameter values that are decorated as "sensitive" in the API will not
14193// be included in the string output. The member name will be present, but the
14194// value will be replaced with "sensitive".
14195func (s DescribeResourcePolicyOutput) String() string {
14196	return awsutil.Prettify(s)
14197}
14198
14199// GoString returns the string representation.
14200//
14201// API parameter values that are decorated as "sensitive" in the API will not
14202// be included in the string output. The member name will be present, but the
14203// value will be replaced with "sensitive".
14204func (s DescribeResourcePolicyOutput) GoString() string {
14205	return s.String()
14206}
14207
14208// SetPolicy sets the Policy field's value.
14209func (s *DescribeResourcePolicyOutput) SetPolicy(v string) *DescribeResourcePolicyOutput {
14210	s.Policy = &v
14211	return s
14212}
14213
14214// SetResourceArn sets the ResourceArn field's value.
14215func (s *DescribeResourcePolicyOutput) SetResourceArn(v string) *DescribeResourcePolicyOutput {
14216	s.ResourceArn = &v
14217	return s
14218}
14219
14220// SetRevisionId sets the RevisionId field's value.
14221func (s *DescribeResourcePolicyOutput) SetRevisionId(v string) *DescribeResourcePolicyOutput {
14222	s.RevisionId = &v
14223	return s
14224}
14225
14226type DescribeSlotInput struct {
14227	_ struct{} `type:"structure" nopayload:"true"`
14228
14229	// The identifier of the bot associated with the slot.
14230	//
14231	// BotId is a required field
14232	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
14233
14234	// The version of the bot associated with the slot.
14235	//
14236	// BotVersion is a required field
14237	BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"`
14238
14239	// The identifier of the intent that contains the slot.
14240	//
14241	// IntentId is a required field
14242	IntentId *string `location:"uri" locationName:"intentId" min:"10" type:"string" required:"true"`
14243
14244	// The identifier of the language and locale of the slot to describe. The string
14245	// must match one of the supported locales. For more information, see Supported
14246	// languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
14247	//
14248	// LocaleId is a required field
14249	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
14250
14251	// The unique identifier for the slot.
14252	//
14253	// SlotId is a required field
14254	SlotId *string `location:"uri" locationName:"slotId" min:"10" type:"string" required:"true"`
14255}
14256
14257// String returns the string representation.
14258//
14259// API parameter values that are decorated as "sensitive" in the API will not
14260// be included in the string output. The member name will be present, but the
14261// value will be replaced with "sensitive".
14262func (s DescribeSlotInput) String() string {
14263	return awsutil.Prettify(s)
14264}
14265
14266// GoString returns the string representation.
14267//
14268// API parameter values that are decorated as "sensitive" in the API will not
14269// be included in the string output. The member name will be present, but the
14270// value will be replaced with "sensitive".
14271func (s DescribeSlotInput) GoString() string {
14272	return s.String()
14273}
14274
14275// Validate inspects the fields of the type to determine if they are valid.
14276func (s *DescribeSlotInput) Validate() error {
14277	invalidParams := request.ErrInvalidParams{Context: "DescribeSlotInput"}
14278	if s.BotId == nil {
14279		invalidParams.Add(request.NewErrParamRequired("BotId"))
14280	}
14281	if s.BotId != nil && len(*s.BotId) < 10 {
14282		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
14283	}
14284	if s.BotVersion == nil {
14285		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
14286	}
14287	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
14288		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
14289	}
14290	if s.IntentId == nil {
14291		invalidParams.Add(request.NewErrParamRequired("IntentId"))
14292	}
14293	if s.IntentId != nil && len(*s.IntentId) < 10 {
14294		invalidParams.Add(request.NewErrParamMinLen("IntentId", 10))
14295	}
14296	if s.LocaleId == nil {
14297		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
14298	}
14299	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
14300		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
14301	}
14302	if s.SlotId == nil {
14303		invalidParams.Add(request.NewErrParamRequired("SlotId"))
14304	}
14305	if s.SlotId != nil && len(*s.SlotId) < 10 {
14306		invalidParams.Add(request.NewErrParamMinLen("SlotId", 10))
14307	}
14308
14309	if invalidParams.Len() > 0 {
14310		return invalidParams
14311	}
14312	return nil
14313}
14314
14315// SetBotId sets the BotId field's value.
14316func (s *DescribeSlotInput) SetBotId(v string) *DescribeSlotInput {
14317	s.BotId = &v
14318	return s
14319}
14320
14321// SetBotVersion sets the BotVersion field's value.
14322func (s *DescribeSlotInput) SetBotVersion(v string) *DescribeSlotInput {
14323	s.BotVersion = &v
14324	return s
14325}
14326
14327// SetIntentId sets the IntentId field's value.
14328func (s *DescribeSlotInput) SetIntentId(v string) *DescribeSlotInput {
14329	s.IntentId = &v
14330	return s
14331}
14332
14333// SetLocaleId sets the LocaleId field's value.
14334func (s *DescribeSlotInput) SetLocaleId(v string) *DescribeSlotInput {
14335	s.LocaleId = &v
14336	return s
14337}
14338
14339// SetSlotId sets the SlotId field's value.
14340func (s *DescribeSlotInput) SetSlotId(v string) *DescribeSlotInput {
14341	s.SlotId = &v
14342	return s
14343}
14344
14345type DescribeSlotOutput struct {
14346	_ struct{} `type:"structure"`
14347
14348	// The identifier of the bot associated with the slot.
14349	BotId *string `locationName:"botId" min:"10" type:"string"`
14350
14351	// The version of the bot associated with the slot.
14352	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
14353
14354	// A timestamp of the date and time that the slot was created.
14355	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
14356
14357	// The description specified for the slot.
14358	Description *string `locationName:"description" type:"string"`
14359
14360	// The identifier of the intent associated with the slot.
14361	IntentId *string `locationName:"intentId" min:"10" type:"string"`
14362
14363	// A timestamp of the date and time that the slot was last updated.
14364	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
14365
14366	// The language and locale specified for the slot.
14367	LocaleId *string `locationName:"localeId" type:"string"`
14368
14369	// Indicates whether the slot accepts multiple values in a single utterance.
14370	//
14371	// If the multipleValuesSetting is not set, the default value is false.
14372	MultipleValuesSetting *MultipleValuesSetting `locationName:"multipleValuesSetting" type:"structure"`
14373
14374	// Whether slot values are shown in Amazon CloudWatch logs. If the value is
14375	// None, the actual value of the slot is shown in logs.
14376	ObfuscationSetting *ObfuscationSetting `locationName:"obfuscationSetting" type:"structure"`
14377
14378	// The unique identifier generated for the slot.
14379	SlotId *string `locationName:"slotId" min:"10" type:"string"`
14380
14381	// The name specified for the slot.
14382	SlotName *string `locationName:"slotName" min:"1" type:"string"`
14383
14384	// The identifier of the slot type that determines the values entered into the
14385	// slot.
14386	SlotTypeId *string `locationName:"slotTypeId" min:"1" type:"string"`
14387
14388	// Prompts that Amazon Lex uses to elicit a value for the slot.
14389	ValueElicitationSetting *SlotValueElicitationSetting `locationName:"valueElicitationSetting" type:"structure"`
14390}
14391
14392// String returns the string representation.
14393//
14394// API parameter values that are decorated as "sensitive" in the API will not
14395// be included in the string output. The member name will be present, but the
14396// value will be replaced with "sensitive".
14397func (s DescribeSlotOutput) String() string {
14398	return awsutil.Prettify(s)
14399}
14400
14401// GoString returns the string representation.
14402//
14403// API parameter values that are decorated as "sensitive" in the API will not
14404// be included in the string output. The member name will be present, but the
14405// value will be replaced with "sensitive".
14406func (s DescribeSlotOutput) GoString() string {
14407	return s.String()
14408}
14409
14410// SetBotId sets the BotId field's value.
14411func (s *DescribeSlotOutput) SetBotId(v string) *DescribeSlotOutput {
14412	s.BotId = &v
14413	return s
14414}
14415
14416// SetBotVersion sets the BotVersion field's value.
14417func (s *DescribeSlotOutput) SetBotVersion(v string) *DescribeSlotOutput {
14418	s.BotVersion = &v
14419	return s
14420}
14421
14422// SetCreationDateTime sets the CreationDateTime field's value.
14423func (s *DescribeSlotOutput) SetCreationDateTime(v time.Time) *DescribeSlotOutput {
14424	s.CreationDateTime = &v
14425	return s
14426}
14427
14428// SetDescription sets the Description field's value.
14429func (s *DescribeSlotOutput) SetDescription(v string) *DescribeSlotOutput {
14430	s.Description = &v
14431	return s
14432}
14433
14434// SetIntentId sets the IntentId field's value.
14435func (s *DescribeSlotOutput) SetIntentId(v string) *DescribeSlotOutput {
14436	s.IntentId = &v
14437	return s
14438}
14439
14440// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
14441func (s *DescribeSlotOutput) SetLastUpdatedDateTime(v time.Time) *DescribeSlotOutput {
14442	s.LastUpdatedDateTime = &v
14443	return s
14444}
14445
14446// SetLocaleId sets the LocaleId field's value.
14447func (s *DescribeSlotOutput) SetLocaleId(v string) *DescribeSlotOutput {
14448	s.LocaleId = &v
14449	return s
14450}
14451
14452// SetMultipleValuesSetting sets the MultipleValuesSetting field's value.
14453func (s *DescribeSlotOutput) SetMultipleValuesSetting(v *MultipleValuesSetting) *DescribeSlotOutput {
14454	s.MultipleValuesSetting = v
14455	return s
14456}
14457
14458// SetObfuscationSetting sets the ObfuscationSetting field's value.
14459func (s *DescribeSlotOutput) SetObfuscationSetting(v *ObfuscationSetting) *DescribeSlotOutput {
14460	s.ObfuscationSetting = v
14461	return s
14462}
14463
14464// SetSlotId sets the SlotId field's value.
14465func (s *DescribeSlotOutput) SetSlotId(v string) *DescribeSlotOutput {
14466	s.SlotId = &v
14467	return s
14468}
14469
14470// SetSlotName sets the SlotName field's value.
14471func (s *DescribeSlotOutput) SetSlotName(v string) *DescribeSlotOutput {
14472	s.SlotName = &v
14473	return s
14474}
14475
14476// SetSlotTypeId sets the SlotTypeId field's value.
14477func (s *DescribeSlotOutput) SetSlotTypeId(v string) *DescribeSlotOutput {
14478	s.SlotTypeId = &v
14479	return s
14480}
14481
14482// SetValueElicitationSetting sets the ValueElicitationSetting field's value.
14483func (s *DescribeSlotOutput) SetValueElicitationSetting(v *SlotValueElicitationSetting) *DescribeSlotOutput {
14484	s.ValueElicitationSetting = v
14485	return s
14486}
14487
14488type DescribeSlotTypeInput struct {
14489	_ struct{} `type:"structure" nopayload:"true"`
14490
14491	// The identifier of the bot associated with the slot type.
14492	//
14493	// BotId is a required field
14494	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
14495
14496	// The version of the bot associated with the slot type.
14497	//
14498	// BotVersion is a required field
14499	BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"`
14500
14501	// The identifier of the language and locale of the slot type to describe. The
14502	// string must match one of the supported locales. For more information, see
14503	// Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
14504	//
14505	// LocaleId is a required field
14506	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
14507
14508	// The identifier of the slot type.
14509	//
14510	// SlotTypeId is a required field
14511	SlotTypeId *string `location:"uri" locationName:"slotTypeId" min:"10" type:"string" required:"true"`
14512}
14513
14514// String returns the string representation.
14515//
14516// API parameter values that are decorated as "sensitive" in the API will not
14517// be included in the string output. The member name will be present, but the
14518// value will be replaced with "sensitive".
14519func (s DescribeSlotTypeInput) String() string {
14520	return awsutil.Prettify(s)
14521}
14522
14523// GoString returns the string representation.
14524//
14525// API parameter values that are decorated as "sensitive" in the API will not
14526// be included in the string output. The member name will be present, but the
14527// value will be replaced with "sensitive".
14528func (s DescribeSlotTypeInput) GoString() string {
14529	return s.String()
14530}
14531
14532// Validate inspects the fields of the type to determine if they are valid.
14533func (s *DescribeSlotTypeInput) Validate() error {
14534	invalidParams := request.ErrInvalidParams{Context: "DescribeSlotTypeInput"}
14535	if s.BotId == nil {
14536		invalidParams.Add(request.NewErrParamRequired("BotId"))
14537	}
14538	if s.BotId != nil && len(*s.BotId) < 10 {
14539		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
14540	}
14541	if s.BotVersion == nil {
14542		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
14543	}
14544	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
14545		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
14546	}
14547	if s.LocaleId == nil {
14548		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
14549	}
14550	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
14551		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
14552	}
14553	if s.SlotTypeId == nil {
14554		invalidParams.Add(request.NewErrParamRequired("SlotTypeId"))
14555	}
14556	if s.SlotTypeId != nil && len(*s.SlotTypeId) < 10 {
14557		invalidParams.Add(request.NewErrParamMinLen("SlotTypeId", 10))
14558	}
14559
14560	if invalidParams.Len() > 0 {
14561		return invalidParams
14562	}
14563	return nil
14564}
14565
14566// SetBotId sets the BotId field's value.
14567func (s *DescribeSlotTypeInput) SetBotId(v string) *DescribeSlotTypeInput {
14568	s.BotId = &v
14569	return s
14570}
14571
14572// SetBotVersion sets the BotVersion field's value.
14573func (s *DescribeSlotTypeInput) SetBotVersion(v string) *DescribeSlotTypeInput {
14574	s.BotVersion = &v
14575	return s
14576}
14577
14578// SetLocaleId sets the LocaleId field's value.
14579func (s *DescribeSlotTypeInput) SetLocaleId(v string) *DescribeSlotTypeInput {
14580	s.LocaleId = &v
14581	return s
14582}
14583
14584// SetSlotTypeId sets the SlotTypeId field's value.
14585func (s *DescribeSlotTypeInput) SetSlotTypeId(v string) *DescribeSlotTypeInput {
14586	s.SlotTypeId = &v
14587	return s
14588}
14589
14590type DescribeSlotTypeOutput struct {
14591	_ struct{} `type:"structure"`
14592
14593	// The identifier of the bot associated with the slot type.
14594	BotId *string `locationName:"botId" min:"10" type:"string"`
14595
14596	// The version of the bot associated with the slot type.
14597	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
14598
14599	// A timestamp of the date and time that the slot type was created.
14600	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
14601
14602	// The description specified for the slot type.
14603	Description *string `locationName:"description" type:"string"`
14604
14605	// A timestamp of the date and time that the slot type was last updated.
14606	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
14607
14608	// The language and locale specified for the slot type.
14609	LocaleId *string `locationName:"localeId" type:"string"`
14610
14611	// The built in slot type used as a parent to this slot type.
14612	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" type:"string"`
14613
14614	// The unique identifier for the slot type.
14615	SlotTypeId *string `locationName:"slotTypeId" min:"10" type:"string"`
14616
14617	// The name specified for the slot type.
14618	SlotTypeName *string `locationName:"slotTypeName" min:"1" type:"string"`
14619
14620	// The values that the slot type can take. Includes any synonyms for the slot
14621	// type values.
14622	SlotTypeValues []*SlotTypeValue `locationName:"slotTypeValues" min:"1" type:"list"`
14623
14624	// The strategy that Amazon Lex uses to choose a value from a list of possible
14625	// values.
14626	ValueSelectionSetting *SlotValueSelectionSetting `locationName:"valueSelectionSetting" type:"structure"`
14627}
14628
14629// String returns the string representation.
14630//
14631// API parameter values that are decorated as "sensitive" in the API will not
14632// be included in the string output. The member name will be present, but the
14633// value will be replaced with "sensitive".
14634func (s DescribeSlotTypeOutput) String() string {
14635	return awsutil.Prettify(s)
14636}
14637
14638// GoString returns the string representation.
14639//
14640// API parameter values that are decorated as "sensitive" in the API will not
14641// be included in the string output. The member name will be present, but the
14642// value will be replaced with "sensitive".
14643func (s DescribeSlotTypeOutput) GoString() string {
14644	return s.String()
14645}
14646
14647// SetBotId sets the BotId field's value.
14648func (s *DescribeSlotTypeOutput) SetBotId(v string) *DescribeSlotTypeOutput {
14649	s.BotId = &v
14650	return s
14651}
14652
14653// SetBotVersion sets the BotVersion field's value.
14654func (s *DescribeSlotTypeOutput) SetBotVersion(v string) *DescribeSlotTypeOutput {
14655	s.BotVersion = &v
14656	return s
14657}
14658
14659// SetCreationDateTime sets the CreationDateTime field's value.
14660func (s *DescribeSlotTypeOutput) SetCreationDateTime(v time.Time) *DescribeSlotTypeOutput {
14661	s.CreationDateTime = &v
14662	return s
14663}
14664
14665// SetDescription sets the Description field's value.
14666func (s *DescribeSlotTypeOutput) SetDescription(v string) *DescribeSlotTypeOutput {
14667	s.Description = &v
14668	return s
14669}
14670
14671// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
14672func (s *DescribeSlotTypeOutput) SetLastUpdatedDateTime(v time.Time) *DescribeSlotTypeOutput {
14673	s.LastUpdatedDateTime = &v
14674	return s
14675}
14676
14677// SetLocaleId sets the LocaleId field's value.
14678func (s *DescribeSlotTypeOutput) SetLocaleId(v string) *DescribeSlotTypeOutput {
14679	s.LocaleId = &v
14680	return s
14681}
14682
14683// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
14684func (s *DescribeSlotTypeOutput) SetParentSlotTypeSignature(v string) *DescribeSlotTypeOutput {
14685	s.ParentSlotTypeSignature = &v
14686	return s
14687}
14688
14689// SetSlotTypeId sets the SlotTypeId field's value.
14690func (s *DescribeSlotTypeOutput) SetSlotTypeId(v string) *DescribeSlotTypeOutput {
14691	s.SlotTypeId = &v
14692	return s
14693}
14694
14695// SetSlotTypeName sets the SlotTypeName field's value.
14696func (s *DescribeSlotTypeOutput) SetSlotTypeName(v string) *DescribeSlotTypeOutput {
14697	s.SlotTypeName = &v
14698	return s
14699}
14700
14701// SetSlotTypeValues sets the SlotTypeValues field's value.
14702func (s *DescribeSlotTypeOutput) SetSlotTypeValues(v []*SlotTypeValue) *DescribeSlotTypeOutput {
14703	s.SlotTypeValues = v
14704	return s
14705}
14706
14707// SetValueSelectionSetting sets the ValueSelectionSetting field's value.
14708func (s *DescribeSlotTypeOutput) SetValueSelectionSetting(v *SlotValueSelectionSetting) *DescribeSlotTypeOutput {
14709	s.ValueSelectionSetting = v
14710	return s
14711}
14712
14713// Settings that determine the Lambda function that Amazon Lex uses for processing
14714// user responses.
14715type DialogCodeHookSettings struct {
14716	_ struct{} `type:"structure"`
14717
14718	// Enables the dialog code hook so that it processes user requests.
14719	//
14720	// Enabled is a required field
14721	Enabled *bool `locationName:"enabled" type:"boolean" required:"true"`
14722}
14723
14724// String returns the string representation.
14725//
14726// API parameter values that are decorated as "sensitive" in the API will not
14727// be included in the string output. The member name will be present, but the
14728// value will be replaced with "sensitive".
14729func (s DialogCodeHookSettings) String() string {
14730	return awsutil.Prettify(s)
14731}
14732
14733// GoString returns the string representation.
14734//
14735// API parameter values that are decorated as "sensitive" in the API will not
14736// be included in the string output. The member name will be present, but the
14737// value will be replaced with "sensitive".
14738func (s DialogCodeHookSettings) GoString() string {
14739	return s.String()
14740}
14741
14742// Validate inspects the fields of the type to determine if they are valid.
14743func (s *DialogCodeHookSettings) Validate() error {
14744	invalidParams := request.ErrInvalidParams{Context: "DialogCodeHookSettings"}
14745	if s.Enabled == nil {
14746		invalidParams.Add(request.NewErrParamRequired("Enabled"))
14747	}
14748
14749	if invalidParams.Len() > 0 {
14750		return invalidParams
14751	}
14752	return nil
14753}
14754
14755// SetEnabled sets the Enabled field's value.
14756func (s *DialogCodeHookSettings) SetEnabled(v bool) *DialogCodeHookSettings {
14757	s.Enabled = &v
14758	return s
14759}
14760
14761// Filters the response form the operation
14762type ExportFilter struct {
14763	_ struct{} `type:"structure"`
14764
14765	// The name of the field to use for filtering.
14766	//
14767	// Name is a required field
14768	Name *string `locationName:"name" type:"string" required:"true" enum:"ExportFilterName"`
14769
14770	// The operator to use for the filter. Specify EQ when the ListExports operation
14771	// should return only resource types that equal the specified value. Specify
14772	// CO when the ListExports operation should return resource types that contain
14773	// the specified value.
14774	//
14775	// Operator is a required field
14776	Operator *string `locationName:"operator" type:"string" required:"true" enum:"ExportFilterOperator"`
14777
14778	// The values to use to filter the response.
14779	//
14780	// Values is a required field
14781	Values []*string `locationName:"values" min:"1" type:"list" required:"true"`
14782}
14783
14784// String returns the string representation.
14785//
14786// API parameter values that are decorated as "sensitive" in the API will not
14787// be included in the string output. The member name will be present, but the
14788// value will be replaced with "sensitive".
14789func (s ExportFilter) String() string {
14790	return awsutil.Prettify(s)
14791}
14792
14793// GoString returns the string representation.
14794//
14795// API parameter values that are decorated as "sensitive" in the API will not
14796// be included in the string output. The member name will be present, but the
14797// value will be replaced with "sensitive".
14798func (s ExportFilter) GoString() string {
14799	return s.String()
14800}
14801
14802// Validate inspects the fields of the type to determine if they are valid.
14803func (s *ExportFilter) Validate() error {
14804	invalidParams := request.ErrInvalidParams{Context: "ExportFilter"}
14805	if s.Name == nil {
14806		invalidParams.Add(request.NewErrParamRequired("Name"))
14807	}
14808	if s.Operator == nil {
14809		invalidParams.Add(request.NewErrParamRequired("Operator"))
14810	}
14811	if s.Values == nil {
14812		invalidParams.Add(request.NewErrParamRequired("Values"))
14813	}
14814	if s.Values != nil && len(s.Values) < 1 {
14815		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
14816	}
14817
14818	if invalidParams.Len() > 0 {
14819		return invalidParams
14820	}
14821	return nil
14822}
14823
14824// SetName sets the Name field's value.
14825func (s *ExportFilter) SetName(v string) *ExportFilter {
14826	s.Name = &v
14827	return s
14828}
14829
14830// SetOperator sets the Operator field's value.
14831func (s *ExportFilter) SetOperator(v string) *ExportFilter {
14832	s.Operator = &v
14833	return s
14834}
14835
14836// SetValues sets the Values field's value.
14837func (s *ExportFilter) SetValues(v []*string) *ExportFilter {
14838	s.Values = v
14839	return s
14840}
14841
14842// Provides information about the bot or bot locale that you want to export.
14843// You can specify the botExportSpecification or the botLocaleExportSpecification,
14844// but not both.
14845type ExportResourceSpecification struct {
14846	_ struct{} `type:"structure"`
14847
14848	// Parameters for exporting a bot.
14849	BotExportSpecification *BotExportSpecification `locationName:"botExportSpecification" type:"structure"`
14850
14851	// Parameters for exporting a bot locale.
14852	BotLocaleExportSpecification *BotLocaleExportSpecification `locationName:"botLocaleExportSpecification" type:"structure"`
14853}
14854
14855// String returns the string representation.
14856//
14857// API parameter values that are decorated as "sensitive" in the API will not
14858// be included in the string output. The member name will be present, but the
14859// value will be replaced with "sensitive".
14860func (s ExportResourceSpecification) String() string {
14861	return awsutil.Prettify(s)
14862}
14863
14864// GoString returns the string representation.
14865//
14866// API parameter values that are decorated as "sensitive" in the API will not
14867// be included in the string output. The member name will be present, but the
14868// value will be replaced with "sensitive".
14869func (s ExportResourceSpecification) GoString() string {
14870	return s.String()
14871}
14872
14873// Validate inspects the fields of the type to determine if they are valid.
14874func (s *ExportResourceSpecification) Validate() error {
14875	invalidParams := request.ErrInvalidParams{Context: "ExportResourceSpecification"}
14876	if s.BotExportSpecification != nil {
14877		if err := s.BotExportSpecification.Validate(); err != nil {
14878			invalidParams.AddNested("BotExportSpecification", err.(request.ErrInvalidParams))
14879		}
14880	}
14881	if s.BotLocaleExportSpecification != nil {
14882		if err := s.BotLocaleExportSpecification.Validate(); err != nil {
14883			invalidParams.AddNested("BotLocaleExportSpecification", err.(request.ErrInvalidParams))
14884		}
14885	}
14886
14887	if invalidParams.Len() > 0 {
14888		return invalidParams
14889	}
14890	return nil
14891}
14892
14893// SetBotExportSpecification sets the BotExportSpecification field's value.
14894func (s *ExportResourceSpecification) SetBotExportSpecification(v *BotExportSpecification) *ExportResourceSpecification {
14895	s.BotExportSpecification = v
14896	return s
14897}
14898
14899// SetBotLocaleExportSpecification sets the BotLocaleExportSpecification field's value.
14900func (s *ExportResourceSpecification) SetBotLocaleExportSpecification(v *BotLocaleExportSpecification) *ExportResourceSpecification {
14901	s.BotLocaleExportSpecification = v
14902	return s
14903}
14904
14905// Provides information about sorting a list of exports.
14906type ExportSortBy struct {
14907	_ struct{} `type:"structure"`
14908
14909	// The export field to use for sorting.
14910	//
14911	// Attribute is a required field
14912	Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"ExportSortAttribute"`
14913
14914	// The order to sort the list.
14915	//
14916	// Order is a required field
14917	Order *string `locationName:"order" type:"string" required:"true" enum:"SortOrder"`
14918}
14919
14920// String returns the string representation.
14921//
14922// API parameter values that are decorated as "sensitive" in the API will not
14923// be included in the string output. The member name will be present, but the
14924// value will be replaced with "sensitive".
14925func (s ExportSortBy) String() string {
14926	return awsutil.Prettify(s)
14927}
14928
14929// GoString returns the string representation.
14930//
14931// API parameter values that are decorated as "sensitive" in the API will not
14932// be included in the string output. The member name will be present, but the
14933// value will be replaced with "sensitive".
14934func (s ExportSortBy) GoString() string {
14935	return s.String()
14936}
14937
14938// Validate inspects the fields of the type to determine if they are valid.
14939func (s *ExportSortBy) Validate() error {
14940	invalidParams := request.ErrInvalidParams{Context: "ExportSortBy"}
14941	if s.Attribute == nil {
14942		invalidParams.Add(request.NewErrParamRequired("Attribute"))
14943	}
14944	if s.Order == nil {
14945		invalidParams.Add(request.NewErrParamRequired("Order"))
14946	}
14947
14948	if invalidParams.Len() > 0 {
14949		return invalidParams
14950	}
14951	return nil
14952}
14953
14954// SetAttribute sets the Attribute field's value.
14955func (s *ExportSortBy) SetAttribute(v string) *ExportSortBy {
14956	s.Attribute = &v
14957	return s
14958}
14959
14960// SetOrder sets the Order field's value.
14961func (s *ExportSortBy) SetOrder(v string) *ExportSortBy {
14962	s.Order = &v
14963	return s
14964}
14965
14966// Provides summary information about an export in an export list.
14967type ExportSummary struct {
14968	_ struct{} `type:"structure"`
14969
14970	// The date and time that the export was created.
14971	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
14972
14973	// The unique identifier that Amazon Lex assigned to the export.
14974	ExportId *string `locationName:"exportId" min:"10" type:"string"`
14975
14976	// The status of the export. When the status is Completed the export is ready
14977	// to download.
14978	ExportStatus *string `locationName:"exportStatus" type:"string" enum:"ExportStatus"`
14979
14980	// The file format used in the export files.
14981	FileFormat *string `locationName:"fileFormat" type:"string" enum:"ImportExportFileFormat"`
14982
14983	// The date and time that the export was last updated.
14984	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
14985
14986	// Information about the bot or bot locale that was exported.
14987	ResourceSpecification *ExportResourceSpecification `locationName:"resourceSpecification" type:"structure"`
14988}
14989
14990// String returns the string representation.
14991//
14992// API parameter values that are decorated as "sensitive" in the API will not
14993// be included in the string output. The member name will be present, but the
14994// value will be replaced with "sensitive".
14995func (s ExportSummary) String() string {
14996	return awsutil.Prettify(s)
14997}
14998
14999// GoString returns the string representation.
15000//
15001// API parameter values that are decorated as "sensitive" in the API will not
15002// be included in the string output. The member name will be present, but the
15003// value will be replaced with "sensitive".
15004func (s ExportSummary) GoString() string {
15005	return s.String()
15006}
15007
15008// SetCreationDateTime sets the CreationDateTime field's value.
15009func (s *ExportSummary) SetCreationDateTime(v time.Time) *ExportSummary {
15010	s.CreationDateTime = &v
15011	return s
15012}
15013
15014// SetExportId sets the ExportId field's value.
15015func (s *ExportSummary) SetExportId(v string) *ExportSummary {
15016	s.ExportId = &v
15017	return s
15018}
15019
15020// SetExportStatus sets the ExportStatus field's value.
15021func (s *ExportSummary) SetExportStatus(v string) *ExportSummary {
15022	s.ExportStatus = &v
15023	return s
15024}
15025
15026// SetFileFormat sets the FileFormat field's value.
15027func (s *ExportSummary) SetFileFormat(v string) *ExportSummary {
15028	s.FileFormat = &v
15029	return s
15030}
15031
15032// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
15033func (s *ExportSummary) SetLastUpdatedDateTime(v time.Time) *ExportSummary {
15034	s.LastUpdatedDateTime = &v
15035	return s
15036}
15037
15038// SetResourceSpecification sets the ResourceSpecification field's value.
15039func (s *ExportSummary) SetResourceSpecification(v *ExportResourceSpecification) *ExportSummary {
15040	s.ResourceSpecification = v
15041	return s
15042}
15043
15044// Determines if a Lambda function should be invoked for a specific intent.
15045type FulfillmentCodeHookSettings struct {
15046	_ struct{} `type:"structure"`
15047
15048	// Indicates whether a Lambda function should be invoked to fulfill a specific
15049	// intent.
15050	//
15051	// Enabled is a required field
15052	Enabled *bool `locationName:"enabled" type:"boolean" required:"true"`
15053
15054	// Provides settings for update messages sent to the user for long-running Lambda
15055	// fulfillment functions. Fulfillment updates can be used only with streaming
15056	// conversations.
15057	FulfillmentUpdatesSpecification *FulfillmentUpdatesSpecification `locationName:"fulfillmentUpdatesSpecification" type:"structure"`
15058
15059	// Provides settings for messages sent to the user for after the Lambda fulfillment
15060	// function completes. Post-fulfillment messages can be sent for both streaming
15061	// and non-streaming conversations.
15062	PostFulfillmentStatusSpecification *PostFulfillmentStatusSpecification `locationName:"postFulfillmentStatusSpecification" type:"structure"`
15063}
15064
15065// String returns the string representation.
15066//
15067// API parameter values that are decorated as "sensitive" in the API will not
15068// be included in the string output. The member name will be present, but the
15069// value will be replaced with "sensitive".
15070func (s FulfillmentCodeHookSettings) String() string {
15071	return awsutil.Prettify(s)
15072}
15073
15074// GoString returns the string representation.
15075//
15076// API parameter values that are decorated as "sensitive" in the API will not
15077// be included in the string output. The member name will be present, but the
15078// value will be replaced with "sensitive".
15079func (s FulfillmentCodeHookSettings) GoString() string {
15080	return s.String()
15081}
15082
15083// Validate inspects the fields of the type to determine if they are valid.
15084func (s *FulfillmentCodeHookSettings) Validate() error {
15085	invalidParams := request.ErrInvalidParams{Context: "FulfillmentCodeHookSettings"}
15086	if s.Enabled == nil {
15087		invalidParams.Add(request.NewErrParamRequired("Enabled"))
15088	}
15089	if s.FulfillmentUpdatesSpecification != nil {
15090		if err := s.FulfillmentUpdatesSpecification.Validate(); err != nil {
15091			invalidParams.AddNested("FulfillmentUpdatesSpecification", err.(request.ErrInvalidParams))
15092		}
15093	}
15094	if s.PostFulfillmentStatusSpecification != nil {
15095		if err := s.PostFulfillmentStatusSpecification.Validate(); err != nil {
15096			invalidParams.AddNested("PostFulfillmentStatusSpecification", err.(request.ErrInvalidParams))
15097		}
15098	}
15099
15100	if invalidParams.Len() > 0 {
15101		return invalidParams
15102	}
15103	return nil
15104}
15105
15106// SetEnabled sets the Enabled field's value.
15107func (s *FulfillmentCodeHookSettings) SetEnabled(v bool) *FulfillmentCodeHookSettings {
15108	s.Enabled = &v
15109	return s
15110}
15111
15112// SetFulfillmentUpdatesSpecification sets the FulfillmentUpdatesSpecification field's value.
15113func (s *FulfillmentCodeHookSettings) SetFulfillmentUpdatesSpecification(v *FulfillmentUpdatesSpecification) *FulfillmentCodeHookSettings {
15114	s.FulfillmentUpdatesSpecification = v
15115	return s
15116}
15117
15118// SetPostFulfillmentStatusSpecification sets the PostFulfillmentStatusSpecification field's value.
15119func (s *FulfillmentCodeHookSettings) SetPostFulfillmentStatusSpecification(v *PostFulfillmentStatusSpecification) *FulfillmentCodeHookSettings {
15120	s.PostFulfillmentStatusSpecification = v
15121	return s
15122}
15123
15124// Provides settings for a message that is sent to the user when a fulfillment
15125// Lambda function starts running.
15126type FulfillmentStartResponseSpecification struct {
15127	_ struct{} `type:"structure"`
15128
15129	// Determines whether the user can interrupt the start message while it is playing.
15130	AllowInterrupt *bool `locationName:"allowInterrupt" type:"boolean"`
15131
15132	// The delay between when the Lambda fulfillment function starts running and
15133	// the start message is played. If the Lambda function returns before the delay
15134	// is over, the start message isn't played.
15135	//
15136	// DelayInSeconds is a required field
15137	DelayInSeconds *int64 `locationName:"delayInSeconds" min:"1" type:"integer" required:"true"`
15138
15139	// One to 5 message groups that contain start messages. Amazon Lex chooses one
15140	// of the messages to play to the user.
15141	//
15142	// MessageGroups is a required field
15143	MessageGroups []*MessageGroup `locationName:"messageGroups" min:"1" type:"list" required:"true"`
15144}
15145
15146// String returns the string representation.
15147//
15148// API parameter values that are decorated as "sensitive" in the API will not
15149// be included in the string output. The member name will be present, but the
15150// value will be replaced with "sensitive".
15151func (s FulfillmentStartResponseSpecification) String() string {
15152	return awsutil.Prettify(s)
15153}
15154
15155// GoString returns the string representation.
15156//
15157// API parameter values that are decorated as "sensitive" in the API will not
15158// be included in the string output. The member name will be present, but the
15159// value will be replaced with "sensitive".
15160func (s FulfillmentStartResponseSpecification) GoString() string {
15161	return s.String()
15162}
15163
15164// Validate inspects the fields of the type to determine if they are valid.
15165func (s *FulfillmentStartResponseSpecification) Validate() error {
15166	invalidParams := request.ErrInvalidParams{Context: "FulfillmentStartResponseSpecification"}
15167	if s.DelayInSeconds == nil {
15168		invalidParams.Add(request.NewErrParamRequired("DelayInSeconds"))
15169	}
15170	if s.DelayInSeconds != nil && *s.DelayInSeconds < 1 {
15171		invalidParams.Add(request.NewErrParamMinValue("DelayInSeconds", 1))
15172	}
15173	if s.MessageGroups == nil {
15174		invalidParams.Add(request.NewErrParamRequired("MessageGroups"))
15175	}
15176	if s.MessageGroups != nil && len(s.MessageGroups) < 1 {
15177		invalidParams.Add(request.NewErrParamMinLen("MessageGroups", 1))
15178	}
15179	if s.MessageGroups != nil {
15180		for i, v := range s.MessageGroups {
15181			if v == nil {
15182				continue
15183			}
15184			if err := v.Validate(); err != nil {
15185				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MessageGroups", i), err.(request.ErrInvalidParams))
15186			}
15187		}
15188	}
15189
15190	if invalidParams.Len() > 0 {
15191		return invalidParams
15192	}
15193	return nil
15194}
15195
15196// SetAllowInterrupt sets the AllowInterrupt field's value.
15197func (s *FulfillmentStartResponseSpecification) SetAllowInterrupt(v bool) *FulfillmentStartResponseSpecification {
15198	s.AllowInterrupt = &v
15199	return s
15200}
15201
15202// SetDelayInSeconds sets the DelayInSeconds field's value.
15203func (s *FulfillmentStartResponseSpecification) SetDelayInSeconds(v int64) *FulfillmentStartResponseSpecification {
15204	s.DelayInSeconds = &v
15205	return s
15206}
15207
15208// SetMessageGroups sets the MessageGroups field's value.
15209func (s *FulfillmentStartResponseSpecification) SetMessageGroups(v []*MessageGroup) *FulfillmentStartResponseSpecification {
15210	s.MessageGroups = v
15211	return s
15212}
15213
15214// Provides settings for a message that is sent periodically to the user while
15215// a fulfillment Lambda function is running.
15216type FulfillmentUpdateResponseSpecification struct {
15217	_ struct{} `type:"structure"`
15218
15219	// Determines whether the user can interrupt an update message while it is playing.
15220	AllowInterrupt *bool `locationName:"allowInterrupt" type:"boolean"`
15221
15222	// The frequency that a message is sent to the user. When the period ends, Amazon
15223	// Lex chooses a message from the message groups and plays it to the user. If
15224	// the fulfillment Lambda returns before the first period ends, an update message
15225	// is not played to the user.
15226	//
15227	// FrequencyInSeconds is a required field
15228	FrequencyInSeconds *int64 `locationName:"frequencyInSeconds" min:"1" type:"integer" required:"true"`
15229
15230	// One to 5 message groups that contain update messages. Amazon Lex chooses
15231	// one of the messages to play to the user.
15232	//
15233	// MessageGroups is a required field
15234	MessageGroups []*MessageGroup `locationName:"messageGroups" min:"1" type:"list" required:"true"`
15235}
15236
15237// String returns the string representation.
15238//
15239// API parameter values that are decorated as "sensitive" in the API will not
15240// be included in the string output. The member name will be present, but the
15241// value will be replaced with "sensitive".
15242func (s FulfillmentUpdateResponseSpecification) String() string {
15243	return awsutil.Prettify(s)
15244}
15245
15246// GoString returns the string representation.
15247//
15248// API parameter values that are decorated as "sensitive" in the API will not
15249// be included in the string output. The member name will be present, but the
15250// value will be replaced with "sensitive".
15251func (s FulfillmentUpdateResponseSpecification) GoString() string {
15252	return s.String()
15253}
15254
15255// Validate inspects the fields of the type to determine if they are valid.
15256func (s *FulfillmentUpdateResponseSpecification) Validate() error {
15257	invalidParams := request.ErrInvalidParams{Context: "FulfillmentUpdateResponseSpecification"}
15258	if s.FrequencyInSeconds == nil {
15259		invalidParams.Add(request.NewErrParamRequired("FrequencyInSeconds"))
15260	}
15261	if s.FrequencyInSeconds != nil && *s.FrequencyInSeconds < 1 {
15262		invalidParams.Add(request.NewErrParamMinValue("FrequencyInSeconds", 1))
15263	}
15264	if s.MessageGroups == nil {
15265		invalidParams.Add(request.NewErrParamRequired("MessageGroups"))
15266	}
15267	if s.MessageGroups != nil && len(s.MessageGroups) < 1 {
15268		invalidParams.Add(request.NewErrParamMinLen("MessageGroups", 1))
15269	}
15270	if s.MessageGroups != nil {
15271		for i, v := range s.MessageGroups {
15272			if v == nil {
15273				continue
15274			}
15275			if err := v.Validate(); err != nil {
15276				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MessageGroups", i), err.(request.ErrInvalidParams))
15277			}
15278		}
15279	}
15280
15281	if invalidParams.Len() > 0 {
15282		return invalidParams
15283	}
15284	return nil
15285}
15286
15287// SetAllowInterrupt sets the AllowInterrupt field's value.
15288func (s *FulfillmentUpdateResponseSpecification) SetAllowInterrupt(v bool) *FulfillmentUpdateResponseSpecification {
15289	s.AllowInterrupt = &v
15290	return s
15291}
15292
15293// SetFrequencyInSeconds sets the FrequencyInSeconds field's value.
15294func (s *FulfillmentUpdateResponseSpecification) SetFrequencyInSeconds(v int64) *FulfillmentUpdateResponseSpecification {
15295	s.FrequencyInSeconds = &v
15296	return s
15297}
15298
15299// SetMessageGroups sets the MessageGroups field's value.
15300func (s *FulfillmentUpdateResponseSpecification) SetMessageGroups(v []*MessageGroup) *FulfillmentUpdateResponseSpecification {
15301	s.MessageGroups = v
15302	return s
15303}
15304
15305// Provides information for updating the user on the progress of fulfilling
15306// an intent.
15307type FulfillmentUpdatesSpecification struct {
15308	_ struct{} `type:"structure"`
15309
15310	// Determines whether fulfillment updates are sent to the user. When this field
15311	// is true, updates are sent.
15312	//
15313	// If the active field is set to true, the startResponse, updateResponse, and
15314	// timeoutInSeconds fields are required.
15315	//
15316	// Active is a required field
15317	Active *bool `locationName:"active" type:"boolean" required:"true"`
15318
15319	// Provides configuration information for the message sent to users when the
15320	// fulfillment Lambda functions starts running.
15321	StartResponse *FulfillmentStartResponseSpecification `locationName:"startResponse" type:"structure"`
15322
15323	// The length of time that the fulfillment Lambda function should run before
15324	// it times out.
15325	TimeoutInSeconds *int64 `locationName:"timeoutInSeconds" min:"1" type:"integer"`
15326
15327	// Provides configuration information for messages sent periodically to the
15328	// user while the fulfillment Lambda function is running.
15329	UpdateResponse *FulfillmentUpdateResponseSpecification `locationName:"updateResponse" type:"structure"`
15330}
15331
15332// String returns the string representation.
15333//
15334// API parameter values that are decorated as "sensitive" in the API will not
15335// be included in the string output. The member name will be present, but the
15336// value will be replaced with "sensitive".
15337func (s FulfillmentUpdatesSpecification) String() string {
15338	return awsutil.Prettify(s)
15339}
15340
15341// GoString returns the string representation.
15342//
15343// API parameter values that are decorated as "sensitive" in the API will not
15344// be included in the string output. The member name will be present, but the
15345// value will be replaced with "sensitive".
15346func (s FulfillmentUpdatesSpecification) GoString() string {
15347	return s.String()
15348}
15349
15350// Validate inspects the fields of the type to determine if they are valid.
15351func (s *FulfillmentUpdatesSpecification) Validate() error {
15352	invalidParams := request.ErrInvalidParams{Context: "FulfillmentUpdatesSpecification"}
15353	if s.Active == nil {
15354		invalidParams.Add(request.NewErrParamRequired("Active"))
15355	}
15356	if s.TimeoutInSeconds != nil && *s.TimeoutInSeconds < 1 {
15357		invalidParams.Add(request.NewErrParamMinValue("TimeoutInSeconds", 1))
15358	}
15359	if s.StartResponse != nil {
15360		if err := s.StartResponse.Validate(); err != nil {
15361			invalidParams.AddNested("StartResponse", err.(request.ErrInvalidParams))
15362		}
15363	}
15364	if s.UpdateResponse != nil {
15365		if err := s.UpdateResponse.Validate(); err != nil {
15366			invalidParams.AddNested("UpdateResponse", err.(request.ErrInvalidParams))
15367		}
15368	}
15369
15370	if invalidParams.Len() > 0 {
15371		return invalidParams
15372	}
15373	return nil
15374}
15375
15376// SetActive sets the Active field's value.
15377func (s *FulfillmentUpdatesSpecification) SetActive(v bool) *FulfillmentUpdatesSpecification {
15378	s.Active = &v
15379	return s
15380}
15381
15382// SetStartResponse sets the StartResponse field's value.
15383func (s *FulfillmentUpdatesSpecification) SetStartResponse(v *FulfillmentStartResponseSpecification) *FulfillmentUpdatesSpecification {
15384	s.StartResponse = v
15385	return s
15386}
15387
15388// SetTimeoutInSeconds sets the TimeoutInSeconds field's value.
15389func (s *FulfillmentUpdatesSpecification) SetTimeoutInSeconds(v int64) *FulfillmentUpdatesSpecification {
15390	s.TimeoutInSeconds = &v
15391	return s
15392}
15393
15394// SetUpdateResponse sets the UpdateResponse field's value.
15395func (s *FulfillmentUpdatesSpecification) SetUpdateResponse(v *FulfillmentUpdateResponseSpecification) *FulfillmentUpdatesSpecification {
15396	s.UpdateResponse = v
15397	return s
15398}
15399
15400// A card that is shown to the user by a messaging platform. You define the
15401// contents of the card, the card is displayed by the platform.
15402//
15403// When you use a response card, the response from the user is constrained to
15404// the text associated with a button on the card.
15405type ImageResponseCard struct {
15406	_ struct{} `type:"structure"`
15407
15408	// A list of buttons that should be displayed on the response card. The arrangement
15409	// of the buttons is determined by the platform that displays the button.
15410	Buttons []*Button `locationName:"buttons" type:"list"`
15411
15412	// The URL of an image to display on the response card. The image URL must be
15413	// publicly available so that the platform displaying the response card has
15414	// access to the image.
15415	ImageUrl *string `locationName:"imageUrl" min:"1" type:"string"`
15416
15417	// The subtitle to display on the response card. The format of the subtitle
15418	// is determined by the platform displaying the response card.
15419	Subtitle *string `locationName:"subtitle" min:"1" type:"string"`
15420
15421	// The title to display on the response card. The format of the title is determined
15422	// by the platform displaying the response card.
15423	//
15424	// Title is a required field
15425	Title *string `locationName:"title" min:"1" type:"string" required:"true"`
15426}
15427
15428// String returns the string representation.
15429//
15430// API parameter values that are decorated as "sensitive" in the API will not
15431// be included in the string output. The member name will be present, but the
15432// value will be replaced with "sensitive".
15433func (s ImageResponseCard) String() string {
15434	return awsutil.Prettify(s)
15435}
15436
15437// GoString returns the string representation.
15438//
15439// API parameter values that are decorated as "sensitive" in the API will not
15440// be included in the string output. The member name will be present, but the
15441// value will be replaced with "sensitive".
15442func (s ImageResponseCard) GoString() string {
15443	return s.String()
15444}
15445
15446// Validate inspects the fields of the type to determine if they are valid.
15447func (s *ImageResponseCard) Validate() error {
15448	invalidParams := request.ErrInvalidParams{Context: "ImageResponseCard"}
15449	if s.ImageUrl != nil && len(*s.ImageUrl) < 1 {
15450		invalidParams.Add(request.NewErrParamMinLen("ImageUrl", 1))
15451	}
15452	if s.Subtitle != nil && len(*s.Subtitle) < 1 {
15453		invalidParams.Add(request.NewErrParamMinLen("Subtitle", 1))
15454	}
15455	if s.Title == nil {
15456		invalidParams.Add(request.NewErrParamRequired("Title"))
15457	}
15458	if s.Title != nil && len(*s.Title) < 1 {
15459		invalidParams.Add(request.NewErrParamMinLen("Title", 1))
15460	}
15461	if s.Buttons != nil {
15462		for i, v := range s.Buttons {
15463			if v == nil {
15464				continue
15465			}
15466			if err := v.Validate(); err != nil {
15467				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Buttons", i), err.(request.ErrInvalidParams))
15468			}
15469		}
15470	}
15471
15472	if invalidParams.Len() > 0 {
15473		return invalidParams
15474	}
15475	return nil
15476}
15477
15478// SetButtons sets the Buttons field's value.
15479func (s *ImageResponseCard) SetButtons(v []*Button) *ImageResponseCard {
15480	s.Buttons = v
15481	return s
15482}
15483
15484// SetImageUrl sets the ImageUrl field's value.
15485func (s *ImageResponseCard) SetImageUrl(v string) *ImageResponseCard {
15486	s.ImageUrl = &v
15487	return s
15488}
15489
15490// SetSubtitle sets the Subtitle field's value.
15491func (s *ImageResponseCard) SetSubtitle(v string) *ImageResponseCard {
15492	s.Subtitle = &v
15493	return s
15494}
15495
15496// SetTitle sets the Title field's value.
15497func (s *ImageResponseCard) SetTitle(v string) *ImageResponseCard {
15498	s.Title = &v
15499	return s
15500}
15501
15502// Filters the response from the operation.
15503type ImportFilter struct {
15504	_ struct{} `type:"structure"`
15505
15506	// The name of the field to use for filtering.
15507	//
15508	// Name is a required field
15509	Name *string `locationName:"name" type:"string" required:"true" enum:"ImportFilterName"`
15510
15511	// The operator to use for the filter. Specify EQ when the ListImports operation
15512	// should return only resource types that equal the specified value. Specify
15513	// CO when the ListImports operation should return resource types that contain
15514	// the specified value.
15515	//
15516	// Operator is a required field
15517	Operator *string `locationName:"operator" type:"string" required:"true" enum:"ImportFilterOperator"`
15518
15519	// The values to use to filter the response.
15520	//
15521	// Values is a required field
15522	Values []*string `locationName:"values" min:"1" type:"list" required:"true"`
15523}
15524
15525// String returns the string representation.
15526//
15527// API parameter values that are decorated as "sensitive" in the API will not
15528// be included in the string output. The member name will be present, but the
15529// value will be replaced with "sensitive".
15530func (s ImportFilter) String() string {
15531	return awsutil.Prettify(s)
15532}
15533
15534// GoString returns the string representation.
15535//
15536// API parameter values that are decorated as "sensitive" in the API will not
15537// be included in the string output. The member name will be present, but the
15538// value will be replaced with "sensitive".
15539func (s ImportFilter) GoString() string {
15540	return s.String()
15541}
15542
15543// Validate inspects the fields of the type to determine if they are valid.
15544func (s *ImportFilter) Validate() error {
15545	invalidParams := request.ErrInvalidParams{Context: "ImportFilter"}
15546	if s.Name == nil {
15547		invalidParams.Add(request.NewErrParamRequired("Name"))
15548	}
15549	if s.Operator == nil {
15550		invalidParams.Add(request.NewErrParamRequired("Operator"))
15551	}
15552	if s.Values == nil {
15553		invalidParams.Add(request.NewErrParamRequired("Values"))
15554	}
15555	if s.Values != nil && len(s.Values) < 1 {
15556		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
15557	}
15558
15559	if invalidParams.Len() > 0 {
15560		return invalidParams
15561	}
15562	return nil
15563}
15564
15565// SetName sets the Name field's value.
15566func (s *ImportFilter) SetName(v string) *ImportFilter {
15567	s.Name = &v
15568	return s
15569}
15570
15571// SetOperator sets the Operator field's value.
15572func (s *ImportFilter) SetOperator(v string) *ImportFilter {
15573	s.Operator = &v
15574	return s
15575}
15576
15577// SetValues sets the Values field's value.
15578func (s *ImportFilter) SetValues(v []*string) *ImportFilter {
15579	s.Values = v
15580	return s
15581}
15582
15583// Provides information about the bot or bot locale that you want to import.
15584// You can specify the botImportSpecification or the botLocaleImportSpecification,
15585// but not both.
15586type ImportResourceSpecification struct {
15587	_ struct{} `type:"structure"`
15588
15589	// Parameters for importing a bot.
15590	BotImportSpecification *BotImportSpecification `locationName:"botImportSpecification" type:"structure"`
15591
15592	// Parameters for importing a bot locale.
15593	BotLocaleImportSpecification *BotLocaleImportSpecification `locationName:"botLocaleImportSpecification" type:"structure"`
15594}
15595
15596// String returns the string representation.
15597//
15598// API parameter values that are decorated as "sensitive" in the API will not
15599// be included in the string output. The member name will be present, but the
15600// value will be replaced with "sensitive".
15601func (s ImportResourceSpecification) String() string {
15602	return awsutil.Prettify(s)
15603}
15604
15605// GoString returns the string representation.
15606//
15607// API parameter values that are decorated as "sensitive" in the API will not
15608// be included in the string output. The member name will be present, but the
15609// value will be replaced with "sensitive".
15610func (s ImportResourceSpecification) GoString() string {
15611	return s.String()
15612}
15613
15614// Validate inspects the fields of the type to determine if they are valid.
15615func (s *ImportResourceSpecification) Validate() error {
15616	invalidParams := request.ErrInvalidParams{Context: "ImportResourceSpecification"}
15617	if s.BotImportSpecification != nil {
15618		if err := s.BotImportSpecification.Validate(); err != nil {
15619			invalidParams.AddNested("BotImportSpecification", err.(request.ErrInvalidParams))
15620		}
15621	}
15622	if s.BotLocaleImportSpecification != nil {
15623		if err := s.BotLocaleImportSpecification.Validate(); err != nil {
15624			invalidParams.AddNested("BotLocaleImportSpecification", err.(request.ErrInvalidParams))
15625		}
15626	}
15627
15628	if invalidParams.Len() > 0 {
15629		return invalidParams
15630	}
15631	return nil
15632}
15633
15634// SetBotImportSpecification sets the BotImportSpecification field's value.
15635func (s *ImportResourceSpecification) SetBotImportSpecification(v *BotImportSpecification) *ImportResourceSpecification {
15636	s.BotImportSpecification = v
15637	return s
15638}
15639
15640// SetBotLocaleImportSpecification sets the BotLocaleImportSpecification field's value.
15641func (s *ImportResourceSpecification) SetBotLocaleImportSpecification(v *BotLocaleImportSpecification) *ImportResourceSpecification {
15642	s.BotLocaleImportSpecification = v
15643	return s
15644}
15645
15646// Provides information for sorting a list of imports.
15647type ImportSortBy struct {
15648	_ struct{} `type:"structure"`
15649
15650	// The export field to use for sorting.
15651	//
15652	// Attribute is a required field
15653	Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"ImportSortAttribute"`
15654
15655	// The order to sort the list.
15656	//
15657	// Order is a required field
15658	Order *string `locationName:"order" type:"string" required:"true" enum:"SortOrder"`
15659}
15660
15661// String returns the string representation.
15662//
15663// API parameter values that are decorated as "sensitive" in the API will not
15664// be included in the string output. The member name will be present, but the
15665// value will be replaced with "sensitive".
15666func (s ImportSortBy) String() string {
15667	return awsutil.Prettify(s)
15668}
15669
15670// GoString returns the string representation.
15671//
15672// API parameter values that are decorated as "sensitive" in the API will not
15673// be included in the string output. The member name will be present, but the
15674// value will be replaced with "sensitive".
15675func (s ImportSortBy) GoString() string {
15676	return s.String()
15677}
15678
15679// Validate inspects the fields of the type to determine if they are valid.
15680func (s *ImportSortBy) Validate() error {
15681	invalidParams := request.ErrInvalidParams{Context: "ImportSortBy"}
15682	if s.Attribute == nil {
15683		invalidParams.Add(request.NewErrParamRequired("Attribute"))
15684	}
15685	if s.Order == nil {
15686		invalidParams.Add(request.NewErrParamRequired("Order"))
15687	}
15688
15689	if invalidParams.Len() > 0 {
15690		return invalidParams
15691	}
15692	return nil
15693}
15694
15695// SetAttribute sets the Attribute field's value.
15696func (s *ImportSortBy) SetAttribute(v string) *ImportSortBy {
15697	s.Attribute = &v
15698	return s
15699}
15700
15701// SetOrder sets the Order field's value.
15702func (s *ImportSortBy) SetOrder(v string) *ImportSortBy {
15703	s.Order = &v
15704	return s
15705}
15706
15707// Provides summary information about an import in an import list.
15708type ImportSummary struct {
15709	_ struct{} `type:"structure"`
15710
15711	// The date and time that the import was created.
15712	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
15713
15714	// The unique identifier that Amazon Lex assigned to the import.
15715	ImportId *string `locationName:"importId" min:"10" type:"string"`
15716
15717	// The status of the resource. When the status is Completed the resource is
15718	// ready to build.
15719	ImportStatus *string `locationName:"importStatus" type:"string" enum:"ImportStatus"`
15720
15721	// The unique identifier that Amazon Lex assigned to the imported resource.
15722	ImportedResourceId *string `locationName:"importedResourceId" min:"5" type:"string"`
15723
15724	// The name that you gave the imported resource.
15725	ImportedResourceName *string `locationName:"importedResourceName" min:"1" type:"string"`
15726
15727	// The date and time that the import was last updated.
15728	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
15729
15730	// The strategy used to merge existing bot or bot locale definitions with the
15731	// imported definition.
15732	MergeStrategy *string `locationName:"mergeStrategy" type:"string" enum:"MergeStrategy"`
15733}
15734
15735// String returns the string representation.
15736//
15737// API parameter values that are decorated as "sensitive" in the API will not
15738// be included in the string output. The member name will be present, but the
15739// value will be replaced with "sensitive".
15740func (s ImportSummary) String() string {
15741	return awsutil.Prettify(s)
15742}
15743
15744// GoString returns the string representation.
15745//
15746// API parameter values that are decorated as "sensitive" in the API will not
15747// be included in the string output. The member name will be present, but the
15748// value will be replaced with "sensitive".
15749func (s ImportSummary) GoString() string {
15750	return s.String()
15751}
15752
15753// SetCreationDateTime sets the CreationDateTime field's value.
15754func (s *ImportSummary) SetCreationDateTime(v time.Time) *ImportSummary {
15755	s.CreationDateTime = &v
15756	return s
15757}
15758
15759// SetImportId sets the ImportId field's value.
15760func (s *ImportSummary) SetImportId(v string) *ImportSummary {
15761	s.ImportId = &v
15762	return s
15763}
15764
15765// SetImportStatus sets the ImportStatus field's value.
15766func (s *ImportSummary) SetImportStatus(v string) *ImportSummary {
15767	s.ImportStatus = &v
15768	return s
15769}
15770
15771// SetImportedResourceId sets the ImportedResourceId field's value.
15772func (s *ImportSummary) SetImportedResourceId(v string) *ImportSummary {
15773	s.ImportedResourceId = &v
15774	return s
15775}
15776
15777// SetImportedResourceName sets the ImportedResourceName field's value.
15778func (s *ImportSummary) SetImportedResourceName(v string) *ImportSummary {
15779	s.ImportedResourceName = &v
15780	return s
15781}
15782
15783// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
15784func (s *ImportSummary) SetLastUpdatedDateTime(v time.Time) *ImportSummary {
15785	s.LastUpdatedDateTime = &v
15786	return s
15787}
15788
15789// SetMergeStrategy sets the MergeStrategy field's value.
15790func (s *ImportSummary) SetMergeStrategy(v string) *ImportSummary {
15791	s.MergeStrategy = &v
15792	return s
15793}
15794
15795// The name of a context that must be active for an intent to be selected by
15796// Amazon Lex.
15797type InputContext struct {
15798	_ struct{} `type:"structure"`
15799
15800	// The name of the context.
15801	//
15802	// Name is a required field
15803	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
15804}
15805
15806// String returns the string representation.
15807//
15808// API parameter values that are decorated as "sensitive" in the API will not
15809// be included in the string output. The member name will be present, but the
15810// value will be replaced with "sensitive".
15811func (s InputContext) String() string {
15812	return awsutil.Prettify(s)
15813}
15814
15815// GoString returns the string representation.
15816//
15817// API parameter values that are decorated as "sensitive" in the API will not
15818// be included in the string output. The member name will be present, but the
15819// value will be replaced with "sensitive".
15820func (s InputContext) GoString() string {
15821	return s.String()
15822}
15823
15824// Validate inspects the fields of the type to determine if they are valid.
15825func (s *InputContext) Validate() error {
15826	invalidParams := request.ErrInvalidParams{Context: "InputContext"}
15827	if s.Name == nil {
15828		invalidParams.Add(request.NewErrParamRequired("Name"))
15829	}
15830	if s.Name != nil && len(*s.Name) < 1 {
15831		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
15832	}
15833
15834	if invalidParams.Len() > 0 {
15835		return invalidParams
15836	}
15837	return nil
15838}
15839
15840// SetName sets the Name field's value.
15841func (s *InputContext) SetName(v string) *InputContext {
15842	s.Name = &v
15843	return s
15844}
15845
15846// Provides a statement the Amazon Lex conveys to the user when the intent is
15847// successfully fulfilled.
15848type IntentClosingSetting struct {
15849	_ struct{} `type:"structure"`
15850
15851	// Specifies whether an intent's closing response is used. When this field is
15852	// false, the closing response isn't sent to the user. If the active field isn't
15853	// specified, the default is true.
15854	Active *bool `locationName:"active" type:"boolean"`
15855
15856	// The response that Amazon Lex sends to the user when the intent is complete.
15857	//
15858	// ClosingResponse is a required field
15859	ClosingResponse *ResponseSpecification `locationName:"closingResponse" type:"structure" required:"true"`
15860}
15861
15862// String returns the string representation.
15863//
15864// API parameter values that are decorated as "sensitive" in the API will not
15865// be included in the string output. The member name will be present, but the
15866// value will be replaced with "sensitive".
15867func (s IntentClosingSetting) String() string {
15868	return awsutil.Prettify(s)
15869}
15870
15871// GoString returns the string representation.
15872//
15873// API parameter values that are decorated as "sensitive" in the API will not
15874// be included in the string output. The member name will be present, but the
15875// value will be replaced with "sensitive".
15876func (s IntentClosingSetting) GoString() string {
15877	return s.String()
15878}
15879
15880// Validate inspects the fields of the type to determine if they are valid.
15881func (s *IntentClosingSetting) Validate() error {
15882	invalidParams := request.ErrInvalidParams{Context: "IntentClosingSetting"}
15883	if s.ClosingResponse == nil {
15884		invalidParams.Add(request.NewErrParamRequired("ClosingResponse"))
15885	}
15886	if s.ClosingResponse != nil {
15887		if err := s.ClosingResponse.Validate(); err != nil {
15888			invalidParams.AddNested("ClosingResponse", err.(request.ErrInvalidParams))
15889		}
15890	}
15891
15892	if invalidParams.Len() > 0 {
15893		return invalidParams
15894	}
15895	return nil
15896}
15897
15898// SetActive sets the Active field's value.
15899func (s *IntentClosingSetting) SetActive(v bool) *IntentClosingSetting {
15900	s.Active = &v
15901	return s
15902}
15903
15904// SetClosingResponse sets the ClosingResponse field's value.
15905func (s *IntentClosingSetting) SetClosingResponse(v *ResponseSpecification) *IntentClosingSetting {
15906	s.ClosingResponse = v
15907	return s
15908}
15909
15910// Provides a prompt for making sure that the user is ready for the intent to
15911// be fulfilled.
15912type IntentConfirmationSetting struct {
15913	_ struct{} `type:"structure"`
15914
15915	// Specifies whether the intent's confirmation is sent to the user. When this
15916	// field is false, confirmation and declination responses aren't sent. If the
15917	// active field isn't specified, the default is true.
15918	Active *bool `locationName:"active" type:"boolean"`
15919
15920	// When the user answers "no" to the question defined in promptSpecification,
15921	// Amazon Lex responds with this response to acknowledge that the intent was
15922	// canceled.
15923	//
15924	// DeclinationResponse is a required field
15925	DeclinationResponse *ResponseSpecification `locationName:"declinationResponse" type:"structure" required:"true"`
15926
15927	// Prompts the user to confirm the intent. This question should have a yes or
15928	// no answer.
15929	//
15930	// Amazon Lex uses this prompt to ensure that the user acknowledges that the
15931	// intent is ready for fulfillment. For example, with the OrderPizza intent,
15932	// you might want to confirm that the order is correct before placing it. For
15933	// other intents, such as intents that simply respond to user questions, you
15934	// might not need to ask the user for confirmation before providing the information.
15935	//
15936	// PromptSpecification is a required field
15937	PromptSpecification *PromptSpecification `locationName:"promptSpecification" type:"structure" required:"true"`
15938}
15939
15940// String returns the string representation.
15941//
15942// API parameter values that are decorated as "sensitive" in the API will not
15943// be included in the string output. The member name will be present, but the
15944// value will be replaced with "sensitive".
15945func (s IntentConfirmationSetting) String() string {
15946	return awsutil.Prettify(s)
15947}
15948
15949// GoString returns the string representation.
15950//
15951// API parameter values that are decorated as "sensitive" in the API will not
15952// be included in the string output. The member name will be present, but the
15953// value will be replaced with "sensitive".
15954func (s IntentConfirmationSetting) GoString() string {
15955	return s.String()
15956}
15957
15958// Validate inspects the fields of the type to determine if they are valid.
15959func (s *IntentConfirmationSetting) Validate() error {
15960	invalidParams := request.ErrInvalidParams{Context: "IntentConfirmationSetting"}
15961	if s.DeclinationResponse == nil {
15962		invalidParams.Add(request.NewErrParamRequired("DeclinationResponse"))
15963	}
15964	if s.PromptSpecification == nil {
15965		invalidParams.Add(request.NewErrParamRequired("PromptSpecification"))
15966	}
15967	if s.DeclinationResponse != nil {
15968		if err := s.DeclinationResponse.Validate(); err != nil {
15969			invalidParams.AddNested("DeclinationResponse", err.(request.ErrInvalidParams))
15970		}
15971	}
15972	if s.PromptSpecification != nil {
15973		if err := s.PromptSpecification.Validate(); err != nil {
15974			invalidParams.AddNested("PromptSpecification", err.(request.ErrInvalidParams))
15975		}
15976	}
15977
15978	if invalidParams.Len() > 0 {
15979		return invalidParams
15980	}
15981	return nil
15982}
15983
15984// SetActive sets the Active field's value.
15985func (s *IntentConfirmationSetting) SetActive(v bool) *IntentConfirmationSetting {
15986	s.Active = &v
15987	return s
15988}
15989
15990// SetDeclinationResponse sets the DeclinationResponse field's value.
15991func (s *IntentConfirmationSetting) SetDeclinationResponse(v *ResponseSpecification) *IntentConfirmationSetting {
15992	s.DeclinationResponse = v
15993	return s
15994}
15995
15996// SetPromptSpecification sets the PromptSpecification field's value.
15997func (s *IntentConfirmationSetting) SetPromptSpecification(v *PromptSpecification) *IntentConfirmationSetting {
15998	s.PromptSpecification = v
15999	return s
16000}
16001
16002// Filters the response from the ListIntents operation.
16003type IntentFilter struct {
16004	_ struct{} `type:"structure"`
16005
16006	// The name of the field to use for the filter.
16007	//
16008	// Name is a required field
16009	Name *string `locationName:"name" type:"string" required:"true" enum:"IntentFilterName"`
16010
16011	// The operator to use for the filter. Specify EQ when the ListIntents operation
16012	// should return only aliases that equal the specified value. Specify CO when
16013	// the ListIntents operation should return aliases that contain the specified
16014	// value.
16015	//
16016	// Operator is a required field
16017	Operator *string `locationName:"operator" type:"string" required:"true" enum:"IntentFilterOperator"`
16018
16019	// The value to use for the filter.
16020	//
16021	// Values is a required field
16022	Values []*string `locationName:"values" min:"1" type:"list" required:"true"`
16023}
16024
16025// String returns the string representation.
16026//
16027// API parameter values that are decorated as "sensitive" in the API will not
16028// be included in the string output. The member name will be present, but the
16029// value will be replaced with "sensitive".
16030func (s IntentFilter) String() string {
16031	return awsutil.Prettify(s)
16032}
16033
16034// GoString returns the string representation.
16035//
16036// API parameter values that are decorated as "sensitive" in the API will not
16037// be included in the string output. The member name will be present, but the
16038// value will be replaced with "sensitive".
16039func (s IntentFilter) GoString() string {
16040	return s.String()
16041}
16042
16043// Validate inspects the fields of the type to determine if they are valid.
16044func (s *IntentFilter) Validate() error {
16045	invalidParams := request.ErrInvalidParams{Context: "IntentFilter"}
16046	if s.Name == nil {
16047		invalidParams.Add(request.NewErrParamRequired("Name"))
16048	}
16049	if s.Operator == nil {
16050		invalidParams.Add(request.NewErrParamRequired("Operator"))
16051	}
16052	if s.Values == nil {
16053		invalidParams.Add(request.NewErrParamRequired("Values"))
16054	}
16055	if s.Values != nil && len(s.Values) < 1 {
16056		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
16057	}
16058
16059	if invalidParams.Len() > 0 {
16060		return invalidParams
16061	}
16062	return nil
16063}
16064
16065// SetName sets the Name field's value.
16066func (s *IntentFilter) SetName(v string) *IntentFilter {
16067	s.Name = &v
16068	return s
16069}
16070
16071// SetOperator sets the Operator field's value.
16072func (s *IntentFilter) SetOperator(v string) *IntentFilter {
16073	s.Operator = &v
16074	return s
16075}
16076
16077// SetValues sets the Values field's value.
16078func (s *IntentFilter) SetValues(v []*string) *IntentFilter {
16079	s.Values = v
16080	return s
16081}
16082
16083// Specifies attributes for sorting a list of intents.
16084type IntentSortBy struct {
16085	_ struct{} `type:"structure"`
16086
16087	// The attribute to use to sort the list of intents.
16088	//
16089	// Attribute is a required field
16090	Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"IntentSortAttribute"`
16091
16092	// The order to sort the list. You can choose ascending or descending.
16093	//
16094	// Order is a required field
16095	Order *string `locationName:"order" type:"string" required:"true" enum:"SortOrder"`
16096}
16097
16098// String returns the string representation.
16099//
16100// API parameter values that are decorated as "sensitive" in the API will not
16101// be included in the string output. The member name will be present, but the
16102// value will be replaced with "sensitive".
16103func (s IntentSortBy) String() string {
16104	return awsutil.Prettify(s)
16105}
16106
16107// GoString returns the string representation.
16108//
16109// API parameter values that are decorated as "sensitive" in the API will not
16110// be included in the string output. The member name will be present, but the
16111// value will be replaced with "sensitive".
16112func (s IntentSortBy) GoString() string {
16113	return s.String()
16114}
16115
16116// Validate inspects the fields of the type to determine if they are valid.
16117func (s *IntentSortBy) Validate() error {
16118	invalidParams := request.ErrInvalidParams{Context: "IntentSortBy"}
16119	if s.Attribute == nil {
16120		invalidParams.Add(request.NewErrParamRequired("Attribute"))
16121	}
16122	if s.Order == nil {
16123		invalidParams.Add(request.NewErrParamRequired("Order"))
16124	}
16125
16126	if invalidParams.Len() > 0 {
16127		return invalidParams
16128	}
16129	return nil
16130}
16131
16132// SetAttribute sets the Attribute field's value.
16133func (s *IntentSortBy) SetAttribute(v string) *IntentSortBy {
16134	s.Attribute = &v
16135	return s
16136}
16137
16138// SetOrder sets the Order field's value.
16139func (s *IntentSortBy) SetOrder(v string) *IntentSortBy {
16140	s.Order = &v
16141	return s
16142}
16143
16144// Summary information about an intent returned by the ListIntents operation.
16145type IntentSummary struct {
16146	_ struct{} `type:"structure"`
16147
16148	// The description of the intent.
16149	Description *string `locationName:"description" type:"string"`
16150
16151	// The input contexts that must be active for this intent to be considered for
16152	// recognition.
16153	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
16154
16155	// The unique identifier assigned to the intent. Use this ID to get detailed
16156	// information about the intent with the DescribeIntent operation.
16157	IntentId *string `locationName:"intentId" min:"10" type:"string"`
16158
16159	// The name of the intent.
16160	IntentName *string `locationName:"intentName" min:"1" type:"string"`
16161
16162	// The timestamp of the date and time that the intent was last updated.
16163	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
16164
16165	// The output contexts that are activated when this intent is fulfilled.
16166	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
16167
16168	// If this intent is derived from a built-in intent, the name of the parent
16169	// intent.
16170	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
16171}
16172
16173// String returns the string representation.
16174//
16175// API parameter values that are decorated as "sensitive" in the API will not
16176// be included in the string output. The member name will be present, but the
16177// value will be replaced with "sensitive".
16178func (s IntentSummary) String() string {
16179	return awsutil.Prettify(s)
16180}
16181
16182// GoString returns the string representation.
16183//
16184// API parameter values that are decorated as "sensitive" in the API will not
16185// be included in the string output. The member name will be present, but the
16186// value will be replaced with "sensitive".
16187func (s IntentSummary) GoString() string {
16188	return s.String()
16189}
16190
16191// SetDescription sets the Description field's value.
16192func (s *IntentSummary) SetDescription(v string) *IntentSummary {
16193	s.Description = &v
16194	return s
16195}
16196
16197// SetInputContexts sets the InputContexts field's value.
16198func (s *IntentSummary) SetInputContexts(v []*InputContext) *IntentSummary {
16199	s.InputContexts = v
16200	return s
16201}
16202
16203// SetIntentId sets the IntentId field's value.
16204func (s *IntentSummary) SetIntentId(v string) *IntentSummary {
16205	s.IntentId = &v
16206	return s
16207}
16208
16209// SetIntentName sets the IntentName field's value.
16210func (s *IntentSummary) SetIntentName(v string) *IntentSummary {
16211	s.IntentName = &v
16212	return s
16213}
16214
16215// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
16216func (s *IntentSummary) SetLastUpdatedDateTime(v time.Time) *IntentSummary {
16217	s.LastUpdatedDateTime = &v
16218	return s
16219}
16220
16221// SetOutputContexts sets the OutputContexts field's value.
16222func (s *IntentSummary) SetOutputContexts(v []*OutputContext) *IntentSummary {
16223	s.OutputContexts = v
16224	return s
16225}
16226
16227// SetParentIntentSignature sets the ParentIntentSignature field's value.
16228func (s *IntentSummary) SetParentIntentSignature(v string) *IntentSummary {
16229	s.ParentIntentSignature = &v
16230	return s
16231}
16232
16233// The service encountered an unexpected condition. Try your request again.
16234type InternalServerException struct {
16235	_            struct{}                  `type:"structure"`
16236	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16237
16238	Message_ *string `locationName:"message" type:"string"`
16239}
16240
16241// String returns the string representation.
16242//
16243// API parameter values that are decorated as "sensitive" in the API will not
16244// be included in the string output. The member name will be present, but the
16245// value will be replaced with "sensitive".
16246func (s InternalServerException) String() string {
16247	return awsutil.Prettify(s)
16248}
16249
16250// GoString returns the string representation.
16251//
16252// API parameter values that are decorated as "sensitive" in the API will not
16253// be included in the string output. The member name will be present, but the
16254// value will be replaced with "sensitive".
16255func (s InternalServerException) GoString() string {
16256	return s.String()
16257}
16258
16259func newErrorInternalServerException(v protocol.ResponseMetadata) error {
16260	return &InternalServerException{
16261		RespMetadata: v,
16262	}
16263}
16264
16265// Code returns the exception type name.
16266func (s *InternalServerException) Code() string {
16267	return "InternalServerException"
16268}
16269
16270// Message returns the exception's message.
16271func (s *InternalServerException) Message() string {
16272	if s.Message_ != nil {
16273		return *s.Message_
16274	}
16275	return ""
16276}
16277
16278// OrigErr always returns nil, satisfies awserr.Error interface.
16279func (s *InternalServerException) OrigErr() error {
16280	return nil
16281}
16282
16283func (s *InternalServerException) Error() string {
16284	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16285}
16286
16287// Status code returns the HTTP status code for the request's response error.
16288func (s *InternalServerException) StatusCode() int {
16289	return s.RespMetadata.StatusCode
16290}
16291
16292// RequestID returns the service's response RequestID for request.
16293func (s *InternalServerException) RequestID() string {
16294	return s.RespMetadata.RequestID
16295}
16296
16297// Provides configuration information for the AMAZON.KendraSearchIntent intent.
16298// When you use this intent, Amazon Lex searches the specified Amazon Kendra
16299// index and returns documents from the index that match the user's utterance.
16300type KendraConfiguration struct {
16301	_ struct{} `type:"structure"`
16302
16303	// The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the
16304	// AMAZON.KendraSearchIntent intent to search. The index must be in the same
16305	// account and Region as the Amazon Lex bot.
16306	//
16307	// KendraIndex is a required field
16308	KendraIndex *string `locationName:"kendraIndex" min:"32" type:"string" required:"true"`
16309
16310	// A query filter that Amazon Lex sends to Amazon Kendra to filter the response
16311	// from a query. The filter is in the format defined by Amazon Kendra. For more
16312	// information, see Filtering queries (https://docs.aws.amazon.com/kendra/latest/dg/filtering.html).
16313	QueryFilterString *string `locationName:"queryFilterString" min:"1" type:"string"`
16314
16315	// Determines whether the AMAZON.KendraSearchIntent intent uses a custom query
16316	// string to query the Amazon Kendra index.
16317	QueryFilterStringEnabled *bool `locationName:"queryFilterStringEnabled" type:"boolean"`
16318}
16319
16320// String returns the string representation.
16321//
16322// API parameter values that are decorated as "sensitive" in the API will not
16323// be included in the string output. The member name will be present, but the
16324// value will be replaced with "sensitive".
16325func (s KendraConfiguration) String() string {
16326	return awsutil.Prettify(s)
16327}
16328
16329// GoString returns the string representation.
16330//
16331// API parameter values that are decorated as "sensitive" in the API will not
16332// be included in the string output. The member name will be present, but the
16333// value will be replaced with "sensitive".
16334func (s KendraConfiguration) GoString() string {
16335	return s.String()
16336}
16337
16338// Validate inspects the fields of the type to determine if they are valid.
16339func (s *KendraConfiguration) Validate() error {
16340	invalidParams := request.ErrInvalidParams{Context: "KendraConfiguration"}
16341	if s.KendraIndex == nil {
16342		invalidParams.Add(request.NewErrParamRequired("KendraIndex"))
16343	}
16344	if s.KendraIndex != nil && len(*s.KendraIndex) < 32 {
16345		invalidParams.Add(request.NewErrParamMinLen("KendraIndex", 32))
16346	}
16347	if s.QueryFilterString != nil && len(*s.QueryFilterString) < 1 {
16348		invalidParams.Add(request.NewErrParamMinLen("QueryFilterString", 1))
16349	}
16350
16351	if invalidParams.Len() > 0 {
16352		return invalidParams
16353	}
16354	return nil
16355}
16356
16357// SetKendraIndex sets the KendraIndex field's value.
16358func (s *KendraConfiguration) SetKendraIndex(v string) *KendraConfiguration {
16359	s.KendraIndex = &v
16360	return s
16361}
16362
16363// SetQueryFilterString sets the QueryFilterString field's value.
16364func (s *KendraConfiguration) SetQueryFilterString(v string) *KendraConfiguration {
16365	s.QueryFilterString = &v
16366	return s
16367}
16368
16369// SetQueryFilterStringEnabled sets the QueryFilterStringEnabled field's value.
16370func (s *KendraConfiguration) SetQueryFilterStringEnabled(v bool) *KendraConfiguration {
16371	s.QueryFilterStringEnabled = &v
16372	return s
16373}
16374
16375// Specifies a Lambda function that verifies requests to a bot or fulfills the
16376// user's request to a bot.
16377type LambdaCodeHook struct {
16378	_ struct{} `type:"structure"`
16379
16380	// The version of the request-response that you want Amazon Lex to use to invoke
16381	// your Lambda function.
16382	//
16383	// CodeHookInterfaceVersion is a required field
16384	CodeHookInterfaceVersion *string `locationName:"codeHookInterfaceVersion" min:"1" type:"string" required:"true"`
16385
16386	// The Amazon Resource Name (ARN) of the Lambda function.
16387	//
16388	// LambdaARN is a required field
16389	LambdaARN *string `locationName:"lambdaARN" min:"20" type:"string" required:"true"`
16390}
16391
16392// String returns the string representation.
16393//
16394// API parameter values that are decorated as "sensitive" in the API will not
16395// be included in the string output. The member name will be present, but the
16396// value will be replaced with "sensitive".
16397func (s LambdaCodeHook) String() string {
16398	return awsutil.Prettify(s)
16399}
16400
16401// GoString returns the string representation.
16402//
16403// API parameter values that are decorated as "sensitive" in the API will not
16404// be included in the string output. The member name will be present, but the
16405// value will be replaced with "sensitive".
16406func (s LambdaCodeHook) GoString() string {
16407	return s.String()
16408}
16409
16410// Validate inspects the fields of the type to determine if they are valid.
16411func (s *LambdaCodeHook) Validate() error {
16412	invalidParams := request.ErrInvalidParams{Context: "LambdaCodeHook"}
16413	if s.CodeHookInterfaceVersion == nil {
16414		invalidParams.Add(request.NewErrParamRequired("CodeHookInterfaceVersion"))
16415	}
16416	if s.CodeHookInterfaceVersion != nil && len(*s.CodeHookInterfaceVersion) < 1 {
16417		invalidParams.Add(request.NewErrParamMinLen("CodeHookInterfaceVersion", 1))
16418	}
16419	if s.LambdaARN == nil {
16420		invalidParams.Add(request.NewErrParamRequired("LambdaARN"))
16421	}
16422	if s.LambdaARN != nil && len(*s.LambdaARN) < 20 {
16423		invalidParams.Add(request.NewErrParamMinLen("LambdaARN", 20))
16424	}
16425
16426	if invalidParams.Len() > 0 {
16427		return invalidParams
16428	}
16429	return nil
16430}
16431
16432// SetCodeHookInterfaceVersion sets the CodeHookInterfaceVersion field's value.
16433func (s *LambdaCodeHook) SetCodeHookInterfaceVersion(v string) *LambdaCodeHook {
16434	s.CodeHookInterfaceVersion = &v
16435	return s
16436}
16437
16438// SetLambdaARN sets the LambdaARN field's value.
16439func (s *LambdaCodeHook) SetLambdaARN(v string) *LambdaCodeHook {
16440	s.LambdaARN = &v
16441	return s
16442}
16443
16444type ListAggregatedUtterancesInput struct {
16445	_ struct{} `type:"structure"`
16446
16447	// The time window for aggregating the utterance information. You can specify
16448	// a time between one hour and two weeks.
16449	//
16450	// AggregationDuration is a required field
16451	AggregationDuration *UtteranceAggregationDuration `locationName:"aggregationDuration" type:"structure" required:"true"`
16452
16453	// The identifier of the bot alias associated with this request. If you specify
16454	// the bot alias, you can't specify the bot version.
16455	BotAliasId *string `locationName:"botAliasId" min:"10" type:"string"`
16456
16457	// The unique identifier of the bot associated with this request.
16458	//
16459	// BotId is a required field
16460	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
16461
16462	// The identifier of the bot version associated with this request. If you specify
16463	// the bot version, you can't specify the bot alias.
16464	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
16465
16466	// Provides the specification of a filter used to limit the utterances in the
16467	// response to only those that match the filter specification. You can only
16468	// specify one filter and one string to filter on.
16469	Filters []*AggregatedUtterancesFilter `locationName:"filters" min:"1" type:"list"`
16470
16471	// The identifier of the language and locale where the utterances were collected.
16472	// For more information, see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
16473	//
16474	// LocaleId is a required field
16475	LocaleId *string `locationName:"localeId" type:"string" required:"true"`
16476
16477	// The maximum number of utterances to return in each page of results. If there
16478	// are fewer results than the maximum page size, only the actual number of results
16479	// are returned. If you don't specify the maxResults parameter, 1,000 results
16480	// are returned.
16481	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
16482
16483	// If the response from the ListAggregatedUtterances operation contains more
16484	// results that specified in the maxResults parameter, a token is returned in
16485	// the response. Use that token in the nextToken parameter to return the next
16486	// page of results.
16487	NextToken *string `locationName:"nextToken" type:"string"`
16488
16489	// Specifies sorting parameters for the list of utterances. You can sort by
16490	// the hit count, the missed count, or the number of distinct sessions the utterance
16491	// appeared in.
16492	SortBy *AggregatedUtterancesSortBy `locationName:"sortBy" type:"structure"`
16493}
16494
16495// String returns the string representation.
16496//
16497// API parameter values that are decorated as "sensitive" in the API will not
16498// be included in the string output. The member name will be present, but the
16499// value will be replaced with "sensitive".
16500func (s ListAggregatedUtterancesInput) String() string {
16501	return awsutil.Prettify(s)
16502}
16503
16504// GoString returns the string representation.
16505//
16506// API parameter values that are decorated as "sensitive" in the API will not
16507// be included in the string output. The member name will be present, but the
16508// value will be replaced with "sensitive".
16509func (s ListAggregatedUtterancesInput) GoString() string {
16510	return s.String()
16511}
16512
16513// Validate inspects the fields of the type to determine if they are valid.
16514func (s *ListAggregatedUtterancesInput) Validate() error {
16515	invalidParams := request.ErrInvalidParams{Context: "ListAggregatedUtterancesInput"}
16516	if s.AggregationDuration == nil {
16517		invalidParams.Add(request.NewErrParamRequired("AggregationDuration"))
16518	}
16519	if s.BotAliasId != nil && len(*s.BotAliasId) < 10 {
16520		invalidParams.Add(request.NewErrParamMinLen("BotAliasId", 10))
16521	}
16522	if s.BotId == nil {
16523		invalidParams.Add(request.NewErrParamRequired("BotId"))
16524	}
16525	if s.BotId != nil && len(*s.BotId) < 10 {
16526		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
16527	}
16528	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
16529		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
16530	}
16531	if s.Filters != nil && len(s.Filters) < 1 {
16532		invalidParams.Add(request.NewErrParamMinLen("Filters", 1))
16533	}
16534	if s.LocaleId == nil {
16535		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
16536	}
16537	if s.MaxResults != nil && *s.MaxResults < 1 {
16538		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
16539	}
16540	if s.AggregationDuration != nil {
16541		if err := s.AggregationDuration.Validate(); err != nil {
16542			invalidParams.AddNested("AggregationDuration", err.(request.ErrInvalidParams))
16543		}
16544	}
16545	if s.Filters != nil {
16546		for i, v := range s.Filters {
16547			if v == nil {
16548				continue
16549			}
16550			if err := v.Validate(); err != nil {
16551				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
16552			}
16553		}
16554	}
16555	if s.SortBy != nil {
16556		if err := s.SortBy.Validate(); err != nil {
16557			invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams))
16558		}
16559	}
16560
16561	if invalidParams.Len() > 0 {
16562		return invalidParams
16563	}
16564	return nil
16565}
16566
16567// SetAggregationDuration sets the AggregationDuration field's value.
16568func (s *ListAggregatedUtterancesInput) SetAggregationDuration(v *UtteranceAggregationDuration) *ListAggregatedUtterancesInput {
16569	s.AggregationDuration = v
16570	return s
16571}
16572
16573// SetBotAliasId sets the BotAliasId field's value.
16574func (s *ListAggregatedUtterancesInput) SetBotAliasId(v string) *ListAggregatedUtterancesInput {
16575	s.BotAliasId = &v
16576	return s
16577}
16578
16579// SetBotId sets the BotId field's value.
16580func (s *ListAggregatedUtterancesInput) SetBotId(v string) *ListAggregatedUtterancesInput {
16581	s.BotId = &v
16582	return s
16583}
16584
16585// SetBotVersion sets the BotVersion field's value.
16586func (s *ListAggregatedUtterancesInput) SetBotVersion(v string) *ListAggregatedUtterancesInput {
16587	s.BotVersion = &v
16588	return s
16589}
16590
16591// SetFilters sets the Filters field's value.
16592func (s *ListAggregatedUtterancesInput) SetFilters(v []*AggregatedUtterancesFilter) *ListAggregatedUtterancesInput {
16593	s.Filters = v
16594	return s
16595}
16596
16597// SetLocaleId sets the LocaleId field's value.
16598func (s *ListAggregatedUtterancesInput) SetLocaleId(v string) *ListAggregatedUtterancesInput {
16599	s.LocaleId = &v
16600	return s
16601}
16602
16603// SetMaxResults sets the MaxResults field's value.
16604func (s *ListAggregatedUtterancesInput) SetMaxResults(v int64) *ListAggregatedUtterancesInput {
16605	s.MaxResults = &v
16606	return s
16607}
16608
16609// SetNextToken sets the NextToken field's value.
16610func (s *ListAggregatedUtterancesInput) SetNextToken(v string) *ListAggregatedUtterancesInput {
16611	s.NextToken = &v
16612	return s
16613}
16614
16615// SetSortBy sets the SortBy field's value.
16616func (s *ListAggregatedUtterancesInput) SetSortBy(v *AggregatedUtterancesSortBy) *ListAggregatedUtterancesInput {
16617	s.SortBy = v
16618	return s
16619}
16620
16621type ListAggregatedUtterancesOutput struct {
16622	_ struct{} `type:"structure"`
16623
16624	// Summaries of the aggregated utterance data. Each response contains information
16625	// about the number of times that the utterance was seen during the time period,
16626	// whether it was detected or missed, and when it was seen during the time period.
16627	AggregatedUtterancesSummaries []*AggregatedUtterancesSummary `locationName:"aggregatedUtterancesSummaries" type:"list"`
16628
16629	// The time period used to aggregate the utterance data.
16630	AggregationDuration *UtteranceAggregationDuration `locationName:"aggregationDuration" type:"structure"`
16631
16632	// The last date and time that the aggregated data was collected. The time period
16633	// depends on the length of the aggregation window.
16634	//
16635	//    * Hours - for 1 hour time window, every half hour; otherwise every hour.
16636	//
16637	//    * Days - every 6 hours
16638	//
16639	//    * Weeks - for a one week time window, every 12 hours; otherwise, every
16640	//    day
16641	AggregationLastRefreshedDateTime *time.Time `locationName:"aggregationLastRefreshedDateTime" type:"timestamp"`
16642
16643	// The date and time that the aggregation window ends. Only data collected between
16644	// the start time and the end time are returned in the results.
16645	AggregationWindowEndTime *time.Time `locationName:"aggregationWindowEndTime" type:"timestamp"`
16646
16647	// The date and time that the aggregation window begins. Only data collected
16648	// after this time is returned in the results.
16649	AggregationWindowStartTime *time.Time `locationName:"aggregationWindowStartTime" type:"timestamp"`
16650
16651	// The identifier of the bot alias that contains the utterances. If you specified
16652	// the bot version, the bot alias ID isn't returned.
16653	BotAliasId *string `locationName:"botAliasId" min:"10" type:"string"`
16654
16655	// The identifier of the bot that contains the utterances.
16656	BotId *string `locationName:"botId" min:"10" type:"string"`
16657
16658	// The identifier of the bot version that contains the utterances. If you specified
16659	// the bot alias, the bot version isn't returned.
16660	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
16661
16662	// The identifier of the language and locale that the utterances are in.
16663	LocaleId *string `locationName:"localeId" type:"string"`
16664
16665	// A token that indicates whether there are more results to return in a response
16666	// to the ListAggregatedUtterances operation. If the nextToken field is present,
16667	// you send the contents as the nextToken parameter of a ListAggregatedUtterances
16668	// operation request to get the next page of results.
16669	NextToken *string `locationName:"nextToken" type:"string"`
16670}
16671
16672// String returns the string representation.
16673//
16674// API parameter values that are decorated as "sensitive" in the API will not
16675// be included in the string output. The member name will be present, but the
16676// value will be replaced with "sensitive".
16677func (s ListAggregatedUtterancesOutput) String() string {
16678	return awsutil.Prettify(s)
16679}
16680
16681// GoString returns the string representation.
16682//
16683// API parameter values that are decorated as "sensitive" in the API will not
16684// be included in the string output. The member name will be present, but the
16685// value will be replaced with "sensitive".
16686func (s ListAggregatedUtterancesOutput) GoString() string {
16687	return s.String()
16688}
16689
16690// SetAggregatedUtterancesSummaries sets the AggregatedUtterancesSummaries field's value.
16691func (s *ListAggregatedUtterancesOutput) SetAggregatedUtterancesSummaries(v []*AggregatedUtterancesSummary) *ListAggregatedUtterancesOutput {
16692	s.AggregatedUtterancesSummaries = v
16693	return s
16694}
16695
16696// SetAggregationDuration sets the AggregationDuration field's value.
16697func (s *ListAggregatedUtterancesOutput) SetAggregationDuration(v *UtteranceAggregationDuration) *ListAggregatedUtterancesOutput {
16698	s.AggregationDuration = v
16699	return s
16700}
16701
16702// SetAggregationLastRefreshedDateTime sets the AggregationLastRefreshedDateTime field's value.
16703func (s *ListAggregatedUtterancesOutput) SetAggregationLastRefreshedDateTime(v time.Time) *ListAggregatedUtterancesOutput {
16704	s.AggregationLastRefreshedDateTime = &v
16705	return s
16706}
16707
16708// SetAggregationWindowEndTime sets the AggregationWindowEndTime field's value.
16709func (s *ListAggregatedUtterancesOutput) SetAggregationWindowEndTime(v time.Time) *ListAggregatedUtterancesOutput {
16710	s.AggregationWindowEndTime = &v
16711	return s
16712}
16713
16714// SetAggregationWindowStartTime sets the AggregationWindowStartTime field's value.
16715func (s *ListAggregatedUtterancesOutput) SetAggregationWindowStartTime(v time.Time) *ListAggregatedUtterancesOutput {
16716	s.AggregationWindowStartTime = &v
16717	return s
16718}
16719
16720// SetBotAliasId sets the BotAliasId field's value.
16721func (s *ListAggregatedUtterancesOutput) SetBotAliasId(v string) *ListAggregatedUtterancesOutput {
16722	s.BotAliasId = &v
16723	return s
16724}
16725
16726// SetBotId sets the BotId field's value.
16727func (s *ListAggregatedUtterancesOutput) SetBotId(v string) *ListAggregatedUtterancesOutput {
16728	s.BotId = &v
16729	return s
16730}
16731
16732// SetBotVersion sets the BotVersion field's value.
16733func (s *ListAggregatedUtterancesOutput) SetBotVersion(v string) *ListAggregatedUtterancesOutput {
16734	s.BotVersion = &v
16735	return s
16736}
16737
16738// SetLocaleId sets the LocaleId field's value.
16739func (s *ListAggregatedUtterancesOutput) SetLocaleId(v string) *ListAggregatedUtterancesOutput {
16740	s.LocaleId = &v
16741	return s
16742}
16743
16744// SetNextToken sets the NextToken field's value.
16745func (s *ListAggregatedUtterancesOutput) SetNextToken(v string) *ListAggregatedUtterancesOutput {
16746	s.NextToken = &v
16747	return s
16748}
16749
16750type ListBotAliasesInput struct {
16751	_ struct{} `type:"structure"`
16752
16753	// The identifier of the bot to list aliases for.
16754	//
16755	// BotId is a required field
16756	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
16757
16758	// The maximum number of aliases to return in each page of results. If there
16759	// are fewer results than the max page size, only the actual number of results
16760	// are returned.
16761	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
16762
16763	// If the response from the ListBotAliases operation contains more results than
16764	// specified in the maxResults parameter, a token is returned in the response.
16765	// Use that token in the nextToken parameter to return the next page of results.
16766	NextToken *string `locationName:"nextToken" type:"string"`
16767}
16768
16769// String returns the string representation.
16770//
16771// API parameter values that are decorated as "sensitive" in the API will not
16772// be included in the string output. The member name will be present, but the
16773// value will be replaced with "sensitive".
16774func (s ListBotAliasesInput) String() string {
16775	return awsutil.Prettify(s)
16776}
16777
16778// GoString returns the string representation.
16779//
16780// API parameter values that are decorated as "sensitive" in the API will not
16781// be included in the string output. The member name will be present, but the
16782// value will be replaced with "sensitive".
16783func (s ListBotAliasesInput) GoString() string {
16784	return s.String()
16785}
16786
16787// Validate inspects the fields of the type to determine if they are valid.
16788func (s *ListBotAliasesInput) Validate() error {
16789	invalidParams := request.ErrInvalidParams{Context: "ListBotAliasesInput"}
16790	if s.BotId == nil {
16791		invalidParams.Add(request.NewErrParamRequired("BotId"))
16792	}
16793	if s.BotId != nil && len(*s.BotId) < 10 {
16794		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
16795	}
16796	if s.MaxResults != nil && *s.MaxResults < 1 {
16797		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
16798	}
16799
16800	if invalidParams.Len() > 0 {
16801		return invalidParams
16802	}
16803	return nil
16804}
16805
16806// SetBotId sets the BotId field's value.
16807func (s *ListBotAliasesInput) SetBotId(v string) *ListBotAliasesInput {
16808	s.BotId = &v
16809	return s
16810}
16811
16812// SetMaxResults sets the MaxResults field's value.
16813func (s *ListBotAliasesInput) SetMaxResults(v int64) *ListBotAliasesInput {
16814	s.MaxResults = &v
16815	return s
16816}
16817
16818// SetNextToken sets the NextToken field's value.
16819func (s *ListBotAliasesInput) SetNextToken(v string) *ListBotAliasesInput {
16820	s.NextToken = &v
16821	return s
16822}
16823
16824type ListBotAliasesOutput struct {
16825	_ struct{} `type:"structure"`
16826
16827	// Summary information for the bot aliases that meet the filter criteria specified
16828	// in the request. The length of the list is specified in the maxResults parameter
16829	// of the request. If there are more aliases available, the nextToken field
16830	// contains a token to get the next page of results.
16831	BotAliasSummaries []*BotAliasSummary `locationName:"botAliasSummaries" type:"list"`
16832
16833	// The identifier of the bot associated with the aliases.
16834	BotId *string `locationName:"botId" min:"10" type:"string"`
16835
16836	// A token that indicates whether there are more results to return in a response
16837	// to the ListBotAliases operation. If the nextToken field is present, you send
16838	// the contents as the nextToken parameter of a ListBotAliases operation request
16839	// to get the next page of results.
16840	NextToken *string `locationName:"nextToken" type:"string"`
16841}
16842
16843// String returns the string representation.
16844//
16845// API parameter values that are decorated as "sensitive" in the API will not
16846// be included in the string output. The member name will be present, but the
16847// value will be replaced with "sensitive".
16848func (s ListBotAliasesOutput) String() string {
16849	return awsutil.Prettify(s)
16850}
16851
16852// GoString returns the string representation.
16853//
16854// API parameter values that are decorated as "sensitive" in the API will not
16855// be included in the string output. The member name will be present, but the
16856// value will be replaced with "sensitive".
16857func (s ListBotAliasesOutput) GoString() string {
16858	return s.String()
16859}
16860
16861// SetBotAliasSummaries sets the BotAliasSummaries field's value.
16862func (s *ListBotAliasesOutput) SetBotAliasSummaries(v []*BotAliasSummary) *ListBotAliasesOutput {
16863	s.BotAliasSummaries = v
16864	return s
16865}
16866
16867// SetBotId sets the BotId field's value.
16868func (s *ListBotAliasesOutput) SetBotId(v string) *ListBotAliasesOutput {
16869	s.BotId = &v
16870	return s
16871}
16872
16873// SetNextToken sets the NextToken field's value.
16874func (s *ListBotAliasesOutput) SetNextToken(v string) *ListBotAliasesOutput {
16875	s.NextToken = &v
16876	return s
16877}
16878
16879type ListBotLocalesInput struct {
16880	_ struct{} `type:"structure"`
16881
16882	// The identifier of the bot to list locales for.
16883	//
16884	// BotId is a required field
16885	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
16886
16887	// The version of the bot to list locales for.
16888	//
16889	// BotVersion is a required field
16890	BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"`
16891
16892	// Provides the specification for a filter used to limit the response to only
16893	// those locales that match the filter specification. You can only specify one
16894	// filter and one value to filter on.
16895	Filters []*BotLocaleFilter `locationName:"filters" min:"1" type:"list"`
16896
16897	// The maximum number of aliases to return in each page of results. If there
16898	// are fewer results than the max page size, only the actual number of results
16899	// are returned.
16900	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
16901
16902	// If the response from the ListBotLocales operation contains more results than
16903	// specified in the maxResults parameter, a token is returned in the response.
16904	// Use that token as the nextToken parameter to return the next page of results.
16905	NextToken *string `locationName:"nextToken" type:"string"`
16906
16907	// Specifies sorting parameters for the list of locales. You can sort by locale
16908	// name in ascending or descending order.
16909	SortBy *BotLocaleSortBy `locationName:"sortBy" type:"structure"`
16910}
16911
16912// String returns the string representation.
16913//
16914// API parameter values that are decorated as "sensitive" in the API will not
16915// be included in the string output. The member name will be present, but the
16916// value will be replaced with "sensitive".
16917func (s ListBotLocalesInput) String() string {
16918	return awsutil.Prettify(s)
16919}
16920
16921// GoString returns the string representation.
16922//
16923// API parameter values that are decorated as "sensitive" in the API will not
16924// be included in the string output. The member name will be present, but the
16925// value will be replaced with "sensitive".
16926func (s ListBotLocalesInput) GoString() string {
16927	return s.String()
16928}
16929
16930// Validate inspects the fields of the type to determine if they are valid.
16931func (s *ListBotLocalesInput) Validate() error {
16932	invalidParams := request.ErrInvalidParams{Context: "ListBotLocalesInput"}
16933	if s.BotId == nil {
16934		invalidParams.Add(request.NewErrParamRequired("BotId"))
16935	}
16936	if s.BotId != nil && len(*s.BotId) < 10 {
16937		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
16938	}
16939	if s.BotVersion == nil {
16940		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
16941	}
16942	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
16943		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
16944	}
16945	if s.Filters != nil && len(s.Filters) < 1 {
16946		invalidParams.Add(request.NewErrParamMinLen("Filters", 1))
16947	}
16948	if s.MaxResults != nil && *s.MaxResults < 1 {
16949		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
16950	}
16951	if s.Filters != nil {
16952		for i, v := range s.Filters {
16953			if v == nil {
16954				continue
16955			}
16956			if err := v.Validate(); err != nil {
16957				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
16958			}
16959		}
16960	}
16961	if s.SortBy != nil {
16962		if err := s.SortBy.Validate(); err != nil {
16963			invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams))
16964		}
16965	}
16966
16967	if invalidParams.Len() > 0 {
16968		return invalidParams
16969	}
16970	return nil
16971}
16972
16973// SetBotId sets the BotId field's value.
16974func (s *ListBotLocalesInput) SetBotId(v string) *ListBotLocalesInput {
16975	s.BotId = &v
16976	return s
16977}
16978
16979// SetBotVersion sets the BotVersion field's value.
16980func (s *ListBotLocalesInput) SetBotVersion(v string) *ListBotLocalesInput {
16981	s.BotVersion = &v
16982	return s
16983}
16984
16985// SetFilters sets the Filters field's value.
16986func (s *ListBotLocalesInput) SetFilters(v []*BotLocaleFilter) *ListBotLocalesInput {
16987	s.Filters = v
16988	return s
16989}
16990
16991// SetMaxResults sets the MaxResults field's value.
16992func (s *ListBotLocalesInput) SetMaxResults(v int64) *ListBotLocalesInput {
16993	s.MaxResults = &v
16994	return s
16995}
16996
16997// SetNextToken sets the NextToken field's value.
16998func (s *ListBotLocalesInput) SetNextToken(v string) *ListBotLocalesInput {
16999	s.NextToken = &v
17000	return s
17001}
17002
17003// SetSortBy sets the SortBy field's value.
17004func (s *ListBotLocalesInput) SetSortBy(v *BotLocaleSortBy) *ListBotLocalesInput {
17005	s.SortBy = v
17006	return s
17007}
17008
17009type ListBotLocalesOutput struct {
17010	_ struct{} `type:"structure"`
17011
17012	// The identifier of the bot to list locales for.
17013	BotId *string `locationName:"botId" min:"10" type:"string"`
17014
17015	// Summary information for the locales that meet the filter criteria specified
17016	// in the request. The length of the list is specified in the maxResults parameter
17017	// of the request. If there are more locales available, the nextToken field
17018	// contains a token to get the next page of results.
17019	BotLocaleSummaries []*BotLocaleSummary `locationName:"botLocaleSummaries" type:"list"`
17020
17021	// The version of the bot.
17022	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
17023
17024	// A token that indicates whether there are more results to return in a response
17025	// to the ListBotLocales operation. If the nextToken field is present, you send
17026	// the contents as the nextToken parameter of a ListBotLocales operation request
17027	// to get the next page of results.
17028	NextToken *string `locationName:"nextToken" type:"string"`
17029}
17030
17031// String returns the string representation.
17032//
17033// API parameter values that are decorated as "sensitive" in the API will not
17034// be included in the string output. The member name will be present, but the
17035// value will be replaced with "sensitive".
17036func (s ListBotLocalesOutput) String() string {
17037	return awsutil.Prettify(s)
17038}
17039
17040// GoString returns the string representation.
17041//
17042// API parameter values that are decorated as "sensitive" in the API will not
17043// be included in the string output. The member name will be present, but the
17044// value will be replaced with "sensitive".
17045func (s ListBotLocalesOutput) GoString() string {
17046	return s.String()
17047}
17048
17049// SetBotId sets the BotId field's value.
17050func (s *ListBotLocalesOutput) SetBotId(v string) *ListBotLocalesOutput {
17051	s.BotId = &v
17052	return s
17053}
17054
17055// SetBotLocaleSummaries sets the BotLocaleSummaries field's value.
17056func (s *ListBotLocalesOutput) SetBotLocaleSummaries(v []*BotLocaleSummary) *ListBotLocalesOutput {
17057	s.BotLocaleSummaries = v
17058	return s
17059}
17060
17061// SetBotVersion sets the BotVersion field's value.
17062func (s *ListBotLocalesOutput) SetBotVersion(v string) *ListBotLocalesOutput {
17063	s.BotVersion = &v
17064	return s
17065}
17066
17067// SetNextToken sets the NextToken field's value.
17068func (s *ListBotLocalesOutput) SetNextToken(v string) *ListBotLocalesOutput {
17069	s.NextToken = &v
17070	return s
17071}
17072
17073type ListBotVersionsInput struct {
17074	_ struct{} `type:"structure"`
17075
17076	// The identifier of the bot to list versions for.
17077	//
17078	// BotId is a required field
17079	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
17080
17081	// The maximum number of versions to return in each page of results. If there
17082	// are fewer results than the max page size, only the actual number of results
17083	// are returned.
17084	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
17085
17086	// If the response to the ListBotVersion operation contains more results than
17087	// specified in the maxResults parameter, a token is returned in the response.
17088	// Use that token in the nextToken parameter to return the next page of results.
17089	NextToken *string `locationName:"nextToken" type:"string"`
17090
17091	// Specifies sorting parameters for the list of versions. You can specify that
17092	// the list be sorted by version name in either ascending or descending order.
17093	SortBy *BotVersionSortBy `locationName:"sortBy" type:"structure"`
17094}
17095
17096// String returns the string representation.
17097//
17098// API parameter values that are decorated as "sensitive" in the API will not
17099// be included in the string output. The member name will be present, but the
17100// value will be replaced with "sensitive".
17101func (s ListBotVersionsInput) String() string {
17102	return awsutil.Prettify(s)
17103}
17104
17105// GoString returns the string representation.
17106//
17107// API parameter values that are decorated as "sensitive" in the API will not
17108// be included in the string output. The member name will be present, but the
17109// value will be replaced with "sensitive".
17110func (s ListBotVersionsInput) GoString() string {
17111	return s.String()
17112}
17113
17114// Validate inspects the fields of the type to determine if they are valid.
17115func (s *ListBotVersionsInput) Validate() error {
17116	invalidParams := request.ErrInvalidParams{Context: "ListBotVersionsInput"}
17117	if s.BotId == nil {
17118		invalidParams.Add(request.NewErrParamRequired("BotId"))
17119	}
17120	if s.BotId != nil && len(*s.BotId) < 10 {
17121		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
17122	}
17123	if s.MaxResults != nil && *s.MaxResults < 1 {
17124		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17125	}
17126	if s.SortBy != nil {
17127		if err := s.SortBy.Validate(); err != nil {
17128			invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams))
17129		}
17130	}
17131
17132	if invalidParams.Len() > 0 {
17133		return invalidParams
17134	}
17135	return nil
17136}
17137
17138// SetBotId sets the BotId field's value.
17139func (s *ListBotVersionsInput) SetBotId(v string) *ListBotVersionsInput {
17140	s.BotId = &v
17141	return s
17142}
17143
17144// SetMaxResults sets the MaxResults field's value.
17145func (s *ListBotVersionsInput) SetMaxResults(v int64) *ListBotVersionsInput {
17146	s.MaxResults = &v
17147	return s
17148}
17149
17150// SetNextToken sets the NextToken field's value.
17151func (s *ListBotVersionsInput) SetNextToken(v string) *ListBotVersionsInput {
17152	s.NextToken = &v
17153	return s
17154}
17155
17156// SetSortBy sets the SortBy field's value.
17157func (s *ListBotVersionsInput) SetSortBy(v *BotVersionSortBy) *ListBotVersionsInput {
17158	s.SortBy = v
17159	return s
17160}
17161
17162type ListBotVersionsOutput struct {
17163	_ struct{} `type:"structure"`
17164
17165	// The identifier of the bot to list versions for.
17166	BotId *string `locationName:"botId" min:"10" type:"string"`
17167
17168	// Summary information for the bot versions that meet the filter criteria specified
17169	// in the request. The length of the list is specified in the maxResults parameter
17170	// of the request. If there are more versions available, the nextToken field
17171	// contains a token to get the next page of results.
17172	BotVersionSummaries []*BotVersionSummary `locationName:"botVersionSummaries" type:"list"`
17173
17174	// A token that indicates whether there are more results to return in a response
17175	// to the ListBotVersions operation. If the nextToken field is present, you
17176	// send the contents as the nextToken parameter of a ListBotAliases operation
17177	// request to get the next page of results.
17178	NextToken *string `locationName:"nextToken" type:"string"`
17179}
17180
17181// String returns the string representation.
17182//
17183// API parameter values that are decorated as "sensitive" in the API will not
17184// be included in the string output. The member name will be present, but the
17185// value will be replaced with "sensitive".
17186func (s ListBotVersionsOutput) String() string {
17187	return awsutil.Prettify(s)
17188}
17189
17190// GoString returns the string representation.
17191//
17192// API parameter values that are decorated as "sensitive" in the API will not
17193// be included in the string output. The member name will be present, but the
17194// value will be replaced with "sensitive".
17195func (s ListBotVersionsOutput) GoString() string {
17196	return s.String()
17197}
17198
17199// SetBotId sets the BotId field's value.
17200func (s *ListBotVersionsOutput) SetBotId(v string) *ListBotVersionsOutput {
17201	s.BotId = &v
17202	return s
17203}
17204
17205// SetBotVersionSummaries sets the BotVersionSummaries field's value.
17206func (s *ListBotVersionsOutput) SetBotVersionSummaries(v []*BotVersionSummary) *ListBotVersionsOutput {
17207	s.BotVersionSummaries = v
17208	return s
17209}
17210
17211// SetNextToken sets the NextToken field's value.
17212func (s *ListBotVersionsOutput) SetNextToken(v string) *ListBotVersionsOutput {
17213	s.NextToken = &v
17214	return s
17215}
17216
17217type ListBotsInput struct {
17218	_ struct{} `type:"structure"`
17219
17220	// Provides the specification of a filter used to limit the bots in the response
17221	// to only those that match the filter specification. You can only specify one
17222	// filter and one string to filter on.
17223	Filters []*BotFilter `locationName:"filters" min:"1" type:"list"`
17224
17225	// The maximum number of bots to return in each page of results. If there are
17226	// fewer results than the maximum page size, only the actual number of results
17227	// are returned.
17228	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
17229
17230	// If the response from the ListBots operation contains more results than specified
17231	// in the maxResults parameter, a token is returned in the response. Use that
17232	// token in the nextToken parameter to return the next page of results.
17233	NextToken *string `locationName:"nextToken" type:"string"`
17234
17235	// Specifies sorting parameters for the list of bots. You can specify that the
17236	// list be sorted by bot name in ascending or descending order.
17237	SortBy *BotSortBy `locationName:"sortBy" type:"structure"`
17238}
17239
17240// String returns the string representation.
17241//
17242// API parameter values that are decorated as "sensitive" in the API will not
17243// be included in the string output. The member name will be present, but the
17244// value will be replaced with "sensitive".
17245func (s ListBotsInput) String() string {
17246	return awsutil.Prettify(s)
17247}
17248
17249// GoString returns the string representation.
17250//
17251// API parameter values that are decorated as "sensitive" in the API will not
17252// be included in the string output. The member name will be present, but the
17253// value will be replaced with "sensitive".
17254func (s ListBotsInput) GoString() string {
17255	return s.String()
17256}
17257
17258// Validate inspects the fields of the type to determine if they are valid.
17259func (s *ListBotsInput) Validate() error {
17260	invalidParams := request.ErrInvalidParams{Context: "ListBotsInput"}
17261	if s.Filters != nil && len(s.Filters) < 1 {
17262		invalidParams.Add(request.NewErrParamMinLen("Filters", 1))
17263	}
17264	if s.MaxResults != nil && *s.MaxResults < 1 {
17265		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17266	}
17267	if s.Filters != nil {
17268		for i, v := range s.Filters {
17269			if v == nil {
17270				continue
17271			}
17272			if err := v.Validate(); err != nil {
17273				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
17274			}
17275		}
17276	}
17277	if s.SortBy != nil {
17278		if err := s.SortBy.Validate(); err != nil {
17279			invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams))
17280		}
17281	}
17282
17283	if invalidParams.Len() > 0 {
17284		return invalidParams
17285	}
17286	return nil
17287}
17288
17289// SetFilters sets the Filters field's value.
17290func (s *ListBotsInput) SetFilters(v []*BotFilter) *ListBotsInput {
17291	s.Filters = v
17292	return s
17293}
17294
17295// SetMaxResults sets the MaxResults field's value.
17296func (s *ListBotsInput) SetMaxResults(v int64) *ListBotsInput {
17297	s.MaxResults = &v
17298	return s
17299}
17300
17301// SetNextToken sets the NextToken field's value.
17302func (s *ListBotsInput) SetNextToken(v string) *ListBotsInput {
17303	s.NextToken = &v
17304	return s
17305}
17306
17307// SetSortBy sets the SortBy field's value.
17308func (s *ListBotsInput) SetSortBy(v *BotSortBy) *ListBotsInput {
17309	s.SortBy = v
17310	return s
17311}
17312
17313type ListBotsOutput struct {
17314	_ struct{} `type:"structure"`
17315
17316	// Summary information for the bots that meet the filter criteria specified
17317	// in the request. The length of the list is specified in the maxResults parameter
17318	// of the request. If there are more bots available, the nextToken field contains
17319	// a token to the next page of results.
17320	BotSummaries []*BotSummary `locationName:"botSummaries" type:"list"`
17321
17322	// A token that indicates whether there are more results to return in a response
17323	// to the ListBots operation. If the nextToken field is present, you send the
17324	// contents as the nextToken parameter of a ListBots operation request to get
17325	// the next page of results.
17326	NextToken *string `locationName:"nextToken" type:"string"`
17327}
17328
17329// String returns the string representation.
17330//
17331// API parameter values that are decorated as "sensitive" in the API will not
17332// be included in the string output. The member name will be present, but the
17333// value will be replaced with "sensitive".
17334func (s ListBotsOutput) String() string {
17335	return awsutil.Prettify(s)
17336}
17337
17338// GoString returns the string representation.
17339//
17340// API parameter values that are decorated as "sensitive" in the API will not
17341// be included in the string output. The member name will be present, but the
17342// value will be replaced with "sensitive".
17343func (s ListBotsOutput) GoString() string {
17344	return s.String()
17345}
17346
17347// SetBotSummaries sets the BotSummaries field's value.
17348func (s *ListBotsOutput) SetBotSummaries(v []*BotSummary) *ListBotsOutput {
17349	s.BotSummaries = v
17350	return s
17351}
17352
17353// SetNextToken sets the NextToken field's value.
17354func (s *ListBotsOutput) SetNextToken(v string) *ListBotsOutput {
17355	s.NextToken = &v
17356	return s
17357}
17358
17359type ListBuiltInIntentsInput struct {
17360	_ struct{} `type:"structure"`
17361
17362	// The identifier of the language and locale of the intents to list. The string
17363	// must match one of the supported locales. For more information, see Supported
17364	// languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
17365	//
17366	// LocaleId is a required field
17367	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
17368
17369	// The maximum number of built-in intents to return in each page of results.
17370	// If there are fewer results than the max page size, only the actual number
17371	// of results are returned.
17372	MaxResults *int64 `locationName:"maxResults" min:"20" type:"integer"`
17373
17374	// If the response from the ListBuiltInIntents operation contains more results
17375	// than specified in the maxResults parameter, a token is returned in the response.
17376	// Use that token in the nextToken parameter to return the next page of results.
17377	NextToken *string `locationName:"nextToken" type:"string"`
17378
17379	// Specifies sorting parameters for the list of built-in intents. You can specify
17380	// that the list be sorted by the built-in intent signature in either ascending
17381	// or descending order.
17382	SortBy *BuiltInIntentSortBy `locationName:"sortBy" type:"structure"`
17383}
17384
17385// String returns the string representation.
17386//
17387// API parameter values that are decorated as "sensitive" in the API will not
17388// be included in the string output. The member name will be present, but the
17389// value will be replaced with "sensitive".
17390func (s ListBuiltInIntentsInput) String() string {
17391	return awsutil.Prettify(s)
17392}
17393
17394// GoString returns the string representation.
17395//
17396// API parameter values that are decorated as "sensitive" in the API will not
17397// be included in the string output. The member name will be present, but the
17398// value will be replaced with "sensitive".
17399func (s ListBuiltInIntentsInput) GoString() string {
17400	return s.String()
17401}
17402
17403// Validate inspects the fields of the type to determine if they are valid.
17404func (s *ListBuiltInIntentsInput) Validate() error {
17405	invalidParams := request.ErrInvalidParams{Context: "ListBuiltInIntentsInput"}
17406	if s.LocaleId == nil {
17407		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
17408	}
17409	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
17410		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
17411	}
17412	if s.MaxResults != nil && *s.MaxResults < 20 {
17413		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 20))
17414	}
17415	if s.SortBy != nil {
17416		if err := s.SortBy.Validate(); err != nil {
17417			invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams))
17418		}
17419	}
17420
17421	if invalidParams.Len() > 0 {
17422		return invalidParams
17423	}
17424	return nil
17425}
17426
17427// SetLocaleId sets the LocaleId field's value.
17428func (s *ListBuiltInIntentsInput) SetLocaleId(v string) *ListBuiltInIntentsInput {
17429	s.LocaleId = &v
17430	return s
17431}
17432
17433// SetMaxResults sets the MaxResults field's value.
17434func (s *ListBuiltInIntentsInput) SetMaxResults(v int64) *ListBuiltInIntentsInput {
17435	s.MaxResults = &v
17436	return s
17437}
17438
17439// SetNextToken sets the NextToken field's value.
17440func (s *ListBuiltInIntentsInput) SetNextToken(v string) *ListBuiltInIntentsInput {
17441	s.NextToken = &v
17442	return s
17443}
17444
17445// SetSortBy sets the SortBy field's value.
17446func (s *ListBuiltInIntentsInput) SetSortBy(v *BuiltInIntentSortBy) *ListBuiltInIntentsInput {
17447	s.SortBy = v
17448	return s
17449}
17450
17451type ListBuiltInIntentsOutput struct {
17452	_ struct{} `type:"structure"`
17453
17454	// Summary information for the built-in intents that meet the filter criteria
17455	// specified in the request. The length of the list is specified in the maxResults
17456	// parameter of the request. If there are more intents available, the nextToken
17457	// field contains a token to get the next page of results.
17458	BuiltInIntentSummaries []*BuiltInIntentSummary `locationName:"builtInIntentSummaries" type:"list"`
17459
17460	// The language and locale of the intents in the list.
17461	LocaleId *string `locationName:"localeId" type:"string"`
17462
17463	// A token that indicates whether there are more results to return in a response
17464	// to the ListBuiltInIntents operation. If the nextToken field is present, you
17465	// send the contents as the nextToken parameter of a ListBotAliases operation
17466	// request to get the next page of results.
17467	NextToken *string `locationName:"nextToken" type:"string"`
17468}
17469
17470// String returns the string representation.
17471//
17472// API parameter values that are decorated as "sensitive" in the API will not
17473// be included in the string output. The member name will be present, but the
17474// value will be replaced with "sensitive".
17475func (s ListBuiltInIntentsOutput) String() string {
17476	return awsutil.Prettify(s)
17477}
17478
17479// GoString returns the string representation.
17480//
17481// API parameter values that are decorated as "sensitive" in the API will not
17482// be included in the string output. The member name will be present, but the
17483// value will be replaced with "sensitive".
17484func (s ListBuiltInIntentsOutput) GoString() string {
17485	return s.String()
17486}
17487
17488// SetBuiltInIntentSummaries sets the BuiltInIntentSummaries field's value.
17489func (s *ListBuiltInIntentsOutput) SetBuiltInIntentSummaries(v []*BuiltInIntentSummary) *ListBuiltInIntentsOutput {
17490	s.BuiltInIntentSummaries = v
17491	return s
17492}
17493
17494// SetLocaleId sets the LocaleId field's value.
17495func (s *ListBuiltInIntentsOutput) SetLocaleId(v string) *ListBuiltInIntentsOutput {
17496	s.LocaleId = &v
17497	return s
17498}
17499
17500// SetNextToken sets the NextToken field's value.
17501func (s *ListBuiltInIntentsOutput) SetNextToken(v string) *ListBuiltInIntentsOutput {
17502	s.NextToken = &v
17503	return s
17504}
17505
17506type ListBuiltInSlotTypesInput struct {
17507	_ struct{} `type:"structure"`
17508
17509	// The identifier of the language and locale of the slot types to list. The
17510	// string must match one of the supported locales. For more information, see
17511	// Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
17512	//
17513	// LocaleId is a required field
17514	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
17515
17516	// The maximum number of built-in slot types to return in each page of results.
17517	// If there are fewer results than the max page size, only the actual number
17518	// of results are returned.
17519	MaxResults *int64 `locationName:"maxResults" min:"20" type:"integer"`
17520
17521	// If the response from the ListBuiltInSlotTypes operation contains more results
17522	// than specified in the maxResults parameter, a token is returned in the response.
17523	// Use that token in the nextToken parameter to return the next page of results.
17524	NextToken *string `locationName:"nextToken" type:"string"`
17525
17526	// Determines the sort order for the response from the ListBuiltInSlotTypes
17527	// operation. You can choose to sort by the slot type signature in either ascending
17528	// or descending order.
17529	SortBy *BuiltInSlotTypeSortBy `locationName:"sortBy" type:"structure"`
17530}
17531
17532// String returns the string representation.
17533//
17534// API parameter values that are decorated as "sensitive" in the API will not
17535// be included in the string output. The member name will be present, but the
17536// value will be replaced with "sensitive".
17537func (s ListBuiltInSlotTypesInput) String() string {
17538	return awsutil.Prettify(s)
17539}
17540
17541// GoString returns the string representation.
17542//
17543// API parameter values that are decorated as "sensitive" in the API will not
17544// be included in the string output. The member name will be present, but the
17545// value will be replaced with "sensitive".
17546func (s ListBuiltInSlotTypesInput) GoString() string {
17547	return s.String()
17548}
17549
17550// Validate inspects the fields of the type to determine if they are valid.
17551func (s *ListBuiltInSlotTypesInput) Validate() error {
17552	invalidParams := request.ErrInvalidParams{Context: "ListBuiltInSlotTypesInput"}
17553	if s.LocaleId == nil {
17554		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
17555	}
17556	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
17557		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
17558	}
17559	if s.MaxResults != nil && *s.MaxResults < 20 {
17560		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 20))
17561	}
17562	if s.SortBy != nil {
17563		if err := s.SortBy.Validate(); err != nil {
17564			invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams))
17565		}
17566	}
17567
17568	if invalidParams.Len() > 0 {
17569		return invalidParams
17570	}
17571	return nil
17572}
17573
17574// SetLocaleId sets the LocaleId field's value.
17575func (s *ListBuiltInSlotTypesInput) SetLocaleId(v string) *ListBuiltInSlotTypesInput {
17576	s.LocaleId = &v
17577	return s
17578}
17579
17580// SetMaxResults sets the MaxResults field's value.
17581func (s *ListBuiltInSlotTypesInput) SetMaxResults(v int64) *ListBuiltInSlotTypesInput {
17582	s.MaxResults = &v
17583	return s
17584}
17585
17586// SetNextToken sets the NextToken field's value.
17587func (s *ListBuiltInSlotTypesInput) SetNextToken(v string) *ListBuiltInSlotTypesInput {
17588	s.NextToken = &v
17589	return s
17590}
17591
17592// SetSortBy sets the SortBy field's value.
17593func (s *ListBuiltInSlotTypesInput) SetSortBy(v *BuiltInSlotTypeSortBy) *ListBuiltInSlotTypesInput {
17594	s.SortBy = v
17595	return s
17596}
17597
17598type ListBuiltInSlotTypesOutput struct {
17599	_ struct{} `type:"structure"`
17600
17601	// Summary information for the built-in slot types that meet the filter criteria
17602	// specified in the request. The length of the list is specified in the maxResults
17603	// parameter of the request. If there are more slot types available, the nextToken
17604	// field contains a token to get the next page of results.
17605	BuiltInSlotTypeSummaries []*BuiltInSlotTypeSummary `locationName:"builtInSlotTypeSummaries" type:"list"`
17606
17607	// The language and locale of the slot types in the list.
17608	LocaleId *string `locationName:"localeId" type:"string"`
17609
17610	// A token that indicates whether there are more results to return in a response
17611	// to the ListBuiltInSlotTypes operation. If the nextToken field is present,
17612	// you send the contents as the nextToken parameter of a LIstBuiltInSlotTypes
17613	// operation request to get the next page of results.
17614	NextToken *string `locationName:"nextToken" type:"string"`
17615}
17616
17617// String returns the string representation.
17618//
17619// API parameter values that are decorated as "sensitive" in the API will not
17620// be included in the string output. The member name will be present, but the
17621// value will be replaced with "sensitive".
17622func (s ListBuiltInSlotTypesOutput) String() string {
17623	return awsutil.Prettify(s)
17624}
17625
17626// GoString returns the string representation.
17627//
17628// API parameter values that are decorated as "sensitive" in the API will not
17629// be included in the string output. The member name will be present, but the
17630// value will be replaced with "sensitive".
17631func (s ListBuiltInSlotTypesOutput) GoString() string {
17632	return s.String()
17633}
17634
17635// SetBuiltInSlotTypeSummaries sets the BuiltInSlotTypeSummaries field's value.
17636func (s *ListBuiltInSlotTypesOutput) SetBuiltInSlotTypeSummaries(v []*BuiltInSlotTypeSummary) *ListBuiltInSlotTypesOutput {
17637	s.BuiltInSlotTypeSummaries = v
17638	return s
17639}
17640
17641// SetLocaleId sets the LocaleId field's value.
17642func (s *ListBuiltInSlotTypesOutput) SetLocaleId(v string) *ListBuiltInSlotTypesOutput {
17643	s.LocaleId = &v
17644	return s
17645}
17646
17647// SetNextToken sets the NextToken field's value.
17648func (s *ListBuiltInSlotTypesOutput) SetNextToken(v string) *ListBuiltInSlotTypesOutput {
17649	s.NextToken = &v
17650	return s
17651}
17652
17653type ListExportsInput struct {
17654	_ struct{} `type:"structure"`
17655
17656	// The unique identifier that Amazon Lex assigned to the bot.
17657	BotId *string `locationName:"botId" min:"10" type:"string"`
17658
17659	// The version of the bot to list exports for.
17660	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
17661
17662	// Provides the specification of a filter used to limit the exports in the response
17663	// to only those that match the filter specification. You can only specify one
17664	// filter and one string to filter on.
17665	Filters []*ExportFilter `locationName:"filters" min:"1" type:"list"`
17666
17667	// The maximum number of exports to return in each page of results. If there
17668	// are fewer results than the max page size, only the actual number of results
17669	// are returned.
17670	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
17671
17672	// If the response from the ListExports operation contains more results that
17673	// specified in the maxResults parameter, a token is returned in the response.
17674	// Use that token in the nextToken parameter to return the next page of results.
17675	NextToken *string `locationName:"nextToken" type:"string"`
17676
17677	// Determines the field that the list of exports is sorted by. You can sort
17678	// by the LastUpdatedDateTime field in ascending or descending order.
17679	SortBy *ExportSortBy `locationName:"sortBy" type:"structure"`
17680}
17681
17682// String returns the string representation.
17683//
17684// API parameter values that are decorated as "sensitive" in the API will not
17685// be included in the string output. The member name will be present, but the
17686// value will be replaced with "sensitive".
17687func (s ListExportsInput) String() string {
17688	return awsutil.Prettify(s)
17689}
17690
17691// GoString returns the string representation.
17692//
17693// API parameter values that are decorated as "sensitive" in the API will not
17694// be included in the string output. The member name will be present, but the
17695// value will be replaced with "sensitive".
17696func (s ListExportsInput) GoString() string {
17697	return s.String()
17698}
17699
17700// Validate inspects the fields of the type to determine if they are valid.
17701func (s *ListExportsInput) Validate() error {
17702	invalidParams := request.ErrInvalidParams{Context: "ListExportsInput"}
17703	if s.BotId != nil && len(*s.BotId) < 10 {
17704		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
17705	}
17706	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
17707		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
17708	}
17709	if s.Filters != nil && len(s.Filters) < 1 {
17710		invalidParams.Add(request.NewErrParamMinLen("Filters", 1))
17711	}
17712	if s.MaxResults != nil && *s.MaxResults < 1 {
17713		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17714	}
17715	if s.Filters != nil {
17716		for i, v := range s.Filters {
17717			if v == nil {
17718				continue
17719			}
17720			if err := v.Validate(); err != nil {
17721				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
17722			}
17723		}
17724	}
17725	if s.SortBy != nil {
17726		if err := s.SortBy.Validate(); err != nil {
17727			invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams))
17728		}
17729	}
17730
17731	if invalidParams.Len() > 0 {
17732		return invalidParams
17733	}
17734	return nil
17735}
17736
17737// SetBotId sets the BotId field's value.
17738func (s *ListExportsInput) SetBotId(v string) *ListExportsInput {
17739	s.BotId = &v
17740	return s
17741}
17742
17743// SetBotVersion sets the BotVersion field's value.
17744func (s *ListExportsInput) SetBotVersion(v string) *ListExportsInput {
17745	s.BotVersion = &v
17746	return s
17747}
17748
17749// SetFilters sets the Filters field's value.
17750func (s *ListExportsInput) SetFilters(v []*ExportFilter) *ListExportsInput {
17751	s.Filters = v
17752	return s
17753}
17754
17755// SetMaxResults sets the MaxResults field's value.
17756func (s *ListExportsInput) SetMaxResults(v int64) *ListExportsInput {
17757	s.MaxResults = &v
17758	return s
17759}
17760
17761// SetNextToken sets the NextToken field's value.
17762func (s *ListExportsInput) SetNextToken(v string) *ListExportsInput {
17763	s.NextToken = &v
17764	return s
17765}
17766
17767// SetSortBy sets the SortBy field's value.
17768func (s *ListExportsInput) SetSortBy(v *ExportSortBy) *ListExportsInput {
17769	s.SortBy = v
17770	return s
17771}
17772
17773type ListExportsOutput struct {
17774	_ struct{} `type:"structure"`
17775
17776	// The unique identifier assigned to the bot by Amazon Lex.
17777	BotId *string `locationName:"botId" min:"10" type:"string"`
17778
17779	// The version of the bot that was exported.
17780	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
17781
17782	// Summary information for the exports that meet the filter criteria specified
17783	// in the request. The length of the list is specified in the maxResults parameter.
17784	// If there are more exports available, the nextToken field contains a token
17785	// to get the next page of results.
17786	ExportSummaries []*ExportSummary `locationName:"exportSummaries" type:"list"`
17787
17788	// A token that indicates whether there are more results to return in a response
17789	// to the ListExports operation. If the nextToken field is present, you send
17790	// the contents as the nextToken parameter of a ListExports operation request
17791	// to get the next page of results.
17792	NextToken *string `locationName:"nextToken" type:"string"`
17793}
17794
17795// String returns the string representation.
17796//
17797// API parameter values that are decorated as "sensitive" in the API will not
17798// be included in the string output. The member name will be present, but the
17799// value will be replaced with "sensitive".
17800func (s ListExportsOutput) String() string {
17801	return awsutil.Prettify(s)
17802}
17803
17804// GoString returns the string representation.
17805//
17806// API parameter values that are decorated as "sensitive" in the API will not
17807// be included in the string output. The member name will be present, but the
17808// value will be replaced with "sensitive".
17809func (s ListExportsOutput) GoString() string {
17810	return s.String()
17811}
17812
17813// SetBotId sets the BotId field's value.
17814func (s *ListExportsOutput) SetBotId(v string) *ListExportsOutput {
17815	s.BotId = &v
17816	return s
17817}
17818
17819// SetBotVersion sets the BotVersion field's value.
17820func (s *ListExportsOutput) SetBotVersion(v string) *ListExportsOutput {
17821	s.BotVersion = &v
17822	return s
17823}
17824
17825// SetExportSummaries sets the ExportSummaries field's value.
17826func (s *ListExportsOutput) SetExportSummaries(v []*ExportSummary) *ListExportsOutput {
17827	s.ExportSummaries = v
17828	return s
17829}
17830
17831// SetNextToken sets the NextToken field's value.
17832func (s *ListExportsOutput) SetNextToken(v string) *ListExportsOutput {
17833	s.NextToken = &v
17834	return s
17835}
17836
17837type ListImportsInput struct {
17838	_ struct{} `type:"structure"`
17839
17840	// The unique identifier that Amazon Lex assigned to the bot.
17841	BotId *string `locationName:"botId" min:"10" type:"string"`
17842
17843	// The version of the bot to list imports for.
17844	BotVersion *string `locationName:"botVersion" min:"5" type:"string"`
17845
17846	// Provides the specification of a filter used to limit the bots in the response
17847	// to only those that match the filter specification. You can only specify one
17848	// filter and one string to filter on.
17849	Filters []*ImportFilter `locationName:"filters" min:"1" type:"list"`
17850
17851	// The maximum number of imports to return in each page of results. If there
17852	// are fewer results than the max page size, only the actual number of results
17853	// are returned.
17854	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
17855
17856	// If the response from the ListImports operation contains more results than
17857	// specified in the maxResults parameter, a token is returned in the response.
17858	// Use that token in the nextToken parameter to return the next page of results.
17859	NextToken *string `locationName:"nextToken" type:"string"`
17860
17861	// Determines the field that the list of imports is sorted by. You can sort
17862	// by the LastUpdatedDateTime field in ascending or descending order.
17863	SortBy *ImportSortBy `locationName:"sortBy" type:"structure"`
17864}
17865
17866// String returns the string representation.
17867//
17868// API parameter values that are decorated as "sensitive" in the API will not
17869// be included in the string output. The member name will be present, but the
17870// value will be replaced with "sensitive".
17871func (s ListImportsInput) String() string {
17872	return awsutil.Prettify(s)
17873}
17874
17875// GoString returns the string representation.
17876//
17877// API parameter values that are decorated as "sensitive" in the API will not
17878// be included in the string output. The member name will be present, but the
17879// value will be replaced with "sensitive".
17880func (s ListImportsInput) GoString() string {
17881	return s.String()
17882}
17883
17884// Validate inspects the fields of the type to determine if they are valid.
17885func (s *ListImportsInput) Validate() error {
17886	invalidParams := request.ErrInvalidParams{Context: "ListImportsInput"}
17887	if s.BotId != nil && len(*s.BotId) < 10 {
17888		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
17889	}
17890	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
17891		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
17892	}
17893	if s.Filters != nil && len(s.Filters) < 1 {
17894		invalidParams.Add(request.NewErrParamMinLen("Filters", 1))
17895	}
17896	if s.MaxResults != nil && *s.MaxResults < 1 {
17897		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
17898	}
17899	if s.Filters != nil {
17900		for i, v := range s.Filters {
17901			if v == nil {
17902				continue
17903			}
17904			if err := v.Validate(); err != nil {
17905				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
17906			}
17907		}
17908	}
17909	if s.SortBy != nil {
17910		if err := s.SortBy.Validate(); err != nil {
17911			invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams))
17912		}
17913	}
17914
17915	if invalidParams.Len() > 0 {
17916		return invalidParams
17917	}
17918	return nil
17919}
17920
17921// SetBotId sets the BotId field's value.
17922func (s *ListImportsInput) SetBotId(v string) *ListImportsInput {
17923	s.BotId = &v
17924	return s
17925}
17926
17927// SetBotVersion sets the BotVersion field's value.
17928func (s *ListImportsInput) SetBotVersion(v string) *ListImportsInput {
17929	s.BotVersion = &v
17930	return s
17931}
17932
17933// SetFilters sets the Filters field's value.
17934func (s *ListImportsInput) SetFilters(v []*ImportFilter) *ListImportsInput {
17935	s.Filters = v
17936	return s
17937}
17938
17939// SetMaxResults sets the MaxResults field's value.
17940func (s *ListImportsInput) SetMaxResults(v int64) *ListImportsInput {
17941	s.MaxResults = &v
17942	return s
17943}
17944
17945// SetNextToken sets the NextToken field's value.
17946func (s *ListImportsInput) SetNextToken(v string) *ListImportsInput {
17947	s.NextToken = &v
17948	return s
17949}
17950
17951// SetSortBy sets the SortBy field's value.
17952func (s *ListImportsInput) SetSortBy(v *ImportSortBy) *ListImportsInput {
17953	s.SortBy = v
17954	return s
17955}
17956
17957type ListImportsOutput struct {
17958	_ struct{} `type:"structure"`
17959
17960	// The unique identifier assigned by Amazon Lex to the bot.
17961	BotId *string `locationName:"botId" min:"10" type:"string"`
17962
17963	// The version of the bot that was imported. It will always be DRAFT.
17964	BotVersion *string `locationName:"botVersion" min:"5" type:"string"`
17965
17966	// Summary information for the imports that meet the filter criteria specified
17967	// in the request. The length of the list is specified in the maxResults parameter.
17968	// If there are more imports available, the nextToken field contains a token
17969	// to get the next page of results.
17970	ImportSummaries []*ImportSummary `locationName:"importSummaries" type:"list"`
17971
17972	// A token that indicates whether there are more results to return in a response
17973	// to the ListImports operation. If the nextToken field is present, you send
17974	// the contents as the nextToken parameter of a ListImports operation request
17975	// to get the next page of results.
17976	NextToken *string `locationName:"nextToken" type:"string"`
17977}
17978
17979// String returns the string representation.
17980//
17981// API parameter values that are decorated as "sensitive" in the API will not
17982// be included in the string output. The member name will be present, but the
17983// value will be replaced with "sensitive".
17984func (s ListImportsOutput) String() string {
17985	return awsutil.Prettify(s)
17986}
17987
17988// GoString returns the string representation.
17989//
17990// API parameter values that are decorated as "sensitive" in the API will not
17991// be included in the string output. The member name will be present, but the
17992// value will be replaced with "sensitive".
17993func (s ListImportsOutput) GoString() string {
17994	return s.String()
17995}
17996
17997// SetBotId sets the BotId field's value.
17998func (s *ListImportsOutput) SetBotId(v string) *ListImportsOutput {
17999	s.BotId = &v
18000	return s
18001}
18002
18003// SetBotVersion sets the BotVersion field's value.
18004func (s *ListImportsOutput) SetBotVersion(v string) *ListImportsOutput {
18005	s.BotVersion = &v
18006	return s
18007}
18008
18009// SetImportSummaries sets the ImportSummaries field's value.
18010func (s *ListImportsOutput) SetImportSummaries(v []*ImportSummary) *ListImportsOutput {
18011	s.ImportSummaries = v
18012	return s
18013}
18014
18015// SetNextToken sets the NextToken field's value.
18016func (s *ListImportsOutput) SetNextToken(v string) *ListImportsOutput {
18017	s.NextToken = &v
18018	return s
18019}
18020
18021type ListIntentsInput struct {
18022	_ struct{} `type:"structure"`
18023
18024	// The unique identifier of the bot that contains the intent.
18025	//
18026	// BotId is a required field
18027	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
18028
18029	// The version of the bot that contains the intent.
18030	//
18031	// BotVersion is a required field
18032	BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"`
18033
18034	// Provides the specification of a filter used to limit the intents in the response
18035	// to only those that match the filter specification. You can only specify one
18036	// filter and only one string to filter on.
18037	Filters []*IntentFilter `locationName:"filters" min:"1" type:"list"`
18038
18039	// The identifier of the language and locale of the intents to list. The string
18040	// must match one of the supported locales. For more information, see Supported
18041	// languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
18042	//
18043	// LocaleId is a required field
18044	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
18045
18046	// The maximum number of intents to return in each page of results. If there
18047	// are fewer results than the max page size, only the actual number of results
18048	// are returned.
18049	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
18050
18051	// If the response from the ListIntents operation contains more results than
18052	// specified in the maxResults parameter, a token is returned in the response.
18053	// Use that token in the nextToken parameter to return the next page of results.
18054	NextToken *string `locationName:"nextToken" type:"string"`
18055
18056	// Determines the sort order for the response from the ListIntents operation.
18057	// You can choose to sort by the intent name or last updated date in either
18058	// ascending or descending order.
18059	SortBy *IntentSortBy `locationName:"sortBy" type:"structure"`
18060}
18061
18062// String returns the string representation.
18063//
18064// API parameter values that are decorated as "sensitive" in the API will not
18065// be included in the string output. The member name will be present, but the
18066// value will be replaced with "sensitive".
18067func (s ListIntentsInput) String() string {
18068	return awsutil.Prettify(s)
18069}
18070
18071// GoString returns the string representation.
18072//
18073// API parameter values that are decorated as "sensitive" in the API will not
18074// be included in the string output. The member name will be present, but the
18075// value will be replaced with "sensitive".
18076func (s ListIntentsInput) GoString() string {
18077	return s.String()
18078}
18079
18080// Validate inspects the fields of the type to determine if they are valid.
18081func (s *ListIntentsInput) Validate() error {
18082	invalidParams := request.ErrInvalidParams{Context: "ListIntentsInput"}
18083	if s.BotId == nil {
18084		invalidParams.Add(request.NewErrParamRequired("BotId"))
18085	}
18086	if s.BotId != nil && len(*s.BotId) < 10 {
18087		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
18088	}
18089	if s.BotVersion == nil {
18090		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
18091	}
18092	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
18093		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
18094	}
18095	if s.Filters != nil && len(s.Filters) < 1 {
18096		invalidParams.Add(request.NewErrParamMinLen("Filters", 1))
18097	}
18098	if s.LocaleId == nil {
18099		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
18100	}
18101	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
18102		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
18103	}
18104	if s.MaxResults != nil && *s.MaxResults < 1 {
18105		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18106	}
18107	if s.Filters != nil {
18108		for i, v := range s.Filters {
18109			if v == nil {
18110				continue
18111			}
18112			if err := v.Validate(); err != nil {
18113				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
18114			}
18115		}
18116	}
18117	if s.SortBy != nil {
18118		if err := s.SortBy.Validate(); err != nil {
18119			invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams))
18120		}
18121	}
18122
18123	if invalidParams.Len() > 0 {
18124		return invalidParams
18125	}
18126	return nil
18127}
18128
18129// SetBotId sets the BotId field's value.
18130func (s *ListIntentsInput) SetBotId(v string) *ListIntentsInput {
18131	s.BotId = &v
18132	return s
18133}
18134
18135// SetBotVersion sets the BotVersion field's value.
18136func (s *ListIntentsInput) SetBotVersion(v string) *ListIntentsInput {
18137	s.BotVersion = &v
18138	return s
18139}
18140
18141// SetFilters sets the Filters field's value.
18142func (s *ListIntentsInput) SetFilters(v []*IntentFilter) *ListIntentsInput {
18143	s.Filters = v
18144	return s
18145}
18146
18147// SetLocaleId sets the LocaleId field's value.
18148func (s *ListIntentsInput) SetLocaleId(v string) *ListIntentsInput {
18149	s.LocaleId = &v
18150	return s
18151}
18152
18153// SetMaxResults sets the MaxResults field's value.
18154func (s *ListIntentsInput) SetMaxResults(v int64) *ListIntentsInput {
18155	s.MaxResults = &v
18156	return s
18157}
18158
18159// SetNextToken sets the NextToken field's value.
18160func (s *ListIntentsInput) SetNextToken(v string) *ListIntentsInput {
18161	s.NextToken = &v
18162	return s
18163}
18164
18165// SetSortBy sets the SortBy field's value.
18166func (s *ListIntentsInput) SetSortBy(v *IntentSortBy) *ListIntentsInput {
18167	s.SortBy = v
18168	return s
18169}
18170
18171type ListIntentsOutput struct {
18172	_ struct{} `type:"structure"`
18173
18174	// The identifier of the bot that contains the intent.
18175	BotId *string `locationName:"botId" min:"10" type:"string"`
18176
18177	// The version of the bot that contains the intent.
18178	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
18179
18180	// Summary information for the intents that meet the filter criteria specified
18181	// in the request. The length of the list is specified in the maxResults parameter
18182	// of the request. If there are more intents available, the nextToken field
18183	// contains a token to get the next page of results.
18184	IntentSummaries []*IntentSummary `locationName:"intentSummaries" type:"list"`
18185
18186	// The language and locale of the intents in the list.
18187	LocaleId *string `locationName:"localeId" type:"string"`
18188
18189	// A token that indicates whether there are more results to return in a response
18190	// to the ListIntents operation. If the nextToken field is present, you send
18191	// the contents as the nextToken parameter of a ListIntents operation request
18192	// to get the next page of results.
18193	NextToken *string `locationName:"nextToken" type:"string"`
18194}
18195
18196// String returns the string representation.
18197//
18198// API parameter values that are decorated as "sensitive" in the API will not
18199// be included in the string output. The member name will be present, but the
18200// value will be replaced with "sensitive".
18201func (s ListIntentsOutput) String() string {
18202	return awsutil.Prettify(s)
18203}
18204
18205// GoString returns the string representation.
18206//
18207// API parameter values that are decorated as "sensitive" in the API will not
18208// be included in the string output. The member name will be present, but the
18209// value will be replaced with "sensitive".
18210func (s ListIntentsOutput) GoString() string {
18211	return s.String()
18212}
18213
18214// SetBotId sets the BotId field's value.
18215func (s *ListIntentsOutput) SetBotId(v string) *ListIntentsOutput {
18216	s.BotId = &v
18217	return s
18218}
18219
18220// SetBotVersion sets the BotVersion field's value.
18221func (s *ListIntentsOutput) SetBotVersion(v string) *ListIntentsOutput {
18222	s.BotVersion = &v
18223	return s
18224}
18225
18226// SetIntentSummaries sets the IntentSummaries field's value.
18227func (s *ListIntentsOutput) SetIntentSummaries(v []*IntentSummary) *ListIntentsOutput {
18228	s.IntentSummaries = v
18229	return s
18230}
18231
18232// SetLocaleId sets the LocaleId field's value.
18233func (s *ListIntentsOutput) SetLocaleId(v string) *ListIntentsOutput {
18234	s.LocaleId = &v
18235	return s
18236}
18237
18238// SetNextToken sets the NextToken field's value.
18239func (s *ListIntentsOutput) SetNextToken(v string) *ListIntentsOutput {
18240	s.NextToken = &v
18241	return s
18242}
18243
18244type ListSlotTypesInput struct {
18245	_ struct{} `type:"structure"`
18246
18247	// The unique identifier of the bot that contains the slot types.
18248	//
18249	// BotId is a required field
18250	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
18251
18252	// The version of the bot that contains the slot type.
18253	//
18254	// BotVersion is a required field
18255	BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"`
18256
18257	// Provides the specification of a filter used to limit the slot types in the
18258	// response to only those that match the filter specification. You can only
18259	// specify one filter and only one string to filter on.
18260	Filters []*SlotTypeFilter `locationName:"filters" min:"1" type:"list"`
18261
18262	// The identifier of the language and locale of the slot types to list. The
18263	// string must match one of the supported locales. For more information, see
18264	// Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
18265	//
18266	// LocaleId is a required field
18267	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
18268
18269	// The maximum number of slot types to return in each page of results. If there
18270	// are fewer results than the max page size, only the actual number of results
18271	// are returned.
18272	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
18273
18274	// If the response from the ListSlotTypes operation contains more results than
18275	// specified in the maxResults parameter, a token is returned in the response.
18276	// Use that token in the nextToken parameter to return the next page of results.
18277	NextToken *string `locationName:"nextToken" type:"string"`
18278
18279	// Determines the sort order for the response from the ListSlotTypes operation.
18280	// You can choose to sort by the slot type name or last updated date in either
18281	// ascending or descending order.
18282	SortBy *SlotTypeSortBy `locationName:"sortBy" type:"structure"`
18283}
18284
18285// String returns the string representation.
18286//
18287// API parameter values that are decorated as "sensitive" in the API will not
18288// be included in the string output. The member name will be present, but the
18289// value will be replaced with "sensitive".
18290func (s ListSlotTypesInput) String() string {
18291	return awsutil.Prettify(s)
18292}
18293
18294// GoString returns the string representation.
18295//
18296// API parameter values that are decorated as "sensitive" in the API will not
18297// be included in the string output. The member name will be present, but the
18298// value will be replaced with "sensitive".
18299func (s ListSlotTypesInput) GoString() string {
18300	return s.String()
18301}
18302
18303// Validate inspects the fields of the type to determine if they are valid.
18304func (s *ListSlotTypesInput) Validate() error {
18305	invalidParams := request.ErrInvalidParams{Context: "ListSlotTypesInput"}
18306	if s.BotId == nil {
18307		invalidParams.Add(request.NewErrParamRequired("BotId"))
18308	}
18309	if s.BotId != nil && len(*s.BotId) < 10 {
18310		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
18311	}
18312	if s.BotVersion == nil {
18313		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
18314	}
18315	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
18316		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
18317	}
18318	if s.Filters != nil && len(s.Filters) < 1 {
18319		invalidParams.Add(request.NewErrParamMinLen("Filters", 1))
18320	}
18321	if s.LocaleId == nil {
18322		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
18323	}
18324	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
18325		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
18326	}
18327	if s.MaxResults != nil && *s.MaxResults < 1 {
18328		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18329	}
18330	if s.Filters != nil {
18331		for i, v := range s.Filters {
18332			if v == nil {
18333				continue
18334			}
18335			if err := v.Validate(); err != nil {
18336				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
18337			}
18338		}
18339	}
18340	if s.SortBy != nil {
18341		if err := s.SortBy.Validate(); err != nil {
18342			invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams))
18343		}
18344	}
18345
18346	if invalidParams.Len() > 0 {
18347		return invalidParams
18348	}
18349	return nil
18350}
18351
18352// SetBotId sets the BotId field's value.
18353func (s *ListSlotTypesInput) SetBotId(v string) *ListSlotTypesInput {
18354	s.BotId = &v
18355	return s
18356}
18357
18358// SetBotVersion sets the BotVersion field's value.
18359func (s *ListSlotTypesInput) SetBotVersion(v string) *ListSlotTypesInput {
18360	s.BotVersion = &v
18361	return s
18362}
18363
18364// SetFilters sets the Filters field's value.
18365func (s *ListSlotTypesInput) SetFilters(v []*SlotTypeFilter) *ListSlotTypesInput {
18366	s.Filters = v
18367	return s
18368}
18369
18370// SetLocaleId sets the LocaleId field's value.
18371func (s *ListSlotTypesInput) SetLocaleId(v string) *ListSlotTypesInput {
18372	s.LocaleId = &v
18373	return s
18374}
18375
18376// SetMaxResults sets the MaxResults field's value.
18377func (s *ListSlotTypesInput) SetMaxResults(v int64) *ListSlotTypesInput {
18378	s.MaxResults = &v
18379	return s
18380}
18381
18382// SetNextToken sets the NextToken field's value.
18383func (s *ListSlotTypesInput) SetNextToken(v string) *ListSlotTypesInput {
18384	s.NextToken = &v
18385	return s
18386}
18387
18388// SetSortBy sets the SortBy field's value.
18389func (s *ListSlotTypesInput) SetSortBy(v *SlotTypeSortBy) *ListSlotTypesInput {
18390	s.SortBy = v
18391	return s
18392}
18393
18394type ListSlotTypesOutput struct {
18395	_ struct{} `type:"structure"`
18396
18397	// The identifier of the bot that contains the slot types.
18398	BotId *string `locationName:"botId" min:"10" type:"string"`
18399
18400	// The version of the bot that contains the slot types.
18401	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
18402
18403	// The language and local of the slot types in the list.
18404	LocaleId *string `locationName:"localeId" type:"string"`
18405
18406	// A token that indicates whether there are more results to return in a response
18407	// to the ListSlotTypes operation. If the nextToken field is present, you send
18408	// the contents as the nextToken parameter of a ListSlotTypes operation request
18409	// to get the next page of results.
18410	NextToken *string `locationName:"nextToken" type:"string"`
18411
18412	// Summary information for the slot types that meet the filter criteria specified
18413	// in the request. The length of the list is specified in the maxResults parameter
18414	// of the request. If there are more slot types available, the nextToken field
18415	// contains a token to get the next page of results.
18416	SlotTypeSummaries []*SlotTypeSummary `locationName:"slotTypeSummaries" type:"list"`
18417}
18418
18419// String returns the string representation.
18420//
18421// API parameter values that are decorated as "sensitive" in the API will not
18422// be included in the string output. The member name will be present, but the
18423// value will be replaced with "sensitive".
18424func (s ListSlotTypesOutput) String() string {
18425	return awsutil.Prettify(s)
18426}
18427
18428// GoString returns the string representation.
18429//
18430// API parameter values that are decorated as "sensitive" in the API will not
18431// be included in the string output. The member name will be present, but the
18432// value will be replaced with "sensitive".
18433func (s ListSlotTypesOutput) GoString() string {
18434	return s.String()
18435}
18436
18437// SetBotId sets the BotId field's value.
18438func (s *ListSlotTypesOutput) SetBotId(v string) *ListSlotTypesOutput {
18439	s.BotId = &v
18440	return s
18441}
18442
18443// SetBotVersion sets the BotVersion field's value.
18444func (s *ListSlotTypesOutput) SetBotVersion(v string) *ListSlotTypesOutput {
18445	s.BotVersion = &v
18446	return s
18447}
18448
18449// SetLocaleId sets the LocaleId field's value.
18450func (s *ListSlotTypesOutput) SetLocaleId(v string) *ListSlotTypesOutput {
18451	s.LocaleId = &v
18452	return s
18453}
18454
18455// SetNextToken sets the NextToken field's value.
18456func (s *ListSlotTypesOutput) SetNextToken(v string) *ListSlotTypesOutput {
18457	s.NextToken = &v
18458	return s
18459}
18460
18461// SetSlotTypeSummaries sets the SlotTypeSummaries field's value.
18462func (s *ListSlotTypesOutput) SetSlotTypeSummaries(v []*SlotTypeSummary) *ListSlotTypesOutput {
18463	s.SlotTypeSummaries = v
18464	return s
18465}
18466
18467type ListSlotsInput struct {
18468	_ struct{} `type:"structure"`
18469
18470	// The identifier of the bot that contains the slot.
18471	//
18472	// BotId is a required field
18473	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
18474
18475	// The version of the bot that contains the slot.
18476	//
18477	// BotVersion is a required field
18478	BotVersion *string `location:"uri" locationName:"botVersion" min:"1" type:"string" required:"true"`
18479
18480	// Provides the specification of a filter used to limit the slots in the response
18481	// to only those that match the filter specification. You can only specify one
18482	// filter and only one string to filter on.
18483	Filters []*SlotFilter `locationName:"filters" min:"1" type:"list"`
18484
18485	// The unique identifier of the intent that contains the slot.
18486	//
18487	// IntentId is a required field
18488	IntentId *string `location:"uri" locationName:"intentId" min:"10" type:"string" required:"true"`
18489
18490	// The identifier of the language and locale of the slots to list. The string
18491	// must match one of the supported locales. For more information, see Supported
18492	// languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
18493	//
18494	// LocaleId is a required field
18495	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
18496
18497	// The maximum number of slots to return in each page of results. If there are
18498	// fewer results than the max page size, only the actual number of results are
18499	// returned.
18500	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
18501
18502	// If the response from the ListSlots operation contains more results than specified
18503	// in the maxResults parameter, a token is returned in the response. Use that
18504	// token in the nextToken parameter to return the next page of results.
18505	NextToken *string `locationName:"nextToken" type:"string"`
18506
18507	// Determines the sort order for the response from the ListSlots operation.
18508	// You can choose to sort by the slot name or last updated date in either ascending
18509	// or descending order.
18510	SortBy *SlotSortBy `locationName:"sortBy" type:"structure"`
18511}
18512
18513// String returns the string representation.
18514//
18515// API parameter values that are decorated as "sensitive" in the API will not
18516// be included in the string output. The member name will be present, but the
18517// value will be replaced with "sensitive".
18518func (s ListSlotsInput) String() string {
18519	return awsutil.Prettify(s)
18520}
18521
18522// GoString returns the string representation.
18523//
18524// API parameter values that are decorated as "sensitive" in the API will not
18525// be included in the string output. The member name will be present, but the
18526// value will be replaced with "sensitive".
18527func (s ListSlotsInput) GoString() string {
18528	return s.String()
18529}
18530
18531// Validate inspects the fields of the type to determine if they are valid.
18532func (s *ListSlotsInput) Validate() error {
18533	invalidParams := request.ErrInvalidParams{Context: "ListSlotsInput"}
18534	if s.BotId == nil {
18535		invalidParams.Add(request.NewErrParamRequired("BotId"))
18536	}
18537	if s.BotId != nil && len(*s.BotId) < 10 {
18538		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
18539	}
18540	if s.BotVersion == nil {
18541		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
18542	}
18543	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
18544		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
18545	}
18546	if s.Filters != nil && len(s.Filters) < 1 {
18547		invalidParams.Add(request.NewErrParamMinLen("Filters", 1))
18548	}
18549	if s.IntentId == nil {
18550		invalidParams.Add(request.NewErrParamRequired("IntentId"))
18551	}
18552	if s.IntentId != nil && len(*s.IntentId) < 10 {
18553		invalidParams.Add(request.NewErrParamMinLen("IntentId", 10))
18554	}
18555	if s.LocaleId == nil {
18556		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
18557	}
18558	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
18559		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
18560	}
18561	if s.MaxResults != nil && *s.MaxResults < 1 {
18562		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
18563	}
18564	if s.Filters != nil {
18565		for i, v := range s.Filters {
18566			if v == nil {
18567				continue
18568			}
18569			if err := v.Validate(); err != nil {
18570				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
18571			}
18572		}
18573	}
18574	if s.SortBy != nil {
18575		if err := s.SortBy.Validate(); err != nil {
18576			invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams))
18577		}
18578	}
18579
18580	if invalidParams.Len() > 0 {
18581		return invalidParams
18582	}
18583	return nil
18584}
18585
18586// SetBotId sets the BotId field's value.
18587func (s *ListSlotsInput) SetBotId(v string) *ListSlotsInput {
18588	s.BotId = &v
18589	return s
18590}
18591
18592// SetBotVersion sets the BotVersion field's value.
18593func (s *ListSlotsInput) SetBotVersion(v string) *ListSlotsInput {
18594	s.BotVersion = &v
18595	return s
18596}
18597
18598// SetFilters sets the Filters field's value.
18599func (s *ListSlotsInput) SetFilters(v []*SlotFilter) *ListSlotsInput {
18600	s.Filters = v
18601	return s
18602}
18603
18604// SetIntentId sets the IntentId field's value.
18605func (s *ListSlotsInput) SetIntentId(v string) *ListSlotsInput {
18606	s.IntentId = &v
18607	return s
18608}
18609
18610// SetLocaleId sets the LocaleId field's value.
18611func (s *ListSlotsInput) SetLocaleId(v string) *ListSlotsInput {
18612	s.LocaleId = &v
18613	return s
18614}
18615
18616// SetMaxResults sets the MaxResults field's value.
18617func (s *ListSlotsInput) SetMaxResults(v int64) *ListSlotsInput {
18618	s.MaxResults = &v
18619	return s
18620}
18621
18622// SetNextToken sets the NextToken field's value.
18623func (s *ListSlotsInput) SetNextToken(v string) *ListSlotsInput {
18624	s.NextToken = &v
18625	return s
18626}
18627
18628// SetSortBy sets the SortBy field's value.
18629func (s *ListSlotsInput) SetSortBy(v *SlotSortBy) *ListSlotsInput {
18630	s.SortBy = v
18631	return s
18632}
18633
18634type ListSlotsOutput struct {
18635	_ struct{} `type:"structure"`
18636
18637	// The identifier of the bot that contains the slots.
18638	BotId *string `locationName:"botId" min:"10" type:"string"`
18639
18640	// The version of the bot that contains the slots.
18641	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
18642
18643	// The identifier of the intent that contains the slots.
18644	IntentId *string `locationName:"intentId" min:"10" type:"string"`
18645
18646	// The language and locale of the slots in the list.
18647	LocaleId *string `locationName:"localeId" type:"string"`
18648
18649	// A token that indicates whether there are more results to return in a response
18650	// to the ListSlots operation. If the nextToken field is present, you send the
18651	// contents as the nextToken parameter of a ListSlots operation request to get
18652	// the next page of results.
18653	NextToken *string `locationName:"nextToken" type:"string"`
18654
18655	// Summary information for the slots that meet the filter criteria specified
18656	// in the request. The length of the list is specified in the maxResults parameter
18657	// of the request. If there are more slots available, the nextToken field contains
18658	// a token to get the next page of results.
18659	SlotSummaries []*SlotSummary `locationName:"slotSummaries" type:"list"`
18660}
18661
18662// String returns the string representation.
18663//
18664// API parameter values that are decorated as "sensitive" in the API will not
18665// be included in the string output. The member name will be present, but the
18666// value will be replaced with "sensitive".
18667func (s ListSlotsOutput) String() string {
18668	return awsutil.Prettify(s)
18669}
18670
18671// GoString returns the string representation.
18672//
18673// API parameter values that are decorated as "sensitive" in the API will not
18674// be included in the string output. The member name will be present, but the
18675// value will be replaced with "sensitive".
18676func (s ListSlotsOutput) GoString() string {
18677	return s.String()
18678}
18679
18680// SetBotId sets the BotId field's value.
18681func (s *ListSlotsOutput) SetBotId(v string) *ListSlotsOutput {
18682	s.BotId = &v
18683	return s
18684}
18685
18686// SetBotVersion sets the BotVersion field's value.
18687func (s *ListSlotsOutput) SetBotVersion(v string) *ListSlotsOutput {
18688	s.BotVersion = &v
18689	return s
18690}
18691
18692// SetIntentId sets the IntentId field's value.
18693func (s *ListSlotsOutput) SetIntentId(v string) *ListSlotsOutput {
18694	s.IntentId = &v
18695	return s
18696}
18697
18698// SetLocaleId sets the LocaleId field's value.
18699func (s *ListSlotsOutput) SetLocaleId(v string) *ListSlotsOutput {
18700	s.LocaleId = &v
18701	return s
18702}
18703
18704// SetNextToken sets the NextToken field's value.
18705func (s *ListSlotsOutput) SetNextToken(v string) *ListSlotsOutput {
18706	s.NextToken = &v
18707	return s
18708}
18709
18710// SetSlotSummaries sets the SlotSummaries field's value.
18711func (s *ListSlotsOutput) SetSlotSummaries(v []*SlotSummary) *ListSlotsOutput {
18712	s.SlotSummaries = v
18713	return s
18714}
18715
18716type ListTagsForResourceInput struct {
18717	_ struct{} `type:"structure" nopayload:"true"`
18718
18719	// The Amazon Resource Name (ARN) of the resource to get a list of tags for.
18720	//
18721	// ResourceARN is a required field
18722	ResourceARN *string `location:"uri" locationName:"resourceARN" min:"1" type:"string" required:"true"`
18723}
18724
18725// String returns the string representation.
18726//
18727// API parameter values that are decorated as "sensitive" in the API will not
18728// be included in the string output. The member name will be present, but the
18729// value will be replaced with "sensitive".
18730func (s ListTagsForResourceInput) String() string {
18731	return awsutil.Prettify(s)
18732}
18733
18734// GoString returns the string representation.
18735//
18736// API parameter values that are decorated as "sensitive" in the API will not
18737// be included in the string output. The member name will be present, but the
18738// value will be replaced with "sensitive".
18739func (s ListTagsForResourceInput) GoString() string {
18740	return s.String()
18741}
18742
18743// Validate inspects the fields of the type to determine if they are valid.
18744func (s *ListTagsForResourceInput) Validate() error {
18745	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
18746	if s.ResourceARN == nil {
18747		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
18748	}
18749	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
18750		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
18751	}
18752
18753	if invalidParams.Len() > 0 {
18754		return invalidParams
18755	}
18756	return nil
18757}
18758
18759// SetResourceARN sets the ResourceARN field's value.
18760func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
18761	s.ResourceARN = &v
18762	return s
18763}
18764
18765type ListTagsForResourceOutput struct {
18766	_ struct{} `type:"structure"`
18767
18768	// The tags associated with a resource.
18769	Tags map[string]*string `locationName:"tags" type:"map"`
18770}
18771
18772// String returns the string representation.
18773//
18774// API parameter values that are decorated as "sensitive" in the API will not
18775// be included in the string output. The member name will be present, but the
18776// value will be replaced with "sensitive".
18777func (s ListTagsForResourceOutput) String() string {
18778	return awsutil.Prettify(s)
18779}
18780
18781// GoString returns the string representation.
18782//
18783// API parameter values that are decorated as "sensitive" in the API will not
18784// be included in the string output. The member name will be present, but the
18785// value will be replaced with "sensitive".
18786func (s ListTagsForResourceOutput) GoString() string {
18787	return s.String()
18788}
18789
18790// SetTags sets the Tags field's value.
18791func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
18792	s.Tags = v
18793	return s
18794}
18795
18796// The object that provides message text and it's type.
18797type Message struct {
18798	_ struct{} `type:"structure"`
18799
18800	// A message in a custom format defined by the client application.
18801	CustomPayload *CustomPayload `locationName:"customPayload" type:"structure"`
18802
18803	// A message that defines a response card that the client application can show
18804	// to the user.
18805	ImageResponseCard *ImageResponseCard `locationName:"imageResponseCard" type:"structure"`
18806
18807	// A message in plain text format.
18808	PlainTextMessage *PlainTextMessage `locationName:"plainTextMessage" type:"structure"`
18809
18810	// A message in Speech Synthesis Markup Language (SSML).
18811	SsmlMessage *SSMLMessage `locationName:"ssmlMessage" type:"structure"`
18812}
18813
18814// String returns the string representation.
18815//
18816// API parameter values that are decorated as "sensitive" in the API will not
18817// be included in the string output. The member name will be present, but the
18818// value will be replaced with "sensitive".
18819func (s Message) String() string {
18820	return awsutil.Prettify(s)
18821}
18822
18823// GoString returns the string representation.
18824//
18825// API parameter values that are decorated as "sensitive" in the API will not
18826// be included in the string output. The member name will be present, but the
18827// value will be replaced with "sensitive".
18828func (s Message) GoString() string {
18829	return s.String()
18830}
18831
18832// Validate inspects the fields of the type to determine if they are valid.
18833func (s *Message) Validate() error {
18834	invalidParams := request.ErrInvalidParams{Context: "Message"}
18835	if s.CustomPayload != nil {
18836		if err := s.CustomPayload.Validate(); err != nil {
18837			invalidParams.AddNested("CustomPayload", err.(request.ErrInvalidParams))
18838		}
18839	}
18840	if s.ImageResponseCard != nil {
18841		if err := s.ImageResponseCard.Validate(); err != nil {
18842			invalidParams.AddNested("ImageResponseCard", err.(request.ErrInvalidParams))
18843		}
18844	}
18845	if s.PlainTextMessage != nil {
18846		if err := s.PlainTextMessage.Validate(); err != nil {
18847			invalidParams.AddNested("PlainTextMessage", err.(request.ErrInvalidParams))
18848		}
18849	}
18850	if s.SsmlMessage != nil {
18851		if err := s.SsmlMessage.Validate(); err != nil {
18852			invalidParams.AddNested("SsmlMessage", err.(request.ErrInvalidParams))
18853		}
18854	}
18855
18856	if invalidParams.Len() > 0 {
18857		return invalidParams
18858	}
18859	return nil
18860}
18861
18862// SetCustomPayload sets the CustomPayload field's value.
18863func (s *Message) SetCustomPayload(v *CustomPayload) *Message {
18864	s.CustomPayload = v
18865	return s
18866}
18867
18868// SetImageResponseCard sets the ImageResponseCard field's value.
18869func (s *Message) SetImageResponseCard(v *ImageResponseCard) *Message {
18870	s.ImageResponseCard = v
18871	return s
18872}
18873
18874// SetPlainTextMessage sets the PlainTextMessage field's value.
18875func (s *Message) SetPlainTextMessage(v *PlainTextMessage) *Message {
18876	s.PlainTextMessage = v
18877	return s
18878}
18879
18880// SetSsmlMessage sets the SsmlMessage field's value.
18881func (s *Message) SetSsmlMessage(v *SSMLMessage) *Message {
18882	s.SsmlMessage = v
18883	return s
18884}
18885
18886// Provides one or more messages that Amazon Lex should send to the user.
18887type MessageGroup struct {
18888	_ struct{} `type:"structure"`
18889
18890	// The primary message that Amazon Lex should send to the user.
18891	//
18892	// Message is a required field
18893	Message *Message `locationName:"message" type:"structure" required:"true"`
18894
18895	// Message variations to send to the user. When variations are defined, Amazon
18896	// Lex chooses the primary message or one of the variations to send to the user.
18897	Variations []*Message `locationName:"variations" type:"list"`
18898}
18899
18900// String returns the string representation.
18901//
18902// API parameter values that are decorated as "sensitive" in the API will not
18903// be included in the string output. The member name will be present, but the
18904// value will be replaced with "sensitive".
18905func (s MessageGroup) String() string {
18906	return awsutil.Prettify(s)
18907}
18908
18909// GoString returns the string representation.
18910//
18911// API parameter values that are decorated as "sensitive" in the API will not
18912// be included in the string output. The member name will be present, but the
18913// value will be replaced with "sensitive".
18914func (s MessageGroup) GoString() string {
18915	return s.String()
18916}
18917
18918// Validate inspects the fields of the type to determine if they are valid.
18919func (s *MessageGroup) Validate() error {
18920	invalidParams := request.ErrInvalidParams{Context: "MessageGroup"}
18921	if s.Message == nil {
18922		invalidParams.Add(request.NewErrParamRequired("Message"))
18923	}
18924	if s.Message != nil {
18925		if err := s.Message.Validate(); err != nil {
18926			invalidParams.AddNested("Message", err.(request.ErrInvalidParams))
18927		}
18928	}
18929	if s.Variations != nil {
18930		for i, v := range s.Variations {
18931			if v == nil {
18932				continue
18933			}
18934			if err := v.Validate(); err != nil {
18935				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Variations", i), err.(request.ErrInvalidParams))
18936			}
18937		}
18938	}
18939
18940	if invalidParams.Len() > 0 {
18941		return invalidParams
18942	}
18943	return nil
18944}
18945
18946// SetMessage sets the Message field's value.
18947func (s *MessageGroup) SetMessage(v *Message) *MessageGroup {
18948	s.Message = v
18949	return s
18950}
18951
18952// SetVariations sets the Variations field's value.
18953func (s *MessageGroup) SetVariations(v []*Message) *MessageGroup {
18954	s.Variations = v
18955	return s
18956}
18957
18958// Indicates whether a slot can return multiple values.
18959type MultipleValuesSetting struct {
18960	_ struct{} `type:"structure"`
18961
18962	// Indicates whether a slot can return multiple values. When true, the slot
18963	// may return more than one value in a response. When false, the slot returns
18964	// only a single value.
18965	//
18966	// Multi-value slots are only available in the en-US locale. If you set this
18967	// value to true in any other locale, Amazon Lex throws a ValidationException.
18968	//
18969	// If the allowMutlipleValues is not set, the default value is false.
18970	AllowMultipleValues *bool `locationName:"allowMultipleValues" type:"boolean"`
18971}
18972
18973// String returns the string representation.
18974//
18975// API parameter values that are decorated as "sensitive" in the API will not
18976// be included in the string output. The member name will be present, but the
18977// value will be replaced with "sensitive".
18978func (s MultipleValuesSetting) String() string {
18979	return awsutil.Prettify(s)
18980}
18981
18982// GoString returns the string representation.
18983//
18984// API parameter values that are decorated as "sensitive" in the API will not
18985// be included in the string output. The member name will be present, but the
18986// value will be replaced with "sensitive".
18987func (s MultipleValuesSetting) GoString() string {
18988	return s.String()
18989}
18990
18991// SetAllowMultipleValues sets the AllowMultipleValues field's value.
18992func (s *MultipleValuesSetting) SetAllowMultipleValues(v bool) *MultipleValuesSetting {
18993	s.AllowMultipleValues = &v
18994	return s
18995}
18996
18997// Determines whether Amazon Lex obscures slot values in conversation logs.
18998type ObfuscationSetting struct {
18999	_ struct{} `type:"structure"`
19000
19001	// Value that determines whether Amazon Lex obscures slot values in conversation
19002	// logs. The default is to obscure the values.
19003	//
19004	// ObfuscationSettingType is a required field
19005	ObfuscationSettingType *string `locationName:"obfuscationSettingType" type:"string" required:"true" enum:"ObfuscationSettingType"`
19006}
19007
19008// String returns the string representation.
19009//
19010// API parameter values that are decorated as "sensitive" in the API will not
19011// be included in the string output. The member name will be present, but the
19012// value will be replaced with "sensitive".
19013func (s ObfuscationSetting) String() string {
19014	return awsutil.Prettify(s)
19015}
19016
19017// GoString returns the string representation.
19018//
19019// API parameter values that are decorated as "sensitive" in the API will not
19020// be included in the string output. The member name will be present, but the
19021// value will be replaced with "sensitive".
19022func (s ObfuscationSetting) GoString() string {
19023	return s.String()
19024}
19025
19026// Validate inspects the fields of the type to determine if they are valid.
19027func (s *ObfuscationSetting) Validate() error {
19028	invalidParams := request.ErrInvalidParams{Context: "ObfuscationSetting"}
19029	if s.ObfuscationSettingType == nil {
19030		invalidParams.Add(request.NewErrParamRequired("ObfuscationSettingType"))
19031	}
19032
19033	if invalidParams.Len() > 0 {
19034		return invalidParams
19035	}
19036	return nil
19037}
19038
19039// SetObfuscationSettingType sets the ObfuscationSettingType field's value.
19040func (s *ObfuscationSetting) SetObfuscationSettingType(v string) *ObfuscationSetting {
19041	s.ObfuscationSettingType = &v
19042	return s
19043}
19044
19045// Describes a session context that is activated when an intent is fulfilled.
19046type OutputContext struct {
19047	_ struct{} `type:"structure"`
19048
19049	// The name of the output context.
19050	//
19051	// Name is a required field
19052	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
19053
19054	// The amount of time, in seconds, that the output context should remain active.
19055	// The time is figured from the first time the context is sent to the user.
19056	//
19057	// TimeToLiveInSeconds is a required field
19058	TimeToLiveInSeconds *int64 `locationName:"timeToLiveInSeconds" min:"5" type:"integer" required:"true"`
19059
19060	// The number of conversation turns that the output context should remain active.
19061	// The number of turns is counted from the first time that the context is sent
19062	// to the user.
19063	//
19064	// TurnsToLive is a required field
19065	TurnsToLive *int64 `locationName:"turnsToLive" min:"1" type:"integer" required:"true"`
19066}
19067
19068// String returns the string representation.
19069//
19070// API parameter values that are decorated as "sensitive" in the API will not
19071// be included in the string output. The member name will be present, but the
19072// value will be replaced with "sensitive".
19073func (s OutputContext) String() string {
19074	return awsutil.Prettify(s)
19075}
19076
19077// GoString returns the string representation.
19078//
19079// API parameter values that are decorated as "sensitive" in the API will not
19080// be included in the string output. The member name will be present, but the
19081// value will be replaced with "sensitive".
19082func (s OutputContext) GoString() string {
19083	return s.String()
19084}
19085
19086// Validate inspects the fields of the type to determine if they are valid.
19087func (s *OutputContext) Validate() error {
19088	invalidParams := request.ErrInvalidParams{Context: "OutputContext"}
19089	if s.Name == nil {
19090		invalidParams.Add(request.NewErrParamRequired("Name"))
19091	}
19092	if s.Name != nil && len(*s.Name) < 1 {
19093		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
19094	}
19095	if s.TimeToLiveInSeconds == nil {
19096		invalidParams.Add(request.NewErrParamRequired("TimeToLiveInSeconds"))
19097	}
19098	if s.TimeToLiveInSeconds != nil && *s.TimeToLiveInSeconds < 5 {
19099		invalidParams.Add(request.NewErrParamMinValue("TimeToLiveInSeconds", 5))
19100	}
19101	if s.TurnsToLive == nil {
19102		invalidParams.Add(request.NewErrParamRequired("TurnsToLive"))
19103	}
19104	if s.TurnsToLive != nil && *s.TurnsToLive < 1 {
19105		invalidParams.Add(request.NewErrParamMinValue("TurnsToLive", 1))
19106	}
19107
19108	if invalidParams.Len() > 0 {
19109		return invalidParams
19110	}
19111	return nil
19112}
19113
19114// SetName sets the Name field's value.
19115func (s *OutputContext) SetName(v string) *OutputContext {
19116	s.Name = &v
19117	return s
19118}
19119
19120// SetTimeToLiveInSeconds sets the TimeToLiveInSeconds field's value.
19121func (s *OutputContext) SetTimeToLiveInSeconds(v int64) *OutputContext {
19122	s.TimeToLiveInSeconds = &v
19123	return s
19124}
19125
19126// SetTurnsToLive sets the TurnsToLive field's value.
19127func (s *OutputContext) SetTurnsToLive(v int64) *OutputContext {
19128	s.TurnsToLive = &v
19129	return s
19130}
19131
19132// Defines an ASCII text message to send to the user.
19133type PlainTextMessage struct {
19134	_ struct{} `type:"structure"`
19135
19136	// The message to send to the user.
19137	//
19138	// Value is a required field
19139	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
19140}
19141
19142// String returns the string representation.
19143//
19144// API parameter values that are decorated as "sensitive" in the API will not
19145// be included in the string output. The member name will be present, but the
19146// value will be replaced with "sensitive".
19147func (s PlainTextMessage) String() string {
19148	return awsutil.Prettify(s)
19149}
19150
19151// GoString returns the string representation.
19152//
19153// API parameter values that are decorated as "sensitive" in the API will not
19154// be included in the string output. The member name will be present, but the
19155// value will be replaced with "sensitive".
19156func (s PlainTextMessage) GoString() string {
19157	return s.String()
19158}
19159
19160// Validate inspects the fields of the type to determine if they are valid.
19161func (s *PlainTextMessage) Validate() error {
19162	invalidParams := request.ErrInvalidParams{Context: "PlainTextMessage"}
19163	if s.Value == nil {
19164		invalidParams.Add(request.NewErrParamRequired("Value"))
19165	}
19166	if s.Value != nil && len(*s.Value) < 1 {
19167		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
19168	}
19169
19170	if invalidParams.Len() > 0 {
19171		return invalidParams
19172	}
19173	return nil
19174}
19175
19176// SetValue sets the Value field's value.
19177func (s *PlainTextMessage) SetValue(v string) *PlainTextMessage {
19178	s.Value = &v
19179	return s
19180}
19181
19182// Provides a setting that determines whether the post-fulfillment response
19183// is sent to the user. For more information, see https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete
19184// (https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete)
19185type PostFulfillmentStatusSpecification struct {
19186	_ struct{} `type:"structure"`
19187
19188	// Specifies a list of message groups that Amazon Lex uses to respond the user
19189	// input.
19190	FailureResponse *ResponseSpecification `locationName:"failureResponse" type:"structure"`
19191
19192	// Specifies a list of message groups that Amazon Lex uses to respond the user
19193	// input.
19194	SuccessResponse *ResponseSpecification `locationName:"successResponse" type:"structure"`
19195
19196	// Specifies a list of message groups that Amazon Lex uses to respond the user
19197	// input.
19198	TimeoutResponse *ResponseSpecification `locationName:"timeoutResponse" type:"structure"`
19199}
19200
19201// String returns the string representation.
19202//
19203// API parameter values that are decorated as "sensitive" in the API will not
19204// be included in the string output. The member name will be present, but the
19205// value will be replaced with "sensitive".
19206func (s PostFulfillmentStatusSpecification) String() string {
19207	return awsutil.Prettify(s)
19208}
19209
19210// GoString returns the string representation.
19211//
19212// API parameter values that are decorated as "sensitive" in the API will not
19213// be included in the string output. The member name will be present, but the
19214// value will be replaced with "sensitive".
19215func (s PostFulfillmentStatusSpecification) GoString() string {
19216	return s.String()
19217}
19218
19219// Validate inspects the fields of the type to determine if they are valid.
19220func (s *PostFulfillmentStatusSpecification) Validate() error {
19221	invalidParams := request.ErrInvalidParams{Context: "PostFulfillmentStatusSpecification"}
19222	if s.FailureResponse != nil {
19223		if err := s.FailureResponse.Validate(); err != nil {
19224			invalidParams.AddNested("FailureResponse", err.(request.ErrInvalidParams))
19225		}
19226	}
19227	if s.SuccessResponse != nil {
19228		if err := s.SuccessResponse.Validate(); err != nil {
19229			invalidParams.AddNested("SuccessResponse", err.(request.ErrInvalidParams))
19230		}
19231	}
19232	if s.TimeoutResponse != nil {
19233		if err := s.TimeoutResponse.Validate(); err != nil {
19234			invalidParams.AddNested("TimeoutResponse", err.(request.ErrInvalidParams))
19235		}
19236	}
19237
19238	if invalidParams.Len() > 0 {
19239		return invalidParams
19240	}
19241	return nil
19242}
19243
19244// SetFailureResponse sets the FailureResponse field's value.
19245func (s *PostFulfillmentStatusSpecification) SetFailureResponse(v *ResponseSpecification) *PostFulfillmentStatusSpecification {
19246	s.FailureResponse = v
19247	return s
19248}
19249
19250// SetSuccessResponse sets the SuccessResponse field's value.
19251func (s *PostFulfillmentStatusSpecification) SetSuccessResponse(v *ResponseSpecification) *PostFulfillmentStatusSpecification {
19252	s.SuccessResponse = v
19253	return s
19254}
19255
19256// SetTimeoutResponse sets the TimeoutResponse field's value.
19257func (s *PostFulfillmentStatusSpecification) SetTimeoutResponse(v *ResponseSpecification) *PostFulfillmentStatusSpecification {
19258	s.TimeoutResponse = v
19259	return s
19260}
19261
19262// Your request couldn't be completed because one or more request fields aren't
19263// valid. Check the fields in your request and try again.
19264type PreconditionFailedException struct {
19265	_            struct{}                  `type:"structure"`
19266	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19267
19268	Message_ *string `locationName:"message" type:"string"`
19269}
19270
19271// String returns the string representation.
19272//
19273// API parameter values that are decorated as "sensitive" in the API will not
19274// be included in the string output. The member name will be present, but the
19275// value will be replaced with "sensitive".
19276func (s PreconditionFailedException) String() string {
19277	return awsutil.Prettify(s)
19278}
19279
19280// GoString returns the string representation.
19281//
19282// API parameter values that are decorated as "sensitive" in the API will not
19283// be included in the string output. The member name will be present, but the
19284// value will be replaced with "sensitive".
19285func (s PreconditionFailedException) GoString() string {
19286	return s.String()
19287}
19288
19289func newErrorPreconditionFailedException(v protocol.ResponseMetadata) error {
19290	return &PreconditionFailedException{
19291		RespMetadata: v,
19292	}
19293}
19294
19295// Code returns the exception type name.
19296func (s *PreconditionFailedException) Code() string {
19297	return "PreconditionFailedException"
19298}
19299
19300// Message returns the exception's message.
19301func (s *PreconditionFailedException) Message() string {
19302	if s.Message_ != nil {
19303		return *s.Message_
19304	}
19305	return ""
19306}
19307
19308// OrigErr always returns nil, satisfies awserr.Error interface.
19309func (s *PreconditionFailedException) OrigErr() error {
19310	return nil
19311}
19312
19313func (s *PreconditionFailedException) Error() string {
19314	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19315}
19316
19317// Status code returns the HTTP status code for the request's response error.
19318func (s *PreconditionFailedException) StatusCode() int {
19319	return s.RespMetadata.StatusCode
19320}
19321
19322// RequestID returns the service's response RequestID for request.
19323func (s *PreconditionFailedException) RequestID() string {
19324	return s.RespMetadata.RequestID
19325}
19326
19327// The IAM principal that you allowing or denying access to an Amazon Lex action.
19328// You must provide a service or an arn, but not both in the same statement.
19329// For more information, see AWS JSON policy elements: Principal (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html).
19330type Principal struct {
19331	_ struct{} `type:"structure"`
19332
19333	// The Amazon Resource Name (ARN) of the principal.
19334	Arn *string `locationName:"arn" min:"30" type:"string"`
19335
19336	// The name of the AWS service that should allowed or denied access to an Amazon
19337	// Lex action.
19338	Service *string `locationName:"service" min:"15" type:"string"`
19339}
19340
19341// String returns the string representation.
19342//
19343// API parameter values that are decorated as "sensitive" in the API will not
19344// be included in the string output. The member name will be present, but the
19345// value will be replaced with "sensitive".
19346func (s Principal) String() string {
19347	return awsutil.Prettify(s)
19348}
19349
19350// GoString returns the string representation.
19351//
19352// API parameter values that are decorated as "sensitive" in the API will not
19353// be included in the string output. The member name will be present, but the
19354// value will be replaced with "sensitive".
19355func (s Principal) GoString() string {
19356	return s.String()
19357}
19358
19359// Validate inspects the fields of the type to determine if they are valid.
19360func (s *Principal) Validate() error {
19361	invalidParams := request.ErrInvalidParams{Context: "Principal"}
19362	if s.Arn != nil && len(*s.Arn) < 30 {
19363		invalidParams.Add(request.NewErrParamMinLen("Arn", 30))
19364	}
19365	if s.Service != nil && len(*s.Service) < 15 {
19366		invalidParams.Add(request.NewErrParamMinLen("Service", 15))
19367	}
19368
19369	if invalidParams.Len() > 0 {
19370		return invalidParams
19371	}
19372	return nil
19373}
19374
19375// SetArn sets the Arn field's value.
19376func (s *Principal) SetArn(v string) *Principal {
19377	s.Arn = &v
19378	return s
19379}
19380
19381// SetService sets the Service field's value.
19382func (s *Principal) SetService(v string) *Principal {
19383	s.Service = &v
19384	return s
19385}
19386
19387// Specifies a list of message groups that Amazon Lex sends to a user to elicit
19388// a response.
19389type PromptSpecification struct {
19390	_ struct{} `type:"structure"`
19391
19392	// Indicates whether the user can interrupt a speech prompt from the bot.
19393	AllowInterrupt *bool `locationName:"allowInterrupt" type:"boolean"`
19394
19395	// The maximum number of times the bot tries to elicit a response from the user
19396	// using this prompt.
19397	//
19398	// MaxRetries is a required field
19399	MaxRetries *int64 `locationName:"maxRetries" type:"integer" required:"true"`
19400
19401	// A collection of messages that Amazon Lex can send to the user. Amazon Lex
19402	// chooses the actual message to send at runtime.
19403	//
19404	// MessageGroups is a required field
19405	MessageGroups []*MessageGroup `locationName:"messageGroups" min:"1" type:"list" required:"true"`
19406}
19407
19408// String returns the string representation.
19409//
19410// API parameter values that are decorated as "sensitive" in the API will not
19411// be included in the string output. The member name will be present, but the
19412// value will be replaced with "sensitive".
19413func (s PromptSpecification) String() string {
19414	return awsutil.Prettify(s)
19415}
19416
19417// GoString returns the string representation.
19418//
19419// API parameter values that are decorated as "sensitive" in the API will not
19420// be included in the string output. The member name will be present, but the
19421// value will be replaced with "sensitive".
19422func (s PromptSpecification) GoString() string {
19423	return s.String()
19424}
19425
19426// Validate inspects the fields of the type to determine if they are valid.
19427func (s *PromptSpecification) Validate() error {
19428	invalidParams := request.ErrInvalidParams{Context: "PromptSpecification"}
19429	if s.MaxRetries == nil {
19430		invalidParams.Add(request.NewErrParamRequired("MaxRetries"))
19431	}
19432	if s.MessageGroups == nil {
19433		invalidParams.Add(request.NewErrParamRequired("MessageGroups"))
19434	}
19435	if s.MessageGroups != nil && len(s.MessageGroups) < 1 {
19436		invalidParams.Add(request.NewErrParamMinLen("MessageGroups", 1))
19437	}
19438	if s.MessageGroups != nil {
19439		for i, v := range s.MessageGroups {
19440			if v == nil {
19441				continue
19442			}
19443			if err := v.Validate(); err != nil {
19444				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MessageGroups", i), err.(request.ErrInvalidParams))
19445			}
19446		}
19447	}
19448
19449	if invalidParams.Len() > 0 {
19450		return invalidParams
19451	}
19452	return nil
19453}
19454
19455// SetAllowInterrupt sets the AllowInterrupt field's value.
19456func (s *PromptSpecification) SetAllowInterrupt(v bool) *PromptSpecification {
19457	s.AllowInterrupt = &v
19458	return s
19459}
19460
19461// SetMaxRetries sets the MaxRetries field's value.
19462func (s *PromptSpecification) SetMaxRetries(v int64) *PromptSpecification {
19463	s.MaxRetries = &v
19464	return s
19465}
19466
19467// SetMessageGroups sets the MessageGroups field's value.
19468func (s *PromptSpecification) SetMessageGroups(v []*MessageGroup) *PromptSpecification {
19469	s.MessageGroups = v
19470	return s
19471}
19472
19473// Specifies the time window that utterance statistics are returned for. The
19474// time window is always relative to the last time that the that utterances
19475// were aggregated. For example, if the ListAggregatedUtterances operation is
19476// called at 1600, the time window is set to 1 hour, and the last refresh time
19477// was 1530, only utterances made between 1430 and 1530 are returned.
19478//
19479// You can choose the time window that statistics should be returned for.
19480//
19481//    * Hours - You can request utterance statistics for 1, 3, 6, 12, or 24
19482//    hour time windows. Statistics are refreshed every half hour for 1 hour
19483//    time windows, and hourly for the other time windows.
19484//
19485//    * Days - You can request utterance statistics for 3 days. Statistics are
19486//    refreshed every 6 hours.
19487//
19488//    * Weeks - You can see statistics for one or two weeks. Statistics are
19489//    refreshed every 12 hours for one week time windows, and once per day for
19490//    two week time windows.
19491type RelativeAggregationDuration struct {
19492	_ struct{} `type:"structure"`
19493
19494	// The type of time period that the timeValue field represents.
19495	//
19496	// TimeDimension is a required field
19497	TimeDimension *string `locationName:"timeDimension" type:"string" required:"true" enum:"TimeDimension"`
19498
19499	// The period of the time window to gather statistics for. The valid value depends
19500	// on the setting of the timeDimension field.
19501	//
19502	//    * Hours - 1/3/6/12/24
19503	//
19504	//    * Days - 3
19505	//
19506	//    * Weeks - 1/2
19507	//
19508	// TimeValue is a required field
19509	TimeValue *int64 `locationName:"timeValue" min:"1" type:"integer" required:"true"`
19510}
19511
19512// String returns the string representation.
19513//
19514// API parameter values that are decorated as "sensitive" in the API will not
19515// be included in the string output. The member name will be present, but the
19516// value will be replaced with "sensitive".
19517func (s RelativeAggregationDuration) String() string {
19518	return awsutil.Prettify(s)
19519}
19520
19521// GoString returns the string representation.
19522//
19523// API parameter values that are decorated as "sensitive" in the API will not
19524// be included in the string output. The member name will be present, but the
19525// value will be replaced with "sensitive".
19526func (s RelativeAggregationDuration) GoString() string {
19527	return s.String()
19528}
19529
19530// Validate inspects the fields of the type to determine if they are valid.
19531func (s *RelativeAggregationDuration) Validate() error {
19532	invalidParams := request.ErrInvalidParams{Context: "RelativeAggregationDuration"}
19533	if s.TimeDimension == nil {
19534		invalidParams.Add(request.NewErrParamRequired("TimeDimension"))
19535	}
19536	if s.TimeValue == nil {
19537		invalidParams.Add(request.NewErrParamRequired("TimeValue"))
19538	}
19539	if s.TimeValue != nil && *s.TimeValue < 1 {
19540		invalidParams.Add(request.NewErrParamMinValue("TimeValue", 1))
19541	}
19542
19543	if invalidParams.Len() > 0 {
19544		return invalidParams
19545	}
19546	return nil
19547}
19548
19549// SetTimeDimension sets the TimeDimension field's value.
19550func (s *RelativeAggregationDuration) SetTimeDimension(v string) *RelativeAggregationDuration {
19551	s.TimeDimension = &v
19552	return s
19553}
19554
19555// SetTimeValue sets the TimeValue field's value.
19556func (s *RelativeAggregationDuration) SetTimeValue(v int64) *RelativeAggregationDuration {
19557	s.TimeValue = &v
19558	return s
19559}
19560
19561// You asked to describe a resource that doesn't exist. Check the resource that
19562// you are requesting and try again.
19563type ResourceNotFoundException struct {
19564	_            struct{}                  `type:"structure"`
19565	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19566
19567	Message_ *string `locationName:"message" type:"string"`
19568}
19569
19570// String returns the string representation.
19571//
19572// API parameter values that are decorated as "sensitive" in the API will not
19573// be included in the string output. The member name will be present, but the
19574// value will be replaced with "sensitive".
19575func (s ResourceNotFoundException) String() string {
19576	return awsutil.Prettify(s)
19577}
19578
19579// GoString returns the string representation.
19580//
19581// API parameter values that are decorated as "sensitive" in the API will not
19582// be included in the string output. The member name will be present, but the
19583// value will be replaced with "sensitive".
19584func (s ResourceNotFoundException) GoString() string {
19585	return s.String()
19586}
19587
19588func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
19589	return &ResourceNotFoundException{
19590		RespMetadata: v,
19591	}
19592}
19593
19594// Code returns the exception type name.
19595func (s *ResourceNotFoundException) Code() string {
19596	return "ResourceNotFoundException"
19597}
19598
19599// Message returns the exception's message.
19600func (s *ResourceNotFoundException) Message() string {
19601	if s.Message_ != nil {
19602		return *s.Message_
19603	}
19604	return ""
19605}
19606
19607// OrigErr always returns nil, satisfies awserr.Error interface.
19608func (s *ResourceNotFoundException) OrigErr() error {
19609	return nil
19610}
19611
19612func (s *ResourceNotFoundException) Error() string {
19613	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
19614}
19615
19616// Status code returns the HTTP status code for the request's response error.
19617func (s *ResourceNotFoundException) StatusCode() int {
19618	return s.RespMetadata.StatusCode
19619}
19620
19621// RequestID returns the service's response RequestID for request.
19622func (s *ResourceNotFoundException) RequestID() string {
19623	return s.RespMetadata.RequestID
19624}
19625
19626// Specifies a list of message groups that Amazon Lex uses to respond the user
19627// input.
19628type ResponseSpecification struct {
19629	_ struct{} `type:"structure"`
19630
19631	// Indicates whether the user can interrupt a speech response from Amazon Lex.
19632	AllowInterrupt *bool `locationName:"allowInterrupt" type:"boolean"`
19633
19634	// A collection of responses that Amazon Lex can send to the user. Amazon Lex
19635	// chooses the actual response to send at runtime.
19636	//
19637	// MessageGroups is a required field
19638	MessageGroups []*MessageGroup `locationName:"messageGroups" min:"1" type:"list" required:"true"`
19639}
19640
19641// String returns the string representation.
19642//
19643// API parameter values that are decorated as "sensitive" in the API will not
19644// be included in the string output. The member name will be present, but the
19645// value will be replaced with "sensitive".
19646func (s ResponseSpecification) String() string {
19647	return awsutil.Prettify(s)
19648}
19649
19650// GoString returns the string representation.
19651//
19652// API parameter values that are decorated as "sensitive" in the API will not
19653// be included in the string output. The member name will be present, but the
19654// value will be replaced with "sensitive".
19655func (s ResponseSpecification) GoString() string {
19656	return s.String()
19657}
19658
19659// Validate inspects the fields of the type to determine if they are valid.
19660func (s *ResponseSpecification) Validate() error {
19661	invalidParams := request.ErrInvalidParams{Context: "ResponseSpecification"}
19662	if s.MessageGroups == nil {
19663		invalidParams.Add(request.NewErrParamRequired("MessageGroups"))
19664	}
19665	if s.MessageGroups != nil && len(s.MessageGroups) < 1 {
19666		invalidParams.Add(request.NewErrParamMinLen("MessageGroups", 1))
19667	}
19668	if s.MessageGroups != nil {
19669		for i, v := range s.MessageGroups {
19670			if v == nil {
19671				continue
19672			}
19673			if err := v.Validate(); err != nil {
19674				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MessageGroups", i), err.(request.ErrInvalidParams))
19675			}
19676		}
19677	}
19678
19679	if invalidParams.Len() > 0 {
19680		return invalidParams
19681	}
19682	return nil
19683}
19684
19685// SetAllowInterrupt sets the AllowInterrupt field's value.
19686func (s *ResponseSpecification) SetAllowInterrupt(v bool) *ResponseSpecification {
19687	s.AllowInterrupt = &v
19688	return s
19689}
19690
19691// SetMessageGroups sets the MessageGroups field's value.
19692func (s *ResponseSpecification) SetMessageGroups(v []*MessageGroup) *ResponseSpecification {
19693	s.MessageGroups = v
19694	return s
19695}
19696
19697// Specifies an Amazon S3 bucket for logging audio conversations
19698type S3BucketLogDestination struct {
19699	_ struct{} `type:"structure"`
19700
19701	// The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS) key
19702	// for encrypting audio log files stored in an S3 bucket.
19703	KmsKeyArn *string `locationName:"kmsKeyArn" min:"20" type:"string"`
19704
19705	// The S3 prefix to assign to audio log files.
19706	//
19707	// LogPrefix is a required field
19708	LogPrefix *string `locationName:"logPrefix" type:"string" required:"true"`
19709
19710	// The Amazon Resource Name (ARN) of an Amazon S3 bucket where audio log files
19711	// are stored.
19712	//
19713	// S3BucketArn is a required field
19714	S3BucketArn *string `locationName:"s3BucketArn" min:"1" type:"string" required:"true"`
19715}
19716
19717// String returns the string representation.
19718//
19719// API parameter values that are decorated as "sensitive" in the API will not
19720// be included in the string output. The member name will be present, but the
19721// value will be replaced with "sensitive".
19722func (s S3BucketLogDestination) String() string {
19723	return awsutil.Prettify(s)
19724}
19725
19726// GoString returns the string representation.
19727//
19728// API parameter values that are decorated as "sensitive" in the API will not
19729// be included in the string output. The member name will be present, but the
19730// value will be replaced with "sensitive".
19731func (s S3BucketLogDestination) GoString() string {
19732	return s.String()
19733}
19734
19735// Validate inspects the fields of the type to determine if they are valid.
19736func (s *S3BucketLogDestination) Validate() error {
19737	invalidParams := request.ErrInvalidParams{Context: "S3BucketLogDestination"}
19738	if s.KmsKeyArn != nil && len(*s.KmsKeyArn) < 20 {
19739		invalidParams.Add(request.NewErrParamMinLen("KmsKeyArn", 20))
19740	}
19741	if s.LogPrefix == nil {
19742		invalidParams.Add(request.NewErrParamRequired("LogPrefix"))
19743	}
19744	if s.S3BucketArn == nil {
19745		invalidParams.Add(request.NewErrParamRequired("S3BucketArn"))
19746	}
19747	if s.S3BucketArn != nil && len(*s.S3BucketArn) < 1 {
19748		invalidParams.Add(request.NewErrParamMinLen("S3BucketArn", 1))
19749	}
19750
19751	if invalidParams.Len() > 0 {
19752		return invalidParams
19753	}
19754	return nil
19755}
19756
19757// SetKmsKeyArn sets the KmsKeyArn field's value.
19758func (s *S3BucketLogDestination) SetKmsKeyArn(v string) *S3BucketLogDestination {
19759	s.KmsKeyArn = &v
19760	return s
19761}
19762
19763// SetLogPrefix sets the LogPrefix field's value.
19764func (s *S3BucketLogDestination) SetLogPrefix(v string) *S3BucketLogDestination {
19765	s.LogPrefix = &v
19766	return s
19767}
19768
19769// SetS3BucketArn sets the S3BucketArn field's value.
19770func (s *S3BucketLogDestination) SetS3BucketArn(v string) *S3BucketLogDestination {
19771	s.S3BucketArn = &v
19772	return s
19773}
19774
19775// Defines a Speech Synthesis Markup Language (SSML) prompt.
19776type SSMLMessage struct {
19777	_ struct{} `type:"structure"`
19778
19779	// The SSML text that defines the prompt.
19780	//
19781	// Value is a required field
19782	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
19783}
19784
19785// String returns the string representation.
19786//
19787// API parameter values that are decorated as "sensitive" in the API will not
19788// be included in the string output. The member name will be present, but the
19789// value will be replaced with "sensitive".
19790func (s SSMLMessage) String() string {
19791	return awsutil.Prettify(s)
19792}
19793
19794// GoString returns the string representation.
19795//
19796// API parameter values that are decorated as "sensitive" in the API will not
19797// be included in the string output. The member name will be present, but the
19798// value will be replaced with "sensitive".
19799func (s SSMLMessage) GoString() string {
19800	return s.String()
19801}
19802
19803// Validate inspects the fields of the type to determine if they are valid.
19804func (s *SSMLMessage) Validate() error {
19805	invalidParams := request.ErrInvalidParams{Context: "SSMLMessage"}
19806	if s.Value == nil {
19807		invalidParams.Add(request.NewErrParamRequired("Value"))
19808	}
19809	if s.Value != nil && len(*s.Value) < 1 {
19810		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
19811	}
19812
19813	if invalidParams.Len() > 0 {
19814		return invalidParams
19815	}
19816	return nil
19817}
19818
19819// SetValue sets the Value field's value.
19820func (s *SSMLMessage) SetValue(v string) *SSMLMessage {
19821	s.Value = &v
19822	return s
19823}
19824
19825// A sample utterance that invokes an intent or respond to a slot elicitation
19826// prompt.
19827type SampleUtterance struct {
19828	_ struct{} `type:"structure"`
19829
19830	// The sample utterance that Amazon Lex uses to build its machine-learning model
19831	// to recognize intents.
19832	//
19833	// Utterance is a required field
19834	Utterance *string `locationName:"utterance" type:"string" required:"true"`
19835}
19836
19837// String returns the string representation.
19838//
19839// API parameter values that are decorated as "sensitive" in the API will not
19840// be included in the string output. The member name will be present, but the
19841// value will be replaced with "sensitive".
19842func (s SampleUtterance) String() string {
19843	return awsutil.Prettify(s)
19844}
19845
19846// GoString returns the string representation.
19847//
19848// API parameter values that are decorated as "sensitive" in the API will not
19849// be included in the string output. The member name will be present, but the
19850// value will be replaced with "sensitive".
19851func (s SampleUtterance) GoString() string {
19852	return s.String()
19853}
19854
19855// Validate inspects the fields of the type to determine if they are valid.
19856func (s *SampleUtterance) Validate() error {
19857	invalidParams := request.ErrInvalidParams{Context: "SampleUtterance"}
19858	if s.Utterance == nil {
19859		invalidParams.Add(request.NewErrParamRequired("Utterance"))
19860	}
19861
19862	if invalidParams.Len() > 0 {
19863		return invalidParams
19864	}
19865	return nil
19866}
19867
19868// SetUtterance sets the Utterance field's value.
19869func (s *SampleUtterance) SetUtterance(v string) *SampleUtterance {
19870	s.Utterance = &v
19871	return s
19872}
19873
19874// Defines one of the values for a slot type.
19875type SampleValue struct {
19876	_ struct{} `type:"structure"`
19877
19878	// The value that can be used for a slot type.
19879	//
19880	// Value is a required field
19881	Value *string `locationName:"value" min:"1" type:"string" required:"true"`
19882}
19883
19884// String returns the string representation.
19885//
19886// API parameter values that are decorated as "sensitive" in the API will not
19887// be included in the string output. The member name will be present, but the
19888// value will be replaced with "sensitive".
19889func (s SampleValue) String() string {
19890	return awsutil.Prettify(s)
19891}
19892
19893// GoString returns the string representation.
19894//
19895// API parameter values that are decorated as "sensitive" in the API will not
19896// be included in the string output. The member name will be present, but the
19897// value will be replaced with "sensitive".
19898func (s SampleValue) GoString() string {
19899	return s.String()
19900}
19901
19902// Validate inspects the fields of the type to determine if they are valid.
19903func (s *SampleValue) Validate() error {
19904	invalidParams := request.ErrInvalidParams{Context: "SampleValue"}
19905	if s.Value == nil {
19906		invalidParams.Add(request.NewErrParamRequired("Value"))
19907	}
19908	if s.Value != nil && len(*s.Value) < 1 {
19909		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
19910	}
19911
19912	if invalidParams.Len() > 0 {
19913		return invalidParams
19914	}
19915	return nil
19916}
19917
19918// SetValue sets the Value field's value.
19919func (s *SampleValue) SetValue(v string) *SampleValue {
19920	s.Value = &v
19921	return s
19922}
19923
19924// Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment
19925// of user utterances.
19926type SentimentAnalysisSettings struct {
19927	_ struct{} `type:"structure"`
19928
19929	// Sets whether Amazon Lex uses Amazon Comprehend to detect the sentiment of
19930	// user utterances.
19931	//
19932	// DetectSentiment is a required field
19933	DetectSentiment *bool `locationName:"detectSentiment" type:"boolean" required:"true"`
19934}
19935
19936// String returns the string representation.
19937//
19938// API parameter values that are decorated as "sensitive" in the API will not
19939// be included in the string output. The member name will be present, but the
19940// value will be replaced with "sensitive".
19941func (s SentimentAnalysisSettings) String() string {
19942	return awsutil.Prettify(s)
19943}
19944
19945// GoString returns the string representation.
19946//
19947// API parameter values that are decorated as "sensitive" in the API will not
19948// be included in the string output. The member name will be present, but the
19949// value will be replaced with "sensitive".
19950func (s SentimentAnalysisSettings) GoString() string {
19951	return s.String()
19952}
19953
19954// Validate inspects the fields of the type to determine if they are valid.
19955func (s *SentimentAnalysisSettings) Validate() error {
19956	invalidParams := request.ErrInvalidParams{Context: "SentimentAnalysisSettings"}
19957	if s.DetectSentiment == nil {
19958		invalidParams.Add(request.NewErrParamRequired("DetectSentiment"))
19959	}
19960
19961	if invalidParams.Len() > 0 {
19962		return invalidParams
19963	}
19964	return nil
19965}
19966
19967// SetDetectSentiment sets the DetectSentiment field's value.
19968func (s *SentimentAnalysisSettings) SetDetectSentiment(v bool) *SentimentAnalysisSettings {
19969	s.DetectSentiment = &v
19970	return s
19971}
19972
19973// You have reached a quota for your bot.
19974type ServiceQuotaExceededException struct {
19975	_            struct{}                  `type:"structure"`
19976	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19977
19978	Message_ *string `locationName:"message" type:"string"`
19979}
19980
19981// String returns the string representation.
19982//
19983// API parameter values that are decorated as "sensitive" in the API will not
19984// be included in the string output. The member name will be present, but the
19985// value will be replaced with "sensitive".
19986func (s ServiceQuotaExceededException) String() string {
19987	return awsutil.Prettify(s)
19988}
19989
19990// GoString returns the string representation.
19991//
19992// API parameter values that are decorated as "sensitive" in the API will not
19993// be included in the string output. The member name will be present, but the
19994// value will be replaced with "sensitive".
19995func (s ServiceQuotaExceededException) GoString() string {
19996	return s.String()
19997}
19998
19999func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
20000	return &ServiceQuotaExceededException{
20001		RespMetadata: v,
20002	}
20003}
20004
20005// Code returns the exception type name.
20006func (s *ServiceQuotaExceededException) Code() string {
20007	return "ServiceQuotaExceededException"
20008}
20009
20010// Message returns the exception's message.
20011func (s *ServiceQuotaExceededException) Message() string {
20012	if s.Message_ != nil {
20013		return *s.Message_
20014	}
20015	return ""
20016}
20017
20018// OrigErr always returns nil, satisfies awserr.Error interface.
20019func (s *ServiceQuotaExceededException) OrigErr() error {
20020	return nil
20021}
20022
20023func (s *ServiceQuotaExceededException) Error() string {
20024	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
20025}
20026
20027// Status code returns the HTTP status code for the request's response error.
20028func (s *ServiceQuotaExceededException) StatusCode() int {
20029	return s.RespMetadata.StatusCode
20030}
20031
20032// RequestID returns the service's response RequestID for request.
20033func (s *ServiceQuotaExceededException) RequestID() string {
20034	return s.RespMetadata.RequestID
20035}
20036
20037// Specifies the default value to use when a user doesn't provide a value for
20038// a slot.
20039type SlotDefaultValue struct {
20040	_ struct{} `type:"structure"`
20041
20042	// The default value to use when a user doesn't provide a value for a slot.
20043	//
20044	// DefaultValue is a required field
20045	DefaultValue *string `locationName:"defaultValue" min:"1" type:"string" required:"true"`
20046}
20047
20048// String returns the string representation.
20049//
20050// API parameter values that are decorated as "sensitive" in the API will not
20051// be included in the string output. The member name will be present, but the
20052// value will be replaced with "sensitive".
20053func (s SlotDefaultValue) String() string {
20054	return awsutil.Prettify(s)
20055}
20056
20057// GoString returns the string representation.
20058//
20059// API parameter values that are decorated as "sensitive" in the API will not
20060// be included in the string output. The member name will be present, but the
20061// value will be replaced with "sensitive".
20062func (s SlotDefaultValue) GoString() string {
20063	return s.String()
20064}
20065
20066// Validate inspects the fields of the type to determine if they are valid.
20067func (s *SlotDefaultValue) Validate() error {
20068	invalidParams := request.ErrInvalidParams{Context: "SlotDefaultValue"}
20069	if s.DefaultValue == nil {
20070		invalidParams.Add(request.NewErrParamRequired("DefaultValue"))
20071	}
20072	if s.DefaultValue != nil && len(*s.DefaultValue) < 1 {
20073		invalidParams.Add(request.NewErrParamMinLen("DefaultValue", 1))
20074	}
20075
20076	if invalidParams.Len() > 0 {
20077		return invalidParams
20078	}
20079	return nil
20080}
20081
20082// SetDefaultValue sets the DefaultValue field's value.
20083func (s *SlotDefaultValue) SetDefaultValue(v string) *SlotDefaultValue {
20084	s.DefaultValue = &v
20085	return s
20086}
20087
20088// Defines a list of values that Amazon Lex should use as the default value
20089// for a slot.
20090type SlotDefaultValueSpecification struct {
20091	_ struct{} `type:"structure"`
20092
20093	// A list of default values. Amazon Lex chooses the default value to use in
20094	// the order that they are presented in the list.
20095	//
20096	// DefaultValueList is a required field
20097	DefaultValueList []*SlotDefaultValue `locationName:"defaultValueList" type:"list" required:"true"`
20098}
20099
20100// String returns the string representation.
20101//
20102// API parameter values that are decorated as "sensitive" in the API will not
20103// be included in the string output. The member name will be present, but the
20104// value will be replaced with "sensitive".
20105func (s SlotDefaultValueSpecification) String() string {
20106	return awsutil.Prettify(s)
20107}
20108
20109// GoString returns the string representation.
20110//
20111// API parameter values that are decorated as "sensitive" in the API will not
20112// be included in the string output. The member name will be present, but the
20113// value will be replaced with "sensitive".
20114func (s SlotDefaultValueSpecification) GoString() string {
20115	return s.String()
20116}
20117
20118// Validate inspects the fields of the type to determine if they are valid.
20119func (s *SlotDefaultValueSpecification) Validate() error {
20120	invalidParams := request.ErrInvalidParams{Context: "SlotDefaultValueSpecification"}
20121	if s.DefaultValueList == nil {
20122		invalidParams.Add(request.NewErrParamRequired("DefaultValueList"))
20123	}
20124	if s.DefaultValueList != nil {
20125		for i, v := range s.DefaultValueList {
20126			if v == nil {
20127				continue
20128			}
20129			if err := v.Validate(); err != nil {
20130				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DefaultValueList", i), err.(request.ErrInvalidParams))
20131			}
20132		}
20133	}
20134
20135	if invalidParams.Len() > 0 {
20136		return invalidParams
20137	}
20138	return nil
20139}
20140
20141// SetDefaultValueList sets the DefaultValueList field's value.
20142func (s *SlotDefaultValueSpecification) SetDefaultValueList(v []*SlotDefaultValue) *SlotDefaultValueSpecification {
20143	s.DefaultValueList = v
20144	return s
20145}
20146
20147// Filters the response from the ListSlots operation.
20148type SlotFilter struct {
20149	_ struct{} `type:"structure"`
20150
20151	// The name of the field to use for filtering.
20152	//
20153	// Name is a required field
20154	Name *string `locationName:"name" type:"string" required:"true" enum:"SlotFilterName"`
20155
20156	// The operator to use for the filter. Specify EQ when the ListSlots operation
20157	// should return only aliases that equal the specified value. Specify CO when
20158	// the ListSlots operation should return aliases that contain the specified
20159	// value.
20160	//
20161	// Operator is a required field
20162	Operator *string `locationName:"operator" type:"string" required:"true" enum:"SlotFilterOperator"`
20163
20164	// The value to use to filter the response.
20165	//
20166	// Values is a required field
20167	Values []*string `locationName:"values" min:"1" type:"list" required:"true"`
20168}
20169
20170// String returns the string representation.
20171//
20172// API parameter values that are decorated as "sensitive" in the API will not
20173// be included in the string output. The member name will be present, but the
20174// value will be replaced with "sensitive".
20175func (s SlotFilter) String() string {
20176	return awsutil.Prettify(s)
20177}
20178
20179// GoString returns the string representation.
20180//
20181// API parameter values that are decorated as "sensitive" in the API will not
20182// be included in the string output. The member name will be present, but the
20183// value will be replaced with "sensitive".
20184func (s SlotFilter) GoString() string {
20185	return s.String()
20186}
20187
20188// Validate inspects the fields of the type to determine if they are valid.
20189func (s *SlotFilter) Validate() error {
20190	invalidParams := request.ErrInvalidParams{Context: "SlotFilter"}
20191	if s.Name == nil {
20192		invalidParams.Add(request.NewErrParamRequired("Name"))
20193	}
20194	if s.Operator == nil {
20195		invalidParams.Add(request.NewErrParamRequired("Operator"))
20196	}
20197	if s.Values == nil {
20198		invalidParams.Add(request.NewErrParamRequired("Values"))
20199	}
20200	if s.Values != nil && len(s.Values) < 1 {
20201		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
20202	}
20203
20204	if invalidParams.Len() > 0 {
20205		return invalidParams
20206	}
20207	return nil
20208}
20209
20210// SetName sets the Name field's value.
20211func (s *SlotFilter) SetName(v string) *SlotFilter {
20212	s.Name = &v
20213	return s
20214}
20215
20216// SetOperator sets the Operator field's value.
20217func (s *SlotFilter) SetOperator(v string) *SlotFilter {
20218	s.Operator = &v
20219	return s
20220}
20221
20222// SetValues sets the Values field's value.
20223func (s *SlotFilter) SetValues(v []*string) *SlotFilter {
20224	s.Values = v
20225	return s
20226}
20227
20228// Sets the priority that Amazon Lex should use when eliciting slot values from
20229// a user.
20230type SlotPriority struct {
20231	_ struct{} `type:"structure"`
20232
20233	// The priority that a slot should be elicited.
20234	//
20235	// Priority is a required field
20236	Priority *int64 `locationName:"priority" type:"integer" required:"true"`
20237
20238	// The unique identifier of the slot.
20239	//
20240	// SlotId is a required field
20241	SlotId *string `locationName:"slotId" min:"10" type:"string" required:"true"`
20242}
20243
20244// String returns the string representation.
20245//
20246// API parameter values that are decorated as "sensitive" in the API will not
20247// be included in the string output. The member name will be present, but the
20248// value will be replaced with "sensitive".
20249func (s SlotPriority) String() string {
20250	return awsutil.Prettify(s)
20251}
20252
20253// GoString returns the string representation.
20254//
20255// API parameter values that are decorated as "sensitive" in the API will not
20256// be included in the string output. The member name will be present, but the
20257// value will be replaced with "sensitive".
20258func (s SlotPriority) GoString() string {
20259	return s.String()
20260}
20261
20262// Validate inspects the fields of the type to determine if they are valid.
20263func (s *SlotPriority) Validate() error {
20264	invalidParams := request.ErrInvalidParams{Context: "SlotPriority"}
20265	if s.Priority == nil {
20266		invalidParams.Add(request.NewErrParamRequired("Priority"))
20267	}
20268	if s.SlotId == nil {
20269		invalidParams.Add(request.NewErrParamRequired("SlotId"))
20270	}
20271	if s.SlotId != nil && len(*s.SlotId) < 10 {
20272		invalidParams.Add(request.NewErrParamMinLen("SlotId", 10))
20273	}
20274
20275	if invalidParams.Len() > 0 {
20276		return invalidParams
20277	}
20278	return nil
20279}
20280
20281// SetPriority sets the Priority field's value.
20282func (s *SlotPriority) SetPriority(v int64) *SlotPriority {
20283	s.Priority = &v
20284	return s
20285}
20286
20287// SetSlotId sets the SlotId field's value.
20288func (s *SlotPriority) SetSlotId(v string) *SlotPriority {
20289	s.SlotId = &v
20290	return s
20291}
20292
20293// Specifies attributes for sorting a list of bots.
20294type SlotSortBy struct {
20295	_ struct{} `type:"structure"`
20296
20297	// The attribute to use to sort the list.
20298	//
20299	// Attribute is a required field
20300	Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"SlotSortAttribute"`
20301
20302	// The order to sort the list. You can choose ascending or descending.
20303	//
20304	// Order is a required field
20305	Order *string `locationName:"order" type:"string" required:"true" enum:"SortOrder"`
20306}
20307
20308// String returns the string representation.
20309//
20310// API parameter values that are decorated as "sensitive" in the API will not
20311// be included in the string output. The member name will be present, but the
20312// value will be replaced with "sensitive".
20313func (s SlotSortBy) String() string {
20314	return awsutil.Prettify(s)
20315}
20316
20317// GoString returns the string representation.
20318//
20319// API parameter values that are decorated as "sensitive" in the API will not
20320// be included in the string output. The member name will be present, but the
20321// value will be replaced with "sensitive".
20322func (s SlotSortBy) GoString() string {
20323	return s.String()
20324}
20325
20326// Validate inspects the fields of the type to determine if they are valid.
20327func (s *SlotSortBy) Validate() error {
20328	invalidParams := request.ErrInvalidParams{Context: "SlotSortBy"}
20329	if s.Attribute == nil {
20330		invalidParams.Add(request.NewErrParamRequired("Attribute"))
20331	}
20332	if s.Order == nil {
20333		invalidParams.Add(request.NewErrParamRequired("Order"))
20334	}
20335
20336	if invalidParams.Len() > 0 {
20337		return invalidParams
20338	}
20339	return nil
20340}
20341
20342// SetAttribute sets the Attribute field's value.
20343func (s *SlotSortBy) SetAttribute(v string) *SlotSortBy {
20344	s.Attribute = &v
20345	return s
20346}
20347
20348// SetOrder sets the Order field's value.
20349func (s *SlotSortBy) SetOrder(v string) *SlotSortBy {
20350	s.Order = &v
20351	return s
20352}
20353
20354// Summary information about a slot, a value that the bot elicits from the user.
20355type SlotSummary struct {
20356	_ struct{} `type:"structure"`
20357
20358	// The description of the slot.
20359	Description *string `locationName:"description" type:"string"`
20360
20361	// The timestamp of the last date and time that the slot was updated.
20362	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
20363
20364	// Whether the slot is required or optional. An intent is complete when all
20365	// required slots are filled.
20366	SlotConstraint *string `locationName:"slotConstraint" type:"string" enum:"SlotConstraint"`
20367
20368	// The unique identifier of the slot.
20369	SlotId *string `locationName:"slotId" min:"10" type:"string"`
20370
20371	// The name given to the slot.
20372	SlotName *string `locationName:"slotName" min:"1" type:"string"`
20373
20374	// The unique identifier for the slot type that defines the values for the slot.
20375	SlotTypeId *string `locationName:"slotTypeId" min:"1" type:"string"`
20376
20377	// Prompts that are sent to the user to elicit a value for the slot.
20378	ValueElicitationPromptSpecification *PromptSpecification `locationName:"valueElicitationPromptSpecification" type:"structure"`
20379}
20380
20381// String returns the string representation.
20382//
20383// API parameter values that are decorated as "sensitive" in the API will not
20384// be included in the string output. The member name will be present, but the
20385// value will be replaced with "sensitive".
20386func (s SlotSummary) String() string {
20387	return awsutil.Prettify(s)
20388}
20389
20390// GoString returns the string representation.
20391//
20392// API parameter values that are decorated as "sensitive" in the API will not
20393// be included in the string output. The member name will be present, but the
20394// value will be replaced with "sensitive".
20395func (s SlotSummary) GoString() string {
20396	return s.String()
20397}
20398
20399// SetDescription sets the Description field's value.
20400func (s *SlotSummary) SetDescription(v string) *SlotSummary {
20401	s.Description = &v
20402	return s
20403}
20404
20405// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
20406func (s *SlotSummary) SetLastUpdatedDateTime(v time.Time) *SlotSummary {
20407	s.LastUpdatedDateTime = &v
20408	return s
20409}
20410
20411// SetSlotConstraint sets the SlotConstraint field's value.
20412func (s *SlotSummary) SetSlotConstraint(v string) *SlotSummary {
20413	s.SlotConstraint = &v
20414	return s
20415}
20416
20417// SetSlotId sets the SlotId field's value.
20418func (s *SlotSummary) SetSlotId(v string) *SlotSummary {
20419	s.SlotId = &v
20420	return s
20421}
20422
20423// SetSlotName sets the SlotName field's value.
20424func (s *SlotSummary) SetSlotName(v string) *SlotSummary {
20425	s.SlotName = &v
20426	return s
20427}
20428
20429// SetSlotTypeId sets the SlotTypeId field's value.
20430func (s *SlotSummary) SetSlotTypeId(v string) *SlotSummary {
20431	s.SlotTypeId = &v
20432	return s
20433}
20434
20435// SetValueElicitationPromptSpecification sets the ValueElicitationPromptSpecification field's value.
20436func (s *SlotSummary) SetValueElicitationPromptSpecification(v *PromptSpecification) *SlotSummary {
20437	s.ValueElicitationPromptSpecification = v
20438	return s
20439}
20440
20441// Filters the response from the ListSlotTypes operation.
20442type SlotTypeFilter struct {
20443	_ struct{} `type:"structure"`
20444
20445	// The name of the field to use for filtering.
20446	//
20447	// Name is a required field
20448	Name *string `locationName:"name" type:"string" required:"true" enum:"SlotTypeFilterName"`
20449
20450	// The operator to use for the filter. Specify EQ when the ListSlotTypes operation
20451	// should return only aliases that equal the specified value. Specify CO when
20452	// the ListSlotTypes operation should return aliases that contain the specified
20453	// value.
20454	//
20455	// Operator is a required field
20456	Operator *string `locationName:"operator" type:"string" required:"true" enum:"SlotTypeFilterOperator"`
20457
20458	// The value to use to filter the response.
20459	//
20460	// Values is a required field
20461	Values []*string `locationName:"values" min:"1" type:"list" required:"true"`
20462}
20463
20464// String returns the string representation.
20465//
20466// API parameter values that are decorated as "sensitive" in the API will not
20467// be included in the string output. The member name will be present, but the
20468// value will be replaced with "sensitive".
20469func (s SlotTypeFilter) String() string {
20470	return awsutil.Prettify(s)
20471}
20472
20473// GoString returns the string representation.
20474//
20475// API parameter values that are decorated as "sensitive" in the API will not
20476// be included in the string output. The member name will be present, but the
20477// value will be replaced with "sensitive".
20478func (s SlotTypeFilter) GoString() string {
20479	return s.String()
20480}
20481
20482// Validate inspects the fields of the type to determine if they are valid.
20483func (s *SlotTypeFilter) Validate() error {
20484	invalidParams := request.ErrInvalidParams{Context: "SlotTypeFilter"}
20485	if s.Name == nil {
20486		invalidParams.Add(request.NewErrParamRequired("Name"))
20487	}
20488	if s.Operator == nil {
20489		invalidParams.Add(request.NewErrParamRequired("Operator"))
20490	}
20491	if s.Values == nil {
20492		invalidParams.Add(request.NewErrParamRequired("Values"))
20493	}
20494	if s.Values != nil && len(s.Values) < 1 {
20495		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
20496	}
20497
20498	if invalidParams.Len() > 0 {
20499		return invalidParams
20500	}
20501	return nil
20502}
20503
20504// SetName sets the Name field's value.
20505func (s *SlotTypeFilter) SetName(v string) *SlotTypeFilter {
20506	s.Name = &v
20507	return s
20508}
20509
20510// SetOperator sets the Operator field's value.
20511func (s *SlotTypeFilter) SetOperator(v string) *SlotTypeFilter {
20512	s.Operator = &v
20513	return s
20514}
20515
20516// SetValues sets the Values field's value.
20517func (s *SlotTypeFilter) SetValues(v []*string) *SlotTypeFilter {
20518	s.Values = v
20519	return s
20520}
20521
20522// Specifies attributes for sorting a list of slot types.
20523type SlotTypeSortBy struct {
20524	_ struct{} `type:"structure"`
20525
20526	// The attribute to use to sort the list of slot types.
20527	//
20528	// Attribute is a required field
20529	Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"SlotTypeSortAttribute"`
20530
20531	// The order to sort the list. You can say ascending or descending.
20532	//
20533	// Order is a required field
20534	Order *string `locationName:"order" type:"string" required:"true" enum:"SortOrder"`
20535}
20536
20537// String returns the string representation.
20538//
20539// API parameter values that are decorated as "sensitive" in the API will not
20540// be included in the string output. The member name will be present, but the
20541// value will be replaced with "sensitive".
20542func (s SlotTypeSortBy) String() string {
20543	return awsutil.Prettify(s)
20544}
20545
20546// GoString returns the string representation.
20547//
20548// API parameter values that are decorated as "sensitive" in the API will not
20549// be included in the string output. The member name will be present, but the
20550// value will be replaced with "sensitive".
20551func (s SlotTypeSortBy) GoString() string {
20552	return s.String()
20553}
20554
20555// Validate inspects the fields of the type to determine if they are valid.
20556func (s *SlotTypeSortBy) Validate() error {
20557	invalidParams := request.ErrInvalidParams{Context: "SlotTypeSortBy"}
20558	if s.Attribute == nil {
20559		invalidParams.Add(request.NewErrParamRequired("Attribute"))
20560	}
20561	if s.Order == nil {
20562		invalidParams.Add(request.NewErrParamRequired("Order"))
20563	}
20564
20565	if invalidParams.Len() > 0 {
20566		return invalidParams
20567	}
20568	return nil
20569}
20570
20571// SetAttribute sets the Attribute field's value.
20572func (s *SlotTypeSortBy) SetAttribute(v string) *SlotTypeSortBy {
20573	s.Attribute = &v
20574	return s
20575}
20576
20577// SetOrder sets the Order field's value.
20578func (s *SlotTypeSortBy) SetOrder(v string) *SlotTypeSortBy {
20579	s.Order = &v
20580	return s
20581}
20582
20583// Provides summary information about a slot type.
20584type SlotTypeSummary struct {
20585	_ struct{} `type:"structure"`
20586
20587	// The description of the slot type.
20588	Description *string `locationName:"description" type:"string"`
20589
20590	// A timestamp of the date and time that the slot type was last updated.
20591	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
20592
20593	// If the slot type is derived from a built-on slot type, the name of the parent
20594	// slot type.
20595	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" type:"string"`
20596
20597	// The unique identifier assigned to the slot type.
20598	SlotTypeId *string `locationName:"slotTypeId" min:"10" type:"string"`
20599
20600	// The name of the slot type.
20601	SlotTypeName *string `locationName:"slotTypeName" min:"1" type:"string"`
20602}
20603
20604// String returns the string representation.
20605//
20606// API parameter values that are decorated as "sensitive" in the API will not
20607// be included in the string output. The member name will be present, but the
20608// value will be replaced with "sensitive".
20609func (s SlotTypeSummary) String() string {
20610	return awsutil.Prettify(s)
20611}
20612
20613// GoString returns the string representation.
20614//
20615// API parameter values that are decorated as "sensitive" in the API will not
20616// be included in the string output. The member name will be present, but the
20617// value will be replaced with "sensitive".
20618func (s SlotTypeSummary) GoString() string {
20619	return s.String()
20620}
20621
20622// SetDescription sets the Description field's value.
20623func (s *SlotTypeSummary) SetDescription(v string) *SlotTypeSummary {
20624	s.Description = &v
20625	return s
20626}
20627
20628// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
20629func (s *SlotTypeSummary) SetLastUpdatedDateTime(v time.Time) *SlotTypeSummary {
20630	s.LastUpdatedDateTime = &v
20631	return s
20632}
20633
20634// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
20635func (s *SlotTypeSummary) SetParentSlotTypeSignature(v string) *SlotTypeSummary {
20636	s.ParentSlotTypeSignature = &v
20637	return s
20638}
20639
20640// SetSlotTypeId sets the SlotTypeId field's value.
20641func (s *SlotTypeSummary) SetSlotTypeId(v string) *SlotTypeSummary {
20642	s.SlotTypeId = &v
20643	return s
20644}
20645
20646// SetSlotTypeName sets the SlotTypeName field's value.
20647func (s *SlotTypeSummary) SetSlotTypeName(v string) *SlotTypeSummary {
20648	s.SlotTypeName = &v
20649	return s
20650}
20651
20652// Each slot type can have a set of values. Each SlotTypeValue represents a
20653// value that the slot type can take.
20654type SlotTypeValue struct {
20655	_ struct{} `type:"structure"`
20656
20657	// The value of the slot type entry.
20658	SampleValue *SampleValue `locationName:"sampleValue" type:"structure"`
20659
20660	// Additional values related to the slot type entry.
20661	Synonyms []*SampleValue `locationName:"synonyms" min:"1" type:"list"`
20662}
20663
20664// String returns the string representation.
20665//
20666// API parameter values that are decorated as "sensitive" in the API will not
20667// be included in the string output. The member name will be present, but the
20668// value will be replaced with "sensitive".
20669func (s SlotTypeValue) String() string {
20670	return awsutil.Prettify(s)
20671}
20672
20673// GoString returns the string representation.
20674//
20675// API parameter values that are decorated as "sensitive" in the API will not
20676// be included in the string output. The member name will be present, but the
20677// value will be replaced with "sensitive".
20678func (s SlotTypeValue) GoString() string {
20679	return s.String()
20680}
20681
20682// Validate inspects the fields of the type to determine if they are valid.
20683func (s *SlotTypeValue) Validate() error {
20684	invalidParams := request.ErrInvalidParams{Context: "SlotTypeValue"}
20685	if s.Synonyms != nil && len(s.Synonyms) < 1 {
20686		invalidParams.Add(request.NewErrParamMinLen("Synonyms", 1))
20687	}
20688	if s.SampleValue != nil {
20689		if err := s.SampleValue.Validate(); err != nil {
20690			invalidParams.AddNested("SampleValue", err.(request.ErrInvalidParams))
20691		}
20692	}
20693	if s.Synonyms != nil {
20694		for i, v := range s.Synonyms {
20695			if v == nil {
20696				continue
20697			}
20698			if err := v.Validate(); err != nil {
20699				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Synonyms", i), err.(request.ErrInvalidParams))
20700			}
20701		}
20702	}
20703
20704	if invalidParams.Len() > 0 {
20705		return invalidParams
20706	}
20707	return nil
20708}
20709
20710// SetSampleValue sets the SampleValue field's value.
20711func (s *SlotTypeValue) SetSampleValue(v *SampleValue) *SlotTypeValue {
20712	s.SampleValue = v
20713	return s
20714}
20715
20716// SetSynonyms sets the Synonyms field's value.
20717func (s *SlotTypeValue) SetSynonyms(v []*SampleValue) *SlotTypeValue {
20718	s.Synonyms = v
20719	return s
20720}
20721
20722// Settings that you can use for eliciting a slot value.
20723type SlotValueElicitationSetting struct {
20724	_ struct{} `type:"structure"`
20725
20726	// A list of default values for a slot. Default values are used when Amazon
20727	// Lex hasn't determined a value for a slot. You can specify default values
20728	// from context variables, session attributes, and defined values.
20729	DefaultValueSpecification *SlotDefaultValueSpecification `locationName:"defaultValueSpecification" type:"structure"`
20730
20731	// The prompt that Amazon Lex uses to elicit the slot value from the user.
20732	PromptSpecification *PromptSpecification `locationName:"promptSpecification" type:"structure"`
20733
20734	// If you know a specific pattern that users might respond to an Amazon Lex
20735	// request for a slot value, you can provide those utterances to improve accuracy.
20736	// This is optional. In most cases, Amazon Lex is capable of understanding user
20737	// utterances.
20738	SampleUtterances []*SampleUtterance `locationName:"sampleUtterances" type:"list"`
20739
20740	// Specifies whether the slot is required or optional.
20741	//
20742	// SlotConstraint is a required field
20743	SlotConstraint *string `locationName:"slotConstraint" type:"string" required:"true" enum:"SlotConstraint"`
20744
20745	// Specifies the prompts that Amazon Lex uses while a bot is waiting for customer
20746	// input.
20747	WaitAndContinueSpecification *WaitAndContinueSpecification `locationName:"waitAndContinueSpecification" type:"structure"`
20748}
20749
20750// String returns the string representation.
20751//
20752// API parameter values that are decorated as "sensitive" in the API will not
20753// be included in the string output. The member name will be present, but the
20754// value will be replaced with "sensitive".
20755func (s SlotValueElicitationSetting) String() string {
20756	return awsutil.Prettify(s)
20757}
20758
20759// GoString returns the string representation.
20760//
20761// API parameter values that are decorated as "sensitive" in the API will not
20762// be included in the string output. The member name will be present, but the
20763// value will be replaced with "sensitive".
20764func (s SlotValueElicitationSetting) GoString() string {
20765	return s.String()
20766}
20767
20768// Validate inspects the fields of the type to determine if they are valid.
20769func (s *SlotValueElicitationSetting) Validate() error {
20770	invalidParams := request.ErrInvalidParams{Context: "SlotValueElicitationSetting"}
20771	if s.SlotConstraint == nil {
20772		invalidParams.Add(request.NewErrParamRequired("SlotConstraint"))
20773	}
20774	if s.DefaultValueSpecification != nil {
20775		if err := s.DefaultValueSpecification.Validate(); err != nil {
20776			invalidParams.AddNested("DefaultValueSpecification", err.(request.ErrInvalidParams))
20777		}
20778	}
20779	if s.PromptSpecification != nil {
20780		if err := s.PromptSpecification.Validate(); err != nil {
20781			invalidParams.AddNested("PromptSpecification", err.(request.ErrInvalidParams))
20782		}
20783	}
20784	if s.SampleUtterances != nil {
20785		for i, v := range s.SampleUtterances {
20786			if v == nil {
20787				continue
20788			}
20789			if err := v.Validate(); err != nil {
20790				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SampleUtterances", i), err.(request.ErrInvalidParams))
20791			}
20792		}
20793	}
20794	if s.WaitAndContinueSpecification != nil {
20795		if err := s.WaitAndContinueSpecification.Validate(); err != nil {
20796			invalidParams.AddNested("WaitAndContinueSpecification", err.(request.ErrInvalidParams))
20797		}
20798	}
20799
20800	if invalidParams.Len() > 0 {
20801		return invalidParams
20802	}
20803	return nil
20804}
20805
20806// SetDefaultValueSpecification sets the DefaultValueSpecification field's value.
20807func (s *SlotValueElicitationSetting) SetDefaultValueSpecification(v *SlotDefaultValueSpecification) *SlotValueElicitationSetting {
20808	s.DefaultValueSpecification = v
20809	return s
20810}
20811
20812// SetPromptSpecification sets the PromptSpecification field's value.
20813func (s *SlotValueElicitationSetting) SetPromptSpecification(v *PromptSpecification) *SlotValueElicitationSetting {
20814	s.PromptSpecification = v
20815	return s
20816}
20817
20818// SetSampleUtterances sets the SampleUtterances field's value.
20819func (s *SlotValueElicitationSetting) SetSampleUtterances(v []*SampleUtterance) *SlotValueElicitationSetting {
20820	s.SampleUtterances = v
20821	return s
20822}
20823
20824// SetSlotConstraint sets the SlotConstraint field's value.
20825func (s *SlotValueElicitationSetting) SetSlotConstraint(v string) *SlotValueElicitationSetting {
20826	s.SlotConstraint = &v
20827	return s
20828}
20829
20830// SetWaitAndContinueSpecification sets the WaitAndContinueSpecification field's value.
20831func (s *SlotValueElicitationSetting) SetWaitAndContinueSpecification(v *WaitAndContinueSpecification) *SlotValueElicitationSetting {
20832	s.WaitAndContinueSpecification = v
20833	return s
20834}
20835
20836// Provides a regular expression used to validate the value of a slot.
20837type SlotValueRegexFilter struct {
20838	_ struct{} `type:"structure"`
20839
20840	// A regular expression used to validate the value of a slot.
20841	//
20842	// Use a standard regular expression. Amazon Lex supports the following characters
20843	// in the regular expression:
20844	//
20845	//    * A-Z, a-z
20846	//
20847	//    * 0-9
20848	//
20849	//    * Unicode characters ("\ u<Unicode>")
20850	//
20851	// Represent Unicode characters with four digits, for example "\u0041" or "\u005A".
20852	//
20853	// The following regular expression operators are not supported:
20854	//
20855	//    * Infinite repeaters: *, +, or {x,} with no upper bound.
20856	//
20857	//    * Wild card (.)
20858	//
20859	// Pattern is a required field
20860	Pattern *string `locationName:"pattern" min:"1" type:"string" required:"true"`
20861}
20862
20863// String returns the string representation.
20864//
20865// API parameter values that are decorated as "sensitive" in the API will not
20866// be included in the string output. The member name will be present, but the
20867// value will be replaced with "sensitive".
20868func (s SlotValueRegexFilter) String() string {
20869	return awsutil.Prettify(s)
20870}
20871
20872// GoString returns the string representation.
20873//
20874// API parameter values that are decorated as "sensitive" in the API will not
20875// be included in the string output. The member name will be present, but the
20876// value will be replaced with "sensitive".
20877func (s SlotValueRegexFilter) GoString() string {
20878	return s.String()
20879}
20880
20881// Validate inspects the fields of the type to determine if they are valid.
20882func (s *SlotValueRegexFilter) Validate() error {
20883	invalidParams := request.ErrInvalidParams{Context: "SlotValueRegexFilter"}
20884	if s.Pattern == nil {
20885		invalidParams.Add(request.NewErrParamRequired("Pattern"))
20886	}
20887	if s.Pattern != nil && len(*s.Pattern) < 1 {
20888		invalidParams.Add(request.NewErrParamMinLen("Pattern", 1))
20889	}
20890
20891	if invalidParams.Len() > 0 {
20892		return invalidParams
20893	}
20894	return nil
20895}
20896
20897// SetPattern sets the Pattern field's value.
20898func (s *SlotValueRegexFilter) SetPattern(v string) *SlotValueRegexFilter {
20899	s.Pattern = &v
20900	return s
20901}
20902
20903// Contains settings used by Amazon Lex to select a slot value.
20904type SlotValueSelectionSetting struct {
20905	_ struct{} `type:"structure"`
20906
20907	// A regular expression used to validate the value of a slot.
20908	RegexFilter *SlotValueRegexFilter `locationName:"regexFilter" type:"structure"`
20909
20910	// Determines the slot resolution strategy that Amazon Lex uses to return slot
20911	// type values. The field can be set to one of the following values:
20912	//
20913	//    * OriginalValue - Returns the value entered by the user, if the user value
20914	//    is similar to the slot value.
20915	//
20916	//    * TopResolution - If there is a resolution list for the slot, return the
20917	//    first value in the resolution list as the slot type value. If there is
20918	//    no resolution list, null is returned.
20919	//
20920	// If you don't specify the valueSelectionStrategy, the default is OriginalValue.
20921	//
20922	// ResolutionStrategy is a required field
20923	ResolutionStrategy *string `locationName:"resolutionStrategy" type:"string" required:"true" enum:"SlotValueResolutionStrategy"`
20924}
20925
20926// String returns the string representation.
20927//
20928// API parameter values that are decorated as "sensitive" in the API will not
20929// be included in the string output. The member name will be present, but the
20930// value will be replaced with "sensitive".
20931func (s SlotValueSelectionSetting) String() string {
20932	return awsutil.Prettify(s)
20933}
20934
20935// GoString returns the string representation.
20936//
20937// API parameter values that are decorated as "sensitive" in the API will not
20938// be included in the string output. The member name will be present, but the
20939// value will be replaced with "sensitive".
20940func (s SlotValueSelectionSetting) GoString() string {
20941	return s.String()
20942}
20943
20944// Validate inspects the fields of the type to determine if they are valid.
20945func (s *SlotValueSelectionSetting) Validate() error {
20946	invalidParams := request.ErrInvalidParams{Context: "SlotValueSelectionSetting"}
20947	if s.ResolutionStrategy == nil {
20948		invalidParams.Add(request.NewErrParamRequired("ResolutionStrategy"))
20949	}
20950	if s.RegexFilter != nil {
20951		if err := s.RegexFilter.Validate(); err != nil {
20952			invalidParams.AddNested("RegexFilter", err.(request.ErrInvalidParams))
20953		}
20954	}
20955
20956	if invalidParams.Len() > 0 {
20957		return invalidParams
20958	}
20959	return nil
20960}
20961
20962// SetRegexFilter sets the RegexFilter field's value.
20963func (s *SlotValueSelectionSetting) SetRegexFilter(v *SlotValueRegexFilter) *SlotValueSelectionSetting {
20964	s.RegexFilter = v
20965	return s
20966}
20967
20968// SetResolutionStrategy sets the ResolutionStrategy field's value.
20969func (s *SlotValueSelectionSetting) SetResolutionStrategy(v string) *SlotValueSelectionSetting {
20970	s.ResolutionStrategy = &v
20971	return s
20972}
20973
20974type StartImportInput struct {
20975	_ struct{} `type:"structure"`
20976
20977	// The password used to encrypt the zip archive that contains the bot or bot
20978	// locale definition. You should always encrypt the zip archive to protect it
20979	// during transit between your site and Amazon Lex.
20980	//
20981	// FilePassword is a sensitive parameter and its value will be
20982	// replaced with "sensitive" in string returned by StartImportInput's
20983	// String and GoString methods.
20984	FilePassword *string `locationName:"filePassword" min:"1" type:"string" sensitive:"true"`
20985
20986	// The unique identifier for the import. It is included in the response from
20987	// the operation.
20988	//
20989	// ImportId is a required field
20990	ImportId *string `locationName:"importId" min:"10" type:"string" required:"true"`
20991
20992	// The strategy to use when there is a name conflict between the imported resource
20993	// and an existing resource. When the merge strategy is FailOnConflict existing
20994	// resources are not overwritten and the import fails.
20995	//
20996	// MergeStrategy is a required field
20997	MergeStrategy *string `locationName:"mergeStrategy" type:"string" required:"true" enum:"MergeStrategy"`
20998
20999	// Parameters for creating the bot or bot locale.
21000	//
21001	// ResourceSpecification is a required field
21002	ResourceSpecification *ImportResourceSpecification `locationName:"resourceSpecification" type:"structure" required:"true"`
21003}
21004
21005// String returns the string representation.
21006//
21007// API parameter values that are decorated as "sensitive" in the API will not
21008// be included in the string output. The member name will be present, but the
21009// value will be replaced with "sensitive".
21010func (s StartImportInput) String() string {
21011	return awsutil.Prettify(s)
21012}
21013
21014// GoString returns the string representation.
21015//
21016// API parameter values that are decorated as "sensitive" in the API will not
21017// be included in the string output. The member name will be present, but the
21018// value will be replaced with "sensitive".
21019func (s StartImportInput) GoString() string {
21020	return s.String()
21021}
21022
21023// Validate inspects the fields of the type to determine if they are valid.
21024func (s *StartImportInput) Validate() error {
21025	invalidParams := request.ErrInvalidParams{Context: "StartImportInput"}
21026	if s.FilePassword != nil && len(*s.FilePassword) < 1 {
21027		invalidParams.Add(request.NewErrParamMinLen("FilePassword", 1))
21028	}
21029	if s.ImportId == nil {
21030		invalidParams.Add(request.NewErrParamRequired("ImportId"))
21031	}
21032	if s.ImportId != nil && len(*s.ImportId) < 10 {
21033		invalidParams.Add(request.NewErrParamMinLen("ImportId", 10))
21034	}
21035	if s.MergeStrategy == nil {
21036		invalidParams.Add(request.NewErrParamRequired("MergeStrategy"))
21037	}
21038	if s.ResourceSpecification == nil {
21039		invalidParams.Add(request.NewErrParamRequired("ResourceSpecification"))
21040	}
21041	if s.ResourceSpecification != nil {
21042		if err := s.ResourceSpecification.Validate(); err != nil {
21043			invalidParams.AddNested("ResourceSpecification", err.(request.ErrInvalidParams))
21044		}
21045	}
21046
21047	if invalidParams.Len() > 0 {
21048		return invalidParams
21049	}
21050	return nil
21051}
21052
21053// SetFilePassword sets the FilePassword field's value.
21054func (s *StartImportInput) SetFilePassword(v string) *StartImportInput {
21055	s.FilePassword = &v
21056	return s
21057}
21058
21059// SetImportId sets the ImportId field's value.
21060func (s *StartImportInput) SetImportId(v string) *StartImportInput {
21061	s.ImportId = &v
21062	return s
21063}
21064
21065// SetMergeStrategy sets the MergeStrategy field's value.
21066func (s *StartImportInput) SetMergeStrategy(v string) *StartImportInput {
21067	s.MergeStrategy = &v
21068	return s
21069}
21070
21071// SetResourceSpecification sets the ResourceSpecification field's value.
21072func (s *StartImportInput) SetResourceSpecification(v *ImportResourceSpecification) *StartImportInput {
21073	s.ResourceSpecification = v
21074	return s
21075}
21076
21077type StartImportOutput struct {
21078	_ struct{} `type:"structure"`
21079
21080	// The date and time that the import request was created.
21081	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
21082
21083	// A unique identifier for the import.
21084	ImportId *string `locationName:"importId" min:"10" type:"string"`
21085
21086	// The current status of the import. When the status is Complete the bot or
21087	// bot alias is ready to use.
21088	ImportStatus *string `locationName:"importStatus" type:"string" enum:"ImportStatus"`
21089
21090	// The strategy used when there was a name conflict between the imported resource
21091	// and an existing resource. When the merge strategy is FailOnConflict existing
21092	// resources are not overwritten and the import fails.
21093	MergeStrategy *string `locationName:"mergeStrategy" type:"string" enum:"MergeStrategy"`
21094
21095	// The parameters used when importing the bot or bot locale.
21096	ResourceSpecification *ImportResourceSpecification `locationName:"resourceSpecification" type:"structure"`
21097}
21098
21099// String returns the string representation.
21100//
21101// API parameter values that are decorated as "sensitive" in the API will not
21102// be included in the string output. The member name will be present, but the
21103// value will be replaced with "sensitive".
21104func (s StartImportOutput) String() string {
21105	return awsutil.Prettify(s)
21106}
21107
21108// GoString returns the string representation.
21109//
21110// API parameter values that are decorated as "sensitive" in the API will not
21111// be included in the string output. The member name will be present, but the
21112// value will be replaced with "sensitive".
21113func (s StartImportOutput) GoString() string {
21114	return s.String()
21115}
21116
21117// SetCreationDateTime sets the CreationDateTime field's value.
21118func (s *StartImportOutput) SetCreationDateTime(v time.Time) *StartImportOutput {
21119	s.CreationDateTime = &v
21120	return s
21121}
21122
21123// SetImportId sets the ImportId field's value.
21124func (s *StartImportOutput) SetImportId(v string) *StartImportOutput {
21125	s.ImportId = &v
21126	return s
21127}
21128
21129// SetImportStatus sets the ImportStatus field's value.
21130func (s *StartImportOutput) SetImportStatus(v string) *StartImportOutput {
21131	s.ImportStatus = &v
21132	return s
21133}
21134
21135// SetMergeStrategy sets the MergeStrategy field's value.
21136func (s *StartImportOutput) SetMergeStrategy(v string) *StartImportOutput {
21137	s.MergeStrategy = &v
21138	return s
21139}
21140
21141// SetResourceSpecification sets the ResourceSpecification field's value.
21142func (s *StartImportOutput) SetResourceSpecification(v *ImportResourceSpecification) *StartImportOutput {
21143	s.ResourceSpecification = v
21144	return s
21145}
21146
21147// Defines the messages that Amazon Lex sends to a user to remind them that
21148// the bot is waiting for a response.
21149type StillWaitingResponseSpecification struct {
21150	_ struct{} `type:"structure"`
21151
21152	// Indicates that the user can interrupt the response by speaking while the
21153	// message is being played.
21154	AllowInterrupt *bool `locationName:"allowInterrupt" type:"boolean"`
21155
21156	// How often a message should be sent to the user. Minimum of 1 second, maximum
21157	// of 5 minutes.
21158	//
21159	// FrequencyInSeconds is a required field
21160	FrequencyInSeconds *int64 `locationName:"frequencyInSeconds" min:"1" type:"integer" required:"true"`
21161
21162	// One or more message groups, each containing one or more messages, that define
21163	// the prompts that Amazon Lex sends to the user.
21164	//
21165	// MessageGroups is a required field
21166	MessageGroups []*MessageGroup `locationName:"messageGroups" min:"1" type:"list" required:"true"`
21167
21168	// If Amazon Lex waits longer than this length of time for a response, it will
21169	// stop sending messages.
21170	//
21171	// TimeoutInSeconds is a required field
21172	TimeoutInSeconds *int64 `locationName:"timeoutInSeconds" min:"1" type:"integer" required:"true"`
21173}
21174
21175// String returns the string representation.
21176//
21177// API parameter values that are decorated as "sensitive" in the API will not
21178// be included in the string output. The member name will be present, but the
21179// value will be replaced with "sensitive".
21180func (s StillWaitingResponseSpecification) String() string {
21181	return awsutil.Prettify(s)
21182}
21183
21184// GoString returns the string representation.
21185//
21186// API parameter values that are decorated as "sensitive" in the API will not
21187// be included in the string output. The member name will be present, but the
21188// value will be replaced with "sensitive".
21189func (s StillWaitingResponseSpecification) GoString() string {
21190	return s.String()
21191}
21192
21193// Validate inspects the fields of the type to determine if they are valid.
21194func (s *StillWaitingResponseSpecification) Validate() error {
21195	invalidParams := request.ErrInvalidParams{Context: "StillWaitingResponseSpecification"}
21196	if s.FrequencyInSeconds == nil {
21197		invalidParams.Add(request.NewErrParamRequired("FrequencyInSeconds"))
21198	}
21199	if s.FrequencyInSeconds != nil && *s.FrequencyInSeconds < 1 {
21200		invalidParams.Add(request.NewErrParamMinValue("FrequencyInSeconds", 1))
21201	}
21202	if s.MessageGroups == nil {
21203		invalidParams.Add(request.NewErrParamRequired("MessageGroups"))
21204	}
21205	if s.MessageGroups != nil && len(s.MessageGroups) < 1 {
21206		invalidParams.Add(request.NewErrParamMinLen("MessageGroups", 1))
21207	}
21208	if s.TimeoutInSeconds == nil {
21209		invalidParams.Add(request.NewErrParamRequired("TimeoutInSeconds"))
21210	}
21211	if s.TimeoutInSeconds != nil && *s.TimeoutInSeconds < 1 {
21212		invalidParams.Add(request.NewErrParamMinValue("TimeoutInSeconds", 1))
21213	}
21214	if s.MessageGroups != nil {
21215		for i, v := range s.MessageGroups {
21216			if v == nil {
21217				continue
21218			}
21219			if err := v.Validate(); err != nil {
21220				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MessageGroups", i), err.(request.ErrInvalidParams))
21221			}
21222		}
21223	}
21224
21225	if invalidParams.Len() > 0 {
21226		return invalidParams
21227	}
21228	return nil
21229}
21230
21231// SetAllowInterrupt sets the AllowInterrupt field's value.
21232func (s *StillWaitingResponseSpecification) SetAllowInterrupt(v bool) *StillWaitingResponseSpecification {
21233	s.AllowInterrupt = &v
21234	return s
21235}
21236
21237// SetFrequencyInSeconds sets the FrequencyInSeconds field's value.
21238func (s *StillWaitingResponseSpecification) SetFrequencyInSeconds(v int64) *StillWaitingResponseSpecification {
21239	s.FrequencyInSeconds = &v
21240	return s
21241}
21242
21243// SetMessageGroups sets the MessageGroups field's value.
21244func (s *StillWaitingResponseSpecification) SetMessageGroups(v []*MessageGroup) *StillWaitingResponseSpecification {
21245	s.MessageGroups = v
21246	return s
21247}
21248
21249// SetTimeoutInSeconds sets the TimeoutInSeconds field's value.
21250func (s *StillWaitingResponseSpecification) SetTimeoutInSeconds(v int64) *StillWaitingResponseSpecification {
21251	s.TimeoutInSeconds = &v
21252	return s
21253}
21254
21255type TagResourceInput struct {
21256	_ struct{} `type:"structure"`
21257
21258	// The Amazon Resource Name (ARN) of the bot, bot alias, or bot channel to tag.
21259	//
21260	// ResourceARN is a required field
21261	ResourceARN *string `location:"uri" locationName:"resourceARN" min:"1" type:"string" required:"true"`
21262
21263	// A list of tag keys to add to the resource. If a tag key already exists, the
21264	// existing value is replaced with the new value.
21265	//
21266	// Tags is a required field
21267	Tags map[string]*string `locationName:"tags" type:"map" required:"true"`
21268}
21269
21270// String returns the string representation.
21271//
21272// API parameter values that are decorated as "sensitive" in the API will not
21273// be included in the string output. The member name will be present, but the
21274// value will be replaced with "sensitive".
21275func (s TagResourceInput) String() string {
21276	return awsutil.Prettify(s)
21277}
21278
21279// GoString returns the string representation.
21280//
21281// API parameter values that are decorated as "sensitive" in the API will not
21282// be included in the string output. The member name will be present, but the
21283// value will be replaced with "sensitive".
21284func (s TagResourceInput) GoString() string {
21285	return s.String()
21286}
21287
21288// Validate inspects the fields of the type to determine if they are valid.
21289func (s *TagResourceInput) Validate() error {
21290	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
21291	if s.ResourceARN == nil {
21292		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
21293	}
21294	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
21295		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
21296	}
21297	if s.Tags == nil {
21298		invalidParams.Add(request.NewErrParamRequired("Tags"))
21299	}
21300
21301	if invalidParams.Len() > 0 {
21302		return invalidParams
21303	}
21304	return nil
21305}
21306
21307// SetResourceARN sets the ResourceARN field's value.
21308func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
21309	s.ResourceARN = &v
21310	return s
21311}
21312
21313// SetTags sets the Tags field's value.
21314func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
21315	s.Tags = v
21316	return s
21317}
21318
21319type TagResourceOutput struct {
21320	_ struct{} `type:"structure"`
21321}
21322
21323// String returns the string representation.
21324//
21325// API parameter values that are decorated as "sensitive" in the API will not
21326// be included in the string output. The member name will be present, but the
21327// value will be replaced with "sensitive".
21328func (s TagResourceOutput) String() string {
21329	return awsutil.Prettify(s)
21330}
21331
21332// GoString returns the string representation.
21333//
21334// API parameter values that are decorated as "sensitive" in the API will not
21335// be included in the string output. The member name will be present, but the
21336// value will be replaced with "sensitive".
21337func (s TagResourceOutput) GoString() string {
21338	return s.String()
21339}
21340
21341// Defines the Amazon CloudWatch Logs destination log group for conversation
21342// text logs.
21343type TextLogDestination struct {
21344	_ struct{} `type:"structure"`
21345
21346	// Defines the Amazon CloudWatch Logs log group where text and metadata logs
21347	// are delivered.
21348	//
21349	// CloudWatch is a required field
21350	CloudWatch *CloudWatchLogGroupLogDestination `locationName:"cloudWatch" type:"structure" required:"true"`
21351}
21352
21353// String returns the string representation.
21354//
21355// API parameter values that are decorated as "sensitive" in the API will not
21356// be included in the string output. The member name will be present, but the
21357// value will be replaced with "sensitive".
21358func (s TextLogDestination) String() string {
21359	return awsutil.Prettify(s)
21360}
21361
21362// GoString returns the string representation.
21363//
21364// API parameter values that are decorated as "sensitive" in the API will not
21365// be included in the string output. The member name will be present, but the
21366// value will be replaced with "sensitive".
21367func (s TextLogDestination) GoString() string {
21368	return s.String()
21369}
21370
21371// Validate inspects the fields of the type to determine if they are valid.
21372func (s *TextLogDestination) Validate() error {
21373	invalidParams := request.ErrInvalidParams{Context: "TextLogDestination"}
21374	if s.CloudWatch == nil {
21375		invalidParams.Add(request.NewErrParamRequired("CloudWatch"))
21376	}
21377	if s.CloudWatch != nil {
21378		if err := s.CloudWatch.Validate(); err != nil {
21379			invalidParams.AddNested("CloudWatch", err.(request.ErrInvalidParams))
21380		}
21381	}
21382
21383	if invalidParams.Len() > 0 {
21384		return invalidParams
21385	}
21386	return nil
21387}
21388
21389// SetCloudWatch sets the CloudWatch field's value.
21390func (s *TextLogDestination) SetCloudWatch(v *CloudWatchLogGroupLogDestination) *TextLogDestination {
21391	s.CloudWatch = v
21392	return s
21393}
21394
21395// Defines settings to enable text conversation logs.
21396type TextLogSetting struct {
21397	_ struct{} `type:"structure"`
21398
21399	// Defines the Amazon CloudWatch Logs destination log group for conversation
21400	// text logs.
21401	//
21402	// Destination is a required field
21403	Destination *TextLogDestination `locationName:"destination" type:"structure" required:"true"`
21404
21405	// Determines whether conversation logs should be stored for an alias.
21406	//
21407	// Enabled is a required field
21408	Enabled *bool `locationName:"enabled" type:"boolean" required:"true"`
21409}
21410
21411// String returns the string representation.
21412//
21413// API parameter values that are decorated as "sensitive" in the API will not
21414// be included in the string output. The member name will be present, but the
21415// value will be replaced with "sensitive".
21416func (s TextLogSetting) String() string {
21417	return awsutil.Prettify(s)
21418}
21419
21420// GoString returns the string representation.
21421//
21422// API parameter values that are decorated as "sensitive" in the API will not
21423// be included in the string output. The member name will be present, but the
21424// value will be replaced with "sensitive".
21425func (s TextLogSetting) GoString() string {
21426	return s.String()
21427}
21428
21429// Validate inspects the fields of the type to determine if they are valid.
21430func (s *TextLogSetting) Validate() error {
21431	invalidParams := request.ErrInvalidParams{Context: "TextLogSetting"}
21432	if s.Destination == nil {
21433		invalidParams.Add(request.NewErrParamRequired("Destination"))
21434	}
21435	if s.Enabled == nil {
21436		invalidParams.Add(request.NewErrParamRequired("Enabled"))
21437	}
21438	if s.Destination != nil {
21439		if err := s.Destination.Validate(); err != nil {
21440			invalidParams.AddNested("Destination", err.(request.ErrInvalidParams))
21441		}
21442	}
21443
21444	if invalidParams.Len() > 0 {
21445		return invalidParams
21446	}
21447	return nil
21448}
21449
21450// SetDestination sets the Destination field's value.
21451func (s *TextLogSetting) SetDestination(v *TextLogDestination) *TextLogSetting {
21452	s.Destination = v
21453	return s
21454}
21455
21456// SetEnabled sets the Enabled field's value.
21457func (s *TextLogSetting) SetEnabled(v bool) *TextLogSetting {
21458	s.Enabled = &v
21459	return s
21460}
21461
21462// Your request rate is too high. Reduce the frequency of requests.
21463type ThrottlingException struct {
21464	_            struct{}                  `type:"structure"`
21465	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
21466
21467	Message_ *string `locationName:"message" type:"string"`
21468
21469	RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"`
21470}
21471
21472// String returns the string representation.
21473//
21474// API parameter values that are decorated as "sensitive" in the API will not
21475// be included in the string output. The member name will be present, but the
21476// value will be replaced with "sensitive".
21477func (s ThrottlingException) String() string {
21478	return awsutil.Prettify(s)
21479}
21480
21481// GoString returns the string representation.
21482//
21483// API parameter values that are decorated as "sensitive" in the API will not
21484// be included in the string output. The member name will be present, but the
21485// value will be replaced with "sensitive".
21486func (s ThrottlingException) GoString() string {
21487	return s.String()
21488}
21489
21490func newErrorThrottlingException(v protocol.ResponseMetadata) error {
21491	return &ThrottlingException{
21492		RespMetadata: v,
21493	}
21494}
21495
21496// Code returns the exception type name.
21497func (s *ThrottlingException) Code() string {
21498	return "ThrottlingException"
21499}
21500
21501// Message returns the exception's message.
21502func (s *ThrottlingException) Message() string {
21503	if s.Message_ != nil {
21504		return *s.Message_
21505	}
21506	return ""
21507}
21508
21509// OrigErr always returns nil, satisfies awserr.Error interface.
21510func (s *ThrottlingException) OrigErr() error {
21511	return nil
21512}
21513
21514func (s *ThrottlingException) Error() string {
21515	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
21516}
21517
21518// Status code returns the HTTP status code for the request's response error.
21519func (s *ThrottlingException) StatusCode() int {
21520	return s.RespMetadata.StatusCode
21521}
21522
21523// RequestID returns the service's response RequestID for request.
21524func (s *ThrottlingException) RequestID() string {
21525	return s.RespMetadata.RequestID
21526}
21527
21528type UntagResourceInput struct {
21529	_ struct{} `type:"structure" nopayload:"true"`
21530
21531	// The Amazon Resource Name (ARN) of the resource to remove the tags from.
21532	//
21533	// ResourceARN is a required field
21534	ResourceARN *string `location:"uri" locationName:"resourceARN" min:"1" type:"string" required:"true"`
21535
21536	// A list of tag keys to remove from the resource. If a tag key does not exist
21537	// on the resource, it is ignored.
21538	//
21539	// TagKeys is a required field
21540	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
21541}
21542
21543// String returns the string representation.
21544//
21545// API parameter values that are decorated as "sensitive" in the API will not
21546// be included in the string output. The member name will be present, but the
21547// value will be replaced with "sensitive".
21548func (s UntagResourceInput) String() string {
21549	return awsutil.Prettify(s)
21550}
21551
21552// GoString returns the string representation.
21553//
21554// API parameter values that are decorated as "sensitive" in the API will not
21555// be included in the string output. The member name will be present, but the
21556// value will be replaced with "sensitive".
21557func (s UntagResourceInput) GoString() string {
21558	return s.String()
21559}
21560
21561// Validate inspects the fields of the type to determine if they are valid.
21562func (s *UntagResourceInput) Validate() error {
21563	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
21564	if s.ResourceARN == nil {
21565		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
21566	}
21567	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
21568		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
21569	}
21570	if s.TagKeys == nil {
21571		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
21572	}
21573
21574	if invalidParams.Len() > 0 {
21575		return invalidParams
21576	}
21577	return nil
21578}
21579
21580// SetResourceARN sets the ResourceARN field's value.
21581func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
21582	s.ResourceARN = &v
21583	return s
21584}
21585
21586// SetTagKeys sets the TagKeys field's value.
21587func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
21588	s.TagKeys = v
21589	return s
21590}
21591
21592type UntagResourceOutput struct {
21593	_ struct{} `type:"structure"`
21594}
21595
21596// String returns the string representation.
21597//
21598// API parameter values that are decorated as "sensitive" in the API will not
21599// be included in the string output. The member name will be present, but the
21600// value will be replaced with "sensitive".
21601func (s UntagResourceOutput) String() string {
21602	return awsutil.Prettify(s)
21603}
21604
21605// GoString returns the string representation.
21606//
21607// API parameter values that are decorated as "sensitive" in the API will not
21608// be included in the string output. The member name will be present, but the
21609// value will be replaced with "sensitive".
21610func (s UntagResourceOutput) GoString() string {
21611	return s.String()
21612}
21613
21614type UpdateBotAliasInput struct {
21615	_ struct{} `type:"structure"`
21616
21617	// The unique identifier of the bot alias.
21618	//
21619	// BotAliasId is a required field
21620	BotAliasId *string `location:"uri" locationName:"botAliasId" min:"10" type:"string" required:"true"`
21621
21622	// The new Lambda functions to use in each locale for the bot alias.
21623	BotAliasLocaleSettings map[string]*BotAliasLocaleSettings `locationName:"botAliasLocaleSettings" min:"1" type:"map"`
21624
21625	// The new name to assign to the bot alias.
21626	//
21627	// BotAliasName is a required field
21628	BotAliasName *string `locationName:"botAliasName" min:"1" type:"string" required:"true"`
21629
21630	// The identifier of the bot with the updated alias.
21631	//
21632	// BotId is a required field
21633	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
21634
21635	// The new bot version to assign to the bot alias.
21636	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
21637
21638	// The new settings for storing conversation logs in Amazon CloudWatch Logs
21639	// and Amazon S3 buckets.
21640	ConversationLogSettings *ConversationLogSettings `locationName:"conversationLogSettings" type:"structure"`
21641
21642	// The new description to assign to the bot alias.
21643	Description *string `locationName:"description" type:"string"`
21644
21645	// Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment
21646	// of user utterances.
21647	SentimentAnalysisSettings *SentimentAnalysisSettings `locationName:"sentimentAnalysisSettings" type:"structure"`
21648}
21649
21650// String returns the string representation.
21651//
21652// API parameter values that are decorated as "sensitive" in the API will not
21653// be included in the string output. The member name will be present, but the
21654// value will be replaced with "sensitive".
21655func (s UpdateBotAliasInput) String() string {
21656	return awsutil.Prettify(s)
21657}
21658
21659// GoString returns the string representation.
21660//
21661// API parameter values that are decorated as "sensitive" in the API will not
21662// be included in the string output. The member name will be present, but the
21663// value will be replaced with "sensitive".
21664func (s UpdateBotAliasInput) GoString() string {
21665	return s.String()
21666}
21667
21668// Validate inspects the fields of the type to determine if they are valid.
21669func (s *UpdateBotAliasInput) Validate() error {
21670	invalidParams := request.ErrInvalidParams{Context: "UpdateBotAliasInput"}
21671	if s.BotAliasId == nil {
21672		invalidParams.Add(request.NewErrParamRequired("BotAliasId"))
21673	}
21674	if s.BotAliasId != nil && len(*s.BotAliasId) < 10 {
21675		invalidParams.Add(request.NewErrParamMinLen("BotAliasId", 10))
21676	}
21677	if s.BotAliasLocaleSettings != nil && len(s.BotAliasLocaleSettings) < 1 {
21678		invalidParams.Add(request.NewErrParamMinLen("BotAliasLocaleSettings", 1))
21679	}
21680	if s.BotAliasName == nil {
21681		invalidParams.Add(request.NewErrParamRequired("BotAliasName"))
21682	}
21683	if s.BotAliasName != nil && len(*s.BotAliasName) < 1 {
21684		invalidParams.Add(request.NewErrParamMinLen("BotAliasName", 1))
21685	}
21686	if s.BotId == nil {
21687		invalidParams.Add(request.NewErrParamRequired("BotId"))
21688	}
21689	if s.BotId != nil && len(*s.BotId) < 10 {
21690		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
21691	}
21692	if s.BotVersion != nil && len(*s.BotVersion) < 1 {
21693		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 1))
21694	}
21695	if s.BotAliasLocaleSettings != nil {
21696		for i, v := range s.BotAliasLocaleSettings {
21697			if v == nil {
21698				continue
21699			}
21700			if err := v.Validate(); err != nil {
21701				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BotAliasLocaleSettings", i), err.(request.ErrInvalidParams))
21702			}
21703		}
21704	}
21705	if s.ConversationLogSettings != nil {
21706		if err := s.ConversationLogSettings.Validate(); err != nil {
21707			invalidParams.AddNested("ConversationLogSettings", err.(request.ErrInvalidParams))
21708		}
21709	}
21710	if s.SentimentAnalysisSettings != nil {
21711		if err := s.SentimentAnalysisSettings.Validate(); err != nil {
21712			invalidParams.AddNested("SentimentAnalysisSettings", err.(request.ErrInvalidParams))
21713		}
21714	}
21715
21716	if invalidParams.Len() > 0 {
21717		return invalidParams
21718	}
21719	return nil
21720}
21721
21722// SetBotAliasId sets the BotAliasId field's value.
21723func (s *UpdateBotAliasInput) SetBotAliasId(v string) *UpdateBotAliasInput {
21724	s.BotAliasId = &v
21725	return s
21726}
21727
21728// SetBotAliasLocaleSettings sets the BotAliasLocaleSettings field's value.
21729func (s *UpdateBotAliasInput) SetBotAliasLocaleSettings(v map[string]*BotAliasLocaleSettings) *UpdateBotAliasInput {
21730	s.BotAliasLocaleSettings = v
21731	return s
21732}
21733
21734// SetBotAliasName sets the BotAliasName field's value.
21735func (s *UpdateBotAliasInput) SetBotAliasName(v string) *UpdateBotAliasInput {
21736	s.BotAliasName = &v
21737	return s
21738}
21739
21740// SetBotId sets the BotId field's value.
21741func (s *UpdateBotAliasInput) SetBotId(v string) *UpdateBotAliasInput {
21742	s.BotId = &v
21743	return s
21744}
21745
21746// SetBotVersion sets the BotVersion field's value.
21747func (s *UpdateBotAliasInput) SetBotVersion(v string) *UpdateBotAliasInput {
21748	s.BotVersion = &v
21749	return s
21750}
21751
21752// SetConversationLogSettings sets the ConversationLogSettings field's value.
21753func (s *UpdateBotAliasInput) SetConversationLogSettings(v *ConversationLogSettings) *UpdateBotAliasInput {
21754	s.ConversationLogSettings = v
21755	return s
21756}
21757
21758// SetDescription sets the Description field's value.
21759func (s *UpdateBotAliasInput) SetDescription(v string) *UpdateBotAliasInput {
21760	s.Description = &v
21761	return s
21762}
21763
21764// SetSentimentAnalysisSettings sets the SentimentAnalysisSettings field's value.
21765func (s *UpdateBotAliasInput) SetSentimentAnalysisSettings(v *SentimentAnalysisSettings) *UpdateBotAliasInput {
21766	s.SentimentAnalysisSettings = v
21767	return s
21768}
21769
21770type UpdateBotAliasOutput struct {
21771	_ struct{} `type:"structure"`
21772
21773	// The identifier of the updated bot alias.
21774	BotAliasId *string `locationName:"botAliasId" min:"10" type:"string"`
21775
21776	// The updated Lambda functions to use in each locale for the bot alias.
21777	BotAliasLocaleSettings map[string]*BotAliasLocaleSettings `locationName:"botAliasLocaleSettings" min:"1" type:"map"`
21778
21779	// The updated name of the bot alias.
21780	BotAliasName *string `locationName:"botAliasName" min:"1" type:"string"`
21781
21782	// The current status of the bot alias. When the status is Available the alias
21783	// is ready for use.
21784	BotAliasStatus *string `locationName:"botAliasStatus" type:"string" enum:"BotAliasStatus"`
21785
21786	// The identifier of the bot with the updated alias.
21787	BotId *string `locationName:"botId" min:"10" type:"string"`
21788
21789	// The updated version of the bot that the alias points to.
21790	BotVersion *string `locationName:"botVersion" min:"1" type:"string"`
21791
21792	// The updated settings for storing conversation logs in Amazon CloudWatch Logs
21793	// and Amazon S3 buckets.
21794	ConversationLogSettings *ConversationLogSettings `locationName:"conversationLogSettings" type:"structure"`
21795
21796	// A timestamp of the date and time that the bot was created.
21797	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
21798
21799	// The updated description of the bot alias.
21800	Description *string `locationName:"description" type:"string"`
21801
21802	// A timestamp of the date and time that the bot was last updated.
21803	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
21804
21805	// Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment
21806	// of user utterances.
21807	SentimentAnalysisSettings *SentimentAnalysisSettings `locationName:"sentimentAnalysisSettings" type:"structure"`
21808}
21809
21810// String returns the string representation.
21811//
21812// API parameter values that are decorated as "sensitive" in the API will not
21813// be included in the string output. The member name will be present, but the
21814// value will be replaced with "sensitive".
21815func (s UpdateBotAliasOutput) String() string {
21816	return awsutil.Prettify(s)
21817}
21818
21819// GoString returns the string representation.
21820//
21821// API parameter values that are decorated as "sensitive" in the API will not
21822// be included in the string output. The member name will be present, but the
21823// value will be replaced with "sensitive".
21824func (s UpdateBotAliasOutput) GoString() string {
21825	return s.String()
21826}
21827
21828// SetBotAliasId sets the BotAliasId field's value.
21829func (s *UpdateBotAliasOutput) SetBotAliasId(v string) *UpdateBotAliasOutput {
21830	s.BotAliasId = &v
21831	return s
21832}
21833
21834// SetBotAliasLocaleSettings sets the BotAliasLocaleSettings field's value.
21835func (s *UpdateBotAliasOutput) SetBotAliasLocaleSettings(v map[string]*BotAliasLocaleSettings) *UpdateBotAliasOutput {
21836	s.BotAliasLocaleSettings = v
21837	return s
21838}
21839
21840// SetBotAliasName sets the BotAliasName field's value.
21841func (s *UpdateBotAliasOutput) SetBotAliasName(v string) *UpdateBotAliasOutput {
21842	s.BotAliasName = &v
21843	return s
21844}
21845
21846// SetBotAliasStatus sets the BotAliasStatus field's value.
21847func (s *UpdateBotAliasOutput) SetBotAliasStatus(v string) *UpdateBotAliasOutput {
21848	s.BotAliasStatus = &v
21849	return s
21850}
21851
21852// SetBotId sets the BotId field's value.
21853func (s *UpdateBotAliasOutput) SetBotId(v string) *UpdateBotAliasOutput {
21854	s.BotId = &v
21855	return s
21856}
21857
21858// SetBotVersion sets the BotVersion field's value.
21859func (s *UpdateBotAliasOutput) SetBotVersion(v string) *UpdateBotAliasOutput {
21860	s.BotVersion = &v
21861	return s
21862}
21863
21864// SetConversationLogSettings sets the ConversationLogSettings field's value.
21865func (s *UpdateBotAliasOutput) SetConversationLogSettings(v *ConversationLogSettings) *UpdateBotAliasOutput {
21866	s.ConversationLogSettings = v
21867	return s
21868}
21869
21870// SetCreationDateTime sets the CreationDateTime field's value.
21871func (s *UpdateBotAliasOutput) SetCreationDateTime(v time.Time) *UpdateBotAliasOutput {
21872	s.CreationDateTime = &v
21873	return s
21874}
21875
21876// SetDescription sets the Description field's value.
21877func (s *UpdateBotAliasOutput) SetDescription(v string) *UpdateBotAliasOutput {
21878	s.Description = &v
21879	return s
21880}
21881
21882// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
21883func (s *UpdateBotAliasOutput) SetLastUpdatedDateTime(v time.Time) *UpdateBotAliasOutput {
21884	s.LastUpdatedDateTime = &v
21885	return s
21886}
21887
21888// SetSentimentAnalysisSettings sets the SentimentAnalysisSettings field's value.
21889func (s *UpdateBotAliasOutput) SetSentimentAnalysisSettings(v *SentimentAnalysisSettings) *UpdateBotAliasOutput {
21890	s.SentimentAnalysisSettings = v
21891	return s
21892}
21893
21894type UpdateBotInput struct {
21895	_ struct{} `type:"structure"`
21896
21897	// The unique identifier of the bot to update. This identifier is returned by
21898	// the CreateBot operation.
21899	//
21900	// BotId is a required field
21901	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
21902
21903	// The new name of the bot. The name must be unique in the account that creates
21904	// the bot.
21905	//
21906	// BotName is a required field
21907	BotName *string `locationName:"botName" min:"1" type:"string" required:"true"`
21908
21909	// Provides information on additional privacy protections Amazon Lex should
21910	// use with the bot's data.
21911	//
21912	// DataPrivacy is a required field
21913	DataPrivacy *DataPrivacy `locationName:"dataPrivacy" type:"structure" required:"true"`
21914
21915	// A description of the bot.
21916	Description *string `locationName:"description" type:"string"`
21917
21918	// The time, in seconds, that Amazon Lex should keep information about a user's
21919	// conversation with the bot.
21920	//
21921	// A user interaction remains active for the amount of time specified. If no
21922	// conversation occurs during this time, the session expires and Amazon Lex
21923	// deletes any data provided before the timeout.
21924	//
21925	// You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.
21926	//
21927	// IdleSessionTTLInSeconds is a required field
21928	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer" required:"true"`
21929
21930	// The Amazon Resource Name (ARN) of an IAM role that has permissions to access
21931	// the bot.
21932	//
21933	// RoleArn is a required field
21934	RoleArn *string `locationName:"roleArn" min:"32" type:"string" required:"true"`
21935}
21936
21937// String returns the string representation.
21938//
21939// API parameter values that are decorated as "sensitive" in the API will not
21940// be included in the string output. The member name will be present, but the
21941// value will be replaced with "sensitive".
21942func (s UpdateBotInput) String() string {
21943	return awsutil.Prettify(s)
21944}
21945
21946// GoString returns the string representation.
21947//
21948// API parameter values that are decorated as "sensitive" in the API will not
21949// be included in the string output. The member name will be present, but the
21950// value will be replaced with "sensitive".
21951func (s UpdateBotInput) GoString() string {
21952	return s.String()
21953}
21954
21955// Validate inspects the fields of the type to determine if they are valid.
21956func (s *UpdateBotInput) Validate() error {
21957	invalidParams := request.ErrInvalidParams{Context: "UpdateBotInput"}
21958	if s.BotId == nil {
21959		invalidParams.Add(request.NewErrParamRequired("BotId"))
21960	}
21961	if s.BotId != nil && len(*s.BotId) < 10 {
21962		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
21963	}
21964	if s.BotName == nil {
21965		invalidParams.Add(request.NewErrParamRequired("BotName"))
21966	}
21967	if s.BotName != nil && len(*s.BotName) < 1 {
21968		invalidParams.Add(request.NewErrParamMinLen("BotName", 1))
21969	}
21970	if s.DataPrivacy == nil {
21971		invalidParams.Add(request.NewErrParamRequired("DataPrivacy"))
21972	}
21973	if s.IdleSessionTTLInSeconds == nil {
21974		invalidParams.Add(request.NewErrParamRequired("IdleSessionTTLInSeconds"))
21975	}
21976	if s.IdleSessionTTLInSeconds != nil && *s.IdleSessionTTLInSeconds < 60 {
21977		invalidParams.Add(request.NewErrParamMinValue("IdleSessionTTLInSeconds", 60))
21978	}
21979	if s.RoleArn == nil {
21980		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
21981	}
21982	if s.RoleArn != nil && len(*s.RoleArn) < 32 {
21983		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 32))
21984	}
21985	if s.DataPrivacy != nil {
21986		if err := s.DataPrivacy.Validate(); err != nil {
21987			invalidParams.AddNested("DataPrivacy", err.(request.ErrInvalidParams))
21988		}
21989	}
21990
21991	if invalidParams.Len() > 0 {
21992		return invalidParams
21993	}
21994	return nil
21995}
21996
21997// SetBotId sets the BotId field's value.
21998func (s *UpdateBotInput) SetBotId(v string) *UpdateBotInput {
21999	s.BotId = &v
22000	return s
22001}
22002
22003// SetBotName sets the BotName field's value.
22004func (s *UpdateBotInput) SetBotName(v string) *UpdateBotInput {
22005	s.BotName = &v
22006	return s
22007}
22008
22009// SetDataPrivacy sets the DataPrivacy field's value.
22010func (s *UpdateBotInput) SetDataPrivacy(v *DataPrivacy) *UpdateBotInput {
22011	s.DataPrivacy = v
22012	return s
22013}
22014
22015// SetDescription sets the Description field's value.
22016func (s *UpdateBotInput) SetDescription(v string) *UpdateBotInput {
22017	s.Description = &v
22018	return s
22019}
22020
22021// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
22022func (s *UpdateBotInput) SetIdleSessionTTLInSeconds(v int64) *UpdateBotInput {
22023	s.IdleSessionTTLInSeconds = &v
22024	return s
22025}
22026
22027// SetRoleArn sets the RoleArn field's value.
22028func (s *UpdateBotInput) SetRoleArn(v string) *UpdateBotInput {
22029	s.RoleArn = &v
22030	return s
22031}
22032
22033type UpdateBotLocaleInput struct {
22034	_ struct{} `type:"structure"`
22035
22036	// The unique identifier of the bot that contains the locale.
22037	//
22038	// BotId is a required field
22039	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
22040
22041	// The version of the bot that contains the locale to be updated. The version
22042	// can only be the DRAFT version.
22043	//
22044	// BotVersion is a required field
22045	BotVersion *string `location:"uri" locationName:"botVersion" min:"5" type:"string" required:"true"`
22046
22047	// The new description of the locale.
22048	Description *string `locationName:"description" type:"string"`
22049
22050	// The identifier of the language and locale to update. The string must match
22051	// one of the supported locales. For more information, see Supported languages
22052	// (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
22053	//
22054	// LocaleId is a required field
22055	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
22056
22057	// The new confidence threshold where Amazon Lex inserts the AMAZON.FallbackIntent
22058	// and AMAZON.KendraSearchIntent intents in the list of possible intents for
22059	// an utterance.
22060	//
22061	// NluIntentConfidenceThreshold is a required field
22062	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double" required:"true"`
22063
22064	// The new Amazon Polly voice Amazon Lex should use for voice interaction with
22065	// the user.
22066	VoiceSettings *VoiceSettings `locationName:"voiceSettings" type:"structure"`
22067}
22068
22069// String returns the string representation.
22070//
22071// API parameter values that are decorated as "sensitive" in the API will not
22072// be included in the string output. The member name will be present, but the
22073// value will be replaced with "sensitive".
22074func (s UpdateBotLocaleInput) String() string {
22075	return awsutil.Prettify(s)
22076}
22077
22078// GoString returns the string representation.
22079//
22080// API parameter values that are decorated as "sensitive" in the API will not
22081// be included in the string output. The member name will be present, but the
22082// value will be replaced with "sensitive".
22083func (s UpdateBotLocaleInput) GoString() string {
22084	return s.String()
22085}
22086
22087// Validate inspects the fields of the type to determine if they are valid.
22088func (s *UpdateBotLocaleInput) Validate() error {
22089	invalidParams := request.ErrInvalidParams{Context: "UpdateBotLocaleInput"}
22090	if s.BotId == nil {
22091		invalidParams.Add(request.NewErrParamRequired("BotId"))
22092	}
22093	if s.BotId != nil && len(*s.BotId) < 10 {
22094		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
22095	}
22096	if s.BotVersion == nil {
22097		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
22098	}
22099	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
22100		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
22101	}
22102	if s.LocaleId == nil {
22103		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
22104	}
22105	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
22106		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
22107	}
22108	if s.NluIntentConfidenceThreshold == nil {
22109		invalidParams.Add(request.NewErrParamRequired("NluIntentConfidenceThreshold"))
22110	}
22111	if s.VoiceSettings != nil {
22112		if err := s.VoiceSettings.Validate(); err != nil {
22113			invalidParams.AddNested("VoiceSettings", err.(request.ErrInvalidParams))
22114		}
22115	}
22116
22117	if invalidParams.Len() > 0 {
22118		return invalidParams
22119	}
22120	return nil
22121}
22122
22123// SetBotId sets the BotId field's value.
22124func (s *UpdateBotLocaleInput) SetBotId(v string) *UpdateBotLocaleInput {
22125	s.BotId = &v
22126	return s
22127}
22128
22129// SetBotVersion sets the BotVersion field's value.
22130func (s *UpdateBotLocaleInput) SetBotVersion(v string) *UpdateBotLocaleInput {
22131	s.BotVersion = &v
22132	return s
22133}
22134
22135// SetDescription sets the Description field's value.
22136func (s *UpdateBotLocaleInput) SetDescription(v string) *UpdateBotLocaleInput {
22137	s.Description = &v
22138	return s
22139}
22140
22141// SetLocaleId sets the LocaleId field's value.
22142func (s *UpdateBotLocaleInput) SetLocaleId(v string) *UpdateBotLocaleInput {
22143	s.LocaleId = &v
22144	return s
22145}
22146
22147// SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
22148func (s *UpdateBotLocaleInput) SetNluIntentConfidenceThreshold(v float64) *UpdateBotLocaleInput {
22149	s.NluIntentConfidenceThreshold = &v
22150	return s
22151}
22152
22153// SetVoiceSettings sets the VoiceSettings field's value.
22154func (s *UpdateBotLocaleInput) SetVoiceSettings(v *VoiceSettings) *UpdateBotLocaleInput {
22155	s.VoiceSettings = v
22156	return s
22157}
22158
22159type UpdateBotLocaleOutput struct {
22160	_ struct{} `type:"structure"`
22161
22162	// The identifier of the bot that contains the updated locale.
22163	BotId *string `locationName:"botId" min:"10" type:"string"`
22164
22165	// The current status of the locale. When the bot status is Built the locale
22166	// is ready for use.
22167	BotLocaleStatus *string `locationName:"botLocaleStatus" type:"string" enum:"BotLocaleStatus"`
22168
22169	// The version of the bot that contains the updated locale.
22170	BotVersion *string `locationName:"botVersion" min:"5" type:"string"`
22171
22172	// A timestamp of the date and time that the locale was created.
22173	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
22174
22175	// The updated description of the locale.
22176	Description *string `locationName:"description" type:"string"`
22177
22178	// If the botLocaleStatus is Failed, the failureReasons field lists the errors
22179	// that occurred while building the bot.
22180	FailureReasons []*string `locationName:"failureReasons" type:"list"`
22181
22182	// A timestamp of the date and time that the locale was last updated.
22183	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
22184
22185	// The language and locale of the updated bot locale.
22186	LocaleId *string `locationName:"localeId" type:"string"`
22187
22188	// The updated locale name for the locale.
22189	LocaleName *string `locationName:"localeName" type:"string"`
22190
22191	// The updated confidence threshold for inserting the AMAZON.FallbackIntent
22192	// and AMAZON.KendraSearchIntent intents in the list of possible intents for
22193	// an utterance.
22194	NluIntentConfidenceThreshold *float64 `locationName:"nluIntentConfidenceThreshold" type:"double"`
22195
22196	// The updated Amazon Polly voice to use for voice interaction with the user.
22197	VoiceSettings *VoiceSettings `locationName:"voiceSettings" type:"structure"`
22198}
22199
22200// String returns the string representation.
22201//
22202// API parameter values that are decorated as "sensitive" in the API will not
22203// be included in the string output. The member name will be present, but the
22204// value will be replaced with "sensitive".
22205func (s UpdateBotLocaleOutput) String() string {
22206	return awsutil.Prettify(s)
22207}
22208
22209// GoString returns the string representation.
22210//
22211// API parameter values that are decorated as "sensitive" in the API will not
22212// be included in the string output. The member name will be present, but the
22213// value will be replaced with "sensitive".
22214func (s UpdateBotLocaleOutput) GoString() string {
22215	return s.String()
22216}
22217
22218// SetBotId sets the BotId field's value.
22219func (s *UpdateBotLocaleOutput) SetBotId(v string) *UpdateBotLocaleOutput {
22220	s.BotId = &v
22221	return s
22222}
22223
22224// SetBotLocaleStatus sets the BotLocaleStatus field's value.
22225func (s *UpdateBotLocaleOutput) SetBotLocaleStatus(v string) *UpdateBotLocaleOutput {
22226	s.BotLocaleStatus = &v
22227	return s
22228}
22229
22230// SetBotVersion sets the BotVersion field's value.
22231func (s *UpdateBotLocaleOutput) SetBotVersion(v string) *UpdateBotLocaleOutput {
22232	s.BotVersion = &v
22233	return s
22234}
22235
22236// SetCreationDateTime sets the CreationDateTime field's value.
22237func (s *UpdateBotLocaleOutput) SetCreationDateTime(v time.Time) *UpdateBotLocaleOutput {
22238	s.CreationDateTime = &v
22239	return s
22240}
22241
22242// SetDescription sets the Description field's value.
22243func (s *UpdateBotLocaleOutput) SetDescription(v string) *UpdateBotLocaleOutput {
22244	s.Description = &v
22245	return s
22246}
22247
22248// SetFailureReasons sets the FailureReasons field's value.
22249func (s *UpdateBotLocaleOutput) SetFailureReasons(v []*string) *UpdateBotLocaleOutput {
22250	s.FailureReasons = v
22251	return s
22252}
22253
22254// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
22255func (s *UpdateBotLocaleOutput) SetLastUpdatedDateTime(v time.Time) *UpdateBotLocaleOutput {
22256	s.LastUpdatedDateTime = &v
22257	return s
22258}
22259
22260// SetLocaleId sets the LocaleId field's value.
22261func (s *UpdateBotLocaleOutput) SetLocaleId(v string) *UpdateBotLocaleOutput {
22262	s.LocaleId = &v
22263	return s
22264}
22265
22266// SetLocaleName sets the LocaleName field's value.
22267func (s *UpdateBotLocaleOutput) SetLocaleName(v string) *UpdateBotLocaleOutput {
22268	s.LocaleName = &v
22269	return s
22270}
22271
22272// SetNluIntentConfidenceThreshold sets the NluIntentConfidenceThreshold field's value.
22273func (s *UpdateBotLocaleOutput) SetNluIntentConfidenceThreshold(v float64) *UpdateBotLocaleOutput {
22274	s.NluIntentConfidenceThreshold = &v
22275	return s
22276}
22277
22278// SetVoiceSettings sets the VoiceSettings field's value.
22279func (s *UpdateBotLocaleOutput) SetVoiceSettings(v *VoiceSettings) *UpdateBotLocaleOutput {
22280	s.VoiceSettings = v
22281	return s
22282}
22283
22284type UpdateBotOutput struct {
22285	_ struct{} `type:"structure"`
22286
22287	// The unique identifier of the bot that was updated.
22288	BotId *string `locationName:"botId" min:"10" type:"string"`
22289
22290	// The name of the bot after the update.
22291	BotName *string `locationName:"botName" min:"1" type:"string"`
22292
22293	// Shows the current status of the bot. The bot is first in the Creating status.
22294	// Once the bot is read for use, it changes to the Available status. After the
22295	// bot is created, you can use the DRAFT version of the bot.
22296	BotStatus *string `locationName:"botStatus" type:"string" enum:"BotStatus"`
22297
22298	// A timestamp of the date and time that the bot was created.
22299	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
22300
22301	// The data privacy settings for the bot after the update.
22302	DataPrivacy *DataPrivacy `locationName:"dataPrivacy" type:"structure"`
22303
22304	// The description of the bot after the update.
22305	Description *string `locationName:"description" type:"string"`
22306
22307	// The session timeout, in seconds, for the bot after the update.
22308	IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"`
22309
22310	// A timestamp of the date and time that the bot was last updated.
22311	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
22312
22313	// The Amazon Resource Name (ARN) of the IAM role used by the bot after the
22314	// update.
22315	RoleArn *string `locationName:"roleArn" min:"32" type:"string"`
22316}
22317
22318// String returns the string representation.
22319//
22320// API parameter values that are decorated as "sensitive" in the API will not
22321// be included in the string output. The member name will be present, but the
22322// value will be replaced with "sensitive".
22323func (s UpdateBotOutput) String() string {
22324	return awsutil.Prettify(s)
22325}
22326
22327// GoString returns the string representation.
22328//
22329// API parameter values that are decorated as "sensitive" in the API will not
22330// be included in the string output. The member name will be present, but the
22331// value will be replaced with "sensitive".
22332func (s UpdateBotOutput) GoString() string {
22333	return s.String()
22334}
22335
22336// SetBotId sets the BotId field's value.
22337func (s *UpdateBotOutput) SetBotId(v string) *UpdateBotOutput {
22338	s.BotId = &v
22339	return s
22340}
22341
22342// SetBotName sets the BotName field's value.
22343func (s *UpdateBotOutput) SetBotName(v string) *UpdateBotOutput {
22344	s.BotName = &v
22345	return s
22346}
22347
22348// SetBotStatus sets the BotStatus field's value.
22349func (s *UpdateBotOutput) SetBotStatus(v string) *UpdateBotOutput {
22350	s.BotStatus = &v
22351	return s
22352}
22353
22354// SetCreationDateTime sets the CreationDateTime field's value.
22355func (s *UpdateBotOutput) SetCreationDateTime(v time.Time) *UpdateBotOutput {
22356	s.CreationDateTime = &v
22357	return s
22358}
22359
22360// SetDataPrivacy sets the DataPrivacy field's value.
22361func (s *UpdateBotOutput) SetDataPrivacy(v *DataPrivacy) *UpdateBotOutput {
22362	s.DataPrivacy = v
22363	return s
22364}
22365
22366// SetDescription sets the Description field's value.
22367func (s *UpdateBotOutput) SetDescription(v string) *UpdateBotOutput {
22368	s.Description = &v
22369	return s
22370}
22371
22372// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value.
22373func (s *UpdateBotOutput) SetIdleSessionTTLInSeconds(v int64) *UpdateBotOutput {
22374	s.IdleSessionTTLInSeconds = &v
22375	return s
22376}
22377
22378// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
22379func (s *UpdateBotOutput) SetLastUpdatedDateTime(v time.Time) *UpdateBotOutput {
22380	s.LastUpdatedDateTime = &v
22381	return s
22382}
22383
22384// SetRoleArn sets the RoleArn field's value.
22385func (s *UpdateBotOutput) SetRoleArn(v string) *UpdateBotOutput {
22386	s.RoleArn = &v
22387	return s
22388}
22389
22390type UpdateExportInput struct {
22391	_ struct{} `type:"structure"`
22392
22393	// The unique identifier Amazon Lex assigned to the export.
22394	//
22395	// ExportId is a required field
22396	ExportId *string `location:"uri" locationName:"exportId" min:"10" type:"string" required:"true"`
22397
22398	// The new password to use to encrypt the export zip archive.
22399	//
22400	// FilePassword is a sensitive parameter and its value will be
22401	// replaced with "sensitive" in string returned by UpdateExportInput's
22402	// String and GoString methods.
22403	FilePassword *string `locationName:"filePassword" min:"1" type:"string" sensitive:"true"`
22404}
22405
22406// String returns the string representation.
22407//
22408// API parameter values that are decorated as "sensitive" in the API will not
22409// be included in the string output. The member name will be present, but the
22410// value will be replaced with "sensitive".
22411func (s UpdateExportInput) String() string {
22412	return awsutil.Prettify(s)
22413}
22414
22415// GoString returns the string representation.
22416//
22417// API parameter values that are decorated as "sensitive" in the API will not
22418// be included in the string output. The member name will be present, but the
22419// value will be replaced with "sensitive".
22420func (s UpdateExportInput) GoString() string {
22421	return s.String()
22422}
22423
22424// Validate inspects the fields of the type to determine if they are valid.
22425func (s *UpdateExportInput) Validate() error {
22426	invalidParams := request.ErrInvalidParams{Context: "UpdateExportInput"}
22427	if s.ExportId == nil {
22428		invalidParams.Add(request.NewErrParamRequired("ExportId"))
22429	}
22430	if s.ExportId != nil && len(*s.ExportId) < 10 {
22431		invalidParams.Add(request.NewErrParamMinLen("ExportId", 10))
22432	}
22433	if s.FilePassword != nil && len(*s.FilePassword) < 1 {
22434		invalidParams.Add(request.NewErrParamMinLen("FilePassword", 1))
22435	}
22436
22437	if invalidParams.Len() > 0 {
22438		return invalidParams
22439	}
22440	return nil
22441}
22442
22443// SetExportId sets the ExportId field's value.
22444func (s *UpdateExportInput) SetExportId(v string) *UpdateExportInput {
22445	s.ExportId = &v
22446	return s
22447}
22448
22449// SetFilePassword sets the FilePassword field's value.
22450func (s *UpdateExportInput) SetFilePassword(v string) *UpdateExportInput {
22451	s.FilePassword = &v
22452	return s
22453}
22454
22455type UpdateExportOutput struct {
22456	_ struct{} `type:"structure"`
22457
22458	// The date and time that the export was created.
22459	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
22460
22461	// The unique identifier Amazon Lex assigned to the export.
22462	ExportId *string `locationName:"exportId" min:"10" type:"string"`
22463
22464	// The status of the export. When the status is Completed the export archive
22465	// is available for download.
22466	ExportStatus *string `locationName:"exportStatus" type:"string" enum:"ExportStatus"`
22467
22468	// The file format used for the files that define the resource.
22469	FileFormat *string `locationName:"fileFormat" type:"string" enum:"ImportExportFileFormat"`
22470
22471	// The date and time that the export was last updated.
22472	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
22473
22474	// A description of the type of resource that was exported, either a bot or
22475	// a bot locale.
22476	ResourceSpecification *ExportResourceSpecification `locationName:"resourceSpecification" type:"structure"`
22477}
22478
22479// String returns the string representation.
22480//
22481// API parameter values that are decorated as "sensitive" in the API will not
22482// be included in the string output. The member name will be present, but the
22483// value will be replaced with "sensitive".
22484func (s UpdateExportOutput) String() string {
22485	return awsutil.Prettify(s)
22486}
22487
22488// GoString returns the string representation.
22489//
22490// API parameter values that are decorated as "sensitive" in the API will not
22491// be included in the string output. The member name will be present, but the
22492// value will be replaced with "sensitive".
22493func (s UpdateExportOutput) GoString() string {
22494	return s.String()
22495}
22496
22497// SetCreationDateTime sets the CreationDateTime field's value.
22498func (s *UpdateExportOutput) SetCreationDateTime(v time.Time) *UpdateExportOutput {
22499	s.CreationDateTime = &v
22500	return s
22501}
22502
22503// SetExportId sets the ExportId field's value.
22504func (s *UpdateExportOutput) SetExportId(v string) *UpdateExportOutput {
22505	s.ExportId = &v
22506	return s
22507}
22508
22509// SetExportStatus sets the ExportStatus field's value.
22510func (s *UpdateExportOutput) SetExportStatus(v string) *UpdateExportOutput {
22511	s.ExportStatus = &v
22512	return s
22513}
22514
22515// SetFileFormat sets the FileFormat field's value.
22516func (s *UpdateExportOutput) SetFileFormat(v string) *UpdateExportOutput {
22517	s.FileFormat = &v
22518	return s
22519}
22520
22521// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
22522func (s *UpdateExportOutput) SetLastUpdatedDateTime(v time.Time) *UpdateExportOutput {
22523	s.LastUpdatedDateTime = &v
22524	return s
22525}
22526
22527// SetResourceSpecification sets the ResourceSpecification field's value.
22528func (s *UpdateExportOutput) SetResourceSpecification(v *ExportResourceSpecification) *UpdateExportOutput {
22529	s.ResourceSpecification = v
22530	return s
22531}
22532
22533type UpdateIntentInput struct {
22534	_ struct{} `type:"structure"`
22535
22536	// The identifier of the bot that contains the intent.
22537	//
22538	// BotId is a required field
22539	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
22540
22541	// The version of the bot that contains the intent. Must be DRAFT.
22542	//
22543	// BotVersion is a required field
22544	BotVersion *string `location:"uri" locationName:"botVersion" min:"5" type:"string" required:"true"`
22545
22546	// The new description of the intent.
22547	Description *string `locationName:"description" type:"string"`
22548
22549	// The new Lambda function to use between each turn of the conversation with
22550	// the bot.
22551	DialogCodeHook *DialogCodeHookSettings `locationName:"dialogCodeHook" type:"structure"`
22552
22553	// The new Lambda function to call when all of the intents required slots are
22554	// provided and the intent is ready for fulfillment.
22555	FulfillmentCodeHook *FulfillmentCodeHookSettings `locationName:"fulfillmentCodeHook" type:"structure"`
22556
22557	// A new list of contexts that must be active in order for Amazon Lex to consider
22558	// the intent.
22559	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
22560
22561	// The new response that Amazon Lex sends the user when the intent is closed.
22562	IntentClosingSetting *IntentClosingSetting `locationName:"intentClosingSetting" type:"structure"`
22563
22564	// New prompts that Amazon Lex sends to the user to confirm the completion of
22565	// an intent.
22566	IntentConfirmationSetting *IntentConfirmationSetting `locationName:"intentConfirmationSetting" type:"structure"`
22567
22568	// The unique identifier of the intent to update.
22569	//
22570	// IntentId is a required field
22571	IntentId *string `location:"uri" locationName:"intentId" min:"10" type:"string" required:"true"`
22572
22573	// The new name for the intent.
22574	//
22575	// IntentName is a required field
22576	IntentName *string `locationName:"intentName" min:"1" type:"string" required:"true"`
22577
22578	// New configuration settings for connecting to an Amazon Kendra index.
22579	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
22580
22581	// The identifier of the language and locale where this intent is used. The
22582	// string must match one of the supported locales. For more information, see
22583	// Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
22584	//
22585	// LocaleId is a required field
22586	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
22587
22588	// A new list of contexts that Amazon Lex activates when the intent is fulfilled.
22589	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
22590
22591	// The signature of the new built-in intent to use as the parent of this intent.
22592	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
22593
22594	// New utterances used to invoke the intent.
22595	SampleUtterances []*SampleUtterance `locationName:"sampleUtterances" type:"list"`
22596
22597	// A new list of slots and their priorities that are contained by the intent.
22598	SlotPriorities []*SlotPriority `locationName:"slotPriorities" type:"list"`
22599}
22600
22601// String returns the string representation.
22602//
22603// API parameter values that are decorated as "sensitive" in the API will not
22604// be included in the string output. The member name will be present, but the
22605// value will be replaced with "sensitive".
22606func (s UpdateIntentInput) String() string {
22607	return awsutil.Prettify(s)
22608}
22609
22610// GoString returns the string representation.
22611//
22612// API parameter values that are decorated as "sensitive" in the API will not
22613// be included in the string output. The member name will be present, but the
22614// value will be replaced with "sensitive".
22615func (s UpdateIntentInput) GoString() string {
22616	return s.String()
22617}
22618
22619// Validate inspects the fields of the type to determine if they are valid.
22620func (s *UpdateIntentInput) Validate() error {
22621	invalidParams := request.ErrInvalidParams{Context: "UpdateIntentInput"}
22622	if s.BotId == nil {
22623		invalidParams.Add(request.NewErrParamRequired("BotId"))
22624	}
22625	if s.BotId != nil && len(*s.BotId) < 10 {
22626		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
22627	}
22628	if s.BotVersion == nil {
22629		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
22630	}
22631	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
22632		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
22633	}
22634	if s.IntentId == nil {
22635		invalidParams.Add(request.NewErrParamRequired("IntentId"))
22636	}
22637	if s.IntentId != nil && len(*s.IntentId) < 10 {
22638		invalidParams.Add(request.NewErrParamMinLen("IntentId", 10))
22639	}
22640	if s.IntentName == nil {
22641		invalidParams.Add(request.NewErrParamRequired("IntentName"))
22642	}
22643	if s.IntentName != nil && len(*s.IntentName) < 1 {
22644		invalidParams.Add(request.NewErrParamMinLen("IntentName", 1))
22645	}
22646	if s.LocaleId == nil {
22647		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
22648	}
22649	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
22650		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
22651	}
22652	if s.DialogCodeHook != nil {
22653		if err := s.DialogCodeHook.Validate(); err != nil {
22654			invalidParams.AddNested("DialogCodeHook", err.(request.ErrInvalidParams))
22655		}
22656	}
22657	if s.FulfillmentCodeHook != nil {
22658		if err := s.FulfillmentCodeHook.Validate(); err != nil {
22659			invalidParams.AddNested("FulfillmentCodeHook", err.(request.ErrInvalidParams))
22660		}
22661	}
22662	if s.InputContexts != nil {
22663		for i, v := range s.InputContexts {
22664			if v == nil {
22665				continue
22666			}
22667			if err := v.Validate(); err != nil {
22668				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputContexts", i), err.(request.ErrInvalidParams))
22669			}
22670		}
22671	}
22672	if s.IntentClosingSetting != nil {
22673		if err := s.IntentClosingSetting.Validate(); err != nil {
22674			invalidParams.AddNested("IntentClosingSetting", err.(request.ErrInvalidParams))
22675		}
22676	}
22677	if s.IntentConfirmationSetting != nil {
22678		if err := s.IntentConfirmationSetting.Validate(); err != nil {
22679			invalidParams.AddNested("IntentConfirmationSetting", err.(request.ErrInvalidParams))
22680		}
22681	}
22682	if s.KendraConfiguration != nil {
22683		if err := s.KendraConfiguration.Validate(); err != nil {
22684			invalidParams.AddNested("KendraConfiguration", err.(request.ErrInvalidParams))
22685		}
22686	}
22687	if s.OutputContexts != nil {
22688		for i, v := range s.OutputContexts {
22689			if v == nil {
22690				continue
22691			}
22692			if err := v.Validate(); err != nil {
22693				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OutputContexts", i), err.(request.ErrInvalidParams))
22694			}
22695		}
22696	}
22697	if s.SampleUtterances != nil {
22698		for i, v := range s.SampleUtterances {
22699			if v == nil {
22700				continue
22701			}
22702			if err := v.Validate(); err != nil {
22703				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SampleUtterances", i), err.(request.ErrInvalidParams))
22704			}
22705		}
22706	}
22707	if s.SlotPriorities != nil {
22708		for i, v := range s.SlotPriorities {
22709			if v == nil {
22710				continue
22711			}
22712			if err := v.Validate(); err != nil {
22713				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SlotPriorities", i), err.(request.ErrInvalidParams))
22714			}
22715		}
22716	}
22717
22718	if invalidParams.Len() > 0 {
22719		return invalidParams
22720	}
22721	return nil
22722}
22723
22724// SetBotId sets the BotId field's value.
22725func (s *UpdateIntentInput) SetBotId(v string) *UpdateIntentInput {
22726	s.BotId = &v
22727	return s
22728}
22729
22730// SetBotVersion sets the BotVersion field's value.
22731func (s *UpdateIntentInput) SetBotVersion(v string) *UpdateIntentInput {
22732	s.BotVersion = &v
22733	return s
22734}
22735
22736// SetDescription sets the Description field's value.
22737func (s *UpdateIntentInput) SetDescription(v string) *UpdateIntentInput {
22738	s.Description = &v
22739	return s
22740}
22741
22742// SetDialogCodeHook sets the DialogCodeHook field's value.
22743func (s *UpdateIntentInput) SetDialogCodeHook(v *DialogCodeHookSettings) *UpdateIntentInput {
22744	s.DialogCodeHook = v
22745	return s
22746}
22747
22748// SetFulfillmentCodeHook sets the FulfillmentCodeHook field's value.
22749func (s *UpdateIntentInput) SetFulfillmentCodeHook(v *FulfillmentCodeHookSettings) *UpdateIntentInput {
22750	s.FulfillmentCodeHook = v
22751	return s
22752}
22753
22754// SetInputContexts sets the InputContexts field's value.
22755func (s *UpdateIntentInput) SetInputContexts(v []*InputContext) *UpdateIntentInput {
22756	s.InputContexts = v
22757	return s
22758}
22759
22760// SetIntentClosingSetting sets the IntentClosingSetting field's value.
22761func (s *UpdateIntentInput) SetIntentClosingSetting(v *IntentClosingSetting) *UpdateIntentInput {
22762	s.IntentClosingSetting = v
22763	return s
22764}
22765
22766// SetIntentConfirmationSetting sets the IntentConfirmationSetting field's value.
22767func (s *UpdateIntentInput) SetIntentConfirmationSetting(v *IntentConfirmationSetting) *UpdateIntentInput {
22768	s.IntentConfirmationSetting = v
22769	return s
22770}
22771
22772// SetIntentId sets the IntentId field's value.
22773func (s *UpdateIntentInput) SetIntentId(v string) *UpdateIntentInput {
22774	s.IntentId = &v
22775	return s
22776}
22777
22778// SetIntentName sets the IntentName field's value.
22779func (s *UpdateIntentInput) SetIntentName(v string) *UpdateIntentInput {
22780	s.IntentName = &v
22781	return s
22782}
22783
22784// SetKendraConfiguration sets the KendraConfiguration field's value.
22785func (s *UpdateIntentInput) SetKendraConfiguration(v *KendraConfiguration) *UpdateIntentInput {
22786	s.KendraConfiguration = v
22787	return s
22788}
22789
22790// SetLocaleId sets the LocaleId field's value.
22791func (s *UpdateIntentInput) SetLocaleId(v string) *UpdateIntentInput {
22792	s.LocaleId = &v
22793	return s
22794}
22795
22796// SetOutputContexts sets the OutputContexts field's value.
22797func (s *UpdateIntentInput) SetOutputContexts(v []*OutputContext) *UpdateIntentInput {
22798	s.OutputContexts = v
22799	return s
22800}
22801
22802// SetParentIntentSignature sets the ParentIntentSignature field's value.
22803func (s *UpdateIntentInput) SetParentIntentSignature(v string) *UpdateIntentInput {
22804	s.ParentIntentSignature = &v
22805	return s
22806}
22807
22808// SetSampleUtterances sets the SampleUtterances field's value.
22809func (s *UpdateIntentInput) SetSampleUtterances(v []*SampleUtterance) *UpdateIntentInput {
22810	s.SampleUtterances = v
22811	return s
22812}
22813
22814// SetSlotPriorities sets the SlotPriorities field's value.
22815func (s *UpdateIntentInput) SetSlotPriorities(v []*SlotPriority) *UpdateIntentInput {
22816	s.SlotPriorities = v
22817	return s
22818}
22819
22820type UpdateIntentOutput struct {
22821	_ struct{} `type:"structure"`
22822
22823	// The identifier of the bot that contains the intent.
22824	BotId *string `locationName:"botId" min:"10" type:"string"`
22825
22826	// The version of the bot that contains the intent. Will always be DRAFT.
22827	BotVersion *string `locationName:"botVersion" min:"5" type:"string"`
22828
22829	// A timestamp of when the intent was created.
22830	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
22831
22832	// The updated description of the intent.
22833	Description *string `locationName:"description" type:"string"`
22834
22835	// The updated Lambda function called during each turn of the conversation with
22836	// the user.
22837	DialogCodeHook *DialogCodeHookSettings `locationName:"dialogCodeHook" type:"structure"`
22838
22839	// The updated Lambda function called when the intent is ready for fulfillment.
22840	FulfillmentCodeHook *FulfillmentCodeHookSettings `locationName:"fulfillmentCodeHook" type:"structure"`
22841
22842	// The updated list of contexts that must be active for the intent to be considered
22843	// by Amazon Lex.
22844	InputContexts []*InputContext `locationName:"inputContexts" type:"list"`
22845
22846	// The updated response that Amazon Lex sends the user when the intent is closed.
22847	IntentClosingSetting *IntentClosingSetting `locationName:"intentClosingSetting" type:"structure"`
22848
22849	// The updated prompts that Amazon Lex sends to the user to confirm the completion
22850	// of an intent.
22851	IntentConfirmationSetting *IntentConfirmationSetting `locationName:"intentConfirmationSetting" type:"structure"`
22852
22853	// The identifier of the intent that was updated.
22854	IntentId *string `locationName:"intentId" min:"10" type:"string"`
22855
22856	// The updated name of the intent.
22857	IntentName *string `locationName:"intentName" min:"1" type:"string"`
22858
22859	// The updated configuration for connecting to an Amazon Kendra index with the
22860	// AMAZON.KendraSearchIntent intent.
22861	KendraConfiguration *KendraConfiguration `locationName:"kendraConfiguration" type:"structure"`
22862
22863	// A timestamp of the last time that the intent was modified.
22864	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
22865
22866	// The updated language and locale of the intent.
22867	LocaleId *string `locationName:"localeId" type:"string"`
22868
22869	// The updated list of contexts that Amazon Lex activates when the intent is
22870	// fulfilled.
22871	OutputContexts []*OutputContext `locationName:"outputContexts" type:"list"`
22872
22873	// The updated built-in intent that is the parent of this intent.
22874	ParentIntentSignature *string `locationName:"parentIntentSignature" type:"string"`
22875
22876	// The updated list of sample utterances for the intent.
22877	SampleUtterances []*SampleUtterance `locationName:"sampleUtterances" type:"list"`
22878
22879	// The updated list of slots and their priorities that are elicited from the
22880	// user for the intent.
22881	SlotPriorities []*SlotPriority `locationName:"slotPriorities" type:"list"`
22882}
22883
22884// String returns the string representation.
22885//
22886// API parameter values that are decorated as "sensitive" in the API will not
22887// be included in the string output. The member name will be present, but the
22888// value will be replaced with "sensitive".
22889func (s UpdateIntentOutput) String() string {
22890	return awsutil.Prettify(s)
22891}
22892
22893// GoString returns the string representation.
22894//
22895// API parameter values that are decorated as "sensitive" in the API will not
22896// be included in the string output. The member name will be present, but the
22897// value will be replaced with "sensitive".
22898func (s UpdateIntentOutput) GoString() string {
22899	return s.String()
22900}
22901
22902// SetBotId sets the BotId field's value.
22903func (s *UpdateIntentOutput) SetBotId(v string) *UpdateIntentOutput {
22904	s.BotId = &v
22905	return s
22906}
22907
22908// SetBotVersion sets the BotVersion field's value.
22909func (s *UpdateIntentOutput) SetBotVersion(v string) *UpdateIntentOutput {
22910	s.BotVersion = &v
22911	return s
22912}
22913
22914// SetCreationDateTime sets the CreationDateTime field's value.
22915func (s *UpdateIntentOutput) SetCreationDateTime(v time.Time) *UpdateIntentOutput {
22916	s.CreationDateTime = &v
22917	return s
22918}
22919
22920// SetDescription sets the Description field's value.
22921func (s *UpdateIntentOutput) SetDescription(v string) *UpdateIntentOutput {
22922	s.Description = &v
22923	return s
22924}
22925
22926// SetDialogCodeHook sets the DialogCodeHook field's value.
22927func (s *UpdateIntentOutput) SetDialogCodeHook(v *DialogCodeHookSettings) *UpdateIntentOutput {
22928	s.DialogCodeHook = v
22929	return s
22930}
22931
22932// SetFulfillmentCodeHook sets the FulfillmentCodeHook field's value.
22933func (s *UpdateIntentOutput) SetFulfillmentCodeHook(v *FulfillmentCodeHookSettings) *UpdateIntentOutput {
22934	s.FulfillmentCodeHook = v
22935	return s
22936}
22937
22938// SetInputContexts sets the InputContexts field's value.
22939func (s *UpdateIntentOutput) SetInputContexts(v []*InputContext) *UpdateIntentOutput {
22940	s.InputContexts = v
22941	return s
22942}
22943
22944// SetIntentClosingSetting sets the IntentClosingSetting field's value.
22945func (s *UpdateIntentOutput) SetIntentClosingSetting(v *IntentClosingSetting) *UpdateIntentOutput {
22946	s.IntentClosingSetting = v
22947	return s
22948}
22949
22950// SetIntentConfirmationSetting sets the IntentConfirmationSetting field's value.
22951func (s *UpdateIntentOutput) SetIntentConfirmationSetting(v *IntentConfirmationSetting) *UpdateIntentOutput {
22952	s.IntentConfirmationSetting = v
22953	return s
22954}
22955
22956// SetIntentId sets the IntentId field's value.
22957func (s *UpdateIntentOutput) SetIntentId(v string) *UpdateIntentOutput {
22958	s.IntentId = &v
22959	return s
22960}
22961
22962// SetIntentName sets the IntentName field's value.
22963func (s *UpdateIntentOutput) SetIntentName(v string) *UpdateIntentOutput {
22964	s.IntentName = &v
22965	return s
22966}
22967
22968// SetKendraConfiguration sets the KendraConfiguration field's value.
22969func (s *UpdateIntentOutput) SetKendraConfiguration(v *KendraConfiguration) *UpdateIntentOutput {
22970	s.KendraConfiguration = v
22971	return s
22972}
22973
22974// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
22975func (s *UpdateIntentOutput) SetLastUpdatedDateTime(v time.Time) *UpdateIntentOutput {
22976	s.LastUpdatedDateTime = &v
22977	return s
22978}
22979
22980// SetLocaleId sets the LocaleId field's value.
22981func (s *UpdateIntentOutput) SetLocaleId(v string) *UpdateIntentOutput {
22982	s.LocaleId = &v
22983	return s
22984}
22985
22986// SetOutputContexts sets the OutputContexts field's value.
22987func (s *UpdateIntentOutput) SetOutputContexts(v []*OutputContext) *UpdateIntentOutput {
22988	s.OutputContexts = v
22989	return s
22990}
22991
22992// SetParentIntentSignature sets the ParentIntentSignature field's value.
22993func (s *UpdateIntentOutput) SetParentIntentSignature(v string) *UpdateIntentOutput {
22994	s.ParentIntentSignature = &v
22995	return s
22996}
22997
22998// SetSampleUtterances sets the SampleUtterances field's value.
22999func (s *UpdateIntentOutput) SetSampleUtterances(v []*SampleUtterance) *UpdateIntentOutput {
23000	s.SampleUtterances = v
23001	return s
23002}
23003
23004// SetSlotPriorities sets the SlotPriorities field's value.
23005func (s *UpdateIntentOutput) SetSlotPriorities(v []*SlotPriority) *UpdateIntentOutput {
23006	s.SlotPriorities = v
23007	return s
23008}
23009
23010type UpdateResourcePolicyInput struct {
23011	_ struct{} `type:"structure"`
23012
23013	// The identifier of the revision of the policy to update. If this revision
23014	// ID doesn't match the current revision ID, Amazon Lex throws an exception.
23015	//
23016	// If you don't specify a revision, Amazon Lex overwrites the contents of the
23017	// policy with the new values.
23018	ExpectedRevisionId *string `location:"querystring" locationName:"expectedRevisionId" min:"1" type:"string"`
23019
23020	// A resource policy to add to the resource. The policy is a JSON structure
23021	// that contains one or more statements that define the policy. The policy must
23022	// follow the IAM syntax. For more information about the contents of a JSON
23023	// policy document, see IAM JSON policy reference (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html).
23024	//
23025	// If the policy isn't valid, Amazon Lex returns a validation exception.
23026	//
23027	// Policy is a required field
23028	Policy *string `locationName:"policy" min:"2" type:"string" required:"true"`
23029
23030	// The Amazon Resource Name (ARN) of the bot or bot alias that the resource
23031	// policy is attached to.
23032	//
23033	// ResourceArn is a required field
23034	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
23035}
23036
23037// String returns the string representation.
23038//
23039// API parameter values that are decorated as "sensitive" in the API will not
23040// be included in the string output. The member name will be present, but the
23041// value will be replaced with "sensitive".
23042func (s UpdateResourcePolicyInput) String() string {
23043	return awsutil.Prettify(s)
23044}
23045
23046// GoString returns the string representation.
23047//
23048// API parameter values that are decorated as "sensitive" in the API will not
23049// be included in the string output. The member name will be present, but the
23050// value will be replaced with "sensitive".
23051func (s UpdateResourcePolicyInput) GoString() string {
23052	return s.String()
23053}
23054
23055// Validate inspects the fields of the type to determine if they are valid.
23056func (s *UpdateResourcePolicyInput) Validate() error {
23057	invalidParams := request.ErrInvalidParams{Context: "UpdateResourcePolicyInput"}
23058	if s.ExpectedRevisionId != nil && len(*s.ExpectedRevisionId) < 1 {
23059		invalidParams.Add(request.NewErrParamMinLen("ExpectedRevisionId", 1))
23060	}
23061	if s.Policy == nil {
23062		invalidParams.Add(request.NewErrParamRequired("Policy"))
23063	}
23064	if s.Policy != nil && len(*s.Policy) < 2 {
23065		invalidParams.Add(request.NewErrParamMinLen("Policy", 2))
23066	}
23067	if s.ResourceArn == nil {
23068		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
23069	}
23070	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
23071		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
23072	}
23073
23074	if invalidParams.Len() > 0 {
23075		return invalidParams
23076	}
23077	return nil
23078}
23079
23080// SetExpectedRevisionId sets the ExpectedRevisionId field's value.
23081func (s *UpdateResourcePolicyInput) SetExpectedRevisionId(v string) *UpdateResourcePolicyInput {
23082	s.ExpectedRevisionId = &v
23083	return s
23084}
23085
23086// SetPolicy sets the Policy field's value.
23087func (s *UpdateResourcePolicyInput) SetPolicy(v string) *UpdateResourcePolicyInput {
23088	s.Policy = &v
23089	return s
23090}
23091
23092// SetResourceArn sets the ResourceArn field's value.
23093func (s *UpdateResourcePolicyInput) SetResourceArn(v string) *UpdateResourcePolicyInput {
23094	s.ResourceArn = &v
23095	return s
23096}
23097
23098type UpdateResourcePolicyOutput struct {
23099	_ struct{} `type:"structure"`
23100
23101	// The Amazon Resource Name (ARN) of the bot or bot alias that the resource
23102	// policy is attached to.
23103	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string"`
23104
23105	// The current revision of the resource policy. Use the revision ID to make
23106	// sure that you are updating the most current version of a resource policy
23107	// when you add a policy statement to a resource, delete a resource, or update
23108	// a resource.
23109	RevisionId *string `locationName:"revisionId" min:"1" type:"string"`
23110}
23111
23112// String returns the string representation.
23113//
23114// API parameter values that are decorated as "sensitive" in the API will not
23115// be included in the string output. The member name will be present, but the
23116// value will be replaced with "sensitive".
23117func (s UpdateResourcePolicyOutput) String() string {
23118	return awsutil.Prettify(s)
23119}
23120
23121// GoString returns the string representation.
23122//
23123// API parameter values that are decorated as "sensitive" in the API will not
23124// be included in the string output. The member name will be present, but the
23125// value will be replaced with "sensitive".
23126func (s UpdateResourcePolicyOutput) GoString() string {
23127	return s.String()
23128}
23129
23130// SetResourceArn sets the ResourceArn field's value.
23131func (s *UpdateResourcePolicyOutput) SetResourceArn(v string) *UpdateResourcePolicyOutput {
23132	s.ResourceArn = &v
23133	return s
23134}
23135
23136// SetRevisionId sets the RevisionId field's value.
23137func (s *UpdateResourcePolicyOutput) SetRevisionId(v string) *UpdateResourcePolicyOutput {
23138	s.RevisionId = &v
23139	return s
23140}
23141
23142type UpdateSlotInput struct {
23143	_ struct{} `type:"structure"`
23144
23145	// The unique identifier of the bot that contains the slot.
23146	//
23147	// BotId is a required field
23148	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
23149
23150	// The version of the bot that contains the slot. Must always be DRAFT.
23151	//
23152	// BotVersion is a required field
23153	BotVersion *string `location:"uri" locationName:"botVersion" min:"5" type:"string" required:"true"`
23154
23155	// The new description for the slot.
23156	Description *string `locationName:"description" type:"string"`
23157
23158	// The identifier of the intent that contains the slot.
23159	//
23160	// IntentId is a required field
23161	IntentId *string `location:"uri" locationName:"intentId" min:"10" type:"string" required:"true"`
23162
23163	// The identifier of the language and locale that contains the slot. The string
23164	// must match one of the supported locales. For more information, see Supported
23165	// languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
23166	//
23167	// LocaleId is a required field
23168	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
23169
23170	// Determines whether the slot accepts multiple values in one response. Multiple
23171	// value slots are only available in the en-US locale. If you set this value
23172	// to true in any other locale, Amazon Lex throws a ValidationException.
23173	//
23174	// If the multipleValuesSetting is not set, the default value is false.
23175	MultipleValuesSetting *MultipleValuesSetting `locationName:"multipleValuesSetting" type:"structure"`
23176
23177	// New settings that determine how slot values are formatted in Amazon CloudWatch
23178	// logs.
23179	ObfuscationSetting *ObfuscationSetting `locationName:"obfuscationSetting" type:"structure"`
23180
23181	// The unique identifier for the slot to update.
23182	//
23183	// SlotId is a required field
23184	SlotId *string `location:"uri" locationName:"slotId" min:"10" type:"string" required:"true"`
23185
23186	// The new name for the slot.
23187	//
23188	// SlotName is a required field
23189	SlotName *string `locationName:"slotName" min:"1" type:"string" required:"true"`
23190
23191	// The unique identifier of the new slot type to associate with this slot.
23192	//
23193	// SlotTypeId is a required field
23194	SlotTypeId *string `locationName:"slotTypeId" min:"1" type:"string" required:"true"`
23195
23196	// A new set of prompts that Amazon Lex sends to the user to elicit a response
23197	// the provides a value for the slot.
23198	//
23199	// ValueElicitationSetting is a required field
23200	ValueElicitationSetting *SlotValueElicitationSetting `locationName:"valueElicitationSetting" type:"structure" required:"true"`
23201}
23202
23203// String returns the string representation.
23204//
23205// API parameter values that are decorated as "sensitive" in the API will not
23206// be included in the string output. The member name will be present, but the
23207// value will be replaced with "sensitive".
23208func (s UpdateSlotInput) String() string {
23209	return awsutil.Prettify(s)
23210}
23211
23212// GoString returns the string representation.
23213//
23214// API parameter values that are decorated as "sensitive" in the API will not
23215// be included in the string output. The member name will be present, but the
23216// value will be replaced with "sensitive".
23217func (s UpdateSlotInput) GoString() string {
23218	return s.String()
23219}
23220
23221// Validate inspects the fields of the type to determine if they are valid.
23222func (s *UpdateSlotInput) Validate() error {
23223	invalidParams := request.ErrInvalidParams{Context: "UpdateSlotInput"}
23224	if s.BotId == nil {
23225		invalidParams.Add(request.NewErrParamRequired("BotId"))
23226	}
23227	if s.BotId != nil && len(*s.BotId) < 10 {
23228		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
23229	}
23230	if s.BotVersion == nil {
23231		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
23232	}
23233	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
23234		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
23235	}
23236	if s.IntentId == nil {
23237		invalidParams.Add(request.NewErrParamRequired("IntentId"))
23238	}
23239	if s.IntentId != nil && len(*s.IntentId) < 10 {
23240		invalidParams.Add(request.NewErrParamMinLen("IntentId", 10))
23241	}
23242	if s.LocaleId == nil {
23243		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
23244	}
23245	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
23246		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
23247	}
23248	if s.SlotId == nil {
23249		invalidParams.Add(request.NewErrParamRequired("SlotId"))
23250	}
23251	if s.SlotId != nil && len(*s.SlotId) < 10 {
23252		invalidParams.Add(request.NewErrParamMinLen("SlotId", 10))
23253	}
23254	if s.SlotName == nil {
23255		invalidParams.Add(request.NewErrParamRequired("SlotName"))
23256	}
23257	if s.SlotName != nil && len(*s.SlotName) < 1 {
23258		invalidParams.Add(request.NewErrParamMinLen("SlotName", 1))
23259	}
23260	if s.SlotTypeId == nil {
23261		invalidParams.Add(request.NewErrParamRequired("SlotTypeId"))
23262	}
23263	if s.SlotTypeId != nil && len(*s.SlotTypeId) < 1 {
23264		invalidParams.Add(request.NewErrParamMinLen("SlotTypeId", 1))
23265	}
23266	if s.ValueElicitationSetting == nil {
23267		invalidParams.Add(request.NewErrParamRequired("ValueElicitationSetting"))
23268	}
23269	if s.ObfuscationSetting != nil {
23270		if err := s.ObfuscationSetting.Validate(); err != nil {
23271			invalidParams.AddNested("ObfuscationSetting", err.(request.ErrInvalidParams))
23272		}
23273	}
23274	if s.ValueElicitationSetting != nil {
23275		if err := s.ValueElicitationSetting.Validate(); err != nil {
23276			invalidParams.AddNested("ValueElicitationSetting", err.(request.ErrInvalidParams))
23277		}
23278	}
23279
23280	if invalidParams.Len() > 0 {
23281		return invalidParams
23282	}
23283	return nil
23284}
23285
23286// SetBotId sets the BotId field's value.
23287func (s *UpdateSlotInput) SetBotId(v string) *UpdateSlotInput {
23288	s.BotId = &v
23289	return s
23290}
23291
23292// SetBotVersion sets the BotVersion field's value.
23293func (s *UpdateSlotInput) SetBotVersion(v string) *UpdateSlotInput {
23294	s.BotVersion = &v
23295	return s
23296}
23297
23298// SetDescription sets the Description field's value.
23299func (s *UpdateSlotInput) SetDescription(v string) *UpdateSlotInput {
23300	s.Description = &v
23301	return s
23302}
23303
23304// SetIntentId sets the IntentId field's value.
23305func (s *UpdateSlotInput) SetIntentId(v string) *UpdateSlotInput {
23306	s.IntentId = &v
23307	return s
23308}
23309
23310// SetLocaleId sets the LocaleId field's value.
23311func (s *UpdateSlotInput) SetLocaleId(v string) *UpdateSlotInput {
23312	s.LocaleId = &v
23313	return s
23314}
23315
23316// SetMultipleValuesSetting sets the MultipleValuesSetting field's value.
23317func (s *UpdateSlotInput) SetMultipleValuesSetting(v *MultipleValuesSetting) *UpdateSlotInput {
23318	s.MultipleValuesSetting = v
23319	return s
23320}
23321
23322// SetObfuscationSetting sets the ObfuscationSetting field's value.
23323func (s *UpdateSlotInput) SetObfuscationSetting(v *ObfuscationSetting) *UpdateSlotInput {
23324	s.ObfuscationSetting = v
23325	return s
23326}
23327
23328// SetSlotId sets the SlotId field's value.
23329func (s *UpdateSlotInput) SetSlotId(v string) *UpdateSlotInput {
23330	s.SlotId = &v
23331	return s
23332}
23333
23334// SetSlotName sets the SlotName field's value.
23335func (s *UpdateSlotInput) SetSlotName(v string) *UpdateSlotInput {
23336	s.SlotName = &v
23337	return s
23338}
23339
23340// SetSlotTypeId sets the SlotTypeId field's value.
23341func (s *UpdateSlotInput) SetSlotTypeId(v string) *UpdateSlotInput {
23342	s.SlotTypeId = &v
23343	return s
23344}
23345
23346// SetValueElicitationSetting sets the ValueElicitationSetting field's value.
23347func (s *UpdateSlotInput) SetValueElicitationSetting(v *SlotValueElicitationSetting) *UpdateSlotInput {
23348	s.ValueElicitationSetting = v
23349	return s
23350}
23351
23352type UpdateSlotOutput struct {
23353	_ struct{} `type:"structure"`
23354
23355	// The identifier of the bot that contains the slot.
23356	BotId *string `locationName:"botId" min:"10" type:"string"`
23357
23358	// The identifier of the slot version that contains the slot. Will always be
23359	// DRAFT.
23360	BotVersion *string `locationName:"botVersion" min:"5" type:"string"`
23361
23362	// The timestamp of the date and time that the slot was created.
23363	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
23364
23365	// The updated description of the bot.
23366	Description *string `locationName:"description" type:"string"`
23367
23368	// The intent that contains the slot.
23369	IntentId *string `locationName:"intentId" min:"10" type:"string"`
23370
23371	// The timestamp of the date and time that the slot was last updated.
23372	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
23373
23374	// The locale that contains the slot.
23375	LocaleId *string `locationName:"localeId" type:"string"`
23376
23377	// Indicates whether the slot accepts multiple values in one response.
23378	MultipleValuesSetting *MultipleValuesSetting `locationName:"multipleValuesSetting" type:"structure"`
23379
23380	// The updated setting that determines whether the slot value is obfuscated
23381	// in the Amazon CloudWatch logs.
23382	ObfuscationSetting *ObfuscationSetting `locationName:"obfuscationSetting" type:"structure"`
23383
23384	// The unique identifier of the slot that was updated.
23385	SlotId *string `locationName:"slotId" min:"10" type:"string"`
23386
23387	// The updated name of the slot.
23388	SlotName *string `locationName:"slotName" min:"1" type:"string"`
23389
23390	// The updated identifier of the slot type that provides values for the slot.
23391	SlotTypeId *string `locationName:"slotTypeId" min:"1" type:"string"`
23392
23393	// The updated prompts that Amazon Lex sends to the user to elicit a response
23394	// that provides a value for the slot.
23395	ValueElicitationSetting *SlotValueElicitationSetting `locationName:"valueElicitationSetting" type:"structure"`
23396}
23397
23398// String returns the string representation.
23399//
23400// API parameter values that are decorated as "sensitive" in the API will not
23401// be included in the string output. The member name will be present, but the
23402// value will be replaced with "sensitive".
23403func (s UpdateSlotOutput) String() string {
23404	return awsutil.Prettify(s)
23405}
23406
23407// GoString returns the string representation.
23408//
23409// API parameter values that are decorated as "sensitive" in the API will not
23410// be included in the string output. The member name will be present, but the
23411// value will be replaced with "sensitive".
23412func (s UpdateSlotOutput) GoString() string {
23413	return s.String()
23414}
23415
23416// SetBotId sets the BotId field's value.
23417func (s *UpdateSlotOutput) SetBotId(v string) *UpdateSlotOutput {
23418	s.BotId = &v
23419	return s
23420}
23421
23422// SetBotVersion sets the BotVersion field's value.
23423func (s *UpdateSlotOutput) SetBotVersion(v string) *UpdateSlotOutput {
23424	s.BotVersion = &v
23425	return s
23426}
23427
23428// SetCreationDateTime sets the CreationDateTime field's value.
23429func (s *UpdateSlotOutput) SetCreationDateTime(v time.Time) *UpdateSlotOutput {
23430	s.CreationDateTime = &v
23431	return s
23432}
23433
23434// SetDescription sets the Description field's value.
23435func (s *UpdateSlotOutput) SetDescription(v string) *UpdateSlotOutput {
23436	s.Description = &v
23437	return s
23438}
23439
23440// SetIntentId sets the IntentId field's value.
23441func (s *UpdateSlotOutput) SetIntentId(v string) *UpdateSlotOutput {
23442	s.IntentId = &v
23443	return s
23444}
23445
23446// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
23447func (s *UpdateSlotOutput) SetLastUpdatedDateTime(v time.Time) *UpdateSlotOutput {
23448	s.LastUpdatedDateTime = &v
23449	return s
23450}
23451
23452// SetLocaleId sets the LocaleId field's value.
23453func (s *UpdateSlotOutput) SetLocaleId(v string) *UpdateSlotOutput {
23454	s.LocaleId = &v
23455	return s
23456}
23457
23458// SetMultipleValuesSetting sets the MultipleValuesSetting field's value.
23459func (s *UpdateSlotOutput) SetMultipleValuesSetting(v *MultipleValuesSetting) *UpdateSlotOutput {
23460	s.MultipleValuesSetting = v
23461	return s
23462}
23463
23464// SetObfuscationSetting sets the ObfuscationSetting field's value.
23465func (s *UpdateSlotOutput) SetObfuscationSetting(v *ObfuscationSetting) *UpdateSlotOutput {
23466	s.ObfuscationSetting = v
23467	return s
23468}
23469
23470// SetSlotId sets the SlotId field's value.
23471func (s *UpdateSlotOutput) SetSlotId(v string) *UpdateSlotOutput {
23472	s.SlotId = &v
23473	return s
23474}
23475
23476// SetSlotName sets the SlotName field's value.
23477func (s *UpdateSlotOutput) SetSlotName(v string) *UpdateSlotOutput {
23478	s.SlotName = &v
23479	return s
23480}
23481
23482// SetSlotTypeId sets the SlotTypeId field's value.
23483func (s *UpdateSlotOutput) SetSlotTypeId(v string) *UpdateSlotOutput {
23484	s.SlotTypeId = &v
23485	return s
23486}
23487
23488// SetValueElicitationSetting sets the ValueElicitationSetting field's value.
23489func (s *UpdateSlotOutput) SetValueElicitationSetting(v *SlotValueElicitationSetting) *UpdateSlotOutput {
23490	s.ValueElicitationSetting = v
23491	return s
23492}
23493
23494type UpdateSlotTypeInput struct {
23495	_ struct{} `type:"structure"`
23496
23497	// The identifier of the bot that contains the slot type.
23498	//
23499	// BotId is a required field
23500	BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"`
23501
23502	// The version of the bot that contains the slot type. Must be DRAFT.
23503	//
23504	// BotVersion is a required field
23505	BotVersion *string `location:"uri" locationName:"botVersion" min:"5" type:"string" required:"true"`
23506
23507	// The new description of the slot type.
23508	Description *string `locationName:"description" type:"string"`
23509
23510	// The identifier of the language and locale that contains the slot type. The
23511	// string must match one of the supported locales. For more information, see
23512	// Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).
23513	//
23514	// LocaleId is a required field
23515	LocaleId *string `location:"uri" locationName:"localeId" type:"string" required:"true"`
23516
23517	// The new built-in slot type that should be used as the parent of this slot
23518	// type.
23519	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" type:"string"`
23520
23521	// The unique identifier of the slot type to update.
23522	//
23523	// SlotTypeId is a required field
23524	SlotTypeId *string `location:"uri" locationName:"slotTypeId" min:"10" type:"string" required:"true"`
23525
23526	// The new name of the slot type.
23527	//
23528	// SlotTypeName is a required field
23529	SlotTypeName *string `locationName:"slotTypeName" min:"1" type:"string" required:"true"`
23530
23531	// A new list of values and their optional synonyms that define the values that
23532	// the slot type can take.
23533	SlotTypeValues []*SlotTypeValue `locationName:"slotTypeValues" min:"1" type:"list"`
23534
23535	// The strategy that Amazon Lex should use when deciding on a value from the
23536	// list of slot type values.
23537	//
23538	// ValueSelectionSetting is a required field
23539	ValueSelectionSetting *SlotValueSelectionSetting `locationName:"valueSelectionSetting" type:"structure" required:"true"`
23540}
23541
23542// String returns the string representation.
23543//
23544// API parameter values that are decorated as "sensitive" in the API will not
23545// be included in the string output. The member name will be present, but the
23546// value will be replaced with "sensitive".
23547func (s UpdateSlotTypeInput) String() string {
23548	return awsutil.Prettify(s)
23549}
23550
23551// GoString returns the string representation.
23552//
23553// API parameter values that are decorated as "sensitive" in the API will not
23554// be included in the string output. The member name will be present, but the
23555// value will be replaced with "sensitive".
23556func (s UpdateSlotTypeInput) GoString() string {
23557	return s.String()
23558}
23559
23560// Validate inspects the fields of the type to determine if they are valid.
23561func (s *UpdateSlotTypeInput) Validate() error {
23562	invalidParams := request.ErrInvalidParams{Context: "UpdateSlotTypeInput"}
23563	if s.BotId == nil {
23564		invalidParams.Add(request.NewErrParamRequired("BotId"))
23565	}
23566	if s.BotId != nil && len(*s.BotId) < 10 {
23567		invalidParams.Add(request.NewErrParamMinLen("BotId", 10))
23568	}
23569	if s.BotVersion == nil {
23570		invalidParams.Add(request.NewErrParamRequired("BotVersion"))
23571	}
23572	if s.BotVersion != nil && len(*s.BotVersion) < 5 {
23573		invalidParams.Add(request.NewErrParamMinLen("BotVersion", 5))
23574	}
23575	if s.LocaleId == nil {
23576		invalidParams.Add(request.NewErrParamRequired("LocaleId"))
23577	}
23578	if s.LocaleId != nil && len(*s.LocaleId) < 1 {
23579		invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1))
23580	}
23581	if s.SlotTypeId == nil {
23582		invalidParams.Add(request.NewErrParamRequired("SlotTypeId"))
23583	}
23584	if s.SlotTypeId != nil && len(*s.SlotTypeId) < 10 {
23585		invalidParams.Add(request.NewErrParamMinLen("SlotTypeId", 10))
23586	}
23587	if s.SlotTypeName == nil {
23588		invalidParams.Add(request.NewErrParamRequired("SlotTypeName"))
23589	}
23590	if s.SlotTypeName != nil && len(*s.SlotTypeName) < 1 {
23591		invalidParams.Add(request.NewErrParamMinLen("SlotTypeName", 1))
23592	}
23593	if s.SlotTypeValues != nil && len(s.SlotTypeValues) < 1 {
23594		invalidParams.Add(request.NewErrParamMinLen("SlotTypeValues", 1))
23595	}
23596	if s.ValueSelectionSetting == nil {
23597		invalidParams.Add(request.NewErrParamRequired("ValueSelectionSetting"))
23598	}
23599	if s.SlotTypeValues != nil {
23600		for i, v := range s.SlotTypeValues {
23601			if v == nil {
23602				continue
23603			}
23604			if err := v.Validate(); err != nil {
23605				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SlotTypeValues", i), err.(request.ErrInvalidParams))
23606			}
23607		}
23608	}
23609	if s.ValueSelectionSetting != nil {
23610		if err := s.ValueSelectionSetting.Validate(); err != nil {
23611			invalidParams.AddNested("ValueSelectionSetting", err.(request.ErrInvalidParams))
23612		}
23613	}
23614
23615	if invalidParams.Len() > 0 {
23616		return invalidParams
23617	}
23618	return nil
23619}
23620
23621// SetBotId sets the BotId field's value.
23622func (s *UpdateSlotTypeInput) SetBotId(v string) *UpdateSlotTypeInput {
23623	s.BotId = &v
23624	return s
23625}
23626
23627// SetBotVersion sets the BotVersion field's value.
23628func (s *UpdateSlotTypeInput) SetBotVersion(v string) *UpdateSlotTypeInput {
23629	s.BotVersion = &v
23630	return s
23631}
23632
23633// SetDescription sets the Description field's value.
23634func (s *UpdateSlotTypeInput) SetDescription(v string) *UpdateSlotTypeInput {
23635	s.Description = &v
23636	return s
23637}
23638
23639// SetLocaleId sets the LocaleId field's value.
23640func (s *UpdateSlotTypeInput) SetLocaleId(v string) *UpdateSlotTypeInput {
23641	s.LocaleId = &v
23642	return s
23643}
23644
23645// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
23646func (s *UpdateSlotTypeInput) SetParentSlotTypeSignature(v string) *UpdateSlotTypeInput {
23647	s.ParentSlotTypeSignature = &v
23648	return s
23649}
23650
23651// SetSlotTypeId sets the SlotTypeId field's value.
23652func (s *UpdateSlotTypeInput) SetSlotTypeId(v string) *UpdateSlotTypeInput {
23653	s.SlotTypeId = &v
23654	return s
23655}
23656
23657// SetSlotTypeName sets the SlotTypeName field's value.
23658func (s *UpdateSlotTypeInput) SetSlotTypeName(v string) *UpdateSlotTypeInput {
23659	s.SlotTypeName = &v
23660	return s
23661}
23662
23663// SetSlotTypeValues sets the SlotTypeValues field's value.
23664func (s *UpdateSlotTypeInput) SetSlotTypeValues(v []*SlotTypeValue) *UpdateSlotTypeInput {
23665	s.SlotTypeValues = v
23666	return s
23667}
23668
23669// SetValueSelectionSetting sets the ValueSelectionSetting field's value.
23670func (s *UpdateSlotTypeInput) SetValueSelectionSetting(v *SlotValueSelectionSetting) *UpdateSlotTypeInput {
23671	s.ValueSelectionSetting = v
23672	return s
23673}
23674
23675type UpdateSlotTypeOutput struct {
23676	_ struct{} `type:"structure"`
23677
23678	// The identifier of the bot that contains the slot type.
23679	BotId *string `locationName:"botId" min:"10" type:"string"`
23680
23681	// The version of the bot that contains the slot type. This is always DRAFT.
23682	BotVersion *string `locationName:"botVersion" min:"5" type:"string"`
23683
23684	// The timestamp of the date and time that the slot type was created.
23685	CreationDateTime *time.Time `locationName:"creationDateTime" type:"timestamp"`
23686
23687	// The updated description of the slot type.
23688	Description *string `locationName:"description" type:"string"`
23689
23690	// A timestamp of the date and time that the slot type was last updated.
23691	LastUpdatedDateTime *time.Time `locationName:"lastUpdatedDateTime" type:"timestamp"`
23692
23693	// The language and locale of the updated slot type.
23694	LocaleId *string `locationName:"localeId" type:"string"`
23695
23696	// The updated signature of the built-in slot type that is the parent of this
23697	// slot type.
23698	ParentSlotTypeSignature *string `locationName:"parentSlotTypeSignature" type:"string"`
23699
23700	// The unique identifier of the updated slot type.
23701	SlotTypeId *string `locationName:"slotTypeId" min:"10" type:"string"`
23702
23703	// The updated name of the slot type.
23704	SlotTypeName *string `locationName:"slotTypeName" min:"1" type:"string"`
23705
23706	// The updated values that the slot type provides.
23707	SlotTypeValues []*SlotTypeValue `locationName:"slotTypeValues" min:"1" type:"list"`
23708
23709	// The updated strategy that Amazon Lex uses to determine which value to select
23710	// from the slot type.
23711	ValueSelectionSetting *SlotValueSelectionSetting `locationName:"valueSelectionSetting" type:"structure"`
23712}
23713
23714// String returns the string representation.
23715//
23716// API parameter values that are decorated as "sensitive" in the API will not
23717// be included in the string output. The member name will be present, but the
23718// value will be replaced with "sensitive".
23719func (s UpdateSlotTypeOutput) String() string {
23720	return awsutil.Prettify(s)
23721}
23722
23723// GoString returns the string representation.
23724//
23725// API parameter values that are decorated as "sensitive" in the API will not
23726// be included in the string output. The member name will be present, but the
23727// value will be replaced with "sensitive".
23728func (s UpdateSlotTypeOutput) GoString() string {
23729	return s.String()
23730}
23731
23732// SetBotId sets the BotId field's value.
23733func (s *UpdateSlotTypeOutput) SetBotId(v string) *UpdateSlotTypeOutput {
23734	s.BotId = &v
23735	return s
23736}
23737
23738// SetBotVersion sets the BotVersion field's value.
23739func (s *UpdateSlotTypeOutput) SetBotVersion(v string) *UpdateSlotTypeOutput {
23740	s.BotVersion = &v
23741	return s
23742}
23743
23744// SetCreationDateTime sets the CreationDateTime field's value.
23745func (s *UpdateSlotTypeOutput) SetCreationDateTime(v time.Time) *UpdateSlotTypeOutput {
23746	s.CreationDateTime = &v
23747	return s
23748}
23749
23750// SetDescription sets the Description field's value.
23751func (s *UpdateSlotTypeOutput) SetDescription(v string) *UpdateSlotTypeOutput {
23752	s.Description = &v
23753	return s
23754}
23755
23756// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
23757func (s *UpdateSlotTypeOutput) SetLastUpdatedDateTime(v time.Time) *UpdateSlotTypeOutput {
23758	s.LastUpdatedDateTime = &v
23759	return s
23760}
23761
23762// SetLocaleId sets the LocaleId field's value.
23763func (s *UpdateSlotTypeOutput) SetLocaleId(v string) *UpdateSlotTypeOutput {
23764	s.LocaleId = &v
23765	return s
23766}
23767
23768// SetParentSlotTypeSignature sets the ParentSlotTypeSignature field's value.
23769func (s *UpdateSlotTypeOutput) SetParentSlotTypeSignature(v string) *UpdateSlotTypeOutput {
23770	s.ParentSlotTypeSignature = &v
23771	return s
23772}
23773
23774// SetSlotTypeId sets the SlotTypeId field's value.
23775func (s *UpdateSlotTypeOutput) SetSlotTypeId(v string) *UpdateSlotTypeOutput {
23776	s.SlotTypeId = &v
23777	return s
23778}
23779
23780// SetSlotTypeName sets the SlotTypeName field's value.
23781func (s *UpdateSlotTypeOutput) SetSlotTypeName(v string) *UpdateSlotTypeOutput {
23782	s.SlotTypeName = &v
23783	return s
23784}
23785
23786// SetSlotTypeValues sets the SlotTypeValues field's value.
23787func (s *UpdateSlotTypeOutput) SetSlotTypeValues(v []*SlotTypeValue) *UpdateSlotTypeOutput {
23788	s.SlotTypeValues = v
23789	return s
23790}
23791
23792// SetValueSelectionSetting sets the ValueSelectionSetting field's value.
23793func (s *UpdateSlotTypeOutput) SetValueSelectionSetting(v *SlotValueSelectionSetting) *UpdateSlotTypeOutput {
23794	s.ValueSelectionSetting = v
23795	return s
23796}
23797
23798// Provides parameters for setting the time window and duration for aggregating
23799// utterance data.
23800type UtteranceAggregationDuration struct {
23801	_ struct{} `type:"structure"`
23802
23803	// The desired time window for aggregating utterances.
23804	//
23805	// RelativeAggregationDuration is a required field
23806	RelativeAggregationDuration *RelativeAggregationDuration `locationName:"relativeAggregationDuration" type:"structure" required:"true"`
23807}
23808
23809// String returns the string representation.
23810//
23811// API parameter values that are decorated as "sensitive" in the API will not
23812// be included in the string output. The member name will be present, but the
23813// value will be replaced with "sensitive".
23814func (s UtteranceAggregationDuration) String() string {
23815	return awsutil.Prettify(s)
23816}
23817
23818// GoString returns the string representation.
23819//
23820// API parameter values that are decorated as "sensitive" in the API will not
23821// be included in the string output. The member name will be present, but the
23822// value will be replaced with "sensitive".
23823func (s UtteranceAggregationDuration) GoString() string {
23824	return s.String()
23825}
23826
23827// Validate inspects the fields of the type to determine if they are valid.
23828func (s *UtteranceAggregationDuration) Validate() error {
23829	invalidParams := request.ErrInvalidParams{Context: "UtteranceAggregationDuration"}
23830	if s.RelativeAggregationDuration == nil {
23831		invalidParams.Add(request.NewErrParamRequired("RelativeAggregationDuration"))
23832	}
23833	if s.RelativeAggregationDuration != nil {
23834		if err := s.RelativeAggregationDuration.Validate(); err != nil {
23835			invalidParams.AddNested("RelativeAggregationDuration", err.(request.ErrInvalidParams))
23836		}
23837	}
23838
23839	if invalidParams.Len() > 0 {
23840		return invalidParams
23841	}
23842	return nil
23843}
23844
23845// SetRelativeAggregationDuration sets the RelativeAggregationDuration field's value.
23846func (s *UtteranceAggregationDuration) SetRelativeAggregationDuration(v *RelativeAggregationDuration) *UtteranceAggregationDuration {
23847	s.RelativeAggregationDuration = v
23848	return s
23849}
23850
23851// One of the input parameters in your request isn't valid. Check the parameters
23852// and try your request again.
23853type ValidationException struct {
23854	_            struct{}                  `type:"structure"`
23855	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
23856
23857	Message_ *string `locationName:"message" type:"string"`
23858}
23859
23860// String returns the string representation.
23861//
23862// API parameter values that are decorated as "sensitive" in the API will not
23863// be included in the string output. The member name will be present, but the
23864// value will be replaced with "sensitive".
23865func (s ValidationException) String() string {
23866	return awsutil.Prettify(s)
23867}
23868
23869// GoString returns the string representation.
23870//
23871// API parameter values that are decorated as "sensitive" in the API will not
23872// be included in the string output. The member name will be present, but the
23873// value will be replaced with "sensitive".
23874func (s ValidationException) GoString() string {
23875	return s.String()
23876}
23877
23878func newErrorValidationException(v protocol.ResponseMetadata) error {
23879	return &ValidationException{
23880		RespMetadata: v,
23881	}
23882}
23883
23884// Code returns the exception type name.
23885func (s *ValidationException) Code() string {
23886	return "ValidationException"
23887}
23888
23889// Message returns the exception's message.
23890func (s *ValidationException) Message() string {
23891	if s.Message_ != nil {
23892		return *s.Message_
23893	}
23894	return ""
23895}
23896
23897// OrigErr always returns nil, satisfies awserr.Error interface.
23898func (s *ValidationException) OrigErr() error {
23899	return nil
23900}
23901
23902func (s *ValidationException) Error() string {
23903	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
23904}
23905
23906// Status code returns the HTTP status code for the request's response error.
23907func (s *ValidationException) StatusCode() int {
23908	return s.RespMetadata.StatusCode
23909}
23910
23911// RequestID returns the service's response RequestID for request.
23912func (s *ValidationException) RequestID() string {
23913	return s.RespMetadata.RequestID
23914}
23915
23916// Defines settings for using an Amazon Polly voice to communicate with a user.
23917type VoiceSettings struct {
23918	_ struct{} `type:"structure"`
23919
23920	// The identifier of the Amazon Polly voice to use.
23921	//
23922	// VoiceId is a required field
23923	VoiceId *string `locationName:"voiceId" type:"string" required:"true"`
23924}
23925
23926// String returns the string representation.
23927//
23928// API parameter values that are decorated as "sensitive" in the API will not
23929// be included in the string output. The member name will be present, but the
23930// value will be replaced with "sensitive".
23931func (s VoiceSettings) String() string {
23932	return awsutil.Prettify(s)
23933}
23934
23935// GoString returns the string representation.
23936//
23937// API parameter values that are decorated as "sensitive" in the API will not
23938// be included in the string output. The member name will be present, but the
23939// value will be replaced with "sensitive".
23940func (s VoiceSettings) GoString() string {
23941	return s.String()
23942}
23943
23944// Validate inspects the fields of the type to determine if they are valid.
23945func (s *VoiceSettings) Validate() error {
23946	invalidParams := request.ErrInvalidParams{Context: "VoiceSettings"}
23947	if s.VoiceId == nil {
23948		invalidParams.Add(request.NewErrParamRequired("VoiceId"))
23949	}
23950
23951	if invalidParams.Len() > 0 {
23952		return invalidParams
23953	}
23954	return nil
23955}
23956
23957// SetVoiceId sets the VoiceId field's value.
23958func (s *VoiceSettings) SetVoiceId(v string) *VoiceSettings {
23959	s.VoiceId = &v
23960	return s
23961}
23962
23963// Specifies the prompts that Amazon Lex uses while a bot is waiting for customer
23964// input.
23965type WaitAndContinueSpecification struct {
23966	_ struct{} `type:"structure"`
23967
23968	// Specifies whether the bot will wait for a user to respond. When this field
23969	// is false, wait and continue responses for a slot aren't used. If the active
23970	// field isn't specified, the default is true.
23971	Active *bool `locationName:"active" type:"boolean"`
23972
23973	// The response that Amazon Lex sends to indicate that the bot is ready to continue
23974	// the conversation.
23975	//
23976	// ContinueResponse is a required field
23977	ContinueResponse *ResponseSpecification `locationName:"continueResponse" type:"structure" required:"true"`
23978
23979	// A response that Amazon Lex sends periodically to the user to indicate that
23980	// the bot is still waiting for input from the user.
23981	StillWaitingResponse *StillWaitingResponseSpecification `locationName:"stillWaitingResponse" type:"structure"`
23982
23983	// The response that Amazon Lex sends to indicate that the bot is waiting for
23984	// the conversation to continue.
23985	//
23986	// WaitingResponse is a required field
23987	WaitingResponse *ResponseSpecification `locationName:"waitingResponse" type:"structure" required:"true"`
23988}
23989
23990// String returns the string representation.
23991//
23992// API parameter values that are decorated as "sensitive" in the API will not
23993// be included in the string output. The member name will be present, but the
23994// value will be replaced with "sensitive".
23995func (s WaitAndContinueSpecification) String() string {
23996	return awsutil.Prettify(s)
23997}
23998
23999// GoString returns the string representation.
24000//
24001// API parameter values that are decorated as "sensitive" in the API will not
24002// be included in the string output. The member name will be present, but the
24003// value will be replaced with "sensitive".
24004func (s WaitAndContinueSpecification) GoString() string {
24005	return s.String()
24006}
24007
24008// Validate inspects the fields of the type to determine if they are valid.
24009func (s *WaitAndContinueSpecification) Validate() error {
24010	invalidParams := request.ErrInvalidParams{Context: "WaitAndContinueSpecification"}
24011	if s.ContinueResponse == nil {
24012		invalidParams.Add(request.NewErrParamRequired("ContinueResponse"))
24013	}
24014	if s.WaitingResponse == nil {
24015		invalidParams.Add(request.NewErrParamRequired("WaitingResponse"))
24016	}
24017	if s.ContinueResponse != nil {
24018		if err := s.ContinueResponse.Validate(); err != nil {
24019			invalidParams.AddNested("ContinueResponse", err.(request.ErrInvalidParams))
24020		}
24021	}
24022	if s.StillWaitingResponse != nil {
24023		if err := s.StillWaitingResponse.Validate(); err != nil {
24024			invalidParams.AddNested("StillWaitingResponse", err.(request.ErrInvalidParams))
24025		}
24026	}
24027	if s.WaitingResponse != nil {
24028		if err := s.WaitingResponse.Validate(); err != nil {
24029			invalidParams.AddNested("WaitingResponse", err.(request.ErrInvalidParams))
24030		}
24031	}
24032
24033	if invalidParams.Len() > 0 {
24034		return invalidParams
24035	}
24036	return nil
24037}
24038
24039// SetActive sets the Active field's value.
24040func (s *WaitAndContinueSpecification) SetActive(v bool) *WaitAndContinueSpecification {
24041	s.Active = &v
24042	return s
24043}
24044
24045// SetContinueResponse sets the ContinueResponse field's value.
24046func (s *WaitAndContinueSpecification) SetContinueResponse(v *ResponseSpecification) *WaitAndContinueSpecification {
24047	s.ContinueResponse = v
24048	return s
24049}
24050
24051// SetStillWaitingResponse sets the StillWaitingResponse field's value.
24052func (s *WaitAndContinueSpecification) SetStillWaitingResponse(v *StillWaitingResponseSpecification) *WaitAndContinueSpecification {
24053	s.StillWaitingResponse = v
24054	return s
24055}
24056
24057// SetWaitingResponse sets the WaitingResponse field's value.
24058func (s *WaitAndContinueSpecification) SetWaitingResponse(v *ResponseSpecification) *WaitAndContinueSpecification {
24059	s.WaitingResponse = v
24060	return s
24061}
24062
24063const (
24064	// AggregatedUtterancesFilterNameUtterance is a AggregatedUtterancesFilterName enum value
24065	AggregatedUtterancesFilterNameUtterance = "Utterance"
24066)
24067
24068// AggregatedUtterancesFilterName_Values returns all elements of the AggregatedUtterancesFilterName enum
24069func AggregatedUtterancesFilterName_Values() []string {
24070	return []string{
24071		AggregatedUtterancesFilterNameUtterance,
24072	}
24073}
24074
24075const (
24076	// AggregatedUtterancesFilterOperatorCo is a AggregatedUtterancesFilterOperator enum value
24077	AggregatedUtterancesFilterOperatorCo = "CO"
24078
24079	// AggregatedUtterancesFilterOperatorEq is a AggregatedUtterancesFilterOperator enum value
24080	AggregatedUtterancesFilterOperatorEq = "EQ"
24081)
24082
24083// AggregatedUtterancesFilterOperator_Values returns all elements of the AggregatedUtterancesFilterOperator enum
24084func AggregatedUtterancesFilterOperator_Values() []string {
24085	return []string{
24086		AggregatedUtterancesFilterOperatorCo,
24087		AggregatedUtterancesFilterOperatorEq,
24088	}
24089}
24090
24091const (
24092	// AggregatedUtterancesSortAttributeHitCount is a AggregatedUtterancesSortAttribute enum value
24093	AggregatedUtterancesSortAttributeHitCount = "HitCount"
24094
24095	// AggregatedUtterancesSortAttributeMissedCount is a AggregatedUtterancesSortAttribute enum value
24096	AggregatedUtterancesSortAttributeMissedCount = "MissedCount"
24097)
24098
24099// AggregatedUtterancesSortAttribute_Values returns all elements of the AggregatedUtterancesSortAttribute enum
24100func AggregatedUtterancesSortAttribute_Values() []string {
24101	return []string{
24102		AggregatedUtterancesSortAttributeHitCount,
24103		AggregatedUtterancesSortAttributeMissedCount,
24104	}
24105}
24106
24107const (
24108	// BotAliasStatusCreating is a BotAliasStatus enum value
24109	BotAliasStatusCreating = "Creating"
24110
24111	// BotAliasStatusAvailable is a BotAliasStatus enum value
24112	BotAliasStatusAvailable = "Available"
24113
24114	// BotAliasStatusDeleting is a BotAliasStatus enum value
24115	BotAliasStatusDeleting = "Deleting"
24116
24117	// BotAliasStatusFailed is a BotAliasStatus enum value
24118	BotAliasStatusFailed = "Failed"
24119)
24120
24121// BotAliasStatus_Values returns all elements of the BotAliasStatus enum
24122func BotAliasStatus_Values() []string {
24123	return []string{
24124		BotAliasStatusCreating,
24125		BotAliasStatusAvailable,
24126		BotAliasStatusDeleting,
24127		BotAliasStatusFailed,
24128	}
24129}
24130
24131const (
24132	// BotFilterNameBotName is a BotFilterName enum value
24133	BotFilterNameBotName = "BotName"
24134)
24135
24136// BotFilterName_Values returns all elements of the BotFilterName enum
24137func BotFilterName_Values() []string {
24138	return []string{
24139		BotFilterNameBotName,
24140	}
24141}
24142
24143const (
24144	// BotFilterOperatorCo is a BotFilterOperator enum value
24145	BotFilterOperatorCo = "CO"
24146
24147	// BotFilterOperatorEq is a BotFilterOperator enum value
24148	BotFilterOperatorEq = "EQ"
24149)
24150
24151// BotFilterOperator_Values returns all elements of the BotFilterOperator enum
24152func BotFilterOperator_Values() []string {
24153	return []string{
24154		BotFilterOperatorCo,
24155		BotFilterOperatorEq,
24156	}
24157}
24158
24159const (
24160	// BotLocaleFilterNameBotLocaleName is a BotLocaleFilterName enum value
24161	BotLocaleFilterNameBotLocaleName = "BotLocaleName"
24162)
24163
24164// BotLocaleFilterName_Values returns all elements of the BotLocaleFilterName enum
24165func BotLocaleFilterName_Values() []string {
24166	return []string{
24167		BotLocaleFilterNameBotLocaleName,
24168	}
24169}
24170
24171const (
24172	// BotLocaleFilterOperatorCo is a BotLocaleFilterOperator enum value
24173	BotLocaleFilterOperatorCo = "CO"
24174
24175	// BotLocaleFilterOperatorEq is a BotLocaleFilterOperator enum value
24176	BotLocaleFilterOperatorEq = "EQ"
24177)
24178
24179// BotLocaleFilterOperator_Values returns all elements of the BotLocaleFilterOperator enum
24180func BotLocaleFilterOperator_Values() []string {
24181	return []string{
24182		BotLocaleFilterOperatorCo,
24183		BotLocaleFilterOperatorEq,
24184	}
24185}
24186
24187const (
24188	// BotLocaleSortAttributeBotLocaleName is a BotLocaleSortAttribute enum value
24189	BotLocaleSortAttributeBotLocaleName = "BotLocaleName"
24190)
24191
24192// BotLocaleSortAttribute_Values returns all elements of the BotLocaleSortAttribute enum
24193func BotLocaleSortAttribute_Values() []string {
24194	return []string{
24195		BotLocaleSortAttributeBotLocaleName,
24196	}
24197}
24198
24199const (
24200	// BotLocaleStatusCreating is a BotLocaleStatus enum value
24201	BotLocaleStatusCreating = "Creating"
24202
24203	// BotLocaleStatusBuilding is a BotLocaleStatus enum value
24204	BotLocaleStatusBuilding = "Building"
24205
24206	// BotLocaleStatusBuilt is a BotLocaleStatus enum value
24207	BotLocaleStatusBuilt = "Built"
24208
24209	// BotLocaleStatusReadyExpressTesting is a BotLocaleStatus enum value
24210	BotLocaleStatusReadyExpressTesting = "ReadyExpressTesting"
24211
24212	// BotLocaleStatusFailed is a BotLocaleStatus enum value
24213	BotLocaleStatusFailed = "Failed"
24214
24215	// BotLocaleStatusDeleting is a BotLocaleStatus enum value
24216	BotLocaleStatusDeleting = "Deleting"
24217
24218	// BotLocaleStatusNotBuilt is a BotLocaleStatus enum value
24219	BotLocaleStatusNotBuilt = "NotBuilt"
24220
24221	// BotLocaleStatusImporting is a BotLocaleStatus enum value
24222	BotLocaleStatusImporting = "Importing"
24223)
24224
24225// BotLocaleStatus_Values returns all elements of the BotLocaleStatus enum
24226func BotLocaleStatus_Values() []string {
24227	return []string{
24228		BotLocaleStatusCreating,
24229		BotLocaleStatusBuilding,
24230		BotLocaleStatusBuilt,
24231		BotLocaleStatusReadyExpressTesting,
24232		BotLocaleStatusFailed,
24233		BotLocaleStatusDeleting,
24234		BotLocaleStatusNotBuilt,
24235		BotLocaleStatusImporting,
24236	}
24237}
24238
24239const (
24240	// BotSortAttributeBotName is a BotSortAttribute enum value
24241	BotSortAttributeBotName = "BotName"
24242)
24243
24244// BotSortAttribute_Values returns all elements of the BotSortAttribute enum
24245func BotSortAttribute_Values() []string {
24246	return []string{
24247		BotSortAttributeBotName,
24248	}
24249}
24250
24251const (
24252	// BotStatusCreating is a BotStatus enum value
24253	BotStatusCreating = "Creating"
24254
24255	// BotStatusAvailable is a BotStatus enum value
24256	BotStatusAvailable = "Available"
24257
24258	// BotStatusInactive is a BotStatus enum value
24259	BotStatusInactive = "Inactive"
24260
24261	// BotStatusDeleting is a BotStatus enum value
24262	BotStatusDeleting = "Deleting"
24263
24264	// BotStatusFailed is a BotStatus enum value
24265	BotStatusFailed = "Failed"
24266
24267	// BotStatusVersioning is a BotStatus enum value
24268	BotStatusVersioning = "Versioning"
24269
24270	// BotStatusImporting is a BotStatus enum value
24271	BotStatusImporting = "Importing"
24272)
24273
24274// BotStatus_Values returns all elements of the BotStatus enum
24275func BotStatus_Values() []string {
24276	return []string{
24277		BotStatusCreating,
24278		BotStatusAvailable,
24279		BotStatusInactive,
24280		BotStatusDeleting,
24281		BotStatusFailed,
24282		BotStatusVersioning,
24283		BotStatusImporting,
24284	}
24285}
24286
24287const (
24288	// BotVersionSortAttributeBotVersion is a BotVersionSortAttribute enum value
24289	BotVersionSortAttributeBotVersion = "BotVersion"
24290)
24291
24292// BotVersionSortAttribute_Values returns all elements of the BotVersionSortAttribute enum
24293func BotVersionSortAttribute_Values() []string {
24294	return []string{
24295		BotVersionSortAttributeBotVersion,
24296	}
24297}
24298
24299const (
24300	// BuiltInIntentSortAttributeIntentSignature is a BuiltInIntentSortAttribute enum value
24301	BuiltInIntentSortAttributeIntentSignature = "IntentSignature"
24302)
24303
24304// BuiltInIntentSortAttribute_Values returns all elements of the BuiltInIntentSortAttribute enum
24305func BuiltInIntentSortAttribute_Values() []string {
24306	return []string{
24307		BuiltInIntentSortAttributeIntentSignature,
24308	}
24309}
24310
24311const (
24312	// BuiltInSlotTypeSortAttributeSlotTypeSignature is a BuiltInSlotTypeSortAttribute enum value
24313	BuiltInSlotTypeSortAttributeSlotTypeSignature = "SlotTypeSignature"
24314)
24315
24316// BuiltInSlotTypeSortAttribute_Values returns all elements of the BuiltInSlotTypeSortAttribute enum
24317func BuiltInSlotTypeSortAttribute_Values() []string {
24318	return []string{
24319		BuiltInSlotTypeSortAttributeSlotTypeSignature,
24320	}
24321}
24322
24323const (
24324	// EffectAllow is a Effect enum value
24325	EffectAllow = "Allow"
24326
24327	// EffectDeny is a Effect enum value
24328	EffectDeny = "Deny"
24329)
24330
24331// Effect_Values returns all elements of the Effect enum
24332func Effect_Values() []string {
24333	return []string{
24334		EffectAllow,
24335		EffectDeny,
24336	}
24337}
24338
24339const (
24340	// ExportFilterNameExportResourceType is a ExportFilterName enum value
24341	ExportFilterNameExportResourceType = "ExportResourceType"
24342)
24343
24344// ExportFilterName_Values returns all elements of the ExportFilterName enum
24345func ExportFilterName_Values() []string {
24346	return []string{
24347		ExportFilterNameExportResourceType,
24348	}
24349}
24350
24351const (
24352	// ExportFilterOperatorCo is a ExportFilterOperator enum value
24353	ExportFilterOperatorCo = "CO"
24354
24355	// ExportFilterOperatorEq is a ExportFilterOperator enum value
24356	ExportFilterOperatorEq = "EQ"
24357)
24358
24359// ExportFilterOperator_Values returns all elements of the ExportFilterOperator enum
24360func ExportFilterOperator_Values() []string {
24361	return []string{
24362		ExportFilterOperatorCo,
24363		ExportFilterOperatorEq,
24364	}
24365}
24366
24367const (
24368	// ExportSortAttributeLastUpdatedDateTime is a ExportSortAttribute enum value
24369	ExportSortAttributeLastUpdatedDateTime = "LastUpdatedDateTime"
24370)
24371
24372// ExportSortAttribute_Values returns all elements of the ExportSortAttribute enum
24373func ExportSortAttribute_Values() []string {
24374	return []string{
24375		ExportSortAttributeLastUpdatedDateTime,
24376	}
24377}
24378
24379const (
24380	// ExportStatusInProgress is a ExportStatus enum value
24381	ExportStatusInProgress = "InProgress"
24382
24383	// ExportStatusCompleted is a ExportStatus enum value
24384	ExportStatusCompleted = "Completed"
24385
24386	// ExportStatusFailed is a ExportStatus enum value
24387	ExportStatusFailed = "Failed"
24388
24389	// ExportStatusDeleting is a ExportStatus enum value
24390	ExportStatusDeleting = "Deleting"
24391)
24392
24393// ExportStatus_Values returns all elements of the ExportStatus enum
24394func ExportStatus_Values() []string {
24395	return []string{
24396		ExportStatusInProgress,
24397		ExportStatusCompleted,
24398		ExportStatusFailed,
24399		ExportStatusDeleting,
24400	}
24401}
24402
24403const (
24404	// ImportExportFileFormatLexJson is a ImportExportFileFormat enum value
24405	ImportExportFileFormatLexJson = "LexJson"
24406)
24407
24408// ImportExportFileFormat_Values returns all elements of the ImportExportFileFormat enum
24409func ImportExportFileFormat_Values() []string {
24410	return []string{
24411		ImportExportFileFormatLexJson,
24412	}
24413}
24414
24415const (
24416	// ImportFilterNameImportResourceType is a ImportFilterName enum value
24417	ImportFilterNameImportResourceType = "ImportResourceType"
24418)
24419
24420// ImportFilterName_Values returns all elements of the ImportFilterName enum
24421func ImportFilterName_Values() []string {
24422	return []string{
24423		ImportFilterNameImportResourceType,
24424	}
24425}
24426
24427const (
24428	// ImportFilterOperatorCo is a ImportFilterOperator enum value
24429	ImportFilterOperatorCo = "CO"
24430
24431	// ImportFilterOperatorEq is a ImportFilterOperator enum value
24432	ImportFilterOperatorEq = "EQ"
24433)
24434
24435// ImportFilterOperator_Values returns all elements of the ImportFilterOperator enum
24436func ImportFilterOperator_Values() []string {
24437	return []string{
24438		ImportFilterOperatorCo,
24439		ImportFilterOperatorEq,
24440	}
24441}
24442
24443const (
24444	// ImportSortAttributeLastUpdatedDateTime is a ImportSortAttribute enum value
24445	ImportSortAttributeLastUpdatedDateTime = "LastUpdatedDateTime"
24446)
24447
24448// ImportSortAttribute_Values returns all elements of the ImportSortAttribute enum
24449func ImportSortAttribute_Values() []string {
24450	return []string{
24451		ImportSortAttributeLastUpdatedDateTime,
24452	}
24453}
24454
24455const (
24456	// ImportStatusInProgress is a ImportStatus enum value
24457	ImportStatusInProgress = "InProgress"
24458
24459	// ImportStatusCompleted is a ImportStatus enum value
24460	ImportStatusCompleted = "Completed"
24461
24462	// ImportStatusFailed is a ImportStatus enum value
24463	ImportStatusFailed = "Failed"
24464
24465	// ImportStatusDeleting is a ImportStatus enum value
24466	ImportStatusDeleting = "Deleting"
24467)
24468
24469// ImportStatus_Values returns all elements of the ImportStatus enum
24470func ImportStatus_Values() []string {
24471	return []string{
24472		ImportStatusInProgress,
24473		ImportStatusCompleted,
24474		ImportStatusFailed,
24475		ImportStatusDeleting,
24476	}
24477}
24478
24479const (
24480	// IntentFilterNameIntentName is a IntentFilterName enum value
24481	IntentFilterNameIntentName = "IntentName"
24482)
24483
24484// IntentFilterName_Values returns all elements of the IntentFilterName enum
24485func IntentFilterName_Values() []string {
24486	return []string{
24487		IntentFilterNameIntentName,
24488	}
24489}
24490
24491const (
24492	// IntentFilterOperatorCo is a IntentFilterOperator enum value
24493	IntentFilterOperatorCo = "CO"
24494
24495	// IntentFilterOperatorEq is a IntentFilterOperator enum value
24496	IntentFilterOperatorEq = "EQ"
24497)
24498
24499// IntentFilterOperator_Values returns all elements of the IntentFilterOperator enum
24500func IntentFilterOperator_Values() []string {
24501	return []string{
24502		IntentFilterOperatorCo,
24503		IntentFilterOperatorEq,
24504	}
24505}
24506
24507const (
24508	// IntentSortAttributeIntentName is a IntentSortAttribute enum value
24509	IntentSortAttributeIntentName = "IntentName"
24510
24511	// IntentSortAttributeLastUpdatedDateTime is a IntentSortAttribute enum value
24512	IntentSortAttributeLastUpdatedDateTime = "LastUpdatedDateTime"
24513)
24514
24515// IntentSortAttribute_Values returns all elements of the IntentSortAttribute enum
24516func IntentSortAttribute_Values() []string {
24517	return []string{
24518		IntentSortAttributeIntentName,
24519		IntentSortAttributeLastUpdatedDateTime,
24520	}
24521}
24522
24523const (
24524	// MergeStrategyOverwrite is a MergeStrategy enum value
24525	MergeStrategyOverwrite = "Overwrite"
24526
24527	// MergeStrategyFailOnConflict is a MergeStrategy enum value
24528	MergeStrategyFailOnConflict = "FailOnConflict"
24529)
24530
24531// MergeStrategy_Values returns all elements of the MergeStrategy enum
24532func MergeStrategy_Values() []string {
24533	return []string{
24534		MergeStrategyOverwrite,
24535		MergeStrategyFailOnConflict,
24536	}
24537}
24538
24539const (
24540	// ObfuscationSettingTypeNone is a ObfuscationSettingType enum value
24541	ObfuscationSettingTypeNone = "None"
24542
24543	// ObfuscationSettingTypeDefaultObfuscation is a ObfuscationSettingType enum value
24544	ObfuscationSettingTypeDefaultObfuscation = "DefaultObfuscation"
24545)
24546
24547// ObfuscationSettingType_Values returns all elements of the ObfuscationSettingType enum
24548func ObfuscationSettingType_Values() []string {
24549	return []string{
24550		ObfuscationSettingTypeNone,
24551		ObfuscationSettingTypeDefaultObfuscation,
24552	}
24553}
24554
24555const (
24556	// SlotConstraintRequired is a SlotConstraint enum value
24557	SlotConstraintRequired = "Required"
24558
24559	// SlotConstraintOptional is a SlotConstraint enum value
24560	SlotConstraintOptional = "Optional"
24561)
24562
24563// SlotConstraint_Values returns all elements of the SlotConstraint enum
24564func SlotConstraint_Values() []string {
24565	return []string{
24566		SlotConstraintRequired,
24567		SlotConstraintOptional,
24568	}
24569}
24570
24571const (
24572	// SlotFilterNameSlotName is a SlotFilterName enum value
24573	SlotFilterNameSlotName = "SlotName"
24574)
24575
24576// SlotFilterName_Values returns all elements of the SlotFilterName enum
24577func SlotFilterName_Values() []string {
24578	return []string{
24579		SlotFilterNameSlotName,
24580	}
24581}
24582
24583const (
24584	// SlotFilterOperatorCo is a SlotFilterOperator enum value
24585	SlotFilterOperatorCo = "CO"
24586
24587	// SlotFilterOperatorEq is a SlotFilterOperator enum value
24588	SlotFilterOperatorEq = "EQ"
24589)
24590
24591// SlotFilterOperator_Values returns all elements of the SlotFilterOperator enum
24592func SlotFilterOperator_Values() []string {
24593	return []string{
24594		SlotFilterOperatorCo,
24595		SlotFilterOperatorEq,
24596	}
24597}
24598
24599const (
24600	// SlotSortAttributeSlotName is a SlotSortAttribute enum value
24601	SlotSortAttributeSlotName = "SlotName"
24602
24603	// SlotSortAttributeLastUpdatedDateTime is a SlotSortAttribute enum value
24604	SlotSortAttributeLastUpdatedDateTime = "LastUpdatedDateTime"
24605)
24606
24607// SlotSortAttribute_Values returns all elements of the SlotSortAttribute enum
24608func SlotSortAttribute_Values() []string {
24609	return []string{
24610		SlotSortAttributeSlotName,
24611		SlotSortAttributeLastUpdatedDateTime,
24612	}
24613}
24614
24615const (
24616	// SlotTypeFilterNameSlotTypeName is a SlotTypeFilterName enum value
24617	SlotTypeFilterNameSlotTypeName = "SlotTypeName"
24618)
24619
24620// SlotTypeFilterName_Values returns all elements of the SlotTypeFilterName enum
24621func SlotTypeFilterName_Values() []string {
24622	return []string{
24623		SlotTypeFilterNameSlotTypeName,
24624	}
24625}
24626
24627const (
24628	// SlotTypeFilterOperatorCo is a SlotTypeFilterOperator enum value
24629	SlotTypeFilterOperatorCo = "CO"
24630
24631	// SlotTypeFilterOperatorEq is a SlotTypeFilterOperator enum value
24632	SlotTypeFilterOperatorEq = "EQ"
24633)
24634
24635// SlotTypeFilterOperator_Values returns all elements of the SlotTypeFilterOperator enum
24636func SlotTypeFilterOperator_Values() []string {
24637	return []string{
24638		SlotTypeFilterOperatorCo,
24639		SlotTypeFilterOperatorEq,
24640	}
24641}
24642
24643const (
24644	// SlotTypeSortAttributeSlotTypeName is a SlotTypeSortAttribute enum value
24645	SlotTypeSortAttributeSlotTypeName = "SlotTypeName"
24646
24647	// SlotTypeSortAttributeLastUpdatedDateTime is a SlotTypeSortAttribute enum value
24648	SlotTypeSortAttributeLastUpdatedDateTime = "LastUpdatedDateTime"
24649)
24650
24651// SlotTypeSortAttribute_Values returns all elements of the SlotTypeSortAttribute enum
24652func SlotTypeSortAttribute_Values() []string {
24653	return []string{
24654		SlotTypeSortAttributeSlotTypeName,
24655		SlotTypeSortAttributeLastUpdatedDateTime,
24656	}
24657}
24658
24659const (
24660	// SlotValueResolutionStrategyOriginalValue is a SlotValueResolutionStrategy enum value
24661	SlotValueResolutionStrategyOriginalValue = "OriginalValue"
24662
24663	// SlotValueResolutionStrategyTopResolution is a SlotValueResolutionStrategy enum value
24664	SlotValueResolutionStrategyTopResolution = "TopResolution"
24665)
24666
24667// SlotValueResolutionStrategy_Values returns all elements of the SlotValueResolutionStrategy enum
24668func SlotValueResolutionStrategy_Values() []string {
24669	return []string{
24670		SlotValueResolutionStrategyOriginalValue,
24671		SlotValueResolutionStrategyTopResolution,
24672	}
24673}
24674
24675const (
24676	// SortOrderAscending is a SortOrder enum value
24677	SortOrderAscending = "Ascending"
24678
24679	// SortOrderDescending is a SortOrder enum value
24680	SortOrderDescending = "Descending"
24681)
24682
24683// SortOrder_Values returns all elements of the SortOrder enum
24684func SortOrder_Values() []string {
24685	return []string{
24686		SortOrderAscending,
24687		SortOrderDescending,
24688	}
24689}
24690
24691const (
24692	// TimeDimensionHours is a TimeDimension enum value
24693	TimeDimensionHours = "Hours"
24694
24695	// TimeDimensionDays is a TimeDimension enum value
24696	TimeDimensionDays = "Days"
24697
24698	// TimeDimensionWeeks is a TimeDimension enum value
24699	TimeDimensionWeeks = "Weeks"
24700)
24701
24702// TimeDimension_Values returns all elements of the TimeDimension enum
24703func TimeDimension_Values() []string {
24704	return []string{
24705		TimeDimensionHours,
24706		TimeDimensionDays,
24707		TimeDimensionWeeks,
24708	}
24709}
24710