github.com/aavshr/aws-sdk-go@v1.41.3/service/lexruntimev2/api.go (about) 1 // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. 2 3 package lexruntimev2 4 5 import ( 6 "bytes" 7 "fmt" 8 "io" 9 "sync" 10 "time" 11 12 "github.com/aavshr/aws-sdk-go/aws" 13 "github.com/aavshr/aws-sdk-go/aws/awserr" 14 "github.com/aavshr/aws-sdk-go/aws/awsutil" 15 "github.com/aavshr/aws-sdk-go/aws/client" 16 "github.com/aavshr/aws-sdk-go/aws/request" 17 "github.com/aavshr/aws-sdk-go/aws/signer/v4" 18 "github.com/aavshr/aws-sdk-go/private/protocol" 19 "github.com/aavshr/aws-sdk-go/private/protocol/eventstream" 20 "github.com/aavshr/aws-sdk-go/private/protocol/eventstream/eventstreamapi" 21 "github.com/aavshr/aws-sdk-go/private/protocol/rest" 22 "github.com/aavshr/aws-sdk-go/private/protocol/restjson" 23 ) 24 25 const opDeleteSession = "DeleteSession" 26 27 // DeleteSessionRequest generates a "aws/request.Request" representing the 28 // client's request for the DeleteSession operation. The "output" return 29 // value will be populated with the request's response once the request completes 30 // successfully. 31 // 32 // Use "Send" method on the returned Request to send the API call to the service. 33 // the "output" return value is not valid until after Send returns without error. 34 // 35 // See DeleteSession for more information on using the DeleteSession 36 // API call, and error handling. 37 // 38 // This method is useful when you want to inject custom logic or configuration 39 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 40 // 41 // 42 // // Example sending a request using the DeleteSessionRequest method. 43 // req, resp := client.DeleteSessionRequest(params) 44 // 45 // err := req.Send() 46 // if err == nil { // resp is now filled 47 // fmt.Println(resp) 48 // } 49 // 50 // See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/DeleteSession 51 func (c *LexRuntimeV2) DeleteSessionRequest(input *DeleteSessionInput) (req *request.Request, output *DeleteSessionOutput) { 52 op := &request.Operation{ 53 Name: opDeleteSession, 54 HTTPMethod: "DELETE", 55 HTTPPath: "/bots/{botId}/botAliases/{botAliasId}/botLocales/{localeId}/sessions/{sessionId}", 56 } 57 58 if input == nil { 59 input = &DeleteSessionInput{} 60 } 61 62 output = &DeleteSessionOutput{} 63 req = c.newRequest(op, input, output) 64 return 65 } 66 67 // DeleteSession API operation for Amazon Lex Runtime V2. 68 // 69 // Removes session information for a specified bot, alias, and user ID. 70 // 71 // You can use this operation to restart a conversation with a bot. When you 72 // remove a session, the entire history of the session is removed so that you 73 // can start again. 74 // 75 // You don't need to delete a session. Sessions have a time limit and will expire. 76 // Set the session time limit when you create the bot. The default is 5 minutes, 77 // but you can specify anything between 1 minute and 24 hours. 78 // 79 // If you specify a bot or alias ID that doesn't exist, you receive a BadRequestException. 80 // 81 // If the locale doesn't exist in the bot, or if the locale hasn't been enables 82 // for the alias, you receive a BadRequestException. 83 // 84 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 85 // with awserr.Error's Code and Message methods to get detailed information about 86 // the error. 87 // 88 // See the AWS API reference guide for Amazon Lex Runtime V2's 89 // API operation DeleteSession for usage and error information. 90 // 91 // Returned Error Types: 92 // * AccessDeniedException 93 // 94 // * ResourceNotFoundException 95 // 96 // * ValidationException 97 // 98 // * ThrottlingException 99 // 100 // * InternalServerException 101 // 102 // * ConflictException 103 // 104 // See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/DeleteSession 105 func (c *LexRuntimeV2) DeleteSession(input *DeleteSessionInput) (*DeleteSessionOutput, error) { 106 req, out := c.DeleteSessionRequest(input) 107 return out, req.Send() 108 } 109 110 // DeleteSessionWithContext is the same as DeleteSession with the addition of 111 // the ability to pass a context and additional request options. 112 // 113 // See DeleteSession for details on how to use this API operation. 114 // 115 // The context must be non-nil and will be used for request cancellation. If 116 // the context is nil a panic will occur. In the future the SDK may create 117 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 118 // for more information on using Contexts. 119 func (c *LexRuntimeV2) DeleteSessionWithContext(ctx aws.Context, input *DeleteSessionInput, opts ...request.Option) (*DeleteSessionOutput, error) { 120 req, out := c.DeleteSessionRequest(input) 121 req.SetContext(ctx) 122 req.ApplyOptions(opts...) 123 return out, req.Send() 124 } 125 126 const opGetSession = "GetSession" 127 128 // GetSessionRequest generates a "aws/request.Request" representing the 129 // client's request for the GetSession operation. The "output" return 130 // value will be populated with the request's response once the request completes 131 // successfully. 132 // 133 // Use "Send" method on the returned Request to send the API call to the service. 134 // the "output" return value is not valid until after Send returns without error. 135 // 136 // See GetSession for more information on using the GetSession 137 // API call, and error handling. 138 // 139 // This method is useful when you want to inject custom logic or configuration 140 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 141 // 142 // 143 // // Example sending a request using the GetSessionRequest method. 144 // req, resp := client.GetSessionRequest(params) 145 // 146 // err := req.Send() 147 // if err == nil { // resp is now filled 148 // fmt.Println(resp) 149 // } 150 // 151 // See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/GetSession 152 func (c *LexRuntimeV2) GetSessionRequest(input *GetSessionInput) (req *request.Request, output *GetSessionOutput) { 153 op := &request.Operation{ 154 Name: opGetSession, 155 HTTPMethod: "GET", 156 HTTPPath: "/bots/{botId}/botAliases/{botAliasId}/botLocales/{localeId}/sessions/{sessionId}", 157 } 158 159 if input == nil { 160 input = &GetSessionInput{} 161 } 162 163 output = &GetSessionOutput{} 164 req = c.newRequest(op, input, output) 165 return 166 } 167 168 // GetSession API operation for Amazon Lex Runtime V2. 169 // 170 // Returns session information for a specified bot, alias, and user. 171 // 172 // For example, you can use this operation to retrieve session information for 173 // a user that has left a long-running session in use. 174 // 175 // If the bot, alias, or session identifier doesn't exist, Amazon Lex V2 returns 176 // a BadRequestException. If the locale doesn't exist or is not enabled for 177 // the alias, you receive a BadRequestException. 178 // 179 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 180 // with awserr.Error's Code and Message methods to get detailed information about 181 // the error. 182 // 183 // See the AWS API reference guide for Amazon Lex Runtime V2's 184 // API operation GetSession for usage and error information. 185 // 186 // Returned Error Types: 187 // * AccessDeniedException 188 // 189 // * ResourceNotFoundException 190 // 191 // * ValidationException 192 // 193 // * ThrottlingException 194 // 195 // * InternalServerException 196 // 197 // See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/GetSession 198 func (c *LexRuntimeV2) GetSession(input *GetSessionInput) (*GetSessionOutput, error) { 199 req, out := c.GetSessionRequest(input) 200 return out, req.Send() 201 } 202 203 // GetSessionWithContext is the same as GetSession with the addition of 204 // the ability to pass a context and additional request options. 205 // 206 // See GetSession for details on how to use this API operation. 207 // 208 // The context must be non-nil and will be used for request cancellation. If 209 // the context is nil a panic will occur. In the future the SDK may create 210 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 211 // for more information on using Contexts. 212 func (c *LexRuntimeV2) GetSessionWithContext(ctx aws.Context, input *GetSessionInput, opts ...request.Option) (*GetSessionOutput, error) { 213 req, out := c.GetSessionRequest(input) 214 req.SetContext(ctx) 215 req.ApplyOptions(opts...) 216 return out, req.Send() 217 } 218 219 const opPutSession = "PutSession" 220 221 // PutSessionRequest generates a "aws/request.Request" representing the 222 // client's request for the PutSession operation. The "output" return 223 // value will be populated with the request's response once the request completes 224 // successfully. 225 // 226 // Use "Send" method on the returned Request to send the API call to the service. 227 // the "output" return value is not valid until after Send returns without error. 228 // 229 // See PutSession for more information on using the PutSession 230 // API call, and error handling. 231 // 232 // This method is useful when you want to inject custom logic or configuration 233 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 234 // 235 // 236 // // Example sending a request using the PutSessionRequest method. 237 // req, resp := client.PutSessionRequest(params) 238 // 239 // err := req.Send() 240 // if err == nil { // resp is now filled 241 // fmt.Println(resp) 242 // } 243 // 244 // See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/PutSession 245 func (c *LexRuntimeV2) PutSessionRequest(input *PutSessionInput) (req *request.Request, output *PutSessionOutput) { 246 op := &request.Operation{ 247 Name: opPutSession, 248 HTTPMethod: "POST", 249 HTTPPath: "/bots/{botId}/botAliases/{botAliasId}/botLocales/{localeId}/sessions/{sessionId}", 250 } 251 252 if input == nil { 253 input = &PutSessionInput{} 254 } 255 256 output = &PutSessionOutput{} 257 req = c.newRequest(op, input, output) 258 return 259 } 260 261 // PutSession API operation for Amazon Lex Runtime V2. 262 // 263 // Creates a new session or modifies an existing session with an Amazon Lex 264 // V2 bot. Use this operation to enable your application to set the state of 265 // the bot. 266 // 267 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 268 // with awserr.Error's Code and Message methods to get detailed information about 269 // the error. 270 // 271 // See the AWS API reference guide for Amazon Lex Runtime V2's 272 // API operation PutSession for usage and error information. 273 // 274 // Returned Error Types: 275 // * AccessDeniedException 276 // 277 // * ResourceNotFoundException 278 // 279 // * ValidationException 280 // 281 // * ThrottlingException 282 // 283 // * InternalServerException 284 // 285 // * ConflictException 286 // 287 // * DependencyFailedException 288 // 289 // * BadGatewayException 290 // 291 // See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/PutSession 292 func (c *LexRuntimeV2) PutSession(input *PutSessionInput) (*PutSessionOutput, error) { 293 req, out := c.PutSessionRequest(input) 294 return out, req.Send() 295 } 296 297 // PutSessionWithContext is the same as PutSession with the addition of 298 // the ability to pass a context and additional request options. 299 // 300 // See PutSession for details on how to use this API operation. 301 // 302 // The context must be non-nil and will be used for request cancellation. If 303 // the context is nil a panic will occur. In the future the SDK may create 304 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 305 // for more information on using Contexts. 306 func (c *LexRuntimeV2) PutSessionWithContext(ctx aws.Context, input *PutSessionInput, opts ...request.Option) (*PutSessionOutput, error) { 307 req, out := c.PutSessionRequest(input) 308 req.SetContext(ctx) 309 req.ApplyOptions(opts...) 310 return out, req.Send() 311 } 312 313 const opRecognizeText = "RecognizeText" 314 315 // RecognizeTextRequest generates a "aws/request.Request" representing the 316 // client's request for the RecognizeText operation. The "output" return 317 // value will be populated with the request's response once the request completes 318 // successfully. 319 // 320 // Use "Send" method on the returned Request to send the API call to the service. 321 // the "output" return value is not valid until after Send returns without error. 322 // 323 // See RecognizeText for more information on using the RecognizeText 324 // API call, and error handling. 325 // 326 // This method is useful when you want to inject custom logic or configuration 327 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 328 // 329 // 330 // // Example sending a request using the RecognizeTextRequest method. 331 // req, resp := client.RecognizeTextRequest(params) 332 // 333 // err := req.Send() 334 // if err == nil { // resp is now filled 335 // fmt.Println(resp) 336 // } 337 // 338 // See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/RecognizeText 339 func (c *LexRuntimeV2) RecognizeTextRequest(input *RecognizeTextInput) (req *request.Request, output *RecognizeTextOutput) { 340 op := &request.Operation{ 341 Name: opRecognizeText, 342 HTTPMethod: "POST", 343 HTTPPath: "/bots/{botId}/botAliases/{botAliasId}/botLocales/{localeId}/sessions/{sessionId}/text", 344 } 345 346 if input == nil { 347 input = &RecognizeTextInput{} 348 } 349 350 output = &RecognizeTextOutput{} 351 req = c.newRequest(op, input, output) 352 return 353 } 354 355 // RecognizeText API operation for Amazon Lex Runtime V2. 356 // 357 // Sends user input to Amazon Lex V2. Client applications use this API to send 358 // requests to Amazon Lex V2 at runtime. Amazon Lex V2 then interprets the user 359 // input using the machine learning model that it build for the bot. 360 // 361 // In response, Amazon Lex V2 returns the next message to convey to the user 362 // and an optional response card to display. 363 // 364 // If the optional post-fulfillment response is specified, the messages are 365 // returned as follows. For more information, see PostFulfillmentStatusSpecification 366 // (https://docs.aws.amazon.com/lexv2/latest/dg/API_PostFulfillmentStatusSpecification.html). 367 // 368 // * Success message - Returned if the Lambda function completes successfully 369 // and the intent state is fulfilled or ready fulfillment if the message 370 // is present. 371 // 372 // * Failed message - The failed message is returned if the Lambda function 373 // throws an exception or if the Lambda function returns a failed intent 374 // state without a message. 375 // 376 // * Timeout message - If you don't configure a timeout message and a timeout, 377 // and the Lambda function doesn't return within 30 seconds, the timeout 378 // message is returned. If you configure a timeout, the timeout message is 379 // returned when the period times out. 380 // 381 // For more information, see Completion message (https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete.html). 382 // 383 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 384 // with awserr.Error's Code and Message methods to get detailed information about 385 // the error. 386 // 387 // See the AWS API reference guide for Amazon Lex Runtime V2's 388 // API operation RecognizeText for usage and error information. 389 // 390 // Returned Error Types: 391 // * AccessDeniedException 392 // 393 // * ResourceNotFoundException 394 // 395 // * ValidationException 396 // 397 // * ThrottlingException 398 // 399 // * InternalServerException 400 // 401 // * ConflictException 402 // 403 // * DependencyFailedException 404 // 405 // * BadGatewayException 406 // 407 // See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/RecognizeText 408 func (c *LexRuntimeV2) RecognizeText(input *RecognizeTextInput) (*RecognizeTextOutput, error) { 409 req, out := c.RecognizeTextRequest(input) 410 return out, req.Send() 411 } 412 413 // RecognizeTextWithContext is the same as RecognizeText with the addition of 414 // the ability to pass a context and additional request options. 415 // 416 // See RecognizeText for details on how to use this API operation. 417 // 418 // The context must be non-nil and will be used for request cancellation. If 419 // the context is nil a panic will occur. In the future the SDK may create 420 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 421 // for more information on using Contexts. 422 func (c *LexRuntimeV2) RecognizeTextWithContext(ctx aws.Context, input *RecognizeTextInput, opts ...request.Option) (*RecognizeTextOutput, error) { 423 req, out := c.RecognizeTextRequest(input) 424 req.SetContext(ctx) 425 req.ApplyOptions(opts...) 426 return out, req.Send() 427 } 428 429 const opRecognizeUtterance = "RecognizeUtterance" 430 431 // RecognizeUtteranceRequest generates a "aws/request.Request" representing the 432 // client's request for the RecognizeUtterance operation. The "output" return 433 // value will be populated with the request's response once the request completes 434 // successfully. 435 // 436 // Use "Send" method on the returned Request to send the API call to the service. 437 // the "output" return value is not valid until after Send returns without error. 438 // 439 // See RecognizeUtterance for more information on using the RecognizeUtterance 440 // API call, and error handling. 441 // 442 // This method is useful when you want to inject custom logic or configuration 443 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 444 // 445 // 446 // // Example sending a request using the RecognizeUtteranceRequest method. 447 // req, resp := client.RecognizeUtteranceRequest(params) 448 // 449 // err := req.Send() 450 // if err == nil { // resp is now filled 451 // fmt.Println(resp) 452 // } 453 // 454 // See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/RecognizeUtterance 455 func (c *LexRuntimeV2) RecognizeUtteranceRequest(input *RecognizeUtteranceInput) (req *request.Request, output *RecognizeUtteranceOutput) { 456 op := &request.Operation{ 457 Name: opRecognizeUtterance, 458 HTTPMethod: "POST", 459 HTTPPath: "/bots/{botId}/botAliases/{botAliasId}/botLocales/{localeId}/sessions/{sessionId}/utterance", 460 } 461 462 if input == nil { 463 input = &RecognizeUtteranceInput{} 464 } 465 466 output = &RecognizeUtteranceOutput{} 467 req = c.newRequest(op, input, output) 468 req.Handlers.Sign.Remove(v4.SignRequestHandler) 469 handler := v4.BuildNamedHandler("v4.CustomSignerHandler", v4.WithUnsignedPayload) 470 req.Handlers.Sign.PushFrontNamed(handler) 471 return 472 } 473 474 // RecognizeUtterance API operation for Amazon Lex Runtime V2. 475 // 476 // Sends user input to Amazon Lex V2. You can send text or speech. Clients use 477 // this API to send text and audio requests to Amazon Lex V2 at runtime. Amazon 478 // Lex V2 interprets the user input using the machine learning model built for 479 // the bot. 480 // 481 // The following request fields must be compressed with gzip and then base64 482 // encoded before you send them to Amazon Lex V2. 483 // 484 // * requestAttributes 485 // 486 // * sessionState 487 // 488 // The following response fields are compressed using gzip and then base64 encoded 489 // by Amazon Lex V2. Before you can use these fields, you must decode and decompress 490 // them. 491 // 492 // * inputTranscript 493 // 494 // * interpretations 495 // 496 // * messages 497 // 498 // * requestAttributes 499 // 500 // * sessionState 501 // 502 // The example contains a Java application that compresses and encodes a Java 503 // object to send to Amazon Lex V2, and a second that decodes and decompresses 504 // a response from Amazon Lex V2. 505 // 506 // If the optional post-fulfillment response is specified, the messages are 507 // returned as follows. For more information, see PostFulfillmentStatusSpecification 508 // (https://docs.aws.amazon.com/lexv2/latest/dg/API_PostFulfillmentStatusSpecification.html). 509 // 510 // * Success message - Returned if the Lambda function completes successfully 511 // and the intent state is fulfilled or ready fulfillment if the message 512 // is present. 513 // 514 // * Failed message - The failed message is returned if the Lambda function 515 // throws an exception or if the Lambda function returns a failed intent 516 // state without a message. 517 // 518 // * Timeout message - If you don't configure a timeout message and a timeout, 519 // and the Lambda function doesn't return within 30 seconds, the timeout 520 // message is returned. If you configure a timeout, the timeout message is 521 // returned when the period times out. 522 // 523 // For more information, see Completion message (https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete.html). 524 // 525 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 526 // with awserr.Error's Code and Message methods to get detailed information about 527 // the error. 528 // 529 // See the AWS API reference guide for Amazon Lex Runtime V2's 530 // API operation RecognizeUtterance for usage and error information. 531 // 532 // Returned Error Types: 533 // * AccessDeniedException 534 // 535 // * ResourceNotFoundException 536 // 537 // * ValidationException 538 // 539 // * ThrottlingException 540 // 541 // * InternalServerException 542 // 543 // * ConflictException 544 // 545 // * DependencyFailedException 546 // 547 // * BadGatewayException 548 // 549 // See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/RecognizeUtterance 550 func (c *LexRuntimeV2) RecognizeUtterance(input *RecognizeUtteranceInput) (*RecognizeUtteranceOutput, error) { 551 req, out := c.RecognizeUtteranceRequest(input) 552 return out, req.Send() 553 } 554 555 // RecognizeUtteranceWithContext is the same as RecognizeUtterance with the addition of 556 // the ability to pass a context and additional request options. 557 // 558 // See RecognizeUtterance for details on how to use this API operation. 559 // 560 // The context must be non-nil and will be used for request cancellation. If 561 // the context is nil a panic will occur. In the future the SDK may create 562 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 563 // for more information on using Contexts. 564 func (c *LexRuntimeV2) RecognizeUtteranceWithContext(ctx aws.Context, input *RecognizeUtteranceInput, opts ...request.Option) (*RecognizeUtteranceOutput, error) { 565 req, out := c.RecognizeUtteranceRequest(input) 566 req.SetContext(ctx) 567 req.ApplyOptions(opts...) 568 return out, req.Send() 569 } 570 571 const opStartConversation = "StartConversation" 572 573 // StartConversationRequest generates a "aws/request.Request" representing the 574 // client's request for the StartConversation operation. The "output" return 575 // value will be populated with the request's response once the request completes 576 // successfully. 577 // 578 // Use "Send" method on the returned Request to send the API call to the service. 579 // the "output" return value is not valid until after Send returns without error. 580 // 581 // See StartConversation for more information on using the StartConversation 582 // API call, and error handling. 583 // 584 // This method is useful when you want to inject custom logic or configuration 585 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 586 // 587 // 588 // // Example sending a request using the StartConversationRequest method. 589 // req, resp := client.StartConversationRequest(params) 590 // 591 // err := req.Send() 592 // if err == nil { // resp is now filled 593 // fmt.Println(resp) 594 // } 595 // 596 // See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/StartConversation 597 func (c *LexRuntimeV2) StartConversationRequest(input *StartConversationInput) (req *request.Request, output *StartConversationOutput) { 598 op := &request.Operation{ 599 Name: opStartConversation, 600 HTTPMethod: "POST", 601 HTTPPath: "/bots/{botId}/botAliases/{botAliasId}/botLocales/{localeId}/sessions/{sessionId}/conversation", 602 } 603 604 if input == nil { 605 input = &StartConversationInput{} 606 } 607 608 output = &StartConversationOutput{} 609 req = c.newRequest(op, input, output) 610 req.Handlers.UnmarshalMeta.PushBack( 611 protocol.RequireHTTPMinProtocol{Major: 2}.Handler, 612 ) 613 614 es := NewStartConversationEventStream() 615 output.eventStream = es 616 617 req.Handlers.Sign.PushFront(es.setupInputPipe) 618 req.Handlers.UnmarshalError.PushBackNamed(request.NamedHandler{ 619 Name: "InputPipeCloser", 620 Fn: func(r *request.Request) { 621 err := es.closeInputPipe() 622 if err != nil { 623 r.Error = awserr.New(eventstreamapi.InputWriterCloseErrorCode, err.Error(), r.Error) 624 } 625 }, 626 }) 627 req.Handlers.Build.PushBack(request.WithSetRequestHeaders(map[string]string{ 628 "Content-Type": "application/vnd.amazon.eventstream", 629 "X-Amz-Content-Sha256": "STREAMING-AWS4-HMAC-SHA256-EVENTS", 630 })) 631 req.Handlers.Build.Swap(restjson.BuildHandler.Name, rest.BuildHandler) 632 req.Handlers.Send.Swap(client.LogHTTPRequestHandler.Name, client.LogHTTPRequestHeaderHandler) 633 req.Handlers.Unmarshal.PushBack(es.runInputStream) 634 635 req.Handlers.Send.Swap(client.LogHTTPResponseHandler.Name, client.LogHTTPResponseHeaderHandler) 636 req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, rest.UnmarshalHandler) 637 req.Handlers.Unmarshal.PushBack(es.runOutputStream) 638 req.Handlers.Unmarshal.PushBack(es.runOnStreamPartClose) 639 return 640 } 641 642 // StartConversation API operation for Amazon Lex Runtime V2. 643 // 644 // Starts an HTTP/2 bidirectional event stream that enables you to send audio, 645 // text, or DTMF input in real time. After your application starts a conversation, 646 // users send input to Amazon Lex V2 as a stream of events. Amazon Lex V2 processes 647 // the incoming events and responds with streaming text or audio events. 648 // 649 // Audio input must be in the following format: audio/lpcm sample-rate=8000 650 // sample-size-bits=16 channel-count=1; is-big-endian=false. 651 // 652 // If the optional post-fulfillment response is specified, the messages are 653 // returned as follows. For more information, see PostFulfillmentStatusSpecification 654 // (https://docs.aws.amazon.com/lexv2/latest/dg/API_PostFulfillmentStatusSpecification.html). 655 // 656 // * Success message - Returned if the Lambda function completes successfully 657 // and the intent state is fulfilled or ready fulfillment if the message 658 // is present. 659 // 660 // * Failed message - The failed message is returned if the Lambda function 661 // throws an exception or if the Lambda function returns a failed intent 662 // state without a message. 663 // 664 // * Timeout message - If you don't configure a timeout message and a timeout, 665 // and the Lambda function doesn't return within 30 seconds, the timeout 666 // message is returned. If you configure a timeout, the timeout message is 667 // returned when the period times out. 668 // 669 // For more information, see Completion message (https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete.html). 670 // 671 // If the optional update message is configured, it is played at the specified 672 // frequency while the Lambda function is running and the update message state 673 // is active. If the fulfillment update message is not active, the Lambda function 674 // runs with a 30 second timeout. 675 // 676 // For more information, see Update message (https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-update.html) 677 // 678 // The StartConversation operation is supported only in the following SDKs: 679 // 680 // * AWS SDK for C++ (https://docs.aws.amazon.com/goto/SdkForCpp/runtime.lex.v2-2020-08-07/StartConversation) 681 // 682 // * AWS SDK for Java V2 (https://docs.aws.amazon.com/goto/SdkForJavaV2/runtime.lex.v2-2020-08-07/StartConversation) 683 // 684 // * AWS SDK for Ruby V3 (https://docs.aws.amazon.com/goto/SdkForRubyV3/runtime.lex.v2-2020-08-07/StartConversation) 685 // 686 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 687 // with awserr.Error's Code and Message methods to get detailed information about 688 // the error. 689 // 690 // See the AWS API reference guide for Amazon Lex Runtime V2's 691 // API operation StartConversation for usage and error information. 692 // 693 // Returned Error Types: 694 // * AccessDeniedException 695 // 696 // * ValidationException 697 // 698 // * ThrottlingException 699 // 700 // * InternalServerException 701 // 702 // See also, https://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/StartConversation 703 func (c *LexRuntimeV2) StartConversation(input *StartConversationInput) (*StartConversationOutput, error) { 704 req, out := c.StartConversationRequest(input) 705 return out, req.Send() 706 } 707 708 // StartConversationWithContext is the same as StartConversation with the addition of 709 // the ability to pass a context and additional request options. 710 // 711 // See StartConversation for details on how to use this API operation. 712 // 713 // The context must be non-nil and will be used for request cancellation. If 714 // the context is nil a panic will occur. In the future the SDK may create 715 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 716 // for more information on using Contexts. 717 func (c *LexRuntimeV2) StartConversationWithContext(ctx aws.Context, input *StartConversationInput, opts ...request.Option) (*StartConversationOutput, error) { 718 req, out := c.StartConversationRequest(input) 719 req.SetContext(ctx) 720 req.ApplyOptions(opts...) 721 return out, req.Send() 722 } 723 724 var _ awserr.Error 725 726 // StartConversationEventStream provides the event stream handling for the StartConversation. 727 // 728 // For testing and mocking the event stream this type should be initialized via 729 // the NewStartConversationEventStream constructor function. Using the functional options 730 // to pass in nested mock behavior. 731 type StartConversationEventStream struct { 732 733 // Writer is the EventStream writer for the StartConversationRequestEventStream 734 // events. This value is automatically set by the SDK when the API call is made 735 // Use this member when unit testing your code with the SDK to mock out the 736 // EventStream Writer. 737 // 738 // Must not be nil. 739 Writer StartConversationRequestEventStreamWriter 740 741 inputWriter io.WriteCloser 742 743 // Reader is the EventStream reader for the StartConversationResponseEventStream 744 // events. This value is automatically set by the SDK when the API call is made 745 // Use this member when unit testing your code with the SDK to mock out the 746 // EventStream Reader. 747 // 748 // Must not be nil. 749 Reader StartConversationResponseEventStreamReader 750 751 outputReader io.ReadCloser 752 753 done chan struct{} 754 closeOnce sync.Once 755 err *eventstreamapi.OnceError 756 } 757 758 // NewStartConversationEventStream initializes an StartConversationEventStream. 759 // This function should only be used for testing and mocking the StartConversationEventStream 760 // stream within your application. 761 // 762 // The Writer member must be set before writing events to the stream. 763 // 764 // The Reader member must be set before reading events from the stream. 765 // 766 // es := NewStartConversationEventStream(func(o *StartConversationEventStream{ 767 // es.Writer = myMockStreamWriter 768 // es.Reader = myMockStreamReader 769 // }) 770 func NewStartConversationEventStream(opts ...func(*StartConversationEventStream)) *StartConversationEventStream { 771 es := &StartConversationEventStream{ 772 done: make(chan struct{}), 773 err: eventstreamapi.NewOnceError(), 774 } 775 776 for _, fn := range opts { 777 fn(es) 778 } 779 780 return es 781 } 782 783 func (es *StartConversationEventStream) runOnStreamPartClose(r *request.Request) { 784 if es.done == nil { 785 return 786 } 787 go es.waitStreamPartClose() 788 789 } 790 791 func (es *StartConversationEventStream) waitStreamPartClose() { 792 var inputErrCh <-chan struct{} 793 if v, ok := es.Writer.(interface{ ErrorSet() <-chan struct{} }); ok { 794 inputErrCh = v.ErrorSet() 795 } 796 var outputErrCh <-chan struct{} 797 if v, ok := es.Reader.(interface{ ErrorSet() <-chan struct{} }); ok { 798 outputErrCh = v.ErrorSet() 799 } 800 var outputClosedCh <-chan struct{} 801 if v, ok := es.Reader.(interface{ Closed() <-chan struct{} }); ok { 802 outputClosedCh = v.Closed() 803 } 804 805 select { 806 case <-es.done: 807 case <-inputErrCh: 808 es.err.SetError(es.Writer.Err()) 809 es.Close() 810 case <-outputErrCh: 811 es.err.SetError(es.Reader.Err()) 812 es.Close() 813 case <-outputClosedCh: 814 if err := es.Reader.Err(); err != nil { 815 es.err.SetError(es.Reader.Err()) 816 } 817 es.Close() 818 } 819 } 820 821 func (es *StartConversationEventStream) setupInputPipe(r *request.Request) { 822 inputReader, inputWriter := io.Pipe() 823 r.SetStreamingBody(inputReader) 824 es.inputWriter = inputWriter 825 } 826 827 // Closes the input-pipe writer 828 func (es *StartConversationEventStream) closeInputPipe() error { 829 if es.inputWriter != nil { 830 return es.inputWriter.Close() 831 } 832 return nil 833 } 834 835 // Send writes the event to the stream blocking until the event is written. 836 // Returns an error if the event was not written. 837 // 838 // These events are: 839 // 840 // * AudioInputEvent 841 // * ConfigurationEvent 842 // * DTMFInputEvent 843 // * DisconnectionEvent 844 // * PlaybackCompletionEvent 845 // * TextInputEvent 846 func (es *StartConversationEventStream) Send(ctx aws.Context, event StartConversationRequestEventStreamEvent) error { 847 return es.Writer.Send(ctx, event) 848 } 849 850 func (es *StartConversationEventStream) runInputStream(r *request.Request) { 851 var opts []func(*eventstream.Encoder) 852 if r.Config.Logger != nil && r.Config.LogLevel.Matches(aws.LogDebugWithEventStreamBody) { 853 opts = append(opts, eventstream.EncodeWithLogger(r.Config.Logger)) 854 } 855 var encoder eventstreamapi.Encoder = eventstream.NewEncoder(es.inputWriter, opts...) 856 857 var closer aws.MultiCloser 858 sigSeed, err := v4.GetSignedRequestSignature(r.HTTPRequest) 859 if err != nil { 860 r.Error = awserr.New(request.ErrCodeSerialization, 861 "unable to get initial request's signature", err) 862 return 863 } 864 signer := eventstreamapi.NewSignEncoder( 865 v4.NewStreamSigner(r.ClientInfo.SigningRegion, r.ClientInfo.SigningName, 866 sigSeed, r.Config.Credentials), 867 encoder, 868 ) 869 encoder = signer 870 closer = append(closer, signer) 871 closer = append(closer, es.inputWriter) 872 873 eventWriter := eventstreamapi.NewEventWriter(encoder, 874 protocol.HandlerPayloadMarshal{ 875 Marshalers: r.Handlers.BuildStream, 876 }, 877 eventTypeForStartConversationRequestEventStreamEvent, 878 ) 879 880 es.Writer = &writeStartConversationRequestEventStream{ 881 StreamWriter: eventstreamapi.NewStreamWriter(eventWriter, closer), 882 } 883 } 884 885 // Events returns a channel to read events from. 886 // 887 // These events are: 888 // 889 // * AudioResponseEvent 890 // * HeartbeatEvent 891 // * IntentResultEvent 892 // * PlaybackInterruptionEvent 893 // * TextResponseEvent 894 // * TranscriptEvent 895 // * StartConversationResponseEventStreamUnknownEvent 896 func (es *StartConversationEventStream) Events() <-chan StartConversationResponseEventStreamEvent { 897 return es.Reader.Events() 898 } 899 900 func (es *StartConversationEventStream) runOutputStream(r *request.Request) { 901 var opts []func(*eventstream.Decoder) 902 if r.Config.Logger != nil && r.Config.LogLevel.Matches(aws.LogDebugWithEventStreamBody) { 903 opts = append(opts, eventstream.DecodeWithLogger(r.Config.Logger)) 904 } 905 906 unmarshalerForEvent := unmarshalerForStartConversationResponseEventStreamEvent{ 907 metadata: protocol.ResponseMetadata{ 908 StatusCode: r.HTTPResponse.StatusCode, 909 RequestID: r.RequestID, 910 }, 911 }.UnmarshalerForEventName 912 913 decoder := eventstream.NewDecoder(r.HTTPResponse.Body, opts...) 914 eventReader := eventstreamapi.NewEventReader(decoder, 915 protocol.HandlerPayloadUnmarshal{ 916 Unmarshalers: r.Handlers.UnmarshalStream, 917 }, 918 unmarshalerForEvent, 919 ) 920 921 es.outputReader = r.HTTPResponse.Body 922 es.Reader = newReadStartConversationResponseEventStream(eventReader) 923 } 924 925 // Close closes the stream. This will also cause the stream to be closed. 926 // Close must be called when done using the stream API. Not calling Close 927 // may result in resource leaks. 928 // 929 // Will close the underlying EventStream writer, and no more events can be 930 // sent. 931 // 932 // You can use the closing of the Reader's Events channel to terminate your 933 // application's read from the API's stream. 934 // 935 func (es *StartConversationEventStream) Close() (err error) { 936 es.closeOnce.Do(es.safeClose) 937 return es.Err() 938 } 939 940 func (es *StartConversationEventStream) safeClose() { 941 if es.done != nil { 942 close(es.done) 943 } 944 945 t := time.NewTicker(time.Second) 946 defer t.Stop() 947 writeCloseDone := make(chan error) 948 go func() { 949 if err := es.Writer.Close(); err != nil { 950 es.err.SetError(err) 951 } 952 close(writeCloseDone) 953 }() 954 select { 955 case <-t.C: 956 case <-writeCloseDone: 957 } 958 if err := es.closeInputPipe(); err != nil { 959 es.err.SetError(err) 960 } 961 962 es.Reader.Close() 963 if es.outputReader != nil { 964 es.outputReader.Close() 965 } 966 } 967 968 // Err returns any error that occurred while reading or writing EventStream 969 // Events from the service API's response. Returns nil if there were no errors. 970 func (es *StartConversationEventStream) Err() error { 971 if err := es.err.Err(); err != nil { 972 return err 973 } 974 if err := es.Writer.Err(); err != nil { 975 return err 976 } 977 if err := es.Reader.Err(); err != nil { 978 return err 979 } 980 981 return nil 982 } 983 984 type AccessDeniedException struct { 985 _ struct{} `type:"structure"` 986 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 987 988 Message_ *string `locationName:"message" type:"string"` 989 } 990 991 // String returns the string representation. 992 // 993 // API parameter values that are decorated as "sensitive" in the API will not 994 // be included in the string output. The member name will be present, but the 995 // value will be replaced with "sensitive". 996 func (s AccessDeniedException) String() string { 997 return awsutil.Prettify(s) 998 } 999 1000 // GoString returns the string representation. 1001 // 1002 // API parameter values that are decorated as "sensitive" in the API will not 1003 // be included in the string output. The member name will be present, but the 1004 // value will be replaced with "sensitive". 1005 func (s AccessDeniedException) GoString() string { 1006 return s.String() 1007 } 1008 1009 // The AccessDeniedException is and event in the StartConversationResponseEventStream group of events. 1010 func (s *AccessDeniedException) eventStartConversationResponseEventStream() {} 1011 1012 // UnmarshalEvent unmarshals the EventStream Message into the AccessDeniedException value. 1013 // This method is only used internally within the SDK's EventStream handling. 1014 func (s *AccessDeniedException) UnmarshalEvent( 1015 payloadUnmarshaler protocol.PayloadUnmarshaler, 1016 msg eventstream.Message, 1017 ) error { 1018 if err := payloadUnmarshaler.UnmarshalPayload( 1019 bytes.NewReader(msg.Payload), s, 1020 ); err != nil { 1021 return err 1022 } 1023 return nil 1024 } 1025 1026 // MarshalEvent marshals the type into an stream event value. This method 1027 // should only used internally within the SDK's EventStream handling. 1028 func (s *AccessDeniedException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1029 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) 1030 var buf bytes.Buffer 1031 if err = pm.MarshalPayload(&buf, s); err != nil { 1032 return eventstream.Message{}, err 1033 } 1034 msg.Payload = buf.Bytes() 1035 return msg, err 1036 } 1037 1038 func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { 1039 return &AccessDeniedException{ 1040 RespMetadata: v, 1041 } 1042 } 1043 1044 // Code returns the exception type name. 1045 func (s *AccessDeniedException) Code() string { 1046 return "AccessDeniedException" 1047 } 1048 1049 // Message returns the exception's message. 1050 func (s *AccessDeniedException) Message() string { 1051 if s.Message_ != nil { 1052 return *s.Message_ 1053 } 1054 return "" 1055 } 1056 1057 // OrigErr always returns nil, satisfies awserr.Error interface. 1058 func (s *AccessDeniedException) OrigErr() error { 1059 return nil 1060 } 1061 1062 func (s *AccessDeniedException) Error() string { 1063 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 1064 } 1065 1066 // Status code returns the HTTP status code for the request's response error. 1067 func (s *AccessDeniedException) StatusCode() int { 1068 return s.RespMetadata.StatusCode 1069 } 1070 1071 // RequestID returns the service's response RequestID for request. 1072 func (s *AccessDeniedException) RequestID() string { 1073 return s.RespMetadata.RequestID 1074 } 1075 1076 // Contains information about the contexts that a user is using in a session. 1077 // You can configure Amazon Lex V2 to set a context when an intent is fulfilled, 1078 // or you can set a context using the , , or operations. 1079 // 1080 // Use a context to indicate to Amazon Lex V2 intents that should be used as 1081 // follow-up intents. For example, if the active context is order-fulfilled, 1082 // only intents that have order-fulfilled configured as a trigger are considered 1083 // for follow up. 1084 type ActiveContext struct { 1085 _ struct{} `type:"structure"` 1086 1087 // A list of contexts active for the request. A context can be activated when 1088 // a previous intent is fulfilled, or by including the context in the request. 1089 // 1090 // If you don't specify a list of contexts, Amazon Lex V2 will use the current 1091 // list of contexts for the session. If you specify an empty list, all contexts 1092 // for the session are cleared. 1093 // 1094 // ContextAttributes is a required field 1095 ContextAttributes map[string]*string `locationName:"contextAttributes" type:"map" required:"true"` 1096 1097 // The name of the context. 1098 // 1099 // Name is a required field 1100 Name *string `locationName:"name" min:"1" type:"string" required:"true"` 1101 1102 // Indicates the number of turns or seconds that the context is active. Once 1103 // the time to live expires, the context is no longer returned in a response. 1104 // 1105 // TimeToLive is a required field 1106 TimeToLive *ActiveContextTimeToLive `locationName:"timeToLive" type:"structure" required:"true"` 1107 } 1108 1109 // String returns the string representation. 1110 // 1111 // API parameter values that are decorated as "sensitive" in the API will not 1112 // be included in the string output. The member name will be present, but the 1113 // value will be replaced with "sensitive". 1114 func (s ActiveContext) String() string { 1115 return awsutil.Prettify(s) 1116 } 1117 1118 // GoString returns the string representation. 1119 // 1120 // API parameter values that are decorated as "sensitive" in the API will not 1121 // be included in the string output. The member name will be present, but the 1122 // value will be replaced with "sensitive". 1123 func (s ActiveContext) GoString() string { 1124 return s.String() 1125 } 1126 1127 // Validate inspects the fields of the type to determine if they are valid. 1128 func (s *ActiveContext) Validate() error { 1129 invalidParams := request.ErrInvalidParams{Context: "ActiveContext"} 1130 if s.ContextAttributes == nil { 1131 invalidParams.Add(request.NewErrParamRequired("ContextAttributes")) 1132 } 1133 if s.Name == nil { 1134 invalidParams.Add(request.NewErrParamRequired("Name")) 1135 } 1136 if s.Name != nil && len(*s.Name) < 1 { 1137 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 1138 } 1139 if s.TimeToLive == nil { 1140 invalidParams.Add(request.NewErrParamRequired("TimeToLive")) 1141 } 1142 if s.TimeToLive != nil { 1143 if err := s.TimeToLive.Validate(); err != nil { 1144 invalidParams.AddNested("TimeToLive", err.(request.ErrInvalidParams)) 1145 } 1146 } 1147 1148 if invalidParams.Len() > 0 { 1149 return invalidParams 1150 } 1151 return nil 1152 } 1153 1154 // SetContextAttributes sets the ContextAttributes field's value. 1155 func (s *ActiveContext) SetContextAttributes(v map[string]*string) *ActiveContext { 1156 s.ContextAttributes = v 1157 return s 1158 } 1159 1160 // SetName sets the Name field's value. 1161 func (s *ActiveContext) SetName(v string) *ActiveContext { 1162 s.Name = &v 1163 return s 1164 } 1165 1166 // SetTimeToLive sets the TimeToLive field's value. 1167 func (s *ActiveContext) SetTimeToLive(v *ActiveContextTimeToLive) *ActiveContext { 1168 s.TimeToLive = v 1169 return s 1170 } 1171 1172 // The time that a context is active. You can specify the time to live in seconds 1173 // or in conversation turns. 1174 type ActiveContextTimeToLive struct { 1175 _ struct{} `type:"structure"` 1176 1177 // The number of seconds that the context is active. You can specify between 1178 // 5 and 86400 seconds (24 hours). 1179 // 1180 // TimeToLiveInSeconds is a required field 1181 TimeToLiveInSeconds *int64 `locationName:"timeToLiveInSeconds" min:"5" type:"integer" required:"true"` 1182 1183 // The number of turns that the context is active. You can specify up to 20 1184 // turns. Each request and response from the bot is a turn. 1185 // 1186 // TurnsToLive is a required field 1187 TurnsToLive *int64 `locationName:"turnsToLive" min:"1" type:"integer" required:"true"` 1188 } 1189 1190 // String returns the string representation. 1191 // 1192 // API parameter values that are decorated as "sensitive" in the API will not 1193 // be included in the string output. The member name will be present, but the 1194 // value will be replaced with "sensitive". 1195 func (s ActiveContextTimeToLive) String() string { 1196 return awsutil.Prettify(s) 1197 } 1198 1199 // GoString returns the string representation. 1200 // 1201 // API parameter values that are decorated as "sensitive" in the API will not 1202 // be included in the string output. The member name will be present, but the 1203 // value will be replaced with "sensitive". 1204 func (s ActiveContextTimeToLive) GoString() string { 1205 return s.String() 1206 } 1207 1208 // Validate inspects the fields of the type to determine if they are valid. 1209 func (s *ActiveContextTimeToLive) Validate() error { 1210 invalidParams := request.ErrInvalidParams{Context: "ActiveContextTimeToLive"} 1211 if s.TimeToLiveInSeconds == nil { 1212 invalidParams.Add(request.NewErrParamRequired("TimeToLiveInSeconds")) 1213 } 1214 if s.TimeToLiveInSeconds != nil && *s.TimeToLiveInSeconds < 5 { 1215 invalidParams.Add(request.NewErrParamMinValue("TimeToLiveInSeconds", 5)) 1216 } 1217 if s.TurnsToLive == nil { 1218 invalidParams.Add(request.NewErrParamRequired("TurnsToLive")) 1219 } 1220 if s.TurnsToLive != nil && *s.TurnsToLive < 1 { 1221 invalidParams.Add(request.NewErrParamMinValue("TurnsToLive", 1)) 1222 } 1223 1224 if invalidParams.Len() > 0 { 1225 return invalidParams 1226 } 1227 return nil 1228 } 1229 1230 // SetTimeToLiveInSeconds sets the TimeToLiveInSeconds field's value. 1231 func (s *ActiveContextTimeToLive) SetTimeToLiveInSeconds(v int64) *ActiveContextTimeToLive { 1232 s.TimeToLiveInSeconds = &v 1233 return s 1234 } 1235 1236 // SetTurnsToLive sets the TurnsToLive field's value. 1237 func (s *ActiveContextTimeToLive) SetTurnsToLive(v int64) *ActiveContextTimeToLive { 1238 s.TurnsToLive = &v 1239 return s 1240 } 1241 1242 // Represents a chunk of audio sent from the client application to Amazon Lex 1243 // V2. The audio is all or part of an utterance from the user. 1244 // 1245 // Amazon Lex V2 accumulates audio chunks until it recognizes a natural pause 1246 // in speech before processing the input. 1247 type AudioInputEvent struct { 1248 _ struct{} `type:"structure"` 1249 1250 // An encoded stream of audio. 1251 // AudioChunk is automatically base64 encoded/decoded by the SDK. 1252 AudioChunk []byte `locationName:"audioChunk" type:"blob"` 1253 1254 // A timestamp set by the client of the date and time that the event was sent 1255 // to Amazon Lex V2. 1256 ClientTimestampMillis *int64 `locationName:"clientTimestampMillis" type:"long"` 1257 1258 // The encoding used for the audio chunk. You must use 8 KHz PCM 16-bit mono-channel 1259 // little-endian format. The value of the field should be: 1260 // 1261 // audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false 1262 // 1263 // ContentType is a required field 1264 ContentType *string `locationName:"contentType" min:"1" type:"string" required:"true"` 1265 1266 // A unique identifier that your application assigns to the event. You can use 1267 // this to identify events in logs. 1268 EventId *string `locationName:"eventId" min:"2" type:"string"` 1269 } 1270 1271 // String returns the string representation. 1272 // 1273 // API parameter values that are decorated as "sensitive" in the API will not 1274 // be included in the string output. The member name will be present, but the 1275 // value will be replaced with "sensitive". 1276 func (s AudioInputEvent) String() string { 1277 return awsutil.Prettify(s) 1278 } 1279 1280 // GoString returns the string representation. 1281 // 1282 // API parameter values that are decorated as "sensitive" in the API will not 1283 // be included in the string output. The member name will be present, but the 1284 // value will be replaced with "sensitive". 1285 func (s AudioInputEvent) GoString() string { 1286 return s.String() 1287 } 1288 1289 // SetAudioChunk sets the AudioChunk field's value. 1290 func (s *AudioInputEvent) SetAudioChunk(v []byte) *AudioInputEvent { 1291 s.AudioChunk = v 1292 return s 1293 } 1294 1295 // SetClientTimestampMillis sets the ClientTimestampMillis field's value. 1296 func (s *AudioInputEvent) SetClientTimestampMillis(v int64) *AudioInputEvent { 1297 s.ClientTimestampMillis = &v 1298 return s 1299 } 1300 1301 // SetContentType sets the ContentType field's value. 1302 func (s *AudioInputEvent) SetContentType(v string) *AudioInputEvent { 1303 s.ContentType = &v 1304 return s 1305 } 1306 1307 // SetEventId sets the EventId field's value. 1308 func (s *AudioInputEvent) SetEventId(v string) *AudioInputEvent { 1309 s.EventId = &v 1310 return s 1311 } 1312 1313 // The AudioInputEvent is and event in the StartConversationRequestEventStream group of events. 1314 func (s *AudioInputEvent) eventStartConversationRequestEventStream() {} 1315 1316 // UnmarshalEvent unmarshals the EventStream Message into the AudioInputEvent value. 1317 // This method is only used internally within the SDK's EventStream handling. 1318 func (s *AudioInputEvent) UnmarshalEvent( 1319 payloadUnmarshaler protocol.PayloadUnmarshaler, 1320 msg eventstream.Message, 1321 ) error { 1322 if err := payloadUnmarshaler.UnmarshalPayload( 1323 bytes.NewReader(msg.Payload), s, 1324 ); err != nil { 1325 return err 1326 } 1327 return nil 1328 } 1329 1330 // MarshalEvent marshals the type into an stream event value. This method 1331 // should only used internally within the SDK's EventStream handling. 1332 func (s *AudioInputEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1333 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 1334 var buf bytes.Buffer 1335 if err = pm.MarshalPayload(&buf, s); err != nil { 1336 return eventstream.Message{}, err 1337 } 1338 msg.Payload = buf.Bytes() 1339 return msg, err 1340 } 1341 1342 // An event sent from Amazon Lex V2 to your client application containing audio 1343 // to play to the user. 1344 type AudioResponseEvent struct { 1345 _ struct{} `type:"structure"` 1346 1347 // A chunk of the audio to play. 1348 // AudioChunk is automatically base64 encoded/decoded by the SDK. 1349 AudioChunk []byte `locationName:"audioChunk" type:"blob"` 1350 1351 // The encoding of the audio chunk. This is the same as the encoding configure 1352 // in the contentType field of the ConfigurationEvent. 1353 ContentType *string `locationName:"contentType" min:"1" type:"string"` 1354 1355 // A unique identifier of the event sent by Amazon Lex V2. The identifier is 1356 // in the form RESPONSE-N, where N is a number starting with one and incremented 1357 // for each event sent by Amazon Lex V2 in the current session. 1358 EventId *string `locationName:"eventId" min:"2" type:"string"` 1359 } 1360 1361 // String returns the string representation. 1362 // 1363 // API parameter values that are decorated as "sensitive" in the API will not 1364 // be included in the string output. The member name will be present, but the 1365 // value will be replaced with "sensitive". 1366 func (s AudioResponseEvent) String() string { 1367 return awsutil.Prettify(s) 1368 } 1369 1370 // GoString returns the string representation. 1371 // 1372 // API parameter values that are decorated as "sensitive" in the API will not 1373 // be included in the string output. The member name will be present, but the 1374 // value will be replaced with "sensitive". 1375 func (s AudioResponseEvent) GoString() string { 1376 return s.String() 1377 } 1378 1379 // SetAudioChunk sets the AudioChunk field's value. 1380 func (s *AudioResponseEvent) SetAudioChunk(v []byte) *AudioResponseEvent { 1381 s.AudioChunk = v 1382 return s 1383 } 1384 1385 // SetContentType sets the ContentType field's value. 1386 func (s *AudioResponseEvent) SetContentType(v string) *AudioResponseEvent { 1387 s.ContentType = &v 1388 return s 1389 } 1390 1391 // SetEventId sets the EventId field's value. 1392 func (s *AudioResponseEvent) SetEventId(v string) *AudioResponseEvent { 1393 s.EventId = &v 1394 return s 1395 } 1396 1397 // The AudioResponseEvent is and event in the StartConversationResponseEventStream group of events. 1398 func (s *AudioResponseEvent) eventStartConversationResponseEventStream() {} 1399 1400 // UnmarshalEvent unmarshals the EventStream Message into the AudioResponseEvent value. 1401 // This method is only used internally within the SDK's EventStream handling. 1402 func (s *AudioResponseEvent) UnmarshalEvent( 1403 payloadUnmarshaler protocol.PayloadUnmarshaler, 1404 msg eventstream.Message, 1405 ) error { 1406 if err := payloadUnmarshaler.UnmarshalPayload( 1407 bytes.NewReader(msg.Payload), s, 1408 ); err != nil { 1409 return err 1410 } 1411 return nil 1412 } 1413 1414 // MarshalEvent marshals the type into an stream event value. This method 1415 // should only used internally within the SDK's EventStream handling. 1416 func (s *AudioResponseEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1417 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 1418 var buf bytes.Buffer 1419 if err = pm.MarshalPayload(&buf, s); err != nil { 1420 return eventstream.Message{}, err 1421 } 1422 msg.Payload = buf.Bytes() 1423 return msg, err 1424 } 1425 1426 type BadGatewayException struct { 1427 _ struct{} `type:"structure"` 1428 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 1429 1430 Message_ *string `locationName:"message" type:"string"` 1431 } 1432 1433 // String returns the string representation. 1434 // 1435 // API parameter values that are decorated as "sensitive" in the API will not 1436 // be included in the string output. The member name will be present, but the 1437 // value will be replaced with "sensitive". 1438 func (s BadGatewayException) String() string { 1439 return awsutil.Prettify(s) 1440 } 1441 1442 // GoString returns the string representation. 1443 // 1444 // API parameter values that are decorated as "sensitive" in the API will not 1445 // be included in the string output. The member name will be present, but the 1446 // value will be replaced with "sensitive". 1447 func (s BadGatewayException) GoString() string { 1448 return s.String() 1449 } 1450 1451 // The BadGatewayException is and event in the StartConversationResponseEventStream group of events. 1452 func (s *BadGatewayException) eventStartConversationResponseEventStream() {} 1453 1454 // UnmarshalEvent unmarshals the EventStream Message into the BadGatewayException value. 1455 // This method is only used internally within the SDK's EventStream handling. 1456 func (s *BadGatewayException) UnmarshalEvent( 1457 payloadUnmarshaler protocol.PayloadUnmarshaler, 1458 msg eventstream.Message, 1459 ) error { 1460 if err := payloadUnmarshaler.UnmarshalPayload( 1461 bytes.NewReader(msg.Payload), s, 1462 ); err != nil { 1463 return err 1464 } 1465 return nil 1466 } 1467 1468 // MarshalEvent marshals the type into an stream event value. This method 1469 // should only used internally within the SDK's EventStream handling. 1470 func (s *BadGatewayException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1471 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) 1472 var buf bytes.Buffer 1473 if err = pm.MarshalPayload(&buf, s); err != nil { 1474 return eventstream.Message{}, err 1475 } 1476 msg.Payload = buf.Bytes() 1477 return msg, err 1478 } 1479 1480 func newErrorBadGatewayException(v protocol.ResponseMetadata) error { 1481 return &BadGatewayException{ 1482 RespMetadata: v, 1483 } 1484 } 1485 1486 // Code returns the exception type name. 1487 func (s *BadGatewayException) Code() string { 1488 return "BadGatewayException" 1489 } 1490 1491 // Message returns the exception's message. 1492 func (s *BadGatewayException) Message() string { 1493 if s.Message_ != nil { 1494 return *s.Message_ 1495 } 1496 return "" 1497 } 1498 1499 // OrigErr always returns nil, satisfies awserr.Error interface. 1500 func (s *BadGatewayException) OrigErr() error { 1501 return nil 1502 } 1503 1504 func (s *BadGatewayException) Error() string { 1505 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 1506 } 1507 1508 // Status code returns the HTTP status code for the request's response error. 1509 func (s *BadGatewayException) StatusCode() int { 1510 return s.RespMetadata.StatusCode 1511 } 1512 1513 // RequestID returns the service's response RequestID for request. 1514 func (s *BadGatewayException) RequestID() string { 1515 return s.RespMetadata.RequestID 1516 } 1517 1518 // A button that appears on a response card show to the user. 1519 type Button struct { 1520 _ struct{} `type:"structure"` 1521 1522 // The text that is displayed on the button. 1523 // 1524 // Text is a required field 1525 Text *string `locationName:"text" min:"1" type:"string" required:"true"` 1526 1527 // The value returned to Amazon Lex V2 when a user chooses the button. 1528 // 1529 // Value is a required field 1530 Value *string `locationName:"value" min:"1" type:"string" required:"true"` 1531 } 1532 1533 // String returns the string representation. 1534 // 1535 // API parameter values that are decorated as "sensitive" in the API will not 1536 // be included in the string output. The member name will be present, but the 1537 // value will be replaced with "sensitive". 1538 func (s Button) String() string { 1539 return awsutil.Prettify(s) 1540 } 1541 1542 // GoString returns the string representation. 1543 // 1544 // API parameter values that are decorated as "sensitive" in the API will not 1545 // be included in the string output. The member name will be present, but the 1546 // value will be replaced with "sensitive". 1547 func (s Button) GoString() string { 1548 return s.String() 1549 } 1550 1551 // Validate inspects the fields of the type to determine if they are valid. 1552 func (s *Button) Validate() error { 1553 invalidParams := request.ErrInvalidParams{Context: "Button"} 1554 if s.Text == nil { 1555 invalidParams.Add(request.NewErrParamRequired("Text")) 1556 } 1557 if s.Text != nil && len(*s.Text) < 1 { 1558 invalidParams.Add(request.NewErrParamMinLen("Text", 1)) 1559 } 1560 if s.Value == nil { 1561 invalidParams.Add(request.NewErrParamRequired("Value")) 1562 } 1563 if s.Value != nil && len(*s.Value) < 1 { 1564 invalidParams.Add(request.NewErrParamMinLen("Value", 1)) 1565 } 1566 1567 if invalidParams.Len() > 0 { 1568 return invalidParams 1569 } 1570 return nil 1571 } 1572 1573 // SetText sets the Text field's value. 1574 func (s *Button) SetText(v string) *Button { 1575 s.Text = &v 1576 return s 1577 } 1578 1579 // SetValue sets the Value field's value. 1580 func (s *Button) SetValue(v string) *Button { 1581 s.Value = &v 1582 return s 1583 } 1584 1585 // Provides a score that indicates the confidence that Amazon Lex V2 has that 1586 // an intent is the one that satisfies the user's intent. 1587 type ConfidenceScore struct { 1588 _ struct{} `type:"structure"` 1589 1590 // A score that indicates how confident Amazon Lex V2 is that an intent satisfies 1591 // the user's intent. Ranges between 0.00 and 1.00. Higher scores indicate higher 1592 // confidence. 1593 Score *float64 `locationName:"score" type:"double"` 1594 } 1595 1596 // String returns the string representation. 1597 // 1598 // API parameter values that are decorated as "sensitive" in the API will not 1599 // be included in the string output. The member name will be present, but the 1600 // value will be replaced with "sensitive". 1601 func (s ConfidenceScore) String() string { 1602 return awsutil.Prettify(s) 1603 } 1604 1605 // GoString returns the string representation. 1606 // 1607 // API parameter values that are decorated as "sensitive" in the API will not 1608 // be included in the string output. The member name will be present, but the 1609 // value will be replaced with "sensitive". 1610 func (s ConfidenceScore) GoString() string { 1611 return s.String() 1612 } 1613 1614 // SetScore sets the Score field's value. 1615 func (s *ConfidenceScore) SetScore(v float64) *ConfidenceScore { 1616 s.Score = &v 1617 return s 1618 } 1619 1620 // The initial event sent from the application to Amazon Lex V2 to configure 1621 // the conversation, including session and request attributes and the response 1622 // content type. 1623 type ConfigurationEvent struct { 1624 _ struct{} `type:"structure"` 1625 1626 // A timestamp set by the client of the date and time that the event was sent 1627 // to Amazon Lex V2. 1628 ClientTimestampMillis *int64 `locationName:"clientTimestampMillis" type:"long"` 1629 1630 // Determines whether Amazon Lex V2 should send audio responses to the client 1631 // application. 1632 // 1633 // Set this field to false when the client is operating in a playback mode where 1634 // audio responses are played to the user. If the client isn't operating in 1635 // playback mode, such as a text chat application, set this to true so that 1636 // Amazon Lex V2 doesn't wait for the prompt to finish playing on the client. 1637 DisablePlayback *bool `locationName:"disablePlayback" type:"boolean"` 1638 1639 // A unique identifier that your application assigns to the event. You can use 1640 // this to identify events in logs. 1641 EventId *string `locationName:"eventId" min:"2" type:"string"` 1642 1643 // Request-specific information passed between the client application and Amazon 1644 // Lex V2. 1645 // 1646 // The namespace x-amz-lex: is reserved for special attributes. Don't create 1647 // any request attributes for prefix x-amz-lex:. 1648 RequestAttributes map[string]*string `locationName:"requestAttributes" type:"map"` 1649 1650 // The message that Amazon Lex V2 returns in the response can be either text 1651 // or speech based on the responseContentType value. 1652 // 1653 // * If the value is text/plain;charset=utf-8, Amazon Lex V2 returns text 1654 // in the response. 1655 // 1656 // * If the value begins with audio/, Amazon Lex V2 returns speech in the 1657 // response. Amazon Lex V2 uses Amazon Polly to generate the speech using 1658 // the configuration that you specified in the requestContentType parameter. 1659 // For example, if you specify audio/mpeg as the value, Amazon Lex V2 returns 1660 // speech in the MPEG format. 1661 // 1662 // * If the value is audio/pcm, the speech returned is audio/pcm in 16-bit, 1663 // little-endian format. 1664 // 1665 // * The following are the accepted values: audio/mpeg audio/ogg audio/pcm 1666 // audio/* (defaults to mpeg) text/plain; charset=utf-8 1667 // 1668 // ResponseContentType is a required field 1669 ResponseContentType *string `locationName:"responseContentType" min:"1" type:"string" required:"true"` 1670 1671 // The state of the user's session with Amazon Lex V2. 1672 SessionState *SessionState `locationName:"sessionState" type:"structure"` 1673 1674 // A list of messages to send to the user. 1675 WelcomeMessages []*Message `locationName:"welcomeMessages" type:"list"` 1676 } 1677 1678 // String returns the string representation. 1679 // 1680 // API parameter values that are decorated as "sensitive" in the API will not 1681 // be included in the string output. The member name will be present, but the 1682 // value will be replaced with "sensitive". 1683 func (s ConfigurationEvent) String() string { 1684 return awsutil.Prettify(s) 1685 } 1686 1687 // GoString returns the string representation. 1688 // 1689 // API parameter values that are decorated as "sensitive" in the API will not 1690 // be included in the string output. The member name will be present, but the 1691 // value will be replaced with "sensitive". 1692 func (s ConfigurationEvent) GoString() string { 1693 return s.String() 1694 } 1695 1696 // SetClientTimestampMillis sets the ClientTimestampMillis field's value. 1697 func (s *ConfigurationEvent) SetClientTimestampMillis(v int64) *ConfigurationEvent { 1698 s.ClientTimestampMillis = &v 1699 return s 1700 } 1701 1702 // SetDisablePlayback sets the DisablePlayback field's value. 1703 func (s *ConfigurationEvent) SetDisablePlayback(v bool) *ConfigurationEvent { 1704 s.DisablePlayback = &v 1705 return s 1706 } 1707 1708 // SetEventId sets the EventId field's value. 1709 func (s *ConfigurationEvent) SetEventId(v string) *ConfigurationEvent { 1710 s.EventId = &v 1711 return s 1712 } 1713 1714 // SetRequestAttributes sets the RequestAttributes field's value. 1715 func (s *ConfigurationEvent) SetRequestAttributes(v map[string]*string) *ConfigurationEvent { 1716 s.RequestAttributes = v 1717 return s 1718 } 1719 1720 // SetResponseContentType sets the ResponseContentType field's value. 1721 func (s *ConfigurationEvent) SetResponseContentType(v string) *ConfigurationEvent { 1722 s.ResponseContentType = &v 1723 return s 1724 } 1725 1726 // SetSessionState sets the SessionState field's value. 1727 func (s *ConfigurationEvent) SetSessionState(v *SessionState) *ConfigurationEvent { 1728 s.SessionState = v 1729 return s 1730 } 1731 1732 // SetWelcomeMessages sets the WelcomeMessages field's value. 1733 func (s *ConfigurationEvent) SetWelcomeMessages(v []*Message) *ConfigurationEvent { 1734 s.WelcomeMessages = v 1735 return s 1736 } 1737 1738 // The ConfigurationEvent is and event in the StartConversationRequestEventStream group of events. 1739 func (s *ConfigurationEvent) eventStartConversationRequestEventStream() {} 1740 1741 // UnmarshalEvent unmarshals the EventStream Message into the ConfigurationEvent value. 1742 // This method is only used internally within the SDK's EventStream handling. 1743 func (s *ConfigurationEvent) UnmarshalEvent( 1744 payloadUnmarshaler protocol.PayloadUnmarshaler, 1745 msg eventstream.Message, 1746 ) error { 1747 if err := payloadUnmarshaler.UnmarshalPayload( 1748 bytes.NewReader(msg.Payload), s, 1749 ); err != nil { 1750 return err 1751 } 1752 return nil 1753 } 1754 1755 // MarshalEvent marshals the type into an stream event value. This method 1756 // should only used internally within the SDK's EventStream handling. 1757 func (s *ConfigurationEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1758 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 1759 var buf bytes.Buffer 1760 if err = pm.MarshalPayload(&buf, s); err != nil { 1761 return eventstream.Message{}, err 1762 } 1763 msg.Payload = buf.Bytes() 1764 return msg, err 1765 } 1766 1767 type ConflictException struct { 1768 _ struct{} `type:"structure"` 1769 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 1770 1771 Message_ *string `locationName:"message" type:"string"` 1772 } 1773 1774 // String returns the string representation. 1775 // 1776 // API parameter values that are decorated as "sensitive" in the API will not 1777 // be included in the string output. The member name will be present, but the 1778 // value will be replaced with "sensitive". 1779 func (s ConflictException) String() string { 1780 return awsutil.Prettify(s) 1781 } 1782 1783 // GoString returns the string representation. 1784 // 1785 // API parameter values that are decorated as "sensitive" in the API will not 1786 // be included in the string output. The member name will be present, but the 1787 // value will be replaced with "sensitive". 1788 func (s ConflictException) GoString() string { 1789 return s.String() 1790 } 1791 1792 // The ConflictException is and event in the StartConversationResponseEventStream group of events. 1793 func (s *ConflictException) eventStartConversationResponseEventStream() {} 1794 1795 // UnmarshalEvent unmarshals the EventStream Message into the ConflictException value. 1796 // This method is only used internally within the SDK's EventStream handling. 1797 func (s *ConflictException) UnmarshalEvent( 1798 payloadUnmarshaler protocol.PayloadUnmarshaler, 1799 msg eventstream.Message, 1800 ) error { 1801 if err := payloadUnmarshaler.UnmarshalPayload( 1802 bytes.NewReader(msg.Payload), s, 1803 ); err != nil { 1804 return err 1805 } 1806 return nil 1807 } 1808 1809 // MarshalEvent marshals the type into an stream event value. This method 1810 // should only used internally within the SDK's EventStream handling. 1811 func (s *ConflictException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1812 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) 1813 var buf bytes.Buffer 1814 if err = pm.MarshalPayload(&buf, s); err != nil { 1815 return eventstream.Message{}, err 1816 } 1817 msg.Payload = buf.Bytes() 1818 return msg, err 1819 } 1820 1821 func newErrorConflictException(v protocol.ResponseMetadata) error { 1822 return &ConflictException{ 1823 RespMetadata: v, 1824 } 1825 } 1826 1827 // Code returns the exception type name. 1828 func (s *ConflictException) Code() string { 1829 return "ConflictException" 1830 } 1831 1832 // Message returns the exception's message. 1833 func (s *ConflictException) Message() string { 1834 if s.Message_ != nil { 1835 return *s.Message_ 1836 } 1837 return "" 1838 } 1839 1840 // OrigErr always returns nil, satisfies awserr.Error interface. 1841 func (s *ConflictException) OrigErr() error { 1842 return nil 1843 } 1844 1845 func (s *ConflictException) Error() string { 1846 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 1847 } 1848 1849 // Status code returns the HTTP status code for the request's response error. 1850 func (s *ConflictException) StatusCode() int { 1851 return s.RespMetadata.StatusCode 1852 } 1853 1854 // RequestID returns the service's response RequestID for request. 1855 func (s *ConflictException) RequestID() string { 1856 return s.RespMetadata.RequestID 1857 } 1858 1859 // A DTMF character sent from the client application. DTMF characters are typically 1860 // sent from a phone keypad to represent numbers. For example, you can have 1861 // Amazon Lex V2 process a credit card number input from a phone. 1862 type DTMFInputEvent struct { 1863 _ struct{} `type:"structure"` 1864 1865 // A timestamp set by the client of the date and time that the event was sent 1866 // to Amazon Lex V2. 1867 ClientTimestampMillis *int64 `locationName:"clientTimestampMillis" type:"long"` 1868 1869 // A unique identifier that your application assigns to the event. You can use 1870 // this to identify events in logs. 1871 EventId *string `locationName:"eventId" min:"2" type:"string"` 1872 1873 // The DTMF character that the user pressed. The allowed characters are A - 1874 // D, 0 - 9, # and *. 1875 // 1876 // InputCharacter is a sensitive parameter and its value will be 1877 // replaced with "sensitive" in string returned by DTMFInputEvent's 1878 // String and GoString methods. 1879 // 1880 // InputCharacter is a required field 1881 InputCharacter *string `locationName:"inputCharacter" min:"1" type:"string" required:"true" sensitive:"true"` 1882 } 1883 1884 // String returns the string representation. 1885 // 1886 // API parameter values that are decorated as "sensitive" in the API will not 1887 // be included in the string output. The member name will be present, but the 1888 // value will be replaced with "sensitive". 1889 func (s DTMFInputEvent) String() string { 1890 return awsutil.Prettify(s) 1891 } 1892 1893 // GoString returns the string representation. 1894 // 1895 // API parameter values that are decorated as "sensitive" in the API will not 1896 // be included in the string output. The member name will be present, but the 1897 // value will be replaced with "sensitive". 1898 func (s DTMFInputEvent) GoString() string { 1899 return s.String() 1900 } 1901 1902 // SetClientTimestampMillis sets the ClientTimestampMillis field's value. 1903 func (s *DTMFInputEvent) SetClientTimestampMillis(v int64) *DTMFInputEvent { 1904 s.ClientTimestampMillis = &v 1905 return s 1906 } 1907 1908 // SetEventId sets the EventId field's value. 1909 func (s *DTMFInputEvent) SetEventId(v string) *DTMFInputEvent { 1910 s.EventId = &v 1911 return s 1912 } 1913 1914 // SetInputCharacter sets the InputCharacter field's value. 1915 func (s *DTMFInputEvent) SetInputCharacter(v string) *DTMFInputEvent { 1916 s.InputCharacter = &v 1917 return s 1918 } 1919 1920 // The DTMFInputEvent is and event in the StartConversationRequestEventStream group of events. 1921 func (s *DTMFInputEvent) eventStartConversationRequestEventStream() {} 1922 1923 // UnmarshalEvent unmarshals the EventStream Message into the DTMFInputEvent value. 1924 // This method is only used internally within the SDK's EventStream handling. 1925 func (s *DTMFInputEvent) UnmarshalEvent( 1926 payloadUnmarshaler protocol.PayloadUnmarshaler, 1927 msg eventstream.Message, 1928 ) error { 1929 if err := payloadUnmarshaler.UnmarshalPayload( 1930 bytes.NewReader(msg.Payload), s, 1931 ); err != nil { 1932 return err 1933 } 1934 return nil 1935 } 1936 1937 // MarshalEvent marshals the type into an stream event value. This method 1938 // should only used internally within the SDK's EventStream handling. 1939 func (s *DTMFInputEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1940 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 1941 var buf bytes.Buffer 1942 if err = pm.MarshalPayload(&buf, s); err != nil { 1943 return eventstream.Message{}, err 1944 } 1945 msg.Payload = buf.Bytes() 1946 return msg, err 1947 } 1948 1949 type DeleteSessionInput struct { 1950 _ struct{} `type:"structure" nopayload:"true"` 1951 1952 // The alias identifier in use for the bot that contains the session data. 1953 // 1954 // BotAliasId is a required field 1955 BotAliasId *string `location:"uri" locationName:"botAliasId" type:"string" required:"true"` 1956 1957 // The identifier of the bot that contains the session data. 1958 // 1959 // BotId is a required field 1960 BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"` 1961 1962 // The locale where the session is in use. 1963 // 1964 // LocaleId is a required field 1965 LocaleId *string `location:"uri" locationName:"localeId" min:"1" type:"string" required:"true"` 1966 1967 // The identifier of the session to delete. 1968 // 1969 // SessionId is a required field 1970 SessionId *string `location:"uri" locationName:"sessionId" min:"2" type:"string" required:"true"` 1971 } 1972 1973 // String returns the string representation. 1974 // 1975 // API parameter values that are decorated as "sensitive" in the API will not 1976 // be included in the string output. The member name will be present, but the 1977 // value will be replaced with "sensitive". 1978 func (s DeleteSessionInput) String() string { 1979 return awsutil.Prettify(s) 1980 } 1981 1982 // GoString returns the string representation. 1983 // 1984 // API parameter values that are decorated as "sensitive" in the API will not 1985 // be included in the string output. The member name will be present, but the 1986 // value will be replaced with "sensitive". 1987 func (s DeleteSessionInput) GoString() string { 1988 return s.String() 1989 } 1990 1991 // Validate inspects the fields of the type to determine if they are valid. 1992 func (s *DeleteSessionInput) Validate() error { 1993 invalidParams := request.ErrInvalidParams{Context: "DeleteSessionInput"} 1994 if s.BotAliasId == nil { 1995 invalidParams.Add(request.NewErrParamRequired("BotAliasId")) 1996 } 1997 if s.BotAliasId != nil && len(*s.BotAliasId) < 1 { 1998 invalidParams.Add(request.NewErrParamMinLen("BotAliasId", 1)) 1999 } 2000 if s.BotId == nil { 2001 invalidParams.Add(request.NewErrParamRequired("BotId")) 2002 } 2003 if s.BotId != nil && len(*s.BotId) < 10 { 2004 invalidParams.Add(request.NewErrParamMinLen("BotId", 10)) 2005 } 2006 if s.LocaleId == nil { 2007 invalidParams.Add(request.NewErrParamRequired("LocaleId")) 2008 } 2009 if s.LocaleId != nil && len(*s.LocaleId) < 1 { 2010 invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1)) 2011 } 2012 if s.SessionId == nil { 2013 invalidParams.Add(request.NewErrParamRequired("SessionId")) 2014 } 2015 if s.SessionId != nil && len(*s.SessionId) < 2 { 2016 invalidParams.Add(request.NewErrParamMinLen("SessionId", 2)) 2017 } 2018 2019 if invalidParams.Len() > 0 { 2020 return invalidParams 2021 } 2022 return nil 2023 } 2024 2025 // SetBotAliasId sets the BotAliasId field's value. 2026 func (s *DeleteSessionInput) SetBotAliasId(v string) *DeleteSessionInput { 2027 s.BotAliasId = &v 2028 return s 2029 } 2030 2031 // SetBotId sets the BotId field's value. 2032 func (s *DeleteSessionInput) SetBotId(v string) *DeleteSessionInput { 2033 s.BotId = &v 2034 return s 2035 } 2036 2037 // SetLocaleId sets the LocaleId field's value. 2038 func (s *DeleteSessionInput) SetLocaleId(v string) *DeleteSessionInput { 2039 s.LocaleId = &v 2040 return s 2041 } 2042 2043 // SetSessionId sets the SessionId field's value. 2044 func (s *DeleteSessionInput) SetSessionId(v string) *DeleteSessionInput { 2045 s.SessionId = &v 2046 return s 2047 } 2048 2049 type DeleteSessionOutput struct { 2050 _ struct{} `type:"structure"` 2051 2052 // The alias identifier in use for the bot that contained the session data. 2053 BotAliasId *string `locationName:"botAliasId" type:"string"` 2054 2055 // The identifier of the bot that contained the session data. 2056 BotId *string `locationName:"botId" min:"10" type:"string"` 2057 2058 // The locale where the session was used. 2059 LocaleId *string `locationName:"localeId" min:"1" type:"string"` 2060 2061 // The identifier of the deleted session. 2062 SessionId *string `locationName:"sessionId" min:"2" type:"string"` 2063 } 2064 2065 // String returns the string representation. 2066 // 2067 // API parameter values that are decorated as "sensitive" in the API will not 2068 // be included in the string output. The member name will be present, but the 2069 // value will be replaced with "sensitive". 2070 func (s DeleteSessionOutput) String() string { 2071 return awsutil.Prettify(s) 2072 } 2073 2074 // GoString returns the string representation. 2075 // 2076 // API parameter values that are decorated as "sensitive" in the API will not 2077 // be included in the string output. The member name will be present, but the 2078 // value will be replaced with "sensitive". 2079 func (s DeleteSessionOutput) GoString() string { 2080 return s.String() 2081 } 2082 2083 // SetBotAliasId sets the BotAliasId field's value. 2084 func (s *DeleteSessionOutput) SetBotAliasId(v string) *DeleteSessionOutput { 2085 s.BotAliasId = &v 2086 return s 2087 } 2088 2089 // SetBotId sets the BotId field's value. 2090 func (s *DeleteSessionOutput) SetBotId(v string) *DeleteSessionOutput { 2091 s.BotId = &v 2092 return s 2093 } 2094 2095 // SetLocaleId sets the LocaleId field's value. 2096 func (s *DeleteSessionOutput) SetLocaleId(v string) *DeleteSessionOutput { 2097 s.LocaleId = &v 2098 return s 2099 } 2100 2101 // SetSessionId sets the SessionId field's value. 2102 func (s *DeleteSessionOutput) SetSessionId(v string) *DeleteSessionOutput { 2103 s.SessionId = &v 2104 return s 2105 } 2106 2107 type DependencyFailedException struct { 2108 _ struct{} `type:"structure"` 2109 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 2110 2111 Message_ *string `locationName:"message" type:"string"` 2112 } 2113 2114 // String returns the string representation. 2115 // 2116 // API parameter values that are decorated as "sensitive" in the API will not 2117 // be included in the string output. The member name will be present, but the 2118 // value will be replaced with "sensitive". 2119 func (s DependencyFailedException) String() string { 2120 return awsutil.Prettify(s) 2121 } 2122 2123 // GoString returns the string representation. 2124 // 2125 // API parameter values that are decorated as "sensitive" in the API will not 2126 // be included in the string output. The member name will be present, but the 2127 // value will be replaced with "sensitive". 2128 func (s DependencyFailedException) GoString() string { 2129 return s.String() 2130 } 2131 2132 // The DependencyFailedException is and event in the StartConversationResponseEventStream group of events. 2133 func (s *DependencyFailedException) eventStartConversationResponseEventStream() {} 2134 2135 // UnmarshalEvent unmarshals the EventStream Message into the DependencyFailedException value. 2136 // This method is only used internally within the SDK's EventStream handling. 2137 func (s *DependencyFailedException) UnmarshalEvent( 2138 payloadUnmarshaler protocol.PayloadUnmarshaler, 2139 msg eventstream.Message, 2140 ) error { 2141 if err := payloadUnmarshaler.UnmarshalPayload( 2142 bytes.NewReader(msg.Payload), s, 2143 ); err != nil { 2144 return err 2145 } 2146 return nil 2147 } 2148 2149 // MarshalEvent marshals the type into an stream event value. This method 2150 // should only used internally within the SDK's EventStream handling. 2151 func (s *DependencyFailedException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 2152 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) 2153 var buf bytes.Buffer 2154 if err = pm.MarshalPayload(&buf, s); err != nil { 2155 return eventstream.Message{}, err 2156 } 2157 msg.Payload = buf.Bytes() 2158 return msg, err 2159 } 2160 2161 func newErrorDependencyFailedException(v protocol.ResponseMetadata) error { 2162 return &DependencyFailedException{ 2163 RespMetadata: v, 2164 } 2165 } 2166 2167 // Code returns the exception type name. 2168 func (s *DependencyFailedException) Code() string { 2169 return "DependencyFailedException" 2170 } 2171 2172 // Message returns the exception's message. 2173 func (s *DependencyFailedException) Message() string { 2174 if s.Message_ != nil { 2175 return *s.Message_ 2176 } 2177 return "" 2178 } 2179 2180 // OrigErr always returns nil, satisfies awserr.Error interface. 2181 func (s *DependencyFailedException) OrigErr() error { 2182 return nil 2183 } 2184 2185 func (s *DependencyFailedException) Error() string { 2186 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 2187 } 2188 2189 // Status code returns the HTTP status code for the request's response error. 2190 func (s *DependencyFailedException) StatusCode() int { 2191 return s.RespMetadata.StatusCode 2192 } 2193 2194 // RequestID returns the service's response RequestID for request. 2195 func (s *DependencyFailedException) RequestID() string { 2196 return s.RespMetadata.RequestID 2197 } 2198 2199 // The next action that Amazon Lex V2 should take. 2200 type DialogAction struct { 2201 _ struct{} `type:"structure"` 2202 2203 // The name of the slot that should be elicited from the user. 2204 SlotToElicit *string `locationName:"slotToElicit" min:"1" type:"string"` 2205 2206 // The next action that the bot should take in its interaction with the user. 2207 // The possible values are: 2208 // 2209 // * Close - Indicates that there will not be a response from the user. For 2210 // example, the statement "Your order has been placed" does not require a 2211 // response. 2212 // 2213 // * ConfirmIntent - The next action is asking the user if the intent is 2214 // complete and ready to be fulfilled. This is a yes/no question such as 2215 // "Place the order?" 2216 // 2217 // * Delegate - The next action is determined by Amazon Lex V2. 2218 // 2219 // * ElicitSlot - The next action is to elicit a slot value from the user. 2220 // 2221 // Type is a required field 2222 Type *string `locationName:"type" type:"string" required:"true" enum:"DialogActionType"` 2223 } 2224 2225 // String returns the string representation. 2226 // 2227 // API parameter values that are decorated as "sensitive" in the API will not 2228 // be included in the string output. The member name will be present, but the 2229 // value will be replaced with "sensitive". 2230 func (s DialogAction) String() string { 2231 return awsutil.Prettify(s) 2232 } 2233 2234 // GoString returns the string representation. 2235 // 2236 // API parameter values that are decorated as "sensitive" in the API will not 2237 // be included in the string output. The member name will be present, but the 2238 // value will be replaced with "sensitive". 2239 func (s DialogAction) GoString() string { 2240 return s.String() 2241 } 2242 2243 // Validate inspects the fields of the type to determine if they are valid. 2244 func (s *DialogAction) Validate() error { 2245 invalidParams := request.ErrInvalidParams{Context: "DialogAction"} 2246 if s.SlotToElicit != nil && len(*s.SlotToElicit) < 1 { 2247 invalidParams.Add(request.NewErrParamMinLen("SlotToElicit", 1)) 2248 } 2249 if s.Type == nil { 2250 invalidParams.Add(request.NewErrParamRequired("Type")) 2251 } 2252 2253 if invalidParams.Len() > 0 { 2254 return invalidParams 2255 } 2256 return nil 2257 } 2258 2259 // SetSlotToElicit sets the SlotToElicit field's value. 2260 func (s *DialogAction) SetSlotToElicit(v string) *DialogAction { 2261 s.SlotToElicit = &v 2262 return s 2263 } 2264 2265 // SetType sets the Type field's value. 2266 func (s *DialogAction) SetType(v string) *DialogAction { 2267 s.Type = &v 2268 return s 2269 } 2270 2271 // A notification from the client that it is disconnecting from Amazon Lex V2. 2272 // Sending a DisconnectionEvent event is optional, but can help identify a conversation 2273 // in logs. 2274 type DisconnectionEvent struct { 2275 _ struct{} `type:"structure"` 2276 2277 // A timestamp set by the client of the date and time that the event was sent 2278 // to Amazon Lex V2. 2279 ClientTimestampMillis *int64 `locationName:"clientTimestampMillis" type:"long"` 2280 2281 // A unique identifier that your application assigns to the event. You can use 2282 // this to identify events in logs. 2283 EventId *string `locationName:"eventId" min:"2" type:"string"` 2284 } 2285 2286 // String returns the string representation. 2287 // 2288 // API parameter values that are decorated as "sensitive" in the API will not 2289 // be included in the string output. The member name will be present, but the 2290 // value will be replaced with "sensitive". 2291 func (s DisconnectionEvent) String() string { 2292 return awsutil.Prettify(s) 2293 } 2294 2295 // GoString returns the string representation. 2296 // 2297 // API parameter values that are decorated as "sensitive" in the API will not 2298 // be included in the string output. The member name will be present, but the 2299 // value will be replaced with "sensitive". 2300 func (s DisconnectionEvent) GoString() string { 2301 return s.String() 2302 } 2303 2304 // SetClientTimestampMillis sets the ClientTimestampMillis field's value. 2305 func (s *DisconnectionEvent) SetClientTimestampMillis(v int64) *DisconnectionEvent { 2306 s.ClientTimestampMillis = &v 2307 return s 2308 } 2309 2310 // SetEventId sets the EventId field's value. 2311 func (s *DisconnectionEvent) SetEventId(v string) *DisconnectionEvent { 2312 s.EventId = &v 2313 return s 2314 } 2315 2316 // The DisconnectionEvent is and event in the StartConversationRequestEventStream group of events. 2317 func (s *DisconnectionEvent) eventStartConversationRequestEventStream() {} 2318 2319 // UnmarshalEvent unmarshals the EventStream Message into the DisconnectionEvent value. 2320 // This method is only used internally within the SDK's EventStream handling. 2321 func (s *DisconnectionEvent) UnmarshalEvent( 2322 payloadUnmarshaler protocol.PayloadUnmarshaler, 2323 msg eventstream.Message, 2324 ) error { 2325 if err := payloadUnmarshaler.UnmarshalPayload( 2326 bytes.NewReader(msg.Payload), s, 2327 ); err != nil { 2328 return err 2329 } 2330 return nil 2331 } 2332 2333 // MarshalEvent marshals the type into an stream event value. This method 2334 // should only used internally within the SDK's EventStream handling. 2335 func (s *DisconnectionEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 2336 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 2337 var buf bytes.Buffer 2338 if err = pm.MarshalPayload(&buf, s); err != nil { 2339 return eventstream.Message{}, err 2340 } 2341 msg.Payload = buf.Bytes() 2342 return msg, err 2343 } 2344 2345 type GetSessionInput struct { 2346 _ struct{} `type:"structure" nopayload:"true"` 2347 2348 // The alias identifier in use for the bot that contains the session data. 2349 // 2350 // BotAliasId is a required field 2351 BotAliasId *string `location:"uri" locationName:"botAliasId" type:"string" required:"true"` 2352 2353 // The identifier of the bot that contains the session data. 2354 // 2355 // BotId is a required field 2356 BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"` 2357 2358 // The locale where the session is in use. 2359 // 2360 // LocaleId is a required field 2361 LocaleId *string `location:"uri" locationName:"localeId" min:"1" type:"string" required:"true"` 2362 2363 // The identifier of the session to return. 2364 // 2365 // SessionId is a required field 2366 SessionId *string `location:"uri" locationName:"sessionId" min:"2" type:"string" required:"true"` 2367 } 2368 2369 // String returns the string representation. 2370 // 2371 // API parameter values that are decorated as "sensitive" in the API will not 2372 // be included in the string output. The member name will be present, but the 2373 // value will be replaced with "sensitive". 2374 func (s GetSessionInput) String() string { 2375 return awsutil.Prettify(s) 2376 } 2377 2378 // GoString returns the string representation. 2379 // 2380 // API parameter values that are decorated as "sensitive" in the API will not 2381 // be included in the string output. The member name will be present, but the 2382 // value will be replaced with "sensitive". 2383 func (s GetSessionInput) GoString() string { 2384 return s.String() 2385 } 2386 2387 // Validate inspects the fields of the type to determine if they are valid. 2388 func (s *GetSessionInput) Validate() error { 2389 invalidParams := request.ErrInvalidParams{Context: "GetSessionInput"} 2390 if s.BotAliasId == nil { 2391 invalidParams.Add(request.NewErrParamRequired("BotAliasId")) 2392 } 2393 if s.BotAliasId != nil && len(*s.BotAliasId) < 1 { 2394 invalidParams.Add(request.NewErrParamMinLen("BotAliasId", 1)) 2395 } 2396 if s.BotId == nil { 2397 invalidParams.Add(request.NewErrParamRequired("BotId")) 2398 } 2399 if s.BotId != nil && len(*s.BotId) < 10 { 2400 invalidParams.Add(request.NewErrParamMinLen("BotId", 10)) 2401 } 2402 if s.LocaleId == nil { 2403 invalidParams.Add(request.NewErrParamRequired("LocaleId")) 2404 } 2405 if s.LocaleId != nil && len(*s.LocaleId) < 1 { 2406 invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1)) 2407 } 2408 if s.SessionId == nil { 2409 invalidParams.Add(request.NewErrParamRequired("SessionId")) 2410 } 2411 if s.SessionId != nil && len(*s.SessionId) < 2 { 2412 invalidParams.Add(request.NewErrParamMinLen("SessionId", 2)) 2413 } 2414 2415 if invalidParams.Len() > 0 { 2416 return invalidParams 2417 } 2418 return nil 2419 } 2420 2421 // SetBotAliasId sets the BotAliasId field's value. 2422 func (s *GetSessionInput) SetBotAliasId(v string) *GetSessionInput { 2423 s.BotAliasId = &v 2424 return s 2425 } 2426 2427 // SetBotId sets the BotId field's value. 2428 func (s *GetSessionInput) SetBotId(v string) *GetSessionInput { 2429 s.BotId = &v 2430 return s 2431 } 2432 2433 // SetLocaleId sets the LocaleId field's value. 2434 func (s *GetSessionInput) SetLocaleId(v string) *GetSessionInput { 2435 s.LocaleId = &v 2436 return s 2437 } 2438 2439 // SetSessionId sets the SessionId field's value. 2440 func (s *GetSessionInput) SetSessionId(v string) *GetSessionInput { 2441 s.SessionId = &v 2442 return s 2443 } 2444 2445 type GetSessionOutput struct { 2446 _ struct{} `type:"structure"` 2447 2448 // A list of intents that Amazon Lex V2 determined might satisfy the user's 2449 // utterance. 2450 // 2451 // Each interpretation includes the intent, a score that indicates how confident 2452 // Amazon Lex V2 is that the interpretation is the correct one, and an optional 2453 // sentiment response that indicates the sentiment expressed in the utterance. 2454 Interpretations []*Interpretation `locationName:"interpretations" type:"list"` 2455 2456 // A list of messages that were last sent to the user. The messages are ordered 2457 // based on the order that your returned the messages from your Lambda function 2458 // or the order that messages are defined in the bot. 2459 Messages []*Message `locationName:"messages" type:"list"` 2460 2461 // The identifier of the returned session. 2462 SessionId *string `locationName:"sessionId" min:"1" type:"string"` 2463 2464 // Represents the current state of the dialog between the user and the bot. 2465 // 2466 // You can use this to determine the progress of the conversation and what the 2467 // next action might be. 2468 SessionState *SessionState `locationName:"sessionState" type:"structure"` 2469 } 2470 2471 // String returns the string representation. 2472 // 2473 // API parameter values that are decorated as "sensitive" in the API will not 2474 // be included in the string output. The member name will be present, but the 2475 // value will be replaced with "sensitive". 2476 func (s GetSessionOutput) String() string { 2477 return awsutil.Prettify(s) 2478 } 2479 2480 // GoString returns the string representation. 2481 // 2482 // API parameter values that are decorated as "sensitive" in the API will not 2483 // be included in the string output. The member name will be present, but the 2484 // value will be replaced with "sensitive". 2485 func (s GetSessionOutput) GoString() string { 2486 return s.String() 2487 } 2488 2489 // SetInterpretations sets the Interpretations field's value. 2490 func (s *GetSessionOutput) SetInterpretations(v []*Interpretation) *GetSessionOutput { 2491 s.Interpretations = v 2492 return s 2493 } 2494 2495 // SetMessages sets the Messages field's value. 2496 func (s *GetSessionOutput) SetMessages(v []*Message) *GetSessionOutput { 2497 s.Messages = v 2498 return s 2499 } 2500 2501 // SetSessionId sets the SessionId field's value. 2502 func (s *GetSessionOutput) SetSessionId(v string) *GetSessionOutput { 2503 s.SessionId = &v 2504 return s 2505 } 2506 2507 // SetSessionState sets the SessionState field's value. 2508 func (s *GetSessionOutput) SetSessionState(v *SessionState) *GetSessionOutput { 2509 s.SessionState = v 2510 return s 2511 } 2512 2513 // Event that Amazon Lex V2 sends to indicate that the stream is still open 2514 // between the client application and Amazon Lex V2 2515 type HeartbeatEvent struct { 2516 _ struct{} `type:"structure"` 2517 2518 // A unique identifier of the event sent by Amazon Lex V2. The identifier is 2519 // in the form RESPONSE-N, where N is a number starting with one and incremented 2520 // for each event sent by Amazon Lex V2 in the current session. 2521 EventId *string `locationName:"eventId" min:"2" type:"string"` 2522 } 2523 2524 // String returns the string representation. 2525 // 2526 // API parameter values that are decorated as "sensitive" in the API will not 2527 // be included in the string output. The member name will be present, but the 2528 // value will be replaced with "sensitive". 2529 func (s HeartbeatEvent) String() string { 2530 return awsutil.Prettify(s) 2531 } 2532 2533 // GoString returns the string representation. 2534 // 2535 // API parameter values that are decorated as "sensitive" in the API will not 2536 // be included in the string output. The member name will be present, but the 2537 // value will be replaced with "sensitive". 2538 func (s HeartbeatEvent) GoString() string { 2539 return s.String() 2540 } 2541 2542 // SetEventId sets the EventId field's value. 2543 func (s *HeartbeatEvent) SetEventId(v string) *HeartbeatEvent { 2544 s.EventId = &v 2545 return s 2546 } 2547 2548 // The HeartbeatEvent is and event in the StartConversationResponseEventStream group of events. 2549 func (s *HeartbeatEvent) eventStartConversationResponseEventStream() {} 2550 2551 // UnmarshalEvent unmarshals the EventStream Message into the HeartbeatEvent value. 2552 // This method is only used internally within the SDK's EventStream handling. 2553 func (s *HeartbeatEvent) UnmarshalEvent( 2554 payloadUnmarshaler protocol.PayloadUnmarshaler, 2555 msg eventstream.Message, 2556 ) error { 2557 if err := payloadUnmarshaler.UnmarshalPayload( 2558 bytes.NewReader(msg.Payload), s, 2559 ); err != nil { 2560 return err 2561 } 2562 return nil 2563 } 2564 2565 // MarshalEvent marshals the type into an stream event value. This method 2566 // should only used internally within the SDK's EventStream handling. 2567 func (s *HeartbeatEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 2568 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 2569 var buf bytes.Buffer 2570 if err = pm.MarshalPayload(&buf, s); err != nil { 2571 return eventstream.Message{}, err 2572 } 2573 msg.Payload = buf.Bytes() 2574 return msg, err 2575 } 2576 2577 // A card that is shown to the user by a messaging platform. You define the 2578 // contents of the card, the card is displayed by the platform. 2579 // 2580 // When you use a response card, the response from the user is constrained to 2581 // the text associated with a button on the card. 2582 type ImageResponseCard struct { 2583 _ struct{} `type:"structure"` 2584 2585 // A list of buttons that should be displayed on the response card. The arrangement 2586 // of the buttons is determined by the platform that displays the button. 2587 Buttons []*Button `locationName:"buttons" type:"list"` 2588 2589 // The URL of an image to display on the response card. The image URL must be 2590 // publicly available so that the platform displaying the response card has 2591 // access to the image. 2592 ImageUrl *string `locationName:"imageUrl" min:"1" type:"string"` 2593 2594 // The subtitle to display on the response card. The format of the subtitle 2595 // is determined by the platform displaying the response card. 2596 Subtitle *string `locationName:"subtitle" min:"1" type:"string"` 2597 2598 // The title to display on the response card. The format of the title is determined 2599 // by the platform displaying the response card. 2600 // 2601 // Title is a required field 2602 Title *string `locationName:"title" min:"1" type:"string" required:"true"` 2603 } 2604 2605 // String returns the string representation. 2606 // 2607 // API parameter values that are decorated as "sensitive" in the API will not 2608 // be included in the string output. The member name will be present, but the 2609 // value will be replaced with "sensitive". 2610 func (s ImageResponseCard) String() string { 2611 return awsutil.Prettify(s) 2612 } 2613 2614 // GoString returns the string representation. 2615 // 2616 // API parameter values that are decorated as "sensitive" in the API will not 2617 // be included in the string output. The member name will be present, but the 2618 // value will be replaced with "sensitive". 2619 func (s ImageResponseCard) GoString() string { 2620 return s.String() 2621 } 2622 2623 // Validate inspects the fields of the type to determine if they are valid. 2624 func (s *ImageResponseCard) Validate() error { 2625 invalidParams := request.ErrInvalidParams{Context: "ImageResponseCard"} 2626 if s.ImageUrl != nil && len(*s.ImageUrl) < 1 { 2627 invalidParams.Add(request.NewErrParamMinLen("ImageUrl", 1)) 2628 } 2629 if s.Subtitle != nil && len(*s.Subtitle) < 1 { 2630 invalidParams.Add(request.NewErrParamMinLen("Subtitle", 1)) 2631 } 2632 if s.Title == nil { 2633 invalidParams.Add(request.NewErrParamRequired("Title")) 2634 } 2635 if s.Title != nil && len(*s.Title) < 1 { 2636 invalidParams.Add(request.NewErrParamMinLen("Title", 1)) 2637 } 2638 if s.Buttons != nil { 2639 for i, v := range s.Buttons { 2640 if v == nil { 2641 continue 2642 } 2643 if err := v.Validate(); err != nil { 2644 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Buttons", i), err.(request.ErrInvalidParams)) 2645 } 2646 } 2647 } 2648 2649 if invalidParams.Len() > 0 { 2650 return invalidParams 2651 } 2652 return nil 2653 } 2654 2655 // SetButtons sets the Buttons field's value. 2656 func (s *ImageResponseCard) SetButtons(v []*Button) *ImageResponseCard { 2657 s.Buttons = v 2658 return s 2659 } 2660 2661 // SetImageUrl sets the ImageUrl field's value. 2662 func (s *ImageResponseCard) SetImageUrl(v string) *ImageResponseCard { 2663 s.ImageUrl = &v 2664 return s 2665 } 2666 2667 // SetSubtitle sets the Subtitle field's value. 2668 func (s *ImageResponseCard) SetSubtitle(v string) *ImageResponseCard { 2669 s.Subtitle = &v 2670 return s 2671 } 2672 2673 // SetTitle sets the Title field's value. 2674 func (s *ImageResponseCard) SetTitle(v string) *ImageResponseCard { 2675 s.Title = &v 2676 return s 2677 } 2678 2679 // The current intent that Amazon Lex V2 is attempting to fulfill. 2680 type Intent struct { 2681 _ struct{} `type:"structure"` 2682 2683 // Contains information about whether fulfillment of the intent has been confirmed. 2684 ConfirmationState *string `locationName:"confirmationState" type:"string" enum:"ConfirmationState"` 2685 2686 // The name of the intent. 2687 // 2688 // Name is a required field 2689 Name *string `locationName:"name" min:"1" type:"string" required:"true"` 2690 2691 // A map of all of the slots for the intent. The name of the slot maps to the 2692 // value of the slot. If a slot has not been filled, the value is null. 2693 Slots map[string]*Slot `locationName:"slots" type:"map"` 2694 2695 // Contains fulfillment information for the intent. 2696 State *string `locationName:"state" type:"string" enum:"IntentState"` 2697 } 2698 2699 // String returns the string representation. 2700 // 2701 // API parameter values that are decorated as "sensitive" in the API will not 2702 // be included in the string output. The member name will be present, but the 2703 // value will be replaced with "sensitive". 2704 func (s Intent) String() string { 2705 return awsutil.Prettify(s) 2706 } 2707 2708 // GoString returns the string representation. 2709 // 2710 // API parameter values that are decorated as "sensitive" in the API will not 2711 // be included in the string output. The member name will be present, but the 2712 // value will be replaced with "sensitive". 2713 func (s Intent) GoString() string { 2714 return s.String() 2715 } 2716 2717 // Validate inspects the fields of the type to determine if they are valid. 2718 func (s *Intent) Validate() error { 2719 invalidParams := request.ErrInvalidParams{Context: "Intent"} 2720 if s.Name == nil { 2721 invalidParams.Add(request.NewErrParamRequired("Name")) 2722 } 2723 if s.Name != nil && len(*s.Name) < 1 { 2724 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 2725 } 2726 if s.Slots != nil { 2727 for i, v := range s.Slots { 2728 if v == nil { 2729 continue 2730 } 2731 if err := v.Validate(); err != nil { 2732 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Slots", i), err.(request.ErrInvalidParams)) 2733 } 2734 } 2735 } 2736 2737 if invalidParams.Len() > 0 { 2738 return invalidParams 2739 } 2740 return nil 2741 } 2742 2743 // SetConfirmationState sets the ConfirmationState field's value. 2744 func (s *Intent) SetConfirmationState(v string) *Intent { 2745 s.ConfirmationState = &v 2746 return s 2747 } 2748 2749 // SetName sets the Name field's value. 2750 func (s *Intent) SetName(v string) *Intent { 2751 s.Name = &v 2752 return s 2753 } 2754 2755 // SetSlots sets the Slots field's value. 2756 func (s *Intent) SetSlots(v map[string]*Slot) *Intent { 2757 s.Slots = v 2758 return s 2759 } 2760 2761 // SetState sets the State field's value. 2762 func (s *Intent) SetState(v string) *Intent { 2763 s.State = &v 2764 return s 2765 } 2766 2767 // Contains the current state of the conversation between the client application 2768 // and Amazon Lex V2. 2769 type IntentResultEvent struct { 2770 _ struct{} `type:"structure"` 2771 2772 // A unique identifier of the event sent by Amazon Lex V2. The identifier is 2773 // in the form RESPONSE-N, where N is a number starting with one and incremented 2774 // for each event sent by Amazon Lex V2 in the current session. 2775 EventId *string `locationName:"eventId" min:"2" type:"string"` 2776 2777 // Indicates whether the input to the operation was text or speech. 2778 InputMode *string `locationName:"inputMode" type:"string" enum:"InputMode"` 2779 2780 // A list of intents that Amazon Lex V2 determined might satisfy the user's 2781 // utterance. 2782 // 2783 // Each interpretation includes the intent, a score that indicates how confident 2784 // Amazon Lex V2 is that the interpretation is the correct one, and an optional 2785 // sentiment response that indicates the sentiment expressed in the utterance. 2786 Interpretations []*Interpretation `locationName:"interpretations" type:"list"` 2787 2788 // The attributes sent in the request. 2789 RequestAttributes map[string]*string `locationName:"requestAttributes" type:"map"` 2790 2791 // The identifier of the session in use. 2792 SessionId *string `locationName:"sessionId" min:"2" type:"string"` 2793 2794 // The state of the user's session with Amazon Lex V2. 2795 SessionState *SessionState `locationName:"sessionState" type:"structure"` 2796 } 2797 2798 // String returns the string representation. 2799 // 2800 // API parameter values that are decorated as "sensitive" in the API will not 2801 // be included in the string output. The member name will be present, but the 2802 // value will be replaced with "sensitive". 2803 func (s IntentResultEvent) String() string { 2804 return awsutil.Prettify(s) 2805 } 2806 2807 // GoString returns the string representation. 2808 // 2809 // API parameter values that are decorated as "sensitive" in the API will not 2810 // be included in the string output. The member name will be present, but the 2811 // value will be replaced with "sensitive". 2812 func (s IntentResultEvent) GoString() string { 2813 return s.String() 2814 } 2815 2816 // SetEventId sets the EventId field's value. 2817 func (s *IntentResultEvent) SetEventId(v string) *IntentResultEvent { 2818 s.EventId = &v 2819 return s 2820 } 2821 2822 // SetInputMode sets the InputMode field's value. 2823 func (s *IntentResultEvent) SetInputMode(v string) *IntentResultEvent { 2824 s.InputMode = &v 2825 return s 2826 } 2827 2828 // SetInterpretations sets the Interpretations field's value. 2829 func (s *IntentResultEvent) SetInterpretations(v []*Interpretation) *IntentResultEvent { 2830 s.Interpretations = v 2831 return s 2832 } 2833 2834 // SetRequestAttributes sets the RequestAttributes field's value. 2835 func (s *IntentResultEvent) SetRequestAttributes(v map[string]*string) *IntentResultEvent { 2836 s.RequestAttributes = v 2837 return s 2838 } 2839 2840 // SetSessionId sets the SessionId field's value. 2841 func (s *IntentResultEvent) SetSessionId(v string) *IntentResultEvent { 2842 s.SessionId = &v 2843 return s 2844 } 2845 2846 // SetSessionState sets the SessionState field's value. 2847 func (s *IntentResultEvent) SetSessionState(v *SessionState) *IntentResultEvent { 2848 s.SessionState = v 2849 return s 2850 } 2851 2852 // The IntentResultEvent is and event in the StartConversationResponseEventStream group of events. 2853 func (s *IntentResultEvent) eventStartConversationResponseEventStream() {} 2854 2855 // UnmarshalEvent unmarshals the EventStream Message into the IntentResultEvent value. 2856 // This method is only used internally within the SDK's EventStream handling. 2857 func (s *IntentResultEvent) UnmarshalEvent( 2858 payloadUnmarshaler protocol.PayloadUnmarshaler, 2859 msg eventstream.Message, 2860 ) error { 2861 if err := payloadUnmarshaler.UnmarshalPayload( 2862 bytes.NewReader(msg.Payload), s, 2863 ); err != nil { 2864 return err 2865 } 2866 return nil 2867 } 2868 2869 // MarshalEvent marshals the type into an stream event value. This method 2870 // should only used internally within the SDK's EventStream handling. 2871 func (s *IntentResultEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 2872 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 2873 var buf bytes.Buffer 2874 if err = pm.MarshalPayload(&buf, s); err != nil { 2875 return eventstream.Message{}, err 2876 } 2877 msg.Payload = buf.Bytes() 2878 return msg, err 2879 } 2880 2881 type InternalServerException struct { 2882 _ struct{} `type:"structure"` 2883 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 2884 2885 Message_ *string `locationName:"message" type:"string"` 2886 } 2887 2888 // String returns the string representation. 2889 // 2890 // API parameter values that are decorated as "sensitive" in the API will not 2891 // be included in the string output. The member name will be present, but the 2892 // value will be replaced with "sensitive". 2893 func (s InternalServerException) String() string { 2894 return awsutil.Prettify(s) 2895 } 2896 2897 // GoString returns the string representation. 2898 // 2899 // API parameter values that are decorated as "sensitive" in the API will not 2900 // be included in the string output. The member name will be present, but the 2901 // value will be replaced with "sensitive". 2902 func (s InternalServerException) GoString() string { 2903 return s.String() 2904 } 2905 2906 // The InternalServerException is and event in the StartConversationResponseEventStream group of events. 2907 func (s *InternalServerException) eventStartConversationResponseEventStream() {} 2908 2909 // UnmarshalEvent unmarshals the EventStream Message into the InternalServerException value. 2910 // This method is only used internally within the SDK's EventStream handling. 2911 func (s *InternalServerException) UnmarshalEvent( 2912 payloadUnmarshaler protocol.PayloadUnmarshaler, 2913 msg eventstream.Message, 2914 ) error { 2915 if err := payloadUnmarshaler.UnmarshalPayload( 2916 bytes.NewReader(msg.Payload), s, 2917 ); err != nil { 2918 return err 2919 } 2920 return nil 2921 } 2922 2923 // MarshalEvent marshals the type into an stream event value. This method 2924 // should only used internally within the SDK's EventStream handling. 2925 func (s *InternalServerException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 2926 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) 2927 var buf bytes.Buffer 2928 if err = pm.MarshalPayload(&buf, s); err != nil { 2929 return eventstream.Message{}, err 2930 } 2931 msg.Payload = buf.Bytes() 2932 return msg, err 2933 } 2934 2935 func newErrorInternalServerException(v protocol.ResponseMetadata) error { 2936 return &InternalServerException{ 2937 RespMetadata: v, 2938 } 2939 } 2940 2941 // Code returns the exception type name. 2942 func (s *InternalServerException) Code() string { 2943 return "InternalServerException" 2944 } 2945 2946 // Message returns the exception's message. 2947 func (s *InternalServerException) Message() string { 2948 if s.Message_ != nil { 2949 return *s.Message_ 2950 } 2951 return "" 2952 } 2953 2954 // OrigErr always returns nil, satisfies awserr.Error interface. 2955 func (s *InternalServerException) OrigErr() error { 2956 return nil 2957 } 2958 2959 func (s *InternalServerException) Error() string { 2960 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 2961 } 2962 2963 // Status code returns the HTTP status code for the request's response error. 2964 func (s *InternalServerException) StatusCode() int { 2965 return s.RespMetadata.StatusCode 2966 } 2967 2968 // RequestID returns the service's response RequestID for request. 2969 func (s *InternalServerException) RequestID() string { 2970 return s.RespMetadata.RequestID 2971 } 2972 2973 // An intent that Amazon Lex V2 determined might satisfy the user's utterance. 2974 // The intents are ordered by the confidence score. 2975 type Interpretation struct { 2976 _ struct{} `type:"structure"` 2977 2978 // A list of intents that might satisfy the user's utterance. The intents are 2979 // ordered by the confidence score. 2980 Intent *Intent `locationName:"intent" type:"structure"` 2981 2982 // Determines the threshold where Amazon Lex V2 will insert the AMAZON.FallbackIntent, 2983 // AMAZON.KendraSearchIntent, or both when returning alternative intents in 2984 // a response. AMAZON.FallbackIntent and AMAZON.KendraSearchIntent are only 2985 // inserted if they are configured for the bot. 2986 NluConfidence *ConfidenceScore `locationName:"nluConfidence" type:"structure"` 2987 2988 // The sentiment expressed in an utterance. 2989 // 2990 // When the bot is configured to send utterances to Amazon Comprehend for sentiment 2991 // analysis, this field contains the result of the analysis. 2992 SentimentResponse *SentimentResponse `locationName:"sentimentResponse" type:"structure"` 2993 } 2994 2995 // String returns the string representation. 2996 // 2997 // API parameter values that are decorated as "sensitive" in the API will not 2998 // be included in the string output. The member name will be present, but the 2999 // value will be replaced with "sensitive". 3000 func (s Interpretation) String() string { 3001 return awsutil.Prettify(s) 3002 } 3003 3004 // GoString returns the string representation. 3005 // 3006 // API parameter values that are decorated as "sensitive" in the API will not 3007 // be included in the string output. The member name will be present, but the 3008 // value will be replaced with "sensitive". 3009 func (s Interpretation) GoString() string { 3010 return s.String() 3011 } 3012 3013 // SetIntent sets the Intent field's value. 3014 func (s *Interpretation) SetIntent(v *Intent) *Interpretation { 3015 s.Intent = v 3016 return s 3017 } 3018 3019 // SetNluConfidence sets the NluConfidence field's value. 3020 func (s *Interpretation) SetNluConfidence(v *ConfidenceScore) *Interpretation { 3021 s.NluConfidence = v 3022 return s 3023 } 3024 3025 // SetSentimentResponse sets the SentimentResponse field's value. 3026 func (s *Interpretation) SetSentimentResponse(v *SentimentResponse) *Interpretation { 3027 s.SentimentResponse = v 3028 return s 3029 } 3030 3031 // Container for text that is returned to the customer.. 3032 type Message struct { 3033 _ struct{} `type:"structure"` 3034 3035 // The text of the message. 3036 // 3037 // Content is a sensitive parameter and its value will be 3038 // replaced with "sensitive" in string returned by Message's 3039 // String and GoString methods. 3040 Content *string `locationName:"content" min:"1" type:"string" sensitive:"true"` 3041 3042 // Indicates the type of response. 3043 // 3044 // ContentType is a required field 3045 ContentType *string `locationName:"contentType" type:"string" required:"true" enum:"MessageContentType"` 3046 3047 // A card that is shown to the user by a messaging platform. You define the 3048 // contents of the card, the card is displayed by the platform. 3049 // 3050 // When you use a response card, the response from the user is constrained to 3051 // the text associated with a button on the card. 3052 ImageResponseCard *ImageResponseCard `locationName:"imageResponseCard" type:"structure"` 3053 } 3054 3055 // String returns the string representation. 3056 // 3057 // API parameter values that are decorated as "sensitive" in the API will not 3058 // be included in the string output. The member name will be present, but the 3059 // value will be replaced with "sensitive". 3060 func (s Message) String() string { 3061 return awsutil.Prettify(s) 3062 } 3063 3064 // GoString returns the string representation. 3065 // 3066 // API parameter values that are decorated as "sensitive" in the API will not 3067 // be included in the string output. The member name will be present, but the 3068 // value will be replaced with "sensitive". 3069 func (s Message) GoString() string { 3070 return s.String() 3071 } 3072 3073 // Validate inspects the fields of the type to determine if they are valid. 3074 func (s *Message) Validate() error { 3075 invalidParams := request.ErrInvalidParams{Context: "Message"} 3076 if s.Content != nil && len(*s.Content) < 1 { 3077 invalidParams.Add(request.NewErrParamMinLen("Content", 1)) 3078 } 3079 if s.ContentType == nil { 3080 invalidParams.Add(request.NewErrParamRequired("ContentType")) 3081 } 3082 if s.ImageResponseCard != nil { 3083 if err := s.ImageResponseCard.Validate(); err != nil { 3084 invalidParams.AddNested("ImageResponseCard", err.(request.ErrInvalidParams)) 3085 } 3086 } 3087 3088 if invalidParams.Len() > 0 { 3089 return invalidParams 3090 } 3091 return nil 3092 } 3093 3094 // SetContent sets the Content field's value. 3095 func (s *Message) SetContent(v string) *Message { 3096 s.Content = &v 3097 return s 3098 } 3099 3100 // SetContentType sets the ContentType field's value. 3101 func (s *Message) SetContentType(v string) *Message { 3102 s.ContentType = &v 3103 return s 3104 } 3105 3106 // SetImageResponseCard sets the ImageResponseCard field's value. 3107 func (s *Message) SetImageResponseCard(v *ImageResponseCard) *Message { 3108 s.ImageResponseCard = v 3109 return s 3110 } 3111 3112 // Event sent from the client application to Amazon Lex V2 to indicate that 3113 // playback of audio is complete and that Amazon Lex V2 should start processing 3114 // the user's input. 3115 type PlaybackCompletionEvent struct { 3116 _ struct{} `type:"structure"` 3117 3118 // A timestamp set by the client of the date and time that the event was sent 3119 // to Amazon Lex V2. 3120 ClientTimestampMillis *int64 `locationName:"clientTimestampMillis" type:"long"` 3121 3122 // A unique identifier that your application assigns to the event. You can use 3123 // this to identify events in logs. 3124 EventId *string `locationName:"eventId" min:"2" type:"string"` 3125 } 3126 3127 // String returns the string representation. 3128 // 3129 // API parameter values that are decorated as "sensitive" in the API will not 3130 // be included in the string output. The member name will be present, but the 3131 // value will be replaced with "sensitive". 3132 func (s PlaybackCompletionEvent) String() string { 3133 return awsutil.Prettify(s) 3134 } 3135 3136 // GoString returns the string representation. 3137 // 3138 // API parameter values that are decorated as "sensitive" in the API will not 3139 // be included in the string output. The member name will be present, but the 3140 // value will be replaced with "sensitive". 3141 func (s PlaybackCompletionEvent) GoString() string { 3142 return s.String() 3143 } 3144 3145 // SetClientTimestampMillis sets the ClientTimestampMillis field's value. 3146 func (s *PlaybackCompletionEvent) SetClientTimestampMillis(v int64) *PlaybackCompletionEvent { 3147 s.ClientTimestampMillis = &v 3148 return s 3149 } 3150 3151 // SetEventId sets the EventId field's value. 3152 func (s *PlaybackCompletionEvent) SetEventId(v string) *PlaybackCompletionEvent { 3153 s.EventId = &v 3154 return s 3155 } 3156 3157 // The PlaybackCompletionEvent is and event in the StartConversationRequestEventStream group of events. 3158 func (s *PlaybackCompletionEvent) eventStartConversationRequestEventStream() {} 3159 3160 // UnmarshalEvent unmarshals the EventStream Message into the PlaybackCompletionEvent value. 3161 // This method is only used internally within the SDK's EventStream handling. 3162 func (s *PlaybackCompletionEvent) UnmarshalEvent( 3163 payloadUnmarshaler protocol.PayloadUnmarshaler, 3164 msg eventstream.Message, 3165 ) error { 3166 if err := payloadUnmarshaler.UnmarshalPayload( 3167 bytes.NewReader(msg.Payload), s, 3168 ); err != nil { 3169 return err 3170 } 3171 return nil 3172 } 3173 3174 // MarshalEvent marshals the type into an stream event value. This method 3175 // should only used internally within the SDK's EventStream handling. 3176 func (s *PlaybackCompletionEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 3177 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 3178 var buf bytes.Buffer 3179 if err = pm.MarshalPayload(&buf, s); err != nil { 3180 return eventstream.Message{}, err 3181 } 3182 msg.Payload = buf.Bytes() 3183 return msg, err 3184 } 3185 3186 // Event sent from Amazon Lex V2 to indicate to the client application should 3187 // stop playback of audio. For example, if the client is playing a prompt that 3188 // asks for the user's telephone number, the user might start to say the phone 3189 // number before the prompt is complete. Amazon Lex V2 sends this event to the 3190 // client application to indicate that the user is responding and that Amazon 3191 // Lex V2 is processing their input. 3192 type PlaybackInterruptionEvent struct { 3193 _ struct{} `type:"structure"` 3194 3195 // The identifier of the event that contained the audio, DTMF, or text that 3196 // caused the interruption. 3197 CausedByEventId *string `locationName:"causedByEventId" min:"2" type:"string"` 3198 3199 // A unique identifier of the event sent by Amazon Lex V2. The identifier is 3200 // in the form RESPONSE-N, where N is a number starting with one and incremented 3201 // for each event sent by Amazon Lex V2 in the current session. 3202 EventId *string `locationName:"eventId" min:"2" type:"string"` 3203 3204 // Indicates the type of user input that Amazon Lex V2 detected. 3205 EventReason *string `locationName:"eventReason" type:"string" enum:"PlaybackInterruptionReason"` 3206 } 3207 3208 // String returns the string representation. 3209 // 3210 // API parameter values that are decorated as "sensitive" in the API will not 3211 // be included in the string output. The member name will be present, but the 3212 // value will be replaced with "sensitive". 3213 func (s PlaybackInterruptionEvent) String() string { 3214 return awsutil.Prettify(s) 3215 } 3216 3217 // GoString returns the string representation. 3218 // 3219 // API parameter values that are decorated as "sensitive" in the API will not 3220 // be included in the string output. The member name will be present, but the 3221 // value will be replaced with "sensitive". 3222 func (s PlaybackInterruptionEvent) GoString() string { 3223 return s.String() 3224 } 3225 3226 // SetCausedByEventId sets the CausedByEventId field's value. 3227 func (s *PlaybackInterruptionEvent) SetCausedByEventId(v string) *PlaybackInterruptionEvent { 3228 s.CausedByEventId = &v 3229 return s 3230 } 3231 3232 // SetEventId sets the EventId field's value. 3233 func (s *PlaybackInterruptionEvent) SetEventId(v string) *PlaybackInterruptionEvent { 3234 s.EventId = &v 3235 return s 3236 } 3237 3238 // SetEventReason sets the EventReason field's value. 3239 func (s *PlaybackInterruptionEvent) SetEventReason(v string) *PlaybackInterruptionEvent { 3240 s.EventReason = &v 3241 return s 3242 } 3243 3244 // The PlaybackInterruptionEvent is and event in the StartConversationResponseEventStream group of events. 3245 func (s *PlaybackInterruptionEvent) eventStartConversationResponseEventStream() {} 3246 3247 // UnmarshalEvent unmarshals the EventStream Message into the PlaybackInterruptionEvent value. 3248 // This method is only used internally within the SDK's EventStream handling. 3249 func (s *PlaybackInterruptionEvent) UnmarshalEvent( 3250 payloadUnmarshaler protocol.PayloadUnmarshaler, 3251 msg eventstream.Message, 3252 ) error { 3253 if err := payloadUnmarshaler.UnmarshalPayload( 3254 bytes.NewReader(msg.Payload), s, 3255 ); err != nil { 3256 return err 3257 } 3258 return nil 3259 } 3260 3261 // MarshalEvent marshals the type into an stream event value. This method 3262 // should only used internally within the SDK's EventStream handling. 3263 func (s *PlaybackInterruptionEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 3264 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 3265 var buf bytes.Buffer 3266 if err = pm.MarshalPayload(&buf, s); err != nil { 3267 return eventstream.Message{}, err 3268 } 3269 msg.Payload = buf.Bytes() 3270 return msg, err 3271 } 3272 3273 type PutSessionInput struct { 3274 _ struct{} `type:"structure"` 3275 3276 // The alias identifier of the bot that receives the session data. 3277 // 3278 // BotAliasId is a required field 3279 BotAliasId *string `location:"uri" locationName:"botAliasId" type:"string" required:"true"` 3280 3281 // The identifier of the bot that receives the session data. 3282 // 3283 // BotId is a required field 3284 BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"` 3285 3286 // The locale where the session is in use. 3287 // 3288 // LocaleId is a required field 3289 LocaleId *string `location:"uri" locationName:"localeId" min:"1" type:"string" required:"true"` 3290 3291 // A list of messages to send to the user. Messages are sent in the order that 3292 // they are defined in the list. 3293 Messages []*Message `locationName:"messages" type:"list"` 3294 3295 // Request-specific information passed between Amazon Lex V2 and the client 3296 // application. 3297 // 3298 // The namespace x-amz-lex: is reserved for special attributes. Don't create 3299 // any request attributes with the prefix x-amz-lex:. 3300 RequestAttributes map[string]*string `locationName:"requestAttributes" type:"map"` 3301 3302 // The message that Amazon Lex V2 returns in the response can be either text 3303 // or speech depending on the value of this parameter. 3304 // 3305 // * If the value is text/plain; charset=utf-8, Amazon Lex V2 returns text 3306 // in the response. 3307 ResponseContentType *string `location:"header" locationName:"ResponseContentType" min:"1" type:"string"` 3308 3309 // The identifier of the session that receives the session data. 3310 // 3311 // SessionId is a required field 3312 SessionId *string `location:"uri" locationName:"sessionId" min:"2" type:"string" required:"true"` 3313 3314 // Sets the state of the session with the user. You can use this to set the 3315 // current intent, attributes, context, and dialog action. Use the dialog action 3316 // to determine the next step that Amazon Lex V2 should use in the conversation 3317 // with the user. 3318 // 3319 // SessionState is a required field 3320 SessionState *SessionState `locationName:"sessionState" type:"structure" required:"true"` 3321 } 3322 3323 // String returns the string representation. 3324 // 3325 // API parameter values that are decorated as "sensitive" in the API will not 3326 // be included in the string output. The member name will be present, but the 3327 // value will be replaced with "sensitive". 3328 func (s PutSessionInput) String() string { 3329 return awsutil.Prettify(s) 3330 } 3331 3332 // GoString returns the string representation. 3333 // 3334 // API parameter values that are decorated as "sensitive" in the API will not 3335 // be included in the string output. The member name will be present, but the 3336 // value will be replaced with "sensitive". 3337 func (s PutSessionInput) GoString() string { 3338 return s.String() 3339 } 3340 3341 // Validate inspects the fields of the type to determine if they are valid. 3342 func (s *PutSessionInput) Validate() error { 3343 invalidParams := request.ErrInvalidParams{Context: "PutSessionInput"} 3344 if s.BotAliasId == nil { 3345 invalidParams.Add(request.NewErrParamRequired("BotAliasId")) 3346 } 3347 if s.BotAliasId != nil && len(*s.BotAliasId) < 1 { 3348 invalidParams.Add(request.NewErrParamMinLen("BotAliasId", 1)) 3349 } 3350 if s.BotId == nil { 3351 invalidParams.Add(request.NewErrParamRequired("BotId")) 3352 } 3353 if s.BotId != nil && len(*s.BotId) < 10 { 3354 invalidParams.Add(request.NewErrParamMinLen("BotId", 10)) 3355 } 3356 if s.LocaleId == nil { 3357 invalidParams.Add(request.NewErrParamRequired("LocaleId")) 3358 } 3359 if s.LocaleId != nil && len(*s.LocaleId) < 1 { 3360 invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1)) 3361 } 3362 if s.ResponseContentType != nil && len(*s.ResponseContentType) < 1 { 3363 invalidParams.Add(request.NewErrParamMinLen("ResponseContentType", 1)) 3364 } 3365 if s.SessionId == nil { 3366 invalidParams.Add(request.NewErrParamRequired("SessionId")) 3367 } 3368 if s.SessionId != nil && len(*s.SessionId) < 2 { 3369 invalidParams.Add(request.NewErrParamMinLen("SessionId", 2)) 3370 } 3371 if s.SessionState == nil { 3372 invalidParams.Add(request.NewErrParamRequired("SessionState")) 3373 } 3374 if s.Messages != nil { 3375 for i, v := range s.Messages { 3376 if v == nil { 3377 continue 3378 } 3379 if err := v.Validate(); err != nil { 3380 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Messages", i), err.(request.ErrInvalidParams)) 3381 } 3382 } 3383 } 3384 if s.SessionState != nil { 3385 if err := s.SessionState.Validate(); err != nil { 3386 invalidParams.AddNested("SessionState", err.(request.ErrInvalidParams)) 3387 } 3388 } 3389 3390 if invalidParams.Len() > 0 { 3391 return invalidParams 3392 } 3393 return nil 3394 } 3395 3396 // SetBotAliasId sets the BotAliasId field's value. 3397 func (s *PutSessionInput) SetBotAliasId(v string) *PutSessionInput { 3398 s.BotAliasId = &v 3399 return s 3400 } 3401 3402 // SetBotId sets the BotId field's value. 3403 func (s *PutSessionInput) SetBotId(v string) *PutSessionInput { 3404 s.BotId = &v 3405 return s 3406 } 3407 3408 // SetLocaleId sets the LocaleId field's value. 3409 func (s *PutSessionInput) SetLocaleId(v string) *PutSessionInput { 3410 s.LocaleId = &v 3411 return s 3412 } 3413 3414 // SetMessages sets the Messages field's value. 3415 func (s *PutSessionInput) SetMessages(v []*Message) *PutSessionInput { 3416 s.Messages = v 3417 return s 3418 } 3419 3420 // SetRequestAttributes sets the RequestAttributes field's value. 3421 func (s *PutSessionInput) SetRequestAttributes(v map[string]*string) *PutSessionInput { 3422 s.RequestAttributes = v 3423 return s 3424 } 3425 3426 // SetResponseContentType sets the ResponseContentType field's value. 3427 func (s *PutSessionInput) SetResponseContentType(v string) *PutSessionInput { 3428 s.ResponseContentType = &v 3429 return s 3430 } 3431 3432 // SetSessionId sets the SessionId field's value. 3433 func (s *PutSessionInput) SetSessionId(v string) *PutSessionInput { 3434 s.SessionId = &v 3435 return s 3436 } 3437 3438 // SetSessionState sets the SessionState field's value. 3439 func (s *PutSessionInput) SetSessionState(v *SessionState) *PutSessionInput { 3440 s.SessionState = v 3441 return s 3442 } 3443 3444 type PutSessionOutput struct { 3445 _ struct{} `type:"structure" payload:"AudioStream"` 3446 3447 // If the requested content type was audio, the audio version of the message 3448 // to convey to the user. 3449 AudioStream io.ReadCloser `locationName:"audioStream" type:"blob"` 3450 3451 // The type of response. Same as the type specified in the responseContentType 3452 // field in the request. 3453 ContentType *string `location:"header" locationName:"Content-Type" min:"1" type:"string"` 3454 3455 // A list of messages that were last sent to the user. The messages are ordered 3456 // based on how you return the messages from you Lambda function or the order 3457 // that the messages are defined in the bot. 3458 Messages *string `location:"header" locationName:"x-amz-lex-messages" min:"1" type:"string"` 3459 3460 // Request-specific information passed between the client application and Amazon 3461 // Lex V2. These are the same as the requestAttribute parameter in the call 3462 // to the PutSession operation. 3463 RequestAttributes *string `location:"header" locationName:"x-amz-lex-request-attributes" min:"1" type:"string"` 3464 3465 // The identifier of the session that received the data. 3466 SessionId *string `location:"header" locationName:"x-amz-lex-session-id" min:"2" type:"string"` 3467 3468 // Represents the current state of the dialog between the user and the bot. 3469 // 3470 // Use this to determine the progress of the conversation and what the next 3471 // action may be. 3472 SessionState *string `location:"header" locationName:"x-amz-lex-session-state" min:"1" type:"string"` 3473 } 3474 3475 // String returns the string representation. 3476 // 3477 // API parameter values that are decorated as "sensitive" in the API will not 3478 // be included in the string output. The member name will be present, but the 3479 // value will be replaced with "sensitive". 3480 func (s PutSessionOutput) String() string { 3481 return awsutil.Prettify(s) 3482 } 3483 3484 // GoString returns the string representation. 3485 // 3486 // API parameter values that are decorated as "sensitive" in the API will not 3487 // be included in the string output. The member name will be present, but the 3488 // value will be replaced with "sensitive". 3489 func (s PutSessionOutput) GoString() string { 3490 return s.String() 3491 } 3492 3493 // SetAudioStream sets the AudioStream field's value. 3494 func (s *PutSessionOutput) SetAudioStream(v io.ReadCloser) *PutSessionOutput { 3495 s.AudioStream = v 3496 return s 3497 } 3498 3499 // SetContentType sets the ContentType field's value. 3500 func (s *PutSessionOutput) SetContentType(v string) *PutSessionOutput { 3501 s.ContentType = &v 3502 return s 3503 } 3504 3505 // SetMessages sets the Messages field's value. 3506 func (s *PutSessionOutput) SetMessages(v string) *PutSessionOutput { 3507 s.Messages = &v 3508 return s 3509 } 3510 3511 // SetRequestAttributes sets the RequestAttributes field's value. 3512 func (s *PutSessionOutput) SetRequestAttributes(v string) *PutSessionOutput { 3513 s.RequestAttributes = &v 3514 return s 3515 } 3516 3517 // SetSessionId sets the SessionId field's value. 3518 func (s *PutSessionOutput) SetSessionId(v string) *PutSessionOutput { 3519 s.SessionId = &v 3520 return s 3521 } 3522 3523 // SetSessionState sets the SessionState field's value. 3524 func (s *PutSessionOutput) SetSessionState(v string) *PutSessionOutput { 3525 s.SessionState = &v 3526 return s 3527 } 3528 3529 type RecognizeTextInput struct { 3530 _ struct{} `type:"structure"` 3531 3532 // The alias identifier in use for the bot that processes the request. 3533 // 3534 // BotAliasId is a required field 3535 BotAliasId *string `location:"uri" locationName:"botAliasId" type:"string" required:"true"` 3536 3537 // The identifier of the bot that processes the request. 3538 // 3539 // BotId is a required field 3540 BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"` 3541 3542 // The locale where the session is in use. 3543 // 3544 // LocaleId is a required field 3545 LocaleId *string `location:"uri" locationName:"localeId" min:"1" type:"string" required:"true"` 3546 3547 // Request-specific information passed between the client application and Amazon 3548 // Lex V2 3549 // 3550 // The namespace x-amz-lex: is reserved for special attributes. Don't create 3551 // any request attributes with the prefix x-amz-lex:. 3552 RequestAttributes map[string]*string `locationName:"requestAttributes" type:"map"` 3553 3554 // The identifier of the user session that is having the conversation. 3555 // 3556 // SessionId is a required field 3557 SessionId *string `location:"uri" locationName:"sessionId" min:"2" type:"string" required:"true"` 3558 3559 // The current state of the dialog between the user and the bot. 3560 SessionState *SessionState `locationName:"sessionState" type:"structure"` 3561 3562 // The text that the user entered. Amazon Lex V2 interprets this text. 3563 // 3564 // Text is a sensitive parameter and its value will be 3565 // replaced with "sensitive" in string returned by RecognizeTextInput's 3566 // String and GoString methods. 3567 // 3568 // Text is a required field 3569 Text *string `locationName:"text" min:"1" type:"string" required:"true" sensitive:"true"` 3570 } 3571 3572 // String returns the string representation. 3573 // 3574 // API parameter values that are decorated as "sensitive" in the API will not 3575 // be included in the string output. The member name will be present, but the 3576 // value will be replaced with "sensitive". 3577 func (s RecognizeTextInput) String() string { 3578 return awsutil.Prettify(s) 3579 } 3580 3581 // GoString returns the string representation. 3582 // 3583 // API parameter values that are decorated as "sensitive" in the API will not 3584 // be included in the string output. The member name will be present, but the 3585 // value will be replaced with "sensitive". 3586 func (s RecognizeTextInput) GoString() string { 3587 return s.String() 3588 } 3589 3590 // Validate inspects the fields of the type to determine if they are valid. 3591 func (s *RecognizeTextInput) Validate() error { 3592 invalidParams := request.ErrInvalidParams{Context: "RecognizeTextInput"} 3593 if s.BotAliasId == nil { 3594 invalidParams.Add(request.NewErrParamRequired("BotAliasId")) 3595 } 3596 if s.BotAliasId != nil && len(*s.BotAliasId) < 1 { 3597 invalidParams.Add(request.NewErrParamMinLen("BotAliasId", 1)) 3598 } 3599 if s.BotId == nil { 3600 invalidParams.Add(request.NewErrParamRequired("BotId")) 3601 } 3602 if s.BotId != nil && len(*s.BotId) < 10 { 3603 invalidParams.Add(request.NewErrParamMinLen("BotId", 10)) 3604 } 3605 if s.LocaleId == nil { 3606 invalidParams.Add(request.NewErrParamRequired("LocaleId")) 3607 } 3608 if s.LocaleId != nil && len(*s.LocaleId) < 1 { 3609 invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1)) 3610 } 3611 if s.SessionId == nil { 3612 invalidParams.Add(request.NewErrParamRequired("SessionId")) 3613 } 3614 if s.SessionId != nil && len(*s.SessionId) < 2 { 3615 invalidParams.Add(request.NewErrParamMinLen("SessionId", 2)) 3616 } 3617 if s.Text == nil { 3618 invalidParams.Add(request.NewErrParamRequired("Text")) 3619 } 3620 if s.Text != nil && len(*s.Text) < 1 { 3621 invalidParams.Add(request.NewErrParamMinLen("Text", 1)) 3622 } 3623 if s.SessionState != nil { 3624 if err := s.SessionState.Validate(); err != nil { 3625 invalidParams.AddNested("SessionState", err.(request.ErrInvalidParams)) 3626 } 3627 } 3628 3629 if invalidParams.Len() > 0 { 3630 return invalidParams 3631 } 3632 return nil 3633 } 3634 3635 // SetBotAliasId sets the BotAliasId field's value. 3636 func (s *RecognizeTextInput) SetBotAliasId(v string) *RecognizeTextInput { 3637 s.BotAliasId = &v 3638 return s 3639 } 3640 3641 // SetBotId sets the BotId field's value. 3642 func (s *RecognizeTextInput) SetBotId(v string) *RecognizeTextInput { 3643 s.BotId = &v 3644 return s 3645 } 3646 3647 // SetLocaleId sets the LocaleId field's value. 3648 func (s *RecognizeTextInput) SetLocaleId(v string) *RecognizeTextInput { 3649 s.LocaleId = &v 3650 return s 3651 } 3652 3653 // SetRequestAttributes sets the RequestAttributes field's value. 3654 func (s *RecognizeTextInput) SetRequestAttributes(v map[string]*string) *RecognizeTextInput { 3655 s.RequestAttributes = v 3656 return s 3657 } 3658 3659 // SetSessionId sets the SessionId field's value. 3660 func (s *RecognizeTextInput) SetSessionId(v string) *RecognizeTextInput { 3661 s.SessionId = &v 3662 return s 3663 } 3664 3665 // SetSessionState sets the SessionState field's value. 3666 func (s *RecognizeTextInput) SetSessionState(v *SessionState) *RecognizeTextInput { 3667 s.SessionState = v 3668 return s 3669 } 3670 3671 // SetText sets the Text field's value. 3672 func (s *RecognizeTextInput) SetText(v string) *RecognizeTextInput { 3673 s.Text = &v 3674 return s 3675 } 3676 3677 type RecognizeTextOutput struct { 3678 _ struct{} `type:"structure"` 3679 3680 // A list of intents that Amazon Lex V2 determined might satisfy the user's 3681 // utterance. 3682 // 3683 // Each interpretation includes the intent, a score that indicates now confident 3684 // Amazon Lex V2 is that the interpretation is the correct one, and an optional 3685 // sentiment response that indicates the sentiment expressed in the utterance. 3686 Interpretations []*Interpretation `locationName:"interpretations" type:"list"` 3687 3688 // A list of messages last sent to the user. The messages are ordered based 3689 // on the order that you returned the messages from your Lambda function or 3690 // the order that the messages are defined in the bot. 3691 Messages []*Message `locationName:"messages" type:"list"` 3692 3693 // The attributes sent in the request. 3694 RequestAttributes map[string]*string `locationName:"requestAttributes" type:"map"` 3695 3696 // The identifier of the session in use. 3697 SessionId *string `locationName:"sessionId" min:"2" type:"string"` 3698 3699 // Represents the current state of the dialog between the user and the bot. 3700 // 3701 // Use this to determine the progress of the conversation and what the next 3702 // action may be. 3703 SessionState *SessionState `locationName:"sessionState" type:"structure"` 3704 } 3705 3706 // String returns the string representation. 3707 // 3708 // API parameter values that are decorated as "sensitive" in the API will not 3709 // be included in the string output. The member name will be present, but the 3710 // value will be replaced with "sensitive". 3711 func (s RecognizeTextOutput) String() string { 3712 return awsutil.Prettify(s) 3713 } 3714 3715 // GoString returns the string representation. 3716 // 3717 // API parameter values that are decorated as "sensitive" in the API will not 3718 // be included in the string output. The member name will be present, but the 3719 // value will be replaced with "sensitive". 3720 func (s RecognizeTextOutput) GoString() string { 3721 return s.String() 3722 } 3723 3724 // SetInterpretations sets the Interpretations field's value. 3725 func (s *RecognizeTextOutput) SetInterpretations(v []*Interpretation) *RecognizeTextOutput { 3726 s.Interpretations = v 3727 return s 3728 } 3729 3730 // SetMessages sets the Messages field's value. 3731 func (s *RecognizeTextOutput) SetMessages(v []*Message) *RecognizeTextOutput { 3732 s.Messages = v 3733 return s 3734 } 3735 3736 // SetRequestAttributes sets the RequestAttributes field's value. 3737 func (s *RecognizeTextOutput) SetRequestAttributes(v map[string]*string) *RecognizeTextOutput { 3738 s.RequestAttributes = v 3739 return s 3740 } 3741 3742 // SetSessionId sets the SessionId field's value. 3743 func (s *RecognizeTextOutput) SetSessionId(v string) *RecognizeTextOutput { 3744 s.SessionId = &v 3745 return s 3746 } 3747 3748 // SetSessionState sets the SessionState field's value. 3749 func (s *RecognizeTextOutput) SetSessionState(v *SessionState) *RecognizeTextOutput { 3750 s.SessionState = v 3751 return s 3752 } 3753 3754 type RecognizeUtteranceInput struct { 3755 _ struct{} `type:"structure" payload:"InputStream"` 3756 3757 // The alias identifier in use for the bot that should receive the request. 3758 // 3759 // BotAliasId is a required field 3760 BotAliasId *string `location:"uri" locationName:"botAliasId" type:"string" required:"true"` 3761 3762 // The identifier of the bot that should receive the request. 3763 // 3764 // BotId is a required field 3765 BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"` 3766 3767 // User input in PCM or Opus audio format or text format as described in the 3768 // requestContentType parameter. 3769 // 3770 // To use an non-seekable io.Reader for this request wrap the io.Reader with 3771 // "aws.ReadSeekCloser". The SDK will not retry request errors for non-seekable 3772 // readers. This will allow the SDK to send the reader's payload as chunked 3773 // transfer encoding. 3774 InputStream io.ReadSeeker `locationName:"inputStream" type:"blob"` 3775 3776 // The locale where the session is in use. 3777 // 3778 // LocaleId is a required field 3779 LocaleId *string `location:"uri" locationName:"localeId" min:"1" type:"string" required:"true"` 3780 3781 // Request-specific information passed between the client application and Amazon 3782 // Lex V2 3783 // 3784 // The namespace x-amz-lex: is reserved for special attributes. Don't create 3785 // any request attributes for prefix x-amz-lex:. 3786 // 3787 // The requestAttributes field must be compressed using gzip and then base64 3788 // encoded before sending to Amazon Lex V2. 3789 // 3790 // RequestAttributes is a sensitive parameter and its value will be 3791 // replaced with "sensitive" in string returned by RecognizeUtteranceInput's 3792 // String and GoString methods. 3793 RequestAttributes *string `location:"header" locationName:"x-amz-lex-request-attributes" type:"string" sensitive:"true"` 3794 3795 // Indicates the format for audio input or that the content is text. The header 3796 // must start with one of the following prefixes: 3797 // 3798 // * PCM format, audio data must be in little-endian byte order. audio/l16; 3799 // rate=16000; channels=1 audio/x-l16; sample-rate=16000; channel-count=1 3800 // audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false 3801 // 3802 // * Opus format audio/x-cbr-opus-with-preamble;preamble-size=0;bit-rate=256000;frame-size-milliseconds=4 3803 // 3804 // * Text format text/plain; charset=utf-8 3805 // 3806 // RequestContentType is a required field 3807 RequestContentType *string `location:"header" locationName:"Content-Type" min:"1" type:"string" required:"true"` 3808 3809 // The message that Amazon Lex V2 returns in the response can be either text 3810 // or speech based on the responseContentType value. 3811 // 3812 // * If the value is text/plain;charset=utf-8, Amazon Lex V2 returns text 3813 // in the response. 3814 // 3815 // * If the value begins with audio/, Amazon Lex V2 returns speech in the 3816 // response. Amazon Lex V2 uses Amazon Polly to generate the speech using 3817 // the configuration that you specified in the requestContentType parameter. 3818 // For example, if you specify audio/mpeg as the value, Amazon Lex V2 returns 3819 // speech in the MPEG format. 3820 // 3821 // * If the value is audio/pcm, the speech returned is audio/pcm at 16 KHz 3822 // in 16-bit, little-endian format. 3823 // 3824 // * The following are the accepted values: audio/mpeg audio/ogg audio/pcm 3825 // (16 KHz) audio/* (defaults to mpeg) text/plain; charset=utf-8 3826 ResponseContentType *string `location:"header" locationName:"Response-Content-Type" min:"1" type:"string"` 3827 3828 // The identifier of the session in use. 3829 // 3830 // SessionId is a required field 3831 SessionId *string `location:"uri" locationName:"sessionId" min:"2" type:"string" required:"true"` 3832 3833 // Sets the state of the session with the user. You can use this to set the 3834 // current intent, attributes, context, and dialog action. Use the dialog action 3835 // to determine the next step that Amazon Lex V2 should use in the conversation 3836 // with the user. 3837 // 3838 // The sessionState field must be compressed using gzip and then base64 encoded 3839 // before sending to Amazon Lex V2. 3840 // 3841 // SessionState is a sensitive parameter and its value will be 3842 // replaced with "sensitive" in string returned by RecognizeUtteranceInput's 3843 // String and GoString methods. 3844 SessionState *string `location:"header" locationName:"x-amz-lex-session-state" type:"string" sensitive:"true"` 3845 } 3846 3847 // String returns the string representation. 3848 // 3849 // API parameter values that are decorated as "sensitive" in the API will not 3850 // be included in the string output. The member name will be present, but the 3851 // value will be replaced with "sensitive". 3852 func (s RecognizeUtteranceInput) String() string { 3853 return awsutil.Prettify(s) 3854 } 3855 3856 // GoString returns the string representation. 3857 // 3858 // API parameter values that are decorated as "sensitive" in the API will not 3859 // be included in the string output. The member name will be present, but the 3860 // value will be replaced with "sensitive". 3861 func (s RecognizeUtteranceInput) GoString() string { 3862 return s.String() 3863 } 3864 3865 // Validate inspects the fields of the type to determine if they are valid. 3866 func (s *RecognizeUtteranceInput) Validate() error { 3867 invalidParams := request.ErrInvalidParams{Context: "RecognizeUtteranceInput"} 3868 if s.BotAliasId == nil { 3869 invalidParams.Add(request.NewErrParamRequired("BotAliasId")) 3870 } 3871 if s.BotAliasId != nil && len(*s.BotAliasId) < 1 { 3872 invalidParams.Add(request.NewErrParamMinLen("BotAliasId", 1)) 3873 } 3874 if s.BotId == nil { 3875 invalidParams.Add(request.NewErrParamRequired("BotId")) 3876 } 3877 if s.BotId != nil && len(*s.BotId) < 10 { 3878 invalidParams.Add(request.NewErrParamMinLen("BotId", 10)) 3879 } 3880 if s.LocaleId == nil { 3881 invalidParams.Add(request.NewErrParamRequired("LocaleId")) 3882 } 3883 if s.LocaleId != nil && len(*s.LocaleId) < 1 { 3884 invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1)) 3885 } 3886 if s.RequestContentType == nil { 3887 invalidParams.Add(request.NewErrParamRequired("RequestContentType")) 3888 } 3889 if s.RequestContentType != nil && len(*s.RequestContentType) < 1 { 3890 invalidParams.Add(request.NewErrParamMinLen("RequestContentType", 1)) 3891 } 3892 if s.ResponseContentType != nil && len(*s.ResponseContentType) < 1 { 3893 invalidParams.Add(request.NewErrParamMinLen("ResponseContentType", 1)) 3894 } 3895 if s.SessionId == nil { 3896 invalidParams.Add(request.NewErrParamRequired("SessionId")) 3897 } 3898 if s.SessionId != nil && len(*s.SessionId) < 2 { 3899 invalidParams.Add(request.NewErrParamMinLen("SessionId", 2)) 3900 } 3901 3902 if invalidParams.Len() > 0 { 3903 return invalidParams 3904 } 3905 return nil 3906 } 3907 3908 // SetBotAliasId sets the BotAliasId field's value. 3909 func (s *RecognizeUtteranceInput) SetBotAliasId(v string) *RecognizeUtteranceInput { 3910 s.BotAliasId = &v 3911 return s 3912 } 3913 3914 // SetBotId sets the BotId field's value. 3915 func (s *RecognizeUtteranceInput) SetBotId(v string) *RecognizeUtteranceInput { 3916 s.BotId = &v 3917 return s 3918 } 3919 3920 // SetInputStream sets the InputStream field's value. 3921 func (s *RecognizeUtteranceInput) SetInputStream(v io.ReadSeeker) *RecognizeUtteranceInput { 3922 s.InputStream = v 3923 return s 3924 } 3925 3926 // SetLocaleId sets the LocaleId field's value. 3927 func (s *RecognizeUtteranceInput) SetLocaleId(v string) *RecognizeUtteranceInput { 3928 s.LocaleId = &v 3929 return s 3930 } 3931 3932 // SetRequestAttributes sets the RequestAttributes field's value. 3933 func (s *RecognizeUtteranceInput) SetRequestAttributes(v string) *RecognizeUtteranceInput { 3934 s.RequestAttributes = &v 3935 return s 3936 } 3937 3938 // SetRequestContentType sets the RequestContentType field's value. 3939 func (s *RecognizeUtteranceInput) SetRequestContentType(v string) *RecognizeUtteranceInput { 3940 s.RequestContentType = &v 3941 return s 3942 } 3943 3944 // SetResponseContentType sets the ResponseContentType field's value. 3945 func (s *RecognizeUtteranceInput) SetResponseContentType(v string) *RecognizeUtteranceInput { 3946 s.ResponseContentType = &v 3947 return s 3948 } 3949 3950 // SetSessionId sets the SessionId field's value. 3951 func (s *RecognizeUtteranceInput) SetSessionId(v string) *RecognizeUtteranceInput { 3952 s.SessionId = &v 3953 return s 3954 } 3955 3956 // SetSessionState sets the SessionState field's value. 3957 func (s *RecognizeUtteranceInput) SetSessionState(v string) *RecognizeUtteranceInput { 3958 s.SessionState = &v 3959 return s 3960 } 3961 3962 type RecognizeUtteranceOutput struct { 3963 _ struct{} `type:"structure" payload:"AudioStream"` 3964 3965 // The prompt or statement to send to the user. This is based on the bot configuration 3966 // and context. For example, if Amazon Lex V2 did not understand the user intent, 3967 // it sends the clarificationPrompt configured for the bot. If the intent requires 3968 // confirmation before taking the fulfillment action, it sends the confirmationPrompt. 3969 // Another example: Suppose that the Lambda function successfully fulfilled 3970 // the intent, and sent a message to convey to the user. Then Amazon Lex V2 3971 // sends that message in the response. 3972 AudioStream io.ReadCloser `locationName:"audioStream" type:"blob"` 3973 3974 // Content type as specified in the responseContentType in the request. 3975 ContentType *string `location:"header" locationName:"Content-Type" min:"1" type:"string"` 3976 3977 // Indicates whether the input mode to the operation was text or speech. 3978 InputMode *string `location:"header" locationName:"x-amz-lex-input-mode" min:"1" type:"string"` 3979 3980 // The text used to process the request. 3981 // 3982 // If the input was an audio stream, the inputTranscript field contains the 3983 // text extracted from the audio stream. This is the text that is actually processed 3984 // to recognize intents and slot values. You can use this information to determine 3985 // if Amazon Lex V2 is correctly processing the audio that you send. 3986 // 3987 // The inputTranscript field is compressed with gzip and then base64 encoded. 3988 // Before you can use the contents of the field, you must decode and decompress 3989 // the contents. See the example for a simple function to decode and decompress 3990 // the contents. 3991 InputTranscript *string `location:"header" locationName:"x-amz-lex-input-transcript" min:"1" type:"string"` 3992 3993 // A list of intents that Amazon Lex V2 determined might satisfy the user's 3994 // utterance. 3995 // 3996 // Each interpretation includes the intent, a score that indicates how confident 3997 // Amazon Lex V2 is that the interpretation is the correct one, and an optional 3998 // sentiment response that indicates the sentiment expressed in the utterance. 3999 // 4000 // The interpretations field is compressed with gzip and then base64 encoded. 4001 // Before you can use the contents of the field, you must decode and decompress 4002 // the contents. See the example for a simple function to decode and decompress 4003 // the contents. 4004 Interpretations *string `location:"header" locationName:"x-amz-lex-interpretations" min:"1" type:"string"` 4005 4006 // A list of messages that were last sent to the user. The messages are ordered 4007 // based on the order that you returned the messages from your Lambda function 4008 // or the order that the messages are defined in the bot. 4009 // 4010 // The messages field is compressed with gzip and then base64 encoded. Before 4011 // you can use the contents of the field, you must decode and decompress the 4012 // contents. See the example for a simple function to decode and decompress 4013 // the contents. 4014 Messages *string `location:"header" locationName:"x-amz-lex-messages" min:"1" type:"string"` 4015 4016 // The attributes sent in the request. 4017 // 4018 // The requestAttributes field is compressed with gzip and then base64 encoded. 4019 // Before you can use the contents of the field, you must decode and decompress 4020 // the contents. 4021 RequestAttributes *string `location:"header" locationName:"x-amz-lex-request-attributes" min:"1" type:"string"` 4022 4023 // The identifier of the session in use. 4024 SessionId *string `location:"header" locationName:"x-amz-lex-session-id" min:"2" type:"string"` 4025 4026 // Represents the current state of the dialog between the user and the bot. 4027 // 4028 // Use this to determine the progress of the conversation and what the next 4029 // action might be. 4030 // 4031 // The sessionState field is compressed with gzip and then base64 encoded. Before 4032 // you can use the contents of the field, you must decode and decompress the 4033 // contents. See the example for a simple function to decode and decompress 4034 // the contents. 4035 SessionState *string `location:"header" locationName:"x-amz-lex-session-state" min:"1" type:"string"` 4036 } 4037 4038 // String returns the string representation. 4039 // 4040 // API parameter values that are decorated as "sensitive" in the API will not 4041 // be included in the string output. The member name will be present, but the 4042 // value will be replaced with "sensitive". 4043 func (s RecognizeUtteranceOutput) String() string { 4044 return awsutil.Prettify(s) 4045 } 4046 4047 // GoString returns the string representation. 4048 // 4049 // API parameter values that are decorated as "sensitive" in the API will not 4050 // be included in the string output. The member name will be present, but the 4051 // value will be replaced with "sensitive". 4052 func (s RecognizeUtteranceOutput) GoString() string { 4053 return s.String() 4054 } 4055 4056 // SetAudioStream sets the AudioStream field's value. 4057 func (s *RecognizeUtteranceOutput) SetAudioStream(v io.ReadCloser) *RecognizeUtteranceOutput { 4058 s.AudioStream = v 4059 return s 4060 } 4061 4062 // SetContentType sets the ContentType field's value. 4063 func (s *RecognizeUtteranceOutput) SetContentType(v string) *RecognizeUtteranceOutput { 4064 s.ContentType = &v 4065 return s 4066 } 4067 4068 // SetInputMode sets the InputMode field's value. 4069 func (s *RecognizeUtteranceOutput) SetInputMode(v string) *RecognizeUtteranceOutput { 4070 s.InputMode = &v 4071 return s 4072 } 4073 4074 // SetInputTranscript sets the InputTranscript field's value. 4075 func (s *RecognizeUtteranceOutput) SetInputTranscript(v string) *RecognizeUtteranceOutput { 4076 s.InputTranscript = &v 4077 return s 4078 } 4079 4080 // SetInterpretations sets the Interpretations field's value. 4081 func (s *RecognizeUtteranceOutput) SetInterpretations(v string) *RecognizeUtteranceOutput { 4082 s.Interpretations = &v 4083 return s 4084 } 4085 4086 // SetMessages sets the Messages field's value. 4087 func (s *RecognizeUtteranceOutput) SetMessages(v string) *RecognizeUtteranceOutput { 4088 s.Messages = &v 4089 return s 4090 } 4091 4092 // SetRequestAttributes sets the RequestAttributes field's value. 4093 func (s *RecognizeUtteranceOutput) SetRequestAttributes(v string) *RecognizeUtteranceOutput { 4094 s.RequestAttributes = &v 4095 return s 4096 } 4097 4098 // SetSessionId sets the SessionId field's value. 4099 func (s *RecognizeUtteranceOutput) SetSessionId(v string) *RecognizeUtteranceOutput { 4100 s.SessionId = &v 4101 return s 4102 } 4103 4104 // SetSessionState sets the SessionState field's value. 4105 func (s *RecognizeUtteranceOutput) SetSessionState(v string) *RecognizeUtteranceOutput { 4106 s.SessionState = &v 4107 return s 4108 } 4109 4110 type ResourceNotFoundException struct { 4111 _ struct{} `type:"structure"` 4112 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 4113 4114 Message_ *string `locationName:"message" type:"string"` 4115 } 4116 4117 // String returns the string representation. 4118 // 4119 // API parameter values that are decorated as "sensitive" in the API will not 4120 // be included in the string output. The member name will be present, but the 4121 // value will be replaced with "sensitive". 4122 func (s ResourceNotFoundException) String() string { 4123 return awsutil.Prettify(s) 4124 } 4125 4126 // GoString returns the string representation. 4127 // 4128 // API parameter values that are decorated as "sensitive" in the API will not 4129 // be included in the string output. The member name will be present, but the 4130 // value will be replaced with "sensitive". 4131 func (s ResourceNotFoundException) GoString() string { 4132 return s.String() 4133 } 4134 4135 // The ResourceNotFoundException is and event in the StartConversationResponseEventStream group of events. 4136 func (s *ResourceNotFoundException) eventStartConversationResponseEventStream() {} 4137 4138 // UnmarshalEvent unmarshals the EventStream Message into the ResourceNotFoundException value. 4139 // This method is only used internally within the SDK's EventStream handling. 4140 func (s *ResourceNotFoundException) UnmarshalEvent( 4141 payloadUnmarshaler protocol.PayloadUnmarshaler, 4142 msg eventstream.Message, 4143 ) error { 4144 if err := payloadUnmarshaler.UnmarshalPayload( 4145 bytes.NewReader(msg.Payload), s, 4146 ); err != nil { 4147 return err 4148 } 4149 return nil 4150 } 4151 4152 // MarshalEvent marshals the type into an stream event value. This method 4153 // should only used internally within the SDK's EventStream handling. 4154 func (s *ResourceNotFoundException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 4155 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) 4156 var buf bytes.Buffer 4157 if err = pm.MarshalPayload(&buf, s); err != nil { 4158 return eventstream.Message{}, err 4159 } 4160 msg.Payload = buf.Bytes() 4161 return msg, err 4162 } 4163 4164 func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { 4165 return &ResourceNotFoundException{ 4166 RespMetadata: v, 4167 } 4168 } 4169 4170 // Code returns the exception type name. 4171 func (s *ResourceNotFoundException) Code() string { 4172 return "ResourceNotFoundException" 4173 } 4174 4175 // Message returns the exception's message. 4176 func (s *ResourceNotFoundException) Message() string { 4177 if s.Message_ != nil { 4178 return *s.Message_ 4179 } 4180 return "" 4181 } 4182 4183 // OrigErr always returns nil, satisfies awserr.Error interface. 4184 func (s *ResourceNotFoundException) OrigErr() error { 4185 return nil 4186 } 4187 4188 func (s *ResourceNotFoundException) Error() string { 4189 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 4190 } 4191 4192 // Status code returns the HTTP status code for the request's response error. 4193 func (s *ResourceNotFoundException) StatusCode() int { 4194 return s.RespMetadata.StatusCode 4195 } 4196 4197 // RequestID returns the service's response RequestID for request. 4198 func (s *ResourceNotFoundException) RequestID() string { 4199 return s.RespMetadata.RequestID 4200 } 4201 4202 // Provides information about the sentiment expressed in a user's response in 4203 // a conversation. Sentiments are determined using Amazon Comprehend. Sentiments 4204 // are only returned if they are enabled for the bot. 4205 // 4206 // For more information, see Determine Sentiment (https://docs.aws.amazon.com/comprehend/latest/dg/how-sentiment.html) 4207 // in the Amazon Comprehend developer guide. 4208 type SentimentResponse struct { 4209 _ struct{} `type:"structure"` 4210 4211 // The overall sentiment expressed in the user's response. This is the sentiment 4212 // most likely expressed by the user based on the analysis by Amazon Comprehend. 4213 Sentiment *string `locationName:"sentiment" type:"string" enum:"SentimentType"` 4214 4215 // The individual sentiment responses for the utterance. 4216 SentimentScore *SentimentScore `locationName:"sentimentScore" type:"structure"` 4217 } 4218 4219 // String returns the string representation. 4220 // 4221 // API parameter values that are decorated as "sensitive" in the API will not 4222 // be included in the string output. The member name will be present, but the 4223 // value will be replaced with "sensitive". 4224 func (s SentimentResponse) String() string { 4225 return awsutil.Prettify(s) 4226 } 4227 4228 // GoString returns the string representation. 4229 // 4230 // API parameter values that are decorated as "sensitive" in the API will not 4231 // be included in the string output. The member name will be present, but the 4232 // value will be replaced with "sensitive". 4233 func (s SentimentResponse) GoString() string { 4234 return s.String() 4235 } 4236 4237 // SetSentiment sets the Sentiment field's value. 4238 func (s *SentimentResponse) SetSentiment(v string) *SentimentResponse { 4239 s.Sentiment = &v 4240 return s 4241 } 4242 4243 // SetSentimentScore sets the SentimentScore field's value. 4244 func (s *SentimentResponse) SetSentimentScore(v *SentimentScore) *SentimentResponse { 4245 s.SentimentScore = v 4246 return s 4247 } 4248 4249 // The individual sentiment responses for the utterance. 4250 type SentimentScore struct { 4251 _ struct{} `type:"structure"` 4252 4253 // The level of confidence that Amazon Comprehend has in the accuracy of its 4254 // detection of the MIXED sentiment. 4255 Mixed *float64 `locationName:"mixed" type:"double"` 4256 4257 // The level of confidence that Amazon Comprehend has in the accuracy of its 4258 // detection of the NEGATIVE sentiment. 4259 Negative *float64 `locationName:"negative" type:"double"` 4260 4261 // The level of confidence that Amazon Comprehend has in the accuracy of its 4262 // detection of the NEUTRAL sentiment. 4263 Neutral *float64 `locationName:"neutral" type:"double"` 4264 4265 // The level of confidence that Amazon Comprehend has in the accuracy of its 4266 // detection of the POSITIVE sentiment. 4267 Positive *float64 `locationName:"positive" type:"double"` 4268 } 4269 4270 // String returns the string representation. 4271 // 4272 // API parameter values that are decorated as "sensitive" in the API will not 4273 // be included in the string output. The member name will be present, but the 4274 // value will be replaced with "sensitive". 4275 func (s SentimentScore) String() string { 4276 return awsutil.Prettify(s) 4277 } 4278 4279 // GoString returns the string representation. 4280 // 4281 // API parameter values that are decorated as "sensitive" in the API will not 4282 // be included in the string output. The member name will be present, but the 4283 // value will be replaced with "sensitive". 4284 func (s SentimentScore) GoString() string { 4285 return s.String() 4286 } 4287 4288 // SetMixed sets the Mixed field's value. 4289 func (s *SentimentScore) SetMixed(v float64) *SentimentScore { 4290 s.Mixed = &v 4291 return s 4292 } 4293 4294 // SetNegative sets the Negative field's value. 4295 func (s *SentimentScore) SetNegative(v float64) *SentimentScore { 4296 s.Negative = &v 4297 return s 4298 } 4299 4300 // SetNeutral sets the Neutral field's value. 4301 func (s *SentimentScore) SetNeutral(v float64) *SentimentScore { 4302 s.Neutral = &v 4303 return s 4304 } 4305 4306 // SetPositive sets the Positive field's value. 4307 func (s *SentimentScore) SetPositive(v float64) *SentimentScore { 4308 s.Positive = &v 4309 return s 4310 } 4311 4312 // The state of the user's session with Amazon Lex V2. 4313 type SessionState struct { 4314 _ struct{} `type:"structure"` 4315 4316 // One or more contexts that indicate to Amazon Lex V2 the context of a request. 4317 // When a context is active, Amazon Lex V2 considers intents with the matching 4318 // context as a trigger as the next intent in a session. 4319 ActiveContexts []*ActiveContext `locationName:"activeContexts" type:"list"` 4320 4321 // The next step that Amazon Lex V2 should take in the conversation with a user. 4322 DialogAction *DialogAction `locationName:"dialogAction" type:"structure"` 4323 4324 // The active intent that Amazon Lex V2 is processing. 4325 Intent *Intent `locationName:"intent" type:"structure"` 4326 4327 OriginatingRequestId *string `locationName:"originatingRequestId" min:"1" type:"string"` 4328 4329 // Map of key/value pairs representing session-specific context information. 4330 // It contains application information passed between Amazon Lex V2 and a client 4331 // application. 4332 SessionAttributes map[string]*string `locationName:"sessionAttributes" type:"map"` 4333 } 4334 4335 // String returns the string representation. 4336 // 4337 // API parameter values that are decorated as "sensitive" in the API will not 4338 // be included in the string output. The member name will be present, but the 4339 // value will be replaced with "sensitive". 4340 func (s SessionState) String() string { 4341 return awsutil.Prettify(s) 4342 } 4343 4344 // GoString returns the string representation. 4345 // 4346 // API parameter values that are decorated as "sensitive" in the API will not 4347 // be included in the string output. The member name will be present, but the 4348 // value will be replaced with "sensitive". 4349 func (s SessionState) GoString() string { 4350 return s.String() 4351 } 4352 4353 // Validate inspects the fields of the type to determine if they are valid. 4354 func (s *SessionState) Validate() error { 4355 invalidParams := request.ErrInvalidParams{Context: "SessionState"} 4356 if s.OriginatingRequestId != nil && len(*s.OriginatingRequestId) < 1 { 4357 invalidParams.Add(request.NewErrParamMinLen("OriginatingRequestId", 1)) 4358 } 4359 if s.ActiveContexts != nil { 4360 for i, v := range s.ActiveContexts { 4361 if v == nil { 4362 continue 4363 } 4364 if err := v.Validate(); err != nil { 4365 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ActiveContexts", i), err.(request.ErrInvalidParams)) 4366 } 4367 } 4368 } 4369 if s.DialogAction != nil { 4370 if err := s.DialogAction.Validate(); err != nil { 4371 invalidParams.AddNested("DialogAction", err.(request.ErrInvalidParams)) 4372 } 4373 } 4374 if s.Intent != nil { 4375 if err := s.Intent.Validate(); err != nil { 4376 invalidParams.AddNested("Intent", err.(request.ErrInvalidParams)) 4377 } 4378 } 4379 4380 if invalidParams.Len() > 0 { 4381 return invalidParams 4382 } 4383 return nil 4384 } 4385 4386 // SetActiveContexts sets the ActiveContexts field's value. 4387 func (s *SessionState) SetActiveContexts(v []*ActiveContext) *SessionState { 4388 s.ActiveContexts = v 4389 return s 4390 } 4391 4392 // SetDialogAction sets the DialogAction field's value. 4393 func (s *SessionState) SetDialogAction(v *DialogAction) *SessionState { 4394 s.DialogAction = v 4395 return s 4396 } 4397 4398 // SetIntent sets the Intent field's value. 4399 func (s *SessionState) SetIntent(v *Intent) *SessionState { 4400 s.Intent = v 4401 return s 4402 } 4403 4404 // SetOriginatingRequestId sets the OriginatingRequestId field's value. 4405 func (s *SessionState) SetOriginatingRequestId(v string) *SessionState { 4406 s.OriginatingRequestId = &v 4407 return s 4408 } 4409 4410 // SetSessionAttributes sets the SessionAttributes field's value. 4411 func (s *SessionState) SetSessionAttributes(v map[string]*string) *SessionState { 4412 s.SessionAttributes = v 4413 return s 4414 } 4415 4416 // A value that Amazon Lex V2 uses to fulfill an intent. 4417 type Slot struct { 4418 _ struct{} `type:"structure"` 4419 4420 // When the shape value is List, it indicates that the values field contains 4421 // a list of slot values. When the value is Scalar, it indicates that the value 4422 // field contains a single value. 4423 Shape *string `locationName:"shape" type:"string" enum:"Shape"` 4424 4425 // The current value of the slot. 4426 Value *Value `locationName:"value" type:"structure"` 4427 4428 // A list of one or more values that the user provided for the slot. For example, 4429 // if a for a slot that elicits pizza toppings, the values might be "pepperoni" 4430 // and "pineapple." 4431 Values []*Slot `locationName:"values" type:"list"` 4432 } 4433 4434 // String returns the string representation. 4435 // 4436 // API parameter values that are decorated as "sensitive" in the API will not 4437 // be included in the string output. The member name will be present, but the 4438 // value will be replaced with "sensitive". 4439 func (s Slot) String() string { 4440 return awsutil.Prettify(s) 4441 } 4442 4443 // GoString returns the string representation. 4444 // 4445 // API parameter values that are decorated as "sensitive" in the API will not 4446 // be included in the string output. The member name will be present, but the 4447 // value will be replaced with "sensitive". 4448 func (s Slot) GoString() string { 4449 return s.String() 4450 } 4451 4452 // Validate inspects the fields of the type to determine if they are valid. 4453 func (s *Slot) Validate() error { 4454 invalidParams := request.ErrInvalidParams{Context: "Slot"} 4455 if s.Value != nil { 4456 if err := s.Value.Validate(); err != nil { 4457 invalidParams.AddNested("Value", err.(request.ErrInvalidParams)) 4458 } 4459 } 4460 if s.Values != nil { 4461 for i, v := range s.Values { 4462 if v == nil { 4463 continue 4464 } 4465 if err := v.Validate(); err != nil { 4466 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Values", i), err.(request.ErrInvalidParams)) 4467 } 4468 } 4469 } 4470 4471 if invalidParams.Len() > 0 { 4472 return invalidParams 4473 } 4474 return nil 4475 } 4476 4477 // SetShape sets the Shape field's value. 4478 func (s *Slot) SetShape(v string) *Slot { 4479 s.Shape = &v 4480 return s 4481 } 4482 4483 // SetValue sets the Value field's value. 4484 func (s *Slot) SetValue(v *Value) *Slot { 4485 s.Value = v 4486 return s 4487 } 4488 4489 // SetValues sets the Values field's value. 4490 func (s *Slot) SetValues(v []*Slot) *Slot { 4491 s.Values = v 4492 return s 4493 } 4494 4495 type StartConversationInput struct { 4496 _ struct{} `type:"structure" payload:"RequestEventStream"` 4497 4498 // The alias identifier in use for the bot that processes the request. 4499 // 4500 // BotAliasId is a required field 4501 BotAliasId *string `location:"uri" locationName:"botAliasId" type:"string" required:"true"` 4502 4503 // The identifier of the bot to process the request. 4504 // 4505 // BotId is a required field 4506 BotId *string `location:"uri" locationName:"botId" min:"10" type:"string" required:"true"` 4507 4508 // The conversation type that you are using the Amazon Lex V2. If the conversation 4509 // mode is AUDIO you can send both audio and DTMF information. If the mode is 4510 // TEXT you can only send text. 4511 ConversationMode *string `location:"header" locationName:"x-amz-lex-conversation-mode" type:"string" enum:"ConversationMode"` 4512 4513 // The locale where the session is in use. 4514 // 4515 // LocaleId is a required field 4516 LocaleId *string `location:"uri" locationName:"localeId" min:"1" type:"string" required:"true"` 4517 4518 // The identifier of the user session that is having the conversation. 4519 // 4520 // SessionId is a required field 4521 SessionId *string `location:"uri" locationName:"sessionId" min:"2" type:"string" required:"true"` 4522 } 4523 4524 // String returns the string representation. 4525 // 4526 // API parameter values that are decorated as "sensitive" in the API will not 4527 // be included in the string output. The member name will be present, but the 4528 // value will be replaced with "sensitive". 4529 func (s StartConversationInput) String() string { 4530 return awsutil.Prettify(s) 4531 } 4532 4533 // GoString returns the string representation. 4534 // 4535 // API parameter values that are decorated as "sensitive" in the API will not 4536 // be included in the string output. The member name will be present, but the 4537 // value will be replaced with "sensitive". 4538 func (s StartConversationInput) GoString() string { 4539 return s.String() 4540 } 4541 4542 // Validate inspects the fields of the type to determine if they are valid. 4543 func (s *StartConversationInput) Validate() error { 4544 invalidParams := request.ErrInvalidParams{Context: "StartConversationInput"} 4545 if s.BotAliasId == nil { 4546 invalidParams.Add(request.NewErrParamRequired("BotAliasId")) 4547 } 4548 if s.BotAliasId != nil && len(*s.BotAliasId) < 1 { 4549 invalidParams.Add(request.NewErrParamMinLen("BotAliasId", 1)) 4550 } 4551 if s.BotId == nil { 4552 invalidParams.Add(request.NewErrParamRequired("BotId")) 4553 } 4554 if s.BotId != nil && len(*s.BotId) < 10 { 4555 invalidParams.Add(request.NewErrParamMinLen("BotId", 10)) 4556 } 4557 if s.LocaleId == nil { 4558 invalidParams.Add(request.NewErrParamRequired("LocaleId")) 4559 } 4560 if s.LocaleId != nil && len(*s.LocaleId) < 1 { 4561 invalidParams.Add(request.NewErrParamMinLen("LocaleId", 1)) 4562 } 4563 if s.SessionId == nil { 4564 invalidParams.Add(request.NewErrParamRequired("SessionId")) 4565 } 4566 if s.SessionId != nil && len(*s.SessionId) < 2 { 4567 invalidParams.Add(request.NewErrParamMinLen("SessionId", 2)) 4568 } 4569 4570 if invalidParams.Len() > 0 { 4571 return invalidParams 4572 } 4573 return nil 4574 } 4575 4576 // SetBotAliasId sets the BotAliasId field's value. 4577 func (s *StartConversationInput) SetBotAliasId(v string) *StartConversationInput { 4578 s.BotAliasId = &v 4579 return s 4580 } 4581 4582 // SetBotId sets the BotId field's value. 4583 func (s *StartConversationInput) SetBotId(v string) *StartConversationInput { 4584 s.BotId = &v 4585 return s 4586 } 4587 4588 // SetConversationMode sets the ConversationMode field's value. 4589 func (s *StartConversationInput) SetConversationMode(v string) *StartConversationInput { 4590 s.ConversationMode = &v 4591 return s 4592 } 4593 4594 // SetLocaleId sets the LocaleId field's value. 4595 func (s *StartConversationInput) SetLocaleId(v string) *StartConversationInput { 4596 s.LocaleId = &v 4597 return s 4598 } 4599 4600 // SetSessionId sets the SessionId field's value. 4601 func (s *StartConversationInput) SetSessionId(v string) *StartConversationInput { 4602 s.SessionId = &v 4603 return s 4604 } 4605 4606 type StartConversationOutput struct { 4607 _ struct{} `type:"structure" payload:"ResponseEventStream"` 4608 4609 eventStream *StartConversationEventStream 4610 } 4611 4612 // String returns the string representation. 4613 // 4614 // API parameter values that are decorated as "sensitive" in the API will not 4615 // be included in the string output. The member name will be present, but the 4616 // value will be replaced with "sensitive". 4617 func (s StartConversationOutput) String() string { 4618 return awsutil.Prettify(s) 4619 } 4620 4621 // GoString returns the string representation. 4622 // 4623 // API parameter values that are decorated as "sensitive" in the API will not 4624 // be included in the string output. The member name will be present, but the 4625 // value will be replaced with "sensitive". 4626 func (s StartConversationOutput) GoString() string { 4627 return s.String() 4628 } 4629 4630 // GetStream returns the type to interact with the event stream. 4631 func (s *StartConversationOutput) GetStream() *StartConversationEventStream { 4632 return s.eventStream 4633 } 4634 4635 // StartConversationRequestEventStreamEvent groups together all EventStream 4636 // events writes for StartConversationRequestEventStream. 4637 // 4638 // These events are: 4639 // 4640 // * AudioInputEvent 4641 // * ConfigurationEvent 4642 // * DTMFInputEvent 4643 // * DisconnectionEvent 4644 // * PlaybackCompletionEvent 4645 // * TextInputEvent 4646 type StartConversationRequestEventStreamEvent interface { 4647 eventStartConversationRequestEventStream() 4648 eventstreamapi.Marshaler 4649 eventstreamapi.Unmarshaler 4650 } 4651 4652 // StartConversationRequestEventStreamWriter provides the interface for writing events to the stream. 4653 // The default implementation for this interface will be StartConversationRequestEventStream. 4654 // 4655 // The writer's Close method must allow multiple concurrent calls. 4656 // 4657 // These events are: 4658 // 4659 // * AudioInputEvent 4660 // * ConfigurationEvent 4661 // * DTMFInputEvent 4662 // * DisconnectionEvent 4663 // * PlaybackCompletionEvent 4664 // * TextInputEvent 4665 type StartConversationRequestEventStreamWriter interface { 4666 // Sends writes events to the stream blocking until the event has been 4667 // written. An error is returned if the write fails. 4668 Send(aws.Context, StartConversationRequestEventStreamEvent) error 4669 4670 // Close will stop the writer writing to the event stream. 4671 Close() error 4672 4673 // Returns any error that has occurred while writing to the event stream. 4674 Err() error 4675 } 4676 4677 type writeStartConversationRequestEventStream struct { 4678 *eventstreamapi.StreamWriter 4679 } 4680 4681 func (w *writeStartConversationRequestEventStream) Send(ctx aws.Context, event StartConversationRequestEventStreamEvent) error { 4682 return w.StreamWriter.Send(ctx, event) 4683 } 4684 4685 func eventTypeForStartConversationRequestEventStreamEvent(event eventstreamapi.Marshaler) (string, error) { 4686 switch event.(type) { 4687 case *AudioInputEvent: 4688 return "AudioInputEvent", nil 4689 case *ConfigurationEvent: 4690 return "ConfigurationEvent", nil 4691 case *DTMFInputEvent: 4692 return "DTMFInputEvent", nil 4693 case *DisconnectionEvent: 4694 return "DisconnectionEvent", nil 4695 case *PlaybackCompletionEvent: 4696 return "PlaybackCompletionEvent", nil 4697 case *TextInputEvent: 4698 return "TextInputEvent", nil 4699 default: 4700 return "", awserr.New( 4701 request.ErrCodeSerialization, 4702 fmt.Sprintf("unknown event type, %T, for StartConversationRequestEventStream", event), 4703 nil, 4704 ) 4705 } 4706 } 4707 4708 // StartConversationResponseEventStreamEvent groups together all EventStream 4709 // events writes for StartConversationResponseEventStream. 4710 // 4711 // These events are: 4712 // 4713 // * AudioResponseEvent 4714 // * HeartbeatEvent 4715 // * IntentResultEvent 4716 // * PlaybackInterruptionEvent 4717 // * TextResponseEvent 4718 // * TranscriptEvent 4719 type StartConversationResponseEventStreamEvent interface { 4720 eventStartConversationResponseEventStream() 4721 eventstreamapi.Marshaler 4722 eventstreamapi.Unmarshaler 4723 } 4724 4725 // StartConversationResponseEventStreamReader provides the interface for reading to the stream. The 4726 // default implementation for this interface will be StartConversationResponseEventStream. 4727 // 4728 // The reader's Close method must allow multiple concurrent calls. 4729 // 4730 // These events are: 4731 // 4732 // * AudioResponseEvent 4733 // * HeartbeatEvent 4734 // * IntentResultEvent 4735 // * PlaybackInterruptionEvent 4736 // * TextResponseEvent 4737 // * TranscriptEvent 4738 // * StartConversationResponseEventStreamUnknownEvent 4739 type StartConversationResponseEventStreamReader interface { 4740 // Returns a channel of events as they are read from the event stream. 4741 Events() <-chan StartConversationResponseEventStreamEvent 4742 4743 // Close will stop the reader reading events from the stream. 4744 Close() error 4745 4746 // Returns any error that has occurred while reading from the event stream. 4747 Err() error 4748 } 4749 4750 type readStartConversationResponseEventStream struct { 4751 eventReader *eventstreamapi.EventReader 4752 stream chan StartConversationResponseEventStreamEvent 4753 err *eventstreamapi.OnceError 4754 4755 done chan struct{} 4756 closeOnce sync.Once 4757 } 4758 4759 func newReadStartConversationResponseEventStream(eventReader *eventstreamapi.EventReader) *readStartConversationResponseEventStream { 4760 r := &readStartConversationResponseEventStream{ 4761 eventReader: eventReader, 4762 stream: make(chan StartConversationResponseEventStreamEvent), 4763 done: make(chan struct{}), 4764 err: eventstreamapi.NewOnceError(), 4765 } 4766 go r.readEventStream() 4767 4768 return r 4769 } 4770 4771 // Close will close the underlying event stream reader. 4772 func (r *readStartConversationResponseEventStream) Close() error { 4773 r.closeOnce.Do(r.safeClose) 4774 return r.Err() 4775 } 4776 4777 func (r *readStartConversationResponseEventStream) ErrorSet() <-chan struct{} { 4778 return r.err.ErrorSet() 4779 } 4780 4781 func (r *readStartConversationResponseEventStream) Closed() <-chan struct{} { 4782 return r.done 4783 } 4784 4785 func (r *readStartConversationResponseEventStream) safeClose() { 4786 close(r.done) 4787 } 4788 4789 func (r *readStartConversationResponseEventStream) Err() error { 4790 return r.err.Err() 4791 } 4792 4793 func (r *readStartConversationResponseEventStream) Events() <-chan StartConversationResponseEventStreamEvent { 4794 return r.stream 4795 } 4796 4797 func (r *readStartConversationResponseEventStream) readEventStream() { 4798 defer r.Close() 4799 defer close(r.stream) 4800 4801 for { 4802 event, err := r.eventReader.ReadEvent() 4803 if err != nil { 4804 if err == io.EOF { 4805 return 4806 } 4807 select { 4808 case <-r.done: 4809 // If closed already ignore the error 4810 return 4811 default: 4812 } 4813 if _, ok := err.(*eventstreamapi.UnknownMessageTypeError); ok { 4814 continue 4815 } 4816 r.err.SetError(err) 4817 return 4818 } 4819 4820 select { 4821 case r.stream <- event.(StartConversationResponseEventStreamEvent): 4822 case <-r.done: 4823 return 4824 } 4825 } 4826 } 4827 4828 type unmarshalerForStartConversationResponseEventStreamEvent struct { 4829 metadata protocol.ResponseMetadata 4830 } 4831 4832 func (u unmarshalerForStartConversationResponseEventStreamEvent) UnmarshalerForEventName(eventType string) (eventstreamapi.Unmarshaler, error) { 4833 switch eventType { 4834 case "AudioResponseEvent": 4835 return &AudioResponseEvent{}, nil 4836 case "HeartbeatEvent": 4837 return &HeartbeatEvent{}, nil 4838 case "IntentResultEvent": 4839 return &IntentResultEvent{}, nil 4840 case "PlaybackInterruptionEvent": 4841 return &PlaybackInterruptionEvent{}, nil 4842 case "TextResponseEvent": 4843 return &TextResponseEvent{}, nil 4844 case "TranscriptEvent": 4845 return &TranscriptEvent{}, nil 4846 case "AccessDeniedException": 4847 return newErrorAccessDeniedException(u.metadata).(eventstreamapi.Unmarshaler), nil 4848 case "BadGatewayException": 4849 return newErrorBadGatewayException(u.metadata).(eventstreamapi.Unmarshaler), nil 4850 case "ConflictException": 4851 return newErrorConflictException(u.metadata).(eventstreamapi.Unmarshaler), nil 4852 case "DependencyFailedException": 4853 return newErrorDependencyFailedException(u.metadata).(eventstreamapi.Unmarshaler), nil 4854 case "InternalServerException": 4855 return newErrorInternalServerException(u.metadata).(eventstreamapi.Unmarshaler), nil 4856 case "ResourceNotFoundException": 4857 return newErrorResourceNotFoundException(u.metadata).(eventstreamapi.Unmarshaler), nil 4858 case "ThrottlingException": 4859 return newErrorThrottlingException(u.metadata).(eventstreamapi.Unmarshaler), nil 4860 case "ValidationException": 4861 return newErrorValidationException(u.metadata).(eventstreamapi.Unmarshaler), nil 4862 default: 4863 return &StartConversationResponseEventStreamUnknownEvent{Type: eventType}, nil 4864 } 4865 } 4866 4867 // StartConversationResponseEventStreamUnknownEvent provides a failsafe event for the 4868 // StartConversationResponseEventStream group of events when an unknown event is received. 4869 type StartConversationResponseEventStreamUnknownEvent struct { 4870 Type string 4871 Message eventstream.Message 4872 } 4873 4874 // The StartConversationResponseEventStreamUnknownEvent is and event in the StartConversationResponseEventStream 4875 // group of events. 4876 func (s *StartConversationResponseEventStreamUnknownEvent) eventStartConversationResponseEventStream() { 4877 } 4878 4879 // MarshalEvent marshals the type into an stream event value. This method 4880 // should only used internally within the SDK's EventStream handling. 4881 func (e *StartConversationResponseEventStreamUnknownEvent) MarshalEvent(pm protocol.PayloadMarshaler) ( 4882 msg eventstream.Message, err error, 4883 ) { 4884 return e.Message.Clone(), nil 4885 } 4886 4887 // UnmarshalEvent unmarshals the EventStream Message into the StartConversationResponseEventStream value. 4888 // This method is only used internally within the SDK's EventStream handling. 4889 func (e *StartConversationResponseEventStreamUnknownEvent) UnmarshalEvent( 4890 payloadUnmarshaler protocol.PayloadUnmarshaler, 4891 msg eventstream.Message, 4892 ) error { 4893 e.Message = msg.Clone() 4894 return nil 4895 } 4896 4897 // The event sent from your client application to Amazon Lex V2 with text input 4898 // from the user. 4899 type TextInputEvent struct { 4900 _ struct{} `type:"structure"` 4901 4902 // A timestamp set by the client of the date and time that the event was sent 4903 // to Amazon Lex V2. 4904 ClientTimestampMillis *int64 `locationName:"clientTimestampMillis" type:"long"` 4905 4906 // A unique identifier that your application assigns to the event. You can use 4907 // this to identify events in logs. 4908 EventId *string `locationName:"eventId" min:"2" type:"string"` 4909 4910 // The text from the user. Amazon Lex V2 processes this as a complete statement. 4911 // 4912 // Text is a sensitive parameter and its value will be 4913 // replaced with "sensitive" in string returned by TextInputEvent's 4914 // String and GoString methods. 4915 // 4916 // Text is a required field 4917 Text *string `locationName:"text" min:"1" type:"string" required:"true" sensitive:"true"` 4918 } 4919 4920 // String returns the string representation. 4921 // 4922 // API parameter values that are decorated as "sensitive" in the API will not 4923 // be included in the string output. The member name will be present, but the 4924 // value will be replaced with "sensitive". 4925 func (s TextInputEvent) String() string { 4926 return awsutil.Prettify(s) 4927 } 4928 4929 // GoString returns the string representation. 4930 // 4931 // API parameter values that are decorated as "sensitive" in the API will not 4932 // be included in the string output. The member name will be present, but the 4933 // value will be replaced with "sensitive". 4934 func (s TextInputEvent) GoString() string { 4935 return s.String() 4936 } 4937 4938 // SetClientTimestampMillis sets the ClientTimestampMillis field's value. 4939 func (s *TextInputEvent) SetClientTimestampMillis(v int64) *TextInputEvent { 4940 s.ClientTimestampMillis = &v 4941 return s 4942 } 4943 4944 // SetEventId sets the EventId field's value. 4945 func (s *TextInputEvent) SetEventId(v string) *TextInputEvent { 4946 s.EventId = &v 4947 return s 4948 } 4949 4950 // SetText sets the Text field's value. 4951 func (s *TextInputEvent) SetText(v string) *TextInputEvent { 4952 s.Text = &v 4953 return s 4954 } 4955 4956 // The TextInputEvent is and event in the StartConversationRequestEventStream group of events. 4957 func (s *TextInputEvent) eventStartConversationRequestEventStream() {} 4958 4959 // UnmarshalEvent unmarshals the EventStream Message into the TextInputEvent value. 4960 // This method is only used internally within the SDK's EventStream handling. 4961 func (s *TextInputEvent) UnmarshalEvent( 4962 payloadUnmarshaler protocol.PayloadUnmarshaler, 4963 msg eventstream.Message, 4964 ) error { 4965 if err := payloadUnmarshaler.UnmarshalPayload( 4966 bytes.NewReader(msg.Payload), s, 4967 ); err != nil { 4968 return err 4969 } 4970 return nil 4971 } 4972 4973 // MarshalEvent marshals the type into an stream event value. This method 4974 // should only used internally within the SDK's EventStream handling. 4975 func (s *TextInputEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 4976 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 4977 var buf bytes.Buffer 4978 if err = pm.MarshalPayload(&buf, s); err != nil { 4979 return eventstream.Message{}, err 4980 } 4981 msg.Payload = buf.Bytes() 4982 return msg, err 4983 } 4984 4985 // The event sent from Amazon Lex V2 to your application with text to present 4986 // to the user. 4987 type TextResponseEvent struct { 4988 _ struct{} `type:"structure"` 4989 4990 // A unique identifier of the event sent by Amazon Lex V2. The identifier is 4991 // in the form RESPONSE-N, where N is a number starting with one and incremented 4992 // for each event sent by Amazon Lex V2 in the current session. 4993 EventId *string `locationName:"eventId" min:"2" type:"string"` 4994 4995 // A list of messages to send to the user. Messages are ordered based on the 4996 // order that you returned the messages from your Lambda function or the order 4997 // that the messages are defined in the bot. 4998 Messages []*Message `locationName:"messages" type:"list"` 4999 } 5000 5001 // String returns the string representation. 5002 // 5003 // API parameter values that are decorated as "sensitive" in the API will not 5004 // be included in the string output. The member name will be present, but the 5005 // value will be replaced with "sensitive". 5006 func (s TextResponseEvent) String() string { 5007 return awsutil.Prettify(s) 5008 } 5009 5010 // GoString returns the string representation. 5011 // 5012 // API parameter values that are decorated as "sensitive" in the API will not 5013 // be included in the string output. The member name will be present, but the 5014 // value will be replaced with "sensitive". 5015 func (s TextResponseEvent) GoString() string { 5016 return s.String() 5017 } 5018 5019 // SetEventId sets the EventId field's value. 5020 func (s *TextResponseEvent) SetEventId(v string) *TextResponseEvent { 5021 s.EventId = &v 5022 return s 5023 } 5024 5025 // SetMessages sets the Messages field's value. 5026 func (s *TextResponseEvent) SetMessages(v []*Message) *TextResponseEvent { 5027 s.Messages = v 5028 return s 5029 } 5030 5031 // The TextResponseEvent is and event in the StartConversationResponseEventStream group of events. 5032 func (s *TextResponseEvent) eventStartConversationResponseEventStream() {} 5033 5034 // UnmarshalEvent unmarshals the EventStream Message into the TextResponseEvent value. 5035 // This method is only used internally within the SDK's EventStream handling. 5036 func (s *TextResponseEvent) UnmarshalEvent( 5037 payloadUnmarshaler protocol.PayloadUnmarshaler, 5038 msg eventstream.Message, 5039 ) error { 5040 if err := payloadUnmarshaler.UnmarshalPayload( 5041 bytes.NewReader(msg.Payload), s, 5042 ); err != nil { 5043 return err 5044 } 5045 return nil 5046 } 5047 5048 // MarshalEvent marshals the type into an stream event value. This method 5049 // should only used internally within the SDK's EventStream handling. 5050 func (s *TextResponseEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 5051 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 5052 var buf bytes.Buffer 5053 if err = pm.MarshalPayload(&buf, s); err != nil { 5054 return eventstream.Message{}, err 5055 } 5056 msg.Payload = buf.Bytes() 5057 return msg, err 5058 } 5059 5060 type ThrottlingException struct { 5061 _ struct{} `type:"structure"` 5062 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 5063 5064 Message_ *string `locationName:"message" type:"string"` 5065 } 5066 5067 // String returns the string representation. 5068 // 5069 // API parameter values that are decorated as "sensitive" in the API will not 5070 // be included in the string output. The member name will be present, but the 5071 // value will be replaced with "sensitive". 5072 func (s ThrottlingException) String() string { 5073 return awsutil.Prettify(s) 5074 } 5075 5076 // GoString returns the string representation. 5077 // 5078 // API parameter values that are decorated as "sensitive" in the API will not 5079 // be included in the string output. The member name will be present, but the 5080 // value will be replaced with "sensitive". 5081 func (s ThrottlingException) GoString() string { 5082 return s.String() 5083 } 5084 5085 // The ThrottlingException is and event in the StartConversationResponseEventStream group of events. 5086 func (s *ThrottlingException) eventStartConversationResponseEventStream() {} 5087 5088 // UnmarshalEvent unmarshals the EventStream Message into the ThrottlingException value. 5089 // This method is only used internally within the SDK's EventStream handling. 5090 func (s *ThrottlingException) UnmarshalEvent( 5091 payloadUnmarshaler protocol.PayloadUnmarshaler, 5092 msg eventstream.Message, 5093 ) error { 5094 if err := payloadUnmarshaler.UnmarshalPayload( 5095 bytes.NewReader(msg.Payload), s, 5096 ); err != nil { 5097 return err 5098 } 5099 return nil 5100 } 5101 5102 // MarshalEvent marshals the type into an stream event value. This method 5103 // should only used internally within the SDK's EventStream handling. 5104 func (s *ThrottlingException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 5105 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) 5106 var buf bytes.Buffer 5107 if err = pm.MarshalPayload(&buf, s); err != nil { 5108 return eventstream.Message{}, err 5109 } 5110 msg.Payload = buf.Bytes() 5111 return msg, err 5112 } 5113 5114 func newErrorThrottlingException(v protocol.ResponseMetadata) error { 5115 return &ThrottlingException{ 5116 RespMetadata: v, 5117 } 5118 } 5119 5120 // Code returns the exception type name. 5121 func (s *ThrottlingException) Code() string { 5122 return "ThrottlingException" 5123 } 5124 5125 // Message returns the exception's message. 5126 func (s *ThrottlingException) Message() string { 5127 if s.Message_ != nil { 5128 return *s.Message_ 5129 } 5130 return "" 5131 } 5132 5133 // OrigErr always returns nil, satisfies awserr.Error interface. 5134 func (s *ThrottlingException) OrigErr() error { 5135 return nil 5136 } 5137 5138 func (s *ThrottlingException) Error() string { 5139 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 5140 } 5141 5142 // Status code returns the HTTP status code for the request's response error. 5143 func (s *ThrottlingException) StatusCode() int { 5144 return s.RespMetadata.StatusCode 5145 } 5146 5147 // RequestID returns the service's response RequestID for request. 5148 func (s *ThrottlingException) RequestID() string { 5149 return s.RespMetadata.RequestID 5150 } 5151 5152 // Event sent from Amazon Lex V2 to your client application that contains a 5153 // transcript of voice audio. 5154 type TranscriptEvent struct { 5155 _ struct{} `type:"structure"` 5156 5157 // A unique identifier of the event sent by Amazon Lex V2. The identifier is 5158 // in the form RESPONSE-N, where N is a number starting with one and incremented 5159 // for each event sent by Amazon Lex V2 in the current session. 5160 EventId *string `locationName:"eventId" min:"2" type:"string"` 5161 5162 // The transcript of the voice audio from the user. 5163 Transcript *string `locationName:"transcript" type:"string"` 5164 } 5165 5166 // String returns the string representation. 5167 // 5168 // API parameter values that are decorated as "sensitive" in the API will not 5169 // be included in the string output. The member name will be present, but the 5170 // value will be replaced with "sensitive". 5171 func (s TranscriptEvent) String() string { 5172 return awsutil.Prettify(s) 5173 } 5174 5175 // GoString returns the string representation. 5176 // 5177 // API parameter values that are decorated as "sensitive" in the API will not 5178 // be included in the string output. The member name will be present, but the 5179 // value will be replaced with "sensitive". 5180 func (s TranscriptEvent) GoString() string { 5181 return s.String() 5182 } 5183 5184 // SetEventId sets the EventId field's value. 5185 func (s *TranscriptEvent) SetEventId(v string) *TranscriptEvent { 5186 s.EventId = &v 5187 return s 5188 } 5189 5190 // SetTranscript sets the Transcript field's value. 5191 func (s *TranscriptEvent) SetTranscript(v string) *TranscriptEvent { 5192 s.Transcript = &v 5193 return s 5194 } 5195 5196 // The TranscriptEvent is and event in the StartConversationResponseEventStream group of events. 5197 func (s *TranscriptEvent) eventStartConversationResponseEventStream() {} 5198 5199 // UnmarshalEvent unmarshals the EventStream Message into the TranscriptEvent value. 5200 // This method is only used internally within the SDK's EventStream handling. 5201 func (s *TranscriptEvent) UnmarshalEvent( 5202 payloadUnmarshaler protocol.PayloadUnmarshaler, 5203 msg eventstream.Message, 5204 ) error { 5205 if err := payloadUnmarshaler.UnmarshalPayload( 5206 bytes.NewReader(msg.Payload), s, 5207 ); err != nil { 5208 return err 5209 } 5210 return nil 5211 } 5212 5213 // MarshalEvent marshals the type into an stream event value. This method 5214 // should only used internally within the SDK's EventStream handling. 5215 func (s *TranscriptEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 5216 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 5217 var buf bytes.Buffer 5218 if err = pm.MarshalPayload(&buf, s); err != nil { 5219 return eventstream.Message{}, err 5220 } 5221 msg.Payload = buf.Bytes() 5222 return msg, err 5223 } 5224 5225 type ValidationException struct { 5226 _ struct{} `type:"structure"` 5227 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 5228 5229 Message_ *string `locationName:"message" type:"string"` 5230 } 5231 5232 // String returns the string representation. 5233 // 5234 // API parameter values that are decorated as "sensitive" in the API will not 5235 // be included in the string output. The member name will be present, but the 5236 // value will be replaced with "sensitive". 5237 func (s ValidationException) String() string { 5238 return awsutil.Prettify(s) 5239 } 5240 5241 // GoString returns the string representation. 5242 // 5243 // API parameter values that are decorated as "sensitive" in the API will not 5244 // be included in the string output. The member name will be present, but the 5245 // value will be replaced with "sensitive". 5246 func (s ValidationException) GoString() string { 5247 return s.String() 5248 } 5249 5250 // The ValidationException is and event in the StartConversationResponseEventStream group of events. 5251 func (s *ValidationException) eventStartConversationResponseEventStream() {} 5252 5253 // UnmarshalEvent unmarshals the EventStream Message into the ValidationException value. 5254 // This method is only used internally within the SDK's EventStream handling. 5255 func (s *ValidationException) UnmarshalEvent( 5256 payloadUnmarshaler protocol.PayloadUnmarshaler, 5257 msg eventstream.Message, 5258 ) error { 5259 if err := payloadUnmarshaler.UnmarshalPayload( 5260 bytes.NewReader(msg.Payload), s, 5261 ); err != nil { 5262 return err 5263 } 5264 return nil 5265 } 5266 5267 // MarshalEvent marshals the type into an stream event value. This method 5268 // should only used internally within the SDK's EventStream handling. 5269 func (s *ValidationException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 5270 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) 5271 var buf bytes.Buffer 5272 if err = pm.MarshalPayload(&buf, s); err != nil { 5273 return eventstream.Message{}, err 5274 } 5275 msg.Payload = buf.Bytes() 5276 return msg, err 5277 } 5278 5279 func newErrorValidationException(v protocol.ResponseMetadata) error { 5280 return &ValidationException{ 5281 RespMetadata: v, 5282 } 5283 } 5284 5285 // Code returns the exception type name. 5286 func (s *ValidationException) Code() string { 5287 return "ValidationException" 5288 } 5289 5290 // Message returns the exception's message. 5291 func (s *ValidationException) Message() string { 5292 if s.Message_ != nil { 5293 return *s.Message_ 5294 } 5295 return "" 5296 } 5297 5298 // OrigErr always returns nil, satisfies awserr.Error interface. 5299 func (s *ValidationException) OrigErr() error { 5300 return nil 5301 } 5302 5303 func (s *ValidationException) Error() string { 5304 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 5305 } 5306 5307 // Status code returns the HTTP status code for the request's response error. 5308 func (s *ValidationException) StatusCode() int { 5309 return s.RespMetadata.StatusCode 5310 } 5311 5312 // RequestID returns the service's response RequestID for request. 5313 func (s *ValidationException) RequestID() string { 5314 return s.RespMetadata.RequestID 5315 } 5316 5317 // The value of a slot. 5318 type Value struct { 5319 _ struct{} `type:"structure"` 5320 5321 // The value that Amazon Lex V2 determines for the slot. The actual value depends 5322 // on the setting of the value selection strategy for the bot. You can choose 5323 // to use the value entered by the user, or you can have Amazon Lex V2 choose 5324 // the first value in the resolvedValues list. 5325 // 5326 // InterpretedValue is a required field 5327 InterpretedValue *string `locationName:"interpretedValue" min:"1" type:"string" required:"true"` 5328 5329 // The text of the utterance from the user that was entered for the slot. 5330 OriginalValue *string `locationName:"originalValue" min:"1" type:"string"` 5331 5332 // A list of additional values that have been recognized for the slot. 5333 ResolvedValues []*string `locationName:"resolvedValues" type:"list"` 5334 } 5335 5336 // String returns the string representation. 5337 // 5338 // API parameter values that are decorated as "sensitive" in the API will not 5339 // be included in the string output. The member name will be present, but the 5340 // value will be replaced with "sensitive". 5341 func (s Value) String() string { 5342 return awsutil.Prettify(s) 5343 } 5344 5345 // GoString returns the string representation. 5346 // 5347 // API parameter values that are decorated as "sensitive" in the API will not 5348 // be included in the string output. The member name will be present, but the 5349 // value will be replaced with "sensitive". 5350 func (s Value) GoString() string { 5351 return s.String() 5352 } 5353 5354 // Validate inspects the fields of the type to determine if they are valid. 5355 func (s *Value) Validate() error { 5356 invalidParams := request.ErrInvalidParams{Context: "Value"} 5357 if s.InterpretedValue == nil { 5358 invalidParams.Add(request.NewErrParamRequired("InterpretedValue")) 5359 } 5360 if s.InterpretedValue != nil && len(*s.InterpretedValue) < 1 { 5361 invalidParams.Add(request.NewErrParamMinLen("InterpretedValue", 1)) 5362 } 5363 if s.OriginalValue != nil && len(*s.OriginalValue) < 1 { 5364 invalidParams.Add(request.NewErrParamMinLen("OriginalValue", 1)) 5365 } 5366 5367 if invalidParams.Len() > 0 { 5368 return invalidParams 5369 } 5370 return nil 5371 } 5372 5373 // SetInterpretedValue sets the InterpretedValue field's value. 5374 func (s *Value) SetInterpretedValue(v string) *Value { 5375 s.InterpretedValue = &v 5376 return s 5377 } 5378 5379 // SetOriginalValue sets the OriginalValue field's value. 5380 func (s *Value) SetOriginalValue(v string) *Value { 5381 s.OriginalValue = &v 5382 return s 5383 } 5384 5385 // SetResolvedValues sets the ResolvedValues field's value. 5386 func (s *Value) SetResolvedValues(v []*string) *Value { 5387 s.ResolvedValues = v 5388 return s 5389 } 5390 5391 const ( 5392 // ConfirmationStateConfirmed is a ConfirmationState enum value 5393 ConfirmationStateConfirmed = "Confirmed" 5394 5395 // ConfirmationStateDenied is a ConfirmationState enum value 5396 ConfirmationStateDenied = "Denied" 5397 5398 // ConfirmationStateNone is a ConfirmationState enum value 5399 ConfirmationStateNone = "None" 5400 ) 5401 5402 // ConfirmationState_Values returns all elements of the ConfirmationState enum 5403 func ConfirmationState_Values() []string { 5404 return []string{ 5405 ConfirmationStateConfirmed, 5406 ConfirmationStateDenied, 5407 ConfirmationStateNone, 5408 } 5409 } 5410 5411 const ( 5412 // ConversationModeAudio is a ConversationMode enum value 5413 ConversationModeAudio = "AUDIO" 5414 5415 // ConversationModeText is a ConversationMode enum value 5416 ConversationModeText = "TEXT" 5417 ) 5418 5419 // ConversationMode_Values returns all elements of the ConversationMode enum 5420 func ConversationMode_Values() []string { 5421 return []string{ 5422 ConversationModeAudio, 5423 ConversationModeText, 5424 } 5425 } 5426 5427 const ( 5428 // DialogActionTypeClose is a DialogActionType enum value 5429 DialogActionTypeClose = "Close" 5430 5431 // DialogActionTypeConfirmIntent is a DialogActionType enum value 5432 DialogActionTypeConfirmIntent = "ConfirmIntent" 5433 5434 // DialogActionTypeDelegate is a DialogActionType enum value 5435 DialogActionTypeDelegate = "Delegate" 5436 5437 // DialogActionTypeElicitIntent is a DialogActionType enum value 5438 DialogActionTypeElicitIntent = "ElicitIntent" 5439 5440 // DialogActionTypeElicitSlot is a DialogActionType enum value 5441 DialogActionTypeElicitSlot = "ElicitSlot" 5442 5443 // DialogActionTypeNone is a DialogActionType enum value 5444 DialogActionTypeNone = "None" 5445 ) 5446 5447 // DialogActionType_Values returns all elements of the DialogActionType enum 5448 func DialogActionType_Values() []string { 5449 return []string{ 5450 DialogActionTypeClose, 5451 DialogActionTypeConfirmIntent, 5452 DialogActionTypeDelegate, 5453 DialogActionTypeElicitIntent, 5454 DialogActionTypeElicitSlot, 5455 DialogActionTypeNone, 5456 } 5457 } 5458 5459 const ( 5460 // InputModeText is a InputMode enum value 5461 InputModeText = "Text" 5462 5463 // InputModeSpeech is a InputMode enum value 5464 InputModeSpeech = "Speech" 5465 5466 // InputModeDtmf is a InputMode enum value 5467 InputModeDtmf = "DTMF" 5468 ) 5469 5470 // InputMode_Values returns all elements of the InputMode enum 5471 func InputMode_Values() []string { 5472 return []string{ 5473 InputModeText, 5474 InputModeSpeech, 5475 InputModeDtmf, 5476 } 5477 } 5478 5479 const ( 5480 // IntentStateFailed is a IntentState enum value 5481 IntentStateFailed = "Failed" 5482 5483 // IntentStateFulfilled is a IntentState enum value 5484 IntentStateFulfilled = "Fulfilled" 5485 5486 // IntentStateInProgress is a IntentState enum value 5487 IntentStateInProgress = "InProgress" 5488 5489 // IntentStateReadyForFulfillment is a IntentState enum value 5490 IntentStateReadyForFulfillment = "ReadyForFulfillment" 5491 5492 // IntentStateWaiting is a IntentState enum value 5493 IntentStateWaiting = "Waiting" 5494 5495 // IntentStateFulfillmentInProgress is a IntentState enum value 5496 IntentStateFulfillmentInProgress = "FulfillmentInProgress" 5497 ) 5498 5499 // IntentState_Values returns all elements of the IntentState enum 5500 func IntentState_Values() []string { 5501 return []string{ 5502 IntentStateFailed, 5503 IntentStateFulfilled, 5504 IntentStateInProgress, 5505 IntentStateReadyForFulfillment, 5506 IntentStateWaiting, 5507 IntentStateFulfillmentInProgress, 5508 } 5509 } 5510 5511 const ( 5512 // MessageContentTypeCustomPayload is a MessageContentType enum value 5513 MessageContentTypeCustomPayload = "CustomPayload" 5514 5515 // MessageContentTypeImageResponseCard is a MessageContentType enum value 5516 MessageContentTypeImageResponseCard = "ImageResponseCard" 5517 5518 // MessageContentTypePlainText is a MessageContentType enum value 5519 MessageContentTypePlainText = "PlainText" 5520 5521 // MessageContentTypeSsml is a MessageContentType enum value 5522 MessageContentTypeSsml = "SSML" 5523 ) 5524 5525 // MessageContentType_Values returns all elements of the MessageContentType enum 5526 func MessageContentType_Values() []string { 5527 return []string{ 5528 MessageContentTypeCustomPayload, 5529 MessageContentTypeImageResponseCard, 5530 MessageContentTypePlainText, 5531 MessageContentTypeSsml, 5532 } 5533 } 5534 5535 const ( 5536 // PlaybackInterruptionReasonDtmfStartDetected is a PlaybackInterruptionReason enum value 5537 PlaybackInterruptionReasonDtmfStartDetected = "DTMF_START_DETECTED" 5538 5539 // PlaybackInterruptionReasonTextDetected is a PlaybackInterruptionReason enum value 5540 PlaybackInterruptionReasonTextDetected = "TEXT_DETECTED" 5541 5542 // PlaybackInterruptionReasonVoiceStartDetected is a PlaybackInterruptionReason enum value 5543 PlaybackInterruptionReasonVoiceStartDetected = "VOICE_START_DETECTED" 5544 ) 5545 5546 // PlaybackInterruptionReason_Values returns all elements of the PlaybackInterruptionReason enum 5547 func PlaybackInterruptionReason_Values() []string { 5548 return []string{ 5549 PlaybackInterruptionReasonDtmfStartDetected, 5550 PlaybackInterruptionReasonTextDetected, 5551 PlaybackInterruptionReasonVoiceStartDetected, 5552 } 5553 } 5554 5555 const ( 5556 // SentimentTypeMixed is a SentimentType enum value 5557 SentimentTypeMixed = "MIXED" 5558 5559 // SentimentTypeNegative is a SentimentType enum value 5560 SentimentTypeNegative = "NEGATIVE" 5561 5562 // SentimentTypeNeutral is a SentimentType enum value 5563 SentimentTypeNeutral = "NEUTRAL" 5564 5565 // SentimentTypePositive is a SentimentType enum value 5566 SentimentTypePositive = "POSITIVE" 5567 ) 5568 5569 // SentimentType_Values returns all elements of the SentimentType enum 5570 func SentimentType_Values() []string { 5571 return []string{ 5572 SentimentTypeMixed, 5573 SentimentTypeNegative, 5574 SentimentTypeNeutral, 5575 SentimentTypePositive, 5576 } 5577 } 5578 5579 const ( 5580 // ShapeScalar is a Shape enum value 5581 ShapeScalar = "Scalar" 5582 5583 // ShapeList is a Shape enum value 5584 ShapeList = "List" 5585 ) 5586 5587 // Shape_Values returns all elements of the Shape enum 5588 func Shape_Values() []string { 5589 return []string{ 5590 ShapeScalar, 5591 ShapeList, 5592 } 5593 }